pax_global_header00006660000000000000000000000064142032257530014515gustar00rootroot0000000000000052 comment=0d4d1506fc26edc117586b76ff76ed372cda7ce8 Setzer-0.4.4/000077500000000000000000000000001420322575300127765ustar00rootroot00000000000000Setzer-0.4.4/.github/000077500000000000000000000000001420322575300143365ustar00rootroot00000000000000Setzer-0.4.4/.github/FUNDING.yml000066400000000000000000000012511420322575300161520ustar00rootroot00000000000000# These are supported funding model platforms github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: cvfosammmm open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] Setzer-0.4.4/.gitignore000066400000000000000000000001201420322575300147570ustar00rootroot00000000000000_build builddir **/__pycache__/ .flatpak-builder/ flatpak/ po/setzer.pot ignore Setzer-0.4.4/COPYING000066400000000000000000001057231420322575300140410ustar00rootroot00000000000000This 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 below for more details. You can find a copy of the license also on this website: ------------------------------------------------------------------------- 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 . Setzer-0.4.4/README.md000066400000000000000000000065361420322575300142670ustar00rootroot00000000000000# Setzer Simple yet full-featured LaTeX editor for the GNU/Linux desktop, written in Python with Gtk. Website: https://www.cvfosammmm.org/setzer/ ![Screenshot](https://github.com/cvfosammmm/Setzer/raw/master/data/screenshot.png) Setzer is a LaTeX editor written in Python with Gtk. I'm happy if you give it a try and provide feedback via the issue tracker here on GitHub, be it about design, code architecture, bugs, feature requests, ... I try to respond to issues immediately. ## Running Setzer with Gnome Builder To run Setzer with Gnome Builder just click the "Clone.." button on the start screen, paste in the url (https://github.com/cvfosammmm/Setzer.git), click on "Clone" again, wait for it to download and hit the play button. It will build Setzer and its dependencies and then launch it. Warning: Building Setzer this way may take a long time (~ 30 minutes on my laptop). ## Running Setzer on Debian (probably Ubuntu, other Distributions too?) This way is probably a bit faster and may save you some disk space. I develop Setzer on Debian and that's what I tested it with. On Debian derivatives (like Ubuntu) it should probably work the same. On distributions other than Debian and Debian derivatives it should work more or less the same. If you want to run Setzer from source on another distribution and don't know how please open an issue here on GitHub. I will then try to provide instructions for your system. 1. Run the following command to install prerequisite Debian packages:
`apt-get install meson python3-gi gir1.2-gtk-3.0 gir1.2-gtksource-4 gir1.2-gspell-1 gir1.2-pango-1.0 gir1.2-poppler-0.18 gir1.2-webkit2-4.0 gettext python3-pdfminer python3-cairo python3-pexpect` 2. Download und Unpack Setzer from GitHub 3. cd to Setzer folder 4. Run meson: `meson builddir`
Note: Some distributions may not include systemwide installations of Python modules which aren't installed from distribution packages. In this case, you want to install Setzer in your home directory with `meson builddir --prefix=~/.local`. 5. Install Setzer with: `ninja install -C builddir`
Or run it locally: `./scripts/setzer.dev` ## Building your documents from within the app To build your documents from within the app you have to install a LaTeX interpreter. For example if you want to build with XeLaTeX, on Debian this can be installed like so: `apt-get install texlive-xetex` To specify a build command open the "Preferences" dialog and choose the command you want to use under "LaTeX Interpreter". ## Getting in touch Setzer development / discussion takes place on GitHub at [https://github.com/cvfosammmm/setzer](https://github.com/cvfosammmm/setzer "project url"). ## Acknowledgements Setzer draws some inspiration from other LaTeX editors. For example the symbols in the sidebar are mostly the same as in Latexila, though I continue to change / reorganize them. The autocomplete suggestions are mostly the same as in Texmaker. I took some icons from Gnome Builder. Syntax highlighting schemes are based on the Tango scheme in GtkSourceView and the Gnome Builder Scheme. ## License Setzer is licensed under GPL version 3 or later. See the COPYING file for details. Setzer-0.4.4/data/000077500000000000000000000000001420322575300137075ustar00rootroot00000000000000Setzer-0.4.4/data/meson.build000066400000000000000000000017231420322575300160540ustar00rootroot00000000000000# .desktop file desktop_file =files('org.cvfosammmm.Setzer.desktop') install_data( desktop_file, install_dir: join_paths(datadir, 'applications'), ) # icon install_data( files('org.cvfosammmm.Setzer.svg'), install_dir: join_paths(datadir, 'icons', 'hicolor', 'scalable', 'apps'), ) # MIME type install_data( files('org.cvfosammmm.Setzer.mime.xml'), install_dir: join_paths(datadir, 'mime', 'packages'), ) # metainfo metainfo_file = i18n.merge_file( input: files('org.cvfosammmm.Setzer.appdata.xml.in'), output: 'org.cvfosammmm.Setzer.appdata.xml', type: 'xml', po_dir: join_paths(meson.source_root(), 'po'), install: true, install_dir: join_paths(datadir, 'metainfo'), ) # man page config_man = configuration_data() config_man.set('VERSION', meson.project_version()) man_file = configure_file( input: files('setzer.1.in'), output: 'setzer.1', configuration: config_man, ) install_man( man_file, install_dir: join_paths(mandir, 'man1'), ) Setzer-0.4.4/data/org.cvfosammmm.Setzer.appdata.xml.in000066400000000000000000000274661420322575300226740ustar00rootroot00000000000000 org.cvfosammmm.Setzer CC0-1.0 GPL-3.0-or-later Setzer Simple yet full-featured LaTeX editor Cvfosammmm

Setzer lets you Write LaTeX documents with an easy to use yet full-featured editor.

Features include:

  • Buttons and shortcuts for many LaTeX elements and special characters
  • Comfortable document creation wizard
  • Dark mode
  • Helpful error messages in the build log
  • Looks great on the Gnome desktop
  • Good screen to content ratio
  • Arguably the best .pdf viewer of any LaTeX editor
org.cvfosammmm.Setzer.desktop setzer Buttons and shortcuts for many LaTeX elements and special characters https://www.cvfosammmm.org/setzer/images/screenshot-symbols-appdata.png Document creation wizard https://www.cvfosammmm.org/setzer/images/screenshot-wizard-appdata.png Dark mode https://www.cvfosammmm.org/setzer/images/screenshot-dark-mode-appdata.png Helpful error messages in the build log https://www.cvfosammmm.org/setzer/images/screenshot-build-log-appdata.png https://www.cvfosammmm.org/setzer/ https://github.com/cvfosammmm/Setzer/issues https://www.patreon.com/cvfosammmm org.cvfosammmm.Setzer.desktop

Redesigned symbols sidebar with search and recent symbols, ...

Forward synctex from included files, code folding hover effect, ...

Performance improvements, persistent zoom in preview, ...

Bug fix

Performance improvements, ...

Support for links in .pdf preview, new welcome screen, ...

Build button now does save and build, performance improvements, ...

Performance improvements, ...

Save and build on F5, build in the directory of the LaTeX document being built, .cls and .sty file editing, ...

Zoom in editor view, show warning when document was deleted on disk, ...

Set editor font, context menu in shortcuts bar, ...

Add syntax themes from files, edit begin and end commands simultaneously, autocomplete improvements, ...

New syntax highlighting theme, full line indentation, ...

Tab autocomplete, dynamic citations autocomplete, more autocomplete improvements, ...

Biber support, Glossaries support, ...

Use Latexmk with any LaTeX interpreter, invert colors in .pdf preview, ...

Redesigned help panel homepage, LaTeX package documentation links, ...

Italian translation, help panel with LaTeX documentation, open files from the file manager and command line, ...

German translation, external .pdf viewer button, ...

Bug fix

Initial backward synctex support, improved synctex highlighting, search UI improvements, ...

Session management, highlight passages on build, ...

Zoom level popover for the .pdf preview, preview should use far less memory now, ...

Bug fixes

Enable embedded system commands, document modified on disk dialog, option to highlight current line, option to highlight matching brackets, ...

Add/remove packages dialog, improved HiDPI support, ...

Keyboard shortcuts in popovers, more commands in shortcuts bar, ...

More commands in shortcuts bar, autocomplete now case insensitive, ...

HiDPI support in .pdf preview, presistent code folding, ...

Initial code folding support, ...

References to existing labels in autocomplete, persistent root document state, ...

Initial spellchecking support, ...

Simple BibTeX wizard, more bibliography features in LaTeX editor, ...

BibTeX support in the build system, edit BibTeX files, ...

Editor settings in preferences dialog, ...

Build multiple times to resolve undefined references, show warnings in build log, ...

Indent multi-line inserts, ...

Multiple documents in build log, build in temporary folder, ...

Root document function, ...

New app layout, animated wizard button, big code refactor, ...

Set margins in wizard, improved icon, ...

Initial release

Setzer-0.4.4/data/org.cvfosammmm.Setzer.desktop000066400000000000000000000003411420322575300215060ustar00rootroot00000000000000[Desktop Entry] Name=Setzer Exec=setzer %F Type=Application Icon=org.cvfosammmm.Setzer Categories=GNOME;GTK;Science;Office; Keywords=latex;bibtex;editor; MimeType=application/vdn.setzer.session.stzs;text/x-tex;text/x-bibtex; Setzer-0.4.4/data/org.cvfosammmm.Setzer.mime.xml000066400000000000000000000005151420322575300215660ustar00rootroot00000000000000 Setzer Session Setzer-0.4.4/data/org.cvfosammmm.Setzer.svg000066400000000000000000000527051420322575300206470ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/000077500000000000000000000000001420322575300157215ustar00rootroot00000000000000Setzer-0.4.4/data/resources/bibliography_styles/000077500000000000000000000000001420322575300217775ustar00rootroot00000000000000Setzer-0.4.4/data/resources/bibliography_styles/abbrv.png000066400000000000000000000433671420322575300236160ustar00rootroot00000000000000PNG  IHDRn./AzTXtRaw profile type exifxڭkܨ,A\ dyJ_;dn[%uy/t:Mղd̮?6-|^_i9?O|n*|ׯ~;>83P>8\7?u>s?,e|˿ [TNsS*3Z'g~?=|,6`D3AbwYDϢ={[=+'Kt2)k.Dw|y=;Slw)^{nQ˷ ҳSZt>>Wy|w#uɇR:gyإnwy}s/O"cn6D8+; P%rZE-4%sd =w?2yKd.E>׼&k^Fo #O%7}ٹmUku;hV짞 52gwgI$o$~U]u)u_SwmR\}4{6zdp4/J{fQmU[}M1@b;OvM 2ۇѾzgda}">qtRaSJ4}[쫞C]3i $Y uH P점Di 3wV暅<:=';"-[R%6RIT8Gi϶tNZ>Jv2;;Qev~ [gur|Mx[СKrzOZgglkr((fF^Ui rXlԮOL}IN qzLjnG2b֧"o?OVRϨZz*` nՖI\7M5;c4}6'd|j3Vsi:N% . %Wdr%qGRFj<{Le&GƗ; f|}OZ_ `+nW${mN#䫔<$ l5k8y tО.,YW;-}%H9sQa%-<@YsSUݵ"5)K(S:Hԛw9kiۤdYKAqAQcQ;u#gn*F9,6%3 f>1u:Shek(e>u YCZЅJd0^hQHM,h_n=D.0AsݎvxeL]{mC9!iH:PeQN= oP9GE]m.pt3._rҀM  yoQF7[BcJ45rj# Á@<~Y/z{nD !SlhDyH vġ _@Zj }]$(NUB.unhE2"=߄,{q;S=hvt5SX=.1 _].ؐCdJJ=,()af.Z,dƃ%Ąg1A}F-^uWj#KFI*2< x iAPZaStXnHV dرTX@Q@Ӄy <4C;8]݉!^E:&!h"FLӡ*7yBá0(>7*("|<5E o!27".O&3B&F Pp!T7yd[`,p!#m32IEODf5 jx`_H֟yFΉ 0c 3!E_BmH'ZB\4X cvbb0;/;I1k0dJ8Dvjs ^FCIG&֔DP%"^i6 6D)} xs0Nhp7dDbˑL?q3Q0UN Ǵ< +(hƎ@3Hfvot "+TZE`|SѽD}nܷC~b3:L%F12~4sLǨ59r<1~Pz@1 0 |~,!`7Χl8xh:l,_Ǣ?b9 $J"Q'!%hub31 0Yc.Hoq3m4²"cƓ4)Apx0SHn)ggCA.ʀ 8@``lzׁ7`j!+YfBUvNmo>{HZ|~}Q0Oc!˃c50xeZPx.P/LNЦ;wHԹ3EEN<>Aq_KNH,K,G4'h»gF*=^ȔQ j8bG R̞h9_sWD Yt R@K >#vZlT #L!?rWOR y֧b4&T\sU}1 ."F#DIhN3 %)AU`wՄ\xx#ї ƽl|8T$I$&&rmfΜmgϞEVʰað###JJbܾ}Lj5HĀ2dٔ#IӦMcǎR uppKSSS:9uEEE899Jee%`_=YYYdff2g]KKK#''EaggwORZZJB7nӓJ.]dT~XYYuH똙akkKxx8yyy"IG`lll& "##ٹs/b{IKKc >שFՋ"?~e|s%Łk\]]ٳ'3g #iiiž={Xr%tݼy3hZVXycݺu(׷[;880tNuhhh`ѢEl2̙Ù3g7ouuu_ƎKFFǸ{z(eh ߇ ضm3p@>ۛtV\ɐ!Cprr)SIJJё O666|'+ۿ1c---o%={4 >@ʕ+Yzgڴi1{ b{@Ϟ=U^kcmmСC頻$"""Xn]s>}X|9aeeO 8KKKYh֖7x#G/Ϸ?snmqpp'7 }DEE1iҤv;Θ9s&aaa`½؅|.\iӸx"ZN8$IT*"""ᣏ>ooo!11KKKOJ\EOkk+477wIyFéS$p)**,,,,0`ٳy饗Ņ$}YرcEX?x>#^yNJCCfffuС,Ys+bTO9|.]I{*~)**OOO,--0'//|&OLzz:tSah4'''FFAqq1}ZqLu:mllXt|177ё7c"""|2V2v%)4ҏ 0yd8˗ѣQy]65FCSRRx)++#$$zJQxjP|MZQݺL/77 9*CKqq1oeСrAeɛoi? ~ѣcFVScG%"":֬YctY|||bݺu>|%KЫW/<<]KpmvE\\Fu )))[Lk J3f7nlc[:NROZZ_~%FhW㉎Ν;HTTIII]%::sssƍt:Ǟ={3'R\\,pyDZP\[M5S...F,c|,Zh6n(w$''0a|g….ӌ?"VKg?_ ݙjWv0!߿_^`ϟOTT}VY7o$..?lA`iiɖ-[xw۽?3|PK10vXvS/_t;{{{Yz5=X;ɖ VlNJawwXllذqu{>AWnXX6p/,X7_ SL!&&ggg>}:ń+--e۶m̛7Oi"I;wd…ذm6^ykzq'6lؐ@TTHrr23h nJnn.W\Ғ&y駱CѐN#$$Gy'OR^^Nee%ۗÇӯ_?jjj7.\ٳgJhh(  ..a͚5={H:thiZӓ;viӦwlݺǏcaa/]ıcǨƆ{2a}wPݩ3wwe֭qmG5R͚5hFτێ{Nhlldذa8::_RUUaL_>|ɇmǝ~ٳ;MZXX`nng}Ʋe Rl趭NwzOF>O7[xxxb ∊ܹs7{Nuٲem<}tϟ?Opp0'O$&&~QTTX!z{jIKKRs~zxHMMU!gΜ;.\G9s{)ܹ}5weqe?N~~>cǎe׮]Y< {{{nܸ}8y$򛒆>} &돘rrr>|8GJJ %%%PQQatm7:֌%Z;w2w\n,577K7oޔZ[[]ۥjIVt:Z$Ijiii^h4R}}TUUա|%jTWW'+FjlllVUUrJiH999҅ $Ne9n1wNu63;;[xb|ӧO^*ݹsG&mnJ'%)4:/"I$J/nNݙx?Ã^uv풦L"]RR"I$ٳܼyͧVu^<$I6G"ow۳T5:88t{eX~wQsvvv9zL>}Xbnn~O?ZRgwp t.㭷ҥKBm555ܺuK7C]Mscm2lLTYY$I`QC=M٠;s^畩:;$IŋPz/{jX%rΝn9k׮q BBB:8dn޼Ikk+sνw6EEE#I4yƙ3gx䷿-*j8IX~=[oK/dXyϞ=DGGt:fZ[[79‰&p"@ p"DGG%,,‰tM@ Dȃ&@ ~XW.^ȤIPT$''ӧO9lWp/|'bggǦMy&|7w @ p"^^^r 3[[[F-gP>@w=!`'Jxߞqrr{t }{ҥK>"76lؠ}>};;;.]Ç5j)))]oO2sLBBBjtO@ |jijj Z ㊊ S544Cjt455$D@ "v@ p"@ ND ‰@ @ p"@ ND ‰@ @ p"@ ND D@ @ p"@ ND D@ @ p"@ '"immիܼySX] H||$ NdffR]]-iZ***^Z-[nufnݺEaaV)..aZ&337n(1';w899YqI$Iݻ%@ںu$I@iذaRSS$IHҵk:رcR``"_3g\@ P܉,ZM6yhiiiȑ#&Ӈ~EUsssF3g㏻$ AΣ?җŤI`ʕi=}!++ ///~uVীEg&OΝ#--JJJHJJj㗿%CvΝ;ywIKKE,@ '''RRR9x7{6] 7Ɛ!CKi=ΝϏ$͒%K8p=Y'A߿?.\ѣ1uTBCCiyw˺)'88ɓ'KYY駟Msy֭[-O>$&LC*@|Æ Yz5hZ^Ç7o=4N:#{^֖9sPXXȖ-[[ooAII n"''Yf177СCܾ}WRZZĉz*I4֮]Kii)崶jY~=eeeܺu JŨQ5keeeO"//DXpadgg7p)طonnnD!O3IfR__θ)GVwx>b,,,$jCu@ @ ]E@8@ '"D@ @ ‰@8@ '"D@ @ ‰@8@ '"D@ ND ωrMZ[[fTXM X3x`,X +++222dΝF ͥJN#((77.+t?6j5IIIXXX¨QAһwo$I"==uHohh )) JEϞ=3f yyyܼyJŔ)S۷KKKfϞ-f֭[y^///'>>ÇkgϢVimmeذaّJBR1ydn߾Mff&!!!tZnVV̙3''߉d߾}\իW˙Mƈ#LMzz:+WdȐ!V~K_N}}}@YYoÆ ɉ 'رcdggrJeڵecccÌ3Oc<<>>믿Օ={h9s&8::FQQ|ˋm۶QQQq_}&2sLLo)ӧwWw9/_f 0/ҧO?$ 7o2w\x'L(&NȘ1c(,,B ŝҥK IHHONdɊBCC9~xN8ҥKپ};?|:Z-]1==/j?''ϓĉk׮+>-11Z @ss3NjZ-UUU>}4RRRr9mڍLvA^>"!!iii!99 .(`LޘMkPf ¨M\bAϳk׮Z[[9}4Op|lZQQrO89y$---Fv͞=$HJJge޽r3335558p#G% 1#==]{999h:w"?T\¦M>}:gΜ!22R>zwػw/>>>SVVPw2+IDATFHHO=ٸq#;v ""˗/j*YbBۺu+IIIL8Ng}ӧ2dسgj_\r{r)֮];ښ<<(os&Lg} ˿書s!O>;wyaooخ{~;ί~+ٻw/III[#Gk)`LޘPݻwhd)Oh)Uݽ߿?'NtZss3˗/ÃPtΎwy24h'O&%%ZkJ*--]_DDD}l2ى\~]>ڪ_dʔ)/+td(gccҥK#?n=ΜVј ӦMݻsOUUI({yyٳaѢESXXȧ~ʘ1cښI&e͍+W2uT<<i$F ͛;o޽XXX0rH tǒ)SprrR8z(/FCll,`ɒ%XXXh" FRR|lcƌŋaȑNrr2o!Jr^wNNNY]|gN$66^‚t+$I-GR3N3ZW\GGG9G\|Y9i}}=$QVPP< TVV{QZZJaaѣ,hf̘All,AAADEEuk5Ν;Ж]vW'O޽9sG.\ԩSuWWW\988))) 333(**'KFFӦM 99Y^P=JXXzbrzQF߾ _d\cQXXȰaø{.Νcr~hLclTJxxQߤMѣ?#W133Sk1;uKmm-uuuTVVO{nyM*((O>Ե+<ر3fPUUvRz-sɓ>|cffƼyiw\W^իDEEꫯvMif(RXx1;v@*:̉$''g.]2z&י|@Yp۽޽{ &,,]TTpXYYLrr2:ڕO>4h/999 <ؤihh 33~_QPP ^z1l0MFQQQvj]%j5ƍCqI|||:Jԣ1yc6V*X^CyG9z&mbN_d$$$ϰX^C=~|+((`̘1&>)) STTCchZ[>C-ZDtt47n$))5;VϟOTT}M0ZJQ7Cc9<<իWcϰ60߰aB|~QSSCjj*I}}= b֭?`Ncٲe@\\555Ú5kHHH **F &Yh4222tlұ'| $==J/_.;uwf׮] 0\]]HLL-[₅۷oweʕ8::_MNNo٥Z[[),,$%%:1cѷIMM… 2d粒3g>^Qޘ>ܡ\cyKJJ韗VёaÆѷo0i%ٳ'Ga…͛ypssSkhg%;8qKvqVXAUU3f@Rq);Fzz:}e̙={*++9x 2a DP[[KUUMMM$''O3n85%99zK``Pݤyyy;GOOOvMGy'OR^^Nee%dggw-33Hj5ZVN̽̔5}t%K͛|N'UWWK$I---ݖ>}tUΝ;Np]VKuuu]*Vjnn^vZߖ$Iܹ#577KR~~JuCCC%N'F`FJ555ryz޽ۮk嶕W/^,J5!XP)%n߾A}NgüJzک;4T__/UUUkk$IRsst׺Bt3SVw)9=ŋۥݻW$IQ:AJcǎRRR;ǏRSS[ZZkJZFy7 +CW^***-[Hb|rPڳgO\$I2`뭷ٙ^z ;;;ŭԞ={fXINNc͝;{SGa?x7裏{zj͛Guu5V?񑟻3v7n $$[[[9Ν;8;;XDZZZt&fZ[[ @ <D.^Ç9<6[Aff&۶mSVkǒ(//'::{~ ~:*΢[z~&:OOO Xxqm544_v?."22RzQ B/cڵY[BZ߫|۰J{a;Ѱ~C~JP_BTTwf֭J%8 ²eضm[k3(ny

r:kjjHLLҒӧsy>#<<<&88X6Xypvv Kqq1\piӦ#""|r(ERׇ$77C^Dp)$I"<<GGNu~hXaٳuh 9{lK}%>>Zt}Ăx&M$m~;={fԨQ;v 6&]JaҌ766ѣGŋ:cccC/ٱi&n޼%| ?.Y),RZW1eȑQFCCYYY 6t5R^!3ƶ+3(eee\vhz]{We qNρoϦ===;1)uW fL>22Ç憓:0TRdwwaB+U~0ҦVԖm۶u)R^!kmm5ƶ+hxA6ٳqttڵk\r,,,744pΝE 9ɓ'͍7䈐ҌuW fLX;T ?"ETXd=JaiJu;vO3qv_TjKWV RXXeySm~!ٺ;m|:vsssvIII $СCo֭[l߾SNqyj%8NNCRd^~e9,#G$ )S܀@0C?(RRRxG!00Nٵk7oޤo߾*u/**866CNS_p!)))PSSCEEn2zo߾>};;;.]Ç5j))) U l:/;ggg>r>}:۷of^"m4iѰzBFϚ5KaLҡ}UVwl%|}}SԱCVmh@ MMMDFF2zh|r FQLד_|Aaa|֝ {ؓVի:sssNwwwӌihh@$:CԄjggg5M:e]WW]7ڦk|?0jt455dG-]Wja٭펍~߷&rsskX@ $&&燛0/@8AhVY K ND ? &ޏk7>IENDB`Setzer-0.4.4/data/resources/bibliography_styles/abbrvnat.png000066400000000000000000000444251420322575300243150ustar00rootroot00000000000000PNG  IHDRn./VzTXtRaw profile type exifxڭid)^ qNߟ0̨S]@ó`7%Jm]j䣌2?)})=)]>x=M^NhuB߇q{!ɟ0|sk{iT'9d$"@L5e%s]o+׵{!8AT{B\Qc{,J4|7'\lNig>-n:vs4R7tL7f%[n|ygyuiyR3h ĦkZһx۩s82'.W/_>^^nJ^̢V+;Ywοr I[>϶ ̝ θ>X5–> XBFj{Ľ+%EMRrn)QN&+R|RFDiN~oik Ј**0@4 ~Z`hV%ZSEVUm5jZo.ڵs!PX:Z}1'7\zr9W^ʪKW[}57e׭Ǟ'9giɀ֬۰yڕ[nzwk߮k}ҷkޱk˭Dr:3:K;,TJy Et-UoI1:X,z-o-oG炷۹_ţ(S5r!KoT;)[gR!v&m1r;mG!UyBvKNUe= ]1.5{ P=SK0uk'1XȧjݷA@SgL.^me: ]rֱWi%q撡RŬW;~XoT;[=,k2GM?Ӿ>3+nyc;* `u;0 2g^:3(F\&aQ5NAhj#R8$&јboUŁf%=a91\sRCs]_fm9 t,FI$qiբ=Q$jq~Qy-SGSNd>u+ɔ(Q^h|oK6 i,w,Zah9&oYύjsfec>W&gKfvY4 NX;l fM(q 1;v$@sw3Y9Yuu~I3J@H 6&Vi* K\/ 9VF(-;2BNM;KET-kgNPkYhcn@P/&63̎p y9 2m ˇɑ ]ՖH~k'PskE&k1R cml85& !PnC9jFJ2鶓lλN=@]f @6[, 8-CUW|11֝;bƙBwoRU2|TՕ)+XԘn3i@6[c`@+ o>>@BƶJR=L /m0tcȩ)Ԋ1.RZ_ ʲ]:TI0fCୣ31_.3Qx0z;)+-$>q84$=jf-E# "'0%u R` SЏk&Q@"4=Ŵy]~김ŵLЭԨօ LY྇ :1Jg"7@CNpZ> j% Y~ J (N 3}j=&#;t1ܩ44GL%# ²yp r/T(%h?Yز5bEBԄRF7`[ +0;3 9yM(]dW]9 NOU*CvњX*;V$ۜz3:K֓cg FZcQ7ai2cTvȴ nK7lGѨD+ sRn3 wvHN'Bi#> ƿRM(8%y^F߁h~$Lw ѕ+b.,&\"gx/o UZ7Yug﷽e/2<~gfai݈͋`M_j2F$Yb`YB ă]lƐ~&uR;aIRluwBpxlbp#zJQ5ľCZ!LfV ^AUS*fZE,AiY_U8Y>ج9615S$ dk$PTA + 2@jA9^XG0l@TpK!ްn~dD,eG** @j@BpB&t$%Zp$Q4+P"O$7H7qsD<:A6v}WLl"U@<*{IXٟ)II ÀWq^c?5),ڇːo#1:(L@s-G҆?fp͸ zߥ<\??QHXC ֏*N/1*v`3Vwʊd4-&ɕB oQ+'IC(>EH*6;#܀s]D&\eOsgB!ĉѯ:6İcD[QAv.EL;iV/jMⵎM`="{|掗@~ܡbhAqohDCJ=(sK1]T]5{N3Ί+Axf:2̉1E $zfN- M=yXclť^P (3I9|V9]SVޛ9QR>%gVRūeOP< H{1 #M-w_1)3[{~62QQ %(NMRPuܖm6&}0Q`{am#cNQ̚{{2΄oKLIxZ6U*yɭ7 D&yn|(PNu5`D"ow;jM`+ gIz4 "i=D3o+ZHy؄W1r؎D?= "Ju7@l<jNcjqA̙yc`0QF*0c/e 1:ʰC_hڀ69zBQCdOފ NCqߏ5 TTL/1 ;I |I{}\5`돭 齻#4440k,ZZZ{tͤL<888(bnuF@@bQ{ϋ= :8q"k׮U|b$<<B!C /`ooO^شi555hrr2111̝;@EvT??vxy衇Xx1VVV,\/`ذauPs~ˠJnnnGQ7KŅI~%!!%KK.]2d|E6n8;;> "##2e A1U… ;w3fpy8q"ǏG$T*'N$77>ooo lmm9s&*c$''lQ4 'OD$pqq7o }U,;w\^x*++ѣIII<ڵcȋ裏x饗>}:XYY[Al2ϟτ x饗LQkO?g϶ik۷S1356EEEC^^P|.\ԩS`ĉ888W666ʛeЮ=''' Bnn. 35-7ϟ?8G v";î]'==HԩSIMMqwwgϞTVV3m4y|27nd̙!/Lx{{3fUp]]+Wdĉ<#^JvJ.]ڵ+...&˻2qD#sXbv풷oc%}ϟOPP6l &&'|R֫W/~1ey ?{,*Jq'7g7ҘGGGyn޼8L3֭ѣ撘8,]/_.?Er1qqqaÆ DGG3qD.]իM]I&|J}WJחK7-ZԩSٳg.]k׮Wќ[t* ܼyPx 2n_Ѥl#332Ozw0h ٻw/qqq<""_ݤ,ʎޑ{Si.[dD郿?у!CCee%k׮,[ݻ퍣#O>Ç҂ɸ2c ޽ː!C8x _~%{;;;)~)G {{{L¦Mpww???za VƆqӧlcqu||ᇌ;SЋ/͛7?Yt}T]v9ŋ}XxKHLLdX~2a T-3ݻw … W^7npƆ@)-6mw5Dw$f1ρH )ͫK.aϘurr",,^{GyM~ݓdKK ń(]I&|J2J+V7n\GS:Poɽ{?ֈΰh"6l~+sMFLL nnn$''3sL 3[-[` ? Iضm/-[K/ |ᇊkegP7i~DFFG.]&99߿?7o&//˗/ckkKSS<8::hDʰa8qeeeTTTPQQA^8p{ZiŜ:uj***ػw/iii3wwwEqQ)**"775kp)"""bРAnj5 'ٸqSwyy97oرcЯ_?/r\z׮]L4۷oѯSGd0׾)ݻl޼n߾M\\sVX#;՗i̘1m(`4|n|ʕ+9z(>}q)GIo1VҁR~IڽwHLLl#ٳg ĉлwoLdXFDDV⫯ljn:yHKKk#)))_ܹstڕ+%m۶KZZܽ{~ϥKNXX.\`رl߾5k֐׉ĉ_KȤIڕoŊkeppdrwT˺ϡ Rinn7nHjjjf4Z-joV+UUUI$I---y$F#ImWBVKRgh4RCCAZeeeꪫMKKʾwtHҹs$Vۡc֑15#Sj׮]lnNNt6fΜ)]rEs玢^nn+HJiJ$IRkk!׿S-wqlaҴiKJJ$I;wvηzJKd[~ݽiѭS޽{;U3(=ݹu.&_~2谶桇TY%Z:6KUBBg3orE+m}uu5nRXVss]OJ}7UU{_*UTT IVVVכ|TIFs:0էΎ[G׈ŽI8Ҟc%xPsNիW~:msrr27nܠ[".\$Iׯ#=Ku {=J={0e֭[שz|Mx:Υ#Vo #"---h#"N*oD***(--Qr8ҡtT̔|__hEvv}Gollk?P₭\}ƍ1cks=ٳ/!,E֭["@ ٳg/_LKKȑ#9scQZZQSSݻ-~$br| Oˆ(}rv){z"..p[ggSL1zҘ?##GEџ8''11gggF![… ?)SRHNNSk7AV+ٙx)@cźt ͛\zdn2zh_5@.]jҟ8 8|0'N5kXё7r lmm9s q._Xggވ̝;^˗iiidz}}=wp݈Ga0.ɓILL4?B).K.5Jf7!**JKf۶m I 4dg}ƭ[غu+'Oٳr0syG1O_))wE=z0?T\tfMЅ53RǀYj?5k֠jqs1^VaQ!b111?}W];G?Yii)!!!CPPܦ)\]]x:Fm܄_~e˖KTT@sq>/^ ׯo Đ СCijj"""QFgNh4:/),,tF@K_@RSS)))rGLaP+-- [[[ٶm7?T\IHLLё/rFIjjA܄7ڦ@19 dЮﬦ& 4j*y7M^G$xkk+tV)w:֭[#z}ȍ455aggZM~R^^|LeNZ5Z&\]]і@ gauZ~/t$HG1_Rq_A2E3RA{s@ n\777/ˆx"@ $"@ 0"@ FD ˆ@ @ 0"@ FD ˆ@ @ 0"@ FD aD@ @ 0"@ FD aD@ @ ѧ+Wp u@ )8ϟ/]taܸq̟?Yf1i$,XÇ;:t(_~%!!!|gB@S1"ӦMo!((F^}U:D||<}a֬YOpweѢE<X[[s%y@ T*V\ _4M(((@пv6mogHVUsm)//2JetJKK)((Fí[,j[nQXX(j~VyL pΞ=Kccx#1JŦMpqq1˨Qظq#yyy<dgg)((0[ >>ӧ3h mի _9s@TT6l &&˗Cqk׮1c x N>ի2djvXh;w 0wY%~>Hz̞=[ Jk׮}YMrrr$cjkk>}H͓nݺ%%Il ~mH$EEEI_R$I7nrJ'''K4n8N$IڱcH7o$IZ, }tƏ/_+)) ))]ǯk X_Gw|Ϟ=MdQ;AAAܹ>;vm6}]ѣY@!C0b~1nelll)2\v9}4$%%_-[ƞ={xg? ,:O>;wÇ3f 111;vwyGΔu0uT:͛7O?T~ogϲvZt?ΤIJ l^~8^{5233illʕ+8p `mmͨQHOOɓsN{9t¼y(,,dӦMw^x7=%%%ܺu\̙c5w\rR&OS̖OOO7ޠ2Z[[illdݺuܼy[nR9r$s͛%??YxqpN֭ٳg  -/[lCAAK.o[0`=u|xzzү_Ÿ7{Se/]… ۷/ nܸ $,, ;fh4sedה~tԑmF}YoZkk+$&&9"VVTTDAA,tرc8qZd/s%))JxٵkJjimm5)>JeȐZnn.MSOV5Сq`Auys#re6n̙3III!""B^\yvڅ?ܼyPx ya8q".]bW\ĉyGXz58;;n:=*OpqwwgϞC}}=.\ .]|r-[Ɲ;wڵd?2tP~]HJJbڵ >W^yEmsu(TJye߱cF֟)ݛӇ_ 7f8~MO>L<222k̈́͘1cHHHh#|:I:u*Ԙ]/עtՕ'g+Vȵk䣭JyM?/\Det;˗G^;vL1¬1={dȑ9rD>0ݙZۓ]#([@=2d(S/̝;,YB\\|駌='''2e 6m<<N,]GGG4 W\!;;={l2lllXd &))Iѣ9>>}OII!>>W_1bnnn$LnKWvٓ2^*?SpŶMSQJccfuoNֲgXh&I)騽ͥKNKK ^^^$''s6rT+ȻWWW֬Yc/B6t>>>MJz9tP |7Hf;JR2ۛ˗/SXXhk׮\tIYj]] ̙3ٽ{7ϓ楔b7 _ӈ#x嗉lӶXm۶m'Nywymsӧ;v󸻻3l0BBB%,,|}}eGAQQ|eff2c L0ݻ?,}%'/gΜTbĈ2x`޽ӧ۷%jT:׭RX` 3{s0k׮+i`ɒ%DEEa]/,Ã1cư{nkԅ I^|&M SK2s7,,^{GyD~oeXբjQT,[_|Q^1N+ɻe:ġCxG^~q9vJJJ Wg&44޽{91WлwoIKKˋ:"""l޼g‰'w |X#FѣG\֬YC||<4440x`CѐVYO>a֭{GEEyO<Ɏ;ؾ};}Ge DXXNNN 8XW^yrrrطoӣG~m.Z[[),,$55Zjkk5kWrNNNq9g 8ݻwLJJ ӟӓ{ҵkW͍CNZZ3x`vM@@AAAȄ ܹs2~xz;}pttѣ <Ǐe]͛7qqqa\r&e#_MAA={ѣ[ٱ{n@]*amm8ȞOcc#... <^z)^_0&''nݺqA/^;666:tgggz-^y<<<ה,_sԱcXr%̚5 Jɓ'9rՋٳgs)`޽1f&Mxh6m_5455̓O>ɸq׋6kQ^^!Uz w>>>DGGqFuذa8q2*** ''\YYYDDDVyHLL4(3O*v͜9WWW]T{=6l0}tv۹qz]q.**j#aCV$I9stΝ;Vms]VKUSS#577KǏ[ZZ7x㾶QYY)]__o6oUUjVi4E644hmm{XhP~YwҥRaaTSSch66WnMkje7Ӈ1o6@n߾-kWIF%ud|uuuFJ>&I,577K7nhs#)4M12֗~{j]L'''G:Aڮ]uypcJҏߗlllO?T{=iرRll$?ji`p?xx饗riӦMRBB(?råBiΝRYY*ԑ7?ܸqVϟJ6G޽{/:4._LQQ;WruBCCҥ~~Px#"W ˆgbDزeOteeeDEEݩv*o+u$] ˆ|u2vY7$667x5kt9֝-Zߵk]XVZkfɎ;ؼys۷>@iDz>o^[[ҥKywرcG9֝-Zߵk]ٳg3a=iii9rgyzsu԰{njztǑ$ Jĉ<\]] e444pq9r V233gĉnϟ?ϔ)SPT$''IHHb$$$`kk̙3QTwooo2[G>Sɿ .p9f̘!EG{sxž*s}C^^^_z]pI$I",, voO>s}쨌*Q3ԩSzE\\555 2eD tr'ؔ+ᆆ~_0j(Yt\ϡC3pƍq9s?mrl] %.>||Q__OvvДis.Qꋹg^`~???807oի&w0Gn!@ (6J8""Cၫ+oztn]/ʾbt"+WjӔdcJn-qql?c֍9(e˖-&뻾V꟱k{umJ;w....\z˗/҂tCÝ;wڸ4"JM...ɓ *Rՠ^`uGhN妻=ٶm%%%H+ 2gq-nɓ'9{,qqqb:kDr%<~x.\h~WWW3 . Ib&}7۔KfsO8СC3f Am5(Hy%7ܫlS_2vV\aVyw0a}ƍ̙3d:|0<<~ÇĴiӀH~jX_~}G )Yj/^Ljj*%%%TWWS^^έ[̺^$Dx"ڵk9f̘6uGanߍVꃣI̜9[on:^{5Leʔ)&]Zԯ6zΜ9&!6ν)V/ "ի;%9W_5111߆0njj"""QFgNh4$%%_RXX(s{.,ݓWyy9^^^Fkk+tVkIpvvFCVӵkWT*U6uumo(mm .\xߔVFԄcXZ޸omm58:t}d|& 4pfg*] g#S&!!@<<<2x aD:ƃZY K FD ?y_@ #"aD@ @ ~?{IENDB`Setzer-0.4.4/data/resources/bibliography_styles/achemso.png000066400000000000000000000435511420322575300241340ustar00rootroot00000000000000PNG  IHDRn./VzTXtRaw profile type exifxڭk;s X;˟l=LĜɖԥ* $2T87C5(l|by1SxsQ._8V>C[qg={?럁$O\g_2VƓ$wf C^$"(ϱ  ^]k(BqA-FI;c@п(_bwYDϢ~}]Vy6+{%.2B)JM罯b'7s^Yޱ.-^R?͍ ,&sIoΝw̜3g^nJR_WvL3 Ϝr IS}}֟OA}a,bj-yyXB*g&ĽɀbMrn)N~g)yw ܈TӳߛkZzf_H#5*EO+ UvjUjZkm9ʚҴZoY^[}tyFcqSchj 2ufc>,]uXM[}m'tSO;c]ꭷ~ǵ}koYKy;[1Dr:Q%s{*%{ P8KAnyԛ1n{ V; Ϳ֖|ҏ vZ9V=$UcYKjqh_'sVGje5Y2MX1ଽE&FXfGg Fk犽mx: @uP+}so٤ƙA>BY6DƎF&p36y聓)͞85>AYIqNb[ .Q:4ʅD(3VbBʠ:Dq:$䈂J+;UǞه"I}0No qN<3O僎Cpo%ȹ{yB+`o;OcS̭>#Sw@Fx⨑nnv ב)'Y"A !'1P \ &$$G UP36$*K״0Z; O}Qڱzu.V`N$aD 4FXpZvA&9@Ʈ$sؤJm67m@zK&̍ؔ, Du7cmL7?Zq4+u$ꎰVۦ5쫔* r..JGM&WOwpjXh('ZN:(JrЌ  *yHFF|06t(/CBN/\UINk&o>\iwjҡnV3PbV`4<%H" <9ҷ&$+"Ua$zSm.kp)l.H> y绑1> [ڋSjiN$m10/#qypCʈn%#LB$e,vkM64$.ٳHn罱 +:C eH܀'pd93L95)7[.>v`0փIȝkr{Ûhp,t:7^+2Y|GQyJq! hH sqH-7SŒABf#@Z@$L C%40_#tJRnH5~ {B}3Byg f.bOn4W@7# r@(?lvP@PQȳ M'~{} tոTV|4|%A@ŁB&LUVG.xq&XCqxDm( [TQ s(Qmp')J\!d>ZGp;"Nˎ B>.RQ{iQGX3wZ=.o τD(ԭPg'aY(^V!T?PvNJ*LL SWjXVwhRׯG`>t&5U`E9L휺%&|!I\ A J1ϮwET䚀:$CXw%KQD`pb)Qp.#UCSI"h)bV?1U@JG&2Y>>{[8p; GXh4~yoo×-G S 'VJlG݅ _wwqVgI! !R#*n=ibA*h7Ftk4#:(ld^PH-K3NG>57ԀYFH~v9j 7&U *{T2f~+x#S\.ELQPDbP}EmyJ[ܵlhExU8^ډzy*{Y*>ohR8`g SSdmҍb`j) J{8Cm>>fY"Ar_XaJT#X>z܉²6G~EQ|YT3%Oag(NX [,V/p|ywIJD*%,U7soWvq׋FaPl cA77E}!tIì ..P̿CJ}?6$IB ?:ssM}cffNcJСC <$I">>۷o3{lzsΡhhmmeȐ!ؐJBR1uTn߾Mzz:{{{$Ib 4Lʐ$3fPUUʼn'PTS[[ˈ#:Ύ&;;.esi ppp`رTTT0pN!E ГAzz:o)))deedlll+lJKKQTt:F3EEExxxPQQ+W =z4/_̍7033GCii)$|ؾ};=AjIII_gСe@nܸA]]wwp/+W(v?qaիZٳg=)))̾}Xf d}w𠱱իWpB|IrrrXnJVvvv B|ihh`֬Yc#˨\_| cXQ ???ɨ:t;MRzy?Y6n=}3e T\\FΠ?VD/_ŋ̘1K.ĉE$T*'N$++>7779r$caa̙3QT-oimm%11f*j9}4$=ܼy j5 PL;w\~RYYI>}HHH駟f7@磏>⥗^bcff&/]̲e˘?>!!!KenP[[˧~ʅ :|rS KAAxxx`aaAzzz>>999\|Sĉԧju߱L+++Z-ECCÆ ˗/F2Zw%:ƻpBz+颭 -򢹹JMfPmtttIQ666&]%]t lƌC޽燮ڲc_'sssQT5JQ6Sj<,_F#F1b7oY^6 ͕~K.)V",{!%%p|}}:u*III쌓NNNJyM/"W^eӦM̜9g&ON+W͍cߥXz5'NGW_={ңGz쉽L8+V`MgqF"""x'{L?/+.\JR\͙3GJ(v͛cDGGř3g)t,ښ˗OIII׏B~qrrСC+0x -\ٝ03>IFӧdffRYYɺu8z(˖-w޸acc7|' >\]]ILL3fp]8v۷o`iiiO3f XYY1e6oތxyyѧOy,\Ht:jIKKdq>cl¸q:=ܼyt^1zIKK rؕ+W8vǏeQjm۶lWWW;C兇άYӧ+)SX/ ɲ^v-VVVxzzܹsfɒ%ĐX۷owI)k4t666X[[Hll,cƌ1jlP]:*\YYIpp0}֭[Җ۷og 5()$%%[o1uT?c[m8::鉻;Çgܽ{9EXzI2ү_.566+ 03>IF*J^zG}]v1k,*++;$Ik׮q5ñ$55oI䃩vo4tQ"??ݓ~Ϟ=>߼y8uGe„ `y5ĀPT ?<---Ӈs![[sS1ppp ;;xnj)W~~~EORW}2%Ibҥڵ.ܸzb_~N2)kk2(e y駍AIwt`-**2ZǶ25:k QSbbbعs'w!** {{{IHH0Y;wbnn.o5/a߾}!** J8W?Jmaw5:VϪV?dɒ%ܹ7 aiiIss3t:&MDMM bii|;/W gΜa„ ]}B~~~}7Ǝˁ v…ЖaZe,‚͛7׿U viƍg}$C}*//~б믿#<)IBFXw%)`(TVX-6l`t` QwEqF}Y}MFDD$&&2sL 5m۶`Iؽ{7/ښm۶K//[(mu$11-[(ΕRjر?6lGxx8у  ___nJvv6W^‚&y'AՒN#88zSNQVVFEE׏Gҿ7/^̹s種CرcqrrRTL`` TWWSPP@VVk׮ܹsQUU\Nk4<=='vŦM:)[rIj5rW\ĉ`mm4iCEI'ߕ 'ٻwuV}6111|^̙c]rss C{mUG =_5ˡC=mtΝiRVcnnΊ+1bb[me;vlx~~~2t ӏ'V+w[AAAzj ?=tCqʺb :9s.\`ȑ:uOAAbJeXX333+/Nss3gsϑI6%Ξ=_|ŋٳ'gϞoYYYQؽ{7$''ceeݻw&''<˗7n{aڵ__RTTDdd$N^~S#UUUjyKȘ/V+Ln@}4>s)ufY*))Z[[VSS#577 h4FtRUU$I.n]]j:SJh4V_Z.'''Keee?hiii/J:t۫ұ>cҥK:ś9st5Ν;:i[wc2)H+uŖ-[$I$UJMM~t[wJ:Uw+[wسg4m4bI$i߾}gYYo\i*ySώ}D?6]_߿ߔ"mfGCcnggg *# 6;ұ>T|||W_*sժU[\rE~C풾[n)QVc\NJ}[UT@$̨7hG9;c~Ǖ2unnnHĥK;ggg\]]sIc\i6Vw|wv۱i&|g ~:\~";DJJJhmme]')((H@`gϞ'==?T*8x SLaNcǎZ{ێMaD@pߨ @ @ ~F 'hDt+\OۯUٽ{)))|hعs' 4+׈[l#lٲ{{{,,,d/>|6m{=חx&OVۛ{ٳg%7n< Jdلsh̉'XjO=G`8Щ1c(< $@ QD!>w\;|#&&+WM2EV}r5E?N bccèQO9s;;;F!wuG˗tSLAReה{'!?^^^17oru˘1c z| $..NрWbn 7v'!?ĉeڵ&Q`ccæM())‚o_&;q?wOڈ̝;{{{_իWiiiAV Ν;Fm-aaa :gggxJ~`'O̙3xGG=ZM!?K#bnnݻ)..F$[ncN>ͅ ڮ8V)YVVV<=_<+`]Jw k n@ 1cF?fڵt:JJJ3gk4;]YPPxWƄ b9Đ!CA oc#GR^^Nff&rJ888ߺ^~e-[Fdd|D<'L@ll_ǻ9\Iw  6l{w DDDСCijj",,ѣGgrJ|}}jzؾ};򶓞_^zߟ$???AMd,,,hlld̟?]JwHę3gʕ+=zQFdҽprrbOAӥƦ&oPxW |'Gv[[[wtr^zuڲFnll KKK4 Iyy9h4hjjAlm yT*7o޾YYY=M6?k@FF9lذ\i>}:fݼ/T9scΝlܸ/_ΰaøs\΍71cO<ϟW_% Fe9MMM,Z}QVVwݻwE6̞=[ J֭yQ233JҼy[nItI$)##Cw}4$I;w׿$I4~xi&OLLiR]]$Iw^ n*I$t:)((H2d$I$}Z_e9'Nyy /ŕȒ%Kشi?UV.ޱc(..&$$Dsqqa8p@haÆpY>cbgg'oM`ʔ)XXXf222׿5[neΝr^@K@USIIIa„ o$$$;o~C=_ww}WQQldښTN`` ?d޽޽ЧOѳ0"zHJJjgD1bڥ1t64j;7ĠA%I겜OBB fٲe7V΅ Xn=zgҤI^%~1oذaCLL :iii466r5=ʂ 077gѤpiٷo==z`޼yyf2339teee[?bnݺEVVs1ܜ#G׿۷os5JKK(ΝE7dڵJۻwo 8y}]멨_$''e)7M>>>O899ѫW/Z-g {{{RRR(((0zFFޞ₷^CQ[[kRU<.\ȀHNN~!0|y ɓ0ydƌC~~>}vŕ+Wx2qZZ~O҈(ɾqFFm\\,]{{mrz+++YIDAT|z?ΓO>ݻ]R_~C=Ņ+W >@jAӇZ8^j:5ێ:N*mQXXiWkk+gΜ̙3m;vn/**t3ϰgϞN*PxAArrIN:EKKy+udܹ$$$PYY @BBO?4㘙ԡ!ٺmD^ʦM9s&gϞ%,,Lyؿ?>>>$%%kqMy'ƍٵk'N$//W_}wcի8q"<*ٱ~z쌓NNN1 \|???zYlw`Сr_x`9m@@EEE̞=<<<:u*=gѢE;v9st+޴iQ^|EbѢE;QSSC~~euV4 _}W^e>}7|WWWx"''Cr\xI&x \]]9rtY`~_~;ؿ? [Ç+(o(!*k :ʾw^Z?C7%?O SǸUґ񔑑!o㶝?RRRdYr%nnn;xWVV3m4|||x~Μ9]Ɗqwwg444*f,c2{qMeԩ$%%QSSct^43%8q"XB6"7nKQl2"ҧOf̘ݻw رcミ}! JF鉛sښ%KC~~>~)cƌ+++L͛ggg֬Yqssooo<==0e gϞ%((+W~Kii)FiˬdΝ yʔ)N;NAߏZf0vX+4MYt)666hZ]FFFdٲej,Y!CHHH9993f.]O<5559Aqmy|Y4h_}#Fhё2pvvF$իW._}RVVz {{{N8Xt1g}`tߟ bP]#Co3g2n<,_I&xz͐!C1ch~zh4ƏNԩSt:ojÄpIdv .\UUU&+WFQz`\\&Mĉ'6[[[,--sRVV-&Lյ]mgee1l0ijjL4 ;-??_~$11e˖ammMnn|G|C cڠ<?~ܠG[t:?<+W$..N>jNJUґkl:uC2vXWm0av =i$jjj $00KK.ӷW\1˘1c !$$D# Fe5~!K,aΝlܸ.رc9p… _~uhHm۶ETT<6lpY .^HϞ=9{,gGҿINNՕ:¨ח[rFɩSsNj5|X#FHtt4ڵk#<< "[eVKZZ:N>9s&:z̞=`iO>aǎOEE+W>}{g @>}prr`۶m }|YfuR%99/O&L`РA8pfΞ=oZŅCѳgOygϞjprr"99F3@ⰱ!$$J.^&L>||8 q7oޞÇs5(//p[krss۷/Ѽ;XZZr|||-3@t{vk؈=?Hff&zرc,^'''xwxWpvvntkR̜9;v~z^u :1eΝ;Guu5:tdƎ+/==N ***3gm>l(rIV^Mee%fBRqiN8Ajj*cيe=+ʐKXXZ*++ijj"11'|+΋u78===խvbӦM)Ϗl6663LDIUUU$IRKK]fΜ)]vMs玤:hZ򪩩ۅ߿_1a)99YEz7hrUUUI:NjmmmgV9ﶴJrz޽ۮ}ڥolloJiKJRMMMpV+v߱|C V)_cmQu3{c۷+KoߖBCC1Ruԝ}㰮NjR]]TYYئmF---Rll&kW2477KRIIIߺ3/CvWJ㻣ɦb2mllƍ'%%%}/Ieee?QSS#}Z>S),,LzqIhÇwzXy饗riR||Vm4ØI{: )))G-s~YDGGSUUE Xz*.??q(bD@Dx0"@  :\tGt=-Izz:۶mS@ ޷: ף#mD<==ٶmTrssYtiyi'aaaETJY_]-[g޽lݺp=} }GGGEÃΎAb mdƌÀ|{%qyoٳgKrr2'N`ժU7779rm*sׯ111(Ώaʔ)@ HG[[[|ry+))'Ot5f߾}5j'Nѐ{z%Ja744_ѣGҥK2/ذi&JJJo_A9^)̦%{Wy&ׯ_7vh:@ HQr#+";88vZ?4oKG-&%J  cС8;; / wqwN=ڹV*SIO+7%)̝;{{{_իWiiiAV Ν;/̈r#tRvEcccR:u*%pOX)PBʊG}T.SJUM2 I{{}R~9w隸Ippp`?3nݺŎ;8}4.\ &&F@po.~L4L{W8=ﱡr<=tT*-[Ƌ/HDDDxmo;s ))),[H(,,~„ -`Aһ|l>NeS[ӦMCVw ۲eK,X`TJh4>c֮]N9s o{FٙiӦی]/6lDzwP{G7po>==s NJJ'==z >}:`Ϟ=Я_?tr])L)_x1IIIS]]Myy9n2~_~9s\ѣG5jIII;vw 3ِ.ល{W655ѣXr%hZp= l߾|v5Cn/;^^ʒlKdd$ .N嵶R[[K޽tR帺bfff(}ۺH]r466Ԅ%GGGڎeSmm-666ۆ販lѣG@ZztxvhХ@ YׯSTTDpppZz!t)~FD ?_@ #"aD@ @ ~ ?đIENDB`Setzer-0.4.4/data/resources/bibliography_styles/alpha.png000066400000000000000000000450331420322575300235770ustar00rootroot00000000000000PNG  IHDRn./uzTXtRaw profile type exifxڭk\s^I,ψ,)%1J7%`:hj˃_zLQ롞2/~?oh}}zh{Qyu{?ᅢ}7_m|ۿQܯOI%S +(V3y/zK ?xRvq|("oz^qCп(5x= T~ƅ͕W{{_Wgm9Z!YT&I;ty?WZ,Qɍ9\klyف^Zs-=V&Ӽő(.#;CjGʭ-t=q}XJF[fd=p=%t6 </ʭq j ͼ MV֠$ΣL:fW1ԓ7u&*Jmxw6iه>` MXsY/Xf Œ(׹]k#9F=-P7iA`L j۞qr`f_=zQ8d+uf\I9pkќt${:}~PT5-zyZy;zDm/-C`wp=~"*Pp5(GٕB9O tZPZ^6g:Q5cC+Ҵ6/6Q8Cq6!C]C{؀ajYMzt =CHA#xürOJ5hd `g4ѫ) ۭzouh!ܱV_\ʓ+}5/rۤN3m`vAЉ~-/+3&iLtx{FJ5Pm渠=,HZiu5*Z{v"7*z wi%A^Rc_"(]ȱ X0qBJ H fҞz":Aٲ'#3~570\ 5×HNf+g|6-EFl s}W;"x>q~Bieæ+(ͅ\0|Ⱦ{{Fm@;Sfd%sZxz'Q c d3y}A\J  F3U 71X+Vv`^xv,:uۆN.X>HFSP! 5ID2'ډ[َu`DHqFF-d490g8Mѵ,6/CXZds;lN#m)IGqM#xT/pƀkaY}vK w!%Arq^JtPqJ`B!b\Ap Ĵ ȅ۾gӐ7'8!`$ގ(4DJI(+A)qeh <6<цF7,wa(u\ܔ IǞq` KƱ>g];:).} ',C+D# 6br1 ! 1J'Sv-9f;AW.&B(q$b0/t[h1L,[v\Bn՘ ofQX-%}wA'WH2$/#RA׮ s-^H41]  z$۲pY0>BrEH9nt3CO#U%Vl±jN&[B{ MOYO=h+Ru~zc:l+B);\ |2ĿK@kwNDޠɌ= 6(C!KqS_u\p ĺ!˜$S1b3N-C83T&Y?&'@[W`S@lU : )Dv~@tY l `IlN SDiAe -*Ug92K&C0X'u .'m?AY~yZahdOY`H6!@4D=ǒŌ/?jPzIFs q8F9mE!b/7`ffPq'pwa(L60iG@:=(@b0{2Ͽ "uy:1 ɸVw·^~vFo\4)@b:ac'sŬ\ޅʻʲ R9j]wk~>N9БoinO"ޗX%;Łx$Qf &x(ídXyy{ t`HuP(>K$?R7 lnGL3FIݙ,~FļM~HP8 +$G,o^MFަK*<"?$BpX%F`F W9>|:NѶ .#;̎EfG/#~ pڊzSnʈd(-jrOxaWV)2wVIYG&cgr!Aʂ>e̊*#Dlt5Jє)%J 8W2_zDG 9 ;G3 +an7sK >RNztXV )"@Gu/ES8?ﳚpI .$f`kM ?~a3R/G1"qI\ 0D~6O<9#&BF=i۠!"C7is  k4? F~'wCfR@\ۺuim?NzT,Fң{C2RJt4Dl-Q"ѝG"&V uYsN*b8x(%bj72ҡ~3X sNlpE/4 : rh& W vBgSC;*Y~xic~Cň,ڏdÓKy1WY|5nwon4Ln ke`s}L1l6Û oj#Тq%CASʄIo#BFex&|Аg)_ {$n&Sd "~$o!ɴkVBEz:Ky t~)N;v;0}yЀ%_?r%x*m8x0"F~$Qޗ?G 4Y o?bg" \Gt<2@"aA^߹LLxf7Mݿ_~%\tA' O=^^^kVĉ ݝ4qssW^l߾%Kc&ڵkGӱh"Oγ>KNN+V@I͒!22MTWW3k,nݺ2e L6VIOOou?>2(տG+ܹ@ݺuO>i<:u%KгgOA2fٵksƏ|4(Ϗ&L^@v̼yիlG}Dll,[ne |7}>t[ڵkGpp0^^^fSsسgO899ѫWMLLdXsNX`SO=%OL!44_~''':w̺u먨0sjIIIl۶RSSɓ'^+C```x7۷/3gӧ? _~%=XQ֖A阥nnnٳ ;w.NNN(ǚ-222\.999\xѣGs)NrrYR6mnYZWWWBCCʢ;;;_?Nzz: 06[iZ ٳgYIuo:2]RWWGii)cƌi~K.]}Ң377LZu 4[՗5,eER1`i VK/ܹsf3]~~> ΅rJYnrk4Y~Isdz`5jͥp\\\0`|6EتxwرcAAA_K=z4)))TTT퍗^^^tQ^{饗3f AAA+\r5k0~x KTT V^UUŢE>|8O<K.mҦMڶm++ݻggǎߴTSիٶm>!1j(|}}y饗RlpYT* nҤIonji[pqqwޡͭԗV\ɡC^hЇò>gggΝ+Upaڷoիټy3Ç,]fRZ~t]G&Ϙ1ѣG{n._L۶m]I>kߴiSOKYSRRXlEEEDFF3X}>t:iʳl)..9ܹ3w#88^zŞ={ɉx Eg X@n߾-WTTĵkYʠAr /8p !!!̞=Y2VAAAIhh(Ν+Vo>̙CŅnݺ~J~ƍ~6l@.] QW>cРAĨQXn^^^ӧOgΝ j5C ӧO.ߥY'G1xwG EEEoƍAZS[m^OMM|ҥK߿p)h4Zݺu[ܚ]Looo,YBDDD>uޝŋ*;7|`|}}sn߾ƍ9~8gϞ%>>ަLɉ'|͐ԏR~ȬYشiWH]]III FAEEaaa|3gΔg 'N`Сynkctt4yyyf뭶f.J"QQQڵK\ONll,;wnvy&jBBBlN[[֭[ǻkƈiYL}f٢ܨ]LZ|2>[c 6_'x,RSPP@DD6+c- ֎5ʪU2dH9?c@s1cW^'m1fmٳgQՌ; f3߭[ꫯ6m|ߣGl̙3qvv櫯W__zi)IIIj_Sh4DGGӵkWn޼ɤIXl ,`޼y׏FJNN3pE2گZjձcLj%;;6mпݻ~zr ֒ij> Zt YYY曜}WӝUsdUs}֯_7w%>> +'88E[z݋V;h}/\P.*#GKMM {_ U>}X}(Zf\LHJII$IFt)WUe>t h Z"Sso1cȿ %I۷k69)ܿ_:s挤j[E6F#a-QwU>O,quu5]F77&aYnsPzC-*$CG!޾YYcSmaiZJHH0{V} .䭷ҥK+ern߾R{ұpqqIZR%AZ[/$q…^)8::Z}t\D,{5ّ^v7ni搓y&FS|c ??/"Iݺu lOFF?Jݻw3j(V\2z-:t/0.۷iӦp"@z ÏND -F%T D@q"iii|h`lڴLa%@ 1;x}E@ȃX<Ⱦ"@ x4}lX]]͉'pss#<<\>ޔ/^… 5 JERR:u?@4y/ @ g"&8é7hr֬Y͛7qpp̙3?pʕfe!1m:rHN8asK`imڴa96mԬ,@p"zzz܃AzhiB ?'bڃ~ok%<<<L*{Y\t)@ bjժUt:lԩSm$I8q.]ľ}0`)))fY&eł |hC@|*++]v 4t:jkkqttDСCʝ;w񑗩h`0P[[XY@ ND ‰@8@ '"p"@ ND ‰@8@ '"p"@ ND ‰@8@ p"@ ND ‰@8@ p"@ ND ‰@ @ ~Nh4rUn޼).IN$>>S@6m2dSNe„ 1iӦqWw^Æ ?'2f;t,[8;&Lc+>3f駟fsey@ Oq"6T,Z?hfUV{8::ru֭['4/?'?<$ ݻdddPVV&tܹs*+1ut:Z-onRuuuܾ}@Rn:gee1p@֬YCvv6O?4˖- 33/m۶j*rssm8vcǎW^lٲKk֤:'MDpp06mbl۶sҷo_ݻ'suƍ3<ӧYt)h4F멭eƌl߾b׿ңG߿/z@ cĉ M>]ZbK:tsITVVJ~~~Ҕ)Scoߖi޽$IRffHovH$mڴI_$IҐ!CE5)RRHC $I[J~zI$`0Hz-J$I|Vk׮5ZKz^>?e,@ 985kk֬۶m ߿Bc:uk׮ڵKi55=} 99O>IMypssӘLeff2j(Xd 4ZON$ __M6e uc FMHHO&--C HLL4{_{L jq;Zm׍7d'cյI}v>Cnʖ-[xwIKKS,@ RRR̜Hhh(7c@so={(> $zN>MHH9s{n.\(z@ YФ8< --cŶm^=|0bY-ӚMDDD0zh(**g}[={+VЦM~iFUgUV믓Nի۷iӦaooIKK㸻}v^|EڴiÔ)Scݺu;w={P\\[oEFF),,dee1i$yٻw/.wիܺu#GT*X|9nݢшNcʕqmT* `ҤIpssc̙s9Μ9dΝx{{_ J$?$IΝ;ѣGu}-ӚMh4GlգQHDYY⡺@ ND "]@ @ p"@ ND D@ @ p"@ ND D@ @ p"@ '"D***y&FG'dII nj>=z`ƌq-T*p[b^hQ|ii)Ö-[*2gff)Shv֒㧀F!11Z^g8;;ر#$q)С!!!VWWJ]v 4n޼Jb̘1m;wɓ'QBoeKVO>}߿ϵLٙyL`` Nbɒ%ٳE->#bccٺu+ׯop?7},d૯Ν; <&غkM_NUUU󻹹QTT[oE޽`ʕp6oތΝcɒ%tЁ /_n\WWW0aeqqq17om۶ݻ'1 6n OrɟKJJxWɱ}s&kd'RwwwzAN֭[Yp!={ƍ vr[K:'/y={PYY@e\|ӧӵkW.\@N(** ''?0n޼ԩS ᩧjt61rH D^^aҥKp>U'''zsZD*x"~-SN[׿Eyy9'OSNrΝ;/gԨQ ޽~9Ç9z(z,}~~>,Q/'';wRZZʡC8}YZ'2Ly9t: >cرc`{Yz)ى=Z1@TTnȑ#rs_qFyzu:MԩS\pNhڬ,Ξ=KBB#G_v8c h48~_:K?_IDATKK9qiiiẇ˩7''Ǭdddyfڷooaii)ǎCד@YY||8O<K.777V\ɡCN퍗^^^tرE:ŋDDDm6 }#w)獈ˬ\={ҳgO^{59͌3ؿ?&Mެ5k'4*+YYY̘1fڵkR\\LEEyyyILLdȑ<  N8AϞ= h4|,[LvY|9>>>?'''rrrسgo6ϟgĈ|fyx |||ػw|WܩS'N>ʹipuuUl׎;HJJ}׿5555رDVXA~Xx[ӯRJdߺu+ZV֡m_6l?i+˴JrZꩩmͦ#GSNX`DEEФs4R|JKKujW`ܸqܿPAAAIhh(DFF),'Oݝk׮qz=jjݻ:NhO?_~z|||HJJݻX}1gڷooLJnݺɿhl$/ ___&O3f">><>3 +NNN5u?,Yc닋 ݺu# EMNNfЦMΝˌ3wY'O2p@=Jō78q"3zh^|EQdYk׮)ߎ;PlV3f RJff&`ٸjc̙3ZͬYݻ7ANN6h .\3%/GDDŰa(,,$ @3<<|"""5qDTT ::۳`S?ػwoΜ9#ipݻ7tU>n1ڪ_)5Zk-'55aÆ)Ϧ>h۶-/淿<󷴕vvvi-TSS\***z[7f_W_m056Ldr"III|G1sLi4}]ڵ+7odҤI,[ 0o>>fϛE߾}IHHǏ3brrr(((Pl[^^r?3gˈ[qJ[oMZK${BB?8PԽM}Xb0x饗X`ǎ_շZZK97eРADGG-4F :|ӍsQC_j*@6by;ϟm۶$''{̙3ٷo]tT|||"&&*w9{,=zm۶ѥKa|,X@(lذ,Ġh믿F2f2LrTUU=شij{{{ ϟOxx8aaa:tr7رcRSSC޽; VKzz:A~^1qD"##ҥO?7ҿN:OII ,?~[7еkW<=="֭[']tAVzj}/^;Ν'++oMFFFoOFHIIJ&LƜ+?^q:={k.HNN#ٳmK/m۶EVt:ݻ7v"880; єryxgqqqСCr^~"ׯW^;wX>[rssر#bڵ8::k.e.](o-5۷Ϭ\k ȞNݝjM}(q9ڵk9s&^^^Xv-/[1tȑF;t&]_fѢE2aT*Ǐ:uΝ;3qDNegg]Vj*A*++$Iz\߿/9sFjMlh$F#I$Iuuu͛7%آ2ZƒoիW{IAQ&UQQ!I˗Ko$It=NJHH.^تzL2 h4ӟVmϚF\.~ݪu:]rL/IR={'UTTj R[ӯR${Yӽ-}(q]߹Ruut]iذafZUROMokSUU%iZJ*--5ksChAacQK)))?v :TJMMziFcW_ܹ#[NJHHP>@>Hھ}m?gN>ŋ)((dݺuq6l|a^ɼ[w :dff2ydƱ^`0UM]]FG)@ '"A ȯ9y$/^$//HLLWݻwIJJ"??hѵkWڴi*^p4̂=8{,gΜ櫀MFFqqqLjNή(..fF:wz4*cmmmp6z^&JKKt= L*AAAOˋvڡj8q;iii!24|kOnn.gnXuu5o7`Q@LL %%%ٹs'˗/7lV^[a[~mv(;wdɒ%fǭmܭ#‰N:`rssqqqёz @ _nCz𭁛={d|WfLA(v ӳje G1*++={6[nСCMo+vKԾSqĉDGGŝE:Bz3yd^~eyWD͛ǎ;|8C( .0j(T*IIItԉ:k ?K`` vvvfMq7}aLAA/^7N?njpJ;/ڲJjߟVǑ$aÆ6hL֐9)95KmQQQxu)D@Dݻb̟?;v@! ٙs])))>|m}:vȀJ.]jph-tJǬ審$$$ٳguhŅ5kpM8s ?봦_J%2̔wDVlKPJZml՚XƦTm:B3u"ӧOgΝ j5C ӧONDDՐJ룔[n,^XÃ7|e͗_~);9PB+ɪtZ郷7749 @֦M9TRk~^)}c6mۆնBe[ԖIWۀMh469xKel|YEP"Qo!N)SpQСCcڴilĴ< C+F\VR7{l6oތNkGܹsܸqC1*J*@trr'T lmyRM o~1Xc<쳌9lC45T559ݶeds 26&_SEģ:B DEEk.<<DEE7OSCe[ys+7ђMm|2ڲֶh@`|'b!Mkټy3k֬jHofh_~'N( $##ɓ'r?ys)))dddcѿ ;v,vo͛t/// dkp`0(9s&)))R^^Ν;w}p>>>Hĉ'pqqҥK۷ׯdVgTTՐ-+Ū.333?~<7nfʕ[m˨Q67W&MԤPcƌi>SHmVҥKnT*N8a &$$h+4U{mFVV6ʵ[Dhmє?2IMM vvvfݻw:g|r|||.X61mY;w2}jhc0W՚JE&7騭FC۶mQT:SE~o[6h ]Zlc0ãY6oj~*m4͖5];eljkk&$$^k‰GpBz-222xg%$$P"t)%N?k׮q "##%)~-CRK @ ӧb=bIENDB`Setzer-0.4.4/data/resources/bibliography_styles/apalike.png000066400000000000000000000462671420322575300241320ustar00rootroot00000000000000PNG  IHDRn./zTXtRaw profile type exifxڭir\>z/Ѥ4ҌEV{@UV.qoI&rmzqϟ(+M0x>|CM__wu}]}](c}]_׏m|RE|o63z{Mڹ+^*];?^a7j|ȿ=}AU+ g~jwnF*TM}=⅓{[7󸾯Wcm9Z. )0 \aOqE{5ng;kd5c-ݷи2.^rB ևO029}U4$ܯWnsOlu]qb_P1c?GK`ds]zcVhN76yjيUZѬ2-'s.{J*R8jTZj:r+z=vr/zcpb4,6 *;nی.vN:SO; ֮t-v?_~ܿZ:Ϯtߗѱo!ΩgG"G:F 1w?;orUZS:ExbABۅ.);c8ANMjǺ̬:>mזmC_'vm@hs̞c =" 6DCg פz+ܽ;jUԎ:㜵J8-ΆҳXw)itI.BY~rmuٻ}Cc%#, k߳-ej=1Rev~ޝ_Erڢ"}_jl mLl$k.NyrMNŹi/i bJBY#cJhy> nu֙v.0{ל{:W}> [DങxK+R.ΰWؽM"RVbzҌ.8 ˀ,soҴn$vim%86"zK#j=18f9=V T.J$2Z [[ K{U54:ʽ6VVgAg l[H8d(tt^7s̓66Ȑ^K"5_U}nlw6K^X$äU@;p&bT>9UՆ.[+{om|3cuvY^bjZ[Щ^LٌN09c1ro,p84Ξyp;IvJ vZy[Rtz)t ԄטkZd-pLVP aOb֦{jۂ VFn^mt[ ZvFsFʈDNA#G(¸ *-mT/5[vyo;4=!kIn;T$1#wYA/}kǦHzhmQ871T/8U,"1{/./88&0N[dXb]"\j@9AiK*;ζlh5:~5" 8Ɉ..;R1*<"#d7~E6؆P@ ?oa+qSM΀^& `|N`)Ix6>d&8B:Ktb!ga h Iyg ="JW, F4\OWަֽPlBѼ[9 !+*t0@80;Ҳp#ZE}XVM?{r.pyȎdcҽʁ1 -R]D%."QTPEayÞ}}x#BjUz:}/n=CCa,<%[$ &~t9I'^twn gy38 V"Ee Kz;9i^q+i) ezRL[OAI?/܆oPFIM Fw Hmƨ*| DEثG~%^49C:&HQ.Tׄ<"K:ĬY,WLU~x6,CwcG8Iƚ aa-4CRup.~nrmJ(˒l{!o3YB0B6Sv(6F5g:t f4a  Ir֨ 3bBx0}kDuG4790U;JpҗH PF.,1Yd ,rg$f$`:b8 ,qh\4ڡ)A#s ttk1-)WtI>l qSHDOdIX;L7$nP>JꀛGr(74*H`CLI1/ Bg, c/XAn>L?u*ncF(xqwkh穃!3 P*]#PtHiiQh039 8 KassDkm5eqjP*+d+p 3,QPI:.d98B W> `ux:tlF}PcC)[Vx$ŢJƳ$g \"@/!+. "C^ $S2n ONEemɚ ZOPOWH!\&Y'"0d08# (:bƪH=.Ndiλ̅1ڸ3^huJ<٨PwL-S+l?mؕ@U~hJ%7̸RC1ْӡxyd%FDɀGƷ *$m4|wIP?tǎYA9$GδV+`W"sI%եO i Vr19)*Ld=8BTo-Rs[M4u;dp,7n$g瘠8p>֡@<:7Q!*7BJ"0(E]4 F>-q}O8GJ!E fض7>:\&ŒL:k%0v?u \Q D&H_}YO.nObؑ6 [Bߩč^Q5_Ge$+rMI4_,ay'xK-a8cG6Ȧj ɏ~ ^10ұ?(|\WhXCXcsmm0C[ބ a+1N%*Ltܸ%&D"2)U'@u+ݥ <9b6cbs:}ۈO8x yEG34)ND]DI.8jP56uq3B hP@<1 m#9LEʋ=y:֧X`A "8璒B\-:\9e!l (4SB<әIU@^~.>gCi5K{mԢg1yq8e;#AdE`Lbbmf 9a8e\A&92E%%D ؁˃V0з*b9t~H8ҨQ X .pC"F] DuHDX81^G<13s̕Yb*ט<PNgS mI+F0DY>ѻ=  ң$W{`Èc& "{"3pϜV+f !Vb{K$EY6luSc[0 rsIgoGVZU x&{dC0]9V{*qX;C7bN :0:~A?;fuʚFH.l= z‚`X3"]%  (m+ g}0#8IH ūl)/IC;sF:b:p7XH'˟L އ6v4'ǒADxU:ܼ)mpn6AIr8Q>B5`Lf3I0 5i㝒K-ؐVp0}&HYJX+lΈhQ:*y):WT 5bKGDkBS pHYs.#.#x?vtIME 2 S d IDATxyXWYAEqWp_qqѸ$oYLމ1ɼjtf:1,:54( (4-]?Mu(j&uosϹUﭪsl$I!HIIݻؠ0aOE""""ӧAAAMj+IQQQܻwSҢE Qzz쉳3IIIT*T*ƍ޽{$''VquuE$:wL|2EEEHĉ(--ĉT* DEE666 td&77www Fqq1ݺu3Ó@Brr23f].OHH 55 󦥥QPPJB1`u>>>i!CppphP͛7E5t $@ڵk' K.$$$oҧOr 7oޤjݺ5:uml0_w}'ZB0uTpuu%!!\ ޽{Yb:t0oÆ jY|9gfܹ;(qPUUł (((`ҥ̘1s1k,***Ç'))YWsˡ$W}=xe˖-ܽ{H']t>{hyHLLdŊtwwwjjj?~s۩S',Y"egg=uVi„ ZVrppΟ?/߿_weeԩS'rYXXtHiʕFVa҆ wΜ9FiiiRMMMIϯCIz)t7|)##N&Mu?Hk֬m&}ryFFԶm[\<)::W^-͜9S$I:x𠔙) ,cgιdddp&NիWjpi$IBRBjj*~)1p@ʈޞI&R'--Mr1뉍֢h4DGG#IFՕ\ IIIΎΝ;7h7}t~RRR111,Y}1|plll-[O?_g„ TUUacccѣ-b̙믛e/ҥK Zx1feQ9;撕iiiVKzz:7DBBBprrj0NEFŅ޽{Juu5666ܼygy$,?sXt)퓗m%3g$00uֱgΝkt}dرx{{ꫯqp%T*=zh״i%X3>6g-[fN}:NNN,XrrrǬȳczr(U_OW쌓>}C*:{S]c}0h <<,X;Xnl0jkkE1zh $00>c:uٳg9r$rZLNN~Ȱa8t|={6۷o}MV۷9yznNٸq#|\$o)=;ڻ1wHPvv0j(|M}Y_uuu1p@1+ɣR)ɡ$,]֮]ˈ#tR}k4yn:^~e1ƏϞ={hӦ L4}ѯK;;;lmmꫯXt) Ps@@@y֯_O\\\zJrmn z:{u4h 6lɓ'پ};.\`Ĉ 1+scW/IRf@@.]b9s={бcGrssdZ ~-J۩e̙Yt^yu^s_s8w~!Cعs''>>GGG|tUI&Iׯ_߿1GI7Jr(6m$I$^/%&&Jo+o͵Gaez׃ >ݻWܯ*_ǎSzx>G-[Z6/۴iP2ܲeKOByYikK߾}FI{7eEEEɯ6ߋ/oMff֐a;w4x͜17q+1)..F$lllR|TI6sc4USʣ\7$qUxHlD,O[Hoܸ[4hCzfΜi&77 $IK.xM2Ν㣏>"99/T*JKK9|0cǎe͚5BI‰I*p"@ xzN\K<E_裏4~"""8qR64c MJJ4=)oh4?cRRR&̑_urrC/qavÇ͆xܼywww~M6۴iQA-HHH`L8'.]+0uԇJ80"sHh%RH}\]]֭ڵk8đ#G9sNdԩDFFs 9 iӘ2e dP:t豼/o-F ~ 8::ңG9@ 9P bm.C~ srR R˓Ml߾=+/[ 1رc-Ouu5OٙcFP(QUUٳgiٲ% 0:X ^رcQTҮ];YJ#D |iYrXls9) 篟"33AOPXXȍ7̖V/C*ҭWbȐ!Ko> y(qqBBB`r5yY~=oޞ/P\$@8ǨrXA)߃}K.m'a>}:ܸqk׮QWW*߿/okYChh(} www~a>/_lSL`̘1={VkM___9]-2d2\$@8QT9A 4@ Ckr(ek,CcڲsN$ wwwza/Ν;l۶h.]$gF3G^^brttq?j}Z""ڵkV4~Y}]*h\$DbccٴibN\!oNJ,0Z> 88Ν;smMf|ժU,[%KпM9rH322XyX} 3. sG}`ggF!44!C_l2vj@LL [n%''G~Ջ8)++ݻPYYi> j6V||@ '"D@ @ @8@ '"D@ @ @8@ '"D@ @ ‰@8@ '"D@ @ ‰@8@ 'R^׹}к@ HDD3gח-Z0bfΜɓ=z4fѣGӧ[ne|B@sq"ǏjYj$< !!1p"3r"{`O2jc@S=R{st@a$IszELL ,ZÇ/%~XvVNr Ǐ'!! &0l0cSx0m2n8),,˿ ~.];@-x=z4bV _ k׮]oIRRZׯs1f͚-C !!!h\]]ٻw/ -Z`ƌqF._̑#G(**&99?OsRSS6m6=z>{qu 3f̏^O>!!zhZ֬YCaa!wAR1x`MFaa!IOO'**-[2F|2/^$::ߏoPDH2@F$wޥnݺSYYx6ހZn|R?uuu!I@8@ E@8@ '"D@ @ ‰@8@ '"D@ @ ‰@8@ '"D@ ND ωsmzCR\\LAAPD3~V?W 裏֭#''T*:tMM  +7PRRIIIsN}lu\ca֭+QmVUUűcX`#]Vuuu <'''Z-m۶E$mжM6իAyUU111T*ZjСCIOOۨT*ƏD~>}c ̯DXd NNNȊ+޽;?Io޼Ieee.+Vo68i&oݻټys;>&NH߾}-ۇos믿׿uvkѵkWIW-[~={Κ5kӄѲeK._̊+hӦ [tqqɉɓ'˩ 777=ݶm*T{H}\]]֭ڵK.?GSN%88]||<'N_^ѣܺulr:$St0m7wdСClG%={6;wիk׎BO ̜9^z1e+1c0tPrrr"''[*\<317ᤤ$.^D_nC q"\Ǐ'>>^.j~2bڿ?%%%ʕ+)))ϿfN}:ܸqk׮QWW*߿OH7[[[vI~~>$N=̖ܹsm۶ͥKLpz=vvvOMJm֜4ͪiUɀxݻ7|cv+K|ǎL9 ڵK޾:sQݻw3c z=W\!::ZI~Vjj*F"??___lll0` 8P~0qDbcc u,[L~o/5ǀɡgϞ3<Ȯ]prrvڵk 7ѣGȯ+WƹsIMMe;v;RVVF||<:tP*++ڵ+7oҥK 83gΰg:vH`` ;v[[[+.]ʀ ɓKjj*WFRqioNuu5={FCRR:Nc4iF& 8p={*S١h eȐ!|,[]-7֭[ɑܶ9ݾTVV>qFFF6Эa)mllV cǎ)--h Mn555f3vϯ~+y 19o |l۶ 裏(..fٲerhvͮ]ܹ3xzzρ ٸq#ٱm6>VX+/_#55 <<vy-TtZ-<3 toqfI'J\|VZ3|T˖-ٰao^^^ cÆ t:T$IʤIׯKߗt:]jZ\RmmQپ},Ӄ/Jƪrs4E$ZKQQ>QI$wo{I$Iߗjkk()##Y)))TUUźNz}hUWW篏^sַU9ZYYi^68oJm .rrr `9+ג-L?>%[%ݻ';++Kݻ'5H9o~֠jÇKqqqRQQS!<)=_+ސRbbSȑ#xﺺ:魷ޒ͏ZѓjS_޽+mܸQjR[y;ĉX?O> /ǚ 77'Jj}Ǚ?S@vm(..ʕ+L0t+,==SNj*̙D?(Ő!C(//O=zpUFOItf?4Nmm-z^P b@ MEC#?Oc5Jqaz}/-{\? rrr~:ܻwXrssiݺ5ϙBxx8;wE&իWIHHT>.]ŋTTT4 lsLxx8)jAjGOc<\\\kFzz:[&77WHcÇ_w}'ZB0uT%WWW5bk___lݻwUVXpaODDGtO___BCC)..~,W }pJ筷bMjki?ls]i|Zhh*㓔O|qΝk10JǾ9\]v,[,qpp`ʔ)SsݛV=oӦJQiٲ%ݻwgҥlٲ!aΝ®< <<<x (oj8|S"##`…޽'OZ<~kT')qOӰņln޼ȑ#iѢ%jHH zNjj*eee4ykॗ^_n|NaM#N;KVV>>>si$IBR"$I5 WWW222r 'NC:[o+gՋaɒ%۷Ç葲2gҤI6lz*zMjj*۷^xg}kcz}HnBIJeWWWsiK7@@@yyyK1T*zZZZ^ 1V>{{6hժqYdyGII *Ǐߟ^{ @Q(srrbW\\Njh۶-ĉqL5 ]$RWbȐ!Ջ }'ٙsmx"ʡ'JeYHII3;)Jcv+" L7׵)xJN4l5-~GMvv6cƌa׮][ұcGqpp0 .hXҥ\RXwNNCRh"^{59>aÆ1zhDz E{5552w\FB=66Ax4dGZWLJ0֯_ ̙3Q\\Lqq18pH6ooovލZfԨQrXxvcfdO.a.{\\}׏ 0ab׮]ܾ}>77t:'..|ʸ{.w1sYرc <}6LQOJMLm0w\2%%I&m6{=֬YÛoInnٱ;\5 ŭ4WMf\?~|Faʕ<U>ShZ4&aO*++<6m0|VSS}V&)jlmmt./-_'wޥCFǪF} Y0w}#3$R;1Q}lggُ4^OEE[Fakk(9$IVVKMM jڴi#ou***pvv6z~%4.Jc6=GI(xJND_&999sW^xyy E="BD?Knܸ[4hP(J!t)ND &cc IENDB`Setzer-0.4.4/data/resources/bibliography_styles/ieeetr.png000066400000000000000000000433031420322575300237650ustar00rootroot00000000000000PNG  IHDRn./1zTXtRaw profile type exifxڭi >7qH ||`,+K]$dM8 &JM[|U'/Fb}?ߗϫMCߎq^?CuBW;ysϿ~7_6˿k[^!JVPL~f~rOzc~\_/ūsF!~{CFI~9^(}{ݻǽkw6*gSJ^qbs彭+[lئo IS7մL7ےĚOryFYTN7wڳCZp~wމ3sb MɋY۫ʎiECT^}w_By%*υ$F# bR"s)QA&+ϥEH)\zSJ9#yOO,0B#i DjCS "M Qڤ֛s.G>Guh1tLZ0Ѧ=P9ғwOΘsUV]k,]ӀUkmy{c'tN?rn߻]Kt]Ky;{vt"3:!v:{G5{gQ3C!%,7}ݏoAԷ:uoݧsڷtmϧ(5ȧk˅.i[Nܓj)6+iIש,ν>ld}rZ"$W6&u\W#6?FKZP{k@{gfud\kv[bvՙxLCdTf[=}6tlYTӯF+&oACweL }kdסK6qI|v钻B%dX:5Ca|7neI@q6ܻ K "K[8 xfJr(n5ֺˌ:v4li4b}lذ44הmGlmԥu:`ZO*`@dT]ׄ3siwݢ6;wյ 4䒞^!8Xk前]5沒*=Mj6ʢqVQNPk+a/){iNѹ-*(s)Xwˉ5 Vl^V!<ŹUN"hK4M k4cOdbtwsp ߖ@] 2 UX% +͛Z7V#CX\_ng.`}ҵ=]JvӅ^EtT;'@n5!]poh69(3/c_i1W&M\ ,C bmz ,X" ~Au.);C Z>{Ƥ[p뮩Q F9,6%o:4gRӘ *axs(l[݉(k3i?T E J]@(nzø;Ҵu6RYGvF{j6pv=!f/u 6++&R;7YqsX#*`{rmN?nH9yg\: ጸt-í.䄎kxjMW@%*1VY]P-wDx bװ~ul=_97)w0b w$ux!~ẻW1&?~_t!b _kB,7q]Fd, +ҏ,!\1•לh"eL2S;qVV=̝vjj []ۃ @- *Cls}.ҀSwdyg"-u1qH''5M\N8v!m`N ("1Ե)POw1ɞ}eC I#/.@aeq@É)UeedWBp); A:4Ou, o7Pߡ Mua}oeq:X>aB|h[m!b - n]͇! Ѭ.b q0_HZ?|.z 3}Ǒ dL7zk>NLdr Ga&ѫ+ֽk]bW)gepVʢyLWG" ~v2x+հz|6^\l6FV_`U|G :v"Q(jް|BIz<6A{'7g=0a:>0X@7BLb9r'<~'`mCqR-ΒpnlG,,ۧ"FRd% -ɤʎl0]ؓ(2 "42_3نсygS >iSyy0\&a)@jI"i N`eȹt;>2pi77W:nCkD6${&v +!j 6fm:@\le!`eʍ}{5Ozq5F40Xf@! N"10 mDw\| g>؛qۛ@>A$t&QdrK'A%|3LZlTμLG[]r=<DŽ%Q%T ]nCDM`wG 0,+1}׀Qٚ֞I,<PI>]sC\SMԳNJ# *Cs0k H7̋qJ$e@1,F|R4|FIy~r/T>_P 7Ϻ=T l]wD# @ cQ:g/J!8"<"oaF=cJ19W|8k9pݾ"Ru{+N / K93n *u3Rn=|M@rIkt ׎]?(-dc9r킬ɋٟ1XzraWO{x][ +L'a$e_fwB,@|U\D T(gapӿ_#k\\j4"v%sBd 毢}~ >$8C <й=_tLTedhd&'-*q<`N*x4;'w:/3.vg'2XJse~6 p°FٲZc3mJ]ӤWbq:b-`ؖH3 C\NdSoWi.FD Ѓ17ATGI!6>&Rb \1'7du!A/7XXVyp/(z ;L g{-LDpNyFĤ #IEPZ󼛦rG:9@Ef /B脹},R< 8ۭH p? _R&X /yGH )xOv=18.;j6qB.D{ Gm4QW>q͟kJx=$e(ֶYDr]\egɭ=d1E)cv'0$pj;" :xJ(` sԕ40:x'sX/@Ix_1ߟ1uGRGF"jG;C ڠ9qvQ{ć3x 8@!rq46aZ3#CLLNɩlK nZ0* fkDQq6n* $̨l$cR1p彗7N0w}zQVK$Mc=͟3~e)"8\: ̲أK=쯭Oon`sv )<]ym?a` ,O $ك p0pbQϑVL742ܸ$Fu@2DLBac:vm gBẀ,NvC=L4._rOӃ~/c'/zA>bKGDkBS pHYs.#.#x?vtIME 3ǡ6 IDATxy\T* ) ƸDqIVc4y4ɛhlUm4i,i$1QZpAAY " l0їc;5I'ryyss<$I@ xԠh@R)橨>}`ڥ̤nݺ:u*ʈgȐ!S$۷9s&Ϟ=FHOOGRRA롤/;löm(//og~GݗNrJL2zKbb"3}t?H\///1co~%=z0 =@ʕ+Yzgڴi :6*=zu"Պ5 2`ݺuw,_|찲'>x`^z%|}}ٲe 555hRR111̞=@ݻw: : ҭ[7ϟ߻~/6lqP^6tvvK>7J# ݝ~aiiIBB-bϞ=o0|p,ϷP?8888SO_?44i#fΜIXX---ߛp/WDž 6m/^DǑ$ JEDD|xzzˈ#&!!KKKOJhjjZSN!I8::RXXHii)j(;{l^z%*++qqq!11{XƎ /­?W^aԩӭ[7y:h ,Yܹs W^1{W|'?]}K.ڬ=T7dddJK^^'O&--lllڍ)ZaimmVޞMCCC<{1qrrbȑfۮR>c=umUXXhrn'&&KSSL2ŤLcc :5wh466FII 999=={*KԶ_QT9RQ΢jyYt)_+,,ݵY~=!!!lٲ777x7fJCCǏΎ#G訸[Q__ӧqpp $$<1;Gjj*?L._LMXϻwAg殩6뜜믿Nii)<ӊt/S[oLgz999SVVf਌ݻ7EEE׿ߟA@dd$oY0hhh'? F"00ŋ\[͍5s9rjkkYfy"g:LVV[dz쉧'vvv>cNss3$%%ĴiӸ{.СC|???;ys|'={{{4i[lGGG|}}qqq1[ٳgzZ͸qhjjܹs;|G/aر^~eJKK_ʍ7Xxߜݻw9ҥK:t#Gp(׶mL6oooXr%SNUSk";5k`mm̞=-ZD||<m}v;򵴴Ci>pE찱!((Ǐ3zhο&mЙkJ:WVV nRԧ}i<n߾Ν;#<<ܤn!99zɓ'Qqvv///Ζ-[{ bŊGD"##2dnnn899_ ŵX3Gĉ9}yB{ARhjjW^'`̘1v;I(..ի\z(HKKoA$T~~ 8Jwޝ˗/w3̙É'8x Ǐ[n̛7O (ѷo_T*ΝΝKtd`ڢ_]1pevјl$xboߎNӓ+W(W_mR>V=Lmnn@ff& srssٽ{#s"EEEښ'xZkh;]\\LYXhlܸQ+++HJJB3ajjj "((+++}XpK8}4ǏPCW(((08S8d̘1ݻW^`ϟOTT{RY7o$..?lR 4m~XZZe}]7BZL=v ;l˗;ޞpV^?.dss3EEE1BJ:)3]aٲe۳aƍhaaa&x?ý`6n~3c3L2IJJbnVm۶1oTWWo4-\gR]]MEE'%%1cȠ ⨮l֬YٳgAuh4Yپ};6mjw]^^֭[9vj~_tGRSS L0!Cd;ߑwwe֭qm3R͚5dVτێ^Zm@@@|TVVS]2CжuٳMj,,,Xl!!!mo=mӘ1ck aw|jy ӓ+VGTTΝcܸq&cvJ60˖-Slӧ|yF'O>*aL=4 ᤦQTDEEܹsY~=?'%%EƜ9s? .н{wΜ9ß'ecCJJ ܽ{~˗Lxx8yyy;;wfrss/q{ĉ8::oJsi&L`111dgg0dju|Lqq1Ք\[L5Soa`iiNcǎ̝;<455IMMM͛7k555RSSAF4^$IfuuuVv+hZ^jRCCAZeee˩"=inn .Hzr~1sc*66Cʒ.^.ӥWJwQI۶IFJz(͇_"%''K$I---RZZ_˶SAW殩6WݺΝ;)SK$Iw27o@i4yhm:3O$I]派|H n{jF.o*Jwx].UwBVXXXӏٕ~1Sc*!!S#[oq%mjnݺ֛ƹ6[UR@$uF}}G4g{WxP<==$/}+k`qD,;wtɡ^v7n9'%%qMZZZ;w}),,$//Iׯ㼮@9Μ9{GFFoPTTUUo>&Mܷz ggg^z%ʻw&::{`%@ <fo`hii^'"J@ ‰Dʈ&33SXX  @ u" @ ^x"&MBREUocӦMܼyKKK;t M@ ֖QFoOGDm} @ ָ݃=@ѷ'.]C)@ acaÆ ӧOcggǥK8x #G$99SU0 WWWfΜIhhC)GA,NGcc#VVVh4oapLU__h4XXXillIm +Y@ ND ‰@8@ '"p"@ ND ‰@8@ '"p"@ ND ‰@8@ p"@ ND ‰@8@ p"@ ND ‰@ @ ~NWrMau@ 19xΝ7s2c &Ly8r=Wr —_~Ɉ#ODL7|CPP:_oÇsI1c\ݻwY`O=k׮‚˗/ ʼn͠Rb ?jTA~~>Zceeٲe@ '8 Iyn߾MFFUUUrN: dZJJJGӡjuVljj֭["h4222qbSzܹsϣ@ 1ͼT*lقlFŦMᩧ_ 33> 6l@~~Y'O2uT Ď;XjAAAꫝs֬Yƍaҥ :;w\~iӦOs9VZh4Ȃ ؽ{7eeefܽ{W*@Ԇ3gJ4|iݺu / 9;;K~~~RVVdLmm%͙3GNuH$I233%@z;-#I-OSI$iܸqҊ+:%$Ҹq㤺:I$i׮] mݺU$IRpp 566J$IVk׮uXѣG`Y>g,@ O@q'h"6m7bbb(**矧 ߡC(..&,,LNswwo߾ݻWiuVCp>Nɷ i=j-/33I&aii ʕ+ǧzLJlݺh,@ O@Qɓ'ȹsHMMeb u`ذauU{e]7nL+'((ݻwk.vKjj*...bd DZqrr 99 <x S*VKP|.IR;w@ihh'K,a߾}|R9O>웫[[[[z)&LU? 6lgդz*d޼yXXX0j(RSS9u޽2g زe YYY߿2z-222x7(..֭[dgg3k,28pw}۷osUJJJ8q⿼JeV>55kRRRBYY---t:֯_Oii)nBR1rHf͚Eii)%!!.\a=YYY|w:uLك/PDH2@A7If.//RWW)ߊFi|\=ͨj$I GGGP] '"Ag.@ ND ‰@8@ '"p"@ ND ‰@8@ '"p"@ ND ‰@8@ s"555ܼy+**())V{ 0 `cc#ghll t"##ٱcsrr())AR ͭ ݯFCbb"jfFI^h4t:z$INٙv$&&RѣG&777oR2e#k={db Wlݺ_|22d8{,#==JJbܾ} BCCqqqL2223gNNN瞓Ȟ={Xr%W3O6C-ח4V\?J_N]]](--孷" @n9|0Ǐg888ʕ+qvvk*koo 3f̐?[VV|޽;A,*z0*'ٳF)/2&ٓB;ᵱcǒPu=~-V̙3ёT ~->>>l۶33gfxK GGG ;wWQ~jkkI̟?}baaANN|@PP7odܹOQL8ѣGSPP@}}=|嗊;ɥKx~ pzz:}ډ(aƍ5Jع Gg1{bmm͠A:u/`ذaUgwww/_N~~>vvvXYYONu0x`^z%;U3^^^ʜ!sRRR䴼);ɓ'+歭ޞcǎwq9ҥK/ꫯx tuZϴ4.^NTlΟ?OBB'Nӯ]Ç~hFSN@UU\oee%O 55dtc'}1 dsss MFF۷ogϞfUVVrIIHHJNOHH$.\Ю~sl\0nCSS Vo&jYZaa!r[O;Ɖ'hnn6Wm$&&RYY @bb"=rnݺf߾}:tH(f\nn.iii&55V۱r6m9s ;Cll,~~~$''XlIDATSZZJhh(O?ٸq#۷o'""˗/j*XbN/cmmMvv6 ,0͛)++m֭$&&2qD^xz=}Of`h4ˋUll,Nbڵxxxpa~ammMnn.xp&L>e|M<<<8p|Gιs7o&KRRo2d/ihh 66D֭[yoNޔ5mصkZV oMMMfm^gggE;|zyy1qDHKK555|r<==3f ^wޑo߿?'O&99kJ*55UNNNDDDo>_U-[&;ׯG[L2???^~eEݔnlllXt|䕜̱c ֕GDt:]Ɣ]\\6mwe:t///ŅSYY)?dj]}||dذh")((O>acmmͤIزe x{{ʕ+:u*ѯ_?|||Ԗ3g0vXj5uuuڲh",Y;w ={QFz*7n0sLf?7زO4IByuEV3|p3fL;tL|ɑ#GXx1vvvhZ^Jff&cɒ%j-ZD@@qAnn| 7zh.^O?75551rmy|N<?AHH3eee?777$I"88=zl_kK.W^q59gё׷ߜ);d!00xLߜMLQ[[˾}HIIaXZZ3㼞Q_{xzzre&Nh/ӧ~~~XYY5g[dzirMQZ?|ك^GV3n88wMinnÃ$n߾N7ck&TXfA?<2'rr"j4$Ij-k5J20Tݯ\rݻseoSuuuH壬b}Y<<<صkϟ^i̘1CSHH*QQQn5ǎ;:t0fΝՉ'vbΜ9 b׮]rWWW ƈ#&<`ѢEDGGqF;\Scƌa޽'**޽{&L@MM AAAaee1Jrիyۭs6lкO0A.믿&&&l^V˧tTswΙ3gӟDvv6?πJ>},_WWӧդA]]ѿn1b'N &&>}Dtt4j >3-[FHHAAAQ]]Maa!٬Y'OECCV%==^/?>}:NNNqW_}Epp0iii{TTT|rNb׮]ܹ}₫+ e\\\ӧj7{kHVV~-oMFFFޚjiidjkkeƌ&ߖ'%% .w4Ǐgݻ&Μ9~;j5߿ݻG/>|WWWRRRt޽{'(('ObggGXX\pKKKƏO>}o#..?.^~R>|8W^r믿&??^z͛b޽VJwݤ);]ztI׷hNUSS#555>]Vz%I;wHMMMRBB몬m\__a*IK---jlhhhEkw[]]A:ΠܶJ;׋/ tV+ߜ);+k?жJ&}R}}tm)<<@gJv6WàNjR]]TYYis$I&͛ueM1VmwcmCɵ%]xQqA:AIcǎJ'OǏRRR俛kJFfQyWri˖-RBB,?2/_.Hw6u`뭷ٙ^z ;;;ŭݻf޽PIJJc͝;Ν;8;;?pkkko~-Ʋzj͛GUU}!<<_/,,O~"p5nܸAhh(Dfզ&ZZZ?DCv"@ t=@ |ŋ9xX<ϟfs0`۶m?XeeeDGGyOޯAۈ.#.@8.M~~>/nz~_oGrRX{ ߖeϞ=]5ktI\H{oZ}"4jŮ]غuk||bU'r?8880p@-[ƶm 0zha@B),Zŋ;k.:-o.ʷ }ԾGAQs)))=zg}p Z*ggÆ rǖvQe Ǒ$ JEDDjZ1͔|CCǏΎ#Gʿ2oii!==z"""ŋL4 JERRr:IHHҒӧsy>C<==eĈri3o… L6M !kiiCwǸ-*ʤ|kkooorrrڵuKKKZ-NB$qttP6s@Ɯ={ NR޽F15@||<&MÜb'rՋ#Gʱ.]TXwJiO~¨Q drWlggǦMy&|w7RdJi ܖÇ#dff_-4F\HkcbNmk B`+6v___93@ii)׮]3vp"/{{{;bR RY)͔|dd$C '''~_uo #LJ5RJ=<<څW T^goKLL fH imR[mfRmk B`+ҥ6vٳgȵk׸r ͨjܹsyL<,nܸ!G48K3])R)"ښ'xBS)r `SNS[Q ߚT^gؾ};< 'N4R[:(Ѹ-7۔Ʈbaa;(..F$4hO?[nW_q)Ο?O||XY‰z^Jbɒ%r X)͔͕3 m^^ *i*\RXx4Sͅ?qC a̘1t:MaA9sWʃmt4ޙmh4ѷo_n޼ɬYL,_{ÇĔ)Su~ȡɼ{ddd0l0)..fԩݻ;wrMzbXva>.M+/\d[n ܻwoN>.]9vu3F1\RXx4Pvvv&gff2}t+~m֯_ի),,4ٖI& ijPRYf'22R}mܾZUVwl% 4 B ͯF"##5j~)˗/hZV/)((\ o{Bmm-={Dcaa!߽AnLɷR__$I888tN+++4 u |/;;;7ڦj7 `vh4XXXill䱏R[:+f[ZZ ~]ѱmll$''@sDV MCV ND5Vx@ @ ?ʀIENDB`Setzer-0.4.4/data/resources/bibliography_styles/plain.png000066400000000000000000000437071420322575300236230ustar00rootroot00000000000000PNG  IHDRn./zTXtRaw profile type exifxڭicns^'r8ށ\#LJ@?PEV͓#~>S}|h}SizCߟ}3J?/_7*|Yyڿ];8JJ*RXA23X\ϵ ?V\8(/E?~$=^(x|_R{ϸ>QQ.6Wߝ}+߃-n;!iTN&{w,f˝9\sy?P;PHlP+<%N;+sbwӓ 뭛W+֕Y#?y__lAyelpĒù:5h~`A[XL* [*Z=u3Yy.5/H"p8#yOOYi ҁZuCS "M Qڤ֛s.G>Guh1tLZ0Ѧ=P9ғwO^1ʫdX}vݲ{lSጣgZ2Zɪ56Lm^z[vWտ~CQK_^ӽDr: rM :;fqZ#E dPK䈁`妟Bq RW\p? P;)JyzMcvN&LitX&]jGnvd۽>˲c9-u+ LIa{.nc0џV%-P{k /uge<3;L'^Zvb"2gܳ+#e=8*~րbd:Y1)U^\.-!և,N钻B%dd50 ĺGYk:t5m}ޕO{TANbhvXy\* 5zʌ:vǚ^^sĠ9aihul+NONF/֓JڰeXK>iSu 1]m.atݣl0S<~G]]KNl BC. Y㵛5VZl@vq4.sK7,Y7iehԙJFs(Wlc_Mn-_/&7oHuγeĆc4)}Ux?k4 VlX/}<*pZnnK&Ŧ704qdSkwc}jcǷ%(P@D)k2 UҰ2&]6F<'$,8 \6Ǡ z򻔼۝NLzq*RYϾu3*-I*S*kSk8=q3rPc2+;f4in2 ,ܰ3Jl&4ͯYUY"md7G &mguzT ݳ*h>13zLZgC1dq,x;>rYcZ(N͡mu'}wL0vӤZl󃎃R`+evCX0HinӋ:]Qk#ZB~ήbrY`nû"2nb. 5cFT#v:YtFʙ=&|<:RgĥGonu%:j:Έ dy ѶYBp"f6+N 2xx,[PƮc{}prnRG[`w$f!~ẻWsQM~? um y7GL5,Km""& <s+\Ix 1C^D޵6T !?ݶeiypeN'C5m5,JهRu^A 4X|Aebٮׅ g GSp,&Rټep.v=qH]ONj4p`v!N:.GHPׂX;@H)(5w1ɞ}卤 <;G^\^% >!%" D aKĂ2tdWBp); :; 7C›sy&/$Pt2}B Pp BRe30nuEE`>z1a,Pc6W8eS$IbNXy[$72y(o(oBEvBbw/$ZF?|.j|2HƦL7zk>Nt6]%S5DFXMVv]زŏa:sd8؀q]=b4+-HA%2eW޸F랜6<· aQD!HwHBx0wX\ TeP?&K%~Afqt #7l$^>;?k|{A!PmM3'L 4%@A:|Fc$)dnz|BE)0RJsr#ʥ 76 `Tka],A0HU*49xci|b39R "X#R F^B^U?ᯤF̖7v@ʹۤ`Uoxk nne"I>T+2S-5:ScĊ,;CIU &qggxs pD ½Ϫ)dg0񷘍PibZU }ſ.6nf= 3vC {e ~_L v'#J"5¦My~5 |[ PĽNL>>+W1SjJD.m!9䭋*cq' VFPJ?+nTZRgk2Hx={eC|}4)"$S:CBA(ފ|w {e/%0LOٕ|x%5# wꐊm[jD9+cZ!tm%#DN  X!DJ|l WhJ2(= ߸ {}!'"@\ȂGB4L&o'=C$Lm2^Pϛ 2 $(zF]=;5s%0("( S~,:M> obMe0%#+@'䥲2 nd0@7}H]Bu4-2O!Ofn ~KRP& "1 epZ$5ϩ; a6fa@w~v(5ɚ\s fz0(Y9dR>7 8860Z22o4i%13 *l@C(k9"i.Z 5K4~92Z\!2A?nҘ=n@$#a"sA)2K3ŀN@nF`W`n#Gg1 $|yĢ[Q+FfBϗ1nu^~*jՀlԇ4xM6F #v?FMr<K`ߘO[I X|)y0N:1?~sݺuC3m4,,,ʈgС9KuHDbb"we֬Yڶ~Y4 2;;;222PTT*Lݻw@$IۗAMYY$1}t*++9v*`jjj j_;~pp0444+SNQXX!!!3`6.E 0Eff&sɩյ4rrrXx1vvv]?77T*z ܸy&ޔsenjUK.q u놭-aaaQRR$IX{ǀXp!666rzCCVFFڵ{^Я_?Xf Cqߺ={Ǐw>"._8Q_+=z@2k,|}}ptt$--Bٻw/Vã[lNʕ+Y`O=yyy_%8S;880xvecŔ|rΝ˙3g?>555t\ƍGFFǼ{r(e ߇}||ؾ};wi~G}+|}}IOOgժU 4''':u*uuu߿$s3f >c򢾾3g$XZZңG23d߾}Z5kyOΰaþݫzquuQg9x2RyPX_?:;;奨WWV7J]ёN~$11ŋo>lmmy1bz c+x ~Ndd$'OnhYfJssf.tEjS.]ą >}:/^D'$ JExx8999|xzz˨Q"11KKKf̘J\@ss3466vHxV˩S$0),,,j5}U,;g^|E***pqq!))gyƍ ay嗙6muuutM޺|T*GVhZ^x-[_W ihhhs-((ggg6l@PP[nM>^YWĉ1zhm9;n:N>AAAf׉ppp&&&???/L2qssWWWz@EE/SNϏ^zWyff̘3gӊ+$$$v;Y[[ʕ+ GeTTTн{wlmm޽;&;99΁˗/'&&F ̛7@6mDtt4O=|w7axzz /<ۓT*ŝٳEx;;;~mJKKS #''ӧO+Ω`ܦ ˖-"SRR8~88::i&vIxx8W\a&$R>%9CK}Z[ypBLr ݻw7c9߿oRYh,sJJ O*ѱ4O-oN3)[G撑AYYY+GeL޽)**7 drAeoa? ~Ƙ1cgɒ%&mfGNMM k׮5N,Sg~~~ 8Φsa.]JϞ=Ύ~̈#hjjÃd>}:' #GӧO'0vXflݺWWWl ,`߾}zj5ǏsΑ!ZGqƵ z饗(--+7odɒ%}s2tޝ&˗/s=ѣGMʢ4^۷o79.Ox___qsscժUL6MqNu6ϫJjj׮]5>>>xzz2glllXx1(ݻmdRFR_ŋƆ@N8رc:rAG֮>*\QQApp0...ܾ}[Q|{.w&..0u|MLo[va- ggg|||bĈlݺzpBV\:NNN׿EѶk0O4ӧO\'ʹ4LJEcc#/2=;wd̙TTT!HDqq1׮]ڵkDFFbeeEzz:_}$[`|DAAA;ݻsʕN ܹs9y$f„ t֍˻%Jbϝ;GSS...̛77ߘ=JdɉV?-(WAAA0\bv|ZڛSmS$,YΝ;txzzrUž+mdRg|#aȑ#'++Dy}Pҝ)td޼yl[A6/49G;rOTT#66GGG"##IJJ,QQQXXXG7oD<9"ykmmc=ZV9Zuq)>/^LTT6mʊFL8j ʊ///-Z$N>̈́ (,,tP Zvdc|e`"##ݻwuqqq&>%[nwiFX!@q:;.-q̎OIjjN]ry`< c͚5۶m͍wm9 L̙nRVcaa~ R趥L!!!mvrmXOZV>O7^[#Gӓ+WGdd$Νc&cJwJ:0˗/Wӧ|yFɓ'O>*aA0dT*"##illd޼ylذ<yRSSo̙3g? ޽;gΜw%''GvJvb߾}bmmׯyyy\r?τq%ƍݻYv-yyyܼy}qI7%9}4'Nl50tPju|Bqq1UUUܹsǤm59L%:]v1o˛o˗巅Znϫ}[oƲdwsoU{KI֭uuuf_5Ӝ:v̵k+xzz"I/^BglkW0 ոn"vʽ{:P_͛7 n㜓ư7[),,ҥKHD~uFq{=233oJ0yd6lХz|MyM+ݻ(їp"@Ԅ^7{Hss&G8@ <0TB@ ND N(@8 "y5'ŋ>>r 3[[[ƌ#gP>@g=!b'Jxߞqrr{`t }{m>"77nh}>};;;._Ç=z4)))oO2k,jtO@ |hhh F ;wꘪhX`aa^'''q%?'"Ag@ @ p"@ ND D@ @ p"@ ND D@ @ p"@ '"D@ @ p"@ '"D@ @ @8@ HHss3׮]֭[B@D7o>>>2~x̙͛38q"ѣ]nСC :?QFMh^ [ԩSꫯ DkW_KBB^^^̜9n,\'xuaaa+Wʼn͠RrJ?j;@~~>Zceeō7غuм@ y$Iz|b}-z2ٯ7oNƀ} d޽|ٳ]v;Y@8NNNr"믷*c@g˨oU P|.IR;w7K.D~oϳ~zlmmy'8q"bV  7nϚ5k@q5>󱰰`̘1q)ٻw/?<̝;nJvv67|L^u}6999̞=l :;ݻwv%%%L4?^O2[>--uQRRBYYt:6l@ii)oFR1zhfϞMii)ӟ#11-Zn;|7:u,ۇ/QDH2@Ӡ$IRG3߹sJ  ?nImmmWۣ+edys455V$JCu@ @ E@8@ '"D@ @ ‰@8@ '"D@ @ ‰@8@ '"D@ ND ωTWWs-Mf.//DhM  x0` .FЀDDDk.RRRJB["33sԩJ*$j5MMM=t:zB$illlS6uuu$%%Rѣcǎ%//[nR:uCϾ}dΜ9bE 3m /`zYY :#Gvڃٳh42dvvvdddRPTL2w @pp0...*Dlllxgdo>VZŚ5kӧOgذaf+%==UV1hР. ۹sƍ###Ce 7nܠSe(--7dȐ!899abcc8q;wlVZ3լ[NN{{{lll9sಲ2v܉CA9tЏzv3Jr?c={'r^z%Lٳ'?~kOϏ?|׸ңGZ-fGGG(,,4os6[;cf͚Ehh-%0`ׯwvvK>cߩ \‚ ۷//^ݝR ֭[̛7q;I&1vX ?\q |2<ȏgdd7蜈ܛ6mb̘1?I=zz쩊5еاΊ++++q6X[[w>p'QABUUȑ#:qǏɓ455_XXH~~>f =zT9ҥK|h4INNTUUFz߾}TTTǹsZխj9z(.P8t:|ᇤu.&!!A6ϟȔ)Sp68qe˖gc{Vmt:ڕ-==/$&&2i$9nFSNsRnӧOFJJܞ!!?~VeZ͏LvIϞ= VTT@SSTVV鉉455̅ ڴk)8܍$&&Z6wsPBՒիWLq>SzUOg:{ݻwӧ9}t#akJIɞ)ccs!)) xgt֭6T<幕CZZZ}'򰨨^`ԩK/I;{IDAT2e )))TWW*cggo-I::իWټy33f̙3DDDDo6111kFii)#KX[[… M۲e eeeTWWSPP m۶$&Ms=^O? 4?ݻF_|k&N:źu 66X[[e9z-.\ĉOo:tHCvwwܹs̟?{{6}!99w :_WCRRׯgĈm5WޔNUk,={jLݜ.ӟDXX?ill49FjJ?n 4iYb5cdم6'--ոprr"<<y.|rىܸqC>ꊍ5UƆe˖G^)))?~mΜN?#FԄܽ{sa.]JϞ=[_~Jutd7bŅӧs}8r^^^1p@\\\B~Pe0>>>xzz2glllXx1'0vXflݺ___qsscժUL6 OOOׯ>>>3g7nڲl2.\Ƚ{<3fLv;v,/^'ۛjFŠA{>s 4/Ve)++!I#GGme(l2zEYYׯ_ӟ~iٰaCvMnRPk,? 2Ĭ˜8@jj* .Rq<==3Oi\:3q!<==r &Mjӧ~~~XYY5cTQQƞ J6';;[Q o>z=jȹs`ԨQ&c{6T~ꫯʻP'''֮]Jߙb]Ƶk׈W^cΝ̜9S޲0CRuXZMzz:_}$RZ)pW'W^GGV\"mꌵI:|O?M@@PPP`(K)=** 3gKPP mʵ.+k.^Sm޽[>:yoϞ=̝;W>6p^^^ٳG5j999Q\\,_PP`$''ѣҳgOVX#<"=z47 oT"(( 9w} ;DvMockJr9Tݜ.޽;*'ˋ=zg,9td\ۣyٳg|7w%/r{֞]hisު;w.'OL0nݺ1VGZcGl)dv܉NStߙINNFV3qD $00+++>/^LTT6m"))l]JutF///-Z$ 3UDQQF"44!/,,lu7c<񬬬hll$99YvR/_6yfi0O<<0`NLrrrկ~E~~}:h~Y}h4Ə^ɓy^2_Mhh(Ǐp1,X5 ˗_qLHH`ĉ;vL^ =VVVܻwKKK(++ޞ &!۲lNNÆ #11N:ĉˣM #d.] !خ&uj\)˝#<ѣGgJz7z^xVXABBFk1:y$3رc %44T#͙0aN/ 7w段Dɞg:!!!߿_~tDFFһwo#6֔]',,5k裏ϫ }ظqF8q\_~Itt49999ZnO.\{9sw}~_0|pN}92ٱc#G$=={rVX!;u{a\]]HLL[Zfǎ;Z GGGaȑ[oi-f HIIfΜ8{{{RSSp|3a ill̙3GV޽| Lll,puueȐ!߿HBBvvvRQQ d„ Ӈ;;;2d'N޸qR1b׮];w(/|zE\\[lʊ'(۽{w&uj\);//N#C wފzoGc]M=8r-ZMll,lٲW_}۷ogWS踚Z?ǏgʕTTT0sLT*Nرcӻwof͚ٳgJHH'NTġCd_gǏW mlNnn.#G ;fΝl޼YA튍 휒]%33S-׌3prr.XlٲEFh4$IRcc(ݺuKjnnREK$IRSSSϘ1Cvt=I+VSSӡF`ݺu[o%I$ݻwOjllK.=+**dՙWYY)zZ 477KUUUr}-~񩭭mUNkUo˲J͍%KUVm35WޔN5Xn~)=]sVKuuuݻw0YV|J)3mZT[[+UTTҳkٳ%Zmq1ӷJv5;;[xbI${s"?ft:4n8)%%G' T簾&iݺu17߶_~Ys玴uV)11QL!+V {JOHH$In;z7qvv_Nb޽DEE~~$''q͛PS󠨩':~!TTTÚ5k?>Gee%}X\zBg.ׯ_͛ckk+߻wgg<58&zYHssh #;@ :@ ~8Nŋ>|dsaK,i󃬺:~_Gq>>>DDDQ/4J!ݻݘ۷uֱvN5ʺ[V 7a˧ /DFFgmn>@X*Olj8880h /_[]KMMeرW1v偄=6RHy7@MM K,fϞ=uP]-2RfHhܾ[>O(r1}Y~i:͛7Mɿ )~X?].knn؛c/*dyCkooorssuKKKZ-NB$pttlWgA=Z]N͘g϶Իwo㩮VL7Dgr'1ЫW/F-3|rZS!ٕ+*___~3ƌ?K,یWlgg͛u|7_2)RdJi ܒ#FGuuudee_4>\(kcb|ːJkyۆ6%>6#JKK~^ NπM{{{9bR ɮJY)TNNN׿4u7\ڶқRJ=<<ڄtW T_G~Gtt4fG emR_on|ːJkyA6!e4 dsёׯsUP&w^"Ȕ)S͛vMdW f|QQ|wlmmc=&re?Qj0J! iJu;wSO1iҤV_SKGURPP B_ugeڵb$IɉL۷ٱcN k%8^^GRtR^z%9wKLdW [f ˓۹tYyWh/]$6MKV nf*s˰Ɯ|8#GiӦ~vͭ[ݻ7! ۄ-m/ZΝ;ܾ}d޽{si|2fѤi3$$D1\RHw4vvv* ++3fcz-6l5k(,,4ٗɓ' emo@)dٳM'""Bym?CXkVիukS!;x t:]+MoOFSʟPhhh ""1c+VпZb$>s #6Sa=Iss3555^|u<<<֭b$ vt444`eeFY~MӸMC@om`ggꍫi} ^5 zprr2yԗWqͭ:|߷rssoT@ $&&P/@8AhVY K ND ? ?^?}=IENDB`Setzer-0.4.4/data/resources/bibliography_styles/plainnat.png000066400000000000000000000445701420322575300243250ustar00rootroot00000000000000PNG  IHDRn./zTXtRaw profile type exifxڭiv7EsN pϩvfݧZP7xx`kUZ䣎:E>FJ}OʼUY>x?Mޗ?N}~N^((~g=/T=yi9߯.s~J1pCJ{2މEvߊW_.R[' ҏoǟjwgu6*wQ?J^qbqT>%n:vs4R7tL7kyE5gYi ӍM oϒ}ǻN;đ9q:g7ϟסW++;y (>϶-tP^; q}.$\8Nb 3I<D[*ZD;Ne=Ǝ=.\nr&OhJ[_RAVR{Kard.t]'ґơ_3̛L*D'R`3hgCId;BB)Ѹ1~7 ˤNF`v= ;9@]756Nv(r(R}+cݹSY8sXiZdZ^%V B+;RʁocQc)Ϥ2iU[c`@+ ǧ!: c[BMz&Dy 7r/ bT<3+ K,۵V~r@GX3!LL8dk_%>q8*YuFK-vlRKH0Ku j(." @fA?Z<7.?*B;\Lwour| X\[ BDƃc'4 f^׈Q;Q|!4Dg3 VB`% X؜ 2+#/fzLx1FvPŐsghz4ms?G@e^D ^(%h?Yز5bEBQ5ὔ| XV)E )ΌBNEJ;Drqe`h۪B]&/'(  {7$ۜr3̀,B58 &rV5Pcwog?00 woTYI33zV+*߷A)=Y!jiT'WwRfm}0+5 I>KS[k ~w,8&1MFq ڲxq2(; ǡ7Uhe}>wa.'h&nYe:uC3(㍤fA1Ğ &CE1o$A)~}M2Ro)7o"@wQ DQN;yEӶPeZ<gIp53\Ă4μzH߸G o]}w3n+=.-#:K0Eϧ:A</nϘB6Ԙ/wI`OH{5* T1 {#}+c?^ r_y0[7ÄROve"&`zXGna f,FS.@FZo"Est\M~B=XL%{ #GRow Li;5=O$fH߈ o6:EgPVґ18tw#s܋Ϧ3_UN&>it-9*уTf<IQ|k+ûxu2h^4ݐtۂ={n';7Eȥ긳{fpGCX[A`"ޚh8'਱]D#;ah%fV! _ kvK*SADd ڷ&$& cʿ7<bpk[{a -(T8A %K)aFN]}ƞU 9`wLE+0Ǘ=nbT|=ƧIiYdșK{)|qx2_7-m&L-| Y}y'A܊* 4{,{ ITk m=Ҍ@t7xYU 2q$Lk6@2C06N$=K HR s)R. 3q<,g2<EJ*`1<(dqi  ͿhKq@<ŧ=;_ ]kbKGDC pHYs.#.#x?vtIME /m IDATxy\T " \DPEqqIVc$y4ɛhVi,m$Ҹ$KEeQ@qن; |??~8,yιsϹwc#I@ u*++txyyh~}SRR )S`kkT\\LLL  "$$]uHD\\wa̙t3gt4551p@HMMEѠh4iw!-- PG$zMȠI:u*9rFChh(UUUشorrrdtھ'O#G}w=6tҘ3gnnn&גdѢE899,h4  '7oLJR._Z~۷Ht7nƆN:Fvv6EEEHDpp0ݻwWwߥo߾,X\E~lhINNW_eРAr 7nܠڵ+yyy;vu|seIgۇ]tA3sLpuu%99<\\\0`;wdŊxyyoC]]˗/g<dggzjEUVaѢEl2̙ӧ7oUUU>6F"55C5:Z}חM6QRRB7|G%)))XF}}='Oݻw+%%%L6 777WW^2}t{vvvtEU&GGGz)bihtB~Q[ٻw}) p_u3n8V^ܽ{w {{{f̘@ii .wAil>szhҚ?wwwzꥨJ߾}޽;ǢESNg[hh(_df =HII!22'n~X#ZB.]… L:/RWWǸq8~8$h7n|x{{СC ..;;;MF,yHSS 444X1^ɓ'$0\]]֭[jݻbٳgSVVFn݈穧b׮]5 @6'χ~ȋ/Ȕ)SF^0%K0w\Ǝ /*[eh*>Ο?ߢKЪNLmlLJ,94F\tI&¸qpttl1Zm򦥥^ٙ 233$??K.Æ w%?E:tT/y||<~~~444PVVɓu`.˗Uud8wmB}}=cǎ,FA׮]ejm,ܘVTTFaذaY^cҥ///׆ ;k֬aȐ!lذOOOyP֎>Sޛ/^T#&+5ook.HNN/$22>}0i$<<aĈ8;;ĉٰaGn,1|1 hZFMCCgϞ%555G0jԨOA/n7od.Z;wZ9-b˖-[N{{{HHH`00~x*++ &88{{{{=z… U©S3f yyy&;\=UkV0[!#Gdݲ?>ѣ̓_XXѣG '@掔Ύ 6;| bS{?dDi26s1jՕ+WgL:;;ƫ#<"I|w%)ɠf-˖-ٙk2z6ߏj:Poͽ6=,Xu_JuZɓݝMF~~>aaai&͛'?Iضm .ёM6/ |=(ܛJsivڵDFFEN !!!ӧ7n$++WbggG}}= <899IMM`0C=ĉ'(..Rzٳ'L .̙3TTTPZZ޽{IJJbȑxxx(*&88GRQQA^^Z3gAyy9 hu)_8uV֯_]RRƍ9vZ˗/sy_z׮]?;wo󧧶`}S{ظq#ܹsx-~s4ffR"""L<P#|eW_QVVf2Ν jeiv+4fϞiRbkkg}Ʋe2dbߍ۷e9rd|S}odffN `۶mDGGߟl\w¸tFbZl gggn޼Itt4'NUZҜSN1~V[p zU{[MlzРA A*,,LUVVJ &i:NtA*//$IMVWWKz^ZԯNZvU]]-$2ill233 .HMeǬ-c6Z#yk.d6o7##Cxb|ӦM]&ݽ{WQ/ni+HJiH$IRSS"׿nܻa#:o.MGK#z={lqM gggfw?jtqqiRͼtޮ򻸸e0bkk˃>خJ:vlΫ8^i駟7W*ܾ͗}[;sY-u>)]־T*--E$lllQ|TIFK:PS{ǭ6=x{{#I/^Nڳd+j|o˽޴?T޽fgzun޼Ihhh 眐@aa!MMM̝;ת|_q%$I߿-=ku ӧO4 ٳ'f͚vo?p.mymp"@؈`A?D@n4B@ ;RD566)H_q[+?e?zO|_#~r>WWWҍ۷d֯_ԩSIIIN;ϳ>̙3/!x&۷NDfΜ @ll|1))#Gf͚Ō3(**RL7QYYݻĭ#$hgrc O‰(}rv{=z &&Jp`g'Nx9?~''' b<}K眨QSSéSpqqaȐ!r5\t/2qD4 t]k~nNS=/cnˈ#܁`xbxaPÌ7*VZ`NNN_B8w&\zU"?z'2{l\]]~:W^V^SSݻw|nDD 777~ҭ[7xaPx 8uJ:uk&lٲE"?z'bkk˶m(((@$0`j~۷ټy3'O)`ϗOrppGEZtWEݺuS=?B\i~nXZ:s^@ QGj* ̚5K5:OOO3f|D,|"**JoԩSVkNȊ:t(%%%ddd,|1|snK/Ē%Kf˖-Y3f Ǐk~&˗ӧU  ۵k׮o"33AQ__ODDÇO?%<<>}Ӎ_+o?1~sILL JJJTV=AK$쨫c۶m̝;Ws $IԩS899qe8aHLL497a$&&300PLpBCC/=;,M"[3o$IÎ755QUUE׮]1 l.]زZ\WWG}}=t:w(%%%xyyTjut:lmm1 &Ow; 995C[i+j[OQޮ3otH:s^@ bgܹ;ź@ ]P 455 p"<@ q@ p"@ ND ‰@ @ p"@ ND ‰@ @ p"@ ND D@ @ p"@ ND D@ @ iNSS׮]Ph] ~JN$&&sKN=z4se?yqv7~ _|СCOD&O_Mpp0uuu+|:tXzӟݻǂ xxױʕ+B@Sq"3h4,_/65^O>s 6l 4/?'߼$ Ν;Q^^.QRR@uu5&C]]z۷o[fCCo&77WNt0Gӑ͛7 p]Ο?O]]x#1{FÆ puu5Y~=YYYg.@ 9Yhׯ_QQQOh0vX9{ݛݻw+:-kpi>#"1nMKOOgĉb ***mݻ//ٸq#[l2L4@Ξ=Krr2cƌo׿5=b}m-_[j^N:c1~xŬ?l׮]6&&W_}Tv`޼y2|p9y$ܹg}N:1grssٰaݻbx OAAo&33YfY,ckkyws׮] &|4哓y)**&Xf nh4 ƬYu_&...\j;;w'ONtt4׿F!I$k3P^^N߾}ͩn pkLG7ZNcc#ZI(//UT‰@`-bE ‰@8@ '"D@ ND ‰@8@ '"D@ ND ‰t:B ++"4 !CIKKcΜ9AVmd19xZ- 6O"I)))444(N```h4t҅#FMaa!ɓ'gΎٳgM`ƍ|$9ҥK|Wt:RRRHHH?TTTF9::2=ٳgM>|Cɫ c =J]]iii|$''SHll,?0QQQ ӹ}6&Mjӹr k֬/K.?g<3&mQ\\l)))\x:gffryS)_ΡC0šhhhɓ)//2N:@rr2r[ts|1峳MOZZ[nk׮)X\NisʫRyohh ..`Z-D ^Oll,W^8^Jyls[ga-555q)N:bX횹SJ6^֯ٳgOYYMDD-ok.HLLW^֭[+uֱuVƍǕ+WXr%˗/gܸq<#\2\\\Xf G''xxx{Rp%GNXt)K,ݻ 4H.\ 44T.͛79s&>>>0i$}Y,X5kV(ׯ_G}d/dff`VSYYInnqF0a< >SNѿsNt:_~% W^e׮]>իW3x`^~eEʫX^ر^/PMt_W׿ECCx)Uҳ>|Ջ &P[[KJJ|p9r$qqqV]knl%^%''9nnn7={߼K]lDnܸ!om^sttdҥWbb"ǎ3'ּvSS1///sW,Y]_[Ft֍Sr=8x z" ~ѭ[7(++_2}}}f8::h"bbbO>aĈ8;;ĉٰa~~~Ɋ+2e 899oӧ !<< Ν;GQQ&/׆b{d˖- Ÿt8q#sCo*߮]j <'''F%55ɓ'&osa/^zCg,YVeѢE 8xy ;;@Fŋy񡲲Cҿܹ#/O>Mll,/dȐ!&)..OOO$I"$$.](X~ҥ<su9'Օ#G(ʠV^MJ5?00k׮YԉUUUٳ$,Xx)5ӒZ網~r &L0Y|ٓ;vUך۹6Qͦ(٫ ϟ?h ZѣGٳgIMMeС5{Vߟ_~Y^j*1D:DSS\vk׮K/ģ>֭[>}̲`^FcFYZ-)))|HbYfTF1Q`PۛWkrzΝr>iuu5=e866iӦ{nCii)/^$33}neW1iiidffáC2d/-mĶmvd0gՉ';v`Μ9 8y|CW:t(QPP/666 2qO0_W,]p1v:u*yyy&t\~*t:G`0p ZGRo>Ǝ˱c(//O>9rSUUeb._,;G狱?#GC~d쌽=wΎ|qvvf̘1xyyۼ|ff&> qqqsIƏOvv6}͕ Xd (ɠV^MJ5?..~Ç)`Q' {9Éa5/ッZ^s9d8~aĈ;cʺ7ڭ1cƐga|0t9J65<==9r$wZ?>â^hgggxWyGwXFخ]vӧ?Ʌ ܹ3OoW⡇ĉSZZJii)Q__OBBO<iiiDDD鰱/D3yd:0ZгgO***HJJˋj"""O>lܸ3tPN8ATT={$88-[j>cٲe 2`=JEEyyydffj*bccOzT ̜9Pzꄨ?f̈́»Kii)r'OcoN޽֭lڴ&+JFF#33u[oEZZU_M555Kbb"UUUTUU1}tկ朝IJJ… ͘1c߿?w說ӧO? oooKΝ字Ν;j9t$%%QWW(88X;v,eee\p;;;ƌCϞ=ٷoNNN=zTwr7np-\]]}:'OrRRRѣ3g̙3TTTPZZ޽{IJJbȑ?^ZNNz*++[ѣG+ڔ*++١=+Gn배0V*h???{M6 77oVRtN$IPjjjjW`0H$IRcccO6Mvt]`0(XUUeU]RCC}0f)))IQz;2V󗗗KAjjj2ѣ^oZ455Ir}ƼFݻg2v&ZۼR|RnnTYYisʫX^0߼jTF;w#HwܑLd6ϫ$2Muuj̤/fbS,[s?ZFgddH/^4I۵k$I3N5jCee{IZVOwߕF%EGGKGIn!/J%%%҆ 81Y~BKΝ;McccbI$Fj) ܹsѣG)//gϞWG@@EܼyP:u$߽{wwoܜ@ :W ‰GD.^ȁT?X=AZZ6mRI:?T-[ޮvwUFR466)9`W 8rrrXxqf_\d#/ѼZMe-no桭m͊+xWM?"##ٱc7nl59Ip"...ߟe˖i&kIII1޽{+g6֭[6y KUU/fǎ=zV|JC_e9s&cǎ5đ#Gxy'ٿ?7oTMoNee%wHD{?|Iy֮]+Guljjj1˒IǏ#IqqIZjZ?Æ IDjj*5557&ŋ8q"wСC[Ƞj ..;;;MFÿ{{{燍X?J._~s%.\ԩSƾh wZ7!++E_7j]k&>UOɩsJ=z &&JQ bbb8qE ɯD< 6#GĽQz*V n>jXlmm-/>|8,^XnСCWvrrbbggǹs"Y-lywpք\nm BE[ MmR_ m?ZM%cGn ???9R4[~jڀOʉ79޴6RvEb 4OOOo+g <SNrrjaÿ+WZ?PіBSԗM6YZ!7Ե ݚgՕׯsUjƇw*3ƉL4 n޼W-|yŋWV6??_~tppGS <7J᛭ [oR}ְuVx &L`rzR_ MmF4Knnk~C]-}$cGⶄ-۶mIpssc~)of͜oBGEE |sq}}= >O?p^WLoN||<_|6[[OYMMMTUUѵkW VII ^^^SoRY#555HUrQ__=:Ν;hZihqvUUNNNvԼhϟa:tb0MuG/֖7ZMMM&[GmAM%c{kxדE``I:t@8P/@8Ah:Y K ND ?{D_@ '"D@ @ ~?yP7GIENDB`Setzer-0.4.4/data/resources/bibliography_styles/unsrtnat.png000066400000000000000000000445501420322575300243730ustar00rootroot00000000000000PNG  IHDRn./zTXtRaw profile type exifxڭiv7Espvf\ZP7xx`7%5!CFc[}&ׯ ~쯿J=oʟ2>wi(+9d+DwK (}O~P)uϗO_.R[' ҏh+?T*UwQ?J^qbqVl|)|vءHj$餙ns#JK#ts='NW6]+>Kz~;u|Gż Mɋ)Պʎi;9|xc Wg\K,M`>(!~F#ĽגbMESMRL<ɋ$|RJsz{sNKج6B#T,?M:ZTVmu謥JZkQ&M[m6K^{뽏>G QG 1䦓KOΞ1ʫ,Yj>[{y)?pgZ2dbj՚u6/X[o;v_~w-}w\kڏK$ѱ,7޳ؓHypLגzsNAs۷o-oG炷۹_ţ(5ȧk˅.Gl:Ϥ='j P`'Is܎޼Tg7Ymi]ˁ,Q6%aM#:X_ڍ% +W\;s|d./ hP b~(>cU* &tZn<'NձZ]/A"UF?r-,?wjBlzYlxL\$Pdvi#$`,enϖtcĎ3(F\&amhM`S@'ڈI4f[b 80Y좤 ,2kNj~c\חg:@wcӨ]![-̆t]&E*0YЏMb%K菊Ď][R#ՅiY྇t5bHg"/7|fAJ(̳~ PUedssel'>b$}44AXuRl+;(\ d'z? [VlVPv^>\,~szgF!' ݝ "20`xB4cuR:d G%a6gZnftpE'A}Dq 5ixfWx*# 2PYÐñd=uqk( kLlcž֬^inLepsXa38ڍFU'Z)0%Dč; #>gq I&X1x:FcaS ӝ7G +7qT2):UBQ+[ V Wqw'ǓHΈtmQ~ꬴҼpj:ΎC} .1=pƸt4TMEV0B!4Qܗ=` ;%Y{C2ǩ`w9HCc FM_,LSAaF2TP°+`rP>9-7F[|t^Y6aKw7Hc\4|# {_-'!n,N~S] XL-L%vbC~<=Ea"bs)7yT(B=_1*ISCqvl;]Q},oyMR.j*2cC.y uI7c^0H+( svrM$HߢJ4&ufRH@Uyz4Ɖ1N o&>%v+ \vĝh,*  %@9ty"B_+ݞ1B6Ԙ/wIbOH{5* T1 {#}+c?^ r_y0[7ÔR۞tma"&`zXGna f,FS.@Fe;.'DX݋ t{,JwF"Eow Ls|2Z2Pfe}G`Nn 8p;4_`fZ _;p_B:GۡET|=Gub!l@ErF|w}/0O릥߄E#oA1 /U$[RBO7D@ /^7#(DG}3Ge>Ymku2BDJm 4{*Sމr=#]oOҳJ@#La+raN1a9-gA+V 8 BVi7f\BC/}zi|xN7~ˌ@@u? pHYs.#.#x?vtIME 0@ IDATxy\T " \DPEqqIVc$y4ɛhVi,m$Ҹ$KEeQ@qن; |??~8,yιsϹwc#I@ u*++txyyh~}SRR )S`kkT\\LLL  "$$]uHD\\wa̙t3gt4551p@HMMEѠh4iw!-- PG$zMȠI:u*9rFChh(UUUشorrrdtھ'O#G}w=6tҘ3gnnn&גdѢE899,h4  '7oLJR._Z~۷Ht7nƆN:Fvv6EEEHDpp0ݻwWwߥo߾,X\E~lhINNW_eРAr 7nܠڵ+yyy;vu|seIgۇ]tA3sLpuu%99<\\\0`;wdŊxyyoC]]˗/g<dggzjEUVaѢEl2̙ӧ7oUUU>6F"55C5:Z}חM6QRRB7|G%)))XF}}='Oݻw+%%%L6 777WW^2}t{vvvtEU&GGGz)bihtB~Q[ٻw}) p_u3n8V^ܽ{w {{{f̘@ii .wAil>szhҚ?wwwzꥨJ߾}޽;ǢESNg[hh(_df =HII!22'n~X#ZB.]… L:/RWWǸq8~8$h7n|x{{СC ..;;;MF,yHSS 444X1^ɓ'$0\]]֭[jݻbٳgSVVFn݈穧b׮]5 @6'χ~ȋ/Ȕ)SF^0%K0w\Ǝ /*[eh*>Ο?ߢKЪNLmlLJ,94F\tI&¸qpttl1Zm򦥥^ٙ 233$??K.Æ w%?E:tT/y||<~~~444PVVɓu`.˗Uud8wmB}}=cǎ,FA׮]ejm,ܘVTTFaذaY^cҥ///׆ ;k֬aȐ!lذOOOyP֎>Sޛ/^T#&+5ook.HNN/$22>}0i$<<aĈ8;;ĉٰaGn,1|1 hZFMCCgϞ%555G0jԨOA/n7od.Z;wZ9-b˖-[N{{{HHH`00~x*++ &88{{{{=z… U©S3f yyy&;\=UkV0[!#Gdݲ?>ѣ̓_XXѣG '@掔Ύ 6;| bS{?dDi26s1jՕ+WgL:;;ƫ#<"I|w%)ɠf-˖-ٙk2z6ߏj:Poͽ6=,Xu_JuZɓݝMF~~>aaai&͛'?Iضm .ёM6/ |=(ܛJsivڵDFFEN !!!ӧ7n$++WbggG}}= <899IMM`0C=ĉ'(..Rzٳ'L .̙3TTTPZZ޽{IJJbȑxxx(*&88GRQQA^^Z3gAyy9 hu)_8uV֯_]RRƍ9vZ˗/sy_z׮]?;wo󧧶`}S{ظq#ܹsx-~s4ffR"""L<P#|eW_QVVf2Ν jeiv+4fϞiRbkkg}Ʋe2dbߍ۷e9rd|S}odffN `۶mDGGߟl\w¸tFbZl gggn޼Itt4'NUZҜSN1~V[p zU{[MlzРA A*,,LUVVJ &i:NtA*//$IMVWWKz^ZԯNZvU]]-$2ill233 .HMeǬ-c6Z#yk.d6o7##Cxb|ӦM]&ݽ{WQ/ni+HJiH$IRSS"׿nܻa#:o.MGK#z={lqM gggfw?jtqqiRͼtޮ򻸸e0bkk˃>خJ:vlΫ8^i駟7W*ܾ͗}[;sY-u>)]־T*--E$lllQ|TIFK:PS{ǭ6=x{{#I/^Nڳd+j|o˽޴?T޽fgzun޼Ihhh 眐@aa!MMM̝;ת|_q%$I߿-=ku ӧO4 ٳ'f͚vo?p.mymp"@؈`A?D@n4B@ ;RD566)H_q[+?e?zO|_#~r>WWWҍ۷d֯_ԩSIIIN;ϳ>̙3/!x&۷NDfΜ @ll|1))#Gf͚Ō3(**RL7QYYݻĭ#$hgrc O‰(}rv{=z &&Jp`g'Nx9?~''' b<}K眨QSSéSpqqaȐ!r5\t/2qD4 t]k~nNS=/cnˈ#܁`xbxaPÌ7*VZ`NNN_B8w&\zU"?z'2{l\]]~:W^V^SSݻw|nDD 777~ҭ[7xaPx 8uJ:uk&lٲE"?z'bkk˶m(((@$0`j~۷ټy3'O)`ϗOrppGEZtWEݺuS=?B\i~nXZ:s^@ QGj* ̚5K5:OOO3f|D,|"**JoԩSVkNȊ:t(%%%ddd,|1|snK/Ē%Kf˖-Y3f Ǐk~&˗ӧU  ۵k׮o"33AQ__ODDÇO?%<<>}Ӎ_+o?1~sILL JJJTV=AK$쨫c۶m̝;Ws $IԩS899qe8aHLL497a$&&300PLpBCC/=;,M"[3o$IÎ755QUUE׮]1 l.]زZ\WWG}}=t:w(%%%xyyTjut:lmm1 &Ow; 995C[i+j[OQޮ3otH:s^@ bgܹ;ź@ ]P 455 p"<@ q@ p"@ ND ‰@ @ p"@ ND ‰@ @ p"@ ND D@ @ p"@ ND D@ @ iNSS׮]Ph] ~JN$&&sKN=z4se?yqv7~ _|СCOD&O_Mpp0uuu+|:tXzӟݻǂ xxױʕ+B@Sq"3h4,_/65^O>s 6l 4/?'߼$ Ν;Q^^.QRR@uu5&C]]z۷o[fCCo&77WNt0Gӑ͛7 p]Ο?O]]x#1{FÆ puu5Y~=YYYg.@ 9Yhׯ_QQQOh0vX9{ݛݻw+:-kpi>#"1nMKOOgĉb ***mݻ//ٸq#[l2L4@Ξ=Krr2cƌo׿5=b}m-_[j^N:c1~xŬ?l׮]6&&W_}Tv`޼y2|p9y$ܹg}N:1grssٰaݻbx OAAo&33YfY,ckkyws׮] &|4哓y)**&Xf nh4 ƬYu_&...\j;;w'ONtt4׿F!I$k3P^^N߾}ͩn pkLG7ZNcc#ZI(//UT‰@`-bE ‰@8@ '"D@ ND ‰@8@ '"D@ ND ‰t:B ++"4 !CIKKcΜ9AVmd19xZ- 6O"I)))444(N```h4t҅#FMaa!ɓ'gΎٳgM`ƍ|$9ҥK|Wt:RRRHHH?TTTF9::2=ٳgM>|Cɫ c =J]]iii|$''SHll,?0QQQ ӹ}6&Mjӹr k֬/K.?g<3&mQ\\l)))\x:gffryS)_ΡC0šhhhɓ)//2N:@rr2r[ts|1峳MOZZ[nk׮)X\NisʫRyohh ..`Z-D ^Oll,W^8^Jyls[ga-555q)N:bX횹SJ6^֯ٳgOYYMDD-ok.HLLW^֭[+uֱuVƍǕ+WXr%˗/gܸq<#\2\\\Xf G''xxx{Rp%GNXt)K,ݻ 4H.\ 44T.͛79s&>>>0i$}Y,X5kV(ׯ_G}d/dff`VSYYInnqF0a< >SNѿsNt:_~% W^e׮]>իW3x`^~eEʫX^ر^/PMt_W׿ECCx)Uҳ>|Ջ &P[[KJJ|p9r$qqqV]knl%^%''9nnn7={߼K]lDnܸ!om^sttdҥWbb"ǎ3'ּvSS1///sW,Y]_[Ft֍Sr=8x z" ~ѭ[7(++_2}}}f8::h"bbbO>aĈ8;;ĉٰa~~~Ɋ+2e 899oӧ !<< Ν;GQQ&/׆b{d˖- Ÿt8q#sCo*߮]j <'''F%55ɓ'&osa/^zCg,YVeѢE 8xy ;;@Fŋy񡲲Cҿܹ#/O>Mll,/dȐ!&)..OOO$I"$$.](X~ҥ<su9'Օ#G(ʠV^MJ5?00k׮YԉUUUٳ$,Xx)5ӒZ網~r &L0Y|ٓ;vUך۹6Qͦ(٫ ϟ?h ZѣGٳgIMMeС5{Vߟ_~Y^j*1D:DSS\vk׮K/ģ>֭[>}̲`^FcFYZ-)))|HbYfTF1Q`PۛWkrzΝr>iuu5=e866iӦ{nCii)/^$33}neW1iiidffáC2d/-mĶmvd0gՉ';v`Μ9 8y|CW:t(QPP/666 2qO0_W,]p1v:u*yyy&t\~*t:G`0p ZGRo>Ǝ˱c(//O>9rSUUeb._,;G狱?#GC~d쌽=wΎ|qvvf̘1xyyۼ|ff&> qqqsIƏOvv6}͕ Xd (ɠV^MJ5?..~Ç)`Q' {9Éa5/ッZ^s9d8~aĈ;cʺ7ڭ1cƐga|0t9J65<==9r$wZ?>â^hgggxWyGwXFخ]vӧ?Ʌ ܹ3OoW⡇ĉSZZJii)Q__OBBO<iiiDDD鰱/D3yd:0ZгgO***HJJˋj"""O>lܸ3tPN8ATT={$88-[j>cٲe 2`=JEEyyydffj*bccOzT ̜9Pzꄨ?f̈́»Kii)r'OcoN޽֭lڴ&+JFF#33u[oEZZU_M555Kbb"UUUTUU1}tկ朝IJJ… ͘1c߿?w說ӧO? oooKΝ字Ν;j9t$%%QWW(88X;v,eee\p;;;ƌCϞ=ٷoNNN=zTwr7np-\]]}:'OrRRRѣ3g̙3TTTPZZ޽{IJJbȑ?^ZNNz*++[ѣG+ڔ*++١=+Gn배0V*h???{M6 77oVRtN$IPjjjjW`0H$IRcccO6Mvt]`0(XUUeU]RCC}0f)))IQz;2V󗗗KAjjj2ѣ^oZ455Ir}ƼFݻg2v&ZۼR|RnnTYYisʫX^0߼jTF;w#HwܑLd6ϫ$2Muuj̤/fbS,[s?ZFgddH/^4I۵k$I3N5jCee{IZVOwߕF%EGGKGIn!/J%%%҆ 81Y~BKΝ;McccbI$Fj) ܹsѣG)//gϞWG@@EܼyP:u$߽{wwoܜ@ :W ‰GD.^ȁT?X=AZZ6mRI:?T-[ޮvwUFR466)9`W 8rrrXxqf_\d#/ѼZMe-no桭m͊+xWM?"##ٱc7nl59Ip"...ߟe˖i&kIII1޽{+g6֭[6y KUU/fǎ=zV|JC_e9s&cǎ5đ#Gxy'ٿ?7oTMoNee%wHD{?|Iy֮]+Guljjj1˒IǏ#IqqIZjZ?Æ IDjj*5557&ŋ8q"wСC[Ƞj ..;;;MFÿ{{{燍X?J._~s%.\ԩSƾh wZ7!++E_7j]k&>UOɩsJ=z &&JQ bbb8qE ɯD< 6#GĽQz*V n>jXlmm-/>|8,^XnСCWvrrbbggǹs"Y-lywpք\nm BE[ MmR_ m?ZM%cGn ???9R4[~jڀOʉ79޴6RvEb 4OOOo+g <SNrrjaÿ+WZ?PіBSԗM6YZ!7Ե ݚgՕׯsUjƇw*3ƉL4 n޼W-|yŋWV6??_~tppGS <7J᛭ [oR}ְuVx &L`rzR_ MmF4Knnk~C]-}$cGⶄ-۶mIpssc~)of͜oBGEE |sq}}= >O?p^WLoN||<_|6[[OYMMMTUUѵkW VII ^^^SoRY#555HUrQ__=:Ν;hZihqvUUNNNvԼhϟa:tb0MuG/֖7ZMMM&[GmAM%c{kxדE``I:t@8P/@8Ah:Y K ND ?{D_@ '"D@ @ ~?yP7GIENDB`Setzer-0.4.4/data/resources/document_wizard/000077500000000000000000000000001420322575300211175ustar00rootroot00000000000000Setzer-0.4.4/data/resources/document_wizard/article1.svg000066400000000000000000000535601420322575300233550ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/document_wizard/beamer1.svg000066400000000000000000000611501420322575300231570ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/document_wizard/beamerpreview_AnnArbor_page_0.png000066400000000000000000001566351420322575300274770ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwXW{)KEDD,1b%jL/<)S)=)7$&ػX"(JG ,ewa%uqevf̙sLgV/7%=EDA" @ H$DA" @ H$DA" @ H$DA"D@eLj%v]:RHAj%HH) @ H$DA" @ H$DA" @ H$DA" @ H$@ H$DA" @ H$DA" @ H$DA" @ H$$ @ H$DA" @ H$DA" @ H$D@#ֵo $I ZN?GsfLV-k#Rj2\W$ў$z~) 2 -xLMސL$z"W2 K2E %s5# @}+U#luXEִ^J w2E|;&\IfO!@S*k3.YWy 4SL19N+E Y]ļd4,R<@I9{Ga%'f[O>yUlm#///l6l6O^^5HJDjzsEEEbQ@@@EDhDrrr#___b)d2$xrs]MKKKKwsݚ7W^^UII, n>x}lbd2O4*))QIIfDGXpPfeaIIJKK |yyyWƟb1" ( V1hM!HnNQiu6krXfbIRn~r$I!Ay #( @Y!$jǬCGÂPXψ4GwG"M3SBajE-g.Rhp|SNdm&! /WMco\j5)`sIERDru͏=ụsFI7;w$+?|KѯFn$j5>x&>|~ZgM{6mi~Pݾ}밃/+jņLV)cƝڵ}y4kHItim+߳Yk@=) 9g4 =)貉o/b"QhKq%'BupHeK@Ŀ״iX ;BbAw*(u{Ula!9jQyWT~bGߎSq)C |qv^2ctoQ/MJ¡Jٹ!z zH 4 @͕NXny23"5㇋d:}Ӆ:kjOU'KU5'hhx6^LJ0-ZՏDRzwmoY&}Nה^Ք^UnHl Z4Ј+/w Hkzm6/_߃D /DwSgi_Zrˮ;Yt$PqOQM>Tʁ(eDV9givm̬PuTzDImw>IDD (Tt5lv H[t[횻t>rnv>6QT\?>KY9!v蚨nP:nڠ?Z6Kz1SUMN$I\l|*+o}6^. ߩ+sF,Ѻ7 HNb)U^)0_>@:Mr=+6/=hz`}zz*HI?\ [H ak2.JھY&эfy2ԣg?8Y,&=]2 3g?]XwKh?\sFǞR}:p0B<'sKҵuΈr׫źݢb_MzqRjm^?n X_Į Ζ#-o㯝tև)8Z~Ff3xMJו{>g{IzlЭOz\>IRjznyYψ]k/:пA"p[C|uJJ}ԵN Nbwp0m؁Y||mbCׯ]<h}+nv!ɤ:i}bJKUxO==x;ߵ%48Ga!}WM3ujjj:nWS6\]mxu_#_O/<|滫@xl6\sFrz+ѷ$I[kOj z!?TU o@e)OjN%9 kRvg'^ݶ'^;]ON[Ԭ#~WW/iJk؂gKI)դ>ZUwլ&XsVxX^z99[}o*0gw{EGˏLq9'hᬰ v=mtuNOۘ`}4tve4cgttf3Lgǣ~8o<1~]X~abwo8Wi%I͚>RHp$#8fwZQK=#wnY[wu0 [^Q};olϾu{7d>9v $O`Sk.6^]/:Oni?䉯We_)0x7'lܭDVQSi%a7 HoR蠻dU9yA> 4,Kw\=xpEjq:<;}2͚vxcgk?]~S:ou2qϳk][߭|cxդ.[e1OTuOM =B+~pojʺieבfXqC/N U]T1:c*N]yE~YֱnKq1:2]VWi<^9c|P?ᲇ4z++29lQSI3bÃ=WO,_=9|;$$/44l][}ӉszۂvSaO1A"Heu~rp0Ah#mVI?&vUhgCCT]4vYAM 2𓦞jzr]8v\v7/Ҧ*~"WouSne̾EjK.;r}D %X[Q+8yz5˞mmW>(W}}JI=780p @Mԝy@6k#k˯z }gyyY]tOGIԬ#e-RMkzvRo=*6RޜCj<ᬰL ?$//1g&hQ[vνm}i-7Z#sTueic=O-ഹt;nYwuX[KζAV_T79fi26o2@4fs画/+7?H{jª tл&}9.-ZYn͢bl5o.SL;bnKʈ+4zY:D7xD81yUK4S"$IٹASrBחy*L^]^T c@T[v5Ez ZvSuNљ61 wإrsпA"[.5oW=־+Jd&Uw6wvSRJ/+jNU5v/_ǞQ{ݾ_Vl詜 :TzO.Ѯ6W$R(Zj#S+tm;.fڶڧ.w):N[~ NJ}\uSn}ZhAb/3/{t8X[!AFݴ}&` Vv8ƺAuY'*-Vf='*s4MnT~ FD?}c-;; lN9/ۧs?2x4Do,5ѝ'in۠>%z}S/jtV-SQh}}<~gqQR/fu|N^ȁ+<'4#/mx=Vlp/#Toud)89Fg IvSVOȷZ휑;θ'8:wv;@4b/rx =w`YO]xoߑαdzpd;:ir]8ձm$U;݃w.osƟQv˾$mIU.z^Ζ6_FQc[_掮׺β[j6 * ,̚?.ߧyVR꣧ߜ;xf-eZ]}JJ Uvn|Q^I>%ڕZ~~LGA6{t$dՔ_O>Idnj^^L g;٣wNkwet]7z+$F|7?ZNU/VS:mӸs~W_ztǔ):b 2ħBsGUct>;W k>K,IZ.E4=|K2LVMkp];^WtdzS$M=XLڗR^|Hd-22f ln .Qu LUTrIm+ڠV|1ҵ[SDL}ZnP/RS6wo: Y,^`wu]OO6Ķyx^|yx4|}ZzyDcFϱOb12i?VӰF}G&\hq IDAT܂eV ۻT獜O^_m[4X^zg5ݳsn}8uR}j uzrkv Ɲ;K7Zf"# WRJ Nk= }O]P{2!^G1KUdC'Go{KGrBEn ,w۱gD:mt WaPÍdj?h]z&o誱?u|>|nD6|YNNG#%ړJsѦmuHmtZGa(F ӜC7gD*PBy@4zh}b{pVEl~5rr?IMo杦}/-J~GWhxU>6IuioX-YW%%jۮp'_AZ "H4nWwu$}5m: Ěܓ8vף/N@ޯy[bp`ȎvC= W^AҶ :\>%$"u5]VH Lqm #Gjw|}J4H@DGOnK7G*3v^pD('SVNd}ؘdD@cvD>jpJKM;WX6:2]D/! H4V35y4M+gRD)% $$GmSտz 굮҉A"ON؛?7#Fn8>)}tߣ~hC~6b5}tEW켥)IZ|ƌS岋WUjz ,I*.1>oڟkٛJٹ orXёvY^JJ}8J'g9JgOpHG*7?QZ3_uOhxj5e~Nvh쨉h4B%v$i*)HVNwu0أʳAڕFԻfy{y{=/ƌktC/~ E:.ܕG }:ZdHoMy\ \fbʲV$Q#A[vv"wvP[+,|}OY&}UTmH쪾7VX6akgp:в."A:G@ca6z 豁$Q)ȭOZ2$ Vm[HS [7;e' I WѨu --ֆ8]9 ,[K4Zjq@{RZi>c ˮb 4%vz~' S{*P2$./][>>%P>Lע~f}=ഹ GRJ6$v՞TlEFK&:hUB$ip.t2Ih:ݣG͕KeKbVotm>75Z)ZIMtmo.ey[‘F9SkN/-Smt <<(_mU4Τ=p23YVSkyM#7Lz^)<~{ָ;ߔ$}֭ڗ,I4XbҨP~ANR/?ޮ6l?_#zꍻ*OlY~*IُC+|Yzc.߻ج޹UU &U1[vFe 7?Ω\L1IuhFTY:9yF􁼽K䛋<}oԻO?j|gi__a}Mò-okԠe4<֝} kibXM^[I8\R}Ke/I?sbWX_ϯ(LϮ[4PdUyL<8c&Φ׆Įz{r 2y׵3g=D͜3Z-k*|fMhn!}ؽeW+,qg5u35j= soǻBpggJ}JUUmYK֥,7ʙrXGTwJ3i4>~B VHHw󠠠*D4:7j8ef5Qjx_vetNU2جezQs˝lہH| F!AZT=3Ͻs쨑k`;VeuHS=j>8pq]lyioj+0,uhqΪz=_8GҠޫXek菅*#3\|_jΟ|~w|}JԶ>?u{6IRxX[i{RYW4饇#hhvݚ0IRT NaG>1N7vף/?/= z5pZD^]R.H\*dt!,SRu[l]_U*!^ޥ+'DA5z%V\֮ooI{  1A}i;S>[m]jjZfH5qZnY܏XMò]jZEIhN;Ve'ZTs?LZLJRtdzݕe%;7Dٹ) jrF Y\c{Sm•pj;6WɌJMozs. Tn[eQ ǂDEf}oe_t8^R#վu[t}*u[WFޗZ}{]ɭ<Du8aK7wަ]$I+ wQN^ˮʫ(zj޲AƺccS$IV;^zݯNU5I5T͸TQUWjRb OiԐU:`~:9aaVYj冞jOZv?bjuOAAJ^Ef}Zu&oLG-.u{vwqF]Um3uյ&ť H<`{gD-[KSlOY&TMp@ .UiVl[lgރs+.k/NMòaYcZEi:pʺu*?xAjzÉO!P7;£~Jhit2\ZLSRJHk>YofGk7ۮ=փ} ;̬&Z9θOb_/_+uz{O-un+ܥUۺ]ݭu^נv/흴Xw~**80Om,\1P:JtO8)e%٦*Jgbl]6T2Vɸ\voNXH1-UTcOS4c*uuuս6Hz2ױ{vq<ĮthN'\B-\_(0P]Vv5qxcК}Wi NWP6txؑ #Y+=;VKCƕcG6/pm{l؀3Ef6c#Vfɢ\48reu0 cXoheKRn%I:OU܇O0qJZFD4Nd2w1Éf/CG:}Ù4:dc]mߡlBiSЋc2~"eԳD{Ui-oufmk{$[{jYw&o볭pɪ^q[mo?B+ `]4zK|#Hn &F~=ޮu**6۽WTl3嶹5+uI NuL&M:K۽ߪE g-ӑPY:{{U%{^<{jv˜}B=v{sr%[BF藹ٽy\VΤQC彻ٓXzcz;r J*!x?AutGG}dJn-q{eoЯlem]MD˾ޫ-;;eԝi}C3y[=}z;fMk;we8:[j:7tckY_EHӕc~Kkū*yKy6I-WhmΪkּQhx0t/?)qgGIHwIk[Ͱ[jڟ%oRoG] g-/{bupEо*=8JfV/ֲZMjO]K.3iPy}:V\ez)!1NY9!8R4JUCyYL}Xydv$Sq[iԠ劉r8g!zM3y[۶SNVӁ3c:m2k#iݖnu%ߺzT婏Phhb<(( xF  H[5DA" 4_")0Ā*$(O>$"L˿MEB-=>D\+DA" @ H$>H4@Xf"x{DVxPh2e<>ϽA HN@*)$y{{,h,{  M@ڞQ񑏏 %žM@ZMZ0BFXU QRȝ 4H^;l IDAT6bǧDI&/Hg;PvEΓd6@|XW/횏L?KAבKPvEWlʮ,VdZ.ӂYf="'kb[hӕ]~~~W@@=AbuRJ@%%%*--UiiiݹKp)-VnAgkic\%,$W(o+USNN񗛛\EEEP>p3geW˂Dm˧>Xٜ'+???Y,fJ$T㨲X@Ś $ Z u1Vii)%* .MiQv5|ڨ l4٬bKfYJIJe]N=7H, KJJTRRbepAb[NxbSZ$J2el{`$'evZv&IveXAbQNߛv 4߄jUaaT\\lLĪd;O, +VХ۰zPTfZ mJT8Ƌ$$DA" @ H$DA" @ H$DA" @ H$DDA" @ H$DA" <ԩSֹlf̘X~5̞={}ٳgzBBk/^zbccok>,YDgqZlvک4i*..szuٲ jJJJ=}QRRkcKJJ׋KKKk/}EqmX ,  {ymhLj>Ϩ&_XcbƘhL(F E;ltc[RslܸaaaWO^Y:Q!ɔ)SXXX\ơCti4/_YtR zݻ' 6RZ5%˗ ,OLL)+==] )Wl۶MZj%O>)r;,_\ ,۶mI?}tiktYlĈ@j$%%k=9"j2v+VPJNxyyIFF^y7obnn.κ46lT*STo땙Ζc_re9w^~SLJvl[XXHNN 6L׶mBMSLDDD"$tgΜAZj\ްaðqF@ѹsgTPFdd$1f wwww9saaaѯ_?رCD&M޽{qy)͋|sC*~ YYYزe ~"-** :u“'O`gg7xG\\~$&&FZZ&LJ+W Ν'|9s(ݻw}7oiӦ!((дiSt }6oߎK.aŊhРRγbٲeѣv튲e"<<u sΕ/KKKԫW>>>j㒨3J"Q^I433ݻwsR b5$>>PW]9zGcV\)J\ILLLT z{{͛7u_pA\]]TZUȑ# 8~\xr)!!AY%NNN@|%1''Gׯ\ӻ۾}{ 666r5eի+lNR8PH&M$++K Q@333SZl)[nF$T*Y`^ٳg+i^Z"C;U*XZZJ߾}@~c8u&"1H$"21H,ۻTļNcjERSS 6X+j8|%H0tȮ]7mTAb&MihT*\~HAbXX#±c u떔+WN̙3u[H $33So.Zbbbʺx888Ѷ\hu 7nl0۷4/wl{xxԙ MήPkkri2e5j. &{ϤttǏh]t 'OԻ4-vذaCʎ4i͚53RJ֭(Cٳ2e Ǝ X`իWl-/حņTXQW$ǠA.Ē3gL=ZXѣG>lժܹW/{{{?)u&""DD:7o͛7T8q>z '''qoښ5kE*_{ՃhIlxxxӸpB wQw-! ݻwGXX+_G͛7u=ڵk܏ŭ31H$"z6v!44.]B&Mp=L2V2yy߉[uӾϰ:jeeeض;˗/)ufONNWI Yj`˖- F}v%8@Æ F˘4iRQ$LJUTA"K%114*UBhh(lll퍉'b…Xz5gҶ6ʕ+\_{{v˼.\ }̛7O j„ dS91Zx1֬YcRفWgg¸q<ثW3x7 LߪU+TRqFy"bx!lmmСC={*AlJW_-Z"ݻWJczz:>(/)9> OՙU:!""2e|zSNVu]tZϟ/;vҷo_qqq{YҥKׯ:wc/,>|NH@@;ҨQ# 666ҥKƺuDR qpp7xCM&ݻwkkk VVVrA/i8p`ҧOB4i{UkO])SFڵk'~;V*T DRɶm۔M EDElZjIdd|֭S޼ys=zT7|B""Jjժ~z%'@lժUʕ+J{ORo;F6m$ݓr)Ǐ_"A㣸AbqLDDSru""*q 3gpTXݻwGӦM_|2BBBpXXXC~@]tKݿسg9jժWzkkV\\~W ^^^ӧ<}? sss mڴy)NjZg"3DDDDDD5DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""z>,DDEs5zj5T;Flܽ{j*ߘ6mʗ/o0]DD~7Id#220qDh4אDEEaƌEpp0.^ٳgs`=*6Q>|Z2~`U0b,]eʔyꖘcǎI&R+˗䄓'Of͚Ξ=f,_G6Zn֭q!@LL իW"u5j~G<~/ߖӧBCCsMLԯ_?ܸqCDEEDڵrJӱc2FGG;v,ݻg4@|ǁ7]->|*꣒[Ϟ=1atnJDd"[[[UTAFnݺaΝ@vX/Ǐ6lX<͛7ǁ+ߺu+D?E0b6D"=ϟ???̞=[/He{ BRRԩqơN:`t z&oǎ8pΝ;m۶p#==Ϸ?-[0~x6m'ׯo0H,Ls^ Cll,\]]1n8ԭ[}Q/N,--8[nŁpm4jot$$$~ŋV鉱cё+""cСC@MWN\eܹsLj>}HzzNȀQF@W+iGԫWO4o\222RbEپ}T* ?_ʖ-+lٲh2rHqrr>Hʖ-+-ZGGG FÇhBK= [#GF%KZ_kkkwȐ QRn]177{)ƌ#@lmmEH||rg͚%$""BܤUVzin޼)*J̙##GS>̯_|!VVV#...J?(nn""baa*SHۗvvv}v%ݻEV \TVMH < Ν; ~ ٳ$''ȣGd@̙$T*quuKDDc gϖIII@ ^udgg+CBBlذA'P 5w*'UT!7oT[N )))JEȑ#EVKʕԩS%K8qbk6@@<~XDDosN%mdd˗X6H3fJR\믿rAbQ0>X9sFDDrrr䫯2yd}_ܺ ?^YYY""ryqqqr)eݺuIN>]xiӦ`FDd'!"*%UV\r0sLh4Y;;;Z իWǷ~X|9<<<666駟PfM,_>8::bxaff:h ka?~<*UssB/ͮ]>3T\Yn޽7nPYYY6m|||eG^jR̛7NNN Rfh4Xv-,,,0o޼by!"ؼy͛7 5k4h033رcRtڬ}Qܾ/ibpwwǂ [_{5L<>ıcǐXԮ]JQFah֬RDDF0H$"*%=/_و쐓|j5ڴi;w\;99s:eZXX`HMMŋ&Lgrssqi'Zړxve\˔@toiii+E^zF/oѢΜ9S>k 6(˴7ۭ)}hHuomm#}ajߗdݴ.] @o{)))h۶-j5qq7cԩSσ\v ꊄdggc֭z䕒\tuu5v84msN8s 463/LV\\ѾЙ`h2d-[e˖:uСCѥK$=?ɈFʕakkLw Æ 3O{Ls>m4̟?ǻヒ_qqqF_aee”(^0^fF-Ji&L:6mB P^=yLCC j3S8JnZ+999Ftt4il IDAT=PDDD 88֭ԩS1|$=K.œ'OU+++`z^'OLt[,ϟ?S?~ aÆ8vNB)u/i+111Ġ|%ƍ1tP9rs5yҨ(_t | #)) ۷ǂ 0sLۏ$ŋcΜ9pttĤIlжm[:铒аaC3Fgyjj*~'?3*Uwww 337ֻ:b|јPfoo*k>|O6骖1ӧ1o޼o5}}4*U`͚5HMMYrJ,]fff8{,VIwwwBDDD D]t }]jګt}^𞗩}hjv_v,--1k,ܽ{:ue˖ahذ!7o///8;;c˖-Xt).]x,Z;v@-]| iI|caa!իWQFI\\;wT^:ҥKui4iݺL:U'JYfInnvǎbggiӦr)e[CUޓ@yObccw}W^w߉L4Iȍ7 7PDD?OPP샋3=yy{{ O /{҇~틢}qf=`)A:gqqq[m֬\v3""#TRR?Q<|QQQAʕѲeKh44DDDbccq1XZZy^^wx{{QF077G\\~74hzܹs8x 0xB`YRu/oRRpԫWM4?>.҇%GϻnoƉ'zUVz| "##q5ݝH$"*D"P y3DDDDDD =DD/+VpE"""GD""""""RvS""""""bHDDDDDD A"ы… 1cvm4Mnn.f̘?~E{a\|1cf͚\ilق3f ;;_5-[Ek&ѫ=G 1e,X`XXX.\0i;}Ahh(^ض08v4i*U<}Ȁ'._ '''EGG;v,ݻWɓx"*U2zy&ѫI$"1b?4lذH֭[Xx1~mlݺ},--9_±ID ^ C\\FH!)) uqPN%mXX0aի>|8ʕ+SիW ]vcǎ!,, ΝFA޽ѽ{wT*%޽{QFaXf ƍ;"!!?.^Z OOO;BBB _///;wz <<~~~.v؁ >>ܹ3ڶmW~#00 6_]vwޅ<..N_~ x뭷P|ye~gDEEիpqq/ kkkvիWѣ___ >\.g=o;f9""znBBBL2hl :G)F,Y"jZ|||~@%::ZI ""g և~($$$DY6w\133Z-nnnbii)O> +ER eݢVT\YU&B rm("ҿ)[eˊF` ~޾1Bې |X`X6?{XZZJݕxyyI*UJyٳgKNNH``4 "wQԩSRJ$(LDDD0m4(F \z`5jEسg>|,?-,>}0sLh4Y;;;Z իWǷ~SvZZƏǣRJEll,j׮s Q0|4k֬HD>}piܪ[1o<899!((Fk3?Ұ}vԪU -Zjiii )¶fϞ0O>Att4VZf 8p }=ǠAW\)JHH%K(3`F&0777Eg""*] ^2:t ʔ)oA!33;vP_gʲ???!''Gjiw7tܝZ;?q?`ԩ/r}غu,88JaLbb"ѫW/謫Z*Zh3gΘ;vG0tP\,Em͛7DŽ gwANtʜ0a֯_<ǗӧOESgϞEnn.+331H$"}BQ- lٲE9 ߼y3|}}բllݺzkRRRtʮ]ׯ_^{ ˖-*T7|&Ŏʾ?xaaa֭TCj֬T$&&oYM.\ggg ^ۇh9{<|eʔg}fܝ;wbhٲ%ʕ+F!221mZj377G {vl䧨LDD=G[rrrѮӦ}VF ;vݻ#?~;wFVuaÆ-r:ވѣGcݺu:u*ϟ_}޾rJ\zUy0jpedd\})HJJݻhеkWgΜsyf7h݊?3ѣGXz^ӦMV}]눋ә(clٲt322761eA"ѿBݺu@g]x+|%eРAؽ{7BCC~`jժJoիWX<+==III/|}}<}]E`̜9Sς 0+WĖ-[k.888gϞ^Ɋ1>&&˗ϷNlڴ YYY1b>s{EΝl4H,j}`mmua۶mׯrxzm۶ ˗u&%%aÆ3fL8{,Vc,www/DEvA`Ŋ u>>> ŵkt>|O6JV\߾}{8;;ȑ#HHH0%\6! :uO?O?L1"mhܸ^DDDqD\v ?ʔ)OOOEdd$;@*U쌐DFF"-- .]¤I| F \rƊZV}WXAAAbkk?...IO̝;7t򼼼'0m}IteffJ VEDdǎbggSVӦMԩS6Z1-|^Ο?_ޓhhl3>h%"*33gϞ˗ڵkӤKKÇT\-[F)t'O 22׮]- s Q"""о}{̙33f(r+W^zhҤ ^P6Ν;8pQ$ѫ*::)))hѢ8)7D""""""zn,1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDT,DDOvv6^ sssTV l"""bH/T?wޅ իrL{AE*SNFӺw6m [6l ((mڴaǗsΡW^'N@Ѽz*ڶm D5?%% ,ƍqUdggj5jԨ;bɨSc;r>cDGG .]e~WXt* իWڵkBR4jPؿ?UV`^zܹs0`ϟB/eвeK]R>{VVV._ԬYuԁZ.tӧO+)t^zeݹsG &666@ӦM9s^m-x=zT\Snbb%eJw.ѲU`'OT;11˗\|Hy7m$:VVVbnnL2zjJm<ǥKZg쥧:Ӌt8h4Nݻw/T&M9r _?PHǎyycZߗ'N>KKK8qܿhެ,Q'|璝yWիW퍠 >>>ʯDFe˖boL2ʿN͛㫯״忱N%Qw XX7+:u FJJ \\\pB\~iiiHOOG||Ieaڵ:+VGժU a7u> 믿Fff&[[[dff믿7߿o"iӦCaggcԩ dJ"jڷo/DVŋ%##CYoIZ888ȵkהuiii?C 2b ?~J: ^z%gϞ@ʕ+'ϟ7.>>^غukԌ5JHϞ=MʟJb~W}:0bL:4mϚ5 ЦM,Y666ʱoE-1;{o^AO;G6~h߾=vڅ'NG߆JO?|Ν;غu+ggg%O%Q_Scl<:t[}ioapԉk "77Wʕ+'[nE: {%==]<<<Ԯ][RSS }iqmiaMw-˗7_~F[ߗ?^(o߾}~,ZHܽ{`۷o+ߕ| O_A _AիWKhhhמtRDÇuˤIsÆ eҤI9Vƍw}'W`YjAݣGYttǖ IDATy]PDgkk+N &_|=Z*V_+yyyɻ[}ך4iiӦ2sLYxL:UܔuK.-R$: >\>sCSAbIoALi04iԯ__L4I&M$YYY$FDD(i" $F] QDWצN%نカڊJ;ʌ3 fw-KS/Ǐ2̡H>}Jgݮ6`ÓgDi/.TM Yp4دV3fP߸qTDJ% ,?{l%իW UCo{)~ҵ_z*J,--o߾r % ˗)-[Ի PwW .U<_~*N}M O)[خSL0Av)=*T9}QW;ei^eʔSN+4ꫯt֧('TzړAIٳHII:(i_"c>SNt򥧧K}S9rP ȑ#RF %Zc[aĒn$7r$d=.XZZMVs\زes4"mܸQ̔ɨv%ڵKw7oשS'Gœ׽hmB rqrrR~4v[H^6mRZ|o]*Lزe8P*Abƍ };f[n)c͜9h}=<< _}x8883ԭ[D+_ƶk.S'1::ZZnm֭[ܹs=<{zСC ה)S [B ^^^ʬxy[g\{28fe(co߾%2bwpi%ݾ)Ntؿ8pΧW^k^Xc[aĒnM ޤI4k`J*[n TŠnnnHNNFrr2<==NRlcǎFٵkW?^bOW;qE|ڵ2DVV~w̘1x뭷26y]Y 8r୷2m۶5^gpJ*x<}W^IGGGe٥K ۷l* 6m† t>;vP&ZR5kڽ$مU\9|(,^_1v{ Nzߗ/8cˑ,Nz<}+fNMMU#?`{8)!;;/'|$w +WDj O?!66UV5zZu1Kbۦl_;sXŊY zi'|iiiÙ3ggl޼D7..ШQ|y{{#&&O]gɓ'cđ#Gw^l۶ 1115kp9rjZ'1glٲ<88"*U)B UA)[,܌o޼93iƦXc`to&PrZZ[C%aܸqgִZnZj[FamϫK]۷/mۆ3go߾puu}iǮ W^qA]>~!!!Aoy}Eq-lAPłX0셈zQ[&ި^MK1XknW+^ HvwǺ+KGyϳS̙ٳ97xp8;;c… Dc5k֯_7n $$D?c|2jժ2C"\r8w>S50 :vX4\\\*>z;v; ?---iEe߶m6l؀'N 66/}_<7?ѣz ȑ#0a"##q9,]ِx-?mڴ[kƠ*vvk_tѼyRݻw?ؽ{7v hܸ1 y|om~in9P^mvq}8x RRR0a$U5{EinݺmۖeyV{Hs7}lɒ%ZƟ_~YqơEҥ Μ9N8))m0N7C"ElذΆ#>L0=si\xQUš~oٲe?s[QN-nu:uVyf͚UVh֬|}}q L6b ;8V-T{)~ct !!!FRRoߞ'$z{{W\6m ""B>/_cU&@pp0 m۶a۶m EJJ pB|oSڞ6zU<,e]\k_|wyÚ5kJ㶨&CU^~L8 xJ}_ 8$ ֱcGvgOC}qzEA TكcB" ?s+VtRf7!Q4j׮]C^_Vr`>}:fϞDDD޽[|S*]f .]VZ!""н{wlݺ7n0;OPP͛~ ,{_~ ѱSr3i|?1`C$\p֭Ê+)SGe#_޷b|Xn9ӧo߾U-jT*ʳ˫ znjmO`׮]s `jfCwvvIk5A9r$Z-^{5ڵD1##7n`8Ս~K.8ɓ'yfklŋ͞i)/p|BuQе}{_~_iNk䲸$q|quu{ Jz z>|ƃr>ĔJi_}.] hZy$s\TtHf+ ,_VVVHLLwP~>z(֫WO){uۏ>fl A ..iƞǴ4~ѣGk7C"֮]d8::b%YHOOٓN:ۇ+W۷/ p,kk 4i<*כ{dܶo._b*nT*hS| rNcvMʿ{FQaW_}eDg6:%=T* =z`f[F%I*җr{xDeQ!ϿnҤ ̙pqdddp@~*t5ko5yÇ8p ӡR029_-[fbŊ Tg/^cǎUv"C/fϜ9S[TvʕyNOHHT*ˣK~̙3>>>+wy* Ø1cLna GF\\ju:u*`ҥ1LO>ĝ TqK.!88;vy~߾}P{n,Zx뭷t}MXz5q54o~~~СRRRe$$$@P`͚5ޯ36mBdd$ڵkѣGعs'nݺVZ… yhrCq3.]ѣGڵkE޽克/"$$VVVXjU~0SNaʕQ~}4njƒpuJ+W#u= (jBJJ {=^:uB\\BCCp?";w.>h @&MǏԩS#Guօ]tc#** Fp8vXU{EWYl \:u2ۣUُ۞={رc0a~'!&&r;w5Q%m?bcc :v9sO>֭[q1u۷qAysC&yf\zÆ ĉѸqc\z+V@VVZj=//@_JvvP*@;v̳8yŋ֭3YBx˗/]V󄆆k#/gi_ܹsCV E&Pin=<<Ć ̾^tttuRڲ/X@XZZ)شixppp2eJsyʳ~zlN<==nkiƍs7n(ֱ!͛'}) 1x`q̙"uQ,a\g}fvYѥK|߷opuuͳM*J|Bכ]wI!,--F1YΝ;Ef7rH!YEQ7n FQϐ9sȯJmم1 iSʯ;nܸ29ng3gزeI[=`|y~^9vX>zjm0&V^oܹ#:vhvٮ]X~q S67݋}!++ /įTmSvv6ۇ'N )) hҤ   U7ob݈R '''zjT* 4ݺu+?aaaHII3P۰Tff&BBB@$ԯ_G6m5 e۶m'bҥ~̞= .D.]pQŋ OOO :{HMMŎ;pms颐$ ۶mÅ 777oCv*uSQfW611Q>{C///pwwк/I!IT*N>W555GիW y֭|eE8x BCCCwѣGޒ*C"Q!_[s"]{C"ыÇUbbb D/ \CDT,^aDD%iiioˀH);uܹgb͚5`22 =3f˗vZV1$Q}v,\Po*xVD DDT)j -ZFA1|X[[WXy{{{""!""""""!""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$"""""r.zo?'#֭= [=DDDDDDTBQ/GŞ=P(,PP(PHˏڵ1p`G [DDDDDDU=$Κ3 J1BHBB I:TnQzaXZ׈ZHy>^{PlT@Ri * 4S!$I^^g -$c&xhӦQU ~ ;T*;TPmamm +P*UfNN .[n]'L4mXvmzjTvq=rBa^I2CC@j-ժfCWB%%PP &&Kl^G*kHAWCARC! a 8}ARi|QKب<ǃ8x>nLݻOX+T/A GPP|!%""""bH,{HP !0%T* Ն Z O'5fPׄ3,8RW0Ba/\oMʴr{hܸƘ5+ !!};{bz<*u?BBZm8i(̹13Sl=ZI>J6mj ӗs @5$T<ߠ=WB`mBz.wL|9=Qs'ٰ, S*df1;[ѣ 8w.YpvK/UC߾+xGTT*bc3`oz Ҵ|1Cg9?[D@6Nܼ2ɇPhι$""""8$jj<cR E@5m:CS aEn aB>UU7>>'aCr@F h۶&z $0o^4=6ǒ%k7yr̚gﯡgO7ܛ?cn]7VcQܼ]=wi֭ $""""JMC$IuO*OCi z :]饒{&(1,ȡKjueZ9ǟZL ĭ[iP*?I@-m0l! ll׷&\\+TUIDDDDD]\`EB@^ Nv?j@BAtܽ6/PWM'pZ ~: /rj A c8ObֻfuuGT5_A5fo}%:xJXN"""""zCbÆne9 â74~fi4QL@:Nhթ =ͣG9!G7ԩc !? C\\rz|Q8ĩSJpwŨQ.'!""nw > 爈2?4l^ĩSqw>֌`rʩ7MۻZDZkDDDDDDU1$%$$#"][TgBJllP\\vm'ԫOh ro!(+K۷"55ِ$J K88nn5 GG;%"""""1$>KVIP(VR)W!*vC"1$C"UP,Z} ի///#FBry ̛7/__KK*ڏ=Bv{WgooodddzEZN$kIIIΝ;cڵeRK.aРAgի1o޼/AxzzVLDDDĐ{1 8|0VXk׮gƨ(Cϕ yׯ#99hР^VTu}]6l؀o.wqoԨQ);;[/^ --TA2g""""Ŀ_~*乌 DEEaÆ ɓ'1vX9r(nڴ 666عs'ڷo++J3gĶm0e|wUxokã.W^ɷwErr2:uI&vl!BeTۨQDW_޽{q1lذ#Gx?zy䄤$lܸА(I6ol\Yj۶myyy{jY OOO58pMv>wѨWo]exz_+СCCrrr;v G5УG6DDDD1I,@SNNް$I:23pH4BB>*|uE:u+WgffP(ӧظq#4is1YOBB6oތ0<~...Ð!CPzPep-ܻwp}ݻ@xYk_|HHH`ܻw/,,,ЫW/˄`ǎ3ZhBiVVv܉C!!!nnnhѢFYk ӢE 4oW^֭[o;o&K7vN8k׮!::Ψ[.Ѹq<󧧧={ʃeggСCSݻpvvƎ [[JFd?fZܶe{vt:l޼@rr2ԩ tE^f׮]?wwwt AAAUr."" :w.<=g5bܸbēbԨ}_]%⥗>OuօΙ3GN+p^I '?-Z-z;v=ze˖|_޶gŪ|`9;; !;w 2;pBs ivY|bO:ZdOѧO|vسg1b ̫hرcB0[fB!Əg˗/GN'&Nhvu.]* F]eKK^-N[P宓???"==]޽{ ^""J=fŮ]yfcԨQtR+ɓ'ǰa퍛7ob툏h0u/AAA7oBBB#0j^zaժUo_ڵC~c֭~:/_-[b*G}~ @߾}QZ5ݻׯG\\^uX^JKK^-J[Pߐ!C>m۶͛7h"<~16n܈k߿?222#22O?~@DDDI-5+we'O۷]Cl:G4j4WԯS |rI37n1cFǏ/$뭨\}\|AmAYSL1nݺӧL^v3"""x x;wpz*ӑL !t)?~Iʴ,6m¯jرc^*裏f͚|믛'q4T|OU۷/6m 8sL,[ZE1vXϻ|a-44/}f]eѣ%.1=zY&zYz|CJJ-M=ɧdKϯ-(/pݻw7;8>?I|Bzh$P*Uj&YYuBVVe^I&u͚5C׮],g{9|}} \uָvnݺU&˖VEvQ4j(*?QQQi㨟}vp& G56lXnvhpM\pWXX]V\}\V|~mAYꤰDDDĐXiTJZ$%%P@yJ I#33O## $)Bh!žCab bK/dyz|M/U]...^%}ǎرcG󧥥ÇGxx86n(j۶m۰a8q&A_z4ڂ: DDD Uڈݱih4jo eOՖɲU]%"zZlY ̙3q1]>%st ֭[n֬Zjf͚7niʭ+~.>.c>?"""bH&N;N"33 B葝XUzH4$f߿#:wR鉈ܽ{)zirWV5µkЫW/|4h̙30m4y aÆ~1{\r<?F߾}X&7 BSfǣVZ֭[OJJ4i$y:Ć >+#"""*k`?,].Dpp/ 1u ̙:f?fUrۂQsԨQyF, äIz2 T&VdJiy֐!CаaC!g2220bC-kzxxax````J2~dffLć~m۶+>~|EDDDTBԩѣ{$0pRYGsvvҥK1zh\v ݻ7pE@ V2%Bir `XhMn^RXz5q54o~~~СRRRe$$$7S7>|8N8Ǐ(ިcƌMvapttDdd$v܉[nUVpbbb0o</َf?c?"""U*sJhy/_.p gggyOOOZˎ7N#F(q=Uk[uBZ:N' OOO!6lP2 bɒ%y R)WWW3b@癶`aiibӦMѣGA~~ʔ)B!._,?//w=;w.mR8p@o=zt~.>.1_$e+>kݺ >3g͚%.]PU^ZZ!%%C@@,--۲Yڻw/ۇ,xzz/gggc߾}8q&M`rOferM޽QQQP*СC8GDDDC"8p 1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"6 IDAT1$C"1$C"C"1$C"1$C"bpj bhɊ eˮ:NbEQi5 DTeo;XDTe(t":!!CSBD2nzuǩ nL9;ύѹ n:/7wރˆ^g- k?M]|KZu%ag~ZiWeU>*nov?L_7c0`|'L4>=+K~oN)'L[3mwRu-;F-d|C_eX廜^R8Y\3>b]G,Z|שpiGܯVyL~1.腵[ח>1U LdK RwwǰBNGz"Mi.v y2q zz8#KkQ%1sJ$= ?la*QqLdCjf|SVbo:~ixa(8~=,m7OX'$VÍl^iI6PATcߴ}48gbOßk ]q+}.m3u{>.ND̃)Q}&Y!aNX=| _ +]}0z (AڵkTiעxE{\?h5X0i{jDVX& @P- 2F e 9~oEpra*e_r/_[VO,q#j2]~o7tn6ֶAȦPfH4!-G|$OQH>\T+C~-O- O rT,[~(>2FAuflѻ+-I.ѧJe߄M/luպ򿈖+6uy].OjK&t{c[8;f} N %%9 *_Dn4&\~Χ܍ek}.55Z _DYuX9|xXey. B:}siv}+u{:b977._(Xi\ɥMl?H5MÌ{͖۩xFi[@pZ׬Xwj?V:,~=q/uг5])|]'`os*을j꠰}tС-_Ǿ_g쀖д}^ڛp)_/v7U%1`}nLD5yzwqr]O&i~-F| PBϰȒbQ|ίC OڛT:猿M5zۮըi8pquhA3Q׿!~;C1G#󫣑s_ǩ|kGzų{T-߲5 sNdy Ot6~}uD%=> ZZ\4Yy+ny؅h9j:l-@QӱtROhNL<Ϝt &(]gl rړзmٯȡ([B 瞊l iVhg$w5KxU(cEw:4fAdt-X J@IKuG!]cS?/7Fӟ#!?-deqtXod+8xҞX oeSrq:$AvQ߭eԣl?ҁSz?겱 WS\Z)[yy}BY28Q[O /͜ȍdF@twSϗxJ]+ΘD{m+n鬕22/+()m֕#fŸ8摜SFS^ayǂ6^d~N[g2">lVٖN_ؘqMBYS/ Z&Q8ŸO&;\&/ Ovp??V,BY7/ځU2KELWɰ^l9ҳ~ҀHLBG"0N}&cG2ɜ&>Ɂ+(߈!+*կ7iC#zVb4+F0̛zs-6yO8p@[Ga9#.nwD|FxcEM@"QTKvgx_t] b~:맾FP|<.SYSaߢuOg+܊kSv|<6$)͢8s.ƕwѽ]R.{muJ8OO$:xKdS(U_#[q#ɆmKvJqyzMG^.`oKfr_oIY E둳q3Wf>^GG$ڷJ .v93fEh.k>f2h*oųe_ lp=ڳb^8WAWԹt} |;b|M]9}љoWF_Vٞ8|7Iﴭ^tYFt o)>?Әnv B΃tfmc@5-Bqܰ׈xg1iTc9p:֛ͫ.'is"Rm*F-2r*_d뾎V9d4R\R3$7@^BCDeD|{^^9=H|#Ӈ*=qK-٩yP0w4zU+:GfLUv,3~;^%Р(:y%{Ltjr#Sz%*3BTze<1H%*G!씟yiնLmtj{:'q rYvڈ 8ցi+qxfcIvX^liƵ$pߵaq._s3UyRGi[BHdWϨ73.{$j&\s+uj**_-T̸ޏl-Ŗpwm\OH$0yt,GRXǙHgnս8q֕=;ΈcYٮң}Ohvc`lۭL%:RX1?cC_mHШќN+l*Ųr)::mB)m6aGy}T\ʘu 4->Q>jPI),֯&Uh߁xiۄt%G޼B#T1{EDYةT+T('/>^ C_Oɨ(vwDcDQT"m6iťz.)aj(DB)EYVp+Qݫ8&J:e`Q2nC&hkG5;ʡPj2757E˔ꖣRocW9L^2abXB̶5l]GyL[9V#<*6GevY4cdHv9t&L'-`rՌOꨠHL˔mt=:ׇ\Ro/UqƏ8TU>N5OSTm}26,EY&mp=ڑbƊQRZdl`P;YƎ/r&҅N>B&ƩW_AT'+~9~Zp[Vk\lX4v>STtfhzdmAIy!n'YI\ȿn54o|;(F'R9V 5H4gឬho 5^N -S\٘`[/d´Pc_buI%*<9qaY4 *fHXϘ]cG'<)ia&BX\ )Yo潊f{Mh}{Ou&Rgf$w´֨8xޟUjo7\0>R]WL>5'uWnݷc݌tH$*gkl=W|X/ɧSlM b+Fj]G)l.v/@xd2m0J:TAYCwCTA2{FvH\#<.YgTf)G|b![/yFxj).S:kl+UH8_ϊb5u R*SpzP>6)P_68RnDSPx{NDbKML@o,;0iD8#R2gY_3,]wulv/rgzО18?`A5?SѨ62:(0Ҳr)Mb] ș+~lj)/!u"^m2*( 1l[D^s#zG'9`o}%cu>kS(-_VU"#?| !/NqfrtXx+9&|`o~Ts|}?ETCsGdjQDvwqzq>-gcHAUc!t c#FtMauk՞ذ(AhuS[sN6dьs W9 3 .oal P{D.|^D\U%9U;l%M%EuM>ggX4u ăls&:ֹPsu?wv3gUq JuM*tK(U60)"涋aR@ K|9tJ!i6KY?s;?ugيKu|#R*y$?0ڼέ7YJ\FMGJtN´Q+/p(,>V-uϚT zZda SrzK\201,~\:Q֤R{C}]{&)mcGb%[ח;)LgN6y3:)р 9]A^K.Ys d\jXYWxQ*QPGFfkR8uL gdÛ_h}%.aB!'Qд$X{Z**Ϸ&v& (ED3ʪ/pa2[k"ҌtJ2M"T hNYa&,ɌφPV&ذ@  Fa,(*_d ь0-B*Qg,Q b$QP_r } "YI 1 H,yo$ 4!&r:'!%0@ @ D@ @ THoIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_AnnArbor_page_1.png000066400000000000000000002062761420322575300274750ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwtUgMJ I5ދADTAC@HAIz %^Ifcɐ%e 9){gvޙ;wD2.w 蝧" """"""DDDDDD $D""""""bHDDDDDD A"1H$"""""&f|1qGaZDg&wWڢƶ%"_5 OQe8q_gif1=j& |xFoSl_/ÏK|gĥذU^~>DZѺYtgʂ}q*/""DD@v:e0MG3?|=ȶX$CC=fn8۽k}&h@/\(R|LqWxG5;@KSkv-"l5@T.rrU;""ZrEAbjn\UdfF$5p>q#$ 7(VhVK91H$"Z!!E%~A^(m^YH"VK8 C)L3K{y6L2狠*S&"+1槤i}(4tzt;K,Ku˳]}nC\bUևm¢ ʜ (wYh2R?&u}V4RICYť,"z7D""*dU&BL>s^^WP`?~d+֢s0x<; Oi!ODx ^v-2  cW]JӮl^ZX8y_|Ƴap}< _J.xÞM0`/FYh ;(O> ]0j<ke`r󐱸n5wb,w+F -RόH4 д$f'o{z a0h8M*[길v,ݶ Ѹd<1Ò]a6N0~"bHDDTD>hcW[ v=[xc)hR<1 Q(V&8t'o7A0{G9Fv @}4_vSɊLe{%e{)M6JPZA_7&dkuK.L@c(-taT6Ъi o.-Q{ ]A|;0}'|/̉ @Lp৓xۦȏSb UcEC1Cgqz7j3 "3KMha̐xr_`JueAYnh9{aWWqߠ"C 1YŪp-vD$`wS""t E9g\hib @~nW9F6S30yx;x?b ~9 ubtmŕ< iYI4@@96󫲴O 4>Ĉh}D2ih ^z`kwln4r?)شç.c$$vUCJ]pvH6SbLPUaF_<3pNugc7@c&Tv^/ ||5l WyUR?ge*ߙSp!^X=6-?5'Ū- 1H$"E૝ÄϚj68]oDw~ ,+y^h غG. q$jKXbgz* unrLce gk,|MZPGe4o#&BUU cSp'qya9G&[оe$iP]DXMɆ.NuRM^nN.ʔCYp)kZ(ia5|TTdЯQwA"Supʣ´[ ėh FBNy'oGAHDЯs[܇ƴ;WUEZH5,F=V\ll145)Zg)_UFI4%NOKWbb%Zm<3vEcx{].D13EGC/cUe+zqC>}HD R$M2.IP4$|R2typ38YǢUMh 4pL(mOK wk>U[rHT|JkH,uX˻C@9~b D";&CN~EaSTd=!Qǐ]UŪX< doh(KMսC,0eandM t~UQe}`(8'`ڢSL9# F^S~݃ou-iJ:RR5ﮭjCE꧲KDTI$"">°nd`dhaܪI8lOFz u0op< oX]\|7Fh1Lfʃ:W1}IXOti_l!2*L 0uǥԐ`1rڇ0m6 jHTH"h;!>An8S겪24}:FgCW;ɩذƕi?} ̼gPk >9t1k]w?g-K9T~*[DD% DDTF=ꇣn&<m0߭~8lB[+DǙ '@U5VT&gD%ldC䪗iY \C\$9UYٚCThifuL&BL)@UU 3ܹ$쩟 >]Jܹf1Z4~ç>Gf-V =vgml\=:oǍ1c2sfmՒr3p/vNC=ZQMMsZ?dt+:"F: ;*ݞ&bw9~ lݼǠ-|O:IoxDDo v7Z8u yV8r?FLۊmT*bDDDT-Nf6K]&& ] X*MM?2Z߃a2 ^1/imzK$bě!3KS&H1soތ ѵ~ l]2K7|)toj /Yڠba)Xp ^ @*|o+u83vtRLJokJ/ȕE~VucX<;M6N٫qNk ,۱dVaL&$aܱ|X>4o1$N&Ӑłw֠[|a3 ADDDUN6}DDEZ."jyNG*!< PQ"F d6Tkę^XT*B\ "-kj{NG$Nێ{ #SMޏ`j/3KQHH-l%"R])ʆs%Vh_H3CtRXO7DDhkeaX0~1Uif& зU4u<4C#pQ3)̫kݮ`ˆά@n:NgvDЮCڵxXUes 01>n#V4п% ^mbeɳ}9@x7.]:)5ZuME#ÔJdžҍv)8O_;)=:`Q SX:_NUH#7O  e->ۅN~lmǠ}{fL -?-uwO#oŁ9S~ABϑֆ:*m/i\c >~/)LD.{㻛܀D@~>"?!SAE~ 5]!nǽV%o'.x,-cf9,-~lM܅>U Cf }:]yFQI^""ěba\5?O}ooKa/]77O _~ 8H~Aklc 2cMu_l-\_7EWB#->dU#c̄uR ̏O0gh㧽`WWC"NHM'saE 4YWUq 4-]GyGXZUGb0z&sW69s0goko2ѻxq<0  жC8;y^/'Xf>mQ6e?ZjypkDxG>WEv,Gώn_RV n k$c%K;kY [Xy8sjD$a̟0MȓfaCJg= tkw VQրWCq5]Wosڷx=.UI]f€6 k^8R}m](t ޝC$G45sk$bܼBlfuJayuݮEtQE2fvz.& kwZƽ/U_Y5vl-ǠRu$<5YD:EPEp-<wv[,Y7k_ǁ$Bw<6v0ݘacH@p B#gfia/#'Bp’usi|U|u*4nF/T62OtksaՙU9<\<9,b[noY˖B*UA|n=hnVۄcˆ#y#@*]Ʋ9Xj!R?įԊCC7̟ #?]dRuŒoZ* ~/vϳ&!)?k^ol\NUx=:ސam%[JߓXV2?g6´WVG`Uh#L?l[w;LKwy,6.Bep_ =R ֶccUSMѫǘt]bѫu1z<d"l7ZCO_G;Z+]Ir_mmWY'H+\ sb|2XA1~Rqes6)>sZ/~k뱱*Aխ&8Kfn- 绷,_#Cko2Aj>|gE"\_h:g$+?)*d̘6Jqm^٬+s2uJAqS=ifOڃ.ղ=jb IBy{r`[_vٛ4H߭u '['5L&B~h{\.uYBAZjn/lXs`/FxԼr_mm46*Ç0mX+,Jx~B]-=:PgN/ Fr~ֳ,2]M_YO@bK}tSWrc@6wm`X[CsrPhi핗x@m0qa0{6{]lBRr~G_.WN_%UPnUƦe1JaE::P?вA.[R|lcPu:*'գx*GzݿDD6QZ MSxRhU)'5ʟ<Kt×ґ. y- M_V>/Z6F~Aݍ-̔-f+{ n5QGi@y{SK+|'u&Ko5fqZ?Љ~P-F~L;#S ^k"ŷsĴ+ !~;/vZ.Eh`.:ڙX8m;| _S{*qVkͿ*4oC[gbSqQ4sicL$".AnAQj4=? g.( 5( e7PK(jkۭI갶z9t3K}~0qW&[$Vˋl*8yʮVwU:V-AH5.l+I0?.[۰j߮v#7 !6:Kft#edD= VԊ6m VjjM$\`i#9mek zB^Bmm5_1"db&^ IDAT*s4 0:Y7$ ]tq ښEO'Ï"3K qQS\䃄olüjq$̜m>*Z5}\zvGǕZfR_vKupB!@O>F[_tnL)H:1%wu ql1" wU`\.Qu_KuD"ʻ )6˿2С}̚'vMŗS?َ;0|w[#7Or/4"nty~yR"-鑷+^O,`o٘5mVuc Y)ijKۥXcPE\̨ʺaފD";}'pW~.HL6T:T9mP KgoycWЩxn u\$aߕݟHrmŨ雑( :0u7x.^ D3u],_.Zٵ;&.~ž8d}&]넉#|hU/}Mh+{ zUDMŕtI\.jxzvPx7މvD#dG)7O O RoGڝָvux+icp̽EBϓVџߏ )u&.~‰D"|Z>wkV+]vUvwᎧ[kd2Q oJۥ7XcWVGJ`KX4vc띈A[lԠ7K>'+|i\ ڹԑ1$|n\8nqԷ {%?3հeRy0Z_h9#3Ke_*!y {|튿}:n?l<\^bGޮ8yQg7̈́DR|'s:R݋\yꝈA[wkhp~ /MS_/ǮD8ٹ)>jqսVȃOTӠ~4s IupW I$b9` 'nz U+jP{Fl썸Q˙lߏ %ˑ~455I v86W1ShXȘ>'AlwHİU0ͭɜuq%s4gvXXfPOB1jo|zD2,ӗ@3;d""UazX6g[i,0ia?|t̍&aIW`ٜ_K]6rLjOЩJcHJ1@n:vGC]-yq{\ǫtKW2KìI{vg[`01JV&"b H$Ôч.YaiWw/a/ mr }F){dnu Uv#8Lpeu\z }:)oM2fNM݂V$[U5z^ލsQP7?<3^@ yj '5Z٘1w|;2%)#?Z@' wyM˖ѯەBSw5EvfaPsX;$R/ď[/L{5H}**|;DǙ%TTdn"*=O4DHqCaj"trBa[_GZ7{*꭪w"HQ … Iuz֑F`fο$I)p#B#-gKy,-bѳƼWnE`H=$@C#f h1UO@bqB[!"9Fwѹ]fW>˻M; +5qZ'\ 1qʂm8>|ЅsqV[ߣGվ/TU۽t=UnƉX0ut3x|aHJ1@8c@KiqGb!`g^=^;D""cg G?πcP Q-#fQE;`y[(l\lQW'CatG""""bHDo8zO4BF6B#PȠ}nn QkBTUѵm)f\QdШX3,8 g.ߏ&`,@"""Z$Q%&9k&L̀e$4)iz/8"O݅f1H$Q|1ܭ 4ìI{г A"bqjgDƘ#2YZ0OUڸ=F}y61H$"""""ZD""""""bHDDDDDD A"1H$""""""DDDDDD $QWGAaUuy##S  Ѭ2 $#H }n/?gԳc׶yj~5tѺwjK{ +:[/CH56윌v`gX;epiJEhAb \/l7Kgoy'`Wx7&Hβ-BDDD _hjy ӒSpPW'ÏY2!֬ry`RfN܋v=Y 5쩟_䗔bwA`~0'>rѤˮPڍƈjKH+>>44阃,*'y-1nqk mlYP~F)J[T%c׫ѡ8r?(\}0{X)sz'fM LKEhlggq쀼<1ꅡkۘ40TUݖs \F8尷 J;`؃hS$b1YEaۅNu`y"5]Zh⇩cI"uQK v Z5}!_6:V-\/,ZAJt3в̜VQE‘TaX6'Pk桾](L]ds=nVx8r4ANcPQ烧qA YZ@f0{ү4+>yAs89>zUUG=(x p/"Fyʮ~"m~݇Fo4p œ)Wa <0 7Dxd2#cRWY6&`ֲpQNpq>7a L}]=' bp.$""b{?[H ux1m5qWacnH*hFx}7cai[j^NIJfbw5GG t 6}\8StC`~mXȭ: A,~4;[Vvu.ʛ~i|q q8o "lD"cP5=.l;ncӗg @>b-#;GbcF΁BO|]p v֑%\H+5ꮠ͉4o -,xz5ɳi/Bd9rr5TjPW BxkUlC#MA*pѣ<aV0l3p(kp y*D"GX"eWUy<f}'>UXtl}lSƮ5 qfz$&±^(:P[b/nW~˚hc!p~ ddjރu8:[#: h 04oޝkKIDD GƴC$w:|zn g.vWbͰ~heaҕhP~◝f+]ӊ)7=CcĽ3~y1VlݱvۧyE[s a;p̽LiٷT}Y}_`Gtʳθ0j)t-gjF#O"[09a_cCq,uQu>y7bٗ_rx~K|T1HŊy@?K7|W;]ѭ-,9`ܵ8wŻ<A۾B#`oLO{bw8cUt=<OC }yapk䍟[Zj'/G"뗬F}.,_;ͰЈbD*8[q"\ 0;k}#gC7@"eWUy>q%L݉H$L&]p l5{7f 1_؊}+=֯vt× Gׅ@~}nߏ -[#dC!*r1nD;L{@`Pd5UX'cĽBP9X:{3փ(SZWFM,^;͊&Úk*rP~g=BvPQa߉?:-0D޽gG#'ÏK@<+SpcZB~)6.]) K0}w6 vaoU )$8D$yWFŜ{ԇL&F'&Ͽ߇^6Bwf}4tmw eAAPD"Ǝ}AK3[/Ăt|Gޮe*׀gvh/'4dh.EŎ]U䝟 Gaw8"}PW˅w3rrՑ±^B}ɻHwi{B]D+>>~T@]-t| a2tAbС}[5q^e=B$gEi @2w4U|azUڵx:ՇfIYh4o:BPuU]yЕsV.ʓ2u`ڎ"` >ѫGw,b! K0h&H&] ZF}#'WC:IEx iO|_8?uV+]`!ett L2{]Ok ӳ5ϥEʡ"eWUy!'WF);"iif<R ƈ3L&³p{+UeO~Gw+TeMӆ PܗRlV|LQi]eZ.?_QfPUo)vX3.e%YO"c̋{edCdfi6i-bpIDƘ]H֩ '.ŹkpZ'8 E^ڸyBEPUѺ(k$#2.,b7\(2_*A&,y9гG9Dj.6T d]߅ 0A_$;HED[ 5]m^A/nb<-+pAKDD#2.B"RO eWyfy*3FI07G 9bɺذs2Z7{[[ l~Kk5Ʋ5j h+W vnsHY=u.RDDD nT,-H$bhBU*eCK3z:tݢt>ghjdR*NU3~>8c[lz8r?̌c傍hi뢬+SpmxfBŢ'Ѽ8zHN9C]-Nv!UGLM8QSC3{5WX]@"8t3FO-Y'9*1@WЪiw~*X N&8X٦$ ]U]ۇyW\BRPWGGBj.n?t੟ ¥اUZ?**rׯvYm 5ȻFsrb[(*vn,MR\耋gZ%~ӿϿ^+L[{]U9caJE ";Gøac>.wCd"|eJg쐿pԽ_lM"4spN+s)fNW Sж=iG# v&ڸ=n;/XF!)'04u^P޺(o%4=j**b2O,^3KŔA $$iy'_)Nh%&: ${N ^*LAD[aW& IDATSÕ[m0hj(x⽮W官d>CT<|N|\u|3kfi)xf'Cn@)b1~l)>{6 }( |zu{' M8>juݑb& |Ѻc+| Ktlu/FWŕ[mi3Է c0GIymHUU^aQVB%v[ r󋶗(4s.tyWhcDDDDlXYD#dTXDDDDDD $A ̌C޷DDDDD3DDDDDD$D""""""bHDDDDDD A"Hы Q&cHDDDDDDݔ$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$"""""";!a PHousVJ:Ȱ A0"HB˽7$z>gss>B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H)!@HD!@HD!@HD!@HD!@HD!@HD!@HDB" $B" $B"8%rc!ꞓ^W.PT]7޸F4wpuE-ͭ8n^\Ln͋y4$^pAzjPi6+tvU] rvYVl69Y,7$vЗ_ީ:ue\!B+--fn<=C"TTT\VUCCaaax<8{B Ǵja9R8zԩa LMWWƍ*(Vva#F&(*b),yڹXee.Ņ)--^c$):t{Xj/5 i\YsXѺ^?˫ $I#F$1|yJJ\JL ӥ&ksիkڣ*(VJKץ&Na楦h$5*(!ګ6i܀ioWsW^22裛8ΟS9>K~A͙Sz47Zwܱ^6EM֓OnբE$IC '.qzIҥtQ7Ge꫻7jڣ~Z KsJR4n[r:rzkݧХٳg>>Wy[zj؎!竬wKv*4fLƏOfQff**<ڲ0`;umTXXH&NL֤I)JIґ#U*.viÊu/XV.W s'(>>L*)qim{wjjj{׬9-[4~|GpC]pArs+txrr*Ծ}ka6l #cC"xF$Y诫!NIn^W#GԾ}$5[TYQnњ3gRR"e>5k6l8swi$uCwlaa^xa$wX0%&33t(7BO?O?'^W^٭qtoU>}~zկ~V^={Jt뻛/O_m\PoO*WYYNO}w֭ڷoYW'+==]n[=zPvhhԀ( kĉ۷oУ>*I /0`ͦd-YD]5*..NWDDYxׯ_/Iի8QZZaÆj͚5UH-9СC) k=zt78p`u|7ÇUw{=Z'cÆ zmRRRuIƍ'0}ѢEڵkc^w 7M6M}嗲ZKxtR-[Lيш#_:r>cرCǎSn4x`]y啲Z}EQQ[oH󕕕lƪ[nkԣGݻwk޼yڳg,F_r:JOOױc4`%%%HkjnڴIG.Ij׮,Yb~ڵKTǎRPII ӧgϞ'UڲҊ+$^r oǵkjT۶m5aM>גeskIի%^Ux;vL|mۦj :TW^y:tТec 4SYYi8Cq=;W_}eH2$ѣ͟ dTWW,vވ \ZZu֠^|]vs̙3[d|G$M6;IIIAkYu+>}V2t#F0jjjwm 68p@iɒ%$tUUU~ʌ믿>,#4^>l\}A߯_?#77ѣ!ذaCo߾}C1uTCcs1i'U IFn݌ݻwC خn7,Yb7tSSO\q\6XE\\\q}bFEE))+ҬFXXXr۷7.]ڢec={ /-2V\i{1򌲲zqڅĵkך'}Q⋆$#""HLL4{~W_[rW\q߉=cF({!ɸKWu^tEƣ>j M7d8NC:sRRp8x7o߉olyy1l0s1cٳgO?1~x /0q0O=!:t~0a#?1sL#<<ܜzꓪl3ZVc3M2Őd{oYK, X;!x饗\ )))ƦM/((0O%Ço6ќ?iH2 2OrK`m0 n0o~k774KZes_Y6 ø IƯSR^~m`ƌ~=a+V0,KmLgIHk˗ҽ{wCp2ӿKW[f9s\oɓ'LKNN6{P֮]0%6"## IƧ~jԠmݺո++¨lR4}-K'y ,\uu`H2f͚}j߾!xwn7|sNh?&g0uw"m9{}=2MQqeK/5$~2T[6 ӧO`{w޽{wիW~ȑV?.{\.,.\rKzSR^GK_Zj?Bi7okp1߿_cǎAɑ$@ x<0`뮐-SYY\IC=#F,mm6UTTHf٦M$I:vXriii?ϟFGc3HLiӦ]t_~QtA9r$5׿TTT7|3֭aטzzz$I~҂nu9m9;: o9Ţ_~9|۷IH|qٳGtw7h_޽{L߽{$)))I~\6X Uuegg+???.[|Iҫr0ڵEʺ1jtӺ'Y Dɋf5\t$\}y20Ԡ'ϒtM7,hĽs~'ݻw${4c 9R']')}Я_J~_ջ #IoRi& o]555:xo߮uޓ$# _|aW},乹md(==B'Nr4XIu-oܸQafi_tƍ~qٜcnYt5(GGG_fyݯ.HsNmos˺1%! :thȓaO>UVؿzܯ]a6'߮/R}JKKꫯW_E]믿^7xc5јrS-[&׫x]venɔbVZZ{OӾ}-`z/$I\pAS^zH8C/unolTm e}my48pISq\6X,Bn=Vy 6HF)ƴpĺdO|aߪh̘1A;z6GVG}E)++K555Zl-[wyGK.mN}{ׯ_N7O`Gլ}z뭷t]w=y8qlMzCbz]f$sϭwmb&N~}TRR:wz.yʲ1!@'*}\ IDAT6X[OP VyݻWǏ7رï[֍i?, >}(..NΓ%I;͛q\f`ϊ+TTT>} DsNֻn#ty^YV 2܆jjӦ9=V'O6O})ge^Xwb󄯾`kmԀ:u{|z%IW_}>~Wx<4hߴԫoz}i޼ygovm1XS(o PvƔe yyy=Mի}u\6Xٸq^l6[@裏Z`OQjj&MnLt޽&..N={ :OFF9Z^ ;kժU?~f̘0oۉ!i6SLL$믿֘1c4fmݺ5r4v{~r݋ <ڽ{̐}ҥ̶oHKw+""Lv͚5%'&Se';kݚ3g$鮻RXXX2X[~tttЁR.<3qcw_vSٳgK:v쨔SR^uCo'ڲeyIҬYp8]֍i?, uOH ]>Uw}'8aYV %YjO.0t٘|n `3 o$Δ-jrϞ={/-{ģ>*IzG뽤2[/e]f'5x뭯^}G-\Ә1caSSSۜ6ќݴiЛ@%ܱc&MJ_<@ʲ?,eddA+q*qc%;;[tQ>YYY>}ؓ˴ʫF[l1~}֮]I&Zcǎ9ePנA4h q6N C>3p@{ӟW_}U֭Ӹq 6\xAGkhFS>ӰaÔB͝;W袋dٴ{n}gԛo٤MSοկ+hǎxb >\Zdy2|뭷n>-޽{epmoU޽7O?Utt9ϪUoo6OS=}jɚ6mza7gǎ0aBo)>JIIѴi&LŋտM6Mڶm.\(ǣ]jѢEr:M:FNvCOAAƖ>[X<coW۶myf}Rjj<2$tymٲE555۷w}Wiii6mbbba-[LRm~S֍`W`&nH2FQ|555Fxx!OCwg}6`ZUUưX,$Wtt1k,,` n%KԻ'P]HII ؎u%ׯoR}D9ٳ1bD}JHH0x&SYYa Iʕ+͟?_ƍ3;㪫2ѣIkzzѷo߀m;عsѱcGC`k'[FTT9j5,gyƐdA?b1:M>FBec_A/~aH2ʠ/^lH2QYYeK+ƀm5kC 1$˗/?%/n8|oVո馛ؘ멯8[͞=x^{E+W4Ӎ={yyy XF$۴iV^{]v۷.RmچT;P… }v(!!A=zЀ9ռ^>sm޼YR4p@M<ٯ%dee?={j潄zuQ;V?sR۩ƍ!ө#Fsu(,,L[MlfddwUeeӨ~k/_]$t]W\q}ة:.r?֭[URR$]|ź⋛lv5o;c?oN_]/igYHR@5sL͜9ӼD ,0zGϚI<~leo^]tQVV9s{_I#9N"##uRDk:urssh㏛8SF2dl6@Hĉm6͙3G6lPNN:t蠾}s 7ܠ3sk2e p;͡tY'xBmڴ āk"##Ck'ֆ99sv~|S=cn?{͟7m*ЦMk'$$hn[fH 7bfmi dVѣ۫khS5kF>_QdMKuu_%JGNZONNvz%IV>9CbFFfb|mz npsZaa^xa$wX0陙eo[Ч3cxˎ^FKշosϹVrJN uá8}CoxEUGU݃8~|G>`yÐ:u8$nCpbzj_ȓ]5ky:rJ+W,o߮N:)<<ܼ7©/ !qzxcC3qbJK9m+$ =_:rdvVffo?n, ? Y,3z< W^U.[ zѵkt$[{*3L99-,Xn {I2=mCBt)׿/F, g*O.Sϯw>_a.Q-,OCPw8rÐv*$u"!4ty񒤍 0w+U7sBihΊG6+7p;3J;Ȳ[W_RW_yc?\\SfGݬ2]j NQڻD6#Ӫٳ=k96ѣUڷ6VW{i¤I)X?iъy~SR"4hPB. g"Г"**Zv,VYKqqNw^FHameTy'hĘ =l)H&LHք ɧtY8  $B" $B" $B" $B" $3a/Sii Pddڶbl ҢEa.~hI袋AO1$߿YaXr:J2d^yiS6nN|\&ɓ/x j())JV+=-曟ҥ[eEl##\CEG.K^o`Zmߞs5c%%%ww/*/LQ[v:vҰa5sf?uC B8~Z7޸X4w8uS^^~륒W_T;FQQg;{$w.S\\ry7o HSO@aH&ݧ;lxiHlvy^\5Ree***TSS).Ŧ{[Z^{:wnlA=z֘96^^eg*;T C ה)i8keeF JN-$b=O lF\5PIIrsԩ_!]1^%)1~*UQQ29NTU%GiՊ ̙M;qٵP?Fptӹ?>Uz >\+;UXX'\h ԞҟYox`(B26pƇė_֬-3AmvPrr'uꔬ(2ҡ tXV9a2_1;/ߤv [l_{-C(Kս{h͜OumO%)ү_֯ 39%zeE)22Nm&*15rdkΝcv"󟟫N*""R І ;7kWVaH_'I.~DѺs%I[UII -iI|ŲXd+&&V11!RE(<&I+"®.]b4mZOmڔ<^^Kab}ۥXVV?rBNIlvL4|xǠx~X4hP{׮'+D99e1Z]ƪF}_vڣNb4n\|О.SXX˳sg\ SZZƌhG<C˗gi"*:کh]rIzKhmܘ*k=hҤnr4^33KWv"ԫW**\Z=rzر=QFQ}qǎWK0*U(I:vf9r#Ţ .(Ð.Ԛ59JM-joq9R*IR~~֭˕nСI!۰!_Vґ# Wm4ujEDQ_8b+..L:DKRեKLb-Yտ[]vY7EF:m1֨O%$Xy4t_9mr-7o.0E#F$+*ʡur:zR=&Xi -]VuyUrkذJKk#G~hsm㿹dgDHX߿,?¥EFV+êrUTdZ4zt^^ 0ѯR%E;i֣py9FFh2yikڸl6f2x`&_}v@Sz,_XX^(I;^/4N沙%-Oק^a^x[nnX}kѢIkתҭnhΜJI2vfZ 5wE:D622jƌz~vOU_^Ի;noBMj5˸|nlD SZ^CUu*jĮͭ =r; CՔ)׿no|k^ؾ})k'rޛS{GMj֣Z&'hH. ;;={eᄏC/)5\Ѫvs]lއi.ܧ ,驧FA5Vf T{ʕݻk߿]ɝNn n]?. $i(Z`o׋(I#G&k֬a]tQ' /4\gTCCaܴy;gIھ@b`RN1/ SQ΍1`@bP5m'Wbb9_7rv.$} T}u;UUV|||_@n8GNsdwY}eXW_'h={ W6ٷo_@{]ji-YV'1_@_{ymk^BiGWjUUU\J;V*UT>-F.KG[Ւev_O>\l^bv{yVM:_=Oeʲ jCP׭S&C+mF_rH-YVm_m7שgrӨpWVUUm/faxrf:=T nKuÝr8Zt̙9\.22jl23[s"#%6k'I:vRUUNfy_/NC`&NL'QqqfX#5yr7 !7YY֭î7}AvĈzGWFNK/mڻH{رJeg**ʡ}4dH}e6nsg=-ئMMG=]eu[(Uj2-s-;ʹV @<"W-/AHlnttL`L!Ixae 80ftDBUU -].~7Nt$Ƕmlg>s&^~y_ڋ8|87ޘ\sJ74YBoREg:ܠ>+\-vY|K܃x\ųNg'v.?8Z0Y&O?=X&a`^첍?k ޥ&I6t`hȋ$^z)͛l/g9l>'WU"v('[mjr,Νx1;tIzIG KOQOlwYŝj0յ\mӁg1% LN&wHA" ذa/xA׳Hs~n@e%;7#SfYt0fb1Goo'^{mitw; ΄*Yg{#\uÈU lU^ ?{m˵΅nVɤ CU Ȳۏu5\ړj;W?+Qn`֧v7lM]ذҍS.Tլ <{?Erz%X6ɵ]'eG\"A6`xo&<8 '@Uy0`:TU` .,*fDah`LiHdHz>?߇͛p=-RXkyd{J&a/ :*q壸Q&WJiޅ`Z?FF|c_vfxWyZ®;ow3 {UD0Dwᰂn!uC*Vܿ>[ ~c߆BԗdhA` P>r6Fe'zlK9dj6AªX&{;Nũi0, CfL&J%L&L&J%q86{0M ~,P76lڵtw7>#GDP 'KQ*yD>n{Ja%yv햚}+,7~1୷ &txi k?nt6{FXZ?p Z:'87 -ZCcw{M?82O?=Çcpłfg{5aV_.O7dBFk^ye?ge"m=͢wYؗsZI4+6003f[AH?]tDфif~EI!N! t:L& M4U09z:l<ѡ Y}{ۻ5h{~P9X?%=ތRg$}+yYyq{ypOǃ|I+i˖1/Ku^DBō7>[nyDj~`ȑ8M2Nlx睯1`Lzgg&$:Eb뷊(w<\n]EFDg|p {CSQol&څvKsZI6fvɱZ[A$krh."10삷Q]baM8㌍8oJ7l/_}`=]B'a nXp[~~Vw7 E(G" ܉tZsԧ4_> 7mfO/ȅ=#N>9{K?~{~ G04c-<]t?E R) .;V]鴆חyP 7Y?{[9gv/>Κš&FG;Ωk6o&U|L/,חsg.5ݣяˉ/|٢k|{ш=ͬFeJjh֘Jz@Qv8ছD&k[m^G>>GʊP ՎZ w(Y. 7q"`Ƙ\Skg88q晛eƦމ`0^C/y]=,pmՕK|+3?`|<B6kCx .h-^yev"p裇eKfg3سg;W]ޡz_3k ۷`:?`׮\╯|ٟo03G>?k .em1 ^>Çcx LN&ys`f&/u8ΪmSꪇ}< /_rzG` أ٬m]V jhƘJ>;W^/⡇`˖>̤{w^?? AMm=;àYA$W.;1x.<15 žLžv:l2 En p]?~d*&~8V_=O(~ ??eK_<Ce˱vśo [<}__rzpB4hY {/hpw;j$嗏o?~|;۟dwOqMgaǎJ3:ډ/}|ӏcl,^q9/34ƍ8t(S,o#*+[ic!QoAg)"q9처g>s&~Wq` 켳Ӂ }>Ji^C,[W}o|;ݘJ?X>-LMG軬X6Y-9d~|#+_yo1_'Wx|[Asn2*u{cjj~!U:cD;12N>yo{l: 2]Bx0a6zp%{c ;wcp%w;3x1R) Qbǎg?5}tZ3L7H&Utv:q8眡TJSOM`j* :;D P4 /ꫳŲXΏ .Xc{2js{ O>9+8 .d2:{l GĮ^|vvX?^x!hk=uUe1 <9tR'vX _K.裇0jIcϞi岛]V AFF Ct0 "dYۧHKcwt$m޷w'Om)t0}/<p 8qEb>$BDUnO=<1D[qc:_ص+]BEܲ>'  ':,탭ɤ͛pԠ]-[p=o05asc۶O6{w hU   (kx2#AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   q?c LF0MAxHC)Am   U$¿p#,8p8$Nx<HHNAAqi1 8Db$D4 8(煂wLcLӄi2p k.(qz]E%!LԪfDd2 80Ng^v8@$ p* 8Eb:E$D΃(@Ņ<0&a&^i0M \ (.ZAˊ9sp'z^8~~AAH|p)s BnEZU Y0Ɓs8 I!I9I_^f3ldLӄz?^~;ڃ(H$u @etttFZL0 (O*ۖ(p\|m3AHl3̂pf0RKD6k  N$}cDMӡi:LNEQ K&qE__:::D"^A[U]1==mO\-8"FFF<5T*P(dO-0|>JNkK%jiH$E ._2A8FWW<`I[~[꺎IpM6! vpX,٢2X MOOb~~lfl6IMJaÆH$d0H. Ei;Yuhd|znp8\PxExb7?yMZ1ADcz Kv4fgPUc!G<& '&(V|YZH&0 U'U$ PqrD`vPV0BQB}-[n؞OZeYn@,]Y|Qbfr͚6rf)QmkraDǀvk?A$,p8gyMf ػ+`y!MEQ( $AUU35Yj:ZKySJyV.Zزڲ[59ο'K]{6Z$ڡw屫N'zmOde r5.#Vcٟm؊ Dbp:e>1! c{E֠;"++,n&&VzZ)Vxd2|Lv Àie'T7S${w%ui&lٕu˖ %RV,ψU}LD&)/XɞGb1CϖNjkm]Lh.>|1d2JX6A(8ahE6<T!X 𫡐. ˚y\*ˀ %"$BEHdkP4 LMM5u4^\Z e'd*_`]ڽ.#HM;&^X`4-+˕9rކJG.X6em@ތI^#vj߅`rreۇ(-ND{SUUW GA+~ H$6 Q8tJyB\>j')$@D@~ګSSSEuнiyt^kNjΑ3 o5{CMPƆa`rr.{nͲK%c9ls۲CEeW333 }H[2,kD"vb[#H̆4M۶۝ծ\ohNͤmwmm4-)̕걡_JzX NNN1V\Vh?Zm ȑ#8rH,A4]zXlVG~rXE)h@&K~8iH$@eBJD Μ$ {Ep@4$I{c8ֳvd0==X, ]בdg)ڥڬu[Uf A}2x-;;;k @ `0UUqn;3NGj,>v##`ll n ͂8n;{`}].2=Yx<0Mtt^O{zz077T*e[E(R 3QS3hE]v N},vx|Ezm9xzEH!8Jgo0N+dTdڂw$e C$T1i{uU$H[q5:J I oΉ>þC:@CRKUd2igE kgDe\!ҍFlk4MA ˲Qn L&с@ `DEh?j>c@# #~|>Ĭ:h C F.iM{ȁ9<QsBQ\#/VСCuս'h" Y fA"qU.qYD qDXaA<ϓ@$Eu|vAD+Xq%yM{"q8mj$ w!p|  #+m:A"ޅA**G͇ͅrlpgX ÀhٗA.P.bI(IJ{Ӄ2A@@AK    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   H$AAAˉx<<c Ma <$I,KAAAǽHdRHՒ8@E82n\.8AAA& L 㸂0C6#ՑNg: }x_1ƐNg t]_ jEQJd N~.UU=N$DHR0 "L& _*S2D6iy$ռl, À p\zEfuy7R8ٻ( $4Mqv(@}<U-OMxl1H YsP+Ֆ5߾V{,i{*2 TU۸(z%-xZHRKct: 0 "|>_ANRvDQA 4e1BE9VbR"ú_/M a&n7\.4MC:H$0MU F,,PUDd7 ղ{nn:Nnp8.l\.h Y Z_WjB6EWWN'4MC8i>i"BUUibD H$00#.q1` L9 Av uf9O"c8aݲ+Ce!A^P(4!2 @0(^%]]]U߷c0 $ahh`uH& ;ފXvmA]ѣfuz0 [\9 ^UULNNB4LOOcÆ 8>>A4\.,x088X cfffWe_z !gLHתз);/Lx F.E8F2,&sX?_e2 RTYRkių,ak&TUᨺ_WjRk׮-G\.fKÇa2 D nv]7Mc.؂;i2|zzp:ED"rXQ Ur?aӱV```h np:E`jݧVQf<֬YS~< q"cor:Euq7RϱXw(,v|]m(V`A044T19s|1xBo٩VWgggyB"ie>iZQ`~=Բ_<ϗl"YVҊgY>ƪr{:@AT*{[2[$ZBZ;Ѵf:.lVG.aͱ=('MUQQ+NlUJ3sB2a8)'Hb0 cccxty-qyLdrĥXދd2YUQt땮?XjRd%$Z-P{ZGoH!uaB=00Yag,GZZ1fzT HJn~qd2L&l6m'u"lPOX`v#`zzX N,yx?4ZV׋zw1#H@UU=z> @UU$Ihfot]NjjƳ4S鯫yuRVU H$^'TJ/!Du% A4ϝ([֕Yu D,C6PӼ w  (Jo߿<$333%%IJYIb ,Az 41??0ڗ,FnuUAD܅Df5 2u!si岤r.SjN(m2ƐN|I I^Ώ1W+ȅb.uQQD5^Zs<OK4 %ît]S7ӓqܪhXG*cL-4.[1Q] %’PoY~Ͱ$Iaem~F\#ziױ X"17 $7dYLٞE_8B, ߭ xo꾠u֭ 2ZӳAĺBG-Ob88.':,o"Hlv}_4(b~6cJBA'H<&@Jӊ;AX$ɂG$ӳA .ՏX@p ~p8`&<zzzVm,AA"XqFFFq܉XY :( AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   xz8 ۉ^?t0AAA #) رcB[o{oۋ\yuٽrNOOǞ={Fׇs9W\q:::j.Ն֭[SN9pw}7^~ed20mVp/1{xGq'n+[g'mHCCCq{G_ ƹ瞋W>r6?'|駟}c Zg^x/pQ3u]Wg׮]xp!8Nlݺ^{-@}7OS۷. |;q_D4řgi߫6Ь޿199idR=$IE]p;)[c[;jΑ#G088-[ H'? ^}UqlݺЇpI'Ѭ [\xڵa6}ok;W=b?>|=c{)c[b\vye[lt6alϰ5kgg)s [V5k0 B vͮj?l޽}g+Rcccg8Pђ$} _hGaK^ƍѣ0~5l΢gx<Ξy時;m Z^L]wu㸒8p E;p@K=ێ3狮aꫯ/~QSh>'>񉒟mJ;SMVV_/}K[,nFc۶_Wؿ˿;3?e<{ꩧ؞={ؾ}X0dd5ޓo후$BD`A8(J.ॗCG>qx>ܟ<?OaϞ=+pvGߏP(kZS5>>}CEWWtI?GlݺW]uU߿?.LOOC\qؾ};b>nA<طoNlٲr?ħ?i@?.2r)ػw/}Q⪫/K\z5p޽L&.{.&''_я~Mu]e'|2W}+ nfl۶ 7 DQ| _ދW^yW]u.Ri|;o7|,={T ^񶷽 " n@&__dfw]1.|>v܉;w@ERm_|1:;;غu+vQ h'jضRmZ^z%?7nħ?itww_}݇t:mo[h4R ƃx0ao/ Ft GRCPݲeKG9KΞ= h֬D666w\deeɳ'OF6m yjt/hh(bccqƍB7GGGs9@μYYY&#Ԣ4*-hӮ^jՏj\E~6>P( <ԩdffZvNxYz/KuˣaI8uYv- M];>ߋ3*<<=]lt A BLHN\Go"!!9]Ru $ /wRѨ!Z:96X*ؖ>m۶_1i$hjsFV'T>(u  vL/\]{(K.5;O ? 0k"[v-g,)) tRNEѰaCT كle٘2e njisذaX"`&,9s0EA@@@O^Xx!z职 H$T' IDAT̜9ׇ^z _~& -- ݻ.za=z=zޢEz"[$!%% 27}tW}V8QRm..zRE8,QkgLLSLArr:.]Bxx8 BBB0eӦMCݺuQnB DD,HKB5SRi{h9Y'$'|8VXC!00ڵC*Up1DFF[.5iSL_m۶!((;v:H 4ׯV5,ʣSrΝX` Зf=F~i+UG rit:H$t7BBB+.\;j?rh n2%"PIa„%B&/gP(j7UG >>#aPk0haΜgGҟIz}||!C \ /\`vFcXFn޼)N5h !++K׮]3vɒ%BJn+˅ѣG >]\\;w }F*|wvv6%󋼏 .^_| M&lذAHJJ 7NAvὒ7k׮n`RG VZ w<<}\nZquܹW^X,FݺuѻwoCkٳgj*H$eҙ gΜAjj*мyst䮻5N9sUV8r ::* ݻw* wǑ{R/u5lݺqqqJ g:"""֭ڴix7<(zE-]{n(J`ҤIϬĚ:jN>}e5 ˗/Gff&֭[h9]{UDDa֬YprrB hx=(A"ܼqz5wP$(3 ~ Z [[[CP(H ˡX"ȨM*>@3e2HDh4h4Q,C&AѰ( {O&t(wYRWyX3m9zn>IoQ8*qy'Gn1ʪʨy֤N~c90˾{eW۷C=~o#yo#"[%5Y6>xw~"ۄ WG&,iR/O~ Gz:1^1UizKs)~LEV'g䛟I7an4j~Zm8~^hftoӱF=s!=#nw0l1nZRt,ax/'>%>-v7{z3,kYߴɳ^e6ߣc*c/1X9Zm =pAgA_dBiݏD#H:x=\ AdL/<\ag**:d#;buݝ3Tˬگ5-WZC) "m{?mkg6ʪʨy%VcX EAYy ͯ⭯aZ^;%CG(tid"okw\1=fѲ4;H%"Aە:mH4 o5Q*dc樽O?b*uqD4*g?SeF;*B\D7! 7m0~tnlv=! x{ly-1sU7,\aۯ?k.|QK|!c;H'b/t1vZW{_99n䜍~hfƨQe*Woƨ/e;杆 3;aؿa-d##S7QrFAbQ$9agY:A2=@DtBL,}Xi3K-N! 'Mrh l_9XSF/̥M0uNe\[獔Vc^'XV'&mSko|k:E^{֝%ާVtΙ{YxoAO$=sYocaGQʸ(u Vye+7"H{uk?X&$}_l|^sQ`bJ9給 bҦxG =*6nr>;} />xj=|:5/mOŐ>ak)i]|A@i~>rv; ݍݧUq“K58Lx٨L˽@ 1fwq{,Dcq}GBUݫQc.̓c?"xu&e6ߍ_c-kr ~ 4?s::5o{ch|<-o#`q22CEX bqjr}{glz|n5oc<2ws?D QĒht{,昔5}_S ھx(7R* #suyk-W|OChD7.N^NF1Vmcm2}صgb!m]]{%9?3i^0qw++vG,ط'`oD|~r< ;|Z`z8rox2V%?x.0PL+lzh 6_sf"Nc;ܼS9/%&9O^Ex8] Uj %; *i6dXT+ِ^X{sQ(/3{5i6JO*B"Rem'ï>$]6UcS)E" .l "qR+`ڗ~^]*a#`ςu0 3o<>J&q(*0 =Kjɫvo39wW7f4{J5 v yzi|)d(zD](roo̥Wc% &qݰgBxVJÁqA%,Э z wh8s>Arp+!'_')^iubZIx-Md{5-Wn $aAb143>3y}B9/Hh|4*fQ0Q.<:]+`[C q+f N *m0ȤtisB.ՠwHUNJNbӡFPP!|癄AO⍯FPT .WoQ=z8u4 wzOVaqAN ƃq|M_wsp偵e?6Gk֤#zU4 1 iܺ[ kwbՌhvAeF8fc`>:4cvuhm7|%A,] oLUH10cYs1Y~BU=53Gz7Z.|;qo"h >v@Bn6vX=kBkEqX8qJ_Mid1ݧ. d>6UMMi̦ݒw_;Q] ?;5M_xQTrNŮMѻѻԫy?5|xc"'Dd?ޏe_ L1St,;Z@m|/\AD`h0NT/wF5>x)6Sm}xlf="ض&VLDC`+JupuQ@ ew;1g'No>N/ SǦ#=m쐅wݭ6]ǹ:ZU;s\#qW}s )l֘O{j>Y}۞cѵEH$BᝈƵp)  8ѩUONOHng^Zz9oce|8 k437gK"0&z> ,kRpXt_鲔֖ѣ ˁPkF TX>YgFTD"^ϢIp.NBo vJ[fǣ4[37j ,C,`ǛpLuxȖuC׳U##K^Oɰw`0$Q#ͣ,9lǐ\ch&GznկCIt-^A0+N*j?֦WrSA8!"Jp?5Rs`F7aaŹK7Tц׫/Z  瓹cjmK:pWnb¿ w,̘x^Xv9=F`c[mrFk.y$=VvsN'hO4mPb, $' ehHHrƯ;[aѻ?2 [q:F@&Zܝ3P5P麟R.Fs3;OX$w")( n-qBm?Ilojoӗc@LxNw+Fw:!53w>m"qvfJiXO;J%Z|N٘5|D"RlhIuoƃZ6f a^&,l9Ҡh'ێb;w /u;).0X76Yacy&S䝊;qȥD??]j fÁd[;L^و) HCGlCG$t&"/AwP7 ZAa AX]m]FJ;h0#'s^f їPԩQ1;J8tºvnADۖ4mFx9UJv 5Z9j=BLÕ۞vS'|4h'=L6uD懧}n_?Z63z o{?F|#5q(*P_3|f|4h';]0`[U}_S |sׅjWYnPǓ\6YODR30CN^FՉ1ˑ8'<> 8WP`O o0ԉCVn"tj6'cs\JnS'ti| -D1]KGֶ*̓cَ6< $bV\W[` [/ԭqĶyZ6Сu4<QR&\4X&t;\3a!L ?O>-o_lc+ 4th|Mo# Od'OBwG"b&s??{K77B)ŇCbpqRXQp@"mm+iubWkMBbc8|zZ1 -݄KRES*`]HK;K`hs(pW#)M$`-v|"bС NêE;GaeCȵHJÌGѭ}nC73ˠx,Hϔ5J$%%jΈonlSX8cq/||DY"`âh!Wŝ.%_WLՊg\*pfs?7~&o9*wU\p+.WJSը_6\*d5_eE_ g.WCrjx'¿J~feTP:څbɤ5zBEuy{![J+U(Q*</ܺ 7L4sĺd*8w J 1XD|5dfѰVnM͛T{58ZQN n"vh-^Xo^iii*..֊+4` 6hСo}+Ԯ]TZZ3ggux%O?ŋk˫"##Kŋչsg/11Q_~rssURRm۶i„ (&&F_|~]}Z`Fയ+>C 6Lwq>F؝\mۦ~I֮]ɓ'k*..֎;PQQM)# c___m۶M{6o$9R۷oWIIo߮':UOG w> 0I&x-//8u1uT#!!xG 0nݺw}ؾ}1fwƻk111$سg1w\cԨQ ڧ#|ѯ_?cѢEÇ ??:mӦMƼy|}ˍ#G7z-#==|4X,͛K3Fmڵ(,,4.s?G(իWTqƲed,Z1Ӥ<6 >|Yc1۷m6?a$$$ӧO7 0ƏߠLa 0_ _c7%%0 8v1e#%%xr{M'b0 #004袋b]v&Mdac}itRcŻkv2veFAA1uT $u]k󟍜ǐdXVM72@=#۷oSO=^;vPZZ$ۄ,PVV@K .lR 2DSLQBB\շ~uwǼzգGRKGgӨqJ.]\rZtڷoKPSlڵJMM/,___Y,r-O}jvCVVV ϬٳѣG[lN8~ xEDDO?u~1112dc jUHH$Ux@ ,|As9s4*FH]y\VV"M: ~])Ϝ9s2M0Ao˾Pc$VTT׿oegg+??_aaa>}n}O|֬YC)>>^ceffTAAA[u17m4M6 իeرCz5i$}8p`:}nV;;\\r9$tܵk4ڱcEEE[ni媡y\YY{N3fдi+|ɦ8}V\'O*++Kњ1c+PŢ8TmڴQ߾}M6ɓn\SBB233n:_~ƍWj /T``֯_ӧO+11Q;wW_}UkDFFXԞ={ %&&j߾} NǺWÇWQQV^}ޔݻ:w͛7{1tݻk֭:~x}$<ֵkW۷OW_}>IOrŏiH͛7|n]suǛO4ncwl7ܰ\vPf6jÇvm>r]y>&On/I5k:o6ȕyt&MZJ M V_ށ^ǎANѺZ-$ m)$)**Wjjmbbb星_' }O|{o/X-bѢ_C2ǏJ:SSjmQLvVn-Q>>V.26A"vѯ~m{9iLwzu }֌I o@͕:M?6n2%x ]xzOg, l MlUZ3qbF&Q𳔖V'ئ9sXk{a͜I3gnҦMY$6mD\NOxۮGy@nȐ(6-ᾊTpN,ֱcaZԡCTY);VbN܆dZԩSbb|M]j]6Pii+t}:a'k Vtzj[>/ [:*2WEE(ֱco]HfN+3Iue76_Z'߸9bs]wڴ)K}FHڵk#kQiL>6T񗗗EN9E]+"Oyye:z@e6{R.͝Om)Զ +tD22[pg}{AWYi4knKԤIq_17L}vD}tZPW]ɼrmڻ7Wzᇓ"IzTj[>]BvװaQPXXO?=wٯR~nzzۥ@4mZG-^|\[f3um4|}ɓEZzk .Zt\|rȭuٲ{ J۬mx2~J);Ylp]|Ʈ;6F{re_vYM Ivh37.VߞnС|=N=|}o4eJBC}ݺ5[O?];w4Kim=4p`$i޼]ڸP{pIҳԶmOU{hҤ ޝ?/<ޠjd1ĉqz2$ƔVE'Oa]Uc eNc5^:~AA?]IPkکS{n~XG[9@S,SQQˎ09sFǪ.]ukΝƮ2}I9R /~"dH~za:xг~ѾJL<9p OןVFFQͫa_^?E9]vo7Zrrqb̫~Wg}yce .=a^-.hּjذ!;F|li:iܸUTZyAm5qbD=PҊ -\x\۶eM/ / SFwATU6}vYwƍURR.]Nč9s7k><$wkvНwvm%Jt Vǎ5:z챾޽zMڿ?n^4gN?%$ˢ@kf*/5^zT}:w~+:|`Q=? ^,բ6:4J˖t<ڧoO$zk7}&lv?ҬYk3hP[=( [3g[Wzm⒪!kmq|!!>߇Wr$6N^cĘ_xa{ogN=h_ɓ~WWoMӷߦT>.2;=ɥ$6b;ѹ+ mJ>6Ƹq1*}ngGai=mHfp}tDO_}'~ӬII! 1lFWAԜT Qiifܤbb׿SJJy'ƙ'b<7h-n cc7oW_cޣGW]Q113O7YUHvlWLjdKҏ?f+>8g?\Ɇ!7:Aúu7/ ܣf>vt}ѡZ2=NyϞaN]Eo۝y5>\>7G\Y<:,ZkZqb[#tu]*noQxa=Z`YU^}5Ugzr6ݚ+5gd{}7wd 8TTm*>563P~~ݓdgj޼]Q_3Ƿ92)ϝiDK~+:UY,3 cСQLNns@osjݻstΝg;Rmm[VSO|}0 R>ڷQaG_ժ6u))СCV<֦RgΔ:|ٓEw꫿ӪU.:yq[}qZZQ=mt rʧs5$++ԶmgیW[7hMp -͹ 1*߮]CG_ΰɷ IDATU|gUVz?v<9^ھ=[7fi mْl'gJ 1?>3V濡 (0@FD)3ӳb(99\]+!!PJHT̜ U_mοixT]pκe6nTjt6Z<77v՗hd 8O8wy> 6ekןGbkU?Ru22hqzKߟ7ߤiXIiW;yaoWT,15䞾oO%׺6Y`jBWv KCG۹.xjmN壧j m3mfo2@@솲8פ(UCjS\w:;\N4fLFVav GEM7uՄ u YO=]Up"#Ԝ9[ݯv of<7ZR||^}xڵ+GС|ٓꝲ]6{]Բ\ut)ejnCN:u.ΏmPSDDztyyYԮ] ?!Z[Zj5U_):g(,,תUz]/sU_/{\=b7}C%;1I $V~އN))6 Oy{YW^Imc>\ih Rvq~Mi">>z;HBR} 47$nT}(K>aw*O%٦-s5œ:Meֺaؖ4{2\zq~8ZVu&>۷=~"SV&7޷/#m:۶eכ'wpE6̶ qzMNjwΝ.6:R O.\_Uկ_DLwq%pGתR>7U#GFkh'hϯOBBNS;jҤz//qjzGom6;]w]ghڴ fI(>d.cĸ쳿l$&hկ:-U uζA4'$8^曻|z׌Dujkm$?cٳ'{8޽۽;Yܧ}lÖ[g1OI}F[-z>7v+I};]w^HMզMYm7klu))ZYvο6*r%+Hhym̙)OɓώC5&im$穥KOh ԃ^YyyY?ovWLgZ;vm9\@>p~.)\{...@M1;F۶e+55Y[;HO<1c7\)zjlWt ֻΈ?xcW͟?DVEsW]pgML nv<{2c = ok;Wlk}:U5СQzvjK^^%&hƌ i<;b'eH C9sY,2UV2gӬYϋw$-HoWwa&([ӧ̎йWJ4kVc}!]sMz-*C+__#IwܑJXk \{K)kUWNN^xa$iذ(}8ef\f`hkꢋڛF#eKfު' }{ǷᇓeZ' vŵ *+6W .'OK[Pȑz[WZG6hSZ.\sذ(㔙Y ŝ ,9xl~)Y#T/8sҌbOk]J5;4~ZYળUJK+mTvvyZ^|qڂUV]Qahc:|xҞn[Yc__\#l>^}?mݿ+fmXF/F}+2O:|@G뫯Nܵ%>@:vP?pJ˗REˢۙCS ҄ q1bbUXX1o>@moO6K]pU;6F_+WFFzjn0lXo@);D{jc?̴6;K;(11D-ӡC4B~EGk$A"A"{oz-3h$6$D$$@( [gΔȑ]ի3j]8$C'NpSA" @ H$DA" @ H$4, 曻9[^~yw=mu $ul/,̷kxIS|`8]}u'8%'륗jɒ iݫ<7I9jхFչq $ ֹr8J'g9JgO駸8J+wQK|%?1T~~^,Y[75C+8oiϞ\IRa&4W=zoPt]=ܴ)KZEa~So=B_߅LqN"]Vʣ>@s/祒 ujXe4\IyeݺL*??/fȐXJZpmpƶ\n^vhȐ$x=H'8K֬ڵ$p^J"+Z:4Jzu vn^ث:X\\Ab8op%͛mCB,JIp$?^4lXUc۪@3?*IJI 7ӲJuv("OaâT^nhݺAjԨhkFgΔj<}Q5ѩSթStLN*7ߤȑZjHIҏ?fH]E?>V11:sT/5#T[:9yUD0lylH&iĈh>7k~~?>V={*(GgΔhl}I;~ziܸoJ/++탃}ԧO$UʚC_ q+۵kԭ[ڴɓEZ*]e0Vș4rWyjLs&_QqUzZ5rdTd23K/>']ݻsj)ۡ M qcJJ?7<;(7wLHTJK+ҡC #T~~V;VoMӮ]9u։Ӎٷ;EGۮ$maâ璉mS GL9nH;ԭ[&LS*+Ծ}Qlő#:~Х3i`a0'bzJNWVV&N\jZA1)S)>>P/8XtEKysoZw~8יu?-I8qJ#)첚39S_+W$I7ܰ\7U&}ݛkՌɺZ'M0 ώhܭvk>6c22uk^trKX}xUT6lfLѥK6l8;gʔޞ y,;Tsnղe'kM%E_ܾk5kK/ћo5O:ƅ /\T}KU/IW^9ů~Y(ʖ-YzJO/nP+I#w|g՝uJNԾ}@ewώ93E_AiiEojaZZnM7u=Te *'wnZ*]sWHHI,8sܨQ'Ywvm%^uƖmSڊbc)ǎ!բ뭫TUoۮ@|s7Τ=Zh-\8WqY>SኈS:ziiE:r@N&/8fwֲP}k]VT^^FV||RSs~i~qƌd;ի3T\\#5n\"#4gN?}}=͎ΝgrersԶm@M}rLJvMO3TPPaâtEFsoq܍ƤwѥƫRhϞW)2A3f\ I*ъ:t(_II!1"ZziJY}5qtdVPVVRR"4`@2_O-I:r@+W+3X}kDh]&L<5]\Y$gP͟?T^*,,׷ߞԁy1C%K~xPbE.bc`97D6׹Am%I۷7@.))DS&KejlEEСQj׮.9sSN7e߭[5th[u#G b&`ihlJ67ʕ~ƌ t Slmf80RKsy[LZn53UCaJJ*qi  /lg$6~%Kkɒ㊋u6oҳpS:_|qLmw׉p\}Q=zaJIЈv`o^xa}w qGv VLN,rI~5VEw]~{Rved؟->$)55WZ;u ҋ/V\\z(YW\9O03@\fh7;衇adԾ}$N7 4~9H'k*9F*O彫u̕jGK{ך$i=z4-;SfM y{[4xp[;vjHwV98x[ԷoYcHUT5k]{䭧j5]N7uߕ+ӵre~8Y]kׯcMۦrU4 Zبm׮.mkI{|58lْe+>yYa*C[)9ٶonnsq֑v^***W^^{}冾&t@9v?U:new}";V`ᓤ.W@ C_6xС|=6IyF6_oK]mx5Y>[UWuU_6ոOlɒڸv{N}3iRU:0lXt Ve-ޑR/TPP6mt啶!ڼ9W׿O$GP=ܻwm5{.@l}zluڝM[WF_{mgIa߿.@josi$R۶e$bTVO z-H UϞvKƍN@Tv؟mآGh%;vIwU-^"_|Q%f:X,L}ޒ%kէ-o׮ͨ3VСC?uցC5:^Uj0Nr,ZT oOoW7f9YMM,O:fw1WևI7vюgj73"ٯ٫U4{Vrsdrh>lst}#? "pgvwq3y늶™(WGꜴ_:Qi/nҺu0 R;+$GePӝ;sf;p ON):6܎ggިސ0\5C_6 |\:u:{njj:u R3QQm oϮsUTTa^mqǝS6kd])wF-Y\uc f绮e3ŝpŊS{*,W!JMU۶{ ʵ{w6l8cc4p`!CM% ۶:mMtKr&o]V8zꫠ [7u˖Oz8֙VY,!˗Ґ!g8תU/t{e}R114)N))jcw?gΔ4k^jTyaҊ:\Շ8QXϾuɄAޗQK'W+CUgvԨhU0F׉ mk^ټ9u1vl V}lP'yl 1!tsg歫 g~\Q﫧ss+ `۷ggSRµm[WmA?뗿LP>a 1;AUkB+xyY4vli\<ݻsԡCz\͝k ϬoSհ(ooۆկjTՕ,uٻj]4jcvwse}*w4hegŊt]}u' VwfaD[ =B=BkUii_. v봻ˍ3j+~~M[g@xrC[di(D(55WmSm׮TE!//LUK6l8ְi[oqxʔ?^8"Tujx\ mՆgE,Qqqڴ[2Zc:vh:u Һuz]J[د_-=UAy*QD4[.{Fm_=kSzS w~ոi߳z筪ܽ{E֯?]rsѣc̫U%O7n^гuP?wU^ꞀbY:99$'8WnM?jS]I=m"AKLl4jښXս_ݺ8.99\MU&F]ΝUXXnw/["Ik2T.WP5tVVI,ݕZ֝l+%#ؼr쨽ƮjoWA"Ai6am]چVZ cҤ8Ik\Çܵ~ΪN iv5ztف^6mMp՝pCZoT,]_2xsBsMH?v8F1_[kۺV^ݏ IDAT`͛7DO=5Fln,i˖lD1zT)S~j3-=;Va\Q{{㍮ooWA"v1xyY 1n۬&4FSl6EՌCDոk~Sc؆UyhJ:QƜ9g?4gP=lCѾlA2*UgM_Vq5k~u]1C0୹sW^`yJ+gҨޝuNĉBY,SO ۴ܹ譢 -[V= vf WW[NAh7.F~2 iMf0T]UfhLP)JK.֭يӀ |rW,3yԶlޜeNjؘ:ۂrոZL{z$lL3HttQ m dS5iR{{{̙R+V륗v7IR׮瞞vؠuNkq o~P_=VΦeҟ[aa=gU/ԣn1V׿nUQQ|5~|]䡇6j5DIzMz5XÆEmxq͞U |sJK+vWt.C`gv$I{w'ױ͛tk#)j>@F }MO/Բe'kĉB8.]U\\;k.ni]ziOi+OGj3^JC|pP/شB*Mg)m'zMzd]|q%z)uu^0 _+=@ Ccz>TYih߾<-[2II .$^~6n٧s@Fh=C3gJm[~1Cee!Pc(.__)/~VEcD+11D~,ъv1cbԹs,pmhϞ3iRyc:cСQJNWhN*Z<ݼbRn6oүJ?>V!f.[V:U[7n:m+y9 D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""zDD ΝvߐFcOO'vD""""""* /7%""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D" ^iuXv-ЫWrIKKS꒖l?s挲feСpssÊ+8>|{FzдiSX\o􁷷7 -OQѹIDDQ sM/??pZjSTTԻH^PPl/..6.HMMŭ[$&&W^UEe믿FffmϞ=?*o~TtnD" k׮-w͛? ԏׯ͛7#77vvvعs'~iZTVTT ZYYaaaeĹID QF=h߾}.|.իzY֭[[.zu!<<999D$"z qBܹs;vK9r$ݻv""' WYYY8z(wް2]^^xZպq;S|||LơC=z􀍍Acǎa۶mHIIAjжm[5 uԩp_ddd`֭EVV\\\燀899MLLDJJ .]z*Jl߾]_7jժ7o",, #FPsNDGG###uօF5jOOO4nhy(((@zЦM8|0㑚 VF!00-[4H_PPh@߾}G-[pEhZx{{#((gmJ>}@Di&DFFf*4DDTBDDf>}Zmq@IMMU$%%[b|ׯ_m iԨ7))hyqqqtdԨQ?5jԐm۶I.]{fêUh...m6f2~,M>}xzz*Ǝ+DHffɼSҬY3}_*iKJJw@%??ߠ^zrss%((HT*T*yW LOOWĉ_9s C7jKPP{嚛ƕD"LNBƍf͚Y\^PP6mhܸ1:uСC#PfMꫯ\]]ѿxxxԩSğCbǎCd={ٳhժ}Fl6l[b˖-xWn[ll,zw/"ZndHOO+\L2* | q{?R ;SNzǛ9s&BCC;vD~쌫WbHHH_~6m(<7V\G0x饗p̙J ׷\}\m&""$UJڵ\CUJ+M4r|Z9r䈲}W7|#jZIcJbzz#W\9qssҰaCq 1bl2e)55U^XX(kҭ[7Wu errJ{{{xo͚5 ۉ'#FҡC),,+/??_4`zȳ>+_~&WU*,^ y4iii2?ts[R sY6Q$Y$ M/4H]*999F -Z .c駟7o\AbtdT*\tɬ 122R#ѣG?F@̙o@ڴi#}v vvvoPf͚RfM}tR -[4$ohޫW*iW)i57+f""*nJDT=KLUh4iҤW_~L2dx =W^2矇~>KHH .5S]?lܸѬcbb:tO?m4MzЯ_?PY/Vӧ1}tL8xbժU+ܼy7o4ٗ kbc֭\ʫ_㥗^2]f""2$YzUqΝwQDS#\r\-""ǏZ-d޽2?RSS|qqq&kjnVDDT6DDQ&^^^Fӎ9Rrrrnݺ""˖-S[nEAbaakbeeePGٻw""aaajAf$&&h>K+ew%ߘ1c$(˃ ʆ ǎSիWDž 7qZl޼Y_.5jPO}{(}!//prr*Ç_Ŗ-[0yd7oZnm4H,jbbbDaҤIhٲeǢ"c_ 22[nqUk/"Zj&55_}Ο?F///L8|kNHƍݺu7n(i333WN:I~~688X֭+۷oJ%믿aÆIT^]ZܺuKƍ'kזwyGW.;wggg Ǐ1cƈtYj׮-dРAQ޶7NZ,_\4J֭I\\\5%??_F)DH˖-Zo{WIhZIII1YܹsDGGKVK.i\"*Jϟ/ƍo6F䣏>[[[WWWΞ=kXTt+6@QJ9992tPetc(۷oWڵK4KFԤۋf IDATSG^ʓ (HӧK.HTT͛7EDΝ;2b U*_{= yw̛7OED$++K۷O/H'''O?"exx7 ]vr5 xzzʕ+WhBHVVR9m7nh4_8qBپ|r SN-Jvvҭ[7 ;wTYjUĘ={T*eu> Ν3$3QݺuԩS""R\\,iӦY<X{)*,,gϊԨQC .[l)kז'O*y-[&d̙<U .\3gZ-;ԬYիWqV'~-6mUVggg1o&K^_z%bɘr~q |ܶb̙UM0jiii… Qvm*OjXnj5.\X16lD014eܹhӦ 'NJ3sǢc_Ymŋŋ+^?S6mn߾Gh޼9|||ǏǢEO$EDdD"*r@ZPTTXt (..V>]vEFFޗڵkO>zej99998<`ʔ)ذaroWII Nt,,lNrrɱTzڰaF+WbʕpuuE޽1zhۗ')""DD͛7A2ݯ_?̧t)((>sL,Z믿gy&_akk’[7_jNyf̘17oF6mn2%chLY}fXTDeMG2Z\\\fZȑ#@tt4°~z̘1-ɊA"ñb ܽ{oQF=n>-- w{,JJ .<{,Eƒ%Kжm[=zT/KLL|$’W6i||UVشiFÇc&?1|cQmӽX| 3}+^uh4wpBk׮ظq#.\n´iWTxױl2s=۷owށ-4h#&&HHH@HHr)݃@y={yyyJ+s^]p! H`Æ 5{JU?>>>/xchUXTulll0w\\v {Ɓ+Wbٲeh۶-:uooo`˖-XbKbǎܹtW""zBDd{jiܸ?^ݹsqQVXNs='3fKRdܹRRRݱc8::ر8qB9ѣ$PDtʻw""!!!@._lޛvSqttR[PqppЫDEE饳=mI4g K#cV%00Rœhی'D/^,jZ6mݻg駟/dFDdJ*DDT.oFll,Q~}>>h׮mڴ3/ݶWرcHOO;tbϻw"&&/^<<}a8z(:t <: III]6?M+Ο?طo Ҍ=֭C^^lmm6cǎBbbbn=鸒HD74p@L2屫ѣG%uCRR&Nׯ;@<~8Ο?zZF$"z=DDCcǎe- h۶Y֯_Xl^ylݺ9lll8ùID  {Err2&L"33-ZIТE %mdd$1e#-- cƌA5LKKCxx8ڴi=z(ۏ=H9sZFR4{Ajj*Ə۷äIЫW/⫯h光'h <<ƙ3ghpi||<Э[7;vOOOݻwWGEE)߷o ''R-..ƍ쌀 O?{|KdDDDݺu? 55?PV-Nk׮Ell, ???5 vvv)k֬#G~~~3fA[JX:C DDЄ >}4EEE@<<<7NZ,_\4J֭I\\600Pj|@BCC o W-X@DHVFȐ!C$//OI,u֕۷J_ˮ]D_4jHH:uիF("2l0^իV0 Aǎ+mL~~9RF-[7xCIꫯjR޽[ĉED2l0/yAAH͚5JǏZÇ+233WN:I~~Es?:UƵw!-Z(snwsLDDUA"c$j4_8qBپ|r SN5JiӦRN),,( 7oȝ;wdĈ@ϟى|HQQlRj׮-'OT.[L̙3Mƍf͚뫗.//O}e%;;[DDO֭;w*icbbZcCȡCDD@Nn߾]fX>?}Hx{{K ƍJyyIqqdeeIpp}Y4F%^S iР0 SnN5DDB̜9ʶ &@V#--h&Msؽ{7n߾l_{w̙3Z}j֬ pttիѸqc|gzebɘ>>Ñ#Gha1c-ZdVuo~7HKKS_v-Ν;XfA3gĢExg[sTyyyF+m)mnbIA"B˖-@?K/a׮]}`ooÇ+5j[[[:iii{k,L899~~~/Ɯ9s .,7`˖-駟PfM 8|xQVRd͛QXXc?4ؿgaaa&DsXt)x /1c777dmG -;ĸ8s._\UUg""/7%"zZjgggݻO6Fw a.]*C ֯_m۶aС po{DRR^Lmj8}46l'mDf׽Gj/Çk ŋ:t'OxJwȑ# >T㿄۷o#((-Zᅬo;v,DR о}{xoj_|l}+W,ue,UUg""bHDxt_"''ݻwǜ9sw^oذaw 6駟ƿJ=v1`DFF͛;vA "??]vƍqĠo߾uMV1-[`ŊHHH@JJ .];vs:u*.^oժU#&&9ApqqAxx8bbb(>G50m4[nؽ{7Ν;?E+:UUg""۸q ?^222 7NHVV>GGG (""۷oҼys)))1Z;wJڵ(+VK{݃:wWWW=rR똘(Fs[k> JTT^'`R6!!!z M6 )))""cqtt+cǎr G6{N[oe0-`$ݜ:QSϴDDPHJJBVV7o///^Zn߾Xǣ~xgj˝ݻŋr#̙38p1rH(1{l۔X\pСP>_FFߏ[nڵ5?M6xg,*;55Ϛ|rTg""2D""z,17oFrrI!""DDH۶myfӇ"QJ"=\\\pu4h{;A"=␕Ν;ʊ&""bHDDDDDD $KDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"U)5)**BZZѨQ#X[[SA"=ZrrrpY\v pwwG5=pOݻt_;ЪUJm E׮]9U̙34hرcju{н{w@LL 4ibV,,^6mBZZM4A^0m4hт>|.`kkؔ++VܯRиqcj =z#R8fڵk7oB`߾}hԨQy 3g`Xh#ݾ>+Wij>uSTXX$iӦhѢ4Mqvv,~qp`' "''NNNUZ{k[lU{ƌԩ>M_TmWPN8#G"++ Xd .]\!%%ꊼf1+W^ZJJJDDXeu_48땹kݻwED$;;[&Nۼy3+? X`Nw?J=c"++KjժϡC~z4nK.eӓ8ٳzdZ777C͛@y Uz{{{|W=_~666vO1eggcΝY9\ IDATf!88X cǎŌ3;ܹs]vaoo>3trP sojL0h֭[?;VܹW^y* ~ru\\\ .FѲ~gرW\V+MAA}9r[lŋj퍠 $jnsNDGG###uօFi<߿* }`ӦM;f͚eqÇ#>>jhԨѲeKJk{vv6:3P lݺʂ ''Jh%nݺ<@ӦML߹sg8::._Zj.]>}|HJJ `a֭ػw/n޼cذaҥRFDD~'dddAܹ3 fp̄\pM4nܸuĉE/}9k˩S'''4k h޼AzS1++K ^z +++?s)s*DҥKW"**ԶWTFP~}8{Y6ScݒsvyyyyYf?>V^QFgϞ_y0ڵkXn~w _ߗ?c'ODII ,@qq1~ww$&&ƍgOR'>sٳhݺ5@?U'[o%Yf|X\O5/4ZT jZ%((H׽{ ˇDRͧRW^1WVJ}ĪUh...m6<mkEk%%%Bآד'O*_M0`vm| ߳gO.+ (>cƌdZH5Ϭs1{n9.ZHSH%''ܗVdVe]VZF :d{Gݻ>Xt+++vѼW^U~W~b:xYF"""uKgY8 *JZܾ}[o_XX('mJHHrBV.k֬@dUeA=`Ybȑ#6{BGGG >H&L uUOJ*O+_Bu QwQ̙#˖-3fHV}+V0kkl˖-L6ׯFRΝ;L6Md=VVV|y[z|gX_t_{2k,3f4h@/9pEqqqRV-4i,YDf͚%& ,_ddH֭jJBBB$$$D $HVҾf$VEWmN("/(f̘ه󂛛888J^zٳ ƞZտ/-=<Dz2vϡȐ!CMnժU׿A"t'e˖+Oǎ,Yd<_fϞ|r*J/^l޼yJrXBiׯ+'~{{{uT* / W\+EppAޝt' ckޫڪ[}rVUjTZ$hJĜ+IĐ:r2LGk^g9kҌ^zeϹvgرc9wѬY3CaQSQηAbppQzuݼys_6vaܼy3_ys_tY,*UdYWhIŋǛ7TzAMٽ7hnw^ԁ ^xxU]v6o@;Hw(g1}tC1a„B}77H 06mjnk׮m ]Em $Ɵo*T`?~ăD{킋KɊڅ7eaۏ|?~zќjٳgݻwO<VqGו2A"JQNmÆ $qƹ]OثW<%HҥW\yÛ9f믿oTT9{ۺuk% WWW5ᙖ!)-ZKh"}rԧOG7'O4=z4zKp,^{~ׯoH2Y6e3}3 /w||Yǎk:`ӏV2Fmpq.$&L5jѦMl ڶ'Hw.L`4ll ;Hg.̞=;va%}Yߏݻ7ۻx-u1 11bDǷ۷/7 f7ƍ5kﯘիWO{QʕsM~[[SNQFw?K[,eӱTc[Hڵy4h@Æ \ߏ3KqqqSvr|ŞmlaРA9sСjժ$ѣvNqI8?裏4tPst2]Y $M2fcyIR߾}mN@ѠA{W_}U~I7oVHH233f;wNrvvJ{O7n˿[F8Sps-zq}%ݙI3))IUT)R0aKĨu:t&O}aÆֆWgfΜisfͪUuӧ<==sG~ڶ*w{1zh;V7ow;V͚5+u^zjҤIGZjeI_ó-Գ>[[niȐ! -Zǫf͚ƍ5o<}pg%իWf 3ghڴi:v오;k?I&{_ANjEݺuK3k),-= Hbݺu6mw}W/w_ɓ' $J 233%ſ}yno3yȐlboݺ:t֭[sκp̙c21y lnT{EFF~VӾ}Զm[j۶mقĶm۪m۶:s6nܨN:)88ڗ/)xwj:0m4=Z[n֭[秄jѢE}搶>ǒfPYQɞmvA5h@׿Wk֬)g4m~gUI}_d/jĈٖ0c}$iȑVݺwaÆiΝoCe}iA"J؏?S*==]C ʕ+ ,_\Իwo~Ѽysh\>s3`;w|l=t~6S|rYٳNYFK.U۷l٢ .G .>EڵkPYFZ>6mM,8qB|/_D͚5KK@tttܖg6x=sot͝;WC-6킣9$˾b޹n;wҥKV7ҝtAwZZy zLL\JJJĉzJ;w,TK3 o8$ԩSnwamڴI%͛7K ?NK=op%~q0̲ò~J!)ᴖP$Y¸uN>z˄:7{ [233/]v/1GGuI}N:%ggg敛z?lMpQAbi}hvppвeTbE8)TY7n.I3M41{ʊ싻(1K[QQQZzo޼i:xL$>vZU˖-+ru$=z)Iՙ3glnCjy~9ڛY-[z=z{fm۶|>Ų}y<#FQܜ8q,ܦUVƳgVDD5a„R}111f899iׯ-[f3]ƍ`4+++_7m,%ʊ fݲeK͟?_ҝϝ;W.mN7Bq}q}?f vmދ+!!A?$K.>}3nڴ)vD3+l>}h  ذa n۶M_ueixիWa|࿬Ff͚0 ?>llIII0aUjU3Dk~RJJպںu{\iӦ_L&MV&9s;5Lo~n[r{9_o>1BV^zOK8 I6lXNf}Vˮ_#G֭[rrr;c:`)/mT,_12bny9HCv4?CfMlz<+VdU1Boߖs%Qm?ϟ/oooy{{e~矗M25|ɊR tqq/,IZty?ww;b Ν[o\q}\-?~fL<==m^ߢkQ… .%%% .4Vgx'Gk;v4$j2RRR ]7,ym7o!ݻw}}}g;''''W_5233m0u0 /0j׮m31c #99*MnҥKFvloĉFRRgGao$c„ ?yB#?m[N׬$ʽmv^,kѢE_6;}t,C˲7ojK~9sq~_6m͡Cիm wwwc9ҥKFmӧɍ(k{㾷g*55UůTySZZ|}}Xyxxe˖1bWZ´k.Q3fj׮-I:~V^-'''5J=]͛7?(00P rssS=4dȐϷRRRo>ڵkRӦMմiSuԩ@PvEAAAzt3o-Z޽{JLLƍuIScƌxھ}~wEEEM4hPNGVVnݪ'NիrwwOCfzc0 C^^^;v5jTe_#++KNNN_#ٳ C=6m3̥H{_ujׯ_ ʑ`ٚÇٻ~vuիWOyk%ݙ4DxܼySչsgD}Zk׮0@(;mۦEܹsʃ{_$ʄ:]vJNN;RJJ*UժUpbkDA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" @ H$DA" @ H$DA" @ H @ H$DA"*Pwde%;:P˚XMP=p`T(;n H$rqM.ܮ^J𨢎kkrr*\?,IjР2 Hĭ[Js$j^E˫F=L<^|[]E V7/|V{Umyjj]K޽WvS/oi>X龼F~zN~~yHގJ $oZ7v,sA UZΗw7/PEo#Mk ]Wpܹmwt?4&=Qke˚9ң?ְaU䤔\eLKD=IDATWuXbbRVQ?\]C6Rժ9WLC{^Qhh"#TZ5jTU6uݼӧ%I>&GG $uT[*><6,즮]KQll$)::Y_W ͭPa5g)--mnsd,8A䧟Ӝ9m4fLa'Nj`EDdO!2fli.x_%I=HI5ٺu@ڵcE?ǎPV֝@{ms z#JNT*4`<=+""IъITjj&Lhfz5YvLqqiQYC4RUKniPyyРA wwStUED$˫vJ*|ٳ :{6zmxuIIR.uԿ,C +99S͚U'|]/ޔyU(I5kq mK$Jڵ..zهڵ]JK>DynSvE @Ud bZm]mws^7JǏǘkp$9˗oIVFЈ^F%A"l֬VX1YY\I\LoSO=d˷%IuTԉ92hTTlȐڼ4~zs:[R)O E6~CV-Ks I_׸qMZDˌy _ΝJLL/\/\$5iRU4ШQܕO Ůre'Mz+H i %OzˬZT5H<8rdc.?h]U` ݺ˗okժ ۋzv;Ilˡ8 $\zjҭ5n\Uԭf.ܻ!Wwȑ5rdcee MݑڲnпuJ]wO]LLj gj?#HLL'H3 Osds$+PPPbgP蠖-kjΜ6Z*TpPFcb_X{(|(23yo/]%IGy-7ooUhzc1㰶ll3]U-CHl3]N+T/d>Dܷ _?w5lXE!z֧dꭷtv*WvRle;0ntIqfxgxw-IwZ||E|2_|;I|QiiY:v,F3fU1*8:j# Ծ}-kWKnk߾hƦAzNV^ :kRݻzҲtDN$ H^^wZ\ԱcmjÆpmUOY:z pWpp _iڋ^|I $Νȑ ц y\߱cm-Y}"#tXճyUҜ9mԿ~vyiɒ%&k߾+V띝5r^{ٳ*,Çm kԨ}>>}iϞHťOEO>٤g[)88Vӧqj>Vgȑ:y2N _6>}꙽tܾ!J)ruuQFUn_4YY*44Q11rs޽M"uugQ*4ɳH  kD@.x&QRbbN+v^WBDA" @ H$EZx,Yz5iD^^^߿&L ryZpN>+rqq)ǽqㆺu&IڳgL9mVIII~.++KݺuSll$W^Zv]t)5JoͭZpaݻWeD6|r}gZv<==yjРAJNN6Q{yũ~z衇eff-==L˗u-IҺu[5j3/ ͛7[,yfXgY ZNNNV˒u)""BԩSurգa%''rڱcyUXL7֭[5k,}gNj۶mzgUVPV(ϱoԳgO͜96 41(&M-Hxw4vXٳGҺu4qrsn.]$ 4H[Ԯ][Z~}AbVV6mdΞtRbq^^^9 7oI&b5(vUT*!UV} [3F뫸\=t萮\Zj_~|r.%%S WXѩDٸqc5lPQQQ:s="988h2 Cׯ?-[jV_zU6mR``Un]CGV͚5sGA҆ŋ?$IW\ў={$XJ긧OVdd^*No={n߾}ھ}"##viڴiڱc߯W]ڵĉanڵk6mٳڲeoIor(<<\nnnjܸƏ-Zd֭[_$I7'JKK%IC $9rD7n˗&oooM:UUT)qa>m {YFF6mڤYqqqjذ|||Իwo3Ν;{n]zU5RϞ=Sn' _ k.]v/**HǞ?!ɐddddmVVQF C1l0u$B Fff1uTs/0Ufnݺ͛sCA}~仜JӦM&::\~1fwwwĉ6`xzzLWF cٲeSrOw}אd <8333 ј0a!4hPmS6`̘1#[ӧODGG,nj _߆ N*gÐdL<9mKsZ0\]ffƭ[C\?p@#33/ }D%&&D9裏_E-[TNu+V / IWx jJ'N?ׯ멧5|p&m=4gO:s挼u9=y>;v(,,L:tPs-zѣGkRvܩM6)::Z&MҩS۷UZ57Nm۶UXXmۦh͘1Cz ]g|||pB۷O7nܰ PڵkkZjU{7_KuaÆvںr劶l٢kٲej߾^z#FhС^٣oVQQQzgcI)k\i~{ѣG+88Xt颰0-^Xz~z멧Õ%Kܹsڻw+=s4zAObazMڵfb;ֈ`رcΝ35kfH2<<}!ɘ0aBʧk1zhC1k֬\{S$}Ym,X`k۶!hݺfƍƀ IF*U˗/'0 }$/K/dH2OncObjjlH2Mm?iiiF^lt'*ɸtR$5.jO[PYιRJFPPUZr[xxnݺWL\8qy'|Rm۶UϞ=͙:z) 6,,kjذպUV֭[rppК5koժ.]*Iжm쒶(JѫW/͚5+:sjժlLS֮]5j())I+V(R~iI_qq>>>'<<\UV^}l띝5~xI҅  Ν;^˶|ƌ vUsk Ug͚e;)I=ׯ/Iܹs׬Yl,m#Dņ wYm߾]gϞ5oz-Y&<36IguРA9W:tZj%I:z]Ei NjsyFn-$I]v#|O撛~rd&MrMߴiS틚(JQnmoA߾}oߞ7o,r~iifXwۺu֭[EFFZ濠x^c{{7 (#*Vhs2!^풶(JQLIwzڷoEΣx :tHjԨ9Դnݺ9F|||e[n:uܹ.\9sH9ޯ؞u>4 @`]|9,C~)zQҖV˪͛+$$D Ї~X"|衇#ѣ5gs"q?7Ĺs7_A+5.:_u נo帍a 4o$푶\IyڴiynEet͛%e!C?9355ZqIҪ$eL=$IWPPmmf>dپiK+eUϞ=%I:sm5tP?n/񑃃95k(::Zc=-[D/:A"PL6M5k֔$M4)ی9s;FKʳc☻=Z͚5a?~|sJJJ҄ Uj̘1v9PX?~|'K̔O?)%%j]JJ^umݺ(׸$|iA$%''bŊZj+\T+W$ڵK/ YW֠A6mڨGzG͛7ի-=< P||j:emذAΝSn4ydܹsڱc.^:ĉ… 5~xy{{?p\㒨Y HDj*2m:׉'A/nܸaS+WT>}욶\#FкutukrssK(I{֞={E/^jzxx?{SO=s*++K/P=Ӛ7oU`a 0@JLL{ァX}gdRk\u  #ʁ2͛G2d\\\-mi幰#___S]&___(66VjٲFad5aaaڵkBCC(ooo3Fkז$?~\WFgWE%Qc P0q @ H$DA" @ H$DA" @ H$DA" @ H$@ H$DA" @ H$DA" @ H$DA" @ He˖=toEhh(>#6ѫWv׶.cu ###]"-[KKKl޼~!EEE'''L033Cupp/^ ̳BeeeT:|0Ο?e,--'.???̞=x'\O?}ںՑpqqD"ي ܹs{{{{wc>:RJzzzj|Mh.\ܹssN\rE5}߶{kmhT*T&uff&ݫ2-++ 6l ք Ӗ֫qsꀦmㄈH~=:"b޼y<}}}]iii(--ӧѣGq_>}?SMh㩧BTTq]YF흜={СCؼy3]|:t-?ooo 8Po,~'3gO?BC @hh(BBBp)ڵkڵ+>Cdff۷oW ZSG)cB U5g`DYY"##1|'DDDDDmAFQo^AApaܸq ^^^aǎBdd0x`_رc'888!&&FXb0p@i Y(++>S_N//KK.?rAT CR)e2(̜9S/ڬ)H,6mڄ\ep5qݻwq5;VXN:gAϞ=1f̘zͣ@\~ӧO,)fQ]O8s RSSܺuK%O}Q*o:Քq1Rđ#GЩSf'DDDDDgKJJnjj2TTTR|}pႸ\nnnQ]vs=KKKlڴ 9ruJ%^|E 2>ѽ R6ڐJJ%m6Q{zIT*dfEii8Mcn܆_]]U{8yS$%@t7X9H$2J(Mi'ŦMMAb?~~n;W꫟cذwpVv^;;  =CcѢmx饑3/$ :u}Rii5Vڃd>Vڣ6m""""""]nMϝBjZ/z^^WeZ`;"#?@7OG\]m1vl?."#f}g?È=c1xx8@.@||bbRW۷PTTHHH#ZDDDDDDm8nܲqV- 4=:~8g\Gjj6:wvR)`Ԩ` ʕĤ`eطt011Dyy*+PU_{qR :Xr:Ο_!C5]==iك**y;P(ؼ F FBB:8r$ GA__/x sת3F'jK?Y㈈HI/QTT {{K@xx<Ұrt2H$߃o+oR) ++(--GHH,ֿ }i.m""""""]'{Dtt2|>x'k_oBtfK|[Ç/kؿ3d|<*( xc F }}6o>};7L<f7osi:3p "#q2l'RWW[DF&!--Gr}PZZӘ6D""""""yRf1H$""""""DDDDDD $D""""""j٠A?'Ē#"""""j811#Q`sS""""""bHDDDDDD A"1H$""""""DDDDDD ZHOҋ ða*23 q\"6m:6۶->x4˫0qvIxc jc`_܉72_ 톏>:C5'iMޟ? Aο};&h """"b377@AA6l8 Jԩ+imOeexcmƖ-qm_ `ggu5kמPgb#;CЃ\rv={x/_ETT:򂈈AC 7ԛ{aiiyzzTU *ӤR Jm44Taa~6' TDuzj6$"" Fu$pr2zJ7v[|occ t)O'4)o椫ͶZI#9JSѭ3o;,, f\8 /-[  1 u/A߾1n\Wltђ4>)9c |S*Ӗ-Fx\8 /Ge=BΜyN3ȑpujPfo7._~o/_?wqo??{=/ (_~9/>7Дʿz)={^AɈ_fիsjJ%+aE"*tKJ*q L O?rzzRY3yx; NOh454L벩[o{AIN [["/G//?q~klmW. m2qZ5q~klC[u;RT$&\7+֭ Ls:'O&XnjjjT}̘ DjʇMK󗈈=NbUbΜ}X_p-WX #=4omh`eewٯq*sÆ cq,WL}t11Zcx>OOS11y8q"fX,ݻXli3O=Uݫ8oA;gϾv-{/fMM*ns=o3g2T0v+O23fK g4 )^zɡa IDATcǺ\իH\f];?г5`Æ(\[o!0fuDDTխ #F8D#::?okM&"'{mwoz]K ݻWp ~Q<{#̔)Gѯ]KKtb ##vĦM}~kHs1p}l{b߾!ղa$\#E]܏xز ս~Q1`oomckʱo_[lK5LsB!gŁD5=+02Һ[7/[,UDsaaEH\RQomm&&hڱ >{ffrlSz >jٺ?,t WWc1OMMZJRpr2?ĸqn cNX,kj|KDDtĞ=1cd2 pBbcacÝo!^ĮX'lݭvmU^Dxxċ@+I``5kza8v,MYZ*;]TaϯwǢ{wGsVVNbй9~.X+{`?QRRj W!Ka^-:=8~<nPݺY#(  `eMbʔӸySnIH(K,\\1px7lHg;RZX]C7 qUC8w n5ݸ{*`PGUGwbKKڵr)}1#C}3bm˰)Ə!CPU%С3z`p'1zݮHK+ʪmDD@GlUz֕sc[J{QݺfM/~=/g * h˻c޼Km~hえA lU~H+bto)܌]ɰti7ƍ|,Z,|y\]']Ɵט5y7ztmָ :Ko_2>(O}bݺ`HO[gz͛8̘6 G6;`R%@DXZ*T.Bl|LvQ[n|}`f&P}Ǥl8w.S%(l([w!!@ -hIM^|[lBj0_.],uGɺM`ϜΝ XsgM4_xe_?fv숯JeӚǂ]Ri/B WWc g׫PbָO5L?'!9Heڒ%WT_|znlsP[k2jW@^ҹd""zĪ*AmsA42w߯^} wN[ j3룏"o]~HڵױvuDFmPbbhqܚN[P.^R3 \837k/j`[89nm[ڲǛj՚ǂ]uƎuEh_gφŪU=`rn[Vri:5͛8r$sҥl\ಥU*\.[ګuVjAcSo QT~! [6].*?3ϯPޞxoњ1$`X3][hscc5:wmReׯ^HF9N )ztkŰ:ul͟ƔU!1]] )/Wr<8p~z O?}gfJ6Gznii%scKAm=ʨ!`JDDԞ/I߿DDT&-eAmfعsVXlR)}!U?#ₐ+˗sp|&\i\*re$V СZhXmP(R)w [Iе%<=Mj cCcgΦT wmu,jm_u:mAS6G{䕮jk>k\wnd""zHIJ=t^,LLLFݮUO`UۼP{wktn_Fff)om/sD:KСyѰj ]U% +LlV3}\3|0jKc j:Іkj*i-ǂ uՃpnl9aTTT6{κ߿DD-U)KBBA49jsz%1r;`` d mm 0e' s[o]ؓekX*605Zo˗_ո^팍?j'#|Mz_33KB$&"&&/GhTֽ0]]EWjѵs>5DWQs~J%Z5߯{.-*ԙd""b*ُn9֭qغ5FF2tf^裎pq| Sn䲳˰~}}+੧\qm\v|4{m$S2+{bQQ%~1`Ouw[kj{XеKǹ氲RtI`ggUKD"doo~KW [|Y1|-Toݮ;&ᑶAbM T?3xm)0 ՝TV x v۷MƴƖkcAW.=會X˭yRWRw 7a󏾓X)K@5vdsTw tvL.|h.^jp9A"bgqpwwwvIf~BK>j׉ݯ kՈx˫y\]s:~or0'|Ln.ƒPw=7t/\]z1Fhڡ1ꜻ>NDGI) )}C:Sxb{ `N.5qu5Ƹqn7 #F8i\RY©ݺUo!~~yOGD2>vySS9Ə0tud1;Ooo3ۨ]~$w4XUk Jݥs&ͮxFt8f*A+w""~)rs[W`xC mYw3=\ƖjF97D50 cƸ>e&Ixq daN mkWbdr'"b:r$gΟ|>>fJ%ӓo+gd 2}uBC3挌dA4;c99aT/l[0Ell~ceeˮh֭qHI~N/ॗ|`d2 zW_UijiS 23[į?ѤWXby(+Z+WPy&H&kPp334WmU"QQQ};v С]N++}<'6n B2pwzmq,e6/?kps3ս\{ZX(3> uj:[#@zzx{a.*_>ND3@ŋñqcox{A"LM /%IK+-70sf5&&2̞ٳ {HaɒLȵkwkW"&Nt׸lIIͻRB3}0s˕˥F8pЪܜj+/Ea޼@߾!*EQQ%\\P͛cb۷+9X*RS7n㣏"hQWHaֽ;o_2rrĦssښBkxxT|n* Ӧi? 879ԩ;x1Kóo_[de NN÷qryΖɓw !!.x43s^jp(܉FRfAo_ʿ5Z(/WbxL~ټ9G-Xou/ߟ^8_hݻgll>O?SB5@,.Ć Qx0a׮D| |$qj|:Vz٨<%cΜK' ˯¢mu,fݻ7I{yy<}myR*nXNllQxqΏ'.OP{0}YC=l$=z{iC: (-BRRn*￧{T`PGvv/Gjj1RRqXʐ@+ d//SXZ꣬ x1 ǏFvAǎ&pq1BiiRRq:uUUՇ>~&l7hAPz6 UHH(wKl¹zuO TѼym~,V}QwDff)VTۍyз-1,-[|ߟLnѣ; VV W 1G O/w""DD~:uj>2F +VtPݤuj0J͈A"=` `kkccLcg)Sjǎ;~<^DDDDq 5KU')H?Q\d%Ka(C_l $"""Q|&J[S鮿n ަ07TO>Į]<""""D05 #G:b[cҘiDDDD adÝlgg#pn9n*Bhh&Οlpl""""bHDDDDDD:D""""""bHDDDDDD A"1H$""""""DDDDDD $QEps3i:906 yHI)fh~~.Chh3II/oPHѿ= *pb?>t\]AFt /x5i_MX*v%t0v+,T\'\˾X}V÷ -NWʅ߅$-44 Ji ,we{ 0mqz(/W"".N׮e#"""ҕ ;Znn&x(+_2[\.>RR}{<3>@qq% -`P(Ssg"vLdI 7o5w\'BѴkm4=##$2Z*L&iZhXf;eeUVM͓Es\Lv=T5-''#XZ*Rh}64S0hCu6R};MۮMT*\.պ4Xmz^uLSo9.2]ݱ]-1k*-?ݒ]- dgغ599e7~ 0w_2&tpJ֮u{cǺaݺ(HAps3I' qرn1\.EBBN-[n>myw  ^H~EܼYO>T=ǎuc9aӦ\[/X rem:~~x%oZLJDFm0ESW<|Y/\N¢E]1p=M…<=M1y' l_[O<&tR  G5 B+#.k\ӦygOk^}M1aBGtn}}=W?Ӱn]+У5O)`DwE T n{wkL`&k^Gjj:&ysgsXZ*PU% )v%bϞhJ޵ֶ,Ĵ{yXZzeb"Ì>x;t` HL,֭q8pvWSl:&Jn]0⧟[~ )Ú5qm}ѥ%,-HH({׻kMDDD =m0kn*_2\\н5 @EV(7 s@*p]X`$ 쀗_>X$!!.HO/Ahh:u2Сo򌓃!me^[[V:{.7  1}.Re?]G.w@:#8ئ`[OO`U \<\T,ѭ^x7,::#8~pu5FU˗L&A||sclɓO#)YB!ŪU=ѿ *pl& huqLڵڀKK440$nn&HO/$b*tf1c\f3RX[룼\ǹeϮm/ODD"7 2ݺYb„+*oLwFUr0ł] ޽es򮵶]$zxJ|O.y0ez͙7 0s9NTp ƍsCff)|3T t,,XvĤIb:MYgxM=bLzM}!Ktۗ,NxyOL莥K4,&5M1njqի9X$My tAnn{/.Tw#Itiw¬Y~xPEǏcp15wðaNTCCwLLdps3͛(*N:!$11y3xLnݬh}_~y9xj9f+^|))Ř3" IJXm0}wwa_R?PD̛ :O[@9yZۮi}#X*{&Aי=<ٳ {J~xr^N ZҥAm^jȑT1GaooīGxx1keCǎ&023n:Ibb!6mDط/8:,ސ˥X>Z J K^Ezz EZmhmi IDAT N`**p6֩PbK*M_|κuQ*w-Cs*5gUݼر4;w&b8 ESפRtt^y<^UyW|T = @eT٬ CBqf!.rRYYe( gv>+o4gϯw@̯fǪ=yd̜郒*1@)-Woo3fϮAV]))E*v4'Zczz"{$A"JC__ e[pdzWSl:V7Hܺ5^ \!SJV1@$""bΞͬICii** ;Zo^YY \Xi%כVU%rUYUmש9JJT.j$'!,,&&2t`ԢuMC-*>wϣU6,&5ejUd!XC8z43-TVV7inK kf݀M"H/,ĭ[_޽Iή<mXAHm ;;s[Tkאxwr54ȑ9yZ6rr{-)Bjj1R lmhpw7;COÚ||y4NhVjQN۳'Q/ffr>HDDMӵPCOO''#TU X6e T7FC^T}alBB`[ˣ-J T {۠ǎ7=ssyffr\r C!  L,qO<T[?!ڰ5@߾pq1:v4TSs5]7~-E|6^)ǝ;CNX<o폋pBOWyf嫮^W34ԃ)ݵiJzԝzyn%1H/ 2eeUjbkAGIIITΫabRMQXXr!؜uZ;\q1n9<=M1aBGddbѢ0\6}Mj./\jpJAb?'J#*"&(]XX\7򡯯CܹSRO %*whEE*nuhf&Ǽy6 zzT &&.da,Y ]kln=h. HM-QNvƹap'[`p' 9s|U>|嫩^GΝ!J եUӄ)ͽANϯ@AAJ3gk4Z8nz! )@ ޑ"M v**DQ^EEAAPJ B $! @He,y|ܙ3;s8O-խk V;j,rڵ=e*㫭))9ӃӃ ԨQԾ}f蠛oBmQ\Tqy9)$Μ)վY^-rzVEݻה$EGCx|BCd{内FIFI~ruuU;`@IҶmggZ?_P} (WUwGf9`,Jg,ӂquU.5tjٲy]H,M/[Oe݇a/sQHJ"U5L91e&âХt ry׮5.|W'讐jv]]X+O :eId.duMu!sf1=&%$Wnremn8EMb>V'99^Y&}5dx[n Y,os\Æշt[,>\6 -;h -A|+iQ/JRl)>$i-_K;6[*(f`Nb]mQ'"23B yx8{v34vl3sТx`aֲW.!< 酃ȑ!̷N(r1$ڄftDN6߂zy(8KaaM^}m[sxrtoӦ?ɅV0)Izպ?I'ThVHR\\o>}j}Grv6h߾tܾ%+,ߟW`weYaaJH8gmoob89Էo[L+r4zt#u^S}U˗')!Zn"''>@/讯:j_c6 ͛҅ybu!߿<=;iŊ$eegZ1"D& )+i{j0?-[NKî7/VC꣨Te~Q󒟟m;c7+ŧ+1ڿ?M92Djǎ3klNS4gNNQǎ;6TyY:ZI__KwDFwZZ~ >O?QZZڵ رYOM>iy>zu7*&欚4񕛛`>?ߤLԈ!=>ϫqcqGֲe Z;,>Z_ jT߾5lX1pVvuWm ґ)7 L t׈!1Pӛo$P))J:tȑ W`}5JY۷~y%X@yֽ{fO 7OS3:H￵y)x2MM:w6m.:7c}4{l^x|2YAI|@sĔz;?kս{M+X'Ofvh )͛OiѢxPO 4aB}.׻GԹszGiffώVTTj۷~y%Xq!#CM1HMY3?)11S۶(_}S-ZiWV 7ʷ{wWb~5󕇇8"gQ-o SqUBB6l8Y,Ծ}6&7:Xe~ETS6 tWRRvJ)]oouZC xĉ,mt+-ZTHbbj߾bsr2c@5i|8pV11g;kȐzwiںtں5󓧧'btggBBl:tNU~I۷\]lY>*-e{ x^wyrx""Sx^v:*]-ɕcU6$VTᐘC!@H,JjjN̖ݷ.IXq%@HD@iR I;p) $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@HD!@HD!@HDB" $rpJl^Z@ R'v'$9#GRʐ#WvS!@HD!@HŅ*plذVzў.](11MZx$i„oB $^kT_+Ydݎ+nIɓt쥗C;w&i9u*J@HO)ɓCiZ|/V\Iеk SZ>JIRL)-Y"˸9O0u@o>SZ}W ։sgV'Qnn.={nnl0[8pnYv7~v&O7M F:1cgLJ^}fY`-@-[7jV-[lBbyCs挖$u>VkWfq:ꭷ믷nQϞ6SFj UAI $^MZ6nSvvi)([oun32U:tׯ*([Ӧ jMّ#hA3g2n!ƞQf5ջwxwnC-v&t᭔gT\\WʾY|5o^K= 5~|gzǯא!ռy-~ayxh؎j8Pݺ5ԭ)2  $^""jkڴU7o~ح륉+,jщ$INNPyz3zJLL}?;յkxV>cJ2b%I/ɓg\ ԧRppu`6Iziժ6mM[a-Z֘1_):[4oX99Լy-Z}jժNJ5WЎI6bѢ]?7hp͞=C}vM,M22r骑#X J^^n2Zn$)6LUT /AJHHӤIKWd 7oM@4D>}^t)}hzϺuX!~nrhf;wn Iڳ瘢=u*CJ:voM3~6)&ò6*6$uYb+omْsKHܲ%4N/WБ#E,qOH8_&I :uUvIҎ$IA_ASf-Y%Ў[%IIU [Zb:w/Զo7ۮ]*BեK7u )3KHСcĉV>cvIR8svE[/233u !b jfZj,Iu\Ta\O͛Gpe)(6mS!W+<76mťRtaZvMڵn'77"QvEĉ_ڴiCnlmڴQ...ٳhwMU^ziZ_si۶%I=z\/WWWVԡCu!|#G&__2}Wnnst}e4iu:z4IժUSǎ]4zŶӧl8_))gԠAZno.'II:z4IG&G 4ᷪaFnCb|R>|HA;wѷMvTJEDR͚*ӾQQ:s~m$) Pz|%9ժU[-ZTFF/N{QF9EDҐ!CըQϢr^^6nC<-[D6mPjjj׮Qnrֿ˕ OC -+ܬȹR9-IYYM.]u媯·tW^]))gxB\k^7<\5jԬz.`2LU`32rWiVhh]顇S֭K֬٠^xZnVh삢h'|3^Uff]-Z?U-m>߰qZjO>B߮Knu> m$˖-}%___$`0X-Z@S'OؕтK4 4 ӬYkGֱcg-[6''[:U}ʵoA~U']nF&777&ݺ,33S'?K;NJ>bSztbm7mŋWh; IDATӪUmsi;(&aڍ%q+5y^_o9]6xzz7fi̘;ʗ>;vlנAՠAn|pvi{uE??Y~;n}E=v_s"犥t`9}iwqqQllUU_{~zGOMVͽ/W+`(]%>jSGW~~&N|T[Unn>`دݻwo;[{iQ5mrEGѸqog-kÇĉU!4hH_·LΝ;ZnݺzϯhɒE:wNEE,wYٳ1&y{{S6ty}ѻ:xmۢ ;CvS]Sڸq֯];vlߧe~q80.zیhesssuc~޽}Ӟ=|Rdk֬ӧsi6lAnTŋT||mei߂ 0XwwͿZj]:^7m۶E!! u]?@QQZl2V]a?->˖[կ_w5nW_zv*} /<\>}J?ڷǏiוY<,ooJkqXʶmۡn\e={xw #Fv:ޫ%KS?m޼yE4Bb`(IƲ~vvZj9sz*I}Sǎ={lN\BNNNz74a6=.X0O=?e]}M6?@o1Kƍ"/ ?wh%I+zlDDҋ/>Ǐ)))Q&'OP]5gתUuԩS+effj׮6Gy@;vlᆁe&M֌j_/?iW^#"_KԻw?6V#F'**&$Ԯ0ǩN7oZ8OR~=nZIR˖l^WO}W|R}|yyyiƌ٥2))AN$m۶Ew}^{mMG;G+//O7Ko~Zy/''O]wݣ^i-7dP|M@Zj[8ٿ?Z}$_ӽ>h\mNu6,pjE?>KE_Ѩ]￯UffIz |I5j(s z%FwK%I}4& ^ OY_]a~;TӘ1wD)IQJr-Zܹ 4w{J[ vu;$ trnnnAs\\l ))AOr.bbb4{n۶Edž _,] GI"Uk޼EءDy۷+ <A6,o~9O:|$qnccbp,$լYKAܬȹRT=vh9K$^OI9"dR׊si~,ƒҼ2uvv:\ȑxلL-]:w4I5-cƌ+S_^@aÆ̷uR#FСԩSyzzMJSqJMMG%IM(;F$ze___rssiֿ]F ,u[V i|wy+ϕ}Fv튴ȗp&X //kCIY\_޵kL&տ"|g"#w<7{9K媚]_֭Û.Wsi*4ウ ڶm_reWMI6oh￳ԯbwp8#gE_qo0ȴ{y@7nК5*##Cs~s?v[oQn+&JSǖ(\ׯSAAW~n(;,? Ov"o|R)99Iv۸44Ԯ&IСSr<~~~Y+O} _*KH,|Q~qd?Jr Z#+Ett"fyϕP\Yʶke2@1TpZu*K $Vh0ԶmRāŁ-!{v:Vt=nww}ڼO-]XWDjߵ~Z-ZcM+o[^3D'O^Z¾kS֫yAӧZn۪֭u7njf͚oGi_˕5k^RopYT&q)l^sJv*mH,jYeWlaN6 /-LU\!JDIRM9_ܠ0qh$Uzݏ˴o*"/ub[֭xcogСmܸ^k׮րZljnѢo<*BY˗j$O2R?-r+~i䣒 >,XR\E˅/;:|]Qϗ`P6ȹYs%##C11.}2WI4IғO>SmeJulcǒ5f-gZnpŵy_]u,տ5:eppkh(oFEEZz[.KRGI:EU2kaRf-B~i골[~׶m{,EG)w/:7+rXn<}5II۬xGs~[g;wX:}lYWKbh,oQJMM՜9h׮֭uP֬Y,iJ=iExܸt~M֮]:*##C:7n=Se+7OOҾ}{ոqQ-.ޛ:ujРK폽{ڵԳgg |o_VZ)Ѩoͭ牣\K Rpܬȹbh24|sݻdB(8>x9kϞUXXSmA-P]5hЍVvܡdEO{\\ٱc1?Fp @H !U[g}ְYP{^TFFsEG'oۺX%'%ٷoon$'O^u(<{رdm۶E۶m)۳go”RvX:vssܹG׶m[a:P2zK;,S?̴BY8͞5{Kz{z)Zlbcwf;,ujѢC(&~G=z7-xa:Dy۷}Rff}w4j!"rss Eot-\ԤIo?/رwi֬%KY!! 5dkY+yn&h.[D{VF9լYKݺu({M/|-_TwRvv7n(85UUs'$kOnn~q$o tĉS~`kx۴ ױcɚ5}{+ gϞĉj{~:\B$'fرd;,3h<Ppp}%%%꥗u.''g?$G&S.Z RxxszWcǎ4~'&O~NO>5}ئM[9;;D_o'|:v,Y5jTXXS7רQc|ٳjٲ LT"&b0q "$B" $B",.U`]n)GT%DjHvS!@HD!@HD!@HD!@HD!@HD!@HTݴ)^{ZDDm]w]CB?њ55vz9R;C n $B" $B"t.TA&L袱c;d2)9SGO2cm.X>SMPnn DyyF:@H+vܹFjc;ꩧ~Tbb5u!!qK ?@HDyf<=]⯛nP>j׮xck!|="EE%+7!EZ|F7oQ!X7^3VjMqڼ9(&$YYyVZu.[GcUW+ѱcgudj֬ .ԩ$6n B{7V\\>OykplY[>>JITdQYsP唸e)NIRԣG$Uł Q*I6zkΜ2 Բ M~o%Iڲ%&$N򌊋KQtq벑#hA3g2n!ƞQf5ջwxwnC-vyGFܹ[uu벢@HD ̳dN[I&ҪU4m*timۖĴb{ T$EG(}'Wjy $+d.EHKhKNN/|rY+<HUpe;rRXsqq@HX0֭[z~#GR*<تU"1-k_yZWȣ.]BQ:5UHHUW%Kt\$i̛l;LDDmM2Pڵ1Z8&]+Պ*,,*S՛oެ@xm|D) ]EF= w-V|qjժ$77 @H|^L&?敏m'&Ҷm<L&/ۯvSMQ[>>JMRdQm]*a:(zs/~YY>$ArqA&>_~O2=}*WP~v:Sɩ*Q qLr]$)g0ÛA2}R/Ҩ?{W&RPtٿp 9X?:u[|W7o'=];Jr+9`ɶN:<9|H 271 [D!;KƆsӿߦ6+R0S'b\v!=] u쬜Ce-`~r>/!́a>7Gnr:uR5kؼo%O9栜TP[!#C=r8V2Tn"ù* R~yDSj]uӶnϜKTyy2W`Pn~$W)/[=쏖ӱd9:iF&WqmC,c*42yyֿs@Ή *TA`s_m\vp>x@?,C2yx(C'e-SjrݱM4l Y꣔hyڶ2.*M}Οg̅sszeHKSA:-}n~USWy(_ R}ܗ/SR|iѷ[7WNog 926QױsPJL&lFFܤ_k}Vz1Nurҩ9IA!dR^J[?%-M7HN'~-Q+׻w|/Cj]w%WWg)ks?W)pݲ er ux>/8G&s/|GGGS+{nVqJeN~VtI$饌7f){L<<̓1Rv[>BI4,Vn6˽{[^tf_ *T~SIgDy|7<Si?||~3t#́*uzy?[˖د_.U~Wo8)sks26y<~#9g`PO9)zmf!:wr{~>O97,hIm[]Tt9O=@]ߝ'qmwTe|'o3[J__ST~VЂuKr֗꣬5w<\sYG{Z5*s\IZI?|0([wF۶o-:)]Nw<~n=W^.r:,uX<̓uO+Ǽy1@$ro(cX\_t|SnG{mr:sZՕ=|B唖*ymuN:TLs05s|V$'3fg{ZuuC*{dKTܗ-!+S>O[y:Rd0H 9)Aq6-k@3^]7& VF=x}y aosn~2Uۯ?9>Nףë>ˮ|Sn~e~ p3:oAnPAu98.!y|[Tք^o&w2f7@i\ 1yU"Qs,m{+M}1rٳ[YU^rGʐ.St\D@299< 1+r%Sg0H}oZ5V1?| cwdE7u4=yvw6(I$*A$HPEU_*(OP0$ +;;z:}towts>ã;}oթSUT:ui`$ ^`7:?H9$o%rnD J\IlC5;g |)؎b4:=;y&ra`2oP9ni%hG_]Ry<$ j:L6 }ǝ0&dέ}mn`=̅{U7/"~9FU9o Ë D[0>-c鲉挏#BX,я^,3H2_ p7}'>U<8n)iH_y5Ϟ9d?^I7MNXеM?\ /jXn(W]ܩڲu[C˯t+5\e^hSNCP9(=Ðz6I;c}G0RFLH_K.QoԶS;EʳDCއ'9 !}+Ee{1'RP/ !wޅϕ?Aৗu~MLyǃ/rIK&]ɼ4S߫ h]?v)qLs۩7 j5ʝX0|tb}m]Z'?$>Wr#[ܳko}1e}djl!d~zA7{=kklzJ.&<^Hu#pH]"#P^ڝ_pzav DP8>IgBǸ)4@9^}L:=/wzxs`Y0-G7ty*>R :Ny6e6 aA:2?c>ޫ FB9;Bh[ʣ>:dg[sPۯKDFL^;Z (Z>xmdy.:`Oh rg}}@{߻NmG_c闑2;9iy {M7 'e錳lّz~˿O|pܳ.~P|~>H{o/{?ɧ!u_Kq On?{w}R}Ky'a& qϭRɗgcE֜/~V$g',~̮EE%O3n:<; C"n&ll5nڍJv<5-|=AyGgzLU-NyYڟtV޲<]z)/r1h~S.T97?AC yػ gyax ~;PD0b0ںSǞp+VWo]}k;lg ]?w"GǾCO<Gt{={,2 y'Q!fXvqQֿ (%;kwp +ԏjAP9qgBSJc+dC eFS׵\;&{e3Q4CљǦj0'ջ+ΰ^Niy lyv:$` XHS܈AHLm?>D{Oty3X29;0Ptc=u&s0f>ҿ}L"CWlc!zF義 ]f't_u_ťƇd);OA@x7VZ򨷏86^W3}>CzivvaFh\j=[SܐAHT ;ʡ/ &{js*wR:lN~|O+Nv$r#w#&{_ 52?Yљ4l_n]ﰲmM0 ll"yMZޣg1H]0$~t?;.kkRDEAbYr?8j97 euYx[fCB_m>x^fi;0Z]Xe򨧏6:86^ψ5]z™LW /gIA9DW=;!gI̞^gƯ1;2r^Tx}.JmPqcKQkmF11|wT,k9,g |(q<̇pll:#hhm {k'}.͂͊ wd=d^yi b0 <;6ZЋX;%ag^Ms>Ie!w徻Z)g%|7,P8gk'}`w߁tNSݤ5YMK~~k/mCetݮ)QpCIh6J#tgy_siA5t9sh,w31 r-##K{S~5ԃ>^`M 6wLn]> ?ڎHbVӾoLxqN%F}gESԑ~d+M=GNw^L&v>toYS{$ /=_xZ s^;b>u?1`Yڧ(oI|>/XIlZV0efq@zF|}ψ7 .M@mcYٗ4ߴ@nDE9m{=&v~{1i0`:g9+5³OOYZ{66i48dV>tX0 ݰRZ2o~KA9|b(x}cMv pm='#Xg^NF!|Ӱ~(GSݔɀ_ 6>^ 6NYȝ՚qnGWAʣ>ڌmdu 3SmVPmvtϜh_!qEg[-?D{+:A3ϯ;‹_nѿƊavuZpsWE3.h{٧!!e=@'!} ps֯r'ovp? 1ʪxw*\}wh+_} '{aw6Cu۶qlV2z90ߴm <4B__n^`7ى ٯO/-3;48-dAN"15V0? `r9pKV20P? :JP#>s"߄瑇y!3儓Wc0y_3B{?joNBa.]/+BǗؙ^7<ȧe?-5 D/ dx(\_ZJީo=׈ pk-^f('̏~f]1/ymXڮ.u$;[o;GT6Z$xr`cc^0;:wA&%mu~\y9_rnvt" :L: ?#sU#X nqBǝ̏cf׆4"zhm86[nF盖k@—ʹ_~|~lv.{sBAeY|l&@i{_!o,hyV?5 i\Fb;R6g 請흇=P9S_ h{ĿN;:0-r'o}׼6 m~Iwۘt~=NKC=ࠊMX*<> g&0,6P;OŸ C,z1n6YC0]<<> ( }+sG&߲,WB9Xn+qP? >>T Bxr5_%P> >0[OՀ:ny_@/Z9p}|:AAN"A% KCv{1+=nrg#y ?'E‹I`A1ˠ5-Dt> h];.G!fƶ!} ~ ՏQ^˯t# DjkNo$T ;C=HR(bV)h{ 7 U:sBsgXb^cA1kmLJ\CAAQJ\CAAA[I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   fD:, 0Me8 AU===DQDOO)iذa`E:_FPH;dY8TU0Xd ٢6"C4x<,\( <-NBsA9Dmd2:IeauaL\4Mi8xbջsUoS=A,WSW]wX!ӴwwUUC<uw9fʲ:?,yD"m8 IòLռ#5>C*D 0$ tcx8Z҆ D#0Lb1d2(`0?2L&*$)T*U;4K/CA$Aa Pfm'ÃAiV}xxe`Ei;: DQHXl@^rƷ$eS4ssde,x @]]E6 ب׷sUw*t](,Ƶmg T*_:cC[A:0TUE:A8j+'??z\[ܲ,Cu~ttt06UL&NX{{6nܐok7kueYH%qtwvwn"@WW'ڋڐ .XXhQ&wvv!50 $8fADЩD9XJMzń `ga rYh -XCoo/XenLH$PU,bѢettL*νM\q>ww)LG.}'R4. e7eA( tHndOOi=]/7b6W335d20B!Y\Sو٨RI_ʼnj{R# DgKt>g3xDpֶH'*Bs'ms@3r6A$ӈalgι$[~b2diZCQq2,7gƠzQӋXlaGȺ Mw,rG:挛G34S/gAN"1p6B!)fgfSgV!T"d$+ɕ83)rm3rVڱsVՄ9ev .L9Ę2Wv1Br,2 dYi4 Dd]]5]1C;S3Y9G9z9t r"1fu$*tݚkzcr2MJ6v M+ܥtB|fR&-+%^POe(ʔ)dSex0B tq}rzJ8E(4ɴk(M *Æ ذai33%xϳ0 ݕQf7EM^$ҎN0 > nif3n8Loo_}pοs,8X}GG2r!~74,=TFecc#dRz}u ,p$^tc2r5MFq\ |>t]$IյkƲ122 UUq|>?< $k5:Pt$a``F^7a!>7na|>dYF2ik~e HR@, !bÆ*Ey׫ȩU9 cÆ%]^9ԇJ" ꕣLa ~rY l@0hgVU\ey,X`vG9`:^u]<5͹D9It&Jf=F|>,XL8g%&ǣJ(NabXM#xo6iX"JAQ#:ukk`ddE-l7U&S-ˬm9 P(Y?H0"}p[V{Lmۋ\N*qkd~' T00x#NoV0:;ȩ1c{nmc0 A(*{}rt‹n jPUd, kگhz~gh-idPU;v4-rȲ 2q^~8Έi2PU Vl֮a82 L xxI6i>t`vA p ALy!z=rFf˲N]% g"FQk۪9zY( ΛHNX~`%@HӬ3 b9آp«E n ry,Ky7i f  f,-A5C-D9<9*3a{?"AĖ`zh  'qV g b, ^׽ODZ`Y L  ݖ5AAA5AAAļD   D   D   D   D   D   D   D   D   D   D   D   D   bFIt:hQ?X  . $Yi<o*/r$:FPH;ښ.fU% $ ޚ6mڔW[;4RVbzePU `ɒ%`qϠ E.g Zt==޺~iYt]o`ҵ0L3,j9@&(:;;ש;욦4Mpo0i:t]i-o۪ ÀugbZaYfl\EAN0,j&+( ÄC8V^ixE\²,$,O4?WƐfֆi}w3춚mOLeaX,XWZfAHlP1f|< B8?W0 X 4,ׇ+"fʷmEmO]#o~DO! ' h4p\t]Gjg0f(2 sz}%:*t]wwu]C.0E6}BðxrW|EaSAu |Tm_(t: EQaG%2N=cD-ڀaPNe@u}. mztԥ>G#MYzLUN\^.v[6C.ay>`$ Ioxx<ƙ $tݜu0MQd2Xp<oYzx8Z6N,Cggp9YW cccH%ߋX`!<O]4 ccNY-G,C6AOOʚ',Z_M0! Csel"gGe H$ΚvN&S-S8.Dt`fs`Y˗/ɱ)zDy+ .'_I W~؎H`Y˖-7&k{\.( xJ$i1j)anwxF bՎeC:]~Qg|g)"'qVjR策>;sղeA@gg'"F岛}R~,\ & I/x<,z{}MzY<^Ҝ 9::E0L~0t c%EQ`YXA のdr0 #,mm!J"aHt: ]1<-ywM?4diFGGs~^wV 2%!uP~E  0M{GAU5qx<޺ViT*qxPU٬R?<E__~hE?8C6ixŚ EAeHhջ``ulلR>{爙4,˂($Id20M Tg6khFY^MӐd:Vi 6^]eYa*뭘LʺzG"d9h AJJggrF(*"u$qX,L&EQ `Y&$TU$J^! 'qx0@4*CQ&[imCQdtuuwنE8]׋Ғ,x<,X賎h42@ XD"NN8hXh4lKt`Ӧ/2uVn)d2i_\t]{{6nUUNrkmg0Fq_߂"ruX6m8䆿]5u?z{Tcc#U'y(B$d2f?/H[a[X{#I9rALf*k0D<G&Agggf`Yvk,$I|a˹Nbui@TxZLUbѢEE >q H`(0 $HĴ’fE"`* ̍|ECZ֖eiޒIe9eYXY1 6F|EC[[ !QU,bѢetta(ΎXr!:0D"u9Xk;i7ܭT<e٦"wRz{Jv4PM3QaoL&ʩ\tU8VR7cVsK3Ljf5 E+ tt^ey28ݥ øN#fVe&\ᶒ'Oh?uw\̯A$n0 LjK~'幒2*YsV~w+~8^i!LwU*ʅx 9\'9P(%窪ױy".p?eipHwGA0 SV`Yv[V p TU9#UVmp `ٲXlEE=5Mu>7*_ݕ4#AD=P aY( %8 A}Nԥք-aq|U c)~3=laaI BDۉI0M !bݻwÀR*t]mt]eaY E\L\.4 lU[q7i;ɤio3Ljf5 b||<9١gY&4M(nqG+2S}nU+9 r1B뀌(PչݴR:JwȲUMwOTKyg`&i$7wUt5QӋXlaSg],"Ύ:xsfPh$nYnaR>\.YHo灪vZVSZ(jM̲:N3y}SYd2iȲ\.36.3\EAN"Qd45QȈ Mb{ުԚYVI7_* r獓9ӃhT*G'Ϫ[k" a NYNf3,̀:m5 ;nxLjFjgQ'` IDAT4;::ݝ\A-q*tH$Hd+lݎ[32S}nUAND À㘲+l@UMxąIдi3Pq-*8#fMZ.'L#rs.7* r`TՄe~,[Xx[4-I``Y&FF  dҐ\844)4";Ε TM*r Y(vwFFKtLQdD Ruf&Aޅb=9Nò,w[VTD0088#)D9+yr)I97+nac1wUW"5.s̳yaÆl0PS, j33iZt@ XUԥ>xŹJuw4 IC+`Y@/p r9c g眔IRxG+jz~GGG笭ƍ8#wݵ Kmϥv83+/.gKhn# 'z{-y62u;L6 nM` ]רg97|K.y]PUUu0Y]W]/Mc^\j-al0T*5e{A2@ww/^2gGsA~new+v%aHrǵgH$sϽq_,>ȲD#hoSOŜ݈?.Vg}..J*AMaժpi~ƑG>J$'؜ںbͥ~DK.lj'\$ 7|n@nAA%!@2l7ᢋO|J~$d  jh'qy,^b1jΩ^^ oN9t%IW-]PO=#(D_]qw7^trşlW^A`]vũ@ aXb G[[[SᦛԶfx{<ϴڵڵ`ÆtttbѢ~ş{ew߅5k^F2DWWc/y15џ%f!W_]Ylr}e*apAò,yxk_Ƥ*|q>v+D}} pcq`sϽqǃaSU߿ O<8FGGӋBд_|ظq:::+qɟ);/{aq':;?|>v}OpxL&;V FGG؉y!?a=ޛSkjfNVۇvLwq+xud2i\:,_ 20eY󥲙Iw%9mpysύMLsρM/nM8Sp`^Ҟ|qWw;GxK~q>Zb?38sn%U|[߫[7nE]Gy䳥K;W&.\}op)mǃncdJKO>Sfu'y睷{x"Um(2.00 8ʫnkNeq%F6- ?8cjߥ~W_ {Ź瞉x44SOǕW^ AJظ1 /<zK罓[a}p'+yw| _Yg~?]% =/峱~߄B!\rɏq6(PKe-m݉ۡ3կWٝP(k-<ַW].\sLxapɒ[o7}i\8ckҁFڣy_pRݎNzc52=38 ߿ _MD"~\"~\q/yXi( Fδ8q=Cs_|!֬yGy4>!"x>}]Ɨt6٦oӦNE,6H$4/_D"⪫~+w'?y\p1att#nT*֭Xen># b>R[mq饗n펃>H;ovaGu9-+7߀B@WW7=plͶx!gnrx2|p C%sϽ144G}CC_omjz-x `ɒۊVk/bsa{\lm>4oUm*wSN9 W_Ͽs=*'"_nG_wk׾SO=q^- ŝ'xhnݺk%o_Օ+su\ٳ?$_3gR?ܹ34qv^ =z~+**RϟS۶4iG?[uwdVu(c #5u'ruu5۷ ͚OC (.1a£*_֭MV2d}yuIR˖m-VJ˫ѣgB3tQ+WNkeSlY{^{{* gŅ Q𐧧%KT^}$IΝqھ~ ݺuK&Is.WM.)s Ƀ2dE@뫯Ve;YeddVZhI$+ٮCS6lѣe۷.]OQNf\`񗤊+i*WbŒBM[t͆ {ܹ}dIW/^ihٟ+11A^^5cl'Ǝ/??axdD;㳭(4'rKn6mE@%IǏB"P@@uQMSUl콷ĝ[j^P*T()3Yݟ%KVf#'n…gM_{:.fM45oѢU]gE:uhݘ,w򲯿9RǎO܏ΝWCr5=IzϠy??É;X"Ij׮iT"Ij1ha}v*sB|aΰeQƨtiwm\[7RJ[z@~־3>ۊN믙!d2]&ϟEZ5MDAAں5F#FԻ^Ylz_}>KT\5T]ծ]|Q Z8.55eź~$%%s:v쨶oY?|iS:5iT+e˖n$jYc%%&&d0Ýx_[vZ{={߿4_6akެ^Sll.l˖O կ#%$$8銊ʼ k^:kV t{=XVuOڝ(ã$yUD䓫ISеkɚ6QrB}ڵ׌tuoQpI#QϞsx[UԹX&m~6kaV)ڸqqZuk_լ}׵lӦ ]ZSllřvy =5jo׬%wVܜcnyFm޼1o޼Y5啻WY֬Y+ǶjQի磦Mܹ3z:u_4μ]JJJj=#IYN(xRwti2jԨqg]֣j"ݳ[699١V =,:qv峭4''O+11*w n{D$n(͛Wu4i;vroxzzjР!4huQYJ˖}x_beddV-?Hrl6mjժuvWYTm!I_d=N=ۙ%Ktz{ֱca`9"%)O_iWj׾]EDVkά {/m25jDJMMŋlޛ]$:)jEU9:iϚư;1&)" zŤ#jרQ$~y];?|_[WQΜiii ݥ]ͻGic>,YR))) 9IIIQZZmkWk 5a2V^kWEjkf%ݺuK'O|̵xA-[.ĉv;xp7[QԄ*Vd0o۝8q̫ca<+oa33뤨UСmYkeddR%/u@g $9u뢴yEmc|[Wuk.]J^{a4/^Ͳe_[WWW >H}ҥ_YݦZFg:#ñannn"h,.9v%~欶8IRݺ'rڵku6 ;l6o`ce>̙i8\Ӓ%_HR5F[Joy#ڊ&rmv/X`8[mhOVmy(/_$:)jEYdnoZ`$ͭQ¬ɓò}mvNYMo(jZy잱7tV׉Zk:7W둭]J!!-vSNfq\\ԬcžY wYo'Y> u}6mi2etV[ 0XVOR׮A*_SeFEFWƏ񣊉i>T^}԰aJ5vHEDV.Сԩc ٩DҬY f[ƍz7jJnKb{wё{Qy!0,YRs,R``/ED+nF-Zҍ7a|wL&͝EUԩ{nV\]{LTCڿCm۶Ӷm?o-5n4ktm޼AԱc'+W^vXnk}F{x' ޢsgӳ3Q/{ٵ+IDAT?Nm9|WU:uO?mUmԣ'µu&FrssxcX|RR8Ǽy_hgudm XժգV}2ennn4h>pZJ|j=B.*({+Tŋj% ;lwYmѵSz'Sud&MzxR%/-^T:>^|.}  ɤ7]缽kiƌyƐܪS^}Ǝ#GYW^}w=S~ZjƏڵkU&3j"7>tʔ)/\k׮ju'.J;vlUHw@޵[o…(Xxog5eʿfͪ?O(T.ڵ֮]WhķTEsV8^O/[uj͡CH||_qbɤ4#Un ZK+VMV@7o+11~w]…g..&m=ڴ)HǏ˿'r^xmٲAt)V^^^;9-qqq-:rJ. + JvWf>ѧϿP ǡ^ǐ{zvSgEgϞ˟mK+f^Q9zVZ)WWW=T1dzMf9rXR%/j'#&O~O3g~&__?_UZ~Ï)99YjR@3l]$''ku^]u[*]8w6mZH(QB 43g766FwС_.]_.De̫L'Nyymmۂ}Ϻ}ki̘Z8‘W4^kJHHڵ~8K5jԤW ^Re{u D׬$i=jԨICs@BcY&c^;C>> yC@ ;5vHhd?fLhԩSg"r-66F1ds-N $u1D |8jWѡCuBRSSU^ÇPڏp'7nP&Mխ[\ak!@HD!@HD!@HD!@HD!@HD!@Hźd2Vkz  1@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"@HD!@HD!@HD!@HD!@H| IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Bergen_page_0.png000066400000000000000000001461241420322575300271670ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|SOҽ-mR-P(d *-(""\T *"(G˦e=6M! iӑMzz$y{3D!! i'3!$DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD9J(*5wYRy?R:YD"CY2-E"Ƥʎlm[99==af&2˫vwעVޢmptqqiggKؘօ!CQ(\o43Ӛ'61H$]V6wn4nN<\o,\؋F?5ljS:x.^,gZ=XE&yy5wѧ _q\a>ӽ= qC"0pezݺؿ? bLΛ^JULnnV8p`Ol28F%""-bϞL"4̞}_|qrzKD.!!:ͭFy9|}mNkZF򄫫:̴i ]2b:9Y˫z2ՐHdkr7'Na=D L_>Nؾ}m~нi`w|`&5|WG21TV45C8osjlݚ]2'}w Stk\s""\wff=Dd2ݔ4/ jOjɓyL믇c5TcʁXr teb"bHDD-v5=!,fǀ ٳLCD]AHY g',roWb1gk$+V\n7\dfJ`i)QD",]  QU%C^^56lH%aF] oWH 3xxXϯu+/Cfe ww6m)99ɑ@.|}moܞb{]c8WkPW'oR*ǖʒ 7 xyY79g}nUIͦTK{T*Gzz% kakk__[xxXwx`s$ JJ*8Pc?X}hQhڔJysFqZ93=s=_~I[.[^qF)VCbb9C!Fٿ$&/o":uuښz`}vUΝ2""\ lޜ !j.ooL ?vv{J ޝr(w7ta<0wn0 hqOݳ6~!nUh޻~IIXZӦuìYF=-~SjYSS/pi$uQpqlA[QQ6mGsO> #Gzj|޽kWo_g9M߁x饾wHr|U"v@YTcۈjuj'./H]}ׯ/ExSEE6lHY|y1ujOG_4)xS8{@kJx\1k1Ν+ŏ?j][o&'/WH$2ŕgc oh G0o 8Om3 .Ġ?W!?WkOqtV(gݲ%3gōe&Ycא 0:o_nt]T^:+cDy r_|qL ]P[]+^7TYlJ-Ǭ,}IT﫬yv:5-/t:,Xp ~xn,Xp 7n|hz(#JH׊ i J#L-%;~5KH([o]/o51>I$6p6%B&S 4 C#$8x0ׯ e.aǎ1N]R^|pᲴcW: b+PSS_>ի#1a+)b͚cX-XkOiV3 ޶!> 11qQUU2,]zvA/˗G`#%[$㩧aCm%`c`z\R˗Pŵxhl: AA ;\ARRC'8̬‰y“7 Ç{`4?e.iLdQdl T7{ y.[v{tA}2P4Wxkmm֮]W'Gtt8DOO][-sgɅStG?_ crXY!<558y2gh\M͈m*u!ci| x߾NtRR*4nĝ8/k\ DdΝ+[e_ґfuA}yH!()j4B%AH#f$׷ 17Q^^@ĤF6 6zvU6ٜN85:9CT;>`ի%&5zؑ#=Cx啾~wseWMG页;;sY).<L6) 7O*## GORYX`AOz~{xmŊOֶzku!!ck|R|yV(~nْlrcbHD]HgwH9qJEE6;w ~os%/#}DkfFλ޿>J ",ba!B[_Mo;[O3\:;[m;5+)׍IvÞ:Rp=&Dԅի%Js9:ZhLALw7&:rhֹS(W^߾fg33TJ&LKR CCZ4o߆FTaa- k;9"qbyJº?ROXY!0оS,MR޽0mZ7j?Xa|l-oouzwcfuںQz+Ե$#@95ooΎ' *ʽD"2d V}69ZqsT*UD k8˗W //݁ՁY{t0- u]Mk uDG+כL4ƍ;ЪBC`es^TTK/j y /|~QV^^], RG9Çsŵض-: Ths:YvYqfcC}6܌HO+GVV9\Z*ŏ?gk}ڛl^&)pL>jjQ_@RR9VG=z8h5ϩ+&uXr-:r("Dw{puOƍ52[wBw?ruŠ?._?g̞;R ~8ŠD Tqc",-Ũku661e7q99Y 0s[UB`(O=/K4GOWV|}mtz97±jUr23%X"SW'#3fJ6< ]vm | PU%7ߌ4u!ѣ.]ݭ`ii솀qntŚ5WM2ƌ\ߟ2<9!K=?l2ݻw=CByHR4efēOFPzZ(}PH,_҆)UOAy.5~[rrrr`.]7ExZ* H?ܱy]!Ɉe+$d5Yi'3!sp.]+AQQ-нqセF_ߔ)Azz%rr_ GGK&h,Й<$'WVVfFT;Ǝ6HvJdfJ`mm??[ѣ`flh+)8}:_辶hQfglz:S[ [[3;o?cᇃ1~w *Gͼa%K4w^h8}:U()zv}t7ƤV?n#)R8:Z 0'h,WsbH '\f⧟X#nHDDԉ$&cٲK]Z׭ҹ}JJ ۛnFDD 5!=:gݺaݸcݔHDDDܣSPYۗ5chv+V\}K_I$`|HDΖldeI%D"%0d htl""p""N p!D""""""bHDDDDDD A"1H$:3fGeKm6YvϞ:xa @rrZiEWZ*>QȓSWtE̘q?<"Js1<0wtu.Aԅ:!7rgȑdgKǎb &=}:ښ#(PW'>/k.Q:ZVx].W<ѕNh*MIQQ-%cѕ^ʣ-DU&bP[[/PtQשVQ'D]zv\^ MY^ IDAT e.5y׷RÁ]afְ(HoO?ǂ)ayQg6jkaee?'Rl D.&*eGBBœ9{ `i)T*D"C\\  r ㄳgc7<"rrCcw&!$Qbc&&0lwWv=s&mJԾ""Ҥhmm "$0@%^b̛3H镈.}UBWVHd-S 1nݪ@~~ kՈ.QQĉ<=z8acFZZ%JVl -e |`}].|zprsl=1}_A>lIKr\XH pP6NCx^X\\Çs_:8;[!"cz^eƍR9, ,- qԩjuvXݵJusci_\zx{`ODEC-IH42FjOkK*<\PZ[GL vv7dpqDhS# eeC"#]aeϒ.9ѢߘQ, ||lh:ߟ2g}ЧSD{ӭ7)$":@ҼmLK닦:O9nI=\Cqv,,S=<CnoI{D!!9:yz΅ O#.V8xp{5`׮q̬ϟи;$ƌºuQ{))=8Ipu»b^R-{wm-:6l^[R9Vþ}N 3g`ٲFΝ~x ;wk}6 E->I}6ƀӰre,#0h6n.|n׮t_D..X,y77K=;;sX1?+Wspa/O93qK~??,oO1IJX&-NH42Fjo7_u5W޺,Iebʕس6||lwЅO`On>X,¡Cdoܰ![$c e.\{R3lYEZ1|/nbF-5y{w^)Ǻ!\?_~I:llkaȨ–-oI{uA#.ŵ} wUO}|l`//kalbLLOӸkj,wcmʰapp0ljy̔ $ZY:e;Æy 'Oȑb{Z7lN}:cHO8:ZG"# vegOG̞dCnt=`ggY((eZ}\-iid2bc69fA%> Š?̔\P[[9s0j'칍jdfJ499B(';HpܢQ]bb9~5rGD jSs2+Wls-pܹA)DJJ0j&`iiynmS_:ekWo//e}o/\({"8>iO EEoI,i4HTu2Cdbb pLF'wݐlx _gɒ0~˛$+^]z|w_(y&8u*w /#^>?tnqVrsmcj>[r_|q{y|ݺG|*琝- ݟ]+ѣzuF={nnd% 1cfMF7曗Z31cn1TK~٘!U9+GP=֯"tEz/Blؐq1tE8w~~ OB.]RvEBAL+WZ.L+hԷ2,Yrb,VKcmȑ9V!%N->ZRے^^6m/ y2y| ትk#akkU޺UaVuA J' C=GPB┟ut@Ϟ?[Cc-3Sɩ9,08Lss&LM/qQWyo6ڧBb͚A >ػ7 "{ 믇P9~mX6Rk\Ό~_~IT*9{o8ɓ!2RܹBOuT213] K! NNxa3GMM=~61`WwR HH(CUUCKP]캨zjZ{F(}`a/9mr! }S:1Uu;"A"(KK1] OccXsbaÔAbYe@d ٖѣq&wu׵_lܬ4Px$19yrF}]!C& 97Yww+U?_}rApt\P}PWvts燽D09mr歡 }S:U㡇ᇃL*k`wS.**/!5upt1_pl]_?g [2Ի0Gf刉)l|Od5OUnߡ!!HKDVwAA0DXK ٩mxJn.:L꘍y|ȨM-4,ϐo8j>$R$%#$qvv u An8z4. axĶt5[[s3+䅅 }NwDi歡 }S8ʤT>߿_oI{bHD&L).G{ن/6bv3x^F_(ر\8bhܩmɅ٪ʘ{: h4Ի6Y[fLyy0g{ikud213j̞8':d__[dgKp\!BB6 =.ŋP* uc[4~y-њt{}歡 }S8ӹ=[}Ҟ$ s,Ɩ %)7T>~ՐT*op5_ZFY u< }>ahSQ!Zy۶ODs^D"2\]Sb8BPvuj!03^9۟{ɠAn8ΝBu`9k4FQS ZۚQ_S۶[}+8q Q}z]d`Fۛ ?+ݒ+<>FͩF ܼYg='¼y';,:cvsL5+9\vqq%8r$Gcr`eqqDRS+`kk1M4"aҚv5DsլҮVZ3Y+M듷]_XW}Ұ۶=1H$"݄ۡCujZ lgIkA5{w&{2 ݎ`@ ?dn5HtSwwy{f 9lI>i󵳞cS䘬:,^|K\hZY uܦM7Ph}T>_WG똛:?ʤص+Nnyoe]mD"Kom3|}OD"2qNSzEAۺZiMmΞ-z!8vLUN5;gW4~+嗑54> k^v= 9s ؿ??ر#U~Hi903A"aٲKZ2ƌ;I{cccz dE\SSe.J3`r!Z;OEu--2=z8YZ忤D^:DXg iszcY5D}a ~:m[}+8&+0hFP'XD OUk>Op}~8t(x䑓6HMĉyʒ $ϯƍ0={:tʼ7-xHKļy'퐔TP[[KK1Vde0̘={nҥ"C+ qhO8)֯ggKFyBWu}Zv0cTUW(+bɒNH)SA$>:JK˜3nl;|366ftJqpF#q\VV /í[.fʔnx̘qc^',-˛˫޽W^g':*u̦|  wc% E]_==}1ng}}m쀔 X[o_ãwANvx^x+/%0wnmU֛+m[ Sj@Z7Kusš5v)է'V0:=N\~Wttbb PW'Gn7/])ȨX,BϞ7ۗ X1cOcDS_:8;["<Ç{B۷pX.af&B8:?'+pXQTT ww+h1ŵ8v,P(]!ÝѻQK4꨼719VW'GLLJPVV//ktnѣ='VeÆlْ\#PU%9HJ*q8&Als#zKʳ>yۖ%'Wlm`!iQĉk:'!""""S DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"Qb &e3 Šyyx:<7. HN.ěo׹}#'N?9%il89YcxlzCs Ĕ) NN6P(r\O %$RזV~aaaptFyyMOt`?QU%mrqz U󆻻bc;4 yCx]$|}눉Cnq|u uInJ:!H5]h"p\CȆ04Xr ^>8G˨WLW^(իW#((\ҡǝ.KzzիW [fBPP6lЮ̙34i|||Tzׅ4G]]]Ғ W>-DDDOIpl:[nׯ7l4^3&G$5=|}HM52`xoP(?t(G$aӦEXd䤱m@A IDATRRRRRpm@NN83uٽ{0q JJJ}v̙3Ϳ{ѣGoooaܹpttl2郀FѣJADD{ 8s wwwD^K*ѣɓ'ߩbsNdddxǚ}*"{/ ~'۷{[T.[$Q7h?#Gi0"..N? ҆ ,,G*{8yr(Z??Ws`mmss1}v칮1rT\Ν8w.ee50=4v<9ͮkks|,+ǔ}.__)S $''ki\~=-[1y _ȑ#O?[nKzz\}mm-x Z{weaƍxWQYY6n܈3g o۶ V>~H7~W>} 9s&Cqq1\]][1|htR|xꩧ Bxx8.\ܹf͂N:p=ضm[xꩧqFKJJ|dXx1 ϯZ @XXXp[ʇl .֭ɪƎ˗,mDDD @"~Z&IG}r ̙4at5vYxɟ4r!?o9 b݄ \+&i KYVO;yCvÃ?_i՚ffb[way]g5f_/ $$SNΞ=ݻwӘ4ibccaaa"66CAAf͚={ >/":ׯ#$$Dx̬U'܏<ٳ7ߠ;wO?ݪx"&M*[nGnn.~iTWWD"l޼z*VZ+W YXXE аaÄx !ԩSꊜ޽شi"""۲e_`2e pl߾xqU?[n%z6ƆDDD $qmnnE"눠 7ʮ*gΤYCPѣ5D@%3Ygc7ߜkhM//5D2\y[< xffbÄ na;M~rcs0b7%%:`ƌرcllM1w\… ۴g ӱc1| y wطo|}}0m4g[`iiiӦaڴixꩧpuDFFw~ߎ;P__H$ET pssCQQoު Q.CUU? }̞=Go3g_9۱?>,Xk̙֬3i[o 'J`|{aܸq8}4dGᣏ>«*裏wxgk>Ǐe41#vĊn*vոPuk6DQ2$FGzNs,ǃs\y\׷2 2G^^-⣏>b*}@*BOkD1EAb).Zm+y i \\5U)͡Ś5 :ܹ+xm2??~2/T7nHVV&&&hu)ŋ|4i&Lй]\\x)ZZZ lmmٸq#Px*v҅ *UNqݻe>cǸy&ڸ5j`ǎ?A%MٳY`AQW%,BTYFuCݺYYG<{]깟=&--LitF5"sU9mF:uJO5j()qnܸQ{Rܶ[n4nFFFU2###˴x"T"S'ORzu|}}d뇓S`2<<n:j׮ͦMZ*aaa,\P%'?iQ>>>/QB!z~ӬR7?wNu񎘘'ZrLEzY# U0}f[:w_-ӹ]\F7wqq_E7 E^Z͌3+=?qРA.̙3HJJbʋskVsO0333e*AAAL6 (u|rjϰaJM߹sg-߽{CM Bƍ)((ɩX5j+cQqƑAl:uXjk֬QWQ2ɓ'2fff2ocBCCW^4mڔׯs222000ťRIOOW jժYv-1۷oёP7o:t %%~pssS jժO*4ivɓL8Wbhh'|'nݢ}|TZ[nq!hݺ5׮]ݻ|899Ѳeϗ?JOY! QTQ@V궾xޕ+wy,cc}ޏSƌ? zw&pQ.^-;w2`BBB8~ʅ1cU)믿ŋs\\\]HYeLLLy{U>gaaNP0f9s&=b߾}*[YY/(5(///qcƌ)qFbڵ@ӒD(}<~8&M"** cʕ*/_fٲe@htlB˖- g…ZKW_}{zzҳgOHMMɓ'_ReM2 !/JitxcnmInԭk>% {%\ xe4??///]FBBkfo߾L'&&~nݺEAA|m۶RymFWW;;;^ѸҤMPP)))@߾}m/ٜ8q .ի ~!Z9riٲ%Cz@^۷oGGGAѵkצeB!$H5B!" !B! Q!B!B!B!$HB!B!AB!B B!BH(B!BD!B!$ !B! Q!B!B!B!$HB!B!AB!B B!BH(B!BD!B!$ !B! Q!B!B!B!$HB!B!AB!B B!BH(B!BD!B!$ !B! Q!B!B!B!$HB!B!AB!B!AB!B B!BH(DyUfTB!xkJ}ڷϗ_б?pWアuc`˨QmkRPr}֮#*t"!B!AxsVM:mFҪZZ`ii)MY,?|I:B! Qy""kdgol]|]?etS yY:ubĈ6h3gNw]ߑ$B!$HoBغUF5N~8r_|EA_ϟ<Ι3l2mm-ҁB!Gh׮>ZZ^JQBWW>B!BD!JdjZ==aff *@U K}w)>YDuhР4B!xtSQ!˗*Uع3ߌyz`iiƎA| 5<فݛPZa`DZkW0'Ok|K;}XƎmq<{Xq,tuSZSOstWIzרRE$J,wF?}%A!BH(@6V6|]##Go:pm`KVtl̙sb;:6ܘXƎo_[獍1 vvuwqm۪ZÇ} 3٪|gӥ}ħUűubQn]iذtܣG_y! ,Z5#>>>9sYfQF <}4|瘛WJ^ bѢEqmNXXK.)BDh֬|ZZp"#|gww5HIɤMKFl1}ڒ7Z';P~U ?W_}ZsϞ=>|XD!$׋]mYjgϲ9q"&ӧLqKW%Ky^>Q"5{mHjOϫ\v_mׯ,_~HLBBnnc{"aCgM&..~͛*WhzvC^6>|8k֬Q?!!`ٶm>ڵk{~߾}ŋaҤIR B!$Ho4NRL΍i..qb aaTQ\BSLMHrrƼ6hP 2.Ś5@:ܹ+x# ggguҥKx{{s {,<ޞaÆѴiS4111lݺ0cԩT^]xBH(^qutkiW\Adzm6ؿ'OHpp0T^#G/m6Ξ= 9v 6 G`9r'{nϝ;wXn-[$44wwwӓ֭[o?P}xyy͜9s#;;CO?ӢE $fgg3qDӣQF:t~/UV)eàAJ [nMӦMٽ{w Q1tҥ-P6T>6h"7oν{8p7oKe{\ IDAT4o޼Bmme///eٳgXZZ~/_C Q$''KKKtttصkׯիjG|B$$ӳIN(/55S궓PV ͔RQ4ba`*oof3wb+޽N8E0`cFYb񞞞$%%KRRƍٳ* [`.]J||<ǏsQ"##'""uuV.]Dxx8DFFҤIqƥ#Gߟw|cچyr}TΩ˘1cHOO',p3g᡼+??` x~wy*Rv^z___[ϠA022*wؑk׮pѼysvڥ|L1tĈHӳgOPѶhWfIIIɩ}_|t===lmm dڴi\zUcSRBII/̓i4n\L֫gXiDG܎1T{|o߾b4HڷoC8~8\vgϞ8Rq+ );@:u*-hذ5jƕIcĈ,Yh7n\TS:YEۢm_eSؖ*zxx0vX6mĦMY&{fܸqW\BH(^_WޣcF;[q|tFFtVx#=~%DHH+/5~zqvv pvvz 2ٳgӡC"##5nXPe^=,#YYGsr WA'ӓVZacc񘊴:YEETV#yyܦMBBBtwwwvqvv/!$ѣ6}֑ ՎʍS‹Ço2777FGG 63͛@100H豱<{LeY(233Mym4iӧOYz5[& @%x%"elPχRZJCfhٲ%wfܸq\p^c xeSlp֯_:tǘ{ʕ+YxqB!De{K3g /ڷϺuah:k„5PRW_o:ފZv-}իWg֬Ytooon߾Ǵnݚ>LtU)ioN:u%99lڵkWltp@+m۶Ŷ'88BZ1`/_^Tӿ xekڴ)u͍tUmƆ ԫW>888PPPB!$Hŋ)ݻ)/~X6nt& B[[|,&99C*%cܸqʿ}RfMfϞ*]-_,vʮ]ח}œ9sTίٳYv-9r.]7|u///|}} <|J@@G5իS x󙚚JPPXZZҩS'UXXX`gg|@ 3!!gϒB6mGGGHΜ9CVСCw 011a̘1e^^^Ǐ "::{=LLL~Q66zmwcccCΝ3|}}[[[#Q!BH)$ !BדL7B!B!AB!BdD!Dٲe(B!AB:tTB!kN !B! Q!B!B!B!$Hq--Zıc4gѢE__ݝoW5=bʕ̛72wa-ZĒ%KWf޽,Z7_oڴ5kּ1}S!xi5m@AN͚&;7w —_~ʕ+զCWW[[[nݺU:t(&''畭O@@uG򔕕oߦF\|FX[[[8}4={,fܸqرL ޘIINN&""B!īLF2p@fΜZ1 !Cp,O!!!ܾ}Sѣ2/_&,,:ueB!īLBTȤI$SZn]v ڵkOٷo7nD___:k7B SNɔ)SՕǏӤIMF&MT{{{̙3"66'bjj.66///ZjE==ooonܸ9fhii);y$111L<ƴiptt &&[vvvL:իkÇ8rL:@prr*6544Ǐӭ[7ڴiSbMff&&L̬sk.Wΐ!C8r=z}KH>L6m֭ʱ &&O>jժ)}vf͚8880vX +ܯpqqҥK8880qb)muX !B !{n.\ӧ׮]#**5kЪU+n޼Ņ9s(YfU?f"55e˖ѱcG?ؾ};dذadee)swwgxyy1l0Oll2jڴ)˗/ŋpB7oN||#GTQY4h C ޽{cŋ'Oh߾=&Mӓ\\\ N>͔)S0`r,h7B! QQDJJ pBBBXnlݺUqGFKK={{n׮]ԪUp -ZĀHLL$,,Ǐ3j(ϊ+g„ [3af̘)ܻw8֮]KBB֭+[CLMMݻ7UVe޽*鳲طoڵE˾yfqrr"))p֭WVB `ժU<|ƍ.;v?ёիs!JMJJ |I/_5jꊱ1ر]]]/_BmcǎʀnСddd-2P'>>x sգcǎ\v1n8y.iiE|ܹ|̜9~3fлwoΜ9| ӯ_N~~Cje'"B!$HB?)XHϞ={pppYfĐ˾}-Rr^kkbAٴim۶VZ|?~qՕyOIIۛcaa񸨨(p$UFrdy)V5]z5?Ez)>|؊Թ7o&55*U?=C>}::u{{{|}}+ܯuieeU94h8u2+BduS!0tyyy(S- aaa#ǎ#--@ߟkr%c``XQ<{Le u233y1fff888ڳgOV\ŋM,ȑ#ٶm{ѣTZxbKݢ*ǫUVj4$''I&Ş?y$}]mX:c͚5|;wӿ;O>eմnݚ -""}G1siiiܽ{L|rH[[ݻ۷U{1[>+5_Nz:u㶶888PPPP- z聹9[lLJ#G:JeffF۶m9|0qqq*B#UcƌQ|Ϟ=… /g2~x4i~4i@lڵkW~|||*\vQZ56o\lM682^_!BD!f˖-ӽ{w/^̩S ÃݻR_w?ۛ$&Mʢk׮ڵh|}}۷/)))Te˖XXXw^6l@xxr߽ұcG*ܼyLeG}Dxx8N5-Zz쉷7QQQxxx0dtttXlY2&& .ЬY3Zn6Æ ]vi_Y?'.._~*U`gg_/7nnݺXXX兯/3k,4Ҳ055eΜ9CN8[_ ƾ !$ !^+Æ c׮]TZ޽{ӡCƌ}H(B m6e=zDݺuYvTB!$HBtmmYK!$ ![N*A!OB!B B!BH(B!BD!B!$ !B! Q!B!B!B!$HB!B!AB!B B!BH(B!BD!B!$ !B! Q!B!B!B!$HB!B!AB!B B!BH(B!BD!B!$ !B! Q!B!BU3PO*B!B5t ͚bɒ$$1skäI}|s~؜q/<-#03‘#puG]FjK~X[̐x 7vQQ !B ū-& -ZFOO05Bjj7MaS<{1}*{yP>ޢEm͍vk_Uضm$ZY<XZؔիϗ !%66ׯTB /##k{҂mrlڴZtNM 9s&B*}RY}O ԩpBB`fVN1 ::̙ӝkw^rsMY&666MÇu޽{k<_Q=}?~MVj9?~<tU>^7n0h ~w_۲ҽ{w|}}iذaϑʕ+ٽ{7GÆ qttdΜ94iD:ŗ… |```@xx8j*6lؠy---4h@ӦMѣFBKKK ')) ===N>MK=fРAܸq#GʗqŊlڴN:c Q.by~X$hQ33CǺv$֬i>%:͛n٨Quk# / zpΜ`˖hkk1o^Ow}˔ȼyسgϵwW֯_OVTo-넄ТE IJJVZ4jH%]^^111伄J2ȨT7]Ie IDATVw^^k]\eY]yٳO?dc撓۷}6...O3DxbeQsZ)?v(RhΞ=֭[Y~=;vo;w#NÇK=q]DLLk .*ݮ_:wnr!!E|۶Ծƛ]Xϡ/M6m۶UR燽={}תR>`ժUoLxTYeEWʕ+3dj֬իsdff_j֬Iff&9w|aU2$##CCCN:Ejj*>+;vP۲e sΥ^낋/2~2oKy{{{nBDjzlYGcөSa@x}@zUiذ 10lSMutV͐ BAOOhg;U-W 55ąiBCסAjl_4i<@OOkגȕ+Wx!gΜʊ<&O̝;M=z(O>-oرױ7[]v䐓CZzXd ٳWZZZҸqc̙åKZ*yyy|7ҁ/4?:::ҫW/y gر&O̊+ oΟ?sfΜɓ'O *$H<P.-Z.Hm //J\׮GpJkIzzqҥY\6~H߾Ā?ʉS G`,>>[WC270WoU 5QHO^~™3gUEѣdOTqܹ fy㉷VAA'Oɉ͛kL۸qc??{IJJ /_022b֭E Obb"_~Txm܌7̥K884 K|~(Gϟ&"! iԪ]XvXԼyaFl ٳgU30( V׭ƍ=El2ssbAmvh׮LXpssc.\iS mm-2a44ΧK ftc}@qO.SLP-ٳ'G˾uIZZ~)ZZZ/kBBBw @/ǏGOO={j<ߙ3g8x ;;;&LP7(t{%..sssZl122R S,: Ԯ];;;ƌvaLΞ=}ݻw퍍 .|?/44 .JLL ԯ_'''}b?4VOAݢ ۷ !C`ffVim"e})))df"]U;v숉 wޥZjܹs?>}h\$**eQW_۷SN%#Fs>|G@ݺuر##FPypiذ!@mrazӧWbb"ŋŎ1cNNN;vzĉʼ/Xgggf͚E=zis'NdsE@g?ǏWǼyXl1M}_y!KcaaGmr-qoi߾=/_TFf_S|68::_2zh"2~vHgcd}b+t)|6wqUՏ߀TDT\8I4͉aZ_+-[V}Ѳ쫙Z+@IŽpDP2e!ss~>iŭU,tѱ^XfVwX^"KK UI'N2e)1Qz5sI3Zdf-ww5m~ʕRlCϞ tEKƈ MUzq VV>F@\Pлwo5h M!Ӝ9sdooO>lZ׮]egg+$$D7VǎӬ5jԧOuU%JІ rJ]rEÆ ÇsL0A}<==ս{w.]Z>>>_t% 2Xof) @]tѭ[TT)_ 6THH֮]+W_Tll^}Tkƌ駟dccu!;۟KeڼysCʕ˗zj?~\sc=?Y:7oF?8gϞW<7ڵk8p֭['|ljavG{Q=Wnnn~&MN::qVXjHqQ#3Ϥ>}Q``x 5kL!!!9s"""{iٲe ᡘ}7:v옶nݪ~!ō5gƪSNjݺ.^(___]xQ?hѢ+ϟW߾}u5-[VC Qڵ_UNƍkyv]͍ӟVZiرڲebLˍ:wܩ(,;׶<9qHѢE5w\kN!!!WWW#xڪGƺS /V+W42($=f7yRRէO)#u|s3]C5~02{ꩧ԰aCnاk[^f?H+Wֽ{ /xYn_z%(Ivvvf׆ eAvQ`Cb۴q/;~_pHj^N9:&U^NeO9s&nC*IJ-<},gj"jee˦ Yچg4nnatu3F;vԍ7 TH޽{F'Ox[Kk0﬎:::ͱdNqh"y*Ud|5>ސ!C25V؃nfs=ަ\gU^gk߾}v_M6l]vь3Խ{w8>P͚53֭[f˻KϜ9#Ii75IxIRS턢RJo H;e +Wx㩖իWx4Pv-_\K.5n:QkkkM0!zm˫S*S#J@@ˇ&}Lڰ<,׎ŒcBu[e3j---ԪU/+ɛ}Z+V[14f|goez%slҳg}IIMx|s]ݽ{_?6nt~!Shϟ'N)ݛa$~Y0O8a|zKYӧO:t|ڷoڨ7?C/Kɒ%U~}m6EmPVmyus ~iժU8q맚5kr`4O`lٲ}YPD( ڷ]\^UzYcpMMMXW۶oS}fάH-enMshŊyBYNj[fMM2EÆ {~1bDu~PB|99^ӗ޺unݺ y322yPV͚5ZduE_s:nXӻd4J0kzlllԡCuASNծ]4zh;vLfϞ^{-EH|xcfoYH~{c씁kzM6f֩SG׳>nx q|s3]_ur {N]7|[*22RG6:*]N:f͚eAvQYBrsz ZфD}Z Ժu YYY#;Kre; F<<>Pm g%K[wޕ&OѣGIHO:tyŕ__|[Hk6}wzjcqƪ_tI;6?7IA&u ݻW/^TŊKMvm65lPaaaZvYHlذ6l XBM6U``Ѵ駟KF0ysNoooGk֬њ5kcEFFĉO_믿S 'O(UR%M6MF-Zt~̖MIFGwy}B" ={̟Kl$CRSNӳʔ)mkvm rm;/]JjPu3hBYZZI i7oֈ#nݺiYjnaM69:âv VN4}}}ƍw}7E ]N?@;uԔ(U~E4{l5nXkթvI&_ԩSZ\ 6;J<8'ʀ⚝FYvҸqq} chW>:yH&&FCU\\ 6d) hٲe!Ig\Ry}V$uMyM8 T{4ILL4Ez}5?~\׮en .HJ9&qZt$س*::ZG=&C+ 2;wjΝz7*jڴf̘ÇZqqqFGVGj\!ٹ{ͶܹsUhQݸq#N Cٽ~zD9Vz)7}n^;x$&sP"O󡿥PIk% [ctdezZk'ԢE5]'޾*V,-{/^XᲳܹsܳΝ;tS R֭%I Juu] 1%:\n4پ}{UV&.kϧ/)KKKwpǤk׮)׫WO^{M.\oeСMU4!!!Ûr1(H35;u/)ycǎڲֵ7!7}N_;@H|_}'ͱ M?s&,{ M.<G5kTbb 7 e^1eݾmz뭷f8޲4($ kY{.P ׯo͟?_#G4;m۶S*U:i]vIzo=IIMjk׮]^z)::ZVVVs :3gN5񃀩Ŵ$oy>HݻwkM~}oC?Na*Kф?44Tu떬̞ck/WWWc-" $>Ē?(%u8~~⋭̖mCnnNrun}sUժvjܸu:y:'7ÇO<<<5{l >\rssSΝCi۶mUѢE`2< IDATlUsՙ3gw^͛7OWUN988ի:~ ͛'''T˨i0W~qppPdd^{5-\P[֥KcݸqCR0 2hΝp5j$OOOխ[Ww{JJI&n ԦM޽[|N8!~ii_GAAf[[[k޼yjݺu5ZvQwѣ?UVpva>>Yv\xhVÇh0rHmAnUɒImsyD۷iĈ_ԫW#+VDmۚtM}]{4<˗/A$$zzzjɒ%vƏ/{{B3ڧ6mG=N:۷5ktrrQz쩩Sj:rYH{{{-_\:uG),,Lf:t,,,ꫯZrtggg͟?_m۶-0UKֶmgiƌuN>Wr [7oթSGM4Q``ʖ-+OO|+...8q~i=#deecjڴi9Z:vٳgk„ KW_ej~gSGCռy2/?gQQ-[Ԙ1cR%, e'+"ooo_fhҤI0aBv@pq$ÀVE5jΟPHuqݾ}gR{Ν;rvv믿Hݻw+Iu֕Q#_BBBi&8qBruuU߾}U\9IҁpBYYYwj׮]ϛ7ojƍ PddժU+u큆bɫ}^m6߿_W^UBBWիiӦYfڿ^z%͞=;˻ᆱO?Tmڴb :tHwޕ훩1Zn:>}Z.]U>$$$h͚5:xBCC訞={ =* 57n-8~J*vrHHHOhт! $(Xgkٓswyav5988… G P@|璒G@G͛7W_͍xI ݻWgϞ_EIY1~x9rD/`(8֮]O?ͭwx@иqc5jHЇ~bŊ+VLvvv*U'Qt\3:@AB5B" $B"Ȧ"111 իW࠺uL2Z6..N'Oԙ3gTF ծ][֙^z6me;IaW^*T-ZS-ZڷoClxxƎRJAP TT);Vi.{=}rttT˖-իW/lR6m99DJ<_ٳgժU+]|Ydkk+ggg?^ׯ_$YYYiҥ0`ٲ7nPӦMuyIRRTjU;wNnݒ$UVMPr̖MLLСCtRcիٳ$ >\-pjGs=˗/Z_~^ڵkڶm#GaUhQ㏊ѣG~A666:w^|]d_yȑ#r^z%Iŋ믿r5@>ˏ#GU駟N1OPP5k;w護g}&I4e)8qL"+++ݼySŋ7ĉj׮vi\bbڴi#կ__G1jGЎ;$IEѨQRaÆԩ$鯿2^?p$IݺuKuY 4^ ԉ'$I/B,,,K; N!@n35VҜVZSN%& ***LRݻwOuYc۷sC`޽{AOw>SsOSXf͚NԹs͙3GT\95n8ծ][*THuYN:`N@&x=1bz<~~~ڶm*MJ,9sR+WT޽yf;vL7oV^-KKK͙3y3gHR|f P ]v_~5kK߿֯_קy+WT^75CX'o AM"5fuQ7nܐ|||jMSDDZٲe߸qCsUxxr111dL9IӘ;$~)fzS]޽{/+22RԥKZټ֭/{{{}0`lmm+Vw/'Oj۶m*YYMwLtҜPB"X`ыhrĠ y{{Լtʔ)6lX_j*R~7=4;;; jԨڴi}i֬Yzw$%uJ#IaaaizJ8DK/3ժUKڒ%KwN'Oѣecc/]TԫW/O<=zhÆ _R4rʜPB"|7oֈ#nݺi eΝ$;6lؠgBS'kkݽ{X5ykGPLL8 8P6lt$ʕ+w%IIWML57oޔ$6mڔ@H/^piܹ*R$ L~KsHmٲEԬY3m=\2e׮]+)imrMG%IUV5BYz*T IҨQh"?^<ϟo Y!% ҥK*R666zW5e͞=[zR.];w$iܸq^3,\\>I0^u֨QY<ڳg~ɓ'sΪZN>[Lg]Ia(UTp>'';5k椾}]5rz Zx vKc10Qlm[xQ'+VD+VTNU^NGŋ4e/ $>6m:79}?W}յk]ժU^ bA5m6u8(#Dp!Bq*^ZNN?hcc'|~=Z'N\GvMuz*jU;ݼyGχ;b2e*KO+!!1TjeSL;~rkI\]˖/_ҘK{{S:ԩc_fk[B"JOmU;$EDjuڼE*UT6_I4(I bPwE7n1*L -Wp7bnݺkzI9rY]Jukעk)yxWM oK{j(3g̖[V>\ QaVl9sn߾u++ Ul+w:\V~_'_ԨQNt-9ؤpo66MegW\Niݺ#ڷ^.PǨ0m+@HD,Y_7o=D?WÆzvZ1DI!#hFJ1o9MQYeSԾ}-IٳaG+WJQk ӶD8͛W_|GvvUVy8q]Of^?j!qE-ZTSEUz9b+y{jٲf ?!ΩS77lk޳6m[;*V:UB9WjRjnsTKWB\9@a`!@r;-f4H}ݺ]i*֭6tT٢E5hQM˗0KHHѣmkKP"jٲZkFYɜS аH$ۿ$'HM24o }u?խ IOԷעE4hPT|9Jn%=+iioLw9:IuY/&9VRtTCׅ Y勒T)*UTqڲcڱcAz=S8{ߦ>QS65բE5 L? I _O>驪UԲeulYXʕ6ml9nyV'ֶuk6=..^Vԩ[Rlk5wԩ6mզ1m &m'@ʕowRxxDڴMdk[L7u qҨKMREթS99ctB4sP%u-qR_>$Κ}9YPJ~~P@H@H@B5B" $B" $B"E8g̙oҜnaajժE;veaaQ(_&Mґ#GThQ?~\666rׯ_W%I>>>rqq)0ǹaÆ$uA?cKHHP&Iz'xloÇջwoI_%{{\ jҤIY^~֭rvv.B"Й3gҝڹs{͚5K/s'N]kzǏWxx*V5jM7[\\\:ΝStt$iɒ%ꫯTL ?~ڵkܽ{8V7o3,B"駟deeeZLLN8%K… ڳgF]v˗+66VŋբE -Z@֚5k4f͚5P;whڵz3ur H}u%W^yEjݺ^~TT#!@0lذ!?T~ݻwkɒ%:thٷgJչs~Are˖erJrJf&%ͦaÆqzt\Mwt'NԩS:$,2=Ⱥ#Gŋ T#kkku)mۦuŋWFn@s֯_۷+44TjԨӨQ#5h@Gիsϥ9ﯿjKS7i u۫jժ0`ԩbh;ݽ{W۷o$uMw^XBΝ\]]5b(Q@|?AYٶ۽{rJ Wʕ6mlذABCCUJnZ^^^.(H,\\>I0^KݻfsS)VNQQQѣ6md5jH"s玞{9Oz4IҜ9s4~xc*T9s5Pʲ/>z}Y-X vq(I5mڴTstt{٣ÇԩS))SF3fȑ#L.]Z/I&k׮FH_BBtem޼Y ,ҥK-[ѣGk…vcaa#GjΜ9fQF+WbŊ){+K+W… >|-Za@sۃ\ mɏիWSOiϞ=)W^yE ͛SLܹ|}}"@J$;w***JҼa1c~'بnݺjڴ1m޼y=z^SqF]vMԺuaY]UV;vl٢  ]wv۵kWi Qƍձc4kFG]vU%a\RW\ѰataeԥKݺuKJRհaChڵr^|EW_rҤIm6]~='LMM˕+N:%w5GգG+WN/_իuq͝;W=>>_t% 2$1Ky}Y̵ _>}7xC͚5SHHfΜ{Zl5p@yxx(&&F|;[~!QIܳg btIJi&Cҿf͚ʕ+ˇvڊV&MqFӧ䤐Y`v59r͛kɒ%>>]wV+%5Lw)4k,3l'jʔ) .J*j{1~ڰaِ&7nܐmۦ%J(88XUVv'I|Ըqc:tH4jԨ3F~^x}2dHĻwTRwԱcGfRj-,,4m4?}?#cógϪZje&1/qvK IDAT|f-ɏKbo@wڥϜ9Swddԩk׮e<G{ !7tP 2SO= uF@8pKLLTZl2BIZ`eaaE^^=͞=۸]vm,]z'SIz߼ydii |Zxʔ)͛7/[7h IqWS//4̙3*YonmmHN<" Jҋ/h?+[qN9Yƌc%]v7nt[[[DX|.]joݺu:zq#>a„ty2dHcҙzCuwwOjU^=IҾ}rdugֈ#R}Tdi7ٱc$W-R]RJƍ_vatc+W|رcpy"##SkvQ-8|Zׂ,ikil߾}ӘƢs  Ir/r8,YRW۶mS?ӍLnnn.ߤIufe+?םYkNznsssb MUHH<(___rwsSe>kAN?SaZ%B" |י%-jJuӍdFtU^l.]̪PoI_n֭[7o64Hײeˌ٦ɭYFK,.^hV=9Ω2ֵ '_F0D@ZC;j(3je/...Gͮ\wf=p||ԆMuKovޭ/J*FS *l޽{ի}_7nM'Oرc>8|Zׂ(B"Y:w\󙚖%=;vTkVpp:uӧ:kԨ-Zh߾}_5vX#gXwqܸqzwSԮ?>,;8|~?@ [_9ObbɜX6? Ig\ط2rl2%$$hժU24on矧Ν;|rvϯ $(`Zj%Iھ}ߟ}TfM%&&j))&&FVTTJ,}z@azvp,S-[tmio[o5k?ssWIe={`srqqѡCm6ƪhѢZ`pY6?;/.IڴifΜ);;;ӳZ .ՠAjJ-[TddVZPc0uS`  """$eWgyF˗/ױcԼys >\vvv:v֯_SNq:x.\I&iruu}$?o9ǹ] CB_n `m۶9l~nwvxzzjɒ%vƏ/{{ ԦMөS}vNNN>}z 8PƍSBB*VcֳgOM:U'O֑#G;˗SNrvvVTT>#i֬Y-;8|~?@γpq$R{͛7qF(22Rjժu&\[6?;|||;wYzݻw+Iu֕QYhӦM:q,--ꪾ}\rh…R޽3.;8|a+B"@HA5B" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"_u,0z"D$I@D$I@D$I`}J'IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Bergen_page_1.png000066400000000000000000001466711420322575300271770ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxTUw{ $BtXVv] (*Y(b,늂TN!!! !!dǘII' ypޙsνs{=IΚ=uc;@HD!@HD!@HD!@HD!@HD!@H(TZjTFFICg99-+/L('MUXXsY kk?ގrsk|''YcGw3MJI),GG^23KTRblвvrC˴RUHڵs=a1LҩSiooPǎ. $Yxxx`Gs>$믏J~D_,$9h˖gڳ'C=ȑz1^o5{wRR>׊+$ěx;wBC=4jn%HAAמ-:kOJ^xa ncPs+((|nݕ8c\:+,,] |ZS7h4Q(=yA^u.sTrs=<V:qzMQ>>Ίk2$sÆdg|CԩSM:uH׌F.VYQ3fP9B"/$[+W^R2 o1W P2-\xX2Y_nԚĉӃ\&9H˗7$XzWWw\}.nT6 b)j5'i Ν]ܹ-L_?utSw͟?LӰa>6 h:urѥ[~'wСUAn׮4 cp^a)fUEGg4h҉JK+.??6$Ѥ|:U==|DKl&+1PNNv tkt zjvNWAARR3g`o\'N(#TsQ`7.7L6N\Ҥ)m79HɅ2z7n}5nK6GgJRSUVflУTS udN*REI::gEI11y,vuc86cPKjz̏Wzz&??6Q-/ ՛oQXXՌvvMY<үAdgjh[Lg=zy9jʔnu> jժ8<3H}x)""[/tPQQ[JTT>vHSYtMu]ԬE=^;$IZ:^W_Eo4F'oYn K/s4oѽn6Q2»l1M""rdOI)]wm믇+*6 Viz]7o_4햖a?M@Gs4{nQ[֟R™Qmy9ac[xFxdeROKZ_~~=i{j<'-'lGӷ)""[P`)׼{U=zBvY_gsӬYa5s1.zݻ3xqM[G*8K%Z>Ig[Ndyf߻7C?jrrС>rRx@**L*.ЬYazu~R!{Xmz,ZjbWq}}u%廉r9;E멧o$WWf 4w`veˎ~w#1==ue]EEڿ?Ced23KC;|Ѷ]uӳF ??U(1@[Xz~Ǝӵ6K}晽Vy :QIIڸG 9Ӝ™޽=uU UQaW^`uqo.+3jǎ;v{(qC뱡VƍdooWw,!sgWEE^]EWqqnM￧Yfn+Ɩ8֮ʶ9kVe?[Çwbc.mْsjmDtI]w# STKFKbc_`s_XXy[~K/ S^VEDdk}JH(PEIvHFӳ5edG.愮%'|r]Ӄlڱ#M3gh4)-X;wOoң/$}1MФv`U@Nzᅡ6ބ멧(7L?>x|7T2OZR9\M|rN |ez] ikמԦM,ϜizYmzڴ֮Ms͹/4G۽κ-'/rac]IVe-VZۭ;d4_iQ ڸ{><>GG;MAjkWw^xaUrs/|򱱹Ats ^weeˎc' u1gT+Yf8Ϟ=@thI=b{˖Ӄ꼺?˫C:gPzz8]|GG;͝;DԚ5ZGeoQ{S9DOo2IנAuuOѣGՉVex:BI`wիzn9v7 57nn7͙[VǶs7hBAѣ2m>UlĈ>C˺[]鞼xllcPkhz[7w]}u"77}wՅ\11>>oP`2.{Wvv?ݻ{@ך?SO@ |5mZOMS_ܩ>uMAyRS3-n {=-o_Fi[|2^|2^&32J]ꪀz%q5]#//G)Oi8|Ν$͞[ΝiuL}er qHp~toYU'Q%JO/9gRop]jU/8;+(ȣvkdvo_o]{mחi8f[}qή,k8ggr j UOkHstӠAUnjʞij{kΝ,$U]-lnO]PPQrubϔAP;T^nGjD](''; ^Çh? j;詧jݒÌ6lHnЌէo;vtY"_߶ RLL X8Q`1kE.N\eK m͓괄걱ZLAl&W_gDg3Pެr5zէ>]ða>K bXZj޽ڻ7C}-??]{mw_p>6^+ %I 7hF7:[5֐Sŋ㏉5>z!kyy_ʱZb_hm5Wmչpll1|Pjpc]˵V.ΏcccAMX. Uߥ9!=κYóYRTIIzÒSϛ7~}'vȑ5.g0nIޏk*w뭛UZjԉZ$Le(%H:֭;i޽=Ľ-ǎUݯ3hPz˺͵a~/${~{||k}\h8wgr IY ,m^cb'Nh߾jǯv\eѓq0gmݚ[Sx$$h͚xYu]ډS ]ԺA-'&}:םWի}emVrV]6m:լۿҪrUhhz˯\y\uR¹vqnd969!u,[v율~JKF[=ݹV $8zkX[ƍ\xo.}zY:)Unz884eJ7߫Wi5Mzp7NNvV=*$g9߯&"י Ұa>.}~=U0)::WrȪz b%@[`0H#RttL&Yd0^S/0~]:wvսч/עEZ(r"tz^x2`@;M/{,G٩RQ(99٩h34khڴy3C`A$iǎ4MQ.rwwPbb% OZ&έ2G=7XnM}x饗h4)1PO=G׵z]l6W3Ns_hXsխ ΍c$;iH_366=<jj $sP^JK+VAA[笠˗W=7k~8Gt{ M&Gwmf MJ* /׏?&J2?⮻zSqO"pqO"3Yӷ[Mnj9PSQxѓ9YKӟhA5/Lgk ^=YFO"撔TtdN,TaaڵsRn5Oc<81q 牀7Mν3pS!@HD!@HD@sSLLC}' `oQ uQ|)VRÇսz9sj &AvHFI'$~HռyC |dd٣I!%˭ 0jGggd{ۼkWw />*Ѥ3B4fó$Ikee~U~׏ɑ jw[ hGB"O͊_^<L!52K;EgAAAJK[n -Qn^=zx5¤Rc/)hm7n]2j7ѤrSՐ+lj2iL}4v Q^n34v{F Uo3U$5ǰ6VIIFY)]vu&f6gl6V_o1=t`PΝt=k-9x0K}#GU5iRMK>> 믇+5Xoq/ѪUqJM- Wή5Y|3Cd4JQ IDATsS||VD^֮=oWTTʌS^IG'} ]/kSɇީ=<k|_MCmaCO=el-Y2[&77 خ4>OiĈz饃ڲ%E'v+ dXiŊmݚRyz:ꢋ:hƌu^cZ*NGh4gOO= K]g٫޽=5ku}qvl-۲%EViLTQSg͜"//GٓK'IKdggu{fh MWaatW@@&ڹ3M+Wȑeeޠ=4ujn{˭9mY]iZ4Zed2_?o͚5v_ŋ:q@&{kXkl7Mt3M93T!!tAzٓ"8k֬.աCY*UϞzš6@HpVޝ'Bݺ*1P{f7h 7TY7()<<[+WjӦS1 :>|8K zZ6Q5W9ڰ!Y{d護FYs:uH:v,Ob*Ƚ!Y/BB^Z8J;wwG͡I˗-=CF9}ĉ+*L MW~~M{*+3*$[#FYֳ-`S]w}"#s7sv%$ޠ;X}rzС>ѦM+&{!}F͙[۶QBdiPQ4`9t:Z]{R`4,ma:^gŋBQ"'';99{۷w5njhIҠAվƍVTN *c;GdooPHHU`n{ʭ9]ccgMw %KY"u6efW/OMI11ӼynK/oR&[;;TPPKPPƍΝiJN.X?ְatTgiQ@HpmxJG{_\_ '-!1)P -!C|$QA[wRrH;A/ڵ1#r_YQ/x@kמԂZ|{.<>}(ZnZpzŬYa Mҥ5F.66OsD~~.=2 µjUvLƖ[snr￧iΜ2/ZtX_|q\ֲeU/Pff}vLfoOq]mX{ót:eoJI)ҧhP>YkUqq*,,-{*(C=l 4yrW Rrr嵏>VYQ3fIrq׼y瞧;tDA=n\GI`CÇn^}Pŏ>2̜b֮3b,5vryxWtz[4}zoGcHyh?*;;-i `#d٬׮==<+íNֵJ|}ձkU3""[&ef諯e5Q^I,U5iz6r>0JzіXYG8ՠrըQz&I4lݛ\n͵ ͕$=p_tSw1`~cُrrJ^<$]}uM[\oZuhcC,QgDIq\\ چql&ipqcL Wج*Oj󚽽Ak7Jc}{!{9ru:)Ե Q~~N(lKЗ^:hN:urգh̺nhSuH&N 1xv*ArpzʕcHI3+d>IpPn~'+VĪB7]:;{bź첪m շnIxPUPPޠr4{oʺ^*O'>Sc˭9 8k4~]]&ѤI桦&tx~**& ңӄ \ǵjc_ ׍FbchS-~DRj_=&%%ޠq"I! Uɗ$un>>ym,Qaazqr={2td|||!z0K~%Izyj0FGC٥:yPn4:]ki27&L䕖kWt5n/'*$$+7LGYuaC k;XԋX2k?$!!!ҊcG uduX%T ЮI\ۮ^>sս噷cӫVddݧFѾ2{6jcEES׮6=CI/Myc DgPT*/7پ`@O!{j(I-=4..?r"[gw 5k.Ӛ5ڴ)EQQ9ӪUqE/4LÇwhR}4t Qy^$!!ƀRIuxxԧy(qIIN*RNeiQѹwuA뱱rwwAy eZ \ <=շF՝w /]rkmWoR+#Dn!vZ&^'l_듴pa͝;X&uiR&[Iґ#92M5W9Cr ñͶޔ"0꒒̽` )sgWZT2NYSco YY8uÕ>{35g7>UۄFC?/2Ok:>z4G%<H||FSݐiooAG樬hӃQnn23KvdI҈uCEI>S9.>V26635ܚks.5s:$0G+99o롿rs˴kW>6KyQF2tEEz-YUÉzxU6~BBl6'ܕ>qo9U!]/:$&*::@Rg٫ O]ooO5 '#kR56)I[֞ ?9F~5IGNlLUT-;;C긶6Zm38:,T(::Wݺz{+e4qc6nL -ؔ)Wǵ}{@ul-[vLFI<ҷQ,.woםwR׮:x0K}#I6ڵkX6Vׯ&(Ls\]uk֬A3f4yj6̠ Nz>uXy{;*5j؟ʌzՃz衾*-5j-[vL..V'ݒ&&u?#QvNڷ/S}f[߬?-;TѹKǎ媴h^&O5kaz`uꮘ<}yN(_M'~8nկRSq)}]e☌W4ܚkە!zPX#;;ƌUFF֬SO>9в{TWQQQЪUqrt<u\_l6Y" fԣGX#Iz;֏DmAK:pjؘzj~zQz[^3衇{4x=nnZl~zoOE/<\y7y;O7UhQ poٻmC)""G#}Ú\Yw]꛰䪫O>9E",;:馛kV ҼyC4kVbb3{8ICiiD MK|pT7ƍ)oo'0\|kϞ =^gc^w]޽tH٭`/\yI͜bmْbU..zqGWwѪU?*͛7D;vNiɒq6̧Q֜>|8[NNvzw㏣і:5H3fX7vWhhlIѻFڄ7k'{d~D1gOǎں⻘LұcQffvuӈ6=cuέWAeQPA֣Us :jcoGst`ԭ.c3,Vڻ7Cqq*j ƬL,ed(0MC9|\;w)!@:j8:{#"xVA}x)$Ļ{FvбcrqqP߾^˦秤BkמTVV j#}f)22GEE p` 6oNQ||:vtQޞKidt|Ɩ[sn}[(!@]kРvu[>z4G(+D~~.]C)u\hc@HpAP=$8S kD!@׾:vt`0Ц( ,'@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@H(w饽h{&7J/*oo]{D˗Q7 ֑Ud(\sɓ9Z.v՘1%IYLqS$&ҥe45p@5\sA_VV.Io5t hg}dzcіV\g}Vڱcx! MPhhB6`nIҦM+R`h6۷oW\\\߯_?IRdd9"I `/,,LqqqrppP߾}/6t\pu{Qyyz%___2lӦMӐ!C( D-kҤIWsI|A]|6+ @k.I.;tڵklCuߧOS"//OFhԶm\H-ȑ#) D4/{{;yy9+;H&Sh/77'5irrrPnnӶ_EEEe*+hZA.{98)/k&LЄ l^O-C;,44T4z j={fϞ}AW.Ժo0F988XuҖ:|$iԨQB"W}С]dggPIIKׇ^JκѺun%(,,Ց#Zb֯TEE퉯Wj|u\aa }嗨Z+QG{$kB4gΟ>ۣ_\l_Z _i.R.Տ?Fh+x`nit$efjÆh-ZItjꪁ68(psDaԠACݻW2 1b3ꡇYS{[[j|Zx|}ݭ^wssEꢋkW~xm{ne~l?aBOMSEj+x}~;^|552"u`k׮x~pMd=ISu_nҰa3曇hȮTZZqΟ_tErp0PTTZ7꧟~RBB<<<4rHs=rrru=yyyog%''+((H]tn&,_\\͛7AW\qgiܹ֭^3Z}rss-H\~rttTTTe(w!ooFmTtWB~W8qB;v:+55U_"""=zhegfee)::ΐoV :qℼԣGzիѣGzjEEE`0h뮻={(==]C ޽{YuY_/1 IDAT}"##Ν;k*77WC є)SԻw&emmL74i$믿֦MyVC w}wStUWiʔ)u~7d_o6_x,֭[%GbxYUݾ}{kʕ WIIFoY:ujrnb~D1='YC:u*O:~m =zT1c+uhÆ 03mߐEFFָ?ݻ2>>z}07Oޤ-jѣ~gvmڳgd;vf̘e˖|_|Qsεy%3W*ˡ]v̴ڧOo͵ dYM:UVҴitWPIIikĉV m?.L$=oIwWVgG(55O>{ >MH7*yydfNkV/ث 'k` n5kCh^$<'ӆ іoիݔM$JSlHUEv)֯gWg;OrzɩXEN<jn0ْI #!;3;|iEXj+'zqŊ2`ʏ܎̾6bDK0^]݁F-|@5>7fMMG7@T`Ĭ6ٳ& o̤Zǘ\x0L1}t#:={`ݺu[uf3*|'raGVV~G|(**’%Kg$''|obb"Νz$%%aԨQK޾=c /,O+2k,̞=)))(**o F_:;;1|{Յ?O8|0v؁7x7tnww7Ν+ocΜ93g"##uVlٲ;wu]m>>d!׊0i 3mݻׯGff&/_9555+@qqSyD NPO ދO>JƩ믿ox|4⋸[}_۱euu5O?{iɓ'㮻B]]0rH{.> 6L|(((Nî] _=v܉xV^~>(oߎO?K. * w-[T*yf,XnAnj{n jZqW999ظqSubڴi+gyʔ)N@O? 6'&hlls珕yk2٩_fTg!6Vf}0gúu;=cGqA-[J²A7x6yA ~ 6R 33yyy>ذaSÆ K9l8;pw 7n7227nįkKbM _~%t:\@sZt).]L B/deeS8-[a[o Jxy _ ՟}b Q\3kı˗/bΝƦM\jRSSqww\in̙xw]>;wr1}%"th<&Pz ǎBRxWZ @Բ uuwozˠ3}<7 v_{hO|#L}EliiѣG`wL"5tgbɓj*!띶WW'իqgrtwl ===hiiq_O?jڧ5;O>$Q{dEEEa„ 2ӠMMMn?XvD;cu^V+}Yʕ+=Usq߂_O5u^ B.#mܯk[^@Ix9w]w nA.R GR\,ggg####f0׊tpT]]-Cu3X""'05`Sz gt6u'ަv_}Ag`L7m6~>qMǁ6܍}=irJlݺ6mV+W^yQQQ5k\wu~M7KK8-[`ZEy@iлyV[o 6հZ.ԼyuY^S(99Yn<uŋıu]s}e_yqwcdOw ZxÕV6My51HDsՋ.AVk@zz\'+˾FJ:Bɕ/LO)KMMy9slqGn?V׿m۶*Flٲ[loi4ۄ #jhh Li`ժUrm^FF.\iӦ,Y"*M2i$v6y"+]S1b\zH_ikWP&`0̟k3kÐ`ί?}|$;G;wiW^+9Lڳgf3 6VZQ4{sjڂ`x0 .i,œwz)#::}ȑ#剻KKK0nFA'#v^cj9zkmm{M_V+7 td޿;*..ƟgUsZzˎw;[}5}6V~nG 间r mw^<3{,!]wޑ޶s-ERL'f׮Jd?+)iƷߖ/_z9bbYbs61z{}%_ľP9nȉ ,RDgg'm۶.få^T^0 |B4gNNNBRsZGJ⡇6VMMMT*\ve'G uZFk.YF(psu7؆L:SNw'>CԳ~irqðpx̞=?T=FH9$k|29֬gb$\pA!vX`f/Ǿs@V{ΗB/L2w}7?W^;0oS%KƱ yfr)Xd 222plܸF(oy{E@\*k?\׊Th0w\\iiiسg~m 塲cڻw/F#Ə38o&N;4,Y 駟ewqsN9$bHC`׿GYK.9ju;/D-};|k.,_xb}(DbƌNt7cǎWr.L:Undz{cɣʕ+~bPY t}ihhk?..9*bǎ袒aiO>_=v؁oF.bç~ZhW:mʈ]˖-CGGq͛Xz5}'M7yMOO_kGG}$6w\K7oky"{g"..:O>$JeY8I&aڵ7o9W^yE^FP`x琙5)/;Zi2fddӄ6Vn&طozjSN9/2VZ~K+i: O=ۇ" 2R~zgq{S%IQX8 0~!FJET (/o-%0}?yp̞]$DF܅ Qs ľFؾmҳ{nl߾HOOq --ؾ#ٌ7Ejj* 0ydAj_|={YYY2e ."ڧPᅬG"&&cƌ/'lkk?f̝;W\qӃEEEg'/:,DGGch7߄^Ǹq|jw?7ߌW_}:\ҥKObymhطo4 1{l̞=ۯyMl6cÆ سgz= q饗bȑ'T:D"bH===ذa`…HOOwܵ^cѢEشi {ūo\CDD^{-Z&>oՃ>xkmm-jk>lGDD$рȑ#QUUw)--[o_| s9aU$66&M'""DDD%\:#""zAAOJODD Yp!8?駟P[[,?&M¯~+ى)S`cWO/J\31sf>3Sn~AA.xKQ A"py.7aBt((/oq2c޼x_O IDATEՆ a*tv0ep\}Taj{\@r0}\udO|N=H\b X#Y#x䑅Dл|S*m[96l(ڵW#?? W^9￿Յdfy qhldHDDDD d_<&d]Ĉ92En:j0fR)z&/DVVw8xN< \P;Vazh=ٱ&\ss/ ;vTM;g^MMn=|]Y'""""";Ea6& 'IBd ]:bؾ|""""ܔ}o_݀ODDDD4Ա)1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$"""""/I@4D@e%R#FDDDDD&d<0f #~-~;vDMKnFJJ~UVD<0=k4&Nz㞖/öF2z*EItQ4DpXV[2p,4t@V0jg PQ!~7>2y=hGjiog1H$:$Z (06m*A ,_. \u# !G7MMM7y1 | r%L~.8FD yD֭]wB! #Gw #,`E $j:$Ql_߯8GZFD""""ؾ'tvݗ7Njkj{G/Pyd0/~?< 6V^R;mm[ofz=PP\qxNK?vǓ}6t)y=YopX6?_6n@v6p)obbp18ɰaiZ-~=PTh4eof^F0m? g9jn8HM <|P _q/jkv_~ DFy^o>릧_-YQ!uǎ \> fcb3HH`5d?g7"_ӲKs((.-/~̜i?6oǛ#؇ȓ-V6lD;T^z^HyGZIDػW%MD!(,|dR\\+q gZIy3e2nJ/HI$rՏB|x0-Z$jm>Qp[soJ|u7Ck/gE׫csQ]Lh%|tV+IDAOE[qΝ_/15Uj>-s9b~b?J)5H (geC<# BQQmԩM D܍v&O9j~,]*֍5~(kĔ# ng ,jw7?q_DEDw4 4=>=ẗyKKv.5Ww-j-ˁ?>{ϯJӺ^5|]G\Z^(Ǘ_o ՉZ ɛK+˟x [Sc| >_@I/5 b6ND@syId@RjbI(jלo_(K4s׿[kɑ#"ۛw=`Q&N?]4_b{Aj 뵶&L~+#GDs?83 |y@s@Vk޷шI~ooV*q=H:))"͂I Qx8>t2ϣ_:R+Yx1{MhTh4dʯ$Gs65o碩IvwukH*{5G ק/緯`;{/i VVfÎmO~ocNJkl8>+{yQi4rdϜpU<%wtI)*„['E1ymrҢ _K.5 ffYݗov1)IԼH0^|1t['DB<{?PǏ^z^Sg{g\D{[j)DE@nslo% / 9_%1^ 7*@h)D@C6(ytŹR` ~WTdQ[d(Jw" Yo7 2oi髕+]kfͲ*FoR ǖ'Ms R_0BV~s186 }A"Qx5h?d9IDaXٿB{' ؾx!Q#puB~;>‚#/Tх`Q x$+;wx]h؏Ofp}Æ ۷$*kAw_:[XJX,oo\{PòetE A8@wa3tW_υTKw뭢Ɲ_߃I@r/󔖾3ߥڳٳ2lIOJv%- BV9>zҀ^q_$ #8]aMn D>M[,Qv 0JHYg-jY_ 9e8~ǁ~KQlmM.P4==R{DԱc.\}tU;z'_,)SDZ7Ӧ>RP)G\8 ξ4z~طOܝ >Б~Q 6=>˽S|'%efڛz $QHDEB9bm'Q_zIJ_SpmuN@֗>os\1H=[4C~&{cE?np.,J>Ofuy_V:_'0Ac)Zę3yD(7%RSP 8쫌 1=?5kH|);55ཟςI@r/r}/ʓ^+ʴr%=* }A"E0+yN(wfM'M#~Ab_Mܱ_T v}i֕3b'w߉yb};E9mG8 j&qZsꢋD?oR( 0wgHݻEV;6tp7XEs af1yWy/eebZoܝ wש+*<_y2kg jH |曢Fpd1w_E@"sw9r;iR 㮪ԬTɢ0bh^oW.+WBG t/+v۶YF3ix(HM_snRte ow%Fg]h=i6Y\cYyB\lPN^|"5 yd#=JJ|,M̓Ot~}Ǧ~8 }$~.\<"#~rHJ@P ^6؂~- /R>#GG=Q[D NB^}/oۂ;64MƫgqV{mc`?lsVQ}J%͙#&wg{j?9G+1Թ;b+hǚD}*&؃GsuIO_pC.mmq 4@ǫڛBi@#3 Z 3'<偖{t'}A"Ih bƮ.Q{Эbu];׺I57Ưj/KKŀ6xn1*F#F2ϥV+j$'  ^Lwp}) (N;z4:C8ӡ?_H EQG#|b~[QoksΟ?T`#37{`1yzk6nlQN~N>z (@Ht2ECǎx75f;R J,kFF^xAԼ]t(n"]~S)X x VN4_sߡ@OO}2V5ӦeD`׋ڶukzH4gŢ6G4%Gb$P@4o{ 1/#bTótv?,jDT*Q˻yد%K9p@4XD3?wA1Fz߻1ۏ?7m'ý\wgk!9YFudъxaQ=T߶?c4zJO(Dq-yS0 ^6 DE(94wn֮iVS#r⡇ wZڛA‡A" ct:[LBԤ=(L~R,_.KoksoR~:/_.̀>|8wk!ॗիCzQQ/q̙"mnQnunΗ+--Դs$Q(7O4d+x{Nd1j(:$qOAb8ӡ?x.!AbKo_,׮ct@Λ'xQ=5u'VMk?/EMo H@P`eMI_ sC䱟~r%^^}5Qۘ t2[ك>:33}KAwVUͷ܍jMo9 V'}3?km6ˁ/$!$^d+ ᯾*ED,(QQ""8p `T[+#[~7 2b<` 1H$"AE"6VI$,PE /ytw۷/gz8p *^Rjb BOftgh8Qxߺ)]Dpy∈A"`W={#IC'N1O4\y{NШf1x:eˈNPh }A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""$"t+,9c¶u~hT|Q$&ƣ`$3&46 !!cl6 `„>鳌Tdd2S0T e$9lZ-P*Uh0ZmDggL&3"##Fzz T*ewFIcDGJAN׍v ( ## *C #(LfCf":: ))IHH Yxhi4]hkh;##k7T,=::11jAjBFjjb 䚫vkFNNyjkN-݊CjjRՍN@T"66)t3-$''xHK1ݍFZ[mjETTjByN947C؃η:&fE>-T*|&y'l6u[*JQgX,Vł}YthmhDDsu{l **iiNv ::40̈DBBҒ3 A"Q?1MhiiN BZt ju(+t;CUU=#33M[}}GzhkO?%}1رj*in1iXTUգ#zvthQVV!%uuMHKKFAHWj.4b„|Ƅu%MMmkİaHN IDATNDikZ6"###^Lf9RB3Ϝ*9 Lbuڶ{F$G&<pH9`ƌnISLpQ]]4t0v(DEE $P[i4]^=;Xmmm#Ҏvј2e1Myy0uDVCyy ﯮ1bXXUUuho 77Mjjz]iѹ>55-r>?ɨEcct?og0בN~ JJA9Ќ#!;;%%и|Ԕ  3 A"Q?0LbA\\>cHy0iPXENN7ӎ}d Yj:Sٗj.v.)))%caXAv,$K3<6ϡ~S=,$$}S6PlmT|FyҳsTJ%d'lw>&}һ1c|Jx11j(Je%퇷NJJ|S6qgҒٌ{#99Q9w}$D-]{Q5={R%nπ$Aף^-B-r?oB W.))`ľDGG;#"b<]=Fiit;)3}o?)?8{(X(HJV 41m8xDee-f ::4LLaԐ\6Mnػ/5mk'| C ȏ^kk :;;T*!qq1n-sIJoh=5tw¸ɞ U/ۻ@u.{YP}Ӷrtִ e:1zmjT$mmh`X`0 M5*)gJ573m<[!bHSASS3, wrSEJbbK#Wc*N_)Mt粯Cku:ۏs7ohdrH kOq {P U*ddGhiiGSS+, Abb|j:րREO}^oπ?Dp"ͨoJȑ#1lذ! :z}mmNe來Ajur3Alv;06x e0K*NxK/Y_H,#""7~C/^rۿJμyw4ojjŮ]q8t=(l64.h4].S /o8N;m lt>kHaNplπ?D Ԡ cP IlZpQTx P(ɠw7y,<3iu3 S]]#(*:ҁI!d2d2BRrÇA1ՍK\n,9 c2wPqX,hk됛Ìҩ_J 뛜ňhmmbő#G5F#:`NX_MQVcǪ܊8Fh4]C8''ip`뛺 ̓p$22hnnGBBFJ,""G碬z#1111hO!qdd M=,#Պ7R8tth]'!!Z ՆN-:;HMMVsi5rsQ]] ;DEE[S(#G l:Tф#HNNBLL4VZ0==iʒ`PjҨP(p<#5UޮfCttƍ~m=?FI >D iH ݞ  q?U1}%$QQMirr"ZZa2QYY 7.ee0Mhkp(0n(45BA f)/f`&#RnddƌCggK(ۀ2)={{,( TW7h4Zfd"//'dy t VnmѣGf<( ddLvLJ5 FСrT^G~ g@0(q3-5km  6NؾAn6 Ztu`6:))^kU;:jAytn(JĨRݻh4!?DPRٌ֎(乨.t&i֟\UUF$$aҤX,hmDw6 juRRBb]]zX,DFF >> }֊ =ho`B@lɈ-[8ɄH$''d2Sn8I`3Z 7łv zzz`4Z-(2 KJiՊvf)::ʩ@: &1H$b8&}pi|BwHD/T/̈5DtIDDChG,5sDtraD:Lh4jee|:P0 {!_DlR-[J'QoΉhh 0#`sS":alb i>ERՠ~hXq;&Q(&N$epFnn6hD bM"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $o㣪'}/}uAi "OEkUY[[Ukkjm>RQRGʢ@ Mf>#md̐@>K23wܹ{ϹD@JdtC:|~VUVLdy^S"I}9=VIIZZZ5t Ru#GjT]]Lƍ2].>@ߕxhjjQe1:`̙e2Z&*EmsAMM~~_.;Ϸ@@rPWנJ5LC󁀿]t)))1.rmry-rG'7늓sW*߮HdWU!@3^QQ)קL.=$^NWOjא!=zIXX.o=F}M~_ 8q22,JH0 $8mtyС#|JIIVAA.;4xt:ZŒΛXX.G{3 Tb9&s=<&éVY8%$$ !8|5O'ͲZr=JJJTzz $~@6]v{<񹂂\N,IiܢznHQNK&IK e6'tt+559zckjcZ>_MM-ڮ80j!%٬ejĪ=VZZZ22,cNy<^Im6[Lʈh[er4*))1nZ[t昖WO:q5š@df+3q!Rkqr8\2qoTSSN\N'c["9悿ng=ٚz\h׾8W7I^(uQ6[<iQ~~ pN.S@@ X,*((PRRҀ7~_WZee&O.RzzZkMM-:p`:tTF ӠAT\\*I:Ruu]竪5iXz\. ZZM:^jرg0R5u+.."x}?kִaEtNtQ 6H#GbQ:t*d1cF*//ѣ5vh544*11Q3-`SVvHuu 4va_0pi֬]TUUN5kj˫eg5 y?rF9;/!5ڴcƐ8pH~_ii4ô#GzURRf:tTyy9>tHM 󔚚b}b=|Z[:$FZWV:!é2\nYgMdRAA rrteѨQ^V# fi55V6$99IYYjllV}Ӑ`74(rd2iܸQ&z}ڿBv{ly^^ˍC5??GUUղZm5jX' 1ʤk3#GPSS ؖs99m;,)%=c.㵯U--M:^z)33-sB[Z5j-m~OẄ́DK  t.SIIF@Ϗ|= H23-NA(힘c q?~f~Y,>oH=ZVfL2lNЈ;@6kjF%,L:t#nGSֵVcرB;--UcƴM챉ÇJjE91 Hzf zm[g2J-Nʝ< dfD&LmܷӣXbu5Yssk'mxq^^N.[fs͝od3ؖ:Ns$eeeöS;Ķm!@ <X<>Ljv o0ͤ$c҂C7E:ѣw پ1ޛ 9N'm Ny0aL=Uձʺ98Jf= R‰pBd04pz]^]ml6zBC߇XkzzQ_N,m}Wu3)::]S#Wܩp C?? 0 xzx<ɔ"%0MJJ cc-h{a`ݾGҲ6@{_))I]5(dc[8 re5?5~Þ '^6t(a߇Xkbbz`r0Q0X8|5Sv7En'Gg,99G8. >CDaars`jWcc|>Nֱc5=zI|f5!=Zvm>645hP|>"ݯ(HFvx>v]چi:NY6Y,ijiq?Mp^ZZ,4bIREEUT/|@ X2VUVVZ#Gd)5%++әRpb~LKϹھ}O{b'D 31KKCuu Syy2N6&coEp\ZZJL3rw24hPVwU^=mS)) #C^a#G5z,g93С6lpH`OD#@>W`@ z B+%%E# RvHlk8n"D+QݕgSSq}ߏ_8ŒQ3'vH=M[>$'N]߿ ~Ď nU}}[> k]^^8))߇h58۬RK(H&y ĜL5a{bc-}q s@Hé2Y ]{߂OSqqJJ*f2FAW~n-;$L&t9{JJ1ɺqxCg `P TWvyѣ5ZvNNۃe~S^]m5zĺd>v]RVd2=qЉF煕XnK_s\~ %%E&ɘ޻=#ۭdb򲍫%%!Ó~0fm;y5no i<uh, g$JyHuu]355Fc8ṱPXg8p0EY.'҉(Uz}䓲Y<^秪rr2#O5USc 7~_&IC߇hֵ}n[1!v{SHסCG>#Vc.8?>ݻ{wqD`=f233بG)77GfYnKu /`GE7n; é]?"'f 7nTX\ȑCT_ ϯ2f+--Un[VM~!==5MF?> ۣݻ55X r{?f'D3BԞ=(++Sii)jiqY~_ muċ"pnɤ<=Wp *yސJIIرgt:-''Kuu x:xntlֱc!ߛqFnoUH NۣDrsMyefZ4dHJKýi&I#F C뚚b\,JL4+'w둓#Z[:tH5~hegg^F$V1hS\ ~Ό8͛7Y<0\n\mN$''+555izA2;w>fkRss^ܬ>R'ǵ*!!AiicvHnGEE#cپ}MpJn(%۫DRSSCڣ_/l6|JJJTFE99flMb % RC]N[&I yjyMc;,3޿Ѭ=š 4fLttfk4f<O{Z#ܝOmprѓFHl###=æ@?].[Ṫ4-@?u/mviPl5B"jmԑ#ƿ-4-{oʎ@G`zy?,1䔽tDsSg'ɞmqi @HD!@HD!@HD!@Hʕ+5f̘^WVV&I3VRRŽv֬YU9ٳ(ﺺ~4O2;]\{3f|Iv)sDvNwW\1A-gԤ^H|>?=;c;Nv|v[^^w@RfcǎBv!D }Ok׮՝wީ'xutiǎ1kV-; Ԅ 4a„N_odg=~ڽ{w˚5kWO1>vZ9uDkV6-&˪mݦ /PG /1GO" ߯ÇkJMMeHz뭷n:UUU@ӦMҥKeX:fߗ65!!ZԖ-[$I_|;zfڵKeeeVQQ-Zcd{o߮kJNN֬Yt7+##C%%%*//WQQƏlڴIɉz|mssm&I˔|RʣXUQQ9R-~f=fرC6M:`eggG.:4j(M4IVU?v)áckѬY<>L&̙@ ^zIo&N￿2sz%IW^yO6mڤ 6L]w."^uUuu .@]wL&Sr~z۪֐!C4m4-^XYYYQHʼn,I?/СC*((uM7ִ[ʔ3fo>ۧ_|Q%%%JKKy睧oQze4sL©*H޽{UUUjImImذAIII={v$f"=:αsA :Tgy /hjllԌ3pB7F zd0vNg L#DօCצMtws}\^ߠAz睻FJ-YDVHӦM6AGFqrt-O$K/oe?vkjj/|A^]wݥEo[_~6nE{OK,1fCn/++K=կF\{[/o]wݥ!6l6l`A+_J=YYYZb~_k֭~m~=#>fk;uV˺k®іGo7߬+V@QדHcu֗u4\~z=ӏ㐑,~ u9dihD~#۵c-X@sQzz^uYFǎӍ7ި={> V4n8YV/'|zH3fе^߯/X2Z`=\v^Z뮻}vIҧ>~U ;qx}g4=\͛7Oyyy:z^}U駟֙gq]gyF_׎_Z&MҮ]oV^{֭[*}k.-[LCg\*mܸQUUUzxpcO5qDuY\ [?Pw4k,Wl6~꥗^҇~kVW]uZ[[Oj߾}??!;v賟ZZZkFSNUii^{5;vLvu?~k;w233a֑#Gt 7^tMz饗$Igq̙k۶mڼy^O~_)Sh޼y͛yf͛7@4ћ=gh*--Ռ3telC,Iu?uWu4\׿$I{難H_ה;wjjmm5n[v No$IObcc:,+ГxO<;S{x?v%EדSnn>59眣{ꫯGvԧ?iڵKcƌѺu:\mjj_]vfuړX$v|xVFF<.]{G]vmۦy74^'Y]]qƩY3goaÆ몫RyyFҐ~{|AG?2ga\?-I?Cxgu\'FcƌQkknXCy~wg=Ձh#-I .rh+Iw͹hڟW%Ol6[n/HgOǞD&ڹ;dZu뭷3 CNL{,|O{G ,0Nڑ/]v)++K6m Γ~s=7xGyTTTb(''PEA0b 577d2iժU! I&驧2Z㭷! JRvv֬Ycܗ.s@@cǎK/Q#9; }g>cӧ[Vz͛7htM}bŊ I?,FU8Cߒtml{Gg]Fwu qzmݏǹhsHҼySOuRp~d\@VZ^xABى۠ 荼/yfI9PC!w9߫!C w}:lH{o.'@ꙵԁh#aI4u?綾 &C$VwqD@RYY릛nҗ%=C㺚{ײeT__ɓ'kܹZd.䒨&YFVU)))[|_pH!1q"áRڵK7n_򗓲FggΜN'Ifff.d uhm'FҎٹs$_r . $x@;w֭[!,]T ,ڵkvZm޼Yv]?\o;ܿѓP'ڻwp NqqVXcH|Wjk2eHGyx^]wuzWmIm=ɪ^?&;{nu:My8e=wݏu4\{Ukk$iԩa-B"Ѝ[Gу>Itرn_ҥKtR~ڵK//_Fy睺K tezʕŅ^ʕ+~U8+{Ǎb͞=[/cx֋7O|֟աCMū<⹿YOR_p{^{/2#`@۱c~~+336%zff֬YꅮzQ:\i˖-ڲejjj#:K=٣$y<crx<vwWyc8 W򊤶f~_w:*^h3ؘmޱcGC\ssq3_}$Cp{z{ァ5k/E8enR[Xpr𹫝 {#;/E WI<3 *((?y) $]:unV-^X_%]i#~^@~(Ç;}C|^~ύ9hH;<,99jIaduU~= NJ|rc(>g=K}UGѾ''|WCAH+B˗/o…|;Z|=\vVo.g\lYωZ|q6|ٟgAuuu;w>ń͚5Syg,.5ө{Wk׮5\t%I7xc,;v0QPTT+V 9jkk}N2Âqqz IDAT 4f-Z(dWcc,;W"w}$AzFVM&V/^l̤p*{բ)X΂u߯JC6mҦM/~Q[n0<0hڲe*++5m4͟?_'NҶmSx4OS^ZMMM+`M2EҚ5kt:ugkΝ:u222(8Ǘe^Zӹ瞫%K(''GUVV3fh׮]ԏ~#-Zݏz詧Ғ%KT\\>[_~&Lݻw뭷ޒPJJVXѫg 4Hv]7rJ]p:r6ol4^{%%%iʕ+T\\)Sy'ݮW^yE2LZj^cΜ9si˖-8q.R :T۶mΝ;/OO}J{yk2e.reeei˖-ڹs/^^zI>x(hwo~_)''x}VkYŋd2V]]]g#5a=/رWfY7裏2u⢋.҆ t-Lov!v#F/ˈ{Q/O+##CTWW_~E_|Q6m8$J?"}PEE?]o?wvϟ?_/jkku=CW= GO[}YGqԩٳg$:&I/?Aqr9~> ~Xp:[`yd~ܖW ;uw߯kj׮]֐!CtW5tQ֭Syy9+b]Zz7ciZ`4bUUU駟W՘\m߾4QZZ7|SWBBO )|V\)٬ƐxgSSx رCv]:uW\u}ݧ~X]ty566_ݻvUTT vkƍzweZ5bM8Q7zrKׁvZ+11QӦMӵ^]UU͛7_5o<}3QEE^?Cްa6n(˥"}>i'۩XG;/~QnV-_\---z{nBׂ z|f+O&2 $qBnĈ]vlp 1ќ9sXUU$1+78k,.;C ``җTkܹںuZ[[بwyGg֖-[^c~` {Xe'&'Z&+SLѪUd[z뭷Baz'g NZ !ݻh#ti̙T8nѢE _***z5|p]r%5n8vznk̙?>;15@c'ܓ $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"D@{Y=&b(EIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Berkeley_page_0.png000066400000000000000000001472561420322575300275360ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|TULItB tB( e]uwuum?t- Xpѵ׵|uEņTA  $!I2c6 $I|=<[9s }. ]gO:$$DA" @ H$DA" @ H$DA" @ H$DDA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" @ H$DA" @ H$DA" @ H$ DA" @ H$DA" @ H$DA" @ H$)W77wR 񒷷 DBc4iR @ H$DA" @ H$DA" @ H$]k{#?>tMggw_sO_ye=7J3f=_{m܌2-͚.E ֭˖$iD~[$I$d:.}|\~+&[7WuM55VJocG [uk~9yF,惩i,=묵kWf~H׾}ElAb[j`UV7w76-R&ڕ7S(IzӴp.o3~jq8pqGzFKvDLǔ_ٳuu Mz?>TFmۖ'ة2JtR}}y.dC>{PY+(-\KWp e|;hVӒ0=S.|zj"^ӦE59jՓOR\.W{٤nZ/ժW_n}+)#\_V)IyEG_s\sJ'ۗqc/ޫ-[Z=Osbbf矧(9X˖{7Сf,{um!C5|xfުT*:+){5:4LHjԩ2%t{ )I[ySb$}}~%[Wg?;/Z=4Dwoz`J)>އ)'5M"٢jjj&Mv8Zm9eeպ5z䑭sӬYCtTMU=]Gzx4"C**jJ&ZIM-d$)JI)y뭘o]k3e2#׿Y-`ywSi߶w壟~ʤpJNӃʮ]:rTf%(A-\8Rx ~Zh gZ_m**҈6oQvvgF$ߤˏQ8%yhX#[S#r9*+{7_ao mڔߞry(?Rwݵn6[4xfު'˧"OOW͝]YY<N0rN5»dT~uSRRrs+;epO{w,?._&Q{ڛvEhҤ0J1t=ܙ/)PII?5ڶ-K`TwA" @hVw\Kco׿UuThU7] ꫩڽ$׭KK/Νz}MN릒*-YbŠ^|t̙w&HAb[Y,VߌFFC7kŊcu`RAu=mږ Nbl^xa֬9W6LGMر{4 %K뭷&Jݵh]{b>;R>;Z#F3A4`3ק kժs5s@ ҂#4dH.,IK+d{dgۖwޙk~t}d%$kiZ<͛7!hmiO>9R^^.1']ܹôsg--Azű2;wnƎ Wٳj͚EW\FiiZd'~嗯SOWkڴ(-Yzu,i{^^_TZZF_z$).G;H/W3f*iwWK/5*UB57]<]+WfСI_ՅE5sx^I҄ JI3_k_fd;/JW_VIIsɓuH܌9RbT)#\))*+VnnRRJAgآfA=zxj&b7i۶>2 Ŝ^^>(ԵU^)WW>tٵ@Gj֬De0H] Gը?-Z4ơGPժ&nnFL N6=I:5BSF8|g6[tj|}JN.VH> YLJk6XVaYmӣe|s&Mꡢ"[NŪG٪+QYY|}si":TMrۓ^0Wꮻ6J,֥T`IsnwoiT0en4(OO]Bbc Lo2`ReE[o˗ORG:Lۯ|}ݔTJepO{wl:5th*+-ڹ3)3}k΢Ec4iR@M-kISRJ~",C=Z$;(9>6a- /)>D}UUmޜҾ@ *5L?G } (UT衇4+((&[EEf; mݻ p H8Qkۓd25܄Y;eZ,yx,Abp 7m𛿿M^WW7Jؖ"٢jjj&Mv F(AWgِ;tc\Jk8Ij/RIRjjL&> Y%%iLPJJ AkuY1"X.IFSDh׮tM ->)l*.Ҵi;6T7ܰNmh#GJ5kVm c#Cuk(5X.Kf8<3ZLJ$lhz,n:+BnnF}!|),4k<}**RPIՎu>V=H\yʪMQQScl!!`Xf[ #G~i 﫨(/%%*+C奞=}t@Q4_nJJ*TnnSɢEc4iRSl˚59sG7p~&Ntk{׮hJN.e)-fv̧0DA" @ H$DA" @ HR$\L&;t2-$WITRRM //Wj22ʝVyi?+B55VHsѠ=:Ç;<Ϝ9HӧGI}t*w7ݽHޮͭ9 ĦL8F++iqn}ّ&]qEV< ]ye/}}sڽHQbt)G袋btQk={gO]ziO>Y,V:@W=<\TYiѯ6uM 4>>rqUls%OOW(-8)˫o_7$=gkXRR߯{~R^^%SbٲM2NCB23jPx.wFn1AnnF2:@Wk/h*>)ZFMV0۳PW^ino޴yso3 &i֬-$N W@#-_~LO\\ h җ_ʕ8{!t%Z:w+Xm Ǝ %Q4)԰0]zip矧;Y"m@몌 ڇh ѠobRSK]6 QxKn3QF<%٢ԲN{Ojj]5*DޮSw_O=S媘oT^^ vw~~nR@m?23+SqBB[nD""d4J-o|2œYv;֭y6,~fl0*m֊Rx\\ ̬hOzUPthnv:|lC飐w(= sXaҖ6=7B&̭:ݕ[#jnn*+ [BgFqbjcZxo޵ 0t9 rl]TT?OGjv,?); ىO:eo_?4~|qUOܡʪЋ/у$]vYO}mvu$&4ztL&}(׷ߦ7y;P2b?*!O҆ dmؐ9=ebtUB~^?͚ee';Xlobu1lz㍉wgܤ|I/f}}ݶuᒤ^ۯu1XIOݻ 4eJnqÇKs0澺Xݱ#_.]xRfg5ы/і-7瞁:4P쳻sgSmy:(8^[O7ߤjY)Z,VUU5k~ Ն&'jٲ4{-qq14:nk{Ui"ۓ4vlhFM'$y1cBgg+z58I3^[}v&N kr9=zxhȐ@ (//W%&jɒqQg >XN?GlnƌZt;|h<{Ξv_'??S;1У~{x`m zű7oxӜH5zњ3ghQ3όm}=zxt޲[?=-ؿr_T+Z<=IhΊzkO[oMN_7vFmOW__S+!-$)2K|p.gؿ{l}vt3uzg䩴Z{jҤP5ۤJ}h{j"//J Qu-}j޽WwMid2j5v]?bD-c?imۖ{ C =h͚ぁ&=wXՖgm?w.Ԗ-Q|ÍOG7|mf2]JY,RMEz(+B4bDPMJ7nV\\F ?g7bѣCqmqQ;3&Dx^umt x_U /[u06hኍA>8D7樸5`w:T{VhpAי ctQ=7ƏϏhPhƍ ʕ-7[Jn/O?-11!@\&S>7Gh‘snX'gahP{5Iz] M/44`f֔ӣt?Gwa?[sgkf#(+VӊW>ε_X>S2`ѫWݓ㛆H>Ŕ)˫}mvhn)\=I|}ݔ^37<úo_?4ut2~&٢9sjrǀ-\CٷqڴHg9'p榡F||dZcG WҕW++RߑhÆl 蔗hժL 3d21^Eשz=^-Yp߿as?=7qny}hnq= 49\6&*K=u۫_??{+F/%石ҹ#%'ۃٳun)ބp߾"=vаiSxW!CGM`׭Gn4-*30 ]e`~7e}`uV롇9y,8[m>3hld2*6[S7'骫UUY[]Ox}vDG:|ZOeeu|n:|:;];tdtN$æM9:pX~~nɩPii{Yڿ ġ+5L*/V^=Xmc:Ψ=6l}eqy749I~Y/G?(d4O<;^6wd{G GvTUY4D СAҞ#mWP^}iSvȷ?hÆl8 }ٲ;8t+m)cƄ*2K)ol6>fNlv}y,8[m%;i揭鐫:-*?7M+&[ysnCwUTС+ucGAdS}))ۦ롲j͙3Td߾~ڷi>]y+uHIWYYRV [۽! ~ 6l7-kFP84}J'g[uSU[{N?]a7N9t^,Wy>^O;֭yz=dԈ1"X7ݔ -[^ס_4e 1M!IѰj|ƪJ{ּwt-}uэMV?%-]__z_Ұ:Xpֲ{2Ϊ+ԍfW9x:TAД%969jLKws;{v35yr 0xh>;BܳUYSOҘ1!uSp{|{nivTkMl5;B{>\yNRٵX_ ZvO-AWO:>FCׯKq HIr㛔Ti'wg]ou@ou@^^6,HG3#m22KsӵcVzX}m6omvto@.wce d}F6Dnm>ln>{ԍ'Z S癋Aaaj~^۳.5ws"8akw(+Yz=WgMq[오~G k [kLC_?['o.\~y/˗ӦM9Ngچ8(zjNj&d2*&[7ܷyvۮÃգ239'NnK>uܙbzܡ#mcM}vxA{Q^'X e]nlot<77C7X=覜~tOQcb5|xPK;OJId2ꪫ[k{zzSzK{K{s"[R5KI)k1wܙopu5誫z5;.UNQ~SVS8#ֽzu]$$i̘f^j>JE׬[Irhp]קKyE8f7&8S[]Ww$C& )S"??Mj_sO;ehРfz{||:pl.ӰaAd=`{7faSv%if{;~{j}uk} r5Ct1'X̲DAeϏjСAbD4gP6gZe|t|A"nҵaCG顇o_?{ F/׭Ү]]~ٸ1ۜɺxǞcF;wk߾V=Vw8[j{d2߃qu5hԨ`xK$);zM|Z6Վ%wo*+mw΃ݵpHw\] _>;ZO>9͡x]=ջS#O85cFo-^zъ;~L^zX8u~v5n\zk&L\\ JHӬYCb;I=ViΜmZxd0LbjmxWb=n;V_߯[o_㪙3j́ HUGO;!V?>/5ZxM2־־2-rs36hlY{/CDrݮB~$iP}TZj}:({socPzzYc"=N͞(Ѡh/-\8Rk'#KU^^\ccve7#\&(%Tޮuz]n:hLmڔcsP}TlQdd]wiڲ%O=4ik͚L_/0ƞץ77:PWw8'$hJrZ]ڻfynqf8-Xm/kjT]w:9rxrR{ܷH7޸AG &cXVV_ܣc LJkc0}b&ٚ}/z}4=:ƶZos{PP@@]O@;XȲwaUD TXJO/Sjj~ð]СA(Ml{7kŊr,tT=pw^Zz]cW7vC5qbbcJ%%Sicz(!OAA&U-_~a{wG??F':ǵ=A"A"A"tw 3񗿬v @ؑx'o_?-X0B9kK7}bIIuM H9xXvUϞ>ׯ^AnܸU2B5d55V^m{`^zi??A^za:hI/~ Tk>n|[ḲS?(8ؿ3fY>U種X:BJKyrVai3mwF<5p׀X,rUA-x;p (/efe΢JIIEA}^{,o׺zIx2tj/ҹҪTp2uV]TYYoߠOVf$ c dRZZlCcX7-SAA-ZuZl; 4ƅJ6l֑#&5:mbb`es86ĵ=3WW[i3*URRÃysVzAZ"C>>n3&DVe{;j{H=R^Y4`=ֶ75l;ٶ$ŠCiieGLJ46,)7elhL,Waa r${jPUW[iS!: PAY/;qq>JL T\"#TP`Vff~RRJͨQ%I?-u{Wmj,ڻd2j`Y<6ώԤI=tH^}5uj 𗏏 lNZfoM(/WoIS^^eiI{UsSi"է<<\Q보iSК2T':<kOv1֜J/ɨNQ쮜J}|uّVUE?;ž))#;mOڣ 9f#U26jT=wi* cCj܌ڵ@hu⡲jyxlѺu**Oee2 :xX}iݺ,{?jݺ,eeUO`iiں5ewWѤIaN-kdjMQ'oLTbb*5mO>9Ct%+^#I:Speժs }Ǔ%IӦJCu {J-(0묳_|ْkY3z#̓[;EzM&fJG7i*}y,Qv.g鲳+tVmSc˩je3gc_խlKz{˫|,ء+3MG΋j[ii}t*^Æ嗓7^}$i„eTt+ڰ3+쥿CGoCmQVVEdSyԞ4ԚiOv1R`JL c WTWerѢws Eرr]x ˩fwݵQg9~udXu?>>֯҂#װSKj68&:>yon1e5u|,HޞH]XYl9=帹zh4Okpܕw)6[]ק=:Ϗĉqm-[~ӷڃ) $77 vmLt\|:zT>>*(0F9^@/vر2Դl;ټ9G rWL_رr*3nqT ˍٰ!G:Ҿ}Eڼ9Wi5+Qkժ mؐ ې8SD(8]_}Nwhݺ,U)$CgXo]rI(nbzjLsJK5~|=7JZ`DnڒW_ .VUEG*))j֬!l-=~)Ko_?MC&-\8RmҺuȏ>: IDATLӦ.22ʵaC*5thF ւ#_Qf$IJI)պuYɩ:p ŋ+VL=i5XGe颲jXbEG{ip$駟tE1TtqD=@}|8jTZ}t饱rwwѦM9ڱ#_7.Taa5gFcDݱ#_|pHƅ(>W))'o-ucDDAyG:5k.8ViosrlQz䑡JN.=i׎^bm)Rm TUXήlbӦ\pC$6$6і-7.T&9m}wi]tmۖgSOrTtM H6h/j_{+5th&M kkzwڿT9R[o޽}km:v[?Xޥlǻ3g$W{\^xa"#ÉV؛? `׮ԬY[]]tQ~8ތ#EEy;HNx-9'J?>\zhh-]zMeQg򾣶<F&OO:T{0>Iz=:DwٻA]DRw1 4)5LW},>YZf~ш,2]pM\057T }}f~Lsd`Aޯ9gι9soވ!3 YRB,o_ܹ%sϞsHhB(<EsCj%-q{o_jvX״۞>O?'tCHJ*Uyk”Qq3g/J~ik{mCҞ9̘DO+Wrf%5H̄,a31?Snm +Z(ǩArއkmXk_nn(+BQQ%lYUѣg$'%hMmۚn>s i<m`e%R ,\yFF1-@՟' ;xP6|%~9l UX0^Xt]\ץAՐ4zRTט)Wt` Bx|9.GIر&%%U|9WxgO=`y]8R|Q]sf[">^ǻ?k1MCW47TIT~ ﷵs$Ҟ$Q%+pZ_AU6 ΩD{{)||5KriIjoe7[%2$CDߥiIS!HdthW׮=>Koz9Cm[t d 0S)vcI'Ssc_cԃngun]!4azY>.T(,ÚC½ʐ~u]UBQ%Gc^Ӎ]n!yk{EC~Luݫc 6EDhRiOb&…l [IPXX)45ӋY-T%&B^ƨ &Q sicΝп+y\z?S*#uRNJ796hZյ0DBBn(FYYPb*@:Y5 .I'Ssc_cڵMtn#Z{w'6xS[ǚW}F ?e\5޻WZǶtd$h4~cI'Ssc_c==Ww3ȚFo(ƽ{h } 9P|9Whu1dHK R3hLS{uժր$WiHbhޚ^ѐ(S\5qor]D"j7ݻ;ڵ {pX,ܪ"V=z8 .\G65Хf푾掦Z֍}h,5kw 蟁=otq\_qq0M@@KQ  ulVCg3o< B9P?ȅA jmn=[z"i4|~uhWzݺ9bP7Ċ Uk[VieS&, ZcLSS:]zT ,+jYoH>{Ec*jkvpNcSoz]D"jAb6|j^;]MMSaJxkAkLMb<:?@ƒߣZ  >^5„ zLLԹ\YZZvum5bD+8;[4!i4z]*ek+w_z譨sor%OcQuKuLYao/+򾩖W44-o|ۆ^W \Tgxuss+M0o6_?W s``US9ƤQ\*K@VMC}|ǾTMNx@m !h #j'{`6:f ĉZzZߘoۖj%XֹNUCI}csSƎ޽RD_:f̱tiOX[QVVZP vzVϟ~nX"acZ;:J7}`e%Bɏn e]׵ِm轢zo[~k ~GLJm+*()lXXC,料J$fH j:jIWGNjJ`n.Қp)JMM/iRRpt0Q=w޳6ot@QQÍ!*ol<AQQ<3넧6o·݅R |A88H>gjwb+BҚ*ʪ1~|{88H1lƃs }h'۾:_\ž}Cux/haѣj3+V$$FO*똛5vr.fώguGVY 112߻W"t`j.ॗ<ݺU5kR~˥P(~ ҐRek!yk̽)x|I7bkmNN,Yt6)mzo+#9A۰apTU)`iijTV* Qjaro]\]-i+W4jnpwիyQ bF͠jeeZNNCQQ4|XX^*ᭊDIT) kH68y(H'Of.wEHpn)nM,ۦ}9ڵBDjjbb //{ 'OpR?>89||ac#A~׮,TV*jݶm[k ZYZ"9rEEuaήSl D"UskqzӪ!i򾱎)_cwEn 37o5VO˗sX[1l:u0&y5$z}͆䭡cG[ -[ZBB;v%%UXvױn]IM'۾x٦l V|oo \JJxXIji)D9@.4I&+CǎP*~8OH$BǎP( kS%"""""z4pt\*eFҵ}CF*-DVVsqJtXռM+dmk \)`pHDDDDDOFT {{1 U̐TN f 966bܻrY $*(Dǎv@*5b ""8\Jr2jU>k ڹB!4Ե̐CPBQ%u=X sTJ5PUՓ=5DDDDDMiF S*1elOYYUWߤT}#U÷DDDDDwd$ """"""DDDDDDvvŚRDqq$3V1U)A,-ŰC,!/UU r8:J\T%"""""maii.'5yyP*ss38:JQVVH$(,Db33%%ըThm+\fT&T r&kӲ% %,-frJ["4kf>}q^ڷFv%%UryH̴-,d24CNJ$ۥw9JDDDDD& EHL,mX2$%"..mZPB޽["Ch/]AEBﶅHM-BzzHI)DzzM"""""2iMbQ9B`R {{ $9E0LV@="9 um+PQPTB攅DDDDDDM/H|Tii%rRS af&-(-尰P/VֹmU9FDDDDDo_?gXZ:F{Z^}] ao/FRRA%"""""&$޾]rde g`m-Aee9sÇ!ˍ,/*++NO2]hh$"j,b&Ք 01!##͚56UUUqWUU rcd@AAc˃LXT*Wee%֮]aÇ1rHғLW>Z6$ceffM6{}OOϦc'~~v؁2XZZb۷/,,,Wtt AP << X6A"V?ѫWz5lJ;1lذk˖--["00[lAdd$JKKaeełβID $ ""jZMK"۷0i$L<PRR",'""zk >|8̴IĉAT .Zh???!C@*js/HOOGfн{whѢE"33wF\\ ;릤 ==oܿѵcm#k|7 GGG!<<'NlйUTT`Aff&Zl]bɰә>>>h׮@. ݺu<)) gΜARR222₶mbܸqԩr111#FΝ;]v֭[pqq/NZk3|˶H$?R۷#** ^^^O]6 =g""DD$%&&^uIMMwƜ 6 W\A۶m @7o #4+** [nnذaCaxQ\\WFPP|ӦMXd'Nt|||гgO@PP֭[C!77NNNFٳgo ==]볏>1}t+Vŋ]va077ǩSwy6m9L>WX'}UU̙0,YhtU+6|˶X,FEEz-lܸ0x`!Hl{DD fخ];ĠCFoԩؾ};]vxѢE >}Ǐĉ`Ծ׮]wyмys5 ޸r c߾} 27o>DtYܠѣGSLO0֭Cee%vڅ~sQRRҥ Ұw5A[ IDAT^d2(++ܹs!?׮]Ò%K O5oBէOprrg$''㧟~Bn݄<^z /lmmpܻw&MµkL^>bƍJB=Ʀ8g""DDdR BhX[[[ 0۷GLL <<<_llKضmFuaƌxĻ CTTZj%|#Gƍ1c J1rH9ӧOGbb"zoƨ۶m!0l08;;#'' SNEII |||p@/Ą p1,XAAAh۶-ڶmoꫯ$Lsлwo,\Pr9{@pp0֯__|!Cӈ0-_˗//,{7> u壺 .+N TLDd,\CDDz^x^Z3@' ~ @U˷cAbz- 6"7o ?ܹ{<ԣ4۷bɓ'q{!$&& 6lЪuvvƖ-[`ggR]VlԩxQUU`TVV"22۶m%l٢5%DFFkD"q-ӳgOQf\s{SR OOOl߾)ϙA"M,--KجY3h=P*s{QWM^7&Md\xfSS &m6}q@޽ѷo_븹_!V^ \z>fΜ @U奵Ν;#//yyyzR={5T]Zl)4Uoo1i$B49MHX'z EEEB󈉉1Oݻ¨ӻQRRb@,F???$%%!b 8Zeooa'%%E#sꢮyq-Z ,, ǏGhh(ȣF!-- W\o;wֹMǎ~&|_41LD v޽w" p>=FW٪; ڿ:7ՃFAbxx8Ո>>>? Wuh7nF(&228s ޽Qh)1ΙA"=ULnȐ!8pѻwodgg5S(&?7|uzJ}wll"""4FMuu5U- %HtgΜ˗ܾ &L={ݻwHMMżyj=C*SC-191H$"L&s7778pVVVÿo\6l@pp0ܸqI322˗q֭ZS74ꦦfffHMM;`Juu5:tL;Hر#0tP]]/M|X~!"##JciӦ܄o&v؁?}oؿ?ѽ{w\rwg}q׷A٘.O꜉$Qںu+FDGGkD]5jK,^ 5;v`СС #77WhY>j$ϙDzW2N!!}1p`s&5Y r 233ѲeK5 }iRǙHܸqb]vUW"DEE!..pqq?FTT\.o3g 77mڴ^z%&TpA  |6m9ƌ{(MA"DDDDDDD8p 1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD 1ju֬Y\"u DPOl_YYYX`ucǎ͛ggg8q? GGG =z( {{ZkٳصkfϞ;еkWtEgXO1I$Ơ]SN}6ʄ%K>9<<<\ DDDaÆ!%%.]Bv ={"00puuRRRP(-u4m4:taaaxWT*vZ_k_EEE0|ٳBCC다$b騪Ž;н{w\~9993f ݫ=ӧ#22~)ϟ]B.#11ptxt\.ǴiDwwwVX9s&"""PPPkkkXZZй_uĘ̘1͛7ν{ЦM,^nڵk5$7kˣk믿… 3ݻx,--qE<3FECfgg#22RXVVSbΝFVKKKl޼cǎѣGZ9n߾-Z:k|}(:t@EE޽ ߰pB5 <'N={믿~ǎ7o"//SL'daPcŐdC|pp0Ν;տ Ž{ ؾ};6o Xf +''+piuXf Ν;d>}iiiر#ۇ; =,[ t2adڎWիW#<<ƍC^^!+W XaaaBb dee kDxpiܹsG]vATb:ou+Wq%ܿ+V@YY֭[gt^44Mun5\;w󑟟d\zVVV:u* śq]ܺu !!!Dhh(oRD 6mnܸO͛7`ccף]v5W*ºuQxvrrĉLeooI&i|ZYYfϞٳg :w Z_@sĂ УGaٌ3 qMcҥpvvƍ@]\\eb,]y>a(JܹScΝ; ooo,ZݺuS=a̙Difh^44MunjX|9|r3<磰DJJ <=='l?}t,[ }M$UTTpttDUUTWW =2335kS,c(--sEDDзKP >>^þabkk[r5c Tj"2 2 cƌV0?`\ry޵kW<3ضmL=im :T/ cޔ禖7Nk{ !H Zf̹"==о}{ɓzG&5Ą h"ܸqu65U34u+͌ cޔ禖7/bCx04oÇǔ)S0bޤA"=>yyyHHH@V`mm-5:?WRȨ;vG};v[n 5ԕfEC5u燄;w@LL ñuV|GXloVD UV~!m۶^{5o޼aQ^^211бcGcʕ޽;bcc5&ƜkNt~GGG|}}}vL2gΜ_|wǙ;/S>99}ƍ~!''C駟j5?&"I$""?͛113Tsrrн{w;KKK5FTi&իV`LLL!5M=zfjOF||QZL0XtiMMg>hsܹ3Zn͛7T㳟V^6mh# (JVA"ɓ'1eoĈh޼9}]H$kZt)***sa۶mq?#FؿH$»ヒ$%%4h hݺ5\]]Ǐ ɘ7oД`>Q^^4SzqK.Eee%(#""cǎƴ" 5{M桱yy&Jh"/_sjbx{{?4{pTVV6ٴu2 ݻ7Zn؏]vEjj*qEk[ooo\~pQ :Tk)S`˖-(//ߦ\HII[M"&:Gܹscرcqԩ'rL HMM̙3]ŋ~:j-DDuDDy뭷xF(..tݠn  oݻw~T*ea| &D""z*9riii1c?7"'';vĬYбcGaݨ(aܹ͛71m4i͛Dn0dayll,p5_ƨQ u> L>{͛1k,"##k֬!HеkW̜9NNN:"##q!k׮aܸqZOՙ~É'<v \ą ХK s")) ,#|M}Xl"##eK,g}sssxxx ##k׮EPP"""t8t\]]ꫯBTbԨQѣQYYVZ۶mw}˗/e˖Z_{y桤q˗/Ǻu됐PkrL6 H$pwwW_Ê+ 5""BRcbb0f̘:cǎA&a̙JxװqF;H+۵k 6 ## BqW_ſo@nn.WWW899Xn~g8qB4Lݿcƌŋaaa͛cÆ صkPlwC)`D""j2 l2ҥKHHH@hh(ʰfL4 ";wl۶mhѢoa…5ji.Hi&bƌJL6 -Z@XXPcŐdHJJBnn.q9-S|.^9s栠n¥K ))IgY}lc11H$""Kee%,X=zf̘X7oܦ}0`~7 Ϟ=+4SU g>S`ppp`h׮{}a٘={6ܠP(OOO&ӧODzeзo_W*"((HKKGEE@fTK7n5[lX,ҥKΏ2ٳ:tAAA(++Өէiŋ#** 7nĒ%K L 'N|33c=&Mqe*##ѣBCC=z $$Do,zc&"bHDDTðaôf͚պͤI ˱o>aiOYUUTWW =233q}lR)Hc֬Y|2 }ƎkN0{naYxx8bD# 0fXYYi|֦M 0W\1:/ۇ"L2E15ʩi;w.+̙3Çܹs!S( )SW^BYշ1LD /i blSP`ΝUmQUUv XnVoOOOGDDgAXXz-Z7@ttAp‹/WWZMOOMdFzTӕ+WUSGAVV Mssss^h֬+ݿ?fϞg}vvvٳ'?ntRc>377Gvtnh٨LD$q""2uSj?S#֗+q!d/u$ _ԩSUVtRx??ޝ՘V*J#YBYJeV:KBc`ڍ1f>c 3:}͚% ePJ%^sO9z>={:׹uׅ`ܺu gΜիW~۷ʕ+Kt۷odzgđGT•ptB .[ȑ#6mҴ4w x v) bʕhgF.].3mITZ geei)l(Ss&"bHDD-[u@lSѣG… 8s \9R\njj mmmϥ={oLcL$$$N:wU899_w}'(#GqQ?4hPI[ "nݺIÇ#''Ǐ/"ҥKӧ߯4H,iǷ~ׯc߿8NZZ~7X[[ J]v-pqqYDEEkE뜉ʘ^z|2߿pinݺCE͚5o>?~#F[w-8{,D"ۑ GGG}6ׯ+W(ȖZ`͛mڴ ?b.yDDEbk{Z`6TOkvFnF"q}$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD ʕT%77Ϟ=:LMML!""bHTu#$$^,,,Pvm >>Dݻwׯ_SNOOO4>>>7n`׮]ѣ/~9z s uz={74iR퓓믿СCxrsshҤ 1ghтbٲe6?~ --bmflذArDƍ5j$ $%%ASSW\i <<ȑ#r*UVaӦMڵ+ˊ 'OME,ۡCbo +̛7GAzz̲=z`h׮v˖-wm?~$4hM6CddXYZFF [Y>Ҟ-w^^^OgnniW\GI,~\Gɓ'عs'Oa·V",, 2 %z!Ke>}k׮a֭X~= 33x_L:gΜ)rDFF"!!ʧ/)) |Ud|_|96mڄls---L:˖-Cݺu^+իcΜ9RHgϞ}صkQNtA|R=zT%ǫQO?Ś5k>Ӥkhh@C~777$''^x dff"""W233W_묤;FFFj֬˗/#55ڥ׮]w^-[ШQ#ƍW@cfgϞšCŤ2ݓ%$$֭[CWW?о}{PJ|Xp!mBOO?>y$d񈉉&֮]W^! 򂙙0qDxBf#--ȿ1cƈj޼93#ckkAm>|EڵqU̞=5D"5k9s֭[G^^/^X7^zVZט1c&NUVA߾}7nx7(y'ޓ쫯‹/ x!RSS}vhii4iq8f̘8#66SNݻGEbH`xyyVX3gʼhkk#99Yݓ5j@WWп7ob߾}hܸ1~wf:}AK...hӦu5k n޼$f []]r=n*fcǎ^zs2CxOV{4>}da?>ɓr|ug]ntttĺ{͈cH'ɓӶm[899sNL4 ;v_Ftt4{ MMM899)ܗ<<< XZZ]77ٸz*OoݺG000ƍ'V%MSVVN>W"..ưҗ333q5H$ СC8{,,,,dɒRBCCPDFFpqqA˖-4ܼySS4(F\\;$''vvv2dԩ뤊FJJ 233XCOO%C <|ЧODDD ,,L,/Wnn.;˗/#)) 6+u&̙38<`bb{{{x)4iVZ!11{E@@222мys >e@J DDDN:033ž crrjjjJн{wlgWI/,, bKDLL <== M{YaÆx%BBBJT)f數fff_a̘1իW/K<|݋@deeYfaggWhGU'we~׷o_Xyyy >00aaa &m'HW_=BHH8`k{Z_~=N Yfff7}tФIʔ)a2 AXw 766J .p̲N 6}@GGgΜc1c?-¦M0p@jՂ'ߏ/_bⱋ&o߾m"<<NBll,&M |7Jkصk`aa:ܥ.\]v:u^z'clٲڵ_]m۶aʔ)###|ghժpYcĈ|TҐH$ѣ<==MӾ}{laaa8z(>SuV/Rn!C9sXf xb:t1b tlذ=•+W}vL8QnAAAؼy3222{{{DGGŋ_ٳG%eŋ:t(Qn]=-Z@bb"9?1bĈ W+UìYp%\\V^^v bYi붊wUEƖ-[УGc2Eyaxx8t8;;QQQb ]*e'>i&ћ7onRkkkh illf͚!""fK"[I|||'Ok׮-v:uu MeO.]*.*DD"r/_\\ٳgJS^^жm[кuk!<<\fׯ'''#<\QD"hii Æ UvYYY@pww.;;[ڵ\+@q^X+}ryЬY3ШQ#!++Keש,-MK B``PV-ݢE oN>-yXYxq-7nˑtFB@@6B֬Y#<99Y044cǎUؒ(}rsNm{%sY ԭ[W.33S}Y$: SA0a@5jT~ے+4iD\ܹs%ۊӒ|/k]{hhhݫDUazAKKKطovIII2ѣG+GU';t萠& $?^xpy>[ 9"]޽}ZT>*>>>:t(wi(K#GΝ;055Ŵit]v>ꫯdT ̇'Ok_.\@HH԰sNyׯ{vHOOǶmG4oBÆ UvՅ>̙#&\\\JܹiiiH$سg\zZj7x^ީSTv*#Cekݺu4hի=z#Gx>|^cAӧOkѣ8jfϞ-N:߿x\e&L 7c:up1*)|hҤ\ܹs1dThY[^!Upssѣe>smbF!4u[E廪_аaCb„ >'dyݩSM3}}}zaӦM{YU돲ܓҥKbϞM6߿?Ξ=KmJKK[ #].]d1Hׯ1}t8::"!!FFFD͚5677W奞sKJd+̹Uc]{lwN, IDAT ;vDΝ'?͏7z" +鹛#)) IIIJ4-8;;+=f~ЪU+۷Uv*#A|||?`ׯ8DNN_KYf/[}XYYy\Y)888(/ٳ(>"Ȃ7??? ۷cĉbR[^!U8|0<(!veĢEn|We]\kcڵDo*e'{5O$''I=޽eQ}}}PDݔ>pXv-~Gwؾ};LMM;v ,, 5RzZ-ZPyiGTűKs|a(}H{u7|}GPP.^-E׾}{"""\Sy uΜ93gK. E^^كG2ۻ~ѣG/߿ DH晓UQ˕U͕.?t蔩 5 7oFBBZn~aرٳgZTU0yd\x{)w2mq&o UE^Vd1uT 8PsExJsOvAAdĂ>SgΜO2{j0H$@.\q㐓}bǎn ֭&!Phprr¯ZoӦMb4{l,\PNf!00ϟ?/t=iW"UN={qFX[[#00ѳgO8qB9Xl9~IlEرcLt+UAvVEׇ;ݑ ۷[nEjj*OVme~Xg'b߾}ٳѯ_jYn[/*2+puu-{2i`eeUzVVV8s C 1""999 llITY@t!''#F3gJ СCuu#Ecǎ߿B}~S؅S\ GA̋=<~&** қ0OU.pi!88Xr: 4[ J[p5\v ^GZM :tիhjj"''Ga7(kP4Eeb]uD"-[BUrBGsظqcʸ'E=x%nҖ7oވ_.XK$US{ERRe˖R*(Y:,#3=/"$$D:ׯ\\\qT5J׹zJigg'v:uJ|?E~uL Oa<ӧuZj%>59s&QFUZ9_zĖقꔶ cȐ!ppp-[ngjj*ź)R6DUQ!_g[XX`ɒ%޽oѣjYn _?*L?^)))tV{ȦǎSZF-81HÇԩSصkWҗVtUΞ?8Cݶm\8 8o߾{?,Y+++XYYs-V{ɓ'C]]/^_~)3 4 ;v,^| ,76n(GٳԠ!cEZ1>xE駟b ]x ?ΝÚ5kZ穲4ijjbpvvFhh(ڴi;;;t)))8~8IHվK>|=BN0vXѣG8}4"""`mm DEEaٲepqqy7nرc  >mmmܹS?LHoImٲumۆ;vI&hٲ%+<~X|G]]۶mCFUli!%%3gݻaoo/_ MP!RYҥKq5DEEpMܺu I۷o_[nq6l؀0 0|2._aÆƍJVߡ]U555m6+lѪ7n)S}v!** btRj*"K[DGG V{O?K,q ܸqz)>}+W,]]t׼yp1<|ÇԩSѲeK<|[nEVVyI kJIĈ]BJ$8@||<Ν j$nݺǏGDD^*ӥQF_+>3OX|9eDprrRSS? 11ׯ/tssD"7|ׯ_uu133Î;T޽E-Zj V^oӧrO% ŋSNe˖h߾=Qn]Usss|w//󞐺:f͚UV 8::bƍXh҂;ba߾} OOOܰm۶"hT:K.>}–ª^nv3fwܑyVKK ˖-âE*<ˣ{͛7!..N|O]VR8RΟ?#G֭[ruuqAbPBbk{Z`6TOkvFnF̈*/^DVV>TE);;/^/ѨQ#XXX`bk\e ǹs555XYYaСW޽{ؽ{71x`C%͛78{,١o߾%"[ZB@@^z|4iM4AJ4 -0uTlܸ… rJt ׯ_Gjj*=#;;fff:ths O>˗/a``3338;;M8]8y$ccc|gE앭C\gWr 6lLLL*5KSC]]7:w\kjj*_"22M6E6mУG=KeA+WxW^ppp)$D" ߭+ֻw$}add"\xp""2~7ﺝVFHD1y 0@$|'*խ[3ܹs{|̝;ػw/3$Qq)\RM:x*"DDT%X[[0`{ԨQΧFׇ/}8pM5ƁkH8p 1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""w4T/\Ǵ|"""""Tܾ.DW132r$3v7%""""""DDDDDD$Mu3^zFF5ШڷAL.i~͛'5Y A"}rez|D9ݻñr-kW beϟEjjBÆ:,(DDDD …V KѣϪ9-Z5k}W2qJ X8{vy}֭{oX6ży,DDDD ʏU] EW OSu0%,W,>MÅ ƼDDDD5Ta44$=MI0s>vfu`eUu0hPj[Æ:QCy˘pn``k_?* r%aaNLLtѫ'hH>޼App2KICzQCy7x*Y CCCN tDDDD 0x)fhA%''?VIXua֬6:TjPP"- DTv6/[`4 #"`ƌ%$&$d>q}tDDDD pkY"gOctXZ7GR׷ 89̬qZ,OQe`ܻHJFښ:HI1x, ;vܼ6?)}jҀOan^;GU\A"USFF5eGGc- DFF5ڵabo_[`ܹ6 h1ڷ̜_}_|qop̋r 5A߾&x2QQh߾:U\A"Q4533os`+jj|}{Š0|U}'_`ds?,-Mj/hoXԫUTΕ$ǩES6>F:8Luж ѵ.^|{k$hXWfaFU"ӹDR>Gkb}-1bDS? __AAJ#] }gHIɆ7 1` llаFʧtDDDD \\BOO[aD_?c&2]NAtDТHM}|5~!RSsp+ܼ и.>rv:+1H$*75k/cѢd#22 ffQO[-k{AL` oXx{5r[G`\K ָD-Ε$U+MNIɑYfj4td3K7/dZ4"?_@XX*ΟƉm.Vz뗨.!!\<Ε5fQL%55 hO>IG$&ЩI`aQfC=!AnwJtnPJDDDD nB׮]=[P̘͛7I55 ̹Ips5hPSQ`Q. URUe8W""""bH)8ײA16ԁ t噙yX(ofMu8:;ѼŻw{/* RSuo+~njoW΃mo_K\J{DDDDT}Dbׂqn&M*EҐcڴ[L7ڵ K˺HKˁW, ?A&0U&FniS]dg#(( $3ԭ!00GŋYYxܾNN LZT 7o޽UK޸LJDDDD >8jjǭ[HÑpum*.o߾6l˃wd32YXf;ǂذ!9YAa\Ks96/~~~Lti; UtvnOh$%ecڇIJ+U[|qZ3u3c/Yr.DW17uǭ[? ))9hР4CFb+"oڵ8|LkD]AJT$$d@ݺMR/n#''&&:3L%JDDDDU[TLSS ݻ7@ J 0)$pr2`gg;;C+U}$D""""""*IRiժ޾ͭcDƎ5رf"""" D""""""bHDDDDDD A"1H$""""""DDDDDDTF'Y6lP\"q077#FDR-e˖!88x1q_~N:<==ann^%m۶HOO888௿*vԩ]v޽{UrN<w܁AݻlٲRoUkLDD By)][bػw/̪U:쌌 3Aq?~$4hM6Y'^*ϟ?GZZ?Pv"y&hBe甝-U^^^7oNFz=5&""bHٵke>KOOGXX8(aܸqV-FFFj֬ӧOs֮ǝ?>N<ӧcծٳgaaa%K'..ǎ?ahh;;; 2u)JmXX""" @LL <==VR%9vYhx MMM899) ,--^hӧOի cVIDAT1,--Vw D6mC8qǏW#GR:MaBCCPDFFpqqA˖-OKK͛7Aٸz*o߾[nѣx9 `eeqAGGJ|+VҺ5űcpe$%%aÆpuuEnmΜ9#..&&&kc%=-0k;[7#fD mÇ#K].XCtR\MwbHMMEq91iڴ)444c׮]ލp)͛7cܹ&bb+Jm)-%=vY;wͻ1ݻXjv-رc!vXz5&NXTV-aڵHIIeЧO1@~_~~>5j\p;wK.۔)S{nH$L87o<$$X4h@.sss1c lڴIn 6>hرcgϞ"ʼƥ.(͹̓W^??3f̘\pAny^p=$""ŖD}ĬoZ#^v yصk`aa:aʔ)###|ghժpYcĈ Kf͚K.!$$,ӧqiJ[&O  2}􁎎Μ9cǎ!66cƌdG޽[ah۶-q)bҤI7|Se˖ _V8iz08Zppt Gz'Nزe ڵkDh"lڴ D~PV-xzzbx%F-qYũ TQ @̙3ǚ5kŋСC Ĉ#0`cÆ x\۷!U$VclI,?x={K]׮Fe:vq[0zhq sΡm=H$~z4lP>..-Z@ZZڷog, ŀS4jbl+5qDl۶ F?e=vi ~ltӂ-*~zL>]f+VDEEֻv!$$[ƙ3gd4IHH+P $Μ9ָ>OL݋ڵk#==۶m+9). jZ~"## }}}̙3Gn&\\\O<)y0i$ߥouƪ(*ӧO GC+++̞=[fy:udnD"*ÇqA?<|P_hQOGpN:hJZܾ}[%ۖUeƍsi]бcGt%O>o_^s@|x&@xx8pEqCƪ*U?i<)j91H$bXn]sQy ?HNW&Md/eU..CC/IGyL7rHСCbX>>8yxxH\L322ҷm?VHLMQY[[l6svvvJj;MNNNr}}LNNfii)E2<@$ DD""H@$ DD""H@$ DD""H@$ DDD""H@$ DD""H@$ ~$IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Berkeley_page_1.png000066400000000000000000001672671420322575300275430ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|O$ޓЖY(ۢ zċ 8 Ӌ2ą+GA tP(tا iM~xhs盳DkU^  ADDDDDz#fD""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""";I@İ31 jP(aa!PVV:&xI`eNK ή2SRR籋j׫ "bLkP[da5q~cQT+2ZH8;?g} ռA",8cΟ/ࡇgロ>Jbw%Ku;p_Ӑ!vغux>O?uQD;9h\ۣ@|| _̚5f߮}RS/HAJ~…At\y __6o:H%,(I&"Q6,0m7X,b""2XlI$-UUuvmM!:!+R1qd. k#[9aP*uDI$"8;̬V,a\?HblaDD z̘qmV$top!_`Qr)/²e#,,$>9r o6..x챾2ShA|Q_>rPff%3uQ)u5'b'& %ݺU7ߌ5WD"_}+bE4 ଃ$aɩƱc/e9Dt1>܁: $ac#9,-%ήFFF// ac(@FF0$Xoo 8; 9&"hww3(JddTv8Jub1t=%pr2ų]r>33 <;`XzPtdb0X @@6lD8I -MӢil-r^^v:̄}lldZ;84BgkڐfUoo 0} r)v|4@{hZtu6仹FR5pu5çԩ^^c~VxAظqX!}'Q%zСv? %8w.׮'"(Zx]v0O?aӦ0KKPҥB$$027òe믷Z>^~yZ:>̜[;?Ǐ ;o#%XnLUUz X >t,R1||,1{v_|A~}~5WGf#-F8B$lmcG8{$n4EW?2\Pjc: a'̙<:v` =n,ɓ9()""Vϩ{e2s`_~Zb5R1!ލy>荈g׫pp0Fr0{L*R[/GMM=~!11E011˜1N9A#jnFlC*ݙGMƍÄ{<./>>?č5kcɒ ]^t@D 칁4O>IO`\?%̵$XzeTˣqFvXf<=ad$K/ @TT>Z7ol<>HxOؼ9 b&1kyv]9sȑl!!69XanRIbE(9eC% ]୷bRl6\h 5Agؖ㝅7oǾ}74οysVy/-ۭ?ǽƒ+DuĶ?lؒx{Ўa{ED8_ry@/ii)YYX<_o/LsA9lld]w nwԕ+ncr) %VƑ#)^}BCmk8U!PHݔz?d`fvHOi^pvVYPPyNk}@\\1=%662渹ڵR̙s ?QW˥-&=d3yAasv]Grr,_bI]xOBxZ). Οҥ`cP3J6{T."6 ﯻ똮+O=:EE^~w-`heO2戈pƮ]#>~J}uPGf}M*+4^[FqoPF}A];9k\ X 4={v_N&"tWGROR̓z ߰*[H[ㅿǎսfoĴfW3WAAM3(~I26mæMq-멭Ub͚+BjS}~g;>_a< "С'yA!L suw={nw~zs^0ۚ)S<u_N7܅"8Zn[J&U͛嗬ܤrvB.^,hvzngu꠮]yt >r=TYY]k d"bHwbK<\?P(ei:-ik@םﬦf.$}JKƾ}8q"ˮʕ"|UhҮc h+"feUk'$ 4`>??~j=H3nױus$~1>} Xv%#??-GJJy ZvP(Q\h_bb o_CyzÎnm֭*۪ze:uG5-Xm11EӖĞN&"5cn\믯_|1M5ܨZkwR%Hc"#B"\XgpraMRQQubaP.F&yFæSuj(*!!69isafU~M۝99UeW ZvIu_0{XZJagg5kܯvm=zv5/%HI)GJJ9K9U~ʦfmk16w`eR-V7t"CFI(}i]ZQQg0D 4~ML,/wC=Gݻc03`@[ frzKWW3Z5=vג+(-x?Ç3qBA7 Ư-֭"ud|]z?[kehmʖ{.ucG렎thҦMREN$q굚d;gTV\l7N5w6McW^ 91I $6z[[uP['ᩫSasxkvmM5[ڮ;C)tgԍ:i=Ot HDؒHVӮ,ְ59^|1zjի/2}za#GnfSKDL&,ާe$װ^矏L&9ou4NNi=4Me1o:11E:ӻMs+>ݽ,Чe R;[N*qŐAuzxc &uWqw"ҍ-k_J2&HxHDx>noi)Ń6.}hAߦzvjz=c'GX}Ϙ- [.κu.͞/1{v^o'\3r\?ujh$o QV#"\z cF?kKO긳@k5vKH(|ܻ:_Ww[ҵC]  ?7mK7 Rcߞy 8ئYթk<בS'#0o0F"aP;^FW;Y{/>]KH(AMs;;c[7DcLD"B@6n7&K5vUX`fb w7BW]??9+ο@uP\\^^ذa_kk~{OgJJAWd^#F8`9&&F02OehӍeaow"j#&f*b%l>~~rD)*Tڿ ߸Q+/oͭ[U$mdl>662dbac;t,^|Ak}5W`m8C+hW ,_)DyzG]Y)*J֤JBR{ ~?Jի/c߾dk9>sn{';i(^  N5e l;;cTW#5ii._&Lp\\LhR*Q_$Bojqз%llQSSj?G  ;-nzddT8zu5md$#`(G :gl[}b{qюpv6Eee=iB b8%K.߲^Wٽ.gLgC^^5֯Xۍzu>;`(GxzEE5HL,?d|7c~~rPZZr9rKcz1H$DD~KM_4H#"";$˱v`. ou{K!@,/k1H$"^ƍ288\// [׎;z4[kvS"""sp"zS)mۆܵf uu5ʕq}K_s HDDt^c3lm{(jVzYʪqFS xXߟ#""bH N`&OvZJl_D#""bH Nj]f773IP\@ZZpl^gDbHDDDDDw0N\CDDDDDD HI$-h>.\??9]+AFF%,hDE3A)Z7z:d21FvBYY-Ο˧ ? 1H$n=oY-hQ֯m5e'^zibbb$vwSO`=߯֯~5AbW ? 1H$STT> k2<7 %v^H;=Lv??b[<&H7 wlldᇻP9sN oBb]c_Z2FDD %HE=䍚z5&Hb##{` kTV!%L׿"_|´kr쪪zܼY2FDD8q u)##d3cc#Ĥ13@zb}7}SSSm4io^t$[#ZO,<lld/RLMZ tŰ㶗bQs7X8X,T*nsiェr]eLWooKDD]$b'PjuV%>$֒< 5L}5:Ϸti0M|1m7M_˗ iSnݪ]0e6oX Y3^^18]+DFa/!\crIo-f</ZFpT/b0b !W#83f`xgUU1>{u}R2$<ݿ{x#,̾`H0{XXH5 T*F|| .\1p-f>)ɋ5Y!,YYQ4G} /h]D"etV?aaxѓHMUwX~(FvDYY-N΃BCmysN\p `0FFUH(suu*DG>98u*}X 8|0ES3Ƹq 'OWK^=8v,C\vG07DJJNÈpq1Ŋpw7Ü9~./daHGXK$RϋpG%Mƶƒ%>7  ^˅]^}5&aٲxs:ka!Ad;lIbj("#ݰdI0{~!) O>yFh ԩ^˫G 7CH f胝;g{ooHddTOuI^>X?CrX"dI0MƈZGN_n}0r֯_BRpa~. {WCakk_ҴQBU.Wea`kJ4~%K NN5ݻ寮rei{ !@B066_@{ѣ]Bs$78:oR^u܆ܼmA~)++Vi\s4Z[z0*¹:[ K/=@i&wm}BPpMM;}iYZ_X@NN5JЯ֬Ep|>Νѣc6ۛ*cFDzzVmCW'rҪJ"""#Zz55VȨlUU/'QVV e-B}[TW4Eyyƃ`G7Q3kw\\SbT/+Zb4oVch\Xhuix8>w.P*U]Btt0l||IˋxzZ`lBR99U˫d21ήhulnu TTi̞T>mr), =HZ$&ܹ|ݛ+CQVV+LѴǹZ)$3FVVЍrΜS: '"('bDW,^5kয়2۝ew1 bـc5tanOwo"""dJKkQVV R')SZ}hoxo$ll]I[Z( G;!!QQ ٳyX"Z1<ܡ4oox{ccqe@T/Sf1hO>z$bQ-岫˘@bBÏ$;xP=A461~2-6[hk0x-CtOHQ!}`|qB٧o`8kV_ת1o?, {"H䥡d{oMP5*+BYYYra(GϽt̜#0.u [Z"fA&My*zӛӦyNP1H,zBNN]P33+P[$];FF"}]g/3*TAA=`Xxq0||,er}+]w9k#$FF"Ǘ@T;u(c 篭Uj,O jvG=Vqb""\"i%""j R:p Ww>ii}!}{bgbb]FaHO@H fHۗ%p.05/UUu3 SzATa˖N^ g̘;/dXQQ< w}^O/Xʕ"aE{773XYpB֬ >֮5kP ;;Lpb>X=fJJ9h;IϯСv9%%pt4WST*/`ǎDdbٳ^X~Ľa$+0h-fTzkW Ӭe#)}!5T8x0SzaӦaxkHO%y49ǎ $$?H_TGRٳ3ԩ^:ׯ᭷b@(,TʕBJ0dMFmRX\vGUzjZkalzncc1֯XΜ1H$U_¼yj@ƮcuX.VS?W^ EAkJ ;v$|:̞} o1F9j`VW."!י3yL捅 ?cVV%{. 6 ~ժxa Š?W^T^-5Y s||,}pazm_}͛IT*`ظq|}-v?g7`sxV}n੧ገuTI3|m]C7 Kѿ֯kJ1cǻm뤑غ5ܦrp&MB~Vx!՗k ¼y]ء׹P(c?̙')ز%^篿NEX=Ǝu³ 6mÕ+Eew6HDkUL ("o_9 镸p!_+UK@+L 0` ]bbtfD+nqՎ^V ii8q"Y``;x{[Fj\Vbڑh;63FFF%._.l#F899U8}:OgKr`ETVމ" j}娮Cbb)JZ~bbq|b~`jj*:эD7 ^^ͭequu*RDD@*4#is7;v<=͑^-X!( 66˫Fzz._.jUKw1""" ;iXXX!"""" N\CDDDDDD A"ݡj[ :c{1I$"""""}cK"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD$J ͘DDDDD ğK\ѣDDDDD7nJDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDԫI:{W_ AxcgeU'No_1YNth;GB*c޼P(-[z%֭e"""""fw8u* K|y>( :1do޸cWT_7HrH:.ę3y-#TLڦrΜAll1f/dڵRWakk[c;c׮ػL&Ƃ1q+e-o_E|| `߾1X.w?a֬:iiz;v,cϞʪ jsQmvB5k5^[<o9GLD]Zu,yDDDDDdDC|oP+dbXRt> )+FmR/VHH(æMa=ڑfPQ()}nXz\TȒFDDDDDWu'""""""DDDDDD $Q[ymۆbwTb0YjDE㣏Z,7_@\\1KD[[cXZJ{Շ۶m8bb{ZRZءH>},0s||,p)j1$"""""EP*Um~_mٮbb)o4^+.V`ɒ`X[P\h\KѮkiOI4ǖ-q8{6_|1Ç;7`ǎp= `ggMpĽs+6nmd21- O?݃3g"#ѿ8{6Gދ !kƀ62 kn̬nAmbײwh初;GH?~~rx 9mK@d;kg#""""" znzH~=7o.SS#TU}{`Hx{[o5 b1]]0yf<U7J8p HN.Cyy-V: -k W_WGbLR+VJ/_ IDAT\Bkz쳛tpP[oŢN>shҦ7,DDDDD{ď>oo L@+笵ŋyLVmT*&LpFDDpq1ÙHN.Þ=Y8w.ǎe}crr|yy-^s!?ZR66"""""^$1z#NxD^=Hc \ Rcss#(J3X:L~F9ܱl,Z5k6_~~ .MvM9*궿[Vg#"""""Abp ""q} o֭Q)S!@BcbJdb|i2pAZZ9<=a'rpDd21^}0z*]AbOوzB&3Fpƿ kXXH `n9$=: 4cr ~n'3hl[ ,[T =nH$bɱiSƌ* EE]XRA&FDDDDDՒ8a &LpxMPbÈ)gErrMw:VIW_ʕ^066®]I= nJ 'RU$%2?={F#+ &(*sEn(ԩ^aժ>QO ^VpE JPR9\]pl22(hTlGL?;+4 %((8V@MQ\@\\1jkcR1BCmPSDLLAf֚M0z#K1f7U*UZU 6/X?˄ (y%2M*qBAgFDDDDD+ȨXz/X TW/:+(݁A"| |m<>8tn1 %H3FP5zJ ++YW""3`D-ƬYEmz-uAz Ob-T/K5cc#QsH>Og#G&ԩXz9 pz#4+hQ~9?lcG8vŒDDDDDD ;KR7cm4HZظRb׼-hQmKY'R<VVR̜y۶% 2CZnM!! /R~WQ\zEl "\PQ&AA 4$f.Yvi)yx333;3gz/`#HOG!(d~t'^y%sƣ>66.Y2X*=F^}O>~~g$%U!#w@PR҈sPWq?KQ7LF~~fx$>]z,Y:F5qdV>*$"""""%oغ&OD()i4w}MPuVLeSju8q=z$:Ca8_{%Ztfg;1=n)7{Z.Mưa<ٿNou(Z5:8TjV\gO!jQ{R7ʆdeo/Ð] |CN/4'N 9R!~!2ڸرݐ'c!""""[Fژk3QW!WQuP(4;1,>hhW [pa89I&!: ?@jK+!!we"! k%6F⭷R#ӴZ6l!?$!6n1 U[Drr~oS]ի#%ڸ^;#qDj89IgY^CDDDDD,Addf`'…Z5]:䈋,) ѧ $pMVBL7{1]3eC둝]M,,P|Rj"""""m;""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$"""""F۠#ѣyr?t:$@l~ ̝CQZڄ}P^dqi^:"""""bHlmEP(8}lZmS P(hqGG1D"&T-mg'X,`o!"""""ĿBc99e]:Yt:"""""ܔ$Dw_4&4f`g']w 2b}gg N Ă! se/!"""" y%Q"<)׫nnRmP3NhV 1:5jC$"& ..۶|1^Q%""""ADB̈DDDDD F[`6]m_=&uT*B]MA Q++P(DDDDDt[!IjuPi4֒ ؽAA rlC*@6_G[GU%"""""bH Ws))U(-m󵈉Dbթ.bvv"ۋS!" mkH$V h4Zx9,CxKɓ :z! 1l}Ç{Q"""""[ L-Onq͹U"%vP(@ZZ uXF?zTT4Y\QÇK냾}] EEr7mAwӎ]fgg **Рf؈eF57+ VBLwow9) B$"=.]fnj׼^B@"""""DDDDDDĐHDDDDDDflVOOp2۶= X`rsذDDDDD t3rpߥQ,H$4{-!n`ŋ8'g`ÆD˔`k.IDDDDĐHܪo]x m_-HDDDD|DDDDDDd6t><ƅ UU,)hlTY-'0fL(**d,G\\:d2t }0`/lQU%GRR!~-eml6;́@LS5kԶI$"DG͆H$ĉ}p=lzsOˌ;̙s:1$MH*cժ<ټ GbMpbو t5x,[v[$Y,;gN^zi,fӫx=ؿ?d֭ FwŒ'LBbG֬&̟?|p}O>F5k0,I&td2phT3&&􅧧>nL֬\X/z.$˕ x?7<=tdڊ &eo,ήD߾ވ =>;SC~>ػ<~= b̛7zy`ĈA-d"""""Dab}i?g Dh||PZZo/ l4IU߂?}4Çbo1}sJc[PV&3 7 x?3Tm XNwK3)ߙmk_̙-KNσP(@~>xqqgopwǰa DDDD"\C7hukw7esԨ`zBw0i?C&SNd7cF8^3 x]7qBͶM jhٶI@ԇ|TT4227'M+EDDDD tTӛ_9&󢢺ҊRd|y C ?wX23-=r$ٕ,.kYh4ZٶN̳8O̳88Myy6#""""j ҥcC[]WTTkLQQW6km { DDDDĐHH+ٳ%-9mBv;a9XdqRFDDDDĐH.U#8y ˗lW??g\^Wu6"""""D?ا""툂Z=[bûXN  5mDDDDD G7[Jbb`H&,qvڵOoB@tt|-7Bcۈ:2PPP{FGG46SP_XqYٰ0_Dd^m#""""^x)Rj-^|1|s?={!)Epr^ K߿駇q%VO/ b(.Bm#""""bH$ӧ #;w!0A2/)Yٸt&'1_W^ }ۈAdd_vZ* 11]Z߾f}D"BLLODDήԤZAՍHJ*đ#P4K$"=%DbH$""""9p 1$C"1$C"1$C"u pE`4V5e(*_4NUR=wX6 @R!4j g=qXJJKى ȑިRܹZ.4mZ̈DDDDD )+rL Ő(ڼ a1\ɴ=p=wNB1I"aaUU TZ GX PKꑚZ@c}qDUƺƌ1f 778;K(ɓ-HDDDDDtB-HOrgDMТO} QQʒ!7W77)"#=PUBqWR@i5N:ىZ{ZD77L`[$@$ !ee[M ǡC%_9<}* P_JEc-hԤL5! j4 =vCyjHv3.jao/F~*㋂5Xh:FbDDDDDDvmzORAq@S*p(GjQUZo !Rn8>>v]Y7$j@S@CB/A2Z=d2ptō D.߲|$MoKKHؙjvv*TP(@hOH1bܤj0 h4:b~.LjZDDDDDDvS! g@ԩJDG{bڴZH$BVVz%** \ [[J :ʪm뮭U!8 66B9SbDDDDDDvȸk&APWW)$!jkhj2*JJ,:9I(FMՑIB<x  nnnsC*Z]L&?#99 % A"0mtD"&;vbFŢ[nƟ^}i귦 '11!H,.o\[o.۵>R?P(chpttСј=~;wnDž QUU݃0p`} =Y {w PXX'''t3f܋=zvz^ʺ@=~HR$'AUU%>ב} <C~3~dff >>d2mیg #,,SLCϞn˖JѣߚRsv;vYy _|5~~\ppsf:U5;wnCpvvFff[7bɒPVVjV 7no(v ʕb⧍57thvkvrP4`ϡV v?Sz̚5REJmr9/~;vlN@g}/ZkEE9^yرͬ޽`۶]6mrsso6ب IDAT]m|A$$DPP<#pssGJJv܎F9_^jKkp+qSSƍ^BチZƫRr<32d(JJb{ʕOK+Gxշ wU[5_gZZ m OO/̜9 ݐ~۷oAEE9~?~yW_!Q,_?WJ4tzC\]ppPީe$]wp#8 5h\\ vBSEEE[[JK؛q>a٦Fĺu׷q10th8&_?سgB!zk,xǍ3<<|՗xN߂uQcٲ?a[:S5u_^aaW[xgL懅^FII1 خ}RVVX;O0 ÆC.#9ɉ?8O_~DEcb{cػL<}pa?  ivƎ3?w<̜_OJJIHlmjZ,XrssЭ~ ï S0n\ ֏;`@[P-`ooW6ʂ<Nxᄏ¤gCROVW֟ ᤬=}w)PVV_݃ ?NϿw#-ZRKra+m+)um2_St|:Mի4 s<3+V?n߱DDiB q7F+cDˇ˶Czx` l`$voCp(""Me>BB1d{R;O<=нMzxx⫯7 k|Vtӱv7|>sqs3s y_% 6l؊?FdСn"`Ԩј'զ# $J*?oacccm휗k}ɤIwY,'J'99m'y(.z23 jeNB].jg}WׯyMDgmKW\x}wE>cnnvkYYOڼ_uU[5b-`1]KDDNloD޽]p݁V`s[o %:5II8|lڏ?gO'89IgomR..JCnv톏?N˖E"1z!9 6\?C"BbhǗnnRX1 a$o0p;ztDFF- FBB%||l%'Yp+0cƽt)555fAB.cǎzK\9&f6%vΜyfe:[p 0; ѣ-gC̙0mt  ;;퓶snnMڹ?uh4k;~LoœJ% q9:u?r{Gw3=^oh[F$1c[ lmnsrr"t:D"Ə4|ZRR3Jv (+kVޮ#FOVm.߱DDtD{Y3B+WBAuKo7*9ppc`k+2㏹8r8sʸIڼ#ՈDQ? DO?LRlڔDkGD@ӧ+0t'N*=чDxdg#*w`Q LKxb{ 'LipU!!Ǐ5j㏛ 2$∜N|i><8=~2 뿂T*#qウ1kvn-lhZ7oVaam|, #㏛999(**V5ìSqqq1>} U{Bbg͚O6ek-Bp^%~PG"̱Ҽ#CوHm: ̙t t.߱DDtB9.dڈϿ -3'\ ;8Pb2-ʷrr*:BCu53"45iLǗ{B+AT(`޼`TZ֪,7;|d~$0xpd+˞nIhaĶ7r(zﰸlg綱?۰^CT">a˖um~6lx[hhO`Z'wxW<<<1fx 81l*}mϧ[Õ oo}>sf}l6Ke)+MfP㲳I֐mUu'{ 0 ߱DDtĖ%F猄 J!`6M0--kP*lؐTYzDk=&Lweoa<ص`V??|-0%H?o6joͺ[Ѐ εG#Fbٲvx1G0aRX{9??j[n2A[(߲}/"'ˍm|ewo3555b׮fqD{yj|Кo5t)׸cbls[֟_)/Z|]Djj j5 ҥegL +}UUƁ]nӮh}G[ZTT#GƏx]c ]w77[8bݺ > t%-.{dbc}` ` gg1Wn=~bIZFjje a˭ȑQ[[P| ɬ3[|ZBEIՀlףGO,XƏCeTWWiU*UQ,SWWk<6lX@*cz eq=o*`Z8vC@,+-U&o3@]]Y?hm-kǢa?￁Ny\TT?\ 4?8Y׮:.;{$%%BB$;Y|lWUׯFA@@w;|Mkjxfӏ/eƿUX$P]0ޢiiZii$Z*oiٚ%^z4T* 8y8ϰj<):N*IHM8iS66m6FC}))AA><֪߀?(5.{zI/;;8C[ߏb|ӌ]Aعs;22ΣWitf'N->+әNNbi;bĈfe Ҧϝ; ɬC`'LH6?A@@YAe~t_Fޖd$''Z_]]Kk(ٷ2 4xD.^_G}책JmܖsZzJj]~\vX1a,_)ud+`<$u%"++Wu͕F P:+fWJ\t:L4p ۙ[" \9L''?/@n~&##vU;'+">S2WIRϿmeJml"̙sYY~5hp ̞=J11wە߱ee;v$Ǝ{1IDk麆D?g6e 'VSNbԨѰ3k}UZ~I'C nHN>#FB$L>455B*bժmݴ3<曵ph|'x7svdggᣏVl~uw֭?'Aff~g㼘;lه瞻.N&}3vȐ\.P(ĬYLj>}aժո瞻믜 ̜9 KOOv#- ZrEZ~Db8.űaql*JJo+V|W_}y׭ FF/ٳHOOúu_x,㴫cDDuq3$vvk4Zao/Fii#[:Y* 11]rMF))Ic΂BBz#6v,oSطoΟ?"G` 0zj8xp?RSSPTTooo 0M0t矷#77vvv3w9j]9*++s'N{סT*tiH:4 }Ebb&My-4lٲ MM ţ>?q7!\)r9oj< )Sϋ]㲭As8{62Y=}0bD #]5*jqq;& kk"ۅ'^^vv"עQkѯ ֯^cH$i( رny ŏ?nƸqq㶛EXS̛;Cvn}%)1¨(O+"=[F;;1\QR҈+e;9I抲&dgIDoo[4B&SutFoo[HB$'WWh4:\PBDVWW |7>}2{?n<܋7g-..BqqJDDDkLbLT*uCll7|u&-Dbb%z Brr6mʁ zk.ԩHJFa ^}NNxG""< IIUw޽8p{ ((#FP(Bvv~qK?ÆEߴl=ǝODDD]lH$B|i4&LC||)6mʁD"ڵ#iS&M C%ؼ9b|u >0 ,]̙AfeW>el\X1c|Y@tC"u|yf?Xŋ8h`D"x"""SP;:#$ Y [[<=mphA \ ܎jUUMuwTj'ƌHJJDqq}ìYsp Ą ӉDUCQ[† YJE54(.nD~HHR fX.˗Q+˗xK_MDDD7$^m""0v.-BBn]FQi+0K$ 0uuJ  jjkU*Kz|{F{i4: %"""""!dC"1$C"1$C"1$QdMWn,HDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD1hNcC<=1n "/u:x)1$C"1$C"1$C"1$C"1$Q Z[ E8_ӡU8q~%:9#"ӣлJ5&L*sre\f ƼyC ?#?AA曹r DDDDĐHdK/F5fg'APN ""l40NN#)zmhO٠ w[7'#bb*j:T""""bH$(ȠXn64- Xw޹ 3fN3 sDॗ^jR9` oo`‘ƿ#*; <|9K$""""D6;mY 3fC ' %y7KLTVqEdgWo_oƆ}t|r+~=ˤގMJ*p=*㼖$""""bH$jS8gP(ĢEwb߾ XtdyxsJc[L{WdjeG{~= o58{w&1$9=;; wwCHȕg=,WEvJcƌpK/g ;o+֮ __'{w,C"QM|ZkG[\f׮f  IDAT0&3Gd#;8:S!~!∟*deU !!5Vή8{wW@zzΕ"8פ,C"Q־NR4Z勊LlY""""[M@7:Rmq -1,'IY"""""D \.U]DDDDD D7pH 20`W}M1$݀ A ̸qn|g1$݀oOA}b0\&,o1פl[,Z4v=]Eh'w48)ݴdɯx쁟~zǏ_Bnn=`k+R/2ybgʶ#BCR)3""""bH$.B?77;Ld~~~ ^y$$_ӲDDDDD*AddpsZ* 11]}߅&!RƆ ,NN6nDRR!ɆJ鲲DDDDDדH$DzK]^I[BC_~Ien5!!!:I$/@ """"!u `F$""""!h]y)YŀHDDDDt !!!!!!!!!!!!!nyb6Q'"4~H6!""""DkEPWh4]S tvZد^QϐH 1h\44=CZ n MbDypdvM@wY8ϛb*~?GnZ6C"un(;Kn\d}Щ:l~ N Z4P Ɇ]N6l7ml*4~;n[@ MUaK(? PnV_.5܉ݿ5~p?h5AӳgH'@P[ doʤ/Gy~ {mh= P4iSy G-7_1[1/C"QVC䄚vBX M 4.|5{Ah4pxg :S@yQ5ʋf1$uÇiӡӷE5݃ y԰0ek xz]*A]&} juyհhB]]Bx =N#P4Ar쨾w #ʺQ^.4ݡ Au5lqJ2M ԿC=(¬ΔmNX^];!N>Am-tP b4蜝[.V˝MR.tԇ=R{ 9ay>돦{fA*̀ Z_@&MPVuX8Sy"IIz`/ܤDvHlL۶$йu H 2vf6H MH(Ͻem,>aqev.ȃoЉ%Pr6Zw̃ 2/@ܫBq?m("tPGC9:BAm ZBh{-ږHN׎J(yIV{sխչ'@A@  ((LȊk؟PDE]]#Ȋ 9($ tWU7ЕzAunh/rټFİ4Cp tN=54pu}5u`<A;+N :S-JԎq f`J o!@;x?xx;EWЖz~%͖}f !W@=崊]p[_ >g>_ }|p۶7K(%_6լ}z;oEG࿾Zl׿셓.0|\sZ=L~fN25A;\>,bϽ ixzC Վ!xH8W b-6 nrBn]oFFz඾CUA_vaNi-_w.,uHۿBxA~rSOo<o-Z%s?q0bϼ9z{eu>\羈B}Bӝ~ۑ Ndqg&~<#5+ܷ-sN'evGu-He j vH,M|) x]0>]Rq< 8G CNN@NNwUn }[U?GS;0Oy❷"|寡w⼁sy,H[sF8??^|9vozKiY|}g&@=0_x`lJq9>clO0u롾|z !~k+Cǟ5W1n%cs@K(v@ E{UtT1@p[_UЏ8`q' !qnpFeϠ4^ڱÊ􃝊BFp/_ƾ!4] B+{@[ ܿ}gQUʣhvb[H~4~2_&D_tu7q'{y[ տ(qB\~ 턓x ĻkF'ye}[V2DsЎz=;!yo[ݡ%̲I<<5>q$ i'ܰq'B; ? 1FvH_ݒk6T ΁u7y_!fa?-ys/wn|{)/K[| #tɽs"rQ,O,5, G|H^[9/x7-˘{QXVݞr{/@oM,rλ{tC\:߼ʻϛwB}YM,ތch`r9d.DK20 @=$d.fIuZҭ7!QKK,5eu@aXrWI4 ot }J눼ڱ' yuV- lL>!uC$W~K>d'y4?hvcQ]zvmɇ-w8ƒ#rIzů"))B9y:YW/| /.ux5= k眎jWE}o}oIggz I5KsuҚiMB?A'ח s߆WAM'B799)Y O-N) }&TsW ˜Aeb'n7֞~ұ7Rv1-JPO>up? E` uaBΪ?okǞASs<g3P;7gySOI?Q0Ol l Hei׋~kD1/vqز  ?ZaHzڛ Bm!r0!}e /~ۊ<ퟋ>Րe>eGa{&?tQYȀn餱e")(g쾾u vwI$cc@^덽AcǑ+N{_!% BgwĸeB.zcV8?oG z}y  a`E +QnܜuR?pGk6W|5:!I)XY^"SVG~nUbwzA4i0/iy=t`/>wUL v0s=;6MEs%c_̆Nm>[΄?ᛡx(guG\uÎQ, j~'Q{q5ڲBkjǝ%;0T @h;-7Bow~"Re:ݖqZ*{܌ep{_²;;-EUJӪ<ퟋ=zk]+etf2J;4&HD:>.AN"AQ~?~ƒ#<'?Bר^sxɽujM`>/6}?i0Ļnx7ӡ]eƢk3]f5ս W s:p g?^ȣ!r# 'k&[Up[A5'2nYjYn֛ 7yDIFz`'vTϩU;֊<ퟋ=|A'!, mUI}֬[m/È"A$D>6# sFp/툣֘몯&s۶zg]Ǯ>'?uqhs{kx4<;<$2;b{bC!w'vu|?IsY9evnzΊݱchV1QϜӱwש,%.kXRc *p/ll>hrm*+K/.l&g~.<ܓe [=NxV K :ӄ}Lx\ҫ^Bg=SS_t ޻u2Vwۆ50S~~Q}~0;n3)>KZf5 /t6zquݮRB}D6y?A+X9K/0t\HuV{E$nzI˂Q| ~iO9شcPd͇ ;wVvL~^ll|k}c}z*3o;+~țO?쀯Z=~?:+$z3;sݞ;cT6"?j(㫀mC?䰒Lz' g^(tY+ghe%z/q߮@~2XAH!+z΄_"JWދ - ;@}NQG/7=XW|llsiq~mra@{aۿ:u\nnF/~Rq˟yyS-{'!Ia2SNfdl|A|;`>0J׾TzDߊ^zG[oGa tCs׭G߇ו_W/q;"A+(7 = kG;Id$Z /|b7{/"g܋/d3 Է/} pSbY\aeܑ_.0׭G ֗!u3N,}6A=4]{ qPO<a7vr[ <(lڱ'@?pp1ٙ=rXMʣLk,Yu-SۆǞP&X+V.=YDlB/rI$'q qխN 7 ](羇'źacճ@sQLre# $R $#@^/~/xD; KA$ D" b <\}ae{C!z–|^|s`iyR IDAT3EO Bk"/I:lcϽI}+8G!zsW"}܃Ȗ{*(0̥# rez$ؒv_@]`R)턓IN{3߃_t ֊;{se=A](qewL\CAADm(q AAA5I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   D@ss:Lȳ~`*?99 MSH$L&122$lY&oXrAlh G__߲(i`k׮0fY$qQr3Xj5u ' GLݑg Bki0 u˲qxwi0 a.UmaNV}peY=zlZzNz/'`YVɿޝ ' v{bYdYahhB2#z3 lðXb {q)m*v HR.'0-R' '  4d_^6 B0B0)AAD`n՗L I$1,˲a/cem#"4MpI i% CG.0MCUr9$ t]i"NCU5xG k\jь<,  kȵ<<Qa2TUm[@P sɤ ")@U I>ˮ(JAV:(B8^XPU ry:uW0 Lö-Yֵ4"+ 3xi լw*LSfe>omf4eY@ P6Fg<Q`YvIEbj=ϗ胪*dIJn>{]yN]%!4M<χ`03s@ r<~ ~?q9hx\yEQ05!apppiXV"G:.XÆ rDfgg<%vԭZX l## M\Ѳ촉D`### fRFdfYd2eϙcEeT*D"H$Y15U.xx|n> |eY%`vvT\WX Q҇߻~DPe]O`pp}}DQr]>R)+W9SC9ĒtYq yjXFG}V((m, AEL&4033 ۶~8lZ^,J:v40 d92d:fffi*@!me|>|>_,X-rE#2*e  L֬Y2>_E2m[Y,4ll$N0 A(iT*iqe(ATdήTcccRGqzzsJAqP|SSѦvPsfwrER$0H0 SSъm*$TUC$_h{di!!@UUArm!LB49R9S 'X<8A"!_f'q`@D'>55 ۶!"VXY}`D4E>G,6@ }N06߇oѨ:*u$2;wx,˔|aa9Fl lY.hDf`hhNP(9sEf|G\L>/r$eYgɤl\ @CC%6M،06sMsv* ֮=13@;Jcvv#甌FDN1==MӐNgg, X4t]$Nm't-(0 ,c``f2i_z x~  v{( > }0D"M$D__IൡK V*Y<|!D"z0> i"Wtkh12' ~?R)cIτZljt.kѲIe9eYض̴D"MS,VZ],ycҹ+c1660%xh8)u̕2B쮲LT ^e1t )/( lv>,ړXٮL8+ܮɤ022Z \D:rpð`ԝ8/KP:1%olia27nI8fX/!tBLDZ. ru,)KûNb;T;9wyFa^j; TYir[#lVVݢ^o#V5S$,6r`~?dvL5zbeլ>Vg^ ' I0<֓e4e K+Ϥn&S_P85<š>|.װ鵶5,ntUk בY890lnX;p rufe=C[rP3(bU"!&"m ]謚;n6&ʹa/s@AH1 m`vVE.כMZIJYwv]wyfZeﺎb˥ K-w-s];wս/QO[f ^wXe4.n)KMw  rYd2(JeAu$q$ 7|LPv7]gsCa1^ ' @GcH$4ݳ14 } RBӊw)0ŖKe ] |QJ-[U^[O A<IZ&nssZ)8E(4ͶZoێPSk]wK9CݢnA.PbI/ahHeyΪ= .`(f3% ZŶ&0fXYHpw3y~>)bʥҲlh,9+af[f8fYKWRO_|\غu+vޖvnVV4cW>G>/ZE$ b59v&Ѵ]#އ&4ԇA?AN"At`G8#309YK\.z^4-LNN za\^]<6C2j<$1UYo1mH$2JdXWЃ|Uǽ Tjhe2aUv1vV+8ȷk'Y8Ծkjj; E %[,ղrLG"kHṍnKsbAH]Oe `EYnxM=Lh,Ʌm[² V9Ae2i{rrdٳ5T,GV&&&&`6)&rE;ϋutDtʲY7viy(4TYUǓs<%N{%iZF'd2b{J;& k7XLR^wȪ]ctRɊTTjVr,a]D ;aV{;A+}[ЊŰ}8ook2.XJЙDbi(*ςYŇb ~/ &&vB4 I>Xl6ÌU [.E"ru@&\>99\m;BņBQEQ0;;L&I0t(Jޛ#!+`-Ȭ.3:dfNg`g} ,aLOOA41O(:ypS_F(B:F>6/8m ytw烢(H&Meض(JYh \ \۷[-q/n[UtBoN cvwyS*hV3/#b||;A';irmVeYd4'Zyr-,F.hmAe"#@ 0 Q^ҽ+٬S'4q<~nG4Md2Y/KH9v+Edq: DZqKћc4:l6p8ضt:*<`0҇:V5? I$I]^0 l۶f͚p {$}ڵ`FԝDJ\C7]$X%Oh =$qyZ Fi z3 'D@XQ#A f$҂AZ!emې$ɻOXDZ`YAe9ca $a졝DXP```$X$IAh'    '    '    '    '    '    '    '    '    '    '    '    '    '   X\xKr&,ȳ$5.N077{WZ aY&oXrAq,B>(JMiY,ˑP$BUD"|D"d2ߏѺg:vYWV;?4[V;(9havZ0 GsA$=F*0:$|SNm0 .<EϱL333D$߄X^ۻy˲qxSi0 euLzi0 a6711۶_i"D_4-|>};OGK۶LZ~NKXll}}}{-^Ad2ضab$_-V%Dmj\  HX i AԖ#I>lܸ C[<(0t,$ I$Fǵ'aǝ=¶)̊ އa(Z r 0),4!fa8$5ClF.E.iX|>egYUd2YuôRU\` 2uܡE̶9i"J}-ˆ8ClF6u,BDdӮ6Ml4-<I!阦i0 im\ 7ئJ?`蔕㸺嫪*L\a@4˲moW,t: UD&|M@#C3Z0hx7L4( ]WaX9_ +GuiϹc{n4 rJ]o| mu-!4M<χ`0HFAH,7$CQ0$d"a֒eY"ɔ}67ʕ+ RE#zj*Z1N,pٻ 7YRɲqX(6]/]1;;,.鴓%qժՈbf3y bժ%R]=ٯ_QSGzW!```ajf*;axx@k"G:.1ڲXÆ vlffK3_ֹg+7#-m=84ǑJ%֯_ߑ<\.(LtJ${)i^W^ IN#XٶYӕubiKd]st xās5_kZ~I(D__h\vρTJʕ+`"r(&6nAXN҉ 933 UU 2)L)Y7`bb'l2BE!4 Lö-EOT Yayih{qwr>e"@ux$I6aYl71گTa ,B&hx<Q^oSfgAeMS:SSQAq,t](JeC [<#T~pEQ15{, zNb6P١p1^!me|>|>0d`YVXmβJsmd+2v_<Ae, 0<=LR$jBFG'L|D"fsu 8h.\NBU5D"H&0M X L" Bm d!!J B9"0@4@Uӱi}IEU {9Esss޹80JROMMöm+V|60`"vQ+^CH$044 m۶F]w"ܹ[eY˥N&իהw?;C4өF4Mb3Q<6D; ֮u F y!p~C s+J T*i/C.@c|hwY 82 +5۶0]Xc#LzخY]UuK}N,kAsŚTUêUJ}>&&vz"HQ`&<9",X*" ðJDUAX:J&]b8-Bם31ãe*r˲mj$J"p1،Ci*XŪU@e00_R匪 A$A)ns IDAT hF:N{n##:&"eٶ"pvQFGv4PÙ]GMQe&dT)TՏXy ]Үe C}]s`v 8xw)0ʤuY>p,č0peS :fV7+A$9 $: y)e *pV;?7$|RߺI 7Xycr,dRP.6ƛIȱ[ ,91θBa(;S՘5 V䪻>S-p HճwGA0 SVbۖzv;^ p 4Mv.(axm׿*֯߈7VS˲?:QsKaeVKӮDfAP)DmrA`HcX2i45L9=o1%oͦait;I H, Av[1HR0`缔Z.am3*Sz:ߏ\.L\b.eY v8N~d 5YL'Ƈv5փ aaΛmA t.\UsjN* rePHitVK_ M Yj9}o=L~q %q_X@[v122Xlig=,"7֮;yV)6w ,P3|ܠ!AQ;}y]N²JڧZjβrı2 ljs~&>onq*L& EQfve1R ' "`Y:cpP]_"4}IJ0[MuWZ wk:vw+]PsB4z[B!r\LeYuDdCC]LP_&WWauRO fff YaX-jT f{5!_kCe B5dHUU{o۶15-q@DQ2Javv:,F[sA$I4e 08("Uv M쩲A r/'i[𞫭[sw-6 DZ>F 3] PUuPD7DN[/S3 vVFQ0 `0t:]rF6m[^nd]\g$uc|h:900JXT*9HHnW2ٹve1rh :K, 1WńY$뢤k|zN T;βmErCyD۶˯wͼ)Iz ^IF5Lpu[„e9/+f>_]g5Mk*1{3ju,ˬ M͖8]ce?m˲0774144ܶ~ҮZKu"E͛oKj(_~8btNѨèBY0bi&Y yD"’ow۶塪N2 w ^ILB>-0` b۶0 #m3Dn'VZ:W28g DZqwtv3P 1(I~ȲnF.C>e %]בei9/QpT9e{w/6NuǎPUp[s]e,'lYfۭZT*]vH,94͂-P@@rq`0T0 \If߱ŲlS /:_.ЖNM e^.Nߒ-^rpu:Rݩ$cK+}ZKu"qD@D'q)ww]^fQwD"9wK=yT jEDGQ,k9ۨ]7 NVv4R] I$[e("WNr 9E3R] I$1~ض Iڞ8 F)X KvAHĢjjA,C*%A, h    '    '    '    '    '    '    '    '    '    '    '    '    '   X\xKR:Lȳ}>~?﮽W׿{nzpGycOjnϦpb``'c8N?d 7܊ի.v_*mpO< /(?$% mAN"At1ܙȳO;m.pd}xu`Щ{O\\xGzi^{ٳu5b4u/6]HR$ /$ `͚Kl4˝ފsY ' GW^㊟}D"{i{XإXn&qߤ᪫⪫6s]"' {g/ H$Xn<,gj*/~sxٿx5&&$%A zLˎfAkXrL&򬉉'o|qؼy~_ XN"aY>b*4Zr߲~- g_}e{d='ewTUxk_aছn3Tm WזVZ1yqrsҥ诿.i:{O-[֭aFYu;WXwޙ I*W:uZ\|L;vlյkW5|`-_J;v> >K(>>Nm>[(**R~ZĻ?[VjԨ YCxc7M5lBCkoߚ:S_VǏGرbwtijefG+U%Խ˪]BCi˖M|/ȑcs^SxsС{Zv.]ҨQ}^?Zׯ$=ToA?Cj~?J^O/ٳ$Ԗ[g( ?'O^^zP =۷wcim۶YU^i5Fd-ݶ|WZ?~$Ç\MCW2etT6S\\~ qOaAHDTDaMD  *=Zv@׮&cv:uVZxN+W.jUgXl Y[n2Zyk푐%K$yzB&}=СڱcE!1ye}ѿi*Vd\rFRxx&NC̺>Ⱦ}{Upa͙P͛7kg?ȬK\RR>3bM6d,͛w\jZ/U:~JIIQjK%ifW_ZjmZN=3l::ڵkN>B {Ɂ$)SV/Vɒ%+y]4l!>?,)*̮: 08Zqqrr*ٳ盝`7nZj:25އY'9}k|WZvsgDIڵ$)8B"Ou{J5m1EEpAŊO|ҥHJ=nҥ? o7ߤ1?evbP~CM4{QFMD($$"n [ZWO`]2ܖ:(reA,m nFvf>w`С>j\zX.2{O =󌋊/X=99YWb3QғQ v{}efNH|ᅎVx I(!&[[MDׯ'hݥ\ry\=Fg/Oҍ7s6ܹM5ԽKpٹs$C*SlK,&:vl´yF՛ 7oUV{HҖ->Zn~-@QQ&g޳z41,NR%vMrqm<'>h?fu?nݬ[7?npr*mWªU=O>i##/*!$'3/Ӓ{63h|vtGݖ5jw*((}߾3}s/7v@ڵ5|~-ЯW 39Pݵe6o(?ݼySΝL-\8OS~irƃ~SN*T?4$&&&hӦ_2=kkccPDkݻw5bm޼ڟyE5PZ.jY?V~/ou3<.111JiN(1[^hч$SUn>>yUYOrwڄgɀf@NZܬk~VF-u ť^]N=y$n!s>[VC…gt vH:._+厎(OρJNNVp1]Z˗jݺEWRRRWZZ$˧pumիgZҼyZ5f{bA֘15afg֗.]'\]Ǐ)"B l BX^ͪ^zrFm埐C]dp;|||6[~ԅ%ʔ)k]6 @;y28K#JW ݔ3/ȼy֬5j#G|&fdŊeԵk7@Hٳ1Z>\[^soԥKqOەŋ>f~gkkC=Ztr姌))u3^1G3N.Y~%Qf$լ@N͓l|AAGۭ[72<>`_\ҥI[H|}[aG]Xe$I}({2jix`n xŋK{Xs[NS~ը%^I}̟hѢQήB"ɓ}9M'ͮil} ae˖;O?r0ٺukkׯN>AS5jL![= #ٳKwě,s'^~l;VNOA*U$inGzձKy_'µkW5p`ݾ}[zzpwﮪUaXbbbTxquaQ9r$ƍ4N -5k~ֺG+EGGkaƑT >3OzZN#wzښu8aQK^gHi?#EG_7yӧԯˊSu5~[&˧MڵkvZdi&a=@TN-ZR@}";wV;vV||٭{w{( I@)uC}m]չsWլYK 8`׮w&s>ȤIiÆuu}YR[Y;wagtT..uTD JѷmذNgΜVNϫOO*娐ڶmBU^SdEM>E/Nze:/fiܸ 9#7j۶jԨ'odgWTs,֜mʕ͛7jԼy ]r62[#"Eh޼oջBBΨufjUM4͛7i/rlll4bcϯDn~iUjݺ*TC*(틫e{,I?-͙3K[nRԮ]{,YJtT{kd3/#0Ν4K'fX"mˉ9z%''Vۻ_m[W('r:yoߢ$URU?Fvvv&눊4vDֱ`w0:uBw49ݻf͚f]64ud<=jʔYڞ *jŊ53f.]K.ŋiŊ :|ikGN]hƌi:u>cжx2m5͘񹢣3:'ٻw_ٹf^`얘U5jĉ4nH1VG?DzzM0VaaڷoI'O>C֨ K}(%K״qz^|ٝ(I}o9;W µr2㲞=_ԩ_jN(˳ԩ֭[k׮-dĬU'Rۖ_fȑ%I..uԫ׋ 9c2z>\ʕ14Cl6ݘBL_6m;'ϕ+5s_GeW@yrrlQp1]rYOF]XsڲeTpaծ]W=zctﲷ[gjZ.i+M'Ozmݻwwܹ#gj;<d bWh4hfΜX[F'N7CUT`Z2TVu/o݁DB""**RH|}nu֎{snQٿOQQ^ ݴ@)=Xa`F6W䓕c襗zhb 9#OϞ 8XAPB0a"; Yf8io'8kP=bcʕEۤ ..5;voMš6mqnA ;]='8B"M͛;III_ڴi@(ZU;17o ȑúp!\wUJOU6:tWlyoΝx1pM(\ s \3D!@HD!@HD!@HD!@HD!@HD!@Hd]m0 HtXĄkjkwϙ3G+66\˖Seeƍ+8KoBU М9q>ZFs(;P{Utt1=իw*44H%JOw:D@J9k/y{{ҕ@ [}\+6h޼h -[(""XfY[PaaKTUUOaajkT^^R6kժm;VJJM|EGb A, $*?DsN݇u`?z݄4Tu++k1݇|:IRBB|P/"Eƿ;th$N>t|5c(W_wɮ$[TQQ`<+K6UuuMJJ/K""B̺:Ӕ1 j8)N9iMMSR͘1ZfY&IÆLu*bbtŧ+..|CTQQzkР^F8q6g&uSup*k$}v-_^^8Aw9G557lS~~$i#:t(O\3M%% PEE>h,iÆ}0aRRm҆ Իw}(5Zn8YZ̊ rsT^^lpFمjhh0@̤fYIIQ7=:n H$ @ H$xyէOBTTT\UWבܺNbdd̙*)22DaZl9NqۓD٬9s&h}ڶ~>q z/UYYCqۘĤhUWt`23sҋS%H Qnnq+VddJXXXp+$$@'ٽwQR<[g7 ל9WEDOXX^9>JA$zkEELTQQM$z3I H$Z睘8TXRfX@ H$DA" @ H$DA" @ H$DA" @8u{odHb$$@ H$DA" @ H$DA" @ H$DA" @ H$ H$DA" @ H$DA" @ H$DA" @ H$D@ HΛ$h;WYY- }tuH{ͭ"!P\\Ab+n H$DA" @ H$DA" @X$z__\ǏWA쭐IRiiHN VX5--);Oqq**: ssT_o47M7^Wx_WW7Fuu) $ըsI$[g}EUTn hzI.[nA7$]ye?~`I/o%; t%Iu2n?1cKot`Gy\ݱ]{wڹxY`Əg,ӺuzLef<}0͞KÛ'O9 W 6~՚5 *7En 6n\.7 S^>⊾tme6H ($ǩӞ=%PhcYYh;q*(&1-/?9}jhp]Mۤ6^&͛7H>>fN26A"v,5|pGetoZ>_ܳCBC}t=I t`o@͕mIHԥ&Ov>H7ڲuk#G*l =M>93Q'Ǒ(8%;Vߦ LWs?ߤM Hl rrjUi,YrH77r&Đ(ANAD@DD*))H!!ήa6Իwbb >\*Yd6ԷoQp wUfbc>\q:EO<]cF+([qq!zn_`zRT*+땗WÇ{^P%%*<;rr_թѲ@ѣm7ʺؕeם6m*ȑX۵JGz T||LɩjuO// QdJKkuPJJj=m6]:$R"}+:O:zByyU>4(Tw5TE`ї_K/jXp_͛7Hf%*2~ǒZ}qõ1rmڻDJUJJ$WWe_z&M}':_U\\VwFH.>숶n-t>RS#4o -__ߖ]>;7ܧrϝ@׬.J%$kРPL'^Jki ]ŕ3e {k0 ݻ{jU Xq#LEgE%⋭Z{wߝš./fCB|ݎu ԩ^۫իsΜ޺dISO;4mZn%Ewff}vf|s.4YaavnZڱKfOk~!;6J;q㮾wu"$Iw ѬYlkW}7C~z]dh̙z35aBL)ffLԇ$yGSu$ә>3Έm{5bDFP`RS#O4NF޿L?\;ES5ȖO஻n,ÿ}P[yC-GgCg3bu&n?N :>Sp4m8iR^|q}tTt4~ZQOm V`qqn ΖݦѴm>hl111-}gsꣷ:S78Ya9[g=mtGdkHo;=.<-$)11POei c3όks2x80vln%E&Uמ=%̙6,ܸ]p=:J=78i4hUl\E$/=8=F}1a7 w~/9ήP@ ĉqQAAz1ҕw1X,҂[xտnaq]wuii&[YY ȑQ5*R&駿}{8Yb?H xQ+/J^JJ Ҕ)qӰ~凝. 2}}ki⍧ mWg}󣒤e $KǬI!:F|l/iU_og1G3 SuXRRBU]]eˎh۶B{i8~z]ڌ؞6 r'[|qF=߱X7Wuu7eJ,{]ߥ$jhIoK/ }7C6X $>}]zGG'{KCv F)99H^^&w[k(?8Pc&; oh^m?M/٤M+]z,7[R$I74P_~y[jj]9zߌ'Pzk4tj*Y'.uYڮ>lv|>_'O8#a؞;{v/}vwjѢv~z䑑:x͞𷸲.~1}ǹƅnr:e2Yol$Įǎ6-^պv-?8K6[d($GGVӵo_c~a~ۡFKI UDon6 ŗmLhjj4&}}?y"c93Ѹ)d)Іewx;ҼWQ|պ5NFcG[mv-+P{覛VϏx2r5xpBC}$Yt-I?gήQj=bկ]) ?l0^Q3J6zu?VO?x=thSed~v7e]^^h# Vv&-5+99HӦ7ܹ6護9uSOx>:C{-vͫQEEߦ'lܭD lm Jֱw޹n70A"p8cX'ΰ i5?I k;Sf_MwMj3(n{n{no/r6hF .=1y[zzE:`2I۶j۶B-_x2/lTg1JL d ܟ+낧]G.4Y֝5kf룏'jpm횐6#(_mݻ_\7oq۪zx-ĶUmue>5U>kӛo6HI m66A"pر% Zkdi09tC߾ oy`Yrjzp![ hQ-w혶n-ԿiΡwij6WffYO--iPQQwk#IW^֬sI>vTv6iwc*cFg w|:Q{mf4}d'acǜ cb?]k:wPW9zwVCEfom#5{vfNRMMo/ƍZ6O[td.uzz鱒]OOhMoʹUjhO ##Y {yB %'w cfjt8 sr*KwO--Y:;UmmuWyn9vMs2@$tt\VpC:M>QݱWش@W]Jp׬ѣ4zt~A˫Gk{\EkVW_ { WnW3[RtI-M4MіnHw}ih;wO-]|T=mt :9RTM۬>'$ɮ+KFFiغ޿df֪o`}v:+NÆ-03t]YO>]G+$GQQ~jm~vAAofm w)))PvFyyUڹXe,%?ծm644(k??sO-]Sj񴶹۠0y4MGԮM:9'$%n;{;,>>zkHSd211P<2R_ג;~Z/S>*Id}_ӽ= [!o--xb i Z)cgʮn{N:u.NmPgDFztyy߮{5iKkz9NL\QN;NkwKֳ6]/ձgdMmNLt£@Bwk8$G_޸`7d{Dm:i֜}vjUc n5hHBO)mm$.Ɏᆁ=";/5#dNmӛv=-D${_{mӦ%Kן~zߑݻKϜpLikذnzvwi>>gruu}qjȖaI7ܘদ{%isNn}rƞ=%ڴx}=fm*--RsҺβDpζA{E5--R]#ۤ1#Qg7f|_ڵyƅSOPJJfLJNôphz\m^Ⱥuylszウt5շo\bbnq^ziqam[)|Ƕ{‘ڧÇ|}z剺cIcFW&u5w+/u&$\9ClkUj(?=1A& gcwc]3|rjkO?9Yӧ'O8##tuKk[LM+ IDAT9wwABi8OmЎ7# OS^7UWksz{zDED׬[oMѭA>>f#/?E2\z̝Yv\5zᒤIbӔ_:%%"{tI#ygl)cmѣ>{KlCl6)))PO<1Fk'#KRAAm5N]Y\]v+տ5~ӕU otj4@h]}]5<'M;MժWbbcbmX92ٳ4dH^xa'yyU׷POw;$պd!655 z7o kN; /[[vlM/-Zna;/ݳ{SyV7h>@Ӌ/ԟFL^#L&'f[~^}u>7.nlcG-YrHܳdMs,ت)mO@Y\Yvvm%$Dӓmvg`уnj6Rt Z,;=~?ŢGݢE2:yu=j& #[4{]P.N=}kx (?UUreeϏu[ԧO=ZÇ+WEi"uYq80D~Wnn7 .HR߾JJ TUUзrT_o=xy4wnqFхv9`[4cF<3VWFF,OYgY{z}uvWݩSuyI?:U'ۭSmtIbtJNRD {w-;L[ү_. UdJJjY/}pVo\7o[>=QC& pصX2M:־V6-Aώג%Z3b:8P&I17Mv'')4G5:zofQ:9Q:{(?%&*8اۏQZ3Q23zfYsTOlOq(-%a&,WCǎjop>=ܴ@o6P֙/)Y]y]J眓(??/UWjʔTS@YsI"N*:4L~~^2$L۷5f„hLRMM|} Vjj6l8l#";7}bMoD'Iҏ?kݺ|v8)$'\ZZdL#IZ6OZ~zlۦF4nN{UU$OqRټ%ˤHn ȑ Ib;mk 4ꌮ譴#0mЀ!Wd$)>>@&Ũ΢q5eJbcUTTKt!UVvo`Fo`%&F99c*o3>>f%I>@EE5ڷD|rCB-k+}}3&J5M&iƌDyf,H?MC죢jmZoVYYwi6-^zA{OCB|4|x$S]l/Y8ޱ93QKٕZ&WXڗVș4rWyHs&_QqUz5yrƎRT> Vaav*nl),:ƍoDDc~*RIIߘ^uX23ٳ4dH:|B_}L;wZ'Nw䳶g}IbΔmg G{r80D3f$w 6h>˫2"+\GTu&}bg*z3j͜ և-IҕJJ /${o7MY ַӍ>8K4s*(֟9sϔZTTsܸkN]7@3f$6պwoIYs}t]C~Yaa.ܪ+[L?1M׫Û5wn_ޭ7ktx%IqK㗤/Z7k7b7Q͖-ͭjWl-I#wg՝uJMcR^-ۡ?2ޛ??M^[ǎUjΜ}fF7v֬ɵНwUCE3f|;jZ&W VhhI,9 ҬNNw泷6X jZ-˝δ-Ŏ)ǎ!٤{+۬UV멧+99H703i!..@˖M'!ZDt֯Wjj"#Իwjo{xXʕSeM81F|rbi7֬]:M@S돫;d=IRAA>WeJI ՙg)"WO<1F?ZGjLSvv֮SAA"5fL.Zk駻&I*չϯ:5^iiz饉U.'r&Q{\qc4th^ziTQQVFFuYӃKw@JHPRRqBB JɽN ǎ$m^fTJJ.,Y~~^JO֭ĉ1ׅYojӝ֭Z&NV!*[,δMrW\Yx`.8YcmoرQӔQ֙~\74;-0ڸ&NbXqD֋͛ 3?9<=vO>9_z~AFw<1-]zH<.$E3c^^{=N-;u)0 DήtI~utMg٤nSOmW^>MgO~uv7X/0^zT]tFÍr]]xao=`э̕z w $}m]7Yz~5{v,9ԡ2ٔ3iV޻]\Yfydt@kN^zi|ƍw ʕɩԏ?橮"ooƏÍOCFvkhl6] oF4@Gz~x]{'5{v/-]zYKw~v\^JU!ڵ=Xgm+QE5ヘkҶ֙NL\Ζ-F3_ gJM~V8[/֒] Sii-j>΢:w:^ y׮bG4߻YvL&  >I3'I޲X?qSgfǷI98o`I֧ ݷٸ%KiCn)W\WfUTl؊GqN˙4cvwse}4)Fx5T^^'/]|cyy6o.0.ě=:tT4dH)kEۓD:{coiwgt6o]V8srU~pw]hkosi$A۶$6> LK^44O v5H СavKƍN@Y'^$ߕmߢYY:uN].ۢm-'-p6dre:o+Viּ].Z&Oe?_1j2]xٴ4a+nr,_ OW78ΦQw'W+mҍ;OE-~6?"9jTSA{E}PII'#۪eeuFѴ';봻ˍ3[WΜ\Um3[G=p)NJ3&J(4G%%FW;f(UNN⬳SM6媩PMsIhqU7wLs.Ndk ={JԷoz7&ؾ8Pzi4wqcݓrձ4cvwse}HN2.[[Gj\!1qwp_ ={Jm]^^]aqMc bxĎv5:3nf Wu;M{9h+9Gއ*8zeK722J]:A"ldrw90qYK.Iv5.γώ׬YJKTLݝ4ܹfdhk<̱cv\M=Zg+ԿɄAKgӨ;˓u̕v1;eJLidn %&jhSb<ټu1ujƌf}LWӣG+{cJL l6!tWg歫 gQMӹ[g@x ;iiڶXӫ ru%><\!!>EmM(wpS//|N7R[ʴkWzú:N}-ۺaӧMǯmLʗQw'W+냭Uܮ'ՕWZ(faFې! ֐!a5dG:r歫 g+꽟mgZ{lUWgі-81FiiڳD&SK׭W}E^^֙lK6l81.^/ЛokvKP0~vHRRB︋ {\ vKHӆgEϯVUUz z1.zv[dl)A6.3c5lmSiLuW޻=Y4fDlmZ i'E? 5e[n5 *;Z>a:$mZ?0k;t˙βn:m+<Z2[SƷޖשBg[W+ `Ak?w%;$~]fꥈ_ui**q{z] ;jwt}~\KLSPn9Eaaz=6oM>;"E)<sfsHydѽ?y*+u}.L|pƏn$JCmϏ׀!4)n>;۪%KzoO55 +..@sn.δ+3Y,m_*7@Lcc֑#z݌.oRR8#Vjhh߾R\yL%%~,lmXpʧs`<3VC)8GEE5ڶP?;Hg[JKk~l64hP_m5~:x,r۶"]r&+u̞\||̚81F QNN,wOw 7 կ(([ӧ'hРP#W<:]Un:m+z*-״k״'DA" @ H$DA" @ H$D& Z QEE ZcX, v IDAT@ H$DA" @ H$DA" @ H$DA" @ H$ H$DA" @ H$DA" @ H$p[p7o>xq,4߶m~~~~+P~׿KϚ5k4c %$$o߾ww}F1BNO|8[6M@*33ß㮫3xxߛLwoٻw9UVVY,N}Wmm^{5?~x/ٳ;p]plKf;~{2Y>@ ҥK5~xuVXafY ZxqA"(@h$Ν;1cƴ{'u|Xmۦ %''se2<2^Z4uT6&==]}222ﯴ4͝;WqqqNENNkÆ ***RLL&M/XaaavݻW:t$رcZbtt?65Ԉ#B-^XW]uSZK.ʕ+x >\\sBCC[̃C*99[rjjjfߵk֬Y]v)33Sݻ.r 4555Zr$i֬Yk_}GEq/ EATaA`IĮ*GcybIOXcbƘhL,DD^(#V`,hD!Ώuw) ߯sݹ|vf_>Z* :u`ƍ Cݺu1}B֙͢ AHL"2?.M՛fѢEbiijѢܼySIh$eȐ!z/Wl۶MZl)O?-r;,_\lll(۶mJ?}tiktIjINN6P{jDDDH͚5 ݊+ұcG ח 6o,T~7mϞ=QTzR)3))II-cƌћY.^fff#Jmjl[g""*$/^'еkWT\ؾ};N8;PF7nTV :uBŊq c3~ G899[npww Î;Id|||ҥKpssSCCU߿?VZ,lٲ^;ӧA߾}Q^=_~ARR{=<{ ǏJʕ+Q~}\x~)̙w}|h֬M @ӦMѵkWΝ;ؾ};^+VAJ9/e˖{ҥ ʖ-}!88oƠAp_}`nnuۻPm\u&""I$"*;&&&wBN8QwBHϞ=%--Mk{ppwʕFImY:Q8)Q1eiiYLh3tP P1}tnژL믿Əo'Mdk&С<==ҥ N*z*N>iGN5aÆ"hҤ |Mi*W]?pL2cƌ,Xu) )))HII1ؖf5h>*UR/1hР"XRu&""D""cOffx߲︸8@F ر#:vhTnRf|뭷 5>}Z^^^A|||>lٲ%޽S/[[[<|2eJ˾v\ifG|׵ޯX"-[~aɒ%jժet?DD b17+x5rssK|z= IUbDlll򄄄h6[Efu"""/[ ,Л?;;ە 65jX{E Jr|XXX9OIՙ$R_reXYY!-- 7n(}׬YS]}㣓~ٲeJ4qDL6M?Ju&"zp"iW^7sLrJT\SBeBǏLw"1o.QQQZ-le]6mz_VVVN9|o[*up#<<zBnn. trm.\ѼwKBiu&"bHDD*}4?;Jk֬Qfq|QHH תU+ҥK NW_U93gM/(w{C )0k~X͛oxҥ ɫWbԩ%KRJXlpL>]ޙO59Rc4GA:1H$"|N8Qifk…ޡyU sO?СC={URRRУG\cXvQeV ^3** cǎuxQSsss۷-[ `ƍ WWWtꖖѣGF޽<9tPGJ[re|EiV8p@Nczz:>C*/)9> wՙu!""2ewQ^ݻw*e˖ʶΝ;7|#ϗ:ӧ899,֮g)V*O@vZ,6lAߗF Ν;,^ׯJ%N+ӦMnݺ 9vEX=}Tݻ68p@)"믿2eHv䣏>1cHŊT*ٶmg֬YJ[ܺuK8:v(Mk]v))ϗ˗˄ f͚@6l9s\pADDO>m Ȩ QD$88X͚5%<<\o>c+eo޼N<6lXDp%`yUJ QJ zjqu2i$/ u 6mKrǍW"A㣸AbqLDDS08\{.*UnݺiӦ.޽{ؾ};._ ;5koo;X033';;bc!** >|||йsg#""<@*UPn]t%8޽׮] ׯ޽{ggϞhݺ+1>u&"7cHDDDDDD N\CDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$"""""ÌM@DT47n?Z :tի^qի_aڴi(_tGÇP2:p P"(̘1ƕ+W0{lL"@%"f "*'Ne˖O*KL2Tݒ&M=ތ xzz"66*TӧQF igϞYf/_QF,UV8~8 &&u-:9?*ǏI%DDFֺF]vΝ;qk׎y aÆӬY3=zIIIT[BD~\Çg#1H$"zubhӦ fϞ$FFF",, /^znݺiaPV-h6mBxx8LMMisrr?#** prr KKK%݁#GbXv-Ǝ: 44v޽III3f ;85 ؿ?>|-[bԨQ011App0=㭷￯ߢdԮ]cǎEڵ;vѣ:uꄶm*ۧ{!# ;`oزe ƍ}ӦMDzCCu+<<aaav\]]1vXԩS}Q/N8[nѣGq4j}V㏸r j5<==1fdEDdQ?~\H@@@j׮-7w\111Z-nnnbnn.wޒsppHFTVMIۦMy699Y8::JݺuDHf$##CI *U۷JO?Hlٲ@ʖ-+C1bTPA>c)[4o\9R &ҼysP={Ga>bqpp%KZoooWKKKx Ȑ QRN1552i$%ѣV888H||rg͚%ȑ#&-[Is-QT2g1b"a~}@KoooqrrRҥKFEqu333̴4ׯG۷++jZTZUHŊΝ;< N: ?EDd߾}@z!)))""c8p9sh*J\]]?OСCuO>Dٳ%''GDDRSS% @ȡCDKKKoVn߾-P 6l HF޽{ʅu떲ڵk IMMU(JG!jZ̙3K,2a„|M~???y䉈_ҦM ;wT҆ Y|yjp1cT*5 /_$J*ED$''Gk 'O6/ŭ O?Uꕕ%"".]''')W\֩SG*T gϞU.^Xȴix2#"2*U_9s&vZlllzjTV }݋Oz`XYYaժUQ/_G1p@|011Qy4h5={qaܸq\2LMM U/>tW^7o*yZ,L6 {FyB  Rfuppu`ffy͛߼y3ׯwwwڇ̚5 4`̘1PTZmVԾ(nߗT4Ұ`cʣo&OG!22YYYvjժ///%ȑ#1|۷֗}_uӸz*>|???b'MTmj8uƎs)_L:Er GSFQ"aLr%ի^F ;v̤Eѿ̚5 ׯ_+lA~W>ԧ63/F\\433Ӛ`($$C e˰l2899cǎ:t(:w̓D"'%%pvvr1ݵkW̧ytԺ@6mϟ{{{bĉx뭷gp @Ks2##Cv"͌Z qӦM:u*6mڄ nݺӇfEqT44wFsrr LhOVDD ^KӧUV0`􉉉xִHOOyҥKڵkɓ'Xp!6lHڵk0%Ms4&&F/_Dƍ1tPDDD`ܹӿ>|}Qu,/իWoakk (}ݾ}{,X3gyD"xb̙3 |~51A۶mXhذ!F~ZZVZFʕTdffq:w91%صkƉ'pYjҿ={+Qӗه//JnnnnpqqڵkmʕXt)LLLpTREgIwww@DDD D;v CU^;w&NZ`]͛7hݺ56l؀ׯ#<<;wÇ1ydU*&Nŋ#&&wFV#|ǰ p<{ W^E``(݋@a\t iֽ4w޼yBxOKJ IDATllh}Y=/c>*(c֬Yw:vcǎ!!!˖-ŋѰaC4k ׇ#lقKիǢEc4o\ݕ^U@['ŗTVMF)qqqzܹSYt\󲱱KjsppVZԩSҪT*5k*iw!666Z6m*gΜQ5tPeD:/v횲8o;Zyy׾ rMj/j ODF|}}=1899ɾ}Nb^^^^@>3˻NbQ0>ׯfffW}Q/n+ ,333r4hծ'''7|Snܸ*)P=z(-ZVGGGxzzȑ#v"##annf͚Zj:e޽{GÇFqqq8|04hzPwE;v 666t[SX`>C:߮]0c ̚5 zlٲ3f@vvj\/[ -׌M"'!"z~bʔ)X`4999033;._l~z]v!++1)) hҤ \\\^1eddPN>5j*;\8tڷofСXnaaaM6Ejj*]DD;I$"ѣƏcdd$|}}q嘢1cO>+Wr-WwlN"ѿyFx aÆEʷ~zŋ{a֭ann M""DDJ8x 0j(#((ɨ]6Ǝڵk+i#446lʕ+Ufbb"BCCѠAkNy?22aaax"ЫW/t *JIs$$$`ȑؾ};֮]cǢCHHH?+W@VcƌcPڵ {n$%%~x"t?}ЦMxyy~;vѣGt m۶U۷OC[nNN6l{{{b ž={ЫWBo~m]v mڴ/ !!.ʗ/?($&& >>>2d,--Sq׬Y'O|||0l076^Xc&"@ 2eik?bqpp%KZoooWKKKV|@tG Uޛ;wZ777177һwoIOOWHJdROw^Q@jժ@*V(w{""e )[888Hpp>L؇.OFF }w8qBDD233^,--ѣGm .tMOE|w}2͛ * (([fff7o3l߾5kDj{ƳgZ`mc CPP>SDGGcc`oo>y[[[ 4p"K,Qffŋ Mޱajjj zDDT$b~m@L24h233c彐P~S(i666Q^j[ݻwqMNVNرcq9N __"׷[*L " IJJBRRz +++mUTAqybǎx1 崨mYf?~<>sرVǏGHH;\={V'/ʘprssw_ai1D""?eha˖-E͛eggc֭033y[UvZ7x˖-7*Vwy3:(WÇ C׮]oxSF !))ɨcjpB8::*/MzA_MMM?ѣG(S >sܹƍC-P\94jF)M;֬YSg)U7ߋc#?E=f""*=ݔ%.\*U`̘1Zﻻ""{v+Vȑ#0`@Rv78qgϞ5NQ޾}{8::""" ?=?j׮> VBff&L4nX}9biܸ1ʗ/~O<ڶlٲ|$']Xiiih۶-fΜԩS A۶m7|Kte˖E >\'ͼy󐑑֭[cÆ ~:ѹsg<|'Owׇ#lقKիǢEc4o\3?.]BzzO>z*rss i:eee} C||LܹsM)~I,Lk֏ ʗ) 4kkk;vVYM63g(:thTvv|::| Y'Q0E9f""*}*|MKDD/Uff&.\XVZ4jҒ#DEE!&&hѢ ӧǍ7`mm wwBxE;v 666}Zi襤WJ}bccwӦMbgg7aaa!Z)SF֬YS)zXZZjB>}z>>>>Nݺu+T&M1b?~}:48q)))l@*q ֥+++###wށ9ݻ)SAx=fؓ'OsNÇԩSx־g͚hݺ5,Y+++wߡyO>7ofQFMS^=o{^?~{* VR~p[nݻ?^o>jo^oYƎ;p-888%~q#G:w 8y$lق7nׇr-j222sN9rwEJQzzz:= JN:ADqFnݺ>}DDD && ppp@ժU:u`˯O<'9}bܽ{[nETTRSSֶ$k"==PF7o6667o|?SN'ǵkהb{eggc֭8x RRRe˖Jvž={p]y߿>^ׯzpwwǃn:9sϞ=CZзo_4n8:u hhry5kքjժxLMMU;!jJ[پUvܹ}[Z*qm\tH6C}ݘsvayzzf͚3gV^!C.tۗنúup9dddzO+Kc뱳g"77W3E;wܹss)m9\v 0b|* ˗/ҥKW/_o5 Yfƍ'z.{z? ;㦧OM_R|myEޗ\xu҈PyU\9YbcNHHbff&999k۶m=RST{+N:|r[l۶M'OqZinn2AzYe߿tݻwҾ}{w.O<.]o汲@ٷoΤװa$33S3DD?.jқOVx<~xh_l(j7ጱ4Enn+WNH׮]tn3g/ݍ=gqKzzxxxUqlüݻWʗ/7_~ ַ4?/=Sǎ= h" &&&r=yܹ|V~x~ 1H| ?~\֬Y#v*s΂;vLT*888ȣGK``rrnذ*'Z7+YFgveҥ$VwAuy>C/RF%*URo/ׯ/'N,ֱk*ۛ6m*3gΔŋԩSMٶt"g~A?aÆ_|![[[ V"T57yթS'2oN:@&OwEV eԼռysɓ'Kpp̝;W xyy)oWNsal׮o^O.Æ %;CsƎ7nرce…2}t[ДvX[c/,,L^z@$00P%++T#G(i?" $F] QD_U>צN%ن󂫫X[[J:Ȍ3t fw-Kc'O(}7""{Vf+k~~5_^<3H$愹xBiڴ LSk }k5c e͛7K%HTT`gV$&&N9994WNVVV:?H|T*177>}ȭ[J322" @'_ffhB.@a;9 IDATN}._,@TSqklx9)[خ]?^v)?.T9qw{ei^eʔ3gh-4믵*T/zAEًKwo9tP?\KHHʗ.z/@K;H,OqODdĈ@hgCaĈ^vE:&H,v/9ALΞ=҃ĒlüsssɊRRR [lyƞ?c7ne2={!{nݺ)͛uQ0u6!79zTPAFc!ymڴIHժU}t0Ab- ;zh7֛Ν;z/xSXXr[۷DZfΜiz/α_rE㙚GRԩS"ArCܳgotOũoqIVZ|UV2w|/8/\9uvMp;tP5eVXQHYzwθbpzNMMUv>}Jd hC7Ś5kWK}S+ 2p@WϞ=7y%=g$>|Pڋwi%نy &L(oKcCūyUPAuh1޽{< ӦM^8))߿qơ]vHNNKK|egg?̞=54]R%iߚ7io4+WF׮]  TzaE=v777 %%'_)LСCҥ N*~;꫙tرcr +tED"++ +f̘WWWxNWŵxwC۶m iF+W.=&N}[[[{Wc^yիz?sgioi M6aÆ Z;v(-jڵkun{Y^*W;@TT/^&M*p̙yO=zX|9RSS4Q\bΌiiiJ~.ѿg7%dggcO;bʕZjWZk׮J*/Rvz7vط1VR%e>}4^~`_igcؼyso\\QFBLL KJ/'Oɓ8p۶mCLL rrrvZ\|PZ9s`˖-/!"pqq18SpŊmRlYެY3gLKKU? 99ҥ yi9ڷ4Jرcάimm j 5k̷œ^V9(|}}ѧOl۶ 3gD>}ʎ]'''TVK˿˗} BBB5kСC}=tgΜϟ???"55[lG}`Jix&8,[,/$ҥKӧ<_mܹ2dH| )GGǿ=Jrߚ;v`ǎmc EHH"""p-oK:0\wիWJ_2k9ڶmm>ñc0zh\|O & qYx{{֯_k1(^ֻ=^&$$7(hӦ VZI&!%%wݻuA߾}1lذ|PZ[C%aɒ%>gɁnz_tz^ztloo}EqoD@l` E؟Ę5cbbQş{XEWvaY纸.vf̙s̞)e"Vyyyi'Oưapq?~HKKCDD~goX~xK[Ece1T]M9ׯUV?v]c*ۭm Ue}_V/[~Q?, [n4hN>} ߼ MUy1HJvyL4 8p o߮I`֭={j%of͚!<<}ůZӜ9sxbW4l=ٳJ6U{nlܸڵC```[[[>c#xxx`8tV\)^E|ENJnzH6`ffɓ'cɐJ ޽{uVcƌݻFU*!+g}{ʕ+3g\\\jdU%ލPe_Y NNN%.ӧOӧr7+ |qn5l;5jN>Vxup@pppȑ#=z0p@]V-?۷.#X%={XWy!TJ @NGDD_5,:233tl@zW mEEE񁏏^|:tիW#88(((PxWI]P4EUUu ]lD-[@__IIIJ611Q]g6l(^)貯GUd~ cFFx~իWge7Dzٳ)))033Ö-[Y>}`н{w߿pTݽ/GM=kt˗/ktz_u'NO-_ ZZZo)IPPX& PL-_+DGGCWWcƌvzjӓ+nưaлwolٲEa T*US.s.9َXt)Wv켐(*+Q1Yv9/4?N:{%lzըz A" <(O8;w'{MUoś4l04i ݽhl3f allÇWj~e#?͕ gMɓ/q+L6 _I R-W-[m߾}/دtPTTL>]zG r `РAU:ݻ~zi |(>ãm۶N:=<<+ *VVVHKKW_}]v{7zM?" ,[ >>>F6mGGG;۷/5ٳ'] 6 "" p1׮]SWWɓ'\vvڥ @vڥ4O>u0m^vaMo=OOOxyy!//oůTS~~>p $''pssUH={҂sssݻwk.hkkcȐ!x5R8s  8;;cez Keﯺrssq%˗JhԨ5j:iN:! _~%6nXmfѳgO\z8|0ݻ|c᥾O6'Oɓ'ѿb/VT*xX[[㣏>BΝywAu>gהv$޽!0bVi٫sJ͛7ѥKj^qU"** 7FVYp/^7`ii~wUJ2z j@___ m+++DGG-8p Q vZ]u֡cǎ 'ډ9???<}oݻ@nd@""CHH DDT}8q?cǎ5~T`"Wy1H$"j]vhӦ rrroUĄCDD5DDDDDD$5DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDa99Ex<ҷ۬Y-hiIXDDDDD :y Sܨ^##VUݔ$D""""""*{9;wFо9nm=x΋9s_Ψ_ߐA"ef"66bcӧkW$~j.*.*, 07׃ Ċx""qj%KP"|_ 22ϞeogO/ku~} a%""""bX1`F8{6DyNҥ8 goS J偈.?1qb3L(N{83gܸ =AbRR}K yS\Ǖ+03Å 'Dݾ5k?Wϝ;J_ڽeaai>99E02A߾ְl!))+WC^^ƌi"ywڵu1p-40BZZ.\xO3}{jݺYV-\l88{ՅN'*44 ig++$&:u>}K/DNN41wWOwĢE};6Okԫň޽˽Oc„+48"66hsW|1H 7u e37Wde\]mhSg}}q$r";`*m)b{==-Lq07׫2)$""""bHaz˘o02* dĴli֭GVݻIڵuٳ,4lh,nnvU^F5%DDDDD fh}J^ȁO^xL…m0jTc=ԭdۑ0#N8G>EZZ>ݽl WW[tXզjJ>$R7>>ӰiCHSY(4WcǺB^_ ѷo} ҠؕVSIDDDD *6&Nl%KLF=m͛.! л5Ddfٳ,=Ƽym0bDC,ˡ"IDDDD jƍM 5h`LtlRݐjb<R8w.ǎ=CVV!V {UJ]RR^IDDDDTi]FFj4GJ޽\aa^ " HB@@ 괴$pt4٭pёP;I*Wv &Td>$RTTo^kUdd`̛X_ &$;:ǎ=S^=CqDU-ɿ(Ll}j5|5IDDDD Zl($m #`?bcaɒdeP}yGW09ϟg) _T[eI4{>F``r7;P:$""""zw/ŝ;I:#1m2mM:,KqHN΃DXA.2~x2GgzhR 88b WZ:zh8x0 ϟgG+IqfnJD߾ L=TW\{}`̘1H$5r_oܸ˗#$$x!jvѹsg'M9n޽{TJ'Jѹsg$''z={h$O2d۰ߵk/_v/޾Z11HXjj*J\ɓ'֭[`Ϟ=Q#''G&BÇzqr󊊊z+((Ve3dffߏu֡vڥ~:͚5X***(*>sDzGܹrӲ#::4i\R(} ߿?o:077Grr28Pj(JqtԩSJE!%%7nO:DDDTa8p U8###lݺU|-vÇR׮]Ë/PNݛQ9Jb QvX{TNhРlllͅ$  Ap9sXt8r KKK8;;cذa055-1eIǏ/^Txu5۷t.]ɓ' i'O.1@éSpemڴرcUz$mڴAVcǎO>QCR6MIq #** hРѼybgff>}pa<{ prr¤I`ddTʮcuӲ ʚ7묰G xxxgϞbӧOܹs-w;JbbNN]m/]T  K\V* k %ttt"aҤIz{-MqѣG桬i_߿7rssU.ɓ߹sGPZ R7n ծ][زeZmJVNw (]H_@80fпb&M$|K$aԩ҅),B/T^!88Ǻ@?~|Vu{\N^//_ OBffp~~"~[WR ==]JիsN:tm۶ _| }Zh 9s 5jN< WWWg?A7Uv 333:u h׮j 6  N>#G ..ƍCpp\|ʂ F֭[#22'N@\\N̚5K6˗ҥKHLLT ٭۷/vءt}/Ν;;wƠA`nn/^رcx!lقmbe%K ...U<==o>?.V<ǩMaÆ!00_5:uHYopbԨQpuuEvv66l؀0\x>3܉WWչx QFgϞUx@"zzzˆ#bWdW&ڷo_l~XXФI`gg'i$ ”)S˜1cT>U]AaÆ 3fx5[fٲeh+w[-["##%&& }FFF³gԾ(жm[i&O>] L2EAļcCu޽8RQ0h e?XiӦ8plllرH$ؽ{w-Zƍ8qFҖGUm,z3f駟GFF?߇vQ읗uŞ={Pvmdggc۶mѣ(~룚zxx( _upwwիprrœ9s曚/9m 4N#\}BBBh"۷/푞+V 99;y^)OWF6HDDUNTddd̙3GZZ,,,쌁BOOVU ///s7n 99vvvpttx%ٳg---899a07Cݻwk.hkkcȐ!*?*OWFmA"($D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDDC2|v@DDDDDDs~KvS""""""bHDDDDDD A"1H$""""""DDDDDD %aAUV|@PwdlìS}=nnޞ%{btԭkTbI&""֮*np,]M}'_7<=?Gp࣏Zը9ti+%GU36ԍNEذjyFzj AVV-,a`>+ lٹ66J޽J]VN5WyFWTon ((_kO̙~"_6wC 8w.F%++jݟqFU߆'&fF%:(# 5XZZHB,MZ{7%~Ȑ Q%}2o~~sZZH$VC(꿔_9Ǿ}ⴇ`cc?0HThiTZԩwuXhYEUՍ&E|W OWWOOA4iffXn8ܙ[f_`bp}OOAV ]c4/OǸqJ̋!֮۷ khٙ΍1rd[lt=uG&8q"gφC;ښ*]^OO|ׯBp?[[ukc>7Dzeύc۶ qDdt`?tG@׸}{L&/ڷŮ]cq$e]ZJ}7vdӧ¸ľFI;ܹ Y;wb~łm0t`1c:߆)'S>*533}-[|y}CY}AS7 pgptœ9o6ݛU=Tk _ttSи8'`Ĉg ch+>ԭwUҽ}Qu(UDT X-ZXyu`J$@rc%ܴMFNCLSBvJoΝc`Sh\i^h~cT*`qO!!/?|Qz\][!++/?ˏ[X=+Wٹ 9CBtt*v c=E\\:V>-OL~paԃ5j_`!M]qD>h+ }иJԬ~ 嗋Z<Qٕwqpwo}SÇEJJJk(W~}aȐm{/LEȶn<|#n_vgSv} Lȑ`m] Y _rPVGKǚ5 #Flǚ5: vmTjYDGbР pDfpvn,Qv Y/ f}AFuJVIE·O$npY;;3  ĭ[E ==;-;l1~|'| |bcu;eΝ??q|8bbWPT$Lrڵ޸}P%DDDTvʾ_::]]m ÇTk(oԨtuq`""qDM;\Ψdde#!!QQe먺Ul~.=)Vp =;Ӧ}C;o?aa8q"W;o#--ֵJ- H8:Z:pr [Wf׮ OMƍ!^t苪oW'(UǺ)oW>x3Lz"J[ӧ)x2S7@XXQ^P IL·z߇N[ǦM7`o_nnЦM}׼XW|eed'ŋZZxy=@Kk( CDD"gp\2忴ɓ˴M8t(P;7{[̜ ݻ7 {ʴ/"!!S̿T* 33_8t(ڵRRE:~pD*T> J*1{Yi/N]8\림R^z%PbEJhk%}yzz+>:QU t.S##=;dHk~ӧiڵ Wp_cc}EERkƺjݺ8z?0O?ێ}+K9X_䁈^x| }ʾt} zzpskӧCSr_|  矄VpŋM˴m)oƦ6>xhNN\ĬY0w t-[+vެ3e-VEE^} gҥ!n~[͛[K~RVz/K:ME鷫gΪcݔ^4Zͪo`ؠP< _].(xUZ=1w {<nn%B`nnKK[ZPB[[f,UxIngCdY6 nno>ol7zz:ع622:lXXcŊA;O̞>FjCᇎ{x,$*k9)R<K?OU=%Aup8o0a} E76GFu1ufP|U/\Y-yeNyl7]l_aY}>>1'2p=dd!44'v|}4-MD?PҔΪ{ݨ[QWkGv6 uPX(Enn! p/0ޏ J1mZ5}ؘ01@"yŋ)ͧx2 : W9XjԨN -6̙Pٙ}{["**}]]mH$ȑmnkJWEa߾E,ZWKK"jlSz4e-'eu\<KΝ CV֘5>/ڵ ޫrs qC,^ѩ~r_CGG+l!7zT* ))[RNYS>ۓ'I{7?ڶGWaY^} ;;3td'n#pSS˚N@ueiսnԭ+NNq$\\ɓ$q _|..-K^=o)Y3!HPT$_*qYX ~#ZZ"yy7$֭7g#?zX 2T[#!!7o>-6ʕHddͭ_T'#pdgvm}oTX[FRR>3`%`̘077g敶D>۬YGfP:4IEN#`#lMErr6BB^ʪS63usgʻ-MD?P*q׍Y͛[ aa ZѺ5R/T Ѧ5P9 uѪU=8Vez]qHLR9:P!!/FѠ)]{R!Ty ""zysKXZŋtDD$TFVP~m 8>׮Ǒ0nZO? ׊88bkEDDDD53Hܷ2.] cϰnqD_uvի==*/Z aeeVZ++34n\sO?gff"ifaa SSը_GXeLM-.m&VNG 33TGC"Ɋjp!oii y3Ғ@**3h~iiJjGK78Ч*9_<^E󴴴UzT3gnMKNʕan^  5u:˴ܹO>qBDDDDT*5&8AAT˖ ! .puw"YUMSx g|'pJ0<=Դ;vxaĈO1vr7Crr<g#4)l.OY3 + t^/V$&nz |ixuH>JƟ?gf֭OQEbbT1/RXUeɯ̵k!R+WѬZ QIJbnn&&/@aQw5<KK*sde_9055/| ?u۷}iRmE1bDyz^99066P/_s%\];#**k)ܛef> C)SFOߩS7o_Ax]FJcE=XʼYgyR8!""""*1Ψ.n=lqGuqK&{hҤ..uq ̟.֣$ϱq)X1DTӧ/aee33f-.\Vu{3} -^jFnʱeTڕuz.ӰFݲeC$$#**^#CDDDD:ꚱH<~)tuu H0zز+NxyӼUصkR w{fi~RS3Rv}ǧ`qb@6c%;6С)j6jp3f )::ژ9s(@WW zU) Sڕu\XX|v`*]),…]0t3 {kldĢ")f؈mf#<|+`jjo݃gK&O;v>Μϟ'?~y/pRqZ^^O6o ?3g3^H.q}nn]UnZ^^ .^D [Cmq7pqغRR21wf[%&N= Y*G1%уј0֭9s6vjKl9Yͭ+_{wϒPqR"-@ ~qlD "2;A9UGHE+! z7 o7gynCkkςw8NY;;GfW8>OHQ-H5[)οkԙ,+WdNtssېzLӐeupp\64 qʊD jk+foT_kt4\6R^OQvy>+R0m}+B^ B"ZX8ܧE%Kxs]XH(|CF#RӚQTQ{Kj]Բr4 $#T4PTVplB"ͻ@H毫5IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Berlin_page_1.png000066400000000000000000001751401420322575300272010ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxnT AE).^lؐQ zEQ(M H HCzBfǚIMv <nfΙ=vN=1$D""""""bHDDDDDD A"1H$"""""tTKN#ܥBDFFo?}";FFnĂ&"""""YAX;=ss9Ǝ폭[_vɤ5w>`7kD(,,{bqćxAzA*9b1bQMDDDDDt1jŨVd2)V >իѻww}oii_#.s,_D"R s5J<=/ >>{Oرh:t* iZPDDDDDDwnZTTC{ G~aiiJ *Zq|G  ^=OoQ}Ĥi$am s!IuV ی\wwGߣ K xd?~Y!$&¾^^>Ci"""""oFpqÅ HIs J c#g/ _HvX3ZAAA)J%ŗ^z`uT MDDDDDt'܌L2C{`51;8t}AFF>QPPZZ>;^\[`Ȑ&Ĵi`%K66ѝHf\.Eh7ll,bmBC}2\Z Oxy9!&& 99J%Dud4m""""""DDDDDDtGA"1H$""""""DDDDDD $QH::\CkU䉈 ~ll,`f&CUJ fEddѝ$>FTY>ѝ$VW+0}/AEE54 *+kPVV7"/ODDDDDtu,-M1vl{!99GAA)KN !fD""""""bHDDDDDDM`)6H,+a)v7%""""""DDDDDD $D""""""bHDDDDDD $ҥc0fL{8u*[DE>T`{(*رc*v[[3[7gϾ__<OO[4 mre Iu룍<o_?_Atק1thw~iv}='q+zm) cscin=#Go!:z 훋 gH>.]Z5kX,╁$vssz?kVw…l^6o??G̟Nj_$d2!C|)ȑ$_vLߐ!ń _ 3;vL妔+ph2"",,d6Woƍ\yǔ)>xHg'j9`ժs Əߊ={x=os],ύm7޸k'oFO?͂&Nk 4țW""""bzrÁp<|:"oB;u*AmtâE?L\r vvf~mԧmӋPVV+|]hP ?vEСxdgO@mi Œ%{>V{WޭF -P+x8w./b778fp`J~1T'ڲhN4l3gf|o?Dl5s kro.gQRRWW+^աcssKg58>yy:۝=sDQQ냟j]c1rrR Z  rZر=tf|UhG&@>cXl9 __<@BC0zt@RR.uڲU7~LK7'TYY ˡTjM֠\1H(ؽJJ(^U V6 R/ۻ7׌[UU/ HHlcb"ƺu0rKƩSiش8Ai7Vejݬk3--_ h8O Q-Q ''KؘGG9mښG"dl~ee5tW5d+Xlbbrquv sǘ1A'zug,jk-(_"""""w9s& yyexQ )k6mͣNcȥKHM-o"0iRol0I8v,2H8JXKK96 H&]Ek=ʗԓĚ%-ڋ 3/APB7؇ܲfo<#))?x}U4Xx/6mg_Fee-xÈkvGz(KN…,;pvĶm>۶=uܜhiG(0pUef&EH d2 ._EiiuikH&55J\լ}r ]`mm+WrQPPѮ&зdAqqѭ ڥXY~:|$E" """"""DDDDDD $D""""""bHDDDDDD"6l0KAŋ\pݔ$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""H:"QL yyz  5,-%jQ^d-66ڲhܪ~L7ZTV̄UCt2Epq1^ԠVxC.oot55j*Tv\P\@UꎭԞD"U9U* yr1HlZh>lH9o)?>=x|e"kxK*+1M?i ٳx-N_F 4ʻD۴i!6re_;hrDF`׮To{^'""<˗_fޱus_ړDׯ`ܸyr&ݔCXtĔ)>x " ADDDC$VU)PjpWW3X[k:+]i4M3RCaa nc:XRkwӓHDpu5yZ,aΜHbl5ccK0u1۬XWt\-:ڠFY[KhQOy@=>wߍ6fĉ^ip`ҥBYYp^e5|Z3v;wa)' +/ DOtowNòeQX, QQ,p^A"QtZ5^Zh=!ݛ ꃸAX(NOO XYI[ (-_^@,[7 89ɡVϯ Ðb||,jrMtDXggSxzCP#3h4^aa!,5kb:$?ss u UU*W#3zgm-9lmڵjT\hMus39b ;x:;vBcpv6T*n2*-Ö0LLDvY,}!w@k+%~mjנ pl w}֭.UG =0n,-uo1J7)8p Yid";-tXwl> 9M /0v;~n/;⧟Ot2OgfO?݃CLz١W/;Kлl,|utM$/7ߌ.z7ـ ~ػwzkc4\X(ҥ=x`|P  YxgǞ= $ĦK..fؾ}^}5b]=MaŊn+lY^AA6Xv}6!}=vEkKh~{Öy]^^:0ɩ>MKK?O7z]ćĽZmۆa,mۆ!$ĶK_;e!nS]긻oG`$FGN_[7mWN&"O pyHD+3HH(cǺgO[&vժ~xcN]߯֯ 5.\(D\\pSfLMMn@yG㳳{a)-{bQc jp5VL` ea!1qPUjch+/oG@* 3gcֶ`AL'.+ő#HO q@߾{{9l3ծ(oA@@ OJJΝj#FONcviVәr?~ %%pw7ǨQ773yֶT~m“jUֵT*Ɛ! w#nn>5*f c$tرB 曽S@kԨo_`jj]p]N:AWc3bwkcG]:JgQön@r_GM V:?č႕+aɒs~󁈈Abؾ=7|g œ9__+x{[KbE(1KF!9Lg[\^^01z!2eeMx88qj9nM#z7t{ܐΚ/޻77i'lX''S /]r|U ̞Ç[m ;v ˗_3p#Vkk)%X, gC%u]czgm-G  d4HlNw 7lΝ:opow튈&ks=?si 7oծ$6Ha{'7v mMԨQ(,Et\ٓ_v˴JJ,\xIIx` LnW65#uVxBPcٲ(>0{ǎu~*DDuw7ݷ/66zӶeKxL񆫫k0wI/#rs;;Mhc<<̑PٳO߲2*(R'&dS:Aac* ))eBti&MB„RߍNpl^}ou^v]jFɆ]`Oî]X:8x1cW$y&H燙N˿B_?/]S\jmp'X?L // 劯'Uc۶6_Z/7:&履ҐQu:}q ߮zmlkPG:jʕD@;#u9ӿ}'m$T}4uzL#(/ozr"6m^a|ͬwߍ6fG 3(~M ֯ &CV+/ AHX=&Mnq:uO|Evlք ݺ9 E.'zF.jK w9mwۓ ݷ^5W{ ]2q"#7=XfBCmum+W^jք\ƮA-uj9~=knbb};;w:Ο*nu hUG7JOM_*+6d"" +W.QPXX// aBp̃%lmLK+כ3o7t;w`׵;K{wlڢ4"fgW6k7ߤס˜_~YN`֬8tp oQA-rd5yBWl%3/xe[#6,5 5t7u+_:sgѮd,Q+|'m$fdm ^t(JJKkuqo&nfq3ZƝH];+VNFgH}'Lyna!o.qq%_vJ[<oݧ7Æ4|հ|RSBjjy ]6FPXa_|| \ƣɓRk۰qNNm5䵱נuԘ`jDG_/>IDDT&'mAS~~صkdk8IzZ|H$1RBFLLΟ/x&sPb];n͞Ѱ]@9/jFxio/GAAZD޽g// xzZݺY3slrvJ'svR`[3ʪ_z h7=7;l IDATv ݸDDt55mtp\V-NT7j8f Gꫡ8{L&F~O?jߟ?Oh/rh.#G, m ǫ6omJ[Ysu 񞍮M09_++Iyvq.tնۙaWu+\r UT( law׬LDDIV +J]5o/xwbHi)fØ1nx饳Fglk <VVR88XhgaSnf4_#5촍_YN=j,]evmנuiT\bQ7VT(w21H_|K;˽ߚ`q۶$lۖss 7xzjgtw7o;|-kqc,|7ᇽp`Νnpr7{}$2nի bE~hmu]w:\jmnkckAao/ufb"iwfZeng;7\˿-*+8y26Gć6\ϦqgMי7{G  @;ޭc:RX=(<|iB[.c-Ǧs]=EIC?K5oD"$aWP[ˍNnŋ{N b[6cx98{4ywn)3խw#!ѭ 4OLLq3\f87CRRY_?^':hy7ܡΟ!CM/4%wsVht^z T*2JWݔ=>E}7vߒNDt$_J2O>kt30| wi$7;c,0i7&MƸqFW* n:^zz>nK浱 :] /1s-Qoit9st֩mݭVDD oc}wUioGr#x ȼ7$>Tرǝآgnzqq%Z;v$!)ImrJ{ 'OA> b^{-TFP{3}^ 38߽z|JH(ETTzѢ:36fiBG,'B׵נMvQ DŽ ^DI$",[?f;""{e|}d2Z1HM{6Nn^!`b"^y'V'\8[>C"#%:>>s57nPکTj;=ȶmIԎ;7P#0`>tNW-[⑟~&~Zn-h9wpc:c$ln@^7kkNwZ&ڧpV=Mxio/~ؼyd2uuĹБm7 wAWmkã'Ok}wk`'l6 w SS`7SOe:ZDD+ɝ^ ll< tSS5hNN.n ɩ_$b|KK . …!ЍO k|rr1>?UU*,Yr7 2b@(jHbgaΔv=֬Vw\%% l%KBC8aϞQ((FEB`[&:c ,ZtNo}_'cKƿ)hG v1Ms[ "<y R5x(IB;v$cٲ ]~?F+.bc9{sn{;;FԿ/ooKP;88Q]BZZo@ο)vv2ooK dgW"3$­&,#G vvrԨWg pHnqw7x樮V!3ǎ]_]J=MLDxI_ ,taۼ9 aff1c1l3\]PYBJJt ڵ0rvђ%矹~.W۽W?MjYy0du(*A||)Lӽ%xao/Cii-RSqpr!wz1H$"sp]jǎꬑFDDDD]E@DhUvi]}}\i1H$[LrrLaa!% :cFqGnJDDDD]'!VQ48zT;P$>hƏԛ5˗K_lߞ$"""8&Z^mۆL_VV TU`M5c,<""""Dt;rr2ſ~YCٕذ!B#"""bHD;wwssxx\b+ӧ]<$QʼnkA"1H$""""""DDDDDD $D""""""bHDDDDDD I:"Q??+x{[h  aa!A@5JYi&ooKDF@:zEZZ9nqdb 悲Z=[pǗ]W~"""b̙-kSY;0q^{b$v3aŊ7GYe2AbG]W~"""b(jlmexQ(jlۖOFF||,Y#-4o^b6n,Nj)dط^ŕ`6P(Ԉ.f5Hb1"""$D>ꃚ>,%R1̬Ď,gO[TV*ZiL&F||vb׮T]Tzm5&&"d-;Lܤ]65my:DXDԲ1O]>55NIK5enD"2x -O,Mvv2Ɩ@ִ1 ꉡt[J.7X,)eg,bRqLKjƌ^s"ֻ^~9DjSoIiiIvxNkpPmKFaa^}5ΦXo̘)S|l\X 'Jg{uĉذ!b1re_x{[bcHH(DDx`DoZC*#% G^_$Bj9[̝0{X[KQYDLLqi.Zܹ4,]#Fya;??+LÝac#CYY-:6nEzz^ 0e!Rwߍ)n2ZIIeX1Ξvee#F`graC,JKkѿ ǻD2\P@}+1mqidbY3Æ9'Oaavذ!'N._8zCxc]#"=.*С΍3A3']iQ\ѧL9Ev ?<|0T* bc  ekʮ }}Sʪĉyغ.̝{R̰}0ˑ\ǯVX/**T8z4Uk]vF!NᇽZ'1x̰lY<=1{v߳q]¿'7%ěo(W|e">$=, :A9-ꉊZ,\x/vz7o 1ظ1V'[a%1~Dbb?%< wĤIϯƋ/F Dv:;>}f{3U={ x0 O?J,ZtIIeB][7᎘3''Q7#?h%KB1ev ZSvw]rš514h4}.'莅 {bL[a={СB5.WmnP[f~=[..f>=w.hY{{9>>07EDDD.9$5[$"ݛps3 qc@u +V\BnnvBn{.z ,\xV@`8'u{D^-o׹I/UCcjB$=惒^x!R;sii-Byw,!8֝S"a@TUg.& kVX#2~xE@YcGkʮ=61!(ؽ;Mh4AP#$r lld8e:"OXP>y_c3XvNսEDii^:;ZDDDw.47yjnJ fs4viikF599MffwZOgX>Ę13e8:Cdd.12xx#;GD6wž=Z"A$29R?m4?^e kk)Μy nh~h<˫6RDFy>`7{cl4) q9<P[j^؜5.[[N-=`s Ol591MLM@74ȱv' i֪qZ5T*&H֚}@#M"S#+Ǽy<[xDÇs0IWV&Һhi45!n7233K/`n~Do42~bcq=p7M- 8y2'ziѯ $]IZ(Æ .İ0{|,[q&˼ey[XH=wrqm'CRyѷOg=JDXmN6f,lob6()Q41HN(hQOdW/;rEobL#<ӯ=C9J_2 igԬɬdqB٧N^u sbɒP8:u&I^K.Z!={ڢRhJ%RSajjC>SO ՍK^Dž̟ws-`-mpWˡh'![0a`1e7*+„"AbNӣ ]BA jVVjk4G@ V۶%->}Sc}1k?PqʮS;'rC{- ~5W{1o^ U/޽ab"Bll jMX6VmZɲ\nkWT|ڱ E5 F cZ%?=x:|2 bL"lLMMWCcG222*лz"sg lܙɓqn03_DUÇ`$ol}ZnS}QXX3g u\\Lun+*ǠANع3GkKZZ-M)氱ܹzٺ5Vʕ}uk"`)SѯΟ$8 IDATΆZ+Wb-[/QPPS()^5R1^7lL&ȑ.9*b}y`Aغ5 kz;ulmeFbb)!unJ IX~ >4“O[7 s:6cG ŕ Fᇽc055Auey.b4?>]9&MƀHJ*0>ud*pR!$SV-,5.;kgo|XoԠ ?06[.c͚?SIDD R4;$~uFXX}ױr%V5Nj/F7{Wz l/Hlv:J̜yC:<˫ƛoG\\IiS2 JB$֮o_ DH - ٳxͨ6EKoJ߲kYpa~mwaÆ+¤A bE[7~~VX?7*?Wd=un5`d ''Sw'_R]s߾LὤR`͚HH(ԩǚaC,L1bNVWiS,:Ym,L=l{u+.b'<`7N_̝{QQ*ʻgO[(j,^||2g`~>7 iwĈ.X^~\T5.;kh!#_42ddTܹTMٱc8BBl0v飯RW/;iEG6&/ŕ+M΢}Z*({JrW^,@~񱄝 HH(m2`mM]$DX̬ŋMvߵ``'xyYڵ*nim ۪aXXX!"""";E@DDDDDD AbSjW o1DDDDDD$D""""""bHDDDDDD A"5d ?D@DDDDDD`wS""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDD}GQnzHB =NUH&,*ς^EEv.bWEQAAJ $tH(!e7cM$`ޯŝ93sfssfDI"$@ I$H$DI"$@ I$H I$H$DI"$@ I$H$DI"$@ I\*nzHahn]$h>}FPDn7$H$DI"$@ I9?Bu׵(qnZ))ٳHƎFIIiI&44@jE<~&Idtmߟ[$߯ ~g+<tVZ_JC$]$d""%I]߿Qr[gzezգGQÆرf#SH/A=7Hqq{j~eg[Իw#L11zk4d'nenVp23ڻj׮~(&&T=7HAA~neo&M(I:y2S˖UbI5kVUz5RTTzz{,-_>ECbi?R&7yj:OqDuDj̘ C]yjZp/ߧ ?Q Fkz6&H/jqqsW\}6=`OMWQja:z$h4WVp;So\o5T]VW?Kg$9n1}~;ꮻfرW4Slle= ,FSs-r+_}˯E1 u}n]jF7_^>[Z>o-ZtBԩSmD 1qqc[4k׿ɻmGj8F6]?>- S4aQpnkС ]zyn $%&ĉHWS߾=`OiKo}ё$ĉs={׺-?{6G+V8F>k֌a$sȡ#13ݹsI퇵u!eЊk>opkٕ+xRԺuM̟CV[~k&{ܙ$]ury @qt@zKOR^+aj>fe%IyɿΝGՠA׉g$Ȳ7oɠGDg'OI%+--X׭Hi>}~hh ΤСӅ9tHbߊ $`KxL&ǭ;vjͻ-Zntgl-}@8p ] D?h*rJ͛WS͚ᅮq.ؾ ID $';alڴJkWKUVRjiq-IlժF eꮤB^6nL$ux݄7AzմiU7$uRWqqս۷Bb$~uRSO`~zBתR@eeYxnײ9sIҔ)xHr:.Yp ŋM/b6=<}-j Z?ڼl9@]yeSĄn}GWR(IY45j Z?FkPRR6. ?V=|B,}@ڰ!Uw^|*ծ]Y]U.u]ˏ9ɓj=e!ݮ` myJ)=OZ>^^D쳋4}KrM޽ڵUDD=ēZls -^).͛jDY,ֿuݨQ+2xX.{Y?~ Ņk$DI"$@ IRzOb:;3gժ$SjU]W]՜Vgx v^Q6##GYYZ9R s< I$H$DI"$@ I$.?BKGǗo=fSϞɓP߾+DN:}IM-[W6d6{NZOչeXeٳg'jjZ`)$]RRK\q&=ڳg$If&~7oPJJԨQ نo߮CSNBlٲIVUWTT4m>[zRR׊`@XzFx||@/$ƪK=1L^$iծ]/>~"""ԬY W6q:IR IU K6M/VѴelolv$Kҥ3g~mQg$C*~=qmh ;qBbӦ lSmhYffvy<#IWլY :Ԯ]GWᒟt^}Jqj<:֭eZe0ԦM{@ 1Xꎿ#kӦ gvv㷻% +W.ג%u`BCCծ]|h ڲe=ڵMvd2<ի=z);;Kf}?Xjժg+rY_${+|Ѣڻw뺕鍊nVxxxl6Wh4+jjZbLUJԱc ~Kuq޽Kii'UN]nV\3TFc񯭜:uJ׽ )y:x0U*,,LuС7^׽{4o\۷WA;_oQ@@l٤kU͕~nݬ'OhŒhۯ+JB&ZjѢ2224{ڱc22*.Z7ZޗxԖ-VZ.qkb?+khذn\O<$+22J{Wzeyn\)꜖LjIR.+$$ĵʕ++-fϞ]╓cVvu5CUJ2sqG.fn(,Km/''[ ԔbѽK&X'IוzkTnnG;㏿(˖-Ѱa) @Z ܹ~`C=Dzq=ģ;wǶ4iٳ+)i-Zm͕ۗ~u렄=^χ%KVѣ_h„Ur^}E>}m1bGy_YP[޸q:uo{j˖MWߩc.z O<Ҝ+8DDDhϞsmOF+^wy~{x[?211Uᇟgeg_G)8_*Ve$m*r>y(QmtAA>|rs-7nVfYvޥm۶o[Ǹ;FkWV*U~ZY=ǹ,۶mg}xm۷joSE70LիP|͙3S'Nט1#f&QٗIb(IMD\?;;KZ֧~Tz[)''[۷ou+;iSZ`F{m3f|W))ɚ:zG]6lp܂z*EFFW^cn!+< IA2qqӏȑJMMQllbɱcGչe/UZuSVԖ-:6nܠPt\Əɓ_Д)/?VkŸ4hАbu ~VMFQ|3Gzu[~ͣt ٺu[XTl6;RIIUFM}Lj7}W߾ݵlIR˖FK&JR7ovBBB4y>BǏI֯_oS/4ŭС7[bw^o絝vxkcǎK/Mq4Ə'٬%un\e͛7xUycJMuh׮x]}uz%#F 7 ٳg5e˚<2/KהASEu|^?::FS~ JRj]Kulv'|(Izٗtx<wͣ\[2nM>Kc[ǥ/j֭['Hy~[LH $G+4h 4DUT)vDGxtz%Jwi޼>-AKu!}6xT/\"""4bHQr̪)h䫠z:ڸq5clQ"##u\4mmzYNɓ(?p`]qEIҎ=QT< jˎԩ^~5Ġ~mLG6l;p!͒+86SoaGYVŵ]w+;Zt<:;;ÇtIu٣\i_]╕yc֭%IfsNzkѢMif(00ȧ5I1~%9FOkWyDc'{M.>lR{-~Z9? YTl6};;[g՚7o/IPfm[Ј `K/M)p=1&%ן/IAmڷo${&&:0-qڻ7ATj5EGǔYs8w`9Կ$W$MvC?Z8~pw|yk24t^9p INrK&2335wW#yvkf[bGQ/:v|ZnzIrnֱcKp0]}uԩCJT'8)ib|`~}$i豅~j$U\1l6+55EwԺu=^-[4;weJZVU[lv{u&Xdzk݇YX[޲evL&_9F z6m]fIϕq]N:GBCC]V;^ڵ6mVH9o!eg_$@N/svڶm_`92FK֬YjwߺԮ]c?۷uFn^;[Vԯ M6UӦMU@@.nq X%xdTre{e0PxDrLwh޼ڿJf_uٲ::'""u;kYo$o6"o$yYX[?A89k$ Jym97KzCau,ۮ]sȎU^-o@{"##5`o3uc]\unNksgkJMMl֊iŊ4sך5GM+i{kܸi;vy-k9w /䓏FcԻw?nF[Um5zpoHvbr IDATLWU5k^E(I:GVZb}o䲨ݹ3k)*&qɟlyKsr=ޟZfIϕkXвWb>N4iZ;_K,K$B$NAF}rNSaV?,>l6eWܹsڽ{gݵk7uM򺒒kwoVZ%KJƊ㔔IRݺ Y߸:<*ByjxdzO_z1[233]_C%Iu|LY?2ms_Ž45u|I޽gYX[?R\xu۶mUnn ڴiA͒+JH}>>ʗv5xGm M=tV\&Io@ٗIbwYѝdz=iv"rssmVuapײk׮jۻ}׌EӼysuv\6QetsYOe/֖IѣG<)$vO4hky9W6o(&T+Ν]c+^g6uNʹij*6W&qpavHLС8Gp㷻fu!ݳg$#Ynj;JYYY);q㦪TZ]w ]w رk׿۶mw;w(''# 4rKy7wou}bck^ܝ5-.0)}ɒ<_FKFsuwY*K&JZڳgWAA$Qo}cٻb[[yhh4iVDUu/ȹYsy **G/JrF^Bm[۾}{mI҃>,2/ }ߓĂn̉zhԙ3g4q#%koYv]v9;̅%~ѝw!^;:eggYI/,htڶmuݿnҜ+[3O8zSjjnf+O6Gfoϻ ϻOtZO >Tfsw6oi\X9v>}?O%MK$9_:;nlZ/[6m֭[=P``6mz.L6 ~uYl(Ύfbt}Gڲev&ɤ{믋{>nZ=FvޥԒ%աCGedd~uuG]=h1dÆ\1xڹs6lcǎiZ'YwMne O:a=[oW^ڷP5mLwR}ʬM~Kw^W55pUEN`^jɒEѣ J1ڹ3^-jUu׳P[[.󿶹&y Ҕ6,͹y:tnEFFi۶-3grrr^Y,xm߾MfY7Q۶4k uJ*UҦMbo~gn+sag ھW'$"$ZvݲTzְYP {?yZ⋩Orܶuwz䘔dEvK;v5ꐿӿwÇ~Z_֭l}1дikr2WPrz3k[N233]P5OokN>7ߜB^xa~a魷h[}רh͚%$O?Zֽ{Ow^Y(ioQ!!!o.ѨanBDӦRBMי7 azSŭ/,-2aI^PҞ+#Gަ3ҎtaDײfZhʔ䓏)55#,x9o5Сy9رM9zٗ㴤q. ֗X=,%[nVb>EGGQ&ի"#.痛Eh׮:|"##U^ŵtBlZtm۪Cjժjٲ1TRSSs`կ@={v0==]|N<{jȐkfs6oޤPǎմi3mܸ^V@@I.0(i(Io̙(;;K5֝wS~-y56Ԝ9\ui/g.Ksc6edUժԵkw]~yb״j޼ڶmհa# 0X/8..T)$$9ǹ>})**zݩV}׌/mӦ>_WFF$ek3ghܸ;5nܝZbu,VÏ]z!>|HRgD@x&JMM3GڵFԩ$xu=V!jڴ9@^{[F ӑ#5fHϓO&G}gFuГO^IOdeiGT$n I$H$DI"$@(s~pcvѨQ \nu%%?觟e_ڮ]x4"9W$J#HZ" ]'6:wajԨzr:κu7+((I ?@e> Wݺ2$Nի]Zz啫5r䗗Ԉ\s,mzHf3I" 4ovY3w]w߽^ݻ7P2$NdfMhfM TPL\SF,znݺ%feYLc$ >|FǎejJj8y`:u#ɮU`n^j4nۉ UMղeu)--S7ԯٳ9EGq׭ڵ+F0IR*Խ{IQEN$( A $YACeԲdU:$id$qĈv($$m#FSZZyf/S>u׵Ըq\ݹsu\GԪdKHQR:QJ={{]g.:,OS|ײnjIJNԲe{xR͚UU^޺^;K˗vIo|PӦW1JJJs-+K$(cV!duFƏEvر ײP=D?IΝGu]3ݖ7h?zAʒ_|/ߧƍccT(@ڵNH5j …bH %'s=^1th+n}t['I'5q/^=L}6…ʬ<$ӠA ]k'[U:H%MZ$$xUuD%&Tjݺ[W@XL_lYYwBק(%THL<:u*KZ~Σj ZkW.@XL?ԓD:CNZС3nUy$#!\;G(//s=??SċsfB׋$8V$"L[Q:ԲeI^zċ%I]U\\uDuF_V$"2gV=#I2ƺO,W]'5\$Lf+4?N5nCe`nzHOҤIWQ1Z怒Դi]vY=l{k SZ%5n\E@HqA̛Cv]O=_0Sz≟~}JnW}E>}Eի+,,PYڼVLb-AO?ݿ/#sxSR@5DI"$@ I$JB'vʺN:ըNOժU ҂VgW5v{E9،eeYh|J+L"$@ I$H$DI"$@ I$H$DI"$@ I$H$DI"ϏMnL)$kZDL DpB_έUNEunqwiJi" !M;q'Ӿ~R+5DGcIr yMEuS; BP~?H>SN?N$.f^aKӧ]eJL?QALWƔ7=|$ ˴oOV-ZeJq$a\ųùy\+Xyh/6S2$Z!HbyXd,ef g OSEϾwDqO9ە1bȐ+*gV偽$)zE)7W0gesl5kI'kN-MjU苓\@mt?.[@rboiW֩$CSŽ+ )&FJM-29#CN# ]-*I2>ʕ9}ZIW 9_ʱ.=8ı}{eJN5Ȑム-2dgZr\6$c8&+_erYÇdv|Q-m6Ov˔,[TlbmAR׃in}?K}{e RnNʾa*zNRn^GJђmYOùs_;ۭ(l6+:plk(e}*`"G+MYWN>m*M|Bs<٢c|c.{ 2sy+;d:Y%aaʘG^j=L,PeW_tH!xue(|UЌd;_I\}2+4=#SE+ڸvlS2<;Fo@^'`oYƓ'd\YCo~O+eڛ7^u]3}_lRčWː){hr\'k2%%*`O2;i6;KYwobqñlׯn=vQۺY?̑!+SaKΗy)ru_ɔ,S~Ζ)5 HW9[:trK"!(acjSq6+{DeLIJ= MxP~[6)gYz=8X*p f3ۮ}rG(y2۫/>Sn{W!՗ki3-V+1GUK➣ũ%E uoSָdiV m+Ζc7@LL{v+`2M# 2 ϕWߖ(pLV]c<ΗP2%%*|Hd[:x蠫  Y:=rsix $_FnjڷFp$G\W!#~ >tŴ e1?}]WlΜQ XLtj|_)k<~LQ[pr[鯿z^M {q2%f-\u{Wۯ+^җ.klTs*)]2_9#`){Md[/:~_\ [bg8KRw*),`ϊu$){:{8=fu%Eg[%3Vw;lmA,+l(q :De>H:>AWΕ+8vWw;bn Ixi۽3 yI-eQDYUW,eo^bQ塃=Y!`.(~}Id⚿K/IF96-Y-7N-X*eٟ?PĨӤ*_3@!O`>'56w0ug1L}3qڸ2&8ATŸ:k۶8:u>%%{@9%lb):GnIEFb=}Z ]68| $v<#oBg s=LIR79u g-ߴ6vtнՃA95 ~FJXQڷ,PSEoQ$[:>ӁʭܮL\$2>$[nҵNIQ=:ɐ?/I,NN\Yiދ*\>Q4D +|rd8sF} yu2^|ZUn8*x#~er lmּwV>moO++kyI߽cm9ٲң{st>/}U*y}6iܸVmTʴ*="Lz0;Pn(9Z+]-9ԅje=ZwNIJae3D3ʍkߊ~V];/$cG ;(|yI>n}m*cjJe{DGtkfsL?{LgGd5Za@=2wB&>_'rIku l:zvљ$W*bQIk̗;m\*Ue<~Lq-u~y;9O\ b=+GgeLM-x-.NQo}lF< k*(^LxoÇe =} npvY*UeTeoXH.-;tVWU28,2*UeL|Ait\X\߆Zݾr&f,HWKvlQ2Ӷ-{,Cf-inCCݞt&W&?酊Cyo|:~QG)ٗv]jr9g!-x-]IE~.MvNz̡VkK7 I"r(2dg)g\o6muf'_(V!/?/ryiИi:|+MNZ:&NŸ\ϊ8חɤFugޓZJK.$jt:O+bu ;J~;UG7yڛޗ$e5;Ƽł]I`%]]f3w;$.^(M L;w!=AmԸN%~nG9۠=O>,x- \R)O!U`T6p)f I?IS\{_*ݯ,\7IV졡{Wv݊ޑkܟY3<OPț44t'ʤlQKu[+ڲI{q|u)g@ވs/zbC|ǤvǎNCV]ge Q}7ed/aC'=-cz{{"_'CvrP^ jyDWG|ǔGX۬;;bc^fl.>gA XTlV褧`.bJ { YnC_~U:GIѲ]tvYd-7)ijS-7:^!e2=_q}YEȞ] LBIξa_[[d"2K)KM&}=jrm#Ks?HyQ]{73[gV]C1i5شZ(@K! %B RhI@lb:`C(ӌeiUVwc4cH[%Y3{{ y4Ap\yPL,GyamϽ0١R~54"~-_z> `CW#;~OƎY?B``}!} 恑$|;SNC P@oe]n>xdp'Q=ڴv[:3ɡ&w 6ug~X2@8 8=O8PX_Oxip6B l>۵D(;=B8} {C>0>?_m{O9 ΥjmX yGlrƱq2|SMp{ k8ipa"e^Re9][à  I$FFzSo;oJؔ c@#; EBGpx/Z-wa]CRW^ߥg.8O9 1?;sΜYF@[#ူL$)ۀD]  d^]ҧMϯ-z T߉ǁ[Yj6@<4$~khME:}q}ȧ@ww3ۑ348Yn\8_; `m 鈣!4eL>2wB2QJ-m+5kj#R|SKS]:w;}ڔKAdn;s 9$ÍZv[qvw!; uĘcmq99FUg:2,AANxD]`&wAk+{1 XSU+tA$ r w1J۔fဪjH$bE nt)tZڽJ$H&Sp8jd2Ql6N wIJ 0(+ pPN?^StjPm[Ǘd2T* UUarz2! r'j;vs`#$e>c)p8U/w,C$F ɖe8CssK*0 ̙^Acѝa0E1 Aӆq!474z3仵lyʲ.9ss:0f`ƌ,=Jrf%(T)VNx p8Á3 |zLn-C"G"nnj3Boo/l6fΜU ޞ !*c@?N q >oT4-/#)Sp8*ҏw֬!0}uuARaSVt(U/CA$NHE[  V!*8ˡՅ^0>EQյex<>8(D"UU ]PWxpd29V wBel UU0 xMSH$ 2 I"tl `7t]rAQdݟ4MÔ)S˖H+~0̠a*3^Ơn,Kxp8"c`v=-c{ǁy8NHd5 <(XNnqt==wFG [yl6E]ho>cT~)EN. @d ,Y۲;16$ (j\( ]%vfJp8 ipUrr~AfC P "8t]C__/\.W;R!bQx<$ B&|nP#v8^7g?A)ywyZ[LzyCYQ__]w#Z1T*Bd>mmS fhjj*ଛaR m[Ql<.;p[9z9u -7!` fcrqP :RٲdNhL+A2j`&c!x$rW0$v"5BTUDZc*Ur,3JY*օur)+t%6I(0&!ga,┆YBgdn*Z28Xcx ]SF<_8JcjsL+BTt^G"Dbq:947d8,2J<%GMtLn7_0b֌(852n܌UsYVrtkә89n|fX2ՂRT[C0cPFKK+B>6x=Bﯸ>:95s,=Jx9z9t r19٠@Tj|f65WhNT2d\iWĜm6[|Fk:c)\m3rxyؙ9~фe6 ڄpzVbL(z[xL. J"H@4 ,# #k;Fv%k|qt&K9]~T}J*M '#<8ɤHD㶼v $T }#bBӆR!>c)ܖBl2,"n(#Þo|VG*~=Ur,0F YVvתKdjq,|LF> =cj9 b]tJ9KG9zYk"brBkƘz'4;~q\;CyYG0N$ &{RhZH0E IDATw3m J&-5M$I#ʒ㸂033_>22rVҘt:}6sƍٹ"m\h #N#Ng]t:h݋i~RHRzD}5.jއYA ՏM)s@r,u rېJ)NC Qnsw.J= r1/.dܛAx__BfsXtCTUC:a`;z0,6mEQRAi*ݺjKKH+je.B"0\.MkiH$$#ᰁ;wi:RA8N<qgDeR Hap8x^=dҨ*8n~ԎH$Va*x\(GNAokɲ EQq,vLj"`d~-uxUlzc~{9mUPm,U(9iKN"9`ӦӧgaHDԂA1DJ\ClSU"AdDQ+qEeADqP\B8v{ug(0Bz(r<;AxaK fA9  b RG$0̜N-AEC6p:}0 8" AfAAoQ   P   bBN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAA1&HCQt(Vg:4?a``wOeyfԩ`۩9!Np^$ 0}t,G-`0Qԣt[{^$A4FKKkc-[ +`Uw)Dm$ `ƌ`qO E:"vwEQʘtu0 3:5 Kjw}nvYi8VaRU(MӪ"JU穪 EQ(j DMw]]]ub}v\EAN"Qϻ AU5\.uAiH躎h4Vg?QL&QWW暾t[M'ƎD"]0,Li΍e% '&yCnB4lv|PUZ(P(I~œ9sIUt[QFQwI A$ +?(s=(/AA$" Tutd88|B#J"JCUUw^,M:,$E˚awDQ@*,gׁeȲ Y ΎAHAԊ8"U5M wCt]G2$e,nw-JH&EftxtL$(b+T*avKhSaO`Q^F-_QeP$\.m5Rw<(J0lxe*Rƈbh:T.jA;a$ADȲEQ:כ=JK1}5gUUA*ٱ>NbP}K&SHPU6 . ^$ Il8p8809DeF㠡'D"@SNi@s& Bhll>39sߏX,p8)SpT/Yg+&%qڴvB!$ yvӦg{ 4EU-Ϛ5;=p=!(*r; k$F<0ؒXٳrlz3yo:F(?Yv8F,r5kmUMRz{P̱+RLjPLYUU3ߋd2=jJ5#Ͻ30GssKEG5RJ3pg:Ws-gr5k6n0L^466.`0T*9s 1uT2 'qphmu Nl dYdՕ$!<x0uӧ( ] <EB"*녮k }@Xaiq(`ֻG ni. "H@eYNjevC C: ( vvf(Hp8 YҪx) 8khP wPx^CDԈwlvf8hu ` K4`˖Nkŗew+tOϸ﮾!IXINb*B>(nkC3fa7ۅƦ"h9)k,G﨓?l6ni$fCDjf~% 'qahTF8=lƤ 0  'qg^41KIB e,#af2uyk%3M#)HjT4n--`ey<^b4@GzY]%j$~`aQC* lMo=uV[,k{Fp&cD%j:Vb8qfO$-N%H!BIX8X麌U(sA9DI4Mщ^<"?Zw:JRlfr0WGZ 7VЩ\!dbܡ5Şg>U.c&\EANq\..46: \]v$Iţq\L 2.yQhָ\ڸqwbp okb3ӧިnuEq0D3DLy>GQ g-60z=YNH&uʀ:m5wj ji644Z;N v{qYc Y]hv*Ysu"6t"z`\y-.LƇ,N\`}O@k(>䌘^\f G4f^~=IX dY&šw78Y̐D"t:ex],]Rh\*D$rty|>qittl 0,nt8Շh4f9 $f[n^$18Ӗg1:VcDe528H%H$: ad2 ^!BQxJ2z'2u)ϕKqRZ]A$N D,6ā4>Km. SLVsRblhll,`Uֶ\dfAcڊX,Q<0p?TUːil|>455լLUUdҚnx" mp67e9DOCtCkk+RtINp*c#j+˅z{{ Bƽr àb(FQcX|ihhhD8<I g8]my76mM000UU\~Rm"6bDBD:]3ht9, cJ, '|躎T* Q4qp}6~ī jH> v^ŦM( [*zƍ_`ڴ:q%qHQTp 1; ]7t:yw݌T*t:Maۭ0beTdr8xpP8[w/j唵s3DQ_6COC2fꉑy6Ege]sR>;* jm;yrQ8Rĉ(شi#` %ۧ3EE }6y[ A9H XYDD"FS{ AA)A gQ\.WæA$( ee0ȊZpF AAN$㱁96e(;t?"AL. #k,9(Յ  'qcdæ+%t]x 7Nqq7 6aɶT :P   P   bBN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAAAN"AAA1&HGnOᨣ|2̝ vŰr ᬳNJ444ۺvvv-{3&mOv8{KϿ2FANbuY޻*fYO>yHIM$ؼw˲ UUg(L=?\s.E^$UUuUNvH-ۃ͛;&,6lh->}Ƅ)m1y8Yc r4Wz=q]?H=œimm ',R`abBn_<nf*A㡇6fTI$'ܹ ڟ#`8yANĠ'_'zn큮0 tAFAly欲 _&!%!1F4󺺶+;{5#$d  bNxY.B"$IPe_׊m2Ě5,8fm~gx7~ؼ 6XK-k__//_hMMM{}p"aO{ ̛^E6 IDATaڵCҘ5k6?y08#:.}/nl7Ik+_ꑖLV\H$)8ᄓ~X|g<^L2N8d0 ~$D__/ZZZ;O竩N /o^hhhN;gkSO=M6taqꩋRV>S_aÆr^SwF4;jg:P(Fޟ| H$bŋ8C֓b=bW6P:;;چvD?֭Dc]ٳAFFu}T6N cqk;o.t{\zX3SV̻S஻-h0ϟoLr/w{,[DZZZKN;[[ Qt?g:;;6x_ \vٷqYV:;7++^lYXWaedə%k޼vª9D"+tL&KN\[! V[+}o5L1 no%wלSjYϸ#Lf}؄6{좢w?m]?8∣pE" =pͷng͆.R<Ã׿.nC^^qygᥗ^c-Zy5iƬ|>\s8oL'ַ;k춶)xѥar:3ܙ|{?܎7|W_3`kp@2g̘|?7_ǟ?t(E?nCC#>dczRLs1Rʙƃg{W^yz7gE+WYm҉s9P?N:={"0|_`]Tb-:}}8 = X˖=W_{zw3;zT-cpG!GOOO?ol9x/iqy߮ZYz~qQ_üycݺ "矍|Gen?C8C> /?YV.umx䑇p80w~QzX?xG v>7xueaqakּ^[o[on;#իkd#Xҁrڣyv ƍ_b]pAdաzR|mc#;Kx59s9|7`lHS`}/+J r pu{e W7psƽ`oVxϔ)S+2_z鵌{#'|GyhDŌ3Cf^~Xhq' vCju׭暟|F!(=J'' ttlƍ_bį~VBOJєm,t$:;;0۷^o}p8I'}bȲonN2bBk W] ~;.pews^}ߴ;Wx_|7tÉbKrJV[|>|yV88{~Įax|Z_d|__ Iv8BHShll­ޕp饗|F!(=+'jmc#mGn%Ac9z8`ݺA9rXpntwO%&mmS3&J0V7lt{+]jWjn$~GL(9*A$eq ~O H馉TxA?g? H/^|99sq'.hx~oHIkX񟬬C$O?ok&A>aƌ&<O<zMtwwek(RVG:c~^3}zv~2>/7+Hr,FΦOgD:Xx54pƌY#姟~w:O:nMSvizGtv_$iTM2|:PN{TVROmc#'!6vwaǂq 'v߽3w>0BFooψߩÒ%gbɒ3i֭?(|/+`uzY/~䑿?}ti̛׎;Wդm}uŗ˯ZY?W3gƇEg%߼ySχd͞=Ϟ=:\smE]M(~ѱ`ԖC>}l6E-'cXH MZ3sffӦVXABALb(qu`Y睷V< 3X~mZvQ6lX着bWzY.k&v;dY$,PUcu;no&yj<ԓ3 9C Sj&/zw ygf)N\2'|2BknnNQ?^W{o˗/6:1Z oz}QG13L~YykՔw5d+=w};c0aV,.UF-Sp8 n^}ue˺>ZZ{٧3V;o# >x=Fx8SЉb=ykBan'cXi!$[9q=wKp8A9DY^6+Fڵm/uhֽ!?+f&s{|D]nyO;.^7Kr~8F I$jNccӟ_lG A++r w曯g|?կk >x_}1ny$ ou)qH\uOlH$8p~ى˗BEX=lx<-v-{}):P|KaOsOcӦ?[ছâE'bW [p`p paGbժ4'nlkjjF,>`2=’3ݎ; >=X O=$z0 >+-vN?,aWq{`چ5kڵbŊG= ]=~-x٧`8zX=riXqjY(WfŸ_|wu%ԓR|0z{8v}UYRp Ҭli\9ʑiaQߴspʕ@DqāBϓL㺸.sߟ܇}e3oA+V޽qZbrssUzf͊Su$%4_A"P$77|~TqZvUĪ{5q◺ l{i؉=hɒy;99'O+WO?E_ҩSIZdy^^^6m~isܨx2dƏ8ywEM6C-[ޯ;h4RRR,> }q  2Pϟ.00Hߘ/IUZ5`UEG+{{{Z[fh޼Y#Gq*Ywk|M7oŋW(--M/P\\η~5ھ}RSSTj5ծ6mŵL8|/_#GAu놪s,zNjӦ ڵk\]]ժUhq;M|ʴwb??Qx]JQQk ?XÚݪ^xi-[X>>K]|YE(..|+,W +-S >L?WWGyxwKHFB$IQQڠTZS+W/Q1[E"{6mڠQf]t^|999ѳgrֺzrϾԳ>O@bm+]}vBBzW@'5@͒N*)$,NHJM5j"{{R[_5 u].JHد'쪭[7+=Ҵe֭~}[lv䦫kǍkn ˵nȺm:J`{ܴ@Ʌ_OU^hÆuڰa]ƌo~ PVFK&D@pp9#jР>svv=XN;oҮ]رQժ~j^=KQ&B\pA 4T6 p(DE""@HP$(DE""@HP$(DE""@HP$ &D$(DE""@HP$(DE""@HP$(DE""@HP$(DE"DE""@HP$(DE""@HP$(DE""@HP$ ]~o" IrسQHrSE""@HP$(@ H1֭{_}Tvmo5mor֭{CVuZթy^??gq9WWG\bE7.5}YѶy]5lV77X\Զov`M3Mbb):z,xI:RRdkj,_^Z[gܬ067jŞ.p!C_~!߼RFt%LRt ]U*ű{-.׺uyh4]z9sG.5UVrqqOZvvvzٟ4xb= ._}]jUkEhҏ?>#''{?$EE'.t=aat)Kkڵc?S5ԯuOՌOR%wmrDN]ȑ%I_K]6wm14ܜԳ=Ikժѣôpa:tc4p *NkWر{I:_c={NG|k׆JIIWr%FaʕQTuj"mێjE/Tt5`By\qq;Ty8z4Eii:w|rsM:N7'Ϣ}_5}+~+^{GG{ms5 :V̉VBB.Us]™x^.eًJLt [lFluвe=ջ=rqq:7jڱ= c>M]*Uu*$WnrqqmUժUu]W utϘ/O'O^_o$y{miWhqEgeqlJ:.%uCmQ9'\UՑ#):syZd"?{Oi{_rRRҕ? 2ZkWzaC?%$$$L&թ`%$ͳ|HFڴ1O6ς$'_DQd>-\g~j֬CՠAUj_{}V,ŠC[lW1ZiiZڷիԲeMb>}wPFASJHHVDZl6m:ի+'hSu-cvJ#g3hEDDQwGm7lﮡ=~i;IIٳ7Mx1˪XDDVZZ7TJe%%]꣏d0\)De41 w[ڕF.Z8uFQsYKIOsrJO[h{ldw+쮪...#77'۹s}gjzz*_E9YYY9UnhQO*<{Qmڄȑ}|)ʰ8^\9y\s Cv ޒ%{dCdIӳ5?_ΝiEtȑzuow_-^oQ۷u;%W2_2oիlvnXT,rsMڰZRfھm;*OOWYEE*-Ү4rũ3ؔd\JC7߅a_BqX|<}eCC+O{տBwX:v/;oo7x<=]g- ]RSZ,NC,3}GԱc&N\wvSӷ+--Z>6ϒ$+F qvvPNQ9j&|6W{g`h4w{oξ}3/g2Zzn#:s&M?d^gtQddR``-^oҥqRLϓJL<?l'GG{ R MWp}qlIԬY;5zjn+UZ_;;nNٳ+G(q*lKK/߫*۷o1ʗwъ{tXFFVگkSduQ_Mx'&;w寽-)iv9uBctPÆ~[V\N>R m$mpH^j|͉6mv+;+_er ^nMN魷,fK/ޣ.]hʔVYz6oNTD :q"UU׹svY=dy{WLz;;O&tQDK+TpSt L/+66ItxyٳE5t[Ѯ4e}l;%aSgMypp%{iʕsVUd4du KJH8[9]]ZYNNڳ.\G^ի]wJɗnkggP&$+0[ի{j7$N7:*8G>>JJdWkRZYUWJJbb 죣n_9yN۲}kS9BB<رMճg1-~U1.>PToȓsxj֬wu޽;999j{:|x.@ 0ϏXMVD0-^UmѮZ~Q`ᣜKi?5~+/<*xoT|4fzW>%_U4s`gh͚,K3f ԁ͟s4}uW]c_XM5m=Zoߴ=z&ɅfX5h$IZlZj FTwPld><]&SgffX8VJRuv8%&ڵt K>l8|39sM {JAA%I&-w/3f4NΝ 9rUmR&OUvU6l^}tiQhɤ^ ]+8O=z#|(Ѩ_.''boԷ=),l뫯_#YQ;'kGղeyxY7WC͵鵸(--].t֭.WW'IRpp5}a†h4>ڶѣ֣w׷굕d ֭.g.j?4B St! ժU?ZKnӉ /$[{_oq7YuIm65߰aƌE[[ƒ5A3gѾ}5wb'i̘_4hc^=MVuէWھ}bcջP:w[h[sXgUŊ\`xjS>_*66Q7ϐyh)F%ҥ 9C,IZZ~֯M>SL̷jѢ_i~ӶmgFeddi:q"YS.WjEy[J2ֲW7W˖mW\?YKm>,w9l=;;}zd4ԡC3}̜\W2e^ֶ$:;KGiѢ-Z>F(;;ȶ?Bݺݣc_Og^pΟOӾ}.\#SZ7iBծG[,й6Fڿ/m۶/Eq޼MŎQޢ뼾fӵm~>Rh rDr9jhRZZz#ZcͿ&_ڵ>,$fdd8UYYɹR8^׍ڹydsK.]PV_]cǾ-[Clk44`TsO}uvOyN IYrww)^`ɓRd S4a¯>F#++'PcIbtӧS4{vg _ KIKc\hK~._Δ]':v,1񴜜5ur]p>y~4dggPrWn87蜯P֊;`7"IrtGkbT1QFFšZIaQ~\˻ItiMgG*$_kڴ?U.eM|=Zjm6nܣKGرVr=8iai+MW{LQVV]ԯd%%cyeff+$y@W}KS.4Ԝ9Cծ|JI'+<{\\ ժUc^*}GVX߯cѤ)So.ر4u;u򕏏Iaa *$I 4UqqliiHQQmz+ yVbsg?yzZD[22JͿ}_2YBB|HТEIf}DSv\} 3ߵkM`)_nXfŊTC_h=xbf'sy\Ssܹ5|xM ڮH?]pA/m=> ;mޜIb)JN.RAAԭ[tFcXN(Rff<}.7wɓJN.u ht,{lmRQQ22J4o=f9^qqN(Rvv=n %')Sx_BcnZZҊeJ]qKŖ,i0ڕ#I:yT-Ҙ|lbPd_3xVU:r@99e V nms[jKKd[JBee) S]("¯ہA">^ۯ[fhh}=ksT,8ScH~NׂDyٳԿ~锞}vʗ$qG#Y\כoƍp\- K\S7W>n=n~XIҗ_ԩ]5dHGc\-XpX[fEEkԮ~ lMryU|ŋtp ̋]i͜GcFzqJ]>)px}PqG]pA˺k{5k]t~M6eii|ѧE̋ق `GfM$k„Z(I#hРZ:Mo}H ݫWx`ry-JR^^öCt֠A-66X#;Gtk~:Q={rgO+{wMQs Cz彚5k֭˨q-z>O_ݻs~MO f|b͜N_}us

S>-&m=۶e:pĄ(+L+Vj߾S;:uٺ-揖 Ea|| VG⋣_nn^xa3,!!5z,GGg:HEERi&sQEEzZ"{,iΜ!9s**:z@￟޵;Ї1օFG@Ti׮lܙ#Ðrr?lLTmkQ짟ޥÇO_Q:)"O%%UJN.Һufowߥhܸ]vY7;&;H'F*4[Z: HK+.Zv %t$Z*[8eJ'ϳEªO?عa džD^.OONj>ukVH5ۭh:/__O]~yWuTii~!C6d:\u͈VjKK瓽l>V#:SG8܈[.CsK/j|ww}6j˖,IM7wtgjÒG txQ J=.Ǩ=pO?Ҝ9;T*C/GcƄ+85]޽ j\5qA%O]O<W3u}[d,զM(KA~zCK]ޝ ~yfXoncmW~~+5wn{oBx>TM\b&I<2X]׫Wo~} !ewٲ]n}}ᆾǾAz]Z6]˖%;. (&EkҤ u0l76;ݓxЦcc^0_(W]C#Gv /؆dTB]WG_yxwPrsk mkm۠ԒTϯɓO;c捘 \_M[E0mw>;u;c$IuЂ "7"6))Ŋ {M%tǨ9廙_!cRE$֖p-ԧO9oo|s?۠zsj}{{@מyfCaw1 8}zۖFwAͭLs  Jgi1~6 $gOO>m |e:GAAuww{5^5x">+WNNgP5,9sH||xc1N[|sÐ:*..d{вPM-[d*5Xm(M7uo3gx m:hQƌYZGiSmۜ9C4!W}mPc)SI#Ftu[??Ox=FwAͭ%=5ujP@nCk<ڿA"p4CKARR9̙<$&ԩ4{ 1]KU/@SS.$=dHGpCpCw^dӐ!u5̿:yQص+E%ACcgc6Sn ׿&Ke o}ew,\ҥޥ$Mbu-]w-@n.cc:Cj: ۖFwAͭL7ЧޡӦuuX >-&Y{w`۳'˫BB?s3/&ZsgCmSOҦMLלSUS7ڠ :}!UvSO˭ھ=[O?QTժ6uT^A-Vj٭:tqoP]vYW=9 5~|[򱱢ՇGG׳ݶAͭL =wͨޓڿ@{5Ѯ9}tEEUun%*a7ԲeZ,Y>>CPO2'Lmk!*Cwȑ%%)9HIIE:qȜ+'O4: ## m+m4Z*zjZ<77v՗hd 8K^J4zէ>S[0|x>{u!Vؑ;.oqu(]|qVJ$hXy-iQx9!r!-]\dՃ9TV ζkVnK/۪6)pmVk&lP>}4>6mK^A? vm>CrX`<3T|pD+WF7h6KW=`mْ eg߯9s35BҾyךuk Sllz R^A0 /7h]e )+x]heZZmPSmujj4h~40Ы&$!Vߔ`RvhlYdLz];\NX=nI_'iԮ5N,n *r׶\Fkxf襙3W^PgM)a t]sׅVvqvMm"'MYU'K4ĉjmOMZͨzM%" Kw}jIzk왻=oNLR}£@B=S||Me?q3EέpZ.mlJEm>ߪ$%.@lϿ@K'hFՇ{J99eN埚Z_'65SO mǯϧ3O<9ZG׺b["bsqc Zd&9zq3f|rN(;rOΝ(Qdjg[N?ױ>;ƍ&WLխ:_B;Vbu=]߶6LF7XsuY4^'sgNCwѓ40_Gܪ?>Zg>~!C?$}$%髯뫯kzvrz7#Nh^xTVcN/(З_^0 D\O![uY6mǾipplr…*wׅRv>FW IC/ "߾.5#,8Nmv-D,6cFoQҫWi$iӺ;3`@+R>SOoazh>wԯmR}=xyYtU=̿2QvԺjx8|5ٿ$ݛtV/Moq{"&&DÇ>YcѷߞhѺМeˉk]m쁥ҥ)uQ7$<44wn*+k+Wjٲӣ2Wd[Yjʔ.;6¼p~mz=:t(_V*CIIEofa^\OYwhwf̘sJ͘.zyYC<7Sn˭MzCs0m֝wntj? PDfM΍g_KlPggǶ;<TYi<=V=v M裃m:z@7VJ3{8srGtݛU^nuX YvΧ tfz衭JI9]O*'ӝw+M}2M2u?jÆ*-RUÇ{o`;Zx&hf4w0}f>/Ð9L"]}3Ί;n믷޲=_SXXW_Iy!tfTXyu 9^cn練^ޤr[[[㡊 kᑗ]U7ǭܔK/$mܘZp?z)9 -bNCCԥK@ϣ=D}vVCzl={FOﮰ0_s\mk.FEQ[P}ԣG*{zmtGty=:\sLW+O/F /iuZe˒u@wg~zQ.%h $- ,Wo=Nӧww lki,}Κ;{c[lOO.zl;w5{Ąh 5&Z(/w t=󟇷n?a[c&ن;b4mZWukó5}zwʨkUoSNOomκβtn JK+ӳmn6â^cR23@XX,zꩡ>zf=:\ wn{6;u0 ZZ*]{*;L~~3P=zK4ͭ}kժ4?^h8I9klY_}u-0Ġ /CA"7X**:t(鬠|pzݸ /uvS0OO.LaHtirCSS3ti$7ԏ<hrrtV;="=`]w]/D(3T}]J˪%@/& HRSbERRRJu=5fLƎul@pDA" @ H$DA" @֭Y>}O_Op`nd ۾~sۄIRBBکS >S%%yʄ[C IDATt:{ۮ_R RA yp>)H Q.YJY'Uҹ-.Sjj +Z\UsQk|5IeeUk>rkFv8ѓFp $wJ.1/@.d$>O~xD+WLN7\]^nҥɵN`HW]Cg~^[\^ګ/<^c?͛w n9ՖNtNK+ѕWE7^s$KF줷g~fѢz*.}4{]tQTiRjg?>]rt]t͛ݶAae>d?II֭d ?ya C #Թ_d]yJ5Wyjq%_^w'w*%2ytU=΍ג%'ogr9haʕS;Λw@￟3{kΚ={kN4}zw͞=D^^u9tS>;A-Xp}Ui+j+r;kVCO_|X{G+)H￟֕;n3jTvUNNN(R{գG"#g7mWtskiX>.cdž+8Ke(9X11!5jf?[ 4vl<Z:Me3g>yNuЄ ⭬RY"-Z~Btu^}qw^ƍP`6nR͞QUy7xI>:'Y3P$=IRX&N^tP~1CzFk g٥+lNQQ;6Baaٚ={|/\xLOԣG&Lp?ݛ5kޤO>eLQs|wss1wIڿ?Ow߽I%%U ҤIQ'XtegvJ3f$MYKPZZ.JQMufm[$i:JRYYFא!YM2ud,9J^盫N7Ct̙iS-P8^}4n6%oVTz{IH[{nkom_>}ֺA"Iw;016mԆ '>x]u]j6,L>xGp1yH֥jwC;7*>>G?x}DokvԳgz됎)Pzzݒ_=^Cj54AMGǻ対$)&&D u[Zۭodڻ w^~ð%KNv)%X$~^xa0S?ԱcZ,YӧwoTΕ4jT_޻뜛>X~zJJԻw^{m9N{|nҼytEQ׹FˢJC[d[ӽ!;v؆yxXdBJCvu1m˖E<3̡-,ԣnӖ-YZ,EW^ٽưM 5aBg=n=ZC\Ҏ55oV7]~,3@?^|qjGu%큳3th95Vs#Ǐ,v}6$[7yv!_XKN.nоJ`opC0,|C~'ܷrs0n #.$oU\\)E_xW =x$<a%z^|qDrO+,e/U^nU@5Ү1eKKr%Z<뜛>lܘG a _JRh Rii610KÆؑsy"I:p OEE`ۗE{Yc=DK/2Yn\ԼuW[o'dK#D{{lH{ h||< to`|qbcmAb^^s^Ft:"l#Pk\5k..=|vk;dn]ziZ}k1c"L#ԫWŧعv=cF^vM]V O_#FtQk'wss1w:~6<"s^Ak[f9^ήBBe9mmUyneGr4gnr Wm+QsҦݦ8[0gѣõ}{+P~~BB͡:קO"#a]s:(;|P!#6EaYU)9XkӦLi <:߳X#x3~7&&DJI,5':9r׏ո4jsn:Td^|׵tzyN}N* QVY@/ #;i͚tmۖm^۟GlPSI r:l\<+LU5w(7 J޺p7>/\CէO[W H0{`g!͛O/}q#xq6l8o"#v}]SR; aE9W̠=pU}a.|6@G9 s6ΝٗQk'wss1wuZaՇ.]Z-[b fX&]۷r>6ei.^טuʍ+Jc]m+Qӹ[W@aw4,*.WmAqxq= "Ⱦ&Tspg/JU߮5k}CԻw ՉEo_WKÙꚂ~;هEUV6ޫQUwkUrb4jsn:`/6hegDmْnc9v~|V<[t׺wF=Guˍ+j+\eeM=^] Hjh0mڔĄ0lCj&8fL<=-g^2rd/3g-qxѢuC|><Nͥ5!;YQ}Ҫzϻ5Ө=k{cݻ*1PGb lAΝ٪4gnAb> UNNv6=:gĜFm5yVzSۊR׸i߳z g-]}NEFT /sO7{JmնgƍЃuP˿t~{ ÐY>$'8SBBAsE̫soIҥԬY?J|muWBBvisD__ۨu2tXe&nߞmNZӔT\\taa5floeݕmɶDD=ۣGOiz$m:Hd^\i[׮v0/O5/kw?ҳgPۜ/mߙ>ݼo/IÇ&P:/L#n-]ŋ=oM6't8.sÕ4j^ؐ!iSfdT{6G׸4۹>(Ð0<}#F6yyZ(;򾭖uW%ۊb\Y{oo]WA"І jTUuv6,̷Ƥ ;MaoV~]k*glєt 9sv*5qhyz=lC.͠…ǴlYrǭjG11<=-*.;j|N2<;Hʕ4josnu ԥK Cz5siifޡJ{ꢋk+`ggᖘXJC}4Ųe)5nnx`+aѝwƴXn eJ޺VwӀ6;L"; jG咚ދh_;o裣 rX|9\~y7\c u?˺)8Kǎjݺ +&&DR!]|q nJ:wӓOTbbfAGg@>[UVV%=0^c#4}zw-YrB;vdhN U||ȓƍGÆi׮}yN(҄ UVf͙ڲ%K&Ei׮\|VO`ympR^ƌ WD=e^YӦuu)\I9Dӧo||<Qo=Q#ysܒVQk}ss[cÆi޼s?+%X۶e; }O?H]Ut P>:z@~~4GwsZ4G@䓻ó\͜[۴B\*MW)mE[쳻w)5N| #kRJ{j;aƍڴ)SVuYq~I%%â~uE d`dyxXtQ1"ŕǓڿ?OGqq5n\?qHkצ+5DɓsVk3tp;zq^2]c eqq4`@ʕ4josnuªM2{w*駞=ty2o~ ӻWQQVJf^tQt TnސJ6h JO/ѤI oЮ]9nmor@uf @0q @ HC `_@[m"-l5\DA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" @ H$DA" @ H$DA" @ H @ H$DA" @ H6W޽o׮]zǏ7{1_j~Z[kaM2Eի˛L8UTT49=j4IFUϻ>>5ٺu-ZGOCլYrZddd諯u)EDDhܸqPm>Gĉ4-_i::xbnAqqqرrsspB͘1åVVVoVk֬QFF4x`͜9S!!!AllzQ֬YrEGGkȐ!5?p6lؠ(11Q޽߿Zf$K/$mڴI_~8tMN{U[>ebK.aϴtR 0@siplw4h~ؐdxyy5y?!ɐdֺMbbMBBBo30alnPkRc֬Y?$$Xh1qDC6:|M#((GDD-r~Μ9n,K IFllڭjH2:?[WzmذӧOioZVcʔ)$#..(++/dxzz7ntxĸ馛 R,qwgzzMee?wسgO7|˶QUUetM.ͦ~g@Iv^< IѴi͛7kZ~Lxy{{77t>3IR=t%(22Rׯڵk5c uСI~w?AԹsg]~8ptReffkՒ%KIdƍ_+WԾ}cUVInF뮻N***_;hw۾}L"799rD|uwD{,,X8ٳG># IDATΝk/++Kw}$OƎp'xB|$iњ6m”ŋСCz5ds?g={ϟ+BSNUpp/_ *55U_+> Ç7($[{=<< ~z$9r5$ӧO7_p 4'qӦMW\qQXXp ^^^6ILOO7{ f8~wކ$[n5znvC1cƌ&kf8%&&WTT:u2$\pA{s9c C1j(aeee!ɸkgyy1aC1mڴ:{-/gsǏ|˶b1|||FpV6]$@6l[ćzȐdyyy~ .0$3glRhٹsAZc_| jhwߙ$5ʐdu~/b8qQAҥK͛7oFHH!xꩧկ~eH2 b/6$ƁjF:ԙ IF GYgmVZQl|+|g@\Ԡn=}Boa?iΜ9:2D?${|&}Ҟɓ'kn3uT 8PeߡCm۶CM9ç~ڨ}]V4j(3m5m4I2Rxxvޭ~X%I/ Pc_111Unnnii_yVغ&**k;_Dhj奂V9#G$I#Fs)Shʔ)MJJ9[v TQQ_ ѣnM?É'*## U^^.\~>|\g欍}cǎ9k믿.6hc+))ё#G+V/33gugpUS3  999͕$u֭YPIݻm{}5jz鰽,\PTYYXܹSw3%K4hn4\s5˵tRIoQ~k}'ڰaRRRzJDDD}69]DhW&WVVvjfxVgXP@vn;͛Ш|':SUU%KZZgmٔmذ{zk|ee:-^ bcc5tPjĈJHH<T|63DhWk}=::Z*..VRRRO>;tQ&׮]}(;E5PBBtRgקOeddh… hҤIuv[zWuWkܸq5?,=z'j [|ԧ530q z?{we$$bKl&XJR%* ڪ*jQUԮbKI$RkTDho7cfLu]s]s^r̹}_k .\0fը\rSBeBǏLw?3s-pVff^6m z?eʔ+;y\_|~7رCɣƏ?Cի1tPgΝ?`Fs}. >2LD UΡ}4+W4ҺuY_yf}UV%Ko5jߚ s_A3ơCp}L߷o_ߚ8xgѵkWhׯ_ɓ/FJl2ڵk:uξ>|zg> )6\#//+DD (W"'N( 43X`\||EUp@Ϟ=߸q=B= sEaÆ F666J 3f wË4CM-,,ЧO<ӷl[*NNN-%%Ǐaee޽{x~sРAHIIA= r .zVA:s155~)lyyYy&"z.r>ct]k?-[TuE{7otQ{':/kט3g}jO)nݺwC/,:tNV|Ҹqc eʔ.],=?6m$&&&@lmmO>2eywt@,--%,,K=}T;M0A)CY""XZZ )UkN>3=zTXQܹSf̙JYܹsG<:u$^zZ/ RU͛'˗/KZ4jHI3}tt针+Ϟ=k >|HGll]DDj3A"K UoKJJTT`("J2ecP 1##C>C155ٿ>|X>3DQzϿVZw;cM6)޶m[;uꔲСC$*ˋU͛]VyܼyS|G:?XXXGVK@@n߾|ñj*Ԯ]WkӧO[ d󍈈70zh}|2j5zw}WO?ڵkwA@@BCCaffOOO 2wVV~g#..ĀPti%ݡC#F`׮]ذaƌ;"00AAA{">>GFXX1rHHJJB˖-1rHǎÃмys|Z-H>/44ׯGBBԩ1cƠN:`|z&o8vbbbΝ;m۶(=rRSS\۷o_oؾ};Ǝ> hР 1?uh(9"88QQQprr˜1cPnBEa0y@pp0u&رǎ_ƍO>WVX\׮]J+F ;;;vVDD嚮N:bii)ʲٳgT*WXXXݻ*jW7n,zJ6mÇ !^ׯ/@Zh!iiiJZ???TڵKLLLZJDD|}}lٲ@ʖ-+jZdRBϥlٲ%vvv@F!C+++ *ٳNy7ÇZ-/J%ҠA K\א4߿J%u333 }nԨQbcc#Jj̙3Hze˖:iܹ#&&&_DFFs#7߈xxxRfW\1. [͛+LII_#M]Z[[ˮ]tJ%J*RZ5 +V )Hܹ?SDD8 G#yO_|$""S4hNP3c  f͒,ILL??? G K.-666?ݻw%33SY(d˖-Ziܸܿ_wtt"wQ[N > ÇJ*Uȹs/2~\>>>,""iFȞ={@/_~5AbhhL6MLLL:\zUoX:̭*U$/^,L4(l6o/RWFF\rE\rJpYn]P?^vѢE@LΌN\CDTLV y&`PذalmmXv-WőX|9\\\eʔ5kPfM,_?١_~O`jj y3;cǎEʕaff|7WٵkWW_}*U(իʶ{FFLeȑ#ann8cܹP֯_VqFcܹs___mۦ|۶mpss Z̜9 6b011*Ea뾨򦑒W^[4i?~ӧO###QQQ]6ݕGyf'EDdD"b@呙piR>* [ƽ{.+TΝ;kGJJ ]7n6oެ<ە\ċ-[6:t _)xeʔ 潼pB׹+z-lٲEY4nC}ڷoҥKk`l][E7ׯ#)) >>>:3~GHLLD۶mR3g`̘1pcɓNN\CDTLnݺprrBll,233cIgrJLLT@:99MSvm@tt45kسg8ŋx)ʕ+g8}J*r c+W.ԨQC5k",,̤닙3g͛prr!"xsݮuO^efl][E7huinn5͛1`,[ ˖-:uAK.줈$G!""UTr1ݭ[7 2v{7Mzz)S0o<'NDm%V@'dZZ53jAĀL<hذ!ׯopcPغ(ʛhVVViSN!((!!!ǦM0yd̛7D"d<}~)ZjD2eзo_qqqxִ111HMMby@:u QF8}VJ1y/j;zGFF|Er...pss֭[1h >>h޼9`ccOOOxzz*uݾ}{̟?ӧO~LDD|&-Z_|0a„睭)ڶm`ܸqC+}BB5jQFi-OII5ktϨ\2t4iD`HHȫEcDދ <<< 8qΟ?o]-C|}}qy̝;7ϡ%Y%]őz6l@JJֺիWcɒ%055ťKPjUH:;;"ܕ'""DDE",,  R>]t&NJΝ4n[l͛7.] )) &Mڿ &NE!22{EVc|簴#P<{ ׯ_DŽ t/qBD 8߹s"##۷Gpp0bbbyfx{{ _~e ]K]9[QqEq3gѩS'!66˖-âEШQ#hnnn۱d\~111Xp!v ///evW""zBDd{_KeĈw={(/|eɒ%ZjjJ&ODfΜ)JݻwVf͚ɹsc 4HyO"=/R^>;ͻrNDd„ @n߾4'"bmm-޹on֯_/VVVZ Jg{srww2gĂanu^ǧH u_ؼ{Obvv̟?_͵۰aCr=x888r-vfDDHQLLDDc#22UT;Z ATTN> hիW{p1$%%7qQ4l͛7]|aaaF=eQ彠 z ͛7Q~}4m/].J:o~wǣ~hٲ{?>}Pܺu VVVpvv; 3H$"""*I|&$.'b μHDDD/I$""""""D""""""bHDR]zӦM ƴi}̘1.Wc̟?_o,W^58{FPP222^ٲw8}46m GG?4ƍPΞ=5kk[ggg\v po^'͠AqFӮ5kDDEE#&ћwzqƽvxix{{/"""p =}|2j5zw}&&&JC!66#F]a3;vDll,V\k׮ARGs@݋x~M6pwwϳvލcǎ!&&...ܹ3ڶm?pr#G 55~~~uYYYزe 퍽{bطoẓͭwwwiFk_~3 ʲٳgT*WXXXݻ*RJk.111j*ٿT* UTjժ $ IDATX_zQDWʖ-+lٲV_Ȝ9st}ذa@+IT*[ 裏tF VVVV%&&&:=xѣG޽{8p*yzzܾ}[ٳbnn.}U%$${{{_ iѢզ޽+M6biikNYԩgW=g""*~ ^ QRI*Uܹsŋ ?~,66VLLL{:ǪYTXQ222DD@z!='OH~|Z@ҥF~{dffJݺuB ry%EL2`|l٢xᡕ.55UlllI&y||||$99YDDoiӦ={(iCCC,_={]vVZT*Ϟ=C```oa֬Y_"""k׮UO>Ͽmlln޼Y6͛7/VffE Mζafff zDDT$f:tH*U*m>cʲ͛7LYff&ѦMX[[#++KT*n۷;Jggg9scƌ eʔɓ]vء,DxeʔZWjUxyyŋFݻ 4H95iAO>A-0n8|WѩS'}77oVuK.!;;~~~:`3Ɯ31H$"O󚅂Zؾ}rm6xzzEرcu>7n$&&jvZ߼y3z-,[ X")瞔`t nT}j֬unYM,X{{{ ^>-s333Ox1J*J~كcwArиqcݦ4XV-ufff^^l)9QDD%H3.++`:Ma4ѱcG߿O<3gٳg+iT*[n2d}URE/8ulڴ 'OƼy t᛫WF\\2h~jp]y1HHHVѵkW/^˗m63` Z?3ɓ'XnξLy)N8͛7Gtt iSe˖]%a1LDD ֭ Z׽ڵk+*|ߏ 9reʔA߾}ժUr8<}T5/JMMEBBlll OOO_WѾ}{̟?ӧO}bؾ};[[[#4w"##Ds͓!a_?t:w AbA<,, .G}_'OFn{,XFZAZTTmGs1"">>>ZK.MBزe"=v޽Qtilڴ ;w￯!߹l۶-q mШQ#5*c\t UVѣ;;;"{vVb o߾Kecc֭[ZN8}J3Դz׷o8y$bcc ?~!CN:3g֬Yt 6 "t4iD|BBBn;M4AO?!99Ykݲer3:g""bHDztXbRRRжm[L>ƙ3gyfm7ooEzeˢ{ƣG0l04sEZZZn-[͛ E.]I&z 777cXd _,\w2gn\T%177{gׯ#;;;_CMs)##۷Gpp0bbbyfx{{ _~e266'O 5j7-[r=q-YJ+!44K.8:: ųgpuL0Ab0ʕäI6mz*k|F݉(s&"B[@Jޖ-[Ih}dĈr=m.$11Qgx{{B]v ]dgg=={H Z,YN;ͻ5<(:y{֭[cTTT*ey=|kbeeu>rt}O9s̞=;t|Ob~\ &hm. 6+++ݻw־5k&ΝS1hРLOuu޼yD}mP䜉gZ""*QtnܸDԮ]F^Z?~pDFFJ*xwVӧO[n ~G˗kkk_%$$۷_|iӦ8O ͛7Q~}4m֯L{(lt=;v IIIpwwGƍaffh=z 6D͍wll,Μ9L;g}Ι A"뇀DGG=I 即+mΝD@@:wN"8::pvvf1H$"7UDDSSNMDD J %""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $Q0gL ժU $ҫ%%%W\\rzӆ.;udp<@f@z4aaa2d`hݺ5+]|={Pկu~жm[@hh(jԨQ1|lݺqqqT*ԨQ;vĤIPN6bwI̘1aaam;,YzT^CvЯ_?4n=J‘#GPZ<ٳ'._}b޼yt,[ 6nȎ^7n 665kD:uRzxx{[zcݻwO "eʔZ֭[ŋui۶Nڼ>׮]SN͛77}Qٿ M`(gϞU;>>7ܸq@߄i-+U[S1¸~.]Z{Sh֙j%OniڴÇtؑN \i<|PƏ/ZYXXÇȐJ촶Z233Y9o0>;֯_C6,, 7 }RJ)UVo2dDuCpp0n?L*XBB5j鰶 x𡾛D4hL 45>|ɓ'Ϗ;i߾J%-4eѣGVZ@lmm֭[ʺgϞIrrr6lq;s'PoJލأG ʕ+WLmlժ;(*6#FңGy'1 O>.](i7mƗ};Ax'cF]KvZ,YzrwO>:ݴi?Cy$''ѣu$I7EDD= ={6Ə3'# [++b=N2erJOf߿?1ǒgԩS|v&&&'Oիr 4h 7WEz|@jժkc QF=j(NjVu={V|}}TRp34333YTRE._eΝ:6ɯ1M B<==%++˨+ ޽So+INN]]ߡCs +0a8p@ggС|i""ǏڵkNRx<'oXYQmc'kRl)Wnݺo3Tg%Qn:o9?.\(T߿wۿKxb:~[N5N^sљ0111Z-?Z/&LP:FɄ 9V&Mx{{ҥKeݺutV$j:ݻ˒%Kdҿe}c'3YYY !C7|##GJ*)s믕dĉ:w &(5k&ӧOEɓ^zʺ%K>s W\LСC믿333 .z*Lbg:w,F֭[WȤIT*̐t2i$ٳg+@rvZ X:fv)peԩ2tPqttT8pnݺ%@ʗ//cƌ ԩS~) 7/Ɣ_ppL0A4h ^z2a0adddKO Է'H,r/L] QD_U&ORĢ,CM$VVVbbb";viӦ fw-KcWz,99Y+}[4g`y6^zW3D 4EMf,X`L\cWiӦ)o߾],A̟?_gYf)i򕧬,Eg(2etH|陘{rΝ";4%.==]y{nx:z899 Z … RlY]N7nٳGyw`۶mZuI ?uZDzI;&*TP~44,$ ժUuR~wy'/cǎKؤI_z/xsSppA>}Z~޽ ǚ>}0~5[[[35CR֭[$Ay/rCܷo_t [Ooaޓ!Z28UV2{\/8/]lsvРAz?ֻߊ+ qssSfizg\y18j(NLLT{W$m@3 Џ֭ooo!$u0WAOӳgOy뭷toOX^>ۘ 1))ITk/$eƏgСC4xկǎ9.^ͧB fqs=f4L6mxq즤xƎv!!!8pJ.vf2[C ѻ1糴R]R%ؚқ6m~[oʕ+[n><VsW=zG+EYޚ:vh]v3̙3EVO/#Ip5|ڵ2DFF~WL6 NNN}777L^|WVll,N< (~ܹs%}{/_Def3{WX3cvJJRKM XhK"SNXz5Uk֬ATTVj" ԩw3ű9fJ*)飙͛h.ܟ={h\xĶmۊ|75;"##ST}1H4i&Mt>>Abb"oߎ> q=&|/e˖2Dz\r~~~8{,k={6 }h~2d7 IDATr0_Zy5_zwݻL3-͛7ɓs/Ek.Xs5jh/z*baamۢm۶3g0j(\zgϞҥK1~xAbLL Ο?M</c׫=r^⭷*ThӦ ֬Y>=޽{w^@ݺuѧO :48WPQXxq¼r˽(Zd 9$5Jy=v5m/?BLL 4iR"ߗ%[NCSǎ[hΝ;sss۷M6UbpuuE˖-qx5w>|k45wA"!6o ???f¨QΐӧOҥKJX_Z/ <ſaÆyQN[s̄/vڥlF7ƍ70a„"+M:M"SpTXQ}cnGE C/:Ab РA\r۷o.\ 3tqʫsiiiE@"44III¼ypB,^XVy,iE7( E(삪\29Ć  72m~&wJ$ѣG{:cؖ-[=z sjѢu놠 /C}fA ߿C AFFt5k \вe"{ ?E:uc-[L &N)Sܡ+g3jժ .֭[ %*6Uݰa.]F… yTڴi]vƍzbƌضm̙ElڴKyѱT9iFj ~~~ŋi&\?رcѶm"#Jݾ̿!kĈشi0qDtlLMM%Y%pss5}<7NOOW;o&N\JIIAAAAF)))غu+CH._k~ ;v@xxxΝ;]t ) \ ,r{Uϯ۷N舊… _Y`c$''#""z̈́:+VTp1;v /1SSxxxo˗RwWn 7_MLLb XZZ"!!Pz}(V^]SVe_˸y p]|5w>>:_~x1лw=_ pBjjֺT| T_|1 0@L1f%ٳ+pqqQY#F;G{ʂ5o߾}aaanݺɞ6l؀ŋk-ѣG$'' 3g,6(駟ީXrcfb`8~+ϼ̿WϞ}}}; |,HJJ? wEhh(<MB McǎpuuEQ~}ĉ8upwwѲeK?~K,ATTٳg8|0>{Ǐ77O* V;Zzm׮?QFa۷aӦMӚ$Ν;ʰz_-Z`ԩ5kvڅǏCVn޼#G(L6 ͛7ק~;v?@>}0zhԭ[V\44j;/ FIOOSSSO-ts]e }M6i[VH||,""BﶙJ{ʶZgϞ5sss W4BCCVZz˶jժyfNjͳL {s R ͚5c$uƬYj,K.elhj{oɒ%ZtJKKTVVKjڵRttuW{Ε$JLLlV=4vXKl٢YfbkՐ!CeצMH_G>۰[_%%%Z|6oެ#GtCСsZP^pڼy~͘1㬷'|R/ UV)//O_o߮2jرm //O .ԁHjȑUn8]NS׶m۔֭[몫R~q\4cvsiǏwat+**}}NSEׯE]k^^VZݻw+99Y111ڵ EZlVXGEK5lذszK2{DhFn꾶fݺuuLD#;zZlZC.G5Ќ\D_7|S}%  W@oڸq>SIpf<ڹsfϞMeh:,X_~w߾}|+hzݻXW^yy*44T5B" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $?xVVUVfU!!j"D&=uk֮#,,$ɐ$SSQQ4F~Kp 0F>pONfL&/LJ!Q w@4 !ð0%Z ر[МCMt=ol#[&<$d2|EHtT v9v]I'^K.^~c-^],WH%R]:9vv96w04 [yP0ljҤ+t#s\BرСCXd/P>>%uY9 e!t=wikdZ؃Ј}cBYA R@@!l":p8p6[l6,fl6$ $S2%ӤO>IfI'_+PI'Pj w`"$Ӑf!&T6UfEf<ŸͦhT >tÃt#؋B5tYZP)<_l6JJ*.جʷpÊ` (%C&SO[ZjРIhJ!qZe?HA QDZWD,JJ*.vbd;QpftjcNNLVI'~&'śԵk57>$ZUtz5״ҼO{=|X޻NW6~;BbHff_y{7@SH¼ᣲ2$YE!ݐnrOm2,22 Uv_8]w]FӋj/=H[fR5kV^~7ۆppxeR<ýն?xj|DVkfoy{G^^>"I*.vb U$XL׬#GX,r8,Xr8*maá^jƽ<{&Vx꩞:jiCGhٲJJWJJ~zf,?ވoG+Vdh=Sm2e2yb-KUIa)uzn4ʯ9t~"շo^|qL&a6W_0<ܙ;5thFQ*0*NzMZS%%E,-uu)էOx5d2U<+kzf:tT3C]'&Ӣ4k Iܴi,J=\N׵eeN;p2]=@S`ZTP`/_p!rx4QP]Ð: l_8j̩U2ux"#}tyA(z8-;<)0Ъ]ziEG{^oΝ9/eeNmt\ԧO|}k>=6))_G(+TQuj5_z4$u OG%-+sBr8tJ\1UrZ5,sG8UffY6= OXO۷gg(-j|=6Ǝm۲s[ZuwIw?N]/IZJy{W Ǐ?)h!߿_Th~yT p ᇉ ȑmkHY믙JM-R\\.0B&UNM$$?NCNSCMv{2 CvYWuʩp8e9!tx"0V*xRRRҳZy /l$]pAotz*.vc@E:k7yrxb6n<4|xkjuބ?^}6㾅wI*%%5ztFRzzRSԻwn4rh"!V/݃ 6ftbtcs8Nõ<,'z FIjzfIS*,t]GyQz[wTl6{{DI ?G7 ?7=͓$uVfOiŊ {\ ,D//\=zNLv,fsyH4tZd2Y-BkA^WT{^㤴hZdrͫupFUY18L.!-e##}4p`K-]-[{L $ڕBo1ꫣu5r8 !1$$@3N9J!|PlNK]t$t+&U<+_2||t:|X+Wfa5y?]7'%u}dDm˪q{"$VZSW+v+/Ϧ5kh͚#4bD]{m*=wg[s)'Cղe+qDSMCfsŽ˧TTv; V\Xqk 駑 >gڬ2%'(66H#vNj/Wu>^sM; Z+VdhŊLmtLvG׹FMu6('f% ;8 "k2+DSxV~j%6mղeYe=1OvJN.P~z.^PNCy4}m zˆ:?~fFmr87<ˀ]+Df+VZ^&Lpm+?aa8$9TыxSWPi[r+0 D+]woo凵gO9ǵyqeeufI!6*$sy+Nm giH:bc[U ޿XSX,sܓxawĊSM+^f۪coV3\o[aT'?ߦS6yI٤G]&ӷߦTlV~U+N!<(PFFqմz5z8$+{ΊhY]bG@K_kҤ=ĩ]=ܹbcMH<ͱc'Baն CzMJO/XġڬB,>F;C {yy[{:ŵ—_g֭Y~EE*է.kck.֪U;c!IfG4d242-#J'_XCU{O神=;[hgSh*+sߏkҤ򊵚B={{0ش|yJe2IG*}w6oMG覛VjРV PYS۶ekǎlIG).¼ջwnܹ:tPTiSՆ 4bDkmݚqzhm*nf͞_AAV]w]z@eyoJ|eZv.9Igf;Oy*umq޻ IDAT%]4th]|qFm۲a1Iĉԝ&I[d)5H+4[ݺiO}k,)=X[fi\;Բ~FlSemc1[EE8P-[}{)YcƴӓOr/(RSvvRSv+ˣT\Є %I˳{+?/I6S˗gġ~;۳u5&ш}RL^L&kOM+Ab?={]޽F@W\OAMm6;\Ԫ:t-ݽt5),kLz+*__V/ihŊL%&REFhРڵ[wTvT6SQQ<$fghƌE7ou fIJA3$r",+Bb||F譑#kژ+ ĉd67kp8e22\$'u͢uA=ݻhРn2Y$V8r$G?lTZZVyʽ8),BU}vkm%nwh/۴~}lX)U!Y)J={ƨOuᅝž+$&imݺ_ ^q C:VVnԵksv $6}ҕpHd(=S~~JKmr: yyYEFupkBumeZ[G l6Ҏ\LSY WxxZ UPN?tH4]f@HD!p:TAk5N7Lj߾4|pM0A&ٽεkΝ;㣽{ۻYnرcׯ$iɒ%k2ܭ[7I >N9NOYYYjٍR;vk$mܸQgf͚{/[LMz?rrr|y8+Woٳg+66ټD9R֝X{*;;[ZRLLyg6IuJJ $I_||M׺ܚ5kyf~]_A~~~SاMy?G|'X,)11Q_|RSSn:q_MܹsU\\,???-ZH]t|||q͟?_SLoSii,X?Ou3z౞Ce]Vc/ԩSv6mp0DT+gO|Էo']vY3[oJHג%Kzj}[E]Õ9sN͛\c jO\\\\>VllnVturrLX$e69pꡇcxN{O۷$_لĊ;}.;V|.]l8իuaiذao8t:ա=Vǎ/LʒݞQo{!gvکm۶JOO׮]ϗhʕ2L5j М9s+>>^=hPYY~Iѣ%Ik(22R=zw!&q~n>> Nl'3ݮyVvvڶmkРAe;TTT 72P;]_0n/͘4iq47bb20}F3{t)[:9rѿj饗/v^j8DГXT-sUWEiϞ\Y&vDYYr:tjg+WT^^:׿'[ĵ>IR˖-uUWsڶm{=zT7x.\+cY6m~'ڵKqqqi5]{YQF)44T-RRRzÇW[tjӦM3fF%}w7o222t뭷jǎU۴i.2*00P7pu릤$-X@4i֫?^=/_cǎU{뉊SM5b}5''|"Iׯ ow^ٳ&O|Ze}ꩧ;ꫯ_ -YDu7W[gK}sCqCޫu94F3fnݪGyD\p+''GO?̙[oԕW^"M>]{Ѳe{$6MmɈ1~w{ŋSJ6^{mqkc5|9#&A#*v՞ĵk:tp?T=0LqiiiUz*z%z]e={;hQ5 ø IƄ N~njcH2LRco$߮>랞Z[n$K.FRRcǎ#F0$FJJJz 0ziH2fΜY'O6$w}aF=!ɘ8qb]מDdkU[*8x9I<ܐ}ܐ6_cACVz}}}͛7{,rJ:{=-Z>g\%*ݮBݛBftdRulfL8[t7{<:uM py7+ wy3gڶm1?VAAL&>*;w3fHRSS`FYb2eJ.III/^]vl6?rˈ͞=[***_tMEQMǏ$''+ @zGLҸq$I;rW>h'M>=W!1L;)IC QV$I=z?1=$$}8&OvI 򔖖{23 UTTҒ訴\geܹ/= .ݻğz)}5otׯDM^~ܹ$iÆ lCmwQQQQ+[b$ /E]Tmڴq^jUWVXªU >뉋Svvkվކc֭ݧgj?7d7VXXoذa53I:thT܇\OkOcap+''[VUEX,*..RQQJJtdvS2wtxQ7ԥK <ʷ'x^}r޽{+!!Aoe\n.?j?ȍ~V4|}͛_{\+X1 7P+))I۶mҥKkz.~n>n6_ӱ_EaMuRt@HlҢBYc2 CEXr:*++UQQ tbllF[oր.9}d}kҡClCmE-N{ .… k???Ae馛yf͙3OTϟ/Bk׮UZZGoPCǦt,hW& @Hl2;Ӗ={:W8~x=Zz>մE56Xnߺ_w.]ԫW/uE}վ}4mڴVMy?7d7VXp $6K>y~$t?vZgo̙SM/8Q/8Q>{sZ mmĉ $zUF,ܴixIkQ=n, 8dcƌQǎeƍW5i„ S@@ƎmFGGDuƍ@I#eO*))VRR{Lw!Ls@5u@N;CH͘1CvԷo_]z饊۵|rG-,wCI~ yz}yyyi֬Y9rԵkW__|rss7(33}3P7t֮]I7߮sjϞ=ׯn6jϞ=Zh߯^zi۶mJMMs=qƩGǐ3UM&g1$ ^u$''ױsS+?bcc+V4w}!ɘ0aB\l>NddaQk}v<5mŊFlll)::/Ń$7ި2-==0͆$UV2τ  Iȑ#L{ oo*e4Νk;vv??e0 cΝ222\{jhCqm:oc9ԧlug{6$/Bӟx C1h DU^~~{mڴIT5zhy{{eekɒ%ZtJKK/2-]Tk׮UVVݓٔ$%%~Pbbfz衱c*<<\e͚5KE^{my#k>>m?pfn \ $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $ᇉf#&&P&QH;7ZlAYY%TfO8_kB" $c,L 0T0)u%-U\(5k^yeլYl޽y5kSbEio+&&P>M6py}}-zZM:urrʪ-]9MrfSt_cޯAui% k=/86\yyx?s24UUZZ)SkҤ_$IԦMUVV.]oULKT\\>}).OoC*"M4~S kYhǎ:~>}/P} ٽ޽[I+((T?MF$СD}ԷZCbII22WFӧU]\-kɒ?Xu ]ի4 7\@nװIa涪.`՞=JI)u[kc2 CÇkf?˺,{K=Ulkzス><6к>m=S @M-+]_~:T-Y2%)$$\_|PPoRpp$).F11]T//uO:$}٫?!xヒ͛WИ1MIK{ѣΐ$-Xf~UCҋy.޽^K|Y/7mڞS{&$9i.?ѣokXHu&Yӧ_^>]۬|.8KSvD0~1͘P̙k;iiӺkPegU3yrg]pAVvoQFFM>}ս[j\OhK/mb֓OPV~^֬ꤡC[+8K 9JLS8o[tx$e64cFuխ[||,JI)Ի뭋5s5~|zԜ9OXӧ';ϗU>J]ץ=L>>gl IDATZImr9'O,̙u/߭[N'ܤ{z0|EGȡ%K{{B*?~|t QllڶK/(۩@ڶU׶,N9(K-[Vy~Μjƿz뭋I0C^^ڮC[+oʕ׿v?x>x $z}Sv uqqT}-Xꤶmlz6ζ#h,͜?#ڸۍ$w??E|2zk22W\NiiEZpMPƎ}{dIzu\n4ED_7.F;7YfNݾtwp?h.u׵wOn9VY|;!CZc@y{[T_ѣ%ڻ7N6 #UZPVVieo4_]vY[X>'p"__>0Q+Vd{0uQ>nc_LU;V_3ᇉ(ք 1i@ 2F'eᯃz|eKJ ?P[T:64i JMݧn=XV/ :~[[?~A11]zXz. Vdd[S޺{4j-un)=}ڷu'}Vo\^q8K7<$v3.Nu^QϞa ֫z\rᇉ ?u^خ\ؑW_);{0Nڕ|{iȐV:|XvzmjUl6ڰᘆoS÷#~>^}uoz]*(9o[]kiڴ1#_3曻sgi pvZb͚ON֭\O[d飏iǎk9NV|}NfY&]pAAZj:퇓!*_V=pȲeo}ءRS Ng[加W[{zݲٜ:fwoulK6=}*+sw\oSoSuc x۬`[wDzBb^:~}j?j#:rD_|_!Uu.m-[+!!Wyy6!!ôp!Z0EJI)O?j5׹OUGYY*-u{i_{}kڴj>@*è5ٸrΝٲٜZ4]yy6mpTy5}Զ몮?Ց#%C*D}n)=+Z5s擺KꫯVYm:uNɓiľڵk&O<mum/^ב#];|NiڰaM{}]VV;z~#zl߾Fz qbUPPꩧƩmX]zM ڶUloUOcϫ6;)=}$^}k;tԾ}=q RRRm5Οg%վ}`CQ#;p:>e Ԅ 7cY$TT^* 5aAw7G~45 koieӧǠ0 )>!bq'qFސS!.N$&;:JH```6_p<:6CvZ[-tm{0 bpɵ&c> zxﶦAn%1@ (,\X 0V/;${]4IKWs tCWXX'-mr8lزet()+R>-cǎj9ceYpVΜW1wOţR|\ øѲS\il{E"*`ibAlo6 f-l64)`  PȩhLF`rp> knþ}s0o^<-8x1`鐯FN:| M)\4aC;1w"Nl.Յ?]jTz;|qǤ*١ȊXHVRƅg ؾvƌP5rhceݨm1cF,{qB/JRSˋEE5QPa}chzh,z|A+R! ''uTrN|Q>=&cB$ /@@aٲTf!;[^;1C鯣1GёH7rǥKm/Xso ' 9!0q~8TY`ӦظU֖zx,\Xj z<ċ'Nݮho/֮ݍɈCQ&o E3-W704#DfxYYmB]yyֽ "fCʋ@ @ 33X<;wVN+ iTb("nM n_z _-+e ,X7lD9Wzx.,16VuroeC, QZjy\9lĞPQQa0|Y;f'p})Ʉ2,kѢkMS0:*hc8׌D 6VLi KH^n,\>}}v(4d2!LQ4 ë7$NW_NLG3g}2I0h"Pxa#H\""j>'RD i;44=<%%˖o<)S2LдboL~!"uu$5Fc vfO>tgAf Ξkw#WJHx ofY7NN ͋=991HOW@7F/Ξ}6ʕ*.h[o@jn܉P E .^<ۍCrm*/uu繲rs n>|jӐ3gIycff9W;zITV~W%E0x]\.7> +Vdrs:qذ!.b}totc׮j47U VB!BEE722x juر6{̞p5L8yp, fTC.}jN1ŷnc8??:[vB[ju"*J""yOM`ϞyRH$2H$r u6o~=Nx1֬ف2~E'MJºu{C$d2xfZWZwl۶V TՌiEMil6O7,l=|{Oj246XFEʊ˺Q_oR-BVV4FcJTB$a`ԽxD, #C R3) 99*HB\b@r2TV="H土' Z-Ƶk ZZ~J~ )b29PWg F 776˯6_|eEr,+"+ aE[yn}&•lY*::,i 2HBtvZ}x#yHdPDX\谄lɀ2:;+FQ(@G'Z-J%B9ؿ27V0B 'GdO1F J.Ĉ'kL߽t93$L|v;$'gmZhj --118hnjAV֭Hd\.'1m !oV@\{e~4/uBf7%ƊfGpaZL.@D MT@ˡCx9dr4v|E79AQ,G~OC 1 ngeK%L &덈aO2*@ #F7#øn}@ D@ @ F"@ @ դkIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Boadilla_page_1.png000066400000000000000000002062041420322575300274710ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwtTegf{B!A]**v׆eYkAAl芸몸%!$!2c$Cz%sdn{>6n IF $B" $B" $B" $B" $B"8!uJf:t=zxèRJJ%Isۨܢ"DZ4pcOG;i}gdT8߳L&C86]YYΟCC=w5'*UUZZOOlv9R*Rd¼dhG7$ͮRefVj@&wͮJèHNc0Cuk,ʪЫмy:e{9R[qqŒ[o[o),qqz㍃ڸ1Gծ+)0УC۳;Z>G:>3&ö{w-ז-2][x?na|}b6)S_,]i0]}@MU{>0Q~ذ@z͘b=,/2Ӯ1eeo opɒI Ҳ>a%춥 {~!StC4}zOm|}Y$GjĈ [K㔐ZQQ~u6V>,EEEf׎uF{swuk$5aB|_|qv*$ܭʨ7i*-uu>$.A}tއ䨝yCaCvʪԞ=ڳ@]o0w4]zX]sz_U![r!]r:]p5vlL|rw/_7ݴA6d c+t?h߾ny deUs*.~@)Ǎstݛ`_lh]$>v} ]}{7aԸq!>$ϡ:^ QEEi&G2zh>w6u> ctU]mSbbVH-W_=;]g~|UQaΝyڱ#_v_oߨw=MtI{lkxĉ=楊 RS˴~}6ta9ydˀz)0]Z.Y#Q6;Zh;x=7BZAs"5^^.-j6nسg͈[ZIZ.S&AGr˖\] RO=[{{+.X&]tQJ~9K;Yꞛ߿y zӤ/֯۵hNtn(&&Wtt]5 Բe%'{//h!C5h+;R&ծgݣɓCx^ا* [n3 @יwIp|%}ãڸ1Gsf+'R6w }0O70XKI/OgG9]8|\7[ꡇZ-\K˗OC%%5M$Gi֬zW\\ ذ!ِؒw͚4cs5{ ϝ;B=S?5kR^G^ quVouVΏ9,zj|ΓRv㋍Çkknږ2lu2ŋ'4~:zG̒jT+"GKLxQzk0.XfUet=ZF-\8^g23+Cv;qt13p/(RwCs?p~sUGOִzF4bD- fІk-_>]Qgn,Vqq$GICْta.naw'hv СzSaҤP=)Ο)V#Jm;}zO]uUT6 ]<07kۥ78̵}__7=g5#v6g6۔Ru2u ˹5gv߃G6'o__=XQ[ǧ{ʺ᷻;ٺ2zQr}.^"}&Nh2lc08ͨQRR]5~_㕫h7?gn~{=^=zx695 ԽнШQA?F͟?Bvɭ^OMQn{4)aϏtknF¦0A&@Qzz$Gsd]}&ՑBw;wg)<MF]۪B{cZ4 Ws0O=wȐl0G2|wtxo{Pg2:Z~:C>>n/6 <֟ $!!5HI)s0:5nR6ٿ_rU4=ɉnj 5{@~zNۧ1cuQΟ_ye+[;󝵈>-j{5߱#\78X3]3]tH˫jպ;7ous#N 4BwHV)7긹NfmclpSl=>4)*ʯKz6è &  /죿u>LM!eMw67ۻ{c{A+ʨ!- `F]{[x?kzn_HɩСb]uO-ZpeeF_T-fWl  /(Gj͚TY*F ք !:5Lcdžt`.nzQzM>#⿥(%ଁϯRhhjk:T2)%LG9GlV^]eg] m; ͕a[tűރ:۱:[\uu8֟$$zz"nRJKKZCinc0~|>x{.V[6/4mھ=O۷ /죛oڡ_4fƌp͜[!IZ(#޲ɷM&BC=Zڧ+ti*!ZR'86θە+x7t"uk`]u׽gd 4e8пMMQj5os;{%*O>UIILS-t`<'R{H~_Ha޼QUIIK5f;]YY$k<쎥r|z_¼(?EEiذ_~u7wuZVkSUek]L:jfoQR__n $J7Ætڇ{w~[95g`[sgl?d(51ezz{l}NKGOsOzj$?Iĉ=\ϯ77{m|tCmsD__7]}@}lT-c[ߚ-lu}-ts'ƽ7w2ZήlQ#GK=D8ԓ՝)+~{iڴ;7ZYᄎs53\oLRwĚ !9^gڵ+_:qs3Wۆvپm2Z..N{c[AmZ˭})))g"hNĺMYbc _0zC/X0~s>sIB|"oҜ>\%#?$٦#G[qM.3jT~ؑ t4}[j;CG]?7:txc''.sアUWۛr;nW_6[zHvȯs :.Nt'uMbHCl]w石YXo9))eZ:YW'oқX竛o5ѣ]~xחTOk'>nqSVc~1C?cFq/VLLn_Vr7$ɥIsJJuXp\_6;ge.x+w $~beNq|2lXkצ7l߾B[Lo.-͖͠K/Osg~zX7Fe+IMwz.﫽 !Ο/2rl]v/tٵЙn[uol=&XꫴFڕ?O9.bk]X~~5kj[e̚Uo0x:M|p~z=+fjWJJz·{jԨ~M<99\yEOZ2QIIι; ѣ5th@A>:̙3X>ufMwܱIocصuknmKSo56wUj>:ns׭˫f0Mr4g/lUVZe_RNDuOd0H ӝwnV||v9 4_?>~SzM7 ћo:הZd>-Y ttTH 92HfE7Zoo-;ܤf|3No'mF^xa͞=C-sW`΍֢Est%__79 rPiA#gG6!zzݲJM-Cmu[;r%}l:w<y-tDG_կ,Z|z~iOIBsxnܘ?aBC=aRzzm`<>0!D<ۖg&Yt=1r<^矟TBc!p<.]z.˷5Z0iٲ 8aߔ[n{v[f>dL]tQV7w1ţ{e˦hlv >>nhfE曇8nwWSc&9zP]pAeKKƶ䒾ZxbkǨvZκ:ܽ.+!D7w=h4詧T)7 iq~? j.z52iR-D(w8vsJN.g*6@yyU2_sύ SP`g(9TήP@""|飙3{Lpٵ+_?TӤ=4iR<3?/STryy3O%eᇉڰ!ل;5;`KTTXlefVǤ?s6|'GE&ꬳ;Zs2ש77yi޼Q.s7vsaCRRTPP`O .Lrp㋕oV@tٽ] 9 iucki8".X<]I%|}bb3 5 DǙAS2KWȠ[;wܙgOid2h GB]zwꫯR%9@n>,?Jslp]ۤՎhj0H>8JfEqND99?_VWD΍̙9hD'r]rܢ ɓ4ujXg@HD!@HD!:c(9Uˌ25th"#}(JN.վ}ES'r@PVV-T~4l/d]&Ǯ iZ"U˼%%ثyFi֬(J>,E>G6]G_7j"͛M yK^!7'õ%kaY|$\o}}TJҥeu=њ:5bc $IFu ̺4|x/E0j ]u9]B5Zɥ$yztC9ڦ*EFq@{ 㦨(. fMÆtUQ:6i?1VXvͶV-SUemWV~=oe[斩َʣǤeіc>f{6UP`VttFCsE M5M5u9mU]mk9kˮ:ǚ;[{'cw9Zkhmzx_zyќ9{.VٕzSjU+ꩱcCt#Ի2}>KܹѲ٤w(9T+WC$Ik֤ϒWj׌tMCd25גe>~) y4`F` IDAT|pTRwa3&^x-O=T} [ڵ+_qӨQA -e7o&N.'ܭtٽ;tDH?"u)=t=Ϸ^#Z*Ifk@=hTJrmXXh#lqxmݚҿl,ZUUeU@~ޚ;7Zڶ-O˖СI֗_'h44ra䪼6=t#Ѻ6mʕڿHfLYt5Ǯ[\9Z,^{nk@zUiEK_uHv)*Os օiW6w^v9f5wn?Ei۶|eeU($S?BGqqz㍃ڳ@f 'W[s ԯ.RS˵}{>V]vCzXl92HZ2Q?7ޘ޽JI)Қ5 ɡ:pHmK]8efV(&&W %zɩInn 3{zu IZ4N6WǵZLuY3d9^ee9RöjWLLJK]mmTuMс8ǹ;bi@ܖhr@bbroܠ2LMУY,v qBWTLL4hg64oVK5mZ*+ڵ@sh#kǞ=mi5iJN.UxoegwsnnC&ܙ?OQrr.=Uii媪)/JFyx8j=aCv|㍃Z,^4zt=wo֭ΝZj=Ztl}^yeL&k51D>Gte[]Gm&$&&էOÇK[[nUo532*t(?JzСb%&h5iƌ6oseWc %ڸ1Gee?)մiaڴ)GZpRS˵|yƏsΉЯf+1D;gI ![.S78D0~l$-ZJs Zx|}ݵdD"є'vo{SniEk֤{}mz]Z&MwO{5d|TgMTLLVNVX^zi3u[{wV6PO=5^ ^*{kS5nϯ|R[}NlݲObTn}3 J% edU]m= wI2i1 ֦M9:rE۞6 0F=8{kB[ݨ瞛T58sFԄy'Ѡ>8-tGƙ3{4g`նEkߜS5fLK?_?(Ѡ%K&9$t%9j6k5i0OO?=!yذ@]xa$)4S={zۇFܷPv{%)0C/<٥9s@f%IUی2p:bכoۤW^ 5eQ3pԮ]-:Ś<9T7$`Əwsd˗m9vmծ%Iw1LW\y1;.+RUUEEfmْA]$~͙3XgަmsnH3g3 JQaahg@OD@=LVo//Ν23# 5Vd偫SCl"y{\jCTZjё#Zh䓻$W/oupZݶEkߜ7oT)X6lE:g2$77r+W&JnaHuIrY7펇t??7<~ѣ~_k?]gYѱ!6&Mٕ׷zkBUYEצs]˵ªNOm9vbUUYٳmRDl6rrQ!]:|T_k ]w ilS6w^v9VwW\ZͮR;ٕ*.?"'nqxx԰ZJO/dн4 I&-Ѓ$xNK+ooWܢ&2W۶)-LipѺ-t}m ׄ =ti=5yr3,ZV]?|Y119fnwE٦͛s㦙3^QQuRjMR g` ܳW5H*.ɡm~Iri{Y7DNN6nQjjʕTbg٧vcG:ıu@ߡc&M Ք):p>-ߦˮ:**:tD}֫iJzj+![ˆz/+bDQdOnx: wIRqѿ(-uxy5>5˃`[h;6DWիY+ҡC%Z*I={z'k„m.95S6b&!Qe^$%р؃ull<<2$@UUVefVW/oy5fRD뉉us=ÇKZhQ6]V]6,@Sw9HJ[]GlyX-eyEyyUq6\|VNڵڻPkצkt-^Wyiu6w^v9&If7țZWM4n! ]2 zS;dYY&u;jZ2m@2 ήh5e:ZAAõ!!喡喡'7o߳U-Ysl)9T=zxhjݻ\Zjц 2#?7)7Jc͠2lzSnԨ#d2d2"UWPT\\&G]6C4qbhj뮻6i߾"]xap`XRo*t:buCs> o4!}Z7[瞋[R͝m=N݇ڰ5PH&x}45#6ysnߴ)6wwzR^^K X[i& DAJKO g֛oNS~*,4;kmYvMilP{f;ª_ܧފ;AY** b(#.5kڴ5&kkDA)ic_4|x&On:$ڕ}4uj._qƜFyk]Gl̢$ǵSUek2 (j8ؑ9DOdbfous l6/R`G_Bbw%e/+pϞ>cVejUƮᇌnz.vLj55>rr*5yrK?,Z5i/`{ .2魷hQrs\f۝4lmYvMٻP>>n 6qST*+ڰ!~=Djؑ_˅}qv)>fkF&u0Oc UP6$ԫBCMP񕻻Q劏/>*X#e5gfΝPs߸bNo(]ǮwcdOIZ>IZ8V%#5`.]K2mc|YvEGh4|;/پ^rUUWvUͮu2n]O+8qc_zi?_aCMHBX ͮ;UVZu tuԷv..͞=PAA- gԧ&2TQE}YZ:YFAeZf+)SBeeU<0i0mޜ;ؤٳo__'+1Dc;nhmYvIK+WQY'7*n[nGٮw[h Ujժdmߞ zkaFEiĈ WoߨnPOmݚ>HT`yzU]m3lO?eiŊyy\g͚ifkȐ%$l<̻t%}zuwnmաC%D9R?>/;j>~]u28˫ReU^^6vM7.DHFAS*/JW'k< %I~ mӪUIrw7:Fim6w^v9uȠz<ƺۮi޼mW^SO Bbe2[c;aCvm:禇S/4YO=[^Fn}niH+ᇷkÆl=S4|x`iSO ӕWFiժ$-YR#"|˓[]^cc׿nѾ}EZp&M SOoWYfinI:%&wd>ݍ;ws AZ`*#lݤ?yrr*W.4{ A[uSzZ2QII.͕בɩԶmyz:żHE7o ʕg4mhTj,cewGk\9>Z*Yo,sG;[4~|H]Gm{ByxlZfE{|ꅸ{1c\M]q5O>G{CCZv)!X)?߬}}4qbhTo_֮=Gnڳ@:|mVc{bUVZ5lXFjtն.ZiT_??~zFGYT¼4th@-eњGrrv*P^^"#}4vlHw,ڴ)G))e[Ӧ5[o_oE4dH{gٵuka4dH@*֬ISAYGiҤf:pHVEDxkj맟\=4x AZ.C6\-Ǯ]YJI)S߾=:fi"T),K}jk[[s U7$xr@!@HlLpz``8i'DM" $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@HD!@HD!@HDB" $B" $B" $B" $B" $B" $B" $@HD!@HD@;uljn@k dqm6TTTj% ݨ@wxh4t| ;~ZZ6b2ԻܻoH,(RVV%]W//{v:1kII5XVVJJWHZ̬t.Lj<#tEE-ܵ+_vmkP]}@IUYES#83 :!*e\[Pܮ׎ܓT"pRX:ugCbkA ɡ ̢{ %Izy_7`b6WMCOlwHlMZTtt`;|T>C4~|fD @+TT (777d2umHiP^^!* lqD<06]%%jK~Xl*+kUUu7?Y[]mSiiӃ6[n,++Seee*++Syylut;ȶmy4%$fݨH]|qFBJREU_}Mr=zyԿ9'B'hl:u/hDFEGꬳzk.[qs"4lX6mVnn9'B_?Cw[tYKڵ(wS?IV]_|qD?JIR@&LYUt3%%%2LPuuVv |||NjU>uzj./OW\ѿrIIz**2Ҫu`F}wmy׭Ԋ {wv.ɡars_yeK-?>DZCfM2RoI. 诈oԡ+I_~yDٕ:5L3gVJH(ʕUXhVrr|p,;6D^G={zR\*efV2uO t2rwwbq dSOh4!1?߬!C4o(ڳ~(8C￟(ͮb ypMȑA9^{퀶mS||֯ҌZZݍ:fcdžhƌ^Z(VLuV o}|uMFiwkdgW#\FK!!zݒ!Oo aa^ ;dٕTUt#UUfYyxxf`08b{cNgl9i=WHڱ#_4cFKiԭutoۖ|Gϙ3]bPO>}{֡ Ď5k@(F]{z5*,Q=[Ut#Sii***TYY), EVkR!o_Fk7}{_SM&}}4y#S8F. u~|[ׅx44;jk />8c+??F^~t?Ruusu IDAT3ZVl6>${zIڷ޽eXfWvvmYrePzh[XhVqthj_kjCB &v5uߜObMVk:ZUM7ܰf1Lhh!G/- )%:b[鄨I4]mnMQMcjv9?<^U {{;zx-:TȬfথ3WXhض ⡌rQSSЦƇ q SYiՁMvժ$=nQ^n._Yiծ]+񖗗/1qb~$~ڿHAALR;W:֮MWYcSOyw̙ᒤAFrr>V6]nnF~kG&b~`654}i$g~v2Y(.D%Ν*uPso>}|(%ersukn}Ks"LzF'Bb#<>ZǠA4_8UNB" $Vi覕VL$% 77*$(M# Dd&1%77$!72"h' $:!$Zv" :O]kM&"DXn|ݺ_n/O?C>Az5sy'E謳J{5;y*M>^VUoB'͹NzzԫW/}zw|SlR{oA 8@*9\ʼn^EqTQƲJehtd''qӄ$m$P~%9y<ݻw"+lo֬ӏĉc[4^deJBӦo{Add-5uv5Fbb2l-:m31$Ѭw033f x(JԬY 7HJz4w!ţeֈ) })ƍ"!!wsb klR,U޽ҽ֩S&ѣ7z? (tʸSԩԅ4N.{p8Rо}Ge hGJDkDDD7*9q;}"""Ѳer޻йsWM$+SZekU "A@ǎ DDD7UU<)WCNPl‘#i֭~ZdggAӡSxGhG/ƚ5+/^@ СC'1 J6;vlR­lҥk6ԨQ Aß"ٳЧOjS鈋C˖m0fp~XVl߾@AEl޼7osوFn=q̯K|28q/_F Ѿ}G9 EŞW\'o/@vvΝFLL 4h{ $_O_F6Qzq%l; )) 7!__yӏ#;;5jDcٲ8r$ hӦ.4jԤRi,l6l۶ 0``l6X ۷oAAԬY cRѭ[t,^LL ^qE\\<{W{J3gVpפIbq}Я L>V=ժ%O_!K@E"""'o!66ш[GkI{oxit!uO>p 3\w.3gJϜ&MM۶ #;; u 8O\霛{ݻ‚PFM!CkV0 HMQ}ط/:]4 ]|G|eρ܋01̚w܅܋Xv ӏiر#kב=Պgx/W\U{}pW^^.2Gƈ0w<ԱcƨQCQ\\w}gQxTk\jՒQ^2D$%U×_.FhX+^9z0ϟ x٘VWmnz⭷> \c }@&>j ^rZՃlJ/{Go&>ӧp=MTA>+AWϿgnuӧUs9>-e޼9EmڴO{ 6fk. uk`ϱca2KҊkݺ.\ @8?M twH'ÆF+ͧO 蜲2qR/ 33ٳaH:̝;0yguy52L .A[o}}@8#teNLyg`뚴p\N<^ ^Ν˖Ǣ^r{}:u 凈§J=ud:QT{|ٳgPPp#0 X|U6>'2Wn}n7!Bq*u6hݬK=~1 ݻDddT$t8+W=ܹll۶<Ƃp@dJj";;ǎ=t #11Bi:de- [rWE}ԁ QQ###N˲t:T*1h2شz=l }̽5;KKN[=^EV~5oiH!""$HtTޢͮ'ܝ:u[rU4bcдisΝ'˖-²e=\UY+]׌8FyituL<۶mƺuA/…p|h4;c|q]v/38uUz.{ Uyc|ݹw|NrrӲ>9833CnI0ɽ^2{ju߿{>+N<{tց"""IDmT0U|\kD~-y'=q 1 iXh9v܆˗AvvV+6oހ͛7ŲeTp\Z9%E_ԬY2^+ݻꜾ~!^~yܒT  Fо}Gt ߋ#G|UZh]=z+ LT6]T5PN݀=lٲu:)/-*ˮДZu,^Fy_so[V ݆Õ^O;qoĉlZR~& ]M;yY]|UڲwQst88p`_`G|V]z^ #4֯ɓ'mf_C OgiFDW7I,N}rժ=5~LW87לkjfV^rW t6ٳg/,,ת>"Ln رs`X^K_>_\=f1\^_sra˖ ww &)?DDDt];qeVv;RZעn݄+hҤ<8q z}qB@c*Tm۶Gll cҤ'1xPtҲp~6 EEr* 4gn1fΔg }n{NJN` ˽+=. ̸ɟoNIx@WYv/^ ]kskܸ)~_{8J?m$ܗ#rMW_}QQ^} 8$QxUMO>6C*qqW;r$M-Ͻ᪐?~cw;wn0q8 ]j~{y󖈎'k0k.Eݽ 㕕GbJgX}~?~'OFsҿnzݧO'yG? B\AkW+[&_Ǐ-3@$HtoQrw |'FpZ*E(=*o|Ձq`Wz%&&Sx̞iYZj_r5J'H3> PAu 凈n ѽRZ^OWp9qAP((**̙/zܹ <2NCt>{v+W賂9}T@Z[tvNO?p`޼95UϿTnԫ=qO߂s0vHyT|uZv<˙3p݃iի/`r^W_j<~(ƌلV`ڴJK_e=@رII-/W\ݘ/]ʓp#'/{ru+V+J~]RRva̘Z-ӧnjuy'7" zॗ8QTJVwҊQ D~O۶0u…󑒲}GDD#|W~+zevu r%Cj> 'Oul6A`Μ*4i0ÓW9E_;w^_+=({ ' Ϣ~-* ~)aخoxxaŊe8}$>p|@511 ˖ON@zqy@ep=VL;wGTFsBQrG1ggۑ~ Η#F_ժ%WW',U^0vTj5ڶm2ʃNÇ…xɯj_ 1Uu̙o!)ϟ'GP`̘k=2ցnkKDDDeHI`!/صk;N>jh֬94Qڵkp?D4jmڴC[;l; 'km4hGS(dggaŊe8{ """ѨQ7PK(˗ЧO?y=:jpp4 v-Za 9~ʔ#iX{&4m'O-&Lk֬`4OK1 6#ob꾬Hb2>"T^{E}+i8vZRa2ФI3 z'֭wå5_'XDGG#&&FoN V V 0p$&&|ߔ)l"vXx {79y?~" M$*De+**”)1eDlٲ{~e%-[1Zϟ9ؕfbZdԭ[Y?J-w<}$.] >< tV̒QhѢ53A"spyL8FR `ƌotMҡC'(Jf<ĊS(" 0[g}yifZeVQ^: Ѷm 2NDDDtcfk96؉kv l"""""OB||D5~򻏠'QlM$"""""f@TBTBPx ^?i IDATnpT"""""cPrR߯$FE)!1E;RSNZZJ$*t:NJDDDDDt=l۶6g0=H%"#9e>ѵ'BBz+h,OHt: 9EDDDDDF(b HO?HDDDȁsMDTBQhan """"""rgp ݻ QQQE`$򺚆%HR@L N 6bjfjCDDDDDDN  qbPtjrp+Pt DXg1N ,3f=Q\\ ^/ DDDDDD>+iT*+(-}qMī) ym׺jp:GDDDDDD7[(G,ޝ=0:Ph4:G(J'RpɁDDDDDD" 5) 7WޚxuX4Ht6 p8rht:$$^ }md(4 v;DQDW$DDDDDDO%^Kn yZCV@FQيHDDDDD@ޚ>6"3V 'ՂVZ( =P d-2㼎MwE^7$% T* 1Jp8`a9)QA52tHDDDDDDUI@DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"8Tܹ(:a0a9`;t2*JJZNRDED^!QFNd-Zet6|ق<3s(̒#A &XSDDDDDDH|5kFl!&?+("?RD.DDDDDDI^6.Y8A utJqYN@1WeA/a6!kF3@$""""0LE j5j5v;Z-Je@4sϵATϦ`߰=7:ZRLDDDDD!{z^1 0 0n`5h>A;;@m^:!=;B"""""P)..D U7ʅ֬Y:nZ| X, \-Zb׮<,^|.Y0xpmHK"]즙]h8kGuxliM B@~5ЪUt:Nc(*?/!2Rku`ѱc"48~6]:f""""" lnVDWph``o 1#C/]~}֍z߯Cd/-[z(N|UzIDi-ѥKiѯ_ ̞}99Fl|D&1!GݺQyݓ Q;vjՂ(Av;v;DQ(ev]ٳZ5#7$wh48N$V=z$˿\ AW!G ,ϷBPW/ ;'+G'qsX,iԁk|ؾ"yf7yf7>,%)r> p{\ƓOD1THO/FQ4ٌR)Ǜ#:Z}UeB5׿:MxҒǎbrp-:vL >2t:A~O*ƁWgD|[ǣ]xՊk"""""Ph?WCu3&\&1h$a1H$""""""DDDDDD 5fA`B1HtDI""""""4%l6SA""2%$ 1H,!RɄ$"""""+` 1H$""""""oAw7u:P"_A-v;Ab =V$D""""""bHDDDDDD f+\DQY߹ NRTJȤd6ljm!YK4_=H<{~ 셶b";+FMPo48 o 5dL@X.TP|0=5 RY[h`>s 'ϜBٽ5:u ._*$juo LSب K ˈPt5&ͮ9ee"Q>3F;z1q8(UL!ad1H,[eXxT@V ]d$%-6QjlQa`8@.-ǎGr~ڕ?"zS sjD;`AygNA/,cdzMKy*BAիCEQ2V%W9 L^OVkiEfT(,2,0Ab9N^G]5JԬV R]aX`4771xfp:D %6$yp?bxᨖ ^eh8jՖ*9Ь^ȏ߃Rb}`y K"ݔty_V`0ᷟDDDtıZzjvKN.Wף`FJB  p:pp8f%"U-:fpĢp[򨐈4YX{B(,@B,DD׈Cg\:gBq,j5j C`0_?cGE DԨ)S׸1b]d$Dt {do84'tBI ,# "o3Pp%%1sxԮ-/4n)1Gm0ggbjjj ib3/;>G p/썽{/8us'H),z_ 6@ 3;l=o32Jϩt(33 ֭Y WlT&3rݰw^~ ͪJEQ!I`#+#QЮiPd36bFacio@v 6CͅF [epPfgQ&ACl1TG ަw$DPH{{VlՁP\ɗW8#"=%)?:v3!*GN 8._ Bl/-GCy!ueeB8Ujz&h~[ 8{(u)eu.(ӏCyΤ$JeqӠBy?-T:w˽cጎjo EGrХGo(>IKϝ-훥_ [y8jւ{a[D/Ь_ !7ZaڔɫjϟЮ ,^i \ιi%]ʃvPJ,V84eػ(9̟DDUtI >/E=jD:u׾=г'ШT&MGA(*.F^BE&(ռ%Nx m&<ZI:Hl[˶|^wS8#Q0NtL3Y ëoУY_3!Q_Q0̞؇_3#bpԫ}'^OL@v k \> gbbA.G*.+BvRE[Qsӏ!b7e$1 [Kہȏ߇v2m@հn8n= fӠ;G УSɼн/D~.pxC.g޽_.{B?߲YHZ*AB_)?Lcو}h4T)mk0?61Awm@5^r?K ~9D|w׬%!jp >{XF^Ԯ"QU'o!66ш[ʷ$M&dmZ$*4j5J<jdgС ABR~G8+EgQt6 Mn ?Jٍ#ak>[Mu "·`6ַ?lzAq4Aq>`x!>/42R- 6k4h˗;}#~)FAq QW@G(O@oAlK3uhS 눻aoʌ ܋>cOU.-Kk6*er218:x >|yT CĢʄ2GʔDPo$IOm]!HO>*B MޮcX6`qЬ]ei۴O?-3A#a?(h~?C{1ON-{=EOBin3!YSn'+Q.gKAaV޾[{HiXY gYYi2 LSC'(3N#rн9ˠ: Ѱ  <(OzFD|Gr-ʤ!a2ցCf ^J(:w4b&`2o l]{B-!("Ys쁽 T  E(*.\TJ-CpT N(JEd)/܋3߀:e}1!~::h(lo[.޶PP|%6BN .]G|v\T9nEQ28befgy} 7 G(1LFD|[Ř,v;?:N&]r錉稷l<έr[tP\T=) ]:86Fz۵H@غr{ͭ+8oeY8tp4YJ Q?/"?~(u3qtLO=[>>wLzTeeeǞ<ū֫=ު-LO>unAu d縷Sj {(kHD 饱mbd6Co4y4'G tv;l6,`F[F+ WߒlPڎY"K <\ݿO*)Bk[]<C 6k!moO>J(O{mg;E xRo"s.wx5]*)%OƛS7 ,=ƭZM?g| rˡ~uwJ˨1>׍{Z^4pPTu_ʾSỢx?g [}URz+[:.= iUZB"YSURpl`6CR f(p"*Xm6yfS.%{(TXYl J- V+)޴5ˡL?"Kq$0匎ؤ]Ki{kl8#H 61Ҹ|$!7޷}<}Rf)Qҵ)fTp7`pጌ ,H< Eem(.^)8cbao [nf m. *K]MCzs@c̈XU[08sٴ?"z/?gr(_ú^e̙˙A~%5U+ E""U@DB"l,Lf3   TJ% RKł(f t vbɏSZ*}i4r+l +BscP؋/?iP+{ ~ <ךuꮦ( mB @7h&qSXG=*J iO-?X[]HX4o ~C(33޲!= (/%OY5:xX_tTB￞e%?-:e's<[H E9Vzma &=*sVϲ2 ~dE= ]Zy~g^g$sAbS>5),FDQfJP$ f3 IDAT-fX,Xl6JMW$hZ/Є'\cM(_lH •|h~]U Q3չ*AonL%66}a#u4zEP>9 bG0z_ZQb`oݶD`Ka&t}/ػt xCߧPogK WO?ii BuNm!J__tY*ݎBf|b󖰷iy w)^y _iYWӣg=2zVe2 C8H-sAЬwBVIh4vQjJPŨ4J"(  vjDd3bwX4yͦ?}z zů$ŋegtKұs&Uf{A#By.mKZ*؇vbD|Bq_|[nؤFML?[0{Vo xĒk[G={F~+ uPDSwnƪĸ-[Ñ\\wmpRtVrhzWNz Qv;Rdg-=*rJe7{ YXwN8)23~N P-7rZUU~.5M$H48(6Ql0`@^bOX䥤h2d +Pph4k1uCWN/'t(._ ,sEI~T?OP}MnCy4-\k;Jj2jNRyVD[ޱKyn]G^}KZ˵lDIK#RvCgR2Wp/$Xm} h֒;q N]ǘN[Rzo"OZZC >oR  k}v ESC+uVMJޟ! N,jAb*JJ2vKc:o-""T?`Pi@bĒ``hdn -%AbbVoq@g(&D:_  rvLF7+wQs})˭BkҶm|]^_WcE\R؇C]VG@`SuTεq@qPQYt [=*N'O ӏ'Uk3"Rny:tֽLz5 uI}utzpTA-cU/+rM%L7 W?7Q3,*pd+)o-""ܮ -QnG (=P]ڴGRHebuBD?7ɻ{Eq&>p paztQmn_xO)9oDzh|ﵽ%čGZPqY23 Aq>D]^lȣN1b|O#YJ~IEY2l4aӉGyO0C2|du&}1'^}B~gx(bnj`6Ali3*`$Sv#AbIG~ jN]8Z=CZg@gfz,f^}_VW鱩 @'`6yS^'7'GePoeU(}Sķ_zuV"eJv:#.H Fw,;a% RQME(J(q=fޱ3MB(2BuѤ)Ւt(J(8j ?S'a<0ٲ`nvm:%C(*lzBq<4;6i~Uf{Gb fD(ӏ#~`OXi3(Au Nh13xq;Bs}::d8Ħ!X-P=O豰-_~Ď&wGػKwEЬ^E^. (@`)ZDJXfZ$p$%Cu04k^~恰  _5N]խNkg49CiۃÝ.v2(OC[`wqP8&u)>{6:|sz5XG{޹LO@GB*ۭzVeXh/@%$$=*u(,RC (CN>޽OCw_ֵI'<0xs09te1H !]Zh2rvά]GΒ Q, ]5@N]P[O=dr(:?EG!  Pffx=ń :N?;uO P= ?GiEtX?.-ؤϿJ9B鉧afȷ t/M"2oF9l=ogp%k;h40}7ܮGo-]gm]ς*vSt5h wP|- Qɉz C32 ]+H}C[AbZ:d?K|Ĥ ]e0_yQн(>ص%"D c:{yYg1п>?.+Hޟ`?˪k]&wNXӬ{o&OEӏAw^aҚF!8Π6D kv—=+PP+Ht&bЬZArN޹+wބ޺ !Ap:Vzaoh~Y 4(.Q& *@"r; Ag(AY7gF.Wu&02 8mquf`ЙqWFAYQ@E*k%2YYUTUVp/g&17*>8xuy3Q#B[04u#?gFBw Q` ܎缦ټƙ,mis=Ň` -P?U/vg/!A?? >,ǽ{VaVǽ .t[Jvμ&L]ԱM.&ƜӁ {p׭&XfnqDQbg##0OS>̟^D~l)Jm8rCÈo؈-砃{H,&('V+#GoCrzأ`'޼_ݳ]w ~E(bfl~Ľ]FA$[Z| {!HD#c`|8 +p##oڂ~Be.8؉qS#+̯:mGO]  Շ_˅=pr8S(NMeaq1C!0GM,!paAPZp/]aZxWX}*  }S$5ZGA·/GGjyvc@FAľ- Wv%F&uؑ0N? 8σyqӱ,8#0?\{~  k1p AAAQM;Pd   D"AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAA$ ²l `<ςeIAAA"qE ê~8$ $   F8;[@6[~M,AQ4B" ""AAA"d90  XtK[N\h4a60>110000D`v6l6p85ccccuADj6LN@u$ tu%4 L elذ>;P( 4Mu< Ih  H$6m;q,qDuO_(ڶ=u]DaY2aŠ֋im<ς煎j3qVNZ3uaYfhou⎵忷=`ۭX,brr]9+73>:u  "89 Â=dp຀:I u(X˲{9T*E)+~j3mPu0 aHRh^ĵhBpxCJ/'0hJ  Ua6ǃ<Qd0 -E4&aCQ`_8U5Q r2MsF *>bbdAA" F.bʖr$ĕ $+q%!05m{B;-W ]!&$0̾Dʲ 5:AAHlB~SO$8b!Il{hÈDBՒHd*&,a4;K$bQaY6x(JFcUQY Cm۰mo޲LWWprE)4 0 I!bq, 4`Yx^ 4Vwm#0t. d9R]h^:SUReY8xlI~[Q(ee~M,LMMW|>Y 64jItd2iD"1 Ԝ6Z/ h$ |gL ֍@e-syd2itu% LMծX,3nec||֭cj*|>_+&L\LUp\. ?H$ZsR6==UQ#I׍lh^غugƍ!v"Jm-r֭1`9 Dba&,0'I`nie҅im'H{ xp=BҶD]ׂh,"@% E)mLOOu u,`YŢR +/!74M3۶0 d9I. b42 C/m嗭QUoPEźйt:h4ށ۶JyBK% T|n&&aY&q\^?M( UxyOTٍzhR@ V޻Pcr2 0P([7ԓ?៞a$inv;nc8b1jBsĠv/'"HD@O]13S,msQE,@"XT`*oDZz)Y2{؂u r``(ŹmL*X"u],{G@,jkVNfg~%)T1DwS 1KSs$ TmD"/RP{&ʄjKvu%P8TU.[1 DbpK)B twyLFm;%aYyʁ`LU ;oiM+Y;S7tp,0TjMxIBKe/o+-` ս'X%AwwPkVNfg~{ 4jC CCÁhoHkׅZnXv/p qύnǍh?AN/G0"R 匿+ ð1;~PC$2.`㪂/V[(JpүOcD\'^Aoj #ۭDY KK?a{,bgMEQaײ XBE ViX޲,/R۸zZI:n[F1rYض]bB!yϙ@eY^:chV+bE=O c@'AĖ,/' }q|@y&9Ĺ9[[`0z{V'f1/_哪?7+Sr垫FyeV:ϋ-tf)zipPc W}nJ<~2433p8ܶ(̲w[Iǀ 51BJQ*D^ySoSw"MAP\j'ML)ls"z(7.Y0`Ey5륓qq\C^ra2Z_ܐaMG\vR|;wݻG[nf멓Y}u]s~jIۇ 6awEU% IDATo6Y,GWΖ#ZV~ H$PHD8,?Ŝ,$ԩA""A^~E?v$m=%b`ý2UھmY.mA.-@-~Zw([3lbe.Dz:@:]G$av[<S0H&'0>;<, ۽^Z40;m"pVh4AHld AVyKĢ( ~Y"9 Mr4^399Qu$[H}`"Ū{||bm&G??۶ݥ(LEjvbmNV~[eUuL b\ xXSSUeu-X,y~N> U+,|{??\C`8&''Dj. VFmzj{fm$ٚ^*/r]jz x) T7C;i64k?t cc `d$#}e9\$ mh={a a||7 R^0FP`Z.X,bv6WNooq011Y@%XEQ.$)] RS+pMsBl۪]wzYlᡕ:[Ufs2|PeAӊd5jkƲ,099 0066p8 Q:TU &rYő砪*FGw"<4Mk`Pj!8B!hlva qhbh4Zs[#T Ţ]epP,1R@+ԮEvJr U ˲060ޅ(FUf-^%ۉH$ `E֭~tЊXlowJ M 2!MQӌ%w+PQ!s"YeB!  DP<>D"Z".˲ M9:LMMl(JR>B>7/ +IV]z%=mhΖ- Tf]vu%0P L?ez[N}*#.^cbbCU10Џ]v-g; 4, ,b1ZVY.]n].?t:۶+lX*}+uG!F[h:k h~ VPU5̀ui \#s"bu]jR Y0Q,x^hj{'],DQD$w׮WaY7?!mB>t'"9m:[2)d2iB!lpK[m 8EqlpI AEiPBikQF_(`lD= BuHjSkkˍXx&ov;0?uϒN,p9i-'4b?A̍7^xgY,˔R\<jea׮W6lvCE"A+O EULwж@$z/\0 ǂe P`DbYV9٭A&ZS 9O'jj6$ }Z0# H$IY>X+_ey!,¶0 8sEO4"aXPUBC-Mo5 X,N`6Ru$)[ ]&]=>Y#B O$y,s8AҤ[-8B- a-zEM3JOygf^VVaQbu5*j}֊EŢR>P(h4F? A$ Àe?m{yEEhAlX McHHfҙ AI,0M ep\g$ |gL ֍@4Mdf TjU=[G*5ll õteajj2ybdd}pf``%nDQȆS(~bG4LM%af H#FOOoCeJT=w.q@$-,9q( E˲زe% 驊,LZER35|~=dYpMV仈$yQG24"xqGF6(% +^&k~Nw-}d9>ɤ+=B 6oފdrUN6;^$ $(>r֭ AZe(χ躞@#1M3Ŕ}"X ۶;N$NOOC5D"Q2X(ضIlذ;XE$(J0M3$\ RԚh]Jul$͍#p{.Ս^۶iEA +AŝmACv !Nk<N @ϧv#O˭j0`;oU&'ϵ;宱 s'vwM^>_(>1KH]WkNdcT5*ig]Ȳ\W8y%Rzgﺺf$+ru‘(UjZBşWKҮC*R`/ra7/<BDlٲ[lkc,dzV[ cU :~zύ? b!:~iQ _ SʋR- ^ P( Y`f]10 hsWuy[mRP%8YrIFc岰m b1Br7a%;+* èQ,˂:WE0 bppXFP(<5q܂GEβH$ΐoӜ\ׁiuZD,KiF[+cU@OK X"qEy]ׁxhƛE""qd$ul;|eERs7~$'M ŢW?xD}A`M($zA  ^z0}y6Wp8AR3m;OʢbAl_5"Iy)ηdT`RŢ(hZ!Z'^~nUk1,ee-o,_hL 8ozs ( 4eHiF[+cAD/oð0w&ѩ"jDBB($XK9bј'#DZ8-Os;CDt%ujr|Q#BRX}DBG~,G$ &SqlL& +`E۹Xv 5aEA<8ktBUjUE0P( I Cs]Ɋm=$I Me5ܾXīk'Xc^,Mؿ n_C+eӂ ØKyhZ@ eܕ,ձ X"1Q]ǃ&u'nRXrϣ3;i8[o6Hnz8szٲA/9eY*On9V,ű X"8BB)nVQ)hkrrj{:H&KOI~>&}=WbIekzgHv~WfbwQ&lL׵@PƖ~?mH&ǫulA'vdp]p>l|>W%>mnSØC+e B]如PUUCuJ(YZǪt:Q8%b_+e 퉿sz[ $$@ldwppaFGwP86 B0I\rvE)qLLC#E eg$)] RZY{aYƼ y#V\[J(,099 0066p8 QK@ V-bp0,##AUU iu " U-B,XK_ x<1irBmbkkww\CeFcHSe\TX,B!0{(8ax2K)#tXt:h4~Ԯgiϵ:4_XeYVdzA$WG! 4x)ɎRt;goˣsWsRAcqB>y wlۮJE%g0==۲ $Q(a6R,IgXE6m9-߆<{/6oye㸦rW(FWWSSub!0A"V*B ʓ7Aoo/4 CG:W!B qɤ8v[R> ׵:VAes6jCQ+8PUf0LXy[Lm5eBU4 mft^"t]˲EW]^eYlʓSW_}oXM=A XOD\Ţ]868$ U-X,uD E)1E hdE ^PDA@$m~hwA5tuuorbQ);'rz:\iq"Jkm|oձ bs #"?Ж~~=4˲DyC-Xq\Wa‹`g @#-^/vXU?˲$vVcYh4p0pXF8,7}_AhDu-DZZfjz}g!Bp$AgiϵBuUAsAa,+r Žm{ނ^aضZ~zX:~dTA|Y ke!I"$ %/bH"C+$G :M`Yfi  H$K02"V bߢXTɤKRmgY D"q](- ?:{9Y D"ꌌlJ }BBAKbLAAA$   AAAD   D"AAAA"    HAAAH$   H$AAA$   AAAD   b%ص+vD>_saÆxpzji   ]$Ə~ ,¢*: IDATumuqMo:oyk!:AAA$_xa>W84 519;{K8㌿G_[aӦ-HS8v%Gt;>ގ|ֱQ{i;|6lg}{.]BDqG8,=e0 ²48JiD2oykVB!]M4Mmu#:n _W^wM]0mgm>kۅ|>K_,aæ5S6ؗWp%[W{H'~؋P}}F8,eYض ]נi*ERp`_ieq G\'x j~O_ 9 x{>Pw!L~t@ ]cPYsp׾v bMėq/|uع3O~ }~  ,BE)@Dpe3eWrCG"EOO u|Kl7o_L=e39?i 0  5!x?AՍD88>g`YtƙgOQ0Xx=*>xC;}݅q59_|)d9R{,~z-o9,[S5<ox[)vx;wxqw7088׼P"dg'w|.蒪wM9Ν"pG/F@}Oz?ɏ/! 裏_h4چ\nvdp@ڣ~H&1== &p‰-IJ:Fwv9p y~xq衇mo;[ 㺮TՆ,o0O|[/_(cݺX~:hu2lE&c`fF,8܍$ؾ}||bqTض͛{q'< O஻~n.Җ}E y<*<Rh)p͋/>NϏVL=t]?a=0ko;_1v*^{#sz//M|SNy+>ːɤ~/õAس'|֛K͸_m⋻qm>%}W/C7$v5ym>wc׮W>a;l.ʟ9TO7UƏ|>*!|~Kw3<>O5\_#ǩ7o'>=ngWKVۣۿ}n~㞖Rض6T.7lvwaƿ<8ڲݴkx5FbG":ޓ:|X6 !88LEmo[l\,ˀeY,0\)x 3ؽ{[ wscƳ>3<'x*a=뮟bjjO^{e]TjD7;زe?d2g?Okpas_y8묓1==y:h9qع|3xsQ喝Fc8*;2/Yҗ>uq)oEww7&';/?.9p\r|M? i%8 x^R3x{߅oz '4M 'c9{#bbbXYwí Q~× KsmǕW<( A6;~pxv(w?E<_$g矉bQA$gtv|sLMMꫯxja_M7N?L|Fcx?s+ |U qm7OE |q<أx/mʛ ASNy+({Q<أsX-fG3}I+;wC=oz[vҨ/lmeK_=m~M~nl vjW_}%=wA/wxQvP(XHtX g`N;mo` .`3\ׅ 4z۸utTD>}`]t 拸گv`bbZLzwy>OS /ܰHu yϻ0==UZڏ|8Sp?Owh0[Ɏ. 7|O}'| a[nCCs綾.:;]m^ڊͯ|~cE*5'uHt(xk6g+x~G/=<\_Q'|_UW}4 /k׿^؁ݻǰ~SOm 駟|*Dŏ~}|cWaff333n'y]nN`?'>O/xlh;Bwޅۅ;_qǽ_7+;iRVƶղѥ266)ߏ}:pWVGĥ4q'AHW0p]e0tr:ff4LMְ~1c4 Ms EEP({\^k_3<ܳ>*Q(Jʏ3iJv؎X,ު?fpc^ڣSڃC8OdYq/y00w]O< PF/ &;r.ZiVl9ƶհFx)}0 ~~ȣ:JAt2ݔ9׵at]<\ׅaH80 gb\{CmB$z?YmȇWN|t:?'|:.b[ZM@&(Jx׻],k.Q;r|4Mū;GĝwdE$#Zv$^z5p,F4^zo1br2 U-VE6les~]ʟɬY=î];W.8&&ơij_:@#(%q*בuo~`ZԳvGZۖF_: {8L) (kuM QT^Q4cϕ :XrH/~;vL0LMO,:`@%Hq۷b:pObv6>x`q/lIw-kr{"`)"1NGZXa瞟a``cހ7w\/W{= ?ɏmX9otl9Y쏿uE GGw᠃cO.w]W.y_{R6mڼH;m‹/>kaxO֭.s)g6@;ڣvҮtGVFeYؾƅ{4$Db;ƍؽ1*E۶a"~[wfql$"΃q;3c0 mD"(b1{9<]t)/ƽwQU SSH! jB&H+bo(kA_ZP\ k**VT ^$H! 3#d$d~?3{s߹~q _hƌ5k+6E0=sPm߾sWz٩>[gHmZpW!9Ѝ7^/޻tIQԥKz}嬼派]s8M%y]3T*2'Y1W>֭Gz[.}ULJ]ƨm_ն haSn m;m_;vlUii$)%[~-$ڷW׮IJK['&"(ZVLfc!ѥ*//V.zHt*..J11 C쬬:иqiܸru&?h9*,,ЃNѐ!:vup뙞?}I]Q39֡W9r&%UL_smxuqE3Ե&&BBBO(I۶muk׮…zd DEEyf]zm߾A#JgڴazؼyIYNNFUy=bw/-ۭh]x%y $65xp\6\r:tX8"n/me;_bǎ JJSvdZNYu(͡Ck}ܹodĉ嗏{s 09W9촺R %&i/Iԩ׬X􄔳mڴe 5Vo3ki0//saذ|8A%K>#K5i:qs  4D[TTTqKxng(`uo9l''j U*Vg.͞$[<ii1V.WtVuK[nRz!=ܓ첱ڵG3**ZӧmM;u94lHuY[nKTVV*5@fֲe C׀+z&MQ3ĞhE3gW;5x0`;SGpeg`̙s<d yƏ=\\Ԑ!#5kViӦ ֠AC6h}WBG*44L+W.צMu`Gr::ax~f|Y7g;G]e;'gÆur\2L:w4lX}ccV-ZNڶM*굎C3'2*$lQpi ڳ']nXH4`0aDս{{Q={vPRRjgΞhor^~yKС#4}+zG ?zjjܸ3/4Xk] zihzřj"DsV^^N_e˾opHGyJC*-msc^gyQg['jo}h}ɇc=h \NfKPn1_;޽k+z^-[]xᷧ] 桯GiSŎV={jMZvnMՑ#Ş3]W5$չsvMTԵk\.}ںuԪUFP}w}͗:p`233RII5|9~W̗<-^H7SPPv.LAի223uu7Y=tŋWֳ6HMU{h4[ׁ2ڵ. G32Kn ֹ^۷b}Ųʕ^v k'lc_r3M0I/4K%%ںu .z o޼_5aBY)$$DGh%);~emKկ+==Wyy*..dTppCq^رtim ##]zU4Kת[M]jUnq˔qHII}^pM4NVUiiGo"PUeK/҄ D S6Bb TTT*)Ѡ‚Hi8Xi9_~f-85麿'n@%0+V,?:wNҥ?׸iLht`H$۟ d> ߩS:uJP~~rsT6]dZԢE"#CƁ)޽d25 Ә1WW_;u5U^gphzǴj FMr? nN $6PEF7O~Τ24䮚5knu/_˗35mK0`[gI h0Phө=zkTD@@#ܥ^ٯhݺJK/á j;hXNlH$⌢RYKvKN=v@={)77[ V``bXٴYBgfBB~rU\\"/++MKeer2LX, jڂbW;Qoh4d2I\.Nrr8lre4f+ !zPzV_ƌ^kZ$( FFOHSU&I U]|3C.KAE.@m!`0zAa'-$V\!)- ,.5P- JImtfaCMN<{X5 V^xt:9>BbӪ%VAџ]!l6+00+ZVOp UCbmg+Chl|f;oojnrXېqo}SfnL`pS;$VIt!!D$@!,q!@HD!@HD!@HD!@HD!@HD!@HD!@HDB" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H!@HD!@HD!@HD!@HD!@HD!@HD!@HDB" $B" $B" $B" $B"8M-8m$%`>d2/4 R Nc$*/p'ZeeN*in-!@HDd2ԟ88.*|)4('lM۬ۏߨ] |/jɒo+))D[wnsϚ:_hҬYgl6h:rVkn=rJh4U ý4gnedjԞ*,v?rĦs[ׇI-gTz:d2h޼r8^ύF.[jԺǏoӦ[+99oEEvf `0;SWFF +os㺴lk읲90N/xS˖}󷯿~O_~23d2MN;6 z5oV^䵮VkN8v,xzj,Ϟ=UFY7dr;G曟Ԁ$IEl2u:@}\V^HElu甬kTRR7 vFS̘1E'>VMzCbhEEE͛t_Xrۏ#" hܛD4cƶz_;xp+vkذX}EZ>UUOֵFSpY0׆[or6T?t_qTs=e=_qENz]Z>WQgJ>Cn[˖e?TQQ̗ wo颋++3RBB,2NހBB̍^>$ĢH1dn͍?ƏoCJ|~M*+sj,Ok2@ƨe@}Qo&:T"~4>(Z8jN"9矿^&z&\k|^[QC\"I*.>PWIo(-mN}KtH22R5 ]{^.,<"X9Iҷ[gBp >Fg]N%+44BO|S:qT/]^{>u_11m[kѢyz}GYY23 Y_!QmZpUPq][O?rn2-Z}Q8P\#GinW#$A34ҟe r1az]M>_W8޺|m} 5tۍi .h/H…"zZ_9~,x'IJK+֯69OS{zz ѶmGtp=7uy?\.?Ļġ;zԡOPpY%%Z'Tudžƴ\ /}7_GOԅN-11Eh`3ZO>^|qbZdUO?W={FfsymWvhaָqծ]V<~d2sխ[LJO/?_Ygj5Ի?t ȑ ƍZ8o?.ygσ . A:d2(-X|sƐ V6-dSŋӵo_:j¬/n9#BWgbWNm+66PV-Xpo󴋒Ge.4oҤIlYn`k-Bgo?/HۭFdwւ]9N4RJm۶й+::@Z8C(;p+]YYŵ$= gu¢4szOpվ}wlZ]%%jӦsΞJR^^6mZ'57N=uh NHUII mnVmԮ]RS\nE;t0VwZQyi0T\eTOQXEydu m%hRRM/ѠY?E\F > 製նm =z{Z\nM_Q~Ovh͚zzRVњ5ٲ\:X瞊i6RVV{"#ڰ!Oe뮊^ZjԨ*r~Lz 5ڽ@nZ:qsN6l;9:xO 2 [o֑#6]{mʖ-umuP.ïejرڳ@oKn1搢5`@\uUZ zj&t;lX-zMڱ6o[d4~ ="s[u[۬0UFF:rVpsΉY]*-uj͚w$H#Gk-ڴ)_ȡΪ#\WtTUɼ>x_;^#"#R] ̩.]~$5HKdb̜dtrmْ>J %K25bD=Tm[bee((Ȥ]#]۶_TZZ23Kqc^Aju}eeb}mf^W啫ܥb'զu`rKn%Yޚ)S]˃r:ݵݗksVQ[nwMWA]kdԩPq-oߨ;2-\Ul޿ wohstg/髭[W;!;e֚0~/ .פI\=<Y_M2s]^^'zwF*?)S&YKةJ[wй^S26޽6:e(@}0?^i>T%bzuLL ў=:z!H{vYBkwy5fLEOVRRBZTvkX ڪJw)6@6?ߦ^ۮ+{b~>mBg.]¼MU{JK'_ᰡ.::@Gڏzo;vm ժU?ZFA+VV߾Q{w/ҌgjL_Uܾ6^hȶ-|sH&o;o(~oj8(*8,:^_}|!ջw .׷ߦkʔn2*Bٵu}cmLri!~.kժb򬔔pWytՃ^KFFtҶmGo_v*_~Q=:3@8SYSYYei!+WVttwP\\Paj*'Lſ۴QUuhTZZ>K2Lt}/[5Un۷s&13 :q:q*++Ѷmkw^ƍzH˖[<(%j7zD-[@g?G}2:uRRić~O>:NӦ}r:v ޤxeeŚ7o-C/ 7'lmҁ~ԠA1X92NKd~ZNzO>}BC+}睡0eڪ?nȶ-jNI)+sj=&MY={FCPUڣW.[3ΈRϞڼ9_6+4Ԣ5krjUuCQWj㪏-[^L]l6|s>,M&FwܑC˃JJ Q*{ IDAT|_kwbi FAc&;+99\6ό?5zge~mܘyl~e?^M>4sf*'krr駳dW V߾gf}U۶VjoGFy]y |πXq\h?͛Բe .ͫ&O~AZQXXEFjŊsvuG|zddjʔs:=}K ޽ԹMΆhмU5&Yv_;k;g7\gffFl[eZ@rknuݳϟm7d[Mі,G׿vWrr7::@_YEJK+nm5>~9Wqq-3x<Z6_u[~wKk +RW\ Mck{]vƌuY"KeeNkE*,ts[{1 /!!fn\!IF u5xpL̪v.d|c-4 2izG\#߭[ڷƍyMxKHz{ȢL4%&D(?ݥm_,n͟?SիiuBjР7tV|7?n2ueO:thw_CmV: 4cƙ*S˖:r(Wp^xakݐm5E[ڨ3TyyP0v<'p캟VUѣ6Uϙ͍t5I :Yu[ee.枞3 t+׿vR`I͵1TkW+ҤIt]aa;_tW5aBG>쀮"Q]N[VQ_~zt[ӧoVjj*э7vQNNBB,Z&[:̩cXZ…umկ_fVv+:npٽQZ%n*-uE ,Lh_K ǻaׯ  H4  DA" @ H$DA" @ H$DA" @ H$DA" @A" @ H$DA" @ H$DA" @ H$DA" @ H$DA" @ H$DA" @ H$DA" @ H$DA" @A" @ H$veFD%{$YVYV)6uaA"tNSuuuQlll6l6ӲM8p@vEt\zJHHhQHHeebccxy^>DY,D8*s1ĘYVvD8ٳG1115X3x 7 *l6y^Y,D&--yN"t7nTUUjkkp8N z1z<Г݈?4 Ü&!Hnct0OxI\2I5=]ִ4<^X, u8>tS1ɭ^  KlhN Gu5[f,anLGTw EZvfd..*WzRLRq7ݽ nfȵgVlRD /ЎϏ:G~R;Ot'u{%I~XCQɢEӟJbuJee痟O? /4_L} jm5}m̺uJ?GGm_*y%I^PcX7oSQaθ~tTn0qU${u䩧ر:p}R36@EO"9d%NvgA<:qwJbKbSl8yrQ,Vk={6hPό:9 䭪jxri9A/S5.kM)'k믓phD{s I t OyypE=য়@> e?;㪫(ל34?lMpSq .Yw!Mp\ O= 6i:?G޷ܢŋx9Ħ @]x _~zO~"O\,^gml7 =0h#r%OYl+~pʱsbb?|lHKwc6?n=-^\ɹk,>ӱX4oSUTTȵw}ӪعSC?|WJJ˓;ՅV]WA׫,fxlU:춣sQվ޷OղǨ j!g^\{pe4< [[}鲏!k]mBmP{|Q";Twb;h$]Lw睪c~IRLz̙mqV]s$ڣztg0uy)/^,I+ᤓTW*Fn$Iʼv~{ٸQ_+Vp-%EnY~k <=?$SO)꫕tQF⣏d8AVW]wɚeP?# vf0ΘRgyrI-~yzqn~)(~ݼY?$תw}W]=}֗55:LzK{wh^}2)+Sl>m^egw.88o_xAGwIҠEIetU}h uN<.8h٤3EN] ݪ\J4G|aw睪O(iҤ.OT+'w(c޼]c2Е1hFɿ>%U%vFɣU|s$yJKU2r{U_/䩬T՚59uy0jGahmiĉ*{F'ْ䩬ԡӖaTfMw7+<ͿᆐѦ_Z:K(@$מ=*|}3rj֭uw}s뭾rvtX+Wjj׆\-ep:{ʿF$|v͚'Oe~޽_",ukU[ñ}{Q/ZݻG4|~soEuf٦:mSW.)ѶIT5 <gM꯾mc{AΝ;ҽ~ףO׷&3τǚ kC] tu$aTZ>(N'*ut%|T%K1Pܹ:qSW~rg4Zx%}N=Ua/U-햷F.\Yg?#s-AfdȚ!ۏC Tڥ*~yT~*wЮPޜ9cbv.~GQo~Yx]*tϚ%ȑVWTga!2E׮}̘.UK;V)'+yܵKeoe_JڈnܹAynjQ%(gO9wVfo:źiٵs%I&$JY'4$$th^.*VlM(n8[SOlrYbcq̟^ nICfF$$(k|ԨUbx<*Fqc'I:ʽ2'~;J9<$$o.ĕZ×-|v}:tCy\cu;kV{׆4Zv-WqWT6椓FU}3b޽ wii-X`.3lN2cu8}q'mHNn4\& h+V\mާ+l:48xl2?}۶FWfgbbeuō#ccFI ms[ua_r%%N3˻ꪈnA.|Fvf5 k]vݐl.u#nwLf[%{Ac7Bm>}O7眬,f_-Wwpi; 5{vC{fk̙+Vt|r5Z(YqWP`l;묠eK.wL:<`<… W^yxwO?X~cFUUUu0hF@y$hr=SaCe<\{Qƍk\iitvb8698aFYsCNҞۏT_S? *&1Q~:\}/l:GCo = ~B8aRLѰW_5_W*>˔!i_>?Y =zhO4f6[v CzQqygm[SS5l3‰f]je7`Wc-_mgC?йe߂A5 z_X'ސWͼ~YSR׎[1mP{|j݅ cΜF Oж ycA"%66pEb5> H:3T_Ri3g>%yzrzۿUZE W\w9U}e@??WUW [~L |>_ܹ>J"c޼'{Ѯ ]F^ァ?A6S~0ksˆ+hAԨ㎐z暠Gagl d &2Z_|t5،)菞i0PsS#e6LYY/W~ovf4w35 [P,6[PV0Ngc >[d^tހYҎ\J{o?RUC_|Q;NQW'y*^Xŋ+nWwsUGj]fI͔Wk-0p>@9nYV1+u).3kn?\[ȹsr)gn93gK5Wv]ԟփlǺUn(=NESsFҊE۞]m jwOx ۂcwc7: $݄%-x_\!:b;uѐ|9:qfVU~qÁP姟Ou?ﯞ^/~1{J_{Mg?Si-$~AZVbciG-uUhQg !l LÁ[Y=BW-|쪎16;R{%y+*1 HP_Xرmr:t>zF~۶7T曪+WM].|Q.]oc}CyTWX}I% fkMo9Z4 #8wsi45%zG>zO9EYYأG 4SvzZJUn.6wr&]txB>8\[0{jDpœ0aBܻ,[@,RUWUr ZvVvmN"ׯ*&IRѳ*꫕2yrtߒKut/͙cTvяB|p˵w]jeݣmlkÇtno~gnnȶX;&kv8kn(44nN j֯W͗_v~ᆠ nIp=VG3?eN^{SUvjڷOqq:?Q} .@;rYJEh# \]nΆ`01 H,kmn^zr/T?1_[[jbQ;o;&- ^B «JI]ޖڜ4iRgfODJ,iwe"u(8fH۠.WX}M)^| zPLT@׷yP2N~fsW;w"䢳wNyy晠 s,1|GT}5c?4ɜΨk6=eeAxN.Q~iײ7ވڶ.!ڼYM yO {OU±RvqlA3rر#종Jfy{㳲.k$Xnk8?XetdBuƼyI0aKTW =~Koq8FVMDb^O䩟u׮ ;L髯j=H$Ns1_OUeg;.k ݷmn6XMQVsyf)} OKxbu[om4̱A"Me(u yWh-v& [;۵̓봋/zn?iOe=$z 9mQW'+?_vΘa%MĀ`Ӑg :nKvC;O2uu\J??'C)=ZXĉIH$jAuukr]yeЉ$hj[ ~IYl6IR7hw^3{8݇cʆ 5ګ.g٭ٴ8hۻ ؾ]f͒3gwQ1y:Getm$?Onnެ=7߬s|J7.( \.]]&y*^X56(|<-_×/(c0߁@O"WcѨO?U0*Y!vկ4jjmNo~>lAsN-hڵiy9ų{&|Fgg7p:Njb5GhQ{ :J[o=n7Ⱥ37m{ :cyۼ^_xѳľwީ ]TԐ(ׅh7jsr|vg6w6(&FY/)Sޮ;x!@XWE3, y9/:2eF^#U^ #Б۷l2jILTȑ? ح#*}59o@},ن Sٳ?l1U*{M9lQÊIHP܀J:Ufu*~E9os._>\i^3eHv㏫?1 oۧODVWtR\{(&9YOTn0o< IDAT5Keo)IlүCBn믫ڳG֔O>)ks7qPr{OΝ;UwQ„ ta!jVj6ma_}5J= z\8~=JMMUrrRRR̿_' -l=Tl I:1''h$^)oU֬Q7Z/+)''z&="#sӦ)eTvID T$) d5ފ!Z&d^H&% zѽ!ۭl&3dʒcvX!&iiJ0|[Ue)'bv߯C$I΂U\)K\RLir+?Xeo۫ƍSSLO8۶j9m+?_z6hz̞#B\\ʗ.\_|^k~+&1*"^su8T駒Ţ3$Pɒ%*]GR!-[.+S\J: Ϛ%kZZWW*[\μX'~^ n Gnne=!!!uڷe<$ګ1ꊊ,0Iƞo7W46fd?uB։m{ ]֖m[ڊh")!mzkz!)(?6:<`<… W^yxwO?X~cFUUUuГכ8y֬QݡCr*"چ Q8P1v*_=oe<::c*m9wR'+e& ǪY^f)u $&wTl {]j$'cܵKeoBtsmK.QUP ]>穠N>Di]ܻTcLWn~?:e-^Uݤ3PoWo|ѿ^5*Njm[ K\\TQѬ{nYE>ko 򵷙v*GJ;6mm$iГtA}d^+zᅠv^|N ڿc cd͝|U~uzΚbӟ1X'Fニuu)^Xu?wmge=h>h.,(ZOb[T:W-cf^qڿ|;aBkn5r|=-^_sLsԕ#=g5mǮ]xcd^vᩩ ypy4jdۻ'ߌk-c]WWTdl2뒘h81 09}^u II:8߶7{z=G2cԩ2}au:r !!H6"cT$帩v(x wEEpY?ۧ ғ5v<Ӝ~?i{G բu9$kz>ũپܰJ8Q}S~tSYGk CÇkؒ%?^JX4tFG৞ۧ7lBߘ Ö.mt_NWk}䩧d8INŋ'qUJ9<_OGEHҨSX4Ch /c쩬^55UޚGƚ}G,OTa<_~)ou#Zn!hԆ{e=^Yn"ּV[1*ZПzikɚy0s;# ݯPJ>FAbUv&&&hbŪ^D>HL9P'I~qh]#5TJK0n\ė7&_?YCZ_CqU!eNf0mZzᅲm$I}nщ_ 69aB{Q*s#VӨSX4C'.};J:TjpQdu֗>?=zxTzu,I 6\@S?hִ43\n"m4ڊHQѪ }~&'m{]*{-LO>cVKJaޏtL|Om UʕJ:tʙ[W;="^ -m%rڥMT*}+Q;Ԭ'Lc6,WB<1IJ2{[%:}zPOy{n+Tufy>wf}pi|7 ݻK.Ѿ_Ti'LPrʚĉr*{uUZTߏ6sf5%E#++ WwI<8OPۘFY]ǢY'eoj>1#>+KݻUGJ0J>lYVL {V>em&^e?vUn" TZj+"9FE޷ "Ƿvz@W4iLPAbZ}XvfO>ĉrjoKCoagmojÇTQW{ثpjT5Or4}n:`x<|=F-y,_#*?H}ˆg߯HVkp(n֖osfv]n"j ژQk+"Q[Bjo#WA"EY|Yx}Ueg+%Ð5%%0SevG<O'} FWzÆfF ~道8g~~0qIL4:Xc' ǶmJ2E{O:Urc׷RgL=b4W/z Ybwղּ趢:^נ_+ɓC^񳦥”ׯ:Qʖ/$^p>xaBF+GW_5a۳9 DDGi&|pQj7nlrLmmJc1_:ff9W*]L5l''OVLB*m9nULrrнlO>1'iPSIVUv˖&?۷L]GV[}0ap7fb{ic H:*]wbQy^#FDd5eM@췕VÐoiޗ_^9Gt'i>CC Jhv_xa&ͣ #$|=VXr=2B͞7&!l묠Dٓ 1\pQe=ȶX,cZ¶MEFZD K81fĴ ѿll>&Mh O >H_7|ϏumI]'kZ$iyfY^{~Ihi]f~|--ծK/5/O'c';?yLXy*+g5ymIHҨ=ֱY|zfn55ʛ;W $%){k|] >`sl&N ƙEōʿ^zUUX|]mmEWѿtt{z'ݖjUyCMmCb8qb{߉Q{+=eMOzp{tR9nնNS5Ț.֭*m9pɪݴI}tcl%^ c{৞kc6m8QS*~Hnެʏ?Vx }ᅠ^3?TϫOͨQJ9|ef*;[56(&1Q眣+ۻ>[UWOʱs.XZU~*>PW\ի>|~'>ܣGߎS׿jR~;"e̛QZEF]Y4t"6Mm'*3S^Uwd(kb3 m|T c6t#Oy*^HgT'r$c2]^;m[ۊ&쳕fmʚHh+ RL1pE\^(HL9S%"#w睊ի݃ĴK.р?xAn٢  [T)Sh˰aTTCSRA1sWKvEE*],x0 ?᥁,\(kroZЉɰW^QŇ6 %)_R%vU\LWkȳjK Gwݲo~#޽*~F'JZEF]%}F\믗3/OV } =domPO|X.֭a>z&MR)D="I\ 75(n@GR̙fUg]*|%}F}<*}5n,RaJ|bG(-mkۊ6'G#מ=JRSSIIIk@4 6L\ H$@l+&9@Wr|Ǔ@ Ю2_OB]H I$DA" @ HdX¾&H(@X,1A"tsn[dZ'HnnΝSllbcceZFD իhMV kתLqqql U ccc _+>>^6 F_sbIR86hŊlAbEDf>>H{U|| (ݳD#-aKUUUDyyy*))Q\\ 1!!`(DC_UUr b1V̡@@171>>E$qqqqmqt S菩(,utv ?j1Zx<(;&{GѡAFIͦ1&&F6M^AyajA?trf@菄ݛxSÃDIf?G6-}@p;DŢH8..NuuuzЂ (!F7a\. _@ !QَQDt걂Q݆х201vێATCDA" @ H$DA" @ H$DA" @ H$DA"DA" @ H$DA" @]o[eeeoƍQۇE)++KӦMkw })((01/**j̙3GYYYz';4֬Yӧ+33SCj,X`UWWDGe6$Nii[=} IDATT~~v{vv.|z_ ˃;wjڴi53 M몫ӳ>b>@_|q+MA"t-Z> bҥKU[[:ߦu\ cbbz/7$ FAyqꩧhxeW9m4M:5uK~iڴiz饗oFt&8$XZz*++[oI*]}Ւj}7$@'(++ڵk%IӧOWLLkvC~$siUVII+IR߾}5a„&Rvv$iɲlꫯ|rnOּyԷo߈СCZl֯_2[gqf͚ewܩ<ݻWtA\2l:믛5^s5?~zR˚;wnDt֪Ut!OƍW_Ԑy0f <8VZ%˥LtI>߶m֬Ym۶)??_zҠA4{l1.KV$]p/B٣^zi?~/E3f̐aZd}]5J{ofk3 @y睆$#66Xz!ɐd8}OѣG7^QQq'A -[p3?KMM5/_n}ن$nu:<3FrrrX|y{oeåc83f0$cƌ1߻ IF\\Q\\wJO5kÆ k2.\h.zӧN^}UCaZ?}K.ѣi&:r̙z˜D3߮>@|Fi~fZ[݃GIZ+R?UWW^{M7tS5}tUWW+99Y5vXڵKo uM7Vv,{9?^999zC+**ҭ*I{4iҤu]z%Iv."eddz׵c-\P't}z5sL]xJIIʕ+/ꪫ?A/l6FSN9Ei 'ړcXEޓ؃8d#//E=_M|3g4s2I,,,4{'L`߿?[YYY$cznC1w6'w5YN", b jlJUxQk[ҪV"vR; --kTdXCEKd;qrru]纘̙ϙ{IHHPggg__bI͕ *w(vQHڵkʺ5k(wΜ9,8p͛Kvv233ER :ά,iݺݻ뽓hbb"?k,%MbbQoO7KRf""*D""|J5H j=ꡘΒZqy)Aa""{Ue͛7Ү];211ׯ+H U~D8yμnݒ+ 1cƺ>}iܸdeeΝ;XYYITTֶ\"vvvbgg..\(^zzf͚{m%Ç?mY2Q8)Q ceeU&CL˕+0ԪULoƏ'OlՓt :t SN΢qiaӦMvxx8yxuZ*wJ=pttą `̘1AZ۪_>RRR./?+źTREʫoo]*3g =Ç>|Y#X޼yS7Лxqhڴi鼼xۆ 6lӦ ܹU.[[[!((|AW9uQի+We˖Xx13繺'O ..ϟǁuB󸹹]gbbRjCC@IRf""bHDsMܼyHOO_?zUqZ`ڵkҥKھ:5QcAAAxxxٳ|r wUw-=z@hh(`ҥn'887nĉ'pM;hy899=Qn]۱e&""DD/СBBB͛޽{zjxyyyF/}Q.;;h>y$bccgƍ$77ӻe,J3?qe˖a: ;wT#4ihڴ)bcc1q8A1eDD 襒ThU"$$˗&L `͚5 AڌWR9\vtꡘ|)z)bccQZ5^:up9HtssCTT:v7+ǁaÆ!%% 4+W`>>>Z-[K&M´iӴ F훥? Ngؾ}RF~=ѧOaذaΎ;<}nq:fffϖv((3D""*U]~]g+W{QQQꫯ >ƶm,YwoƠm̙3:}{.`0`osiժzKMMEnLFGGcԩŋJ*Xlp|Zۺ>T-,,}4GaW$QDǏ/V2 x {F߾}sU?~< %%zR.-Zu@*ڳ3|FDD`رuݻQL=oV۴i͛ WWWʖV*''C Azz:zUVŷ~ XpƳzA;裏XJyU!"b|ӳgOiFY׵kWd޼yҩS' ggg,YDc~y7 | 6LY(KӦM/_^vذazKM&=z+++ r1/i8p`cҷo"8qRTO~M,--+WN:t 3F*W,Dvء9sR7o:Ν; _CBBye„ RN M4Q̘1C.\ ""IIIӧOsss 2JHHHPEFFݯY2Q$= 111Q<==u4hK*U ED-Zlo1:99ɡC?6(H GGGuPN יϐ qÆ ʶnZ|oذaE EDÕOeƍJڿK V^8^'OX_~e˖-r=X|ܸqF  % KRf""*HX'""Cpp0Ο?;wJ*ѣZhBgll,qU]C"""iiipttv }p8qGѠAVVVFW\\كQF۷/<}/333ڵ{)NjZf"3DDDDDD5DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""*"vV\\R:uBZXQ/{a0m4TTIg09r0qD888Ç0araaak \rfb$"*&""";~8ڴijbÇcɒ%(WKU$駟Pn]xtI)̫zŘ1cp=?l޼Y[n011yeիƏϓQpS""Y[[kpqqAӦMݻc CXY/G4iR<-[ѣG*Uh߾};D>>>?X0|pVD"-͛___̚5K+HѣuE֭e >>>:t(5O߹_D8;;HHHȑ#sN[cǎEN={1cرcèQ -- mڴQ`jj =zo_c)CcڵHNNƎ 777{=k.=z@.]о}{e>| m0`l۶ ƍZexzzaÆ:Ģ2PcǎEzJ%iӺ}v=zoFӦM[o~irJ\r* 3f y""GX~w sssKKKS͙3GLMMERIBH߾}%##CI( M YW߿MNNooo NNNҠA155ҲeKTJ*UdΝbbb"䧟~P *Ɉ#A>PjJ9R &ҪU+qppһwo(jG!xbQT- 6bee%>2h  *Jի'fff@&O=z GGG׻ݙ3g K6mܼySLLLd2b QQQnÂ|bii)٥K n}I&"/6ӥJFvܩ۷oT* ժU5j\ܾ}'3""=$RإK ׯ_ իÇe@fϞ$""c2dVPg 5k抈Hjj 9|Fhee%˭[$''GY,dӦMiڴܽ{Wwqq!7oT&$55UFq>bQTRZ59s挲|@&LP/=G|}}޽[I.dnW$DisN˗uiÂڨJ*ry͕oVȔ)S n}I˦+HϕreggȥKY*V9{wѢE@MƓT^pU3u`ccիWf͚˗P|yZ k=?ʐ׷~[cjO}nܸ-nٳ1m4x{{+Fsss$&&s΅֮]s-q@DuV[nEF3_qP3gqSSS3&&&uVܶ(ilj?>1|ek)S8y$uK?rH̛7:ORDDz0H$"*%>TT 999/lll|T*ڵk;wh\\;88K.477ǠA+WƏ7*vٳ:/$.*T(p!e7|SR$)) IIIݻ7ʗ/̷j ϟ/q{zz^æMeYM ֐6ԥcǎж0Y6h_kɓ'#55۷J;N:cܹsʏ-SNORDDzp"Rr5+۷kM:_jjrUguТE ݻ~={ϟǏQbEQo8T*URvZ">>PV-k׮cǎ静80sL\zضmD/0_qPж0Y68minn1ƍ1x`,[ ˖-3:w!Ck׮ӛ&//ӧOw}g~gu{0||GHII)rL>3gD^^4۶mӑ˖-… 5}UljkЯ ???|?4077;._l~틐dggupI4o...e~LDll,piԮ]HyqÇѱcG4C 둑KKMnѢRSSDD:I$"իƏɓ'Sdd$bcc1fܻwӧqTZӻeM"WߓHD/4|p=zhҤImذh"{ؾ};.] vƗo1H$"¡CQF!<<k׮Err20vX)iCCC#886l*VDqСɓ ŋ>}G011Q| mŦM`oo???ٳk׮޽{ѧO"oAuxyyW#߯TrL """ggg`2OOY'Æ *KA}v_E9f""*BDDe&88X|7MNNwww#FGGGYxT*  H%ȗ_~)dڵZ+̙#R~baa!o߾ *UΝ;DO?$J%ZjRF  +W۷o>6=p1cƈȞ={h}wF=γKƍJӧO 0@Y,@Abjj*e˖iPu4o\Ү;wwwwqss+oj3>DD/QRZjreŋL0Ag &&&ҳgO}ծ][*W,""~ zy 8Pٳ5+++^nݺ%999R^=qppg*i-Z$dڴizi&%oootbkk+͚5+/=G|}}޽[I.dEnw}WED$++KJ3 f͒\IMM@ 6O :uh333C͚5u{oLDD!P\iiѢrrrBNo><|NBRR̙QTݻcСzUZ5?Rx///DFF?DHH 6`ԩ7o^]=|Fbb2hQpeff\~!HNNƾ}nݺi?<.^[bرzV:_>Ě5k=m4̛7OmuҤIx71mqT :gff*e)oc1D"zuϺr (wƾ}Ç|0`FZǏkYHNN-|||*:vcƌZC? 3`ضm ;;;ի|;YQQQ:GEERJI-[ ;;ÇW_}ҥ ŭcǎa….\իc̘1AVVVCpttĊ+.-k׮i;~8Ξ=k*PA\߱cG899ĉHHH%\: 777|Xj0|pRЬY3 34k *U?Gi[lYw SZLDD ^)VXto3fCp)lܸ۷ƍQ]BHIIõ̝;h׮6mڄW"<<]vEZZLR>5j'''l۶ K,Att4pBڵ ZRf,ȥK?ׯW˔;"44ظq#`ff?u'NM4љ oD6m*R&Lkװj*+Wp,]'''#<<OH]͛'ZI7{qJ%"2 . 66[.<== 3DFFѰ(RoK,ѻ5kDѡC 8&&&l3M6EJJ T*>5jw޸x" y믱l2nׯ牧ǞX$$$vpssJ*r޳g*.r^zeݹsG*˗vo^+maH%+W?Wjl7))Igzcٷo}u*WӧO+җ366V)OlllnٲE4&,--LcYrd͚5<1[,h{E駟#qqql3qttTԣG"i޼#Ftԉ'2SL0A,,,4YXXȄ zfgg˗_~)y嫯6+$兵k"==V~=v6mm۶x_ʕS=uTl~.e2FanjV8s  T8;;c~:>^ضm[Ԍ9RH^ ʟNbAw?~,]vUnذᕯw$''N" ӧ2:eՒ'""?+wz-nذA<~XDD=z$cƌQmٲ;đ#Gs 4GСvKKKj<R\9X[[9~86l؀5kb…pzUxuuu 8~8RRRXTjKu?˗ʕ+SNɓ'9s&]vXx1ʗ/~j g^Q{ 5j4 6Dǎw^_EÇ{VR͛7qOW߿* ;vԹ#G`׮]y&@_dee!,, еkWm۶ڵkpttDF0tP$Z2effb Ý;wPJxzzbРAzJѣGabb.]@DyfAO >gEEEĉBBBQF ^z: *GpqKNפwT899~~~5Z;HKKCFFvڅoժlll7n@Jׯ_ ҥI@g+''۷oǡCjժ! mڴQ{Ν;pqqAVh\zjՂ;߿̙3x ֭z ͚5+j겜?񰵵E:uujSSSs055wm۶UVioQbbbׯn߾XQU[nҥK:kwCE:u`Xz57|Ko˲޽ܹs̄+WZߗ?^뱳g"//O;Y]vŜ9ss)u9Fp \|.]BÆ y H>HH:u L7n8 j*Gsa``I >}ZtRJp24srr4YTVM.^X28qB.bŊb ǜ \rsseСJۗ:tgbb"VY˗/prr;vh)iYKR^C)HnnAgϞUM׳gO ;vԪw2#֭oֱM8Q߯53l0y]֭3JO>D+:yٶ/-_A:qMaZIŊt޽X6}mVn9M͛'!nݺ^%鷥Y۷O*U3_4/ =cGUСC^XpSSS{μoV+{^<$~wYfi0ǎqtth '*'&Mĉr/f͚ Kʚ5k_9YyzzZ>aS,Y"k׮A)ﻰ2S6l(yy5\vMTTIƎ+ ,O?T4h]1BCCeĉҰaC ח'ĉ%;;Tİ0%~Xs[QҨ$oԩSKh:T\]]ZLLLSN2}t]KNjz=#t=s("ҷo_e_u /S0-ZT<-Z`i2q_OqF&&&2|fR$&&L4SN˗z ]gbb"ү_?yю=33S ,eeeI֭]~xyyi*z𗴝JR^CsI 4?^v->,v>/]TGm毯rə3g4|SSS g=ŠWwʛo9|Q_~\%$$hOOO$~ R1bP ĉRV-%={un+Jhz/9A177gϖyh:^К(%%E㼰m۶24"_m޼YLMMɨ+ݻWz[n׹sgG\׽huB 99z888(ߖ-[ԨQKE [n]ѣGK%Hl֬oy[PBCCɓ'un֭[p3f-_KrW\;;;;@v+W,QFʬx:g\18zhNMMUv~hf2\A %?c2p@O޽^^Xs[QDc{IنiiiRZ5l]A10ya„ |24_>|X]ꏃkQ1ٳgW+޽{7n:td8;;c*0_NN>Y ~СCu.wqq,mԁ}WRfffڷ͛_יjժ޽;~~ׯS+Ƭod :uһnݺp)(zҁcǎʕ+oЭ[7elo>}:\]]ZhԨR'Ͼ++!!'N:}z |}}uN@QjBcҤI:]yʲhbΝY[ZCưelڴIk.e%JXn]meU>gϞ7`Æ {Mk +./tkbժU4=Zy=w}(x4k֬L/fi~:u$zlѢE8s ͱw^4o\Yggg#FmڴS+U)~ePW9&ظq#;;;̚5 GN;}N< .(AbY|i=/ƍ;Geoq=''عsM46mXL8hub ^Nmv*矸y&*W1]ڵk#GaÆ>~W aÆhذ!.]m۶ΝSe4֎L@!88GZZbbb0o<,\/Vv˚^%}U]n.]&MܹsR |}}sNL> [n_|El޼syѱTF@ذaV\`ܸqh߾Q$%%Po5rHlذǎäIЭ[`jjF(˺/G@@@^5*0]FDlAwVVI|5qWPzz: l!!!ؼy3CH.^X`?۷oGDDDߎ;]vł tT1._zӈR={W}Hynܸ@pZEGLL Ν;lg #DFF]PrC@nn.=Gݻ%fj ooo|7x"T*u*&xA9t&&&Xb,--wR޻wO]gk֬)+/S A֭[4<>|P9O?~SIT?@ _nHIIVXarGţG:t`>UVҥK:Ӥ[n/4h@o0Gn_S_x2ħ ϟWK.:Ӹ+O07n܀J[?ot.ONNVP>`ff???o+VЙFJ0WrׯL-xC֭[+='M$c?~|:9}4M@-ȑ#D֭垿_~SL1;:666x7 ]1c`ذaU:ӪU?={PTO+d0|(ZxɞK_FP,JS1?>ëq*CϺrۛ@Mo-[V!##*ʨ?fΜ OOOxzzٳث J۷o㥗^2 !O0wޅZ6o`ѢEC~wܙ@5ppx"&MT>>>>|xCBBA93g׮]7o+,l̰rJ 8hӦ |}}ѭ[7bHHHBU_QE{饗a\r]t `gg+W`ǎqpyܹsgF``mO,Z&L@dd$1`xxx… 8p`aa˗W?Zd bbbp1,[ 7n-Z ǵkkxT*-[77B$4899!55?rJtwEhh(>|@_"g5kpk~~~hٲ%4 >cǎƍ:[~GGGXp!0|pdeea߾}طo^x+[Uumffe˖{&{~ۯ_?^? ___ܹsr5k5Qe=~ɧ/X>`̙ϰechذ!n޼̚5 ݺu3Z|M65j^uh/_ҥKhU=/o@JNNP*@>>>s]yKk֬1ZBxjZyRmݻewm4-k:uuj@۷Dd*M֭Xn׋)N[9sssrpp6l<ӧO/ѶGDD(ڵk:qww7پl_^}/33S̞=[X[[S('N(:;t u2|&Ϙ1C={,Q~ۤR{'t:ueB~Iۛ\\L:Udee-S+ڵkgr}ƍٹ@?-ɓ\!3gΔ_GՖi%9fQe=f^_}U뭷ם}ppp/ R۰TUvv683g$ 7FƍѱcRB٩S'9s:-ZTG} ={ġC7… Ɂ;^Y4l߾7oݻwwww 8 KB$lݺϟGBB1btҥZw=wP5e}|xZu_$IPT8~8vZ״4:t/_FLL 4i6mڠwuEta Ebb"1`۷JoIFU!9w|mѣGKtDDϲD899Ν;ņ\g!"Aϟ@?xEUD"Gᅦ7"v"jرcɓ'j*0Xz5+ضm+ooo?*0QM<ZBv퐕ÇO?evvva=8p 8p 1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"C"1$C"1$C"1$C"1$C"1$C"Uue˱ض;w(ԩc 7t_С[)2^gPAPAPP@% |۱jzH1{J 3(fy1BHtBBh!IZԩc㥗\V#"""""i!1:FT*+(VP*-TC6JB?TIABD#S EǎrDDDDDD5%$n/*U-յ`iY ffP͠TLD6Zm9C cڴ0dH'Qs7W>oj-T*kXY٢V-XX<jt:$17 j@SB%%PPΝd|t: ޕ-HDDDDDT]CbxxvPk66uPVmXXX*BZ$DJJ% %rsj?ރڵkWvlE"""""zk܃hm]kׅlmkLZ l5ИV (޼y6Wzpwo$"""""N!PRYʪ6ںֵEV799uAR@DAl)$A $ I %>|nx͑V!?"Q(puuEfгgOL4 juu566}q|w1$ͱcWp^:j[V5jղ-РA-h4:dfjPO9$It:P$I$j3gN w?CCϣcfٳmTHjj*bbb͛NJ+;j쎠jjFӮ]dԯ_M4Ệ!h￿J9JsXXXkk5T07W!'GRJZmx(aa Ztj(ZTjtOԇC! ?uy3ǏG׷5T*eVŋamm],aƍ@TTƎӧOI>ClݺӧOǂ !""""bH,ۉʒVC~SsTfPJNiIm*@׮9sBT{TAhPG<5o…رYVΘ1cPNBϚ5 G͛q] *"""""/!P(P(P͠RQ fg됓Cn$jjaBǎ֩RFR GE;_yJ%Ν+}QDDDDDT'q׮P(P{=}osaF7ib:u,ТEmXZ:8E^T#>A4B("6694 lڴ)jժLܼy<;vgggkƍmjشiΟ?7nN:pwwG`` 539MII RY;lzZjCBB6{쁙_r3ss%J9TcT:wQ?PMN0d! /')w| g||2KBӦΕZ999h4''ӏ= &ƍ}o0e>|0&Nf͚>_|ܥK0tP9 ZXXX.!!AEya;v;2ѐwpC}@h$:kUǷX*rsrsu<M ,J)]t$%=xtm4/ӧOcРAȀ Fm"::۶mC||g裏 ׬Y#gݷp̙ܹ3"""bŊƎc"&&ի[yC9DP& It:m^@̅J; Z2/$*!Ij^*I'~CϢ~t: }B.XEs&LERyvލK.ATbFիիWUVHKKòegϞ= )pc{ غuS\+SM)'UBH4\cHrĜSPUy{ u:]˛&=qj/+ܹsQFvFχ:w]\A6l֯_CM8q׮]'bĉUՔrQ%D|JrZ+B@J|+ Co!^aQaâ>0ZZܬB+/Uu:bccm6" 0m4y(3>\k{rd`,^>D֭1tPL0}􁋋KفjJ9B- BBͻ"z!g<@>|BBw[[+XVhSNw8s ^!$n߾۷o/=zdwA IDAT>}/wErr2vڅ]vZhQFGVSIDDDDD]]`nVBb A`HE5V+zcQ߫hܛ(zlaggSgmm>x!\m^h߾}23+ :i$c֭غu+BCC(|Wo?ȃ甄0=\l0ZXQ~]8:֩ lժ{RR{cܹe^&MI&A$?k֬ҥKӧo߾%*P$""""Q^||Z P\M#99|ki9F=ZmQHtr/QQ#'9vmJ<ŋE.Qlڴ Ot CXX߿Jt| .^333ʃWXk*l+DDDDD޽=QZ VMCC?=G4+4$b80 7@&ǷK׽{w@HH.]drٔ :FaRR}Œ%KL.۰aC9JFݾ}rK.m/k9M:cr8"WCb{0uڼ`io{lͫf$ܻwOM6F/Dpp0`mm;v,^ׯ_7 =>>>?>˼OSrQu !F$@4 L#AT5/C8IFx|ʩgi֖URF1: +W6mݺuCjj*6oތ( Z(fBXXܹv-[FÇq1qСC#zp,\QQQ>|8o>۷/ÍN-6 v¼y`ggW^y$""""K!*hKBa :C B@7pqD`4SIO(jѦM#<\7ck 1i$||oݺ#F ""2ƍòex\~͚5DGGQ֮]rar= JqHTy?O$}HCbv23ReTNNBBBp$%% -[KW4l߾7oݻwwww 8 64$Iغu+Ο?8;;cĈҥKaϞ= F;}rEc8sFD}@T>A7wstMrDDDDDDOAn_vvBC/رH;[CkFӃ0:-ZUh۶ :tp[&Dd;wpF}Ӑ NP*@:pt Ѩ#E W4iREDDDDD,D&7o#. ,qFm/G]yA o"99ݻwǴiLӠA! Bsʩ~)^xٳXnƍW#1660p@ 0oUIIIX~}!Q$lڴhԩSJ(3f 99?~<rDDDD5ڵ\]'Qx ͛7EDDlVZXtkLNﴶ[vU  99yq=ԭ[}Ao=E-$&ao6$22ґ>ǔ)ê| 6 ޽K.ggg#,, ׯΝ;ѲeK̜9h= شiN>8::SNe(ͲQQQqn߾ w@JRY,*#""={ 7́}vڵäI ;vgggkƍ+ѵi׮ڴi˗/c˖-x aЛDFFȑ#DLL аaCEOOOÇ C ;v 7nĭ[OOOL8jժLjsyڸ J['LbӦMطo₠ S^?{ p=ԣ;}2dL.t~N'4h ݻw`@ 8YYYbĉBP,BSN-\DD} BFFlll0j(mضm1uTdee᭷*ٳgx[ON5G|BGaŊ.]`ذaǽ{e\v K,Ao1~GaС]6كkݻ;vz,eiqyޫ%9TsCNy!%%| ֯_sa>|8233pB\r?)S{F&gbm-1o^:,wh|hMXdW$9rD4nXw׮]z 077/+`СCW\M6h4BLb5k<Ν;zڶm+֭[h<DZĭ[ԓ(۷O?dr7xC'OBB{5033ĤI '''Gѣ@/wI{ ;wnzC*I,m;˳ϗXP޲R9shٰ0:7oX6 ""kL$3XXXBP,\,ddh!I @TARCPATfܸq;vG۶mѽ{wyѣGcذa@fͰ~zM[|9ӡP(jժ[jEܹm۶UȲU]=z <+ȿGGGM۽{7.]R˗ezzj"33˖-+sƌ-.jTzbbb`mm ;;;{!00pR~N*^VU;+b/XPQӍz'wި_>:u.񌈈CZ%t:233׮!&& BNNt:R %%$UhY6l؀~}v\|Y cժUcر&Ig u:tPj pĉ YKbĉ&wuu5_hh(sڵ4h >tPg@<B||<ի~$''#99vHMM5Ggggಬڹs;+j/XPQ_q0HDDĐX 'ƃ23V!@nn Iʆ$~}[kפZn S VȲU]e {ڷo_ff ‡~pU>ѱj –-[nݺ5кukx{{x+s;+j/XP1$Hۏ";!'' t\H&/$fc@ѶFm;Ν;[n9Բ7E/ϲUYy戌D1wܧzM4A׮]q xlFUQ>k/iQǁkLh֬>|"T,hijSijAKN.Æuw8:֩q!N}Z YVesP}=M6VQNׯ_Iyf%?0!C0|_j4L*>_1$Hcw߽N > ^|?^ye(woSpA9s<۶mW2_eU!!!tyRRR0tPVM䃂P(p1Z prrB޽K|RRe˖sAH*>_1$X?E_I;!0o53gom&MB:Ә6m}Oȑ#+d٪,wE)1OGӦM!@```mDpp0`mmr& x$H{EvvѴl|غu]yiUQkb $I?pRYGsppE0aDFF .\ ++ X|-ʳlUv¼y`gggt233ʕ+1p@DFFM6Enݐ͛7#!!A!0ט1cp(ݨ/6l؀+WK.0apر7n܀Ο?;w` 8R6~|UDDDT VfΜ)BՖi111:"""wڵA?]V'ODppp*^{͚5F ">>j<-44T&777nݺRF}]iwJR:<8p`is 6l >^^_z}ppp/ sslUكh4w߭ $$GARRвeK=Itt4vڅ((Jxzz" gbʕPT9rdy|>_?"""z:HƁk!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! g>Pp7͛"jaEQ D"1> -YDTBbjj*+j nJDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDD"t:IbE0$i',DըDF²~B|BRaHd$vT=nGz[\ZM:+/tsh%)oYj  0X8:Z_UQmT:۹3:ߌ5ѷƦ }l Wyy/#v Xh L;8e^ѣq/}G/v "?mjϞ>6.JիԾ=tYY<UǨQFEY-C`'xya?ni4ω/>};qf3Y.mV6=t -™qnƥ_~ x|K #>D׿XWqe qcvH:]˧[ĘYݺMIA+Rvv+*UX@ia'QZ:9AeeUp -2cb:$o`ӟ\/oY< $ dlRYS`ƚ{x.==/? 3>?ʖ/Y xt&.̝3gMII)WSoh8t ?49]s[[y!5\^)fM!HpjJݞEZd޽ !xW.J_řoE3ңt bá߇BDaǵTծo#IH~)ׯ?<@Zl,~Ft Q(rr a})z Vseϝþɓaע,pqb̞ed )ׯwwoX;;9_>#IDAT63oD' Doۆ# Goovu/u0dժB!m*嵄$ċ/|_¥O>)WL[PBB!T $E-)ɲECIEՙrD׿9.]7qw|+E!t"?^2JCNp!n۶%>]'?zbs?go3f CX>%uzK괨m,Q6.>PdyR{Q6mBr89;dܽ!,E!C[?dXԭ?先edpطjUr,,Psg0}:O/2m'Om=z"~gχȑPUN'qp kަdV/^qq6b~-ǎ-sYyiY*m֏wh+o$1?;//uӦs'˗>ujW{w n~=È۷MykEaT״ptSn6m}nըQϯ1޻v;F}ox8,4k}6k͛wF>|ǏAqm!=wD6%)G ̄'jΗOu b}f`t)'>۴ZWW1INٿ?O^9th)ۻva/4h8=kPDoN#Ѡ}"d$%Д)X߬~k[:|tߚ4 BCq`Xk[:uB֭88~<=Z:,Mē'qmr2Tbw)@vCʾW/$](/k ۇ=~~X=z %3lunn8^| hߌ \] fkݽMrwN} :Μ{BTb$'c0s&nl؀Ŵ"l/STҖ6fQCFzQ49{`ט1i|\FңGǵLD^ 33|f6{6RjU‰G4O? Hq' Z^ޙw4]ƾ[7^PclA[:6ov@S5YJss<3}}~C؊߶ l^Csp,w,.7\a7??D7PNB6l@[a!DqqLMſ%(=XN Z IF(OOz{q0Fgau ZZ cm_~z/^DKA~vo\P^^`0`ÛtT31FC1;&Ḳe˘`qq&cmC~aZӌLIxTDee !|pG{ YP#dBfwL[u5jcQ0 l=opr2 ?W3ko џ~c ڌV?:Cͮ]tӧqt3Lϰ0J(ݺ::L!>0"$èDm +*_|<`06?S{I zkj@yII1xUz ).F43=FvCd Z'.  pp|hc:uc1~WRPtu'Noi(<?έ\I_cqH8re6dD##x!3gffbqGg'.Wd$Fe2H22uJ{+x,/対>: _%%c;d8 >ףGg YEb|s ܺw-'ٰ[:;9` ID^H1D&[Pb1R)T2]Pr؈SR,?; xPcR/Xnn\HZ(e2^x&%K_] \~x8qth~x'&BzKlgYy9x~Nި3#HGb1H)GP@^WZ qT(pZg[QB9Ÿ܌{mm|IQ`q諩(2*+!0GdS[Q|)WeuCpʿ a 3^hZ "J%rF32kЩT-XNtМE~j$RdgD.ȣ'OBVR"#%0 t\E V};:ϝ.]H(a6BMg)M`ii)9s#q!1" ax"Qy3*nADA$a'qNvxÅ`0PvL!Dq\y\n DjO,OpM&H @ ;!T@ @ %@ @ ~gtkK#IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_CambridgeUS_page_1.png000066400000000000000000002050221420322575300301040ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxͦ4BUzpi4APؑ"*\}WEP w$ l}dK6M y̜s̜̙sDVz_iN""鉙DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDiRf@ 5~gV$%ldrϹs8(8xÿ,@ڎy"!n/]s!qڵMC޻G~ï'<;w}%ڶ_F5o s=ٌ C`' s:ϟ+wT{D""dt8U ooD }#g&- V(w  }KJ EmAłD_ ʼn駍D7;NEH׮ \ m^4H޲gtΨV#eV Z'ҵk6#j< nvTDD Y0V{bv->u Qc: E fz-߹M,km7E` uLC_TE`wb37BjPVЦt wַX,Z:ҹ 1}n@sib :eݫ|@mEަ;PmڮmJnN<+ƪ.'fNLP;`Xb"FckLGèBDEv1aU<W_#O|qkn|bb!Ilal8/.ٳW/|ߣvL uF Wk:x ciNmYw^frvLݺaM^8wf-\w;cܹZ+zhss-u+VeGGĕ?8r$ Ο2~*cgv}]8b'.ھ}].8˰Z,<D""rOAW~E' t`}1hRR(բz޶ {9s]H$_+U8  PzN})4<D""Ns&-V*5f ,YȀNZ,h1z4"GLP"Pz݋둻{7lhl?hUD:N*-AhP9,ޫ$(F![PTpFCwXUgRҢH,Fo!nWLV{5p ̝'ֽ;+:Qr27oFٳHߵN,U 6IԐ|p|덻/Whm`{gSÓ9`wS""e/sz}q@mԾ0L¿kQt #SBn~ϜA=ԘȍLkM+4mǏ V-@Nih^^0FMWuF\T D"k5jBv}^^<)jjNZf1ǍCo/.N]6'yP wǾ޸5wxD""h>'>O84/CP q2JKZ ub"|ڴO޶ 9۶AT⶯-~szǻ/nzm^ %%W%4H1b0GW} ah.Dh] ]a!-ZTbX{Oǚ^ U`(-Eyؾ[s睸iSAb#[7l5 mۢ<7}}#7lN>ԧ|DD5} X DDTF_ΐ)rr] }A媧O~ 89mff lA}¬բ]=֯Sk&l0 cG'pb4"qH v:f.PZ|Z,;q&:AT#I;Pi%"DDD7$5|'$D""""""bHDDDDDD A"1H$""""""DDDDDD waLL~Ib +WBѡrcǐ5u*IILș5 ރC_ΛSN#x\ k= -{A4;w"sxXfٵ >GE޾=Ao /رش;>Ç# :߷WLY<]4w ][7bd#< (߱eN-]͛C,@ /8oYYO> B/L Gwh[u+P$F~GIt"7`o#{ip֕z&HBCf> 3s{BЋ/B~-B5vtw..]o8-9ͦO tEO; `XntuYV/Xpc&hƌj}}ʮ&<[ݭ5X`5aHLz&B)0Dr9_|=C,V>3RysPck2r&죏]vH5n Q$G$kWO8R_ []_?;~Cؿ'# uG…]^W 'B=t5ԅ)+ j.{A/ToS *sXPe^u1.HٳT[(x:QS=|AVwkSj.8ݑC=pn cru+y7sScgw~Qn]^^s<7zؚۦ k9}|x +W SDil,|GrN]彜4gvF08'n#oxI >O ͱz,>\޽v]-[S|n95E9=ONW=¨~DDt֭n \# t..HoJڲ%dqq?VdL'f.#57< Cӻ]v]-ww٨0);8(wd?T.-& o׮IZwR Ipp]o$.Z#eX |rvݍuXz:767n7\Nn6d""睗5dnfy8y-ee5g'+~C$D~Gh,Y5k V*6x; D}}Ȝ4 m_~q{DC!ݝ@YڢD0͊)7҈ LØ}RII0^,Yk̬a(v6HBs=Q E â~nl95A5,8LqDDtZ~w!RTTua)-u:Ǜ+CiWkHؽ-;@C3{6JWC(?pid$&MBܹ>#Fw wG47U^]J!#wk B,Zw:7}@lt1E]C>9ncݦ ؐsЍH[ j]k2 Ab}WzkHkkC{];l åKPoތ͛?~\x)\e6 ꧟F߯ރfXJJ`ApٍhgCCrAnuj dsOH(u];(ڷK[DBtt¸vt[tMz,4׺dT-|ALGQvOlvkzV[UEk}M&""  uxf~}Šٳ4{6,jmQiɶ%5O=={}.9ix8,@~ՀݝA\j]nI3|ʔ)B(Esᇝ i IDATv)c}oe]cz:ܙVޔqMVw87Tn2H4`rŭ.$HDt#?~c 9UsB,@SZ14Nb#÷gOKMO*nXH}1i)>dgj &7֔My,4K7ƹ>V͕y~5A ľ+Qk"cdLgwO3s&rftxAӧ;xi b.˗Q`7i3siӭHO?U5j:v_sUuW/g3y4}Jׯw!!zcẨtݞz`pys9]w]N/;L#d?"uUDD o\Ұ0dQFז¥Kٶ m n`pwyMJBʕ(^!HU^j۴A+T~X{W/a;шej]RR0͢ڿ#NWM{YhMtzaٲ߫p]>ύ =ٮU̐Xo{~圑+,ۮr'"bx |晪͇ڐ.۸ūV Mxݧ_E.Ui__ȘcǠPnnS9m =d2?w_B{` 9f ê 3?sVV D {Lh\ pzM6AQ<-j5RE'pF#f3Lii(\G #e^P6q(l"dߦ!c(?BSшvOB^{ Hwڽ"!:NLYY| b/p1dNNh)dN+?p39tW%K  _<}~UBc]ݙ3r>wq6$$Ruhryvͻ1Q1f. oR^ٳș1W}T('EZDD7*M""W@QП= XB75DD +:t@gB_F…ui)C޼y֫HBCפ(={"P駮]BH5 |Xt:/\ !R(l]5o$G٪ѠW$(  m;qkWH#" 19*0΍8{/T jvΝ!H153aC̙Ͷ|G,Yɓȼ>>J##Χ˝Fėo*۶odǹ*Z T"hLIH ~mEs fIAܻmYYۣ{*:wFΝՆ7Bz _|S~J!4ee O[9tDzt(߷f78)^dbЌc rXd :wϝ㹹bD~T:|lή E"͜/hsY/[ffW#cdv#NDtcǐƍ9SN*dm@ަ |:Q/0$$ӕ+BY|<|njqz=te7xLyy)hA3rdoSSQz5 0&'CY|<|aU b5P'Ѕ-7 mx#e6@mLy{C~- gIPoZ>F5੺Pv-L@%K wns'hv`LJ)/P;w6nNQz5gœg;ڶرӅND @?ɓ;̑FDDDDQNFrϞHryŋB(sݑ\CD,X`HHZG-\T?YmtS""""j$E$wHV+2ǎEW5Ԕ짟F֓4k3N"՗)7Ô&|&MmWڝqD[O=#"""bHD7d7D?T̞46a wfD"SSQ~= 0\VIp0m{` q>y61H$"""""D""""""bHDDDDDD A"1H$""""""DDDDDD $IcaHH:^Z ݙ3PvY|qCɪUȞ9X q T_˗_I\<~&\7Abc]s)"""bX{`J(sJ͞]my0\,-X!ML{@ymM9?o.]kWUxJ%z1ݳ'QsUUhHH@ c{`);xΘ tǎA EMѣtPvyO#駙wV orQj2iV둴-u_ZlXpNE:b/&+I]ˢ>y^kyC]ҳ2œ=%k-=zh$\mmDRu, nי:MU\sAb>!Cp)( aaܩ>uCb|<Ԧ ̓9/ϭrfFI(\I#!<Imʔ)0U[矑1jtNAw{Ϟ)]i܃K-Z !"#a5jw)Z ))5 /wZQ=|i1jr=v & !& 6Su~mCƨQ(Xd>BCϟGO#1. HF4/[`$!wohi7@sA,u#c(ϟw\; aaXd?EEGƨQ(k@g!c(rskM[>DFRo}!gW4v!c8\BBܫƛu;O]mEϞލap)4v,  _U;ț7={ڶ޽Qvr)_lFر-rs5m.z+ÑتJv\9̉my^;uWI"""̓f>FɓT+W"m0hv<.Cj2O2h.;G3 7 H4e;vacz:4{@2'N!!b z̜iӠ;z$,ZCaQnc5`h"fڭb$h9?zdfߩ=|ͶmwhQw/GE]_Scj* ͛^9_j(Y҈?ԛ7#_?Qyz=2&L@p2TwՀ0$%!^v xݑ#S㓨ҵkٻȜ8Aٻ7||̉TXZrr V*!R(`Z! Qi/Xá޲3b^^PoڄA`.,t;o .EƘ1(߳-=t(0\YPrc]Gy*m}E5\q`ʂ=@ֲ%tG"mPƴ4$wO>H*СBMz˖zzup<4;wBoR1=,6<< yiCw8axY?Ϋ$Aif@C|9bnE%К5˚Ґ"f6݋uyMSZr|_RZ5k`Z?m7iyE2dZɓhŭ|^\ id$C݈޴ Ξwo E˖9l.͜xލ j0 brߏ}"hLXz=ݭOYeTv,HBBk#'lߐ3k޸-Fڵ?yF\e3r$Z_ue bwL&m)Ic)-!!!:J֬kWğ<͛?u Xh!M? ߎ~CDN,d-[ݹ[Oj P. ?Dܞ=^m0mƎ :;O]|NZ<5k}V)\s?Dӧ4sTg)_W)XMc=nۆ?FEGâӡi7nD%ݹ"K""""MNޮ_}&OD"[VëoߪR!|2bbٵ ˗J{SbblO ֭ y`; Kb @,FG9Tu˚1<fvh֧,}LEcX٭b6oww,XD!Ue,!7l 'L{tZ۷GGX^ٵ+|'NH#" mBNWрwLw8` #nrsQ!jzbc<0#GlM]4+4F# ~" 1Eǎeٶw{z,FآEPzk"v̶jp>y牴&OCo H_XqXZ Qo:G~͞ #UeS12p,VtQBID |Rx~4, "U*""""׌w;4+bڲڃZtQUL Qvᇫ}&J# r{!C qܯ' RedZAկ,S}ilҸ8'CYɢV]l /YUuE};t'NwX,6 |3ڶf:lj1 oӦz`":j͘S,j uH`DԩPoX;&&L@M>ϭ(jTPgaj! EՏe Xb9; Ut7߄С*_W)gO /nH\LX҅WI""9y4Mg /m 0$'fn. y1%NS{md Pa:_?x ![nsA)):"كWMQ` iL ,:>G;MR1]ZDXmO)힂_,T>)@$MV;8[p)19"x,Yz-7<}= D2KJliTݺAw$NE+{ ȑջ|kMUǬ0\YVEE9,[ٕ{ذjy!%"""LMjAZ W,>ޡWm=I@~U<԰-Tl!Xu<^}"q|ԛ7Cw4ϣx ȢP_pwT6:4zϞb.NnNxq gj0@ٽ{Ӌ&p= BENh0C id;s#y }}AslXM&^!p d?4$U3<}=PxOsbE"iZ@jS c@w8&MB9jdɩWy"m2\[6BE]_cJ ̅b=Ec!kTϝ aA(?p |vcǐ>b_~ph~iP,՞JX dϘ^Uz>D^^ oIp0&L@?"}(̛Ip0)LslfiϞS'ϝE]P ?e WD yUZy~1/;vCŻ~ YPvcf&ԛ61R^JUDB }(#$ 97+W|~(:vD{̊SV$4^}VQbDrC}KMQyy0AٳgSOۂZ0:J@H? ]wIDD IݾO=s;EZӧ#W>k~e#Aܞ=|aowx%BW_AyUSWw݅iPbÄXDo؀*E|)2xǑߩDW_5,U%axK o޼}[Px ˖!?W*{y!g`F;> _M޴ !/Ql]9waBJ+DId IDAT|9|*'CPv邸?.x]+WٺYr$ /FB>BzK(瀩SQw/Կn$۵CoëOzo XmxQAknZ2 KVϝ)rsm P+UMRqNJC4QQӬwd)N.]ճgU@uJwtsq1m{ذGY`t |ZSzEh97xx[c]KY4viTdc<X EN+kyj6|~ϝ.] bq_ZPÇ;yr}=uj2A0$$@ EǎPtLKq16n`ߔ)\Tº[yPU(S?~DS;˗@lkR fk[l*0A"""""")3T.]А8rd8^|qioqUU&$%c. `aP[[ R \BJLqCbl˖GU ;bڴHDDDDD^uu5 J%T*j5ju DDDDDD~Z-jkk!ˡRR'$`"FB?feF+v*(-5 , :5~~MKY۶JԘ䅤`Fr} lْ"ip=Z}&F "m[TUCev*QZj@D7q՝̳DDDDDAA!u5D!x/h0Xw[;MӓX|zpVŋ"/y8}f͊u?KC5;=O'a„(i<>(23/p6 u-پj~x`˖x;̳jUz(s؏ݻ;Lbݺl,_>r9"ѥl6CBTBVl6jvbS]OK,Y_Am=z`„ht|@FF%+QxL YY5j-8ti+1Ĕ)0uj bbP\Ge v! @~ֿn]6^~9&!!ugLAp u2a۶peM+W\._}u*ݺi0`@F oٗe̬-cΜ+U06&'СrLoOȑעˆ<-""|лw 0""""KLJJ , ,e2r!>xx%zn x䓓8}zDDxV;΂x ._i셅  %˗g`„(DFq:̀:33C~/~JVgb(,XanMFF%>| z#  Uĉ*mZg̚F""""""f?> :B੧R8^oO@m>> L0}ƌ.hN.Zti+꺦^ye>"""""ֺ*2@o{Uo II/55&l^2d2I&(H cʪܹ0lXpdRRJa0XV˱d@Bl#"""""bHlC|0!S@&x(**ؾazL/{n (GDDDDD2L&+=rTV鍸8 "^^&jHN.㕨1!(H1jT8T*E>"""""<Fh???D""""""ĦCHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD .lڴ -~l߾V}A||<6nxT\yyT,`@{32o5j 2+ߑǏz}T\JJ T*ѫW˲>|O꾥RSSa60eo, 0ADDĐؾLDϞ=ŋ~\qN( t 7ok׮Mť#((exѣBBB77ÇjErrr l˗ξ6l0Cb;v,Ǝ_~)`n_`ĈU=x'.{}KjBTblZ=z0|peC\c(( {l5ˁ`X 0tPe@7v?d(7Q!--!(l߾7nDvv64  jTWWcڵHMMEAAv!CoBp^ǎ;T*qUWAaŊصkkzTUUaϞ='BR9M߰a222p +ߎfׇhį \[l֭[5 wygU\\իWرc())A||<ٳgC.o8yd!1;;k׮Evv6rrrx|HHHhzĚ5kp d23wy'j5RSSQRR **M]s8<6m ͛ה ;wHJJBuu5k  Yн{l2}vuM&V^~ eeeԩwƺu됕PL<fj~}Z-v'_}`o#G`00l0̞=mZ F J%yw@bر iy,|Mr$qa޶mO>rv[ÝUV "00PXVi_~r:s^Ν;E޽]QhtY=P*.>|8{liPB;Lsu>L&-ZԪz-**sq{"!!A)))m[n O̘1C>Xt rz-___矷,ݵ} ">>^dff!C8WT͛7*1o<_tclb+ aW*B^={Tg_|rZ.""BlٲM}-YD[⣏>+W6l;vĉ@4.$޽[:XjU"((H<oAŇ~谬d_Á?.^{51k,]ru++Ettt;`z6Y;O< j}5Ǎ'/^,z-1ockgff:Mߵk_v_1LRY_ۺg~GcǺvVpmVM"""jF7 m JJJp3<-g:󫯾 k1sL˩jp)ܹs(..v9hw}r|.ݳgNIZV[zIII.a?"M~mTsG-'ɰl2^Gܵ劊 8qc6hu]={:MDEE!<<+^NN =6|nmOFFF'퇈O h;xQ(]s;bժUoWqqq.`޼yN˵::pҥAhn֭nVx=z4|}}[\'ӧQVVP999_w_X,fA``^{FΝѣGgXtC_~꫱TSSt6X,HMMmQH)S܎ @a~;*!Bݶ뮻;}~ٚ}ž,vvPk4釕,/7ndڲen6aTه^zv)b_믿nrvrÇwVh}7,z+~gTWW?ć~Zqaܹ;} O6}9oݺV6mZ0В2dӪb YOFNNVkj_M/9rdv(((=zh6?C/ft;GSeX[=߿ٳҙdwɾ^5Jce빽Kܹs=j:ujer҃*[c,$$ ?;mooooOعs'VZ 6 ;;F[n֭[_b˖-ͺ[Kv޽{7zBv̘1ڦ> .]x\k@*KOBbSݙd^t/[ScA]*'OBڏs1nmY{~2 ^z!(( <yjVpGm}7ƍûヒӧOcӦMXl233믿bƍk~s}J:Lk֬w [h"qnϓzm=t:|wmZZ^.tuu̙3Ҽ&L,kM9L277۶mkkړCDDDaHlӧQZZftd2I1۷oGyy9z0Q]][wRSSaZ!1di"00P?!!> O.d%SYY)5lr- c˶>Պ ̙o岿;, J% 0͓zMo=YFz華L IDATmZ[SE[='@0錑'e-GAAǡ=zpε+jBpj6V>8gyٷ`O|X,ԩS[]֞"""j_ftӓ'OJ:x:hMPPwr4i< csNL4 7x膶uVh}{b?~<>r9 m5VNl\yא ///)yMڎmm }饗]z'[hk .oem5[]]-ulȦ Kyxyyy\ڲ@)A s{헭WlK,DGG#&&悔}HFC›o Xp!T*UړCDDDIH? i*$6}8ydrTVV't:KsN̚5 B\wuNFz}}Kh7ŷ~6gLLLU9ĉxJbŋ7ڥ2/_ 0m4:}v}AllN:KI!5m5{)7SO9fݘ:u* &L0okʺSXXAaРAx-NDD:LwSہ5u<O<7x~!ك')))ҵ5W\q$-ќ4|p ˗/Gjj*ƍBLtPO5ikᅬcǎ'ƍ1bTWWcދgyd_={`HOOGϞ=QXX~Fٹs'>Su]'믿FYYO3g"!!A*gٜcǎam&ZSS|3g69}ɓ'cƍׯfΜp9rׯbA׮]af#-90۔Jkl}ۙG!&Lz8x zܹsnCb[סC`4aÆ᫯BRRfΜ `֭ΰ\ҡ=`~A1BFjt>(?o߾xלzL&8<4XpqZN R)͛77-];򩩩v-bbbc{\uUb߾}ͪ('NQFܦ'4kjjjBĎ;]Vކ'SNnIz.!!E*1aqq-uֵYhi???i>\.*++,W_}UIII"??d[oEEEGܵe"w߹\;ٳ]N߸q T*t_žR]]- n'Ő!Cm۶ R^˖-ļyDQQHJJr6\.͛'3Г3HXy],Y"z-G+W 6;vTq QPPL46"܁k.>>޽;&M$]KXVVe˖0a򗿴h=GZZj5F>}`߾}9r$PZZ*X-DK7-- _}t:zQnk׮=܃?Xrtnݺ믿PL&V^Ç QQQ+qW6ަl6c͚58x t:z뮻\Y=FhwǪpYD"OC5kSLAXXn6|ט6m~Kvyyyq=]f!Qb$j\ee%n6vmҵT [NjѢE{C^^~rd5.""?J% sIX.@G}ɾW@'۷/+!\裏0c 综QT瞓nq,9d( V<C"2e9rK.EJJ D~;.YYYke]޻ݽ].ˁky: Vp___kVk]ȓ2*2$ ;wJJ 082$}XlĎ?>>AݙV+ZMDDDDDDjjjPQQSNٳZ򒂡}PtuVQV{ Z-jjjP]]jo lDDDDDDlri[WR[v<:xC}9l]z9S-=o4ZZ 92B[#9qq}w)+3`۶?^㣠4^ Y6;yyZUBI{PwVYS"""""P]]-E4LX,g|||.(՚6VljR~x 왎^8 rC:?KKc|pO? \S.>Jq@)`P}fhZ)$z{{KQ&AP@V_!R]γblؐ J8?(M[.g: $ cFkW NBrrˍ?R0fLd٤`zk<-3Ոرu D"""""j?yyyPTP*jr̦CĴr,YrHСNX￟`A?{K xc=;gex4D>-]v̘^JÙ3HL ek%""""vg2Vhf3f3T*U > cР6]j\>$&4|ϞʪA^^m,KDDDDDtf) !;lH\oo ѹW5:!vY"""""Ak@gxj͛G}Rn|y[H5E,KDDDDDtߜjalg ccdY"""""" ر ddTtke;Ja; ]0k%"""""bHfnlE"?qp+꺗^yed,Ĝ9;0gA]L? RcX j0w. 8?72^:APCb[z[p/OR JL uZ_('FJDĐؔ7ep2Xӡj ʚ?Zo`_ 6۾t}A0="f̀WTTo~>3{ƒd<|4b["]Noڄ+z2 {ȔJVѥ7_8oW(.ш~={BR[ cI \.T!`5˲p_ڹ3FΞfx7!f(1hp@@H<*yU ^-OJ„l}KJ/# GС8'>^:+2 s"Kz{>ˡɠprػǎF ;\E*SR`dK$""""8 G&C?4xGG+2 d2(||<>ѷ܂{B/ jjFJ J iiNOG>}ZjX 7CBCX:UU:pn\Ca!(7ȔJvd PW/DϙEiQ{99PS'_{-|[]'Oh:N!hPuUU uxxGsϖo[|yRZTgc@RɄ/;aWd$"AÇK˔lق_+Ϩ(37m6p*5?}^T!!$&"ꦛ 黫9~jhO.:C4^6HDg%Bό mF"J S' M>Ƚ xj=(QU]TԠZ:!0L.LnտN `8d/&CDJ Ro1>+ ri}n.vڽ[:@;r8Gχi9sW8 :MS"^?be}Grn*7t?\c=ݹsοϢܹ-ִ;Dɖ-q(p7%z󟈞3;c(X ޝ;c4}XЉ{]~erMO*8`kG2㳲(X`qh ZVNm$$W9"ؐ<``ئM8{(Ger%4{{eeaNf?o\}d4w._uqWVkƢ*?c_sMGsOO1,,k33oÇ´}"=i25i O?w݅#ދ_uڅ\$"ꨞy@_z4_ +W:L;pJ E2ʀEUWIh2 rWQ׍eyy2FDo25EO<[jCW_#xX CAv쀡VAlY.7Ȭ?PT!ۣjEm0}!?AUW񥜟@DΚ߮]a@О>wށOD̘!-WCsB燈nsp~f`z=:}wʲ!@َLMO\b TxzXt:d<wy^ؤI(X \貲B>7W P{SH,>``) E9d V\o׮rPd貲cƸ=#SNKCԩJ}|Pu+ b}Aؾa >\e8ʠ p~FhϜAks_Ϟ8 ??Tكݻqx\ehmϲңWT=RtYYz~@ѣ1'ª!Q{$ʓQrCm+ /v?Jka(*‘i_i m]V3!{`r:| >|em?DDK"$*PwL&nsaV2Wr9® VB '2!j+*P[߽/ZaAَ(۱>]"2nGLDKnaB=<9}9s\vjq}1` xEFJjOn.;O=Q{J]^:eý>(RNEmF V:V+=,Z-z@җ_&.đGyr2N6 ͼ7>7W.W;Dϗ^L t IDAT扜5 iAL^W,9aZ޽\ߞ:iRە>.D9{"p0-8ks99uF8KQTںm={4RNUh(zC@4r˗mMyde:uC[TMވ>mpڤ&WܵVh˲r;t.ۀ]\$"bH"ݺl6`4BӡVEmEEE0P\ cY :{&M&),Z,Xk^׫]0A_Lطg^{F]:ok]|v?XpuHK+p^ ] <v+UB{r7݄}pWyY70h##ZQž}g[\CAQyruk{ X3ڪ"}.D9{aHq&.Bnonqn] .Jl^^s|kʣ%gG,sW 5uY#]qڤ}E#W[j˲rj.~tilz]E"Ah0 ^Z VF + e} 3L00L00Ͱ Q *(] <dBeJ wD?C{ł5kP{$A`ZJ[7+"Xt:Z- 5u ߾О:0@̙+˱o8LAFWWF)t+H5PCǏotRuV mH4 ^|2;M߾0A?G8q#wߴu?u5mrQΞp[nFD(mBc(۱7. }NN>uQimyd(eڵ\k~1d#-71hG)+ kk ++a20?;h\UPTdX0P(dV+F  FfXh=U*ѣmBT݋'Oa~sOP7q Xo}N=[K\lCbШQ[8d ̕(ݶ ۶}I#k}R%_~iL,55*Ca6KLG͞輶 = ]v6v킦o_w5 >2cJ!5ri7O[.g@CC56h:TPXxătWua((hx5rkZS-?;giqjFPmJiòrIН;v\$"bH"Х_?d;2 ]4 j5 2zz_&!`UDG# <6RJMw[x=\ߑ#1oox**PysBbc}#ہgk ]UlOGϙip~Fߴ {\Uٳ8|9r>=_zIZ$,ug.5粹]j33aoK~z5:oMf&G=zUs''#AklfPmUf`ٌ#ߏ7Jף4}GmVN>l㻈p6uy4wl+,s׮/ &lESVm+mE"" sg$ 0%!D]H?(bH^^_b ugbc_(;?[69:"AFƍDX\t[4w쯝uKiK M6pY,V &433rzܫmG:ϧPw߮{V:oCl3rGE ?Ilx#=H7Nwx޵kݱCDAOJu-FFD=#Ԯ<wމ/x}=Cmj ^rpvrJQH]7(ĕW_5^ ir]5]34N X}V_#QMl>6(sBpx Z~9rÉ'b#2eui$3i33L؁ bk!(PM:mfOBߺuYx=3!1]7.5Cr# 13d{ [{zzogKnV`!ψDf/-q><GCmαK; (sW_c9P5ؿ*]{ىsY;N> 3E'>_ўN[t_xIZ]jvhR{귿t~:;e5[Gp$9aw9XAڣ(}ˢ/84=3)X|fϡkp\[A$Ng S0\+HrHe2He2Hg( r1h9AI#a<,E~wϧyyiBy?,?bft|rþ߶ifY&я?? gڅb~=0qf)=@Lld. o]uռDbߋ&N;wb߿`g?[Uhv;}ch;'ȓO:D MC,yu*~&sL8=8гOjZg#Y*l_jИL.ƣe" X%.>\xs!gY[rl1 nڄ7bՑG{Pj_${__^4Q|YlԧLWt[a\:XGP/Y2aԧ_%L `7$`T-.x_:vog{=@NjeϹ@[W]U{f.?~0R)^/zlYp]4|Gdo]KQ;0җn3WОN!o=vXIfa1\'i3c]wf)_KU޳T;nS3~! ]y%qq/Rw?Q0FoϲVa)mƜf2~΂65m0YpW]h</yfEJY6m8D$''*^o h[73)b3\XL` %Xi9x oڄpCx7#7:䫯b{{hk!wwCDݵc VkH]]h?xy'w`* b_*PF2Bڎ=?+wK85 c^޼ 0ヒسRÿ"ٚ/^ OGg÷n,MC嗑^pG$% c^:4{,#o mj 8|۶Y8A@iags uu!{<i½r%6%/YDg١Ͷb\wb[.r0 xy]x!`>@'CBwB}-*[11`oGiS Ro .o~fg7FoϲVb)BhĘL:N>?w6A m`fqb͗\ԏmk5v kY! `'`Y<F|t4f(&XyX{1Xwq8k挤F!/~of6޽g0q7oƚ,#T?tO!{n֭݊{\oϟpBrxo\{-RoY^q]o6\pУQL=XY{hGK&n n z<TDSOb?C:x|-r##=\Q8|Uۡ pⵋ/FvǎlC` 7@Wodo qcSzjl;,>? }z;v)`k_Þ[oE \đ?:N9/pT =6, t^CcGc1UZKU{Yz+܃p Qe{, Oy+uYeE1/G~8bcH,]g*lRzocӈ<Ro #ىcEq3R)D~;({B 8Ԋn݊+w:t}ɨS2v-0YL<0ݞsu2 b]?u+<K^ >eeO#k8ѳe ^D'޼5LpG!x<:Lp}"̩oU6yNRz*&B-cbbnz;y 7܀`0ߏ@ fo&#`b.yu>"{"95\*S \h[]CCX1< 0xal=Z(<@ q-`IC矇ûz5Mx볟/I8m3gAAHO${;<"{"19\2 ]nxA10U ԰o8Pa0T< c!O=n&$xC`:c$ ,;lb!$_{ xrvqwH:} ~x"?e̅EA:,5AAAD1H\C    AAAD   D"AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAcdr ÄeY8CD\n PmAAA"Ѳ,LOJf-8 I":AAAā$S,3qD"10Ơ(:TUj=M)4MA__.hDbY4Mݻ088Y"D((@{{Am\.ihf͚gفn4(t]АSSSE+WNBcAA"'x<3#y|O{re CƬȜdT˲x^60O4MeY$T}Y][\Luz:4Xmٿ=:: XCݪ6b||l9g=3LZu   gq8N( yh1˲˲`Y g)J~2q~QHtXbjm N1088۽`/rld IrޯǃJ  bͪ{8ce1f~eYvBṖ A؞3 {ܯ]  QAꙞA,.YΟayW W5D61<0`4HI M ņy_  H$B*8<߇(1guܒߧ(Be8LMMmmmοb1gO-֭[WS Ą3qI&bXr*d M4E @___vjmfYBRT{h%]:FC(*k`0"[1p#;vzED"2D ~lbbȾ631˶vڲX,H$R &񠿿(6b'mrܼ^KmvFʐL&L&!I֮]p8\oմ\.p8\@wwwSSSSd2B6tI{D"]PHeYN{ذa&''T]nƠ(Jw8ގP(T2Fq$ 'kRh?A$[Ӵ(.ރhS4mdu G͇bF,2چa0LҚBQ²,<MӜډ 0Ɯ|>Ap6.kN/|h}9k뺎Ig0o!# ,x^x<躎l6x,`vjmf߯d2~8իZr*1 0[J,"L8Ȳ\4L$Y*2 L8KpO(l6P(ԴpX,),Em{FGGzZxx.j*AEwn7<OE\b\5 t: MFS0@QHvR)gvWDT`||n#²,D"SjӲ,qhl6D"Qv!a)ǀF -(t '/ 2<I͖Kb^-)0,˂,,򔘦P(l6)~''@ܵ& IDATuǃ~1x$I@xľ}NU3C[˲0>>ť"K-vjm( VXQ4eNZ6̳CL&%!t1LOOcŊEm#\.4 cccuXv3'Ķ0/D%F:"_4ORB4 dmmmuzdO-˂ip\ jn[}*0URM&ժUEe޽{*ɤcF=3u]wڳ(e31X,ުqOO:::\Z\jU`߾}"Ur޽i"UK14AL|rJ d0, Nhg a!着X[{ @3;Ny0ƐH$^h4 * Ey($/M{{{@<AQZ vxAx<)[$|93`6v\ܟ̷_V.Њ Db|[彉<3?X^hx\e1XQťlj`5z] B\H/xC%B&LKQri>8Ⱦv1_DQlh=gZϢN5vZrz*=0554lw~08_]Iour hCA"HM3wsD"TJ$=1:iFk<A[g57dmWh0 Q:!]Keze=mo.^ f۲ul{ ~#$٬("aŊU93uJaDǀVk?A$,pg{-XV ԻL*a{! MEQ( $A4xޚ3Ճ퉙o>ZySy.Zre3&.7 Øs<ߵkHzXZtfdNvFJ;$<Op?\}Lu糭 ]@AHlnlV99g2f8$9$GdBqi\mVs{DQlv$*9m~͠~T DbE>nT YV0M@$,ͼ/{wVWKx{˲|Z4$6L#g&FGG߅ 4A=1g5.sQff8ۖZ^xD(*)(CvޞavX[,s•gS(ʝlhO-rl;̵zHv6K\Yiql'celŠƀZO$FFFZf ku0Z4` D[hO7:;; 爱={vò,R)g.^d2bEgN-.R)gErAuigc8ֲz011D" 0{*e.\mVmAp$ɲlook&z{{ iFFFzpl61z׋`0d2\.={Br9 z쁅xɚeYffE7{rՅH$L&(PH f cFЌtvv"0 Y@J-ڰsd022d4)IŋXo?jZc@=0 '`3AH,33Wf>$)οz/b!CCCuԝE])`955A4AB!Qn\#H@U՚CMn7(JD8Fe.Yr!آ( {jM0M$$I+B a&RTlD$@?ƠjQzL}}}ؽ{=D`F2 ؤ6PYmY£Hl=g>r0=d@+VXԣ,GͤƀzAǖ"?{lVA.AU\$B%\"\.ԚgP1ƐfUI I~љL`HTSx}Nq\ڵ a -,Ԩ.s-f#(<V\鬤k7"QeYd2Pe9^ ;omt!@`At*"|>_U D϶,x<CmةvךeYN3  @eǣH#N N?,LTԨ~X+3~ Zn9'8?זe'BQ"Q  '{9<!sb^(K~r0 ڵ z$1[$4j  ZY$.%2 RH4g2"1 9;,yAᜏ*9 h:Bxx<yOS8A Zn""A,OA$`0`Ms H$ҳ 8!UE,UDc>[:ܙ 4rv%AA Jtuu AKDoo/ 8( AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   @ r9 n@xHY    x˩H$2fs "n^ j   @iar2\Nq\gc`AU lV,7$k$Iiػw/`pp,S mq,B6,5՗Z Qk$ AQttt)mV4E"A__߂:FGG+ֲͦC.44MqXfMxYLcAĖT10Ɓp-9pX^ 6w]7g&/< jeA/I|H&DOOOM%AS皦,bt]eYMo#7׵gJ-vZTOYѢ1Q* -$5B1=<A yheYf'YH糍^ LӄA[[[JEjDשwUDNގ+V,6ھRҐNq^p[JAH ӴGgQ!"x=bhY W^FC&yߐӹB #@$Ajqa @Uպv~z2hh}y={> K! <$fBLyb^$JYqyc b aYl*$I$  [iW{{E) bi3  R(LF3C @y݂#eY,NYhLy}~ptݭ>"0 <˅`08C:F.aE. @cf7csT aZF[[[(d2N2ܗiz"d2P؈B,B._/)NCUU!I@{YϦi"JAUU AxK쭪* ÀaލL&n(t: ]q*%)g_<RMv3 Lf_bfa&DQD (יL)(x<4#8Db2,L(s.,f ( {]H&y:s"ffl%EeYBHR%EQ rDBIS7Ҳ,6l؀I~511LXqX +WtTL&Fڦ]^K5V[cccP3xhooG(*k8hHEb.;{ `|ð &`yhW3b=]7t݀$)&''( ~?^/xG&qV0V^]2莎²,<MӜԉ 0Ɯ#M8|>|>߂~wh}9Hۻ`YRt]w@M^f2穑qc`{LD:iFΪ{ZωDA 2TUu<t<> 8@5l6pؙ\SQdYB{#D{`p޲6t]G(eYzxXx<MӐfH$Z! (d)Ld3i&,+/y+0,=☦Vޮ( VXQ4@AȲi'$ aYdY`QxiBDQccB0M$a``huC:v|V2tǪU겫 {H&5Z4MG\\. iƠ:&&&vZp@ @ ]ס:<zzz `|/D%ޫ\.WQ$k 7Yq'/Ny* z.G4E:.&Rs+|޿`0Xe(r2LERmiƽlakY4MZp.X( VZU4x<۷@>l\޽i"ˑH$n }x,@@BW nXLqS ;#jxN^ 'a:1}}}y~ΣnwѠjS8ڿS(QUҌ{Y>ƪJ{:߭5%&Xih E;kilD^\.U5OX:i/* Jd{UT9'xd*\3 sVC:i8n Rv H$`&χ`0ӐIN-l[Ԉz0,;G zީBP&9[[Yeg㬄A,is6Ȳ@ iR>{P=1MӠ*l$+#se AA"SfDA([B cr2[$"G[\V<'qp6"N/(d]~d`Ib.j{*}jRg&}}}iNA[~gbٓL1a-|$bU`L 9mb'<&,Y5=zzmePUPm(qT*rWX>{Y>\*  (@x%19`!1V~><ϼ\رlbΐi'YL$9 f4LugƜ׬[dORNi:v%ı5gh PmY =ptEςjQ"pbGG:;;K]xJ#e) lǭ}` e&A-;b3OVcd;5i4Y$=X$,B"eYxMXqfc9EW1Vk\?̋l6[1}Py#ž}x<^Qbz!jμXmHh3+Ve\CeAa8gl"VLv=7K5^cA E%uAYBтG8aUQ8ȲY!F4LKV}:P]~97rL&K&gibtth"}*:D*ؙ4STAGBr)Ign/7X4166V⭋bNH_-v_c >̈ͬD"Q">m[ضt b?)-l|i1dajj66ˣب{iTF'i*`dd###$N 8Y6 s0,YX8+>O`)_u$Ȳޘfqgx<nXT*LR IDAT.R)gurAugr0uRf0 9RAe'\EՂ Padd^,;G 0Ɯ8Co&A,+:;o.^/ $rxsTUruT;O$`%,Yz011D" 0B[b<-G$)Z3R4M޽{ 4MC:0 LOO;ϤF FK}1*0-eU%Dr)(w`dF0+py\niF$X(\0t]G6-܉E]wppPa>H$PUBM &ܽD"0M$U}ߊ+\drrl$IB___ٰ7;Ii  ty񢽃m($ À 5f՗F{{;0E) 8]]]lCe4UU 5{|>1== UU4z{nXiоԨ{+tku" .l)rfׁfrL$ϒ*Ly(C6uV%I$IK>?\.LvamDdǎXznjYE,zKzX}T(, s v(Bv{! ĒrJ2A,v" XŅ    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   H$AAAx L$D* &  8hD?G^ye;† ظqN80zhkQAAA"񮻞7ދly8 Y``̂ض-_ߋۊ͛?;GO^~etww低OlݺW>h}ف_W^y]w226 M4-lu|AmmxEeA5(\.l6M˂Dp;q睿C.K+RT*={}]gtcњ}ݸkp-뮫9mfޫaN9 8}فB8ƞ={H$oߎX,^Yfٔ6 f>u]cӦ.G'HğM3 ==E{{'n!! IC$G~"d_=ύ᯻\g}6]{b8餓/~g-#t]wј(deT|_?kv bx問uc}t;⋻ =0<+"5jr#!c X`X O? ?;mذb׾5b1 / BW7|kmڴV՗TgAA ,!_BՃ^}tN:i? CC>B0UW}Vu@dp q^~y;^~}^j _|1xC5::'|2֬Y{ LAA, Ow<{b]].\<WYgia=!ei`LI`Looᇯj{cccƑGOx饗_bE3<8Sz7 > mۆ]v ø袋nݺ+Gy|dYƦM|~۷oݻ1<<;O>$^woo t:{pg$_j~}{x{aϞ=ʕ+qEdz911|*8zzzp'G[[[eիqa!k\.u /ĦM*yf0páo~L4s9M|Ib1 K.)ޣ>qI'K.Uξ*ypG.C0=V.f3/{Gu⊒gM!/2z!ڵ n7n_޺ػヒ۷oG?Q\~x饗FG51LLL'z!I<̺I]O٪Z.G}4RH&ظq#.r!4$bj8'Ǿ7ؽbO<1ƞxb=񏷳d13sa'q?u֮ZE64vQcO`pieb__p80W^a\r>m۶>={ر֭+{$o|uadds9e?<<.Byu۽k%Lg}v-|? p#˱+qWDZ{;vhJq=CU׾5}_f?8,{|3LӴCEf&+ϟ~sYaߝd'xb߽馛X:f{n:,ff{{pAvwkmlP쭷*(/x?=;Sv7V}__%^v-{7k򗿬 [ӟtvww7Ts߳YHۖ.??eطmmFcӦGw=vw=ga*۾}; B,Ny$n> IEqCƠ(b11Egɵx)1=B8E(EooGK>98yfx^ld2~\x8#sN׿F8W_\.뿮Vhw?s=@?8^K/-y^]qV͛ۋ{[nş p 7ছn|C–-[uVlݺ[lc5_>j͛ގGy;wƍqgC#Imegl[6P?x ?ytvv^*zRʓX$6>TUe$1ӟtO>`[lY'raǃﲵk2lhhZ'?-z?:SO=U?8c,??+)B暒)B{>*[=cRхR8`_aEW[ ȓ,<-&M!LUUd15`rRԔCm+;hYc̹GtrZ'\+Ν;[:N(9(r矏}7c۶mx'qGx wqeSL4>χ:J.cǎ?)48]w݅;0+|Ҡ_5,⊢kkkÃ>˺-aݺuKʶ˟ɟ8ގ:(MIl o ӟEwuuF0D6ŏEoGpחW_/|8 dj=C {9n\|'Q2nAa@|U KVZm*** zqhͭ wc@esΙLˆ tR[\\O>0o޼Z7-QQQ{?)<:v숼< [[NMͦ%..aaaf fn 8`r{]hs___LNc/f'$$bccvnݺdٳ s+___ٰ b_x888v̙-[7&17g5u!acדmu>AD"8?L.QSk$:9CzmUX TAУB݃A*QgAj/>pZ-*IUT. 5l07 GҥKpaʔ)0`@&[P*xꩧ̮WY6 i>av= Akrrr^ovF77n zꅶm6o7bժUؿ?222jtܑt;(3. -~o\.]BDDD2H]hk>n7mڄM6չ~QQ\[R:q)}5'I``,}WWhhIcMwؿmwZK"99OX\pk]$hA8xz trVv tP(ؿ J ^Jcu'pUh4jmR(xӳ\q7E4SNŘ1cqFlܸ (((@zz:,X?/F] ]jހtIΒ4uׯV"4 )Cb„ ذaxڵ+_lt9ka=;ƍUT{gTS*ͦ.t#7XfgggMnc [W礥s>Le:Аh1IS}[Fɓ'QZZ ԩUs-CD c4H$jH$2h4RN F\^5EMRo2tzi_oܸa{JSbԩHIIʕ+l2'hU ߫X?E>}[\ ˗/oM1/o^z%̝;֓u[9o:CBBpq\r~ 3\ˡ9ƭY}#--  ‡~بnza/^XucMjrkJ]uʣ))t7ꨵ1=PيhX'-bɞ=C^^ Mĥr)--YZ+CڶEP7]B5׊bjpND$&&͛+Th,\'N***RQQ!>ٶtϞ=bw2>amX~=f-Zd땵0 Mfȑ#pRRRbɽ)Pťyk`ݺubݍza qtٽ{]ĉ6T)]502.怜'wݨ2T{g7|AѣGΓ$6>}:aР(חW-eʡV%%Kii1KєC@4U*PB. <<;]DAwzu-[V3_mr@Fa Bl37dYY8:`}K⽬#77jv?㎤W^3Sӯ*ceXV .4yNN0hРf_'z 7~^~~>0n8&oza~>3ƙ+%Zl&KP6ey4e~7e=VqK񿍝={V_WNDD{{ ƈݡ׫חC  ANW4tj@R]#PPDF#""DAwZxq-ZdaK'jٲe~'ܹwnB\\N>]YRt֍gda۷w={66n(Ssԩhժ`ɵFYLJJ( +V:2 ofcƌA۶m!ƍW+JKK裏NNN;vnza^x|P'| VXQ}K$bҤIHzW֐h6X7e=E}NjuԚ8sΘ={v͛HDFF4@ѝ o) h4Z'AB*UhL& *bc;"*ti{틽{>Czz:F2ر;v?{VhiJLLĵkйsg5 Pطo<4iR9 2|^EEE6lƌ\r֭Cyy9bbbN:ٙgdO<իW̙3޽;LJ3g`͸pv튔\v oƍFO' L2iii<;"55vBYYJ%~zʹ` IDAT퍂_ѻwodff"!!A{5Bfgg˗cHKKCDDzꅞ={ׯGVV$ VX!w^XcСx'#118p Zn}!99ׯ_ԣG̞=>~WDDD+I&_~N6)m6|GPT$MYOa)m qh]= ^LC~CΝC 'O͛-[@PTGFF-NDDVZ-[ /У doB@SB@B`4!0!0p0UB,DE=/L@X!>>I+# SLs7n8K[ ##kWl3nw-[ǍCGD\Iuxד7tiʰv\ݵK,)~-53EWw%NIiw,#>6m^s=Fg]Lܬ˭!̮R AEQu!sp8ƍ+J/](<<̮ lΥև߃! ^cqMW3el̳Gd 7'e3~d?@/ș3)>7LHiEE(yۗeeE~!ͫ&?5}ggC9~<Щոc̚T+ksqAԌ9z=ϟG[Px2R>13gֺ6JT oo+*V7D@svFyA?_&q6 TpbRPF篿b+&.8;8jXa6?(z&QOT~&2-A7y4+k5(m`. 0aA@ DKPϧ%lk)#߰g矣+0Hl漺w}^}o DjY7}]y-r{npe\:`1MT^Dd^u<&:vDIf&ήZ%tsCaêmoCC[d׮871aaVCT'6U\-B?.?ؽ;yMk6c~}`য়N~--Bѐ5FmY6:=b^~5#5kc&u`wdBA5d*C6ۆ AƎ}(M} )] Ū{y1hou 6۟@ցܷ/~}YAY}":?>>>[u-0k:4lǁy{x8@Eq1Zkw;pm'7o3 :uA2i6[x2*ѶUp[ǎ;{vWoGА!OdVC"HL}f jrrp*P5"RȔJٺ {<}:Mщa !Cpk7z渆!/p矱{w\Yχs icAftA'C ]yڒdoЕ8G}G|KwV ;1zw02竞,Xrggx$cok%, ݾGdUk! JNFΡCncԼ$:<8:taӧ#Pt o2LHSPnj='&֕9P#ht5ߒع5$l9mi;wG_{ aH6x0yys'ÅիwoGe,Jk ^_3[ _|];]>tuڍ˿m'u(q&(~}X"3\Z =x+ N2zt+JME 8`Qӡ$3fRpu]s֡=to?@E3hU[`*`.t m RZKlQzyϖ-(>G~Vkq}c)Sw(n݋il.޳' RS}7#c^CTԻz6r9ɒ*{!\Yܦܰ:d#p:i3g ϜAM^|G1n=z gubΚҫWٿǏ?B);VWX[F 813X5(DΜ H$(ŗ/ڵ0^J ~M܇o7޽zY%E.@ѠO@ pVu`;#z<\}ѣy .] =KBK7;ی-}K<ꜜjqeڅt] ]䡥dF5pj13g'lKW_EYNÇΝpxUZť}Jeq;M"ARA"T>LOo=`N^?p-\OkDS?{,}ϰSPrb"05jfTTw[[?~KJk=5*,x[{`Hd2tjnPx U5zv׈>]mV;CCh] VlU߼^BD毿ʪUz.sǎ?h6j&-:F&lxޥKR yOC"͸e틿\@|ꃵXUX~:mƌA8|8vvunӸv-͚V]ٳnVp K(HOǥs8lVk) ߊaU4cZ¡jnX6mPUm;ACٳ7}]n%%ʖ-x$%E C98E?}EzU.bM64ZR xA NBMMlc""j$-\n]~ѥj@Y\:t@gw߅[Vp幹 \kp0d GPuM\^]M #fr2,>\u`K vp5\e̘@K.Gf9*1TM7B_$Hrt~=SSRX]k|~rtcةTփ 7#r^$@㏣C9qLKN!!jӵkئ ܌$?O?leH4e zX!џD\\ 'A{! V J!$wvhIedm:\:vlлrx];zʧ?ħ2ݻ>ۘ!cGJuϬKYPo~pEoO?&/m׺y/*xzh(.ɪo`\8'zǍZCk9́\Krq5@"jG҆ vU71Qum;:ŭTYiV~!T;Va<:t)\۴OȻ)a\=o%$K]0 w`K[7 03?ݎWc7kƌT?g߾&ɹst)Kݪ ee#/䓐dٷrRdGi+qq,hrsDYF?8-Uƚ5z1[Hh8wtjM7pkOOo&TF!i4X#^vZܹ(8yO=X쌍<~ !phD9A?y3Ae`U:{ES%8u*~ivNN(,Df穫6Ѻl:N(̄O Lj!3RKbSOauǎA[RK.oڄ5XɔJL@Uh(ʲsܵ ~#MLtwGŋᅦ_|۷W>"#UX1IKS֖D*E+7CV#pAA}(ݳ'քClDϛ'GژDD X_~[Ǐrٵ+}yŭ!S(k|?U;`#L@y^f̨6w`W_EObM CQXp]Z++O~GVOz>u C6(׺}]u$Y@`+:p xf@ H$DA"ED'O4:tf͚UVVjǎOe6umWVV$k-b;/\񊎎VxxfmX0ԿEGG _eee:su^PIIuWΝ;/X'OԾ}ԫW/&l֭[Peeei{n2 D3~򒗗>J4j(+:u$?ԝwީCj֭ o߮eeeBm>\UUUDJLLtپA"|}gOO >\SZZ -ŢaÆiذaƶuuu $\+%%E)))e]ӧȑ#3ڄ|dnBO"PUU I҉'C&IcƌW\a~Z`}X,VPU٬S83GCO"#F/PEEV\_Zp뫵k*33St9rD7| R[X,ڴiLÇS6mRbb7NZzucbSfyzz*&&F~~~:uJJJmĉvKPQQcyxx(!!AJOOoq߮`+:p $$@ $DA" @ H$uVRFl!!=bXHpSA" @ H$DA" @ H$DA" @ H$DA" @ H @ H$DA" @ H$DA" @ H$DA" @ H$IA" @ H$DA" @ H$DA" @ H$nʓ$WTT={ [*ý᫑#CE$ۼ9G˖Ҷm @aرƁ?>ǧbبFԗ_fP3hƌX-^,۟c*vFS >Yaa=ȉkjj,Zp"F.ֽnUUUAbO|amۖKФ~o!H JJj曇)ZJJjoPqq5%CEELnÆlJ;VYݦMZgƞ? zDA" @//bCC)Z%$tDA"Mss+UUU'I TP$Z%%5$z;{*$ĚQOaaڞDZ~*T[kin6kS: c#=SQQjjSCC!I*(Ryy-װn$XgmEYYTn hȑaz.筷n+f$饗4~o$FS~4vl^xa-9Mm3_vW:zKytݹ]{ڷ,Y2F&D3GhN\Wg-IZx7ݽ rO{VjϨ@a)mH]xa=^߾Dy!2M$ mDqkRp?[9ɲﲔWIbS|,cH̙uC 0=OObb_;`6tMe#sh$]߾}Z<cx֭9ޭ${NbSzjvMl~.4A->kɮ]yO(#in j[3gNL&Q#:Uۭ%Kv3-ڡEvhǎ<6A"t] G78Zu\;wr'F(Az Z" ¼ OedT(=X:-f PTRegWkHfIUjj&q|W1MWSzzӱX,z=7.Rw Oq=էO""U^^ yP̬PNNEB[nlbce6K'OqGŎ,cGF$+//sQiK>V񓇇IaҀA Qqq/UQQuhR.Ou)}飲Zvw1tM4~|[FF>xJKJf]tQ.$Ad:fWڴ)[+VjӦ&o)^G\_BA}u XNZ-]/jaϑ-ϯм>f6(.mk>^wM#IzՃZ>n\G^ Izwof̈խVgk۬[nK/MPHݶvw-쐶A?C5n\$ivC}{$IO?Www|;s{+06vBV>Dd+c)Ђ9sjĨFS›&͙ޛ"y "rt]}uF#;srtsNfQ4jT=}q1r]d~z뭩:5Md큻Zj\~QC=yǝwks(@3p@}t %@t|\#5xpі'G&G4M{ʮY<3^%7 %iȐ=8~{u{]p6Lmȑ]Uۢo@KJ޽¼=*~?mMML 3ό׬Y Ҳe6 >@SFa?yomܘ>Jw.]zdG2UXX8͘c]\Y-OOJfΌ5P쳓FOlEEm浗Y'׿xqk.9a9~|̉3LҩS<8XZvΗLgG\͈UFwAd+O?=ި{j\UV֪ qSFkɒt}[;4]]D0!R曇JM7 $}{GFC;tpvÇjɒ1JHI 9*.n}+"GGHW_e4s]qCzW:ew&OsMlRT&MҺu.=#GJt뭃%I@}vlIIav7dj❍޿?>R?>V^ԢEկwC%%!k{i/8KD7s)ִi1=O˗;sִi17/wqe]pESS?7>å$d}ѯ_}OCCۓm1cF*u[[~1mۖ RPN,=lѡCy{iaF<8Xaaލvm;ud>5lcTUUEv?cn9qƃrM 7ZfM^xa_7m С ^qE_X|V[64I޽Fmwڔ޽R_j>d#wYC+8KǤlIڸ1.(l*]7)5z(aq̓!))E59AÖ-9?֥fl8v,NZlQQzjaN]I=׿7:viio.t83lnY 1#Foq:-[v6|&[/?6w|]mtenO[dWQKn; 7 rd jk-X,։3lmszG4?9I~~^xaԩ-vdwFͭt8[oggjϞOuu,e"첾mޏ:n[l]tQ.SL&i|ޝ>r<đ#7Zew„(K{mŊ#-ϕu]G.4A7 izq92Ԯm[dW&j j#GJg'mo/c[j&{;y]mtUnO ;VO>i*+o?<8ѻ}Mn`ނ(k]:ch# yHL ThhͣGK@בwVи8 IڕS|y6mkW?^|۴ѣÍ^ē'Z54Reҍ7׍7ڵĈV﷥;qbO?=R|͞BW,^^k֤;mo. *l8v4+lWn][G/Omq([ 6+\D8~ܹ5F PԴQQQ4xDg7uL&驧GFkҤgsu1y@15}k V?pV_woTd"#}ΘzmرzmvaVôiNeeJ:.tղ۔:T9w@>ԕW~ ]mm8ԩmmuT>5Xuuvo3$v580q SQQO ;ת5; bvUWgџSdyzZߑ7/^ūN{k̜R˯iYn\.tղ۔իCKVN]mt r*ϭ&7ܮ}Mnҹ6TڧkgvUW}?aƏbmYgE謳"t̓]>:W_Mq })͜+IムѰj[|֢JcXYk(!!޺:&&k&hIKe7(ȳA׺4t;BW-|΄љ6;*-q8Y}MHPv E 9jJKOs}|WIK+oRbbMyEkĈPƣ|u4{v{KftOф RDk,hfֶyי4]} V8Ps[ߖn]]Û;.tղQR-]m6=L]uljmiiiM&$Enw'X\쐖-;$O#4}z3]GsZrz}z$I'ONh\+)O,n 3&AUpF;I(/Ҹ(y{u5[Д)њ2%I.:-IHeeܹq-n_SSƩ;VW_=h|un{wqi5s}P.~쯾{= l5gڴ`Р`Mp +U gJř6:IҜxnxF⚑74nچδ|nog̈%$?q|G(2?gNwʆՈ/|?!밥{?_~yFo6pHc:v&#7kV~v))Eڱ#{GPrr.Owݶ.'6:Kp]tQg&-Z,OϦq7~Tƻ5LLw >6m6n|rlI Fhҳ보gO|G6o6fo +11X{.._78P/8Ѹ1ڽ;_))E55=pdٲCJOWmK/M- 6ރ4iܸdegnė_um- UYi}rkNICݸ{ Wm'أjk\A׿hX3ѣ:vD~z 4w歙3cշobcԫtdE8$'5p`|TYY mْ7 qq??^WEE7LZ/%&]sMsN/cۋ/hqyh8{n/Vcͧγ_t}[R\UvOQvvxbnym+Ls饄(?Ri͚.?̴)j>4(X**VZZ>r!==:~Zf&A"A"L| j]fn}4[w]Z,IܳbIIáf p9|XQQ T߾<8ᬠ__nW_e49)h&t9}BI_'ŋG%YxC$ N'%=>8G{GرRjР hjH T;T[k1V[k;iٲs_'SHgץ򨳾Бf͊*+klԩEڇDt+[hذxhSh#e2IUUu6SIIaڶ-ѶFOn}8q ҉<X?IhvID0KNorI$I6eQѳIIa ` mГneNP['Էo&O /k-,)1JÌNW/_Hbb4yrjj,ڲsHM^|UPPÇzq#11PIIaJL T\ Y/8cJYEH6n̖dE93V11~*(ҡCEt#T:9{۬c#dXdfώӹFAhX @/Tj׮|}UJJj~C5cFzWUURR'WAA^92Tס*K!ͥw^3'NCڰ!K[bi]Z9#g]-u̙|uGsUm֔)7.B>ɩ*-i, SUڿ"۷穲aa@EEcBBzשSJK+Qp͋С!1+=L_~yJ6[':N島mIQw{r[=m#F9S[ ٳԧOtggWyqXN(si{Lg0ңϟ22nQRR*5ggv/P7Mt矟 I>SNNͽlW_͕&Sܳ[Az$Is|JOɺ3Ti֬OO?-Iouu4{v\V;Ef=@??I,i]Mk„5ム򾍶ήw|Ç[uNMk)cczLZ4yGZ(YKmmm4>s}uyY~~.ݥu2L?1Y?yF+-;u55zt^z^Ζ$}GMd;I/x2 gD6?߮Vș4rWyjq&_YZ LM0=d|ٽc-JօѩS/}f0;ܬ ~S]Eg*;jŊ#ڰ!KKƓ:Zu\KRMQpgngo}niPj~,'oV4Uzr;jfw"Q+/ՓOQBBna[gKt֬٣3=vnQRR}ԧOoE_=`||d #s޽u$I|n7 pǨ_@͛UL6L<:gw1W٤-??9Rl _<;KG;jݺ efUScI&D*=7䬳,2MBӤѣÍ:E֢ŋwڵzq0!R tWngׯYz$ []Zӎ7oVz?~| nؐ Q{;`@KZg.?JN^e6n~> Oi>SREE:t-ԍSߪ}FZ{55}ũx .6+W5ߧYvL&)=L߿O. ^X?qGvKsy~! no^ΪUǵzq+HYee5w4zOlھ=aBSr&:<]\Y&ORA^ od%JC_lXZZ;:+tR4th)&??E[Y[|1Q}}[w";ˍ3ڛj+F_}u?Iaݷ.@9.Nw$&'[ol'ش$xkذ%i\7I6Oe[c>}O_]E[Zm[itp֮=䰯#yysvaCJ~)5c o5ij$W='LxCzھ=ϩc7:<]\YlnW,h991c{m?>nrwDEE2{GmU[ޛn~ADÑ.7p&o]V8srU}wIkvҦ#]*薶lر/H^**6[h7_jj23m] cޚۣ0؆\55xp&MҬY$$7-#/Wweꮻ)4[+%HwKKkm17.¸!֡TVVpݻ7䑑>hNwFi-gm3(WoZoS^.ooI{ ldr8~mؐK.Igҫ\ib4wnk悂+wA%ZzԩrO,keu{AfeݗQg'W+fvhM0ȆF)ɓeׄ JI)2znv3F]Lch3^_MH:Qƙ@y몶™k+}t֙z$]؞=Ɠ0ޝoTqc.$A#G*(˸ E0jcG"9R էO~z^kn z1[diݰaFW]Iy{׿LʗQg'W+냭_تҕW&j„H-_j ۶m`zjy{UUUpwFG:r歫 g+꽏m{\{l.Ƣ~ӤIQJNWJJL&P nޜZ<<3نlۖ3a%/kܼX78)`ĉ2 Cl= q '/w8l.6} MϊSZzxޝFgbuR%&j˖=ܾ6~zk8fL<=M; 15Xyy ј1x[4# hJޣ;:jYoovt[. {[no=koW@w5lOG5lݚc΋1zm7J]݌w6nOmrPç=c'0djaa1 DÉcיt.(c֣Qbbzklѣ4(XGCUUuZx]ʦMZ.:+B+WN׶mɩTrr QEEvQvϯΝy=:\W^>}~}||̚81J&D/34zt+Z_>f>{TZ9F\??j3M6-Z+"G99&oΛibԯ_L&pݻ t@ʙ4ꬼw9w:e֤IQJJ SH23+th6,w1T70P;w7( S3gjР`#׭;:U;n:mm+4eJbbTYY嗧TZZW_=[G륗 ':Ok$H$H Wr$5DA" t:W>zee*.kL\DA" @ HlOr@QQtV#FRȑ=/~qAiєtry1ᡚ0!c#4lXAbOpĮm~7G~) Lh?Rc׃??^55uz=I(2 IDAT]rIBMbBzkW>5t#4|x^6۶jݺ ڕ UV֒(@7㡨(_%'iڴA$bOA" @ H$DA" @ H$DA" @ H$DA" @ H @ H$DA" @ H$DA" @ҥKկ_6۹sgѣGs9zݻwi~ O_;lذAgVllUUU}-\HQF וg&}>>ڵkl6N+Vh1Hekcǎmʮ6s֬Y9sSZ|$)&&FfLt&{p - pj?Zj$ꫯւ $IiINPPP^4{l͍UTT믿$M2^t;ڽ{ʔg9sL&SRRRKO.ooFlٲE+WTjj|}}kFNEffk۶m*((PTT&O/X!!!v0k/QF),,LZb*[eeV^u)33S1119r,X&`ذaJHHhr֭SUUbcc׆ ~)22R}_A5ھJ֭$͝;Wi&:v"##5j(]{UZ>led2iΜ9X,zwf 2D=Pf[3,6{-,w}gddhr4cC53|ܟ{ZLJJRȸqtwrr .h7Õ|ڵ+R4DDT8I$"zEaWWWt UVETToߎǏSN8wT*A>|86nQ:wʕ+㈈A`kkkж';ݻ ΝCxx8o;vPF@@8/UYgbbR; 6LY>`Z زe {b-:::u“'O`mm~A/${x)&N###\ 6ą 駟b޼y߿3fE>}:͛7Gn`gg;w`r VXF)y?,[ =z@׮]Q|y۷!!!}6 .zꫯ 333ԯ_^^^E(3N"QI466{sR/@z%CBB+W4N'=zǏkcʕbjj)ΝĤ$ܺuKcKEHjմ5JȠA nǠ Sbb<;;[*U$ǧwsssAx|ߗ:7n(֬Ya;}|РA@5k&J%_8UV@uN,\P+ܹs4ׯ_/FFFbff&}͒ 8OOR N*Zt2dDZAZq@%HȞ={moڴԃf͚ i۶r_U 1<<\!**Jg۷oK ̞=[c]޽4jHd@,,,$66Vk[/_[[[[/R^=AbӦMus玒СC?mwwwY2Q8)Q X[[caaQUh3l0P1cfΜm ~Wĉ)S :~=;v4]vɓZW\S5ȩ6lPmGDD5k7|SgU[nԳ?{{{?|ƍXp!ׯ-WWW %%Eo]'?*GuR(:i{.*3w =ѣGȾM4ћSNԩAۿu2[o7;ɓR?~Dll,J֯_a֭q]r -- !!!8%R̩zk׮i,\2-[cɒ%}x;w͛ Sn]%42DD _HIITVLPpqq)0mZpbm_Af͚KKHH ''=s .]Th;viE]?4{|n',, ĭ[4e*ԩSv,iA"+Ecrw7-x9J} {P.;;W+Ohhh. k[n!22Re˰pBsrr0`l߾] ѸqcI&z* <U?͋LDD ^)III:WZHOOǍ7dߵkV}ڵ'%OLL4hgϞ-ՏbGMqU899 j׮w"$$Abݺu: q`ĈHIIAqe,Z}Ve˖)ɓ1}t?+? Ouka]r@Ξ=7ʕ+QjBӥRJʀ8t.\(?z(oI(:?ʢ>|[*eTp!""{F^^F l۶ -ZwKCYe&"bHDDe*}4?;Jk֬QFq|^hh( צMҥKW_m9rO֙_~Qu{C-4c,L˖-.^jj*v ???`ʕ+6m`ɒ%R -[[[[\|3gփ@ȧjG)>\0T$QDǏ/?T#XhѢм誃ֺH駟p!@^ *ĉ)))ٳrakm(#|FGGcu4 S?jjff~upvvlܸQy߰ pqqOl4h>|+++Æ Czz:zUV_ Xxƻz;裏e(?Uf"">P&.ΧGiݺK.7H``tQH߾}Qkv>L_zuJ~ҭ[B'7aȈ#u'4iDtEkX~ ~ӥ{baa!\;wAyO<+++ })r8Ph}bnn.\rҾ}{eܸqRre FFFm6%Ϝ9suqtIvRCe2i$]ƍ+ifϞ-ϟ$eSցJHLLTݯY2Q$CACg!CHzzTREo("W_m\ 1;;[}166ھcDykז ׯ_l{Ew %߈#$DDD(jժIhh?PիWصky""z)7o*hOSV\reȼWbܸq6nܨw۷qqVmTeٳ'&Nȓ M deeqM4u놝;wȑ#h߾=+c@ƍE8z(PJ[n;+FJ "bHD겱A`` |||0w\ 1** pѻwot]?:uUVشi"""`bbooo >\ψooo :J 11G۱vZ?;vDXXvؽ{70n8;v 3f °~u3f Gx뭷k8e?x𠲿#99uQn]{c=z pwwGΝѮ];e}:tM8p ~wlٲ&LZi&xxxA:Ģ2pǏGzJ%i ሏ׺uV=zwA&MЯ_?jILLď?˗/CRƍOVDDo&߿tusssS͟?_ER ӧddd(eҤI 5jPȃ%Aׯ/@Zh!JZRl߾]O""2`)_ˋɨQRJ2c )_lR=ZF!VVVҲeKT^ziGQ>j(%KJ///iР )x̔!CQTR^=1112e%رcFKBBΙ3Gȑ#GUZn֭[bdd$͓QF -vF/sssGGG.^hp[KZ6???155U.WHݖֲ}v%޽{ER qrrի \ܹs'3""=$Qعsg ۷OHϞ=%%%EDD=z$ 2o< H\\\?'OȰaôO>Dܹs%77WDDRSS_ȡC4D oVn߾-9990 6lH&M޽{ʅwwwu떲ߺu IMMUQ5JT*899ӧK,2iҤWu~???y#dΝJڈ ˗//t 1""Bf͚%FFFJ}7@.]3H,NFUTsΉHnn|@Njp[KZ6]A⧟~+;;[DD.^(RB%WTTIΜ9 2}ẗ5DDeZjk׮fϞ {{{]kkk^5jw}X|9Xjjժ˗Ç;;; 4~!G^Ob„ 0aV "/Ϯ]>s899)ݻ7͛J=;;ӧOl̘1055 j RJVFǺu`jj  ͛5o޼ 6|mC}̙F1n8iYqۢm_ZeSKOO… 憅 *^:u*>|(dgg#..uԁ ěoɓ ȣG+VDNNkkk*Jmݻו*UBΝ5ijj!C ==/_L8ʻ]yyy8s΋}5|q/&Oz z077auaHx>w 333uWO^Ȩ 7mڄiӦaӦMhԨׯ7!mKaufh[DiMM}g477д'k.9r!!!X~=M@$K.œ'OGWsssXZZbZ_'Oh ˟ G,/^[.?~Eqƈ^0M}466VXTXT 6ƍ1l0DFFbzӿ6|mQeSO++Woaccooox{{+mݡC,\gzN"Q ¼y`ggg'[cckzFd4ncǎXUViQjU!55YYYhڴ#G_4 vRV;~8Μ9c]-} 3g`>j"EEYXv-5֭\K.1Ο?jժi#ooorW$cǎaذaʧK.pttɓRՂ mbÆ v"""ХKaԩ722ɓn+ IDATX޽mڴÇ1c  CDD>}+W @y`(.^ HUq^ǻ`dggCGBBBCC |駥7w{xzzjM𞟡mhhu[u0gܻw:u±cǐe˖!((7F-аaC888`˖-Xt)\,^;v@˖-]9ȰyJ5d3Ν;IkkkYtF:{{{iӦL6M#̙3G;vkkkt͛7ӧO+6l2O"e)w+/w""@n޼s@-X[[o[`8GGGٷoF:CISg}|I,NFTJ-%-yd…bjjFiQo7ߔ7ndFDDDT$>Dtt4bccVZ^#<<5kkk_ Kʢ-^tܹ?III_>Zn5'O7n nnn# ^BD"""$D""""""y^B+VȋDDD;DDDDDDDDDDDD $D"åK0k,ݻWo<̚5 | '|Rz… G!%%vڅYfaΜ9әf˖-5krrrUzٲeXxo8p  /|.\3Mnn.LMMK.>}`׮]~iB1&%%!** ͚5 ?LxxxիTN:Zj)._ 8t:t蠕fذaXn222`nn͛7Gjj*}u;DDB={ĉ_c/~bbbpU7/rx)\|UVn}uyFc4Ǐ7.V{a֭aff M""DDJ8x 1fDDD 88ɨ[.Əu*i'",, ׯ_Lj#PBm^~aaahԨڷo,Bxx8.\{{{ݻwHLLѣ}v]ǏGǎ/_Jƍ;;;aaaصk`HJJBÆ qi=~}ߎ;pQ$$$;wFvS!ddd666n7776l|}}{ncϞ=ݻw۷:Ǯ] | bŊ1ψooo :)k֬'1bVY Ϸ{z,1 DD„ 榱|ԨQboo/K,J%^^^ҠA SSSk?,?JWWW133ҧOPK*Udbdd$䧟~{J$իWRresc0`/_^H^BBB|gZ>rHQn]233eȐ!@T*ԫWOLLLL2EI7vXbee%Ph߿_ȸqDDd@ wX:OOO7o*N:%2p@eYrrxyy qpp닱-ZHffA}ҬY3 JvIܤnݺ ]^c&"  U*899ӧK,2i$XbbI=UV-\dggȾ}SRRRDDѣG2h  ,,,F[}HzRJr%mPPӧ φ V4edd4mڴ:W׏<~XDDosN%mDD˗M}] Ǐ, yaAbQbff&ݻwWӰaCqvv(O̝;WrssED$55U:tȠ>5tP rOggg$ڽ8LDDeB1}txyy)ƌSSS\~]g5ke˖ؿ?>|,ߕMM}0{lcڵX[[cըQ;m?}&L PjU!..uxt ěoY򚙙O>8s 5UMKKû[6,XJ*!88VVV{{{[X`Sl߾kF˖-* }ӧOV6Z 6ܹs`|駈իL ‡~cg_666sԩ6'NP=<9sF+/N:<ﯕO>z_Q4䘉A"ihb˖-E͛ www`֭055[:uh?44o-[///T\gpPlgg{ZZѭ[78887!!ԪU HJJ2ԣ.ZGnJDuQ?BغuRw>}`aac۶m߿rxv]vիW5&''q;vl8+V#G0p"ݥvڅ7nh;~8Μ9c*C ѹCppp@dd$u >|Çnݺϰj*deeaȑKBӦMȑ#MbŊcu˖-+xaꘉA"ѫq56Ɗ+va8x N6llٲK.ŕ+Wŋcǎhٲ2gA.^ %155E߾}qQeF&&&O];7n3   }+W @y`(*TS")) >>>ؿ?.]/3f0NZY3g!"z6l ...@cbb"Gwj5jTu[""۷oRNyl;wJ*i,]T#z;܃jGGGrƍ1..NT*'Y<5_Q8::ʾ}4u>L L^Æ ΓX:W/++K5j$VVV "";vkkkm5o\N>cذaS999Gik``k͓ok3=#QLKDD/TVVΟ?W"55uԁA"::prrBV`oo_Om۶sii׮V>111J˗/ˉ'ڵkMJJҙݻW޽{Ku:WSN)ʗիJy^Z6m[[[ sss111XV\9Yf OLeKʕ+baa222̙:{{{K||c ;vI\=x@&M$fffdҤIy?;;;vvv_HNN5w_Sׯ_'xyy);v M4-[Jr)6mZh_S2FMMMajz?pi 2pttĢE_ӧ@BB+8::"##믿Uٴi>} A ƺu4>+V~jժ~w >"6'<<7n&z,9977|,X[[VVV7|OOO|Xj׮-Vnܸ{<~СC9Rc@&L𯹓LץIٳ *ŋKHHP6iӆ'(*3GҳgO翓X]'OH.]ׯ>D(ɼ1DDz9sm۶Œ%K`ii;l'^S|5MM1fi4h:`Ϟ=?GރVZp[nݻ=^o>T*tA>;v֭[K&++ Gtp lٲ7n܀=6lÇ+')33;wđ#Gp]TR2dޗ322pQslܸ_>fΜi?/66Ebb"Qzu^z: *ǏqqKNנw֭[T888)v*"-- Zje˖ܼy+V_?;w;HBB|}`֭8x RRRu6vڅ={ݻpvvF˖-1`}^r׮]C͚5`ݺu8}4>}:u_~hڴie.nPSܹsHHH j׮ ???ԩSG+/:u޿ChӦҷʲ~8_;w`߾}W'''ܾ}/^,ֹM_z7]T]6͛իWcСx$E{n:={pqqA޽]`z=vi|'>K.?>rssqYϞ=8Q?"##q%\x 4k"f># k.0݄ ԬY;vuj`ooSd:WR y4srr4qrr .Lj"*T +Vỷ@LMM%77Wk׮]=Ç###WXcbb tbbmmsm6<%-kIkyyy!ޒk3g}zCH޽{̟<~Xvsoud߾}Z?#F,kHߤN::T*1cV}~+tm_[ŭ1t˓ *֭[mEԻ>n(.N:^MKo˲?nw^X|[޲4^=zT9zc@޽{:޹sGoybd͚5k׮"=',̱cHÇBBB$ @997nXr/M ^֬Y#~~~ã̂D GtR !C(ﻰ2<J >\K3fTRE7|S_|VְaC+x222ChY])I5JȠA n(j)5kT޽X綢]%=g7HoLMM̙3/}x;w͛K~M4)0'bccPT}>H:u*N,DFFضmbcckҥKJ?`̛7[l_|, YH+W. [Ow}-<I3==% ?dk׮xw''ZV[Ca:Gִ;ڴiڵk^T98|}}ѷo_l۶ gF߾}]GGGԨQG+}Fbbڵkcذa%{1tӧO󃍍 RSSe| իWqaԁbdʁҮ}TC닧z W^駟ֺ}Wr`zi{33_JTTuob tѥN~aǎ~iBCCh"lݺ܊صkyбK 3_i~?T1ӧc$ ϟƍzjdeeaΜ9߿$''תmMx~^ylܸGoÇ㶬R)_Pu_]y|.q`ٳo߶ZrzЭu%Ďk@yyy4iz=Ə={T( aLQp;y$mۆj-Æ nNsOU~3g;B=ks5ܿL$$$(rZXDGG$WŽbǛ;iҤbPch4ȑ#8rݻRΝ;>ŋacc^o2a59 VZ;;;@RR|-yQǎI4@ TmذpuuŪU*ܑܳ#G0`+{8p.]:MFFqƕϱ5 ,vÇW:{%/pvڵK?<}]QFATBȗr :4mڴ5~7qgYep:=T*ƌcժUVk޼F%I*Ӈr;wX|DmQ!9;00 ,`ʕ+u-* w?GM3_~E,L.]+lm۶b#Wؾ}HO-[']vaڵ%7v?|,eUym63-[ƍ+[^^''' Z^sp+-c޼yعswUӧ&O\N"##1k,oIG]+,ڶm+}xW,.,<<Fh3fϞ]r'L8z(`Ĉ5_X >{9@R?c믿Rzjs%)|)9?^35j9wߕobu]fMSRR0j(BRYw]u_ǂ `;w|{WRpL:1@>e$%%AV[gikk7xb \9LnL{ d>9^xӧO/u={bȑE8pJ픣03~݋%K/r֭qUkzB=۷#%% ׯ/yEUmԩزe \nݺaʔ)puuŕ+WO?ƍر#Ο?,Zƍ+V)SpU`РA F;;;|wU*VZ[nԩSXf [uĽ{p5J5kǧe- )ěou֡wHJJBDD{lP8x`,""B[[i&uVuRٲֶHŖ-[Djjpqqϙ3L#KNN.R^[Z~<:ĢES1B!yᅲi:uDFD~~~ rX{ O>?phҤImRTbܹh4Z]vE!Xrhܸlmm̙3F"((&M$򄗗W}8,*Z3fDXXX,X@^`2rn+nUGW]Zxq7Θ1JYa ,۷o8~~nYi?^>[9֭+ o={:o߾}Ebb"?8?MqhZ׋oJ&NĉHKK1j(5a޽RDpp0^x4np9[* G38v?… t /P3*z deeaݸy& <B$ܹϟGJJ Ϣ[nSS'Am>gוB`رѺC$T*>}ݻwukVV;˗/֭[Cv3YXC!""߇ #ɨ1$!5'O,ӽw;$g߇'J D;!"C>s+j" =I!!! DDDܩSpm9sׯxw 62!j]va!!!uW`"Gy1$QбcGA`ȑaoo_c屷+s!v\CDDDDDD2v\CDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDYeTdgkNNpwwA&X9DDDDDĐX !|nh4(JS@ _2$<"""""Bjx޽ ̘$&fBR*0B0`Ȑ>.]Z2!.5kNJ-J(jJ(VDSuI!2 _aa? +1d|TP*RC-T*(J9 Jdh$ B $ѹsK̜,zFDDDDD uAtt^~ TPac':D5L"phѨ`z: :HNd:hٳÐ!!<ڈ{;v- 6Z 8:vvPm{ͭFAz* z zB/K5Ν4Xj tGDDDDD UXؿV+4h'ppp-lmMh$h :Tj*(*(JO @$ 0(pv*֯?77tВG1$6?TPggW8;7BÆ.psGjTJ Z h4JB#٘54 J$IP(o`ǎ..<򈈈!ز(rs%ΰuc8:r@60$h4F`F!P/ $?jcA0¢w5Dv?olǶmvm\yz:5s5J] ^}${iS+f-P]T vvwDÆ6puEFppPC1@FFA`P`PhTCPP O!$(*(*u8v,ݺϯI#'ǀRKJCttIuqX 9F!ohR||.h͚Ֆ!?x JJ;駽 jVk$‡B( T* K4T*F5T*F0\j]X={JBbawpֈ{q]e#>>| NU/_\ADD2BC0o^DDDDD %]P(lPacc J*o(AA@ ={kWwgk2E111dH6t:ߝ3f{E"<<7o`߾D<| ȂIX 5 5JuIQЂ(A1 /ψ|#t: 3IS"$ĭRP(rg6 ¢?M+qz_OT7f'"""""# OQK)P(ZB$  ZtFFp 99> ?;wKպ͚9^|c2tKٳvhժS(p]f!11jx{;aР)zo`v11=ܡT*%2sư/ٸlܻ4- 9Y'CV[7J!:{ܚgqBSa4V(Pz25wJwS.B"S(L([<ܻQۯK$@FvVp! CbbW[ E/S=> E#!|_}uS>Y-߸_? 8qb$lm4;w,1mp?tG=WW[<8Re%""""bHnH5c,LQ|5J#$-[FʕW^%?B g$Z DGdfAΦCrOE_ٳOA1Q y8r$hR/%Ew9t\\l0l77wDf9X`এmztGj=<kW7۫k]Yk a$a4`0TBjM0]vK$h-X|/$nȆRvа-x5`;xdy/ hضƏTV"""""@^Ax "T SD%*(;5_*IƂ$P4G/A-*ܲV?\_Uv-i7MXt;i۶!ڷw:~$ܹpSkKE5FԊc.!1tōgnATrH4A#JsHT!aku`0BbhNjQ4DO;Vi;˓$w58r$w{ g1]||.ϧsIIyذaͰ}mdf0n\zȑ q}:RY3?&8y2Ba4 BJć^JjT/SKemѰ#q\= ^y^ʕ⋾CGҘ/_7usYYz==@N8)Fn^ծ&ԥ1$>fm۶(hE4BP\j/4_VZ8$zCrk5h[Es'1LWX\980uj+̟Lnʁy6mukG| ɈHAdd*rr w];a*wŖ*+Cbө?JQMAQ03 $o,LD! |_×P0|zؙoo74mڸڷY=3So1ys'ܺnm+ lss!IYD\խ\thK]<'icѫWB-^^xtu/sK_/;5-іDKR>>վNN=M^^r8.#<.\`jzHK{J⭷a~P0Ξ}P2/ DDDDD uРA,$ jP,<``Y$Ua+تU3j nվGE[:t0l:ez5zi̛)IRsb̓ر#|M8=|p (+Cb=5thtвPP/QH ķڊW^Y_a/O J%жms# wljBf7/IIy?? 880`aܶ6ɵL77oR~Ydo ::ۛg(2e%""""zR vtØ1p HJdP0͏PB0 wD3M{4֚hz!8%ڴi^#j [[%t: g>̙['̚u n`ܸtAAGxx2ҴP(E1#QQp^>&L8>} :qb:`po<Q#[tiزO{Bp}{*Btt塥1? aÆh@oQ=)T~OF 99qEg/ A#/?4<4%idrS#<=_` >)ږ0P(p\phUΝ#** :$%i˗3i>Z,Y3ǂ+#/ψ7sp\.\Hǽ{Qb̘xP,+{ww>tp)&&apo|a'Mh4F +K/>zdq}\S[UDDDDDOxBo,Y g^BaR B BD i~9nU4E5 ]гgZ_7z$L=43[5ȑ$%|=zIb$f-Ч'ڵs6 # llFnhZ5GCV"1$G$'!--99 U : JDDDDDĐHDDDDDDu@DDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDDfPE-Y˗//vB@- ,,>&ĉXhbbb`ggk׮ֶN755ݺu߿۷o<@LInݺ!-- OcÆ UR/b3gmuhѢ !}LDDD Tedd֭[%NsM9rWƲe˰aש팍haʬڵkHOOG&Mg1h4MתGNN`ӦM R%SOUYt:\_Fnvvv禍gmDDDĐHOkBRY Cll,6mڄ]|^8p%N{qܽ{5By" """$$Ӧ}Gдiy@P //JCrrM[O>iӆT{7of͚!)) .]#G@P`СB` XLm۶!22@^0f4lذrgXܸqwܽ{`,P,w,յޘ$&&"%%5r/<<wFbb"ӧPZ-~'>|)))BPP&MTKvرc?;֭[`i$W^ʼn'pUܺu h޼9ƍ֭[>''`rA: 6 p)㏈;1m48::9qEާ=|3m۶HOOGf>}ٳ RRR޽{#44vEDDT&{K x?$> RLzH?UE- U 0 %N+IpqqĈ#,ݺuKjZF1m4yvʕY_!o^l;o{_zN>|4gϊPxyy[]ω'\\\ĪU*tLiҥ⣏>СCh4M b߾}",,L.2FӦM j 9sfbbbi֣`6kL\x7@L2ikzW}ZsAEW^ݻ'zeu"''G >A >DDTo%X{E˖OWd`tjAظ1Wk9,8}֮] [[[s5k/ >,ڴi1~x޽#GXnEիz-미tq^СCꊟ~ qqqر# PlkѫH3C#كm۶!99'Oŋ-扌Đ!C gggh߾=k.$''c̙h4x7*|̄bѢEGjjGO/5mܸ1Xv-[n1b7nwbǎvVZ:`*W_aԨQ>|84hGRR&NXKuʼOz.cp̘1ܹsѥKaɒ%|͛7#::Ǐȑ#˗ʕ+8t+DDDlIww3ؼ;o>/tP A,-^QQ׫%ĉWv޽V[ cǎEZ-:u*2ʕ+e˖ZJB3f",,\SSB1cbΜ9%˖-+2… -w۷D۶mE\\|bpttnIB:bʕV={ f̘!Ŷ$jZacc#ӧYNO?Ֆ$* 駟Y5}v$V>1_sAegf{{{e1#G,mɒ%322GQ]Ŏk"Prr4F\\6RR򑝭h P(7Vi9&M'Zyo{{?~bH23sHh4LG\\bch4yt0 B*\FWزe ~ݻqeC~3qDϤ3:xb/W>|8ڴi߫dʨǴiӬnڵ+wnuަM;V_DDٱcǐ 777 0 =="[z/r>csAUׯiϢIDDTxObIL=(BtZ"//!UپJ1k,n:99m۶۷oo1x|#$$;uꄫWƍU2oez㩧:ccc?1yJ/$$QQQ-4j/Vaqqq8<8 /*뱤*Uu [ 1$Rշortc&A""' ;F膿}*02 `0dh́ј>}bҤxun39si?HVż5U ̿'Ob۶mU͛7C$l߾@/55O?l0|V/jFæ f΀`o0̙3G׫܇FTTiv%߯dTk޽{8K.Y&##ÇǸq򡡡P(8u֯_dxzzg)iiib9|0O$q1HDDĐHub|X/?eo/a0ӾnѰaCɓXYf0f=J歩2W81cƠe˖B`ܸqE)//aaaʂ^x*Y( 7̝%{_o1.??Ν;忟dq1HDD$=B@=^m;VX)Sի A . <<vvv,Pyk̕ػw/,YWWWW ֭[իh׮z=z 33۷oGJJ0us` &L'|N:[l+WЭ[7L2r ~'ܸq;v瑐Eaܸq~!q1HDDD`@˹u떼<}ᗿyg̘! m_Mwƍqww%''ZAZ"""m6mP]9;; bҥE%%% R)&MXd0@ <ȸ?X)زeHMM...9s!%''[dzgMjZGSL)uښ=s.Hʲ:u$Vǿ{ӧ QUNTdggFdd$233^zaذa}lT+j8pZ-׿Jp8qiiiA`` F%d6qqqػw/bccT*^x7;w֭Jѣ|c}U}\|]<D""""""""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D"""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D"""""""D""""""bH$""""""D""""""bH$""""""D""""""/=5 IaEO@I7i*GSV=x)1$C"1$C"1$C"1$ѓ/ĝ;wΜ9S%uPTsuV8qbH8q霜puӳrFSY.Z\k͚K/IXo_7֮[ۢ1w /^ w9m.CR{];j+ܿo{^DU@DuIƍ>8FS%@ uIDAT@SN!;;4iGG oܹh49sfӍ3-Z$I?~ ^nJD-.^ sssÖ-[`ڵpqq̋/sVZ!<<yyy}6fϞ]byܰi&#++ C˖-WƠA? {-v92d֯_͛7w+vz;;;,]wE~~>?.](4kL~ҥXlw֭/ ++ Z/^Đ!C;z]v!++ iii7o< G Dze=ЬcE '|E=:NУ4֓.cdžc׮2>BBKO> App#O> )$&Y|`mo[O?5kzĉزZvYmpPo,IE_%6oK*a)/t[ɓyzhР:vX B ?<)EOpwwGϢw//((Cxx8T*뇩S^C֭-;жm[5 }$I/ ]x1Ξ=s-v9&L@NNك={@ ,,׬Ycĉԩn޼pxyy!<<w_ 9r$OO?T֭pvvƳ>ݻٳظq4ӷkr@ ?ڵ+nݻwǥKo0+ >I/bرp^__߂x)5k6oތm۶aOЦML8]v?_\QQQ999媧Ge)C}sjfYKn! ^дC}qSyJrJ&nڵ}p@N#Ga0>[oc~0^t/2"dg ߷^3 Fv ѯԺ n̖XM{Wr=ۗX:*֯!?jًS8gg/ErrUvˣ<5;s&U]NNs'Dd/7%:`0 77KZ^.yyE׫\“'OF^^7oQFaԨQhԨ>RAj0 kÆ 8}tPhYj5lقH;ׯ_LJ~X.k=e-C}ZIN `4>|K"bb2,Vy)I^aaGp9``={{i~Iϣ[7wU{{EY~G>DR`.ذ/;XzrrRC,N'YtfRZ=VRSص+^~8'$Wsh4 ;[ Fx#)+|:<9ӓg}ԓ II!}!FY2H$,ʊߪ >Շ񚚷C>yfիշ`c G~X̢(z vPzGOc$ ǥIddȅd$ѣ¹ءܴi #믽>B$BUV岤$TWW ˆuxGaa!4 n a011,d2GŶm p%\pccc((('͆ h0GAA߿^?cٙ3g<199B:u f ݻq5l߾"둗ZL;whooǍ7 QSSLt:\ҧqrEOPQцSA%[,>ffeBKK?~yFx?f+>Wk[#\^ކoQAۄ ;8pmk96lh~f?. !,Zƀ5k"Q[4-*r9rs'O?ºu #sΝ9c38q8p}^Wgm'`F9$ǏqJ$/~}X,7H}?@B( \zuքL&ARn㊙PT0LsxT4ʕ+nKX|9,bڵJhmmP(pٗo.8J tumS*e dDP*e87oBbXea+Œ%hn~26V;e{QTۄ?ԣqt#[oju8<@tusFtt peF/s$Bẏ$ -|$Lp)Vjr jk/+:Eطo/>Nk"2ұssk'z$/$ArW^^377}݇]v{?+ccc~ 'O믿~S幥eK2@"3f}Ϙfq=ƦMW>R}?{{cddgg GGL>HR{\]!ab";͸.{dB- g 1PWcyAD XpǎHIIi % ;LS=VZڀ?Po*+k%!ᚼAP|MRƖ"-R2|bbH/ĉnANɩP(xuxbcKڪtĔ =!덾eBD7'>""7 塶Vx֭Õ+WPWWcǎ!<<\mx hhh@YY֮] HL8 555xŷ~H,X~ִo995jAƎw`@9lĶm#2^=Oѣƍj&eBa ":<z (ɞXzZqp;v3}նx`w>6 `5͇ƏwŁP*Ճsl0<;Gcp;G#0P#4Tk?4兮|U]n~;Ft'܆'wo'r"bHDDq!,, v^O0~x<#4hY5 ;w?P,\?<~aD"ĤGG,xqٳ˗/ךLBuu>>XbJn]<? // oMdz@~˖ap{,]z<'rrjeK$;<Κ&?^ \qv!v8$xh̜y eXj𾯯=˗aldTVV"//3f mkטNN&P*ϡA!|.:7'c`[|YYY B)S0yd᳍9s/^ĩSsN8p{Accڄ4]-Q~~-2MϗNsg϶΂m))T*>t˅75)Ʒ[ATb8gs jMر (Gll)Əw~.&!(G;}55Mhj2̘BW>45).F˫mnP(QUȋ%-MnA%%%سgoΝ>}:`KKKףMMM¿;vԩS*bƌزe p]w_D';v_WTT={2^[]آffRi㉆UljR/Q5㯿1a+̤tlD"ocǎ;0v3I]>(]]Йi[okp*9O ]ŖD""j!C`` 55U%dʔ)HNV-u???۷탉 k\FShK_~%$;ư2BE*Ug;}C죧L&_u c]YsrdIqr224 cXg}!! s-]*/[HPUUWWդ HNNƖ-[ 0g|022b߾}j3* 2e,.[LZ-T}8sux aٳ`m-Wto}H[ pr5. "p};Jusxͥx@81ZXH!`nzHaf&~Wb߸ѕ]-/[;%""53C"""MA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"=L&A,.GCRXZ*+QUR"33)UyTyy;卨| /(CsOX,wQQ=[[c^45\T(+k@mm-[675ȐD"Y=((MD c!!r|qAӜ?o=[O> }R{qǒ%!&u?p;l8\"$!Vx6^m?B`D0o?&Mr:ؽ;;wk] j4/aqHI@P - E@㏓=`' Ddkjke|E* ߂:lܘ_:R#4Ty1l=d2W__Buuߝ&OEǗaX̟??Ȩ idbǯ}C6nLٳڻ>|kWڧʨm}|4 4K^i]d"[ tDW|>AcJxX]c4~$adU/<Exƿ;;cWad9qCד7 9~{f᭷4?EF:`"88`>gcIO_sp`nPZxso ;ffR,_sj⒖.kwgeeM #G: QQn3Y{ؑb ㌨(gsu??\n,_}5Ơ$K$R=nmI[hWʰƎuFII=/>rLxULKK#XZ!7ƥKx9`\u] } IUF^cР18xP=`sv6ſ=aa1N*<+DDrw7llܘMۖ-Ij?kv6Ϊ'x?F_y A\.S m+0wq{n?F= UI{7߅jAa{l~ iiBlYh&uyq arr^zNpt^zԌm?^;3 `+*{:DO=TWW7W eC }jD'acG}ضRA]㏗UoW >Z|q2jjZ ~ѐנeԞUb5D@5vh}Ϟ~&Z(I3ZXZi|fT/wUUONRZڀGҽf[oi}U\\uůJúuX..46*jUbNbOS~ӧn_9D" .qqؿ_d7Z-TwoD\]}Eֲt26'{ :v8k EHڵmժX&u *857%9Sgl]]CkkA=Z׎C55MVco2Ab||% JJ:ka.hhP]˴i;66h^\1]oހi]H:6;vaǎ4W~Sll)v^pM:ƠAB+bnn^]c*Mv}K389~$w*m]wp{s9_~B_];vvEBY.|V{Qž|m45Fgǎ4]%Gm)}7n 1+{k (Wlj=ΨQm kgfz7-k܉D{ ʕ0bΙzҦM”Rajz} ڥ01\e7Rư7aLp;X17ڴmj?oFFFU }Aʱx#8q eyyگm_RkPO2j>Xcqq׋-7Z\ҽ 鯯vvm67t9mR(xsHH1RQQrGC.v8jMʰݹ݌lmw׬LDD7I]mUv+JKz7*v<JݥؕkPWrk{ã]FM$"-mX4fx`W<_O>x N.jsJjI܄ݽ-{e&v4d213Oh…<NNXM&ҥ>1ϯuN\\n;ΟHz&ϴ/ioo^9nK7נkt>\K;r:[Q3m]e7dnĒzGI&G}tn3k/ wI.u0ǔ)2&|S͍Su̬'ϜqqT*£zkNm]0ȑ>Qێie#c8tG惿""~~tot4RwƼ6v@K:f!u9o:mhND &{Gر.?=%߿6II'Nt:,({oKTݖt-ԤݙSza O/"LpРPzj":.xj߫+S"xq̱m{ڹГu+ˉum5%lqnvQ {e&|y jwhND &u@.N,n}w(^ye   a^C pB m ̤ј>^^sf37nJ\ѫԤěo{‘m.!;[5N&F'q0RCᣏ"պnْB͚G8|xR%XzՓs;;cNژ T@k]; ovfee]֬FU+%"rcL_l<2Xmz\ɺo_[נևxapsk=mldxo|jό>]^-ymnm9DD+,]:PRS+܉nV[=J`sؼy8 A覦P(Tj>NMo)͕+,X_ca!ŢEAX(HEoq}Ƅ\X{lmm3,9͛G@.A&c,X]#i=殬r\ X>K"#{Xա B`T[&p&ؾ?_7ߌEnnM?%oeB!nw jum:woJJꅮs׮sjsu7/>>OnCff5ͥ;AЍqm45诿qtgdz444յ5`=[W^g?!QQ6Dx/xݥnr'"޽YjO[ZhhP`T̛w 7ٺ56$-rlmol̞}/_'|7D 2zXSӄ1}ni'#ki1Tڞ{>8= W{fa3듵 2VƦuVО: Yw󳄋)DyzS_{P(1* R lߞ5J%V<;Ԏs"̛wBPDD7QxO OO 猐9QW׌˗Y;"0n <=-b GGSTT4 758tڒ70[??KƨoFAAN.‘#y} // 5|W>UD"£`HG I:gԇ&lfUpPcdG^ w錻rݚPXX5k.F޵"#0r#<ʹ=~ ȨWԖ ˝A";@&ziDDDD7HDVXzUENk VU5inFDDDD Z Ki+3Κպvܑ#yQkK8zT5P$6mvט5 o1w@_\bQHD]fkkmFM_Yوj6֭3*^we0󈈈$q]n뗵[pfD"ٹaDW ffR5 3х8yųA"Q$D""""""bHDDDDDD A"1H$""""""DDDDDD $QϑD6Ε\ +$'#;'OO YE̐^d`\\v2F>]t]_)~"""bx]walNmp)xyYf|]KG'{B,!.Ab/^w?qD"Lֹ46d&&OL  :W8:iO}}sGgeѕ<7Fvn$?`ӫ~ɓ=0~+lIBllF{pry5 kw8ZFذ!ôi^ X,BZZ%z+&ԻȰz\Tk/jܹ:wQm|٨QN6 CXF>|'v7=cٲ(9dOFD=̤W')ƺuP#F8`t ` \f%._we`׮>Lj!!6BÇ;`< hHr]{Q^YXH1~nC$22m%ߟӭU/{"_2|m>pr2EII=֮ǯ O>eHKkh&"""С׿Y~ʂ Ë/QT)2/HL,ŋe >3O>yR qpx0DE#/Eƹ <=63􇃃 Ԥ ^ye LDS emFH xSiR;}12 -Cb*31_?sDDطlK$"DDH-HP3gj4 DŽ+eͭg98{XRRS+q\ 1f3""cp[L&ƚ5Cq펨lĉ01 ,L#pxրc@9"";OO ^-;P皚)Fmm3 { 773aggTǥ9ұ}>d ŕrA6(Y|p47+Z>>xP*~h=/wwKc3|S mlzx(/n1RS+qX>|}c+Gu|uިc~~t0 ʫm>%KBpnjA/Fuu#-:KRZ(&Mrҥ3tB(wlؐ 32%KB0k1/FJJ%,[hǔ)(,sE kChӧ{ORt:t8̙sG'ad$ʕwo̙xao\yeљuiy-oÅ ]o/<xs8uJ5яT*ʕ1q+ <|4`ٲ0~#焀>0>&Poi9Z,,@zz%Ui=LDE#)Zc4aarݛ}'Ν+OԺ#;ƥKBY]; 7ϿݖkXb(,)%KB0mFpP ԺwwKns5TY(T*‚m…,Z& 땯V. A(@Lvt% oD@+$a׮uD>  YXkk GjjZm.?TeoԱAmB v @II=PWAbpD$ uuhlTh|v [(C7 @ˍ.okJj7\m]SpHژΖz[uT__KdeUkڶt%|ZIDDD nen.T*B}}5zOQ[r++YﵰPek]]KSTU5veCv%2LĘ1N%MBAA-ٳ]. }ץԩvBT벨p11%¬ ./aaэuH TXggSעNB^^Zc{ XImԶ-dI&LpD"Bee#*pToOoQ$yg}RIaggܹ1e'&NtEp &NtĉX8Vr:]eo10b݀\[Z-];ݛ$ lBĂ$M''S d[V0} r ~Tcdlݚ|u |Cb͚pw* }5.Jd2(.Zr|bHG(@| |{h {{cƖI s"%7ZܬDs02k}mPdee[[c3N8sHk>H$"l4AAؿ?XXjIn4ԶI`Zy|oIw $/$SeWvxδ$%vïUkkYӴdQt}}֙Fcu3FFbaa]٦[OY,eYc̟S=p,Xpհ u,:6Mb"LM%x xMwxm8q" '{jioo $rUWҎJww7;!1ڃİ0[YB,_aw6 oss)T玱:#P( DDc l\()ǩSE:iNN&j7M.ر# YYՐe?=cRaΖEge8sXcV[&c!Xj0nMAbbL0m' ٳKlU/CP lħCa 7Q対^##1^y%[$A&ch'̞퇺fﲲ[7l<[b լo+lfc#RR*gLv3Ԥ޽Y2 G%#+xQg={2q-cキ23XGGS&3uu];C%>w= B'`gg)S<1t.]Ļ^a|ԩ^()i@ll LMôi^hlTKt|uިc[/^,Ә=50P5ƶ66c͚p…߅$""bw57+'b 鈰֮cUUMx ˜"}<\4^}5/,P(eK>4Etjj0{qւUPPW_=noY]i^X;g{C>by?d;}ӭL5Y {.||,1g- ^olT`׮X>^4HVl̘(dRon3K 55sy"&& #goޑc_Ϙ%$1o$%?4[^RDlqcoV,"""""&M[}+C.\GBBmo*Ell*kצ;t0H$mNС(+]Z"22.((P >>GBFDDDDt?k $I"s&$D""""""bHDDDDDDp)0JKUHD,y"""""\b PT"""""Vwsv$1"""HuLvݺk;UK&2I|؅@ҰQR`ojU.DDDDDD$$ NL^3`qD3D"""""b$$Q 8o9/^ =NCP`/3)WXX>+W]NWT*%VoݻźLulÆyh0;w`@$֟'DffFoHNNBR@V&~gX-Ý]pi! ΝVEfϺLv;~233`1I_увe+32Oyf:zmH$BPP#@\i6 q%&^7Zn WW7Cqqaa-ˋ :tt:oߋYng>c;u`1I_=zB,^_7ӿyfF.]:UfΜ3g9u;ܹ/(Ξ=NX;.r9\T~1I$""-\ ֮nhݺ] `ԩ+ti6^J qj&=uT# jС3BDDTKItoH:tv8HL`(9rEvv&ѩSL4Rbǎ8w.7дi:tQFC$YToXwq;ꔔ}>Db|Ϟz5 ))WM=$xyyT*P(# V{Y@׮=0aS6[زe#\<}x1 kJaa!RSSYYرcOOO4Ø1OYիضm3RRB {0)HR;wyBÆ׹ڔoBBkWcM*r3`>лw?H$=؃;_?lٲjø2322,ATTx鉈=0 ;w7.\8m6C,âE =X{5''GGzzB! {]tCQQ!6lX+?^DzzRƯu&0dpt <{ވj_:tODhh3< !!![lB!oݻDXX V<[-Z㣏I`߿34 {-T*ܾ} /*:w7cOQPE> / ww:+VvإXnx…l;`ܸ jċظq-n߾i&ĉfٞCDD$ J}/+S *=~Ө]T…m{;wnP(ć~ӟ7q_/!33+Viٙ3[? __?|"L:2G_W~/;; CfDFF_z7n\GVV&֨LnE=㏿ 00ȴ|Ȑa- rΝ5k ;www+1xPӲٳ`pص >uTyraXWnݺ,4E/'bԨXf ĉ1nH`O`ug{уA!v+~5K 00[ED,_?=sq&M1 s_fˌpK$ZӦYۢjptd@Ækӑk8Tez1 T#ǐϿ:g{у?sRF="cM@7k80QٞCDD$щD@رjV bPFӧ>{mu]G_vqqoljǰyݻ YYPT=؃X7[gjc|o6!y3xɴ/x7My;}h߾#N Iuj5U IDATZu66D.Dm԰a 4 ;ҥDuxڪ_ R9ٲ+eYkr9ٛ$V.㕚bUn8T]ٞCDD$)DCephLdgg:bɒjt:mY9ܹsW\y޽zA^}gbpj2{1dȰ%c5qff& 4[x9Tʷm۶g};I[rS*=嚓  ؾ}K9Ge;:_uojNN694hhٞCDD$ITzV}lOFF a|#G-[FKNRsYt:BtɔTڵif͚c1hPtj( Ϯ'jҨ{UV0L``:Pv1ܹF[auۓ'O@B,hOT{N۶mFqqE=vN8RnٺT_z~~fϺOku٘tްH̓Sv- kak}]\+qtDU_y*班xU8Г5+WV 8NlO!""zptZHMM1 PMS\-1iļʿIIĉcxQ>}  E?dwGãwGqy)Jӿ;vl{K.B,qXXKDW&C*u+̶;2nj;554SOM2)]h)׊s GtNԶ|KKKtfrP={*z5oAgB*uQ<ʯU$[=_\\+>O{ | 05EFk]ǫϟ݅ Xt W_D"8S$:AkO}r Pb̝EOɉ쳓1ll+ud7-{*u&7Q##GIIlT~:oW{[qYNP9*~='5=+վ}UvމC-KKK7 bJ`-߄xS^Tʕ˘0a4hݺEoO<2ֻ;[d)1Bdͺ{tZ1ޚy-4FYYxI)O}6GT*.\AO?4=ht_0a T*%o6⯣qUn}0p`sIDD n@Zs47i׮=^zX+\ND~gƙٳ7v]z2u ʍΝqY"W&c߾=(+S@*bvnHN^+W.c^t8xp1}O4۶_xケvvhR)V\W^yOđ#L C0|ɓQ=[(+'x2<4aw#⋯GseF૯b.W??[/4I㏭e}g}c-o:Qܹ+d2r9,YP㟲6Xx)Ǝ}IX1/0nx̟)moO< XRQ<~Db6a}}]^+'?իŋqu|\Ӳ֭b¯{o!++"xo5ҥ>`>.^< M$?Z㴶qT ֞׉Byyw=?<eV0` |}WhgN\| ׯ͚!2 NÁ{q|rrѰaCk11C,zBVV&n݈ty0m˗۷?F|R) HѵkwDDF\i  IIU&) Xv h2=bOaǎm2,Z r96n\gj䇆6ÈgiOeF\x%h0zE}k4i}h4ضm3Ο?2hC@pp*DDt wg$R)ufou3#&fVo~=})Sa """&uq,vGqq1f|3g>CVٹs;֯o=zz_PQj|&!M>'$ zP_+V+ѭ[\цODDD$%2eDDDDDD7%RDDDDDT-H:2[rw&..bJX뉈*WWSjI"xz8mQ\\tuw)0& a """"rz22s?I"tz(j(h:^DDDDDND$E 77 Be& 񏈈^BGLZD""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDDp3yػ7 -AqqBDDDDrE`':ujAZ!,̟A zg@zz>.<{X c'p ^} JK"2 $:{0kFtz^ DDDDDd" 7$Yaܸ!xLMY3)G7LJr psw$19Hf'"""""OFrm&={]uI<{6FOStr^GNN1_xP)fCV Ri0dPd """"$a[R==]Фu}н{Ə)S7"3Kh~y\]+@""""rn5$>Cՙ&Ah/FDP':uj>ɓyzGh WW14xuHHȁJ^D""""rn%%7nm.@}Q|X.]1rd$m[ƆpD: I P;M߾}*j&cOb~7oaC^wq[z=1- h|,[vl?2$rgc߾$k}h6AF <зoCNg1ILf'@ա]G1fL $qNx큐ɤf8ػ7cG̙}L߽{wDE-sDDDDDLu )uO1cVkeO> qUu0%d꫱xu8|8bߵ>>>+WB|Ӳ$"""""&T è#M_B̞{\{pfiY@;}wҥ\(ٛ-3& 2z=<HMܹ|y"&&v]퉈$ml.htXO,]zuoh @MIN~#HMCX?ڷol9=8}*jә,<smnR.ѴOnODDDDD$>pÃTD"_W!T*׍=Ib\O,DDDDDDL#ƍl v-N'"""""bx&QQ\G ڵ *O t{""""""&l@ NLL+_W1Ilܘ%`l>Ldd krnoُ`}s`a=8}@yvCX?6m'!== гg3Ri;-Ztt{[= 1I{b۶x!uСf33 zٞHtKMsޯݥ0%"#邂qH*jmoODDDDDyС$2I$"""""r$D""""""bHDDDDDDLN7NG`'K$>ZX,bm'""""ji4:&9W ٗ0 =K##PYۉZnn&02&""""Z$LI|yyBճQD"ӝ3 """"""&DDDDDDdI'-qDg ?0IꄅF$"""""LI"1I$""""""&DDDDDD1Cpo$'ھݸu7n@@ h s$>̮ߋӋ>C@C7mW6 FAh6d8 qth D"h7D"z#/=dӐy=|xpkd->fǎoEE-]  FcX @P̜m0^1DV3?hh[/KLJkNhCXX 2P7:?>"f1\Pl9B0~ ww{)+(!JPR)<<@NZ R BV W.JSqvWPܾ֓ S܂u<EER@(-nip] ld,9-QU kڦ. @XSq\hY)JUQZFPXQf[0D$l0b )W@#??4󃗇 z=Tj5eePT.Gɝ;+p+jB˫P$m#t@.^15jlhdC} d,-x~P&ev(fO2 ,{mͯk""b\E#M4@Ӡ 4 BB _%%[E"X$P  eHB:zOOnmDk6$8|c@PTpn0= r ""g8F=HݱY[6"@Coo4j 5  v""f K/ysdA&  /eg!X,r!9t5>Aw zd A,!U ̰eCmx+ ~ (S@۬9#C'}:ٯ$neϝvr(轼P1lw>Үzyq9m!4\/m#Q6)72^۷n CRB Pw^ 58iʍ;-)ww4o{QQ7PZjE U+w&OFٳ(*-EQI KKQѠ0 gf d TG@h e vGVpM$N nC/ulDeey l"(^xzaTMK#\Bp2JXQV!JO Ɲ~Pe ['J~ֺXtN/?lP"лP"M=/u ?rΑe(Z!fe_ B!.APLH,ƭeP cqV{^<ו+ kG9:PkP:ו|UCC$TBamx͘_~jЊ,x=3 ¼l̓6.[7At5/?7=6Xϝ ˡwwrhh[(=ҝ@x30l{v;chp:І6A-!P?jO!4x\W QVDif-QV)Aɱ#I{unf b]Al!$B"gՀ} ݽ4h"jW!>w# =}_ؿyݰLnN] /7cD)Wi׸dW_ˆP G 9vV٫H 3wN[ˉp}y ˡmU mVѰ}ziHs1 &5(+t˜I(}0J 1O Z ׋PҪGz=jHb%۹ :ǎ?V ^qj|(} ,4+rP}^ JOgoPxZلpCȾt{Q{V7, W5(Yg;Ϙҽ'6Axd,6ŮxwkHB+}9^5)^ep;%^}0@BJ} K&GnCryslW3CgZq\㟂E8|d^2,5^D˖C9n|E(*2J9pپ缮`!"c[7! jP(S*\ó[@ASZ*EBRhJJX5Q(ylJ QZ*~SD@yl(d@UqSL~bFZezبut[5 (Yŗ6J|i@r돊sD.P< #+crv`/W.B!|o-5o9] 1CTF?lOiz6Gzy1S`hpCPRRr{Zqm?({꨻4KM OW\gn;YL73gYx$P]REd,@!?%_-x99U{[GQkO{ =G^}LjDB+f^jw4KM̾꼬8^>Yzoo:򺏳Ib=k5+T T*Q( /)rr*\m ×FZmHF]yY2jɺ5mPu7OE܏ W!8?ae\KY1ujّl+>S>Ahӳ.wS  mx+pǷ\lL╫-;bwNtb=uA5$?Bhp]+(cՁ`jX{x@ۢeIMn_4ro@VWm8дko-ZErp  ק T Pk[Qj"9gձ(Jhej/$Q=zbQ4 s߇0?iB MP 9zqAacwĹkc ~8f) JOyHM՟r 0z&=u^Xu l;kHAW] 08{uS[6q2GevH˓#Aq1D)-Y͞贆\}GhFQ@5_N@aXۺ\J4Vv[5h(V#9"I߾ pņeлBݯybUqp {.;Y*(h#ixv5Ye9T*"FuϱjߒCݫzY׽^~{x}CDL.Qp EY5u:rz(=:bcTB^VJ^`J2<7,0:Tej4Q(8X$Pkon;e^ -V fe6ðokD载y,UywU/3=E@4bqA%A45YDqK E.!*" z{gz}Q]53,tթS|{W^0oDS ZEmosۻܣ~S]w亠5֫ܡHܭ. {aw3=I';7 ߅p?iK](AÛ<:>r]pGLz8dvEGaڶ_-̯m4=~cx]F-?~GFR]7''+08<߽w;?W׋X?uA-$Ѓ+B rs| H|@~%k $d0[=0dLg$8j^v3_2K_JXGO{wo>۵jc },BS{tG/u8uBU,9#nwA$H b"u@D ZXiP `~:g1t"2+og, 4ۿYgaD6߫-nb]&Īח?|ATD r:{9{35MH8 Jdw1 EupM2e yȼe[YI~'O~ǮZڶ& 9߿8#6~{{tG{A7ƦK=orO~ lwA$g`ϳ.N yP]B}@T(:<@1!(;'O!5O6zyɆ[1hpVןﳅydzQӐ㠽=yKuf^sM4\܏[<|{`=kEk?eWD<w<{Q_|i yK:2`U>oRU>;ο[*6 ć<i})_ƶK$ڋ=؈vjxOi6;7\⸆3s}bs[P 3}@ƾK.U*7}Ep5uqNEa@?=,vrk90C~p` o Gρ{QpkI9~50s AcL0 wBNXy.R#`*H?p>l~wŎG١NP}y+=~/{cD c!{N~p" r0Z/|1SOS s<,0 },0^]S'O8Oe9s%n<]|MWh .}{Hl^qrYX7!_!YW2/?t=0=֋up=xQ$=.{ܓrx&׽ʇ?_Yp.A:OaŐn"yqn^أ>ev۔l@\=o =ȟ$;u4 T[ӿ6hӤ A$7΁`8waˈDD_' ? >,}.FxG R)5( ]7yi% Y@}BsG p_߂xWI_bT?:-?k78S=0H-`Hx{Py6M R.{EW^=<8(xoxM@޻۶C}ǻ^)w'?<ܣ4f3 ᑶۊsW>_!8gH|35>a=o]lH_< /߇t-ang؅N83?H_*̗0̗>ڢ&xK.mzlx u`Yv?:6Yw-=K.C0z?čpg]}vz wp2?ΓwxCgC]> V褏vRzmjֹ]Jz–Ao \۶ X,\.y\=3u`7!QcP*Db:yxɉmڃ0S;Tܱyttj{;$Sӿ|MNl8w ݷ? Q\C=FAHܬvu o?CӰǠMM,:|+)$#c2{!͒_ZS`kIZ#FP>wN~spϋޖAA" a;r](h*qe0kDI"'L!6/#^|ho0H]eZ2AAH$tb:M 5~qdbS8T_J|{L塾q8  H$)``A2=`*S"6eσs#QJuOl|+w\ b1)p AAAkAAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   L8vy> 08CJ   x\P.PU-92$,AE2b``ีi(m `׮]`|1mviJp(b۶߫ؾ}u H$S,VQ0dY6 'XA~h6\׃zHdp\z uy޺q zu[zz7lK^7u}j|~:b9}<3y Bj`8p5"}߯ǃ71vi5ۀ bbb$ًUmR H$0LמTArYau}eNdX u,+3R)$RgttAA"h񰰠! < Il0 ,Xpf#sE 4IQ-j:0ڄePհ?lT>M?ZzȦ5_/_4Mk<<#H Je ] AH$MzZ,Զ1`YTՉ## R"*.j¶]$c0M33e8 rde-,PVmM\kK>*۶miW" I0 +(A8[L}8aC871vxhY&",d2 Q6TU繘E:AӴZXy "wq=za(JDAUU89vX$qm4 ,+H$p]aԼ?*|Ķmlnne"LBQ0 SX<333عsW˽xm rAC-ؖjA 8PV0 AhJYqP(-hZ5c||(gggbQ"dYq0Ma`f&߶'jm||_EIyfE3MSرcgc}NDlq{,CUU IJ@`Y]|~UbL!|?ڶRQbW/ߙi4M -]fpxeWu]0 ѱu C l2&Ѯ,HCNt:bRXkM-G}_U",}.$I 4< s"Dz*\vRu8)Vk@DĻRb~~a\EXX7"jضjUE&tj'EIBQY8 IZ}jm&\ׅ(jԺj5ر<(pZW ~ޙm4Md2nhT*F %;waa9 6! qF[{;ؾ}{Q"ѸrfuϚ!x0Dbc@/eADЩ8 <z=/p"CC nP ^,Éuucs 9224ȱ,1, -3baaF|ݾ}GdYCCVV"hrq,cR\46-=Y|mJQAR[.  /#jurt(bdd$ivBPSccMEq[rakڮNclzOٍ֋n;U{hW0dY$ɾA(I4d2 േ$%b@A|LfiH+ j1zD(mc@/flCAH$$Sw0s!F^piQLxr2ܜjzIt.)/| ^A,(Zdyb3|aYgmn ,dQut-'KIRn3M6!TZz%V@幢vֶwRL˭$&M7vZ/6cV5ڲj '୅(@  ֣mvujYإ(mU;]n6D-7^ /J̀r"|a|ߏet=8"8o 81  4 0La%ޮH Ѷ%eDc7&fYft$({蕐gxnj"~O0=]ʰYYVzS;'v,bˉR{<EI"JA{~")/IꏍJECeű7c@/flCAH$z:`0` +m]KtR lPm&ش5mMk9Q$SYVV &Q5koq]P,l\%j]ժ>"1z}q8\:1[KcM(˴tj}or[CePZd2L&sA}tsj{;Nƀ^ֆ H o,"+AGyժIbl̓q<ضW'(FI4$Ik KQήkWXIn5ZFBu#m\l\ZVZEe&dȲ=/nW~'W:$TUi}`ary#mX]P۱|f$&;9ǽ~t2]n6DD"_L $M#/ Ȥqb`~~yDZ8/aAxضDBcT*OvVۚV樓lM6s] hk,be`Y֪CF[i}n2Ä+ǃ,WwfcN/F"}AyϘB[w㳋z5zrA$D$4mDPd0>TLT*yj, JI8<ρ8lp2qU&'&Z~o:.7 q|BM{>yH5!(s~¢guygZ j㭟%0[ a2RCNmMB].,,ePeZd9Qk FK%!ŃJeVuBo2Z-Lea^Mfe7a033-ۆ u %kVB@sײ캟{onن HYrB1~X A\*9"A2sa?<Ç'{ cnڗE>LWR<I | YGw r8¶mLNN" I MS㳃ccMg(뺆X[!!j|zz:&"BeYE ?,4MBU+\ׁi6b&taw9G"Hu]OV3f,axx3mGL"P <0ki5gȲt:j 009y(#oǍaXr"[LDi\'k BaH&-eޒ!躆Çk5ĥ;mةU-n (\Ów fMԧv@tj @躆HжmCuA111n^nQz֣]vچ\׍O[`  N(J"^mτ, g֓H$01-LѐyreWJeYAZy( mM9}5MEiXR#F60LE app6Y}ҹY!0332E+\"!5??CTѱe(XC[?M"FGǐOǓIC-&z`X,u]T%ϔA.76Ѝlov/1< Cy|T* aqAѮ&AUڹ CZNmڬ_u|?+`aD"w}۶A۞ٹ0MA8H EW8]Wa.(H&S-tףi3y !ʚyPU-Ċhmxh3.ǁz8 ;4 L##j5* C(Jחmܹۘ,ˑa;$òLd}{]Wry,cttkG+}tSVb}0Mbmaڵ Q h" PUB%,ˁeٺ/ X0 ;]2Y ] F@%csssrf;l;~\1\}pk\ b^Uyu^ĺnJOB=m* iu18.W1 }6Yl,M0`gEYVZ s<Djb*ArғkuU(i0<<}{]WC bbb$md% H m,x<E<"0Mn#t*EoaصQ'gAhX,tkxo,ˁ8D"@"UQ,j}N$BѲl"AA&|##ӗR)Q.S,d022ړgυ JRվ}Woًٍ|~i.rum@`۶m4"DV&\BO"SP;sZTSe$<Ϗc#P<s:772L&(  *< vܵN&"!"\׆<ssٖ. TH&(J 0 TU|ӽ*={p%D"*\|OMYi?N]E>?][agL!|?(ضRQ:Z爛+ gk/E(Jm 1>>E '8hq En;`L<,8 003_,J"QӴeJ~Yr4 ,+H$p]au] 11m޼#zQVI 8UՖVA׍޶@L$P,uݸV*H2X;I;Bt8 Ad+9VӰ,`.k"T4 a``KT=,ӱXAUرcgC!9rmZt$ۭgP(œ6s]sssص+0tMV,Icc J5y,0 PdRWa5 7C y2u{UYSJTUE.[Ʈj-Zu( P.c1<4ڶeHlY:s(I(J? DZ!Ikwٍ,\nln(C<aH$b]a1Y 6 躋%~*H`!I$ nDd~[kp:224,1, [n '#Q@aBخ m ,bMe 6xDz"ܔadY$Ɏs[j56:DQH=MzfB 7y42t[ޙhRޖvZnzU&3lb||<%K/*k*i`…ԚwzgplRab٣ϲ}n+U@ӎhAdz^=QW [@<0<ضRɄPal$򫛭NEgM Qw'k7(^Vx9Iͳm 'UWϋV^^EIƟ3[DlwnLR`VJwy]WMn:~f;WeE1n/Kuݸ3{_A=gϾ~Wϲ}n+U"xVAvzȌ hi'L-jegjxd2y&ml vDS]^j&{54 0̊z!O"11Jar%T*Y;vB$ 8> rߟQX6h( =aRITZ 4MEqԍl]If IDATy覬adpP.JR^J l6lvU.g٨>wUAND\$ H$5"[NZ0aƇaXu!%~\v֭,daaweKsu׺\6A:-J~4$Irرcg| #MH& rqdLhnm(Jqt0yyz}YW("/=.tMYm,hZCU𘕈([lOz,DZ DaDB$ ub#؄bЏEa8l*BxLz3Yczz |>cbI ~mXSg033y%u63YNh9io}/*[:8_(FU\j)ʢ|<;ӲG-㜋kP/F*|sXEA"q""Ejb(2°q$ EX8P-70ZFdr.j7M3;(%HR^CST z,ٙ6fY&<¾Y0/h\g#^ v/yT*"(~URmʃyjٙ5XwD7eDT$E(xL08*n3 󱷱_q{,s˳y* 8|xO bЙ>(|?pNBH F"X"FݱqLMmۘD"!A0[nll1z044U BOOOyU(9 (\Ó5 ȳ`&u,m92DB( &-Qu %,- NZ0 LNҚfeaδ7qM\Ģ5+Ya&gHR݈Eg6;ؐctݖ5 ZHJ3PUF ΀a8뺵\ETD2ZSy݊cZriAH,9$0 t%q}Qc(IVU% LLlWsR#˭,_,r1T*XELGQ*Et:u+S4ٝyMeyc֣,+V<B (XCPKֵ1cccu# Nuql}_uH$00 Ll+0 088)ݖ5<.q E=( r(m|8t|GXyY?ճtugXEo_{X6)]׋EmGjV,x pHB-Iu8MY5D? i5AJ%0,:u122t۷MÔ #ji zU  J EWfA8uEdjM j]EuYA{kMY9 ˲ `d;.gc; #V0PH,nEjcA2厯 "˲a.\׃z 2QL@54l&\šC;w\ֹbǎ&Xeȑ;vlҳAH4]%^x*ǃy"e:HpN:e#$ bkF?ӳA$ xAoQHR͏igQDϷM@$͋ep3,AD 5 = /T5!IRǑ@Y q $Iy 67&sS&188eKBA \CAAт1p -AAA$   AAAD   D"AAAA"    HAAAH$   H$AAA$   AAAD   b=#Ž$<ɤ!߿ g'CAAA"X殻CG0XC 1~w NӞvX!AAn0A |9\{p`Y,+a@.|A}oaǎA󙃸=~ DGxq!C.7T*QAM u AӪu `y&8HNٓ=e?{ۯ>\3664_<.KƭނkyPv D0ƶcbb;0>.躋RBCDpe0 4 \]wd14lr ͻ,,,`⊗ĭL|_ᗿEW9'`jDbPA"W]+wwWR`o}'_3f1::]&p9xғFp)ؽ; I d= {BH l?!\s(=Q<8>GF&  y 7SI d10Ů]IۗB.ܜ ate.چo}78rۖ`8`Y>x{m >q=7uLOOah(O>W^R(wr?[_Yy²L|߅,+M.nf0P۷e=#wZֹYrxQ.1<<:_|2Lώp≿R/|=4g^\z8' pM_'p"Xom;߹=#w߉O_s}r|nn,&&嗿 |f۶oފ{ss'H&>/?Wz9N9^?X]S_WpAHR+x FFFzGy_cF"g%HRO~ryzZ|^G;կ~)Iy?]v{)햯m3ӕt$q)BUU|ÃZŁ%\{d s(i~ #ǎ}.~ a.E&2/zH7s9mٶiYoC 7 CzwЇ z՟OzTjR| My9RZ|s/}z=[\}KW+_j/w_榅xkCNquWẵ睞^v->sƛǝytY|:Ƈ?1|}}o{-k~:| ߵk7>osw^zy[mޯW:u;i繗cu3mvW_b|k ۴EոF­^נDwCm|aB= & 0 )WOVO-o ࢋO< >s~7P(kƧ>9<jۆ>spa?8s1==S4mhs>Oz[ˮ/~si~C(x{߉n"~}>g0t} <0.|3l?ˠ:$.yxNoã73H$@ai bX@]'ˢ`Ŏ ,(RQQH$!cBڤQAEiiiIAZ{M]ѐ!5q*)3$w2(&&Q MP^{޿yl 0D>][U-]vfl޽;odJѓO>˗/F-X8ڱc_/:e־HMM՗_~&I8pM'GzkǎmUvĢK8_T_Ku>..N#F ƍw4hfLyCyleׁ:v۶CbСL+0m۶uM_}e֭3Ӛ526mvI*_fΜ#///%''6Ѹqlޙ aٳg=7eʛ2$ϙ3/U/R׼O?$Of80fXm>m?J3X$~ivZݻwݭ[O$w_ouUt! $IVYWM%'')!!]\ԩS͞}\IJKK1ٜ.,|^?j8{M~m*UeA/)ʕqvSg܅9(Hbb>,/+ǁKƶ7o޲Ljɓu<ɜ޶Uޝ1RN˳]]MUX7aGJR Jgӝ}>^ReIRvrr9捒MyܻaW\0mrĀ|0[}weF-}B_W]\\s]&ji,vRܶ_mcϞh02s;wF.0W2LJIIVrrFtLjڴRS_Vku9:fBWջv=fΌ(GGU^5aq=ȣ7KEG_S-Եk=kסXg/Qrvv\_IjѢUn掠/rsСZn~R/kUƍ)$N<_1sRIj2E%''հݝ+V7Q;s|9sv cǶ<_3J\nvoӅ Qya[P:u$nXq6{rFy tJI݌vZuw4w9:*B"r=*'5]KMJNN֌p-["+*,WW5lÇQJKKŒ.|=pfyyEn󻩯׮]}kիWiU5kO4hxf_%I]vW\.k(hКkZfmWnr; h*T5jvE+hp!*ۙ(~2/Jf[^;*nAXz<0KX'$$6[﫬 k,p_?~ԮFET$Z˴ͼ@I쏒 t;)Kfӂ.wN,*jM՚&%UII2ZJOOnMԶmژqҠA o_RSSoÜϢ !O^i\1,CԫW\\aa?k˖ә35mG5k~lo$;ߍ7:vr*.{ -Zu!1--U+VY[p[5j~:uaF ƍzjY3ԝ.s"Pm,7U \>7M-X]ڵ=#Y?J3X~Q~nU;-ȱcGq^.{INQԹGի… &JJ2\G1FIYVY,f۽(SSd]鶰ʕGw}=^gh!8p,>Kk)>>^8oѮXVO"Ho֭h]&8͘y/M%/$髯}y;.Ǚs,С:>2mFDKR Wn胂jС&MzD]m"?Y?ˬkQ<;-YߥNn[N uКkٺvЉ: c-eb1bIQZZ╘x%$$(11AII JJJTx%5h9+t*d4[HQWSժwU}u铹>n6e&mٲ)pFQ5ѤIoirrrRZZml8՚L۶mu'+#־+~q믿k׫SI5s}ۆ3,JKLLԱcG|~Ό*V$OO<$fGܮ];Vdž IDAT|2[݊6a+Fݾ}k=zcݔk_Q]VU {} jU DoowW͚Čh6(%%AcFhLLLPrrRSeںZ*0+u2z≁z^7.S=Ӊv`GLIIM.w%nVZB%Ik̦MJZցr]_V\f̘G=\ܹ_HR9oGZJ֭={bcc5`9r[ۭhѦM;I_a~Zlm;0 x9sfݒQ]V4?Y$ٳ3eN:ٳgJ~z]Ծ}CuD23Œ|JOORjjRS"%%K4jMEׯ:uUv5_Yk}s/ɔɓ_ʕ˯Tje8p%IG?iVizq{v}ɒ9> W^ѐ!)11Q?'W>Q#@VU#GQ_Iz኏z~ {=hIRLL}N2͞=CK,,vG-h=H(Ly#'O8;P]2xN{'O䉊mǏizwy]:SPgpgRPvmDZKII)2e08J2^7).,YɸƍkQ 5hPCkW+Om}V}l9sZݻTJJ֯_ [u Җ-:vl=SJMM[ms?ۜ?~-^ aGu|2Ljܸاuã̷ֲeĉѣ{l}tqZsjذ>?{oV K*w?֘1t u^;vQZu!mܸA))rvv鳋4g_EW^ ժU.^͛7Fx#LNNN1sN<[Uj޼bO| fΜc ෪MثKn4h.\-[6mfj߾*W;}rssW6vjۼy =?4}j߾:u"//omٲIS~Ke6ms}ތQgU9s||&/vbWe߾=X,rppP.↑c~#ו2oY"ggl۸p!->%%=j(HII&98yaEEE`p AAC(!b ʹ^j(HMRHHJi[B?cǎh믏?T-[6u:w?oORtt/_yggg 8Do^Tr-XD>;R/^l.W̙ }ΗV־^M};:vx5s*jΜyرZ Q||>` eׯ &L]c@}m] Vz3)߿7Wzko1m"4/QcǎVx9mڴ![jժ?yWJMƇN3]vU?c_}?_P!Q&N|]Az啗g{GoK_?wGqGKtM*TJߞ/_ѷ{kin-I[N}ɓ' c0ԯ_`9*~z5Q{{ҶmGo)?$ FekUEݝUF%լYUuܣԨQ]FE+W.u%UTYݻk~Zju* H:uknDGGWi}ruuU ջwIp!J~8]?>D!8;ztΝիti/qEZxtスm]K _>ǪB_l[xhڴV??ȑCJMMU``z~mZnvܦhUZ]kgv[8{VYrttTz ǧX۽p!J7o޽nzmPW=[?Sk׮ֺukd2ѣ_iNmY >Xaa?k'G*))IDGwL@2$nh4׷l #$u?Kt)F2ReZ$OOW/Jʩzu?VVZ\ݮyP.\R&u%ImU!% j6+LscHDٳyF]y޳bO1bq6''`̓}} ,D_Q+<.]VLLMXrt4U>>V*(//7*69w֭_b]zUNe.$nLQpp[-Ǥf6Q.] ( tB$9'oZVjJJ2)::A&e4$//w+yW{x7ؤIfrpp(顇i:y|D/7nt>wy][nhر/Qa(̓nn%{r!宼ǰ6oΠ5nz9s=J7ƍsH;:w>-wI%zr!c4n=;f4V |||Ieav`o{)[AA*` $ O-]De0d}Pnd4eX Zy㣭[ȑ#?djj9Bb^d6\G_]SOϫK=JDg 9w5mz9:5bSpCb4lX-[N+mdy.co[.FMtt֬TrʕsVLLj.6`ovu破p)< sss񘯯/^]zUsΕw,Fk֬vc.]h۶Z>bmrI8p㬷nkiPU^QCӦjÆm[o}mgV̶̍뢩S[klYWQM}J͛W󫣷nFʫovB?Hvr!}UnFY+iΜvڲ/`oSOWͽM퓢{Q~Y5kze^rXQ+I͚Uŝuk:mT,!]KM4 Eg4xt_ڵӴir}Ek֬:waÆi γ?ׯ>}cǎX,Zn[)Sk.XBƍs; PBB/_˗+99Ys9s{4h6mgj͚5R֬YH͞=[Իwo >\m%KSZn]v믿=_~}}Z`BBB4w\S]ԠA͝;W۶mK/)hV^_W_mP?MGm$k֬hK5kzi:x0ZSkTwiM.i zC4zzVUSR` u>h@O;5jYV}Ybu24v IG7e[&{=rv6j-X]tIG%Kd2d2),,L֔)Sr,!CE1BNC=ٳg駟Çkzaŋ?_hPbb-/YD4qD R֭]&L=SGغ~IUGUlW:t$MO?U;W߇KvbOZ5wɏ'̙x%$łd͘qL?__]TTTFʫY ΜɸW*,wEիvE= )~𗛛ꮜYOUT`]׮$I~xXӧږ-򭣈D%%U""n wu \UVkjQ,\xV]$ȑzCJOj³z`UZ6-”7ӬYǵfEIWF4`@,8S B"ĺuԧO7xCƍu)[@KxcÆ w^[}ڵk.ߠA]r%)&&FW ~jݺ>cJʸWQF ѡCr?Ţ~o߾pO3F~.]goziРAjٲzڳg JKK+T=mذ!mO6ǎfiVR޲Z֭veVu˲Ofi7GcuL_헵~Ewג%ߍ ۳TLL- JR||NS͚E/<@O{ou5hΝ\f={x[@hn_G(k?iڿ?Z/Zd r%VŪk#y(Ly3yoŪۯ(0гH);NzzsL\wp>\ E)))9kTU77\OJJC QRRէOG˗WJJJSJxyyd2)--M鶿 h9Beqttŋ{nWNҤI~Sttt2mLpPjEV\ N~5pMWN0~ڵdUo_ZW:d:)%Ŝqp0hʔZvD}Y;3Q&SrZ fRP=2]bҲeի/78W>r<”ω Ew*pW~9Vflϝ9sFjՒRS3F l֬^{|;s,'''U+jժy._jUUPvA 4Њ+ -Z'|2-ҠA+d{Ӷkbc2կ_?81~*U4{l=sz74j(͙3GRFw޾}Fns|3JHy׮UPbܨF {h?qrv6ꭷgj˖Kvmx͛wJ5ԙ3rŤ"oo'ťDP6mHuR^]Vn Wx|v*03[)Kve1g^ݽDP"#K~R*pQhhhJNNV~laW_vzŊ2͚8q-  XNz7d0訏>HFc_k׮UTT>2ǏW wj׮o&s-RPPڴi;vĉ5ke04b-YDNNs͙3Gk̙֬3o_hKǏ$)l=嵏S͡C1 OԄ d =}%NnS6:jUtP3Լy$v])?ի/-__װa9yz:`0#}{ ~rt4jĈ4fLBգud+ڕ=W.m2յkU[X5*خ+3m̞=)4~)$jJ۶mz?ք 裏ڮuٶLlloFO= /^ȑ#_駟6lؠu|JJ ŋʕ+JMMFcȐ!]DVLIDATp֮]㹕+W*66VVfYCҥK+WN/8gyF"͛AiΜ9{k۶mڿ>Ujԩ{zjlٲD)7-bjĽzZ^%%I|X'Oƕ:9CEyEsvPTT*UrUtIB?5բ7<ٳ{5eJ ^S9jt)%muVUݺUͱ.]~ZΜڶ37Vll^}&MjG С gAxl|utt PΚ>>jѢ,vijѢ.^C8Y5k&ٳ'{J6mk޽xFkNڵk^`_-z*2uvv6n]yy9X]j*unTTqSLLQZDޏQǎڂYQ5n\^nn:r$VQCժk۶˹Mr2,jG#^S}1@IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Darmstadt_page_0.png000066400000000000000000001420541420322575300277060ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|[%[+q;a Bڰg[vFG))#M]h(&VB& N;LBVlKe|\zUUU 6?lֵ^zKܽW_}<.+))Iqqqz뭷}oE@hTRR1Rrrz-뤓NW\'|R҅^N7nTJJ9eggk۶mӧpRw˗/WLLrssb yfJDJMMխj< QHHyٳG3f}YHnõvZbhWnn*++uر6OAAUZZo -(**'|R0U#GԂ o>%%%riĈ1b񼺺:EGGKJ?vޭ;vt6[zXQQ۷l٢ߒ4l69Ny۴i:$I_W goQC iM-JӜ7t>'tT ڻw,VZJ9#GTAA$)>>^qqqTffV?|͞=[{uGX766wI똻ՊԡCTPP38CE&I&LЅ^h~III⋕jrLNS555PU٬3g2bi7vAsss5j(}gzLv>HG$رC{UW]G***JeeezWrj*|9rVVZ<ɓe˖5$uVU SNNJKK='%%E*//סCӧbbbtasMk[֒phVTTnec=.a Os?o0]q`w^уxeᇇZ)גM *'it 7k59T|r^)'B߿Yo2~g2Iŀ[oעEhmPHb HuHF7.=iI -6+2ҪÇ+UflfI}+1Ѯ:)+Lyyru`lRJN՞=>l6OP;T]]q\z-<9AV%%xU}+>ަ *EE(=ݡ8rR m-))aJIql+Zoܙu3n mP$I}*$ܪmTڒPrr,lvOŤA"gWII,SqqMPJgJ_%$U^Tvv*d} 3dHniLIZΥO?SOmo\.Scqqy>|%K6kbC$I>g e(4cFBB9ꭷwرj77RO>M6FtᇇiSߎ1vl.)SdyÇ+ᇇ⋻TV (lf}v=7CCDd:bWZ*OGV5yqՑ{Y}u%5hPw8gݩ/;ORRƌ՘1r8;6Vt(7IFWgj̤Fْi9;6yz]c<zu}{%+wޙ#$%O?ZC6=8cF|rwBiOٵz)Zh\Q Ou a5?))4ueaz4l[F1~rEx=.-P>9=1""?MjM?B>:EI/7 <<7g^z$mc ڠp#]##mp||T^{m?_8|xoydJm0}'Dɓu5Ce}1}]23`ijԨBvɒϿjrcS/:mXۏb1)4ԢG;X>y~6~9,5z,u|AWGtp¬1"ZӧE[tyUQ9\śk3b;vKJju@,?>^&df+޽)=א!<{hU*,̢p͜di<~V%ػT|sDǎ(5ա9sހ??BG]%lIܹ)X܁'d=Nf̨{qk.I҇2GNNK5; *{6o.RhE'NH [;X@A)<2Ũ[rjHq3g&i≺ֵA"NM$n=vWi!#կ_x |ê{o|YڠݻK7rd/pY,&v^kT|]{_ntAl<^͍?͘*٤PM\-Ջ/5 $WƎ {c7S$&)**DUӯ~"(JKp X[a6 ̧mLTTh}w?iƍ3R1 t 7Z{YzmM^o;o<\ )9}糠JW_ї$mzT 0XEhS,֯~BQ QÆE)**DǤlIWP|=z챭z챭ڲh@ΧNo2qt>#Yuu}LEڼH{1{/<T{ԩJMuHr{>x<օ`+w^V>+W.oփN1^mśZ WKmP[[O>nݹ][ |ne^SsmWhO 8P?l*/Ջ/:4N`֣-nQPX\pcDuu1̗sPLL_6Z3Q /@SS>7޴HGG_}$`iSzk>}B{'L: _/B};H}[*Ӧ%?qv[I|!{ Xv%+\7{/V۶^ѪpZ6FAYtW^P>8gi0|'@q``3&닲yF5^K]y|\z3{[\.ƒVci1~HZ5l ݦlfM{ߦ a_j5LTU9o_iՅ`-Mѣ>qLH??袋ʕy~Ƕ:|wpqNNE uu۶mPuV>5XMM6oo3$vw2Нp CNNǂE_:UkwxwT]KF3dH-X U]]-[~}Vvb.eez-zɒCMi oʹs=qqvFIcjРHed+==\7XZ*}9  .Y6e2:R>UgSmsk>] $=DUU&7aUDDdߣRk8+6?RhMR?f3kxMJ!=\_hΗ_ghIҭn >ܺͷNaeYm暡:&&kyhIKe72 k]z^ BR>6v j})opmVW'$k(˞=%rԔo_nЬY:$xbbbKM7ij[4uj"#Co׍7śZ|][z<>RzC=wbyyڶ+վ}ڱ[-ݺe뱱͝^v`٪%n˨6hfS7lKj; H I^w|w(ؗ{=K/K/aq2%^g(=ݽejC3^W\M+(Olӝw$sN>֮-to@u2L2IJZlr^]ϰNz^B]􌶱mP{ق:, m};J,\Pz;V+WǷs?ף6܃/ٹgZ;Ƕ0IZ$z =߭iܸ8 ^֥;=Lf[bMC_̺,e=mlOAo I_22?K=w"IPѣcgoq)T~QK{-'i֬oy.{ӌ 씕<Ž)7\W_=kl? ╔#G|V?Us[ysQpqԝ3{MΛ^{~0 Bw(mcG۠ㅄZLs- ]Ge]D  IDAT/%ͬK.kbN>9I'E.-->S ;pL=x||>"j5K|~dd.~/8἞C3kVߎi0dHNM/ _S]KEl;IҜ{+-?Moqȅ xS]ww ^}e y!=gN=7xYQl|i>甍Qm~Sإ]ÖZ֥w9`<?>Flm6zmW|^I=:~fbmPh֪UyƅCMСQ2MXLdDzŊ\mrߗի^]|@a=/9XO=5͸0ڼHŝ.w^p䥗v)+=f3駧꫇`V&O3jP^VM|Z|~y۾wzI^sV #LOp >E55#sSθ8.|zjl6צݞ.E @A[ߌ/B?Z|nES޺VO=5]6lf]{P]{PUW)$hx+9g/7y;Vߦ[o-I1#Q3G*+Uzz\$X48Y_ۤ6Ν7뮻l6)=ݡ$ڰgd҃*,25ǩ?낿8T? :pLVW+zݣmGGfM*UW;Z0~!__oWGd6K kh=T#oK*߭mr+@W'UotAu?vk**1Ol[sn /N{/KW^Bw履=33pF -lbyy|r A5os4dr1n;=l>2%knc[-]zPܲd s/ޤ%== ,~6xpRRdbinչt-`7DK?vkѢAǟҽ~W^uב5kpJ=!߁frgYP,-ޫ_͝ѣcoWeSR}qv7h7'6֦sSԯ_RRԧO]r}Y׶͸qq:$ XͭԚ5Ag;TYTVVꈾNWb% ԉ'1=ԎWlIXEꤓ(99LNS1|'Snu>pٳӟjW⵷z_3f$(##\vUiǎb^V3mʀ:㌾2$Jqq6h߾R}iv!=?gNTdd""">b #>ܽ~h$sAg(-Y2Q{87#P3@fv.Qbbí/BCF\+Mn ZkAt/s M&/OOobhjCw=^.ɽ/"zAǶi8:g=-ҁepjȐHEGׯhrI>U{xt=TXX WwS##C4jT&O umH8:D@˫woԳfRPZCUGV2^U8$zrs  7$DA" @ H$DA" )St-]:GW^9ss:p㹃GJ4~ck9،ed B;$GiȍsOO$ZGO8O;6{湑XY$1$Gٸ=$b1iܸ8AC/B3f$'5z',-5JaոqF`ZSSA"էO쒤0͘Z֬i>2%A3g&OP=ZݻKlAUT#ѣ:rB}ʚ|MHY'K6Ou%'jUwjӅPS㵔6Y&r$͛NJz^gܹ)1"Z!:zJ6/92Fs$+-͡:efGFhI^Cj Z۷klG+:ڽ>nll~81##\iiTh߾REEht -ݬr}ym;l:ݖz>SR'1!3}m{ _ZՑrܚvhH͛}USS]ܟ?/ȋtP_ێ=Эo\^53>| 'jXV>ۀzY[p=TIO~/fbny#HN;V3lRѣ:ԏ ?'I첯u4o^jTΝŭ6Yw1V .;dɦ&/<5u{Ѻ~WNwꜚJtNI Ӳest4cZh8#]n][5O74BGeEEZd/?dZӟ5[YY{.dƏO /4n:< NxyKs\YYP+7Ueѱc>?וWkʕZd/tA-YIFu"u=aZpH\nkYnO޶h,;#W;d6t-tջ zh22u啃v$ѳy:*22R0~n8**JG|fz]ccgW߾:xξ1'BȑJcnz,XjUJJj5sf,ڵlNwՈZ*ON|rIQ|]O~e?׏0.n=+rU\\P͞pw^v*oy1wGy*+ՌOҔ%K&Z>-|u骩eڱs2tc$IU\WCtII&{V@:4Z*OU7.N&kɒ*) HQʴbE+5ztfNָqqz/ls<^G(5: I#FD멧+,̢Z}aStN9%YvyX^I7ꬳ*%%L㔔0#@܋{$N IڲhbCCF3d[fM6m*RbbOOT>:묾ZZhCTnk7m*k 80Rokim{ڊA?Yc9'Ct䈻w'={Jv$D YS_jȏwc =CaZ@ӧ'xmGGڸP>/`/l|{/KkjРH%'Gkm:&]w0}a=y-摒bxj'Ts>sc1FGt뽆]uV_yXc?9t#$I_}uD߾kiӟ&h-XKL6ԑ4 Tyj)u΁cfI3^aa[nZm ڡ)Stõ|a9RSmKVIS&(+7dD:f1иp4~|Qbx9.}F6"ªS`A-;het{_bEV]wھXWkڱm{ ~GO`+W֫Q{;hP_ڎ=Sp z/44\&$l\|]+?O?رh׮gSkVWJJ**jURRW^i<֥>=}o}1/voܷ6YL&)+\߾O<3]U.?lh}Ju%rJ_z$womo4/g҃Z`@fVyy }!_:5CHuUy9>̘#UW^Jұc6Vs{cYY6n,4.81-I>]A"ysяAb}oq :Vr6|IZuE]m*|@fHg.Ϧ-mMT`23w>:䰯ѣyzu^re+88 ЯхGS &&7`:V{Ө+˓9u̟ƶmG|m~~1Dr„^ALIzOO9ݫ=mU[MT?JKk H@@Hws_]woP=S0=Қ54)^D***D5Pӭ[yķgOPR{u~8x1Q5ۣ0؆nQzCCFiDzjJ+ϫٿb@sQw<}_ffx'& @lR-UEm>s.ϫj[uey9>ddm#oϐZ?oG(&Ʀ!CY\Zm~LhdMo\{#u$\vfyB]FtWHw?}tMoמ=%~oo;A"<rG4mZ[2O瞛N)#U=gJ7.N^wj[|hUU ʠ-͇ɩj80;זk@͓ 1V ܗQW's?bv$͜0ȆF-UvvRS:5AFƍƨٳ5i;0F؞-^:-H:Y#J[_mEGQsgWA"Ķl)2,͛= 6W瞛ѣcb\y X,&$͞l޽%ڹX{jc7\t8^sK{p'ϰ(Ć g4aiԕ_:)۷k7ꢋkcݺumnÇG)"ªãeU]]swFr#tt歿ڊ]{kh U[jDbLNM \:_NK{?u v~kы/jtQ0~tPRr!B𸆋:|KIi_oC||ӫWҩPKݕi;ױԿ֬okWp&j5sn=A=%*,R\]&֬ov/ hJޣ;;7o;-͵W@O5;C}4OzrQw\=9Y!zizI.zF;w5d2I_䵂g^I'ѨQG}Տh;/;>XzG3ۊ@qdl⫽rWA"Ķo?fX,oznaaUEڢw6óߴiz3l6nafrS'-;RwXxRSn#=//_}4<#xZ 64% ytjɒ>9d{}ՑUGҨ>u/+;\&}P,p**Z<{xzv_ {p?BVIwǂilM>:EUuu.=Lf`(M͎mGۊ`쳙ho^scչn]14'ۏZ6IEw}tURRp ^KՀ?OgVDh$9YCԧOv>,GvtH:=Z߬#'k͚|_!C4eJvtzUVҥuY}5qb~{֭+P~~ƍѪtjÆB͘uܢjmXtEշoVȕnִi:5A~X*.\={J3; 'ћoիWѣc+s:VI@sֱZ-ڨ#[iSl)RDDIV\].h#jȳ,3 jTGaa""Bt-tڴHvMhwܻՑʲnv$oV |a͞l{[VVFioQD ]oz%Жo3J7H\͟Xnix7z4(R n[5k t[uCmӃnytCrnbblƜ3Cu=Kӟ6© /짘M0:5Q(IwݵA?>UEjƌD|!w&-]:~]ӯ=LIIa:̾/iՑ4ꪼ9s۸P_qJKshxz| IDATZp.מ=%80RNmx5k t?E{(S7^#FD{媫s'ڷPHGzKu#y۞"uuXiۂ*~z7ÚRڑ L.W{Q3f$jDuP^}uO7=ݡO죌չkW/Qqq$":֯/pXuI}4bD""Bth6o.ҷ橦k ׬YJM %|lҬYI2$JvWor8oN\]f%kLᐛ7ՎVI@s0ױOOرё#ڿT_kXu+ uU+nܹ)2$stW͎m[ۊ`5xpN>9IaΝNqzzᅝ~mo^y:*22R0~n8**JKϘC:5HW$ DUTRRr;URRe i=[`zLcctn;3zDA" @ H$Mh\D;L&L&?&HƆ h}d6{ Ib O9%RU*+ZX,^  4lX4OV` ;`I70\=l0riԨCm 10zQ1Soip=& vXղټFkQx<ƌ)Thh 6w|zM.՛ gǶ*7baa59 Thh&!ápp(""xl{*{"G_Zj XNŕ)% (VXXvBCC = Ab**+WiiTVVRT^^Z@3f[(dh4fQZC%%NԪFGJK- 5í3`@7d2d2Đ#P@c#DDf{hZEz@\&P}O! qK$Y,vI"PuAbD?O'#HS8jjjrl6+$$DNSuuu$MĆAĆܳ$JUv=jUMM;;HlMobhhL&SϏ(`!@7%H,W CBBzM$BXXL&Q`.^CޝEÙ, KK[s=}4ӯ)ee~S,,5ŌRܕTJ\MMJ\1Q\DP>?|<32i_5ץ}νp|sz$5qz&|Ob@y>WQ{Z~CP\\Lb#""""zDݕDbHDDDDDD`D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$"z-X8qTe_RSSOV_~:X|ÇYf(((0zKioooݞTu㣲c̣fULff&RRR*/??"e ܼy%!!{FnnLD*| 222e{ϬDD 聲_-Zxx ԏƍ رO>$*+22R -,,PRR2D$"bHDDAѣzo߾\W>Ltwgy*}ơC={A?[nErr2jԨmbѨ[n"==[lAll, ???A/mBB_^R۱4۶mSk|ڵk#33aaa1bDꖟ;v ** W0j(ԪUhxzzI&FˋBAAׯ6mÇhZ4nhժADEE 8r6oތ/BAAA^UЍmJ>}@DaDDDf*جh*_V.@H^^4)))JDi,Y"666J{?]tK.)i,OKK+?//OFmZj֭[k׮@{ ʕ+hβuVf2v,M>}xzz*ƍ'DHFFɼSҼysmW_)iKJJ_i& o͕ QTFR䥗^2(3--MISTT$&M2AriVR\\,AAAJ=zkl[g""*$=.]W_}~~mp!ɓh4fm#((6l4i}Aݺuq!DGGcĈptt4o/2N<:t(o߮L"燐ٳgΜҲW03f|ذaoQXX͛7㥗^pbcc;w?{RoSNzۛ9s&BCC;vD~䄫Wb۶m8<+iF)~b 0>,j֬Hʕ+9r$N>]?Fhh(__rqUԙx%J$ZXXȮ]9tP^ILJJkkk  aaaJUVu%ȑ#Hvv6VZ%jZIS+iiiD|gϊF\Y?~#FݏK.U8( N:@w^+Һuk eRR^ׯK^ŋu}rرc#FСꕗ/FHpp~H.]DJ%-2?o<%MjjjVTbee%=(mlVDDT6DDfTi8}t rMw.dԨQf[1]\\  .Tc1J7n C@uf^*J ʏ111F^rEjժ%dΜ9z,M6RPP ۶mbcc#e;wNd[.YDHVL۷7իJ}Uwl{zzeԙM*޾\*ݮnB1cMr~fBn̹+`ԩ&^3ku^^^F<U~ϟѣG n5S];_BeGGG:t'|h_~Η_~ VSN_ǤI-AYnnnDffɶԽ^wVXSS^=V^]#GDDdI$"2Vȶڵ3feeϧzd:OOOΝ;Ux$''Wi]Vî]"==ݠ^y&믗섄%i.\[^n]XCŲeܝy"")) 'OݻiӦ2lgɭ!̩31H$"Wq2335 \]]KM۬Y39sB>Sziڴ^(**gi?gϖ qzעѿDDD2 Ǻupa\|Y Zy^-Zݏ31H$"zM.??9N*/_>ònԥ+,,m 11By֭[7hiܽJj]36˗qa+VE/**°aðm6%8D۶mv!11!!!GESUu&""DD4ׯ[[[ŋղ͛+pB/%OII1'N[1[M-,,  7ot;Hlٲ%ѫW/]Y?;pwwǹsxbOԙq‰ka?@N8a2ͪUP~23N:ʄ84~ ?(]bcc[YEEE{wWWWX[["00+;yn_~7lٲE={ cTT;f4͏?Չ1\,T$QD*?TfŋKB+(9$o} 2~SNdffbʉҥK?Uvpp0`>ccc1ydw:[n5?_f]aÆ 6(& -''#F[`gg!C{s̘1 ~OK,{VAcp1//o&ÕWeLD8Q +0`^9]vUW>SYp[s='.../ky7` +^X."2vXeV@yW]v@lmmo߾/K/k׊J(?̜9S/666@&_>bĈroΝ;bgg'dȐ!={lO_UԨQCz)oL4I֭+DR֭[c5ZƋ/(  W^ 򝝝e޽[o$V5͛7h ׮]iӦr;r䈒oر EDOFdݺuJ?C V^mt?.\ @^{5 jeƍruU|ʔ)U$;>*$VDDT6HQ)))Axx8NkkkΜ9cv_T+[7@QJ9992tPt}ioo/۶mSڵK4 Hƍԭ[W^ʃ )HӧKDD"## 8P233ED2b ^RUOs玌3 yw̛7OED$++K۷O/Hʕ+RTT~z@kN]7lP\|Yn˖-dee)eTǏF# 4cǎ)˗-[&dڴi)-""t]Ȏ;@V\Yf 1::ZfϞ-*JsO?Tٳg^zrI)..O>D}ef,H|zș3gEjժZ:uǕK.2sL̈L5DDդQF .̙V~{{{^M4:Q IDAT~Xr%<==oѬY3\n899aĈx7`aa:rHbʔ)2e ׯKKr磏>g}Av t钒u/,,̙3,8q"j5RSS N: UfjXf j5,XP>6lD6m[i&x{{h)sE6m4iT*^U/*UU7,ZXhrO<ӧ֭[Aaa!ТE ('L 'ADDڵk޽;Q\\|4 ut:uO>zej5 9998w`ԩXnlWII ?nd_Gw2_ORfRSwxgoeee+EҐA ܹ3NO<+t6ۭ9}hL^occ#}anWetΟ?7o"00`^{ YYYѣ4 <<sL,\NNNz III&_ammœ糧ot%e͌Z qƍ1c6n܈6mdsИܾhqqqi}||#G`ΝBXX֮]3f`…|7Aꨛ(?}SO!##󃟟׽z¢E0gۏ$UKw߅BBBl-,УGDDD 11Q/}FFڶm_~YoyNN[=ׯdee۷7:p|јQ___ܹS XСC8~YWL6l? yQ77774l?rrr֭Z ˗/N:FG~~~<1H$"1cO߾}W_}aaaz]-X֭֯_ . ::}͛71}tU*^}U,]駟O֭[xamm ሎFnn.Ο?V8s "UV{u PXX^z!""Xn`ii{Ɔ*_|>4/nVVV;w.]8p)))Xb.]mۢSN36oތ˗HNNƒ%K}vtYݕ÷?jZ4i"&L$ywءt\˗jOˌ3ҪT*;w(io.z:v(ǎS5f=/!!Ay8}ww; .]2@K+ZwSR4bgg...$Go~'"}XZWZ-U{KJJdѢEVmӦ^޽[\\\ V|Ix"fDD&~&&"rubcc K.jzi全($$$ &&VVVԩ4ibPfzz:ߏ7oڵ%/M6xꩧʵOƁ`ooQF{˪{EUt322 .:t?>.*҇UGnW^4k׮sqEÃH$"*D"нA"уgA"{B_}g^$""I$""""""o7%""""""DDDDDD uY̞=v2gƧ~jv;HD믿EMS\\ Z ={֬ 2;wDaaC1-- 111С6l)??^^^HLLD:upQ4k֬\y=<cA"=݋$L8 EFFZlɓ'e˖Jڈ$%%aԩGjj*ƎZj镙pi={T ""OVѿT*%͞={ &`۶m0yd)))q9h4xyyaҤIprr2;w~'OF``񈌌DSfm߾Grr2<==ѧOCYl߾}Cpp0J-ׯO?!44?3\-͓sN{z~G_Dڵ}TGYc {;w}#G0vX66{۱@Hhhz- ʲ狅h4qss+++ C <%]ppԫWOm&*J7|#vF#AҸqc u֕WGaÆI͚5ԬYSZ y }ܸq@˨Qh4iժXZZ yהt/888V+eݻL4IDD~' Æ 3H /v,O8::ʥK|GZ-ÇWeddgggqww  :u|ԕ+WC@~iٲecXWt1H$"zDF# 4cǎ)˗-[&dڴiFQT2`m5kL֭+"")d)""oߖ#Fywqpp>L\"EEEҪU+S?~\ItR 3g4$>ׯW-""t]Ȏ;@V\Y>}:tHDD Illl֭[emSN_َ4lPnܸ;7oHVV ٷoYcj@^ye;& 6Aa+DDT8q #3g΄lĉPHMM5iӦܹ3vލ[n)76EśV?GGG=V^&M?+;77SL)SP~} !!-Zлt„ Xp!| C Ǒw͛7/YƂ PNjfj,XŶmмysth0d"<<2ޘ7o"""{qqqXzr)899aĈx7`aqk#G\pc*%%֭/-[닥Kl{dž6>QbHDyg 5jgȑ(((ەe֭噲"Ƣ{Gqqh4֭q%}N;&O'Nlmm1c TÆ lٲEYZ!--  ޺Fs8y}}vܾ}cƌ1erZ67ЩS'L:|^y9uT[NyǏ7+2N:2dWg2g""bHDDKZj7oVN7m???xzz{[lZ6YWv-n:<Xb|}}Qn] 4;(vrrR͛@~\jdwӬY3 --ͬ}jxb8;;+]w^&W---_֭[Q>رSLA.]PV-kf)];6o`%4ib4c4g"">ݔJW\\l2n.aѻwoڵ o4̟?_IhCPPɲ4h_ ヸ89r;wDTT°vZ̘1 .оn\jRSSGs W~~󪊌 ڵ Z>'Oشi&Olnmpm|weϜ9 .Tf[}WSO!))Ioۊ5kWR0Ŝ}&""DD Zw9PU#Gb׮]عs'[[[ >\Y߸qcX[[,IMMŝ;w^cqx)'''ݻN2Fw a׮]tC ֮][bС"=z ""zy322жm[˥nԩShԨ&M~~~Tx{ V QQQ>|xR988;wŋ:tǏ7JVQF]߫W/8;;HII1%\6uвeKoQPPqADܽ-۷7h(NQvm|[bŊR$=] |WA=0gݻ;֭[=z`ݺux'J]fM 0ĸq ,X֭֯_ . ::}͛71}R gggl޼˗/瑜%K`ܹ2giΜ9<%QxpyV{TXX^z!""Xn`ii{mÇm۶5?2aIOO73~x YYY% wl۶MH-رCԩ_|rtw={nqqq1ۓO>)/^,uD(y޽{ W^bgg?...I|̟?t򼽽M'FR&DB^bSFFbccqChCe^ؿ?n޼ kHJJ/6m੧2씔(**B.]L03U D""z$17nDRRٓQ8)=Զn݊xlܸ}aHDDTx%jθ~:6l{ÃBDD WqqqBΝaaI$ßdA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD`DDNQQRSSaiiƍҒBDDD ᒓ3gڵkpqq;jժe4W|\~;vDFFͭJxBCCѭ[7v|5:}4 ?jGh4mڴBh"lذ(**h44m{ѲeKjwa;5Ο?++rO|rU*4i777#FJbh׮233ho>4nܸ< ӧ1|p,\G}+VK.Xf <|>vB$&&"%%͚5C˖-hʝv}}}˝ń[$@ӭ[79yA=z-?w9rD.\WnZZUe׮]JvҲMq`GU;--푯gbbR ݸq8::MX[[޲5jw}S58荽r5kV~~~>VԩӡC Ǐ[o ݻ7:|Lƍ2m4gee%ӦM7n[XX(|899urr?P91>JMMBCC*8pڵ͛+5j(1c:uO>_Ӗ:UEj5fcǎaԨQʂ /^ Crr2>c //?_jxƍ ݻn݂Yeb͚5z o5ja#""6l&U|,##m۶ŧ~vvv(((~ ܸqE"33gč7`oo֭[7n3DzKFKJ~~_~͛ qtt/*rss%;;ѣ7No@L򯹒hNǥ^I8pZjə3gLKNNV6><@Q0a+]esWIvǾr@\\\$##Wy>fSV^-%%%""R\\,VR.>]v2_ys玈dggˤIu7nd'J"=./ϟiӦ=ҳgOl߾{F+s!]M4%K={OLꊷz p!dff%Uvlmm_+a^xVVVv^u6:Ǝ;fBppƍ3fÑsue˖V96|ܹ3waG=xc(::n՘8q4[F^??(wٷoK/JoVy:../_Fzz:WDFFBѠW^F_}v\|Z^^^򓛂DEE 8r6oތ/BAAAAuǎ;tԫW^^^5jɇ~T*" 6 ""5k~x>|HIIVEƍVZb+8t%glRtlٲʂ3*맪9n޼<@fL߹sg.]ڵk/>}$99 xMe? IDATeݻhР ]*eܹ?3ѰaCtÆ 3q4mq֬Ycǎ!77-Z?ۗZ犎]]Nlygg ]w[YHHDFFLz;V 9c@DҢE 4yLǃ9y-_iΘ;qMYZHZׯB6S} cvyo7]p剧-ZHNNNo7̸6v]vIڵ:tVǏ|lʾݻs{?,Y"B]f4իW>'Ϗ!w}';w,}β8p@T*hZu޺0 Qm۶|V_|!}*+//j u%44TFweI }vvv@%((H>#8qԫWO)O?-K?Tf+W_}Rر̙3G.]*3f777e+ԟ_39cǎ?PF%@,--%""J*k3>էO5oUV@OntEe{۫sbcc#ӧO0? ('oW?\9`pb;ٳKf͚%cǎ *y_x5w \xQԮ][&O,/Yfgh;H-9!!!!Һuk nnn"!!!RXXX-AbTT7ިб/%%E/_^^xyy= ۷4i? 1bY >,M6UO:'Hv1A}VaP&?Y6mHP󺇭MA"C/uQ~4u[Ƚ6n(qƥ޺T K.e~߿ZU')""B9@-ʕ+Xs1Y_OOOWfϝ;'hޝEY."B .KjGͅr=ojeZ:zS]i954L7\pC(* (,3aa6~kyy}?cjҮ];%K_sѭ~V>V7_|ep^pAɓ)S,nwy|===,WԩS-ZdW_8mr [bʕbر tH-KuCbDD8qc̘1cǎVlHHvn]%Zh!k܆%˅s[. :V/Z~ѬY3UjSQF0,==sٳ5*s:^o>26m}||J^K[#{{yyARUMz87Fe_,~a]dff"33AAAV;_6uj=о}{ɓ'mb}M>|#,,LDBȑ#XhڴiSÇ,oGhԩS-.àAn/8p(Ϸz&M0k,{pss_zb֭k[S![ظq#~ǎ;䎖4 >^Ze[mmw[9sK.},ݷzr!&&V/kQt|wx3x˗1;//OequuKc^KO>O}Y+w~ zZm۶zU{{WM=yyyɽYbƍV1#!!ϟGdd$~Wn߄@HHHuqqq~z^GCo~޽{eA$^W\Att44?M6׭[!|||Y*o57F@@{`I3//:&NС0yd 8-Z2oM~la{trrBп9mmYfWرc1~xlٲ1~xiӦhٲeGMem?3K)ST|,77ÇGLL ݱdI&x6mڄ `ݺuv8 o?S|2ƍd!4.]qi}ǘ4iRatڴir-Nu4o޼ζ-cرsrrHU]m۶aFrr/öֲN UVfr?ZcggAaРAOqa꫸r N>e˖aܹCqYt vZ{YAyU.%OtѱcjO?z صkvh׮&LeךPS۷&?CW_U̯-lmYfW7|#++ |{x욎 ׯ_Gkˏ+W5%Z =[t)bbbV{nC3f ((ɓ'_5߿u0 7C"=!֯_ӧ裏ꫯZ5'.\ Ҫ/ʐ$ Ν;;5G%U oe]#""[nСt: $$׮]üylML!ut:Sm' OOOY2`8p:u}R!SNԩ.]M6[n8wܴ/5X2@hZӧOرcm6l۶ QQQB||<,Y_ꫯ&m5V'ؒ-?O+ի㶢&P\CU[ߗY~k5jT-S_~0zhXR޽1bܹ֭+m(lA TL6 :ÇO?TB`Ŋ~&䏋m"..C g}Vo8wnݺUxDSGurcKMJ254}lu b>}: Ο?kbŊƜ9s0h ֫m]~Xf׬3gbڵ8|0ϟyV\P*rkU~DDD .s`ܹ7o45:b.,,߃5O&v\K/N;wR@Æ Qxb?~7oƙ3gjul>|8KM8M?<SNYG!o=k:z*ݻWiXoNk:鈏ǹs_mq-pU"66pS:rAUIp!:tw-S*ѭ[7|x"4 t:f^eVaub]eBaoo B6==]k[l)ה.LeAy?0okyɑG9rD&ty1$cn͚5̄+/_^:\aѷo_@dd$.]dq ,, ~9ښZ@ 1bDvzj|WfݻwGFnn.T*>CbMŊ+L=(dSGK=z^3uz՗2ޓoob J5OKKèQCT*kcWXp!g֛W^y* oԩSna 'OFJJ juvvvx7˖-J#0=*W&Pƽ2/^w9rd###N9J2g׮]/ꊗ_~AoOkhj*"..;vD>}O#++ [lAZZ V^]lmԩظq#\={bpuuŕ+Woҥ Ο?$,^f?Tvcٲeֻwo,\}n݊GbСÍ7~E駟6׻ヒ͛7˘0a^{5k/_Ɗ+jѥK''JaaP*@{.5y_~Y_vټ݅BʯZVDEEUjy?lX>}yj@۷Bd%-n[___~zX6ήr7t">gΜ {llZjjjYnpwwM-kuڵkk׮]Ա'/^,~ xɓ'+4Ϯ] iӦdži>| ,D~)<==KJo$⼫r !w}',Nggg'f͚%ͦ)xy 8^zI //R&oETu͘1C'Nw… UGE6k6{Uג%K*4o)3lr64pBegO?5}Yc8GwcVX^^^bժUV͛w߿HNNL![۳g"##jXJU:"22Ѹ>|}}QFɵqu%!!vB||}0|J݆׷ pݻ0 hժZjnݺUݻ#&&-[Vᅬ%K_~8ri&\pǸqʽ^Ulر7n@JJ R7m۶HKK򗿠gϞܩГ> Ȑ[o!ǧN}UJ?zwkvv69˗/#11[Fǎ1`:2*~DEE޽{h޼9A-ɨ1$5 Ν9~xHD8w<<s'r}݈f"""""Ī:L'4j&MЬ=<=Y< JBH IDATFPU04P)?k`0HP4$ 5ܺuQQ5z;^JJΝ;jU,鎀%I.I}/ݺ:١E G~ʉt&uP]RήQ*88P(JjjCRAT%P0TP($a|6kQ?Éq fhHUuVݻؿrpCo1X?U>+JEDDkn?DDDDD }&((h4hVkѨR;jLTB;B޽Gw|i(kT,B?߹ n`.P6[aZ1,8RqF.#=ג"""""2|V…D((jjTꢐg썴PB~yy $J $@{{%BBS(f㼔EPPgQ)?_J(ãJyjO uQOSx ZJ jBaI w=ڵsAF*K̹8$]0fzy.nLC~-Z8Ak 8r$ Og #C ww{/>}mNmٳ^~=o' :z$Jo <ζmC pk\oݖ?|8  ֲ1$>nXg s[XHIC5]N'Ph0|}t:B fAUt[`FS`T3$ Z>}6/5ʕ, KptTc/7FRRJEF~zZӥwN#3.. ??Gdeoܼ~G@ BCklzvGj><GfppP׻e%""""bH}cm ƀ jRnh٩&hU{XWMnQǏ'\t { 7/>| m8c^){@,XS7q< e߽;Y]k0g/Ô)G;oh>Ç %%IIy olDDDDD V+ oh ^RDA&Q6$Ɨ$SP'IRh|eD%tm֬hեkP K]w=\R?jI;|q7LpmmJ?5-uS{;;%Ly QQpsc!-+Cb ``^RʝN*`B$I0 XAR`,9o[z5q1d7KvS0:4ANww3x 22gfȯh.=[ѲtFb(zq 4e%""""bHa͚5YEMCKDJMQPM=GQ$c-hƯxoF[3=K`s'xom6ޭ[=Οo}L˯ [DVV!ãЧOs郐fhܡ^ iYk_s={(J45-hro`h^C!hzZ2,Z741sf4wW1aB+&h< {_ñcwq]@˖N2c iYkXv>dQmB苮ETZXJ^s$jKESm rXlnnmZXFT:)|A pS7Av.8\8z BTT*pL:rsu!Vuw0~|J-wyvVEM-+Cbӹs&A 1$X*UɐFxD]Q8?͛D㳷<=n,3\鎹s;Tik0zF ݻu-<|?y=z4T-]FFEM,+Cb>[T*%=4@`0D ¢Q* ~~iVT  L]+ 2^ooGtsfP* l&8 Ǝ=^J/S3X[e%""""z(H@- $I`0#6!wFcdsRD@JE??wFǎu!(,4 ̚U@P+t'(tAAMÁ_ ?3sw_?OnBΟŋ0wӴvuùsqc"n~gVkɓ2 e_hȱcwfu4nsϵֲ1$>ƍ님k8{J ES3PBz8-݁MqsRcH4X !!mѥ?4ܔJBBĉ{ƍh- |4>á( }|N 끰Pw+_΀'…LdeVѿ\KgÇz:<ܻWWW;8t@TT㳑=@ǎU^ĉ{ qĤI6YV"""""ؚ5#/OoM%C) jCyP俻u{ 0lX5cF"""""OO4:]{yP( E%Th (M4ȵݻÀ?'&$ɀcz5( ,$.M,nnZ6ܨ={Oׯ||yCbCq9#Gb+q]&mѵS޽z DӦDDDDDĐ$&X:|ZDSH4 ) V+Ѻ'|ѱcKFPPGzF%"""""bHlpn#66W&֭{HKăB P(ӠqFhM [{⩧Z 0ܐDDDDDĐ8͛wzx0 @QNh޼ J%k! $* (Jn"""""bH$"""""ˆ!!*BM@U_o:\Pe˖1qD( !Xx1bccaooWήAozz:z سgvԩ Uh:={gyk֬2]xcƌ:u 5Vŋ<_11$cHLL,s7nСCXbkY j=|:{Udff[6&It:]ַnBnn.` r;vbbb۶mke*,,$I5999~bڟyC"=!~gT*#)) ǏǴipUqFQFЫW/}m6̙3_u&ΜǸq-ZtZV[,tX ߾NZEHIIK̆СCP(6lذa~wb…f㧥a8s ;v,4iRrTfx\~oܹs{`lTV7zX$''#-- 6rϞ=h42d8;v 99 Z<4xyy!((/R#,KPP:v˗/c֭/r4uzS8DGG#..pwwѮ]RرcÇN8M6֭[pwwGpp0MGG:/#j{WsZٲ>ؼy3ۇLhׯ<Ν;{n}EDDD턋B5x99yxb޼?ŬY& Ih7S.))6y߅  ek0 Fa6,11QjZH$M&wРAf~wY^ѼysePiKߣ o|ӧ[]'55U~"""4^^^'::Z[E,_Jǔi;-]T|G6l%I?ĉZj|1m4P(,.Bf*5]ll+5_Sm(q:I}\c"eAuϴ"&&lCm/lD+*v\]{J=j ~=7n}- $!P(RP7n6]^z /CNзo_#Fz)lذ-Z0rJBP`եo˖-$%%a6:}+g9sJ/'$$tJ%V\Yꞗ͚5Ú5k₼<Z^x[\4""$&& xK h4\vwyf͒|>1_VY`cpΜ9f0`xzz1|M4/SFDD8bHln4vPRXEvgڵlܾ|ht02̵rlܸcǎ||`e_xO:SV}'OdꨫiӦY|$** УG#G|%wcrYfTR]vE\\_ni޷2ڶmkuk=7'Ҧ?-1]yƍj/_HHbbbi&kMN0J7GBBΟ?Hy~܎emqV4Z. '""bHz+$V:ddC 鐟hBA-ͦW_U31o,1Xf$""DjFz}IAVZ;@TB$h((ȃPB{v^M52l2muVFeO%I*q";w.w|FSe{gG"99>>>rS͛[m6X^GDDn*wХKt!!!v͛W+qǶ<歕uq 1$Rbo >!?_Ba0`0@ ЦMs MzܹsuV㙚)zueڶm8 2}Yg֭ѫW/R5l= j8$""zҰ[oGxxt볊@υ$BEƈѣnphԩSVB̙3-e@;~86o,[uz9ݰa lMMM>_~&ZI5qmuu 1$R31whx{7^U0Ek´i޾5ӧ8LWwںZo߾H\t8<@XXmv( 8qWFjj*<<<0` M}@``q<Ȃ6:QUxo`0e DD̙S` _űAѤIJXx̞=6c̘16VlqLIcǎE6m @xxxuĉ '''7&+ u,S޽{QPP`6.m&$>cA""'*[p<^BB"$c^Xl&O8`С p+W4%BueFvڅ/f7O*FUV!44qqqر#郧~YYYزe 䛩- ƃTWөSbƍr zɓ'W\oׯK.8ETTͧ1c &NX]vRSSz^EEE +֯__m,K"J <==$Iƙ8q BCCK O]uww7nE~}Μ9B!bccRSS-nӧO[]'Z-}U+ɓ';n]) |g]v'|bq ѯ_?~ cK!뫜3g ++ ӧ;;كHhZ㭷޲ hܿ ĨQ&!!vB||| x>>0Gv78p 疖077ǴiӰ~>( X3'?G``  ֯_D\p%%%h$%%yyyHJJ¨Q:-m"""""[AiiiX` 'O'| PTƤI8u.\'N`֭?/^cBЕ6K$_~[nԩS5jkkQ__e8qPQQpQ]]h1X\p!AЙc7U]iݮuvS¦MV߿p%RrP[[+&&&!444)))BMM! w}WAHKK -n @XrPZZ*lذAo|||Cr }=bccM~BĠN_hh(z3g ++Kg^ Æ Cuu5?7m"""""ۉQDDDDDDd,""""""bHDDDDDD A"1H$""""""DDDDDD. &L@hh(RRRk.䉈n 1""{쁥%PYY R|;KH]9D񿲲2#//5@DDDDDdDlL#`cc  &M'"""""]@(gnn0>$&&&UUUܹs,}""""""#ecMMM___.%%% Daa!kȈtٝZL0YYY(++RDYY0@$"""""2B]v'9Ǝ+w^䉈n nR1H$""""""DDDDDD $D""""""bHDDDDDD e2KD5,""""""bHDDDDDD A"1H$""""""ÃDA"] %KAbW%p=` *pX:֭;ʺ.PAA S7uK{oɓ9n}nn6xɭHN.ea`>ٓ7=L??(UU]QDDDDDtP\\{^{ͱ7Gqqd2 JA|.JR :hikkSf#%P>4R $Ils{$xxJ%緷kccſ,NeveўR-kH{#""""I;@go_Ol4[N9Vp꫇em,СЗ?~<hO_}ΜC)28ry-8BCן&Zk{a׮_~N~qqߞİa=5oO"$mt>ӧ_HY諟یmty?q-ΝO!8/t'DzeA*@DDDD =6|K'̙,]kF sS7CyP(&ѵ_8p |З4V:ߟU/X0?pؼϿ >>c}7 CK/'~l4U [SQQS[|R!^OXX(0{2e#rGkl 33uTG^~ؽ{6vc^AxS;+^{`޼_pt.^_{{sԹMFF1kqjRSj퓾ЛFzz*+PPP"[cwo"rrG -p}aX`N@rr!^}u'jpAzq׮ޭG"w7wԩL\mB?Hž= .ʕT ZwnۣeaH4o311m*o+󨩩ǒ%#' |jY@DDDD.W:!>Yϯ.&&j$'7?ee5HH'ѥ…<T* 8*c{iZ_tLL@߾kWv#&LAX;ƌ l>WUաA)u޲WT?m四[&]^^ 44MPQQdz1H*ضJKkffr6h ѥץ--MQWנqW[]]JATTo$%`?|_dRX1wCRqeYs~xδ[*޲ps1~L[Wn^u_V%pv9JK?8hP71(/_7.X.v]ĢEp|.]4n`xOwkpʢ^%"""""51̉_W^-09{Pښahj>. =o Xjr8t( ؽ[)R L'={(Df4u,S?QDDDDDfTwkk0oZO8"ꔰTw"/m:!RR `^۩s[R;f$ļzؘ!11ٿ? ݻcqL6v옅BXaƓ17>I6ERm(_"""""RgtM B PVVӮm:.&&29m{LM66fx1ZnRy\sQRR aÇ/U+OW/D""""""HYDDDDDD $QR) """""kA"`R """"""u(2H$""""""1HTH$J$ ZDDDDDD,HD""""""$)5 ,""""""0B$""""""+U(pt44^E] VV&Vvyy**Yda!z"Ao>]vJKQUtſkT FQRfZ׫o30557ZuNss۶nnsPgH77T*&"bغ0{|GqU< *p x5mTs77sب:VT4 'Jot{z>Zv-v3N ΀:\r7=\77sXX4R f Wdzrx"""9RLzH6CT'ԩB̛wA-1yx, !Zgڷ/swwsLI!>Vpr2EU99U((灮>$@bo $]ڵ S`֬@u}{ns-)S|ű2ap" _|%w ? 8r$_#I~x/`hw̞NO_P(x L [[ƶ㣏.?79tYӧuw}DDVbg{a8OXYi^b$$oӰ{wAid"MtX|p  _ ǎ?^d~.l/<!#2~ Xn(M;KkQ r:u507#GwƏıcص+S{טҥ >|nwwsyvѶRL(Gx'F٭umb"СMuw#6bd_R=A0vHF8rsdZ%vF\\1d1wt4#U+ŋ8}*jk!nHW,Y @WDD PdoRvmFix`̚󳆏˰pa,RS5 Ò%m LW_탓' Q^x^ ).]I8p O낮+ 3;vd? U"!Jl!C_y/.U`Æ̞93;` :5f ',]:66&cѢ̜y(ƇK?kퟍ >dx7`0gA!7*FWǖ-ZuoF!*ʫ:X茶矹kov:H?lt'nö= EE7F3]keZ[99U;7))Mx1d{{F]c;7v9+uW]1A] b>̀>!c,DDvw7ݹ3 kķxѶn]x^L񁛛ϫWkSG̚uD "-@RRf<i˨+`ؘP1i"+ [*ΰaC `VM䓁b¤2Z!&?y>F5d.Gcزz,_~Q|޻cگDBc~223+5^{뭳G/HBUU8;պZd9P}yO`tDDt J 'hdmmɾ˗_@EE듓a͚xȑz8lvuѼ^9ߦaʋX"Ο/Waɒsbh6xǨW_%l11['0c@"W]tOqRӅVcՑ  `|μ:X0ˤI8yGF²efqn[Ar;եK㏜VϹMԩ8}j(5~Ļ~\1;պQ={Z?UU5`Æ6ld""ċK.QPTXooKqD]JZK1VkK 3j~as!s犱eKlI_}:w۶ϟ{7\\ڔF߾]Ĝ*~mw~Fs |u f83`^Ai~vIޝ_g v;KVV^xvpG|Y.KJjm;n1;պZeKޮػwgk, 33;]>_ kLAL_L;bq;X| /!CLו>$AR.NMo޽&$4Ŧ )''S894ljB!ŀxm֥ӚZ%+X0ֶے:JJt>KkW6>|-:l<ݍssl+ܔƎZwQK Uk:_4xM=qMnnǂDg_mutܖVu;(J}}6rzTTPW8}Ǐ٢n̥Knͧ7tTxƵL&Ax=m //Kx{[GKqfζ~]\\WTk]u,kmeJ IDAT' =sPWQ5_vF'-$vlyqYVVrXYY9Si_g-+aР ;GHO@bbٵ N[_U_vTڭǂb,K۹FCbӨ6;?J7?VV6w21H_|˺XoOqc 6nL}:` Gu;Գ\zxXbڴ]իX:oxoٓS|_EES[ܽ)kr7ҥ}_~lm]w Cv]},[ۥ[sP{88(d2 \\ zޣesiMHDt+zM]QUՀGjUCg?Cכ|}|гu 7CۥsLL$z\1qЭ^/wQ{D~]%7en;EE◒B!ţ}ϴi1#Fvx>ޖAtƍл}CمSuȨė_&ϟx_qqⅇ\.Թ &OnZ0`ƅFwZMǯ<^3=¨q2!Cqpq d$ Ѩrfw"[v/A-:k#0 nj*AU85ou_j|U2Qc̝"^]GoucƄ\P~HԻmu ڵC`oB!Ŝ9A3'uu*HFڕ-[:u۳[~aժx,X:۷Faa *+e)_S4bӦ8{s99U2~. T*.@}׵ݑ;2QTT+v~<:UOTȨ3g 87v9￯ &P\sPgh֢N ql>]^cuH@TzՑb=^.-(Z\Jfw"[E8=vWFuu*lڔY_듰zuڂ"[sgO?˗o/ޟ~hIIe5D fXUՀ5k?/LG"Qx Pwk{$ޝ9 r;vdb޼SZ57oNŒ%`g4]Ю::e` wwsH>7w9HZ*99 6bѢ3FƟ X,lI돑B̚uTPDDɀrf||0fh%._DFF~=h^1ccwws99UʪK"l""p睮)jkϯALL!3  L__+xyYF*:t}J0$xQ? "va[6Q 07{<0| QUDZZ9 q1F ŸuYm0~׵ր,[v^cm7΍aPg ooKۛeع3軙gO+L6ppPط/Wc۽މ$زezR/5C5H#"""" gQ{Pwi;7F~~bXQѠ1H$Ljj9`i)lt :mZqinJDDDDƁQ(T)HO>{Қ5o@7ߤ$Q98ba##JZֶiFSA><~!GDDD nEf=/k.' Vc\D"yxX`XxzZr!#'O&""""DDDDDDd8q 1H$""""""m]N5||3g`i)G` JU1BBlqj-N,dt#WWs ߰P(>)Xꅟ$^3~'Oh{{|}ˡXSj$ojH3Hf照go|^Xl;iĮ,;c~"""bxɓSifgN̬kfT*8~ϗtK~ y7J1s޽mQWB\\ ˮY.Kx-+X*R)dI?XaCHJ*DEyb$DrC#=qn䧟K:?I޸n[s犵 ,]ڔNHz*1AUUΟ/i1E[<| :u?| cHWۗ_?-noLj.UU^J@z`_@* -gg3xHI)NJq@ /h/9SPVVŪU(+ǀ5+ pa,T*/jZXq{d#(O?>}ao@ZZ9|]k"""bxC 脗^ AFF%~5^^燡^?k^FG`0H@BB).\(AXNèQnxz/CCmފ@Tqd!zŘ10/pRc9"#`ggg3(Р^{} >Ja g=0=&&RΐTߣ%"#Z e2 "#`ee}PH_S4uŀ=uuNɩ_%JO_?\r9S [H'>V=<=-`j*)TS=..Űa.-5+WZch7k)SΠ6=Jzƫ ?t\:+ =*9=fSOEwws|p88"5_ xq?TV*q`^W_6`Cai)x#=G`gcѢxyY`@^;\gwɓ𛒈A7z:}Ͷła^O 慢sٳE]|3ygOJ(/^/317# 0ma͛r̙sLhN+V Bx=N/Li{6mJ_ѣQʪŒG.~:&&R,^|;vd?|ohK4vŜ8᭷.wW_Z8G.`~;/_< X0Ç<,ZtF 胃ma0sͻ<2++9||pR9*+i=l/DEy!1Vؘ`˖ر#Eؾ.9S<'NƓO"+ %\+!2 fx'z~~x(( ӒH 0e/ qSvwc;pƲeO!̝G鉹sC1}X~88wa 68l$~ŋuyk>,o?9xq9>fL{\,""" [$cG&pw'ab" bP55J,^|yy2=zXѣ׫gWP;DF:i^W^9U'wpV׸VRR T*=1=jjuk:6nLѸPmO]%}} %$gܹbq\< Jܹ1b ֮MGEyҥ iRڕ(,E~~>4fH$98⡇|QZZ?ѝ^Q_k)K0gNxbXGEDT68y|Q @Xu=geUjў댼e2 m~m.A>4uu*T[[ rBjjF{dc:׮.57nLDS@jQYـ%D"""IjjWim۷ؿ?GJ1hzMfh\p5wx!5ejEYJJ=,:pa8\'$hmO]%}}fٲZK ޽mo_Ngnn5hhPoT? ZiglI$ddT?SS~2^ys*o8Qv}B1poo]>vv xzZ ' qqGT:twiZ"@"Q ;絘Vm8Qq 1c!?轃eEZ PZ G] e05WTFS( A^^]ǖZBeeimphcc p=$(/GbbN(ĦMix׋:#r8:"'JF9sDG`XaXyBd9ݛ.@޶J%-jܖDDD (գ*9suJb<4{ŭ3-HDDt{WL̬Չig2l-N->d*Q_•+5pt4ML):bፓ4]Țb L#VZZ}r1gQddTN!uuimRgB* gn.Ë/੧PoyI|`n.kaKukzݍ[[{(LB1Ww%mmt// R<;Hp@H-/EZwunZvcTb䑞Pc:"#0{vs?r3ǠT %J%m_CeW1}`kJ%u-`FDDD ގ e BqK/`(WeZ3exǮQ.kr J_3!gll=l' 5 =m؝wo[ 'xF ‚apr2D"'yi.ֺhkڡ.UU HO Æh}W^_kگ֏ !!3'HZ"l~7j\ڤ{.] '!i\0y`1e EbW/[\RBuJ׫e@9{?d2 6nL[}`ƌkPIʮ U #G^מyg~¥Kn̞r#<2P6ׯvm1z֝eSSmQ2={*6OG*`hw.i%""[f۷gࡇzb0|k22*f Jvm陙ɰa0lڔJ![İ`s˖4L샻v [0b+}R X:i3NCQQ-N(Isu5Ӹ`lɓ<~:[!3 >ƹs mOO *pUYq_%Kad$$ SG>}7gLOŋ% úuCW(,x* IDAT1?E寶V)^{-%B;]1}zjj%%uػ7'֮QRR~cYOy8~q|6HN.C@  |C;2탕+ϓY k<z/d`>?v4}ȨDBB)\\1zx[8ff2(]vwc }L* hh 舔r|yǧN싢:;Wss9 pĔ)WK~hc[/\(њ=58X=;65bٲ;c IDD x)z(~/ sADDSױ,]z^Sd^87/T֭KW_%NUUO?a\4`7N#!ic 2s6}Ɯ*Pc>>[,Z񿘘BFl-Fd%9ƌ;7D|^m.cժA,^|+V 5{ t%Kpv6ýzi\` eK*~:Gahݩ:f,NFw>gg3 /^Z^s,񵔔2me") Sju۪Upv6ȑeZSĚ5ؼ9͠gO6LA^g1t3yz(bcUvwhT?>l(f ̙bC:V.#2 #Gg{iq+W^Ĺs_];ژqr<"I U%>A^ppP 3 NjujͦM#bc@uuGp+_\YQ/m^l`f&Cbb.^,iumnkkddT[ew((ARRYk{-w""h*=[j]KK9 q%\ѣz$][/R@rrKuJ%86i@bb˴ {{JSۣW/[ːS#Gۼ0L&w 5HI)Gjjؘ`hwH/ܞ물;r+-YV-"4((Aff%Ξ-nt[WhcDDDDmQ̓ĢZݖ,""""""bHDDDDDD [S\\{cH;DDDDDD -,,""""""R,""""""R,""""""bHDDDDDD A" 9q 5TU5,""""""   eD""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""gã7S!tCzIbXеk[t]uqꮺvAQE@TjN$H2If0׶mu~^xr5kV7hٔ)?j̤9~|wCi z=;ۦ_ŋ,VN3h̘ΒU[:zq~^ר{s֙8^zi>hx* :`7ر4irI[VBBD(/  FEDDQ9O>9J۵bn:4xp[ QG饗.ץMbbcafoΝGԬY] ^G'G)<ܬoM^UO<1Reҥ;jРW/Rvk~yW}4ƌ,åݻyj7ӯֹ6jHW_m}]ɓ]j(Fzg`5 zaѮ]Y㎙JOo+?[iڿ$%>:LeA~L:tr֭UBB]_4lr8\k4ujѢmzEWeߊ;?ڼիohй6s-ʿ|-ZtՋTQX,r8jpU!FeDY6޼6lvG0I)Д)_+/H]{mW1c:+2*GzORS4uƍc4th2{stsʾk7$ȑ|IᇫN9Ilwi:4,Ԙ۳|HEEEr8r8r:EeOuȡ7O撤M+993䶇iٲTIR^woڱpm/OUjj$K] E.;[qV /$Z74PltfáO^qg1sig֡ezԣGB[P}cBQH߈䩣tڲZ9$} JD2*}9PA&=Oلxeg*~ 6dH; ҮN` }J&3x:2ط= @H+B"*a^=:4(uQÆ8!s&%ng0H:5ӵolݺ IRM_J:4OԷo %&6С?Jȑ UA3FDX+W(::L-^ͿlΜdI^|mkK8mMN~x>:noiÆLĄ;~(y !vmns=%j֬m}[8i~ۃ??EGpEhĈsh͚Ӿo Z ?Lb4`@+u:uu`RStN:K6*ʪA*1bbthiT9}Ȯήp(&&FwllL&!xvD&D!P6Cj@9 gVd42 :pRbÆr\jٲՋ-V\JLLa@HYS۶^߻w{IIM7MR߾c2ԸqIҺuk$IլYZS~7N:eڵcwIa@HY}S߾^9So2/=Ğ={ժ<^M|onC֭$ћׯlV.]i(7ͦm۶8TT[ux^:Խ{/ օ5t^tԡBrd0Եk Jb$oڵҋ@7o  ˗%Kk߾tEEE{0aVkoZ6$j֬v.R&)hB\BfYRaafBR5?Y/Knn֬]4`EX,A-Z;k׮Kvbcc+Yv]LFQ]4D.K?-[}2^jܸJ#Gk޼9ڶmԼy uM_>FFcſ[Qju t}|ۗ}2[j̘kԲe*Ν;4\ڵSA}q㮓jՆ 땝jذQ\e799IYYG㏋%I맟~_YvخjԨ;4{JI٤\%&vїU!/OyԖVYtáyh:z7nc'\zJO߫z?Uz̛7GMՎ2 ef}':]LL>lNfq۶ojʔ{׫W͛]P綨PO?{9Πzt%;JYVfj /l2^͝;;g =CzT^9G}Hsz;hJKۭE~Vn=*SԎCK('N_)SQݺqzgtرu"""/k냶/OyԖ׭[#y⋹Iڰa}7rf>KW>:EI>%+&&F111ccc+5GHblܘ,q"<}27FNC'߫.]n뭷^նm[q}'[:NzD-\YjР֬Yo͛7iqǕS[hgLLƌ(66V͚ȑe)~m+ү_]pթSW7oҜ9nQY2>~REEES׮ݕ~]۷oӚ54sg4fh bъ˴lOZnO7ﻐn׍7ײe?I =z*66mڨ窨P/}WmBʳ컔PCW6t9 Zd>C9N=ò:r>K׋/>G;VTTTCM+muYy૏P Ty>sӦd͞oƍh͙3SG-\_]0j^r.OX :JR&_XXΝ?z*IU^UTTM}≿k2z5i=~ǺᄏW|o=Cekz/Zr_ĉ\BV/ߋo_G%ISIL8_JHhV:9t9_5j_>|HY6M6sZn/)6iso4jԥh+Oj-IFQ>G X>a j$''IJvkҤ땖[M4T''5t-]DԩS몴?ϟ/D6rW$YJ7|}ŀnjV78NCo^y子$T[.N:nU>ѣ/ӡC cvmNVM>**Z?Yv]{5unV\)\IIkCUMÇ}L֭ueWꭷPǏ^W_}rssiڴW~8S0qM5(!y׏>8 JRFKEDlݺY$_zVvg}q&8gX,Y?t\q\JNp" Pl6%$4 4pE5Ru4hP:镤 QX-Iϕ$dP| _6dU:u4~AQΪ)i䫤zkݺZg$;&]|4m[\÷$ :\ӦȑuEC$I))ޣ,-{~~}s/VfIjӦmܬt:PL[AU˲ufNtO떜$IۋyuҌiƌ^*oݛTƯ$ȑj;ͻw 22ȑ!vЫN5m(dYvoHnU;Ğ&*[%7 =%;ƴ+yRR[>vv)I{BT#F;wH6l5~nV\)۷/#5U^)I/z_2 )~kU˹<3 _sVRNVyCܨ IDAT{ĚL&sMuISNNN@l;wCj=pifKbǏ!hA眓mٲ$fzuWe]޽*""RuR2NKۭG}e'.KTn Allloqv]ڶmV]_~ʼnjz]K.QztK{u֯҆ IBw}(eW/K~~mRq_ϿzwsXLK,#+*Z钤-Zf}6>T)͟?W骫<tf_+Off$5o^1hyR+ziIkZ(R={?`*reظ1YNSA]8-feϕ<رD =ʗ%TyDyڎ͗J^B9S>&Iʫ;vժ_rd6Xz-ϟǏ㪴oyFJ;}T?PGV Ֆ}Aa*0Į.֭ZSfUΕur2L%>r%>?ʫ̦B1}\.%$4א!ê~80i%OP#֩SSm޼?c^o}۷L2RܯkL&ݠNw||y~~v}JW^9JW^9J))CnWTT{n=Y)-[RTTTTƭ[ +ڹs0s._$$4?;5uR뮛Xb(}iF^z=yLB.?z4[O>ORY6Q[K %)>X|D;ww3~dYa*PmQQQj߾cazs* zCOxM$)4iXQq㆐mڔz]t}bTK9@H')H,SgN4hF?S )_tx4r\Zy0N6*d'/$IA3#Dg׮z7=J瞔$/- ~C2}P?*R]t ի~_K,۽;UW\1?eBBsjl&''zK.RGIzG|m۪qTaa:v2 )S_ѣ0jyZl]e:j۶l٬ErYYZ>OB^?͝O~I!ߣͪ+Gǣ1cF[P\\=mܸAsTQQ+#co{k6m(ݮvګ[53 tFDZ~-Iwo+U-Ϻuki6//O!6Ν/Y*kX,ݏCyyy>͛3I˶n=_lْRfg_CGw4###'_['jLYJk֬ vAz챩찪elZ5c۵f*-_1>S+Nl6ƙft~-:v^}S"z驚7oRSw^XzW/^f}U;vl7|_6`zWtU輎6Qѣ"##e/h4jEDWUW];kƌy'|N7ؾclԁS:v㴲\V)~ly_).PVV3󐓓o+Kj۶ zgt:hBmݺEg*..N-[VbbAN'ۭ\O 6TN]4tѧꐑ4EDDUֺ=zTh uWT3"%%͛dXիWuQ֭ȑei%ʶ͛4s*,,P۶tmwy|7|vn&l3gߢEK}<74͛UÆԯ]p =״8N͟?W7nPaaڴi#F+!U?_Rxxbbbhߋ;66܏n#$n/_ϕ$ 2LŇ\o_hgvAg 7Dj5Y<6M|-[r /$=gߟ3%U|FT{H Lzb_2MJMݥ/\|oI=ܯ޽78""R:KKOzYSM_Į]5vx =8{ Hb5ڿSÆj׮0zn.ɣ+v`F>Oٚ>_?JÇwPNl+7-ZSfuդI$Ah ZwTPn=aaar\x<2 2 $"4AHRQzqriyYjހ8~|wCi x+;ۦ_Xc<*Wvӧi.Iy%V)7Ԁh2dXd6=ъXznh ۷ΤI}5fLg9.ޝ͛]{mW=HIRVMKTjj:vlAڪ^HUY]A]퓒iƌպVj׮ҲJMX|NHD0ﬦ{1 h6=":tqGGIl9oux?cPW( vhee]]zj׮RRg~BI۷g)>^ZrhXdZp8t:ᑐX˼AEDXԼyڶ=ywmղe#}wonУ4ƌH<顇Ř=zպueC: 7nwG=kۗQhk@ddB"NSxW\\F<==G>֬I-OԚ+s"$Y$KHrJ:a2̓;2J͇ Se>;tʔ.Lr5=G2<RnW*NR̉ph6zuݲK*T } itdS_=N u}4;ȷ^UހtzX,r%4*|\ZS@,սBIұj_s(~[(WBs*LE%E7$,^&wx $WٷO@HD鲷mQ#"0 n*(*@%Y%:OWavΝ0Q X#W˟e8v&)92NUT^|U㮧bQkvX լXrdJ+I28v/9]T`en?Y.ƐsTrjCa $tٚsŊSSIM4Pz#, +(P^~2l2J2Hǣ_~."sDU;'INv*|Mz;d]0Oo*ÊnZ `JQ.Pw()45x[t͊=ƒ5nf+Y3ys}~ǎ)!bl4`0H<6<ܒv"7VTnڴ:E/<#9(o1CjB+7 ǎ)'T0&ήu8(8mxF ŧ'Kj&+ukiP⋥ݥ-^SZ)*2RQ S.KreQIG?I.20 ռlEdY 99T2pb$lx Jc2nLJmHmJIFdIRL,wܡe"UaVv<67$pz5Sua2zC`eW0'gݺ9vLu%Ix**e <ٵSir%4]{U˜AZRѥW5x➪l-C [0O e8vLGE.'6 Nv)eړ&Ol\-ZywVHʲbݰ\瞧«Sz5.S^5N2)|2l1/W*}Y&!Y%Cq٥[Id<~ ,۬#2''yw)O\\ߎ  <͝-jNr6o,Ls^YAE.?+oeܟ)wxgAQZ]dJ+wxIm\,~ IDATv'<\ΞUx8yeYFc9rv"w[yFEr5o!Kէ7T|rgM/yQj&ytZ6m#'%&Jހh6{CcRx^9X^yt8+.ěnU#h$Ca(g␿p ~SK/$8"5,Wz$JW%;hQOS;}Ŋ_RU8d_ʶ>3>PGeZ掯^WBs=˔;DXd~W]ʴ'-Jbb7NZgXY_(۔G H<{e/}Rg˕\R(Sw2c͖}o'Fem-w\*:&+Oշ5V1ީ? n'╵5MÇ TG/S䛯*lޜ6ұsVѥWT[yT-nRSm[70Rvuveb'eͪ*NNAgtlּj]s)0xVPw&yU}Sk {m 7EQ}VrOI኉Qttbbb~|t<>+~V3ZfL&ynrs<#&={4ed0d4d4e2e~2)o_.UmY:Rߧ1FQ3>ցѻ3e]3ǒém?vD7r sFY'c:Q>Ba#Nv2e( 2fn]VVe9iEw1a\s 6)w.>)cLi:[(I_D 7buC׽!U6ܵF>h7WѨKbyeifϔ~~KRjLiz dpȘ¾J}esUkX2uvew8vhRN/ѩyo5x*Rav"C\UQKտɐ'%.]"Wֲ!EC?iMX&}㝀GlW-{! 'tWe5>9E>RMN߱]u&\%=rV%/ =Ov,VSSU42IP92/YoX kUqá7^V+o.m,˖D\2%[_+`<>zRsO˕uWS\tյ*Z#Sn9ο@yO>Wb{Ezq+M\vE|oヘ^#P1eYKÊ|U9d95EM{}byTHce2Oޠo~U-d= vy8UƬ#K`9M2ה?)&wr^65{0ٮ硆3圓C"cAAuWD墨HPA! $r]=Լk]{WUWUWWծy?SIvZo ˙Mv򓴽p˧QDwzKZmZ wӟ'>`oe'68;2w{CYO{G]~tovOl^zj`9.w~> =_X' —0 5E"l-}/uGǹȓkrŞC;%e^3onyBK{uLޅa3|L>j]ei=y[<$w}ncc>ϱ칣ʼnnm']3؊гw]/n.r1H>@@vD֏\uOg|KXO6Ro]"o1W]+d2px,'p](gO ;K" i{y? ?{Uv9lw&W$1jؠv|~v;rHD۷RS 8 DI:56Gp="σmFD|ib 80#8pnS$FBQNAL)ʄ\w}_<2:p>_wTHk./wt廑tkmy;߿ ROA̧ϟ֏<ɮb4? mvKpGVK)w1W_$H/[bڡw"^Y>a_2ՕN&]9 ƶ?ڸslPޙg{ڥ?;=!a{؎wpsKc %wB Xp\ cYa>vSò`ZV, ~EbQ!@N]Nឯ39z\{*37\ \[v v.|(Fs?/ s~mGL{C?7L {pTpZ;1­ޣ/$߾?_kOĻqk["Iׇ^ }LOL 'wNp$@MΉL>C]WO|,.w%p/.{c}az`l{ge`c>:ϱzO4nˤ{kc IA"e#{0 t|X$ ʹ pNj[S-ۆ"LCG.,AH By^v9ʟ|ğ_}ah!kϝN މ w ogNoڽDSS0_vSk!^0:2\wCNЃ o;r[ܩGⳋ, =wKaIKnC ۼ OR7i;L`/ʬûch/Aݯuytg9z,<Ξ{Ί=sf81j1ho/ lO 85 pIh|u]G@}˫`+_aY0&PL]xO Pp{`;=**C^i4 _ sdyߍ _637y/ whE,˯7tǗ[i# گ[B@G)03}㎮\dF!m|A*q3ִG5-;L~[#z:7gx6M&j1踌۟"qǛNJmQ3#q߃"D"1(‘'/%m&5]_BGM5zEEi~3\EdVg<`Y0u#O}Z̨U={0x}# }(DzO ;{DHyp~eȽ9x~KD]}M(na^jS/}?r߾l$ _jwI"P}AvDѳkO½ä? LNP/zTgw|}(6~Ic$9ؗ})fe_)=]m > Hȱ=ǟu#4E gQ3_h9v˧ p`w(˃CN7so{C[es͵E(0?iBs(/`j57!plaŎyvh3ېUz?| ‹Mw 4oYW / v,ox"g>EcE _1W)mw S/|^]'yU`j5H؍uaPݱQ'8Sϰly.9p߾xPw%7(*'>Qٽ09;| -`*#N=0_>p>3/? p{uؕHM^뻏_oO <2Y_ _ 8aY<%{.8f8?—o?UOr6 \houՕ6hӤ A$\^B0<ӟ ~K$2hWbWaP(&MNoAy_up˧V20u#pοOw@gZ/| ok\uyrx^7DjBv؍[x6|lq7E.ؤ,4^Hs?-,j~?^?S.C{[w{# N ; 2e{??ChKڐq1jnyWv]qǛ?U/o>vW~@ؙ  8nXlw׿uXʗP}Ξ&7QԉcXxU ,]wo+1xG½ʞ>;}H}<<|O| ?0G>ڢ)xG7$lݺ@e8G3 ߲,K/uL=o@\{п@]g¹:p13Y{Q6gѾf@Fov\=x^? 3A1geLtL-͂kKyD"D4 (|+ؼ>T0+0e8Q@Cj.@‹0sɥNx~bj{1{%`WWP'9+zds@a5QFG9FAHܯvݘD,.=s_rfWo |<>#? ^ĸ+`I#FP'u1J;ŁG> D 8W!L?xr #pK l#|-L}(*K.%/ЃȽ jo݇ԛዟX~ FA$ A' ;pS$W>8G7G~˻yͫ urwѣ8OAA$ $#BJw%Z cP"^k; _a*ׅt韅wy# };Ǥ5AAA9P   D"AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAA&<`1Mu=08Cypiw   H$xjM3?'IdYJE   H$sT T*--ˁe90MTJ2)*lۂ?RZ@Q/rӧO: A%DPe155u4MJ%ض ap10 sNFJ q ":M<ÇP'1 D"1< D/ G1@^` Ţz<A/p]Mǁ8<yp6v6 u- D}}&+++iPXUN?^߿c\7PUD&7:(ξKt]7y8$H3`rڶqua(܄pILe8q Ё1‡eUU-?(Sl MöJ.~3:y ]׷n-˂ysE tIQzaг06aY&4-O,aӏndSЛoz[ϗFC7yx,HFijCA$ a  dey4Uy鴈Z-J D v8.oiX[+ P,1;;l-R)^w ڍpĉl`ss#FaÇX,0?0: duikA k3Vi]Je:Q&^ZJ\.UUmrL&|~Kx0 '/:ZstLJ '5p\L&k677QU{uiDQL'P(4-YLMP(-C%:.'Ն H$ j& ix1ˆmm8~3)&3z&eXY9O*(p]\ll#|LM h4a%h,ٳgy 2|߃ip>$I6 UAEQ!2\ׁaMthl bXmll²LR) aK bmm Gx[׶P>EiҍmY6za BG]j5ln8E mkk,..BU;Z,JA(8i0 DLWP,nƿ)< hibuuGmz7Ier94:ǎr =1<4M뺐$"eW{u]jӫ"@~ݵmr($i4M<\n ,hZAccc,*ժHTj 0 uBW&A ˲M7EZ(4 e!NCUSjm0tj.6TL AH'v^+p,zU P@X4[)2!$^o9][[GEKK:²x( 0 b T<7W366E1;;7oBoںB312u]0 u C l*&febn.ߑ/ɢT*\.m9'Z֢Ѵ|Gաiudٞ @TD*\=C/,..uoۡu]lll15\b) T,,,uLk:67O.Jb,Hڼ9umfT;j qlHۨܦiu]!M۫#G-6==3gN7Ozfe4NannͧXU*eέT*tGa?KX;;\.v,/y0 K$:$.nCABu۷~xXtݠ"332\7A HDpB Dz,$ERm_>%YLkvdS][8b]Vk&퓣^Iֽ߳oSڍrɲ[mY}A:_F/w]ExhfrXXX̴YT0?е]-b4D~s;ݎJjYѮcr. 2rHRɃy@US]m>Jg3x!Ir@vfvD.O1"َ;$.c"D"16AkB U8>66ͤE`t$:$RWx`'A LN tOlzwE&g澰VA.Nzٲ}t:s{i S߈/MM+vk0}':==iHocb?Q^-iòfE \'㻂thL瓠Ѩ|0 e%Gm%JQ$T6igح\.72;'l'OC$m8<{g_u1&rf&Q;#(jGnx"jUSP4E'n2ث^4T[hhOf H]6DD"+/y $ضrق[ o=ѹFiIn"*m0-Dd}8yOmurr떨w_}Dbfp}q8:1IcM(˴j}nr4CQ/X܀;Tl6qA}t99l}(c@r! H$I4EB#obK$2gP{$A[Sǃm{waY,ī{EQ%IQ@$Em:;+ VWWP((0g APNp2UolrReVir@-"7ۂWEI?߾xPUnWv\+z9lzɸM '5Nw1`7a}ۆ m %m5 k![9TZ.s`1`r/A$P *=[[O# AǯAaG\9miT(]|?BoUzO6(M0{uucyTAVʁyVVVHMy(w^ʃya]~h陡ɴHuݲLlll4o!<JP] nì5")7kkk]Yvq c86idv[j~b1jgEQȲCg0ǩS}&z`T*u]-\m`;7>vRcnn&<adz&ՎbA1?ʊ۶4۶D;wt]k.x8@Uql0ETzG[<PuBI-AHEbo`+βB{T*M  <9I`ff A{D>'#A#CD   D"AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAA&<`o<#0 alCAAti Â1 <$I,/AAAH<qb`^,0TU,d@   H$+JzSrH$A@Qp#*5J,ӧO: A90t4r}ٶѣGvD ,D.7t]^RAZ(_ꚮٳad#㔕LDTm`ǎk>< H$/j5ð`Y,˶P~x6164~tZIL(AutskTMcccGl;~\9\}pc\ 'bߤ<σp]okbW8e%v߭ l{ D➣V,Y8, aGS0aYBM,TJNl]E/7y>dYF6;ջ\S Ps-7h4055vM:(MLMӚc"EH6} D"#|?f " E< p @tv[ hNsu$UF[nJ"r}T*V"R)0 0P. ]Sx؃)Ȳ iF|O}YDu] vT Cm;(EiUQVassAUU۶h+kk,..BUI8F@%2tx"*Eq0Ma`mc/X:EbP*Pz]+DZQ("( Y À4 ciigݤIU´1@={u#R,eY`YVAĆQ\t߹\DZ!B0}v/ǪBae#n~EZ(4 e!NCUSjm0tjD H$:CA d"$`}ھ4EY|-XdQ*sqv%_[[GEKK:ޛP(Rt4Jssmߎ Q(>[T Ξ=,3\A8rhG9sm^$gP,nēť6s]8v,0LMQd X @0 IDATR*:&Z;<Ea4Pf3{RWa/t 7C y*5I=#*k:F\iaWyT ;{VaeHL^Fs)j DZ!I;wٽ,Ç;eY1;;\.׶@)x0H$ddiJs; :^T667 躋|^`!ecЍhok'</t ,aaa,"۰Ɉ11vL$meY>|K,2XVQU3 \.T*5ra^ 3mLE{F#1[E'eaaˣfDz K\jZ#SrUWT׽qsT,I>#*k:ik`…wzgp3w)0HDĽe;cU6;յ$a٧] gck D⁅sDạ8 <ضrلPU)o*3ޫNEgMdY,K},>}ߚ`Z*&QrSg4͞2,U Wϭ+j_/LJѤ{j*ݰ#t3Uk[iTA^IU x4dlx$IUŸluzfw}Ǐ'SsaRUed'@fA@M,dYs#P(=d ? Z%rs{-{MdGA4uxap{sI$"V=,/N(X5l\׍wTFHT+]סiu];88nzR **m'I>#,k:FTjnlmiwPƪ~= 3AămPiwCa7'%, 1ѕ4`~~/IҎ4Z-MxVԵW:NZR {md2PtM`|߇8TʨV+RErVRIt:,|ߏ6mۭf[~FZVA!"FA$XmABE1@*I2ƪde:VAH<`HIaYn<`[I@jZ5!I<u}tz\ӛxmېesslQPA^(QNȲ<0#|o[cɴD>>677(QX5pbEN)Ou\w`t z4FCCqԽAnAI?#)k4ܦ933{r%I V1!vU%y/{ױ bЉE ѿ|߃aXu5?-JY$ °,ܕrEB[u׿\6A:-J~5$Iő#G3xhbEGԶx>&,Ş~nm)Jqt0yyz}&YWm+"/==.~FSh8, FC_ҟX?I^ϝcA,]B& O)QcxЉo=y>VWWP(⭝ako>66;&; `mm++gckdKh;K;mf"7;io>^VRWTF*8_(^UZ+ʢ|<3bԲG-7㜋;.Fz1E$e/6VAH<"QU%"E(Nq)9$H<hV(B3b#T*keiZwMWWW3;퓈(%HV顩jx7ldcZW,EVn0ryBa%v8J^HEޟr Pw'YWZ+yXYYi&ggvc75QSUu1іK;rFX,nIM^sYӧ ESLPU)ljۭP 熦g XY9 ۶ Y I2|?m[XX@=333д0)j+L\G  ⾋4WLO0u]>ܴ < fs"+rc}} m̙eȲ QpQ*2XNEQdPaOQiM30 E3M\3Vkh&`$JQuhZ $7;r3bܲAmi`RL5d2Y0 q]2‚(KH; s̽ك8V/X$&A}DZHd0 aYv3V9( @8BW@e,-WsRqylXo<[j44D9j,ˢ[&ss(7y~ݢV&ܮ)nnn2<(*:{* v[n3ȲL&t:G^߲l9 $NȣqZ4&\ <DW)TJwNg8K夷M2>˲#lf]=UU>7%ϫ =8S1jY-ˊd0l'$Iۦ%>{* lzp] #@D"˲Mȁ~$LE$9ry9J5w=xչt/A Äg ۷QDA4ó(,'#H28nsg5t/ADM88Zvᇿj|~G;0壱 ?#{~ H5ϼA(`aa 33yd2aLӀ7 I 4u4 >񉯀yȲ+?i,.N] /?GR^Ҿ x0X[+wq:W^8ɠ 7 \䦛%ɈGq!_,p5y\rKaiIA.B67 CQTȲnj&AsσdsW'QVYگ2ܧ O {tqIeRD Q2!^xq?Nρ퉀CAʐ!P )JJی!h_#J|>4Pl$Vٳd 0^կp$)3Ӧt<~8cbUVV f96ߟնm6yU蟴r2%%PxxZlѣ) {֔رMkјZEVU6m$uvjٴd"QBBBBB!CQYg׮Zj9,٢ט1ÇUbb"#ԸqR*9BCCOLٟkݦk͒=zb\;m۶(.KTxxի!CK{OҒ%S)))^:uꢁ($$n?7TӦ͔k#5SEi;Ծ}A}… zJ]w]S=S[vv6n\/I~2Y~Ο?ڵ;k߹j *>}JuU]u=# .+kÆ:}j֬-[i m+IM/VZkԨ[Νh/__?nFw9J5jCwuSǎ5b(iǎJI96my~Oq@yGI}JJ:ӧOIr-$vիMen'%}ݗ*jj㉪UZj4-Xbc*--U[ՠACX658{6]GŽmGޑ\]aauT~kmq`j+99[O[j]w5IO~w[ĉ(>h5͚8/zK]ǏӓOYk׮s_dd#-\\=,Y?cK6ի-ئ^:jPzᚃW.^'UYYVM͛3e04~}6m㏪KvYiʔg羈z4hH^K/SӧGG_y3NӦMlg5i曹`/}ݲB-w?~oߚw/衇ӏ?s^}4<zoߪ TBB| ֔)h.[zg&ˮ][-Zf?33>Ж-3[_/Oьopx}aH͞zڲe>lDm,Q_8_vRם,mWC;-#rrMª7^3?@V>׀4p:-_>̙oO RppLJQ$V@H421h4p*#ægTzM>>F P'hܸ2$(($((B6F{N<'!)Y~5NoZnoV?r䰆 ӧOd2iС.\HѢE*>yfbbvJ:txU u^ATd]_շoU￟ԲeuU6zG*X̙m$zV5m\{z ={F>8^g~n-qѬYjT^7sJJ:u~TR } h3st}\Y,5iTm۶/ڻwjzOWJJ^y-\@{S~*33C~:u; !P``-Z*>/_S~דOIVk~xeo/$=VӧuO?ai֟zbӧs'IjӦ]i̘JLLɓu 5k\sW?~L7ub M}4+T|lMg9sDei%IÇߥ?~̙hʔGi{4|]JLLP|Quv^|U-vRڶ_+gەlE9~<3vヌ4u4^a=RNNfxKo'v@5,99bsn+''[VUe)NZU@I{br8lr8UMâ#5[֫5w-ߍǎu~JkϞIRǎ]ln\P(6v`{-[cMsl}xj<_FQӧu/IժkO ͝;벷v:v=_=zW_}I'OtK54w EDT;s'{>Gam,Ql'+JӢv}믿gXm M7"I+Dws:]=YYYPzzΜi,n>RS3-Imlr:â+0 渪^'nk׽\GXk;_=Y3ߣ(#U'<'.nmoN 7tIw\qq wްm4/zdP4c? I\W2G^~fZo4jS7FKn!aصj̟tĨQwzw>· ?$2IDAT?O%.U{N}}}LA >*=Xm">ۮT;-;_<07N@pr/.ӦlW@4-2 2;);ۮ#/u6aB'UGZvMCK5l6]U% ZAհaw/>Sr9Q_w9J7سLW,YdY,>fyرsnUZ3T{Ѻu?→cukW\6m).oFPJRN6'gUòwQF߂V}aω֭?;=q-XRmU{MII'wۺ $CN9Ȑh͖#٬͛3yknShEcƴծ] ξÃ^E5zi8p/_ekӦh]pAGo+5(|_ZjظC빅Ĝl-]}Wm U+.l6z-[5k۪֭ijz=zXU豺5RŸ;!wi ]k>UV||m=.W(+\h,x jezg;_϶+Nr>efz[hYc'!y22LJOwr - r:r8u}`feYeZp AA~];\5j* җSP=VGPl-X0OgGz'գGbb9NlԨMKIKn7oaiڴ{ *^ʳ.$?d=DMd+f}V{wc>gbb$jc ?wOVTս}TTcRϞ7iʔ+M~/*W=ZEen 4l6~Xs?~E"˻"ɕviQr/ZYgMBBgXjϞ90)gmDcfr8<7=SJKsݷ4+!wlv8*#b/-WoM5U~ թQʫ^ÇnצMiFڶm)S^O?mlVNNgnwzk~yg8YUXQu!IK~/5w_ЫꩼսxѮ]; m=3Ku߶͵Z5tD߿?m߾UK,ەhUZg-[6c=Qr)־ܫ^vr]vZ;{=,Ȝ9t*<* @ m~x$7.O;q4W%~އ d=UT^}EOJ:O,Q^_vRRYhԨZ3բE+MNz޽{q&6$V_|skժ:{6CN]FM${g{ ɑkS??ڷomԪUjW򉈨]k˖ua7@VU?Vׯpl54'O6mЉW.06]w]Seggk˖͞F鵧aQ~9-Z4rP 8X͛ǵdBeee]{.5oRUWT]y-VT7鮻F+$$Tqqr2%$īu붊ݣ'~믿!Cezz).^Io^EG՚)W3f|X=۪W .J}Ν$m9KBd6{kĈ!;=:s.Np႖.^O`̙xjէO_3N_}5G6mPԣG/ժU[[ݻw?@ݺݨkyo&Nfx[+V,UԻwhӦ ڽ{F n{Qv/fJ͜9]aM+s++N k9L&W?JzuPDDu߿OV-nW eX#)gXjD $5[o,ɤMbupN & &I7WHtE'(֬-uFzWPLS}:p`֮]ub5bHԩm?۳goz)JNN֒%X,=z^~SZ5g|=:y2IK, ͙3Kw*t[ԴiSu>#'_WԩSjڴW\ѥ=#F`0gsFz=CKI4yzkdңQ?5&vyjҤ JH׆ 뽆խ[OK%6Qo9CA쳏tY-^GG?D!Q{_Kܹ_x6NZ` /[}M~;_gϞє)WxxWvRTyl;ΝH7o= Z@`0hĈzWUz >pU7΍ל9~v("E^ɜ=.i}9))\=GCk jq:jڴZlmctup8|ӧTf-wkjʥJHHɓIPddzS ~X]S˖5h`}JJ:7ߜ+rhڴVW7?5kVȑ2bUsydҭ cMKK+K) PN]u}\u/^OK]vūŋj߾VF4hlֺu?j۶u|ԩknU&J#Z|-Zۇ)44LϛtB7Fk_ﯾ}{:v,Q;z?ZJ[e)khݺF0OGqZmwZlƍWo222o^υAA9M)88XAAA u!X3g.h:xOԩdj͖)Y,> SjY3LUWdd-5iRGyHJ:K֭۬VڔjXW/SµҐgh%%PTT.],O{}qոqR !XnzT[n-*!ϟOSff||LUhh""BTNׯQ)L{GykDnz0PBzM6mu~γin,hԧ-DXR %%BVn֍TJJ22de4gV`,UʽI*cfiazꩿ]슍ݣS͛7h4jҤJ}q߿|/n $ ),,¸?loEk]-4sǚ0!EG~Hhi|no}\*,*FenMvٳ72ShhXT 2T;w;رDl6թSWݻԽ>J… jӦ Ha夰=kKU:5))ζi7hMA_W^*7 lf&Q&IFf04U/0t?@>>>2L^#!e2 w@SfY>>>^a1וm*R`Ru(_VU۷obl뾹CFHƙLFa۵zl9,WP$$VBIaa2Qeղeܹ3󓟟WH̯g 7ғfU Pzz@t:^ܹUvMEwX̯g+*0Тlrrr8r8힯/m3 TYYV:v,A6[f<0W 5%$^s] lJMMUFFҔ} l6 Ƹto_#_@O7(Q4K7tOJX,`ᠰk}>w7tK6XvIlf)P B?yxiPX,\NF+&! ĜD!=rН u)!,rr\{\f3!b71ADBbF' à; pJ r{ieX + CO s/^c20 9NRwP!p #E $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"E $B" $B" $B" $B" $B"& :IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Dresden_page_0.png000066400000000000000000001464121420322575300273510ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwtwY{ cL5NBl%JC GqB:jc\ٲ,VDz#%؟cI3OgbJLMH! DA" @ H[;>5*+Trr/xmhٲ-,$ĠՐ!}4gt}f{ TVV6l %l4ycJJ$H1j&I&w dIfs%I:11SUv)7̰a}tYc.V{i=2Ltٿϟ;/ފTTTjK$z݀q=/hzi-ԩ#tחZaa3tqXmR\\fϞbd)&&R Lj;+""Teں}8p ѓz;?WV)22DF;R^u-16,QG&}T*((SuEU>r֩J?cVVj= SRRwD(&&R64|x_ j)""D[2͟бcy:r$S6 i:վTujuHZl$)11ZZed$IKzkztu뭗h濐}ɮ$d6W+::LǎW۷&)JJ*%IQQኊ Ց#9:r$G>i1c6ĺm>W>z4Xb 'G&I6P_~L?St{Z%FVk5|x_#X>}T3:71~-ۦsOwϑR YG#G2ux;Oee \%K6fo?O~3i?ű4noo8峴(>W&Rxx,)j5斪̤>>>ׯq SI H$D@y>80^{By#:3gj(::\qqZt23 I}f&Gs朮;kϞ嗟VUUrI/F55N$;<%%%T {W^^i/Utt8JX\\޽cbU\\A$fd(<qztq$1%.[Kʕs]##|7:rrd6ZmzZu= @7jT{l;MS禐phQYY{nzj.QQQy$wr*a-YnA|#=oZ3n\}Cl =M `5|%QpJJL #…l{}_u@-Z4QMĉ$6mDt9 UfY99U)>>}B7@t3))ezںi?. Qw5McmJJ,z-_"#"u vG-,#%z:tLtI$[*ӿuP7櫶y}?]u@pPEFxqqAQz=?>ٳjܸ(cbZn-5{v_t0v&bJI)vͮ4}zcr~qn)w:驧x}uՃZ->jY]]oc>TEEtj^x3[^^7zVΑ$zp͜/<%K%I>xFU+ts~fŪW_=%KUZjqvܸ(c4ztdݭ ?h۶BIwҤIJN.$hQ/>3UQuH͟?D\ҷMk2Нh7dMZm,]}&mR+\hd;Gt啫~}^ͭ֞=ڳXfsv./ɸyfI^͟N6ɖoz]ݻ=~ F>fϣ#^|qne֯k Jxx㰮b~[ց*pС#7nwom:Rv-~Z(I(I饗l3[nmۖ{K{DZcN?fcbK7쯢7iۛmS*lշfV7^pp?tmPzz6{S>t|,[O>998PGݩl{۝@wǛDm +TWgȑ:%%EF|}J vnv; u}[V@&LȑMarrmoSOM'ƛؠ NZ6nlq[>8MVפٳ#n-7dAԓOVbb*S`.ƎRuu.W6;\-͈]FoA(߿ըGGjҤ UjjӃurp=NwO 覶l)$pPuHp!z饃zIRjjlro6e\OLСNC.ܩJ3{4mZ[׿ nKҹ&4=qC뇍nlO7{j)?Z6k֬aazC.OݻijώOh2f=vlӢEfv}G5Iz1AMίVfm.Ķe2fMu u:cҚ59Z,wd]D=Dw^ƍON:mel=&ĮX*Gсz)N-b&Ow,/Uyy Oհa yxՃwP-Mvm7uf>5ncjE& *;\d7db5)(@+.{T7m M ~1؟|W_b$IGk4bMhs23JJ3S]ԧً7ﮃTVV+ƤlI:Xtn!C 'v7m- aRRN0uj{w%w93N?٠f؈=hK*6tz(sC;4OO?=7W8zt9Ct}u}5fL/.g"Ecޏ㍑- wݦNqݦlرQ;6J^z2nTG-2Kwᆡ.m޼ϓu]W,I״iK7c2]yj=6[Զ-\8Mra>-Ç7)SzkҤn1yݱmTmO ٳ[nBBtM 6*k26A"p=WKDG< =?ct-s񘇴 |80 ty|w52\Hzܸ(]w]wuViܸ(]u }۵]}kCYm7 kڼ/OKI\rI_7{ ݱzJ~!Nes;k(3\h[Yas6:+NtuCZ}%}pt?d 8Il{;](Zg43 x3ѕͨc;MzmviӦVg_z1yee15}[Хp6/=FF5=X,Vm^ծaWj6- ՠAaVkmN@z poĈH]zi_ՌJHp6nʶ6y[gӉh؆6Į&= .$&$7<=rL?6}tܕ-n-fg]>>&_mT]}ԲeZ,C>3&J&EkXiIw1Z236濭 (d,*QLLZަݻuH+QJ?^iVݼva||Spͺ]ns̱O c{uV:u6ۺNJ+I{op^HJĉ=iƒ;.xw9|mm#tX4.Eguu6-ZYZW5 j2LOw 8I]xaMk8?6=:T&զz+O 0ngΌӘ1z]6-֘mlӵ׮{*-X{.+ˬ_?lNG??}t|'a>b;7W`lڶPwܱѩ/9B5;6j֬XKlHڟᇷ; RV=vZCcoLʕ΢ufY,VEV]fMI)<foAG7<8vB_>ZtҾ!=玬8{(=^IƍU Rh22*dn-I_1i/~Ə֣S>!>#ߍOjSFY?]k7#sWttm5N=Y<]vjou Uee}h6z :xMcqc~U T@Ƌ/I{m~}vViٲ 8P{bmill).% I:Att^y ͝)㩥C@~z 8im%{F9-87پ&]vY?L uOsDgLJkl2т GFAFluo${t~{.ܺilc{͝_=7d ǩa PoO:}Ç˕]%=OOٛmIO>9ɤJ5Fh2IP-Z4ۯg2?u q:ԩ1zNmO|:l\tXV޽*,QP Հa>^_ߒbVֱcήR^^""ԧO ':-$'i\>\*..HSs HVY_} ed~Bt:xomzT_gta ؚzXSNNBB|5dH~Fئk㋞}v;/Sꂧ9bcCcvé6zƍZ>O*.QTTFeLshRRTTdQD $:-r;@8]ww:p>h;$Cʴ`I??F粫 H0C+?Zu:vB7֍;܄fg7mUt916_oҥMf 2wi I/na 薊jt띦׀ UJJJKf45kD@8W8lvYc}{GI4',&Kfefe6שW ib5}zl gD@ H$DA" @ H$D#n-ܹ4w*a۾ac/8r_ol{p$rw%%6cI\zzI'Moܹip۽Xw޹I_BsTmG~FݏIȑɩjӆ a-njU̒5kr4wn]>OYYfi0IRmjs>=ReeP>!NZm'}J'wJFYYfUTvJ+oQW|+~I55lY!dǛD45bD$i߾5)-Rm [|[QQTÉk2kr;裸).][yUL~zuf+ M:78LKUSSJ5fL&l\ M b\ݻ5yr&Sl<2FEjHVNpή$~zM!AhoqRi%'5ͦMc5p yn{wq}s8sJJ%Utt`ۗjI>>MV9_wqn)7Y:|LJH֌q:5F&SUF*Oc7+J/Ūնm*,QLL }Xee4rdd3eT D&MV`qvZ/ED4+11XV˖eRXկ_;/QFEX':N糎kXPP]mG Wzr:|\+VdJh0 2bP֝z2fc0N*7߼^w+::P|sߎW$-Y2K-B4[6{ru:x=To暵oPсMgJ+@~{qrE+$Io}zVj޽x>]C霚K'wZ:ggWiΜ5iKhQ*C4yrog,9^/`8͚lZO& Oлj׮"y|p-l$mpi/I}vk:{?qi ӓԦ2RF*Om>7Xk{w}t23͖+`nѢd}q%&/o9sV(_|qf̈so_>>&Xq"#\~ŋ7k޼1#N PYYI ԤNxNw/tPZ-ێ͕^)Ǯ!զۧ>JkR}c^78֝z:3eJv.VQQT Oo5`@ヌ69=t,4ڒcuraVRRL魠SO:M _}]VVaa.ܩ>8{ƍѽ4sf""UPPիs^%K5lXf˛?>Ίg*4O7T~~,Ѯjw;ꫯ2C5bD[>KSO$EG34hP*窸آޮuftA~]SBBOUtt}{,ءp;'I0 T3g)&&H{k%'鮻6=eD7S['u̓A/]wmRUUBBty 2$\f]=nkK<3N_|q\U0;ggWd q۶IҘ1Z ;tL|zMq㢔_MW/8:-U;q4o`mTr 3ϴ XZ7;i+垸Fy?}Y$)>m ?%kȐp=@tCSfDGW@_M[6kÆ< /.7]&DOsyz1N7_OA)FwOy[R[k53{l㎍JN.繼}#Q. /ґ#ɩRBBGkk:[6Aw^|pbc?oӜV{٢,|r><޽%FxYzINݮ⸞|rэ̓23Zx$ӓ._~вe;dcSkysvd}Zmz]aziFw;Izں@ЬY Ϥ:l)P~ oCvw1j]lڵȨm[|}Mz NmEEzhl)вe3nު̙q93NO<[92-XGm'Q[qzI k9RѶ֝NL\FƓZO5~?c78ϴ{6,+܍O~panӾp]w]q~~&~t@ȑNv+hq-lR~!zN7|2d2I&4(L<2V}<ڵoyfRq9sל9R?(MU!!~ӟ&6'v}5i-n˝4svd}ظ1_^od%)22@D^}f v(<$8Pʆ.}=~NdS1^}iuڛ[O\4]6[wQQ59Z}BZlRS=7N֘ 2.c_:F]YZ6+9HII]&8mZ|}M^2yrN:㏏7 M7 kxɒcCʔ㺋 {\ .egwmCaa*(WwWQOמ\UZZNѽjgδ;wfuC+::PEE5ڹ7ujLc\iFs=j󾻖mgqmǾgK 80q NZEL0?cksn*X3ΈnP˧:?<&8nV##I OqÇ;<>ͩI:xm><]_B%i'1دÇ\n{wVv&{][G46qBcҚt5$rYd魼eݝ̶[bc7ǮԆ5=޺[D[+5Y͞&4ZĵNe۶7~'Z6Ǹpl/I''PôoL~H75z-O?Mo2ØD˗gQOמZƍM[U^^ެ70h^yl6i(D㲿>O9#w[-Yciy]˺;yۙmL2iq޾[w@tc#GFo}mgmtt`IڣO6;1MfX,V~Yc*瘝dёt3ecryf${Wsi!Fp}[jٲf mwMuk$N h?,XJ+wҨޛ]ع&OlCmo򝫫`UV)8Wf%6هayniiipcX,I/.7*N>>&qGRP֛䭻mEwqImho3=z^=cq>1iFW`OLGTTT-:ѱvyzT9-> ]O+Vd ]w~ ѣZ.Wf%%EС2U5lXx_wҹW=X=NUh4uj UJJn-TMM|ުLs/kǎB]yjM[11JN.ց ĉڸ1QQ0!ZvtxfΌSMU7k˖w^v*VQQӱ2C;F< tk5mZbcwoq7cF.[iNuU{k3iѢ MJKUWѸqQ3&JZ*GEE52E&Pc-Nf߿LP㠲#UQQۧK34n\k}{JKmWl-w+˺Nvn&L֬Y Z:64OMz^@76eJ$z(ٻqFTAYgiL[ ?Wg;W_=#Gwzɚ:]:!ZCczl޺γg$/TRb1Ɯ9ot/m`_}1XreӍɓONҖ-MDIz≉-:r\7;m3{v_=8͝a ѿuPUM8#iNuU{뜻s0!Z?1YfmV5..H7Zf%4>}B4dHRSѣ.>ujo}UƏi7OۆGwiR\>>&͛7XӱB*Mw#mEwיM޽ӓlK; L6F2qc6mWmU}h!r܌ ֯Szz||L6,\f%*"_}K3cg'hҤS>:}}/UEEz رQ:Xx֬QVV|}M:4\\pZmZ&W))e*,QLL<3ٛh͚=Z!r^1"iNuU{뜻sjӦ|]Zi0uVƪ,^|@oqX&D:\2#gJlqΪ]QR7\T)0GÇG[oݠ]t#t=vz$ $WA"aA" @J@D_wDZɈkDA" @ H$DA" @ H$DA" @ H$DA"DA" @ H$DA" @ H$`F IDATDA" @ H$DA" @A" @ H$DA" @SO=߮];f˱cnjٳ}AAA{WkZxq~ 6 /Tbb $}=#F;VNOx|[6G@+--ݟ󮫫3λb1~___(--M]RRRtfоjkk[VXK/C ϕw& :z6o?t{1Y?PUUU ֗_~iӦ)00CZ| jk5HeM1y6uN;/nwޑ$%$$ .;C>LfY!!!t&z8$qt- uk?/$I?5oО={d65`͞=[L&SRQQKf͚&lݺUK,Qjj4~x͟?_nEnn>m߾]%%%gt6%%E:~$);;[˗/w|Ƹ뮻NcǎUTT{ku/ի3FSDDDy0j( 0^ZE7n\8p@6lЁ_W]ud{ŢիWK.bIҦM+==]111;vnoU[>ed2颋.f|KjĈZpaf{3 lvokd>{$$[uuuۤ>|m׿ڂ9s-##o޽srr_]]m?~-Yٻ(oʂ " BDK"6X {裱;3iFȧ~ZzXbXYYܾl߾]#Yt- ҥK nnnʲQF QT7T:u譻+W*is@5j$Z۲e5=}TF!FFF:gdd$649992~xҥKZ mjj*2b%_7 -3w^Q2e ݻwGjp)ر'N@ΝqT*1blڴ PfMtUT'ƠmO7n=z􀫫+.\00`vܩ " >||Xz5uV{.[dd$:w'O GÆ _~IIIxSL4 FFFXj5jK.O?ݿ3gD˖-57c Zhݻw;p5\7VX|9znݺB ؿ?qm 2.]*W_!((fffhР<==TǥQf""D"Rhll,+ĉz'1..N[5+yWZeНē'O*{)?ǪUTIS;IIIDu+WիkY=z܎eyvvT\Yw$JÆ ;qqq߿/;vR|yqㆲnڵg*,y撝LQT@3++KZn-{z$ɢEϛ7OIX*CݷL %)3A"Abq>$N6M-dСG1烵J1F{*޼ys͛7Ү];222XAbXX#©St}TXQȜ9s4GHƍ%++Kv!BuUud $6kLg;w(i>\*#vss | %)3U>_6Ç%3gb֬Yh׮!O_L4IO:ՠWөS'Lӭ[7N>]w59sFQaƍvxx8yx7uVwJ=ŋ`EAZrqqAJJ RRR֥z"{{XU*f2dHB,2n|')=z;..дiSi:wΝ;)~[zӹO<)DGG#>>ToÆ Jiw*5>ێQ+Ȝ~*U`0`.] ȣyӧÅ plٲ<ӻQrK()CLDD HܹsgZC/z聰0_vBCCܺuKZQBGGݺu nǒ$R=&'qӲ9///ԷϰG鲳KmߧNBlll򄄄h6Z\yFu"""/_-ҙ?''Ď; M46mXx J;Oi$Rt.Vʗ/tܸqL]Nׯ_/pRB_(fiN~pttթSwEpppz!::;vȑ# իXx1///˗/W)S`ƌZwW(3MvZ?^oUVZjKʕq~7.]TGQޒQ3u~ʗ/___,9c}~NضmRF-ѧOaȑ<{oq:4u(?Qf""DDT?_L?ͯvZe煄 ))pm۶,[L=_}AVѣGqYi~>]w qAܻw0lذB4H=´j p⥦[n&]ӧ.]Ub就իW1k,m=xt|vRe? OA"HDpĉ"O%oM=e~/.￯:d~ ۠M4 ^z)jXnA󃵵=?gdd$&L]GCKKYSe&"z.r>e|z쩱6m(v*|HNO&kWϔ5j??? ݻw/tw}9RYggg'KӦM/_^v5YzQlذAHeƌңGbnn.Ǐ;I'O}9R,>ED~W177R\9С|2~xR###پ}gܹJ]ܺuK8:w,Ecݻw+.b \+Ơ7OrssED$55U>|X#Hkkkoے qF@4mTݻ\;99 qss[n)WTe)ѣER={VYtR 'O.xQǏ-@vڥ bŊBebdd7|#ʕ+:aAmTjUpႈ_-dڴiEI۾e$~JED +VTKʕܹsJ@ 3fɌH\CDTFW~:`Μ9úu`ccš5kPfM|w?+V P|y^kƊ+C-?#C ؿӧO1qDL8ժUI_^gn9pM%oq˞3fSY6vX"11ѠXp!*W eP;;;_Xpa|lٲEc-[ШQ#W6gܹhܸ1ǏF-JU6t,ZXhoiӦÇ8uuC?f7IHDDeѣGJ*!''rssJBvp]ʕ+K.455СCW&Mݮ<;wNžb8ĥB .W3ok)E޽{|Z|Vp…;x lܸQYմn iC]:v  m C۾4˦v5WkةS"55۷J+N> &ʏ-ӧOORDDzp"2r 3m۶i :_jjrYguТE ]~;w.\'OPbEQo8T*URvVZE||<VZ:׮]Ǐ;2iq 8s쌭[BD0` u) m C۾4˦-MMM5 að|r,_ܹ3]$ED IIIATTaii\Lw#FЛOdddLq>c >>>2e z-~Յ!ePS߁Թ^=I{a#'Hܼy3O͛7qhР<.ՙmQU65Bzxx ** 'OݻqQcÆ >}:x""bHDb,[ Olmmdkl#,, 铓ѤI7Ncyzz:V^FjTdeeYfZw=r|Pfmm OOO޽[y Xĉ8wAw8p Ν; leQ6899aݺuHOOXj*,[ Ƹx"W5+ "]y""bHDT*?Ç+]SLJBpp{W .Dff&ڵk7G׮]iӦilSLA`` gm>̙3ann'''#44x)]Q烁|2222 "RW-{Y… ;",,  LLL駟ZPߥ5{~mTmQe333ܹsq=tǏGBB/_@4i-[DF`oo[bٲevdܹZRFw%"p""I|cjj*5k֔1cH\\μvR&Wdٲem۶XT| IDAT2}tFFF2w\SܹS4ҵhBΞ=k<yL>?ߝzs߉ yyՓ'"bee%>>>oARd '1? }'8mXPjWSSS-ն(NۗlI˓Ev7nQ7|SnܸFRZ?Q<|#Zn ;;;4pwwѣGSN -[D͚5y];v iii@ӦMabb89r7[oUt?+++ :#XVًǛH\~ 4@aeeaiQYŋ.۝;w )) 4@6m| q XZZՕs$A"K(HDDD"D""""""bHDDDDDD8O"Khʕy|'|ܔ$D""""""bHDrr fϞ}Mٳgo1x?O^xYXh>#9ݻ1{l̝;yyy:lݺgFNNο_/_K,M"!"z~>Etͅ)\]]qӷo_޽/m]:Ƥ$:u ͛7 ?L#66+Wƙ3gPv"uuuիWFǎ >ׯGFF5EHMMELL̿ox'_W^4i+wN~䘢EϜ9WZj-Wo8O"ѿШQxx1I&ʷa@`` {=l۶ =_ID ^ B\\Ǝp!99Ä P^=%mXX0i$"11#GDŊ5P4n:tP:u aaatЧOFFFJ"!!cƌ;n:L0:uBBB~G\z* ?~En߂<..w5/HHHヒJ*)?#22ppp  qܵkɓ///9R,==嘉""zaBCC|zquuX>zhKJOOOiذ R|@ U-X@ER ۷ddd(jժc122O?ɾ}DR qtt5jRܹsG1 8P*T B bgg'@>3c5j(.2tP *Jׯ/&&&@N7nX[[ ;;;/M8 d""g J;z,Jgee͛7|gΜSSS4h,99Y<==K XH˖-%33Ӡ>umi޼sss];w,R^Bv/1QcHD *JٳK lP6l_9gϊ u }^c&"ǁk^!٘1c<==ecǎ)uUZjÇ]yLś֭[֬Y5kӧO1qDL8ժUC^^bbbPn]G@nj*s!..NQմ4nc…\2`ii ajj O>Ŏ;PNj Rзo_<}nuިQ#̛7aaa §~(YFylmm1x`|06~5omm!C_^>xzzbҥȬ [7:(1QbHDyrgȐ!Ν;e!!!SHx{{ GR]v{.n޼ݩT*Ә0aΟ?(_|c.l~-[bҤIsۜ4iBBBp98}ŋ˃V޾}E}'Ӑc&""DDY(nejj[*[l<[m۶T~z@jjƶ֭X|9<==QJ;ؿAriii Caoo_`xRvm#))ɠcSjxb+uz!zMLL?Ç(W>sݵk&N֭[bŊhڴ) SzS:ԬYSgFA{DDTv8) ~.77Wo:uaѩS'۷=ӧ (iT*{1bm9::jI=<<'Ob8z(aL>:v㛫VBbb2hQ5UԹ^=!SU$''c߾}Cnݴ_p.]–-[0ae+nGaڵZ۞1cVLz qqq#OUPs}ffR>31H$"W_>h_Wr 2ݻqa/_ RרQZi,dX[[ ^^^MWѱcG,Zsz0 ªUuVݻ666իWwuFJ ,>7oFvv6F/BkѥK [Ǐǒ%K0uT믘>}:wgggy\x14iSNii111Ĩ(j{n޼Cq1) [[[:t/^ԙFa6mJu}6l؀۷c"ٝ#,, yѤI7}\xիW5 "b{`gg+Wѣ4hPRY[[wƍ74֝8qΝ3NQӡC\߱cG#"" Q>Ĉ#P^=|gXz50j(gfeeYfZsQNfPR%xƺ˗xg0euDD 8cʕHOOG1g:tOFHHڷo[Pz쉰0`ԨQZi.\Lk7n]"-- ӦM+p5=n݊e˖ڵkǒ%KsNjJ /_FFF_~vi2eggcǎ C||ŵk<|0Z+VĴiӐooo8pW\_|3gt'VJx7nggg1111cݻw=ZHjj:+++)pB;v[<]vIʕ5J-[N=zAV|MqF#*JɓҚRxd:Og}&dSoQFzI,Jȗ%7KKK;wƶZh!gϞU1|b裏5 @I7{qʞ%"*++ /^Dll,RSSQn]4zii{!"## GGGnvvvEƍkHt?+++ :Tѣر#ϟٳgLɈѠA4oVVV/M(iw];v iii@ӦMabb89r7[oeжpiuzG}A"͛7#..ARpݔ^j۷oGtt46oތ.]0@$""*cHDD/5{{{ܿNNN8t\]]Y)DDD uTj A"0I$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD/)Abb"LLLPF RA"\qeܻwhР*V3k;wֻ=EťTxq1vڱХKлwo;;WATTq5)_e˖]odd5k:tadd6дiS@RèQFyzK.aРAx_bhݺ5֯_O_=/;;HHH@ڵQ^=T"=w_OO"1ݻweĈR|yi׮\pA+OR_zUN<)ׯ_nRRe߾}WWׁ9sF襤WJybccwbcc7ann.&&&ʕ+'k׮剩 cI\vM,,,4^FFFϚ5X///cR=z)O=/,SN<鼀1ɓL#L>^ضm[̌3FH^ ʟNbAwJsN#55UrҲω'aԬYK,a<o73>c' 2`iiY)_<~GNbp=|^t=cڵ 0k,)cԨQ>}: 44O>ܹsڵҥKQ|ywߡUVO> 7gojcLӰaCt{Qm?zzj먨(ܺu wCRcǎ:uܹn݂W7YYY8z(k׮'Ob֭qШQ#1B9Lصk=wjժpwwСCcǎ]t`ӦM C 0k,yш@tt4`gg5jVP?~'N(_rŸ{.mۆH^^^񁵵uSiiiiԮ]Z͛T௿Ÿ ҥA@+''۶máCGGG 8mڴQ{nݻwޅZjjڵk~:jժWWW~sP;;;MϜ9#ԙjժmE\teRPySbEYrcNHHbjj*2b%_Kt1bgdd$VU+V+++۰۷k)iYKR^C7S\^ϝ;כgϞ@:vU_///eҭ[7~mcW?V/@9rdee<^Co&uՙOR̙3돿[oߢ(n46E^^TXQH݋unf/ =gqӀ777 u֕"?nZ~[uq}IJt0`珗zرcʱ:tkK,bll,әΝ;w~ˋo&k׮ݻw9yEga?.FFFbgg'>X,ɹI&ﯜi5kL|vZUNVe$O={e˖IPP :TY߅I}@dĈ_رcjժv eFɔ)SJtj-ZȜ9s$00PO....ʺe˖= GwrF)_| :THXXXSiwեK4o~@MsER eժU+iӦIpp,X@yX<<<5kw}\к0S_ vA ;v(f͒#Gw:^C7^HJd„ xb5k4h@;4e$vƐ iذ. ѣJ?X綢eQ%9g'H_ӧ#Abi֡,bdd$:uٳgktZߗ?^Ǐ+mC}*&_u /S0E@/^7MQٳ7o, H-Z޼yJ")77W sssʉ|Z/􌌌L'n*cT ???|YYYҺukE){AxZr8;; ^ %m RB]^=4iڵK=zT̜9ҏ__ʕgj+45֧*TzAESwo9|p?\KHHȗ!:/@:H,Z IDAT-HIODd@lwCQĈUvϞ=:%H,z/9A=}cjj*Ν{Abia󂙙`E)))煭[KC/ئMXj޽޽{GJe|;wV~$(uV' !ǎʕ++{,$͛7 QF.%Hlݺu_zǎ+ Yf:߹sGoAe SNЧNҹ۷o+c͙3Goyt_cz؈3Տԯ_TĀ\>ݫݒSI[ym۶zoj۶,X ΋/*yN>^>\g}}:[J 5RFw9jqvjjҷW*}@-֮]+>>>Z uX[_ik|z-o=%H,z/9ې 1--MwYY 'O.oKC/ÇU*W,Zyԏٳk8q":td888`(0_NNfΜ 7osn1Br''ҖIwժUabbR}_Ho޼9|MiUݻ@ 2Š{...HIIAJJ RlSNz٭[7N>]jOW=qU|W֭2Dvv6~W̞=xwm4jHJHH@DDwy ۷[_sjժZSLѹgsFU]vMgرc~z,-ҰyflܸQsNe%JXn]m/K]T+Vw}D``࿢N:ٳg_z(b *ԃQ\rֈJ{t~/ѿG7% 00~rܹsgZ 5j(4իիH-z\noC9jժ(}Gk~4 >O"...\e˖R߸8@ӦM LhǗi;uyRMiӦ!++ 8x oߎhbݺur """R48֭[_(˃!"prr;Rp*U SB]߲eKFLOOGK~pssCn;9,JÄ tiii 777mu)pE9z/svq_~ؾ};̙~Yfv*Uz!ߗ/uK|=ctgϞ kkkb֭X9rD?u S*T2Dz\|~~~8s g-XÆ +6Կ1BSX}_z;wΝ; M#2,DDD֭[ v``-jժ4EW333o۷g}Ǐcܸqr Μ9'O$ܹslذMcPX -waS{MHHoQ>իWcԩHII={g@ѿ9,UPiXti%r4ŵl2>|iii7n2=ɫw}(x4k|_ڵk;uIgX@={ػw/7oѣ6moxwm۶aڵh۶-BBBMoggz 9r$,Y{bҥU7xZ^tVn},--1i$L4 Rرc6n܈LL>zU?Ď;py̚5 ^^^ߪ{^Fxu#G^f:www;v r7@ܢ"Awaa^I|=qPnn.ƌ"8vFbnn.v V7Rp@XXX\#((襖cʕJo]_2 b]aM?^޽{HNNV+O\\շQQQ IƳFxx uׯ/^1д x_b::h߾=~A__EEEJo*& >C>>r?T=vZ7С ܺu gϞE^^ yf~1ix+jÆ A`` 6mڄ 73lmmSܻwO|GWW6mm9R ;bkk |gغu+u놄#55@k2}`@\\ WWWҥK 3ڵ+666ѣ.^5k ** D^^N>ӧOcxeЫi&tMo{/?Ɵ _ /^,7A˨{Mm քX׮]h"|78x .^}aÆx!Μ9#N^MٳӧO!JѸqc4n۷,;vDpp0>] ⧟~B=pdffb߾}u aÆ|859HRիܹs믙pܹ4iZ›o)>gY"9sHNN ^zU+ɨ1H$"EBBBgk\ֳwU$ʒakkr\W'!"EV\ t^'YYYXj:t^+| Dll,_m۶̀DDT5̙pl߾A 8|0~':t/ʃA"m۶0p@|022fffl""W'!""""""'!""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDDTJUPceKtlmhv0hPCJj?y>X C1H|eg#!!t  Iñcqغ5?..KJKJu 3VV7aG!""""b606UX^PPOqDGgѣ|e0o CCW.V"Fly9$~*< D<|S1dH#VF#gJ!""""ZWFF/)YB).\HHM-!5//ng 8}$"""""7R ڭ LO;89A\\.ZKoG7%%aΜHO/>w@Æ&(O9<=Tuj:up|rb7ި##UN"""""bX\ItX{ɭJ,Y4mj~ M qz ֬Dv_݄'OƋ׎oʽ1~DGgرU|\kgٳ[kJ9Ab22oϗ"))99`W$,HD0wߵLj琓SC㣏\wf*@7" jK9AbݻYn++C&&U+eK nm4!w_nLn~GrШ\>ooGx{;V{ՖrJ> gJ>СlljLՖrJi33U6mZ |eDFf`ݺ{1- Q6#hyd@WmwYKҥFLѧO PV[IDDDDD .&Lh/FFF!bbTG\/E 8;8/<8hPCeD'!((x(7Ν0goTr zrZI3Er64ELL6:ughucР4!RQQ8y2>BNN1/oԫЕCU@LM33 _Kg3 pnJٳO dpp*So@#flݻ߂nHPeVVU$:%%޺6mP&+~z~S\_XQG%oYMLSW6+ܙ*QN"""""bJz~b W/;ۛ@y󂐐+>?_|bw_6Z x8GiYz{{]qyÆ!!ionn5-' |&Q,- ``B)nHŔ)U~S"&&>>hӦ.";g&"- ɓ]O1jTz&MLQX(Ehh:^^pqwRu ЮBBҰgO ?A((d\>}.whydt)o:u0dH#IDDDDD5D=eڲ%*2ӧ_E``2`<7Dn}pp*& ymm0sf+gXY)^{ rĜ9n00@>h[\xq |8tKСg@n9:EnǧOT9AkHdܺ"ԯoƍгxNb$!!!4 tF*IX[G[je1\dI`c*]N"""""bHDDDDDD5#""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $ˤ*VX5k֨\/HШQ#w=z4$I<˗/cɒ%!ݻZߔt Qǭ[Fnn.W^V>TN:!-- н{wl߾]+e ׯ_u֭[d9sNNN5$={2<|ظq#~wl߾NNN8鉼}:~Zן pa?^zғ;]*~HOOGn0uTi4h1Haر A_Ç/^Į]0f̘ZslOOOouBZZv]n(J~|ԱcǗz%E孡 ,@zz:0vXtÉk^#&&&ظqW֪n455}-[݆ Czzzi/^'Onݺի?lDDDD$f6l{{{$$$|@"_~wEm')) GPP={xxx`С( 'O@m::Q}WfሏGRRҫG>}T;{,9xX[[ &M*3@-((ѣGq9$%%nnn3fZVZΝ;8x Lw^1MzSH\|56l8;;+ƥK{' *,,Ĺsb߾}x'ĤF|_vWVsAEbc8}4aoo#GGbcǎɓHJJu놑#G jkkk1Mbbƍȑ#汳BCC˂|† *ܟduo |@ׯ%%%B ©SѣG OOOyyyĉDD2eBp1Mbb:,..>۵´ysttƍ+7mu& 4)uSCiQ۷PRR/""* 5 ϝ;';wҁe.̚5KLqF1 ˖-ƌ#XXX]]] 4Dž3g [...̙33g EEEjՑ&~w)̜9Sh֬@h۶0sL/T:Xر@:tvZa͂L)ƍ@033&N(,_\裏;;;q۫V8HErrJ(,,,3H9sXN: _}o \\\uk֬p8o<-YFزe0fq:|AncM?o 4-uҭ[7Xυ;w }`ii)tttv w}W'Zl)G"""b 9/_7n,=qP"Åx,h׮iӦQ(((J^ɓ' ѣGW~*oM+0tP0}2f8qyIIlR˗"G =(HAhӦ@XnӦM'OAP$aҤI ),,wp[ Q"?veWC$6LW\PٲɎHVoŊr={&بDDDTq3f{rC A֭ѭ[7qw} Pv15kݻw^n͛ Dm۶)oѢ֮] Çs޽;O>-ԩS}6tttyfw^֫W۷o9rssi&6j(_q#G,s;111055%>sܿС̙|ʔ)5nmlcmӧOG喽曨_>f͒[oaa!d3""".={;rܹ#Ŀ l۶M6{=邏͆ 777yТE k״s8qrvoΝ;+۠Aq0}& ʼnxd.\DԫW{.s;...HOOGzzvP8֡ZM[X[}^չ@[OLvvvzK4PVg{8+fԩJg455E˖-ѳgO__$8HvCeo׮"##䭬ܷ7otlOed3f>|ReСo>L6M\'tĈ>// =maYs슡:)o=1H$5^Zjf͚)].H6jԨ7K_ټUVMG#GMU5 ؽ{$VV:tv˗/w527A"""TC*].BY-^tEEEZ[YչouUt0\RRJQ6mM_9ŋVS >#Gcnٲ%ڶm-[C>fΜRUncmyU炗A"PNNN GL'W&ouj޼9"##ѧOU&Msθv݋3gٌ1B Κ5 .T~z~дU_v#""PpuiA@PP8F,wM ,,tW\c ,wT*Ł,}rJ_6>_$R 8w9|,}eVgknݺpmi={///;Wȑ#!Hm۶!11x7ʟpuuUܹsiWG#"""TM4 c*XS(1x`rkKe'yСCѴiScѣ SSS 6ttt s>>>jO$)A~~ܺ|̛7LWuGDDD/I$Y[[cڵ7n"##ѡC...uΞ=<brDL,weN8+VR֭[Hj ҥ 222p$%%/S 5j(\|Ϟ=PYM'L={ "":u¸q`ii=z<@۶m8,Y>>>pww-?oi%[h@ kqeݹs`mm-I'OG5wecX[[˭b1 NNNJQصkWlff&~7u @_PRRfSaҥKZ[[ {RRRsssqApqYbb:qcOQ 7ܴƚ 4):m֮];+]`УG~UPDJdee BFFVg5 ??? g ˗/#-- puux%&Ɖ'cذaܼy[n.3ʴqU| HĉkA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDrH K`5ݾZ """"""ݔ$D""""""bHDDDDDD A"1H$""""]]HXD/+H\?+ۿVqTtr ݽ۶w+bO(3>cOCz&e&*ԩk"""Rr,Y_UaѢ nﻸ}W8Aر!4t.yUKsFgqFu_ѫ [X!33k\PX_}ԯ_ @hhnܘ B CѾFn_tPOEl,-6l믨=6[o5Ν6ǏWW[̚g֭X|cYub|q7qǎMF&Vⲿۈ6şBHiyj2nDy&6ڥFhV޾)6rc%ܲuEݺ?~LًUޯl##}b˖1q1Q^4nl4kf>ڋ1cA*mX''~:r;BNN!Νs#?{ܗ.5 qqϰuX["00ja?WLكw݌'fpF<s{I+ysk,[捐,[vF)U\Y߾04w<5lX!%%̱߆>ބĉ1l߫Vǽ{8s& VW:N(kc6ukGF-{vvuҥj emX||6C8>,,1|_XCKE\3 Rv~hM6jw$i={B۶ܹѸqrU8O|ϫXTTtܮNS)B$'g#&&cuM?ŢE'PT$ŷz! `:NSHO̖-$>"|}xm˖ȃ]r" 2{ڵ4ҥ1T7{ Xи+OcQM6mʪg]{)S(,/)E [Ʀlqr?vvFDDreISK5 )33IhZm m#**&t8; **Y. Roˋ ))9k_PrX2ۻo_grݾ(..P= +R"""8U*@@@4 h3gгtt$nݚ;P};'NDҥ8s*yc#GnWh? wo( >:uj6Ӟ֭)Ə^7oܹG`aao™3S*t~Ue4/Gcƌ=0:uj-Wh?/˫.}1~4ibƍs,aŊ!쳞8>[+ʎ 1gNo!88NaPXXaE}ј>p-deΝDL r%FkF>m1-OyYUz%NCmkPR_?W׈O>.RSv?3f {{28u*ff9-H$]_^ӧY?fXX7R`q8zº9-u+11i/B"FhUCOK"00;w`h\_8۫LPW $$G|ښak 7zRe ""z⫯NbΜ^nHOσ g}sY!Cܰa9sW`I;;s?G .<.GGmf8+`މ-u 44Ӧ hg?/R-ruL3Sx(wv%""~1DvJ=Q;R4s\9ѪU}Ddf濔74C˖ann;wv^ ڷwßٳ<4nl̮O bIDAT -p*(X61œ'JIcVAs!,2CG^m,,ZǏU96̸e"5xT,_faD""""""bHDDDDDD A"1H$""""""kgZ """"""AD""""""MA"1H$""""""DDDDDD $D""""""4SЫW?NС7O\|Z+aʔ6 XTἇ-Er/|4.ۮ] pf4/Ju￟:-KJJŋz!dg+ͧkV~EHHK)kUqY\\kB9 x""""$ygφ,,L/bժCvׯ j:uakkQ^[[K4iRgǏ?[giiifmm ZթvZ}*XX"33WLgg|;puuĉ('Ҏ۸4D“ 1((JHRGGGTP^WW)Oqp ܉UkoUꖡ*[L?~MnYZZ.+:HKR)SV]WicM@y孊 ܘ `cc; :z3"#7aA:}|Ç[phӦw):vl{oʣ/7p/݆Mqq)k8w~e2tuUWiݺfO ;Q#J_Ӧvرc> 11[q2{udkk[ʕ0xpWl2]PUѺucGg}Zy܏ 258mCí-[6‚n՟uX__g.@n&.]Zܹ刉يs㭷TsBDDDDTcŋbǎslt &MV={a5xx)]$U>AppvZycgggw>-ڂ?!C;M\bI$9;-c$iiY{7N\;wbq^}͛cnhIi|j#%%S\v]4#+ qLvv]tW&>>EN>}&E*>RV"啹x1\T*04on焈,~%1?Pr33c4pt9S|;~_XXbٲ }+7T*`Μ޽5.@ WSS#"|=]_|}bNIĊҽXG/Xn22ut/=zU!@|‹W=KeHYm+R^,7:}Nʌ3jjbb``O"33W\;Aɩ6 CC}];s(Kdc]{~;wgا=>}S:j߾7T ڵkVnի&J)+[G_2j-[6Brrw&I=O,$$W6ϋZj[) rg_ٳlxx]tIIXdM>f8vj۳@ڷossHPN3ffF>}B 022F߾YZx~|utnƏz1kֺZ߯mcT '1cx{w6n<)Hj"==ׯŭ[ ==66Hq}krEص81^~Hbm] rwkf۱}"̚R߾Si~>QOPVV38{<( Q"CT!!%m"""""]IT(.@} b͚YW?Ɛ!|c];~<D"  3bkM6n܏l9r7כ6ѭ[:qq [Z\ ?Ù3qrƌp}A\\W?_}{+LMM7'TV 7ǓzU ==cwYDDDDDD  *o63Bn= /TjL)SF )Jxx8bbґC/ӱ8rZtnEݴG\K80|- 7BPBT 8T@MM=&N\W^/쬰as8w#}VHHMfg66*Q\\__79۷LV+l3uj( >>n0/c.~2.}gk>DcїɓlDDDDDt_LkjѷӐ  D"|v˺uSp>m['meADDDDD7xhgglr 9sB{}g|pc pqTڵl WWL?C=kk3R ,,LJObbr;ӧXv >/\Rm펲 """"Zӎ#:5DF-'JLٳ  ~4n`y<m V75;/GT.o=qho#8/` g=%:) Csm1|}wӈ]C"0:-KqE2Ğ`i)̙??'la  /O>*{<T"omSR~VPHN.Ɖ)˖ݍ~ɟcϞ XfLߘ1?ᡇv 'w?)m?0eJ𚕕w3㏧Ry~Dll>6m35S}}w0uvc,.;]ם) Csm1|}}`ŊIx#;VqY`ƌ/C0jT^Abw< p _#b!Ja l| *^QQ9HH(Ē%߯ wrTU5ii:dh(CM(^K8r$ yy2|YՀ<|o _chwc[?< R#:ZO6ݮݵ+/ʕBsvQɰkW$*+j+ݲuLbA ;vn@TT:))LVB9>_ *  J{5kc v4_ KrqA ֭ǧx aDvsm K꾣eب2~L{7?_&P(4ǦRQ]-U$vcpz :)`i)5z}:>V_2\ ~%WL)S\;Mkm#yC?O!<<[{=7ʢ+t,\]m6U_3/\^pv*+~Ds©SFohLLKtXYIhx> bf4̛7`j*5ul,:R?]QDDDDDѫ$64(k࣏E˕bŊC((2zab sAA}akkti"􃅅qqCÙ3W{U*Ow/D""""""YDDDDDD $D""""""bHDDDDDD CD}wK`&HT D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"L#Q\҆.MO3HbTW+PU1 kjkԔHZ\cٙҲu_'WJFaa𷓓LM[ͭ *53V kr)RXXHnٺٯA]I 4S"Ŝ'7Ķŕc޼.Ms۶1>~*>4 KxYb[6nXZ.^,+9 }6< L@ֽ 뵎mϞ;dxY""JڵO u{ۻk ^= .F:|I"--*]R9,,$pv6ǍN&kDNN-**4o_s89w\HϯC~~-T*x:{vGDGب2ja{֢J}9RFZZ`cc OO+ښ^ksou&r ()ipv6ׁ>$"))2|DFh'0ih8 9vH#y(+^ӧ{] j߾ ao ]{2y7/[.2lݚb46jfiiGg񅝝Kuq1+aX< q<._.ǎ),\\]-0yr?̙+{*s~1 ))2G;'}0zs7WioIGZZ끁v7ǻ"%Ew)v.vs~I3e}RxgBwn<kofݎic8<~5f. 8y2۶%#5UBr ۷',TVʵ26v~mmנ7.^y%Ç ),^zUl|#GrQ]u@;<Qi]d"[ <<?_3%JѣyxS:_׊(o|3vaƌqlQ#6娭Ur9˨jj5{qx8}P&<۽; Ӧ]~ ?C: uvV#> {,Ξ- ,;wbߑP+ρ:<ldË+jեVhUxHY @RR%,>KBmBH[υζݖeW!U=236t u/.nNZӴ^W32꫑8~<2Y#f>J >~= *z;AYY5BVUɍ:Mu$/O>ydzxKX8moN&"O/\(ŶmP(8F9! %% 8z4MQZ>*E_ZRÆ9b@;0& JJ,^w_y5TEw: !d WWK)pJ%ΝӌQ`8xt1DʕC䓧بBzzvLܹO{w𷍍)&Lpꔈ.ťKePb8vEz+))7<>>61QWDNN N.>1c1eG+&0wvv˫ɓ:yvٶg{u8R(s$\ңuبBxx8D݈ؿ?'O@"a~='R]e03`~<Jg!X+jmFrmkPw:j6/`; ffWiwt!Vƍ#:^("3?VS>$ؑHOBff ~mVE _FX66Z%$T`KʪR uM5>  0s`W̿+nH*U{4O`OX0*8wkˀ֘3۶%2&w8`|\+@뮾Xz,_~2Y#jkX&_~9W44uYKǼuO&k/=[l0H4ԩ 0sV 㭷qTr̯+υhw톻v}O\.KI4Za'v Hɓpt4æM#\NowtˬjDUU#-yH5㣏z㏯`r rנSut5F&kT*ƚ5!4I;`+(s 11e1='[Hㆿ:NW^ ju ۗ/}a:_Fl; ADy\&5ŗ_ýeԝwVR 2Y#n`gr sF֮fIC"EB` nou#a߱jFɖ]`Ǎs{ښbɒ`+W w3~j`$f~W'++pҕBok?5T*de̙s|.gj*~uҥ:&oƌzmZGy`i;e෷^zZrЌݲ%T+;S{w2AD"G$LѤQg3/Yr~ + >mxͬ7ο3ZW>fzgP|),ZE1h}+W28t5y9mH'5Z 0e  hj :~#"W @g|ݓOЛWW s`BCo0̘;- kʕC5 =yong#F}Z\#޵z㵱AݭZ^^V<됥 ia#9Y36z'M$\ѱYY5 T,t-ӧ嘇jTTٿ t=g˫ջ!93g;v1 G޲ ەFttҨO=#ҥ^s<jjOXZЮ K{$_7|]}.ƶU<<,G0uG#rioob[Aw[]{+Aݭ'53g}h~& ==;]llqFZS_;73mZN,Uq\/Bkzڕc# d-TU5}t+W1_jjlZgںrrjgu:;#(F`/+13MCGυv{JoY]5#ԽuGJmTR++^LDD @@nrw$X=gV2DF󑓣2/o]1ÂAX2য়0yr?G~nhq H+wke\˗_D++<zȳ2v6u5 e[u.Ǝ^:LޫLTި5-;fvK/rº[.ΰ4ر.X0?x7^}|;]681I  @31x)& IIIxLLDزe^x!ǎe1c˱z\-mnkcGASuRr ;fsK?Ilٕ%.ee ˫{L j6CxIn9ҩD"G _Z#35@.W!;۷'gРtuW`uH??^1%5y˻]uk֛aj\Z#vƽ6vtFWz8:c)jvv .]*kq!띈fwK?Itt4r&>v? 矅zoHVV ā8r$/&7N=] ?/{wvn< 5&r\O.[m9uK?RRd(ѻ޽Wְ>nK7浱 Z]/ױsg Qo\3rǎuj[hw;ěO gO'YqO`G;KH@||s7zg򃟟ےLLD>K{ DGJq7RXk@\\Yǧ&j} EHMZ3ǶS_s;nGkPS`С6Ĕ石n:S(X& Eر<5x1odnz'"bxw,8/]zdT*5J5jX"J7,6W[O{ӑQ-=WJ`ۣhb"›o5z‘ٳS'K}{0FP…RBVW_ s͚ ?_ZbLyii/5&HP#)G/jݸdZU;jٲA05\Fӫĉ|)gYYvN!nگ;΅l))2~s7Y%K"|VTW >{u}5Mu\1f>*B}J))2NV=h7jݬnED"`͚a?rt4gLmǼwW nka!ƍ#09!dHb46tFN3gt1wd-㲳b l/'d++H̝/W4b֬?1t#|s-;txX2T*5rrj|E-L GG3ܵvm隠jjq]Ʈyg_$^: ''3H5Ç;wc{m}uW_T@XX+`AP^K{#Z]JFw"E9ܶm MW&Rfbǎqpp43wn,Z[ZdK$"Lꁝ;ǡK/=g@-v3т\ ZZWFx1oÆ9Fa1Rff5*ѧBCX =68rΜ))Ftˮ ? 1Hùع3]l2 xx,[6=1YX>*;0Ha[jzXe.0Abw]o~"""bP'H=Y+* Hb̞22Y#m[T*5,,W4ȾG+/c8_~9NxʕJHb lϲkmٳ 'Z I0o^K 46PRK̚+`iioo r^qo<7ˮE `6FDDDN~R \ծ}]w}}өU@}]RCP+-C4cf&ho.:R(jОT*jQ^.GPbQs]RoCO ^ JTRvnN^H[RQetiUژk.\Lz]\>HZY⩧||Zrr9"WT\>}p}0{/ aC{c׮4ۗz89aPG,Z 77 }X0*r%dfVc޻`  HNQ=>c۫Fak,]:HX(ܹbݛ+W*Q^.D"Bx1od,-}U“!J?;%J%n ^x!*aK!2yw.ڛ>(%},j 0|xS(aHNĩS(=wM>\e.̙"ؘbXg+S #0n ۚrDD50,,puB31!$,,$.?g!3۶Ann-T(-mT*Tyz`gZs$ؑ<f/ɓ.Ǿ}ag'5lwJÖ-W \UX>"eGʮn ӫƹjU`ܿ}X!Pϯ3ϜAYY|}mp}&CzzV++ ƏwPj=RS^~) V;#?k '_~>wWӫ\MIDD ;y>;C6náCZAb^^-6m)6oChRe9wމ'2ouaa9X Hبo ,,7a׮;t۴)61“8 ggs|QTTȱxq$._.޽WB:g,_<K|ոn[بªUC1m_iXjh=石0d#VAW֯~{FLPj%=>H֮3E0k J̙sǎ~t =!V 3J'$",,vشiZ&k̙": 116!!>w O?7ϟ_6PG"";v$ZUز &-ظ1eܹb@#eUy7>b,[6?"f͛Wys%:a_|ypa֓0{{)A,Ӵud8q?ٳnT;RIߐ'HFcq\}X͛G "0@'M{XX. ; ׺I Ô)''3Ckj&$T@n~;;)>8T;)Ə By5wt&8֞SPϓaa!-.&)7\SRd u« AD@H=<~HuEJII2K/G x饁JHHDCrDFF+@ɓal?ukP62H=W@*Y "8:DDD {cu&i07Tp 'gf&+COO$O/FvvJXXHnʚxzZ!$ dgvj֯kڵpз^~ySݎE{7n-ٳEr&xY@$LL4ݛ3_'-¬-6Zsnmm//6~Ϟt44(ѧXͧŞ=wb„殎ee UǦi<: {G #7wU*5jM(p| ,-M0qkUV6(YYՐ1jSnOȇHebT55 (jIV4z ֗1d6kR]yBcn&Z7٧[YcPG80dԩB$'W"- ek׆`> c7x(VOIA,iuYq!!¬AAvm./Uf֍u\\9R1mРDAA'"SZOO-]Zet(5b8;R Sb('̚իc`cc*LѲ늼[R*PZwwK_Á8z48z4GaӦx\9ׯk]D+W*R[ ԅ=ݽAb`kk S"|.INR^)1Y@,m t֟::a̝RUDEaٲ嗻;UƤoh\JLskU:TZZߡ늼[Y#`y_ 5b|M:*aCNhLj-Cs9Z'DDD6<=-QY)osb u|I;Ww~V05o_s6 3ZF0AJ-4LlmKkvvRL? //+TTȅ[M_&u|VT*ZuuJ|aoOFD]Y,5;맟nh_رa8x0SM{Ӎ~S Q^JB998s!4TSJ5kBt<Y-ȻF ͹РjU"<7""Jm[2.]*{gc PR]ƴncSԸrvvV0#"""޴i e6m\}c[>HS:˴e߾ ]2{܌J=VkfllwWQ\\P'qB٧^Rsc{wklߞPRҠZ&yi.޺hoWҤ.&F}g| bkMR/]*q!!ssV))`鸛4-mr!i&!iZ0e`o_&,-M ED'1}ZI_?+S5+VDATcl?e Z,W_w*x̞pt5 ش)Ux `m[2~@'˗ˠTdX5.{5oj*yРDJ ^^V.fbtT*5Nɓ˜V"""ysO￿gÃz qqع3*^}sŬY4̙>7.؜9g|E<`aa?,āEX W{ F9 k0ZY 4㥗aLxzZ\Dzz qnho]7֢R#̊dX+/a\Γ IDAT hzۗR O? HH/d J鰳3EQR˟*eb r;w\umo/}c\KqRZ3oo6O#%E[ nMLD6dbѢHB<=VoIGvv z &i㯿f ڡ'Oয়cJKP_ey7Æ9bϞ4"8 JgK0>u 8:J1d#xeT,,5.{ifo6{S4{2-زeƌq'K"axh=[c&X|0}u.b^|1=ot:&عsx# gi=rq1Ǻu1p]i1cط/77FwwK|q(,[o kE"!kh7r֭ T]'UTlޜ nj*#…¤A"jP,^*X Сl9[&I$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD ٻɤ@ BKҔEIJV]WPRtwm첊, ,*"(UPPB:m&r~߽3LBy$}>ܙsDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D"""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD@~)+Vj{x_QVfq0cF2LDDDDDL&5HK+jс'O={F3DDDDD$j1c++3`@6a)r]F1DDDDD$ZЯ_s'Jq}Çܹ0"""""&p""""""bTL%%5~ f:΄2C ?V12z FV0"""":WΝHK+,臔̞齐J#>nFFF% 4:E⮻a̘i\n… \y{䣤D&\~ׯ9MKߏ@7;ۡOfغ5oq99:yg;\Çпsx*Kdvǰoewc$n@@mg(/7`8\^:cݹ3?_|~ȱ8~ ̛GڎH[\\ 2Z?@v1IlBmA~IIx= flْUhó81II60g(/l ÆDll0N.W_]DFF%(O MN]KG~~L5GddJQTT~Axx-u>]?!nݢc}z+"+ Ƿ'!>>iiX8 qT)n}; :%=ZʼnX8rrtȨvDDDDDL|=zo=)-Zc`6 9Rl$.Yr h4/yۓh!ؑGi%LF]hx4җ_#-'O lܘSۢGg;ZuxA~XoZVVfHE611-[DN[5l*mڄ{wl8y ^{w̝7ߜhYȨy)S$]-/{vm;sLd *Bl+\.k0/0AűZnz߾ b޼nv:EU@NN+ĦC=sJ2잹]{\]2ceRvt,#|eY~̘6Eǎ6ֲe0Focֽ{4h5**ɱ$ћ[$Rh6^[ Y8i^^j6 dfZzN[!>>zlAA5̏icXCO!"""""xOb#SzJ!T3aȐo=^ϺwD"vx25h,fIX1$"""" $62~ٌ^_WUԿ PLv]=JJDDDDDW{aa2ik6 ֍x=U[xx k\˳,IRc%"""""&raAA5L dgSYOSKd}qDDDDDterӫD^r*#RS\.#Ňl+TToeWUwo>}p7Drax>w9.\ʕp`!bcm{Ǎ<8ƚ5(+LxE$ с>= Z5UMNO&@@&Mjm3CQ zbV>>@`:mZ+rDDDDDteīcu8~?={ѯ_3DE"3 ǎ# gAN۷bѭ[4""V>_qDDDDDؓx wnĉh#-͛&-q X1zRS sg j7aZ^c%""""ƧBsBvEFF%jjh:5*AAZqX ~)U0̈ Fq-\>J+1I$"""""FMI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$ \`6ѭ[7$''cMX>|CСO?b]zj$''c Q=3駟^t8y$N8ڵu#==ܹuY9s]we_hDJJ bccYc;v@zz:z`1IlX&LP=k.\E<nVEV Eh׮u4DGGG .R;vDfxR9Q^^l6cϞ=M.Id]:γ0DDDLְa0l0>>}ί 4huya޼yu^˾ ۗuDEEi_555ؾ};0n8L&lݺ۶måKc֬Y.+??k׮QPPdwqJqq1Μ92I둑K.!22ɸu:u ֭ӧh0tP̚5 8x лwo{]S|2;@ll,l٢>wN</"!!zByy9VZG {ԩSѡC{Ogu`0SM0k׮Ŏ;PTTVZa̙6@ݻ6l@zz:7ocԩ._/Mow4TUUaaaa꼆%111(((իq1TWWc;8|$""j՛N;w'@Æ SDuuFQ,]T9\W^ȑ#vvO<)u릮sz}w֬Y#(a6m}">>"##Ş={/%Ɲ;wv]vueSO  8P\p1زe ^WQQ!h4b….׼x[oŋŲeDttݶBCCŇ~p}O./HNNN۷زe(++gvZ8<879W8DGG۝ӵ뼿P;Zr [e˖b֭>#ՀIݫ6֬Yv^{M!!!E"::Z̛7O^Z|6w}f] n6ܹsŒ%KԩSڵ69rHHHP{k׮z̛7Oƍo1bXhxWٳE`` ZjU})1"&&F<3?+ViXfJ1p@uQ?/^|E1vXuÝ6?!L… ҥKŽ+yws^tIMԩS+"ϟ/ڴi r:Q5LgfRy衇O?-VZQԤh߾??)n'qi=o.,,Lp __}x衇ԥKѾ}{.y__]4o\g~C+suGuQPJJJD=Fqqq⩧K.3gT999>'Iu`ٲej!==w}!CDVVl5)3gͼ?jC7&f|n^gi޼x뭷`QzL,XNP? @\x}YxС";;f~nn1>} _mŋ^~}b0i$@1IW/_DѢE Gv V+e˖9ݾĉmjJAٻwzn(BCCqFup#GnMvmBy?Ob\f[ 68\Z4kLϯS]iٲ >cӦMpOQ֩\x %rO<:Q}ޘP. nˍ7N.BtYQrSO>uݻwǟ(f}aӦMN\fkxS 6 J`޽}gwIuBidzn|ڀqʕ+i]Ƒ{GGVeff}9|9s._4Jg1cbҤI.1tPSֽ\'Okڱcuܕdڵļyn:9O|V'[Ç3sޔ'ɇ\eG]xuT':F7ʹYs'NpݻmxYWu>33?zgO,IRsΡF[`0 +?#ѹsgp S9 IDATܯ7w0C~( >} **J]>%%=&N6"A,zR*{դ.88أRi63.^?L&q 7=)We״n:ySu9J99b !kcI<e%8q5cǎ66Թ͹rfhZ:im͚5N*^u@;0LHJJ78{R6~ Aݝ9sFС.DGGC9z(t:]CCi?~fkvرc1}tumѢdپk׮5jF#G8\ZۺgAXOIYd N: 5qmjQx&/yVHHHUyMJV[aa!ϟo}ɴ7u[^^^X׆u/N:e˖|I)pX'[.\Qux?aNNy@BBNk;|0.] ?>|gOuē$S۬=rR[x:RTtQ5rv8K\t ??OY'##SNEAAx6Djjjpauŋ{7ߌj=f_on 7܀'xDDt4 ѫW/ʺK͛_xwo>tMkn7*"~}^ѬY3?<#F@ԩSoM?~ǏO?͛7cРA(//ǖ-[C= +eЩS'5sAZZ:u\8p7nDxx̮]F\/^UV'NĔ)SX9~8Ə:QU @&&&bʔ)nqؼy3z)SE8v6mɄv믿F```ϓZWN8w:WG!F͛7ǡCzjz$%%ŋ.D_èA.]0`|'իL߿۶m {?3o5jDDt"nРA{%.'JKKW^D^Dvv׫hČ3D^^Y]6L"""B_~ug͚%;͛7 " @t?7=WE޽k=Ğ={D~?جPz71{l'zewl~~~b٢ȧς 7QS&%55wƙ3g.]`ܸqh޼U}kF6mo,4k )))ݻ l6áC8'N}򅌌 ]ϟGHH:t耱cǪ7˗1zh~uGuu58G"00Fn/oDPP Nԧ|=O>:;wiӦa˗}nkskȑ#(++C||j*ٯ_?hZ<D"rd„ 8v-[#++ qqqҥ wIIIW,--E>}0i$:D""""""R1DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$ǟ!p--z2 mСC$FC@ f|ݛj'ʊADDDD$TQaDZZ,Ӳe0п/XUo:I"@HNәYK*!ǟ Vnݢ{| vnkΝ#Y$tSxᅣ8q55f,]z |0}Εo}б#D""""kΝ@DDy jY}=f﨨@0D-1xp =Zr΄2bDDDDDt M.ӧ~z w}4֭x;g{l… \y{䣤~cڴ$x꺍]wYήRJ% 3g$.]T ݾ=  2KG}U,Id@M]ƾ}1fL^xܨ6.\g%dHDDDD$OMMʪBffzhP r-Y`v "ܙ|=`$Ng?guѣOADDDDDLɅ W].99 BNi2F9tF\O3;1gΔ\mDr!>>!iѮ]:wĉq=c;utD̙2T͚lDDDDD$\< ~O%%ƄPW25jmǏ!2pGEt&n$R.6eW,X'1I& .N>j";2~~hmDjAm**طUUFݛh>>1I&`ܸV~xfpܚ5(+LmәG~5,8"""""&:tq"/(zy)ri|lޜamx#,8""""k-lz̙=a\=uFDDҊQTT- _냨]_ؓDaŊ!80כZ;sUP ֲADDDDDB0 M۱c%|dgW`0#667Ǎ7pE_o$u]HDDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDDtgȆ\h@67]7ؓx%_~ >}eX ;sgϲ)(Lr?]h9YNW4K90M?){ "bH>MWB~pI =LyXeF׷ӧ_~mLrZzeXdbY55Ųl "bH^2޻ǐ ̘!{[^}t 8XTvf/n m?DDDLQ99G^xyٻ l<к5Hr20o@t{QcO~h0qq1Ifdf?  kZueG`V@nΗMNϗIvde˗7)-2iug <ܒȿKJ}<0n{عS=|8*>}pHJt}הy<9xh  v|=Qw䈼,7* h^&))Y]-Cݾ]?>C^]<)(IHzGee@ԩrp"whk?P=b˲<`Y3#?^~ѱf 7@… c9st"e tu~zr߳gaaWn3{X۴ucG 9 s!;JJ>}yO/ߋEӓ$18XTvmlJB];mzi}oe.^}xYׁ@!V]ض{R$2IcDŽ>eYÇoX5|$>uKJ6źeL6ov+\FX#ج}7X_~qnvx/{YYc9fg'ewѣwi;{:֗WzzԵ gOġCݟ;w61;KO?ρ^uu8+y,mt?bF9$Eӓ$[gOyAm3gÇ7޹TݑڗI/e]|}3wqG7u:%x͖ \E3g sO=xzTVH*+p 믖+*m,`zwm! x -ȿ#+GgnQlGϺJrhNk}~ewea!еL&W6(Zr3g, eBG//\{dv#*33@A%O˳gh{}rD>%TF4a$W"89hM9s 8*Y 7|]/|W}]'*+U/]jQo:^в%ж:|A8{S$[?j⋲Gex$_qdtϺJCIȑoo?|\oXTqn14-NϜzYxP]e /\~A&J/anI^o-&Β'ZW7lػW>ºwēr̔CQ8m<{^1wʫ Wc˺/xYfxRΟEe?DDL |&UVL Ȉ36n[R!wKKӛugk[WY`>{| gyiޙ3+"@Y;&{'YN<1q"[2I7ϒ$)-:$㐚*`*AA7t}l l4g_o9]s4vr,?ގr};"9Gz}%4VuoaC\}[ǹ)"bHWO>={/e.rs]W.Ms޹ڗ&gkprYGGˆ#GC/qVt /]&_}y*#*ϙ-*ɝI]2a޵KNW]~ِ'Q.{&K: p%- SO}N}kNe4s}V?_ţ稷ycw7 :gyZLD<\sR>N._lLAξEu4x K#{qqo_YWIw :I [E~ޫK4M`ziico嗖}{zpiGV-6<ٳm A6mө$;vX}icġP>毾'L^}9i`mpܡC7稷ykIbS>yӐ \sضj}""&t 4I6t:`|9bmxtK.]rt酅ڗ.wmGq^eyV^6j{k4x IDAT-Ӈ 7떔A6Ow`ͺ'okN˖ɿ|KBB,IС)ƒ:J: p%H2C б|2ڜM<9G})KiH@ANZׁ=$Rp!гq!RW]{9C~neRi2̳7}UG#8'_ z^ /֝=[Gc?Z۷qSFk|]/_ni+ e@6\e5}>䨌eerS=/rٻxY(vldt>[$|JEQ4zN=4=z8ġ!۷41[SFAܺU?jMcu?}Q0cw-}uxEz>\z鎯>oҊjJYo87D 'je> 6g{OCdþcG9w~tGB˵nmFr={GM(۶ɟi|gIh˖rP'>X~-/S?CY76Vޏy23F.sLu:G=fK23e"4i썩\n 9" @رrݺAlHh4$8p@hwfylS9vL^&j2ˌrG[(j':}G ~H-{{AÆ>fGf֮_.  υhM޽slϞm@h.Y"{uXd<RS9fʳ }ޖ7cMѕ!-xef:|1h5 j?ѵOЕ- ҥ=[.qoJ",̲?S믎q=z8^w xٳϗӆ __bQ2}L_{M~r#GNLj(\CDDDDDD*ޓHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$Q4>! I@_??MGVVjjj\PZZzd2!##@d>^DGG_qt(,,DMM 4 ڵkFsMۊ `0 (([V_|hӦ O~1I$o%%52ByAAZ4k50 8lVE@@@) ФӘ ` x&_rߴz[UUlǩO=Ӕ?$^M<L&=F,P]mBNA F˖-Y93juBh4$&&"88^īޖ '""&(*$сM(*(PTT -Z FDWk5#88f^dd$"##Y1Ɓka^oDE""’ @p-ZCfr^:HDMϏ:F$8~B3|ռ6!***`4 DDD5a4a4l@ee%4W=zjjj{LzdBYY!@@@ÞobN}cVUUJF!((HIcwL&C{K!l^gyy9*++f͚ٕUyy9a2jpǮQQQFJ:\l6C\? {]h4cBaaav.qRPٯhDee}[M&q!$$DCuuʹWxa0燀DDD ˲WSlVlFPPt?u=W^Gyy9F#Z-ewxsޯӪ*L&#""B-T떿?BBB  U$6a}F1`xu$z999q|2Zh(uZqqzVEJJJo46\eee(..F6m{y$VVV"77Wm,*x ĝl6#''v󊊊hwUCwYY08edd$bi4F;"77WChhM/_\Zqqqw(˳ti,lp+..FAA`0 ABB}z5NJ*t:}ۢ"c(++CYY&6<:111m˗/͛7GUU BAA׋W̽s{Ϲ(uGypb4yގnX,X,0xPPPχN+999X,f Rd^f1H  "<ט+RM&͐?fzTUU~455t VUɄ-Pzt:*++CB9r@{E4xa!7@ FeHyI%OI6n7JKKCP;çCz'n#7779!:::`ZQZZo߯[UUU!{^444󡥥GVrXnWTT6 a|hooWlTTT4{zz ݎϛTInx^ ;\\Gn7$IbAQQQRצhn+#FnW;f|>.䠱Btuu,}tvv aX1"`2pAUt:t~.+b= 2u(U|+xhkEZ֡NܳJhP^^Z !l6[F٩T]]6 MV GLQvUըTaU'HOaJHAe7l62\fP$@eyq/H8!?nKV9Aj5uɧ4m6DɄr+3ʿZ;|$PxCOC%Hپn T:DD&N\3DYR ej" !DY. .+,5j!$zL&lYPuz9Xu$RJj =w.xHA}}=3vduvvFm<ȍE+OCYvuu% ^*"Z%/0,ZC2r~T/@:kP444ȑ#QVMAIE*=֌ْy4 D:DD )Kξa^ .R.WSn/\hjr 7rժ6466juԧҩ XG}}}ȍ7B5N߈~?t떩<'p Dv{zb2eH455v@yy!O滺!ow_n%_;^7:N>ep l#E򬕱n%j2y“bCC̖tΣ=` euuuu2(h;@n(̦ ꐧ~Pl)vqȑ+,,Dqq1T*˕& F@===ʍJ^88]]]!NSTTij`P:!f. ---l0$)dOQQQHnēNn6ӭhwdv{ļOLѠ MMMzl^TplFnn.v;\.jkka6hrxR`6k2rƚbA j8,LףUjvC3QZɧLԯXoN$)zeh˗p+| 9X,E]]2;Uft^tΣlK02:$I2` g%"$L& ϧԕբ$Rժ,ڠhn8jZTUU $L5hPQQǓPSш|477v4T*y&$t,e555%׳999Viu:#,++ZFww7~?zzzBp:aA"TTT'dz9M8tPԆJB{{;$I ͍'ԁt)õf+(++C{{{2~}(oeeeJҿ,''E:Q6zvL%K%cs:`ө'''C9Tb$pBnya2bNOB@@o$A@+=ʙF8塬L9')ytΣlJzj""bH,IpAȑ#S~'?H$fDDt5tTjDt̒$IYs(DA P1Hc/ժժR v;:::R}uu5j5> ^gq@Nz>xo*I4)ݴRϻzs*""C:@lmu*t*H@ %ܔ@l6G}ɄȕFM&NG͖m{p ??LoX({<BT*TUUh4&\%"bH)6Ё./@SP_Czz|B(*2d5=3:F݆g$'mF,dfXmrllf1H<\|!etpHp|PVV:$IRq%a#@""b8|} t^ ʌF  $Mh38NB$j Ƽ !p8r IZ- rrrN X,ۍHF^ sU&R0qy^t'DX\.W.OZ NT9~Cd2j$I$PT)ln8|>T*圈6LӤVa2b[,/en@N јRKDr]|)׉dUVjp` IDATxmIcI朓)$I퍛TWp:j 9{{{iZL&!ED F~F F>Ab @SSzzz>DUU CtSSSIPRR@ qڊhҢ4Vdv]]]8`ˇԬyzw\B&II5O3fLHr<;::PPPUlv6 eeeZ߻`lcƌI*iii Vp^D{'8R:NjjjFlwvv555|-Xe_a;;;ܤzHLiʱ1"jڊޤKƪ+@+yyy(++cI圓!SN$sj̘1hhhNww7Mww7l6٘""GB=}P_CEVA^CmZ[[vaZa6V۫K-z2M$466*roEgg=YfCKK @b@(Rz+, 4g0bEܬ4DZ] Ӊ{rrr Q#R!/777fzUV>MMM00L|p:$ ===J8@5"i5 zx~(ܑF~f`zɜtvv"]yɁbA @ww7^/N'l6[D$C@oGP<n!7\zttt(Á{@QUU2IAZ1{OJJJPPPB ~:!O q8% ;޲J1bĈ,**Çx`S -g߯VUUU!u>---=z4T*rrrɄ9`X, m6Z[[IrrD*+yHmEEE!~#')ZkDjZ N(3s&r|F a.**B}}=\.z{{!ɞ8T9<# y9;*ۍ#FKL&9ol2dz;cǎZO+ ɞ8<ý*{򾣽꽌(] J3L].?v<JKji@*ZY~"jcTl'fTTI/p8Rb6 eQ[[ ł\L4r-g+ݢL=$IIK}z'h40S=DqlJ3Ʉ.~ek4Fd2999@OOO>^N3$+fX.X 1H Zmx<~JZOĻ'^8jH'x]Oh(O+h{W^~#٥$dByy9j* D n%hT5x;I&5:77ʐS9OIOw|ekD&*V>G1 azzz}~dX.*""Y I  1յ CBS[U~Z,Cj =g(Lxb(7*VҠr:DBii鐜|Adhwpى X,J@^^%ӨJ=pN^`0(Dke. .+lMy*QF)`L2j=™ 58=OJCN~KޖNkD:igL drhXPRRq8d6{2y,u*""GMPg#VIy"O/_ @}}=^">{Bec9544ȑ#Qjڄf;Ψi g:ؗ5JifFn_}1a,ΨADz<jZ@$)kl&+ rg+Ա 9wݫ$%,QO67BCA!Z9tpwMM.45@r8ZJ1쉾N P tpag~! DS9ȍ=4lX*NSSSXn7Z[[<}`~?z캺a}<Ȑχ!`X1ee‚O9伌 @_#ID=&ɁUC!ڔl(fX2uΥ+ {U{{;PWW$HPEoA Z,!7 hTaAuEJr%ભdhD @OOH*(EEEQ[V |>/y0i t:!I^W,=999Xk4 ^uuu0B.R(woo/B΋l6#77v. JJRH1nٔkFCUVf. ---l0$)dhkQQQdnZV+C$Շ===z8|0rrrhzp8$IPI 2q,sz{$IJ-gU%"XI^8|@XVFaFy"f|>8ΐ;V}2+﷪ MMM$)dsF l6x<5.++C{{;~t~&5bt:#{'hkkFIYVVZwL)H3$ &s$[ee4f!* EEE(,,׈t*xNIk]]1]é܎W^y%F~1LFDG,\Npçp8$OՇ!/VL$/ğZq+ݝc830j(d""""J{òe_"{oŘ4i,Xn7UVvi&=H7|۷o̝;cƌ1mٲ^ӧc…Zػw/:)c@~~~FЀ˗gl>c9^?`eg|'سgjkkQ\\;sM)SMkKK |Mlݺ())30{l%9'p:;;K/a۶mp\3f ̙ӧG=?T*?|!klٲza\ՅJ\uU83}x҂*~ꪫRE~x;`Æ hiiAyy9&My!77w@D> o>bL<]w]kM/+Wa41e\{(++KvލW_}{dik999?nL:UOu L~ڵ hii7ڵkp]O=M_2TOc8餓Ӄ_~;vnǔ)Spcرl Kw޹U76 zڪ1knneqUW)\l߾=䷛7oV>w_[[|gao޼Y3&>u:ʇ:qD~MM8|3g ?ǘ*.6oj GIivRy@r뮻NTVTbaۿԺjZ?(y_IIXreww ok׮pBz#ZV~qu)?[*f̘q߿of͊y'~ر}'&orsss=7u"x%I?#Rܹ3nkʕ+řg)?뮻ZѣŎ;Iׁt#^`Ag$sܑK_:POK_Z<"???lf9Q6MΐюA{:1};⢋ +::8}t@̞=[<3^sUn&MhxaQRR"q7{L,[L?^믿RݻW Bш9sx@u]Jqe*@|C*Hl,oY)4j~_q)= ugb…yyyJ=yR 9a2qe˖ *+P~ɓ-ܒTx $n6+O/jZL:UW^y,~ߋ &(ߐ߲eX,Z=Dyy'|rD.]T_|x_1o<+W_|gĈbѢEg}I{݉'nM{vc$ƪG*+oYVN2E|a`RMWMso 4&?wyx衇5\;?T*+K[Ah۶m ݦMBG}4,mr|OĄ āB~.=\R'WR~8|.>L/#^hZ;---l6 G?QXyC!RSB̞=[K, ,t%Z㉖tm]O ?υ$I!YzO~6܈A1 /mp6938K, O~8p c/w1rȐ nv̞=UUUIoۑcҤI!䄼r)D|XbA~~~uu:Ν ؿ /p@R_DeeeN8<3& ZzuJh"\wu!Ûo>3f ^{%jɒ%6mZ߾+M<rKX.B.7|PxPSS򻢢"Kͅ'|2n/^X_PZZ_=]믿 ,H:z!8NOSػ~;{e$jH;guVi***ƍ|;8S#nB 0?ѮWJ9B%7tL&SzIᆱ4FcD[6:Nydt=Ig6X4 QR\R.L>%ᇳO>ië٬OFst-{mhk>L0fqYgD7Dgg' ߓ$Ab"˅`Xn7iI'|rmO:{>}=@ߚN3lVC9@MUY97ۧ4dYU#{:4u"֬AY6>aX,&@ Z vI'V:Htҭuoz!\s&g9SA$Rޯ p睓QUu]tKJJtgu?[oEWW֬Y5k?x̙3 .DƬYPTT{@ಎ[@ w^/VZDj̘1GreZ *>444<9OJZ1bDmWS GrĉC>OwxL>ˍ~ov xHzܛ5j넶[__8~/g@&#`I:ƽmi<$a۶m1+_]օ$R uutvzV׿w׍ǿd߿7|sV*o>| AE00dHN:*u'+RYƪ[DGL֓lTmUOٵkN'OLw!bH"ؽ;ΠLWssscX`oߎ_~˗/nǒ%Kpg'ԋ%P+E&>Xvm`ŊY*M, u-஻ {{_}>spH d#9&'k/p=vXٳ{.~n;u"w:eQFAB$>|8$^Vyd3YO`x'=׋(sa㍈A"eˈVw_Mzz|x衾vƄ R1?zQ"M,=޼y3wJKK=m6mMn cǎƍ L|>t;>HNv?eVYʕ+;cEN=1U⋘ux֭)qv:'|oWNNΐ`Ν1駟FN$ؼy3?۹sg#}c#GāeeYy<٬'miq˗+7jy=W^y|Ag5k曾G6O)[e!Zn;3ۍKbժUg+ ,@^^k eq֭555)?y΅6\r%p8h4{|}={6F !Ν_N\s v;, .A馛]]]Kz"{'/]JN̛7OEUv=?~z\qؼy3Z[[~=`ӦMǤIpcx|o&n7N>dl۶ 'x"V1_7U?c8S0|cxwpAL2۷oG}}=~`ܹ|el֓DJ_:Feh4x1i$\ve())];cԨQxwCРLh3P- 2A-OGLظ)w+;|ӝTWW b1,b׮]#M*7|VWW'&M|o޼ytr@߿?lDaaazxbr>7ʰm5kֈ+B-XG3'~_Z~z%OY4>0a۽kD{{{IJNSBaD9X/{`Hx@tIQp aiSTb޼y%6,XPڈgVibSxeI U}v]tN9唄~ooСChllDqq1jjj0s̄k֭֬[a20yd̞=& hhhs=ɇlٲeXn8p֬Y}AVcɸ˕/+VF^ FZ{zz{a֭l(..ƌ3p=uO]w݅xgy&>#vرc^/jjjpzzn:|'Duu5Ə/X*u"ǪUp!hZL4 W^y%nCC6n܈?f^x!VY5R-t{ڵXn<jjjp뭷X=ID"4W\z -ۋW_};v7T~ql%*{n//781H$JW]] ؾ}{B{% [lI+HǞ7cƌʕ+1gz\M$ &?\|9-Z !nC yF8w1dlݺ"1hÆ ?>.\W&4: R3rDӧOFvI":\}0سgf͚͛7tn㣏>¹瞋M6AV㮻bQ-ٜчDtDIlO;4fmĉx1||oZ-z)emAd|2p$?~L:s3f4ϥTqs駟9jkk!IpYgnرcQ͆S/ffQR8q )N"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""T_'l """"""~u3sp)1H$""""""DDDDDD $D""""""bHDDDDF ZŌ  76-7dd6܈ӫyiL\/x-.xb7+W._3t1=˧D򚈈=eo.ٓO^e~`p3xxvB"kkoΝK}Xz\taU֮:=WbG3}46[3nw? 2} }{z{Q_\lѨKy_< ~͜9yf͚_5CQ|J$(\A9gfx^? oo~ѐh'k-\x*n,<Z ̜9ۏי8"""u/N;jT*UBiT/ksL/o+lSwo*+M$&NXd)^R)TҘN[4v{qFy1XerI)݃y4xE8boF6o&<زV|xa"nwa2Xbo6?\{i7._܂mn_|!f9sNWENQg1WĚ51mZ5~_goΝKO,|#[ףԪ|g{W{BWc۶۰spxcM\lv,Z]xrBLZ+׮@DDDɋwſ!>ᄏŖmX3c׮_a˖[q]A}?lLVkol-Z~1b>ų~pP.W^7ܹS_[n9 }v3v=tcx𳟝l{S0jTp')]\l_=~Z.XmTWφRd\thq a*+NL 8XJ?Jo2/_LVuǗhA/Z_¯~~1rdaԴs0fL1n1oދ^|Z±kW6n܏ v~ÉbÆذa?n)bƌѸUQ_ߍ+桸؂>Cs:k .$}i-{l#HH$ DDDh`} V34x 5"G,NoǾ}Xzn!́Τ:'6["˖,lڴk,ƍ7QpP|[{w Vۇk/_fs<'n^ltǗ Qɓ+~^|}iDKKiUk_boh3| !ʼ=e-J=8#^=en+$~a,^z@B?Ruաmo?>b݂Nݻ[`<+FW dgO Ǝ-NxG,I'Ub߾vǧ7_}B?~| ??x>_@y ދޝEqr"DDQ+F&-IZRIFT~QڨMPxcUC@N@Yˉ &_}ؙyy̲wfvfժXÇS4ֱu%VJMFmJeQqj+94 DDDdWUՀs1iR_>}FX,ɓ9KXC}JJ1)Et;8~6.^әP*UF_XȑTĘM[[ īy0rd|eT=EE}A~JjANDUU=ZUooO!5'"qqmJ *1~7%ƢM3os=3J uu^ ESe~l uuF+Zںꔰ\)PW77G덱ch[ˠP(T6I%IARRa^*V?`x_O/G۶~_\>H&}m}tX*ƎTj ?;F-kk2eŽ@.5ql˨W;fswwČ 5">>:lT=--ES`/ k pr-||\0l' ۚƔXԔq)y=9b ެ?&ݺx EAA<=O766w_g̙ζL"c㤍m ""5)(=).嚴޸,D"q|ె6^^޽pS`(g7sl2pƽVbcCc}ecQ\\oiixB)xADhjRu[ZZ+bnd "ᴰ6 J,^|ՅP(`o/Ŋ1(.2h[_~<իgAA~HL|2R5ŽOq"6QO!#>|s0mCO> yHL,đ#qN)\]sgFꉝ;Bp?,'mmѯɕ+Xx $l*,Xg1rh*NǶm kL\wQXX.]a fhxpv1՟]jp=͟SpbǎvHJ*Ĝ9V[ ۔] IDATZյݫ3G͛uY%ƁG 3 ݟ{ߘڟgO'xx8dׯ T*5 ԝlΝzik+_gHHM-FeeO25 GGbw))ECM rHD~Mlm%q=*qNӚ4 77G!9Hk%+<Íߐz,=fm I TuSR@sǣ؟{kI"b$D""""""bHDDDDDDLI"z [F"7D""""""MI"1I$""""""&DDDDDD$$D""""""2XiDL30mj\%K.A932&4CC"Fp444j &X۶o2ܼOIC5…Tl|ZYYӧoBbbO'Ǻ-uu EDDDD$q޳8s& c<<@mm`s玐J t` WW'ʺ:˫3BC~Ԥ2m:!v},lܸer{TV XY7x睍Z˩j\~u?<>3D"""""_pxo9tjX,JnsX`\|}e1Y5+_AZZAַO-]6O,C,֟<|XieeUX]8;w@YYֺfΌ48W)> Ƙn{.CvN/ R ֬y[ €=k1d7W1ĉ >~#X8goa?ʪv/{.Yѣ Y/glu w!+|2Yڵ>ط[a`yFoݻ5.hk38~/C>Fnn }zbٲ7]ؼyFj>bHK$8sf|}=i66RigÑgφ9!""""jI{;v|+߂Wg@D ٳ?K/-ݻR4woDFwfӥ3ԩX+waƌI:uDej5/>>]1}6P#$$ӦJB*!! II91Dػw)d2 LY(,^*F򇃃PNWu(<|? {{{QUUܒ6On||b[/Jw߭=&L : #G3hcH>}A&?biQhLII9% QMӈI@aa)"#Z <=]ۂKҐqEj0aXk\np]z{AF=BXk,Yuk}vpo s|k2ٳ?Cǎ0eʳ&ȑ+ ہWӑ}⩧ag'1cs|<\|}66Ray}q" lq!9y+F((Zۯ͎!!!8p](,,'PQQ wwg͜>61}$<|?|F!/>'DDDDDwINnll~/շ'T*5&OT6ãʕ߆%))9rɈ7ݹ$Æ UcʪqOVYY|m|6m$5y eL{p!E[R#>>&}Nt$+NwpB9q|:pnRSS7sذa:\ĸqUXx;{Әgk+mSƴ QQ CWkP(7CGsbr'*Al~m۾>Fi#-VVb>'DDDDD:ڰHl~ɓ!'beZ =zt߄L&-sX] eQY622 @~}:BѻwW:uӤ  C3jР^zJ8{q}q47F>~wBB6w899ر:"O{kGG;"t|̝;U' MH$VXuhH̹O{ۯ cRz }p+)gh:uF},=DDDDD3MM*̝;v,Dzv4@.êU_+RlqB*bbpwwFii%~pۮP4",l_)LkhhĜ9#*j>RSAPEL#(hƴF 7nd"#\]} 3|&Nպ˫Yxac#ŧF@ TTǬB1ȸ<#-߯ cJmN` ۷H$MQ^^k2p(/-<CDDDD-u{nL&wHIkuiʴ]BYYsبT\+&3ag'CRR˫ѣGxzܹ[Zcӱc44(0p`Odg7ߍ4%% #G.B^^ql+F5 z_ٯ OO=`]ѫ;'""""bHü:ҥMxH=|_qZH"""""bH faɒPQQ++1jk0kfܼ1Idkh=PQQwk<$G`D""""""bHDDDDDDx(^]IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_EastLansing_page_0.png000066400000000000000000001543311420322575300301740ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|[-mq0eKeM(K^ZZhB!e@I x-YP,[ؖ$|hpB^(8[l>3b ׸𩸮R" s.[u$67+0"$"kz>Hlla  "$:08܎#" mD @ H$%HbHE؁M&9@$3D@OXI 5nOD?3%*?ɷɧ&$)>Sc?-e2l$&es*݁gXe E|>CՕm/5*Ǝ4u]F^k1)1*Kz 8璔lQnS6( COEJϰQDsw4gσc5ez$7+ҳe˾ /!jNj$I8^I=Ufs&&Yyz ow>W_(mks 7f|~ĐyMSg&鶻GpRSWX|E'ڛBܭ÷O.мSӺ)םCfn m=Yq֭'QpD̶ڛt-#3 TgnMk6A" ^V9>%?R,Guʂ4MjmD pb) uUFM93z3TVRMG&Xd cgEUn卲n"ǏPuG%.l&eDmd57֍ r4TU ,őJ](6άtrrFJ\jLRm} -nU𙔕cvq,4yZvli$UW=F7S.UUȲukպhѰJH hymPw>IDJ _{ [d 5 Hzڲ1h?٤NJ hMCGP+jUWcBE̮/&˖V[Gy StU9Ꜩ?ZuJqmN0Oc'K<ڠ)֍mP&WSߋsk$; ׄ.ZϔjՊ57?u3.N^y $Ck?йw W\/WWL]/y}UW;𽱸BQ5CGUUG/NO57!J:~ߊޛUVNOoR߮Մp4 }Qvnmg?G'DdEOh钊.[e[\˪{ԟ*]u`#d>n\۠k4Tt{~@/e6w9W`C߿_]Ys?eFbBe8vhP` +K]y:-|z៥zN?E@|M?*QsO#͙{nۭ0Nc'1mPIQK[6z}a[>9.$̥أrw߷ǡ=kS7IG;*Wˡa+jI: Fjd%&YTQҚ]tU-#Gu7O<>_Y'Nǟ#Y{1qm<È{=[Z^fINMդ_[64jǵsO=Zlu*&ƬjxZ|ZAl?v"`iEKS +c'iʌĘUx_4qֻFkG> y7 Ͻ(K/T࿓Zx"W=tF ~wW*-jkiڬĐ5{Du5卌WR:tyHtHR۝S?Ƶ ݽ Tq]=1972Vߺ,[,*$b;9ۮmA%F~-=seCy7Gއᒭ?/!Ogw/C=)~JksuYAǾZA}N~XD.DΝt~--0~' c`ۓ${czZuݣ~vH) Frb{FXp^=]:U_0lwn?}fM?q'lnwskSW\3XP@7N+ 8o*UV|Yuσ:\$ixq P}GTK]5֮{(WG`OlN$͜cNHn樜Ϸ.ֈ|{ xO]#Β毎k׭ws1mVnm]ۛՊ{w9ihox}ʮaH/?WtSK:;.ެ[[(  |s hz֫m76V.4;60!а t%Wi1mPW>}u Jw7&؝ k2@bWv=d/Ѫy˖3+>jbՕ״u~Y<"h?悤YCο9,]5nR|Tj5[F[[U*6}+rB~i:[W3haH&kxtz jM ް (sI淳B9f H\]le7ޮw /ܤۮߡG( :' ruFXrjm`MXFgHj?ay:Ԯ!{Yߺs! $qݢ 9E-6IsO~ŵwH [PE37/ typVBn$=aJλ8S]&G&Lg+ݽ'IV۷4:pˇSBe>>n%1ԐHׅXv#%'7F?wNv>֘nnJJn[eENS,CmDmOnb;-5h+5 H9ۃʅc&҃Y J ~3qJ€? 17&ϝaH{6kt5roual&%%[C=.N'p~$ coef~qfvL75 ٶ16(+:=V&Ln b?Ik20p BVvxAbMu증=z_]/jl6Gw_k5L?)Agk$Mośu͍%W[+׵ EYJϰl6@z>h*,pإX+Uviس3mҎ vl]>?`omCp׵ߗqA"pń׳kl7/ɧ&g?d #a=IcEڲmXmhFmܨW] N:-U_/9޿䚕5xW4l?753gͬbRjUUNLW{w ^yL|qꠎY- Dw+Mm桂hԅZvSw8X 16po9۷Y}M+X,F |zFF2|D~XuZYtI`X\>Oݣ,u͍yڲQM^x]wˈo.[Ѯ7OZ$ k˟05-æ4|DkXrbt[zݕ]q0Xn'Jm6/ cpeKEޞ wkK̓ $$'GG>Xߗ`Kur:|ڱI[64Uu*+?(sR+=h$i՚wjLqWzt,0!ipD@o9f3Ӄ e7Ѣ:qҴS"][6 ꋺZ3PuӶJ &$Z5H,\DѰv TWg֬9I\-CoCw8Ӆgw),:췺0.nnuO7X<|AMOQK[cKsPw`$Tk3vzՊn [Sukes>~wJZ[Uz*ZQ6,zbuѕmAN GzЛa75z~ 9ap`~^OBR,r9- sh{GZBMt]*eCm 4(-\>$ӏ3ʃ?)~;@κmSK*._fe>|:҆C=m/׆\sfnq$曗hh{XNJk}>Cx8fg}%i&9]?i:lI ǨvMvٿwc&XVݯu!e9m$浍^.ڤU N`86G ;FFIQ@ޔPzby=ŗ ĄDڸAܶK-dTxeK;U#Fuvp;@L&G7wӁ}fdxWx(nmaqP2m-~?ɧ=Y=Y*PJ_έ3&3ݾ6n֭woޫ:nC/dGtzν(3_WZ+1ɪ~>^$IڸA]]6řUVo2I_ժТwߺK&PVNL#L~zO m6SГS)%6 .Y6/GbhM 1mɚ6+1Ƶ ەnfVEY"0'_m~9.Y>CЃ Ҵ n(YG@?HI~;V.H'A#ͤ/ҽasP.*GW]`uN0^y}{k׽a;8@Yt5A5™g+c} ayٽctU9:ԠeCcuʂ4G)=! [IeƠĘ^"Yv矛8UYku6l6G?ﰨRm' Ls#: |AI?HwqүבiuiXPw5 h!%*)jWV(&֤#b5l]' ]hͧu*.jQe[Օ.%&Y͝-Psk~VNykVzMf%}̥?QkVvMsKsezz5kzy!l/ iqZAnLoigeo>|~?ֻFk~ *_ʏ}?2l yJHpms4m\۠_6Eu%X5z\N#b):آ߯5% IDAT$Y4|D;9%h#=qJJUZ|2A"ewMԈQv@<; ::y!__x!D3rTjr4TRԢ{!W}cq~g/! Ť9ǧH/L٫O>bhEKA}ڃj7/&sR]Gܶ;hD UݤZж$-!OgAX,\8T3{]sbtr5w^  H$H*\ZqK]*/u))٢ay~TfNtl  1 ,\ H$DA" @ H$D8\lШ'X(IN.4r}N$+u._}i$'v,p $Izd{V=ݒ;ayu5<_v;tY: 8֬+Nl&ɲZMC{ 5v Hf8UUec q:U$I_$Ae.`z_KZUJUY91Axky**Z*\jn Jh@|` +,upc) k$,o} 8?o$asOEd6[LA?ZRsn-]RAHpΑKh@}?}i\.bb̺cLAr7TyKI)Vedtܼ.!x mp(]$Ivmo֚,w+)ŪQv|Fb{,=^wvڶQ20>W_+7ϮZWњڻ!GWI6McOQ|BwW֬WyKFkiiJIimjjzL(ЪK4=rk:,pŧlfIִY2zV(4VyM '_QBTz݆ZS-TWVj=wj߷s[^%Z5f\\'eۡz3: v폛DKXZԢR2sb4|Dv2R4f|\uto*屶ڣkBヤm_ڊPzz :XgԪ%ͤwj2la1moI{`(3U4Ԑ4'k[RRzA+:آްC'&ԥ'Iz_Sֹ e[t4d~ ~vNIOUJUBx$%[O t@nz$7WOj;'%ͪ;1q=n?ZO>tI:tG#:so?ZVux]ZMw?F#F{֩$=^w\Y-lbҳMmԔ ߎ 烷Ktx;|^rU?{brijyo /_oV[trt9t$ft:o%܎YZ^|4hV&薟+=֣2UF*O=>k4XwIs[{K]ɫ0\ݶ@e̶O=\-0ѬCVo,пQ"٤.Ĥ_g^\\Ys1N]O?cf{_W^}~,%oVtV{{ j|>CX˖Vuwv0\E.rypHYIJO3,{|RIn`Ш(uk&8}wZjPeGڰA6]aJϴi |1vv;E^)I:tM6gΣe.~_%,˫5yըvxJ&LNnq :}A;9UfIŅ-r:|ھY .o;c'봳u )cW}W^PRU&l^.wS& 2u7RkmnyuNtnnTd6)6֬7Tj5)/߮SVGJIꄓSu⩩JN¥֬؉66IfTZҺU}'m8i XlmapSvJk/lhک1kʌDm\נ _6ݵmNԙISt)i(sĥISw}yA{}c~^~T<0]ޮx<{;t?ɸ컹=ڹI_o%\IPݓ)7/V/S~*+̲E$z{3ҳ;/Y zD4j]?wLߋ [=TQS*#Oy{GVy~aW9ZFO>Zo}Q^ %; Ҫ5`>]^SLNEVaet_{1I:$=Bpj̸ׯc}۾FEoШV?sqmG}>'qؙ85!05m?+>k#F|mcYvn6!Ѣcru$O;we qLeKvE wqǻtܼ}qqAViw^-Kh0QA>I9^L?#buMyy~ֶOXRRrNYSHJ^Rn!{E7$<OIӔCw7oX@HsX$u*<wd%)1ɪxZZ|ZJ\Y&:'>{r4 Wܳ?RCfxYA}]s-:rmڊpQzʗlխ%S Af3iCAb;60v^A_}*=M'_'_&o>gt>"%H#{,Gx'[w;ӏJ2f#buP 2:tZu`R$l?Iv`…Wd+5yzBXk dy9GE>.1f|\C\Sӭ:meoe*!"Ўv7ܶlh:Vz5o:P?.|xj|9D/u:&FFzw:].t2U 4}VmjRAJH߈|22cTUƵ71^u5D3r]·P|Z+bOS,/WiՊ:ڤjwНZS/I,DxٹwTZodfWYI[0+'׺ϻ~hXeĨ̥5j=fԄC.A_eס> 5޴WQ҈|{TtkFz> ^ 6~RBέ͚09^{CIgvrtjPSWGLJxy^S__tVFڕ?&Ny#c5z|ʊ[ݟ*j z8t![EyA3r]Jvb5C-_6( @ӏIE;Yd: @D_ԧvgVN'q^lRޙ.Ȑbӣݗ[Obtdo*49:v)ʉaHzӣ; GOv=!g>Fīڣ/ Kp~ zNl&MKб'&U]qf%$XUᴷWA"0M$j*̜O?=޾ )=7IVԨΣ^dkԃ& ӒEe*ԿQ4mV~|v9}ZL}Ƽ!SSe2z}֬ .{X~F_XI˖VwxorU?Y6o$J?w ;qmCk杚~ƌ38ٿ\M\z3f?k>ZJ ,PnnF-Ϻ;i0c >'"W>-;555*((ZZZ"v *((n{<O=O.+{s)--UAA-vڥ38C#;0Yn[O=[l=>'"W>-DWfY>l_?nܸ{1K/$á8;wbccYn @4|ZhQA"(@$^}C{̙3G+gqϟg=saÆ3s=^{M͊S6uhiBBBX IDATР_]tWꪫ$555~'0jkkK,X =;ө+VHN>^=ժ_|!IQGkrJIi/dݻWv]fW_ӢL֮]ZeeeNЅ^ڵK{%I%%%zwCc(j`^w͘1CiiiѢEtWZZZoh*++Ӱa4}t]uUJNN4LN?or\̙3;}Zjo߮effjȑ &tx%Igu$>ŋueffjƌZpaZM&_6$XzupBd2uz4cx㍝ƦM:壵l[V . SOQwt'pak;vl?o…z%I:3+W꣏>W\>}SO=nA;O'Oֆ tRUTTK/믿XDNЭުe˖i˖-8qboO0?Iw/2=rZx^kjjjjRbb.M6M{믗-"ɤ1c6mڤ_WWYYoY_B|N=3c=VsURRW_}U;wO<3g>.=:ug+))I-Zb]yڴiSC=gyF1114ifϞݣ4w$"$l6<<;$"![ K+TZ%hZZjQURNJb'X"D-Ho7cfL&A_59Y%gg}[[ϱcJIb'jՒ"=ĉ={JZZ~g177WIbrrKnܸ*zZOF!d… 'Nlqpp['ҰaC e||֓ގ; )_\vMYzj ۙ3gҼys_ffT* Z癕%[ҽ{wOMLLd޼yZϜ9SIdn&&&baa!j͒䙈 8//R AA+cƌ̛7 4We^RJ+z{c~s!+DDI$"2jnG=sx OG G```{ e7xCo:X[[||<iӦBtt4ZnׯWM6}Vlmm>(cccJ=2.;^rXt)Ex:hqޫ{ qy߿[l)t777LLLJ}()CLDD unܸ7n?W^ppp0x \]] L[vm\tXW}zPS?5v ɁGiϞ=˗/ qΝEkQ ѣK,)t?!!!ذa?7nhg|m۶)yTp#""}A^^  l߾ϟhffQli<<1H$"Rk3͊+_kkk|h|Wc۶m/;@7|cоOqi~W>]O qܹs0xB0@=´j ~⥦[n&cbb0eEPJ,]vvvr >S}ݿt|n6\0+DD @"cǎ_)2 {F߾}sQ?~< %%zRn.\k@*ڳ#|FFFbر>uݻQLoV۴iM WWW򖞞ÇV*''C Azz:zUVŷ~ X`ƻz'裏XJ}y噈U!"b ٳ~ڴiڵ|w2w\ԩ~d""/oo8 ED sttyiӦ@ʗ//]v՚,(֯_/&&&@䭷ޒSJ=J=zT$,?~,@[킂28p\_yobii)\rҡCe̘1Rre &&&}ve3f(eq ܹkL^̝;W-[&&L:uiҤfrINNV>}Zo 9xQGbb]TTk%3A"s SgAIzzTRŠ QDd…֭[gP-jcD`qttYuԑ$_^-[݉' V QD$""B XT^]6lؠ?@lժU:իJ?i$u_|XXXhQ6o,wޕ+*Ǎg Q $y&"™qu""2<}6T=zE/y!$$W^9<==ѿٕxߏ=BXX"##8::]vK]YYYؿ??zhРz ++++>>wFll,LMMѨQ#/ {Fv^晈ߌA")8p 1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $Q3gϵkװb * ...ԩjժłzݽ{V?SRJ:Ӆ 888C0ar!!!Ĵi`aa񯫋`\r3gd$"*&"",";vڴijbÇc(WKd>>ɓ'Xԭ[^^^#Gܹs"EDD"R#@JHGR]v}͵t颱Osss 4r `ذanW^^Ξ=f_M}3_RBwx75oaaa"HNNF޽Q|y`UV8|6nܨ,SjZhԡ.;vƏօuo̼)vҤIHMMERSNaر8wc˔)SNj\v D`۶mZ䗚}Vc"";DDFpB̚5  zz55E8C&M0zhXrV_~UV;RSSf͚i= 1h ȻJ7`cǎٳ=' gϞŜ9s jZuXuQy_>\\\vZk矱xb… ^<(O剈A"Q=zC Q>]v3&NJ`̙Lk7nիW]%\\\䄐DDDɓ'APPҕ`(.] Qʪy/3gѱcG!!!6lm-Y^^^ZghZG]7 ̘1wAΝqQ$&&bҥXp!4i-[QFprr֭[xb !! ,Ν;ѪU+etW""zg!"2lg?RfM9rv׮]ʤꏍ,^X#mVLDf̘!yyyJڝ;wF-Zș3gc 2D'2ObccSϕ;  ׯ_9oz]DDlllϯ-Ț5kZe߾} '1?/// _|'8uXPWsss7j]K7]$ɼy\c7(믿.׮]ŌH1DDT$>Ddd$QZ5nipɓ@˖-QfM}޾}G兦M 8|07n7xHwE=z6664hPG4Vދ{=DFFիhР7o.SƨҨۭ["99 4@6m|1"""p5X[[ݝs$A" (HDDDTN"1H$""""""m'|rHDDDI$""""""D""""""bHD\]|ӦM޽{ôiw|`|}5 IDATg/tYx]̛7}RRR]hh(M3f //Og[bڴiWKbID;DDe_>̛7Og\/_68}Ehh(_زu8y$7o2?Lxzz"..8}4j׮]mqCбcG4C u됑KKMnѢRSShDD:>I$"իƏҝɓ'STT0fܽ{ӧqTZӧeM"W ">|8iii&Mk.\{۶mÒ%K`aaM""DDR8x 1j(DDD`͚5w0vX)i#$$III6l*VϤ$qСɓ ŋ>}G011Q8p9r$v؁kbرԩb \r* 3f u# 44{n$''QFx"FGGc߾}WsN9r @.]о}{e}:t mƍaoo???޽k֬={ЧO"oAePxyyWc_xwQR%~DFF")) aeeePv]z5N8aôRPxcQΙʀQ M#]c#Q-Z$*JaÆ@$**JI/""_ Yfֱ>c !!!ʲٳgT*_XXX۷ddd(J*c111O?޽{ER VԨQCHʕ֭[:QD$ @*T B (@ s>|ȷ.2h  *Jի'fff@&M=z GGGIHH(N/d̘1""{n ZiyQE),;;;~ӧ\ ,wx{{ qrr -[JffAm͛Ҽys JvYͭжދ{DDT$DAJjժə3g-2aXbbHϞ=Uvm\dggȾ}KRRRDDѣG2p@ fV{yHzAΞ=]pS ƍN5edd4k֬2W?#@vڥlٲ"+رc""%bee%>,4H,j_pA,,,Gq5j$...r}e}3gJnnJ``CԦ,W̙3"D]mC_眉q"Hvv6N oooe٨Q`nn$ԪU ZCetS47舵k`ccUVf͚47ƍCժUXԭ[W ȑ#1w\ʯ틳g">>^9sk֬5֭9̙cp}7oFvv6JkХK [Gł 0i$o2e wWWWOy?>4i'OjiĨ(k{_Cq9ݔ կ_8x .\3 a6mz} ׯѿ e8mݻ&M`… ^:ƌ>>>dee;tGGG,_0`@Rvƺcǎٳ?Rw54h;v?D_(bСpss_|+W"++ Çx-5++ ͚5*pNfPR%HKKXtΙ$]SS,_h߾=OԩSذaڷo 6__B ٳ'Çk3g233Ѯ];lܸW^EDDv`QFprr֭[xb !! ,Ν;ѪU+eς\t Jcnn~!&&yyyEj?Oر# 6fffϋ]8~8<<<ФIi[oADqϯ(e>a\v +WDr%K...prrBHH""" ((Hl0Z+Vɓ ___߿/_W_}O>Ġ'juDDTmܸQ\]]LF)ofĈ@RSS؈_sرCHݺu%//OڵK4F/^N=zAV^uvZ+*J&^<5_QYF5Yۧ$~@fϞ]`:5jwĢzȠ qbmm- ""sNW-̙31 R6#}VΝ;WI6{qΙJ%"2 . ..[.<== >|HDGGZjhݺ5Ǐk׮E#ŋ8z(lll0h e@ptf´iӊ{!22W^E мysؼ0e۷qCTT,-- "mbzכf͚_>:t老ĄuiӦHIIJ¡CPFBݻ7.^`ܹ/tk,][ƺux)gegg#..]6ܠRٳgz{{y[zeݾ}[*˗v絶i߾V>QQQW\'NիW53ݻW޽{o}yzӧNNN~'..Xn޼Y4&,--LcYrdռ0[{,h{EO?-GYg"GEڦy@F?ҩS'^t~L2aB&L ׻mvv|boo|WyWTRRfʯGEӦMu\rʿL-[oה1OȻ9_ gΜA ggg̟?7Ă2<~Xv]~+_$gggw$~̠1>}(SVZ%yyy""+?t:땶ǏED$--Mƌۼy3+OUÇfϞ &hҡCܹHMMx\r.s1_5kĂ XkMꊏ?p1%X[[qʗ/+V(?y$ {w`aa;w>`~̠4ڵ 駟"00PyÇǔ)S!!!xƱg̘h׮-Z+׆~Z|gW޼"""V9F3MÆ ѱcGٳg#{011ʕ+p ܾ}JBǎuعs'nܸGGGxzz"0077YYYtp lݺ׮]#5jC*)33vBxx8n߾*U RzFF9t"M6!,, 4~j?+::ǏGtt45jVPp1KNנoƶmT899~~~5Z=#x222k.4}V`cc~:*U_tw*mpAZj@6m}bϞ=}6\\\ЪU+h3&&W^EZcݺu8s dZ۔4%ɯ!MB|||$77נ׳g*?ٳ;jם;wGgKIKKnݺ\oj[YPP۷Okgذa| i""ԭ[Wv*J>m[}ioQ pЁk "//O*V({ź髳(wCEn:w\ u֕"w7-I-2t޽RR%_o~KNjz?v].\(SL+/^\,(H\b;9Æ J $@$,,(dNbwt"֫WOɓu{T*Zj%VVV2yd ٳg+@rj*XZ7f:(pǎO?aÆ;Cuk׮J*رce駟J CSA˷0_XXIÆ ԯ__$((HK%H W~ź%H,r/58Ao|M2,CuUD:u$ӦMӺ.ݵ/ ~ciiiJ]zPDo߾hs//o$_`.\H۴hB)5~6m$ȼy󴶟9s&))HyUn<<<{r/_ /=~ɍ7vJ`]VVnZ)@Q^ 釗V~._,@WI$54H)%Kvg*W9sFcBoVc}jjrClTߔ=;uGjjJC | ^bbvDcoAJR~""#F2p@$?~\jժݽ{wmE ]%f7H7r2Y Zh\nZߗ^?^M62՞={䯿={H=`˖-uY(u/ZDzN9"/yf 5j(RQ֭[wȑR 5ks[n-(Oaaaɓ:{M;C%9+W힩R^=sUsϞ=:-i=$%'1**Jڶm{S۶mep^pAԩSZ!Ct|s+WҨQ#eT}]#=z}*m_~Fin~Xziu. [Ā8pƧwkiu/,(A˽lCHjՔڳwi,ׅ &z]x7Nj~?v!xFŸgϞ_ח7ǯ nJwbܸqСy) IDATݻggg۷VVVnO>0sLR:t...ߥ-2w*U̬XV޼ys:TZݻw{ /^~} %%z_1fy[ԩcv SNG~Ճ=zW\7|nݺ)Hdgg~ôiw}?GF2yvD?~<-/9EժU -'\nkk{ӹe111:Ŏ;?鵳4˷aظqgΝ@K* v]ʪ܍y.+~DFFb…;iҤB gΜ)QwbٲeHMMU=Σ|rӕ(^?nJ… +7ɝ;w?5jʕ+իI-777 6êTҧz֫WM+s qy߿[l1j6mZ`:///DGG#!!T면l:ydL<YYY8~88۷#::Xv-._ǏCRilYfa֭ꫯ)rUaPׯw}˖-<I3==˗/Q8p ~Gܻw֭yZjZZ[C0vX#kZ[[m۶E:u GQmeUƼf۷cׯ\]]_ڶ쌚5kz]PhWR2,ǚ5kN:2dHеkW9s;w.akkTlݺ1Ç+$YB YfHK.!00OtٳgcEއWСC*OqJ鹕1۹s'vYhG]Wa =lذǏǍ74~6v`a-jժޘT۷G_ѣ=z4._ӧOcɒ%0a 1!!gϞ7`νoeh #nbb"^{___\&MBJJ vލݻwիz Æ +0p- U7d -*5$S܍y.ŋСCxFLO2]u+u!!!͚5+˲~^ZyB_NtŽ[p!Μ9sssٳ͛7WaĈD6mp)||'/0' ^6l@`` `gg3gb:ɓp$ŗ,\Ooܸq}r_Qsrr;v({xxI&@ӦM :){:]vvꩬ{ ܸq+W֘oLvhذ!߿_U+Hlذ!6lK.a֭ƹs甮}~.Mc"33(m 00~~~ AHH"""bܹX`-Zti+<5c (Jz1]\UV_QFaXvmg-j UY}_c̘1ٳr]?r?qF@^4Zlݻ#44ZAP^<{jD*c{СC]bʕ]VXhӦ&!pssCtt4:vyptR%`8q"NfԩSΝõk LJd6U]v-,Y&MܹsR |}}cL> [l_|zHN?~SIT@ _nݺuHII/_nrGAZZC,gj ~\tIgTt ~9] Mnc(?]~~:˘ߞ={O}zʲ̖Pǀ\.DŽ 0x`,[|0j2*Ν;v\-P{ ŋ7rJCv kYob]bE0fB.w]u_ŋp9s|[`r9ܹٳg<g͚d( ,U*{9_~i}0zR vQ?;wҥK'xQgYۤT*j* 6 qqqС޽{#776mBZZ$Iի+|^Qm={66l؀+WgϞ5kql߾7n@.]p9$&&bɒ%_~%f͚8t  qh4888`ʕ6-[`Ŋmz\+V eN:`ٮ\t:!JSj9q?,S!Djjuŋk0DGGWiwmw6JԩSe.CPb߾}&hbnĺu/!!:i?RJSlذAdff 777EUj/^hZZ9V* n};ERR?8IMz{޽{QTT?ŷTmN޽{q1dgg# aaa3f5\~;wD||Cݺuk5?ʃ!.]SNh4=z4y8::[yWWW""?!v\CDDDDDDV츆!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)zغ8$k 訄ڶ @DDzn-}$u>ۊ+$)!IrHTb E1B]'{O>ٌUB&sL*K^* BCBa2 0sPLQc  7dN˝ 9@P(TD!L0L0 0,e2!7o$爈KH x] ;C.w3JG(Jd25 L z : `hzkH4 kA¹zHܽz(]NNMCr$I -^P^Qg0gaA"""""ZT^t o EMMGGgT͝ %9 drd2H zAyL&znķz ^$"""""j! r \\II&hT''yq@jhl$I*ni40$I@&0?\IܓDDDDDD )$Θapt׊'xxTʠ hFh4(2djk$SKoz=5_k$Y~*p9`ѵV!7_p:ooG8#"cZ[H ,8曾h‰"""""x1 \-әV +~RB0d2TZFLF Hg޽Jpd5Ξ/$bժ uk(m4ަzv!Pϙ"""""7AtJTr 8:ʋ/r r Ry rFO\IC{?^l.S ozlIEEFk _ۅxXY3?AgWS[W;]CDDDDĐX\dgkP4LRRBRi`0A10ߏhPra^|p$L&v`cih߷(2kP<{:.^L@xxZZv͛~ޝxTQ%V IR@P(A? ܋VkZmVkNg`dppkY%F@\ĺ<`;>>G5j5nIܾ$IUPjͽ &l wwirJ,U*N%r-,Ä萐RQ GG9Zc2t&>SUOOn#Gť >>IIj*?0?_zL&-Y]=Xׯ#=]"@jǏg@гgIDDDDD␨P8BLFk@$ZF=m:W:$2C@8l{i ͚9|~ J>^耉_z\6,9~Ufn ='ƍ|< cRYYEilZn[ocoipwWa߾.'IC;>/sd% 0dŏ`2 Xqk GGE|G_X^av]GVV^S2a2 ٯ͸+Wr31hpvV`P_4Ab"+|pEEFLn{?eZr 99:)1b?Ǿ})u}P7 l[>hD~KCbnѣ9 DDDDD@BbJJM`<A^|J%<`0A7A{و¢i`m%SPP;~<н{s kg2 ,YrZOz^3τc8  {&ܵ+~as x-{0_/y`kd ՈK/u!HH,,,L&S* 00t(*2ZZ-03E X"(kY4_Zu`Ngʙ?җlj&iPXh^xp{$NM@MU?b(,4`˖;X :?:5+`{JkTxxj,$"""":ph~ D)&^J%[a {FL&CqH4KIKM]W4:m9LMѱy==п7Mƙ3Y6ܔKB،3&cXIDDDDDu]\z9 =CRRIx཰^Zj0%BZm[GGTtѢvpp($CHI1ߓk0eJK4o7wseһhr#FaӦ[!**}zaht^^ j,$"""":^^M`iE!0!jhn[CRD%e.Esl..JZյ*zvxc__MKHZ˥ݺ5eqh:M`7.T]]k,$"""":^˥g!RYDې(JDe_~jiL58zx4kVgƛo"7W4)fsm׮)ڶuxGعq@ TDGLpv!VkoW:aҤJukAaHTAl-FkPu6/C5ߓ(e5d`CMh,phJ9||մ^ IDAT+e{47Wo=0 ?߾oDc1vl L&<ڕ͛oЀ ѣy[겲H=v9~j>}Y/5IQ*23`0-h0譿˷$Z¢%20 pss tqt%B,׮98p WZLYBvP'I k^B!`8u*\[d9ā;AB/; K  ͽeK\j/, n-[K.,J׹ &( {xx6aR&˧0ql|>>NU-wHMȲW$""""?qH mz/eEKk/  Z^UKPqGh?Z ,ٱMf潐8x/!ꫧO57cQXhC>h>,|ƍpNݰg5<%?x)p/&ko={?-;ujRSpwWAA3ԩ,̟_\  cPht :5CA";^RΛk1m! -]әp\.\PsPkL= pN!FQ 'NdL ꋳgsl.1 Gc͚hDリ]N"""""j;5]'8{{Q"{t ⽖PgQ9aD-(G=z2$)(`tXt^ciAגh*Mŗ#G=Ѯ]`dd Wz8"8z[[RXhCiHNV##C wwѻ'||c2 DG!>>YYEtpxbb2כ3Cj\N"""""D8q"_| .݁$)!)ȋbɀhu-(oItuu@dd~HDDDDDTK޽ۡ@+ҥ0$-BHŁvB(q9(6mA̗Ӟ{jKEtylxG^.a8ʊ[,y٩(qɩ(M֠޽ۡ0#r Q-R<M!==56$چ{rFnmгgwo=GDDDDDSU8ѣGkM6V&Ng/ ??Ty,!g""""ĿrfZF||<֭[D?~sohZ7lF'''l߾zC_k-[`ѢETTT[T==N=?p>,rrrЯ_?,\4-ZɈa9sfh;`ҤIسg9uaƌbnݺ6l"##2O+ & 7n6u޽N[BCC˼4_GNNBBB0sLtk*t-i? |AAgFrrV˗/}ĉFS;]\\RO'Nݻ999N{Yf|8X~=v؁0,^f9iiiظq#N>w }ń дirPyq ܹs={0_(U;Zŋ4={@TbСv9pmۆ$xzzSN;wnᴨ۷o___t 3f̨Խeԩ:t˗/cx˜~KK7剋ñcxzz"00QQQh۶m pQ!Ct:FhѢ v-O.aÆVш9sIY$1R]x:Mjjuxz4 駟\???q…Zyb֬YN[&:ժ Su.kw_@9Ha4`KN#66-[vAޝ~HIQ#.7o* `@^BЧO{6r:tyyy֖"{ᅦJBXXvjb ؾ};_.]`Ȑ!v[,XӧOc„ >|8/`ƍHMM̙3q…R>}?0 ɓ'cǎ~:n݊T̟?=\Sbɒ%8p233>zr+W7x=gϞ5j<<<͛7իXl:wgyJe}7W_a̘19r$4i={`ڵHNNƣ>jJusMqMޫ97a={/2wׯcҥ{.z-_gϞŔ)S0zhj|r ߏoO>$%a {BnXDEm˖!bbŶmҥGń E߾Oi^$fS-ǎiwY@$RĤIDRRRKDDDDW\ZD@@(**yb޼y>}z>=a@,Z?/5omXcǎh߾~L1tP@8;;۷oW%Q!:w,< ͛'e$ R)sZN/]ٖDIG}TjP֭[֒X\}\c2炚Ͳ"66fCҥKm߽{WxyyUzQ`5vIիyHOB1d$ rrLŋ ^3fGy?;vD~=uN2FZnfʕ+QPPIzR۵k/[ʼ5U뮌cѢE?߯_n3nݸtd2V\Yꙗ͛7ǚ5kZ+VT|ӦM`%{5:ujIHH /T*vZ٭[7+ϟ?{u[_&6u-ZȦu @xx8^|EM6,3""" 1Md0hHH(իyuiihzLava6m۶o&V^]2}QϤ:lذ2/U9r$ڵk8yd[Sʘ3g6Kz;->\Y_tt#Ç#55͛7ǐ!C]Nhh(rrrS~͵5G___Yn}::WVOzn4P$"""['>BaNEnnT*hdP ѨQTTQ!LB@R|EUзpBn}8p`ogx?K+Gnʝ?""qqqqF[ShӦo0m=7oެQuX6 Zz5B/~׼ʏpg}V]iݺAAAl3}M筩\wexyyUyˇm۶a۶mN_2N6 X~5$VRӒlقuرcHJJi ɇcC5ǵu̗u.㯢0HDDĐبM۶Zgg(J!Ѩөa4ja2ጎ888n ]eNʼ5U뮌|6-E;wpzRY2N:9$[/5* N͛7[}ҥ ڷonݺڵkx~>csA]DDDĐ(=lz EEH>(#L&=L"LLE~:4m ٳgqr\ZV5>Piqqq:t(>-[W^8y$~' ֎l&O\믾_|EZ׾Lja?c?"""jq:w!ze;FcB  ϯy ᅲ9O~y 9@ǏƍV^Nׯ_ɄM6G?EEE<>~|}DDDĐ(=|<6` h0Y3L';7۷/;֭[+YY_~{ҥKv{.FZyԩS!Ibbbzj 29x O$1_1$6Z3f W_=ߞވQ`޼[⥗&cȐ.rΝMfΜYӧOc…-ƍyܵo„ hժ*MjӧOG^^\\\0q3 &, FEEU$KO+Z8VW_}[lWW}8a=hmU~<==_b֬YCnP?FV\iH[)'''Ν;tR<Ljjڴi8v޽ jΞ=6l+WгgO̚5 r oߎ7nK.8wdDEE!<~|}DDDԀ jP/^,`~0 ZFBBu/^,wڵk OOO%_!!!"::7o O^zu6BZa} 4e-::Zݦnݺ*U|IqB& GRL>]Æ +5>*TY===ņ Dffpss_hB/ZZWO:U6) @۷ﷀ@̚5ikc?dW瘯ʹ:e>ow믿.Q!U?|رOFnn.<==ѷo_1*[宮={`޽(**BHH^zZ]N޽{q1dgg# aaa3f%!~:v܉xd2cĉ9sV\.Ǹq*}YM>GDDDC"Y""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D"""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D"""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""W/e-Q1s4ssgEQN"jMv#1=/L}T=?-S<} '?QGCbDZv+Ш+`*H [*O\e[@Vmn%5㦼}T: E6>!U/{o_fZ}'X?WkV} шW{J56B.Ixtj-uѲE:F~ܻg. kvbTpT9؝$Lx)sвE`AdӵӯBTBTVۏ[g3VwR :0OGNwmլ9wSfzk#e ,briL,yE 1pU:}Z])5ߝdz0 ]vll4NWg-Wvqb."-; IMQ)5No\2 n.M nusn\!3RQו9sGrs<FR˭Ly]P4uu[+WCU>j%bla |S6`B6aV;~8(nA.|=H" =^A>s20d͸BM!R! )4cuhho)səxf؝OVAeAFBBTg jdd[ugпsOuQ? 0P@na>٩O׌no>ddVj"O+Ҍ6뾛\QhoO m;+>Ơ^purƪ?aZ9{2} lZ%^Ɣ1 %&u+0(o!QUNjRq=x[X8=[~un%C9!юBd]bA]zci1IDATjT6{e(5: 7+ &Q!*3oy2Ȳ^9b..{ M`:E$I.$L~do|ETžha2_.U͵]?zBd*1P^y"m<3GNČ j۳[S͚9wѬ;KێXmFDABoeX5 ~;sO?O/G.K#>^  /ՊY~r?݆hܗLJ`P׾vixﻏGT!.er,??܁Y\'wpNwqtFԐQHHIBpll> )psBG^C!z*G! V-`4pI=Tyd2bCqA>/v\楶sqtFk9zd2?hr 1B )4ja-WF~2I1 A 2`ωh\/*т3DRc8 ܛ#- [o@Pbd!wuh;(=<-?<:r܉"o<\T?.b]H΀#z"*rlл&ήXg?^Qc͸tF l&ݣun; ԇǢ}2(0~ q дIL2'.bxhԪRuXVn$BbZ2s2Y7ypur[w-L0un&߂w3/̛8.ѡ 掝I}|T F#><9q|w Jy-ݾoGjV|{aʰqPKOr!)#fNzr[Uws!qDpk_/J]7оe(<7P)@뀖m-cO%Z9K~gb0נSJ:!޴Rz0qRPVc̀H0/_[kTV~fJW@f͡(qy$J #'Cvݬ9 %r9挊La |h7z7*K$&ADz78|y]{ DJ7%3 m.h"M"t Π;7p t +sqF0~ށݼ\W'gLk eJfVn!6RT ?7Axv/cN]>[<$aȉHJÁG˜GJV:M} $ K|P:fjtX4qsh"nwu$V`4൹0g4l?WnCV˫q/vĸ*/eNܿ] {aQxc$ j4x0qh\x $g܂aUj{hzy?~Or |{b1x`'R _ܳyZ56_DI%OIzϕ*RK-{v7oU_]Xar%[*\\mPtniUjzh[F)mq⿿ 4޶gͫ6W;1$֒o_<5aVװg+ GNFV^6U%IZ T$&bӡ]U\&Ʈ+ pU-ÁGa&4smZz[ dhS|ern3\u{\y:wn"֮3~xb 8u|G.5: mCZ"z"_]hso:|*R3ChPo 2 *ër'$?’?_/^;z挙b%[ɲehh ~ө 5.N˭Q>ʖ!ut G挙 /OB Nv"+{tngL0!?`qB{i$'%?#z[.5"d. LP߀~k# +9Z{9B֖43sU] 3UGA5cm˵-<r[0vhD(C2 4$QSNt:-7?5g$!Б< UᬉPYW+((Ccʪ)sT5pR(註5c|W쎝>J8Iz7\&+ EQ aUm(B0*;';E!yl$O VL=}[lù4|f%wucsb3bąFEf܋gש'6l{2iux'^F$®_מS>MwMjuz؉ g`Z^656}/N@D*0"fP&+V0h,wJ W @o4MCY4MhpM7M~;Xv5*iD"8:=QpHGzjP(`hud^32:}eǣ'.F2 8c%FԖQV{(hMӤC6ڵ)h"cXl'w[B].Z*!0`⑤d(ąt`-ۯP ];шa Zܝ]f5ӑNk tď~_s`ttG{)&ijǘh \5 qOLL&rmύP('.wzZ0"Sbauאwy%]nήX0-=Ы1aS/|%|z\^o79\2y]d8rNY:b{hhj5#谰GFd#&8feR\)㭿G{A_$u}.I݂l? El糆Qay<(C*KM+]s7[&Ӏ@Ai0  Bo v_Ð]?0$$!2 .è@<Ϲb F]S;5gB";ic& .$y"\&[ Eq1hQIG psv^qSnz~&{qcHTנFUDG@cہ]8zAa}rc9q^nGIƖfjԐ0bv򭢶V_oJ~66|5J*n֫+~?Ȯ^UU\t8X g?m|{sU}RҊ[p =KZ# F\Xo w/vo0+|߾ N\} Z`T0tWzBjA6uUƞYe3ӳhē^Dlh6>[ٴsHD$]n| F z┘q&R*4 c&ؼnnqDB!&(xfO<`Nϐ!!n<>"I7-?t=Kc温P57džDbRA>r88!rF>(RGݪB] 'tlJQbG!9! o W"-?.QbP  \>!srAeg6TF饀 `d¹4kԱWUݟFEYŃ,{ҤDHqDŽQ' 8Jaxwhը[P|(io &6L[v"kL(|sTg9#9/r`I6y4|AѳdgCֱ_fZU`!'`!҇Y˾jA&B QꀋW8d};XN^HՂv[XLŧw^>]a&'/m{E奈i8{ d% 29oہFgcrL<"4\Rn=F ?`ޔ,3wNF'0w p %'\(*/ńH R>w c'ar8HM-sj> u=11"p@]-<ѬnEq]0Tt͘1<0}dpR`lh4|ڙV80Qao |ATKPP)##ޏCyCF79ɡpĥ !x>Ͼ"6 Ec͈ Sa-purR=V=ǒش#>[};ܦih۵X:{U v4/,q”AźO6SƖf$OFn5y ,{|Fsb?Aaքi*̃؎þt%+Ѣn9 3ŵ)BigBoczd 2ݺ#H{FfKf{"l^O_z1!Xp*%s[+_ūGC(@Ԁ0%v[nͣubʓj4CGŜt<)e\oKbͣ+|} L[ w'W8IQY_9<";x<ТVZUt>8v psr rO!wq#CE]-7(PPxxAjm\$ud;گF}زwG=7A GNͪr5jzzA"EfU9Ug$J0XvܬA_cL&@A #Fu}-j뮛V>%e zXE;87 \/+/@eP<Q^Sچ:(6RGe]5|CcDDt3 A"1H$""""""DDDDDD $D""""""bHDDDDDD IDDN;ٽfXPn8o2۰ϟQXQrB^]^ acp7Cg`C.ϟw=!:W5Ayu5[ IQ%uh^\03[̘rx%0{ߏ ϼ@D ; FL*Š\="|{d˹x{A*vv+P\U-{w4TiܫoX3/]U,WP(xv}mKĈ!;VV`wEym%6nZl &#t&'#Cѭ9bL5РQc/+gcpl]t "bHDDNkbx0;]u &; "1,:{U""d}15/_< ԩkbD,{b@,xDHGuJNEbdtWKΫȰظ7̿v7BQZ]1b1^.eQɩWcSᬑ㺽OWҡ;p_Gtv"bHDDԎZ LfS돇DsǞ)pW(Q\]ي @JL{|7/~/X9^[6 Hq%ٽ3ϙȠ0kltUTH5Ȩ/x6C{{qᝅ/g߄XԽ0.e7`h| &:<z̻V/yWO?np&Yb1};~ MCu}miTb3mit:.88?m[oư,x0(M9%xpq'|t,[ =랦n vǛٰ%lBuwdI[Z^j y+RQP XPCe} z]>U &Ԩk+1} "/޻r<=OxeӘ8 lb¢:}I#:4^^EBDLrvK' A ~ʹKm]lfcVU@"`öXVLfs1z"MKT*y\\FA6"1~'6A"CiUE4z<gŨ殦S~+nBni!~{3fۜs|9C*8{Orj HsTGD 1 9vdFDPT,rX 椡 }8H& M†#"ȥξ[_fNs>^7P>TAۤu+zcq+ =f2K>;ݧRsƜxlpWϙ&<3sNLuW݊V>JWmq5}MED \fXШ"PPDCu!IiG|Y̢\H%R\9y:=.[+~^>.>Dxz7uɣ;}7'+4/^KPϟ.u̩x?q1ẃ4lZkk=6ׅtN4}:‰k)/k%5:\tTHD"JJÙX$F_ vCl MZ5[`408&,N1I%]D5n(O޲Юn T?~{]*FKذHEh4RxxHݤәnH+9[vP*ǕzHD"-U_jN5uF >+%TweAeBS#۩[&O{Po=%弸$v,#]G?ګ|a ߗ7`.vT᝕R<ӡ xja|]mF "J9 Ҽ`wn+V Cb )q`KDD)1r.,ѽ[[-INټ9AI5۾ |37IM4اo?W1!WRm"X, "">'-nn%wJF=$U8'cOĠk=@,^29.f;NgfjM F==~fl[a#}3 rQm7$&Z.PMgM=:Le~Y ~u)&O t@)Cl scDDD8v7[8۴lRw1Q0xkmYKBD<0üD)0Hqg^Z~ν CqS1Qx"""uғ˨M(+AhAP aJ];d(+iBMb19D=d(.ԡ҈XNE@Mezeb+lH=/՚Q]᮹}r<Ό&՚?@p w4M(+գAeAr˻u-tVVQY*q{ZϲۗR{a52*]î(/ӣRY@`Y$?W.}*b&LME#4@ʄ-53ڽ%3q塝q}9VqwGVF#V-`Mnvdh"ݣhR)kݻ@9fU6PS{]ҏg%8O~Ƞ`&M Uׅ}Nd4uS~X\-}ewX\ze8FrՓU2k^Ou#0Lj k^N>73. kewJuVKu;Qs.zv||6l(}U[R^sCƎ_ˏ;A OV/>.B~JvWmF/>-?VB`)^Hv"}G4|]#G:򨅦ф+_TCouMHe30@u$mUm[jZ,k8b:^^>eqXj?~WO%D2")NkFF؀ŏM\!CQs0fނ%OX\'LT*#z5K cZ,oJwd8}dFv[+&Z3^Xw> 7*s}sd0_o(Ŭzʶ'!< MM=Ԁ#Έ'Zs:{r|Q(wXh=;FjvO?T`ǶZH$"L!ا¶-5to,Epy9ZbL9/xAd߿*gWpFro{P_<=,2 X( & ސ+(aϿu|wg^~> >$@Z67e^63 k>,WkOR ()jjWXB(6 ODLYxl7l\ ώU5"*FY7F *t}yި~ykuAvOVacXoO=Ɵջ%/>)|y)Κ-H]xx?HB7tiNg/SP_=6wY9ae!ίQm“#+dϿ*A+wj-sqUvǿeN V,?kesNje̳q_}n[r㉽N`%Y+yU;Oky=F0[ZejMk4!$TEKRzr̸4.]y9ZMv]wڽA}{L\&IUz,{.iiwlŶ-517NML wD;]sxNg~Z_JO?y׆ڂUɮHyq Xz*>'Q_r> a%Fguνݜ6&+v؍Й/Ư%ѧN0b>պ6ZQ5W?`V.`wc;;龝_A>W;~Oh[:spzW n+)}r>Rs!iشvٻNۈQ>v͛5 " B/d2L:ӕ{`o=*ʭ9\+ 4.2 Vv;󏕸t. sf Ogڍƹ4!{PWE(]n;ŷV臏Ǟ*b2y츼xo{P_<:Vx&M>TJpu6rBd"": ĤAN(d& \g;"vCq +Qv3{m\B)0\~UNg甒 /i 6>~5Ն.!1$TaגY Ѻ}À>VbTLyXWkҾ}ɁN|n`޾b-a <`Lq]ؕ<'olAwG]7A}?ȑ˯ s{0n0DDta=[(=MmC):z%[Oؙ<Abxwkg48|6OK 9q퍑EGƝ /̚syF6ՂB\[|["_fVVun0OWU !\66Z?WjOp:=%lmwLDD'I/GǸwk+Ξ{KdK^B^];ꑙhkU|e)Z'>?9so4&;`hո^lYgКwcVR=?ܮV"2ZDw*p{\޷+ m*f:W@-EtNx{aNh.uo{/uw d""bvO|};̜Ό8;AY\KsʛC|-9?} IDATn3o,S%&M ޝGkLNgs`<^8 Kp0LFc򫪷IU|zM]w'J Ɯ[DOFᶻۮԤ/wao,u:1I *\5bcoRa5rH",^:͎tyeO2Vb:V0P.܃i[YkyUZ]bOD")ݒv&FN_Q7>R{(=3֕O0#F9QQ$.ն݋ uHIƭ;hPV҄/>-tA[ȡTWy`m*51%?O;y:횥3wu߶ոN?_RCQ_҉{o=XF'feM-V9mE-+i‘C6.2߉NvtKV4|6~YwߝupSO;SR҄M*iC%RqSu tõ7D^U V0|My43|־k{gLhM\-UuߖaU}-(eN{cOA4w\/JO|{5#ZSbNmۇv'Z1H<]ry}]:HV_6V<5?~g[mR̘YJoѯx5ልlTgiC9V;"ZO-2՝XAQ%#8o@踵#RoB_]Y澼-\aմjlTyB$e0m[k^3. m7̉DD'+驞gM柫oO=,? . C ezl\_~=;{̈>JE0tf̽ f͎Ę|4?WeQ/% Rs$ࡹGfYja4XQ\5+Ӧ!0HIj|Q]רn@͚G!t?@$b tq&/a [0_>*ƿ;Ѩ6!?Oghv]{d@>w`8_(bUb Cɂd2Q] }YvrHEO{s_߃>()aɓ{^moʄWw `2 VP7`KF cqQ:RE:l\__6Vzĺ6ቚDD OR">3%xbe!ذgxAxP՛`4b|q1drLF]sⲫz[yyyˬݭœ_w KlOE"`M{m҈9!ޘ !ݛ&6bPVer]ȹO_rQ] ]vB(̷|dDDA`^}h@'ƽ7A|lkxݭ7 2孭bp/jހͯq`-ӏ{-NvЉDD'#vo.]1^d7Nb~dr&/ _Is̺)m`˹dK$"L(qoryvϸwv- R)wDG]ko X+.H7<`̺)}T{4ƹgpdm+ѠjCЛewE!v+?O =<=}yEXxbIjkQ$vc}`a€_O$[˯ ;c|vmO|'":وJXiH!#M:# 1"sUOwDUojPRCe5zxz@XgN [DvX];ꐟ\ 9F|\?~BQz(b+0L?v$]ZfזaϮz"(3ɂ`?u4@#:]l¹Lac8l>z[FUJr57nm7:an[&!>S"2Zy}~ י%ET&-r;D"":,Ro?1L"""[rxiI"O, C7&"D":YD*Q[mVkFIy9Ng5ΘC"҈[$M)GvV9cs@*kÙDDDD$Qv{xJ771ruP7h*sŌBxDDDD dT[c'a/k+$T[`D&D":UmK5(/ӣIgn18\<$ʼnkA"1H$""""""DDDDDD $D""""""bHDDDDDD IbZ5ui!CӚE\鐕 #F0AQuDD!& `:xxJ0b)v%_]Ab`%]f(.71gn,.,ゟĪ`H s5>J8, ^x:0Ab_@~"""blhod"L}9drf^n7#]'EX|g4Fet5 yGOUo-CB'j{=;S\L6NJ`#"""A>ZJt}9r ɔ&5F+p5LRoR)Ad_ !>`\tyӮ;ĈVuрl`4]`ʱG3Cppk6`m%]MEwҼ@$tz]9br=T&$&{@,975u|NYAhUl]e0X`%uߞ}[,LFejo*c~WDDDtrK?҈.@FUp ﰵ$_)Avf#T&0@̜_?z> xlqWzֻbb?+phX,gHWG\uЖ ha4 Q ~H$+}lúr^\l¢9u=YnBJg bRb/?-j4MP*%Hpɋ30|7.(+_ſ;0a?^d\A}UO)-wF#<@*l\_l-,18Vmx6LxiIb㔸vg%8w/n|ٿ;q}9P`Kg9Ё|ZXX"bQ<|ז^t:3<<1ЮMoO=[L T&H$"DD)1\xI]K:vfZK 5%HO$~w RRhbe%M 2Jqδ寳rebt$&{C;8_*=|dL-|X45T&DǺGnDDD CۅpP^ xn+o ɋ39ثBHwMHD:ܻLbb1dr4g{-UaŪhg4xaqvSO)Ɯ}G4b;:mH?Ɓ9n%E:+N9TaPq7UHV AEuF"dN>2U}TX'4>>rdec[-V[R~e)>zɭZŪ /n-SI:vFsXXwߔ!$LPF,(H=F}1;h|i6=wY2V*hS%"0tۣBeR=|p@o X\6V}8DDD jq(~Ċr=VYOg=sz1<` s5X00m`mZyZ&;0E1Hw[{Eز xd[kuڄwjiĹ!ui? ƒe;=M+3)SE8W֔8l:Va[9]kظ]o;yUaXL8"uު|Z~\q8Fp2gW-Hj:+˗fyL~>3 Oٓl7Gu*ŒeC0Eq:,""": 1J\s-@iӃ!z~i1LF n3B!Ƽ=.ds$0RJ@P8WnLO [D۵yH# ERG٦Y79/YvEWLK RB[6)^v|XXE pm#}jD($Jr|9(os |h Ƀ<+Fl^2*-y2qTwu&?G}p1 D" u5vt'zf,kH\xI>"7 \  FܧBL]b>޿[\Gk$Μf @&! ڒ|8[~2(%P( $ cNi7IB!T~ jDڽ'1r]E͙. nD"RjkX7di&Y۟WXRyA1DߣmZh+(hA ̾=ʮU;yѕ;՜7sB&/+{v#;S !rDր[jVD}@TZk+w_``ok±b01,w$fiזjTpE!p0OZK:qJ ,ϱצ& ^mM6ԝcja0X'eWMP7X,j0@Bfskw̾= ۭuV.}KמX%m54MOxD""SрnfzH$"v7zm@L=/Kh=AA2$$y 'Kƻoc(3&ٍjvV.55YPCX[VۖkV-vㄺMW)YiW1\Uk 71Gm=A Z|>]͋3(J "-س~<|MY}9np!+C?*nW /H$U& 5XVB$4W@`b"`M$ '˪ jH21K?&hX$ f"Qw߼-y 6I:vVzǔ'7QXŔOs[mci, 1b\Gk9T&F|}z jc5UlЀm IDAT!mKt5(cuFTV葜n,?fj0xL⥃14z1H$HŊgW=vbmc\)xsy.}3X,7G"\ޏR)o KfaϮz@9Zc6]54̸4[~ U`,y"sOf +Cזؽ7b<أ;:YIK*}N RVA KBp˜ۤA"pC X(Z$ uK Cml`DeW㳏l-.샏&b(.l|bQ[m x,^2?/SNL ^x:q x}'eN4j wg]*b|G4.:̥2ij 6@N/>i{({w_ Xa^J:vfz#dr[<ןJl3Prg-_{Uwg>~]wzv;;+QlI"k ѩETZ_% _D ggi3", GzJՑ9 >];nJ 2AP8o, 7[,-z ݑ4ȳYTMWfkvD MJ>޷Y꠪7! PEW%E:iD]n2ԫZPZC`cNuڒؼ^udNY,o@~ hc0Xes5T& iDNV#,U`8./n6[[Jt#6ѱJEhTc[-F ΛbwI:v˶Ci5hJ,dk7" P7 Nt*u?)$T O!""""SI@DDDDDD AbG||eC$111DDDDDDdÖD""""""bHDDDDDD A"B8q YDA$v7%""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""Dgã3Lz "RD |um*Xk[u]Ů+ʂRXXHhItBz>GKI`<<ƹs=\"""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"C"1$C"1$C"1$C"1$C"1$C"1$C"Nsc`vwo{ ee͚$"""""BbH ƌ :Z#GJn:_^5"""""?BHLNCrigTܹ=Y;DDDDDD!"""""?vH4*+tFTWڵ}ʀj]Xu:W5Jdݳ8O8Oh8q,$I oLJJǝwFbcصiiذ!SK3k?#G^V:dH N SOFNN-֯HL^/]>~,GmF sE`3} !'Mꂿ4CC] Q*ADDDDD0st0pd[{/M0 \&..XݪU9fw.FI0cFY@4 q1{p͚`4 ,\j@x{+$X|ޯ<<NN7ŝȸ8Oy1$v>]zؼ;ܞ=2鈱cYff5믎yBp}161p?u4[ƚ@ge}{IϞpvv|@T^^J;z+1$vV/sT%o011 ]TFw22[;!8إbKK5(/ؘǧC$(d"""""C}:vڦՖu:v[NêUk.#44g6x[9991}&Ϟe{ϕk޽{4pssjܭXbN< F஻BPP]˺"ّdT*pttܹsw RRRİaäoo߾BX,/ܬ.$N8au۷o}YѣGi.۰eʕFlڲeDppmyzz}NL/#wnuZj>BPX]n";;Ue@(JVͦ֊YfܞL&JҥKﶺݻB+#Gحݵ~l-1e@,\P,ZHx{{[U,YMei->|X"##C$''[lWP-[j1goX=8/{⼾+ Q__]뮻lҥb@uVuKE"""N8 ]\y?C@-͛'VX!,YbvQW_-nv2w\ӧKGEE mȑ#EHHtۻwoj*lÖy bܸqf:G!,X >1gT*:1sppptt>>>?Xxمŋ͖5Jk⭷cǎ>>| ckx @ 0sFcNjW^yEҴ{^(;#ϟ/åNNNf_PM~ xŃ>(-#{N,_E$"&&F̟?_{{r\"33ei-'Rsss}}#<"OBBW}DQܹsvm򊌌Dbbd"((H<gϖEEEv+떴"""IBE &{y " ̦J'03H0 fӿ[ioŶ_>Lt:nӗ_~Y,77W޳y @\xUuҸ* ͦK۾g̘!wwwqFu/\PZڵk[O'OēO>i̷lbG^ zDjjeeeE51h ի&z}8''OF] [jkkqԩ&{Ĉ1b>3? >ddd`Νؼy3&O!x" ::wlKt>f<{E:גzoT*~'oKGS՚ .H=eT[n5KIcǎAC&~^\3g,R8pຖW6T@ڞnI!""0$6(++kr^^cǎY h IDATД;vHLL>?s jjjv{aKJJ F#r9m.///iX<䓘4ito*hI9t:[by 7|#;ggf.F#ywߍ+VX]v0 P(۷ٴԫizSǴf[-=lzeB_cԒ֖Mšݺu3{ε+GhE4YrSGW6 y_~% "##1qvuKu,ygّ,i@Z퍮]Z'-- *BtAziF۳gƎ3fHv6i6;ݻp!5 F‰'.h)h*tjr6=g ּȀZOڎizf }74| am___O?EJJ Fddd`ӦMPTP*oZ5i{G_|ӧO͛1h `˖-#<_~Ը2x'8ѣX~=ݥyكo=tAߒz]p!/_rL4 ӦMCllTΦ9O&S`4ܵ ôiӚqcHLLĴi'ObÆ 0 ƍT*[uukCIYYΟ?!~G+;B=_cǎaŊPՈŋmD{ǡjCRRM9r۶mp~0k{) c ӟW#t64Hnr>V+~zS4Z-qԍZBĖ-[϶nÖ"iiaaa13f8|p圙)lu|}}ŋ[OAw6vZiw뭷sΉ3gJƶ^SRRDBB6F-Μ9#BBBn:o^^pss墪r~w$ L&wtR[m`0@OV}q]wYyf@8:: J=Εѻwou('}R^| ̙#.]$,M.9srlIy嗥4UDDDv2Ԉpػw/7~~~76z6l؀SNE޽ތF#~;v  B>}0i$OUV… pqqA׮]1vXYr|'|2F;SMh48z(ҠT*1x`-'''I/GhkテJB|||qXv-?믿F]]~5 111oŮyR:V‰'P]]`9#GlM;^ǚ5kp1T*aԩʚwSD5k&LX|9n6lڴ=.]_5?1$Qc%%% ㏸-YnOUC !]t8q烉G" jZ`` """sQ<&++ =>3 #ި:Љ+z'"""bH$"kcʔ)(,,,B*FeY299x""""D"f„ 8y$-Z#GAAAHHH@Ϟ= 22?Ϊ*'OfݤL"I,""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D"""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$"""""K{l4=|pyd2 8n#Giu:#~!L#S zW4;_Zy}ѿ _/;ō-nސXL->W ϯC^^JJc- jo@|'["1$ر!x832i8s Z~;-k>֍:N_|pZwFc~RCbk:c/\ivjt:cTTW D """"",7ʎ_%7}^jfΌB>غ|EE*̜^H4[Ovv-.=}JPY(r$';"1ztpҖus RzwI0{v,[#1$T^^;wFÃNyWs0gj8x21cB}mnήůZGn$C"1$PI]kW^23,v@.aڴp$'駋(/`";b$mgÆ Ǐcݺ\ܹ=D`3["1$ٳUx4i8OzX̷|+gЯzwI-臑#v 2$S㩧#'b$&zm~Bر DDDDDĐد"3sڀzIGIVc4 ,\" ()Qf̈4 w&!!.xD/k 1]ADDDDDĐ،Z6;_t;^y% ={z[Q:c*p}161p?uDVVYV{!.v:QQn¤I]PlW/22N6uu=ʪFi:mDDDDDD ͘:5>~1}ee!!-W穨J """""Q*mFcxx4U*]ADDDDDĐ 763Mt<=ADDDDDĐ 5fyM28uDDDDDD iPZ==h}bbꪰ:;qB,ɂ(ηre0!h ʀ5JJԨҲCu#xʬXq_|a;:Zb|L &mk` %"""" KIڇ"v,رGoxx8"=嚆Q}uuf@x P HM-R u°a"""""L&7A6؛Ϡ n^ ĞҮz)+DQUݽ-0Z56<\iU[<QZ9iTq@BpE٨REI4^Q_9!tqos9ڑL [OƾsNr>9%5(Wt(rGrNcOV*Jj*؀pLIGߥ}4nSVªv@$ :Ok"[NDny1H U錓QG|P|ݼV9?Z]Ԓתq"? ?;)8z `pL/9ju}0 {OCY]=| z &gH/8g.ɽK/L7zտ+|r?2.]ΠGwF%#)kuE"?bt#YPz","]» K4D#B+.>AP:(pݗ8s1 555AMM jjaa`Sfb޾ghZ$u mΉL< @`㋪J1gtU oD MK>GԤxiCP\LN{?^ꁗn{[=W7|o2=x22rе`(\όns]d#æ ٠Dċ`JRk7mB-OY]P㻟Ðfӗ܈Ov\&g>וؖr0#o#Y/uX9}㿱!mޮҗ ?+໇^Dz3-s§n>+Jp,νoo^Vdw^6gVa0^;;xle;[إQ.EL\!=e_D<^HGZ9⯣gZ[2/IapQRShSۛ|<1,Cy)GE} ^|8sTGp ϭYx:aB BeEvzF`lrgwitƭLAY]-4:0MeypvCyξc↳9v0:- zwkuAQU)+JBFQU3!İR@G9|x6~!r%<ݰ'+% @pqGMKp8qKL/8;*78v=*s|f\anv.({`hlox;3"?ۉK1@ NU)[]ZrNa]f!zOwš޵/&M錃˩\[}fq؃˪3/:-FDRX7TKm`ۙߠihx5SHwx:(8)M?4Wz^0`YV0=;7;~sy^ M= n.;V(6/]m9?;2[eRɑݭՕ/"+Rиmֹ%}eygYYAͷӀ^"͠w7uV:5\Pz4 TP88@N dhhIRBa4Ws"#G 7MΠGZ~gĎ)+Q~_:L[*|6וJk+i-Fk;#=B&SwJU_1I8"l~kXs‰FAʢ\yh cz59idkіa}PY_K Dim%*. QH쎝Gq4t!c~:[)FFE~E 2/Pv:eՅQU^n8ǚx.[`ˣ-gg]f]a4<~ptPh4¨7BU#r9 F#Z% ŕNWIB@6D˩puvcptP 9;#/BjY%.-lNن{LBZ<;۲| s1uW˿2? ɏmQ' )l?S{0X̭hؓ=Y͖IVb0okX͋kD";[)EJwt\&ǀؙq) P!a~SWS{R>])r NgrM.mEIM9= 沶ykDF,w\}e^V `!6`M6DI؁ -!_;1%.p6;Ʀ:T#UvwN/jfgfwJ̣Ք{=}>98-X҅U͝g^Zzwkht/v[qs׳{U{bhE T /zűtY+ˎ:Y+s"qJk Fp]m0u}ɩ $W2T2#CaBdj֊aǚXك]Ji(T{U/L~^~|6tt7VeN|a,'0 = ?~+k7hvL?\tW/ZN;} y|%X+%g8 3SϿ08a=d欛n`zش-y]Pl{F/>~ ]MmX܅oTᐽǂx|+?U⡽sq(~xl5t 9~0&&QIUVۗ5` ur1b̩''ߟ/>}1cGO0/@Mz*ݠC$A$w 4s{]0 9dd9m8[9o=n3-m5MGr;>u?n{wh ƢS8k㉸q_|xǍ?5S؟s|+pwd:Vtc\xm`~ Wo;pƇksnmxg> v_1ꘂIϹy$ ~DYUK?Iz5ϝ߂Oy)N?椲 _=gىFJ6hVr m80= Cq=ua{q̇WB$> =ĥȗ~+>yŸ~S#ynAq5ؾ8\p?#dpBLNgq`nmMݏ^H;߿?P}֢|1lۀ<,7:W>vE&X)pHH$Cv >4 9 YK"cyz~6f䪺ggSq0f Mm8o1<991T m&~kQQiGĭO݇6 zxs4CGosNxRɳEZZ JAz7浸 {yE0 o_s<:9Q3t<}p^yL t [3wyc.z|h x)9liǜj·S{zsWTe$2'xU8}6>Cs<޵Duy1L&ִWBرn3޺XŦqw OT4xNQi|k5*K]'C%cR$mK=CKN?f;:+. H$m03=/ॽ84>ht Cx\nMhmC_G7†x4GdaΝX-?`2ϻn=z !xn5L&"k7vw'>3䎦  Wby;6oñk7Tdt88%'>?ڂ-n>tS2`2grk5ؿC d~l6;nZ  U~VD1ē ( @r8xh BawrHXKB4 gv183k~ |خ50L{'ï8|d) 8:Eb`lBD%JTu[ւxah*|W`ᙋ/g-6ϞCJAqTDD.<ײH H™Ǿ 6`,:4oƶo=;  Xk   @tAAAD   D"AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"   XJ#! Ä,4q E!PIAAA"1 Z8n'<   ( c+-њf`r2 Ep8cY/@y|nx.8kttvjp8X,0 z{{!IdBeGu^d2@UUp5keGfM&4 N}}}SSSEVFBcA8Kb*%cb":+p?a@4uD,u*MӖ|r*Lӄ p8 U^iBӴKByiuj#i6|GFFP|nzN166V4VA}IA$ieV 8 @"т1L&irL~?q}dNOO#L" j5u L1 ˵h+Jxp8 3ƂJ  b&&"xA!"Ag-š 02 $Z$bi,gy^˕Y @ JAA$gz:8po DIpd]MM3붕,2TJibV 8vGMU8"qW yz^  H$VB& Vqx[[pFV \4̈́a045zLZYV!Iݍ1d2L&]!"N'~KQ]dWS8:!2RTr!yj1)waP18օje>*ͳt:T*]Yeh[uRyt/wlF^y@QʭVEiy~?o/\L<<2MӮit-z?^n=,H$u @$455jZNaDQ+T*e-Qvf G! `$drHycY(R)}V42:HȶPfxDY qB{{;"'w֭( cbbžZqD"ZUHLR'p~]]]E'|gi" !H|[i-p8fx^ByٙcttaÆ Mb b1N|)PQ6lPXkE"LOOD"p(5k7U2 >{%uQm8KC<G<ڵkm!;>>^9u6`||hgff܌SSSHRhmmE:LA}Fgg\jMӴƍ199h42wݺu,yFhkkC0D(*#(bvǀz  Dv5PEuEv!fV2h Iʮ0f]N1rfcXެe###0MZ Cttt0 [h9N}*FGGi&&&vZ{rmM-aݝ'c&'' ,@4LOO yD"P(UUTU& iPUNs.6J,u^eMl<'WKskk+( 35M,E#~1H$βq{{;]Z\zu^vq!{X<0dJjY &>s:|F0e/3; phiqBMR;,{T[g @3וNtuuy0jp8l +pEy>%+E0,hyGOO-(r]!_nw\q릴Ti.r:5 IDAT`d*ٮr]]]KdOu] "M4X455-eUyZ^*kU5TOKEJ)UgEi8-,VLYxޢGiXܴ.˕'rRD ty">ߙ54b! X%,@<2MWDkfbz: Qh]K*),=vpZa RsVH,6& 'w"2wR=Y˹{rES}?@vNjdز ^z撮{\-ֽ ڊ7QM>-Zo+T[墂), ^%"qO<բ kE6b77xMZ1AD–جH44443P}dy9G&(;r' L&a8ړ+ ;p݈D"0 vY|PR0BK\}u>=RҲPZ[Y跒$j?5yR҈J@ X,0088׋@ ]w1eD;oL+85sךV94b! X)d"фirZf7T@4*nεrf,PV0\j= ?!w.W$.FtD"dR$94#zhD>Np:ZCr]KڅB HźN .WTsLli];zKáYw^o˹_ 糅D:aD"ttt}B*4V H$C)B׍YgYH A`u+13( E/3:*<Oő,kP~ą)ŬQ˝/ZbnEL\q=t]wҼеHzTJhVIE~ژiwA$#0,u! XΛ%!VlҬi82sKI̺:¬P\^I71BW"Ԋaw)2J&;a@Ӵ*˚p8U̗F.K4(Jɕu+/A(\BK,hŲXei4Md2{EMq'/zd, AlJYm-Ki-܌1L&S8VMAuX. u%U VJH%r e$yXt8D8mXj ibddccc5ÅXAMoᒓk2+03_,#HYyr(%.XGђBTs)em+x{[bWM>5nСC%(e-+.7UU|QA%h)h1`At:p9/7(0|/_ IW^e >^]+ୃM%W+Xx<^pa|7e`lFGGV|ZX4[e5ĹyYGHB˲Evޚa[[$ݕ+܊DlhMMӴvnun+S-e]z[/qF #+reŭJگfa=+GGG+z`=-6TZ144Y0!5+&ƳㄮH$20 Kr9fPG0o}Ir%h,8tЂkiiA[[8CWW-vr`&=PYbPR)D"3Ckk+"t:iɤ=ѱ\+YYxͳ[4[`E2 m5BPUCCCx<;g:Ԙ{hA @<G& <A@&(8ǎ{_ۍL&cOּ^/LD:F:{VLOO#JE, Hցjԣ.E---Hu>@$=в<̵z^R) ѡUU#q:,vT1ƀjꏮRG% 87if`>[X5x88\..VJq84Mi^tكA(k("z{{ z^qAݍX,EQ*v5u\,y-k/Qmի,%BPA^YZA~?`rraw8*B FaDt@$@ww7FGG(J^z+M]]]8x༓=0== ] @ OSԫֻKxtvvbzzh9Xg=쾚<ڛDgg-`Z~?:::(jQ=i1Cq4^!V *Ei.|ìkcV$f_HVU7jt*-"&(t:8p %,,Ԩ4_yiF8ƪUt+uZJ1MT ,4MJxLe=/j?LڑCEQ-kašYy"InwIj@5T hk4MA ImQe!L v; TTvX)նzHc@5 Db2H4n0̂3xZjD9$1W$j  DQ$y"1߂Ͼ8YX=G:[$ 8ju>Q,sAA"qۨaB-9҆UDAP_  H$60 ,ip +l:A"B ȇN%,pvd<L˄ap:u;  f޹AAALAAAD   D"AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"   XJ#a4c&x稔   JP ~C%qBpJAA1cj$f!7ʅrv;qd]$  8"D"c Pq,oQyp5KS<LſaB$ iHӐ$RcccիWC BeuZ^okab1ntuu-add$_7X2 fff*8Ú5k^( gE&t|qXvݟhnn"K4F2iZU7wG8&''^D1vԔ0M EM`fכZVRI>-u}&D*Y ^XEA"a¶@ @{U4+ 8c &X4MdR<5٧xJOMM0 n455/Qa!U}yzzd`KvZo-GD=I& k-A$"N@QY(@E8"& !+EG&LcF0N+E~j8== p8Tt]4E:. 6l Z^ʞ7PAGHuh =XV JU5a ^鴈p8 8r=ePU BP#P(N<_z{{dY DQF@ DbCd]xg@=Bx:dـ3H`ЉxB1oZUU -4Rt]p:1$Id2Qt:1t:^ 2t]j'2RLrϥǩT aT$½44ɚx *KEQix/{X-0 $ (0 n7|>_A~+]ס:u#J㸲,#LB4pgRd寕v-oRv|Mkkx<EQ*Ε?bӚV},iv?Qn}QULu\E|}Kmd)6gVuTjU^c~NaDQkשTN(p4#8Db*%#fTxi2iY+[Oگth]7 U4MB!$0z{{t:NCPѠSSShoo/i&FGG7n$hY-GhMLL qD"Z PQ$IªU RI~Xynݺ>^,gff܌T-9ajjcA@gg'|>~$A</ u-ZLLL]'7/J .tSSS{0(A@kk]aZM%C 3Ma^D**erd455&mRIyuJ߆ /֭[QȲh46AB&"fA+Y$M3fbVf d4u3ͺ<Gr9bEBe0 a6H,|xN'TUWR'&&(6yFzzRšC e]0MD "+I=YTKt]ؘm1,Qa LBUUa{ս\*-X, z$ ؖ۱1 Al \r6q{*}MYN mHsiWyiP(4xvi4t]G"i]@eZN'$IH$Eۻa娜=Ӷq\v-X,YRIshnn5$IZЂhQn{]jll . !4MLOOVW 4F*4bXU "A$ML`G)5 ma; I<oaaf=, $Ǐki$ yma  VWԂގEw1dϷ 0 8.СCH& ;ފXzu^Ybxx W$+)g0lqt:ۛiڵkq~?~?4Miphoo/-X;Ob1LNNXJvz.gLH;WyYny3Mccc_2̳$NC8F2,Z'sk,_ (2bddLT)Y*ms5Mt.͕^keWGn7: 6[<0dH$ACfpY=0k,ٿM!S13##( E֐HnwK5MZ1O <{tT-rS>EQ< ܏xGKKK^:fM.,9CsssEj9n]]]$-Ŋ,zzz ,MMMeG+N|Z{u=+ KKd.jV뻚 C9%-|:+;6RgY6ƪ`0X6nt: ʏyۢJ<Ap8G٢4M ]fEj U` nlRB1)+5-5ɴܘ\.WIefT{`URWr}Dk)rQQS^J RJ8Yp߯677ty+6g_k 1_>-eyz6mQ,jVMX9hfEI~z_d=| 嶑zEb @,aE $rBec-JvZ滯$Iv <w*:J`u)ˊY ۍH$0uUP˴Zߏ$>{P=/Z(HEԢYͭT'AGHa6z5؛`c@5A]\i 1x<"DG&R<8o.zL&rTj2]}Cn;XhRdOZR((v SSS0 Î0h "gY5wrIc-&XDQ,: J.VXOq Wy-̹kV\k?#4 3u%]J$ KFj,VXEA"t:ɨ1+ypib ]P-zL*O$Vz\*n ͧjBd M'EVtLzFքٓt:mÈD"h [v;z#L i⮒}Y^?UȠNbrd IlwPUU0ϲmh $EH̺ ƲGb2$: s/\Q0W|A: SVȥr[H冬_۽9W+a%<="dZ-&''v$#·eͨErNyY H$ld2i_ck!\Kk4122l`#1âshftt*R+/nX=NiT^Ko]'Hk{<`ڷ"/Z %EuK?TVή}f%bu!dsDPe8VA+P$fvuŹpgә(IXO4MnE</bXh4Z:cE\JQl %2&'' ¾c h..}-V[c ^Ȉ,X,V >ԁK?TVKDYDž]',a5bԔmmEVR6W c4044D cFs:` Hǡ8 b}5+8CWW-vr`&=I*^*Z[[H$a M=`VyDVKKK 4t]T$vW~D D($IRٺ8ץ*B$;;o><82 m `&(8>Ңx,C%n*/ǃL& b1\.躞ں56>yRbF" PUd똙Z Z>Y\9Ckk+ZZZ6(bE[[fff(JUW<<41330jږj,նjnuUADSB IDAT܅-G*e EѠi:t(jM丬8EIm V1t:m;8|e}n8t:48pf}EG75MӶ~X"F$x&V "L杭t:k'  H$+ӹAyt4Mx^؅#Y b!   jZNAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   H$AAA$   D\0>?? N t:@76mZ7bݺn*m   cl%&qsy'xށÆQ0M iؼy q9'   $xM_ x.p`Qi0M)3ࢋNEq5K__*C=LOOcx7nڠb1<شiSg\pg}mmm CCC8>(ޅRfG _|1vڅkW_}5e 6 NJs7g_ HR;$ MMA4Md2d0M x䑗1=G<Ƈ?n\RMҔH$088X5Ma_zhLnv\}ոqVt UU6 aUu;RHa||b݋H$NYfŤ6 fny/r_]3OhCSS;; dYF&F*$9J%¬Þ=VtuYۋ~v5 `ǎ'?Y;ݴ_r%in4@Q ]aP>9׿W_o۔6 "oyo!Xϸ?@ vgzj>b UH&E<σ8$ ʐexmܸ?yD" `ΝRV8PgK/U}m۶Ѫ ʌ  rٵ}U_4#0_o(t6ؼ ;vt`f A{W]uv{ryx^9|U1qoc9_KxG}{<#@WWN8_@Uz1駟]w݅aaӦM \}Ys=8p\.lق;w6k ۍعs'~?yDQlݺվb@ʣ~1:: `R<8㌪I]M. 7oF"~3Kزe ."_fA 7zUlws^dwy=8{aewqɲc쳟}Omlݺ/k^ {9۾oEɺ`wdz۵kK羺ݻ~۟˲\wWu`_җʇ!0?'U{0,xJ{|>x__`||de]8+z]ؕW^Y}ե|߷qs=e??y}Sb<kii)z|#LUբCEfviYn۝d|;gds9E??3aE'dE7\Q=^>D={^esΒs=SN9`_~/| k]K뮲@QI~_~EVzRse1ifl[:X3_*O  xj2ضF4%1 gހ(pࠪ={0.d 8/qW( FGm?{^x!>lx<1>>;wbϞ=5סCpEajj ͸K~zax |_ǖ-[p}7|z*&&& .Bl߾X wy'ߏkvmok8Mu ^R۷sEKK B~_a޽曱yf}]W]u>=X޽o155/opy畝w~d2qرcFGG?O~Mpm7ވ$ s Nqc{1>>+LPV^բ^|_=}9ߏx?166K/pwV^>x'裏pŞ]wzqs=~>(}Q{ZՔG%}g# e~PzRn_lڪۖ.??xꩧ000 ---xqw"N! K"c졇^`==֬Gvq_cgc]s_bk?x};'&c|1v9?c}v7 ֮ ᅳ]zzv؟nԒ}.W󑑑Xz577N8`~EV-[+sWk9KZR˒X$֣<Ea`_~y窪O>`{,s||ܶ nݺ}kk2)R%ѲzyGQvgy衇 qL$| m$\.k7 ^0  {[ߟ4;3lkԋg8p  ?{X2hKx< K 7ܐW,Ձjʣf /`W_}ugդk1Ͻ󥭚mbWO|L{W\qU,+’k&&iBu(dRԔv!j6i0M`̊n(H{O>W\qkr^xwtӉOӸ [o޽@> N8+]~۷Oy4QE0,z>!}[odnCOOO{,n&٠A{oEя~]vY{MMM}Yw-aݺu; Ҷ˻.{ۦMOO:sdt xǭފ[[[q# N?׋?]W^i~;,:.4`?i]Zhd<kYOۖ.+{馛 Bw.uYAJgYXV Yoã>dғIt i"յeeWź*`{AA)!!@^IId$G[rssQ(PZ@AA5d21 ʕqF5jjjhjj S`^ aVt֛[7޶pvvPeFӲeXE xWݴ~ʎ(0QztoFe2-05n d:gnuaÆ0tPK5}1d:t S+OOO ~{A i|g`mmmt^xU}vͿuLYkNhKytq-u#mw&HDM/j%"hD++Y݉[ APJ @VgO_TZL A nz")|L ʦFAkj֚5kVXbDFF"66СCԚi&-2^m0HRիWݻwcÆ %^z5=z %%iii-m&.j~^*F#05*mn\bՏji\zzmMxΆRlx-NNCFF4.]nݚݗ:㰽Ֆm]G[B߈5f̘&Gs{[FQ%"bX#d21Z t:uSDD2 Gd"'N++ vuŋHN΁ZF hYƲn77o/JKKx@hh(MGyɛnc ZS\\ݻwC3XR!..MAʾn:=zF`wt:]X[$6~gdd **L1\>47[n֭[]׋?Ii ą wVV'Z\hh㰽I{Mw׶YGͥhp\Wk]$pGx/.\ȃ V+P&[B&S1CtZ2̚mےx*U t: ABpsr]İ4 .Ĕ)S8$$$ W\eGO?mFs]nUrrM)))) 7odH$AbGF̙3eoD^z!55=\Sis]v3*곴< GZ@WsYXX&=EKWɦ0VMխm):۳ttoNQs%''CPvjueAb; F]put*DR(VJTޢRS(ԠF ZN @-||\ww?Ea5\.c…Xp!t:?bժU(//SO=aÆKkez̟bصkW899a*ޑڳaaaZm9jвTC qyf,_h+s´5'O6YO> roѣGvA"fp߱i&C݉za貇6[>"PtLMY?1yowytd~wd=D5WA;ckWWWL4wD ûCSANW jJ@ 55Jh5j"D}ӈ? 8  嶫ߕFYjU6 +W4Fa2J0:`{YGGII <<:-߿/bxJ~K}F/..6Ew0wL_sZVMBّёݑNSu$w}ag}Sue'"D//gEA VFZFSD~j APň_DG"2!!DA駟6Z|rQWXatUV.0s"[v-`YQQbccqڊ(w<";<#ٳ ҥKgL… X{ܹFY<}aVYѱPXX'ofSLAPPABYP^^[[[L:}wD03<(--ĉ D?ƚ5kZoH̙30k֠᪥蝹<+YOZ5'u:jt.]\xP*ҥK,W DDt;H>@/痢ZSRQ;"}Db_ݲv֨޽CѣG0bb!tssàApa|r ƍR{b޽xq7MDVV1aGcsi0as~m_3f L(dffbӦMF^ptvvv<";<ϟҥK0oD"֬YcT0ѣ#aÆ G3g`cc7틥K?~DEEaȑpppq̙3?3ZaQmo! wd=1GSik;UGs)t:H$=;wDtt4&O 777$''c۶mj !#;;-vDDf"%%·f~OxXyX}D[,=&=^yL[".||   cǾ* 6&\[+͛yyyltFcX'!!k׮ ц?s )RSSlW_ Fdc=&(ۻ>x/n|~c{zɆxwLh녢"SO=% kzvZ9A w<<<["/jlgN2m=;lMKFWXn]ak9YA* {6^V O? m777a޽<1gMYb`eeh߳f9u/o IDATAmj6vhS-[&u&'9s7.\hVֻvn";79%$&^9PuOEu `a!;tBDѽ{0|}]ɠ_!..χ'Əm˱uV#''ƨQ̚W̔ӰFLL Lkkk";;+WĒ%K-pԩztӎ(W">>W\X,FLL NjxrY^&M2ttVTT`ǎ8}4c̘1Z/cٲe4h:rlܸIIIPTԩSzR{n=z%%%Exx8&L`xYꅹRSStHRDGGcƌmwvv6p `ر2d222 z֖G[{׮]ؽ{7jjj^xՓ易b˖-Xx1VZ*[IIIjO29[޷re> @h""` dggh^S |.]|gw͘6md2JY&էo\j/^ !{nLH$B߾ለÕ+*Baa**P4Dt,ND?mӧ (y8po"""hxVkh Ų rN{wP+P^@M dRYC.gW޽{C" 9=C_zFD /3è.vo$"b#ޝ~13]DEEa͚57oߏ7I s ĉ'tL'Djѣ̠vaee\TO࣏>‰'F :?8BBBQ*eeeѣ&L {]9p u ODDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"#?|\ nAΌ 3쬬Dt5s0#7+TZ53nJDDDDDD A"1H$""""""DDDDD"Z:'&e44~]VT`ֵCnEgbֵT*G*s3}ۑ]gt݅ftJΧѢ2cx=ue>lj8zJv;|Hlz[Cfa'&σD"_~DUh~egwzT4|=3$ێɭ޾8.]'żq厦wC8q ^yVm/j i;7A"av샭'V!Op.%wv ؁#`%4N'f,@mKoGqSrUx/K!Bt|gl;2|-X!/K& sP}9Lo<|ZN2B>-+߇D,o.eM5b7<}._ӿZUޑ0=' CzCЮ2cg_RP4mX:I9>$ ʚ%OTw4.5;.|:];;֨a]qTVy-Ӧ~cKGkʸ5uvTyicnTs@bݮ8CNs;7]u7`$"Mci!CĄD]/ē~;{K7,<O~^|',_nNQTocфxq<~>6߆٣cҳAb%x|\l<7)Lv@kӇEFn'ON-w"rL8 ~ިVH/RWsx%f1(p I:(=cie>0`$VdW[Z٠w 6&X,a srV">Kkdc )G?FP Hc R)nb\5͕bg dXu]2l:Χ`tߡpݭ[˙iZ vp?ܰ\`xx*&#7cv새; //zmqdl9%Yb`0}D7"kvlKQݱp,DV׏Xo>ƒͿw-I^jf:6ۆBxaƨIҚㄈsمl<\/iv{F!Hs08;8կY]  "FJe%>GNİΌ8tF)Zn6* L4𝏛'ǵ&s2vݧ9fL*[ N.^(}NZCIǍ=w'XH- H`tEb|s=}"Aޢ"#/'nrL-z GF-GzFAQ4;@04*\˙iPk57 'v૸5Q^agmLWcڃ%7=Boƈ YX`8ں9EyxpX2r;c1*5}0}DiE3NƩLn#0'v*r}[\f."%4ZMp5QԬExy37q75A'뾆FK ‚ aݸvժj<4t ==+& 5] Nܝ]LoNaTs~VL>//|"cT)aq8v ڦ| )k Nh]K wǤcE" ty& ~%>MWR{{``VQ;7ƦACH$K^kXѬtXHTE_6R/"-'V.Z@STO*lnXw3%奸~AϤ[挜L/5dxbʼFQu/ϚclKRTPl,~vd!#/ lqw?woÁ2Rq!2nTc# :896^Z*"1B*D,Ad@(ܢ׭K$._FJƕ 0#bD`KNdfF1RU#{Q=0q@\HmGZ^6r pZ@faaV[Fi9whǜt݋=bH+7pD"JJZ]KpY,<a]恅5]`GDP( P iJAI!4Z-o7 ON_/W&srcqzW4Z+9?o<:y <MG_pMKPjoIKb0ybjTj{>5cgpb"W 6r s?}–zʂgQ\~3^~c}g^opk7D"S4~)zcFi֧]i.v75vAڽqoP+ e.wAnIA= nߵOn[VQժ\JGTP(R2"7b>>n(QP.+ܝ\Pp "BڠlԎB~>3 %zO1vDp2(椣ZOze)t.ȅ"II™Ko'Fz7nӔ/?xy>C=a]!1ca}31~S;k[CCv,_o:pYH4ϣxC_`-yT?;V2+t dMqv`gmm G;CZD"dVV?*csH$BTP(ǭ9N|"3FNQ$lܿGObͿ>5\<]9mm+<ήF=wTl;TVa֫OgX4>$---xg_ R^P@SFX)Xv%υ'`OmtP->nu)2._#g"¿ R26 FxDu gI$[&k*Be-& |R18cDB }vudjuפW\X k9XiC!/Wґ{ !e*-tt:H$&^V@*B"~=W/i6Mq>?vn=`޸h7 G8|`l_jT5;/t:GOMAtH8"B0qh|˺5#uMn@9yؖፂH8vlQ(.ah͚8`vݏWX4\N"C1'Mi227֖֨T(x 9@`d! 3)Ip7э5*nQPk4&Gl=ˬc[Ǻ]QVY*6Ʒܢ|hu-)xe^o:_.ZU^q}msyt7թF]ҝ] pkDDըj_wD7i~X2ySBbhR[kkuLjs !8agNd1XWH-gYdu4JjuPk5 5C39PS 1&˰0@D"";"lB:6ABx:axm)aĥVNjyc CiEaaKξpv|ZJei)pw[w Q\V j' D378ihfdJ"~=1}2DN42C}=tʝWRO .1~4Z-AēXhuvۦ y~>[\ͺp$촏4 6 FuCh΋9*"WYU9ҳ3|2FU!@0 8SGy^uVΣ!.9yԖx:S2%b ,8rpd_Ls 2O^ e35""bXW,R<:e6Vn/,R5,0h C 5CD`r@YeFi+ʢg &w[ӿCQc8z 6VfasyC &μ딹e,0`<gRj0`\np6 ?~ 6(c #o">}0amikKkV@HKCLjY{OV?oLfxz" ϰ+ #o?!OL5J|ڇ>Go[\ͮ-[0~&^Yt}_u-!E] wD^ICΛ ^T(PPZ/}}oA"7۷ @Tmmnu=?%eEAڪFlh{]1Ap5+5j5|akm"(i0^R*`!"#7 .Yo'_yh*4Z-feBjN8eM{Sr Qt~>M-UTZzx7ܧSG6 CYUkiVA~wIRT+QPZ[+ʝ m'Dt=sQ0ڑ5DDDfDDDDDD Y"@ՄIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Frankfurt_page_0.png000066400000000000000000001417261420322575300277320ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwT},KgH E A%ƒbQ?cl!B,M4XQ D R qΰmfxc̜36s$)$IA" @ H5P/<{l5ouuu***ڵke˖y7|/^YAbHHjjjtRo6MC_7xCZe]jٲe>tT(I z t7j D,50L2Lym Hl%өRֺNjg#G*44T9Æ g8UUUiÆ Oe6uuwQnn$Wo5\7 /PiiiJLLTlly&_tR:$ڀh <쳕wyG:SuW詧Rii"##uEƍs=W999ںu5d25۲e\Xkoڴ џRRRtml6l6ڽ{bbb4j(=s:|$?nF 6Lk׮Ull,֯_|檲RǏoZ*((PFF^QTT>`Vyi޽JLLTff2339EEEIrrrZ?vڥ۷tĊ m۶ڼyKRSSeUWW'CIM/VppϟnIn-JӔ־6t>'Nמ={dXj*UVV>| $IqqqUvveZuhƌڳg+5Ǻ111->_cJ^VDD:͟?_E&IƍE]d~Kbnא!C"رCeee<tAIœtW(,,L%%%JMMٳ"R$l6]xZl6md===]]t}YЅlNbzzJJJDIڿvءLRzKF8RzKF|RzK~hܸq^߿ -[Ř$9 U\\+55U/޽{I}MAZtJHHPaavڥJRzc>$ @ H$DA" @w2HܻT_APhUz}{O<@kz{uA]%룔z>}U$tKh;AbOvm>%]@ҋJW窦Fuuu=[vhСA*--dbffb!Hjذ`f#H RPPA"&}FfYVUv~t:LIII,VT[[kub2z\"A"4!+X))PZ9L&cjQs{]iSQQ5@TR0z$5H؍Y(Z$;\IIl6fkjjT[[ۣ3M *)I0qú:㫧&$@\&MId94ͽ݅$;A"B&Ǽ۱͊^4Uv *"&I*)Qii-FVEE锎r>Css+UW5&%&oꛟ_ RPPWU9T\\hBB\stVEEa= zuuNVRDq#G5[__ IoJyf^|qFFJk5mǝ~N驧&Y_yY\\v4OL :.Z[02 ӤIzξ}Z:_^|-#4o^${6m?YYPPs?rzu}Iz뢋2[l6(Az)zTT*;cBXZZf_77䪰@3!f}*CѣӳZMJJ QhhlUW f֓On%sh$]֭u%_|}37][o]K¡I6zyz"<_cCttFe j\s *'it 7ky̙NK$Q+>\ؤ L/~ѿݯ;`-XA6شA:zR_~yG7,9ɓH - 11v)"ª#G*u`uFk& 9e˫T{`5MWRRv.D /fI}+--TY&+,̪p0=/4Ԫ}gWEE*u`~iSZZ]JW.&'(99TfS|㎬YviÆB+I'X6Eۨ&[*55TII!XL:z<-PllJJjt@kDܕڠ@|\[ )'\yy>@3xpn9S'{p8Z4&:ڮsScqq}w=> cEcGw֐!se2dH~󛡚:5A6 Z>.?^VꩧGI.>vѣctU5qbvvH>^ziʺJvY眓K:q`SZ*Oo[V5zq՞{}u4p`߷o?ۡ/<#u睮|Cz-眓sujl1⋧crUwh^x1a v[_>P3f$I~VzO$=ڲfLֵѠAwo{lvY\3D矟(c?Y[A_4aB$驧jzC}oyƌ$=mT]oaMUxemGZZ te 71gN^yTM`Ix٤9sR|HhҤx-^MNbbFѨQ1 jS@L&_i\dK/%KfjÿO_hwn<3 S4%JW^9H;CÇGu:W^9UH 0@tԩ zɺq>-en7&j1 DI:4J<2A_?TV^[v=óm92ak{iiM155x|L_/<˷hÌt ü$7 5zÆEG'6vd'a„8]{Y&mv\}biΜm\.Zt~]㓌j6n,ԶmǍ1cbelѣNԝwҥ}_L]w1kKqqM@~ˁ2WGuHBB̌Ҕ)yQaaV=x2UTNi,4lf +}w~oa.|{II/?bرq7.V&}ӵ6žޱDor\NDx݈6-Q n[ۡ$]ԤIW^٥n]P]u`IҀ/~hU70ڱXw߽Avx=nh-\8NaXLQZ:_%%M S#[˗ipAWdd/:5AO<1IfI 2%A˖S^کk"Is ~Qso&N׃WdMV-X0F.1?Tr-\&I?YoEF׿N6zN9%gؒ;o^OO2~≭z]^~-ޱ>=I|/ (_|qX_|q6uĖ2\76Iy16UW;`}w?yƌ5qΜFLWL zꩭ^۽> k8\))u糠J\$mrLW]"bb^IM Uvv~ӜF?y:4R6I.%o^ziv.1ɖb]a͚|GR+Jz]"WF=v]Iozݔy] ]VV;Xo/ ]L2JO̙IzSu8;|ŋ2s^se~gەFAQt k.~W^9}&@PW9t-ak /0~~TZ$EEzꩭӦ5g_@=<ӫ [?E?E7 8pa .qm͚|se$mTMᇾسB@NPI`gƞfϺʮ/矟իlkyZxzhFj.jт\͵AgO>,vǎ2vm֯/hu^7FA֑i2}qPyy^zƐ! vg2@[kv¦'2_<:bu+]9x\7>`󱵶ncUpZ+hD١}tk+ Ӯ $=āۃmԨx-AJ'^Ltq1dydoLIhve@_KY[*3~Hm[4l˖ uzb5~|wl.}LTUi ]6ڡcǪ}~m~\~xH??⋗k%XMC6շ= t',\ppĄF_:E\;,|bvpOڨmVy4o^ڼHjժ<}}a-RVVܬG 5h֬hK7Pͭ4z ccߵ6bXL=:FF(==LiiaJOS߾aʜ-\'ixhWpȺUnc{ϵN 4QAY幥ɞv?DjߤsyYVG5<>8?lPK#5qbCݬNI'+/R~xH?/Gta͚,I-^sڑ#-|Ω*cXYKu(v<3ѽ<9iFDX=.tղۑǮ;izZC=yl:3 H I^CYv.iP4w77{Kuӓt1"k`]q@͞o^Ӣ,롇6kҤxEDn…Y>sE7}O̻Δ?׼Jmz\{jRm^˹-zʮyQֲ sׅZv;JW٪͝.>ͦ lKjg2@@n^z/S/SV4cF\+]{+ ^rUzɭђsMڵ>WZZ-Yr7]FgxFXVV7حؖI_ t]je=mlk.gI}hy߾amiuL: _SbbH;~{j\=Vwz1={o~kt x.x HHn-HcjP"g7.N!:zw`5wnΝ%]bnˠAu6m*j6=wGݙ:յ)zEߛ#:.t6 :fjKWݔ3Lko0vt6z*,2>v.t@Ϲ⊁:DvZb7'==L\O\Os4ZDžS ۿL?|MEƅjҥ.~ˏt9sVSOO۱> ԤI>%kJBw)mc{ I^C}oq啃EA\ IDATiyUi Hz7c|e|^HϜK7~裃l^lPO?=YvknUYvms۠-[oFGm/~_>s._żLI/O`,ԝwʧ]J@ݔ! r: 6'kHL29N9 U{#z:pneneq!tbTaas1^}lEEnm~zbbͺ!!vf37ᇇkzm}^ǏW'FJNMлT~~jfNd'?I5?OSرX&}h&Krz,Yr@Uư8g]w=rB?Y),̪_z_o{h֬7:5A3_:|rH;Fuꫣ2y4lX|r'yy6Pww3Гt*]{Z]`]Kj]**1֓On[}nuuN}A]y ywyf{W.UWhЂ ꩧOFx뭽zFL}=fkXM7}Gz'{ml%K[6؛3@|]Z0KK{@YYv}^mР%'6 r8 U2DS?wi]~?ө^\O#k몫Vz t4͠?iXZW~5+I#G(..HuڷLOsAsg)11v͚~•>}BT\\r:Gbҥ)1=fWlNHEgS())DuڽD~c#L駻vZ}ő *3f$?M*/R=ko7NM)QzzbbTTTۋ0jHU\\{K燽 9u VDD"""n{dd,KxNӰam&~/G 嘓r ԢE'Ir g5>?`@ j̮]%JHVXUkȐH^qEq˗ituS2,\rKלBI_'3{3LWv=.ǷjX*66H;V:BNG(*~ESSz-ڳItIUꪕz6 Ĝr~:^v'eU{65gNRSCPeZ:OV5q6 H@99zen H$DA" @ H$DA"'kɒZdrWǞ}v_L㱃EH 0mo9FGۍ祧8^KgG@7ztyf>d{olyyYQC@c% Slv\II!2M:&;sfRRB%Iӧ'iɒM>S(%%TڳTd&ǧ)2Ҧj{l6ϳZ{=_^ҹ+ RJJm~.*yMQP=rg}FuvIDQRRۋ%I#FDjm&*ʮaâ'LkoxUz7l(T]_]wo/_r#ڋt_Z*:3RdQUU~U6cUW;(]@Гe͚|efF)(Ȣaây<9^&T]nVhUGhݺ5*Ƹ#vmn=ɓ? A:G@O"I|^O==Q<1cb}̔) Uok'iGx6ou$D(7Z,&_3H5Ĺ'XshРH[tHV՚5r:[V=iԚ:֞| D_eui0!NqqAϯҮ]%C*+mp,,̪jmv("11ᘊk|0 [HKӰaQ 2r}amz:u5uDWOb||NMYR[mi+|igT{qKڡA"4{v SMC;w^^СrI{[s:jKuH9߃)=:FU33ߞ.I:eJK ӓON$')?l6i ꫯ[0 Bou$iΜTXX?i:JǎU3>5.@>t$˾) SPPnN;v}fyhyfZ&8һעEY^kҤtm#u<./R7v*i95N=^s霜ޛ:NP iu tu9~L6_VTTElّF4ju=u4vlyf^|qqN$|[r${:xb\__üpBqzVL6GI@k XsI{k86Z&|}w uyY0o\+sepjtxx t啃{re-:I uZ-RmAdns~jpTnmYnK޶h,3=W;d6t#tE ]EE~xt啃޶'ѳu:+""B 7~=22RGgz]ѣc}t@}w/ڿLGVsLIkXڔUURRib][4yhefFi#Z*Ou:D͜ -\8N?ٗ-~7ܐi\8mrL+V䪸F1#Ia:tYb 믏oTVVS*!!XԪj[w֤/9@秩ơ}ʴ}{}/Ź;GI 7ڻTCDSc׃X}|=c5gȑ Z*hI*) H˴bE+5rdfHҘ1z)/lu?Pu-*oє)0 Bo\knͶm[ ϠQw9J瞛.I:z ?%~okۓA"YS_zwc Ca~}LI' [;OO)%uѵqc}@=b7l Gl{t{oۦg1cbu}|^^v@=V.o|pPh%%Gki:&]P}=fy-ᒤbtjgd'')%%Tw5Z1ih#@룺^î>k1̟RSCu :;X5 pTԿKӒ%ZU&='U{s?lҽUHE{W$駷NĉaZ숎w婶)դIu`}oI'9N&cq`5iXƄ qs{6zV=MyR{ TnsWՊ0 B۶oqjI;ּmk[(q\~z6hok[۞z Aưkl6qwyWt/gܷ6YL&rq: >I:4ZtJ߻T'oJr6~r,9;}E*/9]ޓ&ŷXI*O:@1ևS4`@Wy!+IǏWܠZ[t!eeڸиtI?IҰaQ ь49˽{s<~UF:LLO5:kHWޮ^dz\{K(6c8omp؂IM/ ; ;~}a4stg}p/uqñF_e 7W^]Ffs}ϡqF[՚yՏZ#:r[Wwko6Ri 7EfMƏSjeqv.ѣJLt.dLTo|Ķ_KIY!C"5eJ8#UU 羨;m/pT`c͛|ޞ=3z[7)oZFYu΁cawSH35曣LEG5xp]VVmێkݺ͘  b|5Z+n RpA`:妥ړh+zeWx2{w=@tadr 9룚<~\K'ӧ'i`;-`>vC*klePI >\u90'k͓A~K[Ө3˓9u̟}1;mZMk~={JSPMbfBcŌI?f}lPӜf__RRB,H:Q=Jk_mE{>Q=ӹ+ 6o.2,M= 6W睗#a3.{B?{Q,x`fH2^{ϞQ={JmqFtyut:%ln{XzgU25qRv{V" T6:<]Yp۶-yb\]|q&Mk6٭[6lXí6,JvY6][7kytM{5oV[޶xMWA"E:2%Ac*;X&kScWW]Sk?u v~oK/lpQ0~tP TR!B8 RRB}KNn[oC\\㫢WNfϻ3Ө;kwc)##\k'+Vqd9 qV)66H֬or/[k4ƳZۚVgqmgSm{p z,]#"k4zǯXӓ^GRW7sk.ԷG4:Lro>(L&}zxB'4(cÜpC|9OfO4ڝ{נA>7ztfLZ&VUF]L#T^^5ݛ8~|hM[JRhvU de=yۑmEU=Ǿ4W{z$]:H,0.fvkPS7Vs{ZO+m1'u֛oLg\ӓ %i _e lNnw^z}YiƂ';7EqqAhOu|u,+ULIhrNVDMO=5Y=4EoUU]{PLy ꞗ}}4b{>6sS#*ʮOﰼe=yۑmE82i^~+ ¶m;nX,fozlaaUEZw6½ z3vn1SӧʹW)ڒw@p8x ̌o|<]rI͛q={ ~ |1ͽs*4ԪENj=7쫯+ړFfNQzURR5mZRSC]!C"էOn.=;Km'lSFF^4Y}4xp&NSPEsF^Ud}v_tR/u _1cb4lX*+aCNM:nQQ6n,ر +rd 4)^_|qDc(6\ݻK'oիW#+sGڕVI@sWcN-XQ<3Ez*E i$,`C[[82c Ϡ- nӭЙg)+H A?>NQQw=yߙeWlO޶j6n,ԲeG4cFRmYYJJjG.l|#HՋ(|mqWA_jTuuXuo3l5 2.n}֬)В%3f5 QT]=m{~s*׽~o /?gN]Ov͚uar]5iR| Q{xbԩ ^C,-Y2~ŝv7uV#jOuVꜻr۸P71JM Մ q^C_ss+[lّFSݻK4`@*+eK׬)i?E{/?C?VQ^sxc|m ';7W7ۓmi+ޠ4A{[PP;XvhCJ޶^ݝtu{_^H@{M)SduP^}w7-癤 IDAT-TGr8ڹD˖Vqq$"g&é: {}:Zu}p֦ME<8|>o0M9kW>JJj|>l6iD  Wor8oJllOOR2\!7m:ۏ=ړF:\l6LI1JW5z: 7 ӕWƍ j֬d ietgmkۊjРvZBTUЎ*+ϟcc3;vzsYEDD(<^ziv,VPdd>2!!! 3{ʦ'8pLYYEͭTqq#njSHH*Ug #u4(t!HlBmmJJJTZZgeee*//  L>- CCC{PSIR4A{Y[w R]]f(z^vc.;P}FŽ;pQgϞZ6kشinݺٳ'UG"22Æ Cʕ*믿pqqA߾}g",, ;w*"88Dž 榬4 FR2=rssuVk&-::=zG_~M6EBB~'^Cff&&O JUV ϟ|_)Ν;9s&ڶm3f`ڵ֭[O>prr͛7c\|| 5kXb޽{bŊGHHnܸÇe>>>S]hҤ |||JeQg""D"2haa!{-ѣez%1!!Alll 0@222tև(yWZe֕Ǐ+'>ƪUJIcʕĔ \~]gŋUHڵ;VȰaǥK*W幹RjU ;w6Jb~~4mTBΝ;'N^[frԩSaÆ iժꔗ-jZHPP~HDJ%-?o<%MrrrVTbmm-/(jlDDT<DDf|4H:uw;w2bD...zAA… m""{Q޼ysZҩS'RT$)?"DEE{ T9s8pf͚INNرCu%\T\h[.YDHƍ-[4͛J(<=<<fiLDDDDPmnW;ͨQt&@)l̙5k:ud]&_'O6oY{4wpww8qL8yޭo9նƍM*;22ЪU+i`5jO>_ Fsaڴi0a`ѢEhҤ^YnnnHKKCZZѶԾ^wVXcRzuV^mÇ7]eUg""2${ƒm'$$Zha4M=УGʿ~2/h4ѣ2Fll,˴֯_ap-z9::޽{ iJ\v\\\ig4D+W,VVXcٲeyԔ233gb߾}زeKy5jdtPZԙ$+ܽ{iiiڵkk E_>.\`RڠثիQdӧOŋŦ{z <{u;vL+h"0dرC <<<мysxxxEGpppaJPU'LD U[Oi[W֬Y 6 %%p;v,_=~Yek?""N2槟~R3t۷#G,6СCkc,Nv3,^zz:z`˘>}:`ٲe^:VXʕ+ҥK5k^Yw3jEDD.QDD H"G(y n, [xqWhx evÇ띤w8x `fo4_91Zt)~G =>gtt4&N龜q[M/CU`ӦME+Dzuap}cРA9j(dddJ[F |g%K<׻ҘwyJySu&"zNrӦMS^mʧ_~:tAY׫W/e…ҽ{w /转]?TשSGӧؗ{aѣuF7ސ-Z^z,$֯_/*JHʕ_3fH߾}V>|Kڇ V=zH 46ؿ)"믿 *H׮]wߕ &HjT*پ}gܹJ[\~]o?z!MwVS.\(+W)SH 4o\I3g9w(O>&L;w8i&oܸGBR=W}Tu߿?&ÕMdoosVZhѢЧOڵ ڵ+C@Km۶8tRRRPzu۶mcƌa#1H$"zv9::b…ܹ3͛$FEE!,, ϟFѷo_+L_56lc͈%|}}++w~~>~DGG#99...ȑ#akkۿ?0n8ر?#&Nݻ#44wHII pa$$$` ž}p=tǏBBBp!ܹs/"x R(ۋڵkFaĉhԨ۹s':DxxxgϞҥ><<\)BPP,wС߰uVL4Io͛鉦M K҇\Xdd$WWWL87.u_KS7kkk!!!Ajmp!ܼy-Z/ 7774IIIoq%jxzzb„ prr!""9rDHPPP5j$666RPP,?XXXZ7772h Ri4:thBHݺu;ww*iSSSG4iD,,,mVAAARzuٱcT* } 2D*V(bŊh޽{2vXZ̜9S*V(ڵ''' ƍѣGkNV*dzQҺ;V4,[LjHӦMJLLLkLvv1BZƍzKI믋{{{h4hܹs 777С^ׯJ_Ǝ+$66>,'|"666#...J]p(mߗn""bee!VHۗc%޽{EV YԩSGHj͛< Ğ={ ?ED$<<\H%--MDD޽{>#ԬYS׮]SZ\̘1>>>ʲ fǂ PjU]VT`ݺu‚ JC `˖-:˷l///gj3w\4k `aa &@N[C IDATR鴙}Qھ/iedd`ѢEpwwǢE[_xL:GTTrss [?n8,\mڴADD*U //ܹ3|j5:u[n\WZ={) #F@FF.]gѣGTh0Z6i9u5jY_$&&իgp}qa3bȐ!;w.\WWWlݺ">463/VBBѾҙ`hÆ 9r$VX+V=zQЫW/$=9iiiA͚5aooLFio,irrrtNg̘  x7/"!!7lllX[Sw~`a+k_^̨7oӱyf4k M41ǜ>463/Jꦥ2_lZoooؽ{7"""cXp!VDD ˗ѣGxwuԁ 0tPxδһ… FÇXx17o(/..h s^ִWNccc E*Ud<<55͛7믿<##^~5jԀ;ӑ-[]x:h̨{YsttvޭuQ>}ڬZ 2OƂ I򨛛jժ:VZ˗ΝCڵ#___rU$ÇcԨQʧW^pqqo Z,Xlt 7nĕ+W^z޽{:uN* o&.]Xر#߿3gjՂ3BCCL\|ʭt%qdeeADʤL{y ???!116l?,--^ꫯCsfmmsѣ>$XK.EѶm[xyy[nqe$&&bɒ%عs'ڵkJDD[@{O+++[7N ݵkqA/_NHǎe:iU*̝;W ;wt[SN)5jD{|; ND$88Xȵk 7P{Snl{""_eڵboo...$-?4XI4#Cjee%e}if=h")Yf:o>qqq[mӦ\z3""#TRV?QܿшE͚5Ѿ}{h44DDDkkkmu+֭[8tݻooohHHH/f͚_,?FQ,˪2uSSS+WI&hժqaJEG_<ݼy;RRRФItA⦅=Bdd$^ {{{DD`HD*$=I|&$>')7pE"""GD""""""RvS""""""bHDDDDDD A"ŋ={6k4MAAfϞ?턄{i;w`ѢExwV|wٳ1w\LuV̞=yyyqb ,Y_36w 駟iӦaѢE xY4hvލܧ- cJJ ЪU+ԪUSvv6<==Uɓ_~򺻻ҥKO/ͨQn:dee_3[nt+&Wɓ'?s9r٧c„ sNē'OҥKQѳ;6w|O"ѿИ1cfx!y&[~=`ҥxװm6|W`|&D""z&8p ?~<"##vZQF8q"5j CBB&OP$''cѨTN EfеkWeyTTpyh4 8}JR߿III7nv؁'NDݑo.]Z'&L'''ؽ{7FJJ py~ptŶΝ;q!$&&={D.]<,ѱrqF899?3֮]={`%ߢ>>@I&baa!m۶m֘qㆴjJү=zwwwiԨQcPDDT$=CAZ5kʩS˖-2eXRRT*ׯ޶ׯ/ժU\ ҿIKKȰa:8::_|!7nܐ]t3f  ƍr㣓.++Ke˖Ŷ}Ç""_IΝڵKI)dʕ%W_}UѣGED$''GV߿_lX6?wX[[K߾}xyyIZݻJyyI~~KPP5F)7PԩSRV-$ݔ}&"ljk!1c|||eǏ Wڵk}~MM̙F+W888`ը[.K3331i$L4 5j@AAаaC[@Ǎ M6& ӧs{ꫯ[Ƃ PjU]Fu ,0?233c4hڵj 4 -͛0]|bbbzj6Sprr°aoyGGG >pTRR6l,[LK.56dž60u|1H$"ztM/PByܹSYaP)Ctt4:w +ZN:֭[vNمSpwwlj'0qD9s`ggӧ2m6eYHH ˜`YWvmkgϞ5/v܉`ԨQYNMm~m۶ɓG7@=tʜ2X]0i$o*UB-iҶc YZZnݺ=>6b>QDDOV|iiWxђrvvFݱw^} 00hY5k/FLL ?ݻw#""!!!X~=O 7WZdeђj•mp漪"55{FA޽֟={ϟǖ-[0qDu3fg̘ *x3)cbŊ,볳561gA"ѿBƍ@]t +|eeػw/vލCUשS666z˵#X<.++ ptt/|}} ???,Zsѻ8CŪUuVٳ+WFͧkp}ll,TRdټy3rss1f|zߏ={"$$hhj>|K,[o_ӧOG>} <.^͛7GTTNg^AA@@κڵk>M 7778998w4[;tP4hlmm~zl߾V_ҥ 755͛7믿^6Ν;ڵkc„ : ANN޵kWh4|7СCKt>>>ؽ{7^ѣ8}W1z???8;;رcHJJ2%lB߿hԨ>C|1c "-5''-[kN˖-QJ|xκ+Vye8DD 8ZXoAFFt9s8q6l؀.]`Æ hӦ +V~!,, iii3f^  ;;:uƍqDFFW^wNZ6쌭[b|2dܹڵSf,ʅ ?VVVx饗peVuͅ 6Lnˤ$;v h޼4x!"ظqcW62e ^*T'"22_}VZpvvFhh("##˗/#88X`$*US"%%;wƾ}pE|ǘ9sYWbk"'oƍ*t>2n8u^c IOO[ EPDdǎ@6l(m׮]RjUrpp˗ӾNA}^ڴi#W^-rDV+y z+k׊HxxN'?2"i2Ē:rrrYfboo/""sNqpp)ur)eF2yL;Cׯ . $ݔ}&"ϴDDDܹsGzz:6lOOOf/-kGtt4bccQfMo=zH\zpww/;ϟ?Ç#FP&D}̞=:"::W\A&MЪU+888<5㡴m^ح[p!ܻwhѢ,--_~͚5Ë/hVIII8qо}{3>MLDDaHDDτaÆaHHH0{"""*g7%"͛7gϞ $SwAZpQ$*&&h׮,,8)7D""""""zb,1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDTDDON^^aii:uҒBDDD 钑 .pqqA&MPR%i>ˤ{a<;wupi>@ڵkѩS'v|9:< ߡh$''K.HԫWϤXh6mڄdj5իݻcԩhԨc;v{=/_u~gX|* uօvaÆARhiiiP8x ԩSl:t(.\TO>+о}{[r>{\nn.㑔QFP%{ie>>>%KbBϭ[nI`` ONٳzyt颗OLLҥKrqrN)))ӗ{*ݻL6V灱Fԩo߾%ӪU+ cǎ} ޽;:O|Lݻ2egmm-SLw͛+}899urr?X91>JNN7֮] 8::GhѢnZmUPAѶm[|g7֩,nee+fSNaĈHOO /^?Bbb">S ++ ?_r͛7#338p߿Zv-֭[oov~ Y!aaaشi0Tch޼9>sGNN>sx{{ݻ.aԨQ1c޽ 4m{.O v$OZKJvv_~ \\zUY)>,3rH cƌٮI&k$yW/RJr;v͸q߬$uѣGҫW/%/|%Hjj*$|̬1*w^Z DD$??_VZ\]|~ze,#yL0AYyfv$"&& `2e(]vΝ;acctO*T{{"?GQn],Y Npؿ? /ѴxwGEZZm\}n~(6zW`mm۷ocڴilu>Cڵ 0k,)ZXX`̘1>}: 44:۞;w.SNXlc×_~v{=vs<"##|++?`M{^}:߉իϟ|9sFi3g ..0vX|* ?cǎŋp6mWEzμ;@4hPdI& W^~ ~dpRFwɓ'eȐ!W^͹ݴtn(Y?u:vrJ*7|cpXYYI~~*tR}/|p``T*T*kz{LLLN\R ,۷oSںnZPPL+f>}Zof4]~۷`?#ynݺ` כ@=z_sƀȑ#GaÆj9s^cȑ#Nޢ;|˳}K+js')nRT>}tl3gO=fvӅ JVVxxxiذdddvҌl·ݻWTb0ַ9"k֬ݻw>yIgq>,*J4ܿ_g]HH+͛Kppr@.ղeK W_ɚ5k$ @9Xyzz[=`O/_.k׮#F( o:=C O>DƏ/իWWϋ㏕ʼ7,վk+[n-s̑KMY|r oy&gˈ#QI?E}}&3Y={hf7n,dԩ߹sGjPfH-^ڵ[[[:ug -,,[9y[z| ,3`׮]@Of͚%GZj)y_y5w \zUTRE&N(/YfI&M>CSAbYoqi0 M qss` r #""oIǶ9f$ ,P{\puu{{{QTҽ{w={q}ii={W94h2[i\l[x >sҥ%Ӻuk /6$jk׮KRdѢEz͛INN.Q2iܹH~T*^zI_^fAAAzrrr}zWJRNW?sEquuRvmKOA3gbŊ:cQF2ydٵkăIJlkkkɊt [n}ߗ?M62՞={?={H߾}`˖-:zHP󺧭MA"C:$UVU~4v[Ha7oRN"o]*Iؾ}b:T.Ab˖- yޢ { v9s_K.]ʕ+Kʕޞ%qe$.\P"7={ET=111ұcG7uQϟ_ s<'N[ nGeMfjժ Rf+W_58j_`~饗d hoC7Ś5k_˺}R+ qȐ!2l0π^лc[IIJn ݻ'5kTk$e>.L2BnݞǏ|z~V*zyׯkܹ3OCݔwIеkWᰵ-2_^^fΜ 7o 4VZ-60իҤmkHoժڴic0M5ЧO(xÇ/}aҐOOOe{k'[޽m'NY?N:pa\t ~)zL"_gφ+^}U]os￿uׯ_K[b5x'K|nݺ2e$XyQ8PbXl>J;Zh"}E+W4;Z֋/s疫n^u H;\ed_ߗյ(ɓ'̙3sN$8g.cvvvy<.&((HJ^µM!áwyGy|4ir?%$$(<<ԓ+Ѳe/keyOaf/}%zR]uQbbvܩ}%IQQQsڿ:tU CO?~Zڼy;-]Tܹso>m޼YE֫ŋϟ/0VjO 6辺ԩSG[.uz=${Ζ_qԩSСC5aW7:j߫SN-gMEFFO>k\NVY"+1rH=ZK.jjѢE- 4PӦM/Y/x~W^|_Vvg)))}>!C(>>^!!!z74vXխ[WgΜŋk:x֭[g?OpX ya:u8Y&$zw^M4I۶moƏٯtĉf+Nyԯ_GEKoʕZr%?{l.[˵`m޼YE~`9a $5k֬y*s{K~_~z?־}m6͚5K?x!СCھ}t"I%^+mKmWYRC{>MJJR۶mUO>DO=ӵzj^ZԪU+3Fӟ.\g"3@E̙3+##C?9+V ڵSvw^-^X]tю;KJejq, * L4I#G˵|r*##C z7SyIVQꢼ'TTF]=bbb4wr}^nٔηPUee<^~)_|!I;z;C_}ϟ_,$^x<ӫJ Qɾ[M8Qv]C '|RJ࣏>$ݻ!VlR׀ڭo'|R/B7#""B;vѣG/:R,SsլYԩS'ر󇆆o߾ZlUξ|A}OjС5^n`Zͫ*sWV}U .@JJzZϞ=kڸqyOq7oٳgg 6(++KԿvz%I޽{K̙3:tƎ{/NJנM6γ~ }Ϟ={[gVXaޟ♿&neZc^s1;w4K禛n25~u1y{{kܸqUV|?u2[Cͦ#G_~={v5i .N=~\-Q]Tg:mڴ%7޷o_, 'O4?녫FQc7ߘbw}'Iڵ|>}̞M,YRj="{ӧ!׃E+g]ṱBAW|YFE_]\M#GT-dƎ[7l7NרQ*u}==}w-2-77W>/_n"I/'qqq:u$#F{9"##͖O>D>`_ [n.ө=裥=#I$IwqGv4w\E;qNeeef_29)Kl裏<=(^LK1/IziӦjUTgZW]{ޤjB㏋]ÇܹslE}_cС:t۷WzH6M"`x "//"Y$͚5<+\xO>Yl됧rܽ{&Mt{aÆ{>&&F.)Ga1~V^zKAAA\gi9shРAڿڶm={[nQFF.]4Y,͝;U_-Ҿ}Խ{wM0AAAAڷoVZCSNڹs;3fhرEYfi„ ڿ4p@nZvҺu딓#___}T{fϞ$mݺU>5kLZR tq8pf?Vxxxm4x4h@z5gK)))թS$I(#RyK/ 6رcj߾6m(//O?n*I{չsKջwomڴI3gTBB ]Vk׮ѣiӦR~eеիW[{߿6mڤ~XճgO;vLf{饗tPSGrryYg|p>֣GM>]-[M6ijҤ>x楗^-R䵞}Y-YDƌGyDZү>HyyyԩSc^:`ຒoXVCe?zQuRRRoe^CBB 0T={0牍oe" mJ} ///Cv&X#""}n,XKJJ>)ﺿ놏O 1-Zd}ɜ8_,Fu׼5k(&&Fyyy&~6+&&F7oӧ6mhfk\UILLի ժ:hԨQ $m߾]s̑fӈ#tmU<{k)##C!!!ٳ rEðTUnn֭[x?~\.K͚5SfԥK+ꅲk׮#C׃\gהr{) 0Ժuk=ZaaaUR\.l6O曫]yƍ믿*))I͛7W۶mumY^Hbccu կ__T~tH2T=B" ;v0ٲee{wC"\N8 رc ky%;דg_pG;Ts[nՑ#G/hܹTg@3hϞ=7o;D@b j|P\8@HT :uR핓aÆ_VZl}jժ ppq D5B" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $]pqiiZ&N۷'ʑMuԬYEF6UTTKEF6eg,a솢\.^zi&N,,$Kܻ%p0 С5bDl٘x-<ھVY,>!ZU K a8$95fLoM0@M6` $DVmՌeՖZKVVol^ZmX,2 0\rr:fHt!.p+,,H<0TFb $$k}d֖|}k˷ $Z%r 3 :v9~x?`=e $Vw[ڽ;U^^Z[[^^>0 9N9v99Ϳv{^A0<=キMP]׽|\ڵS[^^޲Z%Krr8n*""""K篗NX-_Y*-PuTN) H~ 𖷷>DݥN֥,}m)EX 8Y޲Z-K6MVNjrrq*/%%|XU˦]o 8Z :9tl#oJJJmۚOH8KPuՒ,ūO9|݋SVEvK~7PWW-[vmjd1a-ð$&%T5oްRqc?ժeSn2维qcm;SoC_zq: }JHTrr毁)n޼CZ7?~HSP֮\uנ={tOr_p(/&ݪ*hth:{!kʔ=zp?T(0XTݪӧ3rdV۶4/ի~eG*')??/ ::v,[6ԩ<.95naU^jҺī^6o :petb#\O)|;r:AYЪ:|Ht?JʋKO ۶2/9Op h$?9Ldd]kT!!I%I{ѣԴբ ԤuWYݺJN>+UYCC6SN9-A(h5t:H2TrKQ}|dUӦ$_=\~=G6=\{}w"=zNt ڹNu< XKQFFƎUϞ5lXnPUI ݛRpI p 5A9<P=ݡY(,:/U$ ZԖwmرP|ћ>ƌiV==^UIAL~~$iS H#F4)jWjҺīeF!pJr0r8 x^Ţ!hk'oIEGX< AAW/BCԮmߨ_WFFQǜUK &/TMS\Iee9t9}A͟H<^G7Kr}2 g~DV=4ӚOr8\x٩=.3,K_?ҷy"Ӛ4WRRwG֝w6ѝw6e(!!S|eˎ9+j;u*싫!j e02 \. hؒW+eZ=Z ,j$DW?ܙDwo^]ud5Sdd]\v8m`_IKj۴6mjܸ9rC۶ "\uicԷoǂ0renS~~|HN E[*];(EP5k֠ҷ<-t;C֭0Jr]Oz83LZ=6ME˖-q k=|z+I9%.[kc]B5jР(yy .WXR8t8܏^)S/=[۴ W˖U_o{mN, U~2 g㔒]dznS/s]ۦ4ߦ%KΕ23ݗvP|It_|qr~l+lGʺz][j[|O2 ݚrI!%{8d,36bKK<\ PvY5Ǫ|m;)S /^}Nݪ,}zʲkݺT>'Ez.EɭUǏ{6wj_.ܙݻ%ICuԫΝci-Z~;[om<~~ Վ:}M 5o!թ㥻jZuװQz)..Aǎ [E{8==&o%,ڂD.]nTNj(Jj(*mzBhQ;w̙Wv*99[۶Ҷm OUE^[5s~efڵnE{{[uz׺VbYmrB[0 ^#]v@k$+==_󫂂|̐Xu:jz2 ,oY,^Z$y:ICcCEOG4/'-==S;6wtpjW}cu ڕ 6fԧO$9aCRRuD|[n QÆoe(66M :u*O!!ݻڶ-{[֭'d#*d]B5t_Zy7C33,;$^xɩgZݗ7A4dHW5oސR^7f)/Ϯŋ7 ~.URSϽyB_y'0xc޽T{mKGZZ,囕W%ZRĢ!hbnIСzTծ]3JBbM+(&&^v6'$/;=JnM P7[V喛ԢE(% !ٺu6nܫm(!! [ &' W6j۶:vl.]Z*0Џ XS=mhϞ$%$:~rsDͪ5lXO7yPlXmڄILkTBB=tչs۝X$oRPPׯƍմia $^벳afvmגfe $-4B"^[o3g:biӦjݺqbmݼyf̘={WO|ߓ'O{5k֨uf?kNْ~/k9˥ݻӒ[oUͫuڽ{F!I_rնΜ91cFQ1 $v%%%]tÇkÆ 裏{i޼yQۙA)''|2:.8p@jذ7o^d4nVѣʒ$-X@׿x~GǛoٲeS~~NUg^3u1Y1 $:gfy.;;[ Z`;-[hĉjTEڵkkժU[5m4{5LiŊ.k_]Պҫroп/JOOW^4uiԨ $z?~|/kZf6mڤ {1vIҠA4pk}`>}Z .dHt\ZdI*R׮]+5u֥^+==]?~<j6^M<&MPX}=U]O}~FS%VF$(==nڴIի~Q -אPuFG;4_>fΜ*//[[&MԸqch޽EjÆ X,}zҴd̙3_z쩑#Gnݺ]+Y6!!Ao&IߵfIwϞ=JNNVZZ$wk5kܺurJ%''+$$D۷פI.Pj*_^iii Uu^}Ӿ}{mV-[xyK3Xz:kڿ&MhرjժU?JovK "Iںu/^G*$$D:tĉWCe|N.9-YDk׮Uzz7nh\櫯7|4W^ppY \&mڼb И8q1awƈ޽?0nUy'xs$Cp8.:2 IwQdZRR!2N1qDuWd>0~ԯ_Xtip޾ *}'MTr!!!<۶m3K\&44عsgyf#""ٳgLy;c+$ct:Fo7n!4hPysrr'X,Ɣ)S-gs0y_qݻy 7$&LU}9,Wx?~ٳge :4N'_<k-׀}QZնmG 0?:l6KǏ;dY]fԩwV:nذAf+Qi|M}gQ6mԥKs~XԠAM7ݤ;w믿։'twkʕ6lX-˲={OR_^g}&I޽ײet͞=[;vԣ>zE/5tPթSGk֬󕒒?cec\QG;v駟V׮]zKgΜ_W-\P;vw߭aÆ);;[3gԾ}|A$zj![5Nb$?f̝{_ boctFa4i1t_S2+%qFfyW^]bb1|||ѣGZ<-;w.6}߾}F- IFxxW!aL<ِd7OUaȑ# Iƴi.ښ"xK/ӏ;V]v$#22HLL,ɓ' ???ѣenI4 ر!JG5$'O6 (%1//6$&M*:ƭZbK$Z,GJ29R%-y[/.(yVZF|||e7lPd[E9sƨ_ej*:fF6[-֒i())KGSf]KE6M^^޲XlXgOoO{?㮻RvԫW/λ[wqGi?Xo… ոq">SeeebhܹŦtM5k$رcZbE,[UW[oմiӊ=?wbj޽ZOyy 7h޼y Tvv>r=#!. j}IJJOcJ,, Gll$[nK\QFƍ˵~kvqFnP/:[VzzK=Ŷ144ԼD,[ӎqEꂊ**I۷oxƢ @eKйsYJO?-"___egSnn%9%侒b{:ujn+22R})I<'tDEE]tΝ;k:tP,[UWe˖%>_Zύ 扴ϒx<|p/**JZxq{=3L(11Q;wTLLz//c\eʠŰrQmk\_~MYY:}N|}kIvܹ,0_BB+t=}bnL6m7k֬]<}Dh~ ʕ+rKr=ܣx-\ Wria˗/ׂ yf%''i *kWd/.2xMQc U/4WNgN:|֒jT^^tʓeWǎպux__R^/|vB-z+q'NScǎۻ{N6mRrrKMׯ_e9EGGkٲevGFFSNTTT<'xRz+̗VTE%,GmdQF]VV\. .+_.W\\z:Y5j;#""c=zy.-+<(zyuZlk?Q)ټys|_'0;3fe`f@|' /kaPy+WEzC5׀^3pdnP~9r8tә-ծchذ5n=3/cɊXֹ:Io˖-Zdmt…r\Zt˿3!Cox f^^I9qe*Q7]pd<2 gpdyzzaチj={$_^%γb ~%]ֹի$)&&F{-q3ghС;vl -Ţ[jܹJMMU tm]O$iӦy֯_OeRc\e D8ZiG>qnU^7[4zh{.Z=vZ 7i$խ[W4~b=iԩܭ#Fej+JEtSȑ#բE cۦl7NרQ*}@opرYNEg_s+WUz=):6EGߦs͗jh֬Y0a߯( 8P[֮]n:W~i!ʳlUsyծ][zj[ *2xzYy{{kΜ94h߯m۪gϞ[K*--L*=ܣ͛7̙3W_-Ҿ}Խ{wM0AAAAڷoVZCSNڹs;3fhرСuWWF2uh܃.̯dΞ={.:󍐐s#66—!!!洸.IDATKoaS%nSxx`2C;bXVCѰaCtgܸq$cРAŦ놏O 1-ZdlrZWqq|Ag?P_|Vruuuoj*'DI:r>#ϖ-[;wjĉ5D$ZcFV6ڼObee222T\\,IruuՂ tA~Ӏֹ˔2h2 X,ڲe˺ʻᆱaÆ[oջ[Lekŋm{njc+((3&[oٶnj9r->>[orssm:tIJKKm<->>v*++m\sfl plrǾlV-^W[+]xŋ/^xū=Zx)wwwM$w/F<ÇU^^bM0,>#lj}3Un*o233mc+,,:tVZZj{˺ؾ{[EEm׮]۾}l 6I6fKII߿v}233kTm\ے%K6/^xŋ/^xi/Tnnn۷aeddX_~TVV֮]2չsgmܸQbh*..֪U6IEh$ @ H$bnxyy/V||vڥJ<iAb>}7S^^^*,,jՕW^v vwwWRR"""d0nݺ)##v$s9 JƏO$b?www%$$pIII*++EEEڼy3LItuuUbbk49QllhGZ&T_|ӕ'ժ<&{ E8_JL̥0a޽Z&KwԖ-ӧ'hܸpIңn_ys_Z=)| ]4(Hs'g(/M?WMFD@hJNΫwcoXPP&LSvX٥$N:s̘TYrMsstPf:tpDZKhԩrq1AAbbb&Mefh޴n]fXGnV>>.1#^=Iev Z[]cGwMUG:jfcl\g8ݪ^[3vl99=qf:xX͙ ]sMլY4kmؐMs $ӡC% HhTgiڸX7dH05wZ[)oo22J^o4ԩ]UY)*3Dd4ܔRPt{`4($M*+TzzQӱlzꩭ80Hf;kܭ?:uT`EVef(=kz㢈ٿǡC%*iֹМ۱:v(8P`:۲춦 շo$)$M..FMҔAb;{AFizggԩ08WO>٧S\P'F;Z>ܙ=##IzdJr쿵ۺiذ`8W@U7v+7E{p>Qӧѣemz{8nQ:H^}uV8촏K.#%IO?M۷h莚6-N]:wjj}vcQ#kqZvz晭ھ=կ]J>Q{{OI۵evGwvcǎ\vzuLv77;6Loq 1$hرa5~$7xp>xs#^;3yr}( RvBCԫz򗇇Y{kѢK3KoЈ5n%{ 7tgV-~ }W6e;Gzzq=k5|xHQ{]'Գo<BCgW3@aÂC4{vZinXzA5OQuռyuavl?4ԭUυ-Ӣ%!yKærz_PP~yXRǶe6m@h/= w^GhҳuM]kUh.=[={kck\"#=imiD{:A{ʣ*aaz0!cW?Oz۞~LwJ$id6cGVRrr\5vl7O<_W_KC ;~*qcvu 77Z~8X[רh뢫v*/RFFWCEyzS4~U\lmc٤9s6wFŨoxcW-^|bO~Sn}~~~)Cݤ}կ_ ) U ɿiϞ5)cUl|[wD%rw7)"S#F:j.0\Joس@vH 5;׻ϖ<Nڕ; I3L&{5%%6k ;76+5ztY6}~GA4vl#z:xXqq>*-/k˖rs3sBuYNAWm#bkck]ZK[Q9 9}{֯?Rbbč9sku~hۡ$Io[/)|~{7M+IVTg|f1ڹ3O>.z!ڀà S~Ǎ ȑ.LԲepv=X_AEԹ<ZA?ǟ7?EIl,`sc57 mN6]395}2]4}Zu,? Uwqt][Ԛ*Rfm[?O1x^~v|s/L'zӶhQx5 NO>)-c$I۷h tZp%'iʔOTn>qd1&[~=)(-[’%yw&rͱ&y:@ڵY9߮FvŊzZؼr͛G5T~ ۺ9=y5_XX\ȻnAFc/ŨHOAKkqW^^Kw59~z[}>x >{MNGW^IVQѱ~ՃzmlkPkk<͜9k/]wq7vmw HZm6fTvWD;7o 2=| ϙ[}?ȑzGP|-X] l֭9r<啚3g#'@&D5y;U5FU^{mgm,K/nAڲ娶l90={hUP'R~VX${s7]o޽ΞzՒB{+?>Rk\TkqQ;wmslnԀ\ ]jϞ}:;w+gGj]~yRנVyt} 7u_*dɱqq>5di$nߞu5t(+t4-O>^Gsނ#еOTа0z'޼-KѲe)CvL7Շ:uW5i}8j(jTطNqݯ_`9^}nini 10еIn48_󆯥υXv[Jzzg292'ڲu5]lƖȣ,[`S쯿4FU 8MĴîW/ʊ; AHLhw4o@͞WC782]kz!==͎GcM wmTۏH*(9O, cmp}lUOZZ&B{-)+TNNY\}~=6]yOZ2E922Von|`qNk^Z[[QmWj˖c׋5'7p)=p'${ۥ{FW}8nOOSW?Q6 l#5n\ƍPYYn=복jU6mn\ +S[5o@I&FctlՇoʇ樁 pUVVd2wouHOEDx*2S:y:FloH{Сbವ΅ZvkAuZCCymVxנvsc/W}ڍ 8Mt^_Y^^MFWKذ![W_?Ak^hտ7*3D_}_ܢ_35fLGI̙ ѰzMmڔUhV>}mעitEMV=1*j_ұZ\he-5թpmi`7MEQ޻,[ܹ[5xp]{9s67^<= T3x|ޝLz5ff(11WJM-PRR//h*oWkjlsݶ^jio} jC{Fh44~kiaaEM$JߤVqooNt.-]KfA5jTGEDG cɿ\rGý%I]oٯuԻ^AtohrcA)wme O=5 VwRi6巪nck(ZυVvqz\{ jK3ɠF5=ɳڵMәLk u?"*ra-\/Q>[}>Zg?ܻIx *5nTTt]mvl՛56Z-υRvqz\s jvoկ<]ρx*&挮Iޔ%!O d|Mr՝'/_~Pkfպf" w&#Ub1S'OrK\lz Th?p߻v巋-]믳eӻ-u foOΝ\8.Nk^bhJ{].hS'OPڕsJ;RǏbԵ4]t9:d!0!J&D \ڍS5۷PԻ-G7fA^۹彽]t&駌vQ~d.#GvhtA.?iRgխυSԼ65HSƮD]xaDsFN4OmvZAiw8zoG/tS~IJs=vlXzS|fz;vi>.eot6}>+V߾ Fx 1MYYӺ'SzG;.ND%'iÆl3FO]rI6;Z6g:^UU.(&}K#O<3 5ڿiܸc2?`2ZAihժLǍOԃR\FL&"#=׿';nW8[sNg͚Lhsf4)F^uQ/4Tc64p`^~ySSEr&04U5؎*-?9 tSO pd6ԭsӍSs;wp11zs4fLGG-g@n^|q,UƹКe76և_3נۏ=Ҽy~k:s}k`-]z:+Dnn&L衇z9Nᩚp2 `Ifmԋ/Ql 9UVd|*{w}tiFR=m[?UW_ݹe9s^|q-X8zk*b4kٲ=Vu\eZ0Q3g&H 'VVV + m6idOA#|mڔ߬u;w'Gzh4("CO=5@ֵzg);tyN[\h鲛Q{Pgi߾Byz5eʊ}hSנ_=ksxO?RYv,`Z>[>ث/(}sx43Dݷ֩N|ӑ$N>,)pS*eezݚ:u-;m_ŋsNs V[lզ/L׍7޽'K/%5zt<фA1M:0}v:tpWQU))9pΛ7Pkc4s:cF -UvG /U(3Dsnu g޵% C)W=Z<}ezofZΝtŝ룀ʕZ:Mr;$eQ&g9>I'/ޤu. *mnDݻ&OOSȠ';2jn k4j? / EE54,C>W]!>o")$hW-]:irWbbc{lDSMzzT (8Mu5/"-\~8H$8݅yh0{(Z#7o-SONϞ~X Uh֜Zќh }v֭;?ޫG#B|A=zr]xsBkQ~~#zDWX#N81Zݺh4(%%_O>EnYkWVL7oS#B5qbIyyjDk@M.]%IW_Y_G٠J[?P&uA01-X]4mpC5iRz𕿿EVM{S{k}єk}'$9=dHNU^~2 ڱ#WoQ̚6-NgNŨsC_+3fR>ZpV8,IڶXѫiqኊRFFygp 6l8b ХF**KӦp課Jk-!ۺiXIҖ-Guh5zt믉VnnYv.ZmJL<11z^٤>:v^6'ZjUAbL.FiŊK ~Z,rJGرxlj|!u⣘o͞OVsFrekWo ,OO.,RZ2SCcGw͚G2%V6Yg(&[G?]qOR@xASWlT]yefLE;aa1#^>}6mʖdoJ롇z;W7_//ƍs%:Ѹq93A'Vc3sgnwGMA0!J%5@ϢwoMYӱ曻{r8馛VJ^v[75{&}Yn被ٳ75;/T5żHmޜGݨ[59<=@/=ZmVc64{v?w$GCO5k#WK Ir:jȼ̊Ҟ=*,o;kܸ%%jƌuj-[v P>4mؐO>u祗Fc^3j׮|G^̟?HiZk㭻VJ}[4sf&NСNZsҮ]ଳ5wV}^luO5tFQ@}5! P=_'Rhnc6n%sY.;hѢdG(I}&MiٛoQ=HRIUgoVFF VNʕ)/cmTFF4xpPu+u뜚*|gD2UYiuuqԜuZ[׮?pKҥnTM~CjvGq~{7UV4}ZG(I6Iͪ}ܸpSZtJ$eePۨ={`8W]uUrstk3I#5}>Z&K>I&m`BIطdPn>^J҇u\Gl6饗vR={$__ N$}~-]KѬm\E$.] JRYY23Ϳ-QKUXX+"ʕ5i()Ʋ}f~@Z@ՍUCY6?n[*KG:7WV*iiڰ![^^fuqB봶MCy?$:T^TۜhR7sn1!W˗5ګ#Gj|ݺ_Oǚ:Y3 .WH>x kl*l\Coݯ;XsWww.015'Zj߱>ru5);T˖تd4쪎e0H;{O tl<foC-X>0o4(&Kyy57$M>>.G .fd4n@ ɠ0Y6-X0e:vtdoxI޽pZN@<=>|h͚,>/$95=|VB#8MÆ+"CR׮>ꘚv-i鎾?;Lhǎ\u9sڵYZ:K?g[_l2nR.JK+Qk[Ք_Hj+AIQ<=2 *-X)=t>D~~$Rxyٓ) *nNK32wǦMٚ0'M#C.]5qb.#lG~CnWΪ>95YpX6d;FMḼszH:nUVV;jR:tX% ~?ŨXed;:6zL +FOsgF>>.93A&ɠr%%i,f}47ZbA]f"G3)SVh„(x?c4cF٬om\E=|e4j VU4B^^UYiӭ" uw4.,^ ֘i,VeM!!u.ӡ#pj:-߿R-^ŋ+4w?P^4f o0Ũ(/9RڨcZˬCdI۷׼uUP6o> bbth+lp:tDcaY焞2Yx 2nd]5mZ"Ynn/?[o]} gqԼhSנ.jhp43ov߬gQlvS׮>XN76}Y&L҂JK+T.޺uO?ݧ~QK:i߾BؑwA]8&0Unn&Xv-@zl]}UVڴjU]5aB Ԯ]z魒z.rw7k@MJ(M߆e[۶=[7?0V߷Qs$uj{&$_VMܲR=WÇOcM *S[}{{w|VYiӢEIzNQQnq|q:|D?^;v:MTMӏ}tk4o@{lyfzլY}vm~x ES_+;otSWMyyy>p.4ffޤKo=D?nЭ(8M]tmI˖mu4zv*7LMh/yn}^/Lw|kWzܹI~… vӈNiZRb'ꭷRUVf&NR?8pgoҰaNz~喕ڰ!YiRSYYoa2%VS:Ss|製<8H#F;,خ͛6;+mQ[_C#ÀN/bvQ (-HehJU7wIIIyھ=QTNSu޽} 믇eQTt-,Qrr^ks)?QQ^_JO/ҦMu64k`EFzСb\`MrϞ~iΝyJḼhG%%JJΝy5j~\]M7.\mْk{{w_t@V8M&=7TQQ^:|DvkW,QZZ6m:ZktS!mQ DUKIg$#I H$R>\"ַ\I8P H$av% 1,̃T$u?İ0wRP$R3l6$#I H$DA" @ H$DA" @ H$DA" @ H$$DA" @ H$DA" @ H$DA" @ H$DA"DA" @ H$DA" @ H$DA" @ H$DA" @HDA" @ H$DA" @h$3RYY:rH6NCA DAqJwIڲ*+ 3hPa:8]ye_@{,Y99Ŝ!]ӧUW%H<j>`g+Gk%* IDATL&ƷO="~3A?oՒ%k; Vky濔z:S3.HTgfpM㏻ewLrﮏ>I4eʻJMl@^$'nr6?a&IdtlŅI:S֭Fx:*jr+VьYM6׺LffgpS22L22LF-]g3FMii9m9i bUFRL@6nLSX= 4rqqQyyVd6~!AI0thƌUhsg>xXL5*VCF)0SYYڹ3S]/(ScvSBBy{);H7ϯYEJ`ƍ멑#hϞlҊ:6 $[L&.:||tp:Q_cQjĈ. ԡCڰ!]_([2FbBl8횟$!Ŭ .Ӆ;)SURŔu OY:ߌS?7ֺϫ-Kϳ4kdz׮Zz≋t$Iks slnz$IÆ-K/]~7':=xsNoaLyWDh;vdcGL&\\\**& $D4_Z< QQ1xA3=ڷoOc׮sP*6ZG>-p}+L|私ZmD"\.wIR0OI"UY\\cf?lsVb+sJP^XZ??/ Z0w&@* r]"Y9sV˵9#N -Iµkԫ駃ݤz$$z>6 f""""ZZRhZz  FFa"D?ݨk#""""W7= ϶݄;AAJ|$|=m(Nj?/ ## pm-TJa0+X[FDDDDDL̙w@!;{G _Tyc˖Tc׮= Պ_P?|VV!^}/>uïnN"k=ۈnȐ/o%2D׮VaγL c6k J-/btڈnfoRJJB``o D"a$$֭$ D""""""bHDDDDDDLn Ɍ XDDDDDĺUpHu"""""Bĺsf0,DDDDDT) ĺ.> Z#k;U*1}z$nNDDDDDL$!!JVv""""""71I$""""""&8Ԕ"nND,x""""""w]OX I"1I$""""""Il߾/8B 0Vżycذ"~6`⥈TG=a6W?Wxc.S [b}M4l6lg@$֞FVVfi HKKEj@۶M ++Rm:e!7ǏlF-κL^۷o72ב ""bX 6mں_eRFCxjX;NLZ]3fZlxoYQ]6سgtшիWb߾(((@M0q!k0 2 cƌk^Vݻ/j+^CCBB+t w9 48W~$""V>}༼RX,5zZj ш o:tw1unK8p`:v $f|%{pw!ݻwa„ر3G̘q?Μ9 X;_իWA!--"Hxnxʕ.ǩT*,]JcܦM ,/P=za.[^wy5L&qݺuwIw܆\.GzzrF / {;U*Ə˗/!((͛GcԨ1>2Cl l+ҧO?!HIIʕQRRGyII^=Ř0a,Ϡs(--W_}38| -[Sj5?~0w_wd2I@B=zO<Xzۆqe;g\\G`0&#!a`a֭;|k׮^Â0dpyޔkNE}hddX,ƨQw{(**ĊːzO=22C.W85~}U)_ł#F[%eICPѱc*x8| [g"44 IIXz%Z )uZjzgEu>Xaذ~h:3͚Eb۶`2k/`0ڵxgЭ[\GAA>,>jj^ۥK {y6\[grrV 0aD4n))'r2\v3fLǜz}7Ib=`o(-DcNEǎ? !УGG:$''9曯cÆuxó=.] yqdeebѢo/ 9bo`NC|9e8l?8+t)Yl^2r2z ?35j,8zq#y潃ƍaU+ʒ  ; o+1x0L l$VV?<ѤIS2tXOas6@||Gk_Du?yk׮/?o㲳3qC;?~}xI0/SO옜\r>87_8n̘qr26mڀTi{if3g6 .\8ֽ˽\Gƪudg۶):}:ݍ/)AM!""UpH#" 22ׇG`Ѣ_DhԨ0_ϯast ky1yqSL9tsoe2,Y3ϩ=1HJ:^ 7(wF( ѣbhРA$<<¥ 4(tqB] W?8%umzS]DuѢoq ,])AP޶yNKeI ѣq2O@Ք5%%% =\!/KP(z/ocO?]{2jnBtck׮M.~q Ҳ' {Aا ;BVV_}9GpZ5V'[zD" _g}RQ].**¹sg=6=ȑcg 6BxxDߛ+ŋ<{k+^/_85""[ &F75.d)h4XjРwHy8 t;y4c|=剴5tjhmY0a"ƍ={ěgdGAAS/^޽ fRm:2 ™3pejpum,L3*|R5U[fǏ':5ZC wmPY<=ǏjB"`\iG]>wmޛսWмyT{/Vj;^ӧbcye_cq1I{go4uҭ†g2((m#|k I'͛G\gnݮ+܇19QٳZŋx"rv[?{$L8JMxc{<c!!!6vabj1p `[j?~ڵpydbrݹs;{S DN:PU%It8qJ<ԏ.;..̼ $WRy~C+qTFcvrFV0r„I^Í58{S$֣$Q$K^H [}BCC1rw+7圽{uZ__ϭP(`Xjlو, $$@B,[+/_ܴؾ[LL9DW\Uٖñ_k(慇G`Ȑԩ3:uN`IHIIvIL*+W*ڵxmO$5Q'S YH\VyOJq[G*U".ɖ]׹Zfur6I蹚Wz9amc=~vEj""""&"I5 ڴjyO&OŋϾ5Z,òrʔ̙S?w>ЧO?|dd[_4ٓm۶`ĈQUJƪ㬬,@tt _79F#ϱ)ל?NźukRUjhMttCM/\ʿUS^p]ĉI0LDܹ 7{j)K gm^wluԜؽ{'`5goz|Yܞ|Ʉ'\^c߇Q)wBQQ!ڴVKK;Z}}9e?XΝ A AAA[hGGBy^7162HhyJ,Y 8.ܹ{zc TW7VT֮]bzK|t/˩"V+yOwuٞt\|%rNby|Vֽ˽x+WZQ/ǕM =x0͈Сk$""[ W7s‚U188Xz))Šyq^{8<4hZFwxxDd|9w"00ww=w='Op{^ݥK7˛:uz%ƭZqJqlr|r1Addsas¢2?¤ty\7#\?Q㭷#*ԉꖯZFjiAE{{=o ;kl*]]v|< m۶$٪l~]rorؿ w;K7])4it(8q㒓嗟y9d7Ib=hIbEç>ׯ8xPbcW]zJߋՊQ85 fO/篼# W5kt|M4uY6blϹsg_8cJ<˕Ku.-clQnn&OG+թSgTV6mΝۜ;>w5ZX?22JH`}-ߤD!AwrYzΜ9INEv\|oYQu"K))V7usֽ˽byUa ,<awk#^_HDC`Ҥ0ӊSr28h IDAT퇡C_z<>$ io9&>)|Xx:APرn닯Zt9+̺&_{Cӱح[? ?>}A"4lݺ:r|׫gয়Ǚ31wkضm wZ; ³ϾXźrĥٺu!/4NDmp$&ƍ! @x{dp!*^x+VL2F݁-Z9[gΜƐ!CkNT|RhҤ)Fl?< ۶mƀ0zS)ؼyf37¯.\.}.{z:w}"^%A>22λ=Gmݛ+GՊ`G'ceBvv90 i.]c<6uqQ$$`7?:^5ΞѣGlFp#Ǔ$և$cNFaUP=׿ ZoRR۰3sϽ,%9udꞿ2W\zX̜998| >tksvkr9/ O>9 ;!`[7ԩTh4a8TO>YYf|2?}9yg.V^s:5,,˗DZZ*k\{(k:Q֭hg 1q^|%bƼH$„ [#"ij͂%udNֽ2uXԴ{x㍷p $է)wiu\Yqu""iW II}HO?piEhh-q~G& 7oӧPh qqN H۷oIɹ "> TfJddd-[C _#/c{ z$&CJJ2d29zv8z0F\ ։oJJ2- :mG=X~-M{ |F+ 3f-?WFޛ$Wɓ'VaFӧ?_}Mkdڵpqt:n#GAdd[*DDtX#(JT*T* v nc$1Xf` wٳaF`99X L +1I\)..ُ`Gk6lX?s/ݲ5779"*Usꐈl,ƿ ЧO?E<~~m'"""bHD|g6m".]ŌS]oz//<˷';w3C;Ufջ$Q,qN"iC GBA|͗HL<4h11m'NFd䭿wqq1;aĈ,t"""U-Y5EEZ fb"""""…ϯ҅kT*UIFDDDDDޓH$N?""uEK N$"""""B*B*B"8\82IEIbM$"""""22a$d-W/I PQ 38th/d2r9d2d2ۄQ*[e(R)Y󉈈ȅj훠єBP@. c82I )Q$"""""l¶mR R B!$z|Dx}(Tm1 q^h4󃟟KgK}Jbd@7d2ljX,X,&""""[dFFnn.\HGqq!r91QWQ.׹LKRS)))FSZ[V&#""""7PL&$% nF+'c8`X,""""[ooۇV(*:J8y"J P(`6/d2S""""[c}[ PR$D.Edems(H`6ٓHDDDDt'ў$Vԛ(eL+Ir9F#L&bd2f"Ձ$Q,$B "JH$ax='FՁ$qǩf;CL$VBAH$Q,2I$""""EwO"5LIT .{$ݺ =&Wq2lhD$$[Izs$FOH$b@n!VbXH&&DDDDDD21I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$"""""!pqR14#ADDDDTиqd Dglݚ3g0 DDDDDHllC ӦuGXjZ뇷Z~:?ߍR""""z,0PIbc2Ykn] """"" ~.RoyLڵ'篗IƍoXȭ+ii&dGd'"""""kPĽ{#35/KDDDD9o$.vǾ:dرqhX]aԟo1cAB3ǖ#)){~k<jbbRRiN]h0}ڵ0g~_|_|qo#1vl֮=yĥiS[o}HLB۶ŐH$dH$u3Y5C5R-j,L""""2&jRh4L:,[+Wh011 ={FbϞ1c:`8> u:ODDFE||cTJkx[D_uT04o&MT ѿ+^Eʂ%"""zDj*a2`ئ׹E&5H$e*hxx~af wf:%'w/ܓ'wE~o[Vx U=1{v?{B^Qq^"kO_E&rahDHX&^ϞQ TRS}a4q|>RR. w_g(@^;wEzzڵk ,~z|9v:rxB߾-|Ṋ_~~H$rfQ* $۪c?p 5bs g[qZx."":pe̚Vww4ʩuvoALLNw%""""!JT*aZ!zF#꣏r'CTT(ڴ)qi$$D@ff!Y岕/ Z0w&|$4n°a1ظtODDDDD4,4BjuhOf3, ⺱.(*=M& o| _nI:wnXLZw#==ZSNI{X,S,$Vkݙ$ ~>Z#ΝÇUyn \xSѪU87㉈=^L&$VUH fXOfs('m99E)vz}MODDDDD+^o%be0pCYY岿N*DDDDDDLo"ƦM<.22pB~ODDDDD$&L;vlRkD" >qYWP1I$&^n_3lX[DG9'"""""bxY2 %%zw"2yaƘ;w$[mi5z's ºu`ݺG"""""øM@7܄?Z?g` Gllv[ (R f:}=ޓF 1IbړZx ȑNgeWYr<Zv}!_ {ެ< CR@ċؽ;F֏'"""""7@TBR!00*XPP${oBW +9/.\CDDDDDDLI"1I$""""""&DDDDDDT%nuSbb"XDDDDD&u]ɸ1IdWh DDDDDT]NDDDDDL$[GlQv`XDH$bm'"""""r[`D""""""rUZ,Vp){' "D$Y"D""""""bHDDDDDDL ?b@{*zDR)!20DDDDD$(©_m[p `X%E@xx4 M D]0"""""bX5$*~6d6Ð~º@qw#}{&$YDsfD$""""bH5¶-$h LD+- $NNBSw2ZVQTT/?b [h2ٞ`l!~断XDnr@@Ѳ0nsS\$;w] 0GFn?ԧN"hD@X@w03 D$ߖ@=&MeR%9wBX4Ce6C 7ʯ &3 :e{30rو ʄek$gccf25jaaV Ja63jhT( J!)-b<9;Cy Gl'%"豇 <wIS[7"VO v9O^ £ذڙB|e{Z51Im}@c#IQo|+W J!v#հX00ܺ MAa\w V 9S a{Bノ5XDD7sW\)` >y@hFq``p >hh p͚-T~ (Gf4"~Z3iBs@?n:hh~ ;7D,d"""":=Ģo X&CJ@Y3aC@@OvΚeBd [,OIƵ;u}FQq1Dz- l]={^)$v"Ȏ Į;:綾s,$0GF( Ҥ0h ػ`圾-+P[ cc^ЏkPPLNBAA0G%-ZzA IX6}JSJR!΄Qc:CVCwHN&C.)#cyAJa ,ģʵO?X~αͻiR.a )B=`< ZX-`ns/ZS ́[3!߱V o.(687p{O?R7<١$+pXEr>$ .YXJn$X!;zB;Ҡa{:e[mg r{l2\Ҹ wc>7o|f[<4gon\Ȏb*lK8&/͍U(i za=joCUG""skuMJaGN_;DThѴ)7m AAV (@6ǔJhNEAb"jXFш@ist  khIP^ VO6=EBCQP.LH2;5$ٙB]D7=Ěl !10u\q6 kpCq0WP3?07Bn7n&7sƤkwKH(ė/A~-$Baó\O?%`6@lnO^U_Q{*e[[Ǽge i hg? c.dW sV@dGBo I=P.Kr#e;s0a |6(V,R.Tf/56%HGЌi0 S^\b͟i5(ZGٗCD$= F#^N`EE iΡG @_T]atlk-}㿐" ߹ 断`>ACa7@bZd{%ņA3 tS αWmN(XS)@yA$axr2Y}Ӿs^BN%IՓB6EK9Ey  ۽ oυ~8XEV)LaȜAhzĶJ7Z!I/+N z%tJù  {wé?h>yF8x-;]mY}s2/@qB&8C;Q1ݤm0Ҥ kߢom6y*J>w+F1-'A|*D]g_ O0uc~}i!ms9 A|1V㦝֠ Daoz%!"J~ynPlaq⸭1ѽV'~mSXϾqj%4 U}cdq=GF>uC ؒ?ғgU9; QIIǎ@S#k6V+-Z.ew#\cۜD9a?q͒LXa vn2.p Rq9 DZ ,(ta:{6s{Z_Q{=)^G]z} CSM}Ikpp#륩SQ_w˪%GD;|}?DDLkH, hNGVRbNp cYh2aX`b͔MQfz;>F#dCo!GI|hԩAO^u\KƵ QX0mro 4 C3}=1սGc՗UFw؊Q#|n_wٗ\":5/ oZ/zmR!!(` `6!l{"Z0Y,0t77ʓEI'ў(!+ |[vӶ^C ߵ@ P._ iB0e u=mh\VZ]u:yad[-By~" ֯; CoI0[I9";wű(%vxA7sYh2 VbU*> s_8?ғ'`KOUSbZoW>V`O8Wz/Url! "$|v(YguW ę^OsLk<{*ް4h޹[=fWZj:^m~a: *,֐/Ib-SE6Ez:Z-mL#hUgۆBCg0'F~!! yr9oJ_dB34(~YkQ]řN{:VX{WsGɧ_!W *,|&ȷnUkݔ.E{C@q=+_mNVW-&IavS$4<ң\zym^Ŭ Yk5UG}1˚SߛZ}L/XlOn8QDžkjXîЬ@hh~Jt:XFIi)JJKhw (| F#B:&!mbԲk:-e瑜; q5A9c+Tsi+*-tJȲ4hk`W%´BzsllUH SP}oQ 9NzA(֭[~Q`è1^ J?4(6o$ Ns:3*K-]wO 3*ƀ( 1hqAD#&OQ\p",* *3=3KUvuoWuUuw=~{}9yPp?#JZSմ_v{3o_PGϸanZ1 Q6F vN=5EKm7=Pe3k.{ݩ(v|gA"hg0~3PU~JJiP.E]fY({h{0|<8$9˂1t==o:f^iL5&_W>8 HsY{3MhH8 2^pk&רּ3Dԏ~;ovy HrmKYI~ƓG׾$_V"Ӈ߇}SkYO[ _6C 6r0A=;ooAQ( ~߻oh7=ؒ}KM/QצRsum`; HΧ?{<$?!b?,#èƞd|*O8LoO8/ կ|}c{dc/\~,Vsvu(򟟩4}S呿?ug3KHmw.L2 +" 0q 5*~኱Gp3WDEI |W_^wOF/#?S,WUϽdR #E`c/cp?7 p;܏Mt*ۆsug~ͻE\+Yi4{߻ |S߭{˯y=0`xݫzڣ kڣ>ڍ=،vnxK/}.T]\@O_!q5{{m؇ߏsg7A==b.1|`" AJ0Y@ga31'#N6V)~S`gCσ+_;c]Z#T 8?ix;kx#~* Y` oxm0|wFF !_?<lz]wDbG_4;wa? $p<} >:|QBSQ1!;9gzss,O!T`4_28'Z?x%=v3ς3 `AF"vC_p·eyGw3pwB+_;|]xAWpHt75 QY;;OHxşu{]/SH7~!ua2x<ۿI7`g!Oy p҆?EmokaqCA„ۙ] 6 A"q1/x1XA۾{~qD"rb()bc̳0zʩ]/#oC'|_f׭da`>(<> E3?} m߇xWVI_2?o:㔦p>7sq_W(]/Caf3nGF_?)T7 (~ Aa\ >O7  d&1{?Jqwi^q}@Wf w.`^>a-soh^ c茓P?`Q6|{̀+v|KPG!}]ؐNnn;ymU.7BMOuS/ׁ+iW\-LIh=rAmHgXz7?bF$DNQFr^  x2FO9 '`1_zNsi 3|yn)<,.yʐ ")!}},xw|wkTxwb03Ά1"[ v~9p2C ~3eSp9ֳ_VZ)| D-H0^빗D ]C/}?!`p }l n ~`-9$Ͻ`s?8~.>{s½(> ܁ 2CXأ>Nv]s\6ƛ~.g#O=||M^v&"k>YH$ǑH$j~%;$_܃̃ fa,/ˀD8&&ص `㡎uzrկn vعY`\Jzp9{6Vz XY9CHyA$*nXǎFO9 6wF6 w]0AU! BG|jq2~ۚ[9ytoĻn{w(u3@$ }D0zʩ=Tx4.2(ԯ/|Es dbK`\b(pl(i"8JqM?Wݳ~AĖcR   k([AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   O&/@MXu2yCȲ@"  DLl"`YN7Lէ>@ EHPU C#  Da9U,LE_%}xM3`,F,&C{SMsss,bll숯\.|>EQ066my.8رc @nNaRA v0 leaڵ+zV4r˰m(bǎKXZZ󘚚NBcAD5\\0,X""P(yq$|'{'my>|p0M 0訌x\D`TBNÉQamlh 8d2  \ Q,kmM+e9ٳ۶hR,Yꦦdi%4xe,,3166pߪM֣Uy4JRg2v옄(J=/wP@.T*UU1?_oe$ Չu177 awXXX@XL S>_@6[`tt X$nqqƾ+e6nhf{P] u(%!2'%7کX,`yyFfϽ24m RR `׮*v(caa<㨣v^ |eAksfJ044ܓwf6M+chhcy9Of1::D"kzWP(urrDQJ?{N0U=a NQ.k> ;vnU" EL$5DゐRrA 8.NjBR7W = bDQX(p] }@8hVI+/AU@ضCu]0 UAexR۶2$pm |߇ecC09cG6[\\ibPU T&%yܹ^|(JŖNdb90 AjP(`iiqTU(J,x Ә ŅHEQq À똟Oژ!Y1<ha`nn;+M;veT Vm[pn'GT8$"eQ{u\ū"K@x^ݵ,E)puif$~ HqLDT{X\\,-{ ]W iZH+ _zd2(J0Mx{, ^FPljlCA$w@xz5>ydA}jZ:K\j\#H{e>DQ䎚CC.4t]G&E,DƦ(2GZ{HQTjVY|=0YQwۡe6wdhfi`ddLD"l6lUr,[$G([hkgr9 c``y^0 #Y1;{(#HRUϚ~ ]Dbc@7eADЮ.Sqxa=/CC2LJY$fR.kur˲}/ \eeYLMM @e042Qim-Ɂ+c111y–Iѡdj!kedն5 5!b1 cceEѤOV2LN9OyfVYwall.\-HDb0]g'v[ݶKjaTR3R)bz@UckX, k Ikb@F|udr.R$ w@ ?Gi` t_Qx<4upp$+Nb+vi^ÐU0'K$lك1022X60޴VKU5N?E:t]n6Dđ-7u g[ 1eYUdY##"<X\,ò*Qx0 8n~pp8.Y@}7дb[eh$ǭ(kAfڤVCz]ne6hK':&ev(qΊ&D cM`2a#(jW#lNdΞEl:/<331q(sOh#U];e9cj6{8lae;Hwƀn˭؆ HtqZ 1I'02,/)ᄲL];mwPEQ066LfUGТbq$ɮ-VlU.Z"D"ѕ%(lS Ð$<ϠXt! ƃmrFcʲlO2.BQ%IPBnpuv=H8X=jvƀ^lCAPv.q,dYo`4 SEd tzeP\- \Ŗ'jQ(< \fqܦBqX,+)5N[fg5m T-t/Wͺz1f# kT[G1r3A$.("TUOŞW*(IM7QxbӋPSu`ƺ?aM9Lt.х{XXHG]J) *r=77WܮP(֝.fgg>9"[6YnGB9ԕj1 ue7M!<XNϮ:4ka252GnَP(D:<ǭ6Љvl& AD<ðؿXGRsQ**F-n&ѩzUY2dY4`.Lӆe/ty^0 X˲y4o)Vq߿sκp _V$`FA" p,"H$,ˀ8< A෬p+WE #q)LeA-K|nH&} CL侧q'*,`FAHb#CpbA႙$`FAW$):ODZBX,N  Zt݂mp]Q8NaSEoŊ"1<_ʵ#`l&M000Ѿ޻v]1a!R aXLNN@ A$ kȁeMq,&X4Mem,BDbӭzv]Vip]aaXbP^6l_4epedYt֫j{E *G,uyGO6Rjۆmq:` , a¶M8EndzDp:(떱>YcUt\KPM(5 !28M q岉Ћ$aaaQdit݁0M|ހ{ Boz,㶖7<ϧQ*>fc$DQj8O7Ld0<K;}.x\#BqwkVfUwA:=0V+a NQ.k> ;v A$3ap Mmۭ$sa7q-oqq i AUU0 SKp]عsWwL!e% "BT:X\\{H5w6AG,BUc`X,qϧQxȃ1Ȳ sQ*`6}~$m:aYLzv8 ;X,AyGl,//CV۩BJ⠪*DQeд`~~> j0iUA4ض QJ [棉 P0 躎`x<5L(x(#ue9EQ!2džpR arrcn#QVI mPXyrY`m; DY*X8Q;, $i2VG/>>w*aAhnXN4-R;2 JLD<<,˂Q(^! 0p oaTʄ>%zV 95M##Yo"l6s&-|߇(QАt:]dśC022{; (!NG>T:,ӶpT*FczzgywC8x,BXhK$ZϮ"Y&5m(桡a-VG/>y m ~J̱4-LMM,(ʲC{cxxTj(p]H$dR;s=/$VxdR UU ;6, !Փ갶rYm{bFGU0>> 4 &#r(d` Y3!lUXVQvjjN,2HQUDgT X3[b6&"FGGi5[d2'e||ΣL&Z΄z {k$.K%-Sp~U29Plbbb"n(n#Ux 4(WOMqXHX.1%ILLLxkWM>3 k'Z `&tE[ϋj4'De^nUŨqzO&7}w{S?z,Xʚndg&#Mʀ\-T&y ^ Y株"LTlì[MNL9o2Ycj^M+u=0 愻ZH DL繘U!CQk"Ik,8;8slRNCѷQ( 2J}rm84Wudqn^O"!džBfY8l%Ls%1lہiQqG/evpHo&TWA$5_1$a|*dRA:UJkR Da2̭ieYvEi 9Z+{GTQX L6&H R^oUtMtuEQ066LfURk,#L-[px]7$嬿fa>r XILKc:ַPS?'ͲqR}┆R0j,XEA"H7(E.B tY}ʃ9]RZ+#5 j%IP—~pxpz1@Ӵuhu?[H$Pe R <ض\n|##}JLa䮗m5cqq^!LhaY(]ꪕ(`h BDضM+A$;j}"bTdضn?f#u" Eԯ0d7e`Y>ydRLDde]%k8v|f#<,˂,Re  hY=j߾Ƿyq,,a "E3 4 C CDQR@UD X,V&i%e@̺Zϻ7Nd 4#O$ֲ H R)Ruޮ|wn>f#u"5#"QBU 038p % %<|g~0Qa8v_ 'v { i\I5 ~n׫3oJaLO൓dU‰}ɳaa²\ۭeYm% ?7گQO/5By~]K5 ômiBӂfc"bxxI8׳~g٬>w$UA$ bE5B1{p]]8*RMWn_B[\n'u="NGaklj&G: `~~"k}¤{f(rAkRں*8r^!q]WrSQ,c햵:3h&:X b\Tlf;* ERg IDAT P8AWD"UV}[:K`QҟX,Ǻ &R^)븕Ǫl6fpLK  6 IɄp]acyonDZqhr#giAH"TYf`*Ȭ#${%I8,˘8V1ᾮYU+Ҵăb||Bi~U1,//uD").--uݺ2<(*"\E&iy9::*ǟqz["1ؖHJe 00jΕcCNd 8RUCCX^²,d2K5k||`<lbddk[iYncADa^ŰlQ2o=Gl0,fp#,A$@wXև(ufYmGAZ@D10 qu8}m48!w8.8 zcK0 /(I TUYӛQ.exA0Vmr EX|Cn׺ vwD'e=xLD29D[N̟$<[@UՖ3Y:sҍ>* 5|,#H GßwdgxoI!, qAfRv`\׫ qUQVPla-U.c'88KnM2-eJz~ekSU}S ```3-4(9K2ٹ v\HԳ0n?K'}SgXEA"qۊ p,q\x_e, J w=y,Ag<"k S-)teb^Y#H[4`N%3ȊpFz D 2E2(D: ,J kf$Imgg! H$a$#HRp|p6e C6a,ADtq(= AqBKAAAD   D"AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"   '<`s,li9$*I CAA#p]#0iv^qq8=d0   H$:>/ S"aﻘN?78 <O< HAAÅ~-!I`Y$8q`|߂Y<?ţ~=6=)8'uL_|#lƷH$pVw#>-LP߆N8嗿 p뭷chhx>3ҋ7x3wp+} oxÛp啯#lC mA${˷3=ׂ!F"(J`4M]/\ð M3`Y6.謮T*o6\׍86Uk__߽W_A ojeE~Vǩn]۩q o{|cعs׶)m}m_SSGH$~w8 U$FF'!<\ׅiqXIyRD׹ "b1{jW?\نW!3ƫ^ f||S%olƵw/ ^%OFlq7+_cT> Ɨ7|^m_㢋~D$9] @111i;  2٬<>J%!د;&'qS裏iB\G/y˛^D`~>]o:$.AToAAoK`hh##سg>3G'c1D"׿L5 EQ Ar"<Ž>{ 瓁3 ]ovֿwN?$|kב  C.>6pI!H"HbtTF*%BX2E(=?09gy6.E`Y[nwy;066N8/zːH$&V?/?ǷuJ"N:<`Ϟ4###5h=⪫> QE*5]رc'QG0M|n:0 / Iַ7Rby:\WqYOK_z..O<\k5'' rz;7߀O<9= _|ae^(Ju;xpO~Iu{~7طuo|[wm;^|׽pu{CCO.>IP?xou}"75뭺wW=u~׻އ׼/W_ֺ9<|7-N"WW\}k;7;q>}p'63oy_5' |S|Sxo޶Ƨ> xW]xwܗpŗ:v7%\CCuNZyFWNƶN+^[nW]wHя~.EQT|#ѸF䢋~o>׸暏Ce$ q$wdv&ObG05dEKK&e\v .t0,Xг` ai)Lӆ$ [景͸{qE8{.nF,,/J~]ߡCW 2%R)/Ş={-xGO|'t | \,,..8\txғNGǍ7~xU{Oz[ quSj;z.>ߓt:?BRO;{Q\{Oƫ_ڞK_7FFFqƱ ndpW_\m9sy:2DQGSN9ٟ] 7S}|Їއn:xx_ .x6t?;kk&/^KP.p/ǟ}7 x[/}o?g=9x3/D<m_H׾o|n8gbtt 3uxkdqqb8~;p]w^j6I}c;)rwopIܺgF;io|mNWoã>f B *RTPQ@XA_l ذ."]Q@:":d) %R!ɤy27;=#IZ'mܸAu=v:ںuΝLQWi B"HJ:~v|><b1)wIRǎqaF%$՝wަD=Xmذ5PܢZV&O~_Çq>55U7J+W.׿stpG&oYO 8ں5^ . 8ٳny^m߾U/ƌСգG':uRk׮6Bc=LiY=zr 8 4X\伶)SѸq/G6lZ믿ݻwCjҤiF@0}P'K'O(Qٟ'z r{\.&O~So5;bry6SYJIɓ9j۶""r:]ƇrTVօvSWpQw_4m$u=Bv{7*;ڱcjԨoo8Oy.SYU.JRDDj֬YXͦo$8/dW!ɤS?w"F JjԨ{$EFFOgeO<|j޼>hz$=z`ze Mm׮y|ֿ履~О=d65i'TvM:M5jPVVf͚~D\e'~w}0eI=Ӧ4r]o+++SQQu;S]`xѱٳWRxg;)϶lE׍믿oX 7 UW$ر](5tG.S99YTFFNԉ kv)==CNlHtv |=fY>ݷR=kذqzyU+uӦڷ?_ߣ(ܫ?|'.~;^e]t{U]jZ pn mX5w})8M*sCX0v]KR JW2W>~~+]4 4WW$]vܹa 44uk{>|df_.q>9_J\8 sOa >B,vRֶ϶jűiSnH4LA׆bi9Y3B>W>[99ʒf?{oG996uD.W-qctU||#r_3+,&͂Vجe5d1V^]ԯue<JII#*tܺեK*CU}6-_B~^:uJL,yy ]Tvmcǎ|usz  ;=qMX6lƂ^SrQc].] (ԦM"""YczJJ v/]A6PQ`yWgh% \smЉ""IRgP@HD5TVV,.l6VNґ#*<ܢiǎdmvDNS>G>GlX)2Us(""zu=+{ws=3gh%Zt$eV[tw=.ҥKVk)tAIkRRNkٲ:.-\8)脠[j,k EkΜ/땜|4{IOJs. =M׼ضuVܢʱ$?_x/^XMDEU͚5/.U=zIRƅߗY{6 kQ,vR^3B|Ӣnmݚ;~ذ;We]G:e2a^\.l6Yk%'ףZ9R͝M[$rA3wHnHթSC5jT^s(z 4b( x- i͚JMM4iқz)z (|瞄k][ W_}5+hHtZ໠WmM&CUn[>x.g6mbաåU\e:p`ϿX5ο*E[y򇊼.F^GRTw(rz6QҿWy^_ fP- >B,v_϶jEٽ{r{۶mt]vJv rծ]S]zi qD>_^22rO.!bd2'99\z]F@5kԈ4b(y^رM|3[Uz)V/3~g׿T/wBgt&2壐_ IiI#BYޡl'iQNZ]gMbAcXj}90&)g:4W׮m:ݲ4ed+33C;N7<]zMl޼6ƍV*e߾xf*Y*`y٬K/q^ъer rx^uɪ IZ;Iμ^:VE[l چkf&eddh>/kիW_իWCbߵkG6nܠVmj׮c0~B۵kGGr{Ô/>BYޡl'iQ6o03g~&ϧ:ut 8(OW\^=zǓ˕ edfrr2vRӦԺ%jѢ4wїOa4G)p?[,sz@͘i\rId:wҟv_ E2;;XT]*^ObeIR1j!?nݺk- {Ԕ) )Ӛ>cIʷFⅨ[,޼]Çߪm k6QWJ>B+ڵqb xiޯjOIDATeyTlIܴS%IӣrԣG[]sM'44߲?L:-7(:U]G+6bb(DWyk}{Ag1׉ό#3gV\ӧ4|ٳ;c6S˫|[U]g-\'d<^-9!;#F+22R4fưRzx_{/:uRFݡ Y,oO_aԬY|>tԟtAWh(#I:sFh'~|0E_ed2)%%E?|1߄ /,}RRUP*Ij; gr:`={vk[m;_T߾=ԷobO=!үJK˔e6{d2YnfI[:.ѥz"թS+ŵTհaJQ6QQuգGO_VߧklXL?L7x֯_045kV#ӧ A[tjvC XӰ(O=Νt vImua͟rrrwnݢvVZo硪aFj9ڻw*qEFTB-YPաåڱc=_Eߪv:֩^{K>^jjZ;wnʕ?+;;Kv{&OTkխ[Oz'5{֭~-YW4NR{>l6MիuΝ*55U |'d2iiF6Q\W__w9Z_~9Sk֬RϞW>jР6lX[(<Wk׎JKKĉtСd2ӧ\tts{ƐĒjժx)=CpbY=E&zٳرcxPV0qK/w(m$xcUO>POҼy\ObŲDIzB<JҬY3dž ]g/(=oQ4g:uƍ{FuDPⷧWvZ͛$ƶoOmݨL& :L/4Au^r=f:39jQE09u*C^{ǎѺu;O{VR1e)H_jذ4-*&ڵk֭WʺzZhvئ'~}_ZZ,YD[B}^] \-r8j׮ IG:uUrQdu׽R11M+/MCUҥK>u1Xklٳb2 XEiiN(uC\?Ux5iқѣ^iii7[ܹ]NS͛7נA7_tj/tL5D[hp_Pm$دE)11QVUm۶7Q͚5GzJmտK%K^]zGY{ٲZ'(:ƌyk'QXi^;R 7UffZ;wn7.t 4XM6(ԩopF^jԨt!նmw!%&gvfZ5jժzjq㺊-+* DrQu+IZ|ڷX.۾}Ke SQ^RGբEB];w(v%%0q7P !XnzX,f]vY+mTIIuXΜIWVSWVYaPTTM5lX[QQƿvTDDbcە.]R_BU.$'(&/_oxcLht(JN>*I pզMiD^ON[WfI6UV+'2&:]^W@t-C5yJHث#'Q\\'رMǿkWl6k'(0fxx^@Htr'fIx~v̤5.6NHc<+Wh?V?X[(VNU!p2WC" xԱczKaYUNaTaߪnzh:t(In[5VϞu=EJ%55U;iPnY”oZM(hTkRS㦅(ԩo("""5}]YzMpv;-bl6ͻL&ʢ D+CNvnjjb 4ܴʅD٤p;-@PdZddż_WT+;"r uIm߾YaaaFP̻CZId2)2!qedkɒyX,FHoU!$Zj[,fծl\ tX.](ףp99۹aT&=V`6TV]t3gRizO>.Ґh6 hv9<7(â.NH Vdt:&+,N@.Ҁ9 mFSBbq 'ϕ%!'$*CH.xnH,7+d5b 6̲n'$y@s⹽6җ !C^7 l6\..7(;ɹaaaX,UlEժnh.MH*AP;ieACN+RBb)l6lcDwPyyP*%80wm`c3[Ng_Xĉ1 Ti>"""""r kצaȐ`0]J)8y< ҥ'z;iG 6 R\lĊ琔 0aB o.'&NANNoϮsw= Ĕ))Ñ#EHLر݄c^f"<c. S7,رwPP`u쩩Z;WS烨( M ΄ 4XݔBTF[*jz,¡CEQwԦ,LǎWcd]}ѳ?Ƶ:4{RS]egW@#<͢Z-Cd'*4&܂B<<@. H/yjYsFb:3z3>4/pǏ7.ؒ4)ObϞ|iFr4 *+m|HDDDDDn-(HɆ!?t!!._Jnn%*䏤$6Xq6[7F{Dp5||%%&tfxz2͆l$[ 4TO?= ص+UwN!-M'~'M;gϖu __"V{G57gB5w6MoI$"""""&N{̙RI[0~| "#=]\=ѥ^}5J1sfb_.;aՁLig3! 0,2%~~MofiGDDDDtu:vfqo6ې^oFTV]JzEEFh42DGk B`ťKZL6DEyUO$Dr lHDDDDDD A"1H$"""""DDDDD"˖Dt[Uu\_~ÇQ 1FE@:]fax.0H$""""kKY z]^=z2cnڐ]-[?٥ 3dHDDDDDD B[6H$BY4Ad+;F/HVkF#-Dc%ԹNgS16^ ͭĚ5HI)`ExƏF׮_>ŷߦҊ_LBY VԩR(pQس#F#>&קa߾hfzbб'"_J( !gZ =*#>@%TFt.<CT髯&cش).#$ӦuƁ8=+K>:X/sO4l6{uPɊ)S:aÆK8yqd)y$ @`KGY FXqII~X&LYؿ?0fLc4-ee;v@"(Ht 3S*.S‹/&AW^IVkyI7. {̙M"޽ѫ?<c׮< V(wW;#Tz^blI@AA%ܹIۺ)S0g!9R5f+Ah0$DJ oo9BBTu Z̛wgQ=V<0GuxRYi\ عKE}A_AJ%…=pX1vթX&Mn>>r |5@q]C$QJM-Ex.obRvvip & ÇãzC JUGن+қ$"""""jRRS.\6ÙJ 6oX,Vz?X,VlT5 ~.N 4Tիlf#w:)jUc5Qviб6I$"""";x:2#tAl.<Ǐ>yzZ'w/dbԨH$'SA0uj<{ fJ ނc鉰05t+$#0P#93QFDrLslZ}6Stx[-Zm8>FbL'<=ͭDAA%ηf &(.\!4SOŽKOB7#*J#Z%=]"#45$5aEJ X/˻A" + c 'n]-K/"=^$1HtK?oM 6PH0c$ѵ$^oF^^%<=ePC`Pa5DDDDDj{[Br81H$""""""DDDDD^8^}5i[O?=?jc֬0l3H$"""""RZją Z|}ziZZնmP\lĵܽ'D"""""r;S.]ҹlVQ5ezCE$ػ)޽U!0xd V̝ԮҞoANNmv:dfa2UZɩ50n\M / ւ0n\Ǚ3e^*cDa޼$DG{bٲSɩ^}'OGpa)QVfʕ]3H$"""""ĸqw((lz CA.`„+1lX<=e(.6:,3fLzG<9!!*ؑJٓS㐐p5L '&bܸnwDDDDD䶆 =yTή@FpP8T* ~NHni7DDDDDDIq8u{78bgl\*)RX6TTX JH$Bl8D"""""rkj5k."<\ t:0ϯt632tWCpU0l><RqC :srDDDDD3R=[*~' %8tj2Ќ|m:z3`< gϖ9,_3 .fApH,]V+$ NW=SvnJDDDDDdw Zߕa֬)80CtܹO@+ӧϗ.]ԩcЯ_FLš5ֻ?%%E={* Qx#33 K3woذ L>ݤ1$8sxス}6 ))`0TӬVkf >Fcx:7%Xh4`ڴ1GBZZj@+kRyw^߅ߏz .]Dhhz)DDDDDDMuA?#Gبu8?NFPP(`XnUmݺŅ ,YƏpn_':uxaew{ @3H$"""""j>}a5J^ٳ'#0l]6))ѥK @BBw9?5 |}| ϟiy '@In2VV[JmL({QuTVV@T^@E;!""""vb 32.:LƥK`2NNO?P:#"rfIN珌F~~.JK 22A"QKرN dr(*l_+V,ubȐJXbde]rcՖwfb17j:o[oYrʊ1|vnJDDDDDnĉØ8qi6Cttx |[غ{L8SOaݺUm~zEcbUX,{t~R%KV`֬)8r:r<l6"tbnϟ?4$$t3 jpH$\w]Fu,))©SGDH$Wd$&oN[DDDDD DlHDDDDDD A"1H$""""""DDDDD**޸(*ʯ5}8|x߅͛9fZ0bD78qA"Qcر(**-jMˆhp/,CeeES$%ZaHDDDDD6}cРaؼymZ-fcZ͚VsK~.?DDDDDt)*ݿ;mő#^Fo1}aҤq};qC#sk`(ݻuX ȑ}9~ co/]SǠ_5k>tXnFrL:'}@>,Ә`HDDDDDפj' !CnRO?s gbϞ_ov""#NG{돐*.zs>>xٗ))6f?$5ƈcP(V{bشy4l /~} BN]_?/E /HЫ׍HL쁱c'zr˝1b ã0}H$Rdfa (..Ŀ w>}bɒjU&̘1{pzݏ&龌F+ ]P7 @ B֌rKBsfRP;w||POUJHsՆJs`r9y]k 0W[#**7 xxHuAd99Jxq5!=<?D|DsN"%?{Am~?rde]>7/f=aw+7u3p6o^'_7;ݯj'r{ٕr]$/P>>~6u?$R/#v:Wz/=xWܷo {s]ſ׭ݣwJ}HLx;0+h2;jp hDG|~ش)paOyg57W{J:Y<΀%~y8/n&lܸ*rr2!~T*y:<\z- d2;ABBwT*k~bOΝ[0xpp/=06o^3:10xǡxӶmq =_|˗/Ʒ~qcmۏغBǏ3m}ƦMka ((uX4y?$S2{;ONNU5 M˖ĠAW21MM}g>> 8k6ېS,~gڰr9LV̘aDDWбcy]kȑO"9w ѝh3xB&cÆ/` |N…3Я`{P=dl p 2lVh NG-7Ԩ}>| zk/_3j76j8*D|Őz?XO@,]ڇ GNt ,^܋AmB5;j4lX^x{dgW`ժ_92r/f ":l BзZ 6u%),O?= @֠f7 9 6l7պi:,\8oN '>]cڴXfG_^ykWjwwP_!-D oْo!L愅y绣kW_,ZtӐ/ zx{G,?5 %<ذa/Μ9t钄`=L=LvX{}#jf=zt6NddT˸gϥZȑпPkGij0zt|%9b޻72 R$ ޱNԤctCy*DFzBhV .鐟oDDFz"(HբFV /jSXMM]jV IDAT!/z(DF[ =(NgFnn/?*͸tIB#<< R!2U++3!#CqjֵМ7;zX@xG퍯Եx%tbW ڨaTMGNN,BBTuip|9 COx{ۼlv2\L&džj {GL >> n78X'Lk]##m$'csؿF㱅z`LOO-vF+6lHǷߦܹ2la„XTUK￿?O'$G:㦛Bq\/QV[znؐᄈWߩpvA+z/W4/-/79ի_o˦N팁~:ѬYסkW_ؑ+"%15x:F+X>FyuC׮>^6[q@!'ѫ/[vGy+ws._~? ֱo.>X~{DֿD>qi`o'2iػ7!@O l=ZGr`ܸ_j3VǸq`׮:ד[cNJqX1z3c{޾loΝnիcHN.v>}wG/+$;ݏxSx]ص+V{ N,uk 7&_?gkU{w>|r/?t枿FO? 3xx3ss+[Zh[3-j-Ǐ߻/((0`˖,8Q"Ιsk quCx}⏖B!AϞG)/~cPDEy‚#G qpl6ȀۍU!&ƽ^ΝቍB> R‚ v߆mޜo ¨Q.99?h0hP||cǎ@vvEts7. #FoφbĪT+&wWC qc)֮;r 92={ڃ eKHj2^@D  W4O,{ V<HM-GZ ^oGΝ+ףS'/N,ܹbk 7˫'QXh@LӦcZ7t}Wܐ~qyx?ޝ3j!?{C]/11L+>(Æ7;`KN.v …=kٿgDY zG tAcY0~|t++3+ ص+ 1M̙8g _siSFss[p-a?7z} bol\P&jæڱ#J,]ǡرQ;KثeP^nBxoqqx=xS5xlUwݭltuԚT]^ƔPHh61`ɩ/ѣE>nْ%>qd"jxU;"䓉No{,& 99'Jj@׮XrDnB#>}4#F;1jԙ3e(+RId79LClJr&*xN;h7[|X[(Y h>U|TU:m68{4_R)䓉;s^^~KLe=(,z+z+um%;7I B-ºuiM^O*?ܹc7fkÆKns l@~FDLLVUՒw߾|deثMԩ޼0!mZps>ק6:7`& {/q(MjT\ AMu;Wg}WTRxsDzUePkRyt(OYw9V0eJgj ld"bHW]}߿:B!էf()GcGM[ hVޡ咒0qb,&NmGy*#GķFUXÇ x8|@|@v[AbaInݻ@{Ĉ:o\}-*j?p-HLK__ey몺e+ʠv%șc}CaTU?ud"bHWZ6ݱc?2Y팼]_7m}W܌Vqg>{= Lך.b:Y욾NRإOڗuZ}#UP`@A\'Fb#MO7[5ӧ.Jњ+r-B! >5*u0 %y5y40.ƖAJ3 r w./jIld":BXX˂꧿ϗ{kr5,uW[+?x饞x0m6mMP($z :sanxUont5o*H$Ȁ@b!9ϗ#=] utI' yyMNǐವw=w.{:77|5hd"bHW e/kjj˛]i_fؾ+\?֬ ~WW/48t!(HQ"0ujKM7[ð}{677GÚBC7T* 0P)V+kl+Ԉ+b c :hrsqX|q-{%5=-)FzT:x2A"$Q%6֫YUQ9޾DGk{q~ʼn%Wbժغ5˖m'KWxnط&ܹI .WG;7U ^wm)#CSwժBb5 !?7z Iƽ1WZpsJqZܭln29lڍjj5~ͲS6D &$xڏn9q<9zGaBK622\fe`Z5ǒ PbƌDj21rd w9:ܽ:2;\qvuٸ1.ppQ˷];/IW?JF2Vs[E[o!:[uY ?Ij8]zQQ:y߽xa6ꝿ܄k:4-ߚzjV٪˯t7TΕa߾z YrR,pҜ^p|.mnj\85ڵ|'"tO?MFzǎl|m#듐-eKVN,tqW[jhLرQk/ȑ"Z6qBl[:^8~^m{Z*>_/~^Cϱ5=Z~tŮgtƭ3={1yO:y95ߩ _M"Y'Oߋs`A&O;u…=',?|`o_՚['['H+pa۴ :_5k.48oӧAqF|p|p &VQ"0qbK9cU헏3g&7vر; :10`ڴxSiă=1o^Ν +ɰZmco]k=bչ9us74z? Ό>҇>FWAo@q ݻ1f*PHU0v[zǒ%6 lڔӧK1c>1//KTx>NjNDoeXF)pS* > +W~}Mnjc V[͛lTwDOcǶ{ 3>+Wт 2_3^?GG8mcXOj< s&u-ܽǕR X.[ H:U*(0 > t1A=0qbþ^~+8Tܨmj⫯nr#A"$g0g!*oշSSQ[݌A"Q;ө+әٳe jUqCݔxwADԆR7doSh^lܘQЬ,=.<3؇4) HDDD.6DDmȀɓw9t%GT'<<8w= 0kV7#"M"1H$"j+ysf?j̜[o cDbHDtc˖,dfꑙ^oQQ tl""" $2H&a5DDDDDD j8DDDDD׸ˍ L__94ُ 񀇇 ڊjD" @Y;@3#;<=[?t0OffRI$ zyɑfVk"A"1H$"""""7&T*@k%͆Zf<< RAәQPP A#G` 6 :TJZuJNN**0,0 s -0^37FH$(.6 #C56dgWW//9  rs+TʠHa4:V';PdBOQﺽ0H$""""" 5\l`ᯎdd0(/7COT7xQ L& l6||d%P*%JdBG.@" %0l DΌJ2 VNgNgvX TʠTJF#Z-F# l-ڿM Ť=j42jQQa 2oo&Q":t@7̄Ja-8ַna D"""""j{`׼c%RlIZ `o_h4ZȠ`;),4Cöl:v5oyյ$L"""""3`0-PP($ͭUYYz u {I-/ZXhlp[7Cn"""""B!Ay6z ;))H$Zm a)CZrf R) A,*2??**r JKX Qչnr-DDDDDN.[~VjA:}WYi+RI1 V:fA6\Mۡ 0z|R"O󦤔#%\\RbluD47g;?DWb<vVuv7~XU@H)<=euy*Qi NԻlM @9tzSߺ5Xݴ99Zm|LW;vd#+KݡywCVj 11=[&.k:>}JOסӬV\Uc䫝d3Ztvde՚t?Kʟ::'|C[Er~c9DD&A%GB7ĉlJK8}T|@aO}Z8xC*?J~&O} K]iLgץUkO[ѕm[  J)عs$ 6 "j |NSJa0Xpt)u5޽썍F+z3ѻw@y+c能{`b7ӊCtήnd"$SU=Zt={cG ?Λ\\c'""GUU*)*7TϞ* Gc #"HKb|7%oSVԧQ-9Sc,\d?.~AA*1<vyyے'hzhĖ-]= Xfdd0c>O? G``ͽjС?C7cȐV_@jj9Ə ep+KG{IU`۶ Ȉ[~:W֭Y Pb~ٻIm4Zxq26npi cFaΜZ7FUoxX6AA*,_:y5zUKP:ggW஻C*{(,Zt?;|piXzs)0gNn9δ~ؼ94OO.?Oő#ExHN.FQ.СCaaDHJlgO>3e Cj//vEF'*Sid:UCCѿT*)~=;vdЀs㫯njq/_~Jy[JKuX>qq?>Λk0xpn12ޝ~D~~%9jxͦg3 Kб'R|]:/>WbР`DG{\1{Aֽplby @AW"'/4rq~kʩS>}**,PeP?{wU5;.悹䖚KZj.K?3iYZf>2͏YhK`%`". 0,830[1޹ι{{jwK&Avv9:˫0y _?;vK ,Ubm8r$ U]X#3 /f2;vn*osvbS]pb Ѻ)IXRSVj_Qwŋ8BxÝ0|ݫt{*L͛m[S޺TTT 3/y;]sݛeF9MSlBH$hXgo64e-GW|Z~?-R>5 F޽|u=:XSLL WwWzu|u`Ӧ[o+t NG#%'Oر4iGMQRJwS_<|(-6l ~z.eaӦX ͛wo{PY)Cdd\RNOOjЅPRWs˗/Š ڢJ|eDFftJeSlxEZuɅpwl9V_}nl6Z˿Q:/]ľ}fMw(]k u~M<úvԞZ^X޷oͿ#"tzͶboo4|Շ7kw4xb8L qw_n]sG/Ynߔgg|m>8~.JJ*!_Mm^je(|ys5k+;ƌiz}P*j믻)> ݻ״xGFfi[ѓOJwS_>.\Drr!j7`iiSSU!0{mڮ\>Pa̛7sQZZ}QjqZ+@͘{AuPc;hek6tuw=Dw?LVLSZZVTPu++(+oQUU 2!)8eeEj,GyyEE VPFA"iP^^[]SO 1?_[m뜀1IS|*>["$d8BB%{]mGVH]m>Ier^m^km)SQ<͗ %+'KxxF&d}U p;[H"UPҥ,}ٔ).aaµJquffBQGSMUgMZ(]x㍶j'm2zUVJ{ξHHjոq#Rii֕Jp^<0h<ܸ qLLou_^?@vv:n"5:ӑ{}R׳R XX:Y*j͍Q3\V.71jwMX w >/f?7 ]&j5{77u?vwcG !=ӭ2aOOkۺX_hqхTN y$듮T痮υb[+fw E~B^ YY5MM n=l"Ͱ|<]MĠ`jnƳQVV498&)[]\+>?_]?ru5VCfpqȣhժzz(//d2 `ddSS+  Y33!f#'lm XXA$CUU% Ь -@LMU&ɣ'Yt:t}.렻e~>Zws›o ]zUxC*^U_V.@qN7UVcVW m]] j{vEϿB\z 2 2Y5ڷ ==}"nή QUQQ'Ѳ$dmm[!/d];;gѬZ*\v)kggdՈ:2HyH\ llQVV;VBV77Z!7>OTq.UNɪq2U*qjZu523к'$ɹ @]mpb&]Aǎj;&ثEO޽G'8i ԩ5ғ~͊H$oa=uƵ8dg+ϊjggfQVVUot=e,_Z"5={=4klTVʄ 66F)Gtt0gO;cRn=Rݱ)駱7ln5ZTuŹE?ccsx{H}JcM+맾bTWW]&>J SOO"(*EqquVh-TƝ;7!ʪae.ׇXlw}x7Џar aoVe^ݱwnޔGl4;7vܟֺM>kEhCxMK]={tөVsE WGRRڶZrMa6o^K Q(gc%%4@5)HL86* MASU%7HqPXHi℆fcgTjѐJq-\8s>cƴYMhܻ-֭|Ys@MWo'OvE. _ NkB߯<&}j>yr[PRR>t쁁i; hU^iGO*OK-в d2㏣ }vŕ06ǠAJ &&?чmE];sa8y2]Jx%TBOOs;>sigmVkw:6Zv{m8%7p嶶NŒeۣsB˛FF&ԩRuf+X[; o7 8:v{?8:vPJ=:tpv@n5hmWiΝ }ѹ`k֭;mtQ]o;J/iV'^ݱNU avZ {vopsLs@OO=lu>5uw!rs׊(o^xۗ ss7Qq=a+077@JJΞ@zz :v@||<(Ö-2ۛ?eM>[YOlY4RS0mmژ"!.e zX[l}cV8v\kG[ڵ\Y3}tf 26 ^s/jDDd"22 իQ+jsϱ8&N C^v7BLLp׷Ft*ͣ'UM20᫯1Ea„Ptb OOkU rr!_}MjB.Z T6*7t]X#3QQϯNF-mIuuYmimAZ $DZkjjssʖBm8 5$k"LM-\}RUeff1b5366{ 壜.As VD^x2٘ #7W c sغ5II[ 7Ak@Ϟ; +uk**qb&_E~~7o6mпZl]mmu B=~RuMjzxZ%&3 H:X``Gz5a:>i/.._fD DT_H tD""""""bHDDDDDD 01${&&07?迅=8q iA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD fK$5[A"1H$""""":pL"sI3lI$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD3`=DQC%$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD f, """"z~D5bK"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$cpqqs'۷o i}ƍ򬬬F{ĉpqqM?Æ #ڶm T>S!PQQѨ$ ]M"""]2`*HMMx'J!ݕrT*,jԾ% RSSX%!!CEiiL&5zضmeO+q~.&D"zlgϞ߮]gl]66ϟGll,RSSaggVZa„ СR!!!Ç.^Ç#-- vvvŒ3lQմnH$/ L ((nnn/\75=f"""DԺy&F!4S!4qÆ &pu_āTg:n߾-D"Q///o_Uiە+Wb׮]΃-[?DQQr{{{lٲǏٳV&>@Ǐǎ; ''666… x7'|sP"n:>}^^^|R@taL88wRbϞ=*'1glٲEaynnPX`|}}_j驓!(//ٳ{nK/$u3D"znmذ/t#G#"""p 6 ׮]X,n̘1n/27opbɰx۶mû pppQk׮!((8q";&L EӸy&:v(|q222_O.,4iv؁ >|F°aP\\ 333ܹ3pQH$;(--… !}vxyyƍXj+aYYY?!ӧ-]Tz쉑#GG@@/K.~gGƈ#`nn`޽{2e nܸc044u֠<1iJ$f>u"zn}G'O6hsssWaYxx8@}+۷Ѷm[-ԩ1vX߿vغ۷cHJJBuM֚! =z4߯0pǎ;w UV?oPp־}{AAAhٲ}ll,^yIII -ksm0yd7,aѢEDHIIA6mԴh8p BCCUҥ n޼ 8qv٘4iΜ9ƢUVݻwc̙000@dd0M2 / .()Jaff ̜9;wTHgEE p9RʻH$w}?Pa ˗/꣼+6uC^E"b1FQU79f" PU[~j8N\CDuƈ#uK?ra޽ <8p -e_i;xD1g̙35]PTTH{*ԌqڒÛ>}(}/0`FL& Xpc4޷|žC*s1b:/x\|YGM4Iȇ7xV^xzR#F Bmٲvvv~:>C̛7vZ)cǎEnnڼȾ23fPEBW^SL]:f"""MqL"}00@aa$&ZQeذa6lX#==]wj)u~Fll_%lCFFqYZZ"??~~~*[TIHH+̜[RRR7o8q"6nfQMZKKKk׮ԩS8tPȻΪ,j11H$BNNrssMKm7olAW=ɻ6EfGFGG֭[W;HJ̳8___]V4i]v^둘Es$z"u1-11H$gD"QZ --~+)))u<55U}_z˻bzzzHLLT;iJUU\]]??۷Gll,6Y 777ax㣴,-^K.Ujn4ē8f"""cE->>^m W^U۷ѱq lܸ-Z//Bi_999rSߦ 񤎙A"I&!<<Ga|֯_fSLQI߶m~ıc6.\Ř1cs 6`޽w̙GgԴ:js w5544믿^˜Cuƍd2L0AJJJ0ydTxcee%O3F`n:?0Vx8;ӧZ#00P4Uh'uDDDHDuB~ѣqqׯΝ;M6!!! JKK?ks -_r;wʕ+GΝ1dl?#GlPk:/2f͚;w",, nnnx饗p\r&&&߿?_;;;x7ݻcȐ!ر#_3gΠFFFصk&)))QFʪmD"&N 6@" $$CUX,ƞ={0tPƢSNA޽~ Dػw,76oެٳgc8}4f͚W &|뭷pAܺu ={ěo +++ܺu ǏGrr2vk׮ݻX|9&L///FCe+Jq)?999pvvF-JRRN< Ǐ w=ٳ;v, ׍T*D"""""bHkA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD80 _"Q͇ؒHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDL3`=DQC%$D""""""bHDDDDDD A"5_AD*a֭Jb10tPiӆΝ;KZz!!!8s `ѢEUϿ vvv:Ik`` l2>we燸8\(L&1QׯHٳgcӦMh֬3ulxMoyy9<==[[[\|m۶Uʕ+b ͛1w\߿?Ν;NyΜ9ضm`jj̞[s8q***x""JI)DUoݔ4qDܽ{WDEEa۶mh׮oߎI&=sq 5111HLLļy󐕕6@|~=C[2ű3 .E8v7%:*v899{0aFǏ#$$ bf=c]vm6}AXX$ Zh#G .050{lf1H$g%֬YbʕJAbDDp W_ŨQZlقv_ }}}`ƌ00PDUUUaϞ=۷L6 zOFjj*̙ݻСC'NN< DyٳHJJܹsSN!??ܹs???!++ {Ƃ ~Wc? ݻch߾=Mo}c;0$''/2^z%`a0sLXZZֹ7x.\Ç{)}Axzzs*Ćc-44AAAHHH ϟ:L $#G ,, G믣cǎ 뤦b֭X,'͛^HcHD*$Μ9;wT^p 7ݫVˡB*bC ABB\֭[C"@*b&RСC {{{ !!Bܹ͛ի*[|%%cI#HDZquuEyy9N²e0j(>V,___!Yn233 OE"ݻw;|0d2&Nrۆa}Ǽ~zDFFʕ+>֭[RرC4-m_WVq!,Yyyyabb3f`XXX ::HKKÆ 7"EDD rvvKa޽aΝhݺ5~'e26o  v؁mb &O>zz5.KKKL2EJKK{ރ#t<}1boE˖-}W@!P+**tRtMX6w\ۍ*իWwfþ}```իWk]&ML&áC:t^^^pwwWeΊ+ХK?bzz7oD"RiZڔMk׮;֮]+tԩ,YDDD h׮̙5k֠W^HD"z ֨DTT333TUU X ##C!/OL:%%%,\خjDGGїkI\\.טc!C(аѯH$H$;v,LLL}ڵkZ':u 䳚5mcP+X!@cˣ寫cG~~>&L4S|K*&8q i%-- ^8rҤ3 -8k={?`DGGڵk(..|-ḵ"99ЦM߷mgϞU;3&&M+V %%...v5Ӵ UiH5<[:6$ei``0?M___Æ 1|p^A"=>A˖-ajj*H93fP\G**ܜ/]k֬ ƍŋwHJJR $CcMY^^{(͌IxA|'8x t"LRJcPYcˣtulrѪzFLL .^'N $$~~~_'`͚5XD"z<6mڄb|VZ&&&x7ֿ}6ONNFYYR˛7oڷo"_]vEDDB𗐐TEc]-*N///8pӧO_]q,86+PTm&L@޽ KKKG(cڵ/ՅcQ6l؀ 666XhQEO/~vv6vw}WayIIҬسg] >Xx1b1]^0`ߏbǒ%K/xblذ8y$|022P">>-=4͛7QVV].Vco^򂽽=>M6!>>p1WٕA"Drr2'|Μ9ccc̙3111JctǎT*Ŕ)SA!..6mRq_~Xx1/^ 5 Xbϟ/۷oT*ŠA`bb777?Ś5k[o5:w Xk67&1bv DѣG]v:u*pIU#СCx{{7hMPeTڵkχ;8X ccc믰 v>@ϋiMGDD ** hٲ%^|E)cooOOO !!044D>}кuk}fdd ,, Fݡ$9s]tA޽7nٳ033ԩS4{.]S7;;QQQHII^x=zIꪌ<ݿ.]D"ʏ: IDATb"-- pww;HR*D"zi2H$Ͱ)1H$""""""e|O"=1 g^$"""zpL"scISnJDDDDDD A"=&n²e]˖-F/_Әά,]1rss݉'l2X*9|0-[N~x&*HDMѣ7n>C]V:UUU000;nݺo?'N@EESS" ""/{zDh۶muwwG\\௿֙>}:ۇ2=7ugϞCBBsS7迁cISlI$g֘1cpg.7nΝ;DD̛7YYY /_88::i-gnW`3kLg#vv+`Æ xwp044de|F&D"zHJJܹsݻw#;;۷Ѿ}{aݠ $%%a… ۷1k,XXX( D.]0h ayDDp W_ŨQ uN>T̙3ػw/ϟCRSSuVA,̓t8qpIH$xyyƍ0aRXc7;0$''/2^z%`/a̙sUUUؿ?lll0n8>>6mUvŋ>>>5kұU7jؐ41H$"ׁT%KRǏ͛q%tk.b…ҥKammzKa7oƚ5k(,[j/_}}} 55۶m/{{{d5jp3hٲ%~㏸z*ZhNL!k׮Ŏ;SgIR̚5 ~~~h۶-?o|֭[ `رgΜD"y`hh7xw_uصkRSS#QQQ0a^u :Ѱ N<;v` Z85SرcqevÇXF2$DDDO$S'??k֬ADD\lܸغumLHC)}~4o\?u-[QFCvv6&O|wJ9s&6n܈{a̙ HOOGZZ6l؀ lܸQmw^֭[_VVV8|º8rz!1lٲ~~~0arssDbB롯/= Xn233Ro۷o ?~nߐ<سgJJJ0w\@EEf͚͛Wƍ+WB" 669999s&.^4޳u꣏>˗`#-- W\?XuUUPE41H$"WEE.]nݺ Ν ܾ}[6mڴA߾}q)/\ tS40<_{ ;wD֭O?)컴{=8::B__HHH@vΙ3k֬A^|?~<$, B~~R˨*W-v SSS^QZZo߾XǣTV湗V\ ޽VBLL v)t3L<}jYZZbʔ)Tjj*ѭ[7lܸQhM֭6lؠ6ohf"""DD 2D)j֬YL2RǎɻVǔUVV"** X,ƀw*.bqU >7N4iȑ#2???A:cǎw۷/]8v 1}tioSM>B>}pB|X` Oy]8jDGG+ԩׯZekֿvmL$K}GQ/)0B z14!t.Ҥ)EE*bADؽ^^ P !~M% >̜9gΞϞ3grhZmj͚5rwwW $-JNNֺudkkeVfߵkNw+VaÆ={ZhJ*iȑUP\B˹GEEi֭ի3M$no55kTllBCCsu-̳~rvv]tƍ mll4gEGGDϭw͚0aڵk'lR޹SrtuuMFիWZHNk p 13o{{g.ggguU۷o۷+44TӧOlcgg'IիFᾪTko޼umٲE{˵l21cF<|s <tͤ(ھ}ԳgtO8SNi͚5zW2[N$ݾ}[-J{O3f̶̰oM6 L3mNTٲe%IV'$$XUݰ&7 A"GFݺu%)=v믿$˗ ۷k˖-ڽ{J*{βEŋO,$$DwI kr]>C_}>t?3siZvm&GGG7t,k/_>ώϪdɒZl֯_[z:u֭[u4iլY37.#ڵKVXN:iŊz'ꫯq˖->}h֭Ћ/nJHHPǎrJ]pAѣ4iҤ,ӤI9;;kڵ9sΝ; }wڴiڶmk3#OV||%Հt9fkyJJJnݪ XB>epp|||ԠA5k6666g\2Nx.\%Jqƚ2e5k,IRժU 6[qqq:w&Nh{04i!;vЙ3g_UOY~3jʕrttխ[7iFÇ/kVz^ڵkCַlR6mRbb &WWWuYfΜ*ͽzT^=ծ][oZliU՚FNӧOWɒ%<}Tvm >\Ŋӯ!˗/a" :Բ}FS7nԢE믫]vSLQӦM… 2LZ`չsg*UJՓ~w=c1cFlɓ'wѱcԣG5lP'O֧~~N9L'l':yΟ?Hծ][7 y)::Z:{Tv)Gs玼uE.]Z3O:L2>|%P޻w<<<'?q .^zz'TLBS´o>EEEyjٲlll={iӦjӦM]j׮]3s(% H"iСZzs=I xn uY^Zݻw'@ =P8;;͛ZvڥS(:u'I?TN:IUF#22R_}VZ%''KTF uU&MR:u@|㣩S_ŋ׹sdooeoF3gpdRΝ;kС2b ٣xZlirqq2M~t)=s1cFߗ_~ٳg]vZt) ĢzwfƦYױcGjڴiSNwFIΝ;UTI5kL]JJ%IIIIy׸8˾tߙQQ-坒R󙜜lɏ9ˉ5kh̘1,+^Zh~'Z}|Pڵk0la.ˌ\pAӼy?jҥruu_K.͛k˖-Yv횂^`~P '1yZxbccU\9hkղeK]UD z)}7LY>yʋ֖y;Ç+22R+VԷ~K.)..N _+*>>^/8@#ǨzjũdɒڵkUxgZtiܹsKժU$>|XFvwf[nժUu ⋺vW_iF{ѣ_~Ymڴ ٶm[~;v-[_|QkצfZjEd988h޽jذa/jҤI4`lRz~ /BBB$I]vU.]r#Fdx?KԊ+4|p=^uuM*TR@ѓgIosڴi/4(QBKu!-[LիWw}Go0 ܹS4hР4jժɓ'K: V/%tvRJi޼y7 9ruu=|OƎkuFC۶m}߾}[cƌd… -ʕ+ tl///#ٳG6mҕ+Wƍ3O$&&j޽=zH9kŋrrrR&M4j(*U*M<%$$hڻwTre5nXÇ:O||'ɤݻ0 ZJ[nUz<ٳٳg,'''hРA[n2{LL:dڄaaaZn|}})ggg*W\^냈R||$e~նm۪L2˗/|tOIR3$((HrY%''kݺuڵk"""TJ 2D۷c˖-ڶmTjUmVC Iws… Qׯ[niҥ:vTvm 8PZ4,y9qℂT\9jРAVG.dT###-KnTX ߇ԡCKͮ_@@t%Iww4EUTիWum!Q9msqruu'|1bD{tBݽ~.]*???%$$VZ?!ww,_i?_v}1$놻<FLLѳgOt'OlH2&Nhxyy*Th|s[}ԳgO-[V^^^Z|^aÆY<[nsʔ)QF ƍ1c(..N믵xb۫^zjѢ{ァŋKZn^zB v~;wNsUӦMꫯzk7n$bŊzgT~}8qB[nՍ74x`mڴI{Γk y}&I;v>^z?W˖-͛nݺ ڵkSO&<<# /[߿iҤIjժ7X\j4x`[9sΜ9ݻwkzĉ3gᡶmʕ+ڱc\JJJҒ%K\tI>nܸkذaSnݺ5k诿g}f͚i֦W{]'NΝ;uiYdz:ۧhKكmUy^gG5w\uQ6mCyE~@ 8PڵueK`QyYX$)g+M֭ IƷ~6x16~e˗'d2_}UӦMl<52$ 40ӬyaH2J*e\x1/&ɰ7 `\r%r'$$vvv$3]D]vz{Fޏ͛ϙ3gZjjժ "I4 3ʖ-nשSx׍͛7or~fͲ!-%JǎKf߾}ioI>22pvv6$#Gړh~ѢEvŲݻ|$|FppptFƍ I3iu  EEEYy'Zڵkٳׯ/Iߋl^ըQ#߿_k2DRR8?Pj /;wIߤIK`H>T:uaYIO?mu< _$ÇܹsV/9shۙ囟zj\2kӦM[4eʔtÍsӶDU{Q|}}?uʲ]8vX~^@pObHNNO?%[nZ`YpTZ T:u.,z; k|.\ ?..N:qvء5kY{'y:{l^qssӤI4i$%&&G;wuYhɒ%:s|||dgggI;d}'Zv ˗0 UZ5ÙͽSV3RlYe|kRJ=P:t̙p5h@={ȑ#O'*/W{A+Vg,]4h: mVeWuN_ GiUV+VTճl?ڕ/_@>/ k P:}<==uQIwN>]#F>̿5*&?pvv~(5mڴI6mr۷o[]Ƀr{6lЊ++Wu8/s̾@H  nakVթS'uI}߯q̙3:zf͚7x#]Ǐ[92Gd;zE788X 6|:Ok…z뭷_U$nݺ8pf*~=~}@^}^׹1sL޽[QQQ7ne"XwʙYdyTN~^Abb yzz*11Q6mƍgvtIKXP\3lRM6r{{!9=d 2D%} ԬY35h@-[5q<)s:vIIIE6g8^rE*UJ1k:v={QFu6nܘ&HlԨ5jӧOkڵjѢ,Cdu xzzڰa6l oooEEE) @3fw}~![RE Z^ =׹/رcc-YfnJwG#eA۷kԨQJJJR=p\ 7o$}yGE:utYyxx諯*t7{lKoKCgO/^t;0SWIZdf͚f͚/+W~Zs Sj͚5,O<5jT'888N.euQTjjN8e˖i޼yք ԩS< -Tه_/-[7TϞ=dnPX4 &jJJJe˖\ZjC`K,xa[Nz~ׯ$C~!+ faX! {^ ۷Oׯ_߇DbjѢk:uJvvvJJJL]~Xa=D{dܹsUxqg8)Ta7othիWO3r)??K*""B;wng۷obbb$I;w`h۶$iǎ:}m"##ճgO 4(Ǽv-IRz2f޽yvlƍ{SżJR>}TX1iYn Kt=I&7xC/__muyxxg ur[lllԿuIsεfKYF1(,{:z>t~3gɺQpM@YzAܸq/^|cv)Lf97ԿժUKahРAfcСCҥK[OYP̳ܹSiwц ,?Tr$I#FHWl_~.9ѠAK… /^{Q>}2eW_$M$R?Yv W111'u]|Y7V>}T^=%$$СC:r䈤yo޼y9sԻwoi׮]ڵk fzNW۶m3*us:xƍ ]/_%MNʕ+aQGSRRRCSrڵk 9 +VƍzTĬԾ}{yyy_TPPݛfXcjW_x/$=34m4իWC'|[n>|L&^uݼyS֭KU .T U^slٲڳg }׺s.\Wrɤ~W֭3_ݺuռys|ӧCnnn裏7=B6668q<;w֬Y4eݺu+]:{{{yzz?Ol2=3WG >\Ya K{ݦMM0j/aaڵk&OOOiԩS5eʔ/h?<<&?;v(!!Az뭷yJLLԎ;[nZjWc{X믿* @ŊS&MϪB Ǐ많;>}n*___EEEIѣGRy}Pڳg;ׯ+55U5jP5ԢElD٪U+;vLǏ׬Y {1cڷo(::Zk׮ɓ'(WWW=Y>/u ::Z6m҅ tU999U]vK󓚚 6ĉ Sʕ3d=wPRw-7 Ð U>M*oz'yK(5 H\[sl{A"r駟ɓ'3M'L2jذz L28q"""2L3frjӦ6mڨr/3aP P4]׮]$+WNtn޼)Iʕ+5hРtբE ]tITLŋs$z:~*T&a>|V\iI[F (&&F4rH-Y ȥKwW~d=P⋺v:vnܸ={U)))z-^z%]tIŋ_EGG?Ttt,X {{{]xQcƌIvŊ^SXXK.]5kp(I"_M4$͘1CnmN>VZ)!!A ˺+WN>}>t?#M>]666}J,iY榀uQK0 o^>>>jРO..ғ'oooIƎkuFCYwqJza5yyJJ, I=ztt&I/$̙3:}4 D@~2^3ܮvڒ48m5BswZX1j޽{[ݻ @#0ׯ6l(''L34fZ"##5{lu%]9sH*Tf͚g:ul+WVZgr Hvک]vnsٳTޫtҚ3g u֩_~zW,3Μ9S[nUb4gΜ4#KRc= dof0`$VZVg(2d4p@m޼Y7oN[NO?ta?~[E $@wMM0A;wVxx*V(//4=nO?)22Ҳ|5w\EDDI+s3cWEPГŋtuu?o5Mrr{}駊$uM ,KcbbԣG;vLNNN1c r)22Rk׮ɓ|r?^{Qҥqqq-[ A" -ZdA^]v$>}Z:zKO#Fdx^ǎmۦ'x²QGVƍվ}{5ydIw'[ne A" Ə>}[^ztVX!OOO%&&QӦMӸqdoo1V\)I۷o^O=z-[hϼJ*\T5dȐlm}v5JIIIѣ.\ŋ&Md]&MeXĠ %%%.]D1Ib("bcc5|p%%%iڲeKz\]]%InwUIw{o߾-8`'E\0iҥΝ+[ۜ 1n۶mQQQڹs$UV:tln:i7n(c0:tb)W$X8;;wޖǎ%KҥKzpB#+?W6sk5knݺYjܹ7|3,(|8Ͳ?XӦM]t.\ݻw[&6m>4icbbԦM*[Əu?Լyf͚GJ@!qrRSDx$%%DJMM} Q,Y_ Kr/3|6ŋsȑ#uA+WdfS HA"ց*88X5kTÆ ձcG-[6Ӵah֍7,=:udp `vSA" @ H$bK. .zDA" @ H$DA" @ H$DA" PRdDA" @ H$DA" RD GI$DA" @ H$"]&]$DA" @ H$DA" @ H$DA"HGtd=DA" @ H$DA"ƓZ.Df]Ŋ%TZ)5o^A}T/Ƶkq;$iw=xIj(Ęd]vWlԌPd/FJawJfŋw UJ)j.Ox)SdItRtzvᆭۺx.m g!CjwSs=ݫLOs躚Dĉ[:O/O;{YBJ=˲z$I>>eo>H OlaGҥAڼôkW\'$UԹse˺TCS)..Ej?Uk4y1M͜yV;WVJ{6mW,ײe<(0loWUգGU]˗cռyV4@X ƌm! ӝ;ɒ޽j&i<|nX1>yQʕ-4p^ݹ .iX7$5n\>݃k;T*?2** ;6**U*mv̓4hPN9ZMT\UԎWuxxuvӧ#uU^:>}OjyLw_#$NP_ŋ35еkqڷ/T׮ݽ'wkm.^#Iz:qV0.zj\=zT!JԠArwwVUղcrv.Qhʨ'6hPM)ij}ΞO?5,CNAyFЬl>OEG'С:t$zx\+hE<$滒%m 5e1EE%*88Fe%2iTCօaǾ}]ԩSey{;L7hѢZoNО=tLeYjcuXn_PWIĉ jӲ5)9ѣ>_0ؼ HJI{{6 I:r0};Iy7M0YI&՘1/TeFUR=SGYMrusyNlsN*JR2 w|ujlt)2IVɒ69ջ{u!t`/:&MK;l ,[$?[kllre9O摸'^ŔG5fϜI|\rD14[MW={BuVL&OZEuh7;vDׯ}JYSuDN$YUnnwռytڵT MyxT_DY1?СZ4HekLF!xq~$ۻg0079rC;5dHM˺c5m ].]Ŋ%4qbCu^~ׯ̙g-=q+}qz~kϞUMկ'hUv˗cտIJ\o>8&0޵'}aaY"$懤T9rC'OF(**I*PeԡCEK/]FI־}az5V7n^UR6NT499Wհcp 9rCIIZFp}A" D k=$DA" @ H$-EQFiEGqՊSɒ%yf=*^x?ᆱ 6h„ \}JHHƍg򵁰-&[nkP۶m+XO#F >c 0@^^^:xVXÇ|Hv.]<- *T[niժUYZn]tyUVɓ'+""B1bD HxpL\J*yYߊ̹x.]oqg$رCn{A]vM˗WNx OГX\\\TJ]zUO,׾}d2Խ{wUVi֭W>4 ӺuH9;;]Wr2= PPP.]$Iv횼$XX[(ʕ+ tGKvvvfϞ=ڴi\"'''5nX ڼyݫ0U\Y7óuaf7n ?/_|1m׬Yc ,͓dٳٳg,'''hРA[ncbbt!IRΝ-%&&j޽=zH9kŋrrrR&M4j(*U꡿5{5mANkui׮]P*U4doޒf˖-ڶmTjUmVC )p2+|!ɐd$''gmjj`H2zeYlH2lmmcԨQ}v)>~'L2gx7o]F}\OOOi 0P˲GC }ʕ'NX=j51w\'s9}ƴi IF3>%%x IۍC]6..5ja2d2ƌ.eP{199?~VR8uTߪUfH2Fv潚 7wo\~pww?7bbb={Z]ߥK#%%(bkbyo>EGG[z믵xb۫^zjѢe5n8IRŊ3Ϩ~:qℶnݪ7nhڴizfI'jΝ:},2~ݻw6oެ@5kL;wc4vX޽J*-[hݺu Ո#tԩ4i|}}խ[7ݹsGeʔըQ#jƍ ՘1c_=eȐ!:u٣7oZ}yi Ee{O/$nZzR t5/:wΝMW_ѹN2EgV>}ԳgO-[V^^^Z|^aÆ+ǂ0WE߿4i$jJo_V޽{+66V3gԙ3g{n-X@/2 ;$"=>>>F5,zL&aooo 0rJsDVUq\kY )9*K2P&%%a#_Q_b$XAh`ZI.haaledtV`(:5YyȽxt^S_/099>sssFl|׮]ɀH演M$?~ɬY:T7oڴiӒHMdٲe-ʾ꫙6lXIiiiؘUɄ Hnd߾}<$I2|$"w}y$"'I9ܜ%̛7vΜ9;(w{GSTdɒMFDd$n\}{r7&Ye曬z[ti򦦦wj$z]/9sbYG}4 cƌ9sx[ 1pXfM~YVXWRXjUC˗GDcÆ y)B#Ǝ-ꩧ2766f/cΝѥKXbE]3>ø[ɓt|UUU#.Οմߣ[nѣGx[,/**سgO</^~:lJl| F'#"Ə}􉈈XhQݻg]p`ڵGe6nkBW^UVٳgLl'NlVɓ'СC#"by)B#xV߿{ږ-[""{QFZ_~ [t|e˖D`zV3f\O:cǎl/xZ8_sA`zİzr@H~vOҖ~B;`;3k\P޽{whƍcƍ]ĉ9cUUUǚ5k2!#ozضm[8p k4(m / $v]vmnJl. ߎF~r>xoD3ݻ?Deee|g]ZZ#F(//={… z8_sA! $ O?z[(z.e u̝ՠA!&LK,Oy]wŨQb… 3̘1]N& .Z(^~#l/ZrBAd+ $FDm$Ie.$QPܙDD\}]|駙ϖ,k֬gƺu"ן4iR[ނ싖6P}dFQ__:6l^)~e u̝՘1c""&v:MMM1y䨨+++#JVmǏoW#GDDĐ!C\-m|} $̛7/w=X bqn$cԩy)[cΧ|L6mڴ0`@$I->ɓ'c֬Yq֭[L>=/-..΄+**=QRz̯*N> /3ƗIz˗/sFCCCC=98uTt5VXH\ᦛnM6ҥKGYPEEErʘ8qb444wG/;֭?3 tXȇضm[455EDf5}cڵk׮{cܹѣGصkW|w1bDر#ZTTTDYY5]˵/w/dD:9sD*g}6>yBZIII|1nܸ-1jʔ)z8tP,^8zsHcO޽{6VXdIGpfΜ-gF>}:Tg}zz?ʕ+뮋S7W\r+P8g]#$B"5tZ׫Tb$!! DR^^F] J{A{I@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H^-RDDD.{t(UIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Goettingen_page_1.png000066400000000000000000001631021420322575300300640ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|SOMZ]A.8@: (\d( * ZҽJiv~Ĝ6$M҉E<9,FрB!rOJIRIrlB!B(H$B!BA"!B!  !B!PH!B!DB!B!$B!B B!BB!B(H$B!BA"!B!  !B!PH!B!DB!B!$B!B B!BB!B(H$B!BA"!B!  !B!PH!B!/K@!B*G!-M<\o}>=ޟ.C|| V۷ATcb}wX.l6y&$j:u6fC,VQΎ܎Hhh^K c38:r?˛{xz5W52ـ˥ :d2Eذ`m#әhnVakۦͽ^u&О'ÂnnBz)K뎘G@SGa?X@CJGUhhPt8D"9bL]S lϱGT!-کܿ> ⊯Ge^z)?Nw~C oOV|yrSbb-^}nQcԩ ׼RwlGޏhGʌ3k@||M Ènx un~޹3 gϖ֯Gۦͽ^u&%s68~"܄BC[P yGNmVkfIi4DZƖd٧Np2 E;>$YjwŘ:՟.[+,PS 1~^|1PD!D u `_LP(48}5 SO!0Pqc f7A*U㭷b,Zϔ7ptacO̚h6pPWsqH.VfpԤ#-*aa3'nn=:KD[[+m+*zYLJovi׮tGL3_J **!(j ȆBƒ%є8TB= 1{v0 T 1x <O^?sŋؿ? 99d^lC.WOptz:~lmek!CL? ڕd[!&ƹWQgOΟ/X<*g}-VO&Bz χa?pp֮锔4a߾L@f4T{?kՀ*d' 0wn(lΝ+XС$ލ ʰ~M{ݛ o8r~]_7HdF\Hùl6!ۆ[?))B5M:kMvHW_:GԩB=S893Ε"9j6I?6m**qPvA;UV6cٲdgLիոz?  ;r5VJW>3+V\ /chwfm~u/mm}-ZKMgg zq: KK%:BmJٓCrn@^K-C0b/<{A3o8th secWAEEM5ml[MziЛHL_rh227Oeغu =L}X,,gbxxH$*̚ ??A3h ys lP_/Koq.sCcGZK f…ػ7˗'aA&San }Oׯb,(DE9bH7DD8F ʐV<Į^'>)˖35:TH*,_q}Ao'~5]pGXyˋf%nni_ԤĪU8}P֬3\BF^^#…wwϞ 9mo^Y7kqF4Nŋ]b[wS/@ ǰapw硹Y&\\Ԇ;Wsǔ)~WN 0v'(+ FǮ6㡇UK9T*m9q`xnMkBW[3xxnFli_ p8,LLH e ͛Sm,ll8x_8C*U+̲6]UuLysCƆF\RŤ˕X& ۷rBH98p'~{H@7FQv?>mX^kS3r8,,_EEbagg ;XYyѰ#";`˖(.C @+Z 1>sx(p|q&5_"Qbږpl4XRiu-{3泥V`;,\ r@g9z7̛o=zKC֠Zjyua0ߟ8x0&t8`KIybAFBB VҾ͖Hذ!C%&k0kVD 5k_\Rm6H$=[~`^4s~X&~gϖμ:#?c,7o#k4-5j,Ix..6رc^:ᆱmب@c>>|9\%Oo3`VB\io+; JݕFw1"ll0&lxHNc…2ELoM&~VV,wz-ll sU׹ϗɿ(+6{Pi3&ՙBo˻>]#~4o賘1W\y]/%r++8'Y憇a\1d<G%ޝzcYePW4S@']V?FVȠ/dO&B~NQv_&5iZfJ>b׷hg0]wn~-+90 oΜ̙ҥM:ǃwヘ*iqfS÷i!oܨ5χ`$A%ƶ'^V|N'þm>ungFG: ;":MNN65tt7QuH#c 1}5? ɄB k=rat3rp AHw>L;aT7ǝFXqkD\\d+D1C75)-uvK¨(GկFYOr5knv? Һfܨ`cAP] 5cm͆2w|x)i^^͍m,eݖA];K0.uMbO&Biѧ onO>yɢZԤjs9Sݱ~fw_ RG=[kk6 pƐ!.5t`.V+61rG4l=Ŀ({xfȺ:zD*))B6 %%M(*jBqq32g{˿UUzeW 5cAu4Vl2T~7redBٵ+AAv?<ܸQ50eo#k4Z^j%9]*B[۽ Ss- ĉm[*Zj$%")~ wwLł:E[x >_~)lߞj񈆭yyY66 Ӭ>}ݡA%FOkبlYvZ+ޚw4Bx7eнH 2[Y=L/AkW:BB)/ lm0m{Zf\P2 ^y% Q;-YwOEAbg|,!!jkrd]d?1~.U"-UoO?c׮w5İV46*P[+ƚ5fk=]S兙n;Ӯ'H` G{`h|?kk0+zov6oN1;0I, ufi\L  riJUx<cMhƗ_cvJMR ۱1#qq=Ilݔ%5uu2I{iC];ߜ'ɓ'LnFcSD?_L-#{K(.n'd\gq4X?_?,̾WmilzܡWO?MO^X(F~~c }![6mt'BcJoݖ,1[Z\ܤ7DNRB:fP7 ŒJ5^^֖Ô-nΕ3lyj[kNH_bu?K裾`j>|lْcrTgu..6<'} زeum؍mvUsd ++X,@V[W'~H_Xo)b~a>S"#_PfYzz=ZEE9vk:Ν0m%s=XY0}zK.͛uFU5غ5ښnOҝMb?\>;]wH9:|}q ]w;2ƻ-tΏ?D59Yp(lؐ SΞmiԗӝb9Z{3aC23:mKk-T.WrY̋f3ݿQܙEׯ Ԥđ#yxD u쎎\6NN&ݲέǃ8}Wju̘3fFɟ+  IDAT}Y|Ro"99zfG\9sBFmX;ӱsg:·!_3}Bw¬YA8q"첶l> /P\}o_P(M#LŜ9!zOHw\X4۷^ƃ@`&>,\4b1p ~;>>x|36@֠DUhk][׎Lܝvyyy 8xpL4 }l2=1|3ի՘6"l`mAYY 0&b^^yBΞ-AFF,gβݝft* `;47h2R ΕT*55p<_~gKcP4z-BBÑ#x0p8l\RÇsn@Iwo&֬jDPkjѓ̝[WcSv>N'Vk~٘;7=S.%zs ꎭC6#С1 뱴|HGpc ZD> wF5+ 3h+(3^@|0E}3!FocGL;O:@|PYaml8]z/tfޝ93PrrQ^ <,l6ol0RM Y,`Pl0bv@̙ww#Çzmt'h%&b˖۶i_pEE9"$'cÆ^ {ذݞ@ży8 ˗'`ٲxڃfA ‚cɒxXc0kV04QQش)oW_1wח~gέcNkbKRS 0P;>|zS"5ut99 eÃ0~W)+JPP FI<~~|dhT|y\br-ܬO??PQ >{L+%mۇ{Vܹ <\9@on7+;իոr EEM epvAdyAAv}|bdgPW'AAv0`2sҝRSL 7W;GbpRHѿaqRFYov4ee P*5(*C"Q" `>"1䰳BPހuJ99bX[_{;7  !}ޜ9##C;ė_>7G!B x$,^ɴ:uBNoeїY% tDVW'6iݹsds3B!wwx"~/FX[s RHBCQ]-ESbdeL zpq{nJ!rI|qB M#^DOipXxmBxkQC$X&~Q;sυ$BE|m_Bww݄$B:Ny ooE@dg7eDS x5+.!MjDBA"!sҥxAohBDBȽL PZ*AiNN`wntlB!PxmRTjUѣ`٘=;˞i?71o!t >ͣB{ rTUIwE1#P;X٥}U* B9Ui4p !B! WNY{70/6ܤDB!BH3t+qp.z+,##*jlܘ_PiSg6`4=[FxzbѢp$$ҥ*H* ӫ᫯ PQ //[NNpMKllm âhGl6 9%%,$&!)YaVg9$B!Bzofpv.olcrC%j UrYpX`[厐{fycg_A5B!^חɓ}qD||pt}RNgIIsb.,l-<pXrHJT5:ao)D$$ =cz $^^<9 R *|q&T*=q&B!{N zu٘7/۷10i7~ׯBTcDodeo} t\ ",+V\Ac3f",Lۜt|Q&,ǁD“O_`r}k`vF۵ΠA.hjR";[G鎶Pa puntAQee3hP;\?=Ç]oI:B!AZJ>Dz2 umZf PhPT$DD@AؾKjϝ+šC9Zg((?Iʕ|"="lz j11$v/޽Xv`>gd4`DLgĮv%]\!ÇOW23˺g$H1 ꫂ @L9τZ%5ʝ.H7KM p r<ψrcon511NtZm'cB!%HFP* EЕ 5521wn(]V> AAv0jDF:}Ax vmkAp1B!vT%H&SuʾoG"QX/OZƆmk޴57EԘd4(7@] ;"5b8x|y,'WVIo-BPG#.ذ!%%<]1q yyxKI!P.^χ_dlߞ, $ر# ;w.M6nLزivbgϖ`ɒhBƍ8{۷ؑp{wS_S `z9/O@JǏcpf;YgP ??>>lL޽P(Xv Ng>8r$'NcځNl]S3ga&Y[o7ȑځ~J ֮ صk`ӦdGƏ† >3_O?Я2XB1!hgOΞ-Ad#vVD ̙;nެCrSc`L+ rG23gcǎ̜>R ˗' >dS^^#v wwߑ nKoOɓ :r:kߺY+`@XuvL_c4:7nLF] o +UL5/׮yL|jj=6o}@~_QYٌ#GrG0hFAvX;_fB!+$a'NKl(j,Y%qvm,lW&=z 0\. -_cƶm*~gh0''k ,;#tm'0o^ރjGҢ=7GW刏?Xg~\ 6;3"XYQ5Ra˖!zɑ2f1U3=Mwuu2|e#3;8p\fw#y*ۗ[[v ,fg0b^{a֦@eGG]g[ 3S;yK/E&}(X[L9jj ɾ7/ yu(}cyBNHm1L..6q(@$B(HFv75<ܛ7b>c tVq8,z\f0fFFlm9ze: Xb]|}MC7mJa-^y%JV#iў훣K+LrJnn >FOoo[Xvl 3jfM>Y! ==L3jWgCq?vAH}?_*)f`Iiu4}4 =*;WjpLvld2\\l0gሿVkP]-Cyy34 ?_*Uˀ5x(ѡ5/#ǃU5kp}Bꕯ,PCҠLe.S^ @d 0P`]Z*1:uu2H$Jط98(-mBX}˖EcٲS~ 2cz`7&phZX}s(-LJYm@_5^@r׮ՀϷƒz_C @)*C$R`HwZ,a D"Fpc|:DuWVDR 1A:z:c߭ѣ1}بݿ5<=yrDFF֬' ÇaH7gk*_vWknV!7Z[]S4Vj+ !BAbeC75)Tj`c1XǷx[[Is"tbm vvVzYi1p NS oj@nn#N,6 Ɛ!N KoxH7ggf,.̨юmN/RT$n3@i:5Ukk6 PQ OO[̞\Fv^^z&ZC =FDHSOeP4"2#Ga_ {{.3HJG]gu>hR"QV>ӌ18u.!-.…2ؑ5kb1io\<o7@ MmKׄ=ͽ !BAb=l6 )۬lf@VVdoo[,TU5LEE38ut&muq…X0>\|$%aD|?*-,پ~Q(,ƢcM-m:J\R 1df6FXgXYZc0冎nL(jmD L{B9`07AW␞ހ)S|1~^`hpL]wvϟkB h=t0~:"׮UZmR DK\uj1{m3ƂDI$B}hh90n$ö;]Vc'0 . OOjke(,|PRt:06YnY_29:Zco7˙ڛݾ)m =W5j N*ڕO>ɺAOYedKmDGbn]&m=,N.4Ю{B)i[HrĈ:7`(wl0ؠ6y{]g컩I#/O!>gƍ:O'ÂRZiwZ/: N8:Z}aF! {Sؑ\-!?Vi0L[N,`jth;=F;!Sĉ|TWK1b^?^洷o7<9'daTh4 /MnߔzVFPV T•+Um-;|zF˅ۗep`Vw:MZlK;nցɓEZDg'#ps6AeDlW'A`޼0MmdoV}WtW׮._#?;v"/>`;s¯V#%*ю`YN_s;n\.۠fY&S!;[k*ގZŋxJ!{W||e>\¿C@8t(j/iRϿsC/@JǎB e9!Bs9~WԩB,,Y}봗nb#ݘy*+zFpǵkx8̙B9yyufnhoZwm)-Aa\ FY0W'a͚X0QQNB$%bW>||Xq]ouN@zz6lHnp7l<Ң=oJࡇ|׈>Ν\.?K1Xڵ|yrszu_nKFZ˗+)FgC,+'Bdd47kj|}1~>d4vе}ښ*L̚%Kt935|{dq˖ClsTB!,!- !#uur1lAS̝;pDZ-!23MbbfE;w22DJUt@~Nmu+3))B46*`hsEHJEABXƎVf7w\D8p8BC#LPsӿ|=; !B!Oc1m\&|V___1c0n\(֬y MMۛ9s 22R`4ɓcqħ&V-ر=:(-_;Kq%9s/<\cI$B!MMbdf|ooh4܆L&eS-Y4y8x{rbl6nvsrn3MIr.<d2)lyymk=Fs<-vބ^x }_xyQH!B!uV"fg3mۧm?zϧ t::uz?tBa-"S>̚SR#)*NQ[?ĉq·x'ao7DPH!B!5lXss9ó0ac0t_ǜ DE2"DFyyprreDwDdf4 B!{+lmZGV-7{ 66 fα٢Ϧ \C!BsT@;? C3edמL&;<*g&HBMB-4QbY\YuWum]{D PjH!1ΐ!3ɤQ߯癇{=ssnټyۥbgJO?r-"tQeff8ǫED,nv*,,r%zs1dhyyywnRR5jrrkse,=lYV;Xaz9u{%eeehԨIm09cέ6me|""ꦛֻᄄ+UQQMM~uX_s羥N}G2 =/}'^՜9jdX5@} r~m=:|||U5i켭aMPX.K㔜 rrk6fu{O<ݻQPmIfs0BuCeK$ܓ H$Yy?>JctӉ,;nOвe_\fZ4ztWܹ yaIRR~}0tUo2mfμQ/;:tPw1I7ر:኉٤;iFKjbxD˗( !C_?|~g͛-Zu~(,x_~YoY[nOܪ\Z`t.\~F$__?t!ɉZt}S} R6䓯~`RIҜ9/)&f>=׿iѣ'kΜԻԩLt9gĈ=z5k{yDfb78^PݺEOz 5qx͛ LJJگ;mN?MIl޽onmi={vd2kj}||rHԨQc=z4rc;x@ղe_jέe.թSKũcj ıCn j]pX|m$8~a(5֭[u++\>R"//GuW[(z^^^b)уުUSV5c.B]vg=l'L׹dE+Cݮe˾6)-[FH74CVNme2IizWjɒOt7)6vV^+VĪq0IҎ[ݖ[ҥeGNiܕɤJl'YII4n2ƎRɉynFO<񀊋dzf͚bIMֵޮ?=l&+''KaUNN$)77G$9VdԨI֫ΕaXJs=z]M q&wpeT``2ؘ^zIFjzYzԾ}-Zbb6G$Mpzg8Dݻԩu54aBu[u;x琐P=䫚?- FQvvqD>aM0uR˅q_XXXeeTǎQ:ժP~~:wJJگÇ4`p ڵ]!!j۶T>$a) @ H$DA" @ H$DA"M.@y{TRbȑ|^=Zth襢"ᤒ\~&I*??/5h[#!HP ,:p j0D2*)*;X-[֕0,r[ _[dcY^^&y{WY>>f&yycV~~Im<7w ssKtXUXh$+7)m[~~f%%)0G^ da_yA"Uv@o8|[Ph2LPVDYj2Pyy%*ֱcJOZT&p,o5tb5}xEGu ou>Mvѯp7תU?7 /[V_~YQ-$(q&zṎmJJ::uȑCl'ժ[WӦ-ԡCW 7mZj2L@ɺ;vlњ54jDgvmWnnzD^^і-ep=:uײe_jР$IkբEcyzzbc7+~ڴ頙3QZSUϞuhcrWA[=EIԺ?vج=X|qzmذZz׭NdW_}G(*RJI9cRW&\+//o grsթSM~BCo__~YWj*)hӦ Z~ ܦl?DL~ ̌2yn"elذZO?wK^￯[_}SYV}'r CO"2h!X,*..ғO*: i<]q5/ӗ_~ѣ'k 䒡}Tf1c&)>~u~RV׿>B]}P-Y2_cL֝w>"]qEydiU2dkI:z4Ea>P]nOˤW/H3f<"M:<=\o2(?|v]wOuC?X6lXkk„k TMVx:V^yhF I u멠 Tf{|}d6]kIR׮:uʤ;Jр#U||԰a#7&6!/W Iܹ|9 ZTX&=JQX/2e%IIܫP5hRن+ɉw Eͨ6}2uxu | 6.krYVV6nL$lYWw^NA*\AbTT#EE5rlLt/C]=aL\DɓE2/.*+Ϸ(+*VqV*IEEVefNAE99%Qyb:صkS!ՐYmm i[?ޯ+R+I Vu첦2Mn<>ڧt-5+*2\ÇMUP`5DgφZ"E/[Gk"C]k$s*'XW^FZ(A_|6ƌi3;+0[%%>hRR$I j0sOG5h$^=N￿鳢"voӌ\̙BJm mvB}4 /Uݺe4o^,):.z||vYb D&iڵ:~P}hѢZu6,IҮ]z5kbbg(_'i˖eD3@xY oo.]TXhɚ?JJ }>\Ni׌);6dsf4(T!!ڳ'K_}\mt\{oL:֭;sc$IfI&TTT#կؓD8QU(0G=qٓ??(Ð:wVdd }>%'ifpQll^zi Zb ol-{w^ziWRR,IҵFp疴u@ߩ}j_?SV3PvvL&FnX֯_*\=U? }!MRTRbgb%ن>to zjX8w%$o4eJ+uP`^{z.; luZZrrn!i꯻drܸz:fԲe]MVCqqay ]\;SpTZRR~$iҤVNA]:^3 ֮MUZZ$ipѮi:N.^VCsp V7;wF% IDATWGY:l߾5#I:r$3 H/"I*,[^űxP}~:=Ny"zNbUԭk Zŋyg7[`/tL^SGOIPYydbk>B͕?4WbbRR*ӾlUѽmmru_=NK>LNNZW_M$n3W Ha|3^Vg:<>گ͛+$T/QU{ݦee&3Y+$V 8WSKl9k#,C>>f±mz2ɟO7y 7%f/Vg% qObmЮ]'j_ yڱ#G֭9ڻwך59'uz|x&IwO?yz+7߼D5d{ůӲeɊ]z≞0e!!~z/DTP`і-ǵvm#@l,@/_ռ0 b9Z6UII**EEFjذ0yU~ǎڰ!M))y*.*$_}4%4.g#0ݛ%K~$ HD0@ H$DA" @ H\A?*V^-ժΝ;+22R˖-h*6##Q۶mhxaaڶmHmذ3Z`EFFK/0x˙۰acǎݻ%I:uh*vƍJHH:tp6۷k]W͛URR6m($$ JHHP=( kט1cԱc2?γ}Rp2l/ A?v_={!I߿EUfҬY.~emܸQVUݻ7Ν;%I@SvQ$RSݺueY,L&Ӈ}>f~%oo aZl}no֒%Kyf9rDԩSUf]V޺˔O?T6myUkRtt$iĈq8ٳ1鍊nRPPPWTT5kl6kԨQX,ZbV\C^zKu-[_iiiZpvڥtEFFw޺e6W ݻ 1))IK,QRR:+22R]wڴiSzŋgL& 8Pr|}}yfG vJnٲEǎӏ?(I W8%&&iӦ޽5|(++K=zД)SԶm*\\\իWK M/..… ?ĉj֬nf!k%$$QF=zLRc}m+yyy_$Fbԭ[˪ (==] ,Ў;TXX}ꫯV&Mw,+.44XbY޽F\I^<~w=[nUqq38֩SGcǎUqqf͚(Ӯ]uV}ᇺ뮻җꫯ_-I޽F&M~Ӓ%KI&i֭ .k:r䈂'V{w~d:.7|S3f̐$ 2DCU  (++K\s+ݳ.Lz ڽ{ow>|cÆ Ӱa5khʕ?t7kڵeǓ|C~~~N9'Oʕ+%IGV~m۶i*((SO=1c8I>|XÆ e65i$_'O{nM>]w^#mukZ5a_}$;TPPzU2^bպukUÆ e-\Pyyy뮻4p@k׮ReY^{޽{}-[jٲezwTRR3gHiiizկ_?'OW```=WJON'%%9~gˤ_bb+]4RRR:{z9O:Րd}mϙ3DZ%KT?ސds=Nᇎr_| IJիb1gH27onlٲ)Ǎp6_#m:uh"CQn]MHHp1cF|c^s|M79-i;t{ϱtOUm=Wઇnĉ$/)T60uTL0իW&1w,D^U{wM UxxG7nX/Vf͜7mquرC$_}W澸[o1qίr>>>tw;cTcXeGKi˗/WnnI;bMxt+{[k=ztt rԔ^_{5ҥK5lPuT6Qk>}*u]믗I?qD5J확)ˊڳ=ꫯIk?}||ߪEN۷o]PeuϕG97]*]y矗.>|&O\j;Ty$V44==]p_هޝ_|QE=z̙3Ǟ.??i)))GyD^zit~yvءy#I2OZ4qD .>>^ƍyYsСCJMM-SUVo;c߱Ϋ]K_dyz?:8p@e.rss_8.]IHH$^=,ӧO/½e˖e.B[n-IJMMU֭u 7hԩ0`T'u r>t֬Y#Ie=b$5hРLPPˋҊ;w*::Z~$M6N^'G}wL999e.&ZE7oRh1cƸ >f|TTM60 yyyiܸqi6mr.:Jrp;K}VjNא!CԹs ۀQXW.hEU@C׭[~?~y(~9}^S]Ͻޫ5khҥ[ozK2dnF|͕z܄'l_t9\RVU 4_^>? xZ|dggO?ŋ~:tHV6 otW?$K.)70;VMTnKPUKi?|_QQYVԞKO*>x'qn}^V\v\e%Iahƍoѣ6`_߱" Kos7䪪U s6l,yÆ +ҳbVW?hݺu/+))IEEEZrV\?X+V޴yo:u*>T$k̙޼ƍk̘1ݻ5i$ĸ L%I]t)7o;v(VMTnTXXZlq.==HEeiXQP'3Tkw' lCTO<8˳k.Xp :T8|e.N_'))IԻwo}ʣju;4&_ܹ2d ^{M׏?W^yEZf-[ou%InO>q\znŋ5{2Crss]'z )??__~eTlzzD:5Օ8>|eYQ{ݕ\=.b֭*))dR>}jݻw[^鎉]DYk֪U$1ܵcE$V4t:~x떔h֭.ױ?177^ZСc2ݻw+;;}WgټyVfEUϞ=X֦Ms=7nb^v񤜋]N+/سO.s{VckV ,pvÆ X,vԓz///^8۩jnzzN;λ+01,kχ֑#G<|[ޮ];ǽu^V\ٴiV>/p*ۀ}'W|MY,kرg;Ty3޽{:x:iMppcj8f;B~Ak.IFJ[nFS:ͺWz{wTgwNT^=!?toAu966Ve~/=pe޼y:TVZ9ܽw^v۠aիA?󟎿KjNfgg;Vufߗ^zI4sLy\,tU][eu}!!!.)bMUQQm{Μ9~W;V>|ӌ^zW^_*8o/ >ʬӳgO͚5K=z-EGGkĈƍ <̬|MQW맆 ĉzWyf 2D^^^ҥK/___{nZr뮻oh׮]?e˖wy}*Pڷo(3f(66V۷Wjj6mڤoFu֭[{OvL&G:g͟?_'Nиq4i$iQޜ]vi5&S8o<5o\&MpGe˖k׮4i7n;vモbQDD{V)T]qz nwq3Ko+G04|p{jԨnݪ @JLLt$tYm۶MEEEرO>DݻwפIT^=mܸQ+WdaϜ^m~+y. ~aЫW/ǐ%WKEmO>Q111$Э{WgvhS.Pz{{_'OjܹNF~[<.\{駟qhŊʱlz5bUiթnݺ3<#\,Ji.]{iĈ[oXd2n_VqמKOZ.}E}k㼬so|۷+%%EQ~~:t+RK,wܡwyG[ɓyipBm߾]YYY СC5tJ=״hںuվ}{M8QZ:.DebSXXŋKƌM6M_KۢE %''wwA Q)fLM6MӦMs2[_j&''+99YC.TP=jժ1y޽{駟^d t': P.]|Dۚ0aRRR\ߎz쓂DEEˋ<`2^A"p3F;vK/7*99YM4QǎեKtM ?333S={t 5DA" @ H$DA" @ H$DA"3_U:&VGZU۶5th\1oqU}vP 5dHw_'Z+3H)QllFĜZ'4_OڧtJ IDATd$׬Fp Vn^~ݺd9>{X{c |sZ+DO:xAfM5xp C9X')(;7Fd64iRKEE5R>=/LԉZ}cuUM?hP5Ӷm'I}OK@艸L8&i߾ڴr(0[_{;?O3J }:԰B5qbKwJH7$iʔV5FҷiSϑo{8rd3DS*yAEy:|81tK>VCs( JڵJK+$M5mZG=Uw$iuڳFArSz=t vNh s=}l 7v~BԮ]}ݛ4ĵ aauV2??/EDUA7Mn[ngJBBvwo uD6vz Hĉ-u]kd[ 8ɓ{6 p=NFF6vz6L)t"IW9(>?R# h ϔS؃sH&GMU}٤ƍk$=$C(:yy%4IRց @x5j\/ef̘5S(-@ETжm= De =f8O*`F$LW^٪{jٲ7nƍ[NQu,Gk:r$_k֤jȟԹsQllN(IwOhz8I,%$O;@H ,ڲ֮Mux͚kРOg0 b(kǎڰ!M))y*.*$_}4%4.y5 fbQti(T =DA" @ H$D@ d{'@ H$DA" @ H$$o,+)%//eKۿp\|=җ_J{<<)=ԶTHv3}h@ymMd=Ox*_*6T=Sgʹi$րO?N"lsJzl=Ŷ7nݤ>gRBBe۹s()9갪{G:ddQXz-[n$J/(:$KҁۖH. .Dzʂ=m//PGH*Ĝ<$o_aêLѶ:BCi+;l~DirG1}իo tn36*j7j7!ז-mm]g:uoճ}<)麇Q[EeNG:I>\/*$sW׬t5ҠAҲem~5<6yz%ۈŋ$[M/Ι(+4[ضV~ҤI[jʞp2a\G]vxر6L1 ۅj~?]g[ NZP`t}//g.\znUz-E[M{-7-2qrmH=$=k4ۅ׷;ZNh3=lJEnMů<""N͘tJ7 m6.5>k={R|1^7nL=򩧎_vQGrooow9se9=vlD|YgEY^[PM=><,+VV,8P\}&|G!^=~Uɲc^e9&x<.6;^ i4l4[ef S~{Ϟ/uUu-W] |EmHeSsȣ~sQλYʲ,9zg6{T9{ozZZرK/N&Ya0;=[>RF,?tq'UB jw>)%7,Y¢M'0ݞ=}6(x"u`o)bձ __o7ndSL56?mZo; x!6جY3T5kd~{6eLe;7xS[tG-N~|"4=L_g<stjoߋ.boghDR-2h>LzUZƅ|9~}W]qrwuHY}}n G]w?>srQjX.YѣOx1b=l|@̀jҥNrթڨ)|;l a2:}tZ2S+-B$pdYG,`kk=MrəN:)s•lm}t ԔXn!^x/AL6^,X ?!l],(ۮ]X$0p2d_e].6r)̣bϟH 92,\ȜK/eFE/5BxLuP'CȞqFcf㬳'`xE:r6t)3AN%_z2{e\(ٲfˈX+DXرo&S]Hh\2%)W~Bɶ"׻|C'seZΗAVdLk+0sf~4 /AHȌOf Gd.XHMm1g迻Ru,ՙՒēNbnu>Ksy,Xc/> L_vYs!…L)G5E[y_|Ҡw[ۙFߥKGP)&Zs'L 3:7`f$t{)G19lE9u9d)}eZ ϏyBVyBV={ضTchbpgrҚIٷo\$aIkE؀[/çX:2+xuبNmXuVڟ(}A91I(ϩV;yȲ&Zi62 l#G%pew߶r~5d]lЉ"6یY\-[{u=lO/9S|e5{, w!$'ҙxQ\,ir 9b{J^ɝέ[G$O5 qJ.g?Yv]hDp,贻?~DyPm26l(LܓшFr~{[ofKF׊u:6&㙘1c;}5<^/KvmqH'G}MMXFg˗fQuXITbR8x`Jms3[y̩Y8Tv'08aѶS#fΦ0GhjTg]|11XN;Y+_a߼ 34?dEyXbs'"*l/ol^|k X'q|cAo{/[vUJ;]<,`8_z_]"~f.^\ehᇳ6t};k#%.(fO\%+V0C#y$[a{}̐-ٳd4ta W$VJպl!`Nb52b[qkΛbk~?lSD3~lF]x!ףƿ(}[jjdTˁ}_hd-:qdMQ#hdyqAA$0Yy,|,դKDv-sﻏ htuwtp5l딩# "/   &1(ZHAAAHAAAHAAAAA$G!CD   D   D   "&   &5 ($AAA$AAA$AAA$AAA$AAA$AAA1ee 2t: z E<bA{{;i 7d""8hT ˅h4OiYD" C`h4Vo n7L&O|?44^3fP#>  'Q ^G8,@SL:46a0T'*ĸgx$A`0LHD"QSe*DfDl#$tW===Ǿ&ކae,'G;srR}A910(2CKeDA!I2b1.W&X_F0D}}=Z[[IIfD 0,h4l.88 :::`2RAOA$v 24nkD"AɤN! b3 :enl6s:p:AQE&mDBB4*p8FD0uhi1C$IF @ VKKADՙD ݞ1 -f"4!KeAD"^Ñb yN  AєFBJR Vx<1)v(be!ct\aB!V ɤȣe&wQFReg B0hllL@ X,Q`X`=" "H@(tY#I"feg8"p( [ezlzU#+^ނ  |j뭚,bJZ-,"X,]:T: IDATŐH$ja0p8©Y>|$IRtA$L&%8ׇh4@ A`4QWW崡 Ez#~B[zfJA95_/^ BjIFp\8 uuu){<eOrǭ0o޼ Õx0c e-O{{{QNb(Bb0rn73%L$\.ntvvDyn444freD[[[,A@oo/4 9+2Z)PZrN6F@l9###93b19䐬 ?gΜ9iƛpZ2łzULuȉD"yz2~~ ̙3GqdS+Fg#3wdd hnn;shhPMMMIӅa4V$E,XAxނ개6|y桷h4^ͨJ#^/|>vJA95ŢͻE"!%9 @$hZvL&qev``,l`٠ȍdeG<D"Ax7Z \.H łD"p8D$IBgg*rE12kaZj ~̚5ePy^Ȳ AYrC(Svh`4S MχNfhD,C((CgggZ_qxO!"rUlh4ܛGzzz0k,L)X,hhhP]^l6b* Oȏ(pJIw&B!DQ +\Ԡ0^/l6l6[uX.}}}bhhhlF"$IV"6 $"#eD>@M! '1t2dLʴTEWI`4ٙ%E. pCCCY:8$ $ X,}YȔ`iRFepʺӧMEj)S"r:ZViӦ)EԪZb8:%OSV3e%d6c)ϧLkooO;n4#Xet2p*GUZmjkr)GVՠXl:Ŕj44444S3űllNqĒR`ק&)\ZVrZ r$xBdt/j6:_|%9z2)B䲕$f2x dCj2֨{Bd9vMQӔmd[ƧT>\s%dijjBccjM#jPJ{F6F3:LNӦM+*WkE.\ΓZuorb5^}@-Ax3$IGǢCSGƃ^ixXc#`(B$')It9Q?-YlP5ʜo/ ʆd-/K>~k4j{~L9柫am-rMgN'|>DQDWWl6N',Kŝ)$l0]&-AZ[/Z\dzE!hPqr$Ĕm.z ꌰ&`0Xд4 X'1_D:nR4uY,H|>??Y/M׫:E#jQ{'bCCCEQTcەu|j"˲$F:)kjM Iᰀdj53n7Lɔ3Ѩp|6_Gȧc \ʹxy1[{k'_RэBOSÍr)Gtn+D8Vnx<L>il4?A$VhTTĉ24xV,{#1Fz GIoj]"B3&r}n'CFsk)/8^zWh]P圊dN<#%O0488ŢZ=$Grn-8.<jADMdfժGkyB:dix|75`ȲvD"|;(4x4`0()ZKIrfJtEK |e''׺X,Vl22%χ}[5Y{H]""H÷={2fBgt):Ȇ: r+H($@dh46N=KN1A__=\87[bqYnL%'Oz]zX䩦fG4M14ٹrE92d];E.+Mp!bZy'ڠjz!"@сp8I"joo{!-jt:dRn#rVCw+xaxx8c_3mv_y{3LhkkS2Á֪neQN4?A\Dp8  ѡPH` 8}xd2)ݷoA@[[[Y)wU-5ʑK%eV2vb`ƌH:OϯFI F!IZy#ɛ;G9Tf<8 =.Œu_jQo+*$I NѨDՔc__ ֦$EjR) UZ%A'I$ طo`֬Y%I$cHDQk Db<\DiAZD , ({cJd  I$I$ zBOA$S6F 'ޅA9EݜPFVK;8!"L&SE$ ڕ   &/( 9AAA$AAA$AAA$AAA$AAA$AAA$AAAe'AAEa($AAA$AAA$AAA$AAA$AAA$AAA1ee Qkk cddO>(NFG$aƒ+0sLt:j\.DQ444"n7|>, ^"@OOO{ҔZV:D" C`Д9R_EANbzǥ5n7ޢ$IH$e9F1qDKKKIܘu!It:]EAH$ IR[wJ)r>SVm'QR_EANbM;$PAA!I2"햊:V5DQbA]]]JIS' ,}vxx`hmm}Ֆo_ 8`,CѠf`}JAXx:mmm~?ht7o^@uemMp&a ΝuMNܹs+R_,~V>ÁoJy?;0ShYEQT}̙YABL-C[[*RJp)w!ԗbxUCoo/h9^ͨJk^/|>ON"A$NFy "fhtk (v;V+Z-B2ߏYfu===$ Zv& x\I,' V} %ɣ $! H( (I%yRAקD x$JEAqneԽJkχNfhD,S"}}}T"6 :NLQL+F^WFr 9I929~N3oY+U_D. $jb H CH΂rjd2h4"#dl(*bt+lV;>|>L&*J>K)mbAa4F9ŶٌD" I0<#w$O S"Irjnv# fԉ@ d|s:iQ榦&   euBmxRwl%IB<d*^ǫF9sfJ?bXpAllۿ?DQD$!' )͔ZƁ!Ešj`1X,d5y1O:j9n0)*'3)!bj>}z#VƔrLe&ٜV %ԵSh4*APru:M1+:s0??ks2U__XjYdZM$i롘Yj;I˵_2^mn"Uimb(SM&SZiZ%J<ANBҳM2ћӘfsVO$(ՋMMMY${;܈FrӉiӦqjfuT˅jCCC)o\vZc k #Y_ٞM*KXz?]V>M3S=$  F̟?ϪʕQg67lk:}- } >J;md$'ԔlT6#7fʘhJ! BEh4R򵧺t: "`t:aXT3rk3ꆯ-Rc^k4죅`ZSѡP(Ik5ğb(9۪~Pqđ ^e3o!$^udc Qē@rZyD(=l%Qi, 144Q !ʺjXqWѨ||닚 t: )\X |[Qۛx<ʔR1x[,˰lEgFd}|4˂2ۆ~?SVDcDW4Xʲ!%XZϢV+r_5<}QʴJ՗jE$|>f3AHԔx?[Vݎz)u0# p8tH$F($5!56WnRJ{} JĖAN;pX@"!Ez-0uSy2~$ ȝ^GKKKUGf};;;r BJsN|>b1jdpaxx({V\PxOQ3LEg8Q;| {kVPNYP___ӖH$uo|mnW}̳!RRYisPn{}ALDzz“>?AN"1̚5Ki_{ŬYՙ"0b3gΜг &ӳAN"19]DçiZUHoxOBA,db8j'`! j' DQegL,AAN"1iiĝ `0eoEɤښdz  'L1ڽd$Ilhjj K&ӳAJ\CAAJ\C %!   I$   I$   I$   I$   I$   I$   I$   I$   I$   *D@AA}P(HAAAHAAAHAAAHAAA?7]V^O<̙Sg߾}aݻw0>6m*>SkYrvwwOz(u6Y81g<$ mAǔn5׼`P~ '^tuuD"EQMz)_s~tx<Է(5 (aJDB?Hv ǃ6̞={”6VmHYX ?|, 'q!I2n#3fᩧx{<;8\{ M@$ <#4P=R3^Tg8زe ֯_xFEm>puYҗ^&A$NDyd7>S{.X ,xoܹsq%FNp\. |IZlO0  L5}^ONu?|x^UӃ˗/ٳO  ˔$ vG$^{|I\o&^|EGq֭[͖r_lV>>FoN8X֔ `ӦMرcۇ:̝;k׮żyTy?/ F,[ W\qv;vލcܹ8Cʺ믿ח]^lذA  8S`4R}}]|gBss3f̘kז$r900M6a۶mzhii5k֠p5k;0n4 N?tȲgyp衇nZgxo3Pd`ڴi p+{??@gg';8\phrb1Kx뭷000vqt:bb3ᅬ{@ss3/^/<]_Wl޼lƒ%Kp%6k.7ݻaX|\r ⨣RUU{ΝLW_`+֓b۷Ղvс#<@O?4>~,YsϟOV)Aʗ\rIټy|-nYզ]{Μ9'|\+JʭRnݺ677'(oZ[[qYgÎ;CCC8/3,Z;v?H$+VCoo/^{5◿%|Ɍ{_ Fz(>f|e˖a޽{z< >c83b׮]x7c[V5mۆ}kB8h"ݻ/qW#+JVjŭފ_Xz5V\ ÁW_}ׇ.(}ug̜9~:?[nŅ^XL;wy'ǪUp8uVlݺVʧG)>Q__^z {Œ%Kp)=zRZrB{aܹFl߾>,ᰲlܙ2AI,},˲<22#x o]9ӣJ$; rWWWhG!:묒K,QFǎ~8pdW$1+ID}b1`0u֥eU $Z~%xQGɽ)w%ϙ3G O>]bEGyTdƍ)ǽ^|ꩧ*iCFQ>sVH$l6۷oOoҶ޴rd|W(/ZH /\P޻woayŊJUыgh4wߝ;C9[W_z S~cz^9HlZeE]?w}wJ]d$ҁry˲,YF _>X9*lm㥣ܯȂ /(ǯ* Q$"ϤN\HHFE\y|}ty˗ci_uUʿݫʽ>#WU̚5+d7ވ5k֠k}رcN'^uqiQ.sLSJGWWl63h0vZ={*Z΍7" B'ĴiRvax衇A/BIr7/<建:lڴIY__0o<<3ie+קE_N9N:)cr_Xoݺ/})T쎎ӟTujooW f{Y2^wuX,{ 7$_~Y1fssY[ShjI9_mDw^ر~VHZtiuQϰo߾pdݻ`O{2rem7|13fG_uȕqs"m .fC(*$ r;#^+]CUWo:3rfsr/'*A9yzO?,7߼R{tIxq 7W^+8Cpy+itg_cʕhjjz^PHҚk 8l٢Do2{,̙Ssu_-[7 }]k(ZN^3gy}>'q9'{WW?l1Oʙ/"^|żE1HJ7{lo+===b3fd=/ױ|:F};Ro ؾ};.y. A9YA7هyqvw<<ߗaPV"bk*ͺuflٲ[l֭[_??p}?y||c ܹS1\|gظqc^'q9Gm5MM:ApW}…Xd .\KbϞ=_r5v ew*1L5 (`B"`(#W (}&sRTt+tT;TSO*m㡣sNaE h A$VIk/9==$Aߟx}}=֭[uA$رO?46lߏO.(%˲r|#O<·X|9^}՜444'x%Q>~_(F~r-i#Ů9-s.WJx>0ѬZzϰb }ݪ^zYq,gφ^ 8p@wJ>ݫT}TRޕԓdh\wu?>nZSH$\ӟd4Zؼy3ng?Ys ”[N$ͩ۶m+ى عsgD.6pԼ n0{l,[k ߏwy~z>Ӣ#,:6k,ݻ~r,<3o룒򮤞'㡣TwxG!2,S jIݴU:~N;mteMv &O9x`s6lؐO#ڰaQs^doʕ+)V;!FA%g,h4r,⦛n–-[W֭C]]K.I˲m6es[ߏ'|kk4n\|J&Uߞ2pUZrC-ygr+'PJZBs׮]o&+WD$Gn)m݆ŋcE%h"Lh4Oq=5 Ew/b1i?OKK ?x;x_3D$믿_{.y Mo6zzzpG`8C?>/N0/g}@gq֬Y?MFtRl߾-n'ŬP}\vexgk.s1KQ__]vᥗ^¾}dر===O~kbŪ=.R|gXt)N=T,X| |MD"L&lܸ=Z[[pVY?poQ. KA?(%(00.*"" +B*?JD .q7g``]Yz|:{8|_ghh(]]]rO<){]tEY~}-Z466f޼y馛222-[) ٰaC9YlYtwwg̙2cƌ|WKmmmnW7xc{Oؘo=^ziח|G+?\|;G)ё7x#uuuП'ڷo'ӓÇ*3k֬s=ߟm۶ell,W]uUoߞcޣT*9 |WmmmYv\p¼y2<<͛7zMMMy䑼ڟ3fd۶mikkP6o\~ӧgƍYvm܏x?+y饗ߟh۸qcR,3::_~9',t-B!O>dy&1`tvvG?]vs]CCC^qRW%\wy'̦M9ޞ/bܑ$+WLXSO=[C=z+~atǻ5駟Ϧ;[I%No}zzzz&gёo6SLٳdɒl7|ק*w}wᳵ?s>fdd$7o^κWbŊYre,Xݻwgtt46mʾ}rС,Ydʎ;_gxx8 9sfZ[[39qQ.[nS]]YfH]]iwTJWWWٓu][288X~͏?x;tƻ3;vbgy'' KIDATSɾMc{㏳|Y&K۳o߾ŋp ÇG$2 J444$I[ѳ*u嗧▉篑ȅ+R)W_}?޳e˖w}oVs=f͚,_܀ p|q:_|Woo@ Ю]t,[,q4jnn[TJTJbUn@$YĹs禪ꌾJfԩȝwޙ/2kFGG{455;SLɊ+ U[[{Op+h p466fÆ Ytivܙ;wX]~lA֜" X̙  ΈST.pϟUVeϞ=̟+2zk\s5S2229s椵`k`p D\n Z0.fDD""H@$ D΁jCWpdJI@$ DD""H@$ DD""H@$ D&jCWpdJI@$ DD""H@$ DD""H@$ D&jCWpdJI@$ 8$DL""H@$ DD""H@$ DD"jCWpdJI@$ DD""H@$ DD""H@$ D&jCWpdJI@$ DD""H@$ DD""H@$p60 b&HܓXpdJI@$ DD""H@$ DD""H@$ D&jCWpdJI@$ DD""H@$ DD""H@$ DD""H@$ DHRm`r+3H@$p=ŕIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Hannover_page_0.png000066400000000000000000001534061420322575300275460ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxTUL&ɤ7RI)J@QeE+ ." t]AY_um XVPQ  $3%?Fn2$$$!xO(`PKqHD/̞8Uq\ɂ)SĉXt r܌gGPY:ՀСPbѢXF:TɜGDDDDDN67mT"AԢ=gA"U#5E:H@\ghBBX&LGb7ƌDSc N-KX(i J󈈈)]ԚhI3C*A"濉ahuuGr ֭ cјys.=Xĉ:o<`0ťu)df#"""""$u dbP(azjjzlP^CR/|a4ZkY| pC> BB䨫3B1v-+JJHJe#"""""$v @p6oΆd s9^y%f9_A6ٳjaH$~apw"+^//> ,۶lVڄd?<"""""rJNS(pa,6nĂ)psB1aΜh<3 ^X]QScKw qq`tiW2pH$b&,X0>>2<"""""rJ:3mhA~ JxzzeQUQQJ{U /O ɂH'C2 A"11H$""""""DDDDDD :ӽB=pm~.aüpMa%mgXd!,Y($"""""z4Sڹ^@L fF5M*f%%:Qb }tXĨ "tbw3bjxMrhKz.mKW Qt\:Ap]QHL,_~Ec˖<45Yz(8y^^2̞~ׇ!.N0-쳳HIBc11*}wVg塬L\I0gN^{- 99 (,ԠL #X0JXq fo ӈ -س :`GFDDDDDtX5&3x"WBTSZiĨpQZ3`4ZrH,X0_~Y:4557kݴ)ǏᡇnhQ_o@MQnhsO4v,Ɓch.GdƮ]psEEZf@I|pgƳ&A$gB6a͚$~{$/Gff}/XMbr?ƎEH0yr+^o-MLّZˉ+ gˬlX& ڵ GSqH50,2% (__WA.K 7۞ۈeˎ5.Ksr2} j@"|Ss!0m |ujj ڷf$""""$tSJJHI3j{u4qq DK_PH$¡CHMm^D"FU_V< 1c|!t>__9f>R o{9 ^^¶"(NQ -+^{- G`($$x["ҵ t:3d2֮.."[t:3R$u :q?""%Xn4jؼ9~#}:^^.<9t--"h߈mӀjlܘ,Ծ9p9l m%%:X,ͽa2Y1}z(h*5 AAn(+ӡ\$_$%hײ] BGFDDDDDqM}t:3V+t:[3MMflV0-m.k|m<4v0,Z.+dl@ NY0H$Gs3Q}#""""" ]IݥZLCt D"""""ԂDjM(+vC`D""""" JKuv]wEapo{т>;*46wGa`%`7/[䡩ɂիG17Qק5"-v*i3 i!<ZI|pgƳ&A$gB6a͚$~{$/GffMN"IROTl?^úuKG}P\oFL wŜDDDDDD {+fώ硲邗3} ƪ+L&ܹuŴi.EMAH?kV$ƍED;@7U lxX{"$D ]#Ge$&zaHũh@:FL+;9X,*PH |U,Aaü#e^()$h pP5RSBD*9.Γ9'Q,a8qWtbD"y/C&O*ә! bqĉhJh@q('4TnÇAH^^v4K=@ui dbP(!Mjjܘkh;|sݥj`F"A&#5Jڎ|y>ZJddb@9ݰys6L& V+09 \N^EkӛX]o)U0,6-.*ChAK`ّ2D%sXlܘ R&Fcœ9wg!""""KY/Ɗ!">>YfEEJK SLт|54"#91 uR" A">11H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1HՏcʔ6)=k#Gf3LI㿷~ؾ}铘5k2k_^B¢EON.:Ka4"#GՕhj]yUnXe("""""bUڙ=, Hb/^bq*RۛFCttskNNh̙!''Kd7KCrr8&L67seLży7"))W_?~CrrƎ PT/|3EDDDDDZ$j4jdeeRybР0XVdggBoZ-v.x0X] ֽjٙ07FCcǐ>h4x/?sg@&sKQXxAA!?)s1Hø+ZMY׿6u8C߱gO= kVcֽ۸+L#GRmؚn_L 3gށP*UGtt,s1H+MH$ԩ DDD "\{sBBH!@n')x{ "xxx".n8rrN1Ğ Hinzm~cG*{Y7vs>֯ ?~?lyϧk_?[ Ōc'"96ӻʱad<\vY\\djX CDDDDD(3<ōh3(kll 1|NXWW'/CC,v\iqd:F=FBrR\LDDDDDFH D""""""bHDDDDDD DNiӒ0e0TWWkȑN{pΝ۷lƔ) 8~w$"""""bؑ%%EΝ_FiNuu%t~/0r8+AbGsL'\yT|Ng6ގX,x5h@Օؿ'̜yV=z7X)\ye,F Ĝ9q1p뭓PQQ&_)YL nر923g^~I~qA,Z#iF7F$%oY&#--݈O3/Cffz /P㪫᪫C.cǎ/M3_ڄ7FTUc„IʕKW_}{Xɒ{ժ曟c˖=HLLO=oǶmp +Aynll /O>ل\m=Z#aٲ5LtNm%$n۶ӧ  ;&M}yim_@LL{5T^ؽ{`8v>-X/_Paӧ߂s#ƌ #1k\T LzO!!xH$(*jl>Fq&neMҥ+0v孾693io,4??G8}$31dH]SN@,c׮oۚ7NꂒBoV}^\{L̜y2x19s۷oEFQٳv%$W(!rr0>>~qqjm]""""""g+5۶} ػ{=*osH ..2HRH$o1bljf.Y&!<< =j=r5\;^js""""""g+5۶mfͿ?_}V,Y0 ;Axxv}h@UU9V\+6`Ƶغ}v\@Za6sAХ "w[a2Ś*TVwz""""""g5QPp7V͘1 EEHKK>|DF`ժ0 Zˏd=0LƄ ܏}^x(++ X,Po6Ov4lܸVf /N@DDDDD4 m>lݕWN՘׿T$'G+bժx; }c7tc &cq+p뭓0}1nn {Mn_ ֮} ~&L Wtz DDDDDD@Ygu뛐uuHH?NkXp!t$&&(*ĉWwjuu58q1dH<= ]R\LDDDDD3H$DDDDDԷ<DDDDDD Za[E"'c0XP]eB&&VhqÅMA5v,E" (򏧧 R@)bEyy..RSS^߹]]PdJ{'ә^^2IxePOZ2~J$"yqD"j[FF-,Hee=eY?>u"_P(طozoӑ#Xy8?./w UP:1//o۶>̌ˏС.Drn==_zv ɵj(pC%}nzԓ4عOiW",5 ~[A|5><g_? "&ɸI1ta2lJ) RtLtI\qE||\y0O\BݻXsM==e ldEYZIfXiS6F ~8'e1H$r~IӬXqTh4v6lGjh0bÆx<'j]֓N >aR{/_~Y ~A.OG#fD4 )@-[U_~)AKRpzj8/!LZO>9ev[VNIHJfD W`' >js30jTs w`% "jր" M #4]:+,+ 5C,BC/!Y,VQVք(&zc=b EEZdb*z=H'LUhL(/²e>քB ps_"-l(RJKXA5# IDAT:|b^3$;Vhh0*]9U\EYfv{4mDM. sJe3Ab'6H~UUz( ˁ޼A"9r&RSzE:5u]:6mΝ%Qr-; -~z8 Q:Yӧ  łC{e)ThM"p=zX8?uk>O=Zlڔ* Cp1pww[`7૯ ]`yg&Lo;yo Ggh7=6  Ansׇkyo ׶^-u?D^ooE=?66ݮO?&N [mO CB)[oFNTbao}_~Yz]#HH(eAÇchM}_~$j>ý<ˏwv,Zm_9spu!ZV_ߓcsSKܮ]%_q`e.-+v*M|U['mu3l3w[o W&?^k՚^p34x ̙zl5p￟3 =Ƿa֬#5k܎ +ؿUz}rO8y)rWBNn ;))X V8f ɻKbV":U;_?$,ׯݖǣeْQ'L|jJKcqVH_[kh}eej5iG,SX4?X#3*8̼y:/{ *(ǵЉ;vD;܇/os3G裩mtO5DÇ[a2Y0t UUzU'٧~:ͮKnZ2F .Sx(LKlES>k v}[wʥUEo'|a.>,OINgBff=јGS&mG;h̙Fn/w?WႫ Bx;t:3ѣ5Z=<ع^x<0v/(*`߾r6+eCw~w<V+邒-)jJKuKO^ ͻ11AݻKa6?iP+K.6-HIi~1 q3Ξں5{A"a*U"Qkצ#8 O7U3B0|7r[]^R6V[.y:7}4U<1z/\]%8s}ʱ|X~E==}=D"rRU'sDOaӦl3״zjMXp32D5ka:,_~VUޥ}dunݓA" asq9VinaP*o-}:3^w<^{P3' K$`ɒ$&z|!IK_wy9jι!m8?o)tkj޸zǝA u.м{P%JJlM'y'g˻|ew;p?aٲȨ+ۖ/ѩ:*b`%A햷C4籱c}1zoirxmecOAb1}zB!Ž6qtCwL hHHp5((Odbi#-ySfDUtsDp #q]Q(\ye`mӈ޸HfK8vFE4HѩsD =Z4_wޙwޙiN/{`p( qׂ3ݞƍ1cFhcW;˵EZ^al2]t)uׅ q3ܓA" aaZT{F*]4xD_'Fύsg=v+VÁLכz(N\1 ]wVffs¸8N_ UUGU\'GTcc]zveVcWW "#ZpּL //ÿXO\}|l _#籫-uVoAbu&sqc2eMb_ߓi`a5DͿ6|-hsTy1]b(,\ԎEر2=&cH֙O>; hNhز X,j kjsf+kۈ 4((РP#Y݊ ]a`]pׂٛݶxSy쪋uln*?w2]a7L hpu^ce&Ս]^FˮXOHJN /d 5`W߫f_/3yr&w֯t-W ~~Bμw[}{Qc uёncE׹c(]o\ Κw/Σecwʠ]IyK-,L lH,QQ\tknoDF*޽er8Qg7xee{/?P_ש,kٲD:TF#ظ1˗p=i4<7/iq[5#>JDF*˝ZnGyW,nPֹrѯgͻ les_Aݨ(-k,KݥNsO&DD`olnκ ͋y1jM8vRz,)bcx+z},9__WHS*>_w]h_#*]JSvdNhnyQܹ15[hT[n >oݚcjLkXB72n޾tn #a~?X'ncP|65lVxQ̻]N^2\`y6QMK7sf2YzuLJcGsٳ#[u&;1H$O '8uX,VVhO.<\OD~~GZg|婅JJx,ZtPx0>C.yJEx晑pd޼ޫ3,xx{0&WR욚o^x S߹7_o] wXp^esoA ?Fc(.n~ 䓳xXJ>_::p~@Sf xv):. 睜I$nիGaѢn X,HWhZ5j@ߑ`7wڄ^:^:)<_#U材aü0{v$>li$X~,-:Z  |4|4d21FK_mm <3))=]"DCBs#}3#0h1d pYŊ"-|[k˚3*4kkӞz:[P}!< 7O =Q]ye ƍLIM7큟+d2 JJiB0z֭;kҤ@X,Eʪe/8͡y'ĚD"6We93WsZ#1wn46mooـY#ۍ-xnZ>dK$"̘wߝc;ݻС*l4UG }PHxq<$aHXq՘fm7ǂCqu!vZencW͜ ƶexX|ꚻ?WڛBOY"-':Xt@ͽY"]ԪS* DܹXzӏ'bHuWݶM.kn;;9a̬cOCde09|5v.CFF-%pGx^;hրݻKFi:T2 @h\l7,BV.GNN#jkpu @qpUANRRw!/O"-r BC4)W^e6[GgЄmѢ{Ng?_+PVB!ATn9\hc϶֯(BOݟ~*WI/DzevcѥW6J_ jkvEl 3f:}3Ӷ=w";55T.Tb`B.N A"%﮻~AVm>l7>QO0ml5 H$\.AHoHHu$"<lY_zig4 R)uԌ׃DHzjBFFF􆯯EXJ储(%"+lFcB~O78Ǎꪠ6{7%"")˸ 6 nn=解{EuK| D"A}롇bV=hj1l^$܏'z&2Dxdkh ^J#7Z n2DՊCww&UvȨCC  ^.-YcjPREM+WÆ '77 Q_o.]قzW5@6ڽei0O$'B. f?^__W$'aP (/uј4(%ݥsETᲉ+6m7*hĉu8|.@4Hٳ#yu&ш_~>[,@BЭNgFY~B*PYB!jŠAnP(pwB*;֓# (RzlDDDV‚CkW (.B5Kpw$'c6&"" MbնjEEEN b&D@EE*+Dhj (R>\7 HfmaWT/ y|אCJb r  BsHԪ3 9T*H$"$'!!&N5 %6ٕhl""""""j'E"d2 Z[mjEX]&(t:~~raXqDΞUۧU`d8Zh @KmBPdP(8u^˰T:XZmBZZ-v" PYGhE^khDDDDDDy̬T JEHHu H"V R)2>\ 77 ,pqa(D@XyyjTT4b"4떢X 8U&"""""efjFRd=ն.."xzu.јәT ;Z3B"bv(4]I)DbHDDDDD_#""""""DDDDDD $D""""""bHDDDDDD A"YhZPYY.56Ȇ45V7t;FF*+aZ:. Z9z]jjf܃3ws}!:L+BڜF@NN0m3 B@G0slْsD4`ڴp㍻a4Z~=]A{PTW21oޯ3<)Sw8ܱsWCt1c z3\]%&`߾Nr -.@nbFMM 1f&.G!76մa ;@v:m}} &նfEEyPQPpc^A{w"00N@``0G$zѶ?by VES?="#qixy 11 e/NLGpp4^4n23כUDVi db h&bVi~;xO<8om͟!Q.`]B.&QδV\\VC"44" e7l6o/|lX5uuBpEt"'NX,zz^/QO5$l"-sD9 CBW#%ǷJ{.T*BSVgBZZۈ&ee:TB*aܸ*W&xyo ۅ=p婑^<5JJ!0 \p61-8|pelwL//bbT.=u`#lj~Z%ojjؽPrň޸ (o'OaϞ2k!1t ]676ak?~lM;Mص99 hj2#( _q3ysԝc[+Xwko\c2,r>\j=\C.mFc qqmz^=뭭mn?lT*XPAqnT;UނP:^ʼVXUGJJBrW텔t՝|ܙr('?PB \\Ĉ\8 Qhy۝cO ;Mj@uuCԤdwQQ{^`(b{E&j,1^I4%xb4^c$FcT X#406PDC"X?6;.eY,79Ӟ2󛧌y ϴ (Z_ٲ abb}}=t*ޕ EHI]=P\\/б33s;CCmtj;wrqvE(DC'#>YYTuui)#b0s#`apәR/]JǥK07Ņ #厥+Vl:68bq56l 'Mر#&ʕ/{oqաIIQ>5usvv9/]/=zXPlJh+aȐ /p\O?cZT(ձՕi? 2~~X>

8~Di򲆑6]?BffVըI8}!tt4Ѷdn7l<̲À6h|9b|IA^6Ν\O[4@߾ְCTT""r-4KKƖ-mXY#::"DE_AjJ5G}jHzq}||_QZZCCm ۛ]*L&m0'OɓR<|X"ssI ɽ oL鋏/c(/B^V֭23pz&22pd*+ݕWqNnn-0c#_BRR!ڴ1€ꛀ*eʵvP(u6E@@*Vr\ooƗ_F}{_k Q!==5Qs{ְo]+p((ȇESgF0`3^3A }}C==jk`1(((.eX[ ctqG.lgc%055CQQ!ajj²HzĞ=QQ DiW==-xzZL\!$6vm hjN з$H#&&_fy@~<<{$%Ta/n4FW+:ZR{[+ͯ~Ѯ7yqDFJnMk'w%h$u>;V  Mڗy"듺1uI7\\еu.O[ݸ%Mi=>:~r(Y>[V5ft}燱DќtsכhJ٪Zє(utV;6MR=sp"WP^VFrr! *`j#t5Lf&M`kktr]#;\ސ񈪨 6u[^^K_3q“1+qsOzS,ogop;w6EJJ=<,&pumt=GGch -͔.ӧLKyոp-@QQ%bc!WCWW* +@27Mj٪ZєsW}yyuO1HT(3Sb䢲сX\,vg5ww \tlIW'E{$3Ia܃&U=@y1=(b"$mav=y%uv{DֆlųZYA__ eeỤW\_suk#W/+.^Ia̭4Hlz)Gdd0W/+cRn=RQeuUy_+KVS34zΝ{pph[V޽L` jj$OH*++CʾSP,.i˓hTTQVVLTT[Q!Fii)3!1JGvv&KqOi0MhHhu(.^ƇvQM:_)B=ެ @ԞY<>FIٍ )5^tLVaa/Gi ׹~CM BfQ˗3pt<ǬR~[=YzSy^+״uݿ_ۦW ьMѥ;zBVVuvpw^DѶmtC߾!6.@__u-е:wv!\]ťXl&TU$zy,ka'7iBcdS2Z3jlI+T[XR7><v ƍ뮽! zzCRVS'Z VE"%3g^ж pF6˫k=dZUƄ qdnoGKXY!**BvM98|8ii Dxxm۷s#?V}{,X;bqjL EVCttpׯ ƌoR^5%^T71瘶]GJJ&OAn-EExQrhh_|]jBn[ TBEE{ |nZ 3ϗ\{Li֭uM)[U/ "[##mȵ6z$6 Х{ZZ011AvvPVV*hi4+ZW[[%FTKϞVBXW+" e-Fh&\Dqq%vG~ʖmSyh{hh6C^Xs&eoo5k܅}Y7hȑ?ܘ|'óDX;p$&ڵLeFǪU0aE=o^Gj㐞^S䂙˻%G/_s۷uQx7oft}ҥ]0dHKjeMT}}-t"^,qÿB6m0~'Zu112c4550c#,QmM)[U/c;8{R_;v)mӈSi8|X+W2ZMM th!C`j@2A`ChjjZ%%|911(*.Z::u8HK+FHBKK:`p;Թ^uu BBґPrXYa7#$D"HCLyՔ<<,{w?W? !@(!C씾y/7lJ6ZzzCHWqv-r¼yz}+zEĆFAAtO?χ.1H$""zY<$S]A"QsiCCCffJ>oҺDDDDDD<4DDDDDD $&LLt`hȉ>H `b&Ңf'!"""""u# """"""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$"jÆ pttl۷_q?x@8߽{W<++۝2e }皞WbĈCv U֧~*䁛***TOR_hj$"j.""-77)))^weepܕbXDHIIA~~sKKBBR᳚UQQݻw#;;[;vJIMDD |^;W(--N:޽{COOOm &WoHD H.H9s+=z4{Dڽs6lXu@˖-1|p8p())!+:&="ZjddԤɓӧcƌbs""g%.+jr IDAT//aaa#F@SSdYYBCCTڪC:twEII ڴiѣGcذaШXp!C+̍7o!)) pww̙3akkHOODZcƦA"ݻѣG 7̊ӥ ܿ_ƭ[bʕ2͛ѿ:tu˃D"r_[nۤ|عs'>#}nmm;wbҤI |4]...L4 {XXXk׮FRRw| [̟?Et8uTٳ8z({F-""#F@qq1ok׮HLLĉ' {K,~gݻX~= a{YYY׿%?}ߊ+ W^3f ,,,?~駟Э[7a;Zr%|||0n8=&&& ?~ӧݻj~-]]]899{ cuA"Uuuձ>&&&ׯO?0a66cǎErr2,XDbر;v,ϟ{}JyxATUUACCCÆ % gFqq1\\\pio^ԩSqEX&MB֭ѺukŜ9s_cҤIBxbdddgϞXjb1~9s/|_bȐ!r L6m¦MG ;prrš5kT+:GUUVZ7xLLD*N\CDDJѣG7O7;v@yy9+ IX BkYc^r̛7sQi{EQQ444+8;;cǎ$c.O8j:p@mV\[[[z%<|Qq=hjjb޽2"XZZ055EII v-|7{l먬Ĝ9sPQQ!^ ###crǣɓ't[VS&@$^_:tC 3DD H팍lTqxf͒> 9^{Fo'`ɒ%J?T >\nѣ Wk͛B>kԩB>KܹVVVs>#,\In[;wFnn.rssEPiٲЕW:.DuHUnJDD QXXBd+1#FPi=&ӧ\\\`ddb? p򗦐N ==].]fffχ6eJ:3"Җdmmm)S`۶m$365¹spȑzر%WC TI3D""\CXڵý{}iЧURnHftqqsHԻܳAɓ'EE&O ooo.իW# E6TSLD ^)ʺɕ?nīV3+t ;,,efKUUI+w>K̳=իW`ӦM ׯԩSqq!8rqqjcҥuGc*u֏ƾDi&"bHDDHs;;;Ͳړ$''Rz_S/Ev5NRUU#==~~~ ;vX :Ti`WÁs"77NNNÖ-[oKny!XZlVX!*w6wϋH3Qmִ:}e~g;OKKKaBg_^ݻw=vqƍ:%""B&MUYY)aРAptt?CCCaO#=g)k׮رcB~? 믿j̝;eeerH-nٲEaڭ>/"DD Yڗp]v)]_ڢw^agC$ 7p@ەNߪm֭[ 9q0OQ *Ο?/o̙.[o c}ΝS:///Gɓex|'m۶e˖񁹹9m+''|*:ܜ>/*DD N555rJ/aځtڶlRg ŋUO.w{n&LP)}K,b֭[Ҷ̙333!X{vψ,ZQ4cWyQi&"D""R  hƍéSHf0`._۷#!!cǎEii).\ .7˗ںvu>ٳgѵkW 6 ZBxx8.\3fLZ9r$Ν_~prragg+W֭[044Ԩm[YYaǎx OOO 6 ;wƝ;wpEBOO{U=%%%B ssz)SuVD"cucልE.]>} ??ӡ___!Xꫯsss2ۜ7oC}(((_||Muyi&"fëƌU]]DEE!==-[7zmddd㈉AMM ѷo_t]my} 99puuŔ)SWB"""F]]W|b1Ν;W"''prr¸qㄖ@uILLę3gMMMaҤI y &^{%˚f"b A"N\CDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$"""""EY@DDb׮]rÇG۶mQ,/Ċ+ТE ŋKR6J-Z se燸8[^ 11y5̆Wz]r Páya&={{puuaii7o]v ]n֮] `8p ._ Z<|޽EEE022ze-e9i$>}KMH)SÇ_DDvލ:ԩS_4aĉB O=hܿ .DVVهRǏqhhhHi?~<,Y‹4 EDD ɴv'OƘ1cp)cȐ!̬WLQQݽDhٲǎCMM p5fr#̛7@D eff7bРAXn\@ܽ{VVVx-´sNtÇ---xyya֖y^^^9s& Ο?̟?Ǐ/-ZÇ# O9s" .ĥK  ΝC~~>  @SS~~~ EVVŋ1ipႰ۷ر#-Z;oLɓ'$`ȑP]]-nIsx `xw[oٳ(,, ˗xm6!66999?>*++qa#..٘0aN8! MիWcpuuX,ƽ{```7nk׮JTayb̝;~~~Av퐔*|ؼy3`…G~~>```p8::*ܮtLbpp0,X2<~XnRSS{n1 -úhoj*t=BFF pMtEhj75m2e 1={69###j III000/&N(ǏGEEZj---oVKDHDD*i߾=#sj*x{{###C6m?oFfÇ#77vvvjPzX[[ =z4믿FV (56Xbw.|`hkk*dž `ii} 3ZYYƆ \SNEMM 9"#Gggg5 Yv-u&… !g-&URRM66m^w˗/GAAPQQtƍѻwo^A"=_-Z4hQUU%^Czz͵%F)Mmmm̘1%%%,YخjDFF*ٗ7Ƴ*iaÆ_WWWWD"D"L0r|~2wuuE.]pA3鬦uvJ*2tP<P,T-{uM*>>HLLT $σ*i &m,//WtBfFmLxa|'8|0u&LR*eH}yjY4&%mwYDGG8}4_| 6nȋ1H$"c(.. hݺ5`hhzKnXfZ$uwcǎ(**–-[0/!! UҮnҖXƢEj9СC5k^/Rϳ wY4Gڤ@Q~||<{L<}Avv6///M6arݏcQn݊/XtDSF`` ߿/|vv6|^RR"3+t˃X,F=Z_RҮnfff޽;N>-tr "##UjRfԩĆ j>IIIpIOݕA"ERR8 ]x?>&ɓ'!1}toC A\\o.7l2,[ ...Fll,֮]E ? X!CNNNz*aii7wiPv |000^TM{C5xG}A$aܸqСf̘MMM9sFxՈ:t  e2jxi{wi&cРApttĢECAGG_ajjŋ :t~OOO"FD_bbj &#sX)\ Xj 2puuEpp0]]]mڴfzz:BCCxzzBKK x"u>0m IDAT}4޽K.3fh J{c5xd899gϞ066~1e2jxi{ nܸH''' 0@ Ajj*w$D S;H$"" D""""""ǾDDOy%10I$"""""ucwS""""""bHDDDDDD A"=111Xj~wTWWcժU~f͚:/^c¦M#77>}VڵkQ]]pGbժU>>>g&Q}8q+ĉ8q">#lڴI2UUUֆ3bbbTϤIpiTTTyE"гgO?c*//+߿KKKܼyڵkкΈ:t2fPVV==zݫW/!!!nՇ-DD?~<,YcXX&N˗/cpBdee58@y&`gg@ZFn$"3o< Z_lݺ;;v@WWDD p$&&b };bѢEرl`` d;w.LMMe[n2dyXXq]XYY_7444eΟ?̟?Ǐ/-ZÇ#%%vB\\tttꊅ B1@@@N> 8s D"p]L}4hz'N@JJ yhB8#""< 0sLTIwܽ{///̝;W.-uՍg˽v>6䘉^ D"z4eLիWcpuuX,ƽ{```7nk׮)S ظq#VX}wޑ׊+qFfhii)))Ř4itsݻǣZ`kk۷oe˖roΞ=B@OO۶mÌ3W_aʕ2bϞ=ҭX,ܹskIII‡~͛7.\cezy9 .Ď;pY;SNšCdU6&P]]}"44ThlLz &L7oBOO666HKKÈ#JaLʕ{ce1DDƍ[n!::۶mCii)vڥpӧCCCG7ܹsXj8dggcڴi8~83gmۆǏcΜ9Xx1LMMG!55[nEzz:mۦ4m/`׮]ěo sss=zTfr;v =z3@;w'OFnn.!0h lٲEh='7oFfff"8po :u ߐ:t?>6n܈޽{7*ޝ՜S!) eJe5 3c̘%K-KVȔJmG9sM9wExxӧ&2*?Fa +|=qQ#G";;ǎ+ueN:aŊ8}4vލ+W"881n8|PU}uӠA?ɓrH ׯ[An:ySl)̃3D""b'HթSmƏ<8qBw >(,,444зo_!**Jj߻@vp-| hkkcѢEprr*wzgD(X1Rˌakk _'N ##&M{ΥrZ<ѳgO̙3 fϞKsΜ9pww+**ݻwe{Hnkȑ#Ys&"bHDD$,7RWWmСCAj-*((e$*SSSݺukCؼy3иqcL8sOKKӧ1x`mDDWlYYYйIF5]v- ?IzE$$$(ܾy-[ ==u/"w'OĬYЫW/ԯ_p䣩25554o\vG=!""t+,,Tdda s!##nBll,~Gq 1ydjڴ_K.ƍ7p)\|Ǿ}h"Z\.龹c<}Ty,]M%-\rKOȠ(III8w 0h AAA>:?\aʛ{ddd`׮]2 F$m/D=.5myTz999ri)l(Rs&"bHDDomu@lSܹs8u.]mmm|Grhii|.S|Rj )) 4 lll;;裏c>|gϞ^v,yH>oذaiRǔ)S믿,z~Aby+\z-v233vZXZZ͛RAdъ c̘1R222UA~䩬s&"LnJDDJcff}}}\xݓ a޽z#Gnݺطo9cNJ-DK;;;>}?6)) 1cFǸw1sL۵kr= uV\|}QZ4h+++:u Ϟ=Zvuܽ{-U...r;88QÏ?Gpqqk0m4>>Յ,_|lٲr))) x ѭ[7֘y^\\\\4tPSSCxx8йsgѣBĭ[PPP^z)9&3DbHD7n< BDD 0ё#G#>>HHH(1_> 11ݻwxzzLɓwF߾}y+1b۷a``PSѢErmӧOQPP@-M6,<,˗/Gpp0 MM2mflܸQr4offfǸq㠢k)))K`bbR6#FGaժU5:}6oތ^z͍OܓǏ#22-[D6mQm޽+ʪ2H$zc…8t6l@Νe[|9u`t4n-[),,DddXY)[vvl[QҞ'waaaOgAAIWVӑ*~Gصk/a)VDXXAAC})))î*'+yf剟kjjb̙X|96lmߑ,~EaRHoOK.ؽ{7РAXYYOj}||`mmÇ+xuh"k֬ykmL2Үuw9[@@\\\ ###]ϟ?Gvv6rrrիW999OqUVR";;uŋ-- kpssۺu+k0yr5;}48/&=YRR,--"//h߾=ttt?]t %AI7 99ر#tuuEՕA"KLhhh`ݺuG@@SSSbڴixԶgϞEfff&Lպukf;k׮G~~>7nԯ_/_Ɨ_~ ccc@]]Zq 顰K.ebyRpttD~P^ k„ 2ӦMo\v f3gܛw=YY>S<ZZZ￑"==;v쀦&={ӧ`وCpp0bcc1sL:ċ ㏘;wԻ(8q*I:uSױo>4o3I … 1cƠC mժ/^ ~:RRRTittt*8ضm7o2ĉx,X{ ݓeffɓo2e -Z8v̫6=WYׯ_mmmn[[[^3"7* g]cǎpppٳgqr?##ӧO v)phx4ppp////8q000\]]~s˗/ƍ8|0={t 'O+)77'O˗&M... _J+W@8pO9 =z___}e2ʓaaa["bbbYbߔ 6m/^]eeaaSSS1aׯۿI<VZ?M髬ˊ5ݻ(**M|?b",, 0uTTTT駟!!!x8*ved $m…Դf͚%ZhQϘ1C ̚5KsWWW̟ +~vYM4ʝsΉ8wԲ.((fΜ)M6߿_4I r׭_uV)ՅBavvvvotɓ۩ӧOٮl_ rahh(9rDf7M뛤:?.S+**֭+lll }g޽+OzÆ 2/M/"dff  _~2xb0o?*6&&Fܰao`K"UF::?0`hkkԩS@ll,&LWJ,Y7oưa0h ԫWؿ?^xNj.Kѿ|=z4:vp?~>}:1gzj޽0777|ݻwwC__1118z(BCCuVt_|Eoߎ3f0tPkAAA8}40vX8qC y뤌V OOOa_`mm]tm۶EXX>={ʬ$ }2˝k׮ǚ5kK رc1ddeeaƍ KcL6MfAAAزe [[[DGG󈎎|ݻW)e9r$аaC?mڴArr2:?,--1v*W++yp|(={V:tZx!/lmmt_W5Nȑ#LCވX:to߆ >7:^za֬Y2RO*+܁Ǐ˴sPUUŮ]d kԨP~}deear#ZniӦJ;H@OOϗNCCcƌ)WKk.dffBEE{IOvi&;~ҮSu~~~ӧy_Ç>틕+WʌZWG}ջ޷o`{͚5Ko߾⨑:u—_~)A>>zj 4HD"??W^ŲeЪU+|x>:u$seEFF`gg0>;{Wj~~YFRrC秔2 auBCC喋G]Jeoe}N8!ve%Kdn|Wf]VcݺuoEꫯJorO gAπW"lݺUf쬬,zDOO.G7\AA֭[+W7ǎ;`bbR}ܹaaa066VxZmڴyEGTƱ+r|aM4GGߓ'O#sFxx8pyϏ$i..]ѣGT}=H?>ϟ<… 8r=zBݻ!!!pa h֬‘3'ɫҖ+R^=)\.y2&&YYY~20n8lٲIIIh߾= '>PKTVVwH>s#k}ӧLPE궪weQFȑ#0j(jժ֖]###4o޼zAЮaÆU{Yݻ)󹩩)&Md8p ```UVa̘1hРRSSqa,^Ǐ%$|}ZI7OA"Q-Ν;^ue1a„rGtJAKUAǖ8q'N(u 2PEرcpww/ +;0ܰt@ MSUWMMM?|||0c Ν;شiΝ+7Hݻw.b'NT8AihKڣndd$:tFe>Ν;W_!%%gΜ3gm۶ѣ'V)߸)ʬkƍt0c q Xv_YR]VeUv[Hstt$lݺu:Ξ=nݺ0uTXXXw޸u6l +i)NNN.1 咖cbHwww"//zzzXbf̘!w>ܼyĪѪ[bmmΝ;-Gŕ oyϽ8z}aii?Ƽy' uv:7n@tt47n,5ߘ<}:vd?~\&Hر#:vðB``صOѓTu,@* ǎñc퍴4aժU?~2Oijoz2).{>3?{}tu۲Mc̙6lT >\*@,gϞ=zT9X|9:~IlE֭[Lt,+UqtVFӃ+\]]QTT ۷۶mCzz:f͚;;;֨mu~XgWiӦa߾}_~Ar[zAUUUPy_UsޓIN:^Np)A$AbDDyyy1ؒ&YYYpqqA~~>ƎSNU8@F7J;r`Xv.e;B b^aMO'44 e&** 0O.pEdff"88Xrɀ:7[ *Z q\rH W|ݼJC$Vwuv***غu+pP^nK!ZaŖʮ?LR@ŋJZ322zuW^I, j)777@OO[nr%"3s_ckk 8<% dri׮xܹƍWm|r?OJJ[fS2'''a֭r311Ѣ2ݔK(D[ʯxqHHH,D[^켯$ٳgNQ .v*~ާOqdSjT8DzK3㏥'Nċ/.&̙شix?W_~5(͘+VT߇kC PI9s ֬Y===|駵:OICC{쁣#=z:=z@ZZ98qR+R?DHHw'BOO!!!8y$"""`ii DEEa3f彞شi&NGݻ///dggCKK vR2[^[nEdd$nܸ۷cΝhѢڶm ####44T|GMM ۷o}:;;- tU###aܹسglmm x{{#)) i?Dz2l2\rQQQa`nn\\~7nj.]zݻ7]7",, C Avv6.^/bԨQvUwmWSl l߾r[jzǵk0c ر666-[Ljbz5ឬgϞob =z׮]C~`bb'OҥK3˖-C=pBxxxÇ=z4fΜmÇضmrssaiipKbHo|]S+&&FR qذapwwGBB,XZ$޽{SLADD._,ե{"СCO?aŊi``HOO?dlذ፮ TTT0g$&&tu155Ν;޽E-z +V^/_ɓ'2OUTT0b,]ݻw/qm۶E.] =äI/͛~Mie6m’%K,&\]]9 СC OOO\\\}RjzԔ:G5kܖš^n{ٳgoߖzVSS˗/ǒ%K<+{[_8=u&M~;R.Ξ=>7nܐڬP I tu48ݻسg0bW)3##O?``` 8STez+*''^^^@||<ТE hVVVk׮̙3iӦ*/3| VZ޽{իHOOÇq=#G,ut8qO</```SSS8::L8]EEE8v&M`СխC\gזr$fff5j5kVy_jjjy&W^qU<|hٲ%:t耾}Y*".]ooo$$$]NI $C``n_޽ m###DEEһQvZVGHD. kkk$PDDTnܸOػw/H HDDc3$QqqZJu6x}*"DDT#XZZ2d{ԩSΧN:Ӄ./8pM-ƁkH8p 1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD,*ks'/U55ԭ-tЮ]a= L#""""ETBBRfCdl]ݪs}{N|2m[u1H$ص1 GVVAahX3gc^4"""""T[|,^[?lŋ-Waj*ޭ\/^d㏯*-@ǟan$""""ǖZZ 0eu<~Q)mkkuއrxݻK]Ȩѥ>7ZT'&&}زW_ """"z#ݔ Xn뛀fnefŋR{" 8u* {cժ03_Wa Pyϳg/}}M4mMDDDD Μիqo:!,,?-{ѱ)ڷo_ܑTss Kbg^b9!sK,\hMDDDD |_{Nb8s&A =Ė-6JMÀMK;uj[,^/X.^ӧع3 ff^gOԫ8DEe̬>uk:ukyD""nÇix0MQ If~~ XkFo"H.DVX}4k__cܾ޾ 7~57ٳbo__9 ?-&M :Rafx"QQYE_}Q\^SΓ$R [mǎQھOu5'qqx0dH3,^I??DDd@UUE*@ 4V=2^,cgfMXX4^SS&w,5Zז$""""Trr JWhhzk=hk07@ǎ[7 ЫΟwƍsGfdcX_ &UUU0LGݮqb@\]Vccnh=O""""bHIZn]*;^f4$&JvvMд6X/^dI-)Ē%xu_ϟ襧ک{ML?Od۷/NoV#=O""""z7Dh;vUi N MMUΝ$L^ ~?LΝ¢!23\?`%pNjG]AލѲS54l.]#Ke"ܼ[)R]DK# xE^=u|a '1Hwg4*8o%*n7#R\ޥ>6n+;w32y:޾~ukŋ-q#+Fj*7Ƃ2rν %/A\6hP3,[#Fx+}3))yX!4<ʗj)ccL^CffAwӦسwXEq# --AHl\/==M4k= иq] CXX:ra`޽С^痀7_fʹ1a'1Hw,H^uQ;+R~4Ķm6RsQkH^_6hHyb4o;m 1Hڨsص7h?**ޫss-tDDDDD5bun%?",,܁9ѥ>/Dz[D*7o&ܾ(3 jVtѣ!lx$$DGg!3jjLLt^DDDDDI QdDDDDDo6D""""""bHDDDDDD A"1H$"""""DeflܸQr4offfǸq㠢R+˗#88ZZZ fBXX???L<>>>EFݺuqIҪ]h;YfaÆ L4iRRԫ槡 [@gϞ?{ʈA"Q0a QǨQk׮...&mO>8::_~oqk}}}$''EEENvZeqfff .^)))055ń XU!\Cdضm7o֪ty'[9pyk Ύ_8"""R:$U4m/^srrp`ӧannoVj?qqq?RSSahh899AGy CDD?'WUULhx 888( 'N@tt4 `aaWW\`ؼyM67y'b޽hy+]-O]Ps+/'/ٳgc̘18w~zPDDD# Jp›իWcԄ9e۷onj3FFF:t(ڵk >} ;v,N8!C"`޼yp`?~6G|;v:+$DDr̙fUTT$={LݰaCz޽{H;&<Ν'|2wMMMﯾ*v:te˖5k׮G_Ǐ?:ujD4=?G5-++k3ѥKx-Ϗ҈ؽ{w$,Xz*w[?Rjl Ν eDȑ#ӷ80ϟ`yΝǯ1 +mz֯_[D_>TӧOor>hGnVձcF#"b֭YVZok|8>l;9rw~ӷ/6VoXHg&IE 7<m0gΜ&q(((1bDԉ㿥r`o\5͍ܸk׮tjϦ3޾O?QM'OO8555}(//OV RW /Z\o\ӻw&OHvm߳gUr޽{ʧNׯ_ׯ`cǎeSNXjU:$VZvm\2*** ezxq|sǂl 0@sS;P^TӧOg~[jgF55m¿geee /=zo5޽{ 9s&?O4hPGIII޽;͛˵;PQQQ/o߾KZI3n1jԨXho= [nO>$͛f㥗^jtuTah!1"⧟~jL$m۶d6jk ?g}nJrjժ8w\Y&"Zvi1c7lz?, $B;3tЈشiSTVV6YfݺuRU?W 6,""cΝMcFiii&/++cŊQ[[7xc9u:k̦Mв̬Ys裏6p۶m1gΜ &d~;1p?M81zIDiiit6mZ=z4 bҤIYYoaaa:P,--m`I28yde'O>֮].6}>W<Lnbҥ1s̨xo߾믿Ʒ~'N:-[h:Lj3qFDĆ bѥKU~~~,_!hgf̘yyy3Ň~#F(sm5~Xre_`֭[VBbDĽ7n'x"6mjpfaaa,Z(WqLϏsM7}Co .;vċ/ Ԭ^:FEEEqxСCdɒ+I_>-..Mѩ9;vX|嗱m۶8rHt-cƌ;^ظqcG}}}ų>?uTGEEE:t( _~1~&6lv:cҤIq 7DD?˗/*&LТ/wZ@HDH.@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H@H!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DDDDDDDDDDDDDDDDDDDDDDDDDDDDhjMIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Hannover_page_1.png000066400000000000000000001724131420322575300275460ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwx&^HoFBE"RŠ&` \ApU" !HBzIe%>Vm"""""N$Ee V%!9b 7nLŅ 1#+V􆋋?' [@[<iIi~z={v8|8N]orH)S#yMKW7°hQ$D"-K4fDDDDDD$~h' (.ĉx`Ӧ%61a/BBl[Ns Vk1t<=-1`+曑:8a_ޝUʕJZcӃ![ĚGDDDDDF67T"AT=gV"%+N,buZʓ%/>}8B"ia8q:6oNÂV2KKx{[#'5]}xUWk`b"Du8# j:17`Ŋx`jlڔ9sbPrE:5/ J MT k%cɈ9jFDXW 77v[f(,F^*~{f"2ҡ,c]Wi {{)*jXYY!/O^Y󈈈(%#6pwMP/'$Cѵ:7ʒcꋸvM&,D:O>VV&|BXf{{)v V!ĚGDDDDDFh$"j0֮Mƴi'aaa\ImnܬOGcpv6Ci66 6T^ MO>IƫD"FmӦu5(9\gLR̔A.Wvv;23e(. m`b>YkkȐAZhz`mmZLDDDDDnH YDDDDDD $D""""""jVzrelS>Tlۖ3g ۛ{w{lmMѯ2lݚ*llL믇)/m)"""""N$Tct\R R  >X<Ə?d#- nn>=OرTWkp}xnB0ұm6pͧ&FñtiO"|u) ųCVJJő6-e!)55uZ7nLŅ 1#+V􆋋?J*駗ѳgX?Çsqu<лcQhpH>,,$Bxs 'GZ /Oۯb?^/D:9dj,[ 'ĉB$'W؈:B=IrF߾  Q[> DŽ 2Uc͚pI=UmĉX||OצM ܹq/%j-u%<=-aaa GG3Y\{{),{zz,oYZZ x`ߘ#<,LDGReY;O<yy HַG{ Md.]M --%7"`iic#"""""AV_ƹsaa;]1HW?H@*5ljj*2Z$7 :`3||an.P?MxnthuM1x[1"Mm؈:mV]%<}zu\\qX54-/ZmhPu1 uT\\1,PPPj^Ri痱wofĎұQTjQRҾ̈́d25TSX[oBFE,E"5cggϯ6֖6wVCaa̠k}֢V۪ffbJabrgpyq&g **HOoUWkP]F.Rh6@Ѣqq,Fݻ3 6W qx!*˗Fn~K{ #D"5UFY-unIIe6dnsѻ#`׮k`^BE--MpS|| f<- _|ѿy{EK|m>vC11[ܦu||儉}~.С\%=c^Abk78MMX~J2Xq׫M1uj0 ~*cxܹRXY%X6Ӧ r5&M <=-fŋ Jؘbp@׮8z4*LdTұW~Ƙ1]Y)Cf {fbʔ@r& =ZZ amm}QToRy*6X^]?7\mX23eHDxdfP\\ DgлҦ/ܪ9_}g=`ҏ?gc#B?Vs QYohmmI_k\ƒAbԨ_&GoN WWF?Su((BQ7EVƍPxP~9D$D, ?fdߎR%̙͋>'7\%\\ 15#0-FИfMXZ:6"BCsf,ZtNhԷV˂&UVz%Sd2A֞ s[oE4&?[a߾,a 1bg?ʵG,nLF úuW}{:t:@*cƌfG%"";E #y9`oo0{,]/m?zʇLA"텡CPPP ++S8;]9Q= > }8hD1cq|)" ѽ$mM2%rr䨪R^^V m Vl9j!^^Vpv6Z2ߺ&ۋV5Q@*DX0gC.W}vY)jdgQR\*+UQ\ pr2Vn~~5jsn;W/!H~*US{l\ Ӻ79FCzzJKkacc] k3DD>RS+fM2 E6ӧMy7<hkkc1q\\̛B˷ߎ@nt˖%"%0mZP#OJ[w'OA2bO=hA\\1sf(>`ϞL=>˰qc*⊡TFĔ)FwYHMNws gGMPNlqtav6vCjj%_=剧֬F#,?0OrspWU2v=nۖ_?n0`gc߾,fc~} o__k̙&lCbÆۗ A=7[51_A"#Gd7W#Goضm n[7ߌF]Ye [o3re7R7…2'Se1t^ۛN^]27(jlۖ{3ksP VecvOSPP-[X&+,qHMl;k Y]agg<+Wx=9i? 6nL\ZLy|BEDvfez! K刉9,94>`ct?ZYc N=nH7o{b0fLWVD8O,¬Yju(*SE:ԭ]g)S~} `Ӧ4 q[bbA8h+,٠T\\1.?P(X46 0>PO̙0A*+U14.]hrDQAbkCYxϚŋ pPNls=ny I/! t6]{S|mqX̰zu_czOGXoN\UBU ~8~|,))(+S6hkFu裴8Lym~?斵֦i6ѣ0sfh7mlD\\ ݙ((?pt4Æ 4 0{l8@"ʔ7U (6 ޜ߮+W*&^Fo ʹ=L( RilY-W [\٧с4sʕ}.͈.U '6ښb޼0}rryntuW ~?+Vn@}y.[m>AmO"+Kc 0eʟر㪰с} j7ڤ|8tjelɒFOd0Jq3\AHlܘdVkU˔JeGBB){/S…g%xSxᅿ)| #:.o^1}iDGҥ'oL9UdIkuDlCH?p UU ٓ!7;nhҥ3g /l1o/wz~y9:5p$̞ٳnGcj*FLL!IH(޽m΍'F7bf_?'6]Fy6ϯ溩]mEߋHb<|@۳<6g߾,DElaܸ_`7`f@AmgGhzۭ[]={7\b^US]A#0eJB.99 n^W1a{D"}d25-녉}qD!~۸1O=k|E+} 1cFV 3~0*Un֥ 0>ϚDD&,̾) {%IIbiYsuȐ\dZkDDt߮7yy&'#>?{NxߣG//K]{FﱭBCެ^F5k#1H0a/v@QQ-og > TɓhG JKN}ѯ#||0uj\]-pH>'N\k#46-VV&n |b˚DDkۛ~KP{`G#77y`Ѣ8ud3Br0=Fk4$ĮUꏾX\\Nq(ZǗ`mƛSVs#S`f&];6F*^_pFotǮ]C=[͍-ZH+FÆĉؼ9'vtR{{3H$I,.bB,9D"bcKWJ$b7F""H$.='ު%kLS̻%zjԡC98t(R]лwFd] c޼3Mˎoo..EZ89DeHOBV99rdeɑ-Flm.CWW N ZwAuǶ[dFbxlj4s'N\o1}co%X*5L`f&[]Ft0>>QN3ID%!Uy!ҵN=o+WP=[J9FK/M< ?쎣G-aVJjnmD''3ikkiJ_s 5],A@Z[U Kw'cwSg_ FbxyyYǺ믯&izCVuȐB:K˺ e\\q)$"45aY7=6ۋ5?22d{!.^,oits>֬ת,oׂል-FU %%X611=Z\ryo$o5xwQrrx :;#4Fp^n[bq=sXb S㵙S]qt._@vRqqVwe {w&m`iiSTŋ#pwMx H$b?^JYkRSpm{i,FG":: ϗ".}</>[s9:C|y"ˆױʽ5!ӍƦ˸ۚ g| IDAT.D++4f8 &LEn>_}5U6$f8͛0iRXkRNo xfœ9hY{{Ioa/Olq`6HH_ѭkJq~>>r]WC[[ͥ炱]7uؓoCB}@eO?p񱁃=V7W_=` :?_]tjƪU})\5l< 0%%šËC/Ziߒo&̓;l;sj4H"\akת}dŦ<;J-ذ!uu\ nM9|8Wxh}hEDti^ɓ&9/2\Vu΅Pw^&,D^:B9"#ܦt0%f͈RŎW[\gtG!$+K{3wo&k1km^&߶-]NZ;5J={2Cuxݭ?ֶӿVЮ< RS+;A{Bg9 q<'޾j7ǎﲄ#Gzu7'8n.#GSvR9.^kwJ<9GZDc{dFj:|A0T*6X8VHJ*kv$_~ǿ}nWP-zrޯ^}`J]=dݽ)E޺6ҽs8y?S0}hU` ޝ!`pNDE9DZBgӦ\eX?yض-]y肠 ۻODwߍĔ)'ZEG\(Tjk0eJ ƌ WW :?_/sW^ s'y[k׮pv6GH$ՠ cxy :W/Spx6*+UHK24oł4RS+Ah& 5|r`%Kzo^|RO&S㣏.ᣏ. ?98aɒ Խ=&L7\k1VPVRŗ_/S Ri45=nynNYBjU"{ NN氲2ANjNcS᧟r%L"#=ayKoeꐓ…O\ 4fLW88a˖4qڞB{]77 \SK r6 h \DD$_?ƌj0V3 JŘ<97@.{f͙:5j0տɖHD= [ u}>lqSf( f _/a_R7sedȄ kއiӂ0r1mct}IW?@?Ja䎟 YwǏ18*W7ϒk#?P$'`m͇D23e8zIIe()>>Vw|Sʔ8z42WjJa //K<MBB)~iiU(+.. Cg^ #C%ĠA8UhҪcU8qj֘>=Q#[Zß^GAA5,-%Oz 7;+[/z Uw?39,7ӏ~FbH =|Y?ķF@ # """[R> @ߤ5*!@6 $+lPTT\LRR*tֺ+ qkttS""c-HD$uZDG@^BXfcc oo+XXHZME"`pL#" ^TTT?m0g]}5+?B#" ^#yU 7WB {{)ab"bADbHDDDDD!""""""DDDDDD $QKC{@|)FСapl'ORR.a?FQvׇƬ(=Og|TH~n2}IIjjoy7 ss ,]5$ .tsH,c͚ kZm{:UUٳBXS3>*c܏²e奘3'QQo dF7fHNNde]Ct=;74R̛"|зNLw}N}v嗟f"""""NC$2\`<333lvJe-,x˗/_4njj2P*k8<=}AbyLo23fL\^u뾅%֬y'O?C*5ԩs} nn:uk1Hl3;Gkc ر$[ݻ6O?ee%س7888>pƎh8ǟoJzW<8?ƌy~3YȨ)Z Lai[\\!r适1J$";)*A[rDҪ\I cZ瘖vaaB!!D+Q!!HKCDDDN|| f<- _|ѿy{*'\-~6:ODb RYh4LVss6WmtMZ[[ 3[@QW~fAQѨ99]}} *RX3&cY׮HMMZ^^(**DEEA~~=DDDtOXJKkYDqALV38r!X.~b_|}ˆY} Xv9t:45V|Z7nX*FHaǨ(O=Rի/ @Ip,&Ngϯ~:_8|{(<5ŝbժx㍗kV:H$4_''W,_9yg:vV} *Fӛc0{v4R(2,_J-23e(.pv)2Z(*Xlm(ꐑ!CAA fNNHDDDDw9f \ٓ#<ѣG_ƙ3%3CѻC׬`s!"ngc߾,fc~} Ҫ k9s0`mؐ}PQ4HۣGF8ZuLUU*|e> LmYH&MȑVy7ښbXoLwgС\oG[7[\TeR 6-ӦSYDDDDo 2Ri:,[J{[ʒ…2\P*e33| @ ̉/䣲R?ysZ'.]*o1yy XBlJ*<<,Gh#}i_|I2mKTL.]*+UTA*c^60`+(;CBB#G0| nllY/t11琕%F\@TllCǗPRR ??kL!C ݚ;Zsx^:;JJ|?e3yh<5  Å gYӛ2%EbٲDp7gr8tjelɒHiӂ FqvM~cbz4~e-[۽;fذ"c:eeJlޜlrs ŦM0|D2 _ //8| >/,̇JUkSRR&?D++k$"""LMň!P{3*~~x&̀nꂮ}ѻci%OI[7m#S SR* ܳ'Cx=o^f2E3CǏX6oF"؍pVhnk-jo鳛!fV1u=੧|~k&͏DjooV/ms[7ռ1=y)F4 FS@?ύ>R=>CȐ@`DX" KJpį35ΝFnnVZX& Fd+&MN:q!obٲtLBd ƌ ܹӘ> 狍;q!:q厇 ΝqHHCt?s?["""`ƌa\-La ,-md LMň L?Ip x51iy߶sffʚ  C< Z sss:Si4ホKm6lяϠApwų#g~VVݰ_ }+3oĶm_`xKCffAӯ7_c0p0@jj2Qg`ee 1oG8p;ww6?FQQM{JL{W jŔ:A.$R3Hf4h8hwac^8z&NKcǎذcĬ#bذ ?~2n'ПÆ=#̚;#''(++= 0vy3gQܚ<uqh>`ժGؼYwW>Jr?CdAbff:mb1RR.!55ݺr"b1?.s&8:`Ѣa)>| ƌy`/<W=HJ:c5WXXd &&\ZeE "Dήc}h["""bpJZ]wd_:cFjj4ju-I~pYw_[-51$ann\ q̞Az Rfg̘  QP i4jKk.NFʕz:1ߘ=;[ Rڴ }9-Ζܹzu-7/MJ*7)yy ̙9sti+#u qpvvCTTA_s&J$Z qAXd|}wǷnFb|xgЫ} 0"#'ĸq0bD2?_C~z}y """2VVxnm[ɬ/+Kl-[$iqȍSbKfBTjcuk:Q +"5wVwV6Tjغaa8x0/_@EE9z0qL8`[1?ܹXTW xǑ m]5j<x`(.^<''Wt Xd˅-偈<9G!- M˃x{5 &"""vdN,9jѥm1z|};ձ\&ÁHMDiưaݻmGffphPRR ss ||m=bC A"u,67%""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"[zz23emZgOjV"(^^,V̔ҥ 8:!*ʉrVrX# Tj矅1E~N3B seKZ!ÿu c_d+ۗ>V. sn,Z١7/W`xіk}'% >}7…rt:a L)ΖC|}QK`bV{3ab"Bh=,,$HJ*)8u}v,- mvJ+<j^MM˿gg[ ٻm'm)A)ЖQ =dL' E:?"'*dM ݋N3M9$$i"՗xr2ұ~},,$Qx8H$97֔]{[$fdTc tf#@xlߞs֔]{[;̙b\sA"ѤY6?kkwbPVk`l_6xt$~kV]6?>7'vٳPMCfCʪA]]YD9DD&ݻ;`b3f@"4(j<|V -Ν+Ƶkf{pOE`xPxy"!.bzCZӃ|y^O W(R 6oNכԚ4UmXލjk%7Gۃ/Wy\_|Tk"XZJ3A4=ڀ}\;w茩S18cj&&V@nVV/dYO> d1c:X^7Q(`ÆTZ`1@օvᨘr5- AH$z5eVT~:s# AɤHLBBee.^,A@^StâE=1zW극vy+ژnhQ L&f+Dps%ll, D""s>` XY~\R?kb0jάY>,,$5WKСpu\ [[ 2-{ 膚F\Vצ4[7wߍ@ζx ^EKonVgӧT  &׫\¾}ԚkcUAPkkk]V (.V ?_A23kPn,Xӻ}6#Gz~kn;޾j89YoQQ=H?7QxyJ% /Xq>r!0v~~:#)+S=z8\QQͭEϞJs+X+.<<G  #Gz"<] [[ߜ֡kW;o|ݫ (.\(G ^W&XlhPYbx/ǫT(995R""C Hyž6 ]^*%cs >usb\^:de*1ҞSkˮ=[FӦysoV]9 ; (ɕx ⎈w7gTUmL.W!=>>ڡFu6(z+:,HLOFa\oD"ukvA{:s}Ŋ5GDg"4oF46 h" t{kZ55ӏppԻlM&yvǀnرc,vƱcHMDzz5oς }w  07ho#"܍VT7d [ &*l"995&S7ɤ rtl {HK^gdRoT]fUUJ|A<̃J% Np…=[1ptIimٵDZuہ^ʺF*е8oG`ǎl8 8fM^='wkq6.oEJՂрC[2ܛARD"E@/x@II=+0`aAP_W =zaDDw''+8:ZA*`Æaga\+/O9 REEri[yV77k,YKcW)mDttV{Oœb jdgנS'kMh.]sMM#N.DcxoRR*QR@H+,-%ȨZ-I{M޴koDyf(_^S Ę2$&VbP@dzgMyKˮ=][ۈ,͵P~ʄT*yqB */4qbW|0XXH(@Z\ˎnc^S$%UYf3 HLZ- - NرBDG}ȗ(p| +HKK&eT0ئ{WU)['^Ц&"?34 ʬYør|Q"+4XXƔ۳;2=.f3}A&S3Q\\pw)IRII76]fccS()Q&ȋvdK뢥7%!vvFPY{w׫pt^:7g۴R/_.3q!16\  f筥}nH$EHL׽'پ=vv"7DW'9;]3[7{XYIqz}KMM#^}5*Ez6[Wh'c}SSwW\Tvu섄 ' ojO5ȨƴiwCyT=Z`p2T!JZ\͵[ƴǷ,+*UNN335suQ9#G9D-kPS\j%uL&Evv-._.С *c~\P]Dbb%aƛd#4z|yhVB6wζe"?ٳ}/8}˖G||*j<hv~*]C,{qT*ҥx^-^?qt^ {oۜ yݱ}{֮v'/KXߎ{mw6EK7J`ҤȨw]ڵv++)}E$`ժxᅋHOƫFqnGqq=z7 0~2GM 3[f +FoK/Eqq=JF۝5ż>oq[ϞNHJʕлnmr(.ljzejcc Ƃ=j+StHN+DpV ٳسx26nZUvu섄 dR?lY|m6My?\P' A܊}m]ފ6<ݦr>"uIRRE+QQ[uKգTC=`m-EqsЛ+XPPOOtnKJPi 77<H$DDDDDt=""""""bHDDDDDD A"1H$""""""DDDDDD $m x.'RZZ6[YYܜ /Jը=9999&ӕ /[ݝAbee9~ /8^yeiNBcMC~~n-**M_\;~l9$'ap1ǦaӦ/MKJGؒ/5<<:?1h57rr2`kkGGgTV#:vm2a-755ee%v- n?vmo$ߋO_W_5x/}y Ľ CZZ">M|O"2DGuvI<.ѝU]]99={jX~3`ɒ '\^km0e,\xCc&2eRR1d?=lJ44(p~u LzJeL ÓO$ F'c̘3QPAG#(ߏΠ\RـٳGu$cΓz+4='N8::YY>mr0Ծ7Mɬ!J9HLARR,A`kk{g/++K1NܮV Lf 77w J&NҮJzdL%Hѻwm66&QsD"1ȑ`ݺЫWAΝ[1y,qmcĈ{v6m%"""""t*<BII!bKoa̘Z''g$&49 xL ==7cL¾}" ׯg _|XTV#== -IT IDATlADDDDD"IJ:*F%22)4%M~=2JՈ46)55(*ʇ/\77w888޶WP%"""";$H$DDDDDtgA"1H$""""""Z<-115z۬ 55͗JDDDDDt.B~u&᰷wDee9bb._cݡ,}Z 44FMBQ77wҿ1 (,̃323˫+R)jkkpqjv,ٳǡPUU@zz2ammcz5 Ct9sw]99 q0 Q+! jk1M5.\8ScР,\8 R?(aaPPŋgS'ܹŅ{q146* * xg`ii_;vlZFd&XXX 0D"""""6hׇe+Рn)S/Bl)axc&L,;0y@z{b Ukg}} omϿSر1!(џ%H d֐J%Abb b\^ ''+U`ǎl)pp>!&Gjj~9 nW[Ib?xy".%DJ̙sUUJGoo;$%UbݺDˑS;s$#$GYZ@LLAzuyf>ԩ׿B@kW;cP$'W݅8/P)SGrrjqd!`L_KV mۖ%vxsZ])2jV 0 \uA GG+^|AOdN_džGDDD ϧgOGs..2N(55l &h*iV}\hr񙈖fߊs%""""jI4kk |PL gc߾\i.OOv(O1Hnpw@} ѥ8~@ v'D`HzDDDDDAT!Lpp`g23kpxrrjР0v-M_ӧWR ww  Cz4 qDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"%oߑ#GVѧOc߾}wMٕpʕ ) 8}4/*g[n?  ""%:ӧAAAHNNFRR 88)/"++  kPLL o(466" ldcǎ!++  `aDX'OFPPLz F2]v޽]SvqqqpqqA~`kk{׶z777^T&TWW#<<jNlwu6d1H5rH9`M/]&p ""*_|/]߆o/BV b{&"!!!""HWk[[[Ϭ 7/ww7߿?{ER H0x``O"0XZnrzA‘#Go>C ŋ!ɚjDx[]ƒ>h4`!//O/^l6ך 2yMcaժUºuei=?^ )))BXX--- UUU¢EwyݮVbm󖖖B]]-)yu?<==ޖX""=ؓH˗T*4?Lhkk)S@T_DXX  11/_'|R/}cc#͛]vBBB0atΝΝ;3gpqq18ƍ|8;;{1cF7}C"_bٲeѣGc̘1puuEll,n݊*<mqnee%Ə CMM >C$%%ٳشix qƉy;cǎ=C… Xp!?n~9Z7g֬Y8t`ҤI \HwɓŚSׯ_رcT3g"""زe h"!!!ZZjӧOGDD~%K쌁$F^z,jr B޽ƍ؈˗EEEx<(--;#+VC˶^+Ø3AT[Mkzsrr_?t}xl[#F^/(({s9ϝ;W 888AޫV޹sgʴi3<}&{(qUR [nBtt^RO#""]D[v^hll4|z|-[f~O>ׯ]=\\8̙3Fmee={駟֛cMQT{^t߿/l{Y0k,xzzw۷oG.]^ܹ(r>t"##7o}gk&>B[-={-¤I ҍ9R2^?3\pػwAVX!nMn:xͳӭ{A3f`ĉ4ϬlIY6מO? ڶ_x{{޻woς.z466 Sm#J7_u?|7f2(%"ۋA"ݖ %%%oƴCn~ڵkR0`,_qr^yyyW_}Æ 3Hז:,d*  Ν;sNؘu}4X""bHw_;d7UD``ĉ[l-[=ݻ;<<\o{{o6V>>,={6l  0zh ߱~zѣطoM7dggo`25222R|?_`\mm24^_{رcA&ZZ57!;n8˲\ =.hllD";lR]]&˫D\Vm6u>|KDD . j&mll˗}cmmm9r(.F&ݖZ T0G{S ggg񵀀<3:ux-SJꔕ _Svq~tt{T⪟> nj4ӧR`ii29})w|Z&Z^SEm=_C=FeS7;i^zs];lr%jXXX|~/bUV7BO|PTÔ)Sng,~\ݔn4qAsqqqvYllZ7DEFt8q&LܹsV]\oܹsCo~ B[rC}}A9kicV^X[[}Cs+>;--M\c&w}金7U nVZZW^yE!ӭmmjq`kW6ߺRRRn:ammmvY6lUN IDAT՞uh1XnKQe[?wwws [o<[n^V7K}ox7hN9薱]{ŹR 2gSgqWbر~~~bۖ6іtsrJDL2rʕ+[TMgm|KjaѢEBaabpnRTXhPVVvK?c_{51ʛ:$)B`|g;'O"--  ĉѩS;"]سg 777`z Jj;._ׯs ԩSzKNNmۆ ڢgϞ0a8 ׯGqq1ƍ9s .]Bll,d2 >}:t(QZZ*>X=Dk666?#r9wcΝ7?=z`֬Yw|[y]CTb۶mAUU0f3E5(˗!ѻwo̘1w\YQ` 讦P( yyyF1ZZZ7qҮ, V<1H$"2fɈǺupEs B߾}`ﳲ6m+L5w0.\CDDDDD D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $?{&YY [u*izr" FVWẋ+quY^VE(Ρr[kvf_e """"Du[L*84 K 7x ٧gO?)Rӟ>;v0@$"""ՅЊ:.|']P#>j &""""DtᤓiH$lVdRA$5vlnODDDDڰ)u r8qgB*7z?Lk_ۃ$.x3>  ?^<B ppYwJgrI8.xA"Q; ?h4׼f>tٖn;/|(J2<2G^7~%htc流G@F2H$""""D5KGo^z^4#exEAP= Z-x73!z84w>^O=u}}NAt$DZ<\Om}l7_/\OQ5\w3Dxn'<7i06w[޲Gm۶փ3\$ R &']GN \RU ıE"< R /TFF{([pǙ=D06-[|_.AN?3zwUՂK.Zv|e?v#]\ݞA"Q v|锰yօsYRq_Se?/nb ii:ޞA"Q ⊝쫧82!pͽgi)^gV&GN+zGW=TLٞA"QDO>Sl=zPDDDDD :АXjbj*Q{V \lODDDD b2ylc3e{"""""D_gUJIj>{ԴkL*Kan.p8GDDDD Zav?N;m{wȓH '~) 6}~ s=8{O=GDDDD}h^_|I <8nv<6 >0u{""""-f;q'㕯R v^ă޺u|k©=Z`ٳ'1V\ʳφ?aj*lVE xE^ꁊ-=DbHDDDDDDA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD hͳ1 hٻN`>`bda`uN>,6lheϞdX֯;D|Mngށ=>!7XB!K_nY,n6g \u};3)Q9 'ع3k|8tkVg&LN/6p)O @nJ綾N.zg>#n3X~ `s%ˀ)ZYi٬ݻK.-W<$@*%^x-._C:t}#_ |L 1H5/;X\l||SYhY_EDlL}\HDn' ZY`hAD քY1$7gp #,-[O[ *~ԙ>q1si-\.1)A*=}bB=`-QOJ>(~k dbݢm[*jїkfO>)3z@WWdYlSknWum鴘G-/{7$ƾF"oyK=n`8ןx"2~i]8ԥ4uf׿;L\cJg&'s4v;kWկĶ/ z۟7囇cݰA;?{?fnKD\=&+Bhzs}6z~͸՚3{&#>;GT['ƿzj3 o/Ў<c[D;,~5iGZD_Emb泡kPgOHFښgl&nZӦk{u5vLinI'i4K*U=cc[W˿hwkZooy嚖ɘ;4vvmm5kʧk֭ 4{k<߉|işhX.\liS7m7)~kV-,4z>D~};sۜ~zkJ﫿?ߟxB.6ÚS{IKϴX4+;8e=z-^J՚>L|77'>״XLүuȓ,˚u3=sZVz8LM4]iy="!-ygkw#&["Z~[?_z wE]vrſ?󓟘7OAsE+SOZyࢋDK9;xPϋշMbEE~Ox\̾QGeB|tſ8[+Z5뿀DB|)n%w"1|O>l-[g%yϱNJ֜r-~8zoN^ye@\]{mwt:wn/xLFN9E7k8V@kH4K_*Lfң%{Q-iYkK˥iwn/xooO?fE>{oI43Cn<`V~5ƉkLMj>yoj}ױNJ֦׼&{} - |v|]]Eo~$X,Vݺm?ַ/ֱ ;>$jGG _HcXQ|_*o|8~I*|ϛ$jVj{-|mݻVM}s5/ 4Mh|sykuS+,UⰒ=6&ZʺEkrvJt.Eq~CЇfңscҲVW^Yzti#f^~lzʓ/rW\Q\2i{#.imF!Z$Rgua52dwQސ͊uV ;̛^`xs37`Qxt+sswznx@W|eB]RN AJ%zW+\SDUࡇrwwz]4xJ4 AJΝb@8\| ;WɸJy{KhX駗k_[z•˓宕\%2}Bvg7NϖJJd2b?61㡢={kvPΫ_DwlH`w/ G`oJ5/+ڿ4ٳϮh4YQ?t1(&?ٳG,yo#3U[c˖cc:6UzjAk_+}!߈@Lַ_^\X &=d9W3wT~]j]#D/w\SEm]"HkS\k4(210PWK<^ -$K 1? (kͤGJ*ZU;_]ʓ^+f13J=3jIsZ}_$"ԁ16xQQ *\N]:Jxtuz᳙mm/-eqMy5U13\?| JzZk}VL1V#ı ˿TOsv}\fh>V)_vV{YA"uMd>.&?hpzRKEtweuO=%1˕WXbvuu.K_27OZ|҃|ޫvIkq=G%*fgx]]Zq۹_U,Uq{7Q,r]fGק1OgNԚ\jNkUPgq(tfkF\r5LZJyaPm@oibV|+}vcopf IDATdܘ=Pe2nc_\̵hw]lfۓN,s#7VD$nl./eÆ9_ſPHLq- ߒ{?@}]\O)Τ_Ab+Ӡo8`P{aߣO>}nu^,G3קYuN|J<˗y`޷$5KV<,?ƶ=1 T*h=ν k_++_)\xbXL?)s219\zilqO>V7}~t 7 zA-[DuşH#1[R[EeOioQH&rpyF>Qz{N}t$Jv??ԮΧwS|#ez=*]p)3im>IV"OgNxcqWYEźS>%:pL"u`Vs{bfF}{bģ~ ;viD}$_桇o|Cs(sz Y-=~mŘ̷]5u=O?-dRG-f^+ML@DkL:-=hrrRKT0xS_=Xы`b'Ecj+_)/|Ayq-oyS_߰h46s4+'ka3U8C|?4y@ jZ֓nЍT1H$j .%|+/^ _C_嵘hIQ\D@w%d*(4}/̅$Es~ [ _ߺUίyMq![>1_!Z*.SO(a];:JJvlE|߯~Udy(hJ]|ت4h;O,1?|C ܹ%n>iqw;]:D|Fz;]'De{^g¿m>։ڝ'ke3UN9xD{qlVOZ!={BauZ o ,nw~֭5fΎJqnQUq&}TUtM{)Q9<,|(Hz3nEe2A^mEbݓOZ~Q{ٕ["_|gV^ߋ,AQ80QH[3ꩀvAtEAsW_íLv~iJ^zI|1[!IIђ? 7Qgl,n\sMFFίYN}~c֯ .L'*OD+5Q8H1.;w_'MLGDD h7e.Jw۵"w<^(~UTh FG*~p'Yk8&$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD hEؘɲYV(jfngD:$hTF2)#QKG,p%|v8d2p  WU(FGGp8x"M2==T*twwiL&L&ł͛7b| ft:~zlذa/>A"y",",TURɈdx6tw; ISAed)e2 I`;(pWf;jIl6ˋkDUՎ>쉉 hvHD"ǩ#x\:@D iM?4,.L*uoH LoUlb1twwcppiF|c4Mb(\.Wͭ1F"nNgʹ'"bHT Φ6*(fgt锘Drz˙9d*x- 0S2:bQi|2Q}XߗV%$RGF5w1$1i9!`pеK4b1$IȲ  _N!2dY j8,KS-T xܘTr!j"cL( "44Mn/ٺlTH% qȲ iG;@Q+h4T*U5-5MC"(hxE)"NCQH WSb,,V$UT$I-Dh+EQe5Mf-8f_3~ϖexnw53Ǭ(J1[Vn# tͳidYXVvpf|飪TUy<^~C*B4,ː$ ]]]EkhH$( l6~F޲lp hU!"4MC$Ry݊n\. h-dBYJ­dR۽2NSKN0??tuu}ii$ ۶mdYQpE",--aÆ XẂx< .Yo$]*'TU4h~ FGGWs ׋i044T,crr;v̌1??_4L8$I+y]nqq̆t;v lٲ𶴴`v122f5SoZPL&~v[n0,8H$H$ݎ-[Lɳd333%wqq===o=s~~x}}}H$X\\, KF~عs' j:\Cm6LNN"Jl ߏnLOO=#B1kJ?ZA"uXL2hY04jA2 V`Y04$av6U6PD+$R)LLL@UUXV|>8Nd2vvv,z!Irt:˶TdpAlsssFZol6i ۍl6D"aQSҥzL>VxܨٟMZ~P(Mxr ˲zA\P D`Xp8 pIzp8Nǡ( 0::ZZ133cz $IHRH$nYwå%GgشiiL#ivc yfrv+*דgeYԔт(X,L&`0h8}xT vFދFF媫RmaaP^^sج)ir!" BUU,,,-~^" ! H DXg$RK$*w3 Z-2-xCCn:0=,SW(ibjffp`ttDQLOO#H`~~>64~?~?,,n7|Mӌ)ݎu8x b1pdda*nqXt4KR,(|8,..]?\E։D"E4M"|> >[Q#r:-x=`rrlزeQ z!|dd Ø+jA0C6‚Q122RPFF&A$AWWWLiUUE&[o[wJ 2^/7˳H(oܸxpiD"c=39J%cjj aii CCCuQaqƂJRǵ~(d2Y6H\gr8ʜ:je[u.oPE*njTxH*mNz Zw$ ðZ4 pcƸuEZ]iEuww=hV+֭[g]:!]nw,RԌ2 T86 p8B,F#H$t]]]-RoUZ%句]5jzm\o˳tڸ-?^ł*bj t^2zKnrbR~eٺN踬V"^i˕ztb!bHdjЈBDBFucET/\}19yj<?FR| R+. ?w%e-i|LQ~Tn w\{Wv YkrͤU;ԛo;z+\w**0[FJ,iY)x25n5J=:1>U$͕.V8dYZ>LzfU,xz b1(R'BzDI*"n7(gEs@\, +~,έ>H9նu8ZE{u 􂯙6VRoP%l @8(E ny0^ zz;>-KMf6^t]g@'"D&ktJȥLG}'3-Bv zjӈ翞f!IҊK-8R ZH߿|Ql6]e3f+vIv7v} vcxxPŘT}iFX~='NπN?D ZR6jUհb'Ί!FfD Իlȗw\tif+y L}kUF-߯iiyhfҢSn@"HA,--app%g9Y&iA"Q+2cCo4 e kޡvLYT՗Vhdbˏ^`lA/LO.rii-Q.^^Y yrriD~Y-ͤUZ$hi*z ݫ ZFD֑SZƆ+,+Iv33]*1svs$)ZqyZֻhyEǞJ077@cX^3dtW.]9 J︴T&_/j|cn7Vf1{vVPd`\YrtǫIO4亂5. h&,,,`||QaB8&:$Ym6 l6+TUC`fa! U- v+|*X,61n\.h4j<􅃗k8 ֝hԨ|p:fbFA'Nt6TxL&1;;p8 Y fK%ͤY}Eq2HdZvwwj&I0==L&qx<8i$ cI{<D"$I@$$IiX,x<cvL&녪H$H$|%9aaaxl͆T*U Do&Պ|ۮk^$ Ȳl,ap8z+/j4[^/8Ǎ١31nǺuҊ5 h&Ȳl"hLD H&6xHXZ,@_sž133l6kx`C 6 ,ӍKa醻\.twwcffTeXNJIVjhzz(-Ѳ$~077EQ.}rhhVP `GFFH$J022I邩,  rQe (Jf3iՌVvVCCCXXX(y_K-vh:כА,o!lR\C։πf={BauZ o4|wY4 D¨]|Ukтa⤯8NsY144TT9ZTՖh&]Zf<慅AnlذIקm$)"#JAUUT=v:{_s-,3flz5WN==Mnw.ffҪm+VQUs,C$8EtB,CWW0"F5s YπfD ;,kO!m:MfvXƾ}6mjxL"5gyHDgVjljkl  + лYVDtȒeXSZ戈V $NgZoG$E2MJ:{j  01H$Zv+4 V *EQ%ILfSi *OΚs"b{!DZ,mfSaYdvjrqg( NgKֽ$"ZuN\z Q{ʚ$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"Q4 PU ADDDDdVlVE" !˚ Z,$YrIx$\iDׯn(8p`tt'éD"JӘlܸ$1Q4==T*tww$}۵`0p8 ۍ:YLLLWZcH&X\\D&b͛aX'UD VUpgH%_4@Ub*b,v+x⪪"6i_QziȲ Yㅳ,8,KݭT X lŸM S*}ZpϷRvaZM?_ޑHtnr5?ԫcO_=/fD% L"f󕼷4z}sPex5sijJ>H@Ql6:evY"bHkU鴢 E<\IXr1f[ZWUU1==h4ZZ0(NgBtI100P46RUULNNv܉9B>@kvv("ac,pG͚p8aÆMNNLHzim۶`'Lbff\\\DOOW͞p8!I/--!$I¶mjlfgg JD"y֭[ˎ B$ [nm(E1<<\sM#z+fj=VEQqƲx]]&+@ А)G+K#\$A0,țرb~z]gնm099T*lB?1==] BX~= RD iI&j¼CCnx\9t8xlp8$$K,jg\877T*ՊxSknFOQ*?/T=Vl6i ۍl6D"YF*FGGk ?yNLh(rTϘ#q\F?pNӔ{a+K#לFOO[pTmA{Գjjj t===p\fPU F녪Bd2H$MUD@\.j#Sdw@Vv,c"+>61Jappp8ht op8-ަ( VW% b``===5n-4M4EnǺu j{{{qAb1# ;ފD"FqƂsׇ N#4${E1+Ӊт|d099l6Ylٲ~~llnu] zz122Ra^}Y2,$j-з|jGFF SUSSSFX,VВT.n`|>Aby"sV~/2abbdxlRъ5"t|{Գ*JaƍۍfKCQ$IDMhg(R N6k(HʊO]_`念p'I0<< ZqUP]Ft: Պu?Z-8C>rKł ͜p8ltw.laL/˲7K!X$[Ű zҽ竻(ZiQKdaŚ9Uo6-6/Vd*WъRjxVuww]nt:Οj5ZT#DZcE: M8-9fQ,F XI&,W-WԻ1\M1YF[  jM܇z"STɠ<`ݺuEcZ)8],=V0_3`OQ)y}7j,Ֆb1`4Kl6kG=۷oS=,hwYkn5<ʍ?KLd^MaAbew%$ v+4 V+H+$뵢6bO/̖E4cbihهX,EQ`X*}@p`ll ^@n۴BNZ3΍>ȌzYØ}$c[8TU_q8qXZZ(ۚu0XߏEDт}Ǡ6Ɵid2HH$%'Y1^hwYkncOX~ᮖB}T;O6Ё@xr>I=[u}׳lsjǪVlth1C]+ѨBV|V˳$ZQ&l6 <(RWR:ΚPY83^[\wClU E섵}N 3 SD˜" bii ;B#ΕzX,.jws\UK@)cu83:Ni#͛VF'i4`wa3sIVJ3N7-M_Η(/}_vbK;>3>n&z(-nf~g1H5.tJ  ZOBNz[˩ LMM5E#,Kՙ4M3.Ib]B[y`٠Lj?4zzwP@,.˲f#jI?ϭ .+u*"bHk[>H $m61i6 +|>P455UTQUf"EDAAq*k^ B%[g4T#Й.:T*9Oa_X}YEQ099YZdtkCi^o3#|SO =--C3ǪQzc*iz`P4jQ4뻘u5c:Yq38%$Rq:x$$S+DBcCHK`X,@8\oZʶ@v:ła#傪FF!U_]FaӉl6k'xp:mo!DH$eXRpVY߶Z$ azzLx$ ###HjWE)*^_oppǥ͕<.ݎIbE<$I944ՊP(T0v0?%D}-CY!IRCGΗBww7fffJ l[,#M3NC[ż^/t:]MS+X\\(^Kf}ffF":+} iLizFZJ)+?nb@Ud2j5^Ȳ! "{ŦMV즪zp8xVth}QQB$nx6>g 5׌f"" ׀x\F0F3CKLZ,c߾}M6륗^¦MV4"ڤi6nܸ{BDTKWѼ^l6 P"Erqk-j:."P/xBD )Nur4:k]SF166l(oԙ~ӟ+_}d2|+ұUe8eY>j9gk ^x,--ahh7o^5gG䓋 o; eHT?yW_$"ĕW^<6U'5W.Dڳ'~qRkfm۹sg3W_}5uV\zW$qG.-x_(c=@tZwR|Ak^x{">Ip X,?O38-?{cccdž p6,nV<BI'?]]]u6mڄ?`?O{n$Il۶ o}[q '>, :,hoqaxsdp>l#M,--aݺuqꩧw]w᷿-fgg1::O>_|1,iy睸1;;a}ѸKʏ}Qr-8pq1|gѽ&?n ±K/CCCM_c{s pxի^K/~=B;8jfzg$fggɤnvڵ|Rn}uB^!⦛nO?H$c=oy[}vhmٳ'guDYm-z饈vwi'pg?si{ۻ(ďAEPT0Mh^!M3׻b)*ZVvݭmZ],E˴H&zBdbxCA/̂3u(e~<Z7֭s=Ξ=ېd}>̙?XԣGI&_~zOZt^tq.[LO?$Yf>|:tT}:}Ǝ 6hذaNajj,YBwRBBGիZj,X?Xj߾>_;""B}?{Лo_ڵkwiر6l 믵|r=䓥zH/^FΝ;+##CԩSUXXӧ;UVU.^x1b-[h:qƏojĉZv$֐!Ctwh׮]JLLԸq\`ܹ7o$SN r{*jW{Ȑ!ƍ.]hРA6*ډmcw[MQGݻWW_iϞ=2zդI(&&F*{ @O"?$aԨm /ƵkC=ݻo4~1{%:/uǫ'q޼y$qFff`C1|pz)tbڼoq[Q\\ltِdt(̙3Fhhرc.Jgd̟?fsZ短o1b_j˗uԱLOɓ' C1~x3Rua'6PLyaDDDiӦ,q9+RޱU滭ڨJ~J2y:SL[['kP:uIǎ]txٳC԰9ͷӧɣLbwFFFַ~+Io~c3Qzݺu5sLEDDe˖N{JMMUÆ uVҕ|ޥGv>233ՠA۝Kcƌ$>|حǹb d2iժUvA/t}Рx'ĉKQF>{lgڴik#Mfҿso!!!zm+<<\gJ/C+Vl.iӦO԰aChٲe.u릙3g~ԩW^":M9vRٶﶚj IZx<=Kk0rH=Cֻ[!ӗ^wذ ԼydWIDAT믅N7Z<6 J^I&2O?=kɒ%N7??_-$K6'-]vgϞ}wG}kNΝӹslerGەi9z<0uWJ2ˉ={3~xo)8p7o\4`XK%Ibh2wQW͛70[7 zӧOWn;c ӦM֓z]9kiw|T㻭&ڨ+!d2;?N.PL"jgѴeK͞M+!&O_Ý]5n8-YDgϞUǎ &hխ[W'O.s"Bb5Ǎ T%$$>㴜$u֭wU:rϯ̹K뽟y/ lF6TW5*[:tz2kYKoѣG]7j+++K~;v Ev233%g UV簪2mFa5trGs{eFQ@9||*n&vSNF[^ ?P3fйsyfm޼Yt=hњ4iR'XM^Ƞ5gϞUBB]V:W\Q\\IA^ԺuZU5kh*u%WRw}wJHlժUK{ff:uTjye-g aÆ ׿pB g^IתU+}|E[VQaU۪:H)))u-ǪbjPu~:th)Svȅ/z5>cXޭ4QQQP\\┘\:tH.\~w Ҭ'n[ʓ+VT׭[WU[T+C;꣨H>֯_o};vT.]ԱcGuMs=3d %խ[ִbI{^r$*څ3J~& ^]׶SVL}sXmﶚhJKKSAA$s}q hQ_yҥb˻vm~RZy^U+[첳]ﯨ(EEEڵkJMMէ~hiڴi8pC=XaX_++W}і-[]qZrۯSUo=z5g+>sqf}w:v,ù2\òͪ\mV tle)lѣG˭ߊow+թSGEEE:vXS*j{w;IM6ꨒ֔̽tѲA8-kPԭ멞=˾mcF0iì?O>yDdѢ)4~z ˨^{+))IIII:u?`8p@^^^zup\zze;vNVǺu$]n歷޲{땣0=Nrprr!.??zޞݻwK~뗟_*mϞ=[M G4m:Ν;\N=(]ܦlwȼ],owTmQ%ղ|ٳl299w<[32.(.2K '?_3JH8l#ӬV<謒/v׉erjҥv뮻'Ҏm+kB=2wGNi]ڷo_:۷oի,(>>e}g-XϞ=ky mwޒ2;4f&v~I}2+*b(::z+ҝvg;I5FQ'K|?쳵Vv[NX؝2_߻^}uo}#z[Q=}Z?驿=DDDu2 Ccƌ)7NyyyjРF.1}tIҹs[ۉŢEj*m2HH/r W>VNI:>qѣ&L +Ww:q'r\!yyyiʕzN:W^ٳrssn:HIIIj߾-Zh׮]JIIW7z4k,P||:uaÆJJJRJJ"##vZ[ly[ܼy|M['wg;qDyV5F+o>]vM2d)88Xo4mܸQjժ6m$ooRʲ_ $ֿ4k#U֭}5sfM]&~4mٲUdd-[fAizR˽NO-qFEFFĉqƊѲe˔nÇ^ܹsٳg m111 lV^^)''*s2L>}Μ9clև~h-Yڵ+JNN.{97M۷l٢ɓ'ȑ#ھ}{[삂4|{.tRә3g矗fmݺ(If}YeffjeƍoիW[_ꣲ=bYFO̙3P*8csUMXGܹ/_PDd2)22R .TfruT߿NmSkEM @nοvOVRWqG}EGҝwerMqqqJMMɓ'ռys >\=zpۼYeиqc۷͛7СCPHHFeMorJyzzjȑ[u.\_|d* @zСCm;bΜ9zշo_رCyyyϵ~]rEfYFiŕ+Wݻw+''GAAAj߾Faɩ-QV\\=:u(88XcǎDݻW>>> WiԩS.ϡj}Tl٢]|YfY3f̨vRGfl<#Z~x EGGŋZfoQᜭ͌HH CIKX߯Myeee)((H^;o߾J[|n $&&*++Kmڴ)uiVaaC&ϯ_Ot(1wNkh֬122L6͛(TĄ NW\\zJuӠAIF8iVg&uSuywN4xp~/ߠΛo:hժ+$8pLG+fL!!*/҇"mܸ_'VZZMڸqqb* O_~ȔpyeV\\|S&Ɔ+$$@*P}}P*;Hg&5JNRmm1wA"W2DA" @ HtweV߾q Qaa23sTUUKr:!?+]Ɔiٲu:v$mOfϟMkC}i޼z/UQQMqۘhUUtp22rD@o BSrsB@o  J| RRzKxhBB4xp JMMо}I}0n466\ORnn}cbeddЛDIր Saa<*Rzc>$ @hwb8R` KJi`EwSA" @ H$DA" @ H$DA" @ H$DA"0f $b!HH) @ H$DA" @ H$DA" @ H$DA" @ H$@ H$DA" @ H$DA" @ H$DA" @ H$$ @ H$Û$ϯҷfk۶UDz?EG)==BS)2ҏDdX,ޜyyUz=Z,2覛+:w:Hܺ5_Fq{tTSSOM`1&@W'NT+Uqq 5@aaz睳~{v hQQQ^|qw.H,_phŊ,#HV;,ɩr@+Lvwtڴ$[K^zi^}A%{Kk5eg]~LcF&ׯ-m|L_JzDUW}](̢E5aBt>sp֭? וs$I=E|rWMOo\)('OViΜ/@')^mhw^^߾~z2M$ m^'v**jwomjXZZ[N^wy>GU$g]2g\:XTTy{٤ ǬE H<߮]Eon#M67phQh{.mҗ_П6 暁 UW gk\km7X9M)^ӚٳuYq$ z'*c۵h6=INuX n…ys>M 옶m+p>#` -__ߖU>;7د2ϝ@׬OхhРPL^Jkwjf/)GW^B߳HO|ABu|\> íuٲ{)묖^~,?']wWAAu!!>vn{hxIҫ9v?~]tQ$'Ν1#A7ݔ;#T<__n1M]0_mm+Y)mA_C4n\$vi&]}4!IzھVomIRpeEz睃cm>'@+fN[ocL o64{v>`Z&LևNor2Ogf>p8#׈1"BJO68{f2IpM"[>Zt#\~ uk>qtw k3Έm J֙xv>hN;-#@\\zLÕ4@1zᅉznӑk3ό…#4xpzjnew{]p6Nm*ѷo1))>"·cb/8'icmS 3όg'(4Goyn`vs7i{|6(%%Hא6{]>xZ>IRbb}w.o8dH}t~z|'OǓDqtMi6i"c-VtfN԰aƅc_}cDg''zmْݻ‘##e~z㋈}R\\䉅 yyUlee+ [Ci$븨 o=X]tתs1X,ҢEScVjjvwv]}uIIVRff4jTF$EFok^y֢?[EE5JL ԌӀV+낳ew}qI̙ _|qx[YYשyc srw#nk>%ӌ񪫳ώ#ǏىF:qBiiӲeǴ}{tYq:=mtW.Ozsg6m::݈2%N=l|wu}5aB$魷wsP2X  $oߠ&zQh߾b=f8PbikѢJI I;B婤ߧ)*O߫U\йs Kd1z 2MפI1,ˡCz4Iԗ_pa ~mzhK7G*4GZp~GغIғOg49P/g0HlKٝ;7IӦ{n,9`۩i5wnʺr \y 6tĶ276oxxjЎc{̘*}}O]2CB|u]C~AcQBۤۮnܩ3qz-\Y_~iO##c=;Ѹ)d)Њeˎv5{;ҴॗU|ɓU5MNFsg,XmvIJ ޽źܹ͞g PI'&]dK?ͥ+~lɶAF½{olvo4^Q3J6zuόf=NСN]Ioݔ?4wYYoo.xZud67׬ ͘78SW^j|^o6|f}a9RfCm ; N:\iiCewk mw2㏏5IJZA?G)cGʮn[N:u.zF6#"#}=:ϼLoS>}t%&ܨzMqqn(/՚59z]•zk8Lx ՉIOx HHnmN#GFj`$<~z彝rl5 mיuS.zFؑ6#<>4k vs"xQ,Ç+2үթ dGvWo,'~}^Y,%"I2w?Sf{SkV>A4ٱFR\\Vs$߿#ƶ 0^gVӻ;'[ך5+QxQ}տHՅPv}Fg۠SZI[rɭ>E'HGG6j e]'W'%__2\suV:+I.zII ՜9n_[[©efWzo/0.vU;'v.55DY93x駫_(__ݢݶϹ.J fwA;w6܌7XO=5^II 7pD=Gߑ'*kt5޺t]B>ϯCu͘~*gWu zI𕯯Y7ߜoNSuu||MG._~LKt1wd-7qUv{K&OGP^^jd/~dLgi|=6?^طXv=`fc%Y6~2tW[ԕue7+B֠WOWffu]zݣmtEwZ>Xs?3W:%&6+VӦM_~-Y;7YC'xj[[nCK u|ON_nAK lkiS]]> Vߑ}~ڂck|]WgѲeGuup~=msb-XD byy^xa4gWc2Y=1~+{~vck# M&k h67Lo{κʲw yڣfwA=&*EG"-\X,z䑭ZݱZG֯ӂk|:FϛGL-ޫo`͜#:>\R}q/oIDfLP߾JHPllux-W_[92RSiEDN99Z>OVeyHbbKV~JNTee-׷fUWg=xyt啩:X ۋ/iuxi֬DyfT^^Kg7zjN/ Z2Sꂫ:_rs+;vCk]aqFRRᧂ*Seˎz|7yhРPEFFv˅|hٲfɒ4du_ Hl;$55KKkv5n+([}+--ᬠ\ӰnܪUYn چk΢o)4e=7ɌzQ:dI֥/zk? xH>KFE*11P~zQa,SEE QXXÌ3;uP)xHUZ`>1{jH ׸qQvލz '$rs+C[+{5{v@oV+3Ljfr&c  t7$DA" @ H$DA" p㣵t -]:C^;]78;"I80x/<ܷk|.%%IGө'xZt.ypzIZb>x||UWhMؽH2M:1#Ait=X%&VJ||f))A Q~~/l2>8J'g9JgO@t8J+wQW+_:I~~^{&S,]u$=FII)$ .oO4aa2$x=n\Tw}j}zys,,vmc|Lשdtr캴rWu:g'KUUuֵ23UWS=\cxe< &??/ ; l3qbL&^fz+==B7l kW&N\Ft".!!@yZ.z$Giȍ6&H֮?FbeeI"z-[]BL92RsaxX 1z]MFWVI ȑF`ZSSBH?IR||&OQmE׷`)Sj8P?>]p@V+;B_}uBe~Ǭq$I?+uZOBtrvYcFb$͚3όåz}v駙34th}TXXm jUJKkN ׌JJ Tuu-֧S~~UۇhpI֧MVَ_vqn)cc5{v *fM֯ϓҶrGΤS{3:戫׬ΊӸqQS^^(gSYYm`AA*(E͔0Y'ٴ)_UUhO*.qSR'*QP͝!CgѣZv*jNtFngm).$1:O'8)ێL9nK;4p`fJT>Aߟ[iEff+wi{LbUJYY|g(==BU= >&I袯矟 I/P^^ŽlҪUso]w7ߟ*I= WΔZXXܸYNW_=@f%6ɓUo_qYߟsMnvEL-^ #qML3\\ҷvu@ItrvsBB>x,N}Q…#uy}tDg>xэ;i͚_s~P[4k**vomv}֬ctRKhm4- ւw{rG#mEse(gʱvl6K5wuzJI ҵty{Lڣg вe3{oI"z H?#G۞"8Q2egWc'M'kiXh܍%k橤VS)99P{kÆlNk0ZksUYYΊӌ ӢE_~}mC ; zuk㕒.Jz s\W}~UYY&O/~-^<]qoI_:U%^iϞ\!Iϯ(#Tii:8ED{V@~Q=zᔕUks_##5vl/+读&I,9˫>=^#GF'˿iw<3iԖcvwse}C⋓Z\KSH{$sty}@㄄#@{$-IڱP]|q~}m+PL&MQl;ZpswWgm+лҤIJM Qff&`ikHvhz#t)lk{gmoǍ0Ru&D_R_?;0UUuڴ&Mb1XqL֋-[?9<=O>9fna]ޖ>~xz92Rgv8`lQ>\oNӀ!pl6t-re|rrsui{߮{~z JL Wݟ7ovuy}F72WJJ m $}mo]79s?V;7YKiWl̙4rWyj-]ucfI?>fs׬hӭ-.%n9.$󟆋6}WBB**jURR%Kì諯NH޽nᇇEݵ?I:z\ݷOOV`,z풬yN3 d}p{Y>[Y67'b1md}=aBSr&<]\Y&OQjj뭁W YI**YeeX8j˖|B1c".O%IC)(a v_=9k;.@g1KuZvgqFGUm3(W// {6:]A"ࡪ}{Ab#6]k |5thiItԩI6we۶pffO_W8˶{k<I'ܓ't0\ߊǚ5|5o׭m1֬UFFqm~l&^6M ˗;U1͕;g;ݎ/p-V~JJ7&ر:T:i4wQcݓrվ4cvwse}HI 2.[ZGjX!1ag뷿p_ {m]VVݻqIMq㢌 bxv5Z3nn Wu+M[9h+9Gއ*8zuk7,qy{Lv&wekĆ/NfM.0EW_)#T;Mל992R11vwjzb.,ԼrTq0'NT]p5Fxxy+-WjɄAKGӨ+˓u̕v1;eJLidnr%&j„h[l<ٲ%u1}zƎf}HW+Z{CJL l2!tgg歫 gQӹ[g@x; ;#GFhcM~хhpA5OQLz챱>=CJo_*E'H t8UKSZw'[(oo농j4J׷at@s3+_ڛF]Y\ucr{wQ~Zv>G]O&DkɒF77l7܆ Up Ym|-o$8rwiwgt4o]V8Sw]Qmno;[g@xZnפI192R{dvujuy:ӟ{ƍ'V䒾oorR0~vXB︋ {\ vKHӆgE˫ReeZ=Lݹ9R~~}{nW?z5H=:J&c̭-H;&E)<sfsX~xѽ?i**t}3.Lx`&Ln$J҃nsMЀ!<9n>;GݦKgxܯ_o+..@i>@UUڷX+WPYY^}t^ڣ_֓:O\\-IH$(f IDATH;kDA"**)Qy9}TRRei=@ Ы$DA" @ضl6?$x>tmGPI|?AbO7aB4%@LCM/YS$t11Ҿx]vY?EG3&W4%'R4O -X0W^$+,̗Nx~zBBzvp^jjzLP H 40Y,Ko.55z:yZBQQ~ځ䒾~^$[}{n-PnnHRl#4bDfBhDA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" @ H$DA" /Vo˖-]z܇6۷o7k^z߿tYff͚O{H#F וg&cIheddsUUU]zܵqWWWյ{N-g =ҡ睊ѫ'O};wn+ΖMA"t*٬~0sOt﫢B5auVXafYzw[ AD@ +cرm^Il;>l͜9өZd$)>>^g},Y*//W``  $t7AAAN}OII.]*IuWH?{w=I&DLK$XZSe PˣDicUU-*IKJ**֨ D-"E9?cfLzks>^r|sGDDD/^I$"#::ЩS'fCZnmֵkװi&;wQv_*}y!= h߾=,--ؾ};Q\94jC AʕKn¶mt899I{e$&&?ܼycAvء>`y333eȐ!˯Pl߾]Zj%䣏>*v;,_\ $۷oI?}ti jǂtYl@jk=vFnŊJ|ԩooo+o˖-@~Yc Jep{*J~m2SRR42f]\\ܹszMڱmaa!yyyk׮]Ʀu&"J" jŘ8q"ݺuCժU;vѣԩΜ9Zm6i&@5йsgT\GEdd$1zh3w9saaa믿Я_?ܹSDؿ?Ο?wwwey`֥]6CՙiӦMѦMS2 ?~wM=;v4]v~.]‰'n5}Sm;lܸXeGFF6mW_}`U[nַ~ Fgb3f `_^YHKKCZZѶԾ^oVXcRJV^m *KDDdI$"2ja-NHH4nhN:SN&ue^{h:OOOѣGヸ8$&&j_^VZ֭[zǽ{ɓ'˗/+vfNCrʕ+cٲeׯ,ỴyHHH3go>lٲ]ko,͗ko5533C||<\\\{kƭ[R nݺCv80l0~x".\}O/e˔`iĉ:uUo;LD25DD3cW.]T` O6fʕZjRR%eB#GMwܹb?t.111:-\~m۶ ~lllE wԙA"o? ^QZz26l؀µntR|&]wO"""J} (Ug""DDT ѣG?On,pм;쪃 ;IqA@^Liiiٳrbxb]֤`ookcxr:}xrsС@Ϟ= jժ/-yV߿_Jcff&}*/-e9> wՙe:!"b0)H Fcpk׮-$_^){˖-Ew1%߰aÊ$DFF*˳jժɆ Z~\rEz?XZZmG͛Ν;RBeqJ%H4u|4H,Ip*B'"2P9snB*Uн{w4k֬eܾ};v  "@[jP\rB~P e?ݻw#'' "瀷_~v򉉉:u`ʕ߿ Wh+˺ǘ1cp?lڴ7nѣPT/UFzCDvS""\puuEƍnݺa׮]@X/5jT<͛7ǡC*U߶mD~~~0|p6D"=ϟmbzAbtt4p9h4ݻw׹ߢN:hٲ%6oތH=|DLL ??? 2J#)) #GĎ;vZ;;vDhh(v 矑1cHHHQ}޽{hժF333СCs^{5;:-N8l/22k֬Ajj*֭cǢnݺ`t {&oΝ8tΝ;]vp܃"33AAA/~֭[1n87o4h`0H,J"##˗/ cǎEzJ%aaaHHHлm6:t7oDƍo]'MRR;\xj^^^3f y""2FX9"$((tu+++W͝;WDVXZZ ӧdff*4 0@7n,FJڶmݻw+Iׯ/fff@7o.YYYJڠ RرCT*^DD/˗R|yh4r=1bTTIM&˗-Z#GʰaVZh!*UҫW/(jG!F,Y"jZ|}}A@%665&++K,DVKz\Ȼᆱ=z F#F˝5kqwwVZ饹~T*3g1BH\\\> }XYY8;;+mvy}_ҺRfFFO#m_Ɏ;t{Z-EW.rrM̈`HDTFAbΝ"".gϞ&""< 3gNRMy :T/̞=[DD$==]߿?D[lYex{{`1fBÆ fff3f T*N/JU7 ,XX`r+I&FNN._:uG?rH̟?*RDDF0H$"*#<TXA۶magg2e EDd'!"*#W^!)) ضmޤ3OKOOW@LSN@BB5kصkq)9s=B nG[Fqb-2PjRD@͚5 U>ltf߿?f͚+W [n_~+nRX}iM+!!h_ZXXL0a 2˖-òeN:aСҥ RDD 4tnh4=4&;;[}ԩ?>'^CBBoXYY=0J>i@fee\}I{a3'Hܼy3L͛7aÆ_… ѨQ#DGG/_G)u/m+qqqšbŊƦM0tPDEEaܹF?>|}QuӾPK.᫯B@@^. IDAT{5~~~SCX`fΜw1D"Rxb̙3~r53CvxhԨF<##?^UVӑ&M]g|јPfoo___޽[ Xѣ8uIW߿?N:yzeQ7wwwbڵYrJ,]fff8{,UIADDD T>|CU>]t3&NZ͛,i7nĕ+W.]޽{4iN* 'Nŋ[1m4XYYNNN Edd$?~K.!88X`(Ο?LHUq^;o*J7GO3M%f͚۷oSN8|0l2,^5B '''lݺK.ťKEaΝhѢ2+=o!"2=~,,,F2rHIHH0w׮]Kǵ;;;YtN:F#[)SUT2k,WܹSt5kLN, j_KZ7CIϗ N 6i}ꫯ*W^DDT$GLL ₖ-[Bqrr"""peDGG͛7G5ʼu:{79/aÆx׊ΝÇaggyҪ{qwSSS+W~hڴ)qQ>,>*xuy&~w~hժ{?=zH\z;  y3DDDDDD =DD@+V̋DDD3DDDDDDDDDDDD $D" .`ƌػw41cK?}s,XiiiEη{n̘1fB~~4[nŌ3˖-âE5celjk~ }`Ƕ}LIIAtt46m WWOYYYB||<*U'NVZE။/<::t(֭[LXYYkuf͐˗/+&ˎWzǿp 9ro٧Xc̘1sN'NŋZ*'WDD/;'_hG<|ШQb[~=`xm6|7`|&D""z!8p 5j"##fnݺ;v,֭ CBBƏP$''cذaPN EÆ Ѿ}{eytt4p9h4ݻwJR߿III9r$v؁kbرر#wŋP˜1chp 44wHII7Ν;Omǧ۹s':Dxzzsh׮><<\ Xn^^6nGGGƚ5kgݻ[P'$$`A۶muOHJJ[o+*?"&&pvv kkkvիWرc??? 6L.gv,>s DD܄ fm}@BCCes333Q.@#J RرCT*^+jZT^]Hʕ͛QDR|y ˗F#!!!@>c}>|Щ!YYY2x` jZի'@}]%ѣ^h4ILL,O'd̘1""? ߿^7|ScQ<;;[|||A];qXXXȀe+Iׯ/fff@7o.YYY&7nHӦMXYY)کS'u:6 {qD"(HT"'OT/YDȄ  `IIIRGz۪UT\YrrrDD$<<\HϞ=%--MDD#bժUm舁ރٓy{{{ 4pʕb$lذXd23//^lmF۠LDDeA" _ ʕ+W`A!;;;wTmذgrssmyyyGVM6u]Sݩjxxx;v,N> )S_m6eYHH,,, ˜W^YWZ5hgΜ1/v܉`СYN7oO>;#N:9~xlذAy/??N 3Ξ=|ӧWg2Mg""bHDDGZغureEضm,,,>֭]Noذ -[___T\o&M}wЭ[7899711ԪU HII1iߴ.\NNNG8pmssss|>ʕ+O>`v¸qвeKTP7FddcJێk[gnn5j(Hqg7%"zM]Mg-*'''t{Ńpq`ܹJZ ֭g_ X;v wFDDBBB~zL2/־ko\r%Gr WVVTݻ]v[;w[lرc֭m?D"zuϺx"(WJˠAw^޽  ^:k%''ѣG:xVff&RSSaoo???x:`9sޭ0`V\[bϞ=ppp@Ϟ= ͧgp}\\*VX`ټy3rrr0|p|zߏΝ;#$$hX6?|0-Zw}+Lnݺ <.\5BttNveǎ bll,t=x׮]Sjtݔ9rww#8gLUV>}ׯѯ_? evxhԨF]6Ξ=jժa̘1:=<<Avvv}h4Xb"""0`"]/vލW;z(N:e*6CprrBTT  ߿@ԭ[1~dggcOnKF&M'""ӤITX~->|nٲe^/LY31H$"z1ffXb222Ю];̜9DZak6lˣG CZZf޼yB6mqF\rҥ ݻI& ooo899a֭Xt).]D,Z;wD-< rydff*K.!??H>]taaaHLLĆ sss|Gnˤ$DEE52oD7n,p&LիW?\r?DFFo Ǐq%+>E 0i$m۶طo.\O?ӦM3JVY3BDmܸQ\F)n3b z߿wرCH:u$??ڵK*U_vvvtRtwi=o>qvv֫۫*W^-p/_,jZt]8>Zf쏳+{?c s-0|vvvXwhyZwAfpww/:>|5k֠M62t9 CѼINNFvYf򧧧cشi PըY&:vI&nݺ<e.** ~!bccaeeK.ҲHy ,]zJ5j۷Rg7n4jòeвeK[2>{VNN㑔ZjnݺPE{)eEKbB/[nI``O6m̙3zyڵkOllŋr1rN)))ӗ{*ݻT6V8qBiJ}㋕w7aee%:ʕ+'W恩 cI\tIu^fffO>X???IHH`FQԽ{"iڴ#Fر#:|Lݻ2agii)&Lw͛#|8::uttO?Trss9/1>JNN֬Y Whܸ1nZm+WN)Sмys|7֩4naa f'ObHOO3.\??Fff&_2͛cX[[>L*k͚5XngŊxPZ5o@)aaaشi0DchԨKdggEvv6Kݻ.aС:u*޽ ;;;4hvvv{.L v$˦C@j,^XuԮ][\zUYcya!C>|v7_s%X^/KMسgO *TM\mlݺ5PTfF)gϞ&JbAW=z$]tQҮ_o$gggIMMDt>&"һwoUVI~~ʕ+ovׯ_wyG=z$"">1c(6oNDzY_~̝;&Ly}عs'Ir`kk[ѣX~=jԨEeW^1 |ѣHKKcRK-S?o&,--qmL< 1>|]vO _333 >SL:۞5kM6Xd lllc_-Z>CvK޼"##tFe0M СCٳ{~~mT*ױ~:nݺPС~ܹׯ_FJ&;;.];[իh4F``r-nk.DDD֭[R 0x`gffСCPTܹ3D6mBXXׯӧϊCTT␔Fի# 3VP>|G*_r&Ÿumۆ ~~~}SiCff&VZoѢ׮]CŊ'@ΝN˗/+ŶmpGV2vލ={֭[puuE-пm^t W\A͚5ၻwbݺu8y$?~:u7@&M sqǀ.gΜAbb"QvmN:z鍍t%xԩ̌@֭U[Ti˗/#11'͛/%Uzuƍ8|my)Bڵ1gZ C 믿^%ϳ o߾uʂz ??WVߗ?cNB~~w⳺t邹s"//OVӸ|2`ĈzT* ** .\ѠA@*KRvӍ7NH͚5\ѣ ~dpRFw'WRMmfEΝ;W:iEEE)'%% < Tk׮DÁR STo+N:|r3Xl߾]/OIZri~~2Az)eۿt=zҡC}'|">]\` כ@6ldgg_Sƀȑ#GN:j6m^cȑ#Nޢ;|˲}WЄ3N\SؤRB ݺu+ֱX=v7]Mϟ/)N:QMK2n˲ t޽RbEge}iz>v!e8P-bff&o6͛wW_}œėБ#Gdղ{"'=,ÇERF `ܨQ# VOi5iD|7zj PV^^^e$j=zKʚ5kd]XDgkk+N>QFI*Ur>Se2ooo8qb]+88XY߬Y39s,^XL"ʺK? ;gr &~ ] &J7|SoMW^''' +Vc… eR~}ДuX[S/,,LA@%88X%''LĈ%{Wc[QIJh$ڔ)S 4P{\pss[[[QTұcG1cqe}iz>C =s("ҧOeҧsnW3Di/.Rf͚ Yp4EدV3fP_vLDJ% ,?{l%MrrrꔗyzzMocc@KORW_^jAAAze˖zWRNW?|||sqssRZ5KO%Aӧ|:cnݺ2~xٵk^ʕ'OyWh_OOOWN 'ړg_ݑ.2>/))I'_ffxyy<- ۷ %i?#F8pI E f͚JڟXǶ%=f7HwXXXȩS{XmqRo4֭[ǏئMLjϞ=Ȟ={{Je|:uR~$(y?MA"M:$*UR~4v[6o,z޺T e˖~:tL&MM'),,L9@GGG,ƍX3g4Z_OOOd/^(`L-)+ qmٳ/%Է$I֭[u2wO8Ϟ=9~zmp;tP5ydV\Y2+z-3>}28zhe+co߾2bwpYݾ)Ivؿ8pΧW^+^Xc[QnM ݻ'...qlç &L(?KS꽋WTDFFbܣGm۶<9~ qvSRܹsƍC푚 gggں|6m`&sK+00rWWק-60*UܼX>޴iSTZݺuߏ7hРBV}wwwGZZetlod ;v4ͮ]pR맿I>/?G׮]I$rrr믿bƌpss[oGɳJJJBTT୷2ڵ3^жm[PTZ8qx;wT&ZRkזڽ4EUB|,^_1v}B 'O|ߗGIܹ˗#==]Y x+V͘GAqvSBnn./^>H9IԩV\ի~˗QZ5'Qn]M4m3URElW\1F{Wc$$$̙3طolR훐hܸq|||2AI0i$dgg#** <].\@TTjNcΜ9غu+>SeyHHDFg \rmUzcʗ/www7oL)8p []vśomo;UPi;v5mmm֭[vQcj{!t邓'OB`=ӱuV| A||<~䳯x68,_c>|Gƅ p |70a 11waQ\]:"*,XbG{IIzoMLLn5b{,%"  uauGVv+E33s:Ν;m֬Y5K1(nʺ=ڣ`E7>>-Z(1гgOo3gӱ{n޽дiS5 /RIxR$?Cwߕ_GXܭy.~@FF^}U$5{%9/\~ڵˊ>,_\n!-(44lH,m}lňJž={о}{yM@t N/?RV6[!֭ԩSh憏?gY_rH/, ^V񖣂Jr oi]aرغu<}Ѻuk4ovf͚e21.3j*z{O~+J bH w^L2ZoVҥKݺuCȟM4+WЧO|Un~G90͞=~:kߛ燨(ܺuY]j,Y֭[#**񽽽ѳgOlݺ׮]3;رcpBlܸ܊ؾ}JyбK 2^iTxAAAصkn޼i}ZrZЭhe%ĎkA0aZ-ƌ]v) b Q \pN8͛7ٳ~[l_K8?֬ӧ-#I\E{XշXz*ݻWiXX鈍ETTK5.lXnPKn1(1ܽ{їBm⫯… `ccVk2Xj0Ee dق _~߿oS~ܦZ |a 䖲']OQ1㹠^klyʒӏ;r|ObHի777/eY.""޽{`ӥK@XX.^hv`=zt_f 82CBBٮ۷ǯ;x`( jDGGeү_?4kLBBBlll0~J;ο+߿_n-ءNYRÇW^_NW~}9XJ۷͎cZO0o|jyZ:/ʟ߂']OQ1cp۳g\{\FFO@vw.lyf+ly`Hg ۱bŊ"_g<Ԯ]ԗeXm>|85jI0zBb̄FQk?D^^ɰ<̛7۶mo9uTiĉٳ1cïC[͛7[~7&`tA <zx-wܸqÇX=Z }{Ð!C R>*ǀR?mXtcŢmGR =9wߕob]lYSRR0x`@Tw]e_ ;w^y(Jܾ}'O6y 1O4 IIIPT&Y7,YD<ٳܘ@3xrpNZ;wƠA vQ?wƢEպ<-m V\P\r-Z@HH:uꄌ lٲ)))V*yE6ydlذ/_F0i$عs'_֭[#:: Xp!FmrCi,YI&ʕ+F߾}Pհ˭d-_~8y$-[~ hڴ)j׮wի==S4P($%~uܹ|_ufy{xxH$I{111ft8{ݻdXe9s>>Һu./>>2)璭m6l J...3g,Ѷ%''ZkJf-ﶖg{]&wڵR{… %'''1AaÆIN*<۴i#j֬)0>3;ޓHݺu~XXUhJoKzr H$OlmmӧKjdǛ7oJf7a)77W.dDYoڴiie?NWyfiUD]/J4o)/wڴiV9ndߛ?esinqeYSN9zh\9-\:ܼySܹiw.%&& ֿ7=ۇ0mh4 Ǒ`rk\eݻ B 1saʕP*:t(za?gϞEFF<<<1,e"22wޅ(/ڶm[^(۵kHkXdI3> t GAff&6mڄC#F(xe=233cܸqIIIBCC =p$DQĶmx{{Gy>Cς|ή.7$I?FzUjٗ!"J%/tر8r.]x4l-Z@=,h,{}E^*dT(ޚ'N޻'fCڵPl%zZ"j믿`輢2"ѳ$++ ~-;ډ'O͛8}4VZ&=ѓ1w\`, bH$"c/W^AĐHDDUB֭ZAᣏ>}=̝CDDb5DDDDDD$c5DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDDՔEPrjdgA$ !"""""g=v!\x  H$ gg{t =z"44,8"""""ɐv9s~FxE(6@H$I|$_T> ƌ鎆 XDDDDDĐX}&[w = [-A APЂG l0yr(N}*KDDDDD Mv3!P*PCT*àHQ!::t(j[+W@L>͚gCbuT:ArJ{{'9@R f::Zm>DD1c:wnƣg㚜<~J'ۻ$$*^^0j@͇BV^( P(P(t#y gprrC 8:VAt: ZFNVB B AP<| hP(QP.ʕ^MQGDDDDD U͘1CtRpvvC5Q+jղG*( "EV+V+PhX  AQ' >yp}T.q ] //xy9F pR) 4B۩E zAA޽gТE *۱yMXWxkmڸcȐP*jQWN~9u8LDDDDĐX6s.JvvwlQ-jղ jKJE(zJJR!6 >| 5Q{#;[bKJETTvJʕqvwPmM^u+Zۢn]G~ʉ- ;  -T*;:66vWFQ!PP*ppP"5U ^ R^'}t$>}NaB]| ɘݻy8ppV>0Ww ᄏdSNDDDDĐh[!6TJeJ*^oAй'ڷ;Q(P( %IIRHjhgׯ.-iӚdܸ{1lX~ȄẎ TV?5j:шE;;k3v`Se ;Q 66 W&VVxccxQ!TK ʇ/ccoZAT*/ KsF͚hJdgx?Sп7* }n߾6m*tuyy"ehD93g|xxءq0,2z 66pvV^='[>> "&S'(u9{>m[w[D6.. w!--j8q*<ʵDDDDD OS~زÛ$IE:"T*=$ ;C+bǎPz85^hyHIyPox֣YϧcsHL,"2fj# _ Pxɓ`ƌ_o8~|lm qmSd[:v->77[߯\JDDDDĐv- > a QC!/OBxzhG0:h"Z{{%DQ,MâeAZ]>3̙T3.]< |9~j* ?HHEDD2矟G~7KIQc3HOCb;y3 yb׹jP$$ׂʭ+Cbp~oc@ QBQ>T J/4v`.I52>4%h\4e IDAT%ju>jM'ڵ޽M VѨ3/zڽz{/OwooxyMgO֬a)^|Ⲱk'!)I\i9sZSU֕! QN RQ666 9$ƕv`ß( AQoҲ(IbXx]DQ^/ZmۦO?yy"RR1C9hP=^PN׳P6&\]mm1j!mm? ;0f*⋍ wwJ?Ӻ1$>avÛQ> 00uhQ/M5L/=l? a8ޣ#Jz5qЧO8:a7wE˖nfC׮sﻸ.^|[rРt``*q Tu%""""bH|<=]&!Q0i Gc{?-hFAu&a a81$ll03ήDQ;jDD$x1cwVV-;DGY\wѤ$^ueMddh0zt8BB<1hP=ׂ}:Ӻ1$>aqTC3ދPhP:?a2R za|<,r E{{[8z4Ζw7/Ǖ+駫5ScH4Z\ Wk|%dfjq];vРCj i]fC= pzHNnE4Acg4JeX5QItrH4Ez0+jrRmwpPbHddh ?pc͚iS2>zFxx2Spl*uu+˗_ڵ1wn FlP.{RJDDDDĐXʹnc+$ IJZh&’!C$|6N}؂h2_X8|tbݺ]·aCgZa;!>>:x୷i5j`Ȑ2>DQBll&I֭w*U+O,ĺ= 6jDcPA@ˇVk|ihjk ~[4,^ Awrz@f汐hڵ;9>rHK{ 5֯ JN'̙Zgeו!ӧI@$-$IW ~thGS%QS (jVDC xɩ$h ׁgo^[Zr Gư8{&jtZ( Få͛7B);IM5 zyn]GH0oY$% "{?z|@͛oA/3pykPУlt)(4ݚ5VzJDDDDP=k^Æ૯6CP("P4ޓP(P(Lz8L{95<7`k1$^jjh·R h4"Μ *|3fD||6FGV5XZ<|'mMi|Z&#/O'tLܸJDDDD,gƫsWpr"  _gS &ApƐ(D mڣgϠ*_6Z( -k˭t\ܻ77[ԫN<`q:QLܿ;tV-Z=L8q'OރV+^=GLgu%""""bH|w? DC@,ĂJM|EBB۷ :"""""TZk'Q3"$В(I}¢IX$=U i=ѽ{"UytKQضPDc@|Ԛhzɩ:ujCt ]DH9'QP|,&D_GG;uk?7AP*,`"""""bHn|=zO_ELL<]KN'`K ]njwڮhMC>>,T"""""bHӳWq]#==juP(ݝQի__/4n\ f!CΝ4$'#-- 99yh[[Wx{ޞC"=%أ 1$C"1$C"E@eh"  {!BǏc…^ [[jTto>Wrnٲ%rsszh:QѡCvիW[e.\CN> '+W… <W11$S/r7n ""K.իWϯZmgll,BCCV*1YիW///4ld^VRe}-dgg֭[o...Nw1DFFoҤIgee*qV}LDDD XbJ{źu됐'N`ʔ)8|pjQܰaj5sNtvvvUz.mۆ3g￯T~~>oߎ_|DeDO9U>s[@x K.1cqԩÓ1$Ra99y8t(9vCpss~˜8qbhGaȑطo=ua„ զEGiqm;wo>RQˍAbb"RRRZ#tĎ;bԩE|ܹBJJ  &>¢Etn݊ݸq,ʕ+8~8\xxxx~=z46mZhl;v лwo FC8y$6mڄ[nAAA2e +Q,Ҟ J~3N͛7cHOOGݺu1vXtMf׮]سgRRRP^=tcǎpDޟFJoHݺ$QϢsOK'Iޕ4xUje̙X,w WEE 8dX||@RT^L"ϷW^&O}zbbbq͖N^{5[t…r|||$ҤIqY?9e ݻw?޷o_IˇZlI| L5k6C9!jִťKN &yyy 3V5u@ffJdW_}+Vh۶}:j5|23cǎ… qA}RSwww˗/8+Vt;ܹ[ի_ЪU+Z>?#Fطo֮]$ ʱT>.紤kÇGTT~mkqqqXh}̷ckE u Μ9Ӥuz///@PPfϞm2U>iDDDO#j.55<522k2qVsV^{[@@vvUcÆ M^;vKJ|UV9^x3=Z\uh֬ԩSV<*k1e׫WϤnh߾=:vhv:u#Gk/<<\ȑ#HNNFZлw"t[-_"\V}lcҹZǠp={49Y?*I漼!Zdee"->DQDV=$ h򐓓\At$JGG> ~ƌf{trrBѽ{Bc<>\mڴ+WpuL[hzn+?1yƍr_pp0"##i&{5LWՈCtt4Y*˧q[t.1hl1T. '""bH*KXt?p=hZiFvvZ5DQI߿.||<}];s)Jƍ;oL6hР}}}M/QY- OORoر;v(vrq!4m6[ǏGbbIkPy*-ǧu[t.1Xf$""DBC e#;[F;;{( "4 bܸ1c^xWܾCiv۷+/ﴕUU.]aaaxqt2>d2>`PmmԩpuuL8PgϞŌ3Z3ji+k4|p4j$aх)77ǏGff&0b,GG]Β=e3}K^^͛m۶gW1_Y ѳ$>ejtƀퟺ%K0i$\r۷/qy3{= ԭ[7~ SK뫜g"## AakkĦu.}!,, Ü9s:F0?~iiiA@@,dV5qqqؽ{7bccP(#Fp9\JC-=O81HDDT0$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$C"1$1$C"1$C"1$C"1$C"1$C"=QˆI,""""""ŋ,""""""M!!!JAT@XD.쏈f_7O2v|~DDDPPZ5(=eKE`?|ᯣV-"׻**JRDDDT_…?..nٕ]O(I}mvط\0`۶[Tci߾WбcRT}9OþQ=#33?pаZҜQYua<ѵOM}[e^`8X"|sk (jYQ%ڵ":%"" I iQ($ZT 2QqU%)'-5.껸uy/[ B֭嗥aR\}mԨX,֮߻zu /5KRO27NQYTeeS-m9eQYL]'<%v횆M=U&ﹹ9oG̙98ujpv3;]E /@5rDGC^ĉ\77|0>=o_MgFҥc-ΧV-Gt۷_ݗѶs8~cą n݋hй/njvP,XO;-ȷq»صkvm$ߴi*ڶ?Fd8}z6M,/ly mʕ~e]:Qn.׿CMmvMSuCCgtļ3g˜h۶ƏoonPZNil%ٛ  gXE\02jc8yrΟǢbѢax._z#v횆 ~EJ~u:>ʺK2]A孋^gUiXcTdfjzխk` дIs &Ԭ_\7m[7m {{*b( Lᄏ/ __w(4nW^و VA%Z5Js,gРСk8ttE^goða"!V'}ƌY ૯7{o/֭;Ѱ{ʩI@.:Q^dvvS#FBz9E5,}{y~ C.çaʔrƸo=WX|a_rJ[g+I}mǎ߿֯QZۻ֭t;vuC>P,ZtG/$Iز%:`߰hQ8 DNŖEB \w~h!! }Զ.]JǙ76l€?cժ3xY첊dS5K3 *qV5K[,;WرZswҥDE%bѢC,0 h5[Snwv@4T6о}}̝ t)o5k:ĭ[oqC޽W葛ADD iiv\7 yvԩ[M{<,؃maҤvӁ0$%eس2,؍3gndl wwG88>u.u׾ V' @DL=3ftuC+N\cgk+VFF5-8Ԇ#U sgC))Yr宼a߾%KAu]˼K35e%gwU}SR^OSna M߬Ymܼw돛6)HK˕߻|9j y =]G'<\&Mڇŋc߾}{<~8ja }ZN/U9Y Y"""*=Kee#""6ǁ ѥKbcb`8v N,Wٱbc:$7Fch88ؠC=x;ti_\]ܹi/˖_%dgkJT7F!++:"==wdbAC x|t"DQ,q~/t֨^Q\MyKy=іDNZ-hQ*jmkkD~~,jo2;Zm;thKZԩ޽w&pqG~lNNvhtEcG  NN6oG`˖Я_nL-sVr+rd㱥 P>K۵"zn[[%n].A֖}nC.;쀫=>d=j{[~iS:[ݺ.x%j7bΜС>7*rg:Z,,z G\GHHCtOƩSꀦM=ѱc_+Qݶ4Y.Zz{YrFqYU7/P%fU]Bq4h`hj ;E /z7̙n~[BRȿ;puuP*4iQheȐؽ>`|37D?އYz`̘ظ1ЫrkkiITr2@DD,}IB@Æ5q27<A@~ӧ)^|qM4l_ߚr vv*,Z4 oǕb{^~iS: 퍳gPhV7,m/""3gvCrrl9|\ɓ;'N[mY֘@kGSqVMYgy<і5кu]/;;t:yy: k]_`ïAE̘UpfԭZ/{^f A0Zn,nyCj}8,Ν KqC6L?> iQBQZoGB2pd<֮Ŀ}uProNN>=~┶,ѳdϞho] =谼<ᅧEB\pu sjǚ(5;~\JS)r[gq>ΝK.Bss,, zUxU/gcDz?A@xQ28k`cc0}H߿~~kTk DDD&))xSXz򗩨k **r7Ŭɓ97{^X'gE DYCZ&,Z7`xU/XY`x6M/*z9u̶b׈7(d2,[vry,+mƢ就1ǭ[R6xny_z݇iҺP(= ]Ç[a01KHD DDD&"X~FӚt1kAVVE"=<:ޛk>fvQ7oJylؗ㾇 ̞Ҵ:$'`ǎchllUOOOE%=긺#6v=}hii_,""""z<Ç"11 "<|"#!;[hn{;d ?$R66pr ?~fii;wd}'M*6v ~ybS7+o=nnxpr9ӯ塭σc;>lm =Ebzu{kk1 55]P(L&]OO`\U>hB,YS[wkZovmcPڄB!BUOSV[ۀ[߄9jkT.kHs/c6))s>8|x#//Kh30a˖ב %%p&;Bў&8#..'On֪6f͚p~ljNǧ٫ zz=t 3hݧ1EA>H$=X`~s3}O9ڳ'&{z}nܨR炪 w{<{%%qGpwwĺu رcRѪ6DHL774##i 'ٳaH0<>'DDDDDHܸ8t(>W|prX=toƍ*Ņ(. uuu@d\|[Ҫ&CZ!*jNo 9Efc޼)=X~\\0 0fd2="FFdf`e98|x- E;wz+>ffƊ~.GaaGw  ;ҫu155Ÿ[441=z ..ؼ۶} d2|VXZb ضKtL:Fu = OPy.ދ0kV23k0j р-? PVVo ` GGkMC`.\[X* ?܄3'(SBCBJJ}9r(D"}:[8r'f o#4+Y;  ΘEv/^{b~MyTr45Jr{yBRR8qߑS#(( *W%&{#'G&7@YY OA*mV֗1Vo',rsKL"""""u]cJ;:(~/L9s&w'SR)kGbB|8q"IIYHH::h?M ϿV_ߌR뜿;OŸq#U:eWLKKW_S9R.j{ύ-HK+@ee]RVVӪ*"L~Fԍz=ي2IIYpvi?!""""R瑟IlmmW9[8{=˗ sS o ۷ %%/0^c_Lի1mMSj366hiinV"!a+||DR뚣qw* ESUV!6udjk]?|cn#XU_Mt6 uO50"DGB}}b9P\\o}9#F ?^?^v-Gp+zwvĖ-#?*X RipuWtʑ(<4"앳ҍR4屯9zܶ+mGG~YO>_և~XFF˱}{D"},X<]t>]yx8`Cdr35o 6bwŴsPYY [|.,-jZrVzyy Bp˗VҡyHkWy&G}@ۮNgb yejvaaa7o {Iƞ!""""gIsGw!&E b 6m׮>]%$97oV 55x0coo@pp  QLkke;99{ SS#ZZ;u-\\3g[Dt)̘1̚w5"(( K/|r!6i29Ͽo lU<ەc,ɱw)X1ahSJ.qR>^ݍ&X[y>DDDDDlmr"xzXllIKOWNdd_N00!+Ͽ 8&&,F]]#F GGWUf scܸ(*{7(L Iy)G">&MrEkk; 1ەhRm0jrsoH_0'!pcv$N{ ^xᅵri$HȒ%XwJ'Dss,ف+W""""",,,L0r-FܸQ """""bHDDDDDD4pADDDDDD,E" $Ff_IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Ilmenau_page_1.png000066400000000000000000002063431420322575300273600ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxnT AE).^lؐQ zEQ(M H HCzBfǚIMv <nfΙ=vN=1$D""""""bHDDDDDD A"1H$"""""tTKN#ܥBDFFo?}";FFnĂ&"""""YAX;=ss9Ǝ폭[_vɤ5w>`7kD(,,{bqćxAzA*9b1bQMDDDDDt1jŨVd2)V >իѻww}oii_#.s,_D"R s5J<=/ >>{Oرh:t* iZPDDDDDDwnZTTC{ G~aiiJ *Zq|G  ^=OoQ}Ĥi$am s!IuV ی\wwGߣ K xd?~Y!$&¾^^>Ci"""""oFpqÅ HIs J c#g/ _HvX3ZAAA)J%ŗ^z`uT MDDDDDt'܌L2C{`51;8t}AFF>QPPZZ>;^\[`Ȑ&Ĵi`%K66ѝHf\.Eh7ll,bmBC}2\Z Oxy9!&& 99J%Dud4m""""""DDDDDDtGA"1H$""""""DDDDDD $QH::\CkU䉈 ~ll,`f&CUJ fEddѝ$>FTY>ѝ$VW+0}/AEE54 *+kPVV7"/ODDDDDtu,-M1vl{!99GAA)KN !fD""""""bHDDDDDDM`)6H,+a)v7%""""""DDDDDD $D""""""bHDDDDDD $ҥc0fL{8u*[DE>T`{(*رc*v[[3[7gϾ__<OO[4 mre Iu룍<o_?_Atק1thw~iv}='q+zm) cscin=#Go!:z 훋 gH>.]Z5kX,╁$vssz?kVw…l^6o??G̟Nj_$d2!C|)ȑ$_vLߐ!ń _ 3;vL妔+ph2"",,d6Woƍ\yǔ)>xHg'j9`ժs Əߊ={x=os],ύm7޸k'oFO?͂&Nk 4țW""""bzrÁp<|:"oB;u*AmtâE?L\r vvf~mԧmӋPVV+|]hP ?vEСxdgO@mi Œ%{>V{WޭF -P+x8w./b778fp`J~1T'ڲhN4l3gf|o?Dl5s kro.gQRRWW+^աcssKg58>yy:۝=sDQQ냟j]c1rrR Z  rZر=tf|UhG&@>cXl9 __<@BC0zt@RR.uڲU7~LK7'TYY ˡTjM֠\1H(ؽJJ(^U V6 R/ۻ7׌[UU/ HHlcb"ƺu0rKƩSiش8Ai7Vejݬk3--_ h8O Q-Q ''KؘGG9mښG"dl~ee5tW5d+Xlbbrquv sǘ1A'zug,jk-(_"""""w9s& yyexQ )k6mͣNcȥKHM-o"0iRol0I8v,2H8JXKK96 H&]Ek=ʗԓĚ%-ڋ 3/APB7؇ܲfo<#))?x}U4Xx/6mg_Fee-xÈkvGz(KN…,;pvĶm>۶=uܜhiG(0pUef&EH d2 ._EiiuikH&55J\լ}r ]`mm+WrQPPѮ&зdAqqѭ ڥXY~:|$E" """"""DDDDDD $D""""""bHDDDDDD"6l0KAŋ\pݔ$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""H:"QL yyz  5,-%jQ^d-66ڲhܪ~L7ZTV̄UCt2Epq1^ԠVxC.oot55j*Tv\P\@UꎭԞD"U9U* yr1HlZh>lH9o)?>=x|e"kxK*+1M?i ٳx-N_F 4ʻD۴i!6re_;hrDF`׮To{^'""<˗_fޱus_ړDׯ`ܸyr&ݔCXtĔ)>x " ADDDC$VU)PjpWW3X[k:+]i4M3RCaa nc:XRkwӓHDpu5yZ,aΜHbl5ccK0u1۬XWt\-:ڠFY[KhQOy@=>wߍ6fĉ^ip`ҥBYYp^e5|Z3v;wa)' +/ DOtowNòeQX, QQ,p^A"QtZ5^Zh=!ݛ ꃸAX(NOO XYI[ (-_^@,[7 89ɡVϯ Ðb||,jrMtDXggSxzCP#3h4^aa!,5kb:$?ss u UU*W#3zgm-9lmڵjT\hMus39b ;x:;vBcpv6T*n2*-Ö0LLDvY,}!w@k+%~mjנ pl w}֭.UG =0n,-uo1J7)8p Yid";-tXwl> 9M /0v;~n/;⧟Ot2OgfO?݃CLz١W/;Kлl,|utM$/7ߌ.z7ـ ~ػwzkc4\X(ҥ=x`|P  YxgǞ= $ĦK..fؾ}^}5b]=MaŊn+lY^AA6Xv}6!}=vEkKh~{Öy]^^:0ɩ>MKK?O7z]ćĽZmۆa,mۆ!$ĶK_;e!nS]긻oG`$FGN_[7mWN&"O pyHD+3HH(cǺgO[&vժ~xcN]߯֯ 5.\(D\\pSfLMMn@yG㳳{a)-{bQc jp5VL` ea!1qPUjch+/oG@* 3gcֶ`AL'.+ő#HO q@߾{{9l3ծ(oA@@ OJJΝj#FONcviVәr?~ %%pw7ǨQ773yֶT~m“jUֵT*Ɛ! w#nn>5*f c$tرB 曽S@kԨo_`jj]p]N:AWc3bwkcG]:JgQön@r_GM V:?č႕+aɒs~󁈈Abؾ=7|g œ9__+x{[KbE(1KF!9Lg[\^^01z!2eeMx88qj9nM#z7t{ܐΚ/޻77i'lX''S /]r|U ̞Ç[m ;v ˗_3p#Vkk)%X, gC%u]czgm-G  d4HlNw 7lΝ:opow튈&ks=?si 7oծ$6Ha{'7v mMԨQ(,Et\ٓ_v˴JJ,\xIIx` LnW65#uVxBPcٲ(>0{ǎu~*DDuw7ݷ/66zӶeKxL񆫫k0wI/#rs;;Mhc<<̑PٳO߲2*(R'&dS:Aac* ))eBti&MB„RߍNpl^}ou^v]jFɆ]`Oî]X:8x1cW$y&H燙N˿B_?/]S\jmp'X?L // 劯'Uc۶6_Z/7:&履ҐQu:}q ߮zmlkPG:jʕD@;#u9ӿ}'m$T}4uzL#(/ozr"6m^a|ͬwߍ6fG 3(~M ֯ &CV+/ AHX=&Mnq:uO|Evlք ݺ9 E.'zF.jK w9mwۓ ݷ^5W{ ]2q"#7=XfBCmum+W^jք\ƮA-uj9~=knbb};;w:Ο*nu hUG7JOM_*+6d"" +W.QPXX// aBp̃%lmLK+כ3o7t;w`׵;K{wlڢ4"fgW6k7ߤס˜_~YN`֬8tp oQA-rd5yBWl%3/xe[#6,5 5t7u+_:sgѮd,Q+|'m$fdm ^t(JJKkuqo&nfq3ZƝH];+VNFgH}'Lyna!o.qq%_vJ[<oݧ7Æ4|հ|RSBjjy ]6FPXa_|| \ƣɓRk۰qNNm5䵱נuԘ`jDG_/>IDDT&'mAS~~صkdk8IzZ|H$1RBFLLΟ/x&sPb];n͞Ѱ]@9/jFxio/GAAZD޽g// xzZݺY3slrvJ'svR`[3ʪ_z h7=7;l IDATv ݸDDt55mtp\V-NT7j8f Gꫡ8{L&F~O?jߟ?Oh/rh.#G, m ǫ6omJ[Ysu 񞍮M09_++Iyvq.tնۙaWu+\r UT( law׬LDDIV +J]5o/xwbHi)fØ1nx饳Fglk <VVR88XhgaSnf4_#5촍_YN=j,]evmנuiT\bQ7VT(w21H_|K;˽ߚ`q۶$lۖss 7xzjgtw7o;|-kqc,|7ᇽp`Νnpr7{}$2nի bE~hmu]w:\jmnkckAao/ufb"iwfZeng;7\˿-*+8y26Gć6\ϦqgMי7{G  @;ޭc:RX=(<|iB[.c-Ǧs]=EIC?K5oD"$aWP[ˍNnŋ{N b[6cx98{4ywn)3խw#!ѭ 4OLLq3\f87CRRY_?^':hy7ܡΟ!CM/4%wsVht^z T*2JWݔ=>E}7vߒNDt$_J2O>kt30| wi$7;c,0i7&MƸqFW* n:^zz>nK浱 :] /1s-Qoit9st֩mݭVDD oc}wUioGr#x ȼ7$>Tرǝآgnzqq%Z;v$!)ImrJ{ 'OA> b^{-TFP{3}^ 38߽z|JH(ETTzѢ:36fiBG,'B׵נMvQ DŽ ^DI$",[?f;""{e|}d2Z1HM{6Nn^!`b"^y'V'\8[>C"#%:>>s57nPکTj;=ȶmIԎ;7P#0`>tNW-[⑟~&~Zn-h9wpc:c$ln@^7kkNwZ&ڧpV=Mxio/~ؼyd2uuĹБm7 wAWmkã'Ok}wk`'l6 w SS`7SOe:ZDD+ɝ^ ll< tSS5hNN.n ɩ_$b|KK . …!ЍO k|rr1>?UU*,Yr7 2b@(jHbgaΔv=֬Vw\%% l%KBC8aϞQ((FEB`[&:c ,ZtNo}_'cKƿ)hG v1Ms[ "<y R5x(IB;v$cٲ ]~?F+.bc9{sn{;;FԿ/ooKP;88Q]BZZo@ο)vv2ooK dgW"3$­&,#G vvrԨWg pHnqw7x樮V!3ǎ]_]J=MLDxI_ ,taۼ9 aff1c1l3\]PYBJJt ڵ0rvђ%矹~.W۽W?MjYy0du(*A||)Lӽ%xao/Cii-RSqpr!wz1H$"sp]jǎꬑFDDDD]E@DhUvi]}}\i1H$[LrrLaa!% :cFqGnJDDDD]'!VQ48zT;P$>hƏԛ5˗K_lߞ$"""8&Z^mۆL_VV TU`M5c,<""""Dt;rr2ſ~YCٕذ!B#"""bHD;wwssxx\b+ӧ]<$QʼnkA"1H$""""""DDDDDD $D""""""bHDDDDDD I:"Q??+x{[h  aa!A@5JYi&ooKDF@:zEZZ9nqdb 悲Z=[pǗ]W~"""b̙-kSY;0q^{b$v3aŊ7GYe2AbG]W~"""b(jlmexQ(jlۖOFF||,Y#-4o^b6n,Nj)dط^ŕ`6P(Ԉ.f5Hb1"""$D>ꃚ>,%R1̬Ď,gO[TV*ZiL&F||vb׮T]Tzm5&&"d-;Lܤ]65my:DXDԲ1O]>55NIK5enD"2x -O,Mvv2Ɩ@ִ1 ꉡt[J.7X,)eg,bRqLKjƌ^s"ֻ^~9DjSoIiiIvxNkpPmKFaa^}5ΦXo̘)S|l\X 'Jg{uĉذ!b1re_x{[bcHH(DDx`DoZC*#% G^_$Bj9[̝0{X[KQYDLLqi.Zܹ4,]#Fya;??+LÝac#CYY-:6nEzz^ 0e!Rwߍ)n2ZIIeX1Ξvee#F`graC,JKkѿ ǻD2\P@}+1mqidbY3Æ9'Oaavذ!'N._8zCxc]#"=.*С΍3A3']iQ\ѧL9Ev ?<|0T* bc  ekʮ }}Sʪĉyغ.̝{R̰}0ˑ\ǯVX/**T8z4Uk]vF!NᇽZ'1x̰lY<=1{v߳q]¿'7%ěo(W|e">$=, :A9-ꉊZ,\x/vz7o 1ظ1V'[a%1~Dbb?%< wĤIϯƋ/F Dv:;>}f{3U={ x0 O?J,ZtIIeB][7᎘3''Q7#?h%KB1ev ZSvw]rš514h4}.'莅 {bL[a={СB5.WmnP[f~=[..f>=w.hY{{9>>07EDDD.9$5[$"ݛps3 qc@u +V\BnnvBn{.z ,\xV@`8'u{D^-o׹I/UCcjB$=惒^x!R;sii-Byw,!8֝S"a@TUg.& kVX#2~xE@YcGkʮ=61!(ؽ;Mh4AP#$r lld8e:"OXP>y_c3XvNսEDii^:;ZDDDw.47yjnJ fs4viikF599MffwZOgX>Ę13e8:Cdd.12xx#;GD6wž=Z"A$29R?m4?^e kk)Μy nh~h<˫6RDFy>`7{cl4) q9<P[j^؜5.[[N-=`s Ol591MLM@74ȱv' i֪qZ5T*&H֚}@#M"S#+Ǽy<[xDÇs0IWV&Һhi45!n7233K/`n~Do42~bcq=p7M- 8y2'ziѯ $]IZ(Æ .İ0{|,[q&˼ey[XH=wrqm'CRyѷOg=JDXmN6f,lob6()Q41HN(hQOdW/;rEobL#<ӯ=C9J_2 igԬɬdqB٧N^u sbɒP8:u&I^K.Z!={ڢRhJ%RSajjC>SO ՍK^Dž̟ws-`-mpWˡh'![0a`1e7*+„"AbNӣ ]BA jVVjk4G@ V۶%->}Sc}1k?PqʮS;'rC{- ~5W{1o^ U/޽ab"Bll jMX6VmZɲ\nkWT|ڱ E5 F cZ%?=x:|2 bL"lLMMWCcG222*лz"sg lܙɓqn03_DUÇ`$ol}ZnS}QXX3g u\\Lun+*ǠANع3GkKZZ-M)氱ܹzٺ5Vʕ}uk"`)SѯΟ$8 IDATΆZ+Wb-[/QPPS()^5R1^7lL&ȑ.9*b}y`Aغ5 kz;ulmeFbb)!unJ IX~ >4“O[7 s:6cG ŕ Fᇽc055Auey.b4?>]9&MƀHJ*0>ud*pR!$SV-,5.;kgo|XoԠ ?06[.c͚?SIDD R4;$~uFXX}ױr%V5Nj/F7{Wz l/Hlv:J̜yC:<˫ƛoG\\IiS2 JB$֮o_ DH - ٳxͨ6EKoJ߲kYpa~mwaÆ+¤A bE[7~~VX?7*?Wd=un5`d ''Sw'_R]s߾LὤR`͚HH(ԩǚaC,L1bNVWiS,:Ym,L=l{u+.b'<`7N_̝{QQ*ʻgO[(j,^||2g`~>7 iwĈ.X^~\T5.;kh!#_42ddTܹTMٱc8BBl0v飯RW/;iEG6&/ŕ+M΢}Z*({JrW^,@~񱄝 HH(m2`mM]$DX̬ŋMvߵ``'xyYڵ*nim ۪aXXX!"""";E@DDDDDD AbSjW o1DDDDDD$D""""""bHDDDDDD A"5d ?D@DDDDDD`wS""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDD}7Um3wBY-{Oe(C@d( QDD@\"{ٳ,-h-m)PiGHڐ4M/s]^jrNr}`s\HerNNRԯVŠEHhxDȽ1w>ͅĻw Z$̝s~:p! GV}uN>CN&SZ\rrVΝHMAhh,""""'TQ>3$""""""1Kuꏐ@ԩガ,bhG9R D׮r½{HH8-l`#+QQ7qpxA/A@ىgBdun0hR03DDDDDĐ* ֯_ ,wy'L/==:yF?Hc*` <"Tfo Pm!;SX,2Bm#"""""D7ŋVhhQZ\{e=m#"""""D5͚ղ\vQ3r{($jU 8ֶѣ>"#=zn7a=V+FYچǣntGPuCB-/0GZZ`ŊQ&3:8HlٳpvLġCW m|9`ɒgL y:9ж]<Ri{_FTM\;  Njwm-7 ;vLٳ7fjk׆CPbMm1$R%?i6b§Ѡ;tG.oGqPɺjpA͌OMԇmDDDDDhhmFt}4q"гg#k 77{ܹL?~ *:9IѧO2DEɓP*FDDDD([ǏbHdH$"""""͐ȉk!!as(.VŎ-ODDDDD˕ OF邂|`[7 """" Ov|QT`o'""""r9:Jt^P*DDDDDT.DĐU j57%""""Dw)gp!""""""D""""""bH̦DDDDD`Y Ŗ*lI !zb:G;̩˗B^OAѠwΐdXxBBDrrrn>Pѳg'jtܕ;2Um6c];ʂ1$֜Rдis_Ty@,I@C111HNNq Phذ<=ؗjgΜDjj ZDDD 5ohҤ))7hSѥKweD"||"##^^hf 7774o6ه"#Ã;U 0hPh4s;{/Οm׮ADDĐXt.]WBf==zc>_y⑖:u|вe0 m&Ơ AA0tp4j`v}kYV_V*8uݩJvmǙ3' 3f){COC[չoVe_)o{ХKw8::z>YYضm3\\@v3#QVjsEG""G@jmgfB,# J%^{?ϝO?pI|ѻ￳&˵j5 j?"Z ƪUe`O<ѣU60e z aժ_ٵk;^~y2\]]䆤[l #z...ذa{f׸I@,]Νm(;c׮&[_~9WJe^TzǏ`̘JHLLTjgxsΝ̾@ oRz]|;عsk7m ۶OmUsi=: !!pȩrk/ntT5}ؽ{{n鋷ޚ Bnw-ݷZlHDDP//'?cǎJ̙Ѻu[( \W^Kqzú* ӦM¾}{ Zj#""{"..&ѣgfXW#Gŝ; 1x*~yJb[z0nmEu{qq1ؾ} 1}5Y@6PXX\0a‹ue"9p`н{/H$:c|5 uZO۷ _j;ܹ+֬u8p0:uj"\xh3yNNNu0`9sb/d" Vr~0qǎ- ;POǏѣuekWFS' 99 u_mFV%̚5!!=q@pp+Ui>;iz8::bVBw3x%F<^|q,J%~)-[iZO$#&OZbXoȸ!!!MWa}''g̙3 7n$7X3WTyzݽ4m\#r/Fuܸ =zd",^lM!""z\pj޵g^^X/urp(\ի|W>UƏh8ܹ-H~LoZFtd@y$@@^OaȐa2djժU66@Z (,]㰰c 5F$(cu~@hv7;޿/0nf)WYv/<6l3 3fʶ~"mW;z2/3Yx~(eeݺԩ -$4j(@M<}J2LfzO&G0{mqt"""D Eč7|d@wv: (H?~ZVx啙eGp2cn[C\td~y\LVt`]r[tt@#++d-n[vvV5NII6w-;z2xfדJAsRR5HKK{w͆~[4,__6\(dyhOQj-Z,;T[lu#WK\NϚׯ^}u61QAC޵k ڵ˻ͪ+eա7 ס>x$dɊ2dRתٚCDD8ϜTze}XH#3̍1 EEEعsa@on 0:5)M4Y_~ֽFц Нnֱc0FGS.pppTXS$dgg4>4iPww 쀷4BT\z[7ݯW#xzzYݮǏAjj4+,,4wuʶZŋQF}߾註vm(ŋjD`ۧ;TֵiQQ&&+Р_ꏪ999~Xz鷫[h֬>x"""DPzP`}􃦶mۗ9tuuE&gO~ߺu!4XҠvo쌜U}?wAqMSN(((uknZHRt=7cƌ&bu IDATkv `=? T';tSoݺ;4h4x04׮Ǐtb0777'*ӾPU$$>q̘_i/\NIa8\J%}C7+6үۮ]}&j @=֪}NVgkC D@m;XrV%A͐ףG/ҥevv8{4v܆C#-- aav 7-[v[}mZek[``3ed1 ^+r[O|;y^^۷?Zn֭ۢu붘4i,bLIyJ-,nە+q&:DeW$v:_}˗i7Ke.&O}Jv6$\u+1v'M6OUu1$DH 4 jyK&Ka4@VmbOFFcҪ),,ի-~nz[HNNѣzOv-NȑC8ppXEk ohlhZs*`| eSBCwbݵOF=7|"CJ5횞~Wg*.aϞ]Ҿ+ziIk>ƍdCٻBԗK)/;]ĥKPThӦC7+ !g(_VVabszϗ}45=&N<PٚCDDĐh#JN=+P' BRҥhea,**'O@nn4 4p߷*_/@@(MvPa aWп t쨛(#;;ӪJԬ%{n`d:ƧPv0ϼyF~ZkvPF ] L;gҏ'Ҿݲ/۩,;Z-<=u>tܹs$LsV=Zך7DEEB@$yʝ;yؚWM=nj_RgkㆳVBbuÄ?1̘W}4>$#={=7SNL&3t{yyyLU^/#F C{zrm۶꽬˱ˋMj(pZR;ko_w'&^7L* K.`z3rkڵ3E}>;; |fҳTVOT} b8(K#(vZ~Y7+̄TjWz˥wrrBӦ []_UW?xzzΝXx!ݭ)֭gVwJPpEDc7x ZlM!""bHƓX:}P<̛ɑgO㥗CbF:R?x7=" tݻwdu3&jO?ĢE o^o-JXcCincܸQkZnc5-z#F%%%g3تʶott!>!8r z!C7._VѠ{ Ris}xɏYHNN25oVe_yj9r(MO\t۷o\.R^XBh۶lـ>}b "v ՟JUlDFGL2˓m!$jpRYJZCKZ>AAAc-b 3ӶMzp/@7)˱+ȸc8PzbڴIu+ለ7ZW>yVvXKR[ ""qqz_`„+O P>5N,cUx)KOoǗ_î]ۑx}&huzzza˖xiHH?6<׳go|2jm;EEEXb)B!ƌy"5kWbԨuJG]h}kYV_f’>K$ԾY}e„ذ/^۷ 5oK|>zii)&?մCNYa=]?_dsyi\NDDh-],Fx~($&^4i>}xT*܇+W.֭txxxaM 0i4=z.E#=&j׮ hr:bHNN5 @} +?!3zaÞ{(rDE]@\\ $):vf͚#22Tj2CFeDe7..7oDq MbW|/ ĉt(**[ |:tc7 vmGl%v:֭'wYJНt"Ѹq 4 :ѣC(ˉ!!Pȱ{N@~ev3cM  =Mfu+K'Cbu|f6;ѓ#//3gN̙v2֭ocYoJǭ[*>#*$=Ak׷R@"[ EHL[7b_>:uyl?`G4kւODDDĐHD| L8o”)Lwzs~~ئM[D"6<Cb kշoW"**nV lfZ`̘q}o8pj8?gkrseP(DDDDDT.T7767qX҈!/DDDDDD DAsrsCb/NNvDDDDDd͞(Fwt"prAbn B9j """""& lg]|HԓUUP4h4`U0$B!b!İ( ecY(``Tf!"""""2DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDDO1K`J֢PB=  XDSJ]񈌼Bh4Z & 2$Ejm: 9E %%{  _@D[Z-bE~4Thy;ԯfq__wt1cbĎxHMy{.!}EY6+キj1 =0lX||\Ю]}|pLcuDq氷XW_݂t(ͅDLYuCCcVO~?p ?0 ={C_ Ǧ.鎖9g׀q%dW_}oݺcN@DDDDD%,Au+]ކN%A m>}#)) V6zoo'  >pqGVVnxݎ Q V-g@wT !""""bHJGG  5kB 8x1.|#GqQjƵCVV>t*{֊?bD0faΝйUż.!*S'?8;]f.9J5fKz6?0 3Ǐ_Cbb&7>}}7 'N\7yʬu֝C,se]IDDDDD Tݬ )&B̙^łfJv‡i+l6z> :!G]ĉ8q:b({ f1$RyYk$@&% aaG %%s4ȑ(V NT7V b+ն>Cb *W+O̞=&ڴ@7YLBSUOLDbb&кu=W+#))q=DD"55k$&f}w/A@4p+/Vy2B>Z\?==hZ,åP>?B}YˉŢj]!?X|}7ndUDDDDDD `Hlժn@p]1$>BntGPeBBhZ!}{4%K2AA>7oQ#Gu}Ky {LǞ="""""zqvGDv 7</1g@rr5]^ BcrŪoI: Je V jf|jj>DDDDDDDDVܷJýUNNRAA>pqCv QQ7qd"JuODDDDD:uY DDDDDD9q 1$C"1$C"U'Q"߃-ODDDDD岭{AhH D"bo'""""r}m.$vLNDDDDD岷0$>6b{;Ym.2j%\6DP9+Y6!m>'DDDDD`-5;;Y lܑD #p""""""a DDDDDDĐHDDDDDD jZ """"G%xn݄q/&Ewj`W?xBP{O8׭bC'jmhGX "]$PP(T?44ÞS*DiHuHĽlP(C"CbNH㠹.E"hj(ZGQϣscQ[p\v;WjP P7 _ "s_Ypyԍ<%JK۳Ct۵kԾ~lǐr,\' ӋEy8 Un[!bH|2{5gc@ ΰJ! V!W( Q(P.)\7dCYT5vwAkxL+@JᐔQd9N`Ò]an4jCݠTR!JMTGgU% X}(%f;>j9@ݨ1AD dYnrv>; Qvm􄛳3$ 4 QPT;;H !.(I;!ѩڏ(T@ƻf3#[O7M ]pa9e,Aٵ;lnȦ@WKXC51$>:4 օ{Æ 99sYY `B[X `Ɓ}pz߰E,T*h]\c/͚ H~͜ Űg\8-DDM;Mf!-0j~EAd<􄏷7ܛ4 ڴ4`3ڨ;;H#~(6@/99ld""""'$րW X wt@Ϙ0إN*T BV )t(޽t.]DvlZmA /օ.Z'[7rw׽Nn.$鎒>^bHΜҽN:8^5R:)ٰߺˠnaBզkVe]_Ifn./^ 7Zoo(;v|ph]]^Qҭ{ кBH6\{ 9 hjׁEKKUQZ 4u|j AAm(6‚|ZA>tUI"!σmMxDEBkn=w0m=tϷG`G}Bv;AzMQֻ5Vg8oCx7CWHV,SwV:4^7ZGaHQURS􂦾/4r;~_P499ԅQPvfx?9gzPv9؅0-U B Uy޻ -!B?CAٱs7Tt$":+pvr(y~Ѱ~}իt l EE/ƍf{{N WP+ @< ?] j_b;#g!_>l^=hvxdGhN_|K!1 p1lSODDbx*ٯ[ yBPXh߮|pW JN2S ^>-3x6 ɦM₂y Q~CMh*%Ul:n= =vp=bT0׭^OA٩ !=~[T!կն_w-( :ı ={p6 n?7:yTBv($OPh4> J%$鮡U RuPhO?]MY>yG=ה%'Aٵ; ,*3|i3 _Noԭi*ݶ?mx I:`>$Zhύpavy+~2CEӼo[Q}"m[S|G_DF@٭ܟ h4D`B^_I=]@yCCꗎ+C/P4i%-;zRZ 1%} 7WwTqHݞ]%GΫU?DD5լ8+ Zj bh327uܺddYY#T*j54 4IX*YTղVwD8#&> 8.] ʹld{0j]]zõAmU׵߸^w@U|`2~v)X\LtlrcrY!2$C_ [ 4[Z/U|s>$ }RqlӺ͑{t(e\8AQ= :hP7l_יèsyD߆ /gNfQj кA6s#|AnC +߭*Nfej=*TO{ #Gn= ZA&ۦ?_Z5 )FKV\/4( ͨ\CDĐX㴺@TX.GLBoօth23!u_N*J%"t(-4UmY >P0K> JH=E 1.^1 /_ʲISuV3׎Tf]kA~?ANи{,L6c' o$OݶT;}OMDRl%C@`>o%?R='O]?Xkкjȡayz:|}Fhk=>t۬np/!}@gֶ>@_kgo~~\zTv;fV8ѣZ?DٽV4um/ǾPvKGeĚ>p)F\CD 5fvnP,vR)Tj5 WZZ.R RiJj~Rjnu&͜;P@r?HO?!JjoqUdsD0P7nRvIƝȊf̺8֖Pz䨏|spc-Y~PX((a" ZܿJhfrw!QѷVSf+`8¬Lc/A;!JJm v{C!9up~A5Ru3>:/5sl!> bDI\QQg5 ),27yOuԣ߱54jYwf}ř- ZU]/@w}b}@ANZgu5|NDĐXC-r d2HbhZjHbψhbQGr ***!qv*TT e^P?iDW!oBTs _”{:Vf]}+K6O߇ ' =|@|@cȇ=Lt^H?ۜbET ֝fW8 m^BXW>ҍ7@#R]P5a|/r{8sFu9# z&m=m]~S!_!m|H|?wyXR 'Z&)'8$@ }|2.2/ߐCΆ{p:W"w \mo ,30{tG{_9E 5vooN1@JλA"``s7]p$)$rA@{ò[,˂KCjn?Ys9k?? yx{Ii؏~\$s㛿_;rF=wk:&"y ó}?LkV~<[9 a?w交5ޡcHm- {a1sON]]BvR7h; `',C@4U_&N??8r]p'bO=:sejoo lO 85}fQc1ГЂU@EP4T^7dò`" U(G8G"e_ͯmo~]xPUT6.iy;3)Tߍ ?&3]w6N<wo["B}PmF_Mm!vH7\vYTv$> ga?m]y2]daOg$8'j:,; ''< [޲Ovm8TߤEYHjh۝"q.ǛN MQ=8^|fA"NO.":N,UסjTӄy4kH(ʳs;!=ڟhOXi 7 'aF6_ 'O&Ȗח: [,  Vgu]KA֛{jD^85}֕H|?Z uu񥡈7t&2F^,d^"$ ?u_@^hRcAG7dѳ[_2;V$ ؉23b8A=[oEa?8 ~oh?9ؕ}O Q>Omdnj{EDKqiOx`PTA>4z+VM(2 &/|8&ο O魽 O~ ?~U{doc<A2pv}(ol4}nޖI|SMgkȼyᙆOԗ׼A&ȼqXi,7Qxz-(-WH<wu(a҂ @%/jMБS"PXW]yɿ B@^Y`LCυv^"vGNm=p?8pznu0_o~127ZDcgHCڿ;(/{0`E_0~(趏n{y6v]nn4 )T]]A淞!q {m߂/嗶A=EjX"~q硞X @ 6sa(AMfʎ`K11y#E{;gŸ - 8T~˞s!=/~ '=iBMo mk+BI0 R$/[[bc;w,x72| +q& -71 {cwoxc])OwY`lm߃P;z:-s8Lvu`T?XnG'BWò]t pWo<ށ|3Mo)(#G{Dl^qr}9,~+?#0_{눃.s ?0z53#W1]]<߿ ς{yۺGAkݐEW Hg |V?1<u۰躏XԿzk+Qx{91짃{lC?1q[ ^l{<DM$>Dj@v'? ?6ԛ xw84Փ M;ޟ 9dz|p.{M022Ij(d3bUU> $I޶qJ,(i@-ņP*lAy"7yo:ST;sۭeY<6u,u8Ot/ ilۂ8AD2lzFk<Qj(J-˰ճ06aY&T5O,aҏ6ndSk횯yן/C5xH$J2t.Ն H$lۅiFj+{J2xv Ba c||aX,lU LNN"No뚾7􅵵5T*vQҏ#`^B6(rt]>P(طo__ǀnA]aD 2 AX6 )mn8~47Z IDAT]uͲL,.D`Yd(ums 122ZpMji%(Uqp xa(I$ UU8VWWaa}HmrK HuQ}zVtj5Xd2 EQ0Lmb\,///-Yktc[VU0==(ZaPJkk+( DQm[дk Q(,ǢDȲ `& rcO Z0Ћf&Ǩ~ӍFGGi:ǎr =1, T D(˰mR4 nǀ~~! v7; F"6\7:8Bp_U0ฝ 9]^^AEҲ{r0 |d >Qim32+c133{ʮIաԇ) ܭAF[~_ˈj沋xҧif|Vg<3⬿055Nclz_~; n]{(An܇ FGGL&rbEEIbrr'x/\3$) #FF2 d2#M"QT@ԾbNF}~ a$h،0,t:|϶]aoT]ne$v#Texi S(߈/Wihm'}'ʴ e$IobamkQȪi-vQDGavuj[إ(m]q:.wc"􃖛L` :A%Yߣq,E>òܚ j^Ġ>*18oJ81 V`JLw+94$J%ˡ8 Ii(נͲ6m7ߓئWB6%u8aL\=pۨ 푕evkamo"W*eP$RdY'l2SY5ۉhlа?c@?nlCAH$8`gu/&&dضbтSԽkд~FLeY4D}Q'Ik3٩q]Ql즺tHl]_\,7N̶S(|W e}Avs3Ϡn,cjj*<ϯI&Sd2}[A[SG٭t3]6DDyVM15O""Q8vA$> ;i\Bڭ+aXe}E!BßQ6[uߪ۩bÄ +ǃ,n DZH#Ev0Bkkeoޠ=nwQV nƀaa! H$} n"/\ezT**Qq8 jW{|p2q-&'&xeM| 2r`Y0̶BV.mlmL]( y!ߥvH[-)I$IB&< a}۶e{ ]9= nƀA˝lCAPv~nE"!ּ}{ ,~mbw߯OnogC)P2#t]o_|,--"š, aHàn(m'r8ϪS6 uY*ڲR)lyYNڂVE~R) lWz\k+Z9ljɸU ;VZcKX\<ٶmPPҿ_ðŘR)|}KCht: ]d"D"'dY'g6p+$k4-_QM9L\)EXYv} T Л便nJ ,󰸸 0L V{0]VAPlcc_7^?Fbeeebuux7X-n84a>,2GnMYTvkNb/~S[3V*{nujGZm6N"g ^0t F  y,,caao8pA(|߯ ;iڅ-.4MNO4[5JE,MPp𥥥|* ZQ;aiX[[V I 4xtt,^mjN6یA5T*\ׅad5kƲ&&& ۶q< 3 vFxYVNQVaiM31 YNu)H4MdMQAA0 dRmGkXX]A n<Ȼ6Ћz^ܣv0Nu],,מ] 5Qn֎5,+u HжmCuA1;;;4/b/h hݶ!uv A$6Ȉ~&ӴD6 Z$$BjZO"3aF<#Ͷ\)ej!w4q833뿫i*LbzzJeu1Q,^I8jS6d]n 2,lwVO&sd |?|&)2A\AAAtL\CD   D"AAAA"    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAA L0|p!8 p`YAAAH<-4j4 IHe ,ː   xa uo84̈́$LJe HAASrYC!a0L8 5̈́p]TbwzZP(t`Y } U.}Q/۶8pX#vI.eHjwRrY1555]ɓ'kϕ9`#iP(m0 4GcAE\`9HA~XaY.|_GH nnaPeTUdYuvރSǁ8۶z$%pdOA@Qe BA""܃{2ry@Y y $Ca= j(Eс(%arrpdE,<A:AH<j "`Y,ˀe0L?eQdi. Å,enyڤ߇mp;7M.8$H3 A]נ<ϋJ۞ (JlY&TU:``eu`j2pl.DPT^Ǿ4Crs(XtIm[p,BD$Ɏӯz<²Lx I $6f6\׍=@u0 YS'0 Q qܶkY<۲ ¶uuUۻZ²lQ sPUB}f!R re|>lvLEY=kkkTM+Q/qOV"0K~yh]5ODo<Ķ?|H1M++511::lGz.+(V[wdRja¦i:XÑ#G:6+ Z/oV5 ZZ?"*2XÇ>BuyGJR:Z:)y߿Z𮭭@tȲma>VWP^)d2KtgjbAE36oٝ>\n inW l##rum@`߾}4"D^ƲIӐQ\,`YɤcH$2}x^r2L&(  *<28N&O"!"\׆<+##mPȣR)#T(I0 0PV.sM]x؃(I$ UU8VWW}~γdY-V u-VY$i= X,BVŻJ EQ lۂ+9@QI,+8qE2lۆaT*]/AH4V_?8d2"$)L^blzm}WOgY&&&&‰EB!nCZAQ1;q\A) L=T*ab"y!(t\.lR/2]{+OT4w766'`6JW"z<j<)mhCљbuupBd9lv`1T0==0aTX[[v'!2 À-B^/IH] a055 ,$+p~Iɱʲl5,(& ,.FGGҘ?`D K&/ B z^}\f@]LN*yv$$DaЍև LNN7 ,azz,"aXd$014L;$;27I,2XVQDgH&]9i=W8mj{|@Iihd2鎼3ѤZKUb; V]e2#Mq,fffbvb3_eMҵ4 Fm.\Hm;#{fnuv)0Hя1{>ƪLf)$0S/볱5JA"qϲ^ "1>lCh}(PzBC:zuީhI"!!~7JX}o~}r}~r (OĻMqJ=Hjm4[sK3mW6Y='XQzy%gVlMGFF4<2JFa G~[y]W&d7߳msѯun\ 8|hv~ e'^E%G"3 np>@> #iI^l%X 2;кӄ-Ĕ5д* kxbLds4iHV[ia> ]a)IZ{?-àjk[ q<#YHXn(⢾4jivy^v핱 Di uOb&\61:@&,  :,i]X+SfyIe 4 IDAThxhCh$gawe\cM ~n3oJl6{I2)>َm|0aY.FvkvWY=ϋm3Ⱥ}oSyy2gD/e0ǁeYд0B]͈(f'ڄC'sXEA"q""dP W@"1vOXZZD.C; 0פ?|4LOwOɖP6BLh;i߮|?*RېRյEDZ*4*mEYt`,~Ft[̠Z|v`=ԋV rQ}t H$Y$@Q$HA(YljDQN3r\S 𱲒2H&CPU0 i򸴴٩DDGT*JOat:{VVژeX] ͂sAuy>rb7E"/Z+AURm:<,..ggu05QS1QȥaqV{bo׽J?:汪Pcaa %".'q@(J6X,[o ϳ$!~*%1 ,.mۘG"!A̷(nzzfzǡKKK^U(L;8 $\|n ,dz(W011eض'H(Ev 㶸10jsT*emtʲt:j 00?{űuxr;giAH%,d2a,isb)0/|g=kA"x9'.yd١YU334QAc1==J˲h?I5x`hN11112Eݵ5xT&155ݲeYAZyO8''Rq]Hp c;#D"Q,4͆s8v3ײG"c(=Exbm#_k]3PǏ( <}'^\Ϡ^   *ekCMLӆe9m5 (9MQSN t݀e88Nզly <ռ> AD*ð8~\T_s8v엘;G2\DZqGw4mAx$PySo0 @8ǁp(H&S"*`Pu% gً^sψ^z,B&3D[N̟$<[@Q3^zsҏ>* 2fO C¶]8[P -Gcp[wE()qw.?8pB/옘"b{X'{O{! ?h6:$Qu3">CepcI ػOH ޠT FӽA$ ȏː&f%H=l"A^,˄㸵0+j?^ D ý6 =t>"A^j53B3ҽA$ "HAn$)<2=T b0P   6kh    HAAAH$   H$AAA$   AAAD   D"AAAA"    HAAAH$   H$Ӵa.   ]O&A뿋[oo|A Qo:k\p]Ύ  :Lt-/a$0 p%+x8G`zzZ)AAA, MH$?x$^ q) q< }omϳ  0QB&3T*I0,<υm0M4u8&Tt/oRU ]qx_u]g?_?}ᕯ|u߷m;ovn}NzKv*yT*> %LNN{|48Ǐu}=lxɘ$ϱc5$e1==lvt!o Q!b<PףT*/ LӠJ#8~?zXؓy7bx[7x^җo' Í7^p׸o!I$ o|#Qa߾8p`2V] JADZ`PjG||O0==q80s8̶!4o}_T*С#xs_$9_9~t /|d=AA$w 7q}IdSx#SP*YX^6!(dY/>]xA0ZBa?GE$x׻އ\oq${NضMF&  H$$7q D1Lffge$N p ULꪳ'7 Na",K`YA{p ٕ}-W%,--b|җ{~FBD\xb$I~\}{e]]] 7\rKpW#t\gE|.Çx&.m0'"\w}gy߰iٶ|f&7|Jfffg>^7/*VWW0;_|)gm _ʍ֛isιxt:=6~?_u8qbY{yx ~峦;! I wxs_ɩg@"u1 JG??al >:KKX]]&馯\v{n'F:-_'cnjĉyLOsχ>TλW]u59J98͡};߹z 17w\0#GRH&yRښ{aH׽CU+V, x<|Ak_{??i\{u8xrm^(JM;qb|yi~ǫ^8vWMzk7ev8qb{ݫqM_ozСø3]Yg׾vK߄M/xiZ׉k\v%~aB<,kqD0x|{ر_Kֲt[o~4Mkz/?{pUWwto}_=y^?d忋b947Ex;A8q"׼?QK[}_/~~ۛ~^Z]v>z~WǏkN:ƛxghm~Jx_|y_,:<3}ⳟt{z{{qm?mf !|cG8gvznWwQQmݥ4XEE%v$јh&ƒfbh4FcK>-vŊ]AD (Hg\Y΢9{ܙYΝ{Su#**ĐVGWsm+ T 0 &O N9x:67b]׈JRnA8x+G7br&D"3Df077X,BDFFs%\Df {{`۶x VC H EYRR =JA^RsΓ'ODh5t8|ۍGQ8uɎw=9O$}jժ#55{[bh/[>zcoߎEq$ uFHK{ݻw".z2BC:hggM~Kh,ٳg?FСC8~[~8Һq:L2Na8rر +qf4N¦MUпdeeݻFuwGR#|gG}u⧟f`5ܹ+ڷ;;;8q ;vlÇ3ƏvWEvZpi> /sxBOmtv8w4Ξ=A|b P6oގJ* }ɓ'"8z9s fffXt|q>-- |0Oa1x"r9~y}']6}]4[h^BP <:~qƎLXޯ@4kO$BP(0~BZ>شi;<==O3U:lb̘1M>0`j?!**݅{B BعsWZN%ؼy&O}rco}Ò%+ ՟|b̘}h)coз{HHG\4of)ꉱu_:.%l/_ܹ ܧ{1b tXhvDeY`ZϞe>ꔐeCnnc5jZdt K|tݨ#"" ʕÎt米Sy߿w*ˊ*w`cccѣG7fbK, DX|uw-̟@A7 5tHm*hxT*U W3*@Q>.EVB:uOI[gǏ :b1,Y''g,_ʕCvv6mZ넟_Cw#>(tʲ I5(4--ԮiZ}@qʣ$'ŭ%qm{]TW^,( MM\9SWȐl[@,AC*U(UQp71BB*c޼#dI,jiiss3H$+4 QOX/PnhCɘ~ T\ {BB||j,/ѐ|.h:tй~FF+pwB/e}C>xpRinnMMua뉩F.k۫d2\~Z-Wi]A"\*ÃBB,(Jdy077Y8ϻhaϞ0Ŀ$ʅ`|y{89١\uw$4hPtÁ{qiX,Y+VX9s~QyC|/7_uChU}ʘMZļ<)ߣH$*AbIL&#p^kAݺ?s'}7DZ𾩮t_lX]׾ YZZPO[WxUuWօt] ^3E,֝^Mu8QRAS֓\^W=%**Ok׮u7"u "dR>>U]P(r!)B!G^^~(K  9,-B077 E Q&֨TcR#888`Р4h( ""°cVl?믿DVmzT*czyiD6oꋦMc]ZvDzeKxI2eYڵkF'ĉ_n_%VOj{jgBB<5\ݻZ~UZZꈉ֭ƌMoU+TqZXWYV p]ݻwﵔGIwI֓uS] ZZ'tKmݺ-uDe1qZP(P(r!#m> IDATBFVV22ґ̂ dff">jמW@B>_ 7%66FrΝsgTŨ_f 'O^9t˃\"X…sBw>bI߿@33gUJ[9*\Z 4&DTT.υZvvv<źu@9K&Mi|7ٳg87>pЭu C4o+5 iܸ0/ 5kV(.zzM'W^Rέ[1Xr9`̘q1H$jժ.ڵkʕPF<ryI)>UQ[k^GTׯK|P*!I  [bZB{{+UGP)"?j[f-pyJܾ;#'''OS'=qy&MshӦ):w5!Jqyan~iW_M;z[{a߾]ͅ_C\:-ub!ؽ{'nތFNo11 <8ԭ[ax> =zF:uMVg7oƍСڴi5j"22OBNN6,,,tJlsqqEZZv*n݂&MD={Zh}GF*cٲׯbbnUhҤ)z1Ұ<~Hj׮-[6ܹ3hZAŊ|ׯ͛ĉG[o5cE8th?Zjmۡ\9{;wׯ_صkr0(w?Gb%ppp&/z/m+YO5 BDv:رhӦ)u{˻ƍH>|rUz`mP 1->'' ="d,/ҥ18w.d̞?x)H̟cJԮ]UCQ*O QQ8qJê_Xw4n\_[ży0g `߾*-,,0hP|Tb%lܸ |!>Lľ}};::b͚ظq_:_ZYRReѩS|X`."1k2gXf=ڴyCzz:,)))Z'66 H$7LӧOlŋ$F<+BC%Hǟg1uYغu&N89sJ{[lD0…KakkZO`]*7VNiO}Tk׮||ߖowsSeH~`֬ʋjÆyaӦ8lg>:_y$ ū;۷q ":.PP"HP UzvG:k7BǏPBEtEwx0˗g5mN4IIIc ԩF>HL| bM8r=iIE\=۷c!E89?Q ֭[ HХKe$Қ#G!44\7;t(r]g%K~Ef-wac] T*zB*"(8.]T\5kzs箰.Uuw{333Ԯ틞=XML|gOڵ+FѢE+ܽF2ݸq-Gtرz}؋aF_GVVv܆pFW@@TV1b˗d _I:yg2#R?؍5P#\Y5jTF*.fР (<|}dqȩbSy9HHL|jժk|gw=@BcaNN"}1lHfD+P5Zڵ= 155R amm [/oJQ᛬`(1~= 7*`2$‚?ۻ.4^. kמ",1ƹ8$f..pq?++99RdrbXZ?1zU& C"l ʦ^asԩϯd29""0wL?b'Nf nnZ[&1Hs66Do8h Om,_cǎ'qɢi33̝@[ȘV Mzs$D 2\.Gz~hݺ-3 cfa=zF&Ͱb2\vw&@&re7h#G~jժ3(iiiW;wcfCY| \YRk;daaBfw """""b Н"""""" VVDDDDD9$Nboւs@I,EX*s&)\o=d 33q̓2$RDVVPƳF"acc^{ EH2dr(J(""""2XX 331,,$3$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDDoQ>) DDDDDDf DDDDDDMA"1H$""""""DDDDDD $D"""""H$b"fѫ  NgǎMr'ơQ#_rN+k\Æժ劝;?к9AA|y.t>yMDDDEk/C/gpź ׆m6Skׇx]7.~M=mQ}/YI ii9ELr"J 4>23wqf͕aZرP(ѵkltEcK#]O^QQNN69;@*կ:/?!4>,9]* k|_|6~Ξ;‚=P(q7.U`Wۓ%7x]mBٔhꓓ3m}Dt4Q(0""(Jir,q}ܺu=X(J[$HD"A.WGזS5)΁t_]xy~b"Hi;1mu]~`Ӧ+ؼ͛ԭm;StϘr7&in7606/^W٘\Jgn.}"|fee򙣣5/˗'!8s̛vvjohVxx8a! '>С .}Wğ|h~z)_ZUa8pQ-,$ێ8{v¦b˖[ysOPNXo;bߞXf ^aaӰohjUMX}wի_ҥ/0ztsa|ڹ4lX?T׺@DDDu /}g|mGm5rǾ}bz߱c-<8p$|uĂ^7` ,Z[m;A6>5GG+mUcz k` ?O|۸ps\>{Ԗ 'Mohxy9 p'b?Eꇱv-jLYi*SKmm-Pv"?nn_LvUy+T>[=89YcM3f5v9,,$Xnb1 ۈib1˖C.m2d %6l #<<AA4' R8q 'NBNLk~ @Ыןw/-.\Çi9kO?a%Kcl{EXX",),Q< x0Lʧ5]0o^wi """iGD֙:=n A׮+aeL<=tK[;O +N[ 1ݮOQ>4)ʥT aQE~&OnMzϯ2&OރG OU{ftZNN֘0a'BC 88SDTÆUиqULWCd#|89Y "!!x$ O4gϺ8t( RYYR<=]=zԩ{d|~cZ߿ kYa֬x M70}\|}{(m`m#7qP~;\ wwG8k.]>IIg:{{ƍGx4KƍGx,[Ý:d#&?DE=B͚.z3#J%jr+bb BΝkS'-{m S'kՐ9 'u""TIX//';wǨ݂H$B>hÇoһ3<=1,-Ͱpa/LNpڏoqf4ʕ{z^}T*7Yvɓ?5>LΝבȇ1 lm-p|ɎeL4E{T]Y%$\9K4h 2992t#܍;p&( ƍk%|9'Lh 77w$%>mD]tL^Xg̘ppB``,lH;a**_qqO]an.Hŋ,O?…8l|sW_u@B"aW[[ @Oʸ8i ""*K_J0%~ pqSpM|uGܻDTʕTFOT(x$Ks1cqfs ]s߅0eŊ0e;y1bcM644/pwwDFBwзo}r7t;Sm3 ϥl-('W֭#.uyk'-ѵkm!Bn@~ɓbž0!D"r>d&'gocΜw1p`C"ᱰ:2LŋC*|u=zx1ȲSb}RSҥ}qʃ%=$  ``׮0tٳ0j8>!!g($B;]6mc&'u""…x|AL|))pvÇ8_s1kwozUر8>۶SQ=>tJeӧYOD p^PgƌiQ䝷ۙhl{T8C\,QZs^.pwwč~ʕDݺP(whz*L<999|}+ J uT"#"99SmbHM͆3Vu3wJ$J" DDDe9]j4$ ֔oETllQ #IDAT%Mo\pCqLfspOTw寧%6,NUːL,n{ͫL_t3 A"1H$""""""DDDDDD $Q6f.@T`ΓHDDDDDDݔ$D""""""bHDDDDDD A"1H$"""""b3+.\8i\~c#ΜYSĹs5ƌ @>-ѭwok077C߾3lѐ-[µk?͞=ݺ5Qѣ9%Kv!##GvK0j"ľtkSVl5ZٹEDDDDofy ?ppła]de7v+VtkτrQQV/4/Ge-rE7Rm\ k\iiY:U#G.PRĕ+1~eSe jfʕ!A+1ﮮt]6b RrD1nmtwWoaؽ"#ڷ-\4hۯebbɓ4ӧ\O=֘1֫┱1u@WzK{BDDDD| puu_!6v-`ܸ2 s̜9!!q:=~~Մ偁?Qض;^k8uj7 *j fG9ĉX`4$Yd? QQkp_ؼ+xx+UMͿǏC۶Q X~ nΟ ={6ǺuѼym^SX5bgOBBu?~|80 :4Į]?Ν ux૯"<|%Y%Kƪ} Ǐσ𙕕gƤ5'#.n=N+ӧŦMѺXn0*.møqSm۾֪ŋ̜ImtT+WNѣС4|:|Q7B6J_`ԨIvѻP(رc:,,̍οի' ÇG@te _#H͛={I+1yriSvvvQ[͟QQwxo7\lm;wi,ڵ]?8sP(pOptE.bΜѿlYWs+ND"Ԯ]/S,V̘_kz7NE qÆcؿ?'cT* W }E":b%=D.Oܹ…(ѦzJ077æM}۷/͛n̝N}U}:بQM4kV~ .DxxƍNNгgsoϞ 2e .^BXlrRmk燚5駿#<<߯|ԖGo'"33II};Qkkԩ8ujΞaa+ТELRif!G#"";vANӧX RS3׹eHz ̟\Bdd<&MZG.F}OyƄ~˓ KթBwm`dr_pC]m {ؿ칀Sxyyrۮ]{}¼y0d*˼i: e!22jU1:,ٍ5лwK4hP]mS8|}=p}$' G+w\iQq)mJ2dɑ" PG'L66^Zmز%dCDDDDT>I?~9֬QQ ̘7n$l^ƙ3ؿ} 77g$'aذz]*Ô)k}wgyeXr""VA* _|O{f޽gyWoر}*8bh[~]- LňaeeKwCHM+oݺ5a(__|⍯WBĪU1aB/t fXJ i \@JJ&\]0w?|8""""ʕ+Ks--Q'WkyYz^R<>MGHmLr>66W  Swb7KFJJU 8yڼqr*\)4HWe/H|ԔGfhڴrrr^yP"#Wv>DDDD ü*ܹEػ7Fǎh~IFDzSLH$bdeb%v-CDDDD AbYdoo+#55 I*S`D"""""";1H$""""""DDDDDDTgsQIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_JuanLesPins_page_0.png000066400000000000000000001454121420322575300301570ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwT²K/5~5vM4槉!(DA,]%ATTwa+\v6ν3wNs,  JD@K9RcŊݻwkر-Ҩ}WX5k׷k,XФc[t̙ ދ/X\]V?jCGСCXݝWG?;7З_~)I k{L7n$HF=zh֬Y9sk*//oұuAmP-]TW?\6aaa1P߾}5c O_~yիW+//پ///bZ?hIޘKֺjUeee{xxA׵O]5k?Y~6o\x~}kzjj:==]+22R5~UW]U4mjjJ7 u'9gK@tt,Yegg3_?'NX?l~z1B~ֵO}\yڹsJKKui=N{r>-YD<<]}ZhF]ﴯ->9Rwq>;\\nݪJ֮])ShŊ*..ە{L***?O1e>y[_~֘㕤 /P۶mSIImۦI&5|DGGa'OZ^^q)cڴiFBB#a=z0$m6cرF~wy1bbb IFQQ{nc޼yѣOM~8r!رQRRb>>ƍM+V^x1h 㭷2N#blڴXl1p@c̘1Ν;BK.1s(11Xzk;c,_oŋ3Mjc0QFeh\` 0غuQZZj03fa&LwkJa6_p[C7990 8z1uT#99XpQ^^nի 0袋.2:Vصk1FC-[LTVVV ,u]_~Y]tk}UFFonڼy7ozkVC W\Qmi;v(--ۏ?}]{5::r䈞~iynnV\Ǐz59|C8qgKLLT=?}=l۶MO=ym߾]'Nd%66V2}/hT >\SNUBB\յ~}twݻD)ucSӨqݮ[n.9$-[|>h ݻ%ZlڵJMM/,oooY,r-}j:ftY9s(++Kcƌ1|r?~\O? '|bbb4|pǰa"ժ`I^_j-xss6(FaKw򸬬LEEE6m,>C)ܹs2M8Qo˾`j{+**tP͘1C[lq>goFk֬4M2^RRo]˗/7V\\뮻N}222TZZ@z:z>}Objڼyo߮X=H6FffV\'O*++Kњ9s+`gSV0`´qF@d% DA" @ H$DA" @ H '`XHA" j&D DA"zpS$JR IDA" @ H$DA" @ H$g@7; [J*A"=3H's=3H'`g/6H$Y HH$ @ H$DA" @ H$DA" @ H$DA" @ H$@ H$DA" @ H$DA" @ H$DA" @ H$$DA" @ H$DA"  x6!ڕ-[YӧKI VDԻw BhSQa= ĉ"Jp7wW$rN0 \'OOZݻsԻwyf5׿^jSD^{|%$&?\c "j23K4cF C)jt`xcArU࣏R8TTTA}IVR8UZZ)??n͚tJ;$ڬ^AAMII^֮Mӹj'5GyyyZ𐧧\f) *OOOyzz[>>>lA"ԢCBfrUTTWp.7򒷷$J2GD8lْN*!/// VdX*__S)$$[Ik|||D0Ab[E^RS ձaދh9ip(,LU~~e|TVVjm[v]~~UZZjPee Ða$eeef0h׮D@͘mU=*3Dn=%I+S~>6BBliiɓE䔩yg?-XcjQt<#DeesLx||wR*/wO $RU֎ WX0VLW_aC$꫻w%Izz=$z#]zi$\G/ic<8B7d;W7}>liӾӡC"ͣ}Vh 9f܁6,A:k3u4eJGIٛGim+x33D'/r̈́iCF;8uꢏ>;%B8Gѓ6\NSpmc~~/=q瞾4eeh9aWtR:U0=OObbtjz˪_I HZ;s_tGhoZ.C޻Ct4s-"0!Ps>tX?tSM` pCw-Yr΋ruٲ%cd6m6YU{k&MӅF(8'8Q'تsXkC5kfڨHl z:U?i>nڂEhӦ3Q$ ms-aaފPPN,ѣ aZԩS|TY)=ZbM jK@j|M]jC_RG>04dH<ꭧTNVQQӋuh~xھǩS(nT]hhٍSlV:7nκ؜eם6nҀᒤ|e2* _11~ԩZg{ (/LG(7Uͭ r'ɶH΁Qaa/TzzqA"{飡C#f4'`zknɓcnn>>ӵyy[gO C%)11XꫩzT|$&뷿#8ȡ\|rHoO99.ܴb͟S$iZ䘶lvg$%zjHy{;~'d1^  3X'zZ:Ɠ/݃{w^}uz ̙|\>[bSW$+mZzQ2~N3R]ڬy}lPC|7.F{re_vY'M I߶kǎ?>Vߞ=|==o5ujBBݲ%[O?M;v4KڠzkȐI;aWagݡ[[]>]wxkW{oXޫ֌@&Mo_ãM oZ4iR>xlɳ gk#;sMӨQj}h_w^;/LJJ /0fHsh]$[xcw-Z4^IIa.?6o2j<7FiԨD67ЧS߾!DG/__D{>GָMcʮU=7Tf%W %W=yg/{Բ[5=-wU9lΝ5);v7 zTԙ 'mpmj.z/b쥅 /-x/,\x mm;ڠ3]I5mZw͙3P>;5&=CDiѮ]9Z&CѤIq/<7o4(B??*-ԦMYڵ+<)LNEz١9s pKnnY w}+\}wu1gdNByOa/* SO>9XS.WQQˎ0sG˪n݂t=kM{]uyye:|@~~0 Bb}#uM?ֵ(# PϞgNxӺuJO/4ztvOZhy&8p _?xJ99e1fo@l_ŕuew<}qI҄ ˖7{b+59}ii·7k.?>F,9f9th&M3L҉EJL VII☶n͖.0Zp6#vkiKs瓽l>Pؑ 2URRn݂.čs5k>@+5lX$i]{םwm$uΝ{G?F{ꡇ6j߾< ܹ <]*"GRw'й]qBz-=ovȑQzaZ-ՈQZK|^~{$[{믏7:`KJ sfTC#䓃%O͚[o]*l؇IM}t{n4HOٝ2Ǝ1N>~z;6FS;. (~{B~{qyb]Nb}Y, ]I<{hhc!ƏQVVwpO?=3!AA^ ㅚ1#E{Ï?>Y]mnkk]SsS6&8K5k1`c Trry&řbZo2V0_;ka8.(ȫ6ӧw13ە_$٥?|zNljzef8Awwh۶n9J͝ D5mZ78n))'[W\ѩEں5[[fkbA8pD@58I`oi:?ϕu]gNMڵXjqz!?ԡm;wK&䪫 jlZ={Δu2aCfW8\鞼6 ŗ.В%Cz36 IDATҿA"q% j !!ZL{t Thh?W9?;]Hz˖l~~XqmǴeK>Cǀf/{jo--ҥ΃Ĉzo]ewH_}uΥ$ӓ=WׅXv]BkG s.O.٬mtEn͕Og{ucKa؇d h'ilCY^^}FeSП='-8sgH<3D>:@#FD93;)<ͩO3C wʩe;v9QdO'V GРagjUMڔTf ֤RO:}ޝŋ駷꫿ӪU.dž:yy[uEulkٶm5W>>XYYn=fTIld-a'$FE۽{>pL:w@G9loJC?IHyz2%^SīR۶ekÆ,^͛m2r=6=I!F&{Fêw崴bUVfdx22ZB%%{ %$(>>@ )*:58 O*r.YZk٭g&q򱡚+Z{6Z<7vUhd h'JJvy=:٪ 7fk__CbmՠA4(BuOkczT.Q?o9 b%I׿3V_-]Qa(#VV{KHn=Q\_dU9uyV ꗆζsG]he9ՕU[hGNWUu8x6D0eF E9I]Wsr`st ر13&Z:,0嫛nꮉcu=)Ͳzj TP""|?ܹ[ܯvof w-)>_>bܙu`vzߺneeՓX.ֲ\ZR-mn61,u*jmiAAyMHݻsZ?1…{p^{jp qbo2._<2@7ג,ы/ԃ&I2AKӺuN?Yy:\i䓃\￿_ߑ:elLٵۭo盧]Z[Eh5Fxw3:tNm7hIL\QιorZ^ة_[=\5Bjӷ?`RTA=l>ߪ$$.U@l˿@s'pCYUxOS'65nn_kj.'Qva["b]5Lr>`)@M}m;s\F(:ON9&Oh޼VqoKgٺ5:+ȑ&'Nӛo:_Խs@ulu-]ݶmټ,u^`iMAKE)@WiN|Z=ee?JV]w]:h]xat'hϯKBBMi:k://r|.1xcwoݚmxxzZtu]n,w'[Ez_O![;6egҠg` t_RV.f6HÐu|s6o__皑aڪZ@;pC7'ꗿL06ޝkҤ8~ ۵+Yܫ{mÖZЧ6OE[-7$Ü_w"55W7fキìU%':5k]pgmr"hmcS {`iw%k+HhyiѬYO)SΌ裃&ik$Բeǵzuy `YyxX?d\\mNwfts9O}WԥK\\n,nmݚfrCsl# ѣ꼽zo`<=-2$B2a/VzfM|啑Z|rvQIyD|r=Ag'p0\1zjl=pݺw.Ԅ fgxn,.ooâUYv{ <fwA;vѹsyf:voekĈ(-\x?|}=aQϞ9<|ڷ/! lEp/Ðfڤ g`Y,2UV2Wٛ;sDxcvM`f3'BgHeeh얹'd裃暮un[TT[ F(,[VqG#QVx1~scrWNN^xa$i(}xed\f`hkꢋ:Fj,͙EǏ68oC%j(>_O>9XǵjȢEGUbiSWWݓ'ԭ-~up\ 33s;t@>@ГhJtmGSԯ_ p/G$h"zVzzfޤW_MդIq_;SO]իk\8$ڡ p!n H$DA" @ H$D)ԢEhx|srKs/tmA=̿zCC}46ڃ'E꫻G@;^K'&˫m^oxh/vQLV??J uc/I;6FuQ:(._:p _e5Z-'$(8KYY:~5b8KrέAD,ܙG-}(xXfYnߨ=h7ʴ{w$_PyzC޽CCDz70Sݺz7nREaVQa8!P!ڶtm"V*O%%ij۞w^yExݺ3ܙÿ @:G@{'IZ&Ckf C@@O"ڕ\rrxی%IZ:]ن~MJ /$W zѮldaQrr{o رBu#4jrs(${*99 L*ս{:tUx$)&O#GFPJJС=:Z:Rۗ>;Ɲpt0u8>]S7'tpAxyY5dH$駟%zQ'LULN.޽ :)yuUG0lylH' uPxch„X@/>]-[w'_cԱJK+/< RlՇVُ_ q-;tդIq#X:yHV)%%CQrGMI#wԱ;3J/oo.0ZCD("G%ڷ/OKSAAy `.ծ]95&ٰ!K%%vf[;&$cG8Q)Sջw||:zP~{B;wZ'N7d_w$FFh(1eyۘ™F5ק#H'ƩSUj^OO/6;V)i `aS/R㉑ B_ӧw]zzk˫1ՔNM96O}6AF\Yu3u?LYGկegj޼-Zdi׿&;V{\gouuӀzz=E78_tko~tYW]_o26olPZZqdmyԔ4rWyiJ454g@u_c|fJw҉EogaZZM7uwQe)'w޺zZ*M RppI-:y󶨼ܨV'Ywmj -ˍƴ5ņF5;kVKzWTTmt=\6%Ѿ\vz*((HAAA 4_ypp<<9XcVt8 I4]~y')>86 %^gCDJm;]gXUbbMKRR2eK|5bD:twUfmqweKFTnA:|@?h{ X[7i+re9<]ye$)[{ako _\6%DJIԭJbXA}(LII6lԈQ:AbCG\.=8IצMYzNzjoKuOs8Rի}=f]z啑JNtpz{ ;;̿}Q:T;HTAsY|C?lZt睽'mSz3JRSs?uxK@0tߚß5+Ni î.|0FJ;뮻H~x`0ɓ;k@ME4LVՔ4rWy+]ucVE<2@~~:p _ܳn'I O СZN*Қ5*/7iѰa:zLoȠAwV9Ki[aMQK'W+ȑQ-Hꉬ$ݨrz+mC ʵiSy"^ՠA?㒤޽Cpr~a 5{!@l}w:luڝ)j+z]%نwz:[% HZJmݚsx709vbSY81ն 1$[}8l/I6d:>Is*[E.иqK5nZ/^"ϟ^nff+}t}o۵kkMUu`'šq h;Nj09/}„7ث7أ YM,O:fw1W;wh5Qb8LoCF:_[&Lϡmj}uՏr3:Ýu)h+zo~xI*hRR24xpv Rprs̡;v8ķN*RtmvO+"ǼQ>#6FaUj*)+11X#FDq;rOfk\umW| mˮuUTTaʙΩu5kzʛY K,O:fw1Wև件e33ŝOPo\EF.((׮]9Z>ShȐ~?bCJRaa`nGFףZ`:妾h+z@i͵_ڿ?mS HZ1{`g؆XqJÇYlV뗿LwiK]ch8%'+*Jm}O.iּr43$@]Ü8QpUuu[n\wLp9dZ}ildyr1>OfGu:l|?^8 \fӦ,sŸq1<z{[1CM/3*.οڄ$Un44o]V47j:7w{۔z$ضm0mݚmUSOi/Կ̓ P^xbƍ1<ٓkW:u ПԯYlMAo̺;هEyz6ګQUWrPgi&BwKCӨ%˓u̕^wʩϳΏ?꫻hذH~s m n{+0S{۪J^7>rwiwhl޺hJuEֻm6^@+U^nh,pb uiڵ0a>dLDOl~־t IDATjWNLٱcJL VL!B𸪓;6۸ކgE(Qqq|}=tVVI,ݕ7%opbY{ۭۙ5]6^@3m4ξqɞ&q5'׺k 0O6fLya^6nMp]j=15ݨ-]_2xsBM&v4%b:e<U=YAA^?zjpޒ ^X͛fߗ}ԯ~S>GHNMhoe)yۜmeZ7 HZ]r^KAO?9lURm҄hư7|xT oo~>;6T>;g{јt#Ϸs*.qhh>!$ن}>8` ?? ~2%ϭq5]~uݜ^10yUW^`yVMI{wskc}wRǏbzjpy) SEEZD a;gg֥K<=-ڷ/Ϝĥ1LXyS^y%tk(5ͦmSۊWSvty{zuܓvP'^1ݵ+G٥ ^DyFuwS^^G5qbv ;\ŋ*/\]jhu\%&C_qGk۔t>}TOx֮Pzz5OVJӗ_kRZ5%Z*y̭5k^zit 'Ֆ-ڶ-[^?>F>2 i֬f0T}i 9R`.T5lz{KeK|4xpBBlmjpVS%˺ٔml[lڔOjܸZۂrU-lJ{z$غufQ mtdc+4yrGy{R?^ڥ&Qݻ8zdjѢ o~o=Զ6MM%K0?BC{+#l6Vc[TTTPoMpb4lXd Qzh^xawȑQ,YrLslѢEk=7ܫJ.T-y.IQK彻5ױMt]k_CD8 }MK+'kBߟn݂T\\;/K/9-tp^{m>}B媬4⋍()yReٔmL[=F=P.c63D=3c9M*rGD-Dޖ/o|tޕJ\)cEF»aMV;o>o/;fnux>_a/8m\;1沺o7o<볐s.]eСl-\|A޷Io]}5UqQbbbcĉIob0p`mޜۏ^n݂Ԯ|}׮]m6QϞ ԨaaeeTM={WֵU7Q{g vt]2wosi1vuϮ\_aXU&M QTT+QU>>nƆjݺՇ}+ze~6ϥoYwժU-pC}5hॼbB_}uXNw*,_oW￿F?o?Wp jժZj{׮][e=DpAC"P* !zq  $௒_egsԼ"eee7.E<Woz0:P&OF#5D!@HD!@He!$^j׶3(FHXx2T>4ff9뒪rU rqqqz ^ Bj$$^7U>*Ԩ1ժ&tPt\]]KKeyw QZ@݋&wwwR͍xF[3gv+pfu|@Crwww KPDD͋Pݺ$텊HRӦgAd`N7K驏Րy/S\l6I :u\)///#ooo?}}}s$^!dXܴ)]vSzz T\\"Y?O8+_uT&T<<Joٲ?뿃K*''G^^^ZjZyxxTk_k׮hѢD06(Guꫯ';o`IR ԧO-X@Ζ7 wpqZsNʕ+%IwqF)I:uꔵ 3Զm$I}KjӦMnJZG? I_-{ImٲEԫW/*?>Srr<==ձcG5J?HOOL*""BC S+99Y$ZvmX+VX5yj߾֭cǎiѢE1b9-//OVRllՠAjȑ]v}Ю];5k֬*??_ 6TJOHH֭[iӦT֭KWll$N˖-k̘1ضlׯ1Omجj`UCIͭo$#Y&%%*nܹF )ݑ#GLǎ$ӴiSk2{nkyZZӾrssͨQ%_k6}֭d}*Ûoi|}}``Ϝ?ce+ү_?#ɴkZ6vX#vQ嵧֭[M-m~*[\\lk$ۛRO$j[u999f̘1f~6}ݥf),,4&L(sF]vھ1LQQ3f]Ϟ=+56[g1 xڹs5kXhѢ3f>IRfԯ_?կ__[lQ\\F:uTk^IRPPܹS111?ukʕMd"""4uT_^{Q6muUܸq$iaÆWAA-[ᄏuW߾}u)nUW]$}JKKw߭MС3͛oY7tjժkjѢEuwh׮]5>>hrwwW۶m^6:IItqq1k֬k˖-}& W\a+5Ulw}g-ɓ'{777LUfҬİ0s! 6L&MJͬ7H2#Fv?Ι3ǚqJIIzIGUI,**2W]u5CTjwF6} ۭ#F0LΝMAAn7LTTT7_d PLf3g.SO=eIMM6͸[ohlKgGHjĪkH,BOuCT̠ ]1:ZUCYPi_Z^tiΝ;I{f_J!1&&%¶m7k6O<[n1LL~~YbdLBBB}ݻԩSԩSܶ|嗍$ӺurCW_]涇lܸFGɱݮ]Rlc\ 8;n ׷R/// rbccuWY&%I'O.xjqӞ>}(4427tBBB$I}پ}?:մ)vXdI'Iܹ24lP $z-C= &HfϞmۖW6mt1;vܶt<]a;, 4Nul_;kqM"TMYYY1deeYQ:}XEEE~:d+\vSNUiIIIN:UX.,,L JNNv[pՇݺuSzzzzZhzJ{Vrܙ,w8piy5o<~zW%hUQRRvܩuO?=6Z*wf;osU:p9t:=z(;;[?~a 4Hի~!N+,ۼysٳJw鐸h"IRaaڵkWa;v_~9k3Cʕ++Ų~*&&Fou?ZxnݪC9͠-[VϵB"\T*{\^zj۷O;w֑#GC>{|&^qqq<óQ{۶mJLL6/vhE$%-Yge[Z7ofϞ]6lVXavکcǎj׮:uDM:JQmjB"\TZaÆZz)S襗^҇~(ѣZ])))O?VXq*fM>qըQr^-EU:$jJ ݻwl뮻t1mV{K/[oUϛ7 KO^jVުѱyu 7Xyi;~~~N:O?u ޫjSzTvmI7|Sn]vUzĒ!~]U C(HIOsz3jV^u_^-ܢbu]->L_z2O˫1{uB"*yj߯Zfwyk&IJHH /Pc$Is-=onjXllo^f?ܺX~IҨQZ~1M׮]%I֭+ZLtMt Ӵi$I4hyN:ڻw{R:z$ySs|_Ug $*dі-[*km[<,Kz饗*5tPI̙3UU'O$;vL ;̙3Gq%???+yxM8QYH9N5uwwmvݺuSƍ%I|uaE `cYn1bN8! 5zheggkРAVmذ^|EI/ttfsss#(::wM9l:%P=謁nftZ׿+Yf>}I[o5AAAn1s5LHHH믿___#x>c]we 03:u2߿W… f3L:umfOnh$a6o\CGQ;u1СC+ԩS6X~4ƘxxxI1c*u}5L6m^zj8BCCͬY̛oiLbZha$;Zex ?cIKK嶁d6lP##%%noyc\ 8;B"E!155ՄYvȑ&;;4hРZ!c̙co 3...100lذ< h"Pfhŕ]uB… }駕ᄈ뮻*1&.. ,g4ib/^l y<3' ,]9rԮ]Z>iҤ ϥS{j\qqsNA8p暿q&&&*::ZBCCuN:שּׁ,(>>^ǏW@@"""Կ_ui֭:z4imoWWRR ߿_...j߾*IGUV/w3\ 7D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $ Í&9xyRv7n>}+.rG|?SӧOWݺu,J4uTիW}nܸQqqq)S( F5::Zz~ŢEw^=& IDATS LlC3@mٲEݺu+fرc5w\yzz^TuKKKӶmԹsg5n=޼<*11Qӏ?͛YҌ3$Ior{ 7o$%$$m۶5Rwɓ'slןCիUPP\n t~^zwղeK{6lEWm۶iȐ!V\wJLLԄ tȑr♿O]k˖-lUD ɓ'@58v4nX:uRdd UV)66Vz.2'O$uرtE6mRZZ4hPjeQDD[ ƎK#!.^~~~5kz衧zTHܶmbbbk.[nfz-lR_.]8*""BcƌwQQ>#+55UAAAШQe[~RRR4~xXB&N>}(::ZW$}JKKӄ yf%%%{Qtt֭[Ǐ[n{EiӦM:r䈮:w}N[oذz8͟?_jժ&NVZIR{kV\M6)99YڵS~ԳgOkڵknܸQ_>|[-[L&M*~ҥ UW]UfHLW+88X'NT֭Ϲ/ΥϥnQRRR˗kӦM:|:unMmڴq*wyG{nWhh&L ><P%|d*,תU+ae$Ä S8׾?׺cLddqssmnv}kVXa[fFiԨiڴdׯo>̇)$H21ƘkIfРAرcc̈#$O;Df_c1N2G.j|I#::H2K,q LNa}oܸdڵkg:doV$i*u7nQFfW_}H2SLx>22ҜwxW$/҇Q Ν;1_|H2>`\\VVH|gzcٳg 2k׶e֭Mz̎;m̙c$ӧa5p4iDtIO<}ǪS$W|5k_3=o]v$oooj޼|M8qB#Fuw9994i&M յR@=o&I?FY{-H~7kֽ۪@ӧOWxx{RSS3gTz4|Z`4ssaÆO?i~+$$ڇ1c:t Irqqф dٜڬ}q}_Susٳٳg[^_yzu m۶MڿZl0kk֬Ykr<ʒ$խ[WW=뫢"eս{w;}WO7779Rڻw$iZxumWqqvQ}Ǘ8&.jժpCu.I7xӿݫH4i.v;ws+Ԓ%KeVtaYzo///_T/5Y7}㊌,ux@ٳvBBBkĉ駟_L6MC C k<9x$)88X)))*,,KtLk2882-[$%%%k$ZJk׮Վ;sN:uJk.} ^թ$5lذ"99YtWyڼysw&aÆiƌ:pl2ctW]U,gkEu&搔Tn_9`h5j͛y)((H}ѣտ>αcǴ{n5jH>>>֗h̘1n8uOrss,}5k5d디T7<<<.X[Ty%9f \xHZtRM6MK.UԶmrNlmVݾ85U7hQQYˆizjjѢEZpMYfaD0ΝSNG$5mTKOMMթSn˟RXٳGԪU+}q>xJY۷O"##uu)##C~~~PDD׽{ٳO:5P̙~Z:u[S111JLLt*;{uZTُ>H 6THH233`ll?jԽ)<<\WNvزevQY 6L;v̙3z nmڴQƍ+;;i{ァsE?4iR9!!!1ƚFl޼YG^WPP~v-Z麫3g*//Oݻwג%Ktũ:~|Al63g_nЉ'Kjܸ8h߾}:uu*ݙa2٣\cjZq3gTAAz%''k2d\]]pҽ +ۇn1cW7oVJJ͛9scǎҥڷo@-[Lsվ}_~Y+WT׮]S@zIs 2D=fϞ]f")$$DKgСZz mQ1i۶mܹ7n|)//OJLLTz?y6$$D{$mܸQ{.UfZ`rssqɌkFڿ%16rL"\ ɓ'_tǸm6 2D|_rLwVbb&L#GT: ڻw6l(l.ޱ ;crpIIRǎ… %Isw߭˗7ސ;"@H\6lؠ$s=󕑑VZiĉjժU6&&FIIIJII;C{n+44T&L(IZz$/PZZڷo]v)22 Zvz衰ʕ+i&%'']vׯzi_v7nTnnW~dkȐ!/4|}嗺[*ݿyRRV^0i?\)))?uZG)>>^ RDDF%//j)~;IRDDRuhl%۱2 6C=TnB#Ʉ8-7n 0&<<\uUF2wFFF777c1?dϟ_}Q#DGG[˞ybviӦqww7СCMnnU.**4hXl6#ɼf͚5nIQFiӦF_9|ph1Æ 3j2LZL@@Yhd{R>vX#ɩe3#G4n7[6Fyr{3 0guIf„ c # 6T;Hrjʴy~~ 3u1ݏ?híe&<ܐX},Yb:upr\}gmsGDFF'Oc?M=$j*l\\d|J?#lٲcL~~7^^^ĉg mٸZӾ}{ӸqcsQkO>dz)STTd1&33DEEIfƍSF2}gMƍR!Q^W7HAAOpk=#777W\]jݺu:qℵoNSts;}O<}ǪS$W|5k_i9994i&M XW˖-N?~f͚kJuwwСCc%%%9zq8>fΜzi$hrss̙3999ZbZh]JvEGGum멧RLLϟg}Vw|`f*I1b~aoOwq$US)))ZxꫯZwf ל9smcյ61/B"\dnRAӳmkʕֲŋKuMYaaգGzvu]ߜ];ݮ}8q~'IM!CTÆ $-_Zh"Y!>,,Lww}իW+66V-… 5m4͚5J8}Sjjuʜj+syTEFF֬YtMܹSvҧ~'[G}$I҇~XjӧO׬Y디t۪ZjIrss\gեQ3֭[Kugڻw$Y3|5;К5kzjmܸQ>|iӦ(!55UNrzřrss!???EDD(""BU[gO|{=-[L_~ԩAu;LVBBBTn TK@cǎ /Pjկ_?-ZܐX6߼y^~e=5m4 0@N?^Rǎm6j ݻ.++Ku UuP}n P6m 6.nݺ{:T^^^Zp>3~ tzgϞQbbӶر V&M4a!!!1FU>^z) @obcc5|JR)<<\WmٲE;vLTӑ#Gw ֭[RUh'Nh̘1jժ{9رcet|]}ե'66cꫯVݺu[oɓN͛WٜcuqolSO<6lؠ^/VϞ=xb]{?Y]V-|͊ѱc4vRefΜ%''_ʕ+յkWٳgrss[oUSqqqN5-Y[111JNNŋ5dgr[h֭j׮:vXfWWWvm2hɒ%_e|ʔ):x}yzz*44T8ƍ+00PъSNNۧSZF+vz=zhݺu_ /_Wfb1O oɒ%&88HrzǛRی7H2!CT BcYbdZlisFyg*,_}NbeȩS:mo:t`|||Lrr1Ƙ+W___}]s5f{=c<#u֬Y&**s{Upٌ״ *??_?-[*44Zw/i'NP||ԨQ#] NR\\<(Tv͛뫑#GZ7DU޽Or222m۶ܹ|}}6\ۼtmڴIǏWXX:u$WWW%%%髯RtuUk)))UXX믿;P5DEaĈZt}pvg)!!AK.U~g$u5nX6lPHH!pڽ{233յkWpSn _B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HDFSXX IDATTiӦruuQ!/ڳgm۶]ve7oެ?J۷os8r䈮IڵkզM͛5fIս{w:<ڵk,IpQ'55U={$+={>PduWO>zժU+ۺu|I޽[ڷo+/s疻fYfjӦz#Ffg:ucǎnkƍjڴYt.1G)Swww͔)SѣGݶ;W^Q~~|}}ծ];(??_tѲ&4zhM>]G*ѣ6m fqݻdv3g˳}WEFS9x.''ǜ0c{g.vmw…X̩S1Ɯ$uܛP\\ws=SfJ{֗_~~w-ͦߺz:t%>bڵݻwꫯrJ:tH UTTTWll$N˖-k̘1ևhU딗UV)66VjРBCC5rr/JզMdԯ_?c'(&&Fm۶c=Vc?SBBnݪ( @M6UddZn]lɓڲe\Y7HOOL*""BC _SMԷ:?\IRZk׮$o[$__IR~ʽ Hrro3۫P˗/׆ t15jHÆ Snݬ}^Z_~ոqcuUÆ +ӁtW($$DGՂ }ve˖tWWX窎G]vܩdET˖-K/or\Dz;H P$!t.!0 ɶ!n'3;sf{ΜwWFLL ѬY3< -r*Gu=;{,zw?:111r 660i$$IkH\r.]BPPO_ ߿M&&MLbaxxA <==ͺ9sFYǧ ݴ{kZn 6.\(6EFFE}KZ\x@ N'&N(/׷or{'N$Y\N$1yd/9Ē%K7o6[Z-KwS^/*t:]>gϞĉV6l oV^999bȐ!0lݍʦO.g6ꫯ Zmq}r !E-.goo/>eǏ/v}_[-)5 j녻 Z>r/k]yyy"00P͛7%nZ"˰pwӽ{:uX\_}Y9rD^{SoBݳ;w~'O 'Ν;KOxYG I2vZ1}trn׮>}\!ԩ F!/^,/_.F-WVaĢEĊ+رc߻m0B \]]ĉſ/ou"ʣ3fkݍO.OҥO… | i-*,*$.[䚜W_}UcǎkRv~d 4HDEE3۲eK@̜9aoo/#.ݻZj3gk׊?\RP'oſoىd_~r߿5kxWַ۷ ԩ#N*,X f͚%Zje.┥v%O. O.O.4MÇ_궒Ċ(٥ Bq1{>h24 ͚5...B$1p@1{lz}Y5B1rHyxmr@@@k oO>cp-ӥK@,X<%گVgϖ'$$THH$I|fg}l1ܾ+޳DHH<*^a&L8j)SX|파 5jMc7tk?Z,_\1¬pED[oQS~aaab̘1&Ç6mژu/,mVhr/o])6l(k,;Sl0`J,kQg[F'Noki+ JexAzΝѵkW4hC"/{Ү{@@ӑ`ز- 8{2[>}f*8ѣG| ""hp1̞=͚5Ä  {e#220aзo_}8E -3fX|vژCa&۷-?ƪUUUV۲.)wwwDEEa…ű[/DGGWeu?s>%K ##C~8`ҥKF͕GQ<<<=8)Ab…/䧟~ШQb_ ???'ѢE ϗu@[wY8r3L2=9uΟ?/Ҫ/t m۶m9*$]xKZaaaزe|`` ڵk@tׯ_mV&S\:|fɓHLLDM7fI޽q!!-- ۶m3 AAA ¥KqFt111r>kLWcoc <<#F֭[uVDDD 337o[|rfPuQlɖuvi5h׿o`XjU>UyܖPUeeo& fxr>믿{9XXn0tPܹk׮5 vC}qzU Dd{ĉh0x`/e-[ٳnBhѢ^믿v?ʁiƌ裏Zl}m?bbbp"3v%1Uۻj*,^ڵCLLLO>زe _nq0̙3KsUrcK] 3v4~lu xxx <<8w֬Ye˖!++ ӦMC߾}m"\>Ub]^uYGŌ30dȐyܖ^P(ro,ʪ?*|X9_HHv܉[n|\Fc1tj=ؒd5O\;/"vY0tu#pB8q6mBTTT͛Ƃ ,v4O!(꾽Ɠk׮%Z&!!ƓXȿ$ZŋN7S~}ŠǀNÑ#GpܻwᗘB:o `ooFcWQ~XࢪCbU}XgWl-I.] GGGZ)))V _sظqc˾돪83 1;;[u1D ĐHիW#==XtiG;rrrrc>{ҥK!C0zbmxAVsaghhG+l۶m)k6 *JSse2h nZwABB1f̘*;οϧ-)1T*1bK.\F0KtRn_Y[슯[jYf0\o|ʕyZRRRoz˾"ꏪ>3={bԩ|^M7md ՋC"= 6l W۶mÊ+|/~.u [^_]]l߾ ԩ#|l_/8?DϞ=>~Q~}mR*b̙BY|BdQn]988ɓ' JeLQ[Dpp;v>>>f"˷$Z~&MĘ1c2k,}Zm^$u}V^:85o޼o;i$Yf͚%6olR~V"/Z?~ڝ\b @+WZ][nnݺY\W^"11'O0IT鱷o>߿,~*nj5ߏHZ°aָݻw#66 !!!9r$֭ 8{,V\ RÇw6ٟصk OOOb KeooYСCƽ{ѤI4i:t((:uBtt4|M,^ҏ>CϞ=q1dY IDATeeaƍ8d H$ɮ * Iƀ(!B!Zᥗ`n,L"""""bHz=f@QBpBI$)P(!$D!z]z`5aCbMq3g E-(Npt;;G[D^ V NV#CCP@ z |}`ʔg]yCbMf!,XvvP*]''ׂR õij jhjh4jtÿj㭷K/FDDDDD=p͎ JWԆ;jrC-CP@D55Z;h4vP(hh$(z@z5,;كG1$VGwaܵsR 7:pu]f{{C7SV|=uh -  ШF( ( YYX<гg:"""""bHn}ӂDguP;<=jRFG^yy:T J$I0v* zhdxƍ{غ5>hذ<"""""bH.vKZ777x{;ǧVRiagBaHz^o_0B GQI+DDy4ĉOd;6m+⊝ ~~h߾.{J;wTx~ Ei&""""bH,Uν`Sgn77I jW^Z%t:;(vuP*Tj PBtB IRBKڵ{;rrHJ-v\Ĥa\y:! FCNۮәtdeiP6t槜!Ѻ%KvApB{{G888Bb0|HPQ*%88(kP*U($CP4Ƙ8DE]IH,ۢV-:ܻ ..o?'Dc^ptT> ""aaM1$Zl(n$;CRi'wjT*Z5N'PN!O=Ν=g O4 `cWN˷p~&jl jWWsҤ(:7swo"1?DDDDDdB$mlzz -zRi}$IrJJE^jZa0^Q 󐘚/ϳuk"7c_G *׺1$>nݺC1n[ig'Cm/ WB֛oR^^|-ZrCm3) ׽+W2['Rl}\9||y0fL3ywUx3HOWQ#gdfjpܺ_~E@;lPa׭'p]$$" ;׃][W"""""j 3AjiF*UN)$:DȧLh XxGkx}|y@NЯt^`ΜT:4k抅 a[o‡F?ShU &ܳ'Q]k6gk+C\\6vB<II*$$}x y˺1$V# g1 Q?DIfu:ܥTD4NӰh L ;;yyzܽƒk(y~bv߉qF6 s7 P>^x0 hh 4jhj5#jEcKÖDc`O XQjRb„hdf7yq֭keKG|FɈhq,_~k{cԨƥZ)ZW"""""CprZmB(+ѨajjFo֒h ,ZFp![z'4[ߴLɴF\.]<;ez}77{<\#<\#Yس'[ƃZ_йsRҥWHYTĺ=O֫޽C !(th4jh4Vjh4jhGk CN%aSGG;4iF*}]\&~$$F3~pΟOǡCwpJ&C dtt*S0)Z`> 9Zu6v^W"""""hr@|@3@AaX4v5Da+⣏]O[E Q^еmkh-[n[\~Z򈪅nMNVY\k`/Ǻ1$>!zhSЊhƿ:iHTCcKV0iʂEr:88(ѦMjըJ6))!o_4l !ߏBRR<>8hQ=|Vk7mz`1eeԑoaW_iܚ57V՚=Wu%""""zR=iPH1;ΜZ!$zI$C$1C jDI҇"$zkm6E˖ d=<ࠀZǙ3<Ё`'hSO">>GGm: JFZZ>$ ?:I}ᥗghjΥ…t!x8(N:h߾.bbҰaC<zF~N)11&Cc7fo\u%""""zR(Ν;Ihdgܹ8d2Pgߋ{[[3 GFO}h {E>mV&q\:NNC Ò$4$$<<۫O-tPiP#)I4\ Joo'|I[ u6t.b:rsuy3gϦtܻ{{Fh>j tTԮ]=qT HHEd!&&b_̝z*c4!YYqP2t8y>ΟODŽ ˽DDDDDOI<^%'a8x$ɮCYP0nhXx"A|8bz8 v}h4z9\efjP4qE^r+%hq]$%GرK8sT* L[ͯK45DMGPPm ;.1$TW3g…x&"!!ZBHDA0q5-"01JDDDDD v-oݻHOyh$ pu:u\U C&oGG{ 1$>RS3ӳ¶ʕ3gN?x >&"""Dzedd >>yn޼#G`ٲezjר팍R*cPkאiӦ&t:4M*۷o#''n:|wpww/v?[hauRryt b?SE1꼏!+VR4y.77Xnp L8GQ-6lJBZct}?lݺӦM?P#|l۶ JʪB+Jʩ*~i-ߑݻcԩiР+#"""bHaܸqf!hܹ5jۇǏcݺu;vlٶ[n<[ԭ[iiiX~}!QcӦM&RN*5. j?ǸqXQ5c v}mLȑ?^/l}l2NQiDou0rH^Ǐǝ;wPNۗQ9%1-s$CWd *j YsׇVɺ5j 6DRR.]d2-//G$I4hX~=vڅVZa֬Y&߽{6mBTT222P1k.r=Jlll,nܸ p۷[BQX*}/^Dܽ{5r߾}G.w!l߾Dpp0Ë رc>w;vl#,Jpp0ڴi˗/c˖-fu~MAorUDFFի'5jѣGe˖f?O8HVN<7DHH&Ngg**{sZں>jشi8t4laaaٳΝ;gܽ{޽;j \DDD%"Ц}ѻObbW.]͛"4 js֬Y Zmz.CLtbĉd%KWWWyzᇗؼyu(G^^^˩27<rbҥe:pBg bРAVtAػw3f h6J'N$Y\oIɓ͖x}&˖GUoiL8󾾾&'FΝ;k׮mР|"}رr1EDDȃ;v ɨWW ==VEff}||.eyݚmy[ lu Z ЧOEYU2.?_ !tEFFptt^JJyj5BcO*Fk:uQ7]\\^zoQƖ;|qUܸq&˖GUoihFnO#~Zb͛^;"::7n4V8 /PݫT*ܹsؿz,ǢqǶ<:-ʥDDD Tm5oBGVVҜ0{nnrs /O!4B'Ԯm{}%̥inydƍ\I&&w- //Ro1o.1Xf$""Dko RSC $A"/OhyB6mY3j=7R8FɲQU[=t -Em۶-v~{{rcXX>?~zyyY6XVEXXl"ow`` ڵk@tׯ_+}lcZ]P C"(5SOȬ~bR}\|UDDDO\×hYj3te@͆Nz}.t:}+Tx=iu!I[,[U\bw lڴI޶2r~zzl޼@ɻ+r8$""bHK_6MfA`.x@Oaܸhοmchh(È8϶m때w٪Z{ҥK!C0zh@>,, $ɓXj޽{h4@VsaV&ǕqW1HDDĐH5γvŢEoaAh۶!QUqcw 1m'Fn_xx8j׮ 7nوQQQ:u*CkmlUbFf͚AѣGmSnn.ƌ,`ȑ6y_???9P=ztK2#//dZ^^}lݺU<2:$&1Mq}ܺu*..h {mŋ1~x\z;vĀСCPTpttMnPej˫VZݻwc0yzYcʕ8p ^6m 44O=233yfܽ{W10K/Hddd(ݨ&L ptǏ\;vƍh׮Ν;̙3GFHHWgW1_ CѬY 7]V-˯s"]v/6_vҤI3fL*w͚5&)OKNN.Z<O[Le* MKJJ B:l1cbfӾK`bÆ "%%EO6M!ŋ璓-3gn 8Pϛ Ə_Uz̗.(do^_|~ z/""zlIʉlڵ QQQ̄'BCC1x`888TزUeo>߿ǻkWؿ?"##???j Æ [28޽P( ȑ#Qn]ٳgrJ(J ><>ʳ+㘯 QMHDDDDDD2\CDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDDO >Xz}IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_JuanLesPins_page_1.png000066400000000000000000002013271420322575300301560ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxSw${Z:Pf("~] """ CEBP%̂Bm)tI{ې6I۴~=O'㮜s! I@DDDDDD A"1H$""""";$~HIIi_0|;ss皵_gD?7nlѱirՒIIIj.4tQQQի <<aaa믿P^^˗/Gx2l߾]-hmN' $gjj^s hTTT ::GnyBDDDDКgggAa̘1 7o&N(xzz 'v!DGG Ç;v@(+++VCko"݅ ᣏ>S JRx\իk&tI(**̙#~k._?~\ $Kطopuظc6l瑑_% 2Dݻ_ YYY緧D""##C z &¸q4 Μ9#l޼Yhw!jYXX 4i(A $8aBϞ=(ROOOaܹ ȑ#n-ccccAO>j5xCBBATa„ BHHuVZҥK>>>Aer\P*ȑ#oooAT z?dBrr0{lO??g]AA pƒ>(h /P\\,tY#0` $kcc# SNmvh"[n  / NNN{cƌAD]+:$ZŎ;!&&FRD8qZ[ _x_](((r@JBnn0mڴf}X )[$Θ1C\G* † u||GIl .ϫR=zRĉ1aeǏ뻎6ϟ˗qYܹ¯*nܸO<6mڄ_@{nŋ[bv}5F!!!r N8toF࣏>_ɓHOOor 4ET`eD[)[ȑ#sRCk׮:O}|BuuopYq&Mqq1z'|شi0vX*J<31bx LMMQ^^Nii),,,v2 ?#oL0 XtrQQQ6tlI՗-[]viCA99yܐ/6xkݞg%%%d:O9 'Nxs~o|wXl86Xj֮]˗/###j@WWW!//O wfQ1axzz1{lrU׮]Jѕ-MV{-w=p!u޽`CDDDDTXxx8i&( H$L>v\.7: ]ojC*J智ðaO㣏> wֺ=_ kkkHRXYYP%[p!4}\7xC\nMJG}Ҩ=Ze ̚5 ^yy9x Aee%,,,0c jޤI0i$acc3gŋ|2\]]vZ3F߾}53f`۶mxajjƍ$Jǘite̞=>}z/WREaҤIdsɓD^^h"q: C|""""Z3i{ebb={lun׫W/xzz"''ΝCeeA9zccc\p}ŤR)ͅ?76(//G߾}bdgg zcciP(0h ̙3wMWPPA.]p%!""""tEBB{1ڵ @ 4$R2o<χJJJ0yd3q$2H7?p5)0A"dSTASjD L""""""R2D""""""'HdsS""""""$N"A"$?ATjT """"""I@DDDDDDd/GGjda۶ػ7͎%<|=^|q#XRA`ccJX1F͛_SO}Ç#X\\lP>͒CDDDDD J^^ß~:'?o0H42F6u}T T*&"""""j:LDR@v-W)r,["#?ŵkKѣzǏw 6K,]$$ rc%t51QhWkӦЧ?NM^Һm""""""l`z0^, /|QYصk1l..vqpF|oóώ!Hеk'5'J5߫jnƦjn&"""""esӐoDG.633Nxz:b„A3MDG'N}1c`ǎ#q\.÷ ťiiM> #+2p=6D-n»~'66VB{q[7O(ƍ EXX?qxx8.^LB\\*}{Q8x.t/`l,Gp-[w=j.]<Ӻ/\WtnA"uXR&ՒI$L""""""RD""""""$9S$mAT`*D""""""-HdsS""""""DI$""""""DDDDDD$)A" a*QmxXxF^vv1NNƦMPRR٪p<LMql~0ع)XgvlWz{X32?_ QQM: >~V)SvJ:1HଭMPTT R)0}z([u3fGEE5zkmc˖ɸx1 prBaltt%ƍ ڵ>0رݠPTʂ\֬ }8~<`eeg (-jt """"bx/qhښ"?L3## jjR JA~ZiHHyC6R $I6&**uGGJ-YR/ҬcH;8ΟOIMNۦEsRmh/Q[dJ- 矧gOwl>;wNؘb͚8wn.\x [6jѶa83&N͛k8tC6>aɓ{V l"#ܹ9xg |><2"(EgU89Yj,;vlWwPxy/ ^CTg0hz w?^+W>t\yqD:`]2eJ;v<Hܖe43ph>HǢknqgȑX#㏑ϱcy̟/l 9s 5o"̍).ıc &gn>ׯff ̚#}t+2G-UT__{X_Ƹq/Q?^tlע֖i蓾X>^'&M Aamm G1~|0bDDDDD  {wW? ӯ_?O,Z5rO'c͚8w.={oN7W\+WncǪ$]ܸ "11Wهm$'硤HN߹3!=~zY> <^…{QXX Й]AXX7Զn1ׯi4ݿ?oϧL}vvfZ,:bVkFиsTiO^n۶"&&~5UXwb۶s(((%k$"""">ز."+XmsR羾/իuOaa9bcoAei\)>VBTtqR)`jVU)IcgOwDDanط/FcMN<`Wߤc.-DuuMt'-zOrӔ(U ;ժS*W6"""""!;w_Թ\AADjeʪaf{mZ6 onnjlϞhԹݲ*gº!>>C࣏T[H5kc0_?ӧcÆnhApq+ꗛp۸4ǩ!""""WJ-8:Ze?9i> PȰm9UE6]%ckr 6$ Fuៈwkwwmy=-MC/Q{#eg^GVV^}8Yammc^Wtt)yx!A"&Nu&@&oǏ'\W_5ZZC*jpYrvǺҢ9c%""""jox'uWQYYss-ڋ"i>ɓ{ oW55߃ &ܹ9(-10N#GCؿ_3X:}:iسg&^́n ǐ!>غqLuc}Ңc%""""jo$+;r:CL7kC{{izcl,Cnΰ2+)1hISS3pVЩ5N֮XWZ4'Z;}$>DDDDDD $2##ODDDDDD@DDDDDD Q"Q0H$JHDDDDDDHDDDDDDb(2H$""""""DDDDDDt{(O"A@DDDDDDFDDDDDD$1 T ) TV*aa!*Q\\o&33UM,kwe Mގ<+55BHsTgguNN,2vv06Ŋ % P]zFSS#[(+]ZDgMrDD l/Ǡۜ5.\cu /t|i,*x tVcwdž O7y;'Nׯ4wv6Q;S#&_f^ ul:ׯ#<<;w^CraܹA ,]~K^\3wDD IIaI_?<'I1@ii2sO7// xyY`D/|u><JpODteeՈ/Ժ)TM^s꫁8q" yyL #Ol9r ΀Jܼp3=LSH̜\c9AbS)Sk]fٲ^ s?y3AVVr̛E.01莰jtp?J26&xB*Uݭ:CN.JᬃȀ8)տ[3z qfпRFF> ˗_ߓH6wホ%K"dI""ଃA"Qtf9_/\jws:={RYDaDDD90[[<1HlGЯ_P5:|87F31fy,,/Ν״裝ž+VDB`|E<"UZs]0p#r楥ؽ:mKDAAAU bpjIp@.]7>z̙ w,Ái )Ə#x 3$9UsCuOR|U; +,Z}ҰkWr--{;LLjpsϯlӼbR6'z˫8y2Km> &x>2\#\1kV<9|E܆B!ų`OX[+Ԗt)}+W Znnou}6l ڛj BBlk\ATT~ʣbwXX_o^ۺӿDDwnضm0wT ?Ga׮? u?ߋ1TwgM?ߋAݎ wE038 IDATG[l4@1jD̟oC5.Ş=#У᧟<1O/q4/wÖ-0hFF}i?˽ n瀳)m_F@fX:bÆXW4*R|q?,Y @.X/ d⶝MZ\hi٭`}CæP{]\\:L\Vc6-,dM`ڹ>VVrl:ӧil:6nl:\LSKKn)jbDkWkn/Yӯ=&$}1kVd2 bc pl `ѣd#^ȮX'op޽vmUYDddbc ċ;I`bb5kaѢ 8r$C*Viܱh“O?,ɩ7Y SSuƀ~Q2\& ˗_w \.%~7_슧_ULܸQSS#i^ vvشi M;kפu0559uӧo_jv'NDAA0bx7Tw1ҲPO ##UxPx'MZ.b~YYڛ[5ŤI1b jj8&Gԛo@FFPQQ{# {qT ԍỤes͚~y~J.\EEE ||,:˗Ƃ[h󁈈Ab;ض-7ƪ~3>>2׸73aٲիX8Ej`^4 vGxx1gN qZ16oѣtC\N'޳'i@G[ TGG ?4\VNY3ppz=lobH79`>L%KB0cv?P \Rd >0?q|VVr|InA:D]7,Ç׭7${ݺ+x睞>aaZgse?2 7ߌ03f￧7cԚo.]`e%cE6>6Ά HJ*ŋ{4lRgnpsrwmW#Jo{dvLn0-,Wݺn:J$suQSfǎD}T7.!υVvH ? )<=1b z0xG\J[Z\5LJ^nO?_GJJ{K^T >j}E& |jtR>vN_R7894i={ډwKjI^9W >$O?MڶۿuN%֋=C Jjj)^y,MmQ6WLQ.oݪn4D"7I:bߟ6FmLD .Ҳ9غwUϨJmGbNI$}lYO sd'2qhz}uVפ06@eW]H98Ü' }wz6b1jOTT 9΅ZvRYĭ[Zqqط/ }t=vNe8+3S{[qFFeY7jmmG 'R"*Ψ'N&\22Z$::k;^͍]N]̶K)~;}62TX.\Ù3ٸx1s))ʕX/U#]ѰNUR@#'}Mnd$A9<oÞ8p j].]nh;a>bXRRK¯4T]fޝԶ\k Q76j;;E3## Lj~ީy&t0krv6%JKqT֭#??u} 6|o90I k @M~x)$]ᩮKgmrl集ږks];Aa~=gw?bGM$"҆w;MYm`ggs(773̟@54e;u<[< ;r"bwqrwoo6Iv~BNZ׉;^l7VcƸE?:QQ:ӻ8wT59jJ^^ls#]ucK~Ѝ7C]Nѫ]Vw"&/BQR(x L!C1ds'zaD/sje kwF |./^xd<--4nG3E߯~ b};VV uк)֥BG)1ƖAԚ4{zj:Dsș3橭]Gw""w~&>:GxO~Gvڧ,0AAubc 4oO@Bْ Iѳ]'T n*+jImw}xᅮj߫% '7/HmBB\hͲۜDƍsojHƏy&IdIdQn kt|'"bx:t(gd~oVJ%02+z'Of!:V߿6hsff20LΝ-Ĺ0}6n/^EE#>MZ^{[WPHb?L}՚nlÍcK,6퍱re>A2]Xc͚~>jnVVrͱjU4Tw||,c*ᴳ3SObP(jv׮ZBk]+V+W^w(s\:j0[=8FF[aѢjXv|'"$v@,Y  fjJAW81KF&# [\٪52̝s HU`;'[dLsٲ,Xp7 g`TV*!K5GۗoI217g.*(ĺu1X 0p#~errQRR s10`x8hCpb}K|WxqHxxa>Tw\ٳ'yyb85`貛YUPƍ0cIi@n4D_7q\8ɩ@ee ƃpBx{ͯoB*<е5֯4;op*DDNbWYNcϞkUY퉘9$+kys<֯Q[_dػ7O?}ׯ߹?4N= 1sI 6#?/*Dj+gؿ?M{ַIy5& ؑ/Ʀn;y.ug WWSH[R*fƠJb(X$'-oIR;ϑsr0s)wCi#8Ae#]l {{cܸQOo ckȑ򲀫)LQXXRȑ i:;  ??KYY8w.Gf 773<:wkZo⯿nFU5I>4Il¶qcu155¨Qn< ..(-ARRbիb0U ?2\0Tٽ^Fvv9VVۍ}u! Ai[[cW .{f t(,Brr1P.ߞD _okW41шVHD VX7Usֹsi]R 65#"""bHD$&2xyY J먠Ӧwhfݍ8p +8vLէP">?ƍ1 KĸqTS_lۖ$"" I$ ;;cl:Hm*ܸQ[ںnDSA>0?#"""DDw#GG]1vebݺ9D#"""DDw;773ww3L[*qF óqLvg1H$""""" \CDDDDDD HI%,NddeB||RSKz@`5rs+iCΦ HL,cǡPH1x3p\ο>K뎧k:/t;[ׂjׄ X;R $sue|׮XLAbk[{~"""bTV*޳Q:R[5'NI)AL&5 R ֯3L6l &U`[3NwfJ%n1m[,cDDD cuFEE "drHM-L; (HN.nA".@;sg2ӭjpZ1QIP4-i ooLIsKd(iԼhNk#ICS'o @47FZͺcmMellTrGM׾KܾT*\.ջ4\5Tl27%"""-LsM22JI-}yqo "^H~\V?='L}aӦ8\D^ׯcʺgb++9JK}m4'/}mXuX肸%NŐ!NV cpFF 裝ѥR Qpt4P F+z#!k\83ѷ=VѷlPg| r)bb p|='Ā9ykӵ5BC^OOsp!Wd2 k PLzׯ)RZ; Ne!!X.'Of._Vݻ"4ԡfaa@ffݟ RD,s""rQVV=0~',0kiX {{cTV*QY{_Asu̙|W (#FgO[<1TꕶӦ⥗F@LL]Xbয়7+ A%|ii8y2 gO)m ;;c$&ĉ%-녒;,?7{3,ƸqjA BII=RVEܯ aaX>F'K[! sǂ6z"̞}Zꀉ]W^ ֬=l1e7򪸝}{"~N Cjj)O?*ys] KlEٓ"S<˖]lv^4e6?.aHDG59',\xH=G&`ٲ^= sW``'=%K"ŀKk| .OCfa!]+BII/aa+yŻVVr|i[ٓ<˽ /;~'y7ļXBC0swnc^rgږD,XG@f}DVE㧟CT̝ܹAxiչ[!3{]/(9AbsX[\WӪP|p |3/ ggSuOבWsǎDLkڧfRcƸ?|))%ۭ kp`^x ~]=_MM0v155 ڠyyj^ TGGcB"-p02&>|'esҪ9P?XR ||,PXXNN&?"df7nnfvmh˸P5GC^pݬױ3 IIENZ>}nf֮ڵ0jFrCbb.\ʼnY慾Fww3"*J3 S{5J EBPZZ#G2ܟ\-@gfv>r+ص@8+\$3XY#;Zg D&8fpw7C˗o5+ RžTC^^%n,GllvkA8w.gL>esӪ`jj__KhܹmJ_75JJ"""bxG4vqw;ssd2 **jVHM-{(*XY)(7>5Eqqڅ`s14Isw\bD/ kZG;#+G…f煾ץٜ?R)5Ys y⨲11N/iv:8J\jFlllSܼYl. )Yvױ}|,PRR1j-ooKD++9,ƨQn02 qq8{6۷'aU!3 6MN7Cr؝J33퍑^*61$&Nn n= aK8x0Yy\65uT*i0(׶&M 扈AbPXX*(f>mm:;M ssSgڀ2(L]T 6|5/7cpǼѻVꃇEyu6B!rs+:کE22Ng  r W Kk88ҥ|//sH)7jΑYS#F@.֐˥ۿ=(X눰GΟњFF|Zc߾4|URMnAsZZY3F5LmR@7J>k汶rܴj1{3 HDDd8xZ4#6ݮ0FU7o^^RqaYEh40Yx 2uƘ5+&yT ̞} 7nF!ԼhilPwB* ogjjW_ ijv&x$Uyه;i\pll_S0a֋ @VՔ=<0x3bc =H C`5Μƒ%}GU%ng&􄐄zGEDDu-k[ b_PWqEAQ (5P!$!2#̐a&=yz2 in%[w߶mC5iRܙ]rvgSS;)66DKdh<LwVC6x.]d2hS:Uu!!-~~&LJ*-rrܻ˷n]b TÆ5u= *"M7Z4[oJK;Nd44cJߤo>pOKpMF4gN+6IhĈ %K2TP`ՠA5vlvxcg*7"qmպuԷof9sR~Zfmz5uCUEU_fֆ '3BƵRq55JuqyeUchذd;=FOm׮dZKQӦ$Ͽic!e9?SOuӀԵٮcyyVv3E񗿬w'^zݚ5+ϷЀZ-oҮ]jMU]{LjܸVz衳133_߿N/mڢ{c0=DWeoѹR`%lYbcC4iRzb?_Or pHO?E[mڄzAO+*_W]v89s{iذ&6e)ͺXjUyWϞzO*3\ݛ4mZ/ٓnZYnSQQ<[;G)+~{PŨ}0BO[Կy5ڼ9JV@]}"5xpcO=Bk%i֓>˪ֱCy!#P ={.vP OoBվ}64+==_6JU?4rrXչsڵ+ʷm[ŭYe);Lۇߤݻs](ݦڵ S. UZZV:Z(ԣGZ VxYǎjϞ2kuEU_115\~ז-Yev Q~Qj2HGh͚c$w\%'hS>{g4ԫWBUXh9JNh3i 7k۶l_ڥKڷS@I嗣Ud2+&&XGj\ۗ#աP_ TF-Z:檖[mwmn-~Z۶em]0%$)@HD%BbVV@H딓'thz <p%@Hx %!Y@JP7'$΄DZD@)!D@ CQA1$p8I"D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!"D@|(c!mtPǎԩ ԨQwo2(B$ծsաC9j,Tw_uOpip833OiʔڹWuX3g^fB 'tstD>W }Djհ^~zَ[{O@Ӻ-"$3fVjjWo!$֗o>d@>hCntwZz^Y?sm(==[Z`$ih. :`͚JdVa/X$d2kJ@HdfVn._~ٯS'F*4_7g㏽w]=v,\⒒]F$DHN܈Yev :uBCŋwpuTɑhd|}}t`w!N պu+$fO~~~DԎ~b4|x7QVVi­*((.s٤Cկ_""txi$?KddFlN($_YYJL>&-kPԥǠN*66Bz@ӦXmӳաCc5kZzag+B"!-v]{j(Xcaعs23NB߅:6/F7mڔ!I0d oBC{77Sv\'&$&^>BQ G27޸cЀ_짂b-_۵l­-$M{m'T\nzZ_nRllJL<-[2"#pH<+JɓzKWllb֮=,k~ZGM>\QM7f;>s]-oZ~pMQ˗vr8?F*<<@W\myzz{kmؐ~ g :57פ[{hȑ\Њ{UXh-w۠ SBB%&ԪU)*.p1&~/whhL&!XB"B" $͓hV||g@%$$um4u!(J: efֿ\Bb\\vDBԦMl6;@~X `L $<ջvC6]K"B")B"|(zkԠAnk>*((дij5|IٟS.Y,E8l6zkDžE]F-[`{)5jXKH@H<֭Ui>>$)9y-Ij۶})čJOOeھ}RSʱefl6jZ FPQik֬Rzz:SϯCG(.ii Hnmcɤ&MJ6m IT-M%%PXXڷ(zY6mZ/Imp.2+nkɒ'J۸{Rϯ}oϝn®gΐسgzU~Sܯ)SuhӦ=zsAc捲Q.]˨|޽uFHZ}{Qx.lRa:tHUukl6 vAPM$ƿ$uM>>gaaU~?, R=u㍷l6<}Wڲ%QGV-յkw]s͵2Lj͚ѠACTXXy>ׯQƍhՆ I\˗-[{h߾|ݨ*b/hf?+W Wᆛ=_ǏӢE {.eeP˖1ҥ~12JvvRR9޿ H7,:x0C!!!jٲƌ^Zyݻ7Y}`0O~ᆛd6efeePBBg5jԸu:wD8q\?\԰a~{Hredq&ر`ڱcrYG_֭c IDATn_,.k%tM/..֢E f*rQQbcXg=s宿~o_~mz;wҥ?zEͦwޙi|:v줙3Uǎ^_g{:ww&MIw$]͜n_EMJNΐ`p-7S=?uBBB 4 +ԩ *W>Z[ۢBOޖjخGz<?hke6)ϵ,??_Sޯ/\= |=?u^?{D_~cm۶ӂKt5#_˖nzԸUS{^?2:Q5h^zNNr[' P/&LcʔgYuyӦ5jZ{-[6#O>^Ǧ>8Gzk&׊´gO5}nQJJ[*;U_}~ _K6QzYzC{ֆ 4w[]k̘Ѯg .$___^R+WM6Ezc\q3![@X, Z'IҐ!գGOimZKWinVffԵ^25*[Nekڳg{_foMDUίnȑWGτΝTWQ6SLL+v o[hB>})6zZ^yU] 5|i{7?,G} ժ,?zÇitd^yE}} p>ݺ,:po݆Wy9sZsEFFijҤvh¹:~&MYknvk5i9W@H7JRq_XXΝh֬\JСիWgjn>?tF=싚<.n~:G˽JOOW>kƍ%]֬YzWt-ܺdqgп$_zVm:|TRFF[T=zD}ӬYq&#GRޝ-[6OwkӦ ;[e<0UӦ[ӧ_]oZW^yu3y/+hg-Ԑ!ݖxD[>[&ĊΫn7+5u6m9ssw>|VAԩSgԉY-^>cjڴ*m\FF;*IڰanN=tnj[oAzW3out89zn=tvG_G*9y/լYsAAz)X,:p`[X?_fM kY:v22J)ڵ+I\sf[@0f{rss5} 6Z+. \S !122J-+~DD[@ƍ 8{ckW{mIO?;㹸o8gܖ9ӤItqcٴu3 O?|EG4hʫuW+**$""W(,]+Wŋ$,x6(>⚺yCXoQXX&L# J%:[jj*뼾iF~nQuS\n iuխ[*upn'IÇԴizl?jh]~0IҎ=QQyUK-y޽^[qIj&߁ qmVZZr(oF=|?u~т9p`ח;˪6ʹ!pʴ"feЁ|LIRBٖzS6M u]S|NJ&.,,pvP>t&LU^}<+kW X}mDIRuIgٳ?ޫeQƯ֓Qlv4ߟR2HǼc%'gfzvÆur>6\j[oJ2UСcسDuoY- <A??15U:).:uJ$sϟ۔W\1-8ݛ,IjԨ"""Ykr( s$rOI>2dp~Rךse欦7Yyk24f^9p Una"??__~uCm7t$ɭkf.&Lئ8Hn7ZTݬWN;vZW:'):y[<_~Y)I徇f$5hРe4Ţt޽S??S^հaD?(==gT>}{mչ_ͦ-[nzu$Xg=ʳe&9L&1+ie*ٴM|^սVJC-%٪b|vڗS[`sezMAes4u֣+gdhh%Ik׮v}k?P-b]=zuZi9J@'qEDDjҥt.][nPRv`RyuNҾ}rm׮$[u:ԨQc5o]-.+;w&y#gyA\J-oc}mVZ)}*ZV啒5I۶i)@F9W@H! ..RCΗwT^8x0CԹs7U:F[Vi5EN>ݻw_Qj~rڻ7YW?,ȑƪZ钤V޼\7yUrBY_J}qzztw_WyPԲeٟ@K,:W|]MKZSvWR]U*re/El۶UVUA] fu<%'>eep N(44Ե~V5y]1 U2Pɓ'*^)R2]''fdz%LPtܻPtϓO>.IڱznnZl6X󚗗[gZKxԉʴnw-:SY@C F=VVȑa=Į6nϺk&Jb&vL2e{ʫȦ΁={l6[jذRΕ?\jݴRRtaaa).Ε5b^o7{rdk_ɓ';""djoK?>ӵ^kR;vl]QQnzT*S;wPQQGƹo|Uݛ,O.9nᚸ;%ekPnP+$yNF^z3m,=̿\&u7//O{*7tKbM; {]Sd6U<үmuA͚\+/6<#5msJhڴZUm۶xn1 I_|}}k+S $T>$}Ϲ#'2LFQ999zx: iÆun4D?dִffL]ڰaVZ1JF=|guͷV绺P^SNצ//I-ZP))uͷV6lyҽޡ=\_|U]wՙQV'{~{@7^h7Uv:fRr͞}f`0hz}eʳ\KֹۄڬrͷOhǎm:|']ڷ_Ui|iϞhǎmJJڮYqmWRnOusEt7<():ĉӲ/͏uk~uRR)""Bqqm5d07$_jղeKkN:pjNn\Hv]?\۶mUfA5jH:u#=ZjCFFjRSS֭c5xP|'O{ュ'k?T=,"%&nVRvիWk^6mШQCe6iϞ2CFuDuoRv͝ ;Gw7ok+Q~~.ɏiѣfeE c6Q.l`5=_V/R۶mQaaڴWVttK3_BBB` mDB"pX,E/%IÆPÆ^כ2N͟O?]p~ޮ]СL4qmT@H \!9992NMrV\uKh%I=K:C2%U}DTg:$22J-'|}}տ&+IӟP}/|68 Pudwz74qx>|H&yhԿvINgHڵ[.]u)zFΙ S+wf(1qTTT#ǷUv4~EG_~S.9JN:8J-|<ο˚mBY*4s 6e6&3L2L2.$TS0bl6K &S.$ RkӦ)z9Ob@YÇ3svff!tX$$^ )4_&ɓYo#???ϹthK(.FA)h2L&#$ژ'zO0Y,6[T\@}p8tp6o^ÇO Z惐d6d6nwjfsfbxfTϦbcX뫠 W<7(zkUKS_0 yVBlE*(Unn~ d)8FLFfWH,/(2!$SY?P|||\& @&\  F~EA߿Ζ !oL,VUv]FQf@JIJb]XI`hXz`0LJ: ރ&:o.Bb9f/ &IfY6zPt$zIxnkb]X $L&u^@tIJ7+HjpN)@l6!!sCb]^Q.RNv\V5 K;(nI<5^ !jl6V%}.t+%$*dD!@HD!@HD!@HD!@HD!pJlmڔ͛3tX P(**XݻGGhL (Y5gF͚NȧFPDD&N%Tp88{}NpUP\\fμ^11&9nc:U%,,@l3@>t!>Xlmx媯Mvmj֟<&NYráf믓tԽ{ڶbȑBbvPN Sa@}4qb/=W311 7l00(;mHFLcz?D6_ĄԤIwo_F7%բ8zt{Ъ{[3eЊ-::Pyyy2 2Lo.$dZŋfZu80V={FxK\5+i-]fuUbbZ`|}}e6'??:QPPc.]]Ro8ӷ fUnn򔗗ӧOWaaݜGч^{ѣyj(X|ԻwKI^_4ztG Fgi_#۩S& WVV(711 բE5m"I JZv'ZnnL&|||'h0\"! R`$r#"4k i{*Yn][H0a 4{„O,{-%I;ODkvci IDATSdVv+ :c]zFXzno9uɓj̘*.i,%%v-7zj$ĉ|XW))'Ծ}#  {y:'&ue,ײꋀ|]΀h4ݞQ$$CɨW4uFx`-ۭgYG\"#c#$I;w]wu[wz+5b[ngG+>>R;vs} $sBMhj\pX\\,Z>3! ^~epŝ}owiJϖ>AJK|1Ƙ1h!=b'I))'nP&!><^~ֶ)??]Q$WSg8lҚHH+PrծU3f.s%KvxDIڵbwU]*E))'.]n/jMln?u ! >d> oqmؐrr-[6$%%)w;(66B-Z4xgp8\?d>vB%gx0B3ef*wkk{w.0r:/,Cʊ*s=SnċYr׋$8U!" ;7-sAԩəwVBE$1$o%$4mm *7H4}>LBB=JZ !V/\%KԒ%w*>>anz8y@O=^z_Lڵvԯ_+bGx̵XӸq$If3U $Xx Ws[Z6K>VС3\s^2$N M⧓' xPVv޷P⦛,WHH|-44T&Sݘfċ}u:e{B"z7pMAU~y`!$u e2р 2r u]BBկ!TͶXu\j; %éawۨDQ`l7o@Hw$ x޵$$D $B" ;amݬ̃[, RpfjVQ]L! $eE994C9Oʬf\$bI6LїÜ+ѡ?PUtdYsdDԦ-К>K?SRHRH'W+Run|NR傒h,-,`d^NKN]$[Li Õ%ǵhl-9Y;w(txIR7P."yM{W־3= ![v$bb$K LFv,V _TI%I:9_R }^/e8u'*˴?ESʛ oz˴oej$[Rf)=Md_<l={\89yq/62ֺ `Iuj!UpZP\˖jӢb5St&jj@fH *ɒ_;?]Çj g N׉]:~Lҏ+kv=o#d(*T5X[AOS F U7( So"8?~{z%h@-7VH7ӧeV^~rfd2ɘ'ɡsf(e"7P­eg^zNZ Q֮ e /P2:RWqvc')CKypl%:MQyFjѬ̗_.]qԯԩ[+4,Lݧ  TP@||()ɤX2V\{pwOku簵QK|*Cv6'hI<6Hj )",L H RR˖RZd0H!{Uʕ ȐbXEV,,*yFȦ MQ]*-0PTX[T~qc$Vӓ7kwPD2,K"K#`cM4d0,0`"BE$ABCQ]53ifvio{os#H&.lxbC^ eB]u^t"D{ƶ۰ ށ G[`2A5;n,4kss/@4{1p۷!d%ܛ,l{ۂx 4Qx !H;W?QU?!'v.XR"KyTˇzIDmsCQG#q;b/>H? ěow=3'Ns ooA pN9M׃?0%G@"^ڌ}y ܎1o; 3Y{0_u1T C)~$c}h)d4 ٓND1mC_rF|S(_^ }#:up=^I.w/7@Cyf9@10o~=1u}lh?A,Y+AK7irqsqGbM_׃9d/YX [d^FQUQTUe<e ~m}q؛߆'yAC1 8µ77pߋgfw"z'j^x G\9ا;f~IףAw#o+>F~*X]ym50=?Tx6p۷WI: O|Ûۮ־7\gO$% @d$D ߃a=Q 3LQO`~VDX?>#;13A53x)(9wAk rvfj;| EG?{6ma#^\w}000Yɏ_ W_s o~(}H}!wJ_5{GY{O#ijnw?>.u}`]ȼo^bc@/eug& HV}VPڰ<ЎǛ^+j/7 @7օ@_PέG ? YNJNk^2 8$v܄TkȰ,`aQ;mۀ /ò`Y\8p_QtC$2 N[ 0^}]GL:wmxu`Lݞ-}pv+fXoz/~ Б 5ŎЙ@g9 DN$ w3nAEOGЗx=#|jè`}aX%#H$ FH"w swܷm^\; }`&!]+pw a-׃򟟄φ>, ;w+FU;G}sl)\/c0.{/#9(_*K.'43cHW=;o|wDrǯ@[_}9_z&T o'?;9;R_A/m 2oa>%p= HCG뉝;i?A${̣@cY\JD^0`nD1; }zf/qY;o ~oVg 9xi/y#6R \0__|F_1t?5kgFk_ nl;w?Q|zw͹s?|3N'!ZH`tAxoc 7Bv$?v.cOc9aP?jFK|kƋǁϡ|嗚 ^F=Ոh9X}w߉x@/̄kunwyH~꣰BLM+_땯Afl;myщP?Gg`̋/E?>/o׮[Q_6l\U_}6ӿ" /ěoj,vv+]骯}H?CH^eVWϱERGA[jsIȾ?(w||8`sV,STyhW| eϗA@$?:?ݶnl; (]uXh aT |k19;l?ACk6 ,p\mQ]03DU W3U/GWa%8RWv 7 E'r}} ڈgCܧS A{1"{MĔaPkuwAP?}eAwAyGBg&D ߼ֹ Hz3,JW}  gvNnKs ^N{s;ou;0yݵCۼ}΋;qU-\2s;( >`]3& y=(_/0p_=.k]焓^S{GW9=o{g]9xi{a0E+W,gtp_xtGH;Q UD"Äfu^}n⎗}F^j$ sy t4엞 9go<; 6Ee y"헜`@ dku9H^!'{`&=4#})oF3"v^/5$j(30ns mBF`(B{%=+[]/xxv({jh fZ^ ht^@}eQ` 0lvAH10a@칞㽊#,*Ҳmض E߇/JCH(dt*St ~=w#=?<7uϩ^oX͙|7}q*WgsN<B-7A[u` ub7^ų1eKu?.3/z7smp6nl;;n{?88_A]/LHDp04 YZH?1;1^Yި]`pf:G}t%c륩|W]CXl/7nZr?7ڹCA"d6o ` XGL/BsH|KP?5{j ܑG=%TPkZOO1¥Y$|2kg7❷ø"e9԰ =T 'Z&IsʩN 5(鵝|2.2o#;`yECʬƶV=飝t[]ZvhJ1@JwΫA"؍~`f>`5-Nb#<8E"WhY ӄiY|vE$F/\QH}Sv~^d '[L"NO-;ؾUI>-w]o- w,vc">\5aw \FNޖyɧAcUIk&s۷{#qH< o7{apO{!GLCw\~/X2'X z_]DG7ڻ}Q n׎؝;{jVhtv=ozcKl,=AP.3r E'ռʺUבiܞNc& σ0Y-lAf~HЕW{`sKs&6[d{h?=},xA*wqZ ?pCy~wvvpx>+>QIHP} O,h !]J$̢r6C޷ ?0tmS 07{)d͞Hp3NZSt_2K2?ٰO7v-x6@vN9:E*Km7=u'Q= q=ED 7bɧTCYQ4U5Uס:t˂0.S^$ѷlܕrZg,@^4fUѼbewj,LERL\'"kDž]wTDx]W$<8}oٗ ;l,o@&EԱLJ"߄9".~92o}=?>R}VGh<$z5xe5T> wBM=HFHz}^ef*gz)뎶/_JAZ{Dߩ=ݨNch.7D޷j3ȼRWvN~?" 'd?[;f>m7\ aMG{ڕ`#01|Q<숮w& IDAT/ oFx[?4 vvܳπQ94PK׭/Op=HWYg4![w_]{PhLԿ|~NN@Xo{?0\eo?$اqw4_jMLDww߅S}98m3W]#򗾆W]I=88/<L_嫿%u?<>q_|::,۹pσqJq拊3jDoV7ݵFT8rD"W܄W!¼u^E􋟂{)d< k.Somp;߅?낗=%]}wPp%1pN}1t`"H? yنݰG}ú9*Yv0S!w1ǁ&NLLhǿ2h$ +3ρ].aYlfQ'̟Vq>(98h'[?DKƶda`}?'(}Wӓ{ 2?KP8? #8hWk"l>_^w(p^tbP+aݾQyɥP?zPϑaY[#ky8Z|%d_Wyv6a`"ۊqSx|SBPz!yixME$ܑ֙@f_ v.&uuu>$?Iz|Ւs`)aP>)0ssP?%o-HwwWCBɏgndžtbvhuslr)t:^ǽ߅߾ÿ_y6GN{?Cv&` 4ܲxk`{F$J$FB1a#>GԺum ?H87na##0gn68ުvX닿mo0{Mv[n ߲,Cu#`}Nj7؉qw #H$`~Nc Gk{G۩n=V5.\[ov.G?_]=A\}g!24Rt+[&WuD 2q|~ < mr^ V!3H #n2mA1C1|ٽ.vw{?8ʟ"׿Ċ#}gx떭 a[.D3c35g+1 Dj.k{81s.W>XALA2 ѷeu))NM<:XnĻO; opϋ/~+ boD2ĆS_5ǝub\!p]0>@f C KBx(<"H(p> B ̗ /gFW@j'Cុ~`AA"q7,!e+e+=UDdy<~;;oG4^'?GAD@ $Sݽ T{:.x9cG+_Q: :' MoLѳ +}LJ\CAAј}1q e    H$AAA$   AAAD   D"AAAA"    HAAAH$   H$AAA$   AAAr“ V y`eYp !AAA"qðyA{ I " FAAĽϗ`(TX7@"Ҳh E(2dY AAA"qoAU r80 by>euH䞔mbbm!P022UP@X@"Sncu!4-&''aY&~v0M|malڴ{ۭi(8DQĺu+W1;; ~$4AH$ZT17`0,X˲5U}A *4~d2u]xvq8iu]B6 u_zG|_m׿;>> vk:&''ϗ}3sw  V,YyE!0rTBL0 dR+lB4ahh ٌXm@UUavHRbQ=ݖJpy$F9WP' H$K$"  D 8.t,|?ÄMYpjUb$L[yY!%EF"SJ ˵sttAA"hBAǁ8Ib,xG2,]bk30i\׍?,Da%]0;;RЮk׮(]GտyLNN4{brr>P*)Xn]WǀveAUeEaS0 @duJ Ms\5 qTr.AXd2 Q6TU繘FV:AӴJZy h+8صk'<0P$dY{PU`ffm$Ij6&'' ,uQ}k׮&ѪfffaY&$E0R繘ƍz^k[(KDbK7e\F  5uY*0;; 8@%ضM SSXf V(NOOŢD$ p4a&[D-Mƿ(I< hibbb6lD:7IedYhDZnH UU.$IF"!eQ{u]d2 Aat׶A8giZ1M<#q, ZF,-GJ"I00 rbjj,F6_C`׮125/`##53F; Cl2&Ѫ,p͙~t|ss%g|OaFŖ#5>|߯\Wd. |dCC5yrx`͚5vp]333شI)V+@ǻT*cvvø|> ѪhDrSm岊L&qiN$pSmTn4.E@ ϦUU˱saFΝ;*^n=3]׉۲id044TST, 9 vvnP k煸ݝ~#Y1>+냃CfUvx0Dbc@7eADЮ.S|,A|x^P ̌VIXgzkpP r,att,"xL( m ,b ue ;*-D&WXY&.UcjѡLj"Yr7ɲ۲ ,(ɑӴf\RFGEfYw)qaddnZ:Ųi]N\v.ګeE5=SfH&=91"$1<<\d.܃$ĈL6L_JhU@Ծb"Q&Nǀn؆ Ht|FjE]7bvVG>oTHD`+}I,եL8AnA,(dޱkaXtm& fRuȖNRLӨ8JH$#ڿחmեT*t)k?!If'vZ.Vcmf5Zafdtk֬m91044X5mai=ۣ$l;p1r5! =h۪f`$},LtpPm{(qX `YqnD48q_,- fiexaj SmmU$G4_HH(Q8vEmRMKz]nehK7>&eRp;f\=_FeXhl"t<}~$ ";d Lb+xbԢfwV+l A""q~ɩߟf6[* rNDžg.$F$iI a)jŢ"`3͜6+iFu'mkɗREedi~뿛vZgʞn~&4t: EIB5 8BabCC-۱bHL{Qig f\mm DEö݊c#RP$J&ej ˜Q 48ǭ|$Qxض YV041EJŖUG)%>+i\͒Bڭ*bXh}E!B-4Xh\7+|8Db=;ptz>1Ri7\FcvvDkѠ=3r΢͈9,Ic B A6lւ۶mΝ;Riu=A0`Fݱ*$app0>3lmcb?zf-R?5n+ن HtDBKOk4BYb(aEbu~-111xgD /GAWP,5uЙΪR6P(4eTRiɕ`4@!՟<( MW6+w55zrX_U V;V0 &0>ij{K~ êc f}Jh9hu u\6DDKȲE'{j#^ 8&^ګ#4E_s&'']I~Ķ٬t;{ePZauDs{kJrXa||Aa#e~(w\;ºЖ-_7?Fbzzebff2X199' a6Hf #7~,Jqq tbn'nS*FJR=Z5bev6v6&&v!g Nr6cvZ". ~hObP CQ?q1j?q,$I$ E<MoYvڹ~ a.ض1ȲI>4MÌ;.k(ܒ7 @U'&&C0zhYDQly c$DM4TILӈl,NmlN6[^Y*dY0 #vV3&@X0`6v,+pa^55ёDBA:F\a700, 9Ψ[}O,4M( d2 4떅 9躆;תnNB0vu]1Vyv (kVD}nDv0  allR0;muAy]v٢^6n H `s&,\r9ض$I֭Q{D7'z:EH(d {jKLC(<$35Arpy,#=`{+u~2뺘 XE_ 9 {!0`(ȀCQAX8c08(C8zey S[ Qt8aua@4 I"̂˅ kuKҕc@Q}Luokeu`*2p,]*DP*^Ǿ4C'I4Mm[p,BD$ɖӭz<²Lx I2T]mƑruaL$mԩY(8n, -ZuaadY0]re#\#LU:<#Z'K)kmP0 Zٶ Ӵ8\ˆ{RTh,ǽhu}2gWja[4Mk<s]&-4 (Xv]{&''+lYo*[v(JOqlH]+}v%*˲~ EY1>+~n !VM160 A,+,T/ (YMd2e( \άn#b Yk݈jgzYkp0:<|߇p]F( 6ff haئ\"1n_V:L-Eu]5r#g7߳mstѭuݸ3G_A[y֦^J=aRĂ,N7A-72NaA+ `T^,f>,ˁ,PP؄eγn5aKrp{Ycj>ߍ^ M+{Gr:PĔJEP$RDX5l;q̩H-U' Uݗz+DBB.<A緛ψn5J!Wi/i"o ²xqG/eܞ2V5kxLVEA"qO6(_+#._ I sBĂeY,r^,3l۩2mIKo/F4PKc10 ,%iMD_3~sg]]&H`dd <ϯb,L!ɴ-[]x]7vw_Y‚K4t]iΧz~rIQ^jeyFtrPE}_UMNiP2Ll-TS* 8Pmhiq" !jt^`- E"`ݦU}^%%|YNQ/69ѠH|> %çW}`fj<`0()22~RZZvl6|opIItx X9_~B*""BCe O6dPl:.lQm ]* l2Xt`0&x<%KF8xsXQQUD!nڿkm*`Y4HXfEFVM 6YnWBWI٬2+֪jUXXă&QIII˓~ģN*'琼^_XObbb`<=t萼^om2j6zT~~^}٦M[&)YT3)))IEE5 xd2jժp+g0FQm <Xd2YϩH'('\.vPjj|>>,׫6u>}{A{6c7ư4Rم :)3ph6dC6NUTT,30d)Y-KA'ק’^,d0"ǣ6mr)){Աc&=i`I}GW&QUTT %?ȈJWEEE*..b #ۭ\{VaS:kQmMO'өVjӦv-N KN3K2(2236=W[umj* cƌgebcc| ㅞzfYd2&Z=rzz75'jجR TTTd.ɨ28x<})v{]44FF^6JzY,ZkQui$>#jN349Kll0NZWr0ޗڼj.޳MXĦ\ffn<& C($~'x2]K:u>nmȑPkW5}2~JNhc&6aͅny]t ̊Z! e6&xrId}De)(̚dj<( $͈f#4n6[`ڔQo4}cN7ht $B" $B" $B"!)ϻm[ȑQD]IIյk;铬H !9)k}?_!+,(/'+N3aNVϞ)8歷>%)VVU@@]Z.MkuE+:^3kzj}bbb4rכN8nlݷFum]w8IҢEh5==M]6J4wuԥ{S`Iڰa돚.<_zH ɷ'aԙO >d&(!ڵ6m%(ã\WI8̗lh`!I~I~y^>>>k֬٦:묾p33y$=܋jժU^Foz'}6mܸ^.B!xz%Du8ū{ZII:p vpx5vl/QQzz\.nF~F~ezJVɊn|Zp233޽h„Gnn֭IR`XvNӡ+Cm8,ED]h޼ڲ(66V4fڵ[ӆ 7 gnY,V pf{JKKQrr7u~BƲeKsBzキn f*IСeZ.vک~Z]vh߾4'cN3{M,͛7W7Wnnu5jV{;S.$O?ҦMpkn4`? =w~̙E{{﫴\.VX&I: Bel9rDڵe]!C oZ~R4h]v2 … t`ڶMR}tӠmI_~9G>}jk)mW_(55E6]}UWW6mkO;wݻntu*7;UmuQ)۷*33CfI L$db vNIuhݾS;lӔN}SAAfX[lVAA=YGQn9Z8?C](v9--K^YiΝձcN9%^={RLEn:IhܸLoaC󔟟'P^o|byź袁s4hIK骫&hƌ*=a7p[h^|?;2k6IfQ>B?[G]rȒ!Y2N[MeN׬Qw}RR]Ţx5.;A IDAT}_%Ky,9Y_մih„5[=ztҢE,^:~*,,5;vlӰa%I[;!p:2O51e04iҍzia?OI٫vjN}PeKHHԳNc>OMn1bn&z5gbyfg{, +mjҤZvM?[nC7|nQLJ ;W|2̅k;'+55h5iҍ &Jof=v۵kYW>写?ӏݧ_/OիП*cMKdǺ?kUzu%U Ԧ>jR裙eSjN9L4N .Д)u8ߏ+7779zju\ӨQK` 3f<+ݮEGG+&&&+XLfQ$ֱ~,**VrANO;pxz-ƎO?Mĉe0d4e2d2vJ0`0*##[$Ԩyʔ{qzu;o"""7_k޼:;eVtp5>֭[kثխ[w9/\K?o{.tl_Ϟ3B<%ɤQ.ѩT^^L)){SqzIҩlT%Y>:5tw5bHnk/{zݷԧO?|m{$Im4rEѣlE}CxVN8N>y@OͿ讻OQJ^4֜9y&]zX]pE*..o;wh9ݰ몫ƨHQQQիWoт_)+?(֭mǦ_ׅ^h-YfϞ3um7yuݷkΜْN:sW6mf͏ZbnFV4^xYIRϞ4bąʕ˵brMp1{*kPVp|U߾'쳇هh'5iUݾێg;=u~$-]֮]䮺ɊצM4wg*.._ |FF $md0BhVnK6Qf~{uaC6nĉI a\:|8_y+TllT' [lzGOoߡNٳB'}"l{O\0\۷oϬv0q:~Kτm[UmڴQ/;>̡첋y&=?2diժtݷH'S3g~䮡{[Gj1رS^zAS>'q 'O?۷*=}:u\zm( ^x |L:X?t^|?+ZӦR<3^ԩ5*kW\+ZiiJI٫38KdšbqS7E>܅'N>}yj_6J\ftզ5_|A[͞=p{^N=u`TU)22RZ*wxbј1K]oG3UXX(3^+s"ڣIz%& ^<o ޚ/+xYW׮k( Jɷ9̡{w]fF0twc6FMj؉$kƌ"͜NO ;Bݻ''|TR'-tj44"%$$fp]3VG}벝EۯclkCߏq~2.x9|IҖ-:ry\"W@HX:$NrJ^<|>oɽ)/:rעGk!^WZnZk;X {9q ׯN;EN8Qvk׮ .X^նUmKÇWvPorp(WuJInrWk3xam$IYg]4IIIeŊ咤SN9UV0줤v+MmfgWp;oN]| to}NEV Ԧ>=Xm>mǫVźuh0*]2X')){bi,%^\.9h4آѣ;;1;jvzše0$_(tFkU,hzX[c^w}S995t@H]uxuٵt8֤599dɷef-,rk/C=7 4D]$7^_u`<}'^lkuO񚄞Ν+={=^YqU)__? M$$Tp.].wV-4Cˬ=|u;X<6m 7Jܫ.;Ih+#%ѥBL&U?XTYiHt]/*jk0eHx<5?餞dS{wz`vk+ CEi6Ѵ/0SԧOc> &yQj|uVV.J3G}벝wۯɱxcپ}ܽz۶m!uGj:Rn|.\vBh`(It.SNS^$mZ 1+1ӪU+M0Q&LӖ-hYzキV^,]V jK_ |f͚s6I/Z_OuYۯNns_\Y7}[iMJOWkJR߷/Kduָ֭vک>GS>Z]m2ߗii)겴Νl6Uxo^zzq,l'jRzҚ䊏5)ag=:c:֧ON;|>|>|>\"櫠@*,,}*--K=uqs~bmԱcڵS=w\Tԋ{rzrZFN>yN}LZEn;4A±nyPXȏ? 'k#W]HW_}!)p̿DC*E6 ̬I+,,[+|kiVэ<$۶->o57on܎G Wy۶mRw,8L>˻>v鱬_6"~tţ9+k^ D!XEE*(WpD~WIP 9Z ޽ԩS&_Fo>.&I70A_>JVرSd:0ϱYPO??QZT]ZObsV_u!I999OQs~aYoACkӦ _*ziaTfhР!K޼\nа&3Β$ƫWQVÑCvrvZ=Ts~u^}u$jB"Yg9 ( s)YXU$Xs]%AQիz;(..ɗOZr_~yzW3{o Gg|ҰcchԀ^_uᅮ{t Yo:au$yаҠ,)xE5'y/dgĉW0p__`oF].]uו)"vۍWddFs\DUz띒#GW_}I|a_[`PNNn,AO>H'սO6QW]^vR]5?=C4|*OizХK[):r$_}AR`I #,(Wj&SO/z~w.:N͢|5dșZzxUٳ[\p~-[R^*lh`нVAiذ‹u=rzvW^9.lMc4wg*((иqkԨKԳg/k޼9r:mڴA={VTTToU]s?Ν;4r9 m]vhJMMQ߾'k˖_~1sz[z^wuvک#jذsu 'jZ|bY6MjlKLlL&{}76lFmV}y^uE|Vkkdff;NB"j!Ѩ+6pDSIH,݉F_{w'wӀ'_n-ͦ|^~ ]{Uھ},Yvbu/Ol멧OUNN͛jՄ cOWk?wܬ35oknZmڴZV;9"=?3OhzO믿aS~~yIT@tM+`0Ç^rrWˡ!u 'jʔu]ja_L&~Qv!M7'j'UoOo___$g^WNv @`0+GTbbӿ̙)z ǚ.0tFZU6_M~ $bID,YJCu^={vV>:nj۶u ϧ i˖_t`ڶM\T{pWJMMJHHPrr7 ~nHNNv6n ݮ޽jKdGhгNפI7I9I-oҳW] gnƒ@/lԬYd2颋F ǶhѢq*>>A>D7Uxjڴ4dșo/[7rk׮=&.\..N?Qu=tnhTm:ݣ TjjfzK/VZu333br_"""4bą:̡ڷ/Mzm[jZ)%Kkt:Uwk'UQkoV뮻A=gh͡ ]GQ]8+F 'vmט1Yv(::Z111a_Ɔ-]EH$$VjӦ=ڸqvHWZZr[$-_ZMP||ڶSNmԵkN St*ӯN^OZhYC"Z++33CݺuݯB74QVUiiCkrUs/n@h! JNNΝJM B;e6iWQJLlBK^={.^\:tgT'i,zC{DT[ff233$µ8xjAzSNԁ9:r@EENy^LFVD*!!VX#dS*h.JMڵS&}MՖ-'UVh4{P`͈ :fԩS:ulO;Ik^Ϟ4ck[|ZiYO{8Zjժ)l̘5hKZ~KQtgnVn)(H^^ /Ea^fji9R,K83UDDDk7@5Be0d0¾Xl&*j6LUJfY&I&IF1dCDt!\N氯``, M\TB~_V-b }U5ZEDդH+-@֭[Ll6YVY,пGLweUD ̦Miϲl/fsEmlRaS>k'-YQQVZ݊PDDv{XX,67-~O,$##+?yh^233wڽ{Fd* GFBb3d0a ?x<*((Paa UPP UTT$#?hrn\.ghfn G*6GrLFI~>|^y hVl6Fch0`,(6ǡJ1l nl6Ӌ4a9b VZQPl4jvh4'h!AM vztPlD- FQ%4XސӣؼW$$VV8fl6<|>~j~iD)VCNK`P !lxe*#KM<({{RZ4P@X,r\Iy~ғ=ijmae'TY`W4x5CbK Zzl 4()4h4`HHHB" $B" $B" $B" $B" $B" $B"{-<IDAT $@HD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"HB" $B" $B" $B" $FMЗIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Luebeck_page_0.png000066400000000000000000001425321420322575300273360ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|TUL&7R!N@YU\^umZXZwmQaI/RB  6?ƹɐdRf&^ǃǃ$wsڽ{=$*Nss.޽q$g& DA" @ H$Be̙6ljjj7j׮]v.w}.]#G1$:_րtWhɒ%JIIis Rw)kUVQ$KYYY۷; fjkkgso $}D@+XV"ahƌ:t?\Ǐ78pf̘HUTTh˖-/d6u뭷?Tff$[7;.L QDD>&mZ0Իwo8 ?P8q͛^zI _k֭E]Ǐk֭pRwvVRXX233zjޱcA"]u}?{{{[}<(I װaôh"8qB;qFEDDK7oVvv233U^^VSNN*++U\\%%%m D^^˺ŢkΜ9JMMUAAbbbdZ5h 4ضVǏ+33S7t~g8p@{UMMMlsX'NCeeeڳgoΝ#I޽$G555u}v;vLTYYZtty鮻R~=nc4AO"@mbEEEI6zyyiݺu*//7g޷oГ0TVV*88Xt1ΓL&F/bbb4w\Z*))QMMfY'OnvfR//f sr*TYY+I (8[TTTj, *uSPPq\rX;E&?ggWxo˞WTԪR՞)aa>$Wk)$ھgMUTn hСZh[y-kys$+z鷿 Iz啽z}$zw^o$Z'4jT^zi ٺuӍ_z:|SyLù]sڽxY`Ǝjg.O?eR|=C4gNwI#l'ysAh1gNNf 8 .AB׳g.t1$s/T[뾡h|bRlnfnzdmD۽@s~ti oڸ1[޻CBBuCI t CN_}uBk޼DkϏ5P9۷?v̦ 0i~oͬY4)Diĉ2=-X$]uU/ᇇ5͟E[شA(wߥ?P]eGuk] 7n\4B4DKBxlQzzJ3Zl6G@EGVJK+QVV.d6X?os1׍7Ә1Qqnecz*)(uᅉD"]iݺ,-YrPe5zsJٽ'{hѢ}t㧟z.Zv/0Q]do%/ x=Wٮy}lpC|>:5Vkzu?.$Q?k׮|M[n鯾};5X=؇Y7_\PmoNU.msgkjHIK/·}`%'K}vvtd/w1PgwWPm=z睃c-WG_Ό@3f͊oOԸq 7M5+^|0EdcFiҩ^ .Fwf޼>Zt:[Ӱa6,\ cq1dzɚ<9Md끻>Zlw9?m[? ] /=imSsc4cFBB[u}3o5QumPbb>-@|l$IZd.g8p`|}vLmg&=GG[b1iϞ_BEEj֬x f.\xF?H=XUYY[sgOqS!//c'_xx`;,U z,EEUt9R"/##d2I?&h޼uPZGG_qc籠@McsNw]O?Ms.\xd3TPPMk7]Y\-/KO-PFOlyyM海Y&Խ|qK.,IӦŪƪ??f9fLf͊7'Կ**jb1ؑ'??/M3όvj<^6}vQw*9Q&Oтg6k>@'5vl$8sP>@7OԻwz lp`c0.Fᇷ"ӂ#(//~)[EEMVd*?oMopC?/[vT?M^+٤h?Uz.7[Knx#lm͘1QzQ V@E'VwC%%!k; /$[87ଳ-)stה)/[p8 /ңД)3'wqg]pG_7=ŭ$d{ѫW]OCCے1mZrs+t[~mڔ Vp/=luyAF?D> vm'g>ocBBUYY諯X/#aYƃrM X"M/ћc|/bcmO>sr*tk\$i׮|xj#q mLJI) 7_objxK4v-Ikf9;~WUUrZO?s-]zXG8G9vognyZ{, @lw?9vk2@jjNX3삃lseIyg7=9I^^^ziͯ׿pdwEɩp:;Ν9Z-XD#t=[{s6lvٺLҎyڱ#O~|2CnT[رъd ے%=;Bg+\rI~FY3GKNSOСamۂ[4!WsmPk:T/~9mߞ?L5~[7VcĈ }睃G4u7WWkJAbdo\7._ov)>;fu3]wIK+]w׊i.ck|z: ۙFwA^tŋ6;ώ9,a~A"p8zԵ5؆ wPVW7Qaa'4xDG7uL&gFFhfgm1y`Ř RgOA/۵F**WQQ]5jT}tDn߫U?mRQQv 6VN[O?=ߟuj͚,ck;os7>qm]mt ʧ$ՎumFĎ&] N8Z]O-\Y/f{UV[Ob{GjΜ͙Zܙ͛sn]mm\JJ;3%نM O33U[k5z #"|ݹb2ip@%$*11P=z3sTse[7VaFFCpɺYnc/M ckW:u6:<\nt5 HNt^ [Si q|wز%WW^ǡ3nYg3ΈM7SVV>^{-ŭ_4'4}z$xF﫥l+ae-y[s]~0g9͕`Keil;OԅZvSsYuѕ6TTRRtHy}o: $$,i(}Qc{Kjjn}4eJ>;FC9,0yh8}f骧کcH_u -X՟.0ͬ}#%$j05+\w(5Xڻ/gh͕7e-5{]etZ:[mP[:4GԢҒNsMH߽{ =vqoK[[`ш3&RS)!6e||}tkTw롇K.(Q~L78\qq]dw[ dqxr'GbII,9hC@2ڇwv hEDO3//uk=뵥]t$&4)F&Ÿ9Jǵ~ȲeG[a klSww2m _{L9R@na[kh~!C6dkxNw+TYYqcڼ9W<0glIzűF>ܖfeRB]1߁@O"rs+t-klQv׿W+/93g^|qڂs]ScՊi:|xRo\`Z/[N4c2Iamwݵ^ώ9|1cmleˎ{76X~ЂV7ԓue?9 V\L<=fOAV=Ж*EE*_4NƟjcm:aCnqpS!߁f}]g MC>\#G=^:M q3Hqq_:~Tii"t5:p_UT(3\6do; H||;/AIIAJHPyyJ .%^^&]}uouV7c/mv{ixMM*-E#g϶_t}7RUvN9$U鰶N&LYguSbb}W{ bEZfژ^ty=ԯ_""|TXXb} BN|Gbbbt NUOe&~G x' ϐdz=n߻w W;j]́ES`E={ΛWnܷߦ7:)h&t:55V}BIsGsMd[D@5bDG{#GJTVV~Z7*=.:TLzRnnnq>$͘=58[CiHR&~* ItZYYz䑭Z(Efū{u+uH~)Ke5p6 H/[o!DA" @ H$DA" @ H$n1fL-e˦:^pAy c۾}%I} i9KL IkՍPcKgFjcI93^'b>EDj8  oWh<}m~4mZwPeeRR gǔ[:4Lס*K!Mwn~5+^}KeZ&S6djmYZ9#WS5u̕|Ds]c֤I1=:RήЁEc*)n,0ТJSHUhm͛sUQxa?*111Pݻĉ2+$[s$hPVo9ݻ Q[Yw$FEj„h-eyۖ™^\)-i ̙#PUUڿʍ8rDǎu%.j2s|r z㍳4|xrs+4k֗+H|0Et%_+IկTvvͽlҷV@E{`w`ْYTnnd~ÙR+5c _̔$]s>93grr*to_aY>8\瞛 VGGpFo5v wP]vYee;ScK8-_>]55VMOy%H6mѭ5>s%=u݃yY^^.ܮUM?)YӽJJ#[uս5bD^yexcϔ$y槍d?Iop2s{gDv۶6+3Ee֪3TAAxuu}d!Y PHHI-; ڠNxN峷>@7د}5U[[ےmi++FRCfI;D_Ԡޕw*11P]+i!&_+VL'!AO"N97fkpEDG@=ZdދxD)QFFn4Xn]5yrRsT^ABZ.K54)FӦ)2W ԯ]w 2nvՙ*,RTNUbb.$QS]vYOC֮RII&L֯~]~ZVWݺ&:UU[KqEza cRSտ&NQx|r~ ZGFh,ۍSzz֭Rnn#4jT.HҠAzRii&])!!@gH_=pzwI~1S\CqqJHp97D6AQ; ?D^(__/mؐխ.,=Ud!޽uH~&`iilK޶ztE [{mkoGԟֺA" mؐn˓FDPmޜu־r1\yL񶛮[s?;=NO>Im M73#GlǷ|Q=6{9>z["M[O`+=-4fn}&]O?SYYOg$)%Pwߓc /4th C|pð .衇n #st$I0 p_FW ͙eˎLJy<5:gO1w٤G!/:Tn'I/WOC(ヘ;^_nuړm[w\Uﯺ$0 [gwD@'UYY;~ zm76[g CC}4hPys $;ǧ-[TȑMRSl.-'_psr*t0ܙ;ʕ5t-o)Z&Kſ1rwSx56a;r|i&~>mޜұښFYuΞcI7v.?7 cȑuߍO{9;*u=#5M7W? HOiOWh+\Fۿ{69iߡN8%mؐQ"իWBBUXXe 5ݵa&Qr?H_E箩|}C4~|f̈ky67OLsoNfgܔB%%{wh?c;ܡC*+1z[ܥ f,r׏պ4stsg}HL 4nZG[!>]]w RX QJJlrTkϞmڔSc5ztqClCM% ;vnȣ| 0pwrR; WQ> ݦnC޺A"Љ;624n\'[&K_3^.#U}Sjx%'G(:ImK/W<^c3J24>̉e7\?^gKջޓ 6f/mM,O:gO1w1ee^4uʍ+Jk]m+(w+ H:;'ڱ#Xӫ qL]|q Spqd_ًeOԩƾ*Ҿ}:tX{G@7]ϫdMMAo?fsÝâ,ۆ{5꿿N&Nǧf"T6:<=]YpϞ dӦuD/qdAO/'ǎ:"da?yA||asqqmml|V ϫ4ڕѣ%JJ ҆ zݭն qHY,&[{x`rs+᫑##6ln1g/јGM wtwwֲּmS7޶{6޺ZSe=dH1\dƜFWݜ}vhQM vm}vWÄ?]>o>nz IF9߬T@ԟd}0n\$i&D\9S3CҨ+kWcw q6-ar.{XQau1yrz ViiûlQ"Ik2T,N+*[`&KO}g-m{Un;ko{[] H:ucܸ͜i[׮v0fώ7n<5i?9|mN^tf 0ztqwώ5n KҖ- "kzʼn͞':lxEFJu|ulv[y?>wKSVT- $mۖ0im>Gh.$;򾳖uW= OZe,⬽Z+ )0z}Lkf:l[`҄hͶ7n\t sL yhK:/_~TŶ`H; 4(T?Lm(w!#hx1F`7wn/͙q@\yeNnjj h3|.J4< ʕ4꨼9w::~T&S|g??/-\x-*+ѪU'+طfؾ~[RR,(2&qi9s7(>z1 ֪W_Mi:zcuӕu,-JiA{;N"NYVmڔc 5=q={ WpImEwYVQQÞbEfΌW^A'OTTT^4yrwPJJQn~ڿ+霟_'ء $mؐÇKԯ_ƌ*+k#[zU֭ҲeGu=tZt6mQvv5p`keK&Lv8n^^nՈ$ի3kָq;6J|#]{ԙgv~VVV 3n֬gs)\I{OsgcV͟U2^IIA)ھ=O;w)([Ӧ*"WV4#Ͼ-1 TEnnuCt ھ=OѾ5*Rw˕Ȳnmm+:[sjUNm-)VQQUBW[w+ 6n6DgmhڵYSɶ?ٳ+|-y~UV(&_ߣA03?%\I{Osgc[;NV=:akff~VJoǏ"p rty E{)?O?>B:U[kՒ%m(ĕ免\t%oVtF?E?<\ӽA{Sجv@CJ]io]W@WgZۈ9sRff9 60!ZG۬cJ; :nJL RmUiժ*,dsT[kߧk>,8 UP+cG֮RUU)Sbﯚ(W_PQQϙ&M~B cf7MՔ)+H&m8ڻiJuT{;s6kh PoedbCcQcnM7Q`Eӧǩ_#W::U;nm+:}5iRbcUQQ} 7'TRR^;S#FDW7 ׊IDD::HY$ DQ*+kUTTR&֨&NEL\&N]L\4zDA" @ H$DA" @ H$B4nذpU)("—DhjZIpSA" @ H$DA" @ H$DA" @ H$DA" @ H @ H$DA" @ H$DA" Qx IDAT@ H$)n…իWmݺCƹ>|;gggz_~z꥿o}֬Y3g*..NIIIl~# 6'W>\-:yyyJMMm***:󮮮6~_YYiMOOWjj ۷O3fPYY;ڦ}UUU^SNN/RsiSz}ղ Hve6ӧ^ ,]r﫬LZ|Ǝ+__6kʕFh6U[[%K4$ AW_ǨQZ431cOҾ/^,IՌ3xb}*--U@@ =IjCK]OQQ-[&Iꪫ4w\IRII{N7$@%I3gΔ]yy;IҤIJKK{ァ;vTկ~ӧd25{.Zz$iԩi͆ tRx7 piɒ%+]nZ|VZ jС;wBBB̓A)11ZJ}Ϟ=Zf٣TEEEGԯ_WVVjժUٳgK֭[?PGQTT y9UmmmɤYfjӊ+4`=-.Z{JZ,6JJ7Mjj瞳wYgYҌmvi>==a֫X.]j8qUuN֠Fm]t?p:KGgf͚ed4hn*miMݚ5k{n2-Zdl[[[k9sUuذa֊^^^ֵk::oĉabb+WqƸx">S̙3G߽{GUVǛ>}:BBB-[D۷ocz*~4iDaٲeٳ'uc޽ ŭ[0x`\x㫯BHH,--ѰaCxyyQf""D"">I455={u1>I+++ {tJޕ+W$ĉ={Ǐkcʕbnn)Γd ܼySc˗EH55JȠA nE)ORJ@|||$177W5jI411k={&))(CݷMLLR %)3A"Abq^F N*Nt2dDPLggg `Abpp$("{neߛ7o6zآE  ۷[.믿$FDD(_"}4iDd@%&&Fk_W\qpp[ .ҠAAbu}FV[X,Ipݔ6q 6Lc>#|h߾!L믿&NLb'ԩ<<y$⊕gÆ $772|go޼Ǐ+_lϟ3NN}v%8rwwGӦMf͚!..AAAGq*c++b1VA"K%99YUV qR9vݺu_vE s =PLc.jjjj8TVMoWn]ܹsEׯ r`ĈHIIAÆ q,XVe˖)ɓ1}tK? OU‰ka]z@Ν;7ʕ+QjBKJ q~7.^X#2%**J%XYY|EoÆ HNN6)\vK,;AW_}eоa9sFg_~E}'hؿ?޽ :th[;´no>KMMEnL^zӦM,^UTe+W?׃@̧j6z.QDD @"cǎ*yn,[`AOh}]evkݤ8x woĉK1W[h֮]kоaookx2)7LD*Q1{ySc?m۶UuU N: ׯ8;;k-֮g)k֬)O@w^,1bMRҬY3 666ҵkWҋbbbb"A/ӧO=z+++9zE T=yDlmm۷:ؿ)"믿rIǎ?qIʕ?5kR7o:Ν; quuX><<\9 ˗ˤInݺ@6m9s\pADDO>8p(#11QfILDDcHDIII3!C$==]T7HꫯF>~m~lywTkNNNr EDBCCER?~<@5аaCF=V|||RJzyADFF&MJes CTTf̘KK][ʕ+={6;&Q0a5ݱcжm[V9K,Ar^%''ɓhѢWʞoff&<<<J*ӨSδgƬY˗/ǘ1c]v111hذQ>>={VxIDDDŋPTӧzGzЦMl޼0337sswnn.~'DEE!)) СCammۿ?1zhl߾k׮ѩS'!<<k.$''cܸq8z(1fa߾}HKKC۶m1f"44G{ow8nq~x Q~}?[ov؁#G !!ҥ :tl߻w߃"##/p[b„ Z7o 4jHgX6W"##X`hРAۢ$m_YZZ"""ZOmۆ#Gh֬WWW4Xb\ xxx`ܸqpttŊH!"b~bee%yyy{sSSSWWWҷo_PҩT*8p4kLHZ>>>%K4lPLMMjJ233RJپ}ED$ @ʗ//|R$--MF%*U>Hʗ//[GGG G#FnZ*U$wZQԲ5JT*,^X,,,K5j$Z <_}233eȐ!@,,,Abff&dʔ)JcNJ[[[QTwfraquumjy󦘘Ȝ9sdԨQ@bbb݆/JYK.%mMD_͕}ˀ6Rl߾]IgRZ5Yʕ+۷y1#"҃A"Q)]t_޽{KRRRDDѣG2h  sMLLEOy 6L+O̞=[rssED$55U||{3MVV  GGGax7w ++2 C ~szfF-NyfL6 7oF&MаaCy iC] 3Cۢ$U65Bzzz"::'N@xx8>P_ӦMCpp0/VDD ƒ%K|5k 6668pV$#XYYzprrBXX"##S\zAAAP烁t222 "F▽4w޼yΆ/""" 6fffO7O.] OOO3 mn.%f͚ws8z(l2,ZM6EVиqc899a֭Xd ^,\;v@֭]9\ȰuKZd3Ν;E/;;;YdF:J%ڵiӦi511YfI^^vǎbgge˖rXÆ SIXeqk_ND$((Hȍ7t^ew<;;;+| ",{Hg:؁F IDATyzz t/:iÂHWQۢ8m_ҲZ'1//Oϟ/mҤF۷OV_u~:/fDDz&&""y!jժM6PTiÇ#66'O%ZjZjiΝ;8rf͚ 8t4i7xHwE=zvvv2dHg4Vً{}DEEڵkhذ!Zh;;_ Fe]۷o?@rr26lmjDFF밵H$"*D"P ,7DDDDDD qD"?$MA"1H$"G]|3f={Ì37|P|'/t]x=̟?|RRR/<<3fY3֭[1c e˰pM$"z7DDe_~{=̟?_g\ /_68}Exx8_غu8y$Zhի9effqqqTN>:u)\8x |}} 6 ֭CFF5e˖HMMEll쿢o$_W^8qKw'O~䜢q޽{EO>+Wjժ=-oѿȑ#yx1iӦʷ~zE;`۶mXt),--_¾ID ^ @||<ƌH_>Ə+i#""'",, III1b*TϤ$I&رɓ'/BRO>ѣLLL4Gbb"F۷cڵ?~<:uDXW\<<<0n88:::#G r뒙)C baa! 4333 SLQҍ;VڊJBt߾}@ƍ'""vX:OOOqpp7n(N>-2p@'''iذ iժdffԧnݺ%-ZbeekΝMׯ_h=g""*} ^ BU&gΜQ_xI& Dzu:uHʕ%;;[DD+W^"""=A 3gF `mm-ʭ[$''G4h *Ug*i-Z$dzqF%spp///tboo/͛7//?[|||ܹSI)dEnӷ~[ȱcDD$++KZ>|XhX:pXZZJ=4nXW.HNNF޽accFhݺ5Ο?op[ر=°atsa}j 'Nw};wĉaw|yyy8{V_>u!00P+o߾}&Ӑs&""DDY(nenn[*7[l7<{Zm۶\n:@jjƾի 6^òeʕ+㭷޽{ sOKKCDDw''&$$x4U:u ==zV Iy֛unff>DrΝ;1ai*T@fipRcݺuVZ:=7 Rs&"Mʐz(]nn4m?hQ999SNسg=zSN!99sUXXXwÇWj4𞞞Ɖ'Ç#44ׯǴi\sW\r%G2T+33Sv,Uq}ٳ* ݺu~y\x[luO?=z5kh{Vf[U|y@FF홙JY rDD _A]r'|2x`ٳ8x lll0p@e{͚5aeeZRRêU#GBD<͛kÇ ;͛7GŊۖ-[V”9D"kj~СfΜԩSذa:t 6__|ٳ'"""#Gj7o233Ѿ}{lܸ׮]Cdd$v튴4L:c4nNNNغu+,YW"!! .Ď;кukeς\t Jcnn~ի+PeΆ/""" 6fffO]8~8ѴiSiп6nX'MׯcժU(W<<<Xt)zprrBXX"##S\zAAA0ѢPNd`߾}|2 |G=U+s&"* DDeoƍ"4^fff2zhsVQF IMMfgg'~~~A("}v Փqvv*믿.ׯ_/cccBɓZBBBV|e޽銺Ng}&dܹSqzI,J׏ ȗ%M4[[[IHH;vƾZl)gΜQ1lذb588XI7{qΙJ%"2 . ..W<<< >|(ĠZjhӦ T*U?y~:lmmV5/^GC Q&D9|0|}}1g̘1e>p54l-Z JZݹsGAZZ<==ѬY3!>>B&MoD:u 999hӦޙc_s&"aHDD/Aa͈7x"""*g7%"?l޼]taHDDT$^hNNNwW͍BDD ^UHMME֭ajI$QWDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""*"$f͚033cDzҥK{.ѰaCTPAgڣG.;wwjC˖-{QxQ >۳KŋѻwoJR')) :tDFFvʟcӦMHJJBNNkFN0uTԯ_?~| aeeWҲHyk,YDvԪU ر# f͚!%%8x j֬Yh޽{ŋ8p _}XlڴiuScF\\QNԯ_E{Y^^^EKbB;wFhڷo/ϟӡCW\'Nȵk43ٳG={o}ez+ӧNNN~'..Xy7o,VVVbff^rd͚50[,WF(r?XooogJRԣG"iѢQFtԉ2S{L4I,--5YZZʤIzfgg.y/6+I|E%%%!!!HOO=ok=f͚a֭%>VrO6 Z_cQvsssڃΜ9!C 55X`/<}HHHW_}gggddd?~W^J37oӧOammÇ2h_!!!Xn~ᅬ5j~w >"6'""6m&~hڴ)deeEVVxzzaذa>}:}*?.5tP #G8 &k$+ӫU)O{%B r%ڵJѣˠ$ɓ'ҵkW%_$8;;$cݏGzj\YrtZ]~}]y䉈<~Xƍlۼy3OUCΝI&icǎرcrֶױcǰ~zԪU .dӫk7 >Ccǐ R`kk[DZ+\Lعs'>;wJ*!C(=##G tM ?6ܟǏ#&&PTY&ѠAl8v!kR;w`۶mBjj* ???Q^C!##PNBӷnvvv7nbŊ 'K.z'IHH@ll_l۶ @JJ UmVGxx8vލ;wzhݺ5yU\v k׆@Hݺu L7a k.ǎsa``I T*pӧOK@@UT)܆ 7윜a_ժU/LjǏW<|p111љDy|=::I'/_.vvv:$?V$5di^^2AzYؿt={U_woooeҭ[7|MsW+ {jMz~1Bt!}@D~zgaa!}V}~+tm_[ŭ&1t&˓ *޽{mڬ,kvQKFF WyiImia{쑊+7`-KC/ؑ#Gs?p@>??.\(T޽3۷o7ϯ ~M֬Y#E',ѣGDT*<|Pc[hh)MJPPrAռys ~~~tRYf++R ={ʒ%K$$$D l$l>[[[ vvv2|p/e̘1RJe|Mz_|2[Yƍe%:w e{˖-e̙h"6m*ۖ,YR,(H\borF!_| 2DIDDQ57եK2oA@Ns{B(3毯֭[L:UBCCeܹo MMMSy[z|w ,3`ǎ@W>c1bT^][oi}$bŊ2~xY`|ҰaC) [C/""BQF@\]]%((H$;;TÇ+ib]ۊ$F] QD_U>צMƬCuElmmD:u$3fк.ݵ?/ ~c?VJoEDV?0W6յyfHhѢ"iٲ MSk}k5c e7J%H411k={&))HeUnݵwrᷱACD,--_~rM{ffXjʒ6mh=(J S?*˗EH54~_v*Iy ϝ;'˗ח'Ν;ѣGEG}TSK*HU\99sFBZc{jjrC|Tߔ=tGjjJ| ^bbF yZA %?QF 4hA E ?.kVڵX׶Ʈ^$sss9{lƬKKKɊRRR4 [n-KC/ئMTjݻGJeY N~ IDAT|;wV$(}݋V' !GJ*)͛ԬYKE ۴iSޑ#GJ%Hl޼oy[P""" ɓ'u֭[p3g-oKrW\qpp;}ΝCyoA<) ''>ylގ;cǎB?zHﶢLm蹇aÆ 8~8n޼Ͱs kA7Pvml,>С:t> Gرcqe>}K.ŤIt 8{,ׯl5}V.C]otk`ժU2e RRRk.ڵ РA#F(0p- U7d /.5$Kލy.%KHKKرcI^ƾ{E.$$$yeyY׏5k(OHԩ c-™3g`nnݻwE65 h۶-N:oVYWA]$+bÆ  DVV0{l;Vv3󙠠;ZkJ맏>%9gJ $߿?y 0E~s)]rPe"""$}9mΗP:tKri \III:zhsԩUAq@VVvء;v'fcm?ԑ#Gdoo y'(XV!ٷm2xb9::իy UmLLL?tI2sؠAQr )2ߜ3ve'1q[bbccŋ{d;v())IԳgO~~~-[رcV牋S5bĈs,m9x{{9Ku]v5/na)9W4hlllb'?!!!6۷y5kf_VDD5z2~^j>3{:2dzŋ[-W~}s.ԗ.\:OEY~8fcfΜ)'N6BLL{qv8~?*>>^$}wnt͚5yGvޝ!իW6lҥK}}G/(ˋ[iȐ!jܸ Ј#rƖѣG+!!A:topRSS-78q?qj M2Eҍ_I\.07on>_gf4h^x!5JsNIҀt˗?xʕ+zG$[[[ۥr}gVT|rFP͗b޺ Gi8S]y9fǛX{@EK,u~tt ׯ;=~̜9S{Np&L`@>~xEFF>KKO?}HN~W}2{spX*311Q?/wwwuU+cXWjj˗/+;;[ 6TÆ նm"Bپ}{ק~z[os[nڵkJOOZ3qF9sFrwwӅ+$$D#<;NY}]QիWWoMjذa[n}qٲN:]v:{5j-Z4g"m۶Mrj֬޽{GeH2=B"T 2[wB{wC"ͮ\"EDDr@GI1xEYD$&&?ڵkG@=; Թs~-_\,F=+V $ʏ 6hܹ۵kWGGyD@кuk(%%EoJ*Y}*U$WWWs 1p kD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD@bGH :t_on1˓D;ޝ;ɉ]rS!@H"k֜ҥaQI9M7=h}Vs.]Js$}YWծ]狌L֡CZ,LsWӦU+vge2rM?2:u(!y-_&ϕz͘J+z?--K/j۶K K׿kŊrt+P@@Fl7׷oM.طo{'MjӃ3g/c ة=kLzwۘ?44 3EQ|}ۻ}^N'UdԬ|eLO֮]:pમ^M+g缻PVm.)44A/&Nu:wڪWϲ3th$sgwؘ#($m[7Uaa|9U׮IRwٙԱ{ a6xp}bf{22huÇc5kA];D~ J 2Րk=""rOj„5eD={!wHz5< p+V.޹3Z;wFA[-V=B"Ѽy?:tQaeg ϯf'N%'';)/*H֎Qz5MXiiY=\tt^bcU[/ܹ$}e6>}j߶]UihED$iӪС*U+W:~L=.%/կ_]WW)HV6nz奞!{dglEGLIu5}o{Dؘm,$Uwm÷L_A=T $l`'OQrss(6((S QzՖSn3@LԲzm߯Z^tXΟ - TO+6((S1ن.]JюQt=yood1%I5j8*$Za422^~uv9ǧkĈuZSUv5TfrF!%6bD#{_x}vNעE4|xCKNsBbΈɹ|UڵJHo]o]$5h^jki!]ʶ0>͘t=$/*96kVMMT-#r㣏W R@@b뫯No>6AlF'@HDԨwٳI]/\gCVbGGlC Z_ԿuD:(WnK;v=̆&w9;ABB-!hO?ñ'n<$;PpU_յk:WZhժdggRf9YO )+7o=Kת$)0ƣ0ILЋ/72IM;ɓjݺVժUKgڱ#Zɺr%U[I;VVdg Vhh^MuP%چ{(022Uƍ*Q=B"!  \ $rZGI&Ӎ{9@HD!@HD@i P\… n2ԠA5mT={ѣe2*ٳGgѣGSNB7&&F;v$m޼YM6-7ܲeK%''Kz+TluQ׮]$=ZbEȑ#}b~0rSN)66VjRF,eee[FFFj+))IrJ?QժU ,o)88_juJOO7WVVm?SٟyB"K.{ ʕ+{'Ν;+իW+%%E+W?N:ѱ\75uT-XB4mذAOݻ]M׮]ӪU ZfEԾ};v6iӦy^:}tKƍnm?^s=`С-[(666ywޭK.zѣ8Lb?>Q/\ժ9ܑz֯__uQdd;f1-55U;vdR߾}eVZ~Iޚ9sZf5kk׮2dUo=R644Tp$ҥKڼy7;ޣGŋtl͛eoo^zY_7nŋ.M81߀~A۷oWtt<==㣱c>E:~֭[~:y;s&?'OԞ={tI={V_F&M?))I$gϞ恃ӵ}vIR~$IuyWO>Xqqq>E=~LYF[nUllԩ#G[n2?~gEGGnݺȑ#+ \ F?\uϜ9ӐdH22337;;ۨZ!0`Ŵg ;;;#++x'ѣż-2\\\o~լYXvmu(jٛWjjjNwĉV˹牊2cȑVxzz!!!V׳gjU/.Vis1$}s,vچ$_~1FmH2kޔ'4L&zL&cɹ=zC-]TV۶mӖ,Y/$=#j֬BBBO?ʕ+zǵqF 8b)۵kW+_u15m<-/ou۷o_~PXXZn={ySPP }I?֬Y(7NG(~Xׯ_-[*,,L6lPTT&OK3#GٳﯘȹMzW_}z--]TԱcG 0@nnnt֭[SNijժ^x"uƌAR6oެoF3fLvS>.細ǂC ѡC4m4o^aaa7o׿UVҡCkJNN… u m۶M_|}Y$39gaÆy7mdd2aÆ/^u D6mrM?qѸqcCQ^=#--TaL4ɐd=HSV5 2d!ɘ:ujgS$ ,5ϬY#"",ܵlҐd4o (cːd899ϟ/D0VZEY^0$&M2 LbZZaoooH2&Nk9<`Lwa$L&>ȵܜsΕə;K s,(irRJFppE;vXۼy,5k,~bcj̘1{L-[y\  w}Zjԩc1RRRL&/_kzf駟J"""aÆR)[eޢx4u\?3/رcW_}뙗5jЊ+TjU%''kɒ%%ߨQ$Yͣ92={VruuմirM׈#$IO.r=۵k_='O68˭h|~ǂSN8;)I>jժ%Iիj1ZjW1 !bo-^7n_g̘˗络1cX}&]Έ}rYf}Jْ(œO>iuZ|a IС:udlڵ_wU儿`<9vڥ(ըQC={w9M6Ullbcc񹶷iD8˭h4|^ǂy)Iz衇N,ʲڟ ܓR1en:;;y޽{_x3ڵ˷|6mtIJْ(oFn 5Ӛ{ Ϝ9SkN-tz}JJ-[W_[ލ4|^ǂ9g j@H z0w}V2٠A|7lb-ZoQԬYH|A߸q6nX%QUVCbQ.5rJٳG/^8T/EmǻufXPZ}Mr9g) +gR)[eޢ(ᬬ,I7jժK\Ǒ#G7ݻuEխ[|i͚5lf9r֭[g͛uj޼ڵkӧOW^#xy ʢ@H!///:tHϟwKn~(zIʖU˫_'OT^ܑu6jH:uҾ}wW^1d3|Bkz\g>3>h%wϗE^50!Qߟz fZZ;˪@Hʙ]Jo߮`lذ|R%-[Vu.$I[lѱcǬkĈ#Gd2)00P˗/WTT<<<k$Iyγ}v>h%wϗU3'NTj$Iƍ5baPPL"ٌJٲsi)cn6d5nXahĈ)99YGVBB5tRYoź"#Fz2WZLKMMoכd߉>_V}{ $Bpwwק~ɓj׮zMWJJW_Y<$e˪%UreIҦM4o(38?^}UeggVZEjGyD̙GjfիwyG׮]ӂ JIeW*ʙDO R||յkWOlYչ6oެ-[(--M^^^zJuڲe٣k׮^z֠Ag2˛0mڴI*777Il2jnU}|'|E B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $J'թEh=$ɠc?j{B" $B"^'… V_/u={Vݺu$… رch̘1^gϞ|svvӧuyyxx[v*L[WDfҦM}|-Y'IZڷQ;K˖u/v%Kti7981cF+Opag=]w\'WXNm&''٘iShzz;oAhӦ>Tɖ ̎&P)66Vs5-%%TQn]9::J P``VZrrr*MM<9  (;;[?><]NihÆ +U5sf+}eNL$fJ~\\^~Twֳ6'V|U} v֑#SVWb -Zt?ԸƏWZ?9;-s$J2 $-f͚RYda&'FEZW^eU{7n6m$04v\!1/*vT>(L;,?.m(KZI:xOm _8Mp~5RN%K7S:7_^llL?Ʀ{qqz :(..|3@a۠v|nw\n #Ge˖*W5jhՊիWtRUZ29mJ>+99YΝ /o}jԨ+W*66V _Ըqc?\{SO=M6=Z|VZ%???5j(5|]tIڽ{ڷo/IիUNׂ 7iD?#G6O߷oa%$$ڵkz7 j uEڻwն.w#77G-XYw4a}7mMR7?{/Լy5+׷-ꪯzPe GO}}T@@ZlvI{\̙ Gժ9oiǎZq*Q5hଏ?;+0pVzH;״vQQwҮ]aC/=p}QGkVϯvaoWx1kxժ}.˖uxh?3PW?&Mjʔfں~my>)N)ѪU˫M%[S_IjMW?{oҥf>'UTQ֭s6l($UTM~GzG秏?|||$GGGV=&L^M4ɳ֭S5h u] 0_:w\8p@?MrF$ѣG9%KԧO3Fmڴљ3g/OOO… $Iĉwrqq#6t)@n\n ܹ:oV'N,|=ԱcG5lPӧgͷ?.wwwuAWܸTp:xtݻGǎ$;V9r/_0:qD?~;)--M6mرc5w\6nXƍSu{ꩧti=c4yd;vLSN/e^Z֭3/ĉׯw}'I5k^|E5nX:u*T;m۶M3fs Sڵ͗~E&Mjڵ+++Ѐu5~.G$iΜCZzSkמ$cONBOβѺuu\N'ԩd4_jM#GPx{P׃ڴM"~[Fj(9$>Z_+*%˕sϯ5rѠAtZ$i޼cZyނܹ|JNիi:>~۲”IjUaH!g{^Vց}$N+/~No9dT < ܕ7?o^^^u}A7F l۶p;Vf5kTڵvrss3EU-O?)$~zg,o5fx?,,L/}]M4IK,traÆA泭EyvaQɚn,}MH66۷oWdd>C<ӧOB_|Mi~7n.]Xo>:uJ-L&z)}w%K_~^}U͛7O74IDATy*Uhd.S^$u=skƌV$ \_g{ٔZk_d1:aM+R, UBBڵ1Ɂ1r%U&N_ժ9hK.F GZZtL&o@dq-;;=TgҔ)Ej¶]ѯ KeW8iRB),Ȕ)e[G;ƍJm{p&@ԱcGZ֬Y3֌34bzL&2335x|~Z_~&O,[[[ܹSVOMMոqzj(==]...zQ9ƍK.iϊرc-#++KǏך5k$^Çsϩs"-[1chɒ%ׯmۦ@رc]ϟ~i֭СC5%&;ЬY*UShhB.yxTRll^zi_꟞;>j{̃;nlUl9sBtrjݻzk=z#Gbr O{%}MvO?'ؕkYzCz61mnjpԎg$Faa>WwМ9!_f,W>eoo+X∏OWH5m2O>9i~iil$lR7֡C dժUS핝z5j}ѣG |Xڶm+GGG{/^iTڴiի*tYYիWդI5nX[l-t;Pc..FT#^Wݖ2&OʊKq.\V`'llLjժ*WOWΪSIWҲբE5;wc$ҭ[jpz16QՕ#Gb~UX^^UT#n]'5lӧr-vn@HRB"JWzNZO2_սFQ*F@Ey^G667FX}`"B"h0_^;+!!])B"=&11CǏ? $|]gߠIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Luebeck_page_1.png000066400000000000000000001704341420322575300273410ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxlzFz$$@ Q@5K RWԋ\T"UQ,XP "@@!p $J i^v?LlI6!<<93{Ιi"JOII.""剙DDDDDD $D""""""bHDDDDDD A"1H$""""""2 n-k֬#|$Lp)Vjr jk/+:Eطo/>Nk"2ұssk'z$/$ArW^^377}݇]v{?+ccc~ 'O믿~S幥eK2@"3f}Ϙfq=ƦMW>R}?{{cddgg GGL>HR{\]!ab";͸.{dB- g 1PWcyAD XpǎHIIi % ;LS=VZڀ?Po*+k%!ᚼAP|MRƖ"-R2|bbH/ĉnANɩP(xuxbcKڪtĔ =!덾eBD7'>""7 塶Vx֭Õ+WPWWcǎ!<<\mx hhh@YY֮] HL8 555xŷ~H,X~ִo995jAƎw`@9lĶm#2^=Oѣƍj&eBa ":<z (ɞXzZqp;v3}նx`w>6 `5͇ƏwŁP*Ճsl0<;Gcp;G#0P#4Tk?4兮|U]n~;Ft'܆'wo'r"bHDDq!,, v^O0~x<#4hY5 ;w?P,\?<~aD"ĤGG,xqٳ˗/ךLBuu>>XbJn]<? // oMdz@~˖ap{,]z<'rrjeK$;<Κ&?^ \qv!v8$xh̜y eXj𾯯=˗aldTVV"//3f mkטNN&P*ϡA!|.:7'c`[|YYY B)S0yd᳍9s/^ĩSsN8p{Accڄ4]-Q~~-2MϗNsg϶΂m))T*>t˅75)Ʒ[ATb8gs jMر (Gll)Əw~.&!(G;}55Mhj2̘BW>45).F˫mnP(QUȋ%-MnA%%%سgoΝ>}:`KKKףMMM¿;vԩS*bƌزe p]w_D';v_WTT={2^[]آffRi㉆UljR/Q5㯿1a+̤tlD"ocǎ;0v3I]>(]]Йi[okp*9O ]ŖD""j!C`` 55U%dʔ)HNV-u???۷탉 k\FShK_~%$;ư2BE*Ug;}C죧L&_u c]YsrdIqr224 cXg}!! s-]*/[HPUUWWդ HNNƖ-[ 0g|022b߾}j3* 2e,.[LZ-T}8sux aٳ`m-Wto}H[ pr5. "p};Jusxͥx@81ZXH!`nzHaf&~Wb߸ѕ]-/[;%""53C"""MA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"=L&A,.GCRXZ*+QUR"33)UyTyy;卨| /(CsOX,wQQ=[[c^45\T(+k@mm-[675ȐD"Y=((MD c!!r|qAӜ?o=[O> }R{qǒ%!&u?p;l8\"$!Vx6^m?B`D0o?&Mr:ؽ;;wk] j4/aqHI@P - E@㏓=`' Ddkjke|E* ߂:lܘ_:R#4Ty1l=d2W__Buuߝ&OEǗaX̟??Ȩ idbǯ}C6nLٳڻ>|kWڧʨm}|4 4K^i]d"[ tDW|>AcJxX]c4~$adU/<Exƿ;;cWad9qCד7 9~{f᭷4?EF:`"88`>gcIO_sp`nPZxso ;ffR,_sj⒖.kwgeeM #G: QQn3Y{ؑb ㌨(gsu??\n,_}5Ơ$K$R=nmI[hWʰƎuFII=/>rLxULKK#XZ!7ƥKx9`\u] } IUF^cР18xP=`sv6ſ=aa1N*<+DDrw7llܘMۖ-Ij?kv6Ϊ'x?F_y A\.S m+0wq{n?F= UI{7߅jAa{l~ iiBlYh&uyq arr^zNpt^zԌm?^;3 `+*{:DO=TWW7W eC }jD'acG}ضRA]㏗UoW >Z|q2jjZ ~ѐנeԞUb5D@5vh}Ϟ~&Z(I3ZXZi|fT/wUUONRZڀGҽf[oi}U\\uůJúuX..46*jUbNbOS~ӧn_9D" .qqؿ_d7Z-TwoD\]}Eֲt26'{ :v8k EHڵmժX&u *857%9Sgl]]CkkA=Z׎C55MVco2Ab||% JJ:ka.hhP]˴i;66h^\1]oހi]H:6;vaǎ4W~Sll)v^pM:ƠAB+bnn^]c*Mv}K389~$w*m]wp{s9_~B_];vvEBY.|V{Qž|m45Fgǎ4]%Gm)}7n 1+{k (Wlj=ΨQm kgfz7-k܉D{ ʕ0bΙzҦM”Rajz} ڥ01\e7Rư7aLp;X17ڴmj?oFFFU }Aʱx#8q eyyگm_RkPO2j>Xcqq׋-7Z\ҽ 鯯vvm67t9mR(xsHH1RQQrGC.v8jMʰݹ݌lmw׬LDD7I]mUv+JKz7*v<JݥؕkPWrk{ã]FM$"-mX4fx`W<_O>x N.jsJjI܄ݽ-{e&v4d213Oh…<NNXM&ҥ>1ϯuN\\n;ΟHz&ϴ/ioo^9nK7נkt>\K;r:[Q3m]e7dnĒzGI&G}tn3k/ wI.u0ǔ)2&|S͍Su̬'ϜqqT*£zkNm]0ȑ>Qێie#c8tG惿""~~tot4RwƼ6v@K:f!u9o:mhND &{Gر.?=%߿6II'Nt:,({oKTݖt-ԤݙSza O/"LpРPzj":.xj߫+S"xq̱m{ڹГu+ˉum5%lqnvQ {e&|y jwhND &u@.N,n}w(^ye   a^C pB m ̤ј>^^sf37nJ\ѫԤěo{‘m.!;[5N&F'q0RCᣏ"պnْB͚G8|xR%XzՓs;;cNژ T@k]; ovfee]֬FU+%"rcL_l<2Xmz\ɺo_[נևxapsk=mldxo|jό>]^-ymnm9DD+,]:PRS+܉nV[=J`sؼy8 A覦P(Tj>NMo)͕+,X_ca!ŢEAX(HEoq}Ƅ\X{lmm3,9͛G@.A&c,X]#i=殬r\ X>K"#{Xա B`T[&p&ؾ?_7ߌEnnM?%oeB!nw jum:woJJꅮs׮sjsu7/>>OnCff5ͥ;AЍqm45诿qtgdz444յ5`=[W^g?!QQ6Dx/xݥnr'"޽YjO[ZhhP`T̛w 7ٺ56$-rlmol̞}/_'|7D 2zXSӄ1}ni'#ki1Tڞ{>8= W{fa3듵 2VƦuVО: Yw󳄋)DyzS_{P(1* R lߞ5J%V<;Ԏs"̛wBPDD7QxO OO 猐9QW׌˗Y;"0n <=-b GGSTT4 758tڒ70[??KƨoFAAN.‘#y} // 5|W>UD"£`HG I:gԇ&lfUpPcdG^ w錻rݚPXX5k.F޵"#0r#<ʹ=~ ȨWԖ ˝A";@&ziDDDD7HDVXzUENk VU5inFDDDD Z Ki+3Κպvܑ#yQkK8zT5P$6mvט5 o1w@_\bQHD]fkkmFM_Yوj6֭3*^we0󈈈$q]n뗵[pfD"ٹaDW ffR5 3х8yųA"Q$D""""""bHDDDDDD A"1H$""""""DDDDDD $QϑD6Ε\ +$'#;'OO YE̐^d`\\v2F>]t]_)~"""bx]walNmp)xyYf|]KG'{B,!.Ab/^w?qD"Lֹ46d&&OL  :W8:iO}}sGgeѕ<7Fvn$?`ӫ~ɓ=0~+lIBllF{pry5 kw8ZFذ!ôi^ X,BZZ%z+&ԻȰz\Tk/jܹ:wQm|٨QN6 CXF>|'v7=cٲ(9dOFD=̤W')ƺuP#F8`t ` \f%._we`׮>Lj!!6BÇ;`< hHr]{Q^YXH1~nC$22m%ߟӭU/{"_2|m>pr2EII=֮ǯ O>eHKkh&"""С׿Y~ʂ Ë/QT)2/HL,ŋe >3O>yR qpx0DE#/Eƹ <=63􇃃 Ԥ ^ye LDS emFH xSiR;}12 -Cb*31_?sDDطlK$"DDH-HP3gj4 DŽ+eͭg98{XRRS+q\ 1f3""cp[L&ƚ5Cq펨lĉ01 ,L#pxրc@9"";OO ^-;P皚)Fmm3 { 773aggTǥ9ұ}>d ŕrA6(Y|p47+Z>>xP*~h=/wwKc3|S mlzx(/n1RS+qX>|}c+Gu|uިc~~t0 ʫm>%KBpnjA/Fuu#-:KRZ(&Mrҥ3tB(wlؐ 32%KB0k1/FJJ%,[hǔ)(,sE kChӧ{ORt:t8̙sG'ad$ʕwo̙xao\yeљuiy-oÅ ]o/<xs8uJ5яT*ʕ1q+ <|4`ٲ0~#焀>0>&Poi9Z,,@zz%Ui=LDE#)Zc4aarݛ}'Ν+OԺ#;ƥKBY]; 7ϿݖkXb(,)%KB0mFpP ԺwwKns5TY(T*‚m…,Z& 땯V. A(@Lvt% oD@+$a׮uD>  YXkk GjjZm.?TeoԱAmB v @II=PWAbpD$ uuhlTh|v [(C7 @ˍ.okJj7\m]SpHژΖz[uT__KdeUkڶt%|ZIDDD nen.T*B}}5zOQ[r++YﵰPek]]KSTU5veCv%2LĘ1N%MBAA-ٳ]. }ץԩvBT벨p11%¬ ./aaэuH TXggSעNB^^Zc{ XImԶ-dI&LpD"Bee#*pToOoQ$yg}RIaggܹ1e'&NtEp &NtĉX8Vr:]eo10b݀\[Z-];ݛ$ lBĂ$M''S d[V0} r ~Tcdlݚ|u |Cb͚pw* }5.Jd2(.Zr|bHG(@| |{h {{cƖI s"%7ZܬDs02k}mPdee[[c3N8sHk>H$"l4AAؿ?XXjIn4ԶI`Zy|oIw $/$SeWvxδ$%vïUkkYӴdQt}}֙Fcu3FFbaa]٦[OY,eYc̟S=p,Xpհ u,:6Mb"LM%x xMwxm8q" '{jioo $rUWҎJww7;!1ڃİ0[YB,_aw6 oss)T玱:#P( DDc l\()ǩSE:iNN&j7M.ر# YYՐe?=cRaΖEge8sXcV[&c!Xj0nMAbbL0m' ٳKlU/CP lħCa 7Q対^##1^y%[$A&ch'̞퇺fﲲ[7l<[b լo+lfc#RR*gLv3Ԥ޽Y2 G%#+xQg={2q-cキ23XGGS&3uu];C%>w= B'`gg)S<1t.]Ļ^a|ԩ^()i@ll LMôi^hlTKt|uިc[/^,Ә=50P5ƶ66c͚p…߅$""bw57+'b 鈰֮cUUMx ˜"}<\4^}5/,P(eK>4Etjj0{qւUPPW_=noY]i^X;g{C>by?d;}ӭL5Y {.||,1g- ^olT`׮X>^4HVpu|]?܅}a1P [ӧS웗3V,[4ZgĉWog#ѽ{kѣ[aʔ?V3S$""""b7o0BCkc;bzn _}$]aT&46~y\\$(*cϞx\z{_&wüy,Ư5*3-1w @VV,4kVz5+f$^zifvL#¡P7eFyZXbco"0'w3^{' ika+8rŘ05C --&DDDDD$ZŚ5E̜3ftEHH Ԫ[ B_|1 ..\^X\}ٯ>oN뽰o_nw._WO?~CPP(ĬY=wo{PFDDDDD.nJt}݄9Xb ,Mk?tfDlnoDDDDD$*aB ,i2C_ݝ )o_~٦M1(((,\Iژ3g l߈MaJo ,s 2  [I!0w|OɓבMkSpvC.Ww}bU1IJ:w.S@1;߼Y b߾۶B65Zw݁gѣIF/Xcݺ5Drƭ[HJWQ\ZM^#46<<#CttMBzFDDDD0->`@9^$>& CV{r;}#""""G '!""""""&DDDDDD$$D""""""bHDDDDDDLN=>>ҥk*G0IjٲƎmVNDDDDD6|V:^FT-,,L`+'"""""HTm$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLA39xp|sV/^ ݻZF ɰ`w@_nn. Xz"]KЭ[{T*,_:tŶLqz̟?5k®]"""&UZ!!M HH4iҬ/:R!ѸqHlC.]BJJri{hʓʊ CRAc[&8qii g0$V޽q&&^L4;v1YG$v:??ԯXm ///4k.ղ EE7O* 1p`/jl߾:-Νƶnݖ ""bX:v쌎;|~4ijĶmU͘*fxZs6msPňhɶL6+**B|I"Qeq;Z;;Y6uuv ^K~βjS2S J@ @˖m""JHmײe+Y\,C\%D#8p`22֭bܸJSXX;…hܺue6l8D"%%8qb1wb6lsj‡γk)((ٳݺD"1Yw.\k׮o{qwr? P=@Rȑ>ݻ/ fynswNLV9ر \]]˪*^t{{{#;; 7Ǖ+q()u6xQ\󑈈Q&h4r%^II1BPॗs[]̙Sx~©S'M o]$* ? |"r-ZaٲТEGQC?3&O~WO?=˖d˳e&?t ap-rXnSfŸq,Zf~U?Qv:`˖&ےb|\X=JI6m⧟~!J Ig͛7N@^{A;x7yFm7i7nǰa{U6vo׮m`|8pX18q4مٳ߁r>qqq_,رMOKm9* f\pX uĻ5هwUqns兄4s6/i4*\U69l7~z,z_ryQѣClHDD' ݝr$/@P&>cƌR""r9.]+xc-{nRԩkv}ggިQ&Ξ=;!.&NOK_V7#֭DA4h/-իW_+ҹsWt ^^ވM6Ӧ=K|5nnnxhٲ5ݻ˗ !!gϞ0~s2YFvkҥ;$ Dd!DE/[61_m%r=7zE6mK.b۶())ƢE лw?bm >)) 4 myyظq=dHNF_{DEWVchӦ=smi<<<Q>|gϞFPPL4>>Ɩ- 7:!8vj-ڲVbO^8 J%{-rܽ{/<mڴ͛7pƢE_^*]VZ<ta᪊;/]ƍ߿Fڵ ..6ݻw0yx]G}_iT&44|n޼4ԯPܾ} :tʕV B(**… : ?/5k6, ~9ݻw`h+gJ {"#A(?6WFǍQm$WjSGJJ2ԩ5k#mk | ezz*ܹ 8{4~>lQ#sύB._/5N'ڲarr-L4}P_nȐa}م4nϡnznn5kr9_O6Jܴ֫\esfcUUs6ӵ)r%Æ ҥ?%cǎǨQCQPP ?ǂ_;,ζ""'q@_6U%PVmR..e+Wb? Ӧh\ܸq9sh D"ڵ0y:.nJ RYС(**B@@IݻC1xPԨQuo5jQhCضm3`F bYulzرMD@;nȗz]GDETu6%^hmU6zNW 6)?h{dR[֖~_$ 6o%<ШQc߁qnV\Q*8XlU/Λd[;rDk?DDDL ]`(bvv_Oڛ&273e# ˗ JpL>wi_]\,vF&n޼QFvLٳ\c][LL4@./AvvI-°z:^NN6}1NMM17,=4 RӜds Sq?Ebb:/^fٳ{lpzUX[i/X|VyIb[֯W[@>[hq=1ן-牥k׮^|mRvCW5kւ+`(##]#U/] .xAw1W{lK!""z2g%vly+0bf׹~=FDQQ6oޤЛ|Cwn4%v &e~ 06hvv0jh 6wkĖ$#''(8~<0qߡR!\4_ƙ3_ƫ!|}lÇ --&[{QmRpBQGu߻w?3긺j]ʋ|B4 D"`aLM29<7+{ơ~@FV:^ܹ+6mf lK!""bX v lyԪU+Ȥ'7h۶Tw<^^^Y&*S#TI o=z\9 &xZkˆKSSG-]P*k#mȹYs0HWu&pUK蟁5jMpZug[j$ jֆϕ۱*븕{Ϙm]lc.f׵w=n''g_8y86oވ}v#== ry lZec{[HHSݾ}Kyk9 ;~7ޛ7+{֓IeWR5N4ijuM8~$V$Q)h8Ħ)u%VX Z6{[!{_{!>ܹ+:w/Xd<+V|WqX$؇U(hAA nÆ?W[Co4eo۶͘5Kȑ2EH?^333X۷8S+z5AAo5~=E_ݺPu"_A2e:ved]XPXN~~g-[v5lLʶ3=̖=}$T*bѻm‚ri۶7i {ז-k碮,Yh4=fK<͵e]qMd8=cFFϺVչiϹZ Hd7oت̦Yz%T*ѧO?ٖCDD즕tM?CEޏ.g3&$\1dɓ0ed2Nd~w4{i4#6r%%%nժMeK/_EIII%|׸z5R^ye1A@@}'yىE0}-ZvLQfdc޼6Ҟ6Q-,,DBɁ%##J^M?hg>}R \[6 M4+'*vܴ\]3<[7`|WSԩS::^ .^`ܥK1Xt `!Hg[jxۓDKOv|9W> ǜ9׮]gTF*?x㍷˽-xL_`cC7ndbؑg""Zݦz=og.>|hYrrzj~@}kolDt[.cx#̝~L'> ƌb5kaOK[vתU,]2HXmoM{ݭwѿB'== &ӿocUK.ҥ D3gNa̘KЭ[퍳s-}t7Xt"r9BBUذazA;ΟBd![Tg{lDEåK?DD$:$[,Q(g ͂jy_W!.~f?@{ԩ/ֿ NJrrlnQy6QmӦ\]]QTT%KA(bgmѴis,^#G>^]֙5j45OKmٖ K\[/H^X_U禽n^͛7s˚5k {eT⥻մmyKX}9m{?;N+ڏmgv3᯿D߾nx[l72hw0a1ItN\C/3aƌi:4k{uza?jDqȐfpvX_܀LE$""""bHmv *F[`mCCm[cslujGKOHɓ)l""""j8L;"c{Ke2+Hݸ۷ Q;BB;9Ѿ} K@ z5Brr6-;n7 aa"DGg`)QF wt @;VkXDDDDDL2UFa1P [ӧSıc[Ujc[#;~ %X܇>< 3ftC@t_$Reoww'@BL#FCP!99qq7˞y%*WfjWu7ߌK/m#L]X tidYz$R9ԩTuB!fꁽ{1o^ܾ]_w|O_o<8?4ohee9r G\' AH?bcobP"""""&Tz= }иq3w_AdH@b֬&1"Rh4on3J )) scP WVIb rR+ҥ,}{I-[,&1G&!)) ~k[Ib{>e2]gӐkuIIYf? ݲZ[C-ODDDDD$>dݓXJ"uI[ffF;<K.W\7B{%bC1I|F^@l'"""""b&u,#aaK'"""""btf۷ |wTy""""""&MbPPPXIO,Zs 5

ރzeu1I*}9P*@;!{@,*0"w!h n2pDDekkd@I"UÇ%ÆCմUUA(z ?2~DDDDDRwQ UU|JI`rW@t#Joov :cYIAI1$'iө 4.\ Qj TP4 'qeP5hOAٲ6)kHx6oy] J\E@ UPCmݠK ݳ c޹ uZP5o④^E B]6- (,?!aa(2̦I$gOCP?L< k86.1BcWH W_@捐UVY|%޹sz*C#@ѽ==;! N kmFrDBum[ndw=]ʶQ}\,셗!/L 'Ǥ| (XHSV^9Bp2? Z!+!JI6 ^{bTV G+]^GCgfܾo4)h\\Q"> ̗n TȎ5Y&tdy6BwroۼY+v$Nzojm۟p5HND5(Qs-ES>ݵ FV5}Bm.'sHΞ6{υlڋ2҃LsaٿU. ΍\o6\~1T]|i7U/] ˯jۀ;nJ~0fO+r>z ݝr$Q< sWHix{1;bT0"W&{BѾ#72!=|p^P(Q'u^ovDk@ T!M!f݅ԉO ,dds8B@08mpKݓ#yx== "hP2t8T͚C޾iX^\,i;Br4TA P2i*4>Di&dExPtdvH?@ QJQgKO@rI(9bh(AtD\-vR(@޲J,/oH(%p(0;*1{&ΣdP(zҽ}_Sm&7sIe붐ni6]?C" )+\_~o&MAwn8 ;⨪=9Z1[YB|"d3^"D)p]<͟ !=~!e%Cz0jqzO8i(l! ? ?Zq(( @@%(~nrYwxJZ esBp9(q@H$(?-4qpڵ/hcۮ~/w_}ȺuUGrhXP(PW#@r@޺J=ށo0dE( |_v$em$ʞdEӖD3rw7J $'Aer|^Ѿvl a]?=8vit<͘i,n >sT:x,Gɨe򴣒mݦE"rL$r⚇π SwKVUS#wA(:u)k3oROfTsLDkb!eXT @LBp$3Nwu.^v0y1F˯dв@qe@(D:ExxhX]]YAAC^=]ư3%#n+&APT j{q.C'Q&osEiиBٌW\d߄kzpn1"Q2f̄sW7=GxS_09RtO(C!{}`xglʈV& "R$וexq0AQpylg!"b]/!isn݃Q8S> H9]<^;} (&N[<;Rs~> i]NP{~vkWM;6c#:$Ǐjݪ5mښNuHeG)*M#!+ݟG8*B IDAT[M QT*HN1խgP<{q.ICFϪFq71w-|}{w;'govƣO.Ntn>V5kiwfvuZfA1Zҋ\8'GKĖ6p1JlO!"MHixU; CrGiV ANSYww5Դkq&"*SV72,B;[QOUd÷k[Gc[Q5}Dr˱(}JhfrO$Q޻V5[f y,c/B᭛%'AeD+Ȼtm;~S7`IAU]0\diX !> bD)]pwjjS,֞27y#Qsa׮mQj~Ň.δleQ{9:^vu@rۀ 7\hg{D*T EPt{~xs&D GG >qr^ ,[.LM5zce>k@Up9En(f9?|\HtP2)hYuwB R q6㬮?~^ʭj RCyʰ;vD"(m8{Κ)>-[H퍃$lK_>;M 9s ƣ#6tՃ03yvy]ϨYz~xT}ck۲|}RTpp@]?6 wkٮCD$;72QP(:wE8Q$;ʛ;:]Ӯi+[Oa'g(08*N8;(R ii6>424ʐPF(,Ӵrm TY<*su߱rCɡTthÜֿ)4SP$RqZ.?eh8r,f-;wN_IoY;]`UFvU5R i˦jm5//}נZ~z83PtP5 (1n=qo'? &QY,vQܕ$˪!9y P( G;iePר ېs䖺CUo*<}ve>A fa2zU厧~(4Y ӫ4=GeۥJ;6 jϓ8Dljk)um/kW!̺k['Fۃ,\E]K]{_\rF,uи]V7{$:JS:  9q »w "!-Q8Sd9ҫP'$0܆rXHΞ-ﶕ.1%k~4} 4Ħm+"8QB<4nnFtN鉣Ik g5}PqWMgӎ:f8Unco[9t:4vwLsoCe"CUo1Ib}X؋hgdc3*UHa>1rLœl8^MD -fOYe{$"d҉޽Cn}D4ן'@&Iu25f8X|-!9wFߠ Upck@xD!J+}iHB]~j?(:vIkAq1$GAy%O< ɩP [p^!yGɎl>;Tj_?|5}B޽TCw ˠ:F6O03>;@>`TC !>uw0 eXA-Aҟ5j;}(ڴ ?N;Bx6 ` }kIՀHyثݷO@88TPDL^n^nxT$Q0zf%W.d..j,[7?g߉XlFgeD %ό xHz ^03n >EɰP6i6mQ,~5vk;(z FɨpڼP6tD<*}Y=B,7{Sz@r$<ޜ ]33'^gdAJ轃4 D)ů?@(Q#"JS B@nv)?fgr޲{fK3wX \K~ |'2jcտa)Li!JC#"<ԡa]Dpz`o;p:=V9|b7'jߢadž#Rhm[wlRk 7U~ yp">xow+BWL9A0d2U __U,|)ü5}* 3 O93|f(\< Ciipr::~DjzE0(,OQ2k㿓r~QX FPgG]]ݤE `ƌ`fx_Edfn{}A$<~ 8L!XbTUð2 V}ԫUo#6@Lhm5saWRA$AIҢ!vǤf͸v{v{H1 mJ\CAp4DAZI7 E:D"D" YqV \.7X6E1c$H$0 v{eDT , J!Jl6CeDQ@dfLFT%IqHd duL&X,ȲX,A f3N'V[(H&y0 իX,x<łcd`tF,;CJaXX,npG/p8v-!Ib(D1UU`2pسV*oކ;YH$ { e2H$`Y$ |"CR), әd28X,V('-k2K&:!PN?^]dbHMC[/xD,d2frUe (E/CA$N01n0Z2Q {bXֵ@ SbVܑHP^}}ٲ phnnrdYFoo9sߏh42d,3 p8@`2|v%󣹹N370П!߭e nJ̙37f̘ ң@ & fHPR~S`=6 "ZX,X, ٌ3f!~L&̜9(}y}CZECCcU L& (vGLEQ2 "pNN2"(f͆ {!D"L:c@zY-" 'qB:,l8ɤ Aq,\.6( -PU,tb@Db Ȳ~:@qCip8%%HRز,a8Nl6(X,T*ZE<[ UUa;` I)$ɡ՟E)S˖H+A a dYB__OQro}p8UU`ۇd)FPUB400mD088( V |hkkÑ(Nlnqyd}}WFu80Lymy}ЊQ9l6x^ R-뭶cB,$IZmm`Yͥ$ZUbta6(( aXJ~3y^0a2ց8X, UU00VT G$0H&F$ }}6>_/A[? dYG, p\p8PUp("L d9lJA9c Ge㚓`AOOr\b`ʔid|>$I8.LifTUU3†P{ زۘ9fY&HHaҚ1.jG2@"N,D2MMg3SU˭L&dْCQ&Exrϩ@Ӊw˲ hkq] I0003qű!)w$`ŏ$ pHZ[[V#F(FcxeRp8p8(HDXD[ M&цze',EL6-cfgzFgfȲd2$:TB/+CAB4lГ! f8lD"TJ47f r,ˡ,BU#dRB!e1mZ{Ȳ *vB8E[[GƍLҍ\{<[Trɲe{ٜ~Fɖ[,477F_<5)ֶYe CKKkV6eOTȩVG-|*zT=ø#5^/NgUAWp9KNNۃWV-Aԩd8_lˊѣtNwbg-w ^G"D2HHPsfQxCߗdYoLMF2J(P7 /&@aSð,n(B&|ne;˕|r t])v8ƵwyZ[LqgOM4LEǀJx! I$Csf@,(BӲ)nwL&BTLҚ;a>$lc*xj!QRRΕ|;3#g8 єO+ݠL/S-(UN5 *a  7~tx*ljOMnfRPIo:D9q ,pMPU`pP@"1>33VuT a*2Ύ*&Lr>jX$WL^|+v{_c4kzu6!ܹޡT+)L-M. ÉD"X,OBQR)BA!455ulhԝRq׮URƀJx! I$ӄz 8A<.!!I-l(hjyLzV"HHi體zXdF0Nx㱌 堪jjZz`)IkE.h$諙&ք c%ޖBeq\\ƙ/zue9#iL2> H}Q|v](8сqroPPUdd2XՊF\LJ!Uӻ?F{f%TT?6˱! I$jecB"!7 QT&DչD"w,+3B?E?Xq>xB8k<Ú1Uod22 e$eZvې.$:@!OD"ʝ$ye1fsiWj97vgK^0i%(L&lg,PHyޚub IDATg.ՂbǀjXA$5 E~E%_V UUhYHJIŢH&Ywooos{k"hX,a#*%~Z;d(Z[)&vo=F/c`@;Dd2e81ʤ;0jHr:2jGn0P}}}YD q+WʑSz[icy"pUH$baVrT5YCQa-PU%療բ~T jP GWW':+ mړ8V70XȲ `˖zaچ-E٬ZmPximm:Nw"G(rdЀXL;8M;< UVAb):QwDy`?bV$)O[qc2q6 8nh l6$IB24UU3Ԍ>NlX,d:VCcF4E2Dgf##Mol,=H B }ҚS[EmڊD"$@KK+|^Nv7w10@ $IFAccSEu9glOLԂ`pd0p9/UzxlAKK3zzRE1kvXӏ=2T(] Q2αbMF%{_{gSUD qy&GbEQa6qed|hŇlðؼ$,TQdb}#qH*(Wfj\~BAl6LEQ!Zhbؾ;EQH"TUqZp8#R)$1a`XtҝNc4VAHnwE l6r+ rRʲlԽVknwpxv}Ԏ*D4{R'񠹹"u)i`;Ws-gr5k6|^:80uT2 'q`hm lR)V+ EOOrBd p:p8`fhA%a==[*Xb$e PUuu޼Dp:p8`dh$ϗ:[t+86 "#!Ja``gZU,ZQ(IͰp:0PmEASX%͊ΑHp8`X!qmχ68j;q8R,+{ [ Cl6n8ߨW\.$  }SJD|PUv6 B2$IbPSح7eZccRbxNJQd$I FAlp8`Y$zD`Z&+T.9^xٜH棘>;c A^B8,+b.  CE$ D"'D I`x0 `Ux3|m-ƌ/2%Vn+bQhoq]}} "HINb,2(nkC$a``3fhf7݆Ʀ"`8NS2 H$Q'2LH&b9-|M{$ à5ñem&L rsVQ\.Ab1466k a4{tppƆ0744gPr"XlF]Jsp8p8(HDXwٱAĴi2&m6zzߍ&x޴ "7:;7Ce$Ir ),`XXH ڪ"yl6[Ơn%qRڞ֬Ae9eY7 K3FlN]' ,!E,bڴ,e44ga#=@tazt:K>svFF[KKY,477ehxz9*p8@[Ug(&ئ>$,g81MW5z+&Xq]u85*& 讫Wlx0a:im׍][&ϩ7ReX, oIvxFj61k̚5'*RQeca/|Iv*Ȍ (tPUdrk2 Qb)Ǚrbo5֘+ǣe 4xr5'& CQdtvnn/y<Z8 X/%BĊA$bk1:vDXD"EQFX8`;VZH,+J~#*YV˅@ 05Q_yB;OURA0B+?QseʧQA8ih6HQMχ(B e,#g2ƊKng`105ZRhT4v-- Pa9.xg7e+IҜ8bQziSqbQ<_.t]ƪM D$In7ъ~wLhoZG̒4&S~2鈀b ÉD"X,OBQR)BA!455(2U)㮚r0000^ぢ(FPZU1&`j(ffx< AsmUUp@,j!188Xq}t]ƪMֱ I$Jз3lZ[mhl㷹&́qU6=)H@AMZcF<窣qwbp {kb=ӧި`ppvu4a0D=DbLyҟ#Ia\NDѡ,1bd@˶Ii5߈rʪe4\,ǑHp^/ծpz+nX:VAT=F0 cr< QT`r'&u#*@K QVU5mZ\z G~= f \.'$ -=Ρ+L6}Bg7ՎdI ca6[|Gm>VjF"@20Fi1R)$1bt<ÉVzBmjX3(]Os4=e-lQt&Z֥>W.m"vf\'9I,mIhH͛;ӧOUį>}̜) F OR] I4EET: D ҲS] m H x^ۋb*6E"A_G*% ~jYQ+Hu! I$L&~mJ"HXL˚cZKJu! I51086ZOAjΦta&,ٖBATJ\CAAQJ\CAAALZI$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   I$   `t?pחznscHH$իWaV}g}:ॗVqֵ'8|JϘ>m[ŋϿ2 4AX]^{O?Ug,?q~YSdY6!I)jqο/\yXz,^/޲,JRnʓ'Rm HdbӦ/܂gLFANb |yjNb~r^+ ?0=m$5!JVD v#ƀ\nV*A:>Q3v͋oރIN"ܹ  a8yANĠχWOz tAFAlk fmqx睷qDCC#Mkǂ'$R:0Џ+㣏>@8FSSg?̟r>o Aºu瓘5k6N8Dy08∣*-{/n{g(n(7Vͣ ^ PmmSp≧`4}2e*wx)`ܡ(VWc`--iq)vT'{<2tww;< [g6ojüy:}x'iӗl{}q r"a]v33ZD{# >EoohVz&zxzRlSlƓ*Sww'Z[۰λ 'J3 IDAT b޼]q 0{2bèNbmD.~sycx[Xv3쳇W{#zz{R`7O^zi5OXZZZt2.֮} 'p=ŚN׼ek׾K/!::lƥW]݅/ Vz9̙lJ\s͕Xb9>,ZtV~vҚ9X,+t“KN\C_) V[+).r}9|zG;:~SwJ-C=%KF<Ϻ؄?wuw]#u1  =㌳qwl6gɄn?.l1!gP<3شK<߰λ~X>C/455c^z~ ?<8o-?C=OCǾ+?(R))=܁ sn]wݽ{'c`@G׸;q ŲeOO;9G-$ _|5k^c=a8H$p:8ᄓ;+\,p?'qᅗ\'~ p#ªUœO.׋9W^z-{>Gq$[v[x5hF~;#:X8.,Ztʈ+Vt(EGqx5rXV*'hW6z:W_̙p磾}˟B2w@YQ2AHTӄ߫cG}o5\ 7_?f#gʔyߓO.5 W^y#8ðaçxNJvL矃~̘1>4cˮ5Ƥj(x;/W^O>k׾^zaTNb)e5ImmSm8tvnW\ke믯dwއ G"ga͚W gqvV8,˸ko7xkFF˺u^0<`xqP| O=u!w0DEQp!H=o̜9W\=Yn ?~MkN}X:,^|O?sn[n6|.OO35c=PS<+ OSN.4 s;,UgҁrڣTyrwq)Egftt|8^{So+'hW6z:ݝFnVpgsT wGvd$׌rWx"+reysϽs,T-:p8PWW3XI=WclK={:r[w<?H r114xxGK 7nuڦf oe ? >xoy188CʚQ^b ,+h:C2jXnssss/kgW CvڷS_˕:Q(kc:wIo|c8$Q]QtvjJ2|:P(V\V =-I7.(p@T '(cp {!q-7;Cp׿P/^~9sq '3)hx_yѨo{_#0RҚ`0U0QL1Vnr?f̘9ھZmr <x睷ۓ1^TJYiߏ~ga3w$9#gύx,N46J'1cֈm矍==[ `2Gg3T=*+']z:$a:-(x+X I$Jw;@"!MzTcpE'`xgkDWp}ݍn}ٰ3xkmm+xƍ__zJxef\:j Ips=cz~WղMG KR%:d6 d]ZO:nEhvyވQ+({eWkEQ}IfOijJIumt$6lɤʽ;>@)DbLc{\w d}#SWWE¢EgAQ_1|r)yoFqjKUU㝳f>D`tG_XtY{߾wϊWJF_.Y %\zJ;sq8ñdu}v5u`ԖL>& $a˖{󺻻Ǥ=)jX3Vz:Ikf?larad$׌;Tepya]x'OW#M!*ʦMs]ex3ͳ,]wK\^{fTH0T nZy7pɾZm>ޙƜWکReՓ}uX?3'.cÆO^,\q$j{ݵXb!ЉR_`d}֏z?"aʅK['cXH||<ߡ*qqǓF$fӦ(-o/8_ϗFe˖@[uַJyfg]qpq矀3fBUUwYJ&h4 Á_0:1Z.@(g?n|.< <Ď;K/io;lvNDĆ$5  ~_ڄ>7|'>Paڷn݇8jˣ~^{K/)6<8}paG7_ǺuSODzeOBeZG ;PW5B+||P#"=t?̟m466>ŋ/,˘>}'`X2c.<|Xbl׋x>֭yij1| W_zذS\{k xq衇c}vA4ŭބ`0XRzꩧa\}~7s,~FHb̝J,^|!>背Wᢋ~_  .].7wWgM: uEUC'N >x??yfY ('w9s6~_=qO 7O>thBfQ98<d/ИUKOFOWsVOsva'OwSH0 N=t\{MhjjQt&fm~8rZFm78uVd2iKoF[7_*)rԢz ~7Qw[),>k?ѣURR"-_(..V%(;;K>>mtA6^999[qLl\Sz?󆖛oWb9;;ka7JOOShhY?5t{HmQ\\g'}~z ""#y@^G1W1n8n gg{> Ǐ]Kv+88QoqCa C"n?~ x͟iqrppPZ39[]=9oBEF tD6(o߱іO@nːCSLIU`[;48p IY@HnՎMv.hmݺ nC=4ZN:yƌ٭)!aF_vh /DPoWn:;7MMDwoʲ:mtZƵoA/=doW|m} А[]vkԃzyW// D+$- stt\](m~^´x"%&WzzZ}8I .6>^jA5!@HD!@HD!@HD!@HD!@HD!@HD@SeX,eeff [͌FF!pbJ $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"%D@|MnGf]p3HP."?C!=.7D!@HD!dѢEJOOo߾Fy~A$L&W^5Nc6:wh׮]NSN)--M޵Q]uַY(:zHpIN^퍈<TT-'?1f袿5^0L<Ӿ}T//  fZ[oK`C&n%-ZPVVfϞ]e\aaaG6m(IX,JHHP^^^yrqqiM6Mzꩧjڶm+٬GyD-ꪓ-}i$^3gvчԱc2IR˖٩eˆG^^uՓOޣEUir |n )99KKvKx@k>_m]nGAN2[:ϟƍeYAK?jFzWMxzzj:zh7NѲX,kb2T^^5mNW_Sc?}]V#I{ZjjliuSkgkv 8ۨn^;mm'fV]_Qf.Zn߆n9Tp)&Aԩusa^^^Znu%-[L.399Yݻw$kN*((Pjj}ZիW+++Kj8hIDAT/`Kĉ]r5tPXBk׮UxxkQWffsNJ uϟ X-[(77WJNNСCݫp}˗/[UO>ݻu]mhZpԂaڹ>m6\Ƿf6jڴNꫡڽ{. Wǎ+WW͵xq_Ʀyl1p`+m0P #w^|139[fj׮4sfÑxmՂaj׶{/L;vܫZv4ur>tmyzG6׾Fu\F7zk}~ڵԾ}E[/[QQڵk֭ MA11iΜnIC[QkP`5KJ^I޽֭ݻ+ $hյk*/??? /:ʰ?\-[u+<<\^"9::*66V&I 3(((ƶnڴI;vȑ#տfY/ ;w߯͛7kڴi5.S~~ }*,,Ԙ1cj>**JC رcխ[79sFjժbcc%KHF &護޲ο~zW޽~}G;vҥKrJhٲez7u=T`-[L z饗ږ64E/Q6iԨmZ挞|}]%I3gvUXXK͘qPcЏ?jؗ5{v7%'gi6Soo'=sO3f;6PÆu>ŢsMcT;o} ]r;wn\\Lzᅽ?~w4M:} `ԤI4{v~t/`muFyھ/>n󺸸uJΞR6nzM뤅 ixY,Ҋix-\xL#Fܥ=lZپCE|W֐^m:z4G[~~n MrtС*׬Y &9իW/)##C4}t=䓵#e˖ٳ.\T022RNߧO_!!!:r$)""BgϞգ>+VO?U\\bEGG+""Bsέ2m@@ƍPk&NSN顇Ғ%KSOȑ#z4}tM:Uiiie[N6miҥ0a\]]uk^~$i֬Y:uԻwouV͘1u MY/9\&OG>>*/(22^ǏHf>O>ZS%I{^'ֺMUFmڔ|)?T}Z蘞{)#:s޽}tRR*A}DEGѐ!}AжmtLAxW&r:!7U/Ky,N[WSSkQZҥbռvL6 9LtNXJJU^իС˒賚4)HouXee^}FO<$ooGj۾Q^xqƞ$͙ΝreJ?'892:oҥN:e q:sԩG:˗/W;}pp.^h $ۼAAAݻ9^xARŽ;wVHH>\efFQFYx5e]V7nԊ+*-7P4vXS=Pv>lK7SQJJ-맯О=}9vᄏuԩ{9k@R<@OMÇQp hUtW3gb_|:~7TkC׊)_R,]PTmkrm+ŋEֶ6>R}.Zm6[gE5sz\n SVV+WTyW;Tt WUggj/((?Ǎjȑ9r7oj)bZrS%T_;;;[NШQt)6uʪqmmCSS\\}<&UVfQy/-[~ٕV}MAAƌ١Ya3:+<ۦf^{-Iz}rٱk}CmL& ʕ5hP+_Ty:کr;JJ̕:37Z.^,֧Y_11U۸:wUK\7Դ}kYi/u-2 0%$~z 4.%%EڵJJ*z ޽EDDz;OEֳh&IڼysB5kOTf;VJOv\˙ѣGĉ.[j%Kgkɓ'+**JR弣FR۶mg[֩:7چ98jU9c>hmm*__WǟW|y98_CS{M8}:O˗ҴiulZtrsK" M;woPBBkРVpUϞ-ШQ3X^U 3uձ1jt+WlUmڸ4J~>C j<==Vd2PGř3gV:Zyfk֬Y6gU{ 6C 4o<n۶MzL>]-ZІ lKw}VZUeܚ5k>}Tw^8qB/ &N޾sQQQ￯/zwkhӧKuԷN5miCSspRShƌ.7`|Wo*;;cSݏ{Wb(+^폊:RQuB`k 0nyz:(&&eyy9*$YWNf' W׊D..v0_Ψ~Π)S׫$+[Tqtqq ɓl:SX)S[9lXkݡ>KoD^z)!!q:tлᆱ3fQ0`uEFFjժUz'e0TVV|=w&M?PO=L&vءj/**Ҹqn:]xQ%%%rssӤItms7Nڶm[q[lQNN"""*գ\ڸqf͚_w}~Zaaa"/_c***JÇ֭[$9rD>>>?ٳQTmCSc6[4kVPm6\erw׻ɓ6OuN]ԲeQ(oo'ee֫%%fwZ3g&jP SYYv=;I?TT>U?pJNտUJJZtҪU)~=x|ehΜCznza?9:?sRi=YWϜɫFOih?5oٳnʖ{u}tF&ݭ!C|doog*Ɇ)QRe}P斪E -Zt"">>Q{^Ǐҥ2ڷTV.ѣ*-578;Ծ:v,h4Krv6䔨m[Wn ֦Y3ԊHcbئ+6ױյks$+[M?ShE~~n:u*roDn#BHD.} M~zԩտ{l{\ ".7g 鮗^ Xvp;Z>$M-QFFaG`!6WG)D!PEvIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Madrid_page_0.png000066400000000000000000001552221420322575300271640ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|TUL&F !@ ("E`^U,ן늺e-k/bwmu6l)BIHH qnfH2)3 |Oh:|\uSN3Hȑ1>هfy{/'BfXq93gB7HܴH߾FUXLLJO qR]}rԐSA,zSSuu6Ok jΜu^(+ASVV `}~ z+\N{#HVJL Q@Iyy`R߾ RII/Sqq_JGd_JWpN+?_ 3G[k̘8m=V=kӭU]_3g&+&u>kA]|qoy7kbtR7sO $-X 2}_0 R78P&+0uCyy}w^{m~Ooӝw$]tQ/}AmT}Gk̘8Y-7B~zPKee;jֹSտL/vUhQVoʓ{9=ui7;i\;d.zZv=7Ug288xO**м>b6""%mk>^uU_M(IzŝZ}vO]pA$G~֭G5ujnasR=V3V~. UQQVm7m*?E[됶ڠ~F$=6[~ﭷhIcmE~Ox̓4sf^n~LoO>9تs2n `ƌdDhJx٤3;$7vl{o.Od={oN9{aâ5lXBC-JOֿ58zf2IP$M"[]uU_-^-?jM;\?>F@D]sMF̫NI'umPjjV{K>[>IRrr- /1d{Odѓ1ztna,o?~(Pff4cF f\Ο?R^mS׏'kaCo?f\fd( =u:}e㋎jΜa.ϰ4׿U<+$Ģ4~0zh.`**v 64o&-Z4IfE<{̓tU}KJj׹ڷL!!>o޼MD,˾ߝD c'plE6?Iی'Mjyͬ};޿'ȑ*3(Fxbxbl9㩩׼y@$##F^ث͟1rx饝n.[o$m\͛'سB@PI`m-Zy.[u Rg6b,=h ͥm7oS&j j={J燚mowl(ckѺuGܶ^Sc6:2WO?m*/+40 ѳ}N.`֣-.QPXa2wy;\ݺ5ܻ tO9_&']HzӦ"-\ wy>;M`uܦ>:q>նmgUn6yqNNE Nض6:*ך^77=}NN$L\YpoHiztaan#z ?'b?#5kVfJQuul)ҺuZ*_7vd.eez-zђCMKjvÇ+U_o3z cbTP_ }#0g0cfjv4˫p .}Y6e:R>UGAY幵d휗s2@tUU=t\VxEm 穴g֯/ԥ~?yƌibh5rdFo~_zL.ќo՗_hڴ$Iw mϫn: aeyDEYu t)MM9&hIKe7". m狺e#Dh=iZCʝ9wn: $$,YY%rԔzޒ]nZ޽5yrN;-ACtsY`<>>XgIխS?Ec)""PAk޼M-yF7uϻΔ__Kȑ*=6}w$Rf+-mH,n,.wZ.3<(#@,+բEYMu؞Iw.[EhGLկ, ݃[5g0='kr^)!!OjŊzm:kE5왷\o'&qA#ϻ9<_ȈIxjkm~gvȱ9kmۮ#낿]t=mP{}96|5Os"I|y(СTɡӟHO ~OK'EV.hr;;D̙=萙ŽiZ3L_?{li8#b<̙=U϶E-ި;&ך>=Y/~Q^էODՅm=mhj?=ݜ3Lig0v=!l$>TXXeV"̞WSOMxKRStᅽtᅽ4sfr;]8up};߯7o.2.<,#"uE fu__zl5gDoҠHv/#wTy.(e'fi$eHsj: og⚑]eZv'Z@{_ye St|r߿;;v1#3e'MC4 ۾XҮ]aK--P[k3~>;θ0ڼH6=VO8꫻t:լ`<c4zt~Pk7kOвe3XKlc9 Cry&b1i(==( @[TScKKп}MK2z8cbtU}d]vWueH_@6hֆzGǨGۭU]G?o_3;ԯ1zՉ: P@IGꮻ%.ቚ@ݔ! ߲٤s7gǩHL2d5+{wwCؿ;99z饝oׄ[tm'N2.*,ҽv3!?tToK/u5z񊎶j5뷿vhn4<j,s{rsױczm㎡ SUPPZ&B~Ƥ~6n,lҡCm>;o=l6)%%T=4Jչgd*,25Ʃ7낷nnnA/}fѵ.Mm7ڠ&JuJNn.=u 5g0ͯo͓,͚ASc|<-ϯԟɥN|:=@(, 7];Z:TWw떫ߝ^SOmsY[qluu6}]}ryw{nGg,u-o4т 駷]wK#v^|q?&}?Gd? 2']1q.6ukM ߻5o&u0ԗue?PRRLh7':ڪiӒԫWBԽ{uP(ח_,pȈi%_EGNWj}u_$'ꬳRԻwRRBUYYyc棏iٟ/5 *S$3R~~ϯԪr# IDAToqY &L)tWjjTTT;G~iS YgTF٥B~_^H+""90D@׶p4Ⱦ7.@ g~gH͟?R}8mv}ZZ ֺj#HݻK0z ׀ng=aݸmrvS:L\;uu6}BIzq:̔F3&'{3S$ٗx]$ 'xbQrrbbt}uCo_**Կf4٤ߪ={JI<<@O"/VVFDjȐn=:%@55L*,֡C.3M,]:y]: %'*<<ӏ]Z2:Q 0^3N̲Y:zehǎbIҐ!d4}jР(ѣcnQZpBٌ\~wzՉ7){i<tOOVPP߭ҤI' CO"ի 4xp4hPl9hqd2IZ (==Zkia5km1 ҉<I? H!K']s 6KV޽'ܽmӣ>?Fbeeˠ']ʆ !&ed7WpMh[GYZZk eP22^}F{`IC4aBjkmZs̘8M݃uhv.ђ%UQѾ ޽Õ޽ÕGW/Ѿ}eM'0Ьѣc%I+WKN=Z]t!T:yj5kԨXl<6ӓ5qb-K/t MGiS:WnI'uԩ#T,'TaaUGDjnV9_qn.w֌/RͭЊzul֥<$|URM4c*,_n.ItU}5}zr9RoA;w{[fuW<3Il6iMM^9k؏tCuEm_oAwꘚJ'OR:'%hɒii„5wn:+Ev+\pA/z`6_VTT7iٲ&/ghZ{]qEs/4n:ɒO/Ih<?e  5g:>\٪2\yF*O>/XK镞=B,O5+EoStI<:f_1o٤S[on'I>C>8Rciٲ\UU[kbرq:p7dHzf1иp4|xQbXt\p~xƎӬY=dF.}UkútEhc_iڛm+yV3&W8;\Fm߾^mk=I{`t97J' 4??obŹϔnoqqv*q6u! k))UTԪF 6~֦/3/}1{5߳YL&r͙O>;El_߳K%ٟ9o78P;5z.gZdOjVyy[֭zѾ ;ֺ:ǝA"৪ysAbCo`F¦ubUAbTUGl/Iq;A{zWu W)Sjʔ>XԽE?#UF:LLo҃M:Ԟ?lzXҟ/1b7]x945a78nr|q&.N[WѾڛFYu̾cެI7m;~:{ !#F4 :^3&3okd67ڷ5ڪ<7R(-5Ӿ.7$oVxrVw|nvҦ=~@WpStIWhԨX@CMn=2_VV*`]*66xP5#0Xg6/ţAAJI Հ?>^*oo6/ws\q{v;\=zx@lR)UEE- }m~!ߥ}-:>NmkOGVuh^rM *ɸ099.\*oJKs2lٗQg'o7bvҤM0Ha{Сr%'j8ef=76.LIԨQj5c{:TUrrh I];x5oVxrFwNno=WA"Ƕl)2,fdDk"cMĕ+S5th7EDA5|(&=(Mh|=%ڹX{jc3L t8^sS;p'ǰ(žsdj栬ֆW4cuf}pۏjeKzk8-\e [~qmРH[4hPVݮ|n]H}]}]n<޼V[IF 2mko=WA"jkmڸP+##F2C&) >ӟcxڵG:*/uyћ8jT1iM{JRhrY d髼ײIvd[+Fϱ6-aMco+  q6}}]:8˜93ٸդ5xdf9~_2 ѣc vZq^֯Op%0ʾMnsn秶xgbLp3qo'it"Z6m}&+""PO?=N?~infl hyk}mGiIuV}u*$=F988@TXEuZ,g8z_ ;spp;\IwǬY=h|BC-3;NCYonzbV=z^':IDU_oڵG99nn~LEEՊJj/cSN_:M%%.G'\*)U>4)A=z*3XD{`9ڵ_Oj=f=78UWh21cbz{^Ux~sNOޛkJ4(JuZP&Ļ취Z6j]rIo+(Ȭq5vl*WÇG+&2YY%z䓻wNӏ?(?JCv3.V8O>9QZyFWʓ4ꬼ1s۰P7 ѣc]>\'تer|C*QZZ*+ukW>J9-o_^xax`ryަE詧7Q'yYeI޶Gܳ^ܓ3Ѩ=rJs~7!+DgCC-8RxxEZ2_55n۳g&ONTrrlڽD_|3M<9AG*66HUM^7'&&H''OpLᐛ7ՎǼVQg彯ٟX`Y+==ZQQ˫޽FUgA~ڰP Y4mZ4pٲfA:e5uӓmk[Щ&(11DUUڹX_}Z> "J),J`8|$J9$Gjb( @s {wMR@AbSσĠ=(Yt lilZe64,vpSIJOּy#@.@iԨ=ٳNAAAƏs0tzNM /LPZZ>Q3շoŖl6[_oӇ'ԺuGTWg#C&MJI)T߾% *88 UHHBCC0 *7B*++WEE***T^媪 N(fIAA5 SPI! j1Pt$:+++SiiJJJTRRRrP9p9s,a]Et 9=>P mPSIts^1# dR]]%ffK}3th>XBӧOWRRzv֝wiaTSSʇe>ڦHm~_UU׎D n{jkk㮭5^6^k*;;[ǎ<عsN?tUTTlv}VMM^|E9rx?׬Yڕ^lCf޾o߾{2X~[ ђ%K4vX볖.]jfYZhQA"(@h$^q'5jTWO?]ӦM.\(IJLL駟 JAl/$hCK<-^Xte/$KCO"tG~$M>]fs{vo$Izjz zjIRBB춥Z|$iʔ)ZYz{=eee)88X+qZ?֮]G*>>^&Ly睧(mwܩ,߿_KMGw}_6lUTTEK/UUUiɒ%Zl򔘘C/Wdddy0x`6y˖-Suu۷o׊+}vegg+..N={E]7ھZ˖-$͜9Sj*ڷo4l0͞=mkkpmɤ3ff魷G}{iulw &~Mb3{$$[eeedggڵo}MmذaF;$l+Wt[EEm6L&nh6n'''6o-mXluuuٳgssߗ>]hԨ<==T3I"Q$ʾ}9~x?Iv_'_֜mD,,,ZmY<Q$$QAbE#14HTwtrrt֊$*An""{Ue-[ҡC211XAbhh#©Stn{-X3gj۷MJVVܹSDEEiիbgg'vvvzr…@4h7HlѢmo߾9|QG6Kg""*G7%"*"}ʤirڵk ~7 )S ڿzОΝ;]gݻpiYtt4Μ94Su9lڴXl4ժUC=@)gx">;0|4jHk_ 6DJJ RRRz"{ZKժU>~bυh<n|' 9=z\ѣGJ<52,, %͛7Q?x `mmǏkqqq͛QQQ7jmذAvΝ;ZŃ>Q+Ȝv*U`ٲe0`/^ ȣyɓ'Å plݺmׯwI%eHA"ѿ͛7qMx{{#=='>C+W6x \\\ L[N\|XW}zPS?5vɁ[iϝ;+W q׮]EkQ ~~~ٳ'BCCK.-t?ظq#N87oj7+ǁÇ#%%5իW`^^^Z-[K'Oӵ Fm> )H>}Я_?y@&LHIIA޽sEaݺu; J7nOc:Sw5[oUhvyf}Â"???cРAx!СC޽{+Alj.\"#+7ly^y&"znr>e|zꥱv)u&}JΝ_&kYdWWW7|MX."2|pe/͛7R|y֭dEa111bgg'oL>]z)VVV@,--رcz'i4hPcү_"o7i$ <,W""XZZ )WtI>c;vTREرCf֬YJYܼyS"##W_,Ip S(:~x%3Dc!88.\;wPjUZz366vή~BCC^^^֭,,,^p ܿ5j@FЫW/XYYXqqqسgbbb`jj&M_~t_~fffӧ:tR5DDf HkA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD ʘ9x_+Wj-WTpvvFΝQvmK޽{Xz5L>*Uҙ.,, GL4 +WֻÇ#<<0qD888\3f_WAAAz*fϞ͆IDTLDDX DDEwqkN#F%KP\*oIII8uZl ggW|333XT\gΜA:ut={6f͚X|9Fw۷BFQF᧟~BZZ_ڿ-}ٯ_? ;; "2DD0`nܸ|"""O?^zԩSUW|###c޽{zgؼynabbJՑ1ֻwoL0"2DDx͛=zݻN:^2iiif͚y֭[ѣHJJBժUo߾"///,b1b A"ٳSN!44.]틞={j>nnnڵ+:v쨬߿Ç###-pm۶aZlwww4nXgX:ԗ`ܸqhРA$u_YXX 44qqqZOoߎGh޼9z-4lP#MBBV\WBRcǎ=/VDD.$ tKKKS͝;WLMMERIÆ BH~$##CI ͛ U[߿MNNOOO ҨQ#155ҺukTHժUeΝbbb"䧟~P *D*T mڴ{{{ FÇiF*W,O>ZQԼ9RdŢRS7n,J"## <_}233e@T*4h@L2EI7fbmm-wf& 6viy󦘘Ȝ9sdȑ@]R<==I)˗/\%MDO͕}ˀ:RץܹSIo>QT@W.5kRJ}6/fDDz0H$"* k׮@oٿ޽{KJJ3""=8p Q)Qڵk3g֭WFZ?<˗/|Xjԩ˗Ç{{{ 4~!LMM.o՞}:aoo___L<oNaiiYfeaHx>O 333uWO^Ȩ lقiӦa˖-hڴ)5jwCPк( cMMd477дɓ'0aÆ 6my""bHDT6,YǏ㣏>ԬY(_<>11??>>Z],/_ _>Ұ`4k Nbbb^0$Ʀ~rs}TT*UdspssC&Myf :'Nܹs/:,(@ѵ}tt4{7@rr2lmm///}||0|̜9S1D""[h̙{{{L4;vDhh(bcc5'''Yf3ftZJ+/jժB-_4lmm鉐q9jsa޼yv5-:,(5lXn5Xd LMMqEԨQCkIWWWxyyADDD (;C*nݺ 'OJBPP{WCff&:tM6ڵkGnL:Uc&&&~~:9 ?H$"""*K|'$6ΓHDZbG^$""$MA"1H$"z\3f`߾}zaƌ >NPP>,^swϟ>)))E.$$3fY3Ͷm0c e˰pM$"zD"2믿|ϟ3Mnn.+Wt~!$$/lY:Ǥ$:u -[sSff&ʕ+̙3SNuuuիWVCbȀ忦]j WM"W$ &LxԩS\)22;v,ݻW̙3z*U2zy&ѫS` 1h4@f݆͊ -{g۷cҥ`c| &D""z):tqqq=z4ñvZ$''~7nׯ E\\&L`$&&bX>MSNSN!44.]틞={DIsA$$$`ԨQعs'֭[qơsHHHʕ+qUT*cرy={&MҥK~߮]pQ ]vEǎWaddd 7776m=|}}g]{E߾}\y\\BBBooo~W$$$wEJs_D899 C Am xw͚58y$ ÇKAmz_E9g""*BDDe&88X|7MNNWWW#GYxT*ƍ H%ȗ_~)dڵZ+Ν+RaÆbaa!_~ UΝ;DO?$J%zRfM UT۷o>:=pcNJȞ={k}wF9̳CƍvgΜsss8p,99Y<==8::JFTH֭%33Ӡ6u-iٲKKK^t"R~Bۆz/9QcHD*JW.gϞU/^Xĉu` bbb"z:V:uJ*-""һwoIIIGɠA̙3G#[[[֭[# 4ʕ+˹s甴-2}tAbٴiىF -ZZ󓴴4[ݻ@/_^:}w?~\DD^ÇE-/S9N&MY߿>2{lT raԐ!C={VVm3>\CD,=z4͑sڵkM68p>|,?nO>9s&n:lllzjԪU ?ƾ͛ʕ+cڵ888`077Ǽy 'O`Ν[.ڴiPTׯIIIHJJB>}P|yu5j@6mpb׮]x 崸eu֘0aKҥ>'L7*ܹsZ~qŋm맷LCΙ$f9mۦ܄oݺ^^^pssiQNNosssW7n܈^{ ˖-'Twy78(W E=X>MեN:HOOGRRAtpttT>СCn_2733Ï?\r/uw?~<ڶm+y7M˱nݺZPV-=6 Rs&"Mʐ+]nn4u?hQ9::sطo=zӧO#)) sUҨT*@=0l0^8y$BBB lذӦMC```]}Fbb2hQpeff\ݐ*o>888{Z/\K.a֭7n޼Gf}O>h'Oo8lӦ*Tй>33SKAmCCΙ$+4h4ޯ{իW@yg,o6ۇ>|˗5kքrD<~Xcgedd 99򂗗U`9sV 8?3mۆ{{.t;(룢PRϖ-[#F૯ZAtAAAzcǰpBL2M=zy,Xf͚ԩSAZLLmG122~~~=z7n(P\uDDd8v7%"*C 6=:/LBخ];_~† c 0@yB<}rٱcG"66Vcd4k cƌ)/^D50vX宮 ++ީS'888`Ŋ  5?~Ν3Iu񁣣#N8_(bذa_> Z YYY1bDnYYYhѢVvZhJ*DZZƺe˖d0uDD 蚚bŊHOOGǎ1sL:tOƍѱcGlܸ:*T@^1B+ͼy󐙙:`ӦMvѭ[7qD\~VBrҥKpttDpp0DGGcҤIJ7gѢX"N$x{{r +|'=U+s&", DDeoӦM"4>fff2j(s6#GF|}} PDdΝ@ի'yyy:mRre󲱱%KhSa{P䤕_]_^9ĈJRɟCiWTk׮kkkqrrk+<_|sN&M'(e?rҤIeeeIӦMZEDd׮]bccVZٳgc :m*''G>#z yu }^s&"g"iLeeeŋEjj*իwwwF/5"""QQQ^:ڶm "oc밶kHt; >>3gf̘Q<%''#""׮]CFвeKؼ0eߝ;wpQmVȱ/9Q0H$" Ae5kM>}p% 8/tk,[ m۶y)gegg#66 SׯJUmϝ;ӳҿ+Ν;2l0)_tA.\MǎTzΝ;Scjߗ'v2qDm/{{{m嫯V+$ၵk"==T~=v7om۶XʕS=m4n~,y2FanjwV8{,T899addd >>| ?x*lOmٲO<:Ҡ}]ׯX~!jԨ?0l0,Pl޼Td4k }`cc777X[[#++ }<<߇ 7n ܿӦMC@@+OU#DRɢE$33SYw[;;;~ɓ'VgȐ!@Fq\___ ǏD$|1DDNYz剈HnnŷzK6lP/?4;vn˖-$>IWEdd$9;w.&N>JNk.XZZ"55UrںDZaԪU .dӫ<k7 >cǑRk`mm])_1Ұ{n~_SSS1ӦMɓ'Ǟ5kCXx1ʗ/\~ig^Q{ Z=z47݋?~{=`ժU בy&ܹiCRG美9]v͛ppp;~s0@n'OĶmpu888I&6lr-n233{nΝ;Z*1x`/gddѣ011A׮]!"ؼy3BCCѨQ#|p DEE!!!Y&РA_l=-- ǏWt ql߾HMM# [[[Փ1k ##PNBӷi6667nRJk׮zGLL^-l߾BJJ WkNGHH݋;wmڴ1q5Ԯ]>֯_gɓ'Wz-hѢ< ruօի^_{LMMU.]T!o^i[YEU򋉉A||F_{ EwlݗfEq˯g A-bŊ@zQk:+r7]!nnn@ի'EnZv[e}RJ:0`׏~ѣʹ:t{ .bjj*wչ۷7ϯ ]֬Y#!!!E',̱cDÇ낂dҤIŹYf2i$傜KE@|}}eҥfS.V$/ؽz%Kڵke.,O"OG賶bcc#Æ ZF-UVUwW_)5iD&O\sW4iUV2sLYhL6M6l[dI고 qʕ >\+>>駟Yw:_CQHJdܸq`OQFzߡ) [C/44T&M$7ҰaC4iL4IK%H S~ź%H,r/58Ao|M6,CuED:w,3fк.ݵ/ ~ciiiJ]zPD_~hs 6,/o$_`.ZH۴jJȂ )5~1cƍ$󵶟={&11HyUnܴwr/_ /=͛7vJ`]VVmV)@Q^ 采V~\"...@jԨI$54H<TPAmׯ__&L wGi?|IO.]#>Wrٳ|SSSg=͠٩;RSS7T>|(m/Tn4www7$| R9rAP ĉRvm%={um+Jhr/5 IDATA177sΕyh2](%%E㺰m۶24"ߏm޼YLMM+ݻWz[nخK.ʏE{ʄ$srQ\򋠾n!mٲEH͚5 T m۶~=zT-Z:ox Shhr>u޺uK5sLusskIիbgg'vvvzg4h(Ab``E{nI$-<Ҿ}{ݛڷo/s-ŋ6OZn>R&M(q51ct;55Ui7JPwCŚ5kWpi.߂$ˠA4>}^{M{aqmE ]%f$>x@W\מ K;H4f.L8›oYߗ^?^ÇkūT\YõQw1իWW+޽{?~<:ud899a*p|'ٳg<ڰat.wvv.mcWZfff:-[_יZjѣ8?o]|a= "%%)))pww;1[=BΝ{puu>}h<tرcz*t]D";;f̘x>4iɳse%$$ĉw}W9tQoy(UVhyLvRZRTu֕VVnkvQUX? ""-W)Sz]8{l~_׏܏ݻw˗/GjjL=t+VhGA@qtSBNN-Z?\Iҥ ~gԬYWZԨQCMjqԯ__rCG4Ʊ 9z䰪U*ڵkzӨoJܟN:SNEVVN8bǎBnn.֭[+WĉPTcΜ9ضm+eyPPDzG RJeUz}*T ]ߺukOGLOOGK pssC;իWn*2qYnnnh߾=֭[>rm+r758|}}ѿر3gDҶ]'''ԪUGJ*eY_?֮]uСCK|?nݺٳppp@`` `kkTl۶ 1#G($YB YfH˗/# gΜtsbȐ!EއWaÆ)OqJ񹕇1۵kvUhG]Wa =`lܸ'N͛75~6v`a-j׮ޘT;vDǎ_رc3f \3g`ҥ8q 1>>Ν'`Æ νoeh #nBB^{oooZ SLAJJ ك={4hz Ç/0p- U7d /.5$S܍y.%KxƌLO2]u+u!>>-Z(˲~YFyB_ΝuŽ[hΞ= sssݻ-[TaȑpwwGvpi||'/0' ^7nD@@`ggٳgc̘1:ԩSx$ŗ,\Ooڴi}r_Qsrr;w*ۻYfpssCI&LALa鲳VOeߓ'O͛R|ctGAƍq}ZAbƍѸqc\|۶m'Ο?tti*FiEpp0 &&Xp!/^ti+<5c (Jz1]\ժU_ѣGXn]g-j UY}_cرիr]?r?i&@޽5Zn=z $$AAAZAP^<{jD*cðaÐnݺaժU]V\ h׮&!_>pl2%` [n_|ײk.O3e6lq'ooo 6Ď߹N?wg6:=,ﯮ]?u5jx¨חrǏ續jҢ$?Co9A8q$/m^煳gz>Y 7oۚ5k<ŮoVԪU+Ν;{F6]xq5*lΝ9AG` q={5_>TRe ԿթSGah9FcKMMհaÔ 0খ=ܷ~l5~x-[hϑ#Gz~1=9$::ZO?$_IW*7?5jOd vV6lP߾}p81cݡCJ~I=S=͝;WӧO6̙3t%Y,+r }GT|'?GPb^4m4m޼TgJ3t+-^zx=Pۙ3g|ԩS۷RRRdXw}3꾰珉'Yfj֬~R}'b5bĈlpÇ+>>^^^^ѳ>+I1c\;L?L@FOwȑ#wܡ>}䘾n:IYzjM:U+V?^3}֜9sԣGĨqj߾ڵkD-YDNdܹs6b-X@W6m4|pUXQʕ+ua5o\vR\\&OgiZ5c >\111jٲwHoڰaYf/߂um۶M3gg}Zj~RN>xX,9s!C<= *)UTQbbƍ9sCWTTΝ;'D*10i$mܸQqqqjڴ (##C?m&Iz衇ԢE?$$D:u͛{ӧҴ~z_^͛ 7[I~nu3gCh[nڼy?O?U(O4iRjnFq e cwq&NW_}UK.͛ս{wըQC;3&MRvmkZxۧA驧Ro>}'P|% l6l6;rl'>>3ڴi~/2۶VagϞ\׵e |go&ۼ}Y,^0G.1`c=HKK˶εǣGM6u{=jhYQ5j!6lX~L8>vPϹ-6^s7>}GU,퍬C'K,v.2eJ|#_1rH27o.u̙9Xj̙3'2=zԸ;r]sƉ'f2J޸]V֭SFF"""nR]ol6֭[-[ W Էo_Oo\IիuAf5kL Ppp$_՜9sdXԯ_?uҥX399Y_(ժ۫W^z JOO׆ c>}ZNSjRZthVZiǎzꩧ4cƌ~oN:iӦMJJJҢEof)""B 3 { $%%iŊ/ժ#tjٲeڵkN:P{jӦM>g菠4q{9a(22RTXXX}aNSE?ڶm[פ$mڴIӑ#GTvm5nX]tgy"}wҙ3gݻk׮%H2}W^_O+VT`` -k \ $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $˫…d<ge9Q#Dժ2pygku\L&$L&<0$2 fC޽||h) L+Pl-r9$^NrD ÑeWpx h1(!q޼(Y,d6dٜ5$z )ə-f}9vխ[E#GԽġCb9yyW^^>X,r"r:r:r8r82egt!1G?^zzPBbce2b ʕ 啥) M60? h1c)8<-ŨGiL OyTyWfr8m3L/eftd6.*Ţq+ VyMLd7HXQA 𓟟EIL222e{+33CfYfY&K$S2? 9ҢETr|-$.^YWy* ʗJZU|}r:%͡tJM5)==ҩkSAm efr: L$ҥ?Nٳ- )$N2_^^A2˩\rVV_L&;j /#0r:?o29%yy~>uviڪ^r1ݣ=;Uph!T'[%I}^ժ Jff? SP*TVP232 CYvEv!|e%!꟮OM&\=W~n޼WmDj;B.]+>>ǧjZ*Ns7Z)22o#XFǎ())S>^ݟO @HK^EQ>,Ð2 }IfddcEO=\X,2 !OͦҥU .yT% NNwߝTllKC_|Y[ >}4dHmߔO @Hۊd6{d-//Ohl6fL&n7p8t.16mjٲLU&5l?ݣLfk޽Gwb={VW``U4jT}M 7't59Yn`2d2Ydxblvm=kp(3))ÐYߞ5ܙ.AWt%tɬ'+66W٤q{`2G2=R^& Kh;bi0TN*UUA%$#rd46MIttJDYnjV/??yh9i)m~NejUݺջw;tDݫ)<<əڳ$];r%:$ۃ山:}:]gHҴuyyԦp4z<5RSN]6SNLgPP6!~ix{5(ez9,Jg$7=$ff:e9%I*o4iү:q"g>}{ ]k䝊˹hĈzzi'g~$mG>>9Cse-/k))U{nѐx 5fWZIkSYcTfSO>@~~h\0z] Wbԛ^۷*\!ߟ1c)-!/uW""+..U7&ܹ M226NuOJӋ/nׅ 6yW0ըL_RG^gTddzvC;*_K?pJqq R֕U ރgxmteed*=5!Y0<,CḼg#YyI$edd*--V֭gIZnB=NC'TZCu*,Jݘ1 4aY^u UժWMf O.ٞ[#U߰իWz S||RբE&ٖ) PJBbf=[Ht:]hb$'}٨ C4U/wPtfU̍bѣ+%N: ep3:|8YfI"[@ |߮AWJ]˖דOFzIM+xY>r9=!:v9۽<:k,q㔻gе=נ^ָ*-z{{˫xQx@u ]wUtӨQ5iR1uV_uXE_e-IڻKQ͚⾩| IDAT}K*+pBbJ'B+ ff GK43Y.?r)j@j؆ #^U-+)))S?xZ?xZTff++pBʊOa8dKM33-QO Bգ^tՓFWOCB*r7ʕhĈzJLȑK(9a _? ˽WC]***AQQ}V.uXf::_lkF^7u('2%MH-[ .aeۮ @|>Ew =3G8t&^魼D ^=X!!oz֮wbb5jȑKjƪqz{jj4t`֬9K)%Ů7ܭ֭+继ܹ3lq@0u:4܋̼_6ef~+$it_zt%9r:uf*0LWrvR-KHt]zе ڰOLs: qN;vWBlRs52n7}|}lqPFCw6S&5=ʔә 2| "re~tU@t?0kHy?a8Ժu}JZ홙NmvFvAZOjs*^صq)ǧ̙tU裰0kgUժr]4uJ&ܹ Yԩ7.[ѶmgTX~8pLfXsa=!QrDwPt]n=$J7J`t\N5o^Gݺ5Wzʴ"ܘ{,.ܤ LKC% [(:s\zĴ:uj.]kO[ZZ/QW˽,t1{P@jU_m6PUz0e!$mܸ[QQm[N$/9\n7\95jTC͚QuպuR"pm;+&明9 rl6)4jժuAp5iRKkW,Dӧ/*&NP|9=4g0 yyY d)4jQ:Q#[)$fu\ΞMTbbmr8XQ\^VkY,fZn(D!@HUPL:U^M&j֬HuMÆ d*seMVmf/O>~*3꾼3 %iu… \v:y*U]r"'1S^PJVSʕSFF.sȸ%Ku)}e2֨QCիWW||뙞7d2gϞ2 C_ hĉٶs)-^XѺxBBBԾ}{_*Tf ua?~\tI]V@`Yg8qBN\vu]wΆ b 8qBVUM6ȑ#N322rJ}:uBCCմiS=C0/M6Uƍo>-]T .K7-[(&&FGjU54x`կ_?.]ҏ?(I֭g ͦ^ԫW/IҶm۴h";vLVU͚5ӣ>*Rq(L; Y-蹠ev/^… ^ N:yYj֬YSN),,L:tА!C\ܲ *<4FXo>c=ریXiy'FF7j~7b{߉' InN 2$sg#G Ip8G}Գͮ]fƇ~hzg}K, n}^z=r\׳ZaFBBgۍ!C|hhk׮$c]8ڹ(m\jA)[:9}Ѿ}\?i\tݻwwn8~PJГzW>>VլY[څ{j:x0Y4Ӕ*-MNg.ܤkoܸq<=EٳgG 4_)̙3?ITJ{jذvڥZgΜ<+VO>ٶ[u۷o{N~ݫHϼ~={bŊZrbccռysu-ޢ'|R߿z)ZJ/VBB~a޽;zѺ@ 4HM4Qll/_=Ziiizg u 2D'Oֆ t\=488Xwuf͚׿jْ6m{QppN@}U޽U|y]V_}Z7Kaڹ(m\j~q_;w /VZ)66VSNŋMΝ;O>JMM{ァӧ~'x_@ГX:05z:kw+W7ƛo6Fb #2rQ8#,Q׾=[l1jժYv9zL&c 88qDwD-r߿QNCnddd˺aF2$Æ +p{ߐd;6IƻロcI&ykҤ!hԨmٳgːdǎ+TOamfH2>\3f!5jaF=!9rdl6cǎ9zۓh2z+vݽGXObA۹(m\c>?炢ͽ~~~Ǝ;qlu6ul/^h 50e6[dtxHT\\Ο)3&!ÐL&$L&?Sx衇f{jҤ:t=ܓTn]͟?_իW6o֬YtL&Νc~Æ 5c IR\\/_^,UIw~tQcǎ1;666ۼoF{l֬Yrl_س$nZm۶ujժyLoڴs(@^_s}GLo1?P1pMԻmd'n$=E5bD=@2{<1 Cў/űnI4I}֭[xbϾ{tjɒ%{^ziڴi^~F%qBbZIӧ?]: UUCts ГOQJenڷo/Icǎ\Y|~%E]$]ZuAn:ݻ7e.^޽{k!Cd2i۶m;wTJu%_?^ԠA=='bh}̗ez>͘1Vӧ? iҤ5p`G}9r*T IzsX~Z'_~ŲnIu_uԑaTPHH[jVf̘Ç+&&F-[T~M6lPZZ|}}5k֬lD(ʺ%Y*W$i՚:u*V9sGQƍվ}{kNZdN:y;0СCe]xQRF51b,XM6>|*Vkʕ:|7o]v)..N'OլY?9(m|:@)fT8q!ɐdBmȑ#mٳ~Wj,aDEEF2$Æ +t={ja ׭oY&EEESxx1o޼900Аd9fِdTZp896l!ѣGySL1|||rj ,0Ξ=ky;0 سggZBBg{Yqy!X~}?o$c]8ڹ(m\c ”-?m֢E C:„ $SN0Wd}׊VbbVڷo^z熭[.kjݺuPDD?m6֭[-[ W Էo_OOfiիW2j֬ `Iү9sb_~VV6|Y;AHx0p  $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@HD!@HD!@HDB" $B" $B" $B" $Rkʔy2#$T2#8ت/*@aVAjPVt]ѧeFN-kW&rS!@HDbd6B"^5k^6jQt{Rbtm@YEy.x$ߡGTVI<<{GyҸ~y W[G۷+5(*F-7Ga,L飍G$Ik>mkxyGlŋGzzD >*_ߜC=}Š%ОTS4mmRժl;V PtA]!!TO+(u=* 8|V\^6[Oy w 0;rZmT3RIDAT:۱zk:wnM,-ڥ~$hIRjsUJ||Jt#5[UƌiӢͫXOv{_Y1ôk M)*)99C$l6^={ճꩧqސv:Mݟ2eVhhyN*M-x~eg3rߧOk]4bS TKO>Uv{tHHٳo{9F~'t$ ;n\ڗE*[neȫE5p`GmذSah9BQ/-YZ퐟6rǵ,r|ןXl_%iڼp+DŽ)_yͿ:̉)jmh„hI#՘1 zul6g-5hP-u\5߽};Vі-,z饦X+WG #Qp^ڰ_j !y5k( Kk^ 񩊍MVddPG"?5n\++瞾[hȐ.1c$O) O<]~w䧍"#;Oiǎ\w]6[o?]oy?.-XS{s/Z1cʔ>j߾~S]Ԝ9yBDzV_}sgTZ^o_QQԯLmum\0W_]u+GRݺV=B=\9}X>>Bѣfiy_]G&rP/=zС|UתwAw;tRg֯"?+׺u+{h5x,%KS 4pg:5JT*q66\ez d1uy4pڳ>xԩ\ Y&NݻWwT~5<ť꧟\楡Ck+%Ů,CoGkjذ:*GfSW{͚zzjҤjs5ցIq} u۬=əJHH+-/8KmV͚Mu~llw_C{J> _"$-ixoh;V+ >|RcǾ/qﻯ'֎u~,5Sgϑ"$~ʕ?3zͅr8Y3$弽- {my ~uʕde*%%]}St/&!8yfl٧/N?SԫW+I_2S[c[oĉuYIҊO?h5o\9HѦM{׶m1G~ʱoQjU-b_v3~aHիz+jc:x&LZII#ҳ[hڴ(|s-jUE g|=":t卆魮dž Ɓ+qO8qJ ]1k8zц:05]ECܵ55RK*SBAA^[j}gh-EXhj! @kjc(. zvǤϳ9 [L[oO Q\\ӮP 31|Ll8^G|Ԡ>m{V*+oL7B,u*1㭕%e,Zm d2Ucyl*kEmAff)]O鴴i>]+9aL7,]:c8c,{J͕c',Ǐ0m@l0+V\7Y&6¡C!˓`ϞېxE$&śofvbeɤZv< ΜMew|=~[?.\ѻLbVMMJØЎfRSoW?Ĕ)# Г^U[ah4OTN+P4՜>0l,JϞ\ WW' &gÐ6PVkh ܼYg4mW1 HH8١\:z<ΜwM; ̚5~?z]ZZ6JfO{t35|>;v,ƍn݋xI8v,AA1 #G@U™7T9I\'.ݫG s'")imbdd %6m:M \-(>}tiu*+B~Ei#l<, ::wlv'MGėCj-z3b 1z;}u_<]7, k\X鳜w>n8(u;;6,9b:޴b0.G5kL4K'xLeh^yE,F}$vj̛}ma9.SVۂ0u/=~;qCdfD}NNvt<&`ض-B\džP(AL̍^Rض-cMR{`\TZxl$%ыp AjߡPh`k{E?`'cDžnƍO>)L"vpwwP(BEE-uqtG@:=0;5?Ŝ9[ ?[[||硼EEܬ8s8, > K!י9r(lm9ͽDOOy[u%GH?v\ Nhddg?B ?rqV%jj4Op!ȑ_A/)66,DAA%Ҟ (6 1hP_9 #~lT1|ܿ_&][2FStؙX,+TST)S2*ƿ鄢"1~o?^f!\p8V(/oH$eeW'SQ.UbLJ & Ph,6Lxϗa2#)eh8"6 Qrp sr(/d$zwwG\6V .薹LBh7"#-z`Y#@ XJTtoHM݊}ѣ |>G@BO(+`ǎcG${/ EA.Wa͚3@$d&)r2qnI88؁HdD@f Zc G+aYM!3 3O1$|eb,"@0T @ L @ 1 @ `X7IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Madrid_page_1.png000066400000000000000000002044041420322575300271620ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxUϽ{I@*jAPGTq*+V묨غXq+%lBqM.ٓܜus0 EH2 D!@HD!@HD!@HD!@HD!p0uBf:u'NF&yx8J +UTTE)I^^}iHǎm:ϯTII8$sff-=b9~.Wee YINNFc,IR^^JKڲ9ӯA`ﳺڢ2Nn $6-1G:S9gOڴ鄮n$饗vK)ӯy%I%%U7SMÆF~߰![ݶ󉶟M[Cz> r۶RR92 QR9tHzTv坚Zgi[lq:5B^^fim_C;ww]~~>O )ڴjA|$I=wO'c׮|}V-T&촯n:iRzkF h%hФI|H,)_|rw#tb'k̘&|4`\]M8G/:h71cD ̙}+>ޫGAA.z뭱zD5 8zt^xa,4=~f}v JR߾^zru5ٖܥBG%1zgmn{QQe0,6niڰFQQzyz:jұ> G4KU|w6v5("ͶO=<̭(w72IeT+4U8M6?i/'}&~8|̉dЮ]Z>[{I&*!vCuU?4uС~z$ۇVEElѮ]A|`/ޤ;CڰT6xbU ^+]~8cJbR^5.ͤSNEZpqrt4*:C3gku;믏^XXU)-X..ߗ/?'ޠZ$IFA5*@ϱNݖ4gN$馛hʌv}?cmif=0yz:դ馛*k; QHӀ1cZ 9~L y~_$E˖[%;uy2%uG6w8e0XݻIBSm5aBrru}\~iz!kLGyx8*#Dsnо}uᇩs0.S>>f=נ]et5Q5?Vl.A|m8iR틘 :~E^x!ћ_mޯ_ӧG*8={m#Iڹ3OfMhc\gOni&\G)OOGI'&dKO?eمsgx}:p}t`&[rͱ*{h 6dg}գd*kdS z晝oXKǯ zk_/fygW顇6ʮ)y.cg?٨7M7kWYYKuO?sm>.{ǶڅZG%%u|ߞzmkPW2j…Dږ;=sf 8Bbu>ӌZ (<󳊊$7B/b}ܸz~ĉf{P|zzڱ#KF nA|5mZdSĨommؐmwu饽z9`0H۷j\X|ghII ud[-`s͙:5B7o)hp%&z].֪ZEی&{g7ЦM'Kkcg]ZwҊWM_JJu_ly6hx?g@Hܹ3! rrnkfk?QQQcZ֜mCE zwTPf޶-W˖вemڶ-W}j;+0йM<1#UUc}!Cz9Ӎ7э7_7ڴ얎ߑ#m?MFI|&o:\ngIO/w_w #%^.M|nbO6v5uG5fٲ-V#vCaV? 3$$>ܱ1 jQAA]'4xĩ\g܌֎qg0H<3\  ֨Q-Lו].L[*v巪}Νu7RNw:m٨a|3ܜOW+5[΅z6Fyy۽;_+V_򳮸b֮2lcǚ֯n|hi ZNkcGA];ʨ1 `5ھzQIL9;9zc!1 ߘOVW;n77&k)fwjj,o-FjʔpMؑMrn]n\S;3%YM w33TSc=uRvv}㡈7)"Mzzl@6KeW =m[; -a{tǾƎ^ک:[\nd;~,ww=ڼ]i~Sΰysjx Q#FU/4:OCcU+tMY&N $͛ W;vuoWW[]nV6}ˬ9stፎMV?v-zu\nwj {ؑkЙկ^u?gHHUY(lWU*Giܮ^gIM-mST;/X)!ngpC.0DܳŞ,;âE;/G9km-WG;7֟ \vRx^}LYYeJIWjjRS{w//'z-55oZحBO=vKO]O5= =zGЪU=3@H$o|w.ťKi}ru5i`_QxPW=`pÏ]>܉z=@IeE諯hWTT[ܽ.nlSᩧbqq׿7Z=~k eSuӎ]^ܣ@VU=˭޵L3l~k r9%%UZ6SK跿^>[ >F۝u>KG1IZkdm6x]i _k턧ʢ;\W^mVXkcSuS]\#<ܭǗ[ds""K1OD8ӜOWeILS$Y_`i\uUo+WՆ ٍNgX<96{ғ\xq7^fQzifٱn SPo>XMfy߾ѶO:۷綸wY&/0T{GFwon9Ncﵱנ9:Zr'nW/7 [ڕwZ;'99%٨knqnѹs:ũ^K""4mZMɡ-N_UUSƩ륥~f߾=va2t5Q_^7`Uz[]O*[M9N]u!6SIIN?cFo5լυym5H]戈9iQn]☑fڍS[Kӭx{c. BF~~ٽIͶ;VBB]5]~{V[ji*>4Gi`OA>hঢnSJRbO]pAn={ ysK9A|u%\c=É̺6vT,k]|qXUT եFef24 L / Ք)u2> Ag2[! Z.vC) ""''n׬Ԏyemդ3n{.4U7G/8vc}{)rOG.ݧtk:٨^ٳl`L&+j˻y&h?v,]U^nIO=5̮MdP߾^Zxav7nvUkѢ>;ClO9}}t1ző2vwBW|r殾YeDdyf_oo^y:gjjQ.μF ҥcu9rvvAzv] <]T}X,[#)Ajj55Y, ޿P=Xs-o-X׸4wn΍D*'\=vjڄs> UW]ջiKK5oF(e6u-q8UTؠjGlفNV]Z$E%JFЧNPvvf k{_:xsukm(i['ܮG(ѠpW=0I֧,_~X99嶪s'sڙBgǎ*:_ͤnZө_6v5= mcxkUQQкGiSzh@-~8.Q2%\ylx4+L߿ѡNr3]`93'-_~[o-kUTk֬5ͭ8cߜ^ۣOdWW[9s:uxVgOfZӠ> TR?nqC#|A^}| O$k^W_ݣ/Gk˗}ml0>Y;p6y{u_΅EeCYb$iǎnYY_|qvM7޿**j}{޲9c ēhEF+T^^W_ÞF;)=Dor $$xJEfvη{Sz.-Ecm;qp0lnf:99tʺ۾WW Fv жiaWw[yu,ڳϛc2݆h_Vh||JIWMӶš ]O [n[999h4}Һ떝g[hL[:.ko5YL=uѽ۪Z=Zw=Ӓ}tͱ[>>f8Q>K+'=@u 7h(:+;\[vRy. DSFjɒ…C3~О=)S4uj;B7'ңԸqAZ~xm]w]=7P^^fV;OQZZq ~%4}zhЁz pd_ ۬'} x b5|ygei( +''T?9%KRTPPa4kVbb<$IW][u}tjj,MsP?͘[IIru5ұ =NedsQ4cFY:T>HGjKZwbm#Gh֬X -]x +ww̉9W/7 Rjj.ݧ+t|[:.3 Z$I))yzTsO UPrrʵxN}y[ju@- ZB)1|7^ii wС~DUVZ'7ӦEe4Jv3uyu-'$("M=6HSرR%'g_?/Matvm]>}|mْo_:/4B7wWh+ŋG()_f6$d*~^Xe0H%j(`ڳ:kݵ9'@bg]}uo͝30HNۦO?Mkp h m-ߖ t1V;}byd6?|cteuҗ_^(w|l=Ijj^~y- JeH!!v|sz]P"IeeZ`+ըQ˭U^6Ӯ=;Vo%%7F<Ѯ7[,Yb$,/BXt1v3OWZڽZtݍj{ʢ-oI]umm[];n뫚` TUeы/d}YاL EzMv7ɻwkŊtIRvv23lCcj{`2JdZ$W]5ܓ±}O&Ajyz[@-ڎ i~Trr}v-I"ml-b/;ڳ:c)IzC".UT(>KNN2k_h%髯h}c*ߖ8ĥK$UT(+Zn S*U $ kf5褡Z5 A wm^dW}~igpW**]}xBU6wuƺ;6dT2ڕ~p ڰ![gkժcvm6Zu8(&C7xj[[=`_5OnNfdPyyu3D%$ +%I&Vݺ[ʚF=t6C#cwlݚiViڴHw^ӣYGݬMN,Z_cc=UScˉRmޜcU6%%E""ܛ (MX'&F{A.:~TYYe-?٨XO;VjԱ֣U\\e{j}{{:$zz:j޼D]xa *,Z>[o}@=6HNRڻ:cR礌[5ʛnZi"5iR5iR&M }%hm#m.ߖ8$/Fys˪ܖ#TR55rO̠ [BCOZ3lѣ(0Хi]lt6Ɵ҆OW\[CjѢaoPYf-j3٨Hw8QުmZIcbvlx6%'mۖ*d4 Qvj-K>9yz:שa'M $mܘ~pp0x/XqDo.XFG{4&??vXw|Hi˝<LmR6<<=5rd&Zz!5qm {M3D$pv;GL>|D^^&;ɰt#}}Ԩ_W2*+ktxF[)3OhdNdnd4gN.ԩrqqhKk4luenk65h]wڵS4ujd77AZ]5vlvWrr!q _{iݺ,͟ѣmwn77玓c{Ƣ?LUR̉Ӑ!v_<}mn'UW[d2d4\9.k)67Ѡ_f-_nPd6ۿ|t:@4e(ZCC~i?tU2=jdֺ pVrr];Vijpcx}^++q7/QNv3 N^jK,ں$$x*%%UJM-ƌ lx`6Zm!C||[nkpsm0H0[ݵj6?EX^?XL*["u!1.KmzH*+kXϓIO<1T-]}:x5<5V7.S7ס}YNH)It6NZP cqq4rd^zi-;Çcohmۖke7%,U^^fmxA^{mxb.^۫]#5t6m:wޱZ;ﭗ_7ثr kV~~T+/Q=4P/[fQi>*+˫_ѯ~_^۫ kz?m߬mmVl-P>2v7UU-_~XӦEFWbxkի4\m/ҊkW]4aB.,qTVV} [bTScѺusҴi>OwH}G)'B۶Ťa4}z*+klC|[:.y zOOsOɨEIs~)OO=WuEg֘14XQQzjMQk}wyd~k55nV/J3gѓO՘1vO23#kW~i~҇j(͝[32Jt]zv?V/#mÆl=E[ߔ:+oPtn΍^YY>:%Kv: X jO ZA8n-iٲ־0!X&XNWج3nW]/Y6OO>9z~u\/Ho_ҢEõgOfnK( YӲjBy@:#կavn=:@\K͞V7kuֺUQQߨmn)V7k+>Hϧ))_;5q=S۶嶻|;.knsmi Æ}n9#ވASy׬ÇKqcvTMysIUii Q߾֪|۷4)ԯ{wvkV}zi@yx8*-Hof,JС~rYYYeڳڞh;"2]I%ں5nn&7?^kZ|x[f >}>fmߞ [|_?/8(#Tkdy`tƏRd23˴o_/PUE0!DF_ivܞ}Y뮝wܸ EDbmߞd}%'eebmݚS鶖oK8kCbG99g%#@H[2Y,ԾpM"'B" $61X $B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HXIYYN(VM=md4&g箏p]4}v^_Ŕ*tƏe PRRD`X:ޑ#?+JرZW !qӦtw+'._C{^H! @7+**׽~ꚞ?`˦tػ7[~wPgqpjմth}6멧$r֊)z Z{durLݹ!<8C-,7mݚଗ](SZ=#]EFEJծ]nǎc<4ѱF22LrttXVViӔ'7JVڧ'XI @ffsD@ϐ'fTSS#ggV-x&||\d0}^GGyyth..jtCoI.-'':+*UaaT\\lWRR֍kF=I81V79;;w/]]_杯P/-[?Ot>ߢCaaOT\\/ةEWaaL&/0/IRNNn/^B/X#f9;;Fd4e4[zzƄ{[o=5''K/ђ%?4/!!Xz^wu5kذp ?VQQy'`cFkh}.UYY` /+OOg? .j)dG kj~vws3++11Df^\CFiĈ^UQQ͙yy22Ljd2٪!q~ 'Kk}Q9;t$LFz9Zgi؎no^[z=|8OǏwdm|n yJK'(Ѡ @-TMMl*++UUU*UWW7Ϙk|reA?g޶##}u>jjVW]s0O @キ. ׂum zh^h@;pJ쳫ksؾ IDATcֲ*=O"SR+==Ol uRSQQa ؞0!qϞ&6nnX[Lꫯ$W׺cdftirTޝi7Oc+ʕwp[k۶ 6>EL6dh:]EE-X,-9#BbjjNolG "rp04o,I'}>eV,RFFA۰e57t֭G3ѣmi 9sphxx58jyյ$kҖԟU inH޺ܚ9-]YxXS@Xxj|u7_sK[\wsIt@KLg/*d:eʫ ewSpgMSPP~JMG ջ_z S7ovjֈ{wO_b-exx8i&wu5kIҾ}*.8% &|n['{٣"}eXzƗquim/[s$)))B>{\즉_)*+gO~$iĈ^zrq`f$sxIK)^hl~С0 D'}aCJի `?Wڷ/2J*4K^~[۷Uaa XUUk{9Ƴ͗UwbM:h]rIc 5om.#+H3f,O?Jccm1==O7VwʷcX,*sd=wĉqÇVܣV-cРP0/9::(+Hק4;^g3*)wwwyxx[0?2n֭Ɍ!@Hkv<O$r+!E}R@H#eXaSSwM?'{BeAD"NnWn "òdS(RF)mRJ4 IڴIzmrFs +o'"""""v|AnDDDDDDL4""t, """"".ADDDDDDLSM%A` hE""""""&*{1I$""""""&DDDDDDϥ߸q=y*o?{h{}CG\WPPC[;^wb1_E-zW42Ue㭷^E Xv#BDD$7Μɬ-ZDz1;hٲuSpř3PTh޼uYySRRq.\E7All2m-8s&u`0$VyQ*S.6mG KM=(n:]uYy hڴbbbx5CcA$ WGϞq䷽{t`1I^zF^=xrht*3Ō^וw߾]{J{!IT*:vĺL~3 HK;Rz1I$""ȉkZt!hݺm_ҥ;KK|wBU6x*E S u@UOʙu*S4HMMqKl 6GvKn2e4zY+shР!:uꂱcATzl6aPTL&#,Yގ×bٳЯ@jc-?']nm "##+]۶%AP`!EIIpt &^ny]ʕˑv.]DÆбcg_PTԩuܽ{'֬Y3g2b̘徾`^^+]`4zAhhh˵[wtt4.]eTtxԪU;HDDD#v{ ;0A;!لMj⡇W_}swމo-xgsu knHEQė_~{cmcΜѶm{Ƕl &܄:/=܎[o9s\]DzzA[d^}=]DD,X^Y@qn޼fO?(,Zo1`k͙"##|I}!**)X| 1}8xX碢"LpÏS.())cҰg.,^S%Ǐ}Z֭IHJڄ}+0~Nk-AX,HJ4h(v(ªU+`60k{v:gӳ0{ٳ a߅\%I>ڴi$v J|}u7o9_cFJ]#raa!N8xG&'O:9r[tx:vWu+䱨:L>?%ڟCDDDէF}-Ȫh;gVTb[> %+V,&)k̝]b'Oc`w8vnƍpt7޽=&LcǡG^ r猌SwsvvmKLvoE]DFFzmX,:#ؽ{'.]T&Tn޼gd{|D]UWE$'pkWs6X u_s=bY^]NNRaF87]&_c ZqE }꼳&Rr=޽Uԁs J?DDDt$ ־s6:wQ+[v*ct"9i(Og׮ݼc~{Ju:z̛7ͅF 7ŭNĉS*Ԅ?qv5II!I1trbxpLtBZNBNN$I؇rݼy#[&%wi NT|]PU&It8q ՏbY^]v[yZˤ:\\+(vͭ+^v]9a$ᄄA?$QtܭQUh+-йXLL Fo}{o^}>?ǨjuرcVXGVX,$%mBR&,^3,RҪgzo-Z*wQny HW?#^|N^\\<;cر3M]/+*W*[)MHbU-_睠ڵP~\VzI#ŲU.dl6yZe ׊k9$^xHRs+y]?::s'o("1! p?DDDTj'O'tw}Ĩ(y˥ȳ~l;vmW;vlíŽsLpwEV/m¸q1nh>|vfY].|a&87m-O>hx<'G ȋv^}1`g#ӵصkw ??~%wP*8~<L fRi9Elذݺu^ǦMʍiO|$?ʼn$Cr%oV<ְP^?Ejj<u}'O^d2ȑ69/;P̟7 g`Ϟ]سg۶‹/άT@h0oB<سgl,7 Ǭ/Ns2 rI׮q* g߃B̞e >L\'OG/rÒ%⡇Cz1ۯc ~[n:*(u"ڵ;BCCa0dzP(0q~ѪU̞nFüyeyA0aD;UkW]g’֭sWnWukeԻ`O8|Ν;7ߜ)?ֺu[Gxgyjڭ[8|RSS_qԧ)xwqZXS\V4~F7#F+z5<ގ'O ..͛ĠAC{MpLkq=4nڵwJ$ 7ǡCڵk}:tݧ`:_] I0`Va~~> \~ছnq,3؏tZƾ}{0j`h4Z;3ѨJj`0h޼Owݷc͚U㎻0k֧0 X|oԨ1ƌ{MRee͕+CQvz>}Uzm`ٰj : Ʉf͚c1HLlpŚnΜpDDD?$,3~u`Ȑa3cE:t,Xv;NZ̚).V""",IT0D+**Œ1ct$%mkWcE'|}g(z IDATT Qk!1嗟ZF}P(q ,]s~xѣGk:U6,|""""&D|;s{z^H*~y<]ӯә$vJODDD$| FO2x0$%—_~ԪU-ZDVm0qd$&^ }1b4 vyV-k,FU6g:Y-5jHDDDDDtuIP*P(  VtW1$QHDDDDDt5efJRtqMVkaaUbqnBVCVCR?'՞$T tj UpH /BxM/O=Ip-jNODDDDDt%=V V F#8Fפ$: VDDDDDDWBFI_Z:DQhP3:Ad`(YjDDDDDDAam8}$Z-BBBN3Yh4P*N嶟NN*b!$Q!"$IDDDDDDTF$QTT3g2 RP9)(&־jmbII (..Fqq1zۿ%%%0ͬDDDDDDquLGNH]E"V{E9_RJ_$I~%"""""D$4;$I剡ZFf$IP*EODDDDD#IT(r̩4k%hzՒgjEv c|$ z75Qh]ī$:Agr(Iv;AJ5DDDDDD$޺MtMxՒD>D"U۹tk@n˩kSBQcƋtrT*=2I$"""""L]$zrZ.|~22I`6a6aZa$<WpMju&qIfDgT""""""$N^Lz{ ʜ0Q$"""""rO:LR0DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$j{Y R*IݻqI  yy%,!"""""+,>> ?PM sbHDDDDDtve_AIK*Z`Pii*6;-9v;pl22.!--6c;JuW ظ1￿,''8+L$fd\6Zt\uR3skfͺ#Fg&""""zu@"?'<FF1h0$$D'BJkZ#Gcdgm&"""" P(PTPTP*W6I ڵG[}>޶mxc ڵV^ɓf yZV#--5BtPRAVC@EMCKQTdrNWY(h.A?%%%0 0 wCŵBϟ/Ɩ-'ߛ7pHoAcDDDDDDR\\bIhM*յBO.ܥq8ݛx1Ԙ?/m쳃Q^~i/^4k7 jIنݻ3p~_s> injho3ghEjy|߬DDDDD JRf꼃P(T*jIbF1f[!2RMYxhw&MW^ VB~Mѯ_S[wO=ϱUGfqƶ#j$Q T*Va I :'h4 yM$ ߿{Zi;A:'ܖ2^{m4@X4veЄΝaҤ.ȑQ\lƋ/8F ؼJЭ[v['oo@a6Q J*hљ4:'Zh4nخ]hDF:f9r<=Ļ ބGY]2_J3Gpt }ذ!]~<).=oMp뭝x$'mv&kL(822Q~}@۩jf(WI7E6 h  GM&^~wQ*m…ݒ;B))S%Qu3 ArL%IIbӦqhڴJO^Z']?O:ӯ_.1v@ZZ.Z-o}U7XDIIkvktSg>f2YqE9r+Wf&'g|m[ǝ\=rr=rЪUmԪ0mDDDDDDM`}Ieӭ%bbBKB?B ^0ADDDDDT))/b=RuEE SXXdh: """""bX;:u"+|nBBsAY2GUDs$ɎIb pcR-ky  pxJJ,A`#| L :ՇDG`;v6nL| BB'x3.Zt 7GR#HJzsk(]Q兾hݺ6Ջ-cc8t,ԩ6 jQM^^ z~Oر#[gϞ 1th 9*鋰yjQM&v{ ;]x ԋԩlV+q;wfb֓宷}[pDDD?s1p9HNι """""i 1I$""""""&DDDDDD$5OCdIDDDDD$(Jh&$"""""N_$nHIJ """""b {d,SGIbllZ """""bDFIN\CDDDDDO쎈$D""""""*GcV@|'QQ2DDDDDDLI"1I$""""""&DDDDDDtQS^Hnn>NEQQ A@ddԉAbb-2$?ވ?܇%vHtݻDmѴi]8?1IcMP*CPhԆ (JD v Vlڔ[`ذ1;bc#܉lPfJJ.BDDDDDL&'"|p6KֆR . j I2CػNAVVƎZ5s lhW,s$6bbX qƣ4e $Aq".^ Y~NʬLDt] {Ю] }@  ~X@DDDz FS kEݺhҤ.5@Hz/Ƹqq4`;(α"ؾ0׏- A bn a#g< M7#fh_{U5 u 9 :'N`ѢT#<<HHvѧOmhuCCQ0)#Ӆ@AA@@PC8z O %TpNnz&y82bF0<@oDDDDDT#\w.MR2 @\jX,"HHAǎ1HL B!@RA@qlJIOFzz6:th9 EE&GؠQϷ{X@y6h~ ޷`8PxP~N23bbC-ZBχnB&C0!6nM7֩s t{ Ю^ U~ڽ'̣{CͱCP΀=2b&2,fh֭zkr!Nئ-LL="lǠʄP!-[(Ű~OB޳ Bqx:v "l{]ۋyPZx/'BI Իv8g4X,lKrw0uk6A((T.7k&?~fx֭k^0| |uS zv (8`ty!K9W"V{_h,*bF =lE"*nفh^o֓3Jj~_?͛B摈BFP$IB޵+{qYA/Bqq1"Hh$m ĭ|lݎF LFXD^?l+L"v蛆`h=PYpiA+x< |]LS@jt"| JJ<cnj# /wvjy%Ͽ5x>(OgxID3߂iU.֨iY6)CBwL+(ⱇ[Ć]APp2Xp{<ˀBGNArzRBED<6E Q˚jsģBpgţ q U$~:ڕ=+`k۾2b{v\O?ooӴO"͙C@!6l!'޹Es^oyy/'#H..>LֻGN!r$8vK8AD{4{mpJρxr= g sFPN]ǵҺmP>s3V:`0Ƈu/nOBJ/Ts|H#""BV;ɹ&* I`%3DR" ݻvXD; BIR@q.…DAw_h6 ]| J^nQuS>ݼ@X{l47Bq6?V|u?C39#`>bVP>ߡE YB]S{t4Loؤ) w5<#ֱ `im8 ߠ=idU-:7BgFa>cb:xڕ! x?]"Q- ʬL(3N%ʬL9A-Iz[{kr8h`k5ΖACaf(3N֮#cP%yM {H4ꕎ?xvLAi !E@qkVAy8t?|[0{"o#Iaְ ),[޶Qoêƣ*ge˷ʋ?" U!g< kPfBɵ+AreHFBcil ܒ+Q'ޜ￁e(X =<M]sgq=J0;Ve_̜D=S!  [Pdu@/_?CDt-Ibfy9I`ZPXhNg"A`a4ڠR9'"$I$KFވ"CPεנ7ټb  !/w1NIJOp[bC(*B=SK4]B.q(y):u>ӏ!j-PfFӏ⮃r/ݲr46 O>a: ݢeI$!  [B5.kؾ " LnjT?RqTfe{vxt Ju$jE'Pg'G8zXP'mvKݹPͶ-pkBsc?#F/w^AnV]q6r̷܆Pf>п7п>= 4i*}+woֻbóp-&OE_?<_DY{XNY(. r>B xs>B̗[Y굿QOڻ/oHT)-OY0 :Aq1+T'C?%3߀ace4v6kt\+Yg %w}84Ѡh70OXV w&lf:hW,s^DDׁ?q#!"V f \`Bn.p;S٬٬E$I*ٴ,StZm0]趤I|9 - _#:=(5nƩwyhDwqm0-b*(آ%}t9[YP,Xܮ0,ٸ#Btk9z7z)k8,8?)!l ޱMn`;] =/ q}=ϣܮDay[(72Yvt< {h(QQ0xKƣy>*t6R\acuģ*gx/+'~<Y{ڴG<gDZϥScﻧ%`r nP$V#G2Xfl6h4z\LM(,4d2&VXXVl6] ϑ0*BP֪ ~]K;C?MGw 꿷#׽="_nce{mV/cGjowqK آ8@)(OlLy qmqĻsغvz<)Q1T#Wxs__26ny'`DQs(?T<.Xq0qW"/؃^N ԁC@ѵƿna`[a2a4@Tnwt=U*$AuL``a6KEG踛(&vvth4ج93uQX޽6BۯPD% JOCoz5tHϟ`4xvWwqlak1c鲻>"䇹P_Bln ӭ`7ʓ'z߾cQ:Je /$2xXC]//a6%(.]!w9(O="a5޺EE<|TLޯF|_X IDATcFĚrނe)(SAy#RkVENKy㢼Mh:ۜO?9_~BA4u7mM74e[c+mN+D nvS}}5.AV624Iak߱lz^}] qn$18J=& zxT ޷W%Ru:گbL`"DDLkHt۶$!JX HE,MiУllVX,X,Hv%Qt$šNԪyj/@w_֮7Uq=Vm ժ Ņ\c֥P.WCFN>cOy͛[ӠcleYY\{^'Ϝj=vu@p\'xj{pݺ@ IHdfDIz}1b800 0$3v+$(6lX% 1""n*vyQ8<@gsTr+@u4ݎ5ZaʴC߽A'Po P]p :t~書βe#J'$pn:rXvJr&esE)6Qc޿u! hX 4t:N-5YM/oWW{ WG ko{Bڪr1LAG` f%TϜjm\X1bDyk}Ib%uGTh$J5j5d*)M K`4l6f3&;9Q ӠeD4kV 9 &#^c66ˠ!.BlɏWϼ4ȿݼoI5GOLJ$uy4M+|>JD5FCwrPKcH6opLuYXIyPITyITt<!_Iv]`ڳLzIߡ޿kXqWqB~ڼF֤*q̈́ƣg0^VSk)H9)tG>Hs=ED$ҟa 舡C@.KME#$\ST:th6mUU+*((lͷ8>PO>ͻkCq_z - 3=Ln96zJ%Jy!hۛ&{d$ nrҕ>x<쮛sƐzXr1yM vD{ PnjPɿ_(/'iG5imaxJg9Qn6zm=֩8\ ŹPo"';{sPUbP1c 6kUj [ k(K;f%Oo"'1{2b- X,Pu ak߱4V5ax}֣']C(*_ |#'~](  ͆?5FHqPI(BlE?/Xܯ$qew/K&M!O";-tơpEsB| {T4LS b4vhW.Xɐ"JOf(Og֮TAބy8ڴk`xq~!U{D$۷Bu&Bb ƣJg7*IbϜd7;cX"'1yR%O/kٜn&[D$j6ہ0Iñc5 (AZh2m4wUe֭%=J,"n (n0.38?q7PqEqa@dUA;N*K/?nݛTUZTNֹ={s;p;b'P"_ U7f g@}Lm=o<x!׽/}}=a9B䣈_.=X߂㠽oP{= |ҭT_wvuX'Q00^z3p[gV^Dusj ^"'QTkq}W@M!v?H\ziS_>W+ݾ~-X'}=LπdPG g#&]|9(~n-:6hv}}ukm+1gU󽈿=||^K% 6 ym%4 Ţ~x'c3SLPD$6mǶm8M88mՍe =Cݲ-8nv*\m^C0^2 z'\EXǟS(@0M۷8 ~j|)KzܘB?{7~8v|Mly+'%J퍐~co~+ _\CYgf:\ku}C/Àm;޿eܮg v->0g <g:񤦿p=|^$`xq{&z~RJvYԵMƜ̇zxxnxuM\sH$ßſG}K$@6[/x!)p2 CK4 />kz"WܓO ykQ?jA{K EbHmuH:8kp~6 =B_1`+ ω#  I2xغ|~_a~$N'"z ł'4lyatGUն]<Ā39. C^xe!"lDql\$P*i%(Jx,޽{8D!2\AXeYiITj !Q 2lۂieObttS CG4(`<,qlLOOc˖ZZ[1y."H.. <n 6(` Tc> 8(Q`J%k0=ZLDD"p]סiS-yPW&HV(x4]155͛tߴZO,#LTRaYf] ͔[(m$#\[fmF*5U,F{xMB&(Jbf]<p0P,y.fgg rSji9D % ai lt ;A*50LF.H(0 X r0M"]HX1SCA"Dba ǃrl, ݻ'\=fYm `hhjEq|PUڪh C`ՙ~xd+U+b4M+PUuVQ,H$jB<|hU8p`ddu=mcvv[*ڟ@h;/`nnfUmP Wx#( i(H$7ԓD(Q ,˄$n̺۠öm(&MmX,͛DXoo({XL۶B{uD>(`ppfY y^0삥#Y197H&n8M:i?A]E`qXJpE }Z8〾>T2`E`Y~9k90<< eyn2I,L˲\#YA_d޾H$zjB8Ha]U/,=BeeegAC/+) a_-( '|BY:.'L"_Q]+r044\CjN=jf #jTMXd2h4*g!^@}4 {V$U1'Q%:M"S%D])gO12vЍCA"Mu0>-=''EY:f=cj6{0h2g@h?A$;0`1 iȀe=f-`6Y#?V\iZiEi 2F"ʒ %*ÈIZ Oem8y%t[[.Zu˲k]"3˷-\MMnC=Z}~D" ##JgDyar{Ղfm~ H$v<AN~DR0̃ DC?;S!#DZ8[>J IDATU%鴨 Vh6K&7TP]z,Fiekl V9"KpW.;YOLHv3q(JZBXkp]e! b``#g~|f &[ǽvhY1 Db$EWlp@$1p>anl @Py YV001';˅Uz)0nm˥CumWGl X닢PoPVݗ+{cgI+,A$mZ=vpx|!9Rm%t177H$1P>Sw;ܻY l<AH$@ _ey y |u"<2a͂eΘC[j]׫,ssiH s+ۏւnZ4&&111D\AĆHpUΪ~|VE)I!IDqun0 ݻg%0^qȲI.Jbopxx,wU-!̀e6X x/|aED?Hcnnb$ö-doY˒#mY#V &\y "dYm4-&=M{X ffa&,+E#5{D" 8 4M07aa6e#'k|F2XDooP&&*ۨyjSGVVvnW>h^ضK^,UapMa(P'١Mӄ<0Zڏ_OO33ӡ'r"ۇގlr%>LOO0p`%$8U}hh e9rY 0TU044Tj*`W'cppw/1ضB SOOWvWnWKx !50 xaab,"19i4Y<G&FkMc@;C?xmliEc 4̈́a0 e/Za,D?TXd5<0| %cV]׃ -79 M+> AD,ðؽ{lP[RuP,{G,.n^ueNf3ecc.LӀyEȾ;b I(JdYeYP"L0EhlE2?cxD"JSBq0LHpm6N=jj3,˂m;8 .y(zuJMT*!H`ppP(%0vUAD7s5_@"@, 7ߗZ`p"10, ˲aN8^Z)\čmؽ{`˖-U@ڱX$tj  Y$n%`Oe9Ht]{+P86<hEw bĶ0yBm q~(By\̿o"'Eq'&XZ0# H$nq$`VsbA$`FAP%,A|&&ba-l8a (,ccNQ*144UYA檿MM 6º߾}Gu33e!H&oʦ:ι\u;Kcpph4k6APJ*XÎ;V,lfggP{կiHd2s`Y۷ox{-uJTUL*|-kX CCC+^i ͔q7o I/xfP*D"+VbvvBE4:GV^ZsBLJv.)ܚ5Vm߾t]_TWY'T*U--zlڴfAY$fY1жgʞA7寂r^lemm@*fg`:(E0DZ1==-[V}0tLN7CEضbQؘI6<9D % ai lt{{ 8,p]beavv6'IܬS۶JMWYDq i!@V[m|>r( DQi(FFF(5QqJ,˂(JPHSI[ffI D"8C4LOVbH,JuJ |.eY&R)xHD,˰m mE'x>tcYR]aTU a= DY( XmۡyH0X3}d5凌>'2$J%eB*R)dY\"NX,0 b1(J"4Mh|>ւAu0c*&p>C`~?"q\XՓzqkVu }qmW&yE^sJ^yDdY {y^7msJŞd{ W}Yic) ؼyKyw}سgiPȷ$[igqNφ⑑* mغ՟0xh/@F VMXfezov. aPR#uN^F"o:sp t]+.RXOBֲ8###tX:|tYcx^Ł؊{p[RaBI'jz0V%=5&AAP7ѿ6z[̯A{0At]` B1317AUm *aH$+Eb<^`,Kegk7𳕡Ͷa.{UM+'$ا:&˅"x<њ=U+y!Ɋ˫(5]7:R'p]ᑱX, ?J nxWM o^}n#UY{%١lA+M+c_ z`uFe0^xԅmG`HE`VC1_n63r_w{aT] Ra%'ݕX,|>u0>E,C$i{n;[5ÀR&llmpR;Ś=ˉH$UUQ,VKTU6ZqܒmHe &X 0ͅwƟ繰,aaƫG:}/6XHSF"{ -M!K $G"!#*/zaO[#ʲx͝keVYVr(#g߻Lz\ rIk 2WO1i"NqrR8)FcH$-V9.<υ]*'8kWX2|vBX~=bju-TOթC'qrm_}X,8UBX-b+}}nUA~/9<v "Om$2"( b2D2[V{Y>?UA]X$ G Ju]xlVDss%gO1Ͼ da~" C_rUg,W*GS Ӳ,Rɏh*H=Vsa^}n (EHbx1X)y9 Ͼ@lT&\̤YD5+[W,ijqjj*ܳS9؟ su3|> U}Ы733]cccv?R DRp֙H&kxfٖ'ヌ'/gV] 5 :̲G󡝲"*p<&45̌[y\m\:u/s}Ըa# 41>>Y I2\?-Y}}}}(Csß < DQgڤz{i{a6&&u&^Dʲ133 4g8dY( txb}`sZB6r+ Dq haVZ]=, "ä3MZ`h6ajW$똛A$ڵPt&UgݲARxbl{'0lLƶlF&3h4$*+v\{*۶˕IA" 8Ѩ,gdĊY侁,8Gmcdd\RAAc1<<|>0!d2sp΂V<+qr<(( ptIXC.-R/PU%N۶ϙh״,IbffW+0 z{χvg8VEQ׏Lfi"]#Pv u1??q000ر~ҩ{iϵ jnԱ xmhbX[M3& ZQ( 2gQ^D~mT OqB6e Vqi燁 Ţ`wmDd׮16eCg7dٶS|GE %7CUUh BJoAU0M(Fc+>pWTߟg/r~>S={&` '|[)Ud?lEQZfVNkvF 6:\$ b0z<}Ÿ 8òlضSN^s?"(gD Qqk IDAT,bxM۶})If'%bY_.ܖ}NQM |/Nφx>ZV0,DuJcQ#IҪjw^snݨcAEb 6Q -{paY6<+Fq;O<4F-NAA/O{q XV() =ρ-OsGrs? jy   }A$2uH08NA$@D8,aLxI;3<ceⳟT˟~m۶c~>SO}a`B|> rX?=7;}}]y{㬳Nrmؼy~.^ mA$Wݻq ׍A;$"q\X]ס%j ^*r(4pï`6>8m)WXx˟,+ul"bnG?..-]4Ͱ{Jtv(m033qy O=WrY a˖l4?Gv ,{Gm ,·_` /@.ȵ&'~?^ʗcÍ7^OLAAlO7 qbqb1K躿/HXHCI/o!A m Ãeyx'܃'؃#ѵ~=SS!3Ez_.W75Hm[oc=ݻw!H`۶8`qmx ":h  ⩧]ضm8`g[sw!GOOOeNow۶T*~ 8B5i'|ǓOfykZv9;;[o= rO?DYڼy+:Yd2kؾ}^pQ4 />owގ<Gi޻/y:f122:b}w3ށnw<:%#L߆_n`hhr(>mcv?سg}}8pyoyT'?vIqasP}'S,8u;X 8#Z t=?qLMMbvvLꮻ~p/jNv 6g8Gp衇X,⦛c=b;gq&v8fAlv.iEcU ybvփ,bll+6cAx`RymCm5ӟnG?zzhbBRq4h9"N£~6&'s5Dz;_q-?y0nfzwxիN-sEs{99&;}Ʈ]|N}K/-Þ=?yk۶m7߆[pUS[~AqtDŚ{ JR[k?䓏RTZpg6u_ \u N9T=oG&S7W^yAqוڰ* .<}5OI;fwּ~/-uy>\tхؽ{Wkx]i\pۚV򞧦K]7{dd7p3Ckq\}_oqw}}S꫿uu6|#;7UgmVx/j׏?yWv}/f%ekgl[O])\z~m䒏"?HHDg?Ŷ6 6ˎIl\$ b1gh5ޓc15(y,6 c`N9e<#dqy`aY `  ssyfWM$%|= N?UxKNA$w z ff^}Gk=x[߀tzd}رdG?_$Î_ڦO3O 8駿 s,nص\z%xslWE,qǝPqV1yj_N9XrʩH&{1=Oc<_o=p^r~;AzqAw .|e/{y ύGp߄k8y;SS/I|{߁e n*\uE;w#8jG}_yص|W!ӟ$n& v+җX,_t Hwy7|`-x_!wp~">+|p)h4{=8X-gG+$nصvx ^Xsfmekgl[/])_mv?Gri*>Nh;R b-z811:p]e" :L38>2h4zy/>!] E uC+:ބ~r| C|FG7]7tC8/:C^~_]"0t\x֭PZ^3< ?OBAvAگ;ji7poUWkמV9;;~$122O o8q%}=\yW_8%|>M_75!q3W\YU?yOYgG'?i\t_pG!o{oHt]{{*qu7b۶'w+\~e8316yMk_ .r\|ÿoΝsDZg6oRT N{߯q%lgnn_g}._+R\sWpe5vڣ>sqb||7vz'|˿|곝Vl%ekgl[/]){w+q{^s񖷜˲p_ė5}t}|^|DZaY& ?qňgp ڧɘṃmql8 s놩X s;GMo _/įy!WsP(JN?U- ү~+xGqMքb.slPhq(᱂ 3_x晧Vu(J`\5уz>/ 7J @"uᾬ`Yyؾ}?mZ r'rՔSN 'w/XUW[z{p5@<k./U Dx+^Rc= Wض 0i*TBtZa%a.8c _,w>,nz`dY+{6`ddSՀ ^SOnY{5=T*_1ЇfpGswh;ēOOi&8|vj9xOaY^SCr,X w@}jHI'\CC~B?u ׭{p9ϩ=<<7knƆ0a^w]Y4hTwq[8${Yh=VvNڱF?,u>d&v= @ׇxϳyt]J`YBM{19Yu]2Cß4O|,=}GU%ngL*!!N$t"((,XpEUp].((+?i D@zhRZL&<@fssg{˹&L7_57 ZIF#1?m{;GW6J7yy'|:,͛˯eJKKѣGKV_u)gQƍ ֩aƊ9آ1ޥԢEf?;sRSSrlXS \w3uC͛7YGEA6^N)--N:u"奔/l:v,HlA];0J^%]K\e}iu-NH (+sp l*VWPPy]h͖`0f*#ìMRyAv]VU˛uhEElŒEOz܁ڴiqѿO]tI˗/K%IjCO<]Fw^/]t߿Be ZQ+W5javfs/^8zFA˖UFMedB͝;K[lR\ܩ{ދTrfwad^Sz횽ݏ;9^/ɨcQ9k:}RRu_e?F{^S'e6g]Je:sf~}4ڣ4'um}YE;wfvcO8m^iBB**"֯? ,U))?nVE&Y...2Wr%(+==MWDZ$Yeqİ}J]>%Kj\>|HǏշNG}dwpXRˍ932Z 2$E{X, /^uDAF PwȑCz睷ʼYלv:]tY eo`e q;T~B~[/}JfS9sA~}$QVaiEm}YQjju8޽{$qIBbP5 պuѲe0(#àd,ѷJL;\f2dgnf\ VUJ*(8/gϞ)˫oߧԷSlڽ{̙~^z7Զm{`vլY 'IU;5s  &^T1mF>XCk. UtN8q;+I._~4+4>4bb]Jue/}񝘟&ݮ @H,--ZQv )5M6[ߌ%+%%I))lNŒv%PEhԩڵfJECf?ɓyNr=g=jƌjj A g2G l{ɴT %$ʪ=%IaaNnݚRΖ-[9oyoXeM_T&ϧ..j7-[KVZy/_sv#$iI^_{ʱau*൦LGYwYFQgd?mۖ<9x0F&M$ L&w!}wuT&(jM͖A1CnnRFW/D{[4dS&O&|U{F1?y'9~r/^dsڵrv=x/߿/#jҤ)kdGֈWђ% ^۷|}3׻A84KTv ̣_=fk]p἞zQ%''ECC׮Fv=|\Sbbԭ[w]/0Ht%d4ifX0` ;FR'IQU+I{V}˲EqN33&f>xWsL>=xOn<HuZ:.Mp=* Ν+#êUtr vW . -F2ͼ\9w5lXSMRÆ[mӐj.mڴASNÇt}]իWj͚ziӆJ0\SN}Vl6kӦ X{|WURR{v}Huu -\8OjܹCYFcOj:p`:w[>W_K.VlQ5hHwҩS'gս{OիנYB>KPNmվ}Gծ={vdrW_M*=#i̟ղek>:6X#^onnn0a鮘j۶ZlfZ(!!As`0h)~3:v'觟Qt]Mնm{UXI7oΝ;;l+i͚5髯o-R۶-ԡCG+uڹsyL͑juzGI;kП˗j*_q'(l%qhav&&uI+V[k{ߗjzY2L9wqZ|ZZ?~ժU]풏l9_ .2gĬ{"ZjW5 wvj[7LՓO>}h96yL_~Zhkv:OGx-\8?&I}>jw%0 IDAT?+Ry*Vy> ;)Sfk/,ڣs5|{⋏o}r)Sf}բEC%&&/>Q|||7.I9yLAÇŋrRS}8-jӛoS/􂢢E/o>Ѻ]9s أZnMSTUCe/5fW.^ wkE##cg8^}3g ׭=JZߝ;?sg…zP! G+~\_*l_پ}$)" A1`P>?Q``?n_T~uUq셍_ %%]ߋ=[cgQ> |9%[H y*(OU($j׮:u26MK,ݻtYW}~Ztbccut::u_kŊ!ի@ݺ=$O5iS3+=sVմl[ztӲhGh:|F㕶.̣)vEi̟8eʙe~ST%&^V jѢS5=?V[ߥ ~Wbb,={e6UfMu-/fVC[lԥK\ե(\e/ua-Y@ruuUݺýT|/;.֯_۷S:u]wԼy+'G}GI{Z+$ z8S[ ԯ߳;khYڳ'ڱ[^9c c1ʕ+x\wAgݒ!QRgOөStBSeXe4aRr^ UJTZj֬97Sj$Bjկ߰Ԗ]~--[DkC"z֯_S 5dұcsدկ߳T.$ުKwYO^ JJJl$CT^*d奈zתJT2 k(T_X=ղek}m?&Ţʕ讻gWhh-* Œ KT`qv8oIXlO8qr V}К{yy廌_jh"`I2 m4sQRÍh߾rss\]]=0yHrh" ii.ooo 2Ay2pv\TA2Lxm` e%dr;-1 YBg? )$zzŨ4lvZ HJJV]Ν<==.\u R 4V$>أ{wh4K9b^G LByI^^&Y6Yvlv)--MJK,RRd9B`ìhb3\øu]jnٜD%%%)))IJNNVrr222p Ѩr9/ YE;R^G1LZWLqcz뭆yEߧ*:[ /U۶yWaC}䓡2uT9Ku=ѥK;vNNʕ+h?W/Mv][())5iTѣ]Tll*T(d6;743-hUeԽ󬯛UAmT:۶>|ڷokY)obgGi͚C$__M|{OKRR2׫`L7Ǥ@b譐r;*k~~Xʀ/zr}`Ծ:zJLLW_$FV ԠAސN*9|]?OYq#FUT/&O=UK/\W_~G6dwWҨQMeK˖$+禤 }+۽_ZU-WU^x&Lwwּgu\\]3{"#*9٢'h%KNj蝎y5W_֡C |9CO5oޱλu.*..UoP}7bɻ>\UΟO/eZhuy/ͮzh4f+~S#GDe˫ zn?!ݮ^ rx-[P;8FYQPU[!Czor۷̱q-Iy\.V' xza>87T) ZѾ}g]RREw =)Zt}=T}Ƣqq@ɿ_^ףGu͜yTfu!f% k(??.]}I= ^~uVI&f!zPy>m{hÆۋ5<Ǝ9s{i5z'TV\ݹxccs.;?|RRҵlv-_]iifqWӏڷo^Z;cj֬wuvԩ k:uC=A'.$M$Z5koPʑa'_05h৚5}ku@֬T)3f?RӧS JTN7N_9o`Q[%2 %ЬY/8cĈ'̀xp ZݻV ֶma^ I/'K-տ}t}._NUJJ? kcg9[,ƭ׾}g5|";vQ5/z(;jԨȰkZ>͚Q[skOgw5w=Z5 D:̙TMOEJ"k̘w4{vG}w%vAA`{ެV._6+N4uj[;ve@m|T,ICd=繞/Ӧ!__oƞ)4 JRDD5EG…{vեKEP.\H,ߵjLNN˷ )ZbwSKn=4h,Դim8pB< )znڷ/|z5dԭ[lmcu=w~?Whf͞6|UQϞmԤI-GtmE\x9ΟOPuY!ow]bٲAҥ:wȱ75+HJʱ<>5Y-^Wъ{9oxv@ǧ*&|4wFaaŮoTZzjذ:uʽ%{խ…s[KRGYNNԩ'%k۶:{6)߲޲$&ܹ$GYl6̥? jcg9[/fGUV@γ3OӜ7<=]Դiz_֭⋑0rL~pm EEܹ<=kVvnW^tL&v{jѣԤIwرd,..9evu5fU/\W}O/v+55m{ﭤ2ő77\\{$;gGU*z͊owpјԢ߼yܹL&7FE*55{ntUΝsfVzzFٜ!*x̙N۶S~YhҤ!ZtukGOk̘9y+:p._NόX7ň(ii|_vlկ5ZQQ'"S~xU{hbKС۵lvXwYSݻ7񚇇sTLŪ?ƍ륹sK뫯:fձL;ٳ~ۗ+ ^[6 4GAmo`Q{}, YO8R%O=lm*RS<ڪ#Y SΘ51c|bɇFe@ux -ZF :xΝKSUe^|y7?s}Tj_ӿC lTKmEhI*5r_;qB>}Q?RG?uv+99{Vz222CN@Tg/'ײ︣V04֬U:Xl uk.]OQEOv?rJg g kذG觟Vi֭ZxEgdpEci)ҵu?/UӧoQb՝,iřZ5kVPHV<+UcА!(HL9MQ#FtVL9;tl=uraPXXV:X:jҤ:wPǎ_;Va<~<^}6qV aIVSEXDIDATi@cҹ'YDDΟ?~6K3ERO;v+**td;t(Q3fo4É!綐I-)))9ǎ%lQ#Z-䡊=u`MSFA_~Rv &Msg|;׊""r<լYXww7Y,խ[+GX|^3j24t#EU {LA.z~E!GƧ lTÆ5曏xqnfom<سڱ#soߎ<m,L5kVܹ^7ojRa9߱ӧMnn2 zwC/^кu5m2z~R%@^2 *W."fGn#gVEѱ;wѣEԧOc;߾Yy 4Clgfu|9UZp@U槽{zu?h:s&~Ү]3EEe)>^˖-SeefΜ W^Qyytj֭ڳgtUW)33SPllpRwv֭SDDrssqF޻w/A"]zGyWt1IRdd+++K{ȑ#cEEE[vR~~rssU]]vSAAfUPPm DQQV^p1ѣ5w\DqqqZ5jFelkX.ITnnn6߿_GաCT__loa{87I3PUUSIR>}$I~~~bq Il֫˗+ @W\q> 667)MKڻo$$J,//Wtt$[ol٢jcѣG@ԫW/EEE)%%E)))O~͚5KǏd.22l߇&z٬PIRFF tW[&I&Lе^k~qqq?zmjB5zyykufRooV Ad6mQoͪUg@=X/kj.khɒ Zd&L"i$@Ϗ7~~}zyi@n<6@;^:o`cX:yByy5 VLLL.dXZj t O],rs^)??/tL&}tvWEErrtA=N'OV@ooߞ7V*.}EGt.feU)+RԻw`wf]̲I&DiϞBIRnnjk-mZF=VήR}Uqq-Y_oѣe*,Qh VXohS)Om)'ʕ_ o.o$xrѢD /SO%+%Ttu=r|OII)kyu\-(G\3@ Qx[{+IZ.Ǝt1曇}{fK/|ol6[i4>\*ԛ]i͟?XS4{sJ˓c:z#F;upyƖsѵh]t~E>6euu[n( ⋓שy}lYYC||」Z.[tm4cFꤖ/O$=Y=:BkfStc~mlOi*)1;l;vl~1=:S/cG${FiDC}_z{%%I|p#]>ҥre{]G ׂue}ڴ&MVZ ֭yMXZ*S^ET۶?^xdyݣiS{wo*+딜\_bq1j}Z`6lir-z{["O~2@EyS͞GGzFmܘ$@l3]}:}}I99UZ;4@y瞭ow7MGʮllג%IMDI:tD=CzHusr=^\-ӣq۲o_{w8q_1#ؾyy +/'mgmjjjx`,替oix|wn6z JK0ҵ܆|pȇOY7OO4{w7vk2ѓ8cG^=EuuVsΉaϯѪUڿظ]h󚝺~׮64rdqSTz3uE NϯȬgKXo O>(9:_ UUmb{/N>S˗R`d/7֢c;Gt=]{sh. ^^{hBYRaa~zݙ4{-{tp 4bbTUU mؐc?6-Fsu.Za2AB4sf}YkހV;낫ewP]|qoIҚ5Ys6zb;5kk-ڼ=XÈۚmlY͖֮I^x?r|ZiQO?@[_G׷hӦ<K6S:;e|pMK:vA܆ 9Zx~R滻@tS۶K..X0XzHoyXtXNhr_YYvq16,LO=5AC:lZx*T_osՔ) m}?{hР~p]pA|:O7o}y޼~oyso,eKf͊w |^=E[G4{vlEy'7yf|=N֪NK$魷ftC%%!kctu_ii~FoƍyNĶ+2~}}ҍ7q8}OZ"wqg]pGٽ]xaƍOOp:mel?ГxЎc{]($W__gK>kYVVZ_Ck/%TEE&v[6ȓ:31Ғ%4{c]JJ*4qժLALw&=%h=jp?xpO>9lۓ^Oor1ѣ#3 pڜJ ޚ/ȓwաC*-d1i&[Mq KgwχjP#xfMo6?f'h<9Z{u%1#V_?6,W=4bʮ*!274ɱ}|sƝu]UKf*vm~njz曇x?'xqp5<ovѝmuV>jMD.+Lq8;vd 8 x{1lgؕ6fٲT=tBBZ=2~ް5~DO6=}|W4N^Π``hhc@$)P~zz0mh/8m*%&F*11Rs: bР-{Ѳm[23+%ن-\8i͟?㹳.ti2fMB?:=Wж-^G_|lQph[Yas6:+Nu㍃[}e}°?d 8Ml{9\(}|Z(,a Sg=-^Í[cFW O|:U[0__/%&6{ $L\8ZR]7m\+*[Y/fgU^^&w_nV]+ҵbE4fL&Nԩ17.&s ѣCdbfMVg4l<[P ,,QttZު"=Z W(-B'OV3sUke77i\z.tײۜ+M c{uV:u6Ӻ>&9rn5 mיu]mcGڠHOָt&-4^'_FO"AWšV̬_mjv\=~kɳg'hf3lKD\a,~xY$g_/lɓS~f̘ڽ@99UsX\annˑ# $&Fލ'wpGټٶՙ狺8Q:.􄲋6tK:^ԓ'+{wa+G;I<(*߸(}V?G9'&-B~zB~zB+WfW׿nm{u}bbqQWgw}YY-kX0 Em^O![-Y>m>48|T۶;+U =gA49_w|[]37;S]Ow 8p 17kfҌ/o?3#F_*;e_ީ СaK-cW7~^,U{6bs3&rlW_Iڷ~_׃Çi„(^0klcII꫓Z<7U߾fk=:v(Нwnvj_PLfM͚5ke92\'5zѝYuP|p{lÍ[iipՎx1]+M7}5kQ}VET]d=| h=0ĉr=ved4bNZtOeKn;mڔz[upyfC> | $f2IKwoåZe S2djTxȐP=$$[o_S^^_^/q#tjTT|k 9]w@_[60[??Iw߽EEEfo)RZKsэ7v9wd-7yFI6oWUtt}^a&tfFgjܸ(=X6,LMz*YUzѝl={F맨(c\sk.p׉ IDAT1[P}mԿ**[3=mtGtq<9Xss|wk޼~zIM&k t-^8s!lw=[SUUի3wήRPUW7o>}矟 /லn]bb#cvÙ6yڸ1Wii**QdFLsx:|Tfj͞\șA"wA2}thx'jѢ]lY_|q+3ĐCA"2$TyyժӉJI)u:+6wn چ(6mZү~U_dJ=}u$ %p$|FCC}տupJJf45H@8U/9'e.J H23+jU22*Q:ED`MSc]8$\5DA" @ H$DA" @ H$n}{[yw8~I۾c#G$IG+.6*N[kqۍsY  "IXۧUVQQ~;o\]g*g(3R]~.ʓy_nQMM;g宺Fv8ѓFhF$_/4%%f| UV5_d-YM>IOF'iϞBur0ín$m4/I~m:Ň_ra qЦ2RF*Om>'Xk镜\߭fW7~dIW5̕W1QMw=W^9 //Vp?q҃z#?OբETZtRyiѢ15쫯қonv_-mGڊb{Qcgb /'6wz1JK;q{{J=@pڙ4)ZE*,ɓׯɾ1!!P+..x7q˖<]qE_X[2ujBC}aC+5|x&Mꥀ3$]pANQ@6GkfFGti͘0_WkݺlUh4 fnٲ:8M`mޜ7CyyZhWΫnړLw|}4`@Fh4=^IRTfΌ!JI)w娨ȬGݩ?ifpA~=ZvSc寤BYEv)4#K֌о}EZ.[II-?ow<+iԖstsg}Jt[TUU ]xaUzz&[5zdIfΌ՗_TVV+nQMujcG$i̘VRRJi;6Ryyڲ%O˓hɒ ~Su#;6RҖ-:vLkLZu#yۑqPk;3矧Ilmtݱ@}u{[J@74yr/$5$ڇ{k^ڲ%O6:}KK(3v5~||,Gp3y}kH򶤶bw_ԝwnVRR. ?qT7J74ՀRthjښUzH^ǧ/$i0SZ{ݦJ=tBcӾ}Fxqz晉î~:FNZ$\:~\+Vk޼~*F*O彻u̝b'^襗$Gvi|-]zPf+..P#ڶ-_}6e~eb5YgOQcǎy{:=mۖ+2t Tgg̈Ռzd;V#\Ҏu4o;Vz}{ N瞛 &ѣenmk]I{t58e +iItUVd~ M>p`{,Q}o1k$z{nbr+瑲'2- ?{b\G'zmwXQW'w;y:vL^^$`UWmC}4~|q#خ]?ޒKTQ0s"UUن/{㪫;矟d'V=Yn\ѼuW[5]<.6 vu"DRbbAbCo`RqbSmAbIY8l/I'r:AGzdTm u.Ѻu~}QB/z7=yK.찯}ly;eJL5}z ᦸ8ݻm770ɍ]s&!ܹ-OpCu4qbKhueyr9{>'5*\gg!w7 }{>?0_Y, = =MV?BB| HOiOWh+\FۿlqҦtPJ{tpS&OΝ:~L 50 TNmvΊPAAz[G`3)WzzRRJeK6WP3<;T#G:>֭֎ }5 3&&nkT]]$0pwrV; WQ%%fzǍknoo]I{ 쁝jrzqںaSM>KӦMa>bd~}VTRRԶߩy573$@k$$:p5FػwP+ ұc{O֘ 26t4<=]Y76hÆևA66:hPzRffmaFQƨu벵s-04-Fؑ{zYdBw*7*[w\Qsg+ ƌ4,&%)11Xӫ qڴX}Y+VYYqd_ًR_ocԺuƾ հaa4(D#G SϫT-MAo?fkÝâl6h;*lih}L/M,O:gO1w{992MC?O-;3gSm[nq1m,Uyy,l_[.m봧ˍ+:j+\556=^K Hk1iܸ(mْB &6ԩaSDۤzL%gݫӃXq:`C<^})%T·{O^Yt\VVz 5:_ުo2zb:֯_RS5yroT??c-Hܽ@uuV[{8xpUXXݻ &On1g/ќƽG- wtwwײѼSv{޺Zeʽ1\dҤ^> 1&l~ݭ]k{jڴ=f 5~|||}PX2ʁf5<ϘD:r؇9t"I_KVko$zb:fȑR%'i,ɹmmņ 9:~LAA>{w,0&PSIs\}V(&3Yz*kYw%o;𔘘Y{{XÚjo]WA"Э^ƍնujjg_ cLfSָBZԵd;v7~l¾$M`@S[1?6{Sn閞YZWƄZ2S5.vF=1_{j;Vlk񝬲ZsV=&7F;dJE: j/r}ĸsKĬ~h;-kYw%o;I2-s{jnlpקj8mZöQQM&Mh>[50-zZ6T>;#|b+VfJs{%ن~ 7 2nv~x\+V7{=&cNp@y{TYYEv5fyvyq.+iUysu ջwVGv6Zh**Y+xfؾ~[jj2$Ԙĥ#VhRzIw9tw(MWնmho3޺^=$}eg2&$:}b:rd"#TTd^Dy7)4aaOZ:SǏ릛ܹ}˵aC22*5|xRRJ[-E]CC{l~zD=nko5yr åھ@55ғOwU:5Fӗ_Ԯ]{):_IIE:xDޚ0!J7972OGiϞB}qNЌh=V]ǥr%*=yݵdxukkHZ]LҒ%`1v/X&qPQQ*/ /_kHhk-W+˺JvnƏҬYZ.68GMz ]ioQD4)"J-ӦO%;${nVPQY/""<$Μ=EGW8=ٚ<[:)*)1Gؼu5/L&ܯbΙ]>Azq*0[|rBfYpcm[~ Qzjo-y\zi=X͛喡kRNNd`桇rKZF]:\ƏҥwKRFFv(pY|A<8Tǎ) [G7]<|^H<oߣJ2iAގMJwUYoni+JѤ_>;Qf޺ZdZ$^7i˖Jo1]uZ&Ky8kVB vVޖJ޶讎)ӷ(;J^6,L^`v&S[n;+ X;9 t DUꫠ &y+4Է&NGL\0@ H$DA" @ H$DA" @ H$DA" @ H$ H$DA" @ H$DA" @ H$DA" @ H$DDA" @ H$Dfy 4ӥ} \N8a~޽۽kV ҥK;lڴIsQBB(}=cF$&& W&c|Hh"s555]zuuuy7۽lӾÇ5{h IDATlUUUZWmmx [zΝۡʇe@K^2dH*ꫯҔ)Sߡ}\dX$ &A z84;={."K5{lUYY :eμ{؇2}嗒?$=gz k֭9s˫3j}7s=^t}Gڻw*++տ]z饺袋d2Z=rmܸQ4k,5fZ|;7N ,P\\iO?T;wTqqbbb4m4]uU w:vN<)Iʕ+3}^7ިDEFFH~n[MM+[N999ט1c4|5FRߺud6c6i&>>w}gddnvTc#G4͟'k``]3f̰9r۷}vv ,hvaaa˗[gΜid}ꩧڝ5$$X/_ŋY::s[%YGe[nJZ ZlKii&[L_bX̙cdMLL4'|bdn޼oUUUօ ZM&S3L;>mꬿ/|޽{m{[.\h| .hSwD^z%=Ç.SBBnݪ>L7nԜ9s$__c…裏$I_8mܸQׯ 7ܠ7/~ IRll.r9RIII믕kV_~1̴itkڿnۻ=k֬$tMﯻ:[ղetwܹSsQEEBBBDgu=/Bٺ;TUU{W&Iow^=S;2HHDҊ-և-4b _jjZ-RKIIKh)*֨EP "OdLz=y<{ν,ssϜٳg+>>SlRxӦMCPPE֭qر׮]Ѹqce?KGڵ+ʕ+}!88oq%oAAA@ Y:6FO$T[Ǎ$166V,--K4+yW\iГē'O*CRSS5rJ177WIbbbCnݺʕ+,zZOF!d… 'NYYYRbE E~# 6TPj)[ܸqCٶf ٳg  y撕 QT@333SZn-[nz$ȼyϚ5KI`&&&baa!}┙ (/SLbcc#>ԙ[ȠA C1烵JkȞ={}o޼AbkNoLLL.R|p)yo߾-˗2c m{Ҹqc̔;v(}]zUNo].X@Hz͚5әΝ;JCnnnZoA}8e&"qvS"b)ʨUOh3d POg]v2o?~}ڨw59sFki!zظqch޼9|MiTnݺRj?pE|3f `޼yhР־ׯd$''KBg7Xʕ++Cy?XUf""ҍI$"2jnǏc6m7MNЩS'-eϷzKo:777X[[ɓ'F?@TTZׯWڰM6{VlmmC?,J=3.;_~JtR-lѢӧŅ ~lٲ<...z=?K12DD _HNNT^DPpvv7mڵq"_[AVZ%88 77|Ӟ;wW\)0AΝ; ֢/н{w,YR~BBBa8qnxVP_H[X2D"Ware}6ye&"bHDD%*о[g+Vͯ~femذ?k۶-`z'o ڷ9gL믿*{.0}XVZ߯x)))ڵ+4k׮aԩErXt)pU|gZzTȑ#F%? LD %"8~x_7oঞ2>PfW8pM?CzePƏHNNFϞ=s bڵ; J ;v,gO -CM-,,;M6V`ӦM gggʖѣGF>}<{9dgϞJ[J|w hVzҘ?!!!$GA^T^""*?PY(=zhM6ʶ.]/ұcG }'''վK%5$ @*Hn \]߂""Æ S988|ҴiS e˖.]h-^ׯ vvv;ȴiӤ{bee%R;wxO<kkk })t'*upSD~KKK eʔ:'|"cƌJ* 111۷+yfΜŭ[ΣSN@ׯx}hhr(˖- &H:u4iDI3c x񢈈$&&*9sFo 9xQG||/22Rq┙  3A$--M*W7Holٲ:{IRRRĬ,TkrAO EDAשSGu3$H\~-[:ɓ'|Æ +T(",ϿW.6lPJ zjqu2yd/ ,,, 7oKǍg Q 8e&"08\… {.*WݻEǽ{c\r"WWWlF;Ϙ077;;;b CDD>|xyyK.x733lj'T^ 4@=`eeecb݈)5j>}W^h׮+?^21H$""""""'!""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""*e"qVXJBjбcGԪU>V^ӦMC t;r> 8q"*VwBxx8`„ ppp0ʹ ""ӧOſ-qU̚5 hӦ ŋL2Tq)4oժU{m7##AŊqԮ][gYfa̙e˖aԨQz۶m[(4h(e9r$~gמ}Ahh(x""*nJDd~͛+""?3֭+W+өS2FFF"&&cƌ9i&o߾Ǐj#cgϞ?~>#GĎ;vZ;;vDHHBCCwFbb"ƌcǎ!66FBHHߏM65jLMMGx뭷h(e?xrp!)) ...;v,\\\@;wѣ:w+ۧСCHOOG@@lmmo`֭7n͛7 6$ 9p!::;v,իW(Nl Cllm۶ѣs6mwyH+VիPTpwwǘ1c`ooϋ>BDDE 7XZZJnnޜ9sTT*ԯ__,,,Gӕtҿiڴ5k*iJڤ$( 4SSS -[ %m@@T\Yv!&&&@~gr )W888ÇeĈRbEO\rҪU+2rH6lX[[KVbŊ@zU-#A-Z$*J<==aÆ@$222'##C $DRIzLɓtG[[[ qqqz;sL GK6mܺuKLLLd2b QQQEn|7bii)˗ n}q&"'>Ҥ_~JFvءۻwT* UV5jTܹs3""=$Pعsg ۷OHϞ=%99YDD?~, 2{l D寿'OȐ!C?\ȬY$''GDDRRR$ @ȡC4D+++~An߾- 7nHӦM޽{ʍjɭ[㺸IIIQQ1BT*TZUΞ=h" &L|QT[Ȯ]@-[V~AbxxL>]LLL6W\rEgX6̯*W,.\L2(nl/B)WVV\|Y|JpY^=X;wNɻpB ӦMŌHN\CDTBW~:`ƌpppڵkaggիQfMϏe([,VZڵkcٲex G}SSSe5S7ƍC*U`ffV|7pttTٵkWW_}U*ݻ7͛Jޢ=++ ӦMިQ`nncܹX"@n:cܹnsl٢-[ШQ#W6g̙hܸ1cƌF-*ZZZ͛WWW̛7Ozo`ʔ)xN:,DGGnݺP9x7y""҃A"Q y1B FDDaccRЮ];ܽ{WbŊܹ>1h իcÆ orssq97jx~r!e~[/)D e˖ [j .o`ƍ{YM֐6GVVV_1˦v5<|~~~Z3N<)))h߾=T*\]]qi;ϟWl:u*|}}y""҃7nll۶MkҙRRR':ԭ[-Zvڅ}ܹsp2775kȑ#%66Vg]v)_666xbtҶm[:uFZ9s*iw)666Zh!gϞU5deD:ϋV_NV^޵DD&N(͛: T/z_Բ;{ kkksprr}i3tļ<<<|:˗wĢa~m]ϨmQ/nt+sss6nX^/NNNZoܸq3""=LX_Q RzǼy#99BCC1}t̜9:lݺӧOGvv_/] ,M"HDT~W?ļytɁ9\]]qӧO"++륭 ]瘘SNyVZSFF+̙3]v򺺺իCG+͐!Cn:_ӯ[hDGG+&Ozǿrx)!3/tx\zUTi}u%0s4@jj*I&Eʷ~z… c۶mXd ,,,_ID ^ Dll,Fp!)) ...;v,\\\aaa 6 ˗gBBBBBиqctAyԩS åK޽{{011Q8p9r$v؁kbرر#b \z* 3f u# 44{n$&&QFtFEEa߾}GsN=zqqqpssCΝѾ}{e}:tmƍaoo___޽AAAسgz]ͯccc x{{k_{*TP_~ADD/// <VVV)p5kɓ/// 6L,=o=有 ~4@\]]51b888ȢEDR4lPDFF*i\DD+ AAAZO(͙3GLMMERIBH>}$==]I +W;vY+*JHժUF@*U$wy""R\9 ʕ _jFuȐA QTR^=1332yd%ѣV888H\\\m~ cƌݻw J z,Lgff͛7|gΜsss߿^RRxzz qtt -[JFFA}Ҽys JvI\]]ť݋zDDT$BAJUٳg-Z$d„ :x111=zhvRR%} ٳ$''Ǐe@fϞXYYrmΖzIŊܹsJڅ  6m 1olܸQ S#]zzJf suIjj?-d׮]Jp ˖-+t{@?.""boo/VVVѣŋBwQFRZ5y?\ȬY$''GDDRRR$ @ȡC S(YV u }^s&"ljk^!YYY6m<==Fsss$$$SV-j ǣGe_̘1Xv-666Xz5j֬QcO>Ÿq0n8TRFݺu59x7T^ ΝCllPՇ+psEŊkkk֭[sss̝;x)v؁:uUVJ>}ӧ )pFa֬Y CPP DFFb0SǀGǼ-~zT||<6lOOO,ZH .[7y:(9QbHDy2egΝ;6loʲooo ''GyT*kw͛75ww* 8}4Ǝʖ-S׷l۶My/88JObb"ѫW/-[Vc[ѪU+\pعs'?~!C}M!LDD S/P@[nUn·l///x(;;۶mkݺu}׭[W6loK*U»ヒ}+C[nptt7o\\gOSu]6Ґhйg5?>:x=x Zfff駟#)S_}ڵ ƍC֭Q|y4m)u=֩SGkj֬3}#?E=g""*9ݔMަN3#:v숽{8}41g%Jt CջUjE=<<'O"44GApp0֯_S"00HrJ$$$(3f WFF Y")) {v… tlقc-[Q_~<~k֬i̶:i$[՘(}\rt32271䜉A"ѿBz@uϻz*(Oeػw/BCCq!-[WרQZ%$$ɓ'X"ٰL4kL~9bpi֬*T~ ۖ.]9D"Wkj˗#-- ۷nj3pA>}6l@acc+W=z@XX1|p4sEFFڵk7G.]CL2%c4jغu+/^k׮!.. ,Ν;ѪU+e\|Jcnn}ڵk-PӼeʂ 6fff/\8qФIi;@Dq|ϯ0u>aܸqVB2eǒ%KժU#BBBOڵk8q2`0ʗ/)S 11ؿ?\~AObJ꜉ Q۸q8;; 9R޽gĈ@RRR؈okرCHݺu%77WڵK*Vq^666xbt5k߿_oʍ7=hQTJe=xz|$$HWuK s7z5һNba\~ĉ5effJƍZDDdΝbcc-Zٳgc 2}*;;[>cv uu }^s&"g"iTeffŋAJJ ֭ wwwf/5G!""QQQZ*Zn B q X[[յk$^t ǎ  Lr`٘>}z˔\~ 4@accy^wѣGCxxxiӦ033Cll,>ƍ㭷2h8}4Ѻuk3ǾLLDDE ^  ͛k$)DDDT0nJDD/۷#** 7oFΝ 0>I$"#߿jժpuue1H$"Udd$RRRЪU+rRn"""DDDDDDTj,1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD J9dgg#!!fffQX)DDD ^.iii|2ݻ'''4h˗יرcN:ݟѢE }P~}رc:t( ((ڵc×K.W^?tyо}{@xx8jժU)))7o6mڄdggT*jժ;bʔ)pqqaa,q'NHXZZڵk(T/ֻ5kDѡC 0&&&l3M6Err2T*:5jW^t|| .]֭[cݺu󲲲xԮ]...PT{9帞KbBwСClٲ@ծ];pVk-z ;vEEzz: ?o@g6oތO ģG`iiiоn:Gz?C æMIźKJJB&M#33666pss5233<C iؠaÆ0uT$^7>>>@T*,\P222m:u7n(۞>}*,d2nܸ͓D}ez.e7IbϞ=/_^._7]\\m۶@Q9r={?2IEdd$> 3g&L{:`ΝDJJOʔ)kk|_ǏQfM,XNp8po޴OǏGrr2+J_ulٲXbSNw}w>CV KMMŮ]}b:u* $$O>8̙3ڵâEPlY?UV? ؛Pxx77ǨQtiذ!|||g矅ǏVR~p[nݻ طoT*|||tعs'nݺ# 778rK.'Ob֭qШQ# :TLصk9wrpwwǠA(===G :w M >3ܟ'N ** ppp@5z`˯쩩8~!kRwb۶m@JJ ___Q^C<|ڵkUVܼy*T믿;w; H\\|}eggc۶m8x QjUM6>BCCgܽ{ժUCVuk׮U\]][gϞӧOQn];h֬Ye.jPS… -ԩ???ԭ[W+/:u޿Ch۶ҷJ~ (8;w`߾}jԨU۸|rmڬݐkvaN:={6V^.tҬ{aݺu8<222޽{+祡׏~ܹsL|^.]0gJݟ?#Fh311ĉr ._ 5V^3:unܸq@jժU}=ZÀ888h 7=sL_r|mpӼfUjUtRˤv eus||sssɑC*ڷo_s;|xСbbb3Z *{dddN,[LllltQo߮e-Ny nL%999;wN97]=h׽{Kg+IMM]okzXĉe߾}Z_Æ LkHߥnݺ:T*O돿{o(j7ጡ4Enn/_^Hn݊tmfQ^ ;400PMHݺu%--MoK7ݻwTPAg~-oI~^zxYǎ= ` r=yܹ|Vy~ 1H| f -8yMgA;&&&& =,'NT.M4'*Z͚5+K,5kֈrrww/ Q}ѣ,^XdРA.L"f賶bcc#CoFF%+WV_+5jH&MTsW8qE2c YpL:Uׯl[xq3 qŊ6l|2h bff&aaaFi'c$MVΝ%"" z 2eJ%RWVJL"2g7ܼ^Z~G֍fCJ #} 6LU}w>p qttRB;v̟?_>3iРДth-!&'N  _L8Q&N(YYY%$9rDIGV $8""6u$gggرL>]뺠kvג4ޏ*m7""}Qf+\~|A">s…ӢE  כ0j7oHhbb"?k,%MBBBʔܐiM}_lY?LLLB+n2ڹgdd(E@@VLiݺS”=<\rET^]m R\9"Ǐ]vǏ O?4ߧK,QzyL2rY $8qBjժݽ{wm ]Žf5Hsss9w\Ƭü Ɋ5 [n-KC/ئMTjϞ=_ɞ={{Je|:uR$(}V' ^GJŊo k@jԨХ[.Cѣ%$6kLg;wͯLaaaԩS:{me8֌3M9WR^=cٳG7m┷8$FFFJ۶moj@o IDAT۶̙3'΋/*yN>]2Dg}}:[R% 5Rf9jޛѣGwJJҷk>K5kֈ֐])N;Hhz%o¢^ $ދ{6$H|TZU=xth:{]0aBׅ~T?/ ~cZWXkQ1ѣGWk7n:t耤$899a߾}7_vv6>SY ^sKmС:߯VZҖH;vʕaffVc޼ys:TRݺu|8p`ׯd$'']+Ƭod ;v{̮]piӋ(zҁcǎիoѵkWe,o>}:{ɓ'ZhԨR'ϯ'N{=о}{:'RJ1i$l|X?u Sʕ2Dz\|8s g͙3.>߂:TyS/>ylΝ;s?~XLm蹇`Æ 8qnݺͰs k~7PV-l,>h߾=ڷo/ǎѣq9sK, tqqq8w<==ׯl5}T.C]yotox{{cժUNŋ 4>^fQxƍ L 3瞝 رC&M M6ELL &Nh:Q1 S2Z;vyO<[nRJҮ];>| 6ă믿j 6DÆ qelݺ82O7%v@ddd!!! Axx8>|hbXh2Xڌ7(ɘ좪R 5 ڵk7"ma&'TyY׏1cƠGZǐ7z ղeKt  <9R$R)ۻw/,tV2"b @6m yttR%`4iMؿͨSΟ?7nN=Ș}˻vZ,YM4 L_rex{{cǎљ9lق/RyؼyбTyF… X~=VXGaܸqh߾Q$&&T/o5rH_ǎäIеkW`jjF(ͺ/뇿ޏ57]Fٓܬ,Awffr >I|=qPZZ ,iiiشigCH.]o?۶mCDDD]tuT?1 .zӈRe/ڵk ͛UtDGG7-!RSSwzBJ*)O 9998z(={Coq%T*dee}O?tMp7kv^MLL|rXZZ"))IP/{kë77H!  -J4)q\Q!*]\WYPtTB(Bh%RHO y33g3s&$֨QüRvN?X """$e7c\\y͛g3o!+::Z/ ݳƍ/Iر# {Iڵku!e_ݻ+000[˱̆ um۶5{kvZb|JfҸ={[|ro>MvjL__{5^g/ï^j^Cݻ:t/tfIy[-yDIq/C1^z8q9rT9\b~o=.鶿Ǐ{}>~\v111_%I-Z0otɒ%9G¶oߞ!ŋ+VhΜ9~2]ãe%Իwoծ][a(000[ol 8pbcc>}f믿*)))˸$7N˗/7.9l0?gkݻwkȑnJګWѠA_^z)/ط VϞ=.ggg5*0@i&IO,._zJ񲵵;S,@IѬY^/2{Pͭb޾'h˖-%8s/Cr~뭷כX{@iogϞ(S7nܐmF1qD_{)1c/lmmuy :4k02!C!;;,Y:88$iƌܭǑ0bJ7(x 6,mڴQ= _v$)ǭ2j*}ruuՋ/X3uܹsեK=zT 6T۶mպukhҥbѼy|_Qq:t/^#Ge˖2d\]]uO:uꔚ4i})<<\o}?=z(11Q֭ӺuԷo_mٲ%ǀ5{lXUێ;j˖-ӟJm۶UxxBBB6iҤ,܍/… m, cmڴĉ5yd-[L[lQΝӧOkf3&MR֭kܸqZd>~W^Qݺuua}JNNV&Mr|%()))!)ߟ6mdODD9O>,vww7 0"##a:mZZY&$$@zjsիWgwwڕ< IƺuNBBB me,\Μ9g|^ŋ+W...ѣGk|!8p`8qB#?Ƕh󒹽L>X;ن&Nh,]4˱|:/ {6lYf˖-%|lܹV OOOcܹ9ٳF6mN۾}{… 8?,FI5khڵJNN}+U^딒kj֭v횼T^=Ӽwe.~z˪\:w:W#$@)w^ٚm۶ٻ;~veyxx(<<<ϐ /JO>D+E@I\\>S5oޜ O@ gjΝ7o$epg:xϟOc(9VX)S7o޼ I&SbbzwyGeʔg)S\]]>D5B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" rdY͙s2reUNM驧ekk)~b^~y$i֬Z,;@H|ǧ)""!r ڻ~9\sԔ)-R==0==2ܹMU+ǎ<&4Vٲن''ҥ$_Q'Oܹ_4~{9:ޗmgGki8?vڵsnj Z~ ԠlL^{q4 R+ŬZr*SVII>˘͛kU],wwGթS^ݻWSΛ%=ux.\HWwRUT;1cO췩wMoW٧jЇ4rd,Oӫn$mCCիf;?~:oiS6m֭Zz $ޗv=T6ȑt+gN[~zZYʝ;wCTr2{H4uVMKULLCԶmeQ]͛WReJLz $Y``-9;dFK/mѣ19̐#h^2o_+okbcSoo$I5j8S;ە!+[VCф aIљ3)o~ [%sO=<(}Ei:w,87S߾5 To0T=KZĤf3gղ^{A_z[O=孌 CǏ_.hٲsq#M=p]z5NgC/'?rwllm!fo'N #Gb$ݼvUaaWuƢz*h̘Z1Yfh׮smEu XꤧqW7v$|5qqz7n&ml,;vFئeYJf>jqjddisgw"!tk6Wd :xZr2 iܸ݊H2>))]&ƍ4-kx|z7a\Οa5޼߿99tVMHHwa db dh׮1ƶwjP95n\Q~~H],EzfY եKI0`ڵZ}u@${SԴŋz%'ghڱ:u޽YnK@~?5 ]O%\͙sRӦ$tFޮ˒qԿ,®j}p!!۴e4fLCuZ-۸Kj數[詧~rpz822QC'Ofŵ{4z իZn>;޽%)pIZ&Nܓ%[׵H@H|`f(4VLLT)5վyΚ7Ҵqc""tr\]Tz9n*U8]F(?Wv<԰ka۶ U^ND!@HD!@HD!@HMv4Ak9X,Q|}}ձcG 8PT֭[orttԱcP*{lRf6nԨ$I:t|M-[ڵkGyD/:8p@z$ܹSw Ν~ӯ_^>>>%vsׯ_י3gr-simܸQ_~MǧTեK%&& (=v옢UJժU+˸tsv>w%I .ԧ~*<fC[RRR̶JOOmw*7۳ncBdΜ92,!!AǏ… m۶ӦMJŋ+11Qe˖O?VZѱD/5zhM6OZb}|=Xݽ?UW_}U ȑ#Z*#@HD0xl!1;C}j͚5ڲe.\RngϞ$uE;w{ IDATڵkZhQ!1##CK,2]qjѢ]㭡ǏWtt|||4x`:C5r/4޾}{-NNNr>}H֮]\nٲE/^TŊաClW0ުV"""t!sxRR6n(Ţ]0 -ZH+WTz4q,󉊊Ғ%K{n]~]+WV۶mջwoUP!:tǏԩS:$ŋZf,(=x.\(I7FYFԩSԅ .??? 6,׀~I6lPTT<==秠|=K???5lPֲe /X7ef79znݪG̙3rwwUnloI:vhv 6Hu&I ?s]zT\۸߷ Z۷YZZ,Yu)::ZժUSծ];sY򋢢Tzu.J<ĉ I$#---ײ!x'gΜ1$vvvFzzsϙСCy̜9pvv6\t_io]?IIIn.(6l2]v:o>ٺucu:/(FSN5&OlH2vctjժ$c IF.]MLL4{9bXb1Fme"##aZZ+XojՌːd 2$ϲzVcAavk\th۶Fݭܹ,$nذ,VO ?CC`Y/40y?4 * [[[cʕٖ]iW\i3hԨ!5ƌc3HMMWfEY 1cu1$M41ƌczܢE Cѻwocƌ7|ca/2ve899 ggg3/iO?-tHcAQ떹eʔ1¬㏳~Qr|oPpt\s ҠA|~i5jHfO۱ѣGYfY=裪R$_z*T0]3PŋuaD|„ 7o^4hweڥKY{_$iǎ2mQes=guxճg $=jժiVjLo޼u !!!fG<6oެHUTI;vu>Vttt!&&&ۺ ===fq>ӱz$=cV;|ܞ>3rHn:99Aj߾}_oyx̫͛7uMѣ:uTL[TrCYSǏ7O3{&ӧOn͛7WXX~5٫i~ DcAqW sjB">3V:u..H0`´h"3$V[-_\ .֭[u…,Wr_6qq9 kk{ $ptt:< e^xeKMM-i^.; z2.敢ƍY޾H߿z-mٲE.\P[M+WmJKKSl2s4h&MAj޼N81cܕ6qq9 (|||w^;w.rRL{/]R=C:z:uꤏ>/VZjժvء^cƌ1;ׯ_^?1믿/ٮ͚5/Z1l;]t\xJΝ;s,cvmHǴ%9@Hҁr-m6-Y\tѢEҥK%Vݺu'|bdhŰ>/?@HD Զm[I҆ f̊+2u{Y* @vZ:tjׯ{ d>?/ŢP͛7OУ>]&IW^e6l(  *Hݻwkȑn^իWL{/]\qzڵk0 f[ 8PrrrR>}L///3Ld>72{_e\RRƍ˗?芲>/?pL"]3fА!CtQ5o\;w߯`%&&Q|MW"e{Y*[$iժUeoosK.:z6lm۪u֊ҥKeL=30ՀuV]~]Rz5:t/^#Ge˖2d\]]uO:uꔚ4i})<<\o@~ߊ>?p(&NhH2$iiiǙ3gy0Xxq>zh0 Hmk׮ΐd[7///C1dȐ>>z7u)))Zvnݪk׮KSϞ=+%ɓ'j*?~\666W>}&IڳgΝ+[[[+<ϊ>_?7B"D5B" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $iZ6!<$f<肂W!kooEO[KYԬ/~L۶ݜME $/_^M4Y,TL?t66نOrwwWO* @}\rrttTpplmmciСzWTnl25h@={T핑)Sh׮]ZrƎ| x矕X~ҥ M uy͚5KԣG 6L}9/ggg=jժvڥoߠA}W?4g}W;5lPsQhh|lm:܏^{-;}7Nn oo'IĉMԺ&LӠAtBflJnK>>5yrS8Skxx?\[\ԠA>ڵz)SV-g Xjaժ1cvj2 C_|ѶHNBvh-:|Y2Y鈦Mk-VMO/֭ݳ< [;F3g'qcf=R 7~#m\NyZ5vl#M~TCnaHW 2dO?=ÕnEپͺ9:r,:0̙ͬg7}Y+լ\ @Ӻukݻ7NÆ s:e˖Y"""$IǏK/t<囷 2D{ZM6j߾t!IRPPտ͛7O'OTLL.]#G!CWrrj*iʔ)֮][V-̺=:q℞~i͚5K#FСC4zh?^Ν;gcZlYJÆ nܸa^4i$ꫪ]ZjvZ~&L:Kϙ~q U*=OTא!1ɓjNz1O-]zVc9jkx{;F˖ٳ:u*N񩊌ߨD}Q@!!H0WTfnN _GVuQ.մjUxoݺmӧ%|U]9*V-g^׮%K>MkmͫϞϵΝ4]sro5r?t_J22 o۫lu…w5IҪUzᅺ裃JK3pib]yx)>-7̙+88RjiS $OgϞنƍĉf@%KcFg3H޽{u56l+WQ_}aÆ^ߺuUV:t^{5I7>^jM6ј[g|^n]Ν=թ-e2Tj[[M#GbtTik#}em=g^_o!YׯQRux|| ~_}Bj9[jذ{jv[EOǙz_z"ѭk޼S7nj߾h]d95ťʕ$.SmiDAi+32 m~Ej9{:n7Pꤥƍ>Vf.E QIIIنԫjٲeOHHsOy{{gϞٳ*V$(_43|m߾=[.vvvZxvޭ}ĉzwm9u$'[V))JK3_.YVAMBBܤI^&;+ #_gdz}j]O<-ef:)))=W>֢)SZhS_X3씜))Y:3ɫF\I֊Ϻu۷5wĕK\EGrھ9tZy~ {q۱%]B}O0M9w\ 4HgVnݴ~zj߾}:t萪VS[nZn~bm'kZMFIl )!!M>cm!*R;w^ќ9(2N֟@OI׬YmͿ'Nܣ)SZhݺJKPٲvS^F R۶5cF=lIѻ;4U``M9:=vW8jӧl'ԯ_MUɓ*?7s~{Z/t*{{-\x:K,wMk}|O667{X_yNjsvRll""T>|?`!@HL?xϩIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Malmoe_page_1.png000066400000000000000000001621431420322575300271770ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|SO6ݓtSJZlT*:W."82QAƕP/[F{ti#!mi)y^^4y<|ϳD ""=F$%y0#'fD""""""bHDDDDDD A"1H$""""""DDDDDD LČY@DtkYj|I 2227`Ϟ==v,ӧo<!ܵ^+-GTT)lIEm`B瞋4Vŋe&}7}Z7!-ZˇaHY#G '?. !a7έk vK^1H$""rrrB]]y5L>w<ȱxyyB8{,{{*!7bdD"B.T*5~b'&F&Yr9SMYo-"9uӬBaa!,,,_8}4n6~a\z Xf D"R)bcc1x`VVV:5۱cƍ_~;vЛ"/V+ض:aqغuA>ǧĉXv <=4tiFv>GW uŒG#kp̞=@k;TE{p4l<!!zĉ"Z|ndO>Z;W_ɓSq49cƸ 9~v9a͚Q8qb*=җPWo c7|x4DWȑ{y/nOD pwcСؽ{ڷ~ɓ''İaÐcǎ]3 ;wā7x ,O<H!CҲGG,yٲe}aٲezӾX[PSDnn |0 2|E`ł BVcqBF}oݚJ>]?OhXIHKƉXo٘18vy!_t(ƌq%'WǡOvVbsV>8O> ̟ٳO#!+V 0Ngeˆ"""?~b޼t兡|0TCbѢX.gZ pp0Gx)[iӼ1rd^nAnJDt 9r$JJZ >,= ߿?~ivm|2`ܹHMMC= 6 00R6mBRRQQQSrr2QXXdL4di;bI"k X  𹨨R?P' YN]=ˈɓ=S\(/o@F2CidgנVdgݛ-tݼ9/+SHJ|]8{fcAX*jMWӜ69 ޷/>++ t/?^(''e:hjR͇*eV169W""rs8(js>nn`1H$"[Azz:/^,miiG}֭Ǒ0T*̜93f>؈~.\x;w;wÇo>466jMHҾӅkj-CII.]j[TT(FTff">:+1RRhZv]w Vz=}7 Nad>glI-L A8cUB4͘P>(*˦u16 ZDiiU*5F^,nQnJDt *//Ǿ};wSO=3f  hllRm۶ Νr!<<NNNX~=q}_';voWZڀ}GA@K.jelV_kk3ill4T*hjjyӿE}}N*=x ƹT"Onömw஻ܑS:}]^#eӺ׎Ts" [4aʖ3g"9YAPP~߿ؾ};/_cǎi~hZ~j>}iD横bfӧ o}tJؾ=rywlCpj%f'u;W_>46:U6]_""$@.S3)HTT~zHRD"̝;v킹9 ,, ךTR̙3`qҥ:j/[Ņ ()ǂY& G|0qqʪ%a07C$O33DF Ç>F[[3D"hRX[aΜb1-/[ef͚%Kسgd2r9pBۇGܹs̄71m4T*|Xd }QUrĉ?>>/2\]]K/BPapȽP*U2DX:f}SÐj̜NNR|AϫTjeZuZ%HI2Ӧyȑ#?_X~NW۷c8W|X<̩^CgʦKD$DD.KKK 6 NNN|2 u>3|pϟBѲ0ѿ\rz%J1aٳ6ڈ$^YVV;@*#1Rzh؇>b ꄆbceFo';;s$%U&++ *QY <=qlI)_Cٲ%"DDD7$$vL'""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD zم  DDt˳tX "[HV DDDDDD)1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $ ά;U(T(+k0i}X@*C.W`gg[[3b'*QYKpwtmqp0u˸N%$QsJzo Yͭ *>ka!ffW+*k8:Jae%efZ jD"%On""틋ᥗΘ4͍aĈ> |uWs,Nڿ?Vp~L/7 ot|={&_?^EEZw $āteDEvh~l1z ~~k#""޷l SQ ߳O {f -?S >3FX//k8ADDtcwS꽕Uk͡C8uB$+X4LxM~9$?h?,_>˗p^A"QԷ%&Nt䓸nk!LaZsJ)M5O&S 7J[Ri`J4@,mj Q!TjdfQXX[MtMERJq:"o=.F:[ŋtjkɩAYVVZzWUՈZTThG߾pqԹЙ[PPZT=u.dNÇ;ʕr@qq=UF-ґ2숼Z֡I}-۝ųIj7>>67t .=YF (-mpuׁ>$"))U⋫8Tk?Xɓ=kgSQ)8x0<ۛG|kW0rɒP#!+V 9 KAx饠nwINI8sY[GgAjY7B'ݻ0uœL6oNP(Nܹ齧B¾}Rڛ]`XW/Һ޿DDCx8wDgJxJCcH^+*3f?g֙OÌYn:EE!6VZ%bbdx啳Qwj'qdM6i4L~ 112̙0tP+VĴyWW󑈌, ,[G#!WEEux8$'xL x-g:[ |+%K.aǎ;ۜҥ2,X%hIb 持r45Q_߄ 㣏F=Lja7i¶miع3Sw֨SJ=USo_޽d KᩧNQjlݚ_ړuivv46k•+e|j5P^ހW^9￿E{ RRZnx0rdZ 58yHh <iӼMR,5Gpp0G~~-+Z ӔBWn@ph4=x --FΜi榿ewgرBH$"L%< ʕ1Brr,,$~/: N?Kf-u,us9>hF ӫĝ.k'0i ]w7}*=}y'Tgә3%?? *%%8{I[̝[bdNl112;錿9o}UUUbhl2W44wYYt~Nh ,1$S#" <|޻?(DDDn3`{].˕+tDc՚--v LvԱcpv#\>/n>X-Սƚ5R=懯*UZ]w{۵נSet5R˗[aaˈ.С|ALoM&""xx㍐6o^y%X<1Q]Y(,<61Ay!Z7m˫EP=l{lǨ;UIIUji1i&ƍs gS;7vBbEL&  aP=>6'h5~zwlW(ٺ nxq6X{{s,Z4HU] _X>I3 ٿ>xPv1O  58vsO? ۙ1gN@A[7cF?hCf/k甭zm45De0Ќ]v־nMuDDtHowH3iFFޝ)ѢmqI7>yYfw+ZW>zgP|i,X0  !r>][.6VCiffx4xܿ)nF׸SE.`ٲ+8{t S(ujK_6hPˍTiiJKnDP2ޕ ӺeuB??9zkmT*T`Lc0~eƏw5IvnV>+!]u(rhݒx =qGׂĒiiUxFmz:v?''b>`3P*5c""r T!C0b3ƎuС=6~{-@g4l=ſ (YB, - pq] 75#CZZ5k[3sv[\\|J+sݶsݸ޿DDt]km=.K.WB.pҾVc0|3v예O?-  .]*åKeZb4/BIhĉn=ZX* [Wsw7nmD [czBe7&6&k5Oa CZ*3.\w $Ce[Ʈ\nF66fzֺ;xkM&"$HoՕ߮S]Q޿o"3S?(ĉEZ`Ç  di ATT)QVր/K nzFo$쮧ZBNWWWK8~~kA6T7fƵ44z\uZz۵z_:C[Qmu}TFuo}-15DD wۏ{og9s0gNjkrϗjfϯ{]kcyBre _1uFw;[ۖ|7{Kzro_D3|ٲ7 ٱ#CXG)pSfRg$iϋ/a޼MD"{c =~`g t&ZP(Dkk3F>`x[a,?BP>jfݿ3@ӭ/ॗp}^ZR1}V>Yg`0TTL ])̙Wjj5 fӛܝ X+LTZ "0{,_>ׯ'lPkȨQ.ؼyVwۛ܉n6"9eeqh!d(+k 4_G&SdeQPP:Ki ook}֒7r8Qjd F`$^_s)Gnn-,-%ƝwwDjjR㧟Y,ta{`3 bZ;<ЅsѢ 8qB3hժ.n?LUw/jŋhF޵Μ)Add1k 5~^ʹ-rߟ*+`oo??[L졵\ȭ^DD Bbf;'jFDDDD:#9 K\Һf(OOD[[3͈A"` CII=jjʒ#9J̠߲vܤI:Q4"D5c j\YCkWp@.> $"""8&:sDjMogg__XYIRʖME"୷`,?fD"?I_֚5w{0ӈ$.?#/yyUQ __튱c]\<$Q/ʼnkA"1H$""""""DDDDDD $D""""""bHDDDDDD ̺#Ѵjde;ͰaΨQ"% AAf)+KJcѣ]!=]P(T8}vv5ϻR..DDD /[S;ڵc)ǿŋ`,?'BR#4ԉAb\_eˆ^J,^|Sx0Abw]o)~"""bѣ] jdP_2!1gN6>>6̔D:h$Tj̛c]!=,.N2ıG')pG0pl ~j%R1BCw<ؑu׶hee/ॗ&بBii1{fu_kk3XPwҶ[1"""45P:MCCI]_tjkPu_WP*J6Xyt4O:Zs}JcT*k!)Xdck0Tt; *䝡}(Rب2t\5U:fwKDDD7z`112|yO?nkIL ~W+ )ЧLœ9lap~z|m4ڕzX`Pg,X0VZ9R{0~T*`ʒc;d޽YHNBc v8/>I7}l8qP|ճo5Dܻ7GWD,Zt[IHM).GUU#0dcit,:7c>1VɓE<}4B\ZZ5~1 NR;;sv[̛__@rkW&Row EII=n ,Yr vXp1nْ ʰh`e'Oa׮L\T&ۛo!7ŋeؼ9ii;2.VX>/]**Emm`APgϖ`t\Z LD~l1k}_1:ww\\s%ؼ9P8 ֩Wr7&?SŜ96ͫKk^vwSԘ?? !!x ?|E.^,GQQ-p L*_Xd2tZAuqB)><6xAҥ2|YE1CpϞ,|YT*`@ 숸 lߞ?(c ː]ߏFDD.ݭ0z +qh.^,×_TXXRVcݺDR33M DZس' ff"8J lܘgKnX[k46!J~S6&5J!7j|/|*8`Hk!+WʱuB@ܙh$&V"*xHdg@"aĈ>:ǧT1` sFrr%QQѯ[Bpt11~+-Q0 0xpK+CTTi]#"%_eꜙÇWc߾ldeɱq8բAHbHc'' DF듰ys 4 NNرB\"î] 5*o> k^D"BHHKWOb!3g;S9HLOƶmƄ nȐ#./'6m/ux(/ovHKBzz5-  &NtT=QRSqL jjl`xW=[:,_Zlْ{źuc W.W"""cUhDDaժ8|:ۭ^@;l0Nh*Ş=Ypuė_ .<o / tdٳ'cx{[&tKY_F-}׿*~! ;vd`ٲ.oHsW}!CZg1>$NNa3F3яRƲeqP>><_|1bE4N.ƤIX|'%UbH>@j!˕ʒ;hZ.v#ꪪF•+刎at G9aÜcs߾l|m z( epyDEb6[^kkRUkW&Ξ- :wws?,C0sf?Dm֬?g`͚xlݪ9?0 ׿#:u02X;Ze5>.+W=x #GQQ~! _=ÆiwdfQ[yEDDD7^9&$0}D"V~F(%`i)eapwٳ%ɩ1jǻiMcn.{ +U~:RjZpj stA,a۶4G٦j7}?9snT;SIߐ7c5o f(!@33^{m MfsmG#n0m7nn:֬ P[+/oΝpp⫯Fkug7ĉ}@ȯnN3y*jlؐ ++ ֮#e}tj>4fAH}>6:6U55Ju/|X{v5t3yg}T םJOOkTj4j5! kqn*_C'X}O*rۛoqq=9+7FSHDX t4F[7^Я:/)/o@mvNNmːWNm,qp>ǀv1n G{g P / >""4ETT y*j&XT(T8wfn6WY٨dgQUՈ1c\Zۻ?z"cmnn[rskQUՈѣ]}[hu߽~BQRR3gJ[ZdfʑZ%Uټ3ž[x cU]ٿ}Zb@$&Vb1j ƌqIZc6;ZeOձ&UFն+w+}DDD qS(Taa!XY :^NPUhfrҲ)lmʹn;XcPg3 {d?\jڕ 77KX1#FtY!7cƸ~JJbVE݇V>YU6$ġE(X h&֡o_+Z~ ))Upwjulkt9ll̴fOm-# V|45agg`{ٳѰ3&Ilޙb߭A{J5ZFeٓC_CqP>Vҥa2ūk^DW+R ܅#ݽAb`oo;;s"l0$i ] [״lbLaa8uvSnmuv/U_~KX"RYqQ&P(TʒO yiY.W"2"0h |[ǐT9LTj%75) TFNEUU(/o;#C#]CS~ 6 sj:TVVߩ3ž[^^Vm{f".flޓOǓOGUU#Ν+O?#.~$Seg9{δ$%&ѿ5*+NL]3P(o cceG2ٵ+ShkvR9/kQ<j͌7v@II=Fv'ԙm:;ի:7?6%cժ86hVI^Kv,:>6k lQ_߄b駱ض-]xy\:*aC͵Z hnּImHyցŮ]Y6&i JkMT//%,&5 0Wh&'WR ww|ffO8y^j<7ő#ظ1Ǐ#&MMj8@,u| ˞c77,744!% 6.:Jc pX0n^7<⋝;3Y,|6֭Px`ӫoܹ={||l#ömiPp8:lc,9RxoXYԩ"ٓXyBMG5O}{:-0fNZQQ FvŹs%xճ d2,W#,IXeۓWJF3+n_ ’%teb tDYY=v¥Ke1yF3- rDBB^y >..p ۶M:],,hlTc+P(T8q[Ru(Ŕ)^k⋁ptrlۦwÄ**HIB`=RSPnD>{dax -?QV IDAT'رB;irpctdfʵ+QRR;4bZ@=^dlw!()ɓEZyji)og+Sza׮,$&V-[6gΔrix ܩ3վ+ g#-)ز%E(Y0o^P3gCTT)N,ºu:A܂W/{o!#H֔7 HMBbb%ȑ.:]3{)$$TС{`eeX4]BC fGw%P_߄`{ ,ݦ*#Cuu#|}mqnβ.!3SLWWKٷv,:~Wde-CYY1tswkj8{5 ǻlINHkHwJƅ eHMhЄ;3I~=O$s=9Μ=K A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""2 \R,^|44OŸ ÿƄ+h3DDDDD |RYiDnne@i$&:TrMdMFFƏpƄ:Ġ[x$"""""AbР.ڛFDDDDDN\CDDDDDD [ E!d1tԘ>@5~`4ZQ]m^oA]8ٸ~xZCYRQ_oƇڵϯDG[xxc'4NÖ-Wxx jӳ0n\-N0 ֮-īDQ7 O<'h󹨫3a, }epTΤIý Yaժ(,l$%c̘t<@$%1Hl}CxcV?9re>s)fގ}g4/kW9>t yNDDDD Yzde⮻w VYS%KNlxc<9YYۖp?Vٜ8FLErr$_B~~=v(CwMNMJ!!LE||rsPQa?!66 ss>@^ΎA=VCAA&NlBzzrs+ppp5n=jjL1"7Gj,\xEE:c|xc'VB"""""Gi%.u=-))X7X{V:Gm  s1qb;uСɸ,̝6c߾J|i\sMuYsȡ/0c؆k逇yyuX*ӦuD>v\bcCb@Y`=V{ 93ahF{DN5l.:[6j8t ;}W^ϯ%S;:](-{|yQZ̘ *22+\"{Z2@ ƱKL ".. ٽz#uGvQV>"""""K.q.{`=s6y2 dPvH l3|YY!̜mC&kxmKMرvzNDd岔H5_ A"5cߪXXOr*p挭a9299Q׷ d 0XԬj/-*=CDDDDD|52CNg}\UD&##vu*+h&aIX1$"""" $0ֿhF oA@BBNgqZQ8V""""":7ؓxA[ǎ1XbibcP^nP'Ķ/Ae$=eeLEԩ:zSY'$D!8V""""":78<ѯ(]*<½nüy^W&3c۶noh0cR@αmc%"""""q}oyV98;ˑxQi,[9ͤIXA"y3vݥrÇ?E ,,SwXޥKFNiT/ qKO73N+'<=gO%?a˖R  8sWΝ뇣GH1a+qqaͭTOp8V"""""jyI}(s,{Ω}d׮]X,h4}qqq6lnvUZZ˗(++Cvv6믿!!MRYYGz rJӈGvv6n&\Ɗ+ph41~;ñsNHOOSvٳgwfys!:u ׯjkkd۷555߿?M.]ޗtWM&:9դI`2|rlذh׮n6![nŗ_~'@;w#GTK`pl6 Oݻi~AMСCW^6rK{l2@$$$?./lҤ})yܽ{wi&ѳgOi6LFe#P :T, PfQSS#f͚pylqnr(tN7󡡡aYs_| """IMMk׮ z>z>$`֭j#`ٲe^%RRRDbb={Xtxoö&I\{G}T̟?_L6M}SNa^xAcƌj#bٳqW8o=Z̝;WKb֬Y"<<\ڵkҾ3+m۪jkkv7׹裏WuU\%>}F##<",X n6BL||(** j>R$^.\6M7>\8,/,,Taٟgꫯ wU~g7|ڶm+^ua27JO>^? @:u}#Daabuxƌ_SS^re`ʔ)x^|_fvJ+4\-fff]v9l_^^6K/4hu#fs;mj*u]w唆/牫,z}紝˩ܝ>}a;C.oS\f 犒z\s ^e͑_u`ƌN=?h4A1HW/sHIIqj)4|577WhZ@,\mʶ'Ovx]vj֭[ 4}OfĪU-Z$,ݻW\{k:6<^v/]ng0D6m1gΜ&ՕT@|O>]$&&;>F~ۤr}WBwC샵z(hu}ޘP?W]u @ b:uٳݦoGAQ7)F;vzO> ^sғ|u׹\xb5Z \ٽ{mqquﰬ멧Ro}OʰЈ/|MTVV'Nw,Z7tuN8J0l2@>}Կ]dee9fr&QߡCdddwP\\Ν;c̙1cfǏGEEC>}ׯs=aXIIIM΃t댓Nom۶?8K\χN:%TI?66={tz͑_q=zZg_AF Ze!CmXݻwlڴ %K`ɒ%^թS':uEу>oEmm-z-[ѣq7nk&|ce<^nV+pUWy܇ra FV=.#ؾ};ok.hK!""bxP:FаkjsڴizccǎuJsȑ. 4}wdd$lڴ ˖-_|F[֭Ç~k7Xy[Ϟ==>;Xm1"}V+q7ވK~bAhh(.u_UY=XB}soS)WRN,^B$'';txZ޵kW{] \ٱcV+ZCl2M͕_u@曰X,•W^|oBMwQuBLZ.]\g߾}tN AzIFmڴ &L34>@}qqqcǎرcw^ o@877z)24 IDAT{@ÈPWǎe;mPnEEE5\lcΜ9Comm: m^$>| .<ÈhR~ƺ,>6ns3sE/99EEExgt`}l؞={`9s|1H7H|  Ỏ'NDHHc9lڴ ӦM\sCcߗ{ߔV8I,>3Le6L#9r^~emV+^z%̝;0w\C}}'hr~R]No>5rw  \9}4Gq&??ӦMCYYl2سg|޼y[+`qf 4=՟b\r%KC˓nQ~T6@ٛ={6᭷¶mp#22۷oW5jӬ|&4}СCѦMTTT?v܉ѣGCowyM{o8{ Wƥ^ZYFm }x'2֭?rssѭ[7cǎXjbccu6mڄwywy'4O:o<,YOFh+qu(=B7> ڶmݻwcҥ©S<̯={h4G2d>#SNE\\oߎu=|J=j_DDt"K/İaük4Edd VZv޽{ bNzPƊ9s戺:mDhh ֬YIߛ"5;w:,ۺutڗ3~x/`#Gİa\O6mŋ\OVƍ\R=?_~8v옸rrr\;w=zpJܸq"##C_~eP?{i"/(~BWш3g}Owub8@|.q׻\zj@ NfJmm߿rӧزe4h ~m+^{5@̚5K~9[HH5kgOxo""F#:ݻwixӱrJEP__O>D}DBΝqמd˱w^ ==cƌ1c\b6b ޽:ݺu5\;WLDDt.1H$ X0i$$''\[n%KpUWo=ooQPPE+D"WZZ4~oi/ӦM 1|}{t0yljk. ر#裏",,L8ѣ3"`$::{f1H$"W~m\}(,,tychh(~i+eVAAղ$+&MpBl߾HKKC=лwoz:guu5 )SЉ$*Y@DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"]|BV⥗x\Gӣбc tǘ1i 0oɊO>9[KQ^nix衞DDDDD /NuufVz]o>:/m䓻ǰR1H$9ٱNt9Sӧ!PZǟ /^{D vkY$L{vx}8xF ǻ8otBljk{C@A1`'$$RSFbذ'j}ڮq΂]8ܴt`%?QB:a6XzEE:pC' HMd!1H$_:TۧNVӭ[1H$ꐗWuXcf3(H&N:-x9stf \~m~vr߳f11nx3[yyX;tukAO9\z)p@\쨪 pCH~zS,%?:72o`${^N^k`HXZL~ r-U/7 GX:ط/p@oZ2JKeسG]v60un wCSG""_ j55Bl+ Ă-g|b!ڴgsBi7me'%E/psr\o&ēOϯ[Bv`z2yXPDDG {Ӻ~VYY4y/e!!BJ= mیۼByѸާF#=V,igg o#GWn~4VYK~o{ض}+- B q啮;9qB۵"7787͙_J0A")v_/DCCp)#Q0H<b$ۗĉBynql SAi[\7V!--OM̟/̙B$$׵Z!q|@!? Krݻ\y;v#/S{+_ii9s~n` iXᾱe_O<~ |o ͟/o_!yyyR(G%ذo|$_{/Č`O?ٶlۅEnlgli%ck4ɏ "_ӗ qpٳ{?l1!!B ` T{O_gO檗)}V۟/ _JΖȀq\:7}=$2Hٞ=B96tO⫯m Q{}[e~ζŶ((pAeѾm /yyA!`ѻ\ֳǏ;./+ K/?8p~yުUw9jLB>5 Þhk<|pAylM\v͝^+}AO@^sv\3gZlgrhb\3OPR"w<_r/ 1uW|Bƍ;P7`^F#CcmS$3@xK8nWYXY}?DD $6B~X֨Q @smUj/`l h2[u2qYx7؂_~qmaxkzY.[f;fw'W\!<{uo|׵u^H>ף=0m|%H1yqc axe]׮߇r=6l[sѮ́懿h0Ħ~=z肾}mv\>jT˝K{])*r$3{/}?DD~޽MÇ3v$8wۀ9GqzBVH%*L 'p+$믶וW~UNX+Wo С\u۟Q*K^{zɶIXL r#زq@>R_q-~33o?ܭ9P]|_DFtz9z?R gQvv-rC#9S֭r`w"q:U#W3v0@'ltl\={`[d];i=jk(|ydQ f'M<ê|tw(+D 19rO *Li|Ps޸9l9㲜3۸*UΒ \~[s9^zmfZ4h_ t(hρ""Uxl  )X=#;w^3V <}rJ{1H3x]y[\wp΍E!ojkfmy^Wy?%H!"bH3 d`L(WF{[iABޖ+C[3mgkyVYdr|},/?6ȡyG/2꫶Edϛ{Mݿ_N bde8{-H3F7N޽[î]2Pt~\!"͝h|c6VsϞ9={c9v =ί@9^ -U/[CSo:|nM$y꣏d`ޤˠ`Jxlb˕i;xh?v,s~ma=((fu{ʇ/Z$@'VE]r_ ~y*#*ϝ'l*AM2`޴IӻPR"Q^~·N9c~ [#_ܣ={:fyh9@>X/Msz|& 'X)_PGg͙3A<^]w˕[4@Uo'scbh7vgQj 7W^5l/۶n۷'QLx|o5q@T諯X{:sۤ5D>4woc {$ॗ\Ӿ6fvcv~~r*ϱ$sTV"raǎ3$lp9swힷm:}yOׯz4]wagj^e}Va;xmu`kZׇ7VUI6f`h̾'o{ ʿ~IQQ gdlY|c X]͝͝~s8\Q!w~e!(t,Zdݘxɏ@`siRo:PVfu|""J<зq%T={{9w;^y2Xdؖ|Um_z|gW_-k2@ ƶf曝g۹6=Ύ=nloEPd5;[X3f8ﳡAXS#g6{'R{FN'yM/J4PJ!CӧI3Z"}<:f{,k-N IDATG~|ӟd9S;{s:> ¾h~{lkmE&X7ib%%;^{;@Dޓx>(( co{(~Y~lw*.-Cw,Z^4RR7[}fWn X\^\2D /G9}\o;sGz1vsFHKs^bl!,}bR!]wBlz7Mۅ q=BtݰAj䓦/P=\̙B_WziEG a4:/v6m?g[g%KJN{?6ٶ|- sO!{NJNbr!ʄM/"2y7$N 9l ȗܿ߶NquzagKKBu֭ 9Ky ƾ=\?՟l?M#Ĺ/Z ^%ZW1+Kr5ç=UOۻW^LOICя)gŬVyF9mg?ZyΝmr;i޶L'eoAr {9EE]x(M1}C;wC=ǭ;Z*5kdG=eѣ}y-{9Z9zhFBl UJg{n\isQ6XEYKKoiI嶞z!d@fDtQcHNUKm{i^6-"ѹa990뮓ct:M?LjZ)N\Ct>+(?}w!'2jbM<2q 1H$VGyEt|=Qkp@d+d r(r6܍ep׿2ZnJt>SI8ho5Kx-^t*<'$!2RN3۲^H4S>Q2c _~Y^f9yǘ1G\̟cDDD'!""""""I$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD et:h4BѠSNh4tCEEL&"""о}{g"44:tI""hc^ʈ3p\E6 k] 3 VVS>V&Uyf2x59bZ[}h9s\oPXX8 ~f^xZw )PR"Z!!lZ  tHN@t],eeeCbb"RSSY9gԊ@]]h4DddϽk!##EODD  PQa"ል -0l0""B VL#sN5FttEccc,>>DDtA5-Bg  2RHh4*P[ˡDʾ,BB.IlJ<,,Zt !PWWNٌPDDD ..Ωe0`6a6lB}}=4M@=zGHHFzISエX,`aaa.{oͳl6#$$jq7włZzRY[[zM6NeU[[ V(z=v^:L&h45ZV+t: &&D٬q*`7M' f{|{Ub8wHH|0 5*k0`209 ̲WSժՊ6~DGG;4qYejXU`0еkWNvvSíeeeNTVV"**  y|RP鼾VTT8CMM jjjl5-..vxP\\xˑf<{,Ѷm[444ܩ.!--VUݺuCii)|*@#䠠za۪*$''#11EEENUUUVg wV,*J0vbϜ9Պ"""FQZ[RR!耘hZ&""m/7FOVqɄR˕_[9PTTՊhDEEd2AZ 8Oij)966 A}}zeYYY~ *!Hf5/F+**PSSFpfuu5JJJZ111`@}}=, [Q\\J/V^GCCeaee%Ξ= wدpdeeA'+z!ۘDTT^WٌBWX,hDEEL峰zaaaHLLT^mmz$22#/PUUTPXX$DFFd2Veeejoi\\bbb`ZQUUшTWW;l~^1Hl""pqQcڢKҶT\\ Պpdff:X,gϞEll:'..& & QQQHIIijTXXڵk8iOF]]y_QS<ʰÌ /ZՊBuH\]]Cϋ?yMSL#55աpǭPO;NeMM ]BHMMuطbQdff:,7(((dBII Ƶ(Vauu5JKKze2PVV^ph֢F555HHH7ƾjhDDD=_RGz=f3bbbжm&}6555jcǎ۶m[`0F gdR^w9Kj\\ !@ee%Қ ))2 ˎ;:|DEE*WuIX,t:A?CDػ8;ZznfQE!F1 qy3tM5WW+֭s9s/ GNޑNٳ ?p^v]an4yahv}p\zM 7Yݮ'ZDΓQZ0Hw eoLuuuY>w\VC8X $YSUUUQf4{Uv{jQ\ `izT5 Zףk4f̘H˓.aƧ5s)DUWW'{nwBv+j\# H utgO@!æKe_Ҕ9|O59Aa,fݘkjjR|d`6zRÙ'pe6yDNq7Uq3&нT wMRSSclP6_Yށ@ iTYY'܃knE3/SN,BIu?yM.Pz9IwwXabn*ԸGftm|7|*f鉟$ pm@Ch3y/UМ**v3 52X /ʹd*_} s{2}rn'LQsǝfy#7HVVVKhT*//WeeʊHAbyyy/tl 4JE|# HDڂ2NMUU.0`f54)5o<p k`5/52Go׍Ls:"g6(mN.4FZ-FXVVz۷OhԚ+$0 1js-|3Rs(diuA"狨-(ÐvJᥩ="&[|:&hr:Em?dp8tbw#FI?yr \~R^ "|>51P{{:::4~&64f!|(DiuA"(ZhZLIIB<O^3 IB>#fII5y22%按@H$iߙ逋i ޺|kPɜ( ݫCαp8lm;RB.\PˡCNL\3 Cjm=Ə/b|#20^^נinn֎;R әlLc({%h(zz9\uA"pGI3ZZ ?pZ vJb1O1 EQܹs7BR5NGQ577[_׭PyI'twww''^`)~ݻWRsy!wttXC%[߱#S|Ŭ|ݿޙ:>ɧBXmgggҠȜ2í\|WdNx,0)X,9B֡V555i<0NDo(̦OQ 1D Ў;2n7vXf UVVRb1X7*sxS꾾>utt Xw*XOc^nz{{N0멪מ={եRE"|jjj͓Lg[t;yY]]WP]]ZZZ $#˥`0(g-GWcc<~l6<5{`[rb1|>|>yޤ\.jjjڪ>wNq(ɧBԯXoaر|D".hUTT$<7{ק&kvP(dYRR'Y/`Σb02:DQC9/DaR$bpUVVɓ'k MݪXNƍInȺt:5i$( jph„ R0{iii{n -f-v^$!NQf~s֭D"T 9:T7O2l,immU{{t!XOjX,>b1dL }EEEVO{{{CN˳~8a68hSA"BA" 1Q86MvaFv% h1q c~A" @ H$DA" @ H$,za(6r:mr:ن֖'O,ݮ۷K&M$EpXL>O.+ ڵk$iʔ)r8dlZZZ4fUWW< ]Vޮ.>}aܹӺ5V ߯6B!l6M6MA (* H:;C bnI^oJd?Zb à rFnݻWƍ˻/P(X,&Q%(+% ]Vg^OͧOM+ܹӺ^#:@ܻ7TRbS$b(3Q}}YEǓ)}FUVV&c /Pv{VZǏ.dal4iJKKsyA"lK!IRI]cǺv}WOOX!E"::Bq5=-%Lh4JHD Wii;02H .+fy<y<2l~DpZJJTQQp8ވ~UKKd~>H$b0j HeOMFD'm|>DdvUYYoz{{Dt:vUQQ{aI%I@@===D"r8r\*@ >k"RB`'DS4-XXb~Y`PpXv]%%%=Bs4UOOѨz: *( O6-@ ^al6H5L5dUVVbsBUnAy^UFd+۴Y_u"  t:z^[=?Xr9cyDח1u2Ft:UQQ1t:UVV RDѨ!Ö2@Lrk4zX,$|ޮI&v'm@$T`߾}7n\"c%I3g޽{ٙoghٳjѡC9z~D͚rt! [ssIR3g̘1 ڽ{wlkkӘ1cT[[Sl9wuui߾} %á:y^Nh9͘1#fϞ= N>O$544L~nooWggQ[ IDAT ZV>>vޝ0]M׈ldh4j)SR{U___N%*(sΙLarjƌjnnV MggjkkU]]Mgg4ydS4cǺ$24*vMjw^y^y<vYOwޭS&twܩX,&.+ۭP(d=Eݳg ðHՀTyy˳lB!رj@ XL=== qKʻX2:Z$Ѯ]^7*WPH֓\S]]]ڳg$p\.K`ݵk&MdVpXn;mY*wNo SKKKֽ`VhN̑,02mzUVpX---bx<*++S8S$QOOb&MuXkD!vr ӓ|FVQm3)--w|ytuuv<\ΏbK>=fkĆ؃h{ծ] 5f*]XLVkEE٩P($ϧA(UooP Ə?YYY)˥6k8P|ݻr4iҤۢѨZZZכdܸq3fLֿajiiQ4UII&N8رccZVwwtL2e@yh +H̵ѨXnM4i@BjnnV8֞={4}tl6UTTBpXpXeee7n\k„ ®.ݻ7ɟ!g~?eh_˦Q_2N0abve MIJhQz^7ifkWYY\SS;w/eQc330 BrYwy 2eʀ{IYYv!l2ܶmѨ~?A"!dNoӮ]~uud4fKoj0i$'p8T__/ݞq7US\`0(ݮɓ'' ?;v4wJKKfi̘197S]]]pu\4H !phĉ =UUU9ğKz32 .fYUWW'v}@>$B^# Vsp80d0 ryW Vv{[/2hWUWW'eeeְm۝PvQeGX,qhh2U7U#TZZ22I|\bVð&d+&Hl@ iP^YY'&WU:f6|=Oʠ }!u̘1)}&kЧz}߸6'HOCUVn[K6KQ4A8Ґ˥C=Tzhzj^f((Ʊ 97U4;` =g2 ;`0KGՐTTDttOP͘ir^WhT6-m)~.EQ566\*+++H#'r6L1-*SH$b%o\.'r8x/$+X-t`A"n6I69_v F;z&ofEoooVC5sL]ϦmhN.h5{RFKI 2k߾}F f@zw7i4Lt:s ]YY>kȩ'' ,VYe:p2-5i5p8`0he0S=== >?q,u΍{$"/SNgXHL@tTEvZ6ݪL ds 9Ca6L;DQz&hooWGGƏ?"'_0 4;///zz{{UUUX,fx4ꇻ}m$\#r v `"ʜ$+>q\pRB!kBB* 9wޫ q3 C7]D.=MߦH$B!y/lB}uvv ;::ڷᰦ7g_eXh1˪=ePf^6=Cq7pPqH$blF.e\ P2vDyy`0P Cmx ůHf^jڵ+ቾN, upݝ8Fڹs瀆@6 Tgggs6͡ +++@%!M@@{2VFjnnN谆 <dseՕ|`e1AitAXchg6GPRsn 9yHWIMMMw$(r/`0|nv;%ÖDqhT__o\*++SiibzzzFPPQOOtv+[E"kYe Y4{f+**$v8SKKBxr ðC SGGǀ2xQ(UQQ!áP(^azDf] X{⾒9;UHeVUظqnEzNƎuqP9ݻ9N7nH̚;i$( ph„ R0d~:*&Lo7~!KCwޤi*))Q}}}ao1hTȩYWW'ݮ#ϗWhgDp8r>GUVݻ ٶlرcG5bi5iA9{U[[64zxm6b1)<*Ա +D;svݫladЉDbD>IMI]nCنaYOKJJTRR";ӉǙ>nJ֭[DTWWW%l٢SMcb1.Kg6br8*++I[5 Ca0{ajn; GkYA9\{1}1655) zA[8{3ߍzְOsY3*tUc97X8gG۽ GuVIԩS :O?ԩS-`0&IҔ)SFX U@aiv 9;=8"1 "0p8@ ` fV@iy\z{{v N2 HF1۝Ղv+\555v’X5 DA" @ H$DA" @x_re =>}znݪV7oL!p]]]z. 6X:JkSSA]]tO@?'Y0vk_{G')7{zzؘᰢѨp8LApO>:u]r~(;cD"VZ#A]wVccؼy:::TWWiӦqoa; 3dIZ`ڤL0A~%~_,\.FEr0w_|Q]w^`~xǼy5zLđ[?cw̙9sfn&uttA_~y}$---g}ᇃϼyx> Qnvy暙y3ỳw"Ff."uvvl;w5\Oc=ڼy4|]~媨Ssε~':P%7nܨfٳGRDRJJJti z5}FR=M&M0AG}zzzSO?Tww9}_֡Jc 8r7޸֘7e㦛c޼y^6VjM<ِd,]4vw6$k_|ի@766Zlٲ%իW3fH%%%ƿ*>;۷\p!/9ߪNz6V^=5$wuW^ܸquwƕW^ill5\-[;pƍ3鍊n2$_ꫯcǎMBIiDQ+_par?kp I?k,Z(租~Fm͚5FCCCTVV?։D"׿ߟ8qaÆ/<1=I'dH2~t\7|a;}t?6:0'-[tڂԓ\;L̽m$L/3n:ag5{yD@G8^xɘ7es_7CF[͛gH2/^l<ƣ>j\x r on7ΐd3Ƹk-b~}ټ`F]]!p8\`vm7l`L4ɐd/QAb(FX̲V1sL/ 1ߴ._lUW]e~ƒ%K*+HLSɔFB=ļnɸ;K/zXQRRbl޼F 1m1NݐdL<9fGyggq[L8?l6r??!m?{o'?IB̀;ZF:ʐd̚5O|8Ӭފ۷I?^fy om4w}3z{{|p:6{1<!ɸϝw9`c0mxbCqu%|6te[3Iۆf_d|_7"Ȁm^z%ă p8Dc{ۉ'뮻.hO?`H>iԩ>swŋkҤI9;UYY_]gyEEŀw^?T,U*//WuuuuKJJtJlR>fO<'Gx@RA/R^xW+𷪪*=s{Y4c =3 iu]c=v>[͙3Gַv9Xt?C_d裏ajjjOR>O<Ȑ׉;Nw~5Xۿ$izgEWe˖wq|>ƍ_ ~;?L)b'Ÿ g=Ĝ @9=r8җ3i5UgqFt,ZHGq|cfwIe]6.\SN9%4&LHUVI>賟lN0 0z!WV9aX7s޿+Vÿ46֫ͦ 00Xf~z<~cpX^-լu饗ꡇR[[f͚Eiҥ:SDS{{n򕯤.$,O~zko~S;.ΝM6i֭9WEEEuKOKϗ0+լx|Ր5gUM۶mې׉t6&;fk]tYT^^(I =>JU ]= E=͆N;Π Y [,Ðni&M:.ƍ;S_Bѡ+VhŊ;L\pꪴ d},ZH555)R=7^S,KM(ҋ/h$kp >}+b_O?5k֨y\J,)Sݷ9|5 qڴii?/Fy>#1|6.===C^'r^d:M/YwΝ C9$v>T Q< ]O Q1mC]O3D"z%IW\qEm`u@4znOoկu o?Go?1H|>l#2H,VYD"]|z5k9͚5Kwl٢믿i57Tpz;CfPvF%fVRR2u"UyR HĐ }qWmvL IDATу:vޝqj-[L˖-S,SOiu] fՋeN?2"Ji3f?/B$Fַ-| Os}1644oߞvpd dgb9L%'k/p}衇jӦM:twtŬĿm۶e,M6MNSHD۷oOy=TUb֓6\4IkRo/"۞z4D˔)^7 ;-Y2]fUKƏ/;('U/JE'ЫW%?m?cu=PaZ*$[O=뭷dSb$=ߝOtl{bV3Hӟ[. W7nL9Ś5k$A$mذ!vvڥiӦi޼yR'USSJuwwk:묳naÆG{ǦNO?Tk׮fܟ9+PG1d W=$~R-^#<"0T[[/}K4 ٘1.sΤ8ͫ{0;v$fIp8xb-\P?pm910e䥚Eiw6=b$K?ۼEO '`>^z%+s\u]If:vi#N,X@k|7S-҅^1H(f',IR 1'%Z|5pf,fy3YOpt{ 7GPvHK.yS\n?\{I?듌9C=t˗[7j s=_W8V-ZH}Qc'T0g-Oxz.VZ-[*I_0u% ~O$ Ep[oaŚ>} Ѕ^_>O^zU^^/Z'o|Cѡ/~V=1}z'گfS{{,Yb͢j7U < ɂb֓\3yH?oT[[ۀm>#-ZH~_g֍78[nEsќ9s pQ`߾>F F7N'tV^O|/_믿?_W޽{}Oovܩٳg`0~[$iɒ%4?}YŋuGjztqQG%{bW\g}V?x-]T/k֭:c~zܹS /Ps)hZkkkhҥڴi;8~9s>C\R~_n[>h^k?^]]]7\ ,Ю]j*!w=CP*))?38C6mґGN8AWWWyٳG6MO<WYgJ/o… 5azxt'g|9g?Yx㍺K/#駟Jzd=3FZCQos=+V'?EYO.}14k*p謳͞=[qiƍzF5m4+r\lMh3T-af`Xy^6{X%6gk>,jz&OlH2.]vݻw Iƍn韺ՐdZjgMMMٳ-Y|F}}!زeK¾|AcرIrk9U'&s̘1Ɗ+?ߐd\}XHՆ$㮻7nbCRr%쳶xgVu]galٲoZ_IАPqM7N:x׌};n0666f<ҕ[vڤߝ;w!1Σ5yd駟Ϋ['9^0 iH2^OOnOq',z(--M綾^j&-l`#6 xꩧStrJ`m]O IGmڵ8#fٌ%K{Ie˖e6`(̛CCz6#@b1Z~٣z{:~ww~i۶mڵkjkkР38#Rioo׊+n:iΜ9Zx4yd577WՂØ1cvQ=iO?Պ+'nkΜ9l|zp8/}2\֭[.Ng=7|n6tIz뭷ݭ Р/ˣ^B!kZf5yd~:^R'reڶmNfϞ.HՃossVZ{OGs>ϫZf޽yoy &_}Uk jhhз!'&}; /ꫯק~Z~/θf+0R8ZJ͚1cFwvy]pr\Y3n._\W_}5 +m,3•g\8֭#@Bo.]Jp8h4jMhtYg "gjnnČ͓(~IK.Dڴi-ZիW󩻻[oN;4曲0}x<} @7#OJ/\+VaZdIBP4;2}?]^dOSu!a8}aǀ G>]S/M[NrJ;I:SDcǺuz9z㍳u3]7p^}L/ЬYUO>yzbV…owU>2cOآ5k[NUU78[oH;_'zS{k} zS4O55n}g[K3'?=^76OG?q3g?~r:f߀ gNO҉'#,К5_гϞԵ_?Ko};L#ٔoI]k,?דO>ٳg߮3gfOGy{1w٤@o /l翡_zY:rI-k/.׃P6lww2?T?qZz.tue :IignmMK'殻>iӼ?0 = r{m8o+X>xmǺrW_}mϯ.`|̔G>W}i|s|Y%LS__D;w,3*wM}mW%ÐxdUUhҷt}/Lg>Sձ |mk^3>W>KYM<Fs_kٲepB:uv%I馛կ~5."3*tR}I>O>Yg_IҒ%KsN]|z'駟K{.]7  Zb,Yn-aӧ/׼y;eեY<(b}6RMԲ4D1 mcji4ҠB5Q[4(XR 3 1@. Ìb' ܹrwϹ1eKJJBkk+6l؀lݺMMMضmӑN8y$S#G`b@ff&˗[ dddLYgk0ۜ8 9ǎ=뭻=CVЅ !L -->rmQQ tfXv վ ?q+F']yy!ql٧pP! F(k#S_[R1WȘ #jke>b 7%Dޞc;6FK8 C~@W~α8 \h4j &LǍL_dĉ؜qYTw/f_Äϖp8GzB?L! 7Ǜk/|>CCCk.H$cz͛H4"L/A`` Μ9cSXTT-[/**B\\vaF.ŝ;S{xx ''|\ycbbpBՖg's Mw |>(="tv*gl.KKҥ{˗:F[Ǐς ( iݭܹvpvapP$BǽGQp""<Lr5Ue1W>>Bdf8DvetrΨ!E !ip 0bccdqΝ&WϜ9dff2[VV)--3brw߁6QZYY|6pwwGiiҢEPPP0鵢"bŊ&/_;w`XHJJBII xg… 8t>۷^^^L|l63۫[49~26BFbxlX^0pܗi4߯-G' zU@&!ۼy\\(/kXs!8d rPł@0zё͛=0_ߋe#)I`;RSm1س]Ys~""DL"p:2׮]y8}kCDBShٲeIDAT1Z@@ߏ lܸQ[z5\.Gbb" bAcT*Err2=[ᠺUUUfWHHH@qq1d2Z-B!m {.*++'v9rǛcdd(++C?J%\]]駟ƍxyq!77QQQ@MM H ** Xtɜ-lc0Yo CeeT*=xؿ --3$J+Wd8vlzz1=56_5/n ';woB7={?jNJ!2R4nGa!(0w= $xy8thyҤcZdec%ظvvS Vz.ic֦@l7سnW֜߱cs;ax<6 MG!kЇupwHg>"Ju)2`0ʕ+VϘ9gA*qڇ ׯ_x/Lǒ%K憺:HReXr%^^bO$NO ͢v''<}&wuk:aF |6nߖ3٣bYX ܺ%\…,XfcʇFc@` ::Fg"-/_7߬DWאq#^rFc͛]Y hnO{upqd}$By< I"Y?S"~暖"^}u>6m8#C# !iDM !LVBVV(><l ۷_BI"!Bȳ(/ NuKA-zzMA!$B!I$""""""DDDDDD 6DDDDD$D"""""* E/buS""""""I"QT7|HDDDDDD A"UmZ5ID""""""bHDDDDDD lHDDDDԪM" $D""""""MZ1E 6TWnJDDDDDM@TTDs|wO5{z.^\ϝEUo7h}I"5w333lݺV[<-d2Y666^lejQRR _Wlƅ q*P*UNH$P(nW\^c*oIyxQXi{7XXWffnӳYMH+jEEE())^{WȬr6fffؼ[cj?Jo?< L4Am> 5|6k>I"id2l-ǎF_[GtGѣǠ={vbŊO?'j;w⫯o Bbbi{[[!==@i8zxo>I$"""""vubMJD>}* ]]F_L׮]ѫW3R:W#==O?=PsOW_X\-^pz$U6&MJ %NEZZrs`j ,F`r/G/|}/ 22 HNN/FM+N/**o3g^o83gf3JR!""""j*EOOݻw)Ԥ˕GvHMM7P\\hdhh/duZJDDDDD $mZ5mjH-$D""""""bHDDDDDXV_|!j+W/Vب$ "#CлwlHDDDDԪ5}D++K}<~/\r +V|q|Bysg=^r*prssۃ2H$""""GJ"@PzX,R:&!W_2%%YZZ6lmq[:ujڟXݔ\ǎpHD~~:at?۷N>K|668|de%!$6ƍCaL"66yyi84z!FΝ((@ZZ<֭[޽;ѯ_LݻN 2]Xʕsxp)!0:v>QMŎ? AkM ZFFF9r,{ׯۅ筸r.\HcA&a5ӥ2nC>ɓg'A$N>k_wرキ7 `pn>?~b췐iΝ=a`/,K|~Jĵk`nn>})S&bРjܷDDDDDڣ'waڴ)044D^^>,.]xgѩ )ر?..Θ4Ux{`"T*Ŷm;p~(!33 ѱD GNN.^eڽ{ΝJ}:8ARa7QTT,,W1R?6}K ~￿r6|>Zm e[z0a8FXi . w.],ߵk(Jƌ%|.{`\|>8|(ry7ﳳsp'TDGgff!!!QHRDvvN)5).\vcƌBxxV\UiL##cM/**:w166FQQJJP(J޽5?˫N 33S|Dl߾Kxǟć^JU25[OY""""K$ 4vƘ1о`ݳr"#"7g@* O;A,C$!"d26nYY¶Ǝ} psW8v;===޽ +V,ʼn*ƚ|J˔G'DDDDD`Vӧۻt06mL gh|9r Xx0ʕ˄~~7R"ӦMo킮.u낿ڏ=eJZUQmSӾ55>I$""""{xj >>pn޼``1lP87}`-x뭙Ǘ_~#CFF& N %%05m>o{s/h!99#G"l#(xc,--0sXִoMM",x66HKKotb==J6o6km{x 3H$"""""66VKUfff33&۶ =Ut$j] [wbVU܆/DAӵ 5ĉ3زett$ɤΝ݅ >=#ٳǑ+֭3>l;~D"VO yyIŰazz2_11sA^^k΢_8u0.^//::%%%j{$V{7m_BP=$&&5:偡slkHJ:+ѣ; "d2)6n܌la1#*7$[j222Sr9 1f̨E,YAdŊ05m?~,;~MC*B$aڴmǚOZ&QT)EEԩyJ6l،?_L+cMKKWs陰IJeʕi¾};y055…KqvPlaG_a6i%[ێHKKo'F\\|:"0.Ԧн{W?ɭgDDDDD ʰ)Q֒kA"UDDDDDHT"bHDDDDD`D+V7%""""""DDDDDD 6DDDDD$RI"1H$""""""DDDDDDT I$""""j8N" $D""""""bHDDDDDD`D""""VmA"U [H8n|t:@t[Flgص3DFmLjWsnĥKq:oή=&O^׿ QiZqqam::PT Baa~CWWVm <%%EׯZL>0H$""""jZVuӜtf_"T*uT*luDbT:zzFĨ …?aǎHHxՕ}f``W_]o(J]PX>ځݻ@ll('.K_M ƍ{}! "6ii 8q!zյlm]$Յ]+}^P$"ں@WWW&WWC.c#k-+/V[orP]̙HOOĆ s+ŸqҾ3-!ܹgq^XX#33Ni98OC"""""NNXx[o8;Wj^ptGVV*￷'FV W_LݟcѢmwva]VbŊDAA3n ]Kj(BX?lBо<gHICVV0ܽ{w^\^=?4_>L:u;>ڵo!--ᄏ Gzz*Ə@O~9  L[~~1umY[;bą~֬kNbԨ7ae::R:bl8}1ybDFС-DuVZt)=֭s()AAWrڶ zݻ ,, س+[_=S1a<8 O%o:_ۈ ŕ+add LOm;I8zg( mk/ah۷DTT0{JUFCBnȑmԸMGscuS-V\DZZQm[R1rsK#ȈB} +XD֝;myP oeD;U*UHJ*[XȠ߼7E(*Rj^L )tt,FA`j*͛^5& HL,OD++=^X;"1hzs3"淳kJ /zR\}6`e8?|N텵u;9NNnҥtĄ@(-mmLaz\\sԖ*8k:$Ro6:n}={ž} 3ft#GbvΟiq# s\{{[`~u^ȑg''#8IIji۽{ <a„꫷!&-@H?.^<w !o4g'$JitcԨ7 ȑm3mDJWD"9 I#6ػj[B޽-n]o8(;[ubժ<,rsK4t->k$$`0< Rؽ;Ç\mtf.ooo gDDU{0PiZp5WBJ3f|UDqq!p@/WB^`„yO "))&&mqtS_Ni~ ZwhA"5 X$<+ IDAT矷<0رLJv)V,1Q_}O?^yʼnepwᇣիg޾ Gpu RChVgQҳp 7o{n HHJ8oVmjD䬭%֬^֫A`Ԩv8|8WSxPXr&r9"#=o5ST\JJ23KZzs&$ !!J%`g_c{Gu->s)a.Ʌ˕F.yXqqHL,B^x** =ƺh&&^6kSTe).V"**E00z^4@D Ifo*T J jٳk&3۶ĉxw lb1c.ՎrɒAA@d| o$o*!!M\>^y Ӧu@6Fݮ5ѭYm#00۶/fc04bXƟF#44*7@~4=!1س']hwoO?mlZU#Fc8&zW4w[>c%;{LHٜZ[<ܵ+[l֬0Jm v)||uky (.VCp`4Ի` |mlֶ2@Ϟ7A(6'v5Ӫ~=8\vm0yr{<}D2qiPNdڴz5E-@J)*dOv ǨQ> h4w75>6n ̙pRr(wǎ0/HJ*iwR9@,G_̙s|rK<=7+WT ,,Xp7G~~&zV<˖;w2<\FF ø|aci37俧i747O' ;[/*e?L~AAZ]66E'ӜZ{ZhSǤIq@4޻ena|?6}'Q'ӰukJJTpwo}-f"<w3%Knߞu͛ixk—T*97P(T(,T`|?ZCTP7#WVD~cp{B J+WJE`8xK- "ti7Ltr9ر# oѰ_~v b 8:@4ܺ HO/ob']b?BCoxڷ7Fmaibcp|48<%Fphwɒp!Ixb'F6χOD !m6sÆΜIBQ(>$VOOHZ.W׷UՈkuID"* RqdH}E lm L^G׮f(,T…$\ti[[Ʀ*ʣ̣~5={L&ADDq'aқXwM}=Уz$DzD]KLg'm[( ""QQynK'—Qǎ&XmL,]z yP(TX6q5V# tCהoҟޏ}ԵR'_5(*ʕg&ر*טBcb`Ώ/,ثT?l猍k0$$jUwll2)=^x̙;}߻WQHL,m[~/#4Ŷm "#X&T|`6NQSnFv@M7jA^ AVYm&?*T!ts3_A QbX],X)XMJ}f^{C`BU1m;wTP*5΃O"^"ctApagmƎuBvj-_]-(njV ~ll2=r@^FHHvLD 4qsDG 'RP:W3]Sz]wk .RަV<=oRSZbb%nHçf:lU<>U$pv6z$ׂHbJ}u#F:c߾A߲Q>ll/w+V7կa^Q,Z5GG&kN&ցlm$W_=W*vǝrb>7X,Š^|QRRFرX; T.]г9D揬3CC,^ \PZ̙ZhXleX$;|hd"bHLְe 77ؕ*6o7=oO/ϯzaq7o4S(,-0b=frk/62g$֮S +W2ZYm= YYغ5Gjb W!DmtTjw)m=wP[!ePkdhSm*VXf5w2i'nOxSO UYڷ7WU*GUl͹l͛!22g&ܹ$ܽ6xJJ!v ǩS {l ukɑ#-6cn5.WGH3p5|̚uRWKK=xxЩ/O鋹:bq=)*R>kA[GysŲYʠPik7GRURCCN&"DoN&M宭ۯO8}+OwE~~ 痆M@lli/Sd%׶ sz/Ecp{ݶ匌ʏ{MA%jrk.9,^|C u0iR{R;?{XnmPV5_S_ vR([GzzVBBrraU(K-;;8^SRRc00AVx=`̛Wq ,ΚюjݷE`TAbY wmK;aӦx-GUj{Q^ rR(SGll[r:Rq ĖHDڃO*Ves'E5v kO>b_~{ ڍ[v\j}-ZqDD^{ΜIra׮p̞}J˖kk)lAegQQXqqoff1~ztOgg#ίμ\Iqr2 P(T ƪUCc;iIF!+Wza ͆JX,HTW|W~ulm1sfGlRھ&7a F'R2,_+><J Xҧ26箍>""JY.yy%ؾ}@h@-ll2h@kx{[cxॗ|`a!T*A||ysWz)k(cw/ s^R_}[PB-1ߩKM"$R17a'0jT;_~,#1ujl6ffVP[,mo%^x;v S;jݻ mPb@sx`ŊZ74Θ5?*UeÒjm6śo/Umc}4>Y:`n,ƿ)hS] y~ !*$pp0SOYc@kH$7Z {Dҥd ٝjA6 8u*/ooѣ* \ǹsm֮mZhsqxKK=,ZEml7z뛂K"Щ ^xA뫙jA.Ahh6Ӌab gg# j6\T;y#=CD"Vkʔ wtZm4"""PlHDԌBBdMUZׯv!@42ҩQ)I$DD-FHI)D^^ r]mϠ;w7hMM*"R]I$"},ѯ$D"""""bHC`j'$Q <>S(J7N$gڈ{DDDDD\ PGL*Ճ[o۷aa7<Oqq!pa3A"5T7!??_SΝxonMP*U5E*a&DDDDDT/*()). tt3&ũS;!,ө7 ss[" _9b3f~XӧR̘1 VVNhM F]`i{Fx ..pBdf&cO`dd #,~q!NoHKvՕ Ys~GJJ BBܹ߫]75.>I$""""jDWMvy? :2JqwSS+t$vGGvn $Azz{6 ҥd@..F U*KCvRMS*Ur%%"OreǪ!;"-͕7k:;VM?͵?DuNWPT>t>7wTK,ŎkZ cc]td{7%%lq^4嚿ssKIinDc IDAT$_ƍ>"~%򟪎UC87ޱji!zNGQ2T*D#⋯:$@ppw/ ]VTTT*Fq% @^m+{vpޥ=<xkNJC%$@>< ,, ~\Ig ''# ̨n~$<DD$P^^UB 1yrjD{{DE7sxT,42 CJuuArr!ӋMU~~8> Ʌ05CcوE``"#sSS)1dƎr%_O<%'g$ 1R|X5d5b%nHHT*pT<.^Lf쨖"9,aj*Cnf4FF5AAID\\>R1L07i?'G;wJkr}J8k:Ʌ8y2aa(,TF["QUuӐcTS]mc]_5iU\ą I~= iiECc nCCJ?~L w6,dez4L݌*;D}C\\>lmll9Ž{Y(*RãMãl~%%>ILM-oJw}m}ʊ;!qmʡ:8:ޠۆ"j}ػi 6c%f\'UA.ƍ; 8xaky7J @~~ zZ4""ǟ<,eX"S)-R>=L6`ص+NWZm[/:v4~+jU iH%KU1*K׵k/`;㏨J[ZoCZIӱj6k: 9 $|}G`9 ի-lyBX(|M0+wmf&Œ%36U> q`r/tN'̘Qa˗GhlTp`88wfw|=N2tnի{JVdUӐcTSm1򶱯4 e||}O(|re>{HeF<#TܸRy\T?װʾ ).k➉5GSiZf2Ds\,LTD]DAvd4W^css9r,w߾Dhhp<֭1ػ73fء_?kXqyy:+VtH|hs>JWj}VlsPVUՐz\uRᄏcǒ;==MNHI)޽ rZu]ojhv g7%+W/Kܼܿ_֭>ݗ"M4oLxj:ƌi%RvP2}ZH /!5:W/ 4k*[wwb ͚i⯿p#df#q {;S.(F`))t`\+n0p`sY@ W =+V\W9]T%L™3@۶ppxJ痂unu1`5ڵ\{RK'Za۫Wsқ-зuLXqFFjwim@6@1\ GOu=u/u 2w? ka7Bjj!,_DIIM `Sѣ"?zT$tbg ibUqqy8q"%%ݺ!=Wb:uJXt}ۭf̰իHJz6m 0`&aK}OZQ5(W(u݂uU͛Kkmxx&* Fr/ѐWH:1Hlz=:]֭127C>V\ j%ui; *+%BBr n*3).rr|q82pZec mkDR8:>׷l{P(u׮eb~XZ 'jhHQƉk^aݻ JN^SVV)c%,O w4ݼ)6:t0R{Hf-5{zzZ02o+a0[PvM˼V[5/c Ъ> >rDW_P];C|3x4o mqXUalθq1vlkcǒQZZ }}-|Uqb#GUѠ}54^T}RWRpJ:@CCxU|Uh~~Zpq1nī~=]0oFQL& o%:v,ӍUgekECF @o{kmM8~QO_V: 3PǫM`jڢ6kfcc+V:CCCSnUӥg #geN.Z N0H|h ik`TFCC~b}Abnn)ɕ[\]-j>I*[am 0p$GV;KRFێX9VihiUyկڵ38GF52Rz=mZ;/e&5ǛoV?Y»vvyՐڨ|r(]?SV:nsPK"hsLC5lqh(u:]6Mn?5}͚}ڷzaxM--mLFFZ..-Zt@׮ nIu맽4441iҧ¶jmj~VѾ}O 0D۶M_q{["""w>A^^]goo&]kWSdfkXU=Rc,ZRRBtǣ:Kgmg){鷣c7:#99<}❞^,LdVo )tTN>Vr ߗy"듺X痺υ滺WHoh7>k8`@s">>:##C:@ &bg 7òv5}}guvތgdB!0hsyU4lqh(uϗ`w^Mگ w((Ap!!h7G6GYY ̑-HBzz\r[[#'']! ˺*[[XTVVB[[-[vD^^:z޽[]ǁ 7GNNJ>uЬ!53+?!044Ǖ+'(M/iV'R;Y -F˖PQQ$N"v989BCYY7/?_F?NwPbulj˪,u2࿶066zr7\?AlR#)I=ceʄ KCE'u/u ًpb v3D˖xaaXhqq1z\!A(-jڲ^-?=>,T1Ʈ3 RT-[u]+7J}|~Zu[cjZڵ31]^EÐrׯ9Ə_¢ `ff'O\Uֵl}}cH;Fee9ЩS_\| o1߿ KHM׮V8036**Щk 9 L} NN~WGVl .06DN}q/ug{/hP!11!Jz0WȑƦ@BB8ڴqB߾q:틈 aod&<]ʆ^/eA5|}S'Oʄ!{Mݭ(|iб1 h q皮2M?/_mݝdݢ%U=m٨:~U}8e36V'^d}RWR &ul0G&#,,om/tBa[LLJhv!tcՙo٪ZѐsW}IIe _uo;kEX3~cb3f|HZZZ8~7PX3g~D߾s҃\vty||ZrDJ!=K6HMEvݑ3֠Kǵkٳ];p\ɷжm7$'GԴahh@g!==uGnC򯤤'3%o~lz4kjj)@$佫j5=BCO"==nzm:11$hiн9^MGTT:u2D"kYBSS l%={ZS#?~O1stPxX1#..bq݃d- UU=zTLYQ--uѬ&+jMΣWl_uk$'woK|Ag߿4HDyDo+ `nDFf zvXMZCGuwlse-}h,U[k8]oqnQӗo/ۻ"+Kd3$$DEҩv2,Y7̊2H$06u[XYI'rs >> }CeeRR<@>QQQZ[lz(MY ey" riU'idOoe􉟡0MpXhu,.\vs‡vQU3W?DTY51&:dz{ͭ'O`9GjپlWBB^ݼ M%J{\\w@__Kn,51""S>]Mf67Uɲe )yh,VV̈́㚮IIOgm-N>t_}}chi頼Ѻ$%ry{qO8wgde=P J02D.MX4))o{U9DYW'WXAb-祃ku5 # p4m ][g 7~  7ezNphr7'$*].,]S~_ߔ}t0ó"3 ͣWl_[7i]z51YOaѢP|q pXH$@fr3d_o#6w;7rsK)\-[u!e<E$𚖚'ְ_oznEGCzbܸtHUن2%%n6m2z_#ŤII`fR?NF׮1l'\]Gܼ%l-.y2Hrt4Z}**$nnr뚛*LPW yYYBCZ4JK+eT42O>zxP[;X^:> !6N,&2wql}Wm8|%U|ڴv+V\W8v?g޼AylKNGy ٳ~vv).rhh0~vN,uܐme{p}PrUǹEޓWXW*,OJĕ+D(.._?qR'Opfnaa~u23S|SH +QVVGp̏C!8~!1&'DP!$%s_PP\z7r\n֭`)K/ RjWwUwmt1M={Z]Mmlj|jh33dgKӊ({o^Hc<##-7wV8!ǬY7[H w4u_ᄏ TtfDDd"7Wzݝ<ʭ[ )]׫ )^+^6..2^k `d![u[DHrUL^^z-۪Dffj!C*.yco/vЫ$ԊHY O&$h.TXcBG';r7AD7 ʱsgrsKNd64GHlp99˜3[[}Z]Z>==M;v99Gr7&_튰 ֮>Cb\.ΨQXƍtsvoEZZN,[U-y퍐͚iKm3gRɋ$iwHggS88=G/#/UVVWqf6rsмy3mk֪eݛsGpj߃Uk )[U/'4E@ǎ:Z7p|nQ BV'"DDD/4H$RڂD I%$D""""""g7%""R iC_|kHME:Xc8q Qeg7אJ8nJDDDDԤ)-DDDDDD $Q 8&IDbHDDDDDQ$D""""""RDDDDDM$jؒHDDDDDD A"Հc4I$հ%$D""""""$5iHaK"1H$""""""EnJDDDDԄD"DnJuǖD""""""bHDDDDDD HDDDDԤ$D""""""bHDDDDDD5D""""&cI5lI$""""""DDDDDD j1DDDDDM$D""""""釨ݔ$"v7%""""j8&TÖD""""""bHDDDDDD Sj\ IDATHDDDDԤqL"-DDDDDD )QTwlI$""""""DDDDDDM0H!bHDDDDD+0HUnJDDDDDD A"Հc4I$հ%$D""""""$5iHaK"1H$""""""DDDDDDTI$""""j8&$,DI?DuDDDDDD$`K"Q$D""""""bHDDDDDD5D""""&cI5lI$""""""DTuNύ7^hݻ'޽{[n 322ɓ'[n}nse1666h׮JKKO?Tggg+?I}uCuHݔFrrʿ+))y.//]^^.,/--WTTkb}.ÇHX&H꽽2ڵ ²7T9?I}uCuA"=7ؿo߾{z.yGEQQpikխQCC1H$M"j 8&$ę3gѳgZVld;aÆ5x{hÇB볲nIDD/'YRoɓ'8u`1c@XNDDD%YNNBCC#F⳩bU+55G[PXX6m`ԨQ6lDڻ#$$0d(]ڵk_f͚{9s&7oޠ|HKKÉ'XYY &LܺHJJ=B@@@yX___alo ggg!;;ޘ6mZOF`` ТE 899aƌ066VZ;wF6mn/00An˗dXZZu@ǎ/--E`` `ȑWHII%1{[TUz-o@"ȑ#>:MU*H!bHD/۷ocԨQM1uiii: 7oތ+VM7nDq֘{  7%%%xwq!߮Y{wر}[YYaǎ8q|Xv`!.k#;Ν;0qDٳ;`nnv\~III }'0o<э7pvvFxxB@tqL<tBcJ'0o<رCnyvvPXh~vZI-uCVPRRsb߾} AbMuLDLI$Ddl޼K.t G BCC닐1QQQ֮~fϞ#Gڴi7x͛7GHH0m4]vX[[?1yd:uJ@ K,qmtINSSS4?̚5KX>eٳeee8~8{=#F4ivDnR{o>=zS㘉$ZUVV ]kcdd~mIIIOƍÇ'|3fΝ;8pΝ[ A1cpaq{c3YlR>&&o&޽#11:::x7ob޼y}6\]];> D"a," 6 ̄JAbee%fϞtgΜ_)S… X|9&N֭[uo'NEիV\)ROOOO/rW2dBBB_malذ}wށVZh]aQ7***rJ[@MuDDD5DTk00jԨ:}}m6 , > ҖG*L3w\xzzݽ{"??"Pm61'Ol2j:p@mVX%tsx"RSSo߆+ <cccb׮]wgQ^^OOOOxpAWB$''XlBz@e:rLQ7$ ڷo#G9@T11H$"344 df͚%7JU}>sڇD"_Xxqmل=ÇW&3j(8::^vqqqYSLunPPW^xהcccѣG2;v쀥%n޼> , msppPVNjR"{ecʴhB+:U~D~ۇMFZZZx wbb"(3b1x0!N>}]s000@AAZH(dhiiaHKKS8.[i+2Bp%SYݻw7o^^^K̳<˗{yyaÆ J_^^)SW:wݻ HHH%KjL*A:F}^[c&"+0A"rb2룰)))ܽ{'''7nԚ~YWLu]TCC NRQQ{{{ۻNAbCV``Μ9Άbcci&[pssSXK.]˗+ ]Y7E3k9E-..@nܸQ6w ZUBٗWu-#V 2]VcDDD: n4h젫/̒X tdi}Ϻr N8!O?AAA?~<*++1g+l_ i&F>Cc֍xLDD ]}WΝ;.(ݻWY>>> j8p `֭Nwߩ]Yqulٲ-ZLMM?\a[YYYtS@ƪu񢎙A"H" $$Ο[U7,UmڴVE N>]&}׮]ǍWc\x1 ;;cǎne6oތ]OOOڳ3|FDD`… 9gɺ`ҤI?`9"9΄ `ggDc+,,ĴiӐ}5k 1vX!ƍXEϟWhi,.. ???Xu.^1QSW:W`UTT`u^̘18}+++ 0.]֭[7|EEE?୷¥K/]b͚5ok׮6lZl0ѣGש:o̙_~pppacc\~8p ]KKKl۶ o6bbbaÆSNy&.\"b޽jPajjZHɓ'c ë]_[[.] }Ann.~WA$B_#,, ؾ}6ΝÇ3gnܸ!wѣGqo6LMMq>}III޽;UV ƪu񢎙hykH :tF@@3k.IBZbtuu_ػw4044O? ?~\.r 0c D",^8qسgЭQ1r3f̨M͛7v9)H;w.(UVذaЊk*H3 믱fDGGO? Ə=Cyyy/yLDD f'"RJ!** iiihѢѻw:ŝ;w H舾}GjMgBBp]hii 'OSk\MjI"""rJ4Fll,֬YÊIDj1bH$f=+$$ !aܹغu+5kJX,Fhh(z[[mzKJJ䄄XXX <<ڵS5kzj1j;p@\t yk.=+ω'̙3(++ԪK~Œ:cwS"ɓ*|"""k.owƔ)S^c ń @ߚh$$$`Ȩ6@|#GÇ sjec;v,/^̋pnJD5200k+<<<0zh>}2d3޽{ӷo_C,E ߟ8qnnnr 3Yse&D"zu`4h֬Y$n݂%Əwww;v}߿?= hjj gφ%GDDݻkkka̙;<1o<Xp!???9spYb,X/^Dbb"ϟ???;w0`ϟ x{{#88ӧ-Z$_U?}!33:t… ѡC6;uΝ;7(..'LLLjԩSq?~?z(еkWAb]ʰc*((.\;*MQoȱ 'N@pp0=zWWWL4 :u['99;wDll, ܜ+"$5cH٘DOOO/ծױcGܿEEEMڵkj*hjj(--ĉ]]] x\~mڴX,Fii) ___a", >9QYY)n9sz-H$ڵ .N~ O<tuue˖>lggg ++ Cyy9=ݻ#667nN<)u=y_|-['''õkеkjkll_ɭCj k֬AJJ v%7&eXSڵ ~-V\.]x1.]Ի<R =6cccL<~~~˜Ģ"̞=ǎZl$0a;eeehٲ%455q}4o7nPKD.]1I$GII |OOO#GpΝ;.\ߐ;wիW$&&C8urss}z칹X~=BCCquDGGc˖-(**f)ر@vv6 1h lڴIh7"==QɢHS"$$r?~'OVۺamǼi&x6n܈"ٳGnGC_]VզMp1,[ 999͛7ٳg#//h"#22<@JJ 6oތ4lٲ)""bHDWVw|ā`jj 044/6mয়~D"ѹsg>كva9MА^LLL0}t/u:oVVV>GoвeKaǏ@Ic/++ѣGa󡥥{ի<֭[ ۷O֭[22e $ ;&رcpvvߩZYz5u&# @$)䙪ѐWױbÆ pttĆ ]teːP!>>۷yaxx"""D|=y"bffrDDD`РA044DEE믿4o60c "66xbc*++F_Fv#g'q122qL} &zRD,C,cܸqW뇨tÇ d4m}PC_OOO!@}ˣ寮cCnn.<<<fC[[ … q a'|"tI%;?5D ))) *//lj'&*''Ghcݻ7@dd$PPPPcK6Tr;ب,m۶U}vpjg&UŔ)Szjܽ{vvvv5Q Kշ<[:6jRKKKn!̜9^^^򂵵5FYfaȑHD"釨$Qegg#::-[p#=zh̞=ɺ@qquJKKnΗ/_&LҥKѧO$&&V ٤$C}][}e-%%%JMR̨G'|G[n$5ԧ y"""D|lݺ[.1uTݻiP\\: ??6mB*ǿyQcW7YiLLcbb`ff4t8rf͚˗/㫯v]ϳ<d@Q8@>} M(CbÆ /ѿ _AD"͛7/9,+ IDATY"hh`GBB޽;}充 Rfffb#rrrPZZ={*zG8s X&$$jժΔ)Suy,8N:@aaww֭[7oUV ttt$*ODD ŋ5k9r$tRhkk[nպuPRR_ݻw#G"77˖-۾H$ҥKyfٳ8p gAWWPTT8,YDJl PoFqq1XU1һn:aСGRR|||0ahjjʽVd-t۶m ޫo6<tttzj<~#Fŋ ///l޼ݻwG߾} +++?~[nE\\ԩSׯ0+D"R$uJ߭[pEbƌuRǮ*Uӛܽ{ի _xP UFQ=zk׮A, PxGAA8::D$u ^~UD"""bH/v7%""""""DDDDDDI$̋DDDI$k $5]]1v7%""""""5a"CTWlI$Fq\{TVVbʕoooZϋ1ذa>cdggwgΜʕ+zjTVV*]Xr%˛Tߤ&kD~Q1D(N< &࣏>† SQQ---8::Ν;*cĉ8s ^x6bիlmm{zJJJ䄄XXX <<ڵo ?1tPuf͚MN999o2usL"-D;v,/^ʥ344&LK^Hz  ##bxx8bccacc@ZFv$""Rc5w\Ow:ؼy3{=8q۶m++Z7$K?@bb"ϟ ۷С.\:#11/ݻ9sXn݃u!CCCC[nǏ;DUF?ɘ7o|}}q,\Ç$''cΝ6`W3gΞ= X gggܺu  OcbbAť;uΝ;7(..'LLLjnEE> sssL0gϞž}oau.ߚ<11gΜ  $'O"99̄4߿w憙3gBOO^u vݻw/^ pssÜ9sQ̟ǺHDbHD#GXlPZZӧOcvv ػw/xb`033;#۷c]V&쐜]vaĉy{{&MDwww!;v,вeKhjjq hB!>>>8{,lق%K+VK gDGGטo3gvobƍ???Aj`` ƍWkxb,X::::u*oo:y6mw^$''#::Z#""I&>deeaሌqYٳwFpp©Jzƍp{DžXF2Q%DDD/$K'77ׯGhh(_hlٲEEEعsL>"ǎSh޼p9\x1bcciӦ~Bz<==e<|ExRRRyfa˖-ܹ4iLMMqquKJJp Sbcx{{وX,ƠAi& 'Olܸ鰳L<xÇ9N>'O乶6ߏB̟?PVV9syeDFFb͚5;:jg$`H'@hAH* HpE+"xU~pAEޤ+Az)BP ғy3sf2!$_k}g֭[6lg,ʆ-^3%''wߕyݨQPTRE͚5Ӗ-[c^s3E'}ݵpBI/Y+WY;>>^cǎرcQ T-9RӧOSO=W^:v옂7mڤhQ[ӂ TX1I-Z$'''ך5kf͚IիW/[f$y^~}M2E6m҂ 4m4673ҥKkzQꪁJ.\`w ҥK\3fd7{sҁž @Ԯ];@p™3p@%%%iu>e))):r䈞y/^\YZRxx._lq{T:;;v:t^yK-'gϞvիW-YDNNN "#aaa S=ThQm+VTftlߋzl^F97~m=zgiܸqС9MMwMt1ߞ2u ٬ իW/ms< $4 ZNNNfiiiZr6m:uHJ-JIIիdUFEEYzVtRխ[Wgϖʖ-!C/[AqҥM6K.`I鵩TZUqqq ֽ0j7ü׭[ƍoo;::jΜ9Q…g< 4vX5o\%Kvܙ2eGOOOm\l{< \ Wӥfii߻=hVyxx}ڼyn߾C),,LSN5,Iҥʗ/oI6l<o&M(((b[{T%$I 6'&&raKvDF͚5%ɢݽoI2儁jڸqmۦE7oT *d$44Twܱ–EDDUM6UӦM%OYѶm[}裏fO?UVw~L5YV1/U}dˊ+Ç?cǎZdIAy{n}z7gM8Q]t1oF 4ПifjԷo_mo˗4ȏ-u5L@RҥuV8q>f-Zȱի)ŋ_U~5DRze֭i&?؈5h@G8qB+VԘ1c,׮][M6hTRR]ަMkܹڱc,RG7nŋ-۷OǎvMAlno۶<<<~#cbb4tPըQC~͛$ >\FQRzԤ$5j*vؑӨQ#*UJs̱bٙ֊On]3d)D4ط$ȝ_4w\ũu裏uV:tHK.U֭tR=SzWsuK(nݺiӦMíDjJ˖-Ӆ sNuIњ0a}_~ЪU4sL;wNo~z5k@5DA" I 4$>$L'(DѐYEsSA"M:jD@&h̓P HX)P&@FsS3 {@ Hd>@FD؇DA"  $(pRRR*GGGUTId > Hst)]~]eʔQZTdI޽[7nܰ:t|wy7n,I󓗗Wq:t$ijժ7>GTTK-_\JII$9;;J*j߾&L5jP(n}zN_|ٳgyZh;hʕ֪U+}z',O>>GϝY Ҟd|ΔszL=V\_~YQQQu RJJuy?^_<>@oYh4c)/3rڵK?{-ZH{v%ݼyS4fmܸ\vM!!!鋌THH?tx(蓘KBCCհaC-X@qqqruuݻwWVz*\'駟_]` )'$''~9z ()SF|.]x%$$(88X_}ʔ)KڳgFy+V(>>^E֭[B } hѢEܹsobŊhСYB)lӦMZ|9NÇڵkrvv֗_~1cƘرC#FPppF&MYUwԨQZxի05?VJJJ,;vnݺ_U &wUTT}޽̣5 @۷o$M:UE_6mh*T,.\XŊtٷo/^ʕ+o%e4Hk ޫZj4i$i߾}$kR+kQhQO22d\\\tu[d ``ao&1:99iԨQ6Wڶm]W}m2 7oy]rE󓳳ڶmo߮ʕ+rww _ncIRN$IԪUtE~:t-jlۓDmذA;vPxxʕ+'ooo 4> ڵk :v(Ѩ˗kӦMU>{={Vٳg"wwwUTI}U͚5~h,ڷoG[bk:r䈢ᡦMgϞruu{ i}JHH,Wm֬/.I|J*K.Ӓ;f8Hpp޼JIIիuVEFF|߿Zha>ƍ+<<\*TPfԿ>^իWW>}ԨQLӛ2 ɜǏ+88XT߾}m\Ȩ-OOO}'5x`ktCٽ~-Z$%&&ZjzԴi/>/GX0f#25qD}TPPP7N3gT*U;Pɘ1cWcǎo^KϷ/B+V:\rT'3~~~ܹ$iMIIѸq4{ls/_^~~~rL8!C(88j%Kꫯȑ#-ևjժrrrRbb HZnm:zh/6  9RsLƍS߾}yfڵӖ-[,w5~xuEԭ[׿9sj[v}4tP.ggg;6m}_l3YFV%}Lo1rssSLLt~-϶̞!y^gn޼i~̙3^N<"EXӸqc>|X#F͋e\h߾z- 8f~i6ӛ۟y~;d\УGխ[Cj/xϞ=3gb[ǎ 6(((H 4P6m25j9={cǎ*Z6nܨիW+,,Lɓ'sWn:_V||^{5W_irqqQZAÃ\_M7V.]Tti]vMk֬ѹs4w\=zWu??jђ2egUڵuqmڴI7nP~~zu5GՃ~2ԪU+ҥ>3f 6T͚5UV #""5B/={_&LPFqW~ԵkWi̙:s挶mۦ~ǏkΜ9W۶mլY3]rE[lѕ+W?+99Y .̑2p%K7nPR4p@ըQCnʕ+O?U ԯ_LͭPӦM5~x:uꔼsc]v)&&F~>'YQP!͝;WZRPPLHȍ>}(..N۷WӦMues4]s2>?dݻ3f176J2~7ӳgO$رc_S￷?4o|rӳyfq7ou /:~ʔ)}BCCTczu1Ylym۶FIƢE/^hb&c޽W\4DQqذaV%%%7ondҥKg@@,xFIƆ Z̙3jժ%+VhLLLi=ϟo,QEٮQ^3nذx7J2VRYfː|wU…G8f׮]_[l2zxx% bmҤI㜜Ϸ:]v}mۖ#e>3J2*Ubq\BB(f<ݻ׼>!!fޚއ<{h4Gad0`ݟ |9M)))~c*Uov=2g www$Fm~;v'|(8by\pqq1.^HªUevx86hRe, KyvmnTZ5=fʕ믿TR%+| ͛7رcֿKV4___ ܝϟ6oެSNAϷ+ӢETdICW˗|9z!!!*V4aokw32|`0h…V]f͚%)O޺umZM4he˖wߩ{*]ZjiӦ矗ޤVŋKcxcZдj܄~z7,K.Ȉ#utuuի}/Gc$IO?TbU3[ogϞPC}ff{A 4HX{9իWO͚53_~f0>'U|yhĈ}N*cƌpoW̫CݼyScǎU6m2e/~&)))z%ISL|[h2޹]5-W9=k$'SO=esx|a^"##aso@ ۷:wڵkK:ozziW_sA$g}ᇪV^|Eݹc/~s%Kh4B |AgDpkE>P0`̙թSG;w֐!C3d&*'V{A+6)Vԩ-[Ze0>ٳz_U}zjժ۲[LU\ӏvJz(y {s٩S4l0>|XRzҩSjY>WСC$?ruMzׯ۷mAٽkjҥڿ\bpN/}dn ܼqqqQ֭պuk}ڽ{F3gÚ5k^u 188Xǎ373552dH#d/]MnHH֭@egѼyo*22Ry̚5kO>׿ir+s=~?99Ύ3gj۶mѣQDz{oS̞ rr2>?$9K.հaÔ$777M2EG9]FO8q$>Gi/S__,MakIYnkZf:uAS|}}uy?>Gܯyi|V)}+WlٲsҪU+m߾]ӭ[n: ^zWN:UVG}/C>@$&&H6lz쩵kjڵڹsӧow}9Ƈ-'CyANtOkx_hԨQڲe.\GUvZ6a??$;7oСCN:i޼yjnaE9: yAQF ={Vm۶՗_~o7лkUC3<==﯋/fQNVIZpf͚ +WN<֬YcskZr>Ss-O>z=sS\<8'ʀ aÆ)--MǏŋ?(&&FcǎU֭sF ,,,Og{u9r/^ݻw70nV V?akd 䂸8 4Hׯ6nܘ1..N˗/ tHիuȑz}$SNol64\I6G41|Ȭa^OΝӍ7t˗%nNۿIͲl2IʱU@@@M-[\c2]vi׮]~>$㣯J'O̓`dUFxAz`ܹsUP!EDDd8(T^/7othSʕ+[\aѢEΝvڥXIR6mX5k&IڲeN:es(uY}cNu$VZcǎ{Myv&֭3M1*Iݺu5iҤqstj{ڵU~}I믿˗/Y xde>""\3{:-ٳZnsIϜ9/nFυ7o߿Ί+ui.?$dfoWJSϞ=UZ5Fj48 0@111*Vy~ʇ4 m zwvZz? &WWWIȑ#y6===գGM?"=Hk.]|Y֭jժD۷O>{Æ {jѢݫ3g*00P]vU||nݪ[wڻwo(C]^y^;;;Tf2eM6ڻwF~IM6˗sNsZ NǕ+Wx^($| ڵk ݺuҥKu [rwwAԢE i ֎;,5VXQ_~CEg}V~L&Zbڶm+OOOO>ѭ[g~4HAn޼իW[lԼyԲe<*Qo߮?\_}ܹ .XJn0ԣGjܸqY6l(*UJݺu{deK}^x9rĢƏ/"@6m4k,{uq...6ld9 /ֳ>YL=0h a{TnҤƎk0͛kܸq6l/...m߾]Gו*UJ*H5ѣG5f͚5롗w}WӧOW-ghժU:qℒ^zw얁_^.\իW.OOOo^*U;=iiiZv?p+WN>lz^Cyy_nDDhz *<#--M?SO+2Dsߚd]nPݸqCeʔ˗ poFRzG ?۷G> Hg0FP5mT׮]$S.]͛7%IZlku|DD|||t%IRUR%]xQwܑ$U\YǎSҥ-54h-[f>J* Ull$iȐ!Zp!7 F>Rdd,&Çڵkrvv֌3tu=zT7nT9^ҥKTP!ϊӧ~I...x^~ec.]jǍp(,,Lcƌ$-ZH+WF@b`ak&򉀀կ__4}tM8jSNQFJLL;C?ܼ-66VJKKԩSXGiԩrtt۷UH6///UVڵkqFQ-ZUN>}yDFI]I|bΝ$'''5>S۶m%IŶcǎ)--MԩS'Ǜ֧߼_#FXg0K/IΜ9SNq H&Sʕ+-W.I XwÑǚ{Tu]v5cnS`@>ѣGխ[Wgji M5j$777EEEij׮ձs̑$.]Z 4:g5au˕+jժ)88XgϞ@akd 5O4o\Cճ>>{A݊+9sAWV=yf9sF7oVnݴf988hΜ9CBB$c=f?Ibݻ$Zj6G(߿էOmذA6l V^gybb˴f ݼySfϞ4)SF~~~5wWQQQuJRddyΝ'xBJ2>*kb+is,,XfMOOO 6IIIь34m4EGGK:t蠟~I*U?66V:uѣGӧo߾ruuUTTVZI&iɒ%:o߮bŊII4DT5|wk߾ ԩS6l>,)yԩS5x _cƌ:z'4osssӈ#-ZСC5i$IHҭ[2Mi?M ]cƌQnݬW\jҥK5l0%%%MSLѣk,[LԽ{wnO?t颍7jɒ%VAYjFL˗/M ]~7oСCN:i޼yY.^(I_~կ__7nThhy)H VrrKJJ250OiРAJNNV~qFj<==%IaaawUIMXML5omgsDnܴh"EFFMsΕ}AL?$I52oٲydիW%Jh̘1YN>~AjР߯Er hh$@A… +--큂DIZp~m[m+W fxy$L'(P HX)P&@FsS3 {@ Hd>@FD؇DA"  $}ajD@&xIA"ICdMf$S`>$L'(P H$2AD@O"CM" `@f0/A"') @}>5D5MajD@&hIA"ShH_) `@FD؇DA"  $}ajD@&hI}I$(  "I$O"P1CM" @}cIDAT>:jD@&h̓DѐYEsSA"M>5DvzzZu5nܟ:HH4vmLEa%wkph֎پN(A7>hfΜ֫T||uR۶YB/i׮0ED$OO(11UT86<<^ouXI*YY:UPJE[)44V˫ڷ…u o2$8pCӦ$5jڴ)gޖfOUj5cSPvZK&_̙gզM9- 9Zż/TS/GAAq\ :uN*x] K7Yy6LS`@/_NNօ:!!Ms'EԵkMTߢ7|[}qCQ\]]4u١;wRv%e1$oRVۻ8k0.H(\'v\})]ڶ}\EZ&48L:WԼymrUǎEXl+YYtT.^ʕYl֭u(\'6vlm*d=gZQ׮k׮0]'oDoWռŋw$I=VHǏ5L^oSPEG'oߝjC]Vc(g(\'ַoU/ejm_gF=>}Dӈcjj>bbouw]Tr1mzdUs@D ~qԋ/V{UttBBbYB#֮5K?3l}޽Z.;ôsg]xGג%z-o]9l4s<r:$KU7lRb Uz:>޽w4cWfEݹ/8'|,5u9}y B"_tW>~sDo3gҌ:z4BGF֭uժjgdPJQGdzM`sBn^'|)57ﮥ{Ғӧ°dyE0`Є fEǖ-[< ᮙJmuy0ص mn_غu9/_TF;Gtjq z」s'EE8MˉkJǸzu.]c3؋IoZ~)IM\M-`uťXu-O\\Ç#?qN}ICAĪoߝzR.dm[e0H|c5^:z_OReUj1%%H<)IܹR\԰aiҊ!t鎚7/4 :tSmۖE1Mou-Z%s}P`D|}7thVQU%I ̙M4eq]Ç#,)SXU6䓏i$o͜yV11ھvggu^Qom~4!ց7t Ν+PJc˖ewEI1\Abve0C:%':q"R*[T)-˘k2rNv իqq#Ann.P4qWٲElfΝ QDD E2[-i8p4UPT{>u`k|$Z H}Yd &@ Hd>@FD؇DA"  $}ajk47ͦZ3gp`Pʕ6mh2_55ydPB:w\\\޼yS7$+sz'Ijݺ~,ƍ֭[͛kѢE9rM'OT=$Is5~M<9o۶M%K̳G`H_\Lpvڥ~A-Z$OO|@o^uF1Ͽse˪jժ{ŋ$-]TTdo>=z5r욒yp210L}A-X@K:pݻw+V(>>^Eц SOPByu'Nkjر]yJLLԺu /d)r:tȰtܸqTf+aD?X{ݫKjРA"]۫]vuҥK֭[Z|}Ĵ4^⸜ԨQZaI&)22R󄇇k:r䈢ᡦMgϞruu9600Pt$ڵk$!-< Е+W.)FOj۶co߮ʕ+rww i 6hǎ WrAeafUn]>}Zk֬3wM_Euq~q\'̐Ku`DEDԘp1FD 0¸3` E64B pۘ\'Vڕv-t#iO{z>wߟ˺u>;VUYYYZ:yԼysfnibݻWgLtueffJ+Iڷo֯_SN),,LQQQ=zjԨ_ 覆o:+))ц ŋjڴ,vjٶm;wN͚5S.]dX I-nD|M JePJKK3-ZԵk4vXXBR :IZlf͚eLnR^ l2# u+o˖lnf=x^Prraaa7n%]kܸաCmJJJǝթSG .ԸqnOkVqq>Cjܹӧ$͛ ٳgc%''k͚5ݻvt&N+Wd2iܸqZl󹹹z'$IyyyjԨcIILK:nӦMn?>}ZIIIZj,u\7ׂ_kv*kʔ)2ڱc^z)##ë׭*\Dcd^EEET … b U^]m۶ՓO>il[|&N(IjذvСCھ}󕐐T 0u+S666VӦMΝ;6mÁ~>}(44T[nfStt\f&L 2D}Q5m6mذAyyy5j~W2999zVZ6lڷo/ͦ-[(//OǏו+W4uJŢsj׮]:˥']Mի={ fϞm:uRU^=={V6m>L:t/ձΙ3GK.U||ڵk+==]_/%&&:ǻ%uwՓk?!CtA͜9SO=l6-ZJIIu}w/*CwI$O3JLL4&cIKKS%d2)$$DZx6mj?wZjbuQ۷ownZ5`8qBlF@_JҸq|r1BW}rvIZx&OP;#I:}5k&,sסC*22R۶msXbѮ]TF YV5oc.I|WÇO?Մ Kϕ2xuժUK7nИ1c_qw^,Y&d2i5kΛ7X?ԣ>2Ļ]Ǿ{O_+++!ԣGEiƌjݺo[,xgFDվ}{uRlR)))7bL&Zi{vdw˖-~)@7}YA^|EofcZjJNNvZ~ꫯTN]|Y˗/.g5X,n_ɓYBCC5sL!!!2͒cǎy}111N$?2{/ֱ?ڽkɓDI޽#@TTOnݺ?nDڵkfGjj~wF|Μ9n}OLLt&}6޽{WU_~j׮$i~)@7Fy{V~n{nIO?Ν;,ۤIFzϞ=>=۽{1ݞ={+..iF/^ŋ+Bylܸ]Tg]j] + מiѣi4iwc`ҤI.'rY"##խ[7_oeq=|ǎeZ&/hժ+ѣƍ}OWO8Z~XAÆ bW\fӡCa?ϣsuv_ѵ_mО1n; H>#'tH˖-]>oݘZz_o4h7詩JMM.](%%jZ͛zjeee̙3 _n=\j] oWXwg(o˾ߍ7Rz_.^ʲDMUHHhXkԙ3gԬY3i *6X^II,6md|HEGG+22R111:v옦MvWc0ױ}Eׂ@A@@$"""tA:u~eEljժVz ܕlѢ:wkݺu6m1Ͱa<^/]Oٳg;en]~kv6OL\sO?UOiirrrI 1WBmֆ +,)))y6n(>ekטu|} HD+Iԁ\ec}_ꘫ.]H222rOfo [,L&۷OVR^^6lݻ{T… mVOff&_4?nj``ëAb7fխ[W4j( srr4i$IeAlٟ1yݐ!CcTf3]|Y#FPQQj֬C}Í`>nl6{|Xvҕ+WC)99aI_G$iѢE uX@2BBBrJ[VU?bcc3ϨP7nԹs猅? >\YYY*((ݬ?֮]#GSNJJJRhh9[㊎֡Cti͝;WfYQQQw:>m$9rL&NK EDD/TnZ6Px^Z5k|%k׮JOOرcuqeff:t ׂ IHHuM5jȫs6p@{zo_wj֮]={*""BEEE7o.\ŋߗ5_N@Ap1nvT.]ەB)66V}UX@/ӕk׮)""B3fk_~]҅ m*>>bV56Miii:zU( :TՓ$/Zrx 41:^lk0Q$@p5@PxL" @3L2n ϑI$n0&j,I$n0&jIw$75$ @0^) @PcL"C&@ HD 1&! H8)n I$b&S H $[t7$n0&zI$75Iw$75$ =D4=O` 5;dDIc2DA" $A1DA"M f2=DbL"EwSA" cƘDxL" @P)C&@ HD 1&!xD3A1DA"_| hIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Marburg_page_1.png000066400000000000000000001667411420322575300273740ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxyXTǿ3̰/;(f++4Rs+24}-44 Apd}aXg1raa<}`g{yyd2 AAAtIQ\\LAh   C   2GAh$AAA$$AAA$$AAAj D  ҐM"AB"AAAu""K~)AAA@+AAѥ!uSyJ"AAAAB"AAAAB"AAAI$  . $̓V         5M"AAAti&hHAAAHAAA(CAAхaAHAA&h.nJAADon4z\ x C;oܺu^ Fh xӧћB' 7pڈ;w1{-ص+eSCy~~Bގ//cjKCxxQ88;ѱuͱ \7ް}f릫AIUynݸ8ez PIhh󿕕%]~.\h6 UD6]UhIҬ֭p||8h4 -a"9IAx{{_i@pѣ ;vĸqO?<wpd5kbb"1{,lٲM}NFFuu ֮]@M$///c;t{zSش?J|6m}0BeXAPkMQ{Onn zӧ3#G1bD&'4׬P* ޽pu6`%D" a[g 11F{f|q8UBGG?| CYY92327,k!--]z@?  _߾L8xwǺHb.z`+*♣{w]|MzuӐ~KŊ8c0v4AAtY:,y{79/ T1cFc跙E"v9TΝ{Chu8q/^ƙ3@$iP,ܹ&]vFJ7QQTlC{ڰ!Vs30jWn*B> KQSS򼡡D"b1s=n݊PETQYY ?055Ů];F#Jǟ SZeP Z]j%T*TTam̓>tt/K2dfVP6Շ'R*W ggMET*CAA-Æ^X,,^ oJEzIzbdfVX]],,x|w|YY(+? -i5ͭT 6io^b{ݶO3DF j!I5F9uWD++^^<%+PR"6adYGuRWH==ll`a{@[A)))rغu˙cƼVW\\\plΞ ѣjryߌ܄8=[*w)JJJ=zyys$$>)II|lE lY<5)+b$?ECQ##mmZ.Y77#ŕah$&쎏?voۊD>vN@hh!D"E׼zzZ;SXUӵal/lppd:F__VK#:'!"BY[bĈ6u G09GS\p송C9}ױ'm?ֻ>=Gyk]?>)-ÇGa`K4;Og. oobD<|Xߎ o&P}qt˅ /{۸S?F߾[=\>>G1p`ܹsDڵb1:t~=pU7`ƌO!Jx033ũS$\+#u3.ʕ<><jPqq|J￧) ϯyuѥ[M(VLl'Ҕ:8|8Nc*;8ܹlDE@*ah=:U6߶InjpC9-[5('57/II|ZBZ^Gؒ+Jx\;XBB9,?tàALukwInòP Way\l+~h?qfgW3aJKJ 㬬cǎxČO6cG<Nf~jc0k룦FbܻW ()`P:<:֦+VD*Ά߿,,x + ׮3ae,0rm%K*NNxy+k#'ẙ@cǶxWl/B"K/l<]Z$"4RuNLCpp8FHFD…fnݺhtﮋD>\^||LQ[+ywh;JV}P[ўu԰mΟ۷\RR*RkX.6n@[iDD:@KKWCLL,xF̹{"ѫW SSDFF!//_~384 א5ka͚u`XW_}~~aoobܾ}B>*ڵWvF<J硡;7R  +gݪyqr2iػ7pC nb-:TA@|+\dQŋb^w֭BFe .q'8 )lRHԤeʕ<ܹ^4E!sbE$\CPPVm?j2u>"'6RSWZ5ӤKpp̸شׯVYQ!BE66zؼy&ǻ:b۶;GiPAu%UG1|::l^Ç+ lyy5{*axB3QAt|jkkqVx#22 QmLUUU ١ʹnٳTfPǗ+E)}}}-|m_5߅v 2HP*aڴ8z4 ԩO {T+3vvVRݡW?OP}ckAmM{ԑ*.U- iR}d  K%wQGEmɓi A㋫:=ۋ}Z~yk3mаu㪵8yc>x`n; X6/DXXJo{2.ϫČkzMy^X#^(*tD(ΝbX:l5\ ]mW::l=<<1rd|eO81 YJkknCuu)'ښ#Uh"ikS_4\I|d N{' g?FTU%i>u YX~ Xn#,ѫ)5C@z6k7g.ZX, @btr teKKlYR"yڈ]"!:ȨBVV22YxlM߂fpVBGmxMS:l QVo|>yZYorA<ΝAxmXK=ז-ۣ+ذa#**TONq8$'?ر;$$'\-6˪qkH5 Ǐw "^P(bܽ[N#GG1t5^z;._lGÆj֚m`ne4k˅ػ7gf? WBjŸf}m.tԶ۞4U7>IRk?ؐ M&Mhiit5nBXX8VZ򺩩)|>V\^^9 o=Ne8 u+L:@ٰE(u*G*_GMpt4]HKĕ+yz5e̪ >t(/b˖Mzl -"TTP\,֭toz| Yu4ʪG(ZXe GG8:y?'M<"p`٪@ mwv:g;K>%:T*H}a_aA/Dl6Rq6vfVTXXӧR8W\\[y7LkIjQϣ*/[3FmqDX:SZDDr%rS+"qm\n\̙u#znjԗ{S AbYnUe< /Z0oeRS*cKoꮦ+BGkD[a3DZT33:HDqss-0hsE||, .""ncݺ00G@PX[[aޟ Ennf&N|?ׯo`ܸw`n 1oBܽ{[obݺUpwwEEE%~0.2 ǎB@?|}} h,))iKKK{TT8LvVW_} HJJĉS1n;1c: q)L Ri֖<ӛ5ܯ)?KI A; "|*ڂ߶Wp߾n]tI:8q*}it)VvAAo ]sga+ 66g+h5HNNQwzz2OOOwXd9B&"<:LKEIn޻ P*ۗ6L^w5R/X?j!l[>1m:wh'4Tŋ9>]HMhw3]O=H$krr#A7ٳYMffV޽}Iw|MbZ ~SqQR"X,ѣ?߻+*D8y~aì;DmhPe1\kƞ=pREo;̪Z],m}AT32oqNQoeO=ߟOmIVA4oOOw޻ׯFzCC{BBn6T*Ř1oaz"8vw=͛Wp)\3gB$j[ff66o+pfrrr{Lr1J+4z7sb?r$E@:88~5N:<MbbJzt);w+<דn>}̘ߛ6*xmHTT ;ޅl-NZ}Auegf7Uu&˰zubb2ƍsTr& ~GBrr V^t_ii7Pv.0 IDATqbhh@XDǎGxx*+ɓ? v܊1f=//f'P{c<1dM=[׳`_~gd",R Ƙ1xB&4fp=x%z2ZZ,2TW{W4`HΟFlYoL4u+ΟFVV5B)>, Ӧb(;XYB,!2{$(F͜ 'pruPXXi .@b/ŋ}`k ؒس'׮+a-ɓo@$"%|pg{a`Kx?Yػ7Bݻ2v6{ڲ&%mkmy{OFWb|c[V&Ĺsغ5b HKed >_BLz}恾}A[ ?mC;AtX,VhʨKg=zJXzT|t0m``XHIIŶm;Q^g3-$%%  :x8rd?VZ/6ȷ:M"Ǧ_D7K)7|O-ziի0k-$%!Nԩt{|V+Wuѽ.>ЍQ)c8lǨJ=>23bʧcҳ ƍsMޫƍ1kVJK س'{$BG H9rdLܪyn^nu26ܹ^ظ1Zѣan΃} 18<:z6òekQ܌>X6R YYXXa[aud(;qչ9mwۮ.RR}t:i@t5!C0`9ghh!z+\pSW{o_3|[_/` B||9 g‚r+XAcee [dcc#GgrahhEU{ ,^kn6V^\->}&D"&O}~B~ѳ~G|LpeԳ5lj޽a(;;T1acd?:]&}u̘9s[A6pp0xjug{tw7-fªU}:9⣏ܘU2>n?vkPxΈ"Ɩ0j6mdP@,]ꋲ2aӦBkwqPx+[iv龹- 6u( &Ov~~?{c$g> `)vz'{6BBs૸u+wDDuCDTUUUW\\3>ÂsTC, 'f"+!v܂/̙7CBB21`@?|r&x̘1PeԳy.0!镸|911(.Ax6ߠiB\J֠FF:у^z–\+PZ*ˁ%c0?ɩ?d!-YY8 /Xa+FU"0*lfy4APjj$x17n /zz8; nUƍm.V<;ٴ`aâEv#5 -DHH22PZ*)Fxu[8:tIM?d")!hû+l;A'֎(..y`xÝ;P\\WW899`y<u3Cmm-냄$TUU!77~<{S4 {{[ &t0hPjjjpVDD :=&]G||GAAm%$:u!8;;!!!?'O X~^U=c-* ZBb"K ޟRZj  RRRx2l81a4IH$#bZTU^DZϠ7lwS  ټy8WW"--h;hFDpX:TnS(~ gf)y ɩʕ8{6 |)S\ Јrܾ}))$ dHD))`wڰׇ.II(/7g {a8G*< h';M"AB"AZS<ΝVڿ!66z; /ԝ  HH$HH$S r]jTWab{{}[ BAA8W m먭Ukb̞e剠ٳk6Ckhll0u*A%\\t",]Zᚩ)bq[[X69!  . @xm,X0>JZ/\4T_?8'  +wgpeٳZZq:==szzDC ܮ]u6/^ʞD   :$YYXl5V-g CT};v55¶mPRR=l¬\7c0cHNNg̀]L ^x|,7_g_òeqNW丆   4 :_wڏ~o1vW<_VV|Db,H2TTTqkR .];||zA*bQx7D"1aa,w  HR|_Gi @FUU58044@ TzX "#3:mHAAD&66mچ~Xx+ 5ZcW}Frr*RRR`۶](/3G~IIDyM"AAA7 /09'PSSѣG=dɗ6ŪUKabb 7n ED]$%%㧟6CGG, SL%ʚV  KmYJ/p_=R [W_}w.mvcȐA y nqq n޼x˖AXm)ĉC((HEeeLLpRܿHe!f?Frr+ UUb$%n [[=z5$=qq֍ s*v$?epp0SˇP(ō04ƀ|uzg! :ݻK?'y9#<<\\k<{+2&+en>iiX,Z 9Og`ÆJe1%!,ޝ{?|||9-W_iĶ,R/,A>#..MMMCjjkܺuKgQ4w,+ĉ41uR;;}UR o&{&@*a/XP311^L%R!^<=q@>aDŽʮA={P# NѥW+qD\>؝J(*V'P<bcˠGGvB)<<Ώĭˁ1  fὛJ$2f$vmm㩮CT*X<Ϧԥrڭ>[&ͭ:b<4'=T1j e 6fjj$j-Z1Tos$JeOJ>n&nTHqiZXSm}.AA]4:?ǨZuﮇ]-.?'2 ѭŠdz}Z|}?:4ܜ޽0o7wUsR.NNܹ^JK!=ǎww#@PP6NNGb""Ά: ~GO0Wg ROgҥ̜__S%!b88`xʰo_J狠^LTђhnꄇ/@0f֮Ƶk>;֯ܗ\#Gqz˅04F~0gD``Jepv6_PjC52!, WWC̟S)$b,XSڵ|i뎹s`d;w+Ǐvm٬FӼ{ǎ"<Gma(,ǁ-8u*ZZ,xy@W2ݛB1zzUiHʬ Ir*%ËPY)R>$"^^_#2>-ƯrFӧ #  }vSʟX,!̐X+W^#G\O(bѢ۸q4DEbp l ٳ^Ee#=ֺNƴ9--]]"#K_HO޽!;谡#_=65"$@ew'`$)LM-Epp"#K8:Cؾ85%6N{ْkĔ k zHMDLLf̸}1bnn L\\ VHN#%˗߃>CZ~j>@hh! 8:c "7WG!+$OnxeܼY |=<9A_L$^H nSfĉ4lgĜjl }}ml{RY糱~}1t++ œ9^H$Ś5Q ƍ18typ6{<ǬDԩtXXu?#蔕 1~KqX*>ȍ9a&Ov{9aР _I]ޝH{c(;mpp2O[\͉)T1+fXzի޼Y Ԕ5k0pяX,pB~1[֮6W1}BB9M ŋr WyjRJ89B__׎ ʂ16mϬV"Lt%*ŨQv G??36Ϳ?'V6 !SG <'\z l<@8;ɀcBA%eZiiܼYEzwbl~Kͱ8xP.YG+FHln6./m2[/lG>;'gKJxKHKDuXi2  MItt4̙ Fفrs$DR̙%q|/uV*4R 6+VZe/R wWPUg ܹ^ +a&&:Xl6 `Ԓ0mÇrƗ^p~xGL0PmI]4'[A4Ʈ]5Uڵ+l6 7`Dba,O:=((NNX #G͹)AW͸2dJJ4`6uf##m jLyիQ>&+zeس'l>qTTTF嚔ć9›J>zWhIٵF |gy`Xa>qq$(/"".. "S[TMhc ĩS]ttذ# Z8$ A A,4xhk+g72,K6J׸\# q8,€!05UTۋ/.GaPV>1CeOCvm4cVVsOUݖEsoY,!!xÇۨp#C0lX3BU]ZZvv2z [6q**雙ʊOOcǗc{X `1lfsW]l6VS#ArrVmTI R*+uADglN.$66{*1b\Jz;U66zJ Z imd* N éSr%HN@``,-yX4hzRl6KAeQyrB}1^e^$#QuLL)ttps3@ A^^ taakB)UXuTzJJ%6$5Bc!a\DCCmxxa@sL쌕+`h8IiiٵF Acb `cǨQ80N…Ɩ…\Mbt/^}G뷩vm <(T*S)N9AA!02҆6lyUϯaT #_dۀufPPP=yy50MiV33.fpnjlqD*-Ewp̋OTߔ]:gB֍Q]u9WVR VCBB95 ))UJeJ[nQG&BBB9D"R܏ E|%%a/\o$>< qq9MsS,SR*T\\ۢk =z誌y#:R@nNx}'"ܺUGSSヒQ5ߦeK˩yL}gT HA6vvz(/6꘦ΓacܺU|XXC[ ++HOT.I)ua- $,ΉL@V{qd:sXÇwǞ=`o2!uјSJ!5ǩ`˖8ۗ@]OF‹~3Sa]gئ۶=AA8}:]n_'HUI(=+7nĨŕ# WQZy -l̛[vvUiiwG l 6wuDxxMĽ{% O/l]ÂX,T*kvj.ۺ5%6vM*r먜0# ϨQr26B(T޿_Õ+Je#00Y_#v5u?Z+ $LsS}\i`xCs<%b d2Kds뢹#6 zzZ*U(hZ BB _Ssuv(z IDATM.ŕcϞDL$%Ʌٺ|QI0NN`NH6Lo(XCOOq(R/$*=尲҅\G}hkU$cK܅D"ԩMid\xR/<|$5Un0T\26ADgE::oѣ )7mao2<R fyh_mӦ`d#: 4&& &9t\-tupz>NJœ9^O98v,ff\ h쓖_0`ׂn*ga$g飴T?HGJJ|}M[͍1Q^.Dݔ1c;,Ka 7xz{}vȽa::qqe93~ss.n.ƯX%?. Ho̙ z5>QxW{1k-̘ܻW_{=]̗߬O++")77#<|ȇP(Uki0jNJǼyw#9G 3 oeÛ쨳}L5ßf0c㴸Z#:A G$f! :۷j {czdtk1)F``(ͭߦe{֞=M&$[al@ ŢEw۷sYx  0^HpXطoVDHHU xq/ƦHnǺuX̙C7wReiúu}iasYw͛F۶c X_~r^pms[97FSJWlR_~y͛l뀹sA,|yo̟ ,YrwBaa-ΞR`XI.ؽ;yN`͚>8v,ii _~s_}9ol,msFx݆{Q{sPXXkʔ`l/|FmeĈ LG||9ꎂ|yo3l=7}Z+2駡8p $13n#bw^kcG7o7|}M[\e{1uvl  LKNL<|G||9JJCJT1yuŕ…K Wiz51{#>Z <ktt)QS#.l W#=<ZZ,"B$⭷ܒk^*ǤQ億rƖT ѻUoSG# ORAϞ4̸T AADHH$M?AAD|_MfJ:+W5HKʕ'7HOo9s!$ ܹ!'.D"͟HAA)zzT&ֶZ:&&҆L&CZZjkohhmi{;M=SS.,-y`ui  Ј :%Y,T[8\e,2Y NS$$>bV*  .Bnn*@[/ܣpNO/H$R?{wUq=" .hn{Zf.eV\[nkmmm.Yr5sKTT\T@EefwF`)8={i>嗯xh+-rT6C9ZӬYs]}m\]tN-Y򲲳3uu(*:uꩰHރP^^ԦM'9*ɠH9~w}FhU\\57%H;$]s>lh4v-}j]6tXN̶n۾}oxZYئ $nKK;“Ln+**TFFVs.DphTiiF25\mSPU^^f^/++9{\x k S]AAa6۲3Znni۶nm==fvv"z*o7vw*rqUhhO'HQxxCFQbkP6f̍6\L&Ǝɺϸq7+0Ú?m6G_~ \\\uw`p6%&nS^^&M˺%LSf~5Lq)Ф[$wլY86gM:Ԙ17wrsO?-UνZ\\nzL`h<4E^ԴijР+bPRRv8,r}u-O羕X&fZE8qsO֭̒{('']WXXZ UZZN8pook%ɤÇجYsoEHlqOO/iYnnJKۯsgD )Є @@Z8@ Hp/SO}!_v۟xsupY3^U߾Z.zj߾ A"].`Zh%_g yk!Of)%e0S A"DLhC11NZs:`p׶0M裧tht-Եk>d\]]=V98pqsWܮi꫷tphҤhGud$i⢯zSmtU3]:z-{G [ǟ5}5:EETիiŒֺYzxW_~ƏUz4JOO$q6&h&}PiivMwR;N]uK]'ы/CGt=/PoWNqMz$/Ҁcnݗ 'T/|RStM؜Uej=5a i'77sKrqqoܯ ^ܦJ]CJNޫJ2(,,¦93)҅ҶmTQQb{MN[ UL(͟v(33Y GEEs$iWԡCkO_}rs+k%m۠ŋ_с;~[)_yzzٜ'>~oߨ?dT˖{||GO+%evh회߿M?O;gW)?UppoU>|$lZTXX23moݺfzX{7բE+IR~~,y]ӧ?;6j5V^Vکoߑ RֿKKe4%IaaJO?I**ʷI_]pX|ըIoJ聊(oo_)&fTQQ.(d]lYUF$ã٩U7<[׻b;+?s2U^n^u_DI;_/&f6_Y?}wc?)77wm𵊋 [z ,Q\{ZM7]SlJwSϞ[95w}G2(;;S11#f] PUU^21-j"ή%"(.nݶԲe"#`8ÇSgM..]tѥ&A6m߮MղejҤ;ԢE}d0ۻ [\r$Y bj/Y..j;d0Ԛ8ji%&۶w*))TLH%'jFj2`'TVV"//_-_22jР 瞻MyjČеާ?zuh7o~J]]w_<_uҠA`pсJJw58 f̣ 4MmVNNnwwiQ޾JKKR~se0(22Z^JMݯ<Q˖aڷoo֬ڷR^^23e6||$h@اs'@ HԀM&'g7jD@ 4iIDP Hأ)Є @sS8DA" P$MS`nI$5O"Ф'uCM" @}&> H`  ,hn 4iIDP H$j@DIO"ȑ7(:z:B'Ofi~G|qSU|d4kݺu^ꧫ%KWRR\/Pnn_{cJO߯^M"Hpf8Ԡ|%$av׮MԵ@%%m"Tk^{% 7 HP/fIEE'TQQVc @aĉ6׸k׋4f-JI٣pfurX3*,ɠC:~o}K^^tocގWH]&CFQ'Z))͛WȺO.)I S``└'77M8C_|RRv-Z8}vnDM"jϯ23K/Mn2 s&OWuO!!5eʃ `Mo6TX'Ѩ2uZTE_YȤf5g5@\S:v찺u~Zo}[W^y#ӳ֮]TI%&nUJ.tod 2ڼy ]]7TѪOcig5k+?I:z4Y _yPFcu[PP[+++Eyy95MmF\ M}VIII$5O"Ф',!rEsS5@Vn۷ǎeeUr/fJOϬ|[wh]߭[8_|ݻwo3u:x0^Ps΋3f.l|YS :>|ZnU}[ 7_'I]s:!::J>W -zW7|m]1ckƌ1ckذA_Dvg^m۩X[rqqQLLOed޽iG'O)%%<۳gw=TV |evUT~zjk>wNWƍA+--ú=8zJJ:$Iڹsys?y{{* @-Z[k1oBIҴiW*44D$iĈ!+asyzzXh4٥uPyyy)6vbbzB;vv޻>O Mk}:i[W^y.\*I)RӦ];GSnQJJJ{Gٹ:uBB͟cG(&oߩÇ+;nh]۶픻n:k~:tJ2kI mm0Cp-_RFQs~=N>ڽ;A_|񾲲kʔ+A[4|` 6XzꩇjAZgnQlIRdd{[򜖖LHOS`VP.CQII֝w>3oA|O 4u$WX_XS}WXn:߷iĈJIIӛoΓnLB+V;|,w]yeaƍ6l~ED׊k"{yD{׈uWٕ_~~xCyxR_0D2XۮZwޯ_Pwׄ c/ҨQClJDoYw%t@eN*((W˾4,++dR۶aѣw$k4c-*/?f]⢙3oSYYrrrwye2.+a;th^L,e_ݵJ̈́%Lǎ.,Njj!r$ROO/Tޑ{:ltm4k֓ڿQM֚2rXֺk'kӦ>o]UyWnf y߾jRu&@}r͟[{.z7j\_c8=etɒo`[j6L;FVY_ƏCj׮$i׮}1EGwQ@@su# o~Lzue0 8ED SNF9:tбcǕsu9#m۶VYYnwssUǎ=Q>QV:x0EڵQNN 8ʳ3er&  HjED}&`\D<8@ HԀ>@FD 5D=MMQ7$'hDP΢) `@FD 5DA"I4$nI$5O"Ф'uCM" `@f0d0h/YWhI̙(/\\ZӦEr\ ss˴sgna{߾.p\ ¼5jTmyyڼ$];EE5w_nUh AbLLKĴtmޓƟ%I_jF7Ah։e2뗾ܤzبz"/\Fͫ$tdYUPPΫ)06l8>;;se2ᢎ4>R9 IDAT}zjBZVh J5sSTTs]sMF KOiSN <<\RW^#BM;TRbԩ;PWg7*3XSF{>N+R_~ŋR`=ر5sf|}TQa֧&o+#HԢ wwUaAw飏l֕wI=Vzkgygi;3Pvv mߞsԯ_K/үN /h;l1ӨQa3+wׯ?r]|q+:g!yݰሲKկ_2YkfcٲTsRo5@fmV|heZ HfMJ[oUZjҪUZ**$F6i-֝w&cƴ֐!! yj˖l͘snxT>/Irq1hviݵs }UrrJvm|}=d6KU~Ag,~"ZW]Poܙ^ۣKpRW]^yy<8D_Am6޽'k{YB-[k-.YY%ٳ|sMYTTs{饗vd2kǎ\ v)?\՘1UWǷ駟(>>W}wX&$UT;%U6-}6TAB4aB;͘񻒓 7॥ԩ"##/<,ZH8p @pV$/JNNw]j߾}ڻw$[n͍ݼy.];t֭[UQQ;*((N駟^zQ$6cǪk׮v:\C_|>jݺVZ%I VDDyscwܩCK:w@j2LڴiY$<م^Ha@ظ !CحϬqݻw?$I 8nY4k֬?_]m޼Y&Innn۷/3VXXݻwKOY>hBAbu,Z{{{GN |y9Ds\@M$..NFQA@l  ФDU Ŋ ֭[+W*55U u-ãskٲeںu233M2EvhÆ rssӨQT\\ VXX^x&yyy$9Ro>߿ڔoWVVE\rFV^5k%KhϞ=:~"##շo_]}rqKJLL1HLMMղe˔Çy抌Ե^;6&$$hҥڿ o֭[uqK ~sot1 Zz}ٷoRRR={*??_ .T||ԫW/M}KKKK/}||ٳyǎv֮]k=}47pC_ŋ%&ng}f ux͛7mTYʹK.7u49wa:TgeժUfIfsIIͶ__9 }=zkqxnݺ322;v4K2o޼>3gowRϼO)z>S]իXܹ$s˖#YX^ιm۶\R,5޺KU^^Yf)&&F={h۶mOtۤW_˗KzѣGUVߴl2kĉڶmݼys1BWDD&L;sᴶNIСC5l0hBZh4uT׹fɓ5j|}}(&&Fz嗵w^>ӭjS1b1Ç]ׯך5k覛n҆ Ǚ|K69&MҚ5k$IcƌQ۷kҥ*))ќ9s4vX~״4 >\&NĉZpݫӧTϞ=3W{k2tWhO%I>}ԩW^XuAwq%KH~Ν;ש,kz-닋շo_EEE_WvrJ}̙3UVV,=߿222O+;;[<^6{w0սlʪ걷o߮ *$$DӦMS6m^VV*%$$Ԛ7g,8Oj_{55{Z4h9==f{FF,|wڥ{͒...7xl4mGϙ3fۤIZli~g5Ԙ>6SSSֿv^}URRR>_rUd~t_FfI6mژlgggí0`y&roK$MNN;7zkߑoњ;Kk>|fy۫T5{wRj-&L`d?Ց#Gl)S`fu55g,D-.ZPk5=$$DNjKu6¬}Nc׮]z7%If̘a/o믿:<;u]6}zFYk^Zj x.ȑ#5i$M4I!!!u ֗_~0ZNeR׬YKJ,X/؏>u ˽kNqoӧk̘1v bZ}}S+V Խkw{Ԑg!RS?.;c~„ K$UYYy4hz-w]~ڶmk=**泠1ˆ+rEu|cUZޛ/tĈ4i]y5g,s6HuAkq1 Kӻ'~Wd4իW/͜9X3##C#hvrڵKEEE,|,--S˖-Ӳe-Cٕ?/I?~&N0u&IJJJr9IIIQVV⫯Rnn͛0mllf]v_M&^yI=cӌ#V[C[;U`- ˾#8pNHM'~I}0 Z4a "!!AF}/^[>|XGUVsέGK~}2i9~v%ksA}*,,ŋ_-;,I6UkXOnw{v쾄vAtuAӦMӔ)S4h 5k֬^ęr>prrrlZ~$=h$hѢ/U)%%EwVll,X Iرͤzj/ }&{oFnZ rǎp$X UQ[YKlȻR"""%r|___+UVkС?c@ÜSAb_kBk /KU@K.7njpB-\ּEDD؝6nGs=hZb5w\͝;W:tztMun™rS׬Y#ɤ-Z.-A>`-]TÇe2Q]?(I袋j L-5E }&{oPKUU?tMNݿGmeY\uGAC5]Wgˆ+׎_>7FYIl͛%I_Sπc(Hڼ&WRU53(yÇ;nQ1j{^^^7j2YFk֬g}իW;7l[n5#:r $VGi̙ڼ`;V}.'NT|||IuuӦMݻט]v }&{o-ThhڵktV .ުHmelX[PS]MrII^63əf5n*8qdϞ=6?cy$Ztҥa}RSS%I}\:lxx5m3ѐ{g Нa\Z?J҃>hWCg]z*..V=֩,kz-T~o {w>^6]9|$)++:Ejj&OltYiϞ=?_ե^R1f=r>}hƌ_$ ,,u[Ι榖/^^^?Wӗӻwo͚5K4w\jȑ͛k.bQj$ǯu_[o[jСruuUBBVXbyxxh޼yNnڐrjϞ=׿+WjתU_G UATT NܹSQQQ:r䈶l٢oF}6nܨy[n`pΞ=[ .TNNƍ'cǎ2ٳGcƌ9#DCm_xiF'Nunj+WG8qk.}w2/:#5=;|V[dgg[lzz/XjfF{G-[Զm۴h"(<<\)))go߮2uU^xϟ={jĉ͛fI5ͳט5fa蓈8gD>}X,9R^^nkX/}i{gS [G*ns=zǬ~Iܹ/=~M9bq8>>>uW+==]E-Fg}f -g-_\kZJցfUXX ͛뮻N'Nг>knȑz#hɒ%JLLs=[oիW׾}_[1BFY<  ť,ݻk޼y9rۧsVҠiӦW_UHHHߑ窃Tw|fx/Ļr뭷?֎;GyĺGz4sLieeIwE^Ў;z˺yzWqXu* T󳂹8JLLTPPvK.D-[<'_UEE;޽[ TǎիW/AL&I?mۦ4jJ{ָqljΔT-YD:uѣG[7Աc4b]uUu>Giil٢xyxxh.Hή6Ш3Q{Jo; IDATX]tqyޕW^e˖n|B}/:tФIb{ldرCyyy հa4lذ:kX***tRm۶MŊ҄ Ծ}s)err($R-]T4vX9n… ueiŊmVtm@&ƍ"ɓ$I_|񅮹}/_n[cךtI4AD$o^n<&11Q ,o-r$AjYf޽;7 # edd8'x:ǹ2(HLL\]];vvڥ^{M7oVzzZj]{~_ɓ'ջwo?9榨5@եTAPD$M}AjH:) `@FD 5DA"I<$y$'hҘ'uCM" `@f0d0Σ&@ HԀ>@jD@ 4iIDP H;+ܙW^S>}ԩSs JM#-/7_]C[iƌn< B;wֺ_|}BB}ԯ_s<'$ UuH_FBRVVᇃސbTTsM^]4I@BDC4 q0~{TNjΜx{Ree&.}s8ozsgDs_.z . j^^9{=&<*$K[}`SU^nqbe6/o M4N[Sy۵;5KjjzwĨS#ԻwVoUffNЃ9֡C$mڔ'$I.i+ ׈5>7n<~HWFFuvM7u @k2AÅֿ==m+Hׯ?r]|q+:gfS ;e4PVfRl1ӨQa3)7Сc](UF$ HtRVV~ߝ:9e<}!Rtt"#}կ_MP$&Nlj];wW_('Tkf]?.o!CBԲo婒V I@}NV\;9wƒuoP߾)VT;%U6 }6TAB4aB;͘񻒓 7ڳcLf͞.@ (+D4eJMg졻Mtiz}FA \P~z챞=}BB4|Ag,U]\ 6C?H;7WbbM׆D'z+46OOWEDKVnn5W_pAj%$$yV{S Pbb/UNN=h47E 'Lho:#jѢỎ>e lpz8OQ喖%I~~ֿg$= (J.>SGOc h C8˅"ԪUTEkŠ`3h0N AX)(PllU_$I:Y33s%qL&/NV^^ 5cǶ9cU\lTVVJtd7AbcOC$衇vPEw$UzXzg\qhܸ5z8gmx䑞JLܤb_DGk\VAO<[g4=p1O"ꆚ*<ᇃԿ$ĨlmpnLo1@C`6]N_Qrԯ_K]tQp-}rs)$ HD'h蓈# @}&> H`  ,I4nI$5O"'Σ&@ HԀ>@<j{470r>+'h蓈&`EM_BJI\]v* 󎏫ozuK0&Pl1bL!HPBHnnB&y:@¥) )Pbc\$[ҨNcg3|dO9gZ{6A1AL?Ol9qezn.,{"vIe{bxz{zz%y梋HQzѫ3}XxOg?vfDyK-ifN$N r"a;z$zau34D H{'\p$Θ@$D=h׀Z)1}cdA[{z" 2(.v-W[oex5;f4tw]VoZ)AD9((@{;Ƀ  #q[p0oM\Y Ob^8~_ga5AAQǎ^vM?p}Q`-v{mjbz8t@ΏF?5Ν޽ܹAn7ۧ,us*x*m*CC,y{ik;X hh;Qd۾643{>^c=:,9Ig'pa@ #>Ksaɉ7ڀ#w1NbɎRa47/ގ43B/x pՓG[p꩹-췭\loo==ghQu'c>k/3=vuYj&Ǘ`+O=ߒ%9gxɯҗܢPj_$z15AD"Od._&YhgH$Io>דj4ʒތ7iڕppm XY] l65~ٰzVikcsNbg<?in뢋:.+^ߘq- VTb53V qC17[2y3_|C*BkLiji)_Ld2ON*Րڵƍﷶ2C/6tt$ox"79ڴݻ_4 \qlL6_vō7v }J6<3ԐGG%cQcf,`ҠNmwy{W3#_^z)sFL-(r7ߛ9ܕ9Քo5kGݜw j XJx˔uس\sMr|Ob:>{fx N=grL~Foo ۶e\A9ؤ ֯gVˏ82> /u.eޜ\/gXjeM/iP˶˸ 1ǰknf{yyfuq`!+Vqp۶d{%rQN,~1e1Z;]el1x1lcc,WQc +T9|˻bǙplaV{3o 0wݺg?ղg;昤 451g?c2D4Y=_jU[l \uw*^ }~U߹Uܹ<8߂=;A`3c3Zfp)7&WhS=ȣY~ E(Γh6T/-K;kM/ۢĘ袤[6Zfyݯ>;? %e4gNsNd5 ?]pAsy&yP~XI$JBK"!K2oӉ'&۵ կGᤓXX/׿XlѦMɽ:ݸ OsORg|{l 0*578#SZvT%`Ge ptsOpOO.L*d\IUfS'?f L!WKS<ު-b9LDy/P LB6>n tRV"rDcdY,W]=:餤Ad b=l< 52Vm#3 D }A*W5e5o|#@X?Km H$JCle&A`"#կ&j0~BNmH9iwIerf,rÓ Pmc>߳3z&%&&;~lPW_M߷C|[k#IloWYԒ5C-bo$pR TYND8xr/ҭ[Ǽ6ٸW"rg=cdY,'}=[,{ΉkJGGrFjj<\m'ŸH1m8M:l_OIbO>aeKS +C.=uJjjƻr~ B{0?=j"|)cc,4hrzlY>K*!{K!7d<3vU~Ysq,,pty?r.}Lz|?ʕˀﵖq+[;a}cv' &[]r2Q}QْT*rDcu:?BOD̗iՔU*3f$Cc@Tq DBF|2K𗿰'|²6sIc8I?ױr/d$ReXܵײI-bL֮T"e {"uh!D12կ.b^p^rzI/VO=|E<MzKx2eWSƥV'ܛ7)x%Hg>ȿO-gȣ9Xv],VmԾj*ۜQLس%ͩHu ? H/z)gBe㤓X! >[XLPg% O߿ifڶ}K^plogIb<2%R}<BYurYl+0o37ySNa?h63 %T@ܢȒaS֌Ozʞ=rî#/a3OZr[pbex멧US~r7I;a{uݷmErԐGS *ǨMG1sN( hId5AD5ON;wwX4BȀAVP%O0pe7k%w;*U$EYjޫٙ^3xe5 , w1&ٸ~\,ir ;9bg} ;>!uO'7:mK&I 5 jqj*.Og u ɰw=T-yT?ՠqzK9bt4B*s8gN2d H\H 䞷3H*똌+Lgl,H ]ZzT}6W_cal'IP:4ġZ2Se&*w*<6ysr5LwٙqH?aQ%(UcDbPsΩߟ=4P}ՖA@{sߟ c*Gaƽo&dJE,0 {,t:Yhkco7B/s&·f+,t<8k|JQnT~+ꍉhŠ֜S-N9+`2cm/N j-jAd$Naf ,<&b+W15I&LwcG[ a/ [na^=:˰x س]s ڴ)|≙J=7&3{~ L>^ʔ^K5%.(evrSJN=)+ {;dl9̛ǔ&[[8T෿m$VKʕ츈bFb-2fGǬ閭2SY?\!ٸ6o}-6=@|y~<*韕o%X=R6Y,j9fmOn4Ŗo<&*hD m&ӘhV_eye[ٲ{",4mv&lD*7/|eb޼xM眓J~J ѽ[mmeg3eނVvN6K,dJ*f˗̲T~,.b&U VkԔA-u+n,d{K.ٽy>S^bI'~~IybNOOܸsʕGUk,Wj&9V%=[@򗁮'kv < #(Rof1%Hm].X{OF.i," #* JgDkl IDATڵ,x$)x3&HAQW.V' ]%Y(_;8AĴtWi/J\Cu3FL];jwzGA2f3K3oS_Q^ ;d ==(˖_ΎNAA5AA19oQ$ȓHAAS׌ AAAd$AAAd$AAAy=AA1=AAApQ^Q,nJAAAHAAAdBAA1xSxȓHAAAHAAAHAAA$AAĔI$J<AAA´$& Ȑt: z ڮ#bZ 7d"IhT ˅h4&466NkYD"!C`޼yTpr`0 A`20k,z̞=: Aj( xq"L&0jPE Lr!2t: Cԏ,TAѣ}D庮ZܻmpY3&<ԂM 2S"$hĩ( r+V֩m/" 3f̠O2# 4 `6"Nv0L骍FC  HT;IJ@ F4*Ap0th {άV+Vy^ٜFAAd$tȈF%@CGz(٬C[rF[FDjy h B2`gLA YHDB<.OJ$D"Ez& # "DQ,  AT䡈FBJR Vx<1)u$IbH$0 Y %,# AEhZL&E(3 K@ h4ZPDp8BF#3) A$t:X,eFFNYD6-<0(RD"^͖VjRd[EB]vfe$)ZEA,K{6 Z- G^85',J[e& vxmh4@ Q`4А+C!Iz=GZB!mzX,8~DОDD@هX(^ AHFp\Y8 i{<eOĭ` "ŕx0{le/OGGGIFb(ࠢ0rn7:::*%Le\.ntuue쯪Fyn455freD{{{,EQD?4 -ZAEV5Ma|H.ݞU)J-gll,ofX,~Er;ʛhF2łNzULuȉD"Vva0ݭif#wll MMMhmmʘ922P(aeQR+˲8 U.XFizhmmEcc#\.Wz=TAXX,: ڂ\b,ַYjaa2Ǖڡ!$l6t:1L9,ؿ2]:.oz=p\eV +Yե\QvXVhZB!eeppsέzT^DVf(*P.vCh4)>CCCNшX,P(I000 obpNC4E8Zh4ݛ{0w\L9X,hjjRnvm6zr_ Œ׫\JE{~$IB0D<V3<j FGG4?r!>S/28L&SvF3BEl6<6j~_Q̙Vޖ۷X ~_w3APs4͚%p```D%mmmhjj*X3gNoX~e*[ IDr1~ 6K@,&ad$,ev{+^yƇt:ttt@"H^ۭ 5kVF(VM I,ŋill̘hZ-fΜU Œuu:8K SUe'T1)ϧuttd|n4%XEebt2p{UZmpԽT|UT"ZPj\m6)j4455S1űlYԲlN3RRb466f_ɔQ.Vxy9Qs@=P UkPNWٜ{LV&斖SVMJW|Rxz}'.=EFS}?ۯk}MMM9rR%diiiAssjMT"ZPj\mw4j09N̜9$^9Fbs,Ojա#kJ-D~ &i r_--?+z>'RBAHFۓT#QU", <$IR&Z.r̹ ZP/(ʁ-/K} h4Bf$Pğ}az:N|>Hl68NX,SHly3`ry155MF&(_\NP ĚY2b1z Fl f0,*,Mm%;5>!u.H,FMwZ˥YK-^Nv]1$ᰒv`ƌ%9SȠuZ츙+LPo 4RI$HѨ%4xV,{=1Vz G,I捚hk]#b3&s}CżJskN8^ \Y8T="5H bV1AփXSau!s>X"2jc 4SBax75`$ eE<#(+Gّ$)AYHs]ʲ7S"N+\B*7~}b()y>|>ٳTȊ!uD"D"?Zd޼y"v}vmSӥ0QT#d&AXEB!VAs^㞹t > :Å)>0-۝SyTjrKץ)IŐzLD.0=~4sy<\~{T"+ԣ6z}I % x<|YA}V0Q *0/NHDB($}E"+^o.W.Wn~pviȘA,C].SXߟq$IK|KA?K~ܩg)|Ve e!r2F1<< \ N-yǣ+g#xvɹpYَow]DVjvZj^7a3W[*U|'=o #Hd=WT҇jEQ.LW)'Qل3dҦKRB1)FknnFkk+4 :::cf,#(?88ch*u(I;w---ʊnd `2ZYZD"l(i>---ir;V |׬fˆN'ʲdNC{{;\.8z{{aZa4#5ZoZt:D NH$X,FժdołH$(l6 ,##ng 3hii(Bro^h4f f+Uj@mڮ477#CEѨr/X*WC͆P(^%;t<W2q ̜9&^JP-9#EPL{ ǤLHLSHL$QLLgX,5k!2+ף-JnW&̑tG^.\.n\ӡ>XPSٌF ")ZF9\mU. "˕!KyMp8Ð$)#`@GGGvhZx^H@ vvv"g5biy:::wޜʞF(DQZ: TZȪnkvaxctt4k_v_y3LhooW 2Á3f(JP9C1νNTh'U^p5: ) Pr?'{}L&r={@EWrぇ Q\)ZyttngVVy:~~m5ȲP(h4 Y/j-XvN=p ̡z6 qFX,!j%v[V-dYVڜ(t0GYM9  J?LMRV?,JP9CGOAHQgܹsޓHTx# ڣւADBiaAZ D -(*gc֋g  H$&H$  Ad鉊ii 2i,$GDq'PTÿFVK;!IL&SUν$ ꕔ   .Gq%!J\AAAI$  ) I$J<AAAAAAD&nJAASD   @{RpS   D   D   "'   4'( $AAAd$AAAP)AAALi(ܔ( $AAA ƓH$  HRzz-~Yf`0@$۷H-ΑepFb̙3:Z&. hMMMhll|ku= ł'ƕjSnYD066x<FyASHsAuO4*#h݀Z,C T%<~ ,E-nL:e:*Ƌ(,WMSʑSS%e%+UAd$ֵ8<M1 504d9@@@$"RUCj\A$IX,hhh^Iz::I$|_G{FGG ؈3fj˷ޯG`0D"F.DW ʞM@{ 2$ Z47a2%COGKjej8::2t:ENDQ(bXE1Xh J-zA½}VVBSDH !,!=Ga ED"iB{{;Zu7FepA@ ĺGn4j3 D٬C0(BEf "Z-L&NgI?H  "@EzL&8K$FE:F EQB!%lV++{*I IFᥩȲH$/X,Aja0p8V]K@ X,I`X`3 "DQW hJnDQAF\ dɗGbo)X,jW#!H`0nl6JJزʗcx:~?CitX`AцPuRekOp6aϟsONR_*AHQ>ÁoJ])$)>gΜ0BPI! 444]Qg)~˷hѢ:QsՂ ߏh4׋V466re5^>f" P)AF""ht+fxxhvVZPHYܹs3&ݾ>Ȳ V Ʉx< !H(GdS^/l6l6[Q-x<+ $.Ȳ@ AP<(P<%I 8n^Ե@fh4")ہtuu) NxM&S^Y6%T+׌Fp\E{b$ٌ ~?Yժ/Ar 2V+, A@8(e]]]Ejd2h4"#d$)Rt*lVwj}|>L&Uj>K9}bI0=RDUbhjjl pݐepfAex^qa|D HPHB0e n3o4Ō3&H ш1%$( 288Ya4Օ&I\.EY=(nmmmhjj*ŐH$r I fΜ܌# *t>{+ǜ9s겥C,/H,%IR+ɄvA044nh488A`XVR_fCgggA0<<9(+,4yZ }ꋇvvvNe (!~`0͓Юt|Pvn`0kJvBϗ:p2HP(RjƳa+28L&S}:QsU4Ŝ9sł`ao޽$ HD 5jz__00VAS;bdU^R0b t::::j`6&UNdSAŠj1k֬#VrLg&ٜQMMMe)ԵS:::2m4T(* :3g6449?s^]jll0,Zm,DvYwALRKrcUfmߩFZJxsajllE 6Lj*HY6)I L$\J&c29 ,@IQ}YQ [ZZr&\I-t7FN3gSU6_՚pp߯VreSaەkWy2|2e}z6V,bQk|PW^oV ϤYKt*(W4𰢠R*H oQBY}all D6̈լ/ϗa|rYpY:C%eF8JtHxa"ȈmGQgQUډcyEoo/z{{8%&!h4W)n#IL&-ZrW4F$7S`FAGGbpbl6CeEI׊eund2AeO`2j!G!rhTWp̨thooB<Goo/V+Fr@"PBP(Ǔvv^>V+N'~?"zzz`$A,FQ(G|xQNX`j"`hh>f(f-ƇJj1::V/.fq۷:x` ((S$5 !5>WRNs(ǖ1ՙMLpEhn6lM\!pNף+]]]p\E1-NCgg'|>b($I~3f̨idxx8k :::$1$add:hZ^7m`j e,CQժ/ٌF "lk4.ƇJ4ct:]^1͆V!ibZw^Ȳ1Hj_RY*s:WAL'4D"1ReD"D1`da:fN$ ``nt81LJQޮ"k.̝;wRg7eY~p#h4jNah4 Y`X`Z1~.! CI{yd*K%}*u"QG^oAHL%#_Ğ={sU-kݘ;wSAG,Coo/`Μ9:`*= AH DI.aiZV}Ad gӳAD 4F X@$ *2ҳA4w^M&j{Y Dbc2 N& ,fe&,JBdDAHLfϞMB iPxg! Ak   2   L(ܔ   4' #   n"j؋ M   2   L(ܔ   4'( $AAAd$AAAd$AAAy=AA1=Di'    #   ȄM  bJCDi'    #O}xUFFU?_{*ܹZoiӦRߣuJ9{{{uO:*wywM˜FQLpӁ0.M"h,[Q{A$)ɣ> ׯu]W5Rߒ$Si]Φ #aعs'<1o޼IS6ۈz{Utj ݳi4Ed$@ N=裏fꫯ+2w:;;N"AޫNӶI7R}l޼W]u.*A{wWVt~N$d${w=58 g?x0|\x"'9. wV|:V'TgAAL՞>pwAy׫ʵn:p 7o~ߑ  I˴$nrW^y{ǔxW_}[lA?Z[[q衇K.fKo jh'x"Vk(bӦMؾ};ك̟?WƂ Tyw}=>3FuQXv-v;v܉{bXhQEy166ƊߏO xr FcMcǎx7cgի˒{%¦M{ wVZܹsqAvGᅬH$ sQGh4qH$x /7ߜ8^{5g_̙3q _r044.8ɳ$k!tttC\YQ{,]fx뭷SOa߾}hmmŒ%Kpg5O?={l6cҥ ^qOcaΝX,? /o6^/?p^ŴyGLj֭0 8S+n'>w%e+un6ZLEgg';0wÇ~ߏKs… I+%n$tx= >_(&3g֭[2_ײzN'6n܈_馛Jzo/ rxgqWoz){EJy]7nnkk+FFF*n'O?K+}NU]8p KU7ps1Xbr3`Ν{qafUy+̘1g}6: l߾/FFFpya˖-8묳J۱aD"z8ߏ^z x衇 B΅㷿-F#<@qE{ժU?뮻Guvލ;^7tqy睇: pw}7>+x2{~:Bv;=\r!ؽ{7}Y bݺuD"kJ6+m7x#~`ʕX|9n݊5k2ƫ/?8`Μ983ގ_۶mW#~?9Ɗ+p8m6l۶ +V**r}g=vލKSNx5ImزU2MT-wy? o&ϟ+xO +*!P)I ⢋x\Ɔ #vpۓwuꪴr-wl\WWܹsb1}裏pgKFqbƖ-[VkNr ^uX/Y.Ob…  q^̙3w؁: {ŬY{P|mݦ?.bsχs= W^QBxh40 Xr%뮴I4x7Ҕ/Xl;^{mZ-ZBeva㏱xb .rȕR{i>L&\Xj2ibp:x3yG~c9bqSfCcccV`0`Պ!Xrnܸ`(N'pI Z#P`ݺuʿS-`^'x"t饗w# >`_N:)5JPvRiۯ6QmXx.Xb4`ᨧ~:( Ad$Vځ;X ]vz-'UVǏwy;wZgy&cG! p7g(-?\?iiQp<<O}7bUJi,˗/A\bW 5k֔R|'g}{4-[59 ?/um8sbwvv*F_ך\UGG0' \s ,KߦzZK{׭[ٜ;ά- TRjJ~5涉h&NZ%L4WI)'7Fc{`ӟnj{+ Ż|6l/^˗㢋.²e*ZM޴in7L&.Ҝ!ed$V>D{nl߾/|ɚ+IGyd~رcGp89.:\.̆@-\Y9y-x>3EUq{yȗqs#/fC(*,%ڀQi?T\Zmn<̼+ɢJ&SHz ~%zn[[[l2d/k!9*goٲ[l)@ PvQxI)͛?k!@}Ԩ5Z+jFEE~y15v! #1A1h<7p'';<<0k0(1Js%`ժUؼy36oތm۶>m݆;կoWG)ǎ;qƂFO?wVԥXE>y/^Kb8#k.|߮z9B]{ FE*?M$`b<`zԪ]2^|}e\mV?TT:MD->0Kr!5Q Ad$YNO{[YsapCnh܆ÀLƄMe5b2~;1Rd#L&$@C7ͤ(HFɏ %nIa{ˏ땜dpo/sq||GN `]3gN̙3'N8۶mgy&jjj5?~|Q'OLFD[_|SrS <8jkkK~Wz}7 ,Ȼ紷ﳲ2Ǿ} nv:\oN9Ωլ}aÆEcccL81.\ا]qѝS{StOwߍ}uoJOcTף绔\:cX.Z]}DG1 &fJ)o8\!<}㡇:UW_X^[C (.zwUioo2dHDtiosưaiӦBsw ߼ysn:;+WG}[9 _ ᆆ^~;vB/RDtLzwއĈq?qkbԨQEv_b\qqGkkkɓ|?Dձ|#k׮زeKneW=ף绔\:cX.ʒ%KɓQQQwyo&f:(V*W7<,nnI7eqԨ+r?h%)2_9555y~x.CPtrUVlkkmQ|%1Ju=#"b>gƍg}3&eyNzO|\!Glرnݺnz뭘2eJ̜93ц}=.u-DDSO=mo\wׯ'EjjjrSOWhR^RRs\bZI_݋gm^uС2eJ+_ P]OS=zcGEg -IDATǪUr.3gN/~y,644(Kp;ߎ~=8yd̜93|9r$hmm.,f̘Qkb\cܹ'8zcҥ~L&Q]][I5{^WI{z*Xr$ћ1ZsΝ_ϟ??|NyWbʔ)#GwznTUUEUUUktpOx㍼/Muuu9rdL6-ǎ_|1DDDuuu= {qmcĈo߾XbE=z4nغuk\1h D_r,_>l:[LibٲeqַXI1zzou.h!~믿>~8qb466vZD'DuuuI&Xwc͚5 >}z 0 MMMxWgae˖ zuR\]vŚ5k^~EUUU̘1#WMѿ;sSK>>!ZZZ"ƌv[]b,X |7n\l޼9Z[[瞋۷;1cƌ v\;nݺx饗9ÇiӦ*9˸(?XjUٳ'.9rd| _3~شiS1pӟtݻ7o=z{=|]6֭[ǎ7yIOyo]w{˖-۷ntM>=[0z͉@HCm۶W>Ė-[(r9=$rٴiS455G?n{vW\磬,ڊ7NYSS{yI'jp]vY' Ehƍ1{{y49y8qbE~bN8p`8[,\yAk1".]gώ 6Ć ?/$~$֔'E=nᆘ0aAKv*3gرc_~9n\}|&ŰaÜ(z%nᆘ6my$9b,\5z#!=n )t $'L7@H@H=jzIF%!|@nJ2*'RMO"B"e)B"L7TӓH2*'RMO"ɨ$ $ $PDH5=$@>M 2Ld2R}zXVyy`Rލz}Ǐ4|}v}{ =g[{VUVύo~עt*##CQQQO?mpZ\㦔$iƌ VDD}YR=Q@@&O;v=Z7oִi}?v顇r$ꫯ֌3tw233V ӌ3t1/!!A\rﯡCjժUN(55U_~BBBԧO}'9s֯_യ+zmڴIF޽{;\]vIƍ˗kʔ) /V``~;M)# 㲲2 :T{5_+..vx)+I6lА!C!Chʕ.<|Xmlw}>HwV^4m4k}t7k„ zO}N:뮻N]vK/^\>E/߯_|*߿__6l ///.ukTPPe˖i֭3fnF30 ͘1Cڸqz-=S:KGgi4| 2DW^yϟߨRPPŋ+,,Lu={1z׃> j֭Ҙ1c;vh…zv}7W0 ٳajux)k?k3f.RҥK9qk83f AAA*((hRUTTkѣtRj޼y5;3<PKGWҨvmkFxb8))y\/6|̳`UTT4ӧ9!Gxxg}~m3:tH_/\%%%Oz83d=z4x`HMȒ,EFFľ}te5)l٢K*11 [?O>zT^^n>:pD)iUCznwQw||.";w*66-Ϋظqԯ_?}*++azu5רmv1~;=>sUdd{Ssld-RVVj-[8ۺursseZ'lѢET9s˵pBs9s4*FaKOW`駟nГ̙3\/?֪Ut뭷vI>7QDDBBB^Æ s>g+uhٳԡC-__]SN5_ Ї~kVQQQSAAz-u-YDK,qx- @9990a+%%Ep`+PRRݻw+;;[#GTN<ϙvڥDEEEiرs),,Ԯ]TZZQFD\s$_~-]#$ y4w\EDDR5n8 H$H%QBB"##իW/%0$ DA" @ H$DA" @ H$DA" @ H$DA"DA" @ H$DA" @ H$DA" @ H$DA" @A" Pe˒H-H^~${[MIz= _?iǎL{c+9W\g=BZE8O_9svi֌FӣGƍuTϞ+?W˗$͛7B_7g{Nl_+V\D mۖ/3%I;PF9 -IzA:4哽<.^|@+VRASu㍽u%]Y- ft7renmْ^cJxʕɺu5~$ϴuk~c5~$әw=_z6n<]礥觟O**P||{c㻛aHxz_V"[={#9s~M iOzMumqdw몫j߾VYҊu?ߣCj|ܴ)]޻EO>mRvʬzm??F(IᇷWWn޶ٓcr'N8R>:Udn]V+(IڎZ w)+->\#ߜo_No=%&隟_ր|/tȇ֖O\nX>;Q98sw顇޶dI"zC04`@ƏR~a(ʕڻ7Ǽ={>Z߹3S<҈0 ܼ(ReJ=6-X0J\˴pOcX|k<wT=:u RqqͶqQzZtv4g0pz[uhyõ;{1 wR*.ݙڵ+K!ee7w'Wֵ(SOVBBOޡ3T\\B_f> S:h]ziW;&+D'wTxfM4 %κjٍ w$^J[xE'͚VmT5C݈ dqY*oofbܶ-C+W&A3+&&P[]ECFR6fn-m Oi|͇fA5jT{{|qקiΜz1͚A"Jmݚ!I>5kCx㍽+ GuDa =nǨo0=Hݾ}93g UYihѢ4n\BCSffz wwqAϜMO<1Mu[eJO/:[ϥWzC: /->>!@<܎7oD7۶ev(/\EE??No5UlػI# ѵq~yyӟO6nLw$6._~J֥@tSc =n[˓~wwib4mZ[gFuĆ2 ۍcǪ$5)k֤*2_=7ơUWupKf~~չs~bckzС5죅 G;Bk+΃?CVkʬJL,Ԛ5~Ї5-ĺ5# u<ޯCݺ;6op;)(>x5lnl:Wcl`K&Y`Рv.QYXBsٵ̙c/PNN?=zԘ9EN6,B7[7[St9 iKutI>c,)bA {㍽ڕj''itAbffi?eK/\R\ŞBk,ҵk첮.cc |vm6VsSko]m%#GFG۶Uu1,+jLܙ'A.~n].I\իS$I>3V֩S(*V֐1}%7L~H˖%պ6Y`>!D}+ՂW^ n]>M{8,0^w=UR c4}tnP~~23Kל9ݯv 3xf޵"~_4p`z QϞ!?+]/e {bSZjmZnsi-K۠0Z4GhPmipOMH8izk9~ӷ?L|TA=l:ϓtm^zi_[b MCg5g]h-egGؔ6) [}Uo'IL.@l˿@sI"AջٓzON.?Wmj'f_?>f.|1;6,+V2w?v,Yfw̪߫' 3dHyڕbuNVSV]֭Ku۱;* ukcr6u]Ͷ6HCDu6o|ToNmvm-D,vQk֤K4䒮mfdc޽U o|ckTr>>]uUw%KkZZ -ZǜaߖdgOY.E/|{_0is{f...K_}uY'nc6KeNE5..K_|&qZ˫ze\{mɴ|Euք #l…?С*{ѬY[TVfuX۾'nBB /mt4hP͈' tTU)G]w3U}2͛u-?OR`OԧOC@Vh)I׼y-3&dvڞcngY6+;LeeV!!yZ{䥗vM7v97e-7ygH6mJUWQTT}ThtI#~ >}CZ %%vH=qddn7նƩ;낻nN:zT~=XzIni6 2Ǝ2ܴ)]W^FQQVrrU8}z jueJ˗'\wV3lKu)@KI" "#hnww-ћoNRDYs|goڂs~meu;LR-w{7xv~曓jLPV {Fڞfm?3֭_;K.=mpX3gvsύ6Yw9s)'j POww;|8_))2yzV͞l,z晑5&U(5DEh~?Ţ'npg֑c۞ 4{3 ~tDVN՞=,U@zV!__2^' RӧΝԵk. aY&..KÇ]*ouctZHrr:IǏ()H5HQStBЇƍ.lfwWjժdi+([{Wnv|{gi:5K]pW]6U|Qtt}tn嵍iS6n}B^ 8QC UƝ~Zg7 ï(lc Cӟhٲ3&'i޼Z,Im鋛o%pcRVVneT=XJHWnnՌ#Ct=I<g7j]V]A D.9H+W&ԩ":U k݃5n\&Lul@pDA" @ H$DA" @Ŷm9sf\w9t۷>ln'nmΗ$>oSs)3KL,8yu=5}*]qj[h(!! p0 \ŲZ cn%m׬IQrr$iݺT͜٭m7n<"WIRyj5OL,T^^"#Թs{VaWQa=Y:Y:JN.RAAydZVmߞ)I:hIW(5X)66L_޵QBǫ/ʬڱ#S- CZ*Y?=Btm}>/+TWh\]; 蘿M}9Z&UNKK(2ҿ˵gO$S/]/ٺ8וާOhd>Ju;h(Y, K+gyJy<5cθ+ʬڰ!M۷g*3TQQ'T3ftQpO`Ӏᵔ\&5*Rή?xp;::uH113DyyZ/"OgԩjM-N|s{>7o>v=׭5o:vۏqK?]kNfӿ}a #p(uР2YWF*O >'X}swԩZ UWu7_??N_~yR11 jsn/8N'vpxw襗ˢU.RxxapC/MAgT^^IfٳRNxN7eW^97Lߍ-MۦFRCV۫O?=^zG(1Ps+iuYg̘(g++T'O[;11=X;c7oNwukiXލ.&D)4Gק))Hi̘ -Xsu4aBaC֬IQff٥/o^8 N&uPX22Jvm tibct=^-YrBSt9D+8G6oO)=Dglyލ;^c믓=տS?OԂ?I"#5yrCi.c?9V&9^ ϛ[+W.:u Ԅ ъW\\v;$uI:(**@{dkTei֬]&Jy<5=]Y$i\͚Yŕ ѴiԻw,3īR_K4yr}I+)8% %^g۷gH iWoXݡCyDVj( mޜӧK'UQa#kSu)n͛3thwɶꛀu)y۔zP(w ~'J:vQQvLoq;m+i$ر[ ?I̮5Hw֨Qys~Cӧw]l1"R=4УqzՃH֥jwS讻6)..K?p~|˺G`!9bujVW^9i:G(:n$kǏ*9H</fvڳ' L F9t˓zx;:UŋK=. pŊS_vر-_35LVJy<՗:gO1wSOVqqz /3IҬY;m[/>S;c@-** mݚ]i~ej]** ޝeցؾ=S͛7¡-(Уn֭Z[nMwҤ4~:^GkׯcMۦrW߶- 'NEF)(ȧF{{H[ZW8[0q :ÇGJO^S^n5/~Ə6_8-[2gPgmW^YuTԠJI)V`BC}uM5aXt1? wa{?y},{x!u G;\IW_%B~Ϟ!zly>|WJ=mXhTq93gvWtH*+*(GĦOQlOnpXQK'w;æM:z4_^^$o`Tm]}4bDy!^ΝY?ΒrUXXslۺ/ڟ5Ư~!@l㾟}v9O7[dqES]m+Q}tLώvu["DС?UOl6^^L` ss˴4jT{4ՙIvwe6d{`];]kNs|}QF!_~y?Α̞<]jg-oǍ3&NVϞ!?_k{ָm$wҺ'LXv[_ұF-YuΞcI7 j7*"kWSAk۶e8|+ɡmLj̸GHDT:r Wm+Qqu=뜴鷿ժ8[gccGW^^|ͮ;׻w:v TZmv)3ސMQlu7ţJJ*ҡCyڼ9]} =/d=` ~txNNO/1'2$z Q`];mƏvxRF-YuΞcw]HU3$'W5<)SBB SFm,wp vmo4/T|;t<#T%%5w(7 J޺p7>7L'Ç}ӫwP=@b0l]NL-[8ĉ㏧u}e}Ĉ?uZ"YqqYJO/qSv5M z^BԹsuk 3܌iX6U;vò2>6i΁_UjLH:\ƕ@y뮶•(w+ HZ!C";qq:4\ӫ s:KԞ=9/7/kBy;TVzZ6^Bշoz р:yPmjt8S]SۏY_w'{ ۆ՟jTNuJTVfj},͖/M,O:gO1w{90 A]?,;'w'֭f7ѣm77SAAUYU~~^N|7,o$8rOiOW45oVRwQKK noz[W@ւcڼ9]qqY/LaT[7qmQem?{ѣ7{K0/^ow.=AY.A:t(Oλٟ0ػU 9i=m̬}VԨ(xn4jږXn:~@cF6zIlA]01 wPEF++TveƎs3՗֨MGuuwtw޷ֲԼmS?5mu^g&Y~{Ș1kcNvSGRkfm,9D롇M_:Ǿ}uO@a2ˁb5<ϜDg:|8cݜps/5}*xIm~>tlY09MX>Mǎ+(a,i5Mj*IEEN+*_c&KO}k-ms`>9v=Z[W@ yjm]ںٗX"ټԤ5fңGHۜ/ߙ>ռo/I#G&Pu^Z_T{,]/$sB3XRvFm1_j6V7oNsLV~~w}tG^o{2 iDGs~iğfZ]l+w.);UXX@oMS3O] ϳp;~@ 5'qiO(ezm**Ewկtk(MWն~ hoOuG:$eͮ11N?egIjSDy7UhÞpe]jU+~A^U>:v@קԩ"Ctt^{. Fm6]IvC5w.?^oܠcԣGm[JK+yF8rrʴzuÅ3ό֭5DIz鑺:r$_6;l3cF͝;L3go5V~~^zՃJK+W_<`+iRysnulĈH-^<^kN*]_;t ԩjݿs GAj.>vl{}ui'Oݻ;jڿ?a,E7K״B\*MW)mEk#S5p(Z޺ZbA2iS6oNWyU]{7qqi%&ˢPM0_II -KEIFEӹB?pZ窠\isN|}?yP֥*9X /QhVC֥)!!Oj8KVV֭Kձc2 [wȡC۩p+iRysnuܪ͛ru=B4eJUKYyF3QZ:E yfNS:U[7nm+ZÇaCRS量}4mZ}t?j,sOzk_^:3HYi@ H$P_1/(wqQ_3 8$(_7L\ҼW3ySs)b )h*ސMpI0QTd3i<z9ü9|5We iq""""""RO.DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDYhoVu z*w4.iiig*ۯ_nv] 777\Ñ#GлwoԫWM6EAAe[Jx{{ʛDDd5<7oDjj+wAjj*UVl޼pwwٳ=7m3Yf̘!DV[\ơCS>95kִ/ N>H6lvܩ,"燐ݻΝCV}f_ܿ?`̘1Ç믿Faa!n݊_~Ƣw޸{.1tPn_~:u*T*+x{{ٳxw`ׯ_FN7k,:v~W^Ŏ;5k֠M6J9UVaxQzuDEE!,, ^|E={-WWFW*J޽\ÇW 6iDRRRu՚G*  z}WV4\ILOOW ȕ+W&aÆWƏ/dȑ˕+NB]nݺ}%XZn\LNN6/^.^o+l'OT9RHP|h4@ YPP >~Rdɒ%ϟIKK*Jlll^0͊ ќOnnnzAAVLWWW1ZG]fnxb%H0vȏ?e˖J;t k׮&ۥRҥKf;f4!5j2w\}ҦM)((;vxΟ?/5k֔5ke˖ iٲ }F^zUIJmOOOY6Qٸ)Q8::cggPn1VѤIe0uT-*_hO^e4?Z}'Njz-~شiYe:t耧~hz_~V3g`ƌ4i`ɒ%pww7(UVy&n޼i/u/ kbc֭ʫ__4]f""2$YzUqΝwQDުPW\QV|gL􄃃޽kVvڕHII~۰a2]tAFFAp-aƌ.;11Q t+s{}Dž שSV°aðb V5繺\$''سg2h>JUeCDD oʕ+r u놜?~oڵk[\.77R6mΝ3|]gU:+$YjSN/3݃AΝ;Ech D ,'<<7nđ#Gp+hyƸ%ycELDD +MG@BB:tׯcƌXvǾx%%%6 j.]aaaرcHJJ2+ƍV-Mqq1{WIAhV’%K/**ñc%8D۶mv!)) !!!Ü2燭y*DD 豒^fz!""iӰtR|7Fn,:͸pB/%OMM~ /^,5V|)VS+++$%%~&f͚!##aaa[hx رcqMXt)^x_j,k5kU?RfUϏm&"zp"i eurrһ`W^yթvڨQСC&ӝ={2?^j*We(**R׭[7^Ystu}_m6:~) ggg`())رcgP{nqҥFoϯ9[,E$Q־K.M_]>@||<>sV\ir?"'OM+f{ڵkѣG~Ĉʿu1s={|/++ ?<Ʉ̜9b ԭ[VB͚5qy̞=۠7nѕOu+}W(_f""DDT*Ç< [tiWhJ3h 2h"%2ԩS7o/:˗/Ƿ~kQprrRWɓܻ8hРJ3ݭ666:tht 6oެ#eU{5Ҙ7|+KUΏUm&"zf̘ۜπҥo߾ŋW^@^xquu5xYʕ+xxxKQHϞ=K};V٧j%00P^}Ui׮{{{۷cÆ RԬYS*f͒[[[9xɗ9ǻ{8882dH󅄄(}w^eVHjդG[oɤIN:@T*l߾]3os8t >> &/Dvv6۟-S9dDDD' "Yhذa|򉍍ŗ_~͛㫯6;v J 7..III4i_n2@|7o6?ÇR1 8SNI!DDrppлѠAkׯvڅhуm۶y:u ==u5ؿm6/0n8vD"Ǘ/^nݺaAcgBb߿?͛7dz>-[ &&CPPjwqq1֭[X~~~=z4t{Ejj*&L;voɓѫW/#""? ==&M'"<<{[ХKL8VVV Ápu<3xWkNۧ/&&D-0ydhLַgv܉ %%ӧw쏊Rݿ? ''R1b~lݺSL1ؿexyyuF򌡩6/&&HLL&O-[Vx,*2i "##lp5q۶m8p^vaСhժ^T|8<4 0i$8;;dEDdY:$$88t-Z[[[)))Q-\PDHVFȐ!C$//OIjeĈҮ]; 7VvMnܸ___ ....VVV@:u$J`[رCT*/RDD.իWRzujr-?~Ԯ][~m^tYL0AƎ+ҹsg]AGy>~xjb h4+[bgg'qqqה|5jF#-[kkk W^''' j%%%d-Z.]r动T*Y`?^H||cX?PlmmW\]]>;wcQѱhDDEV+eȰaÔ1ҍرCI{nh4@ׯ/5RNz*OfDD&0H$" O>@.]$""QQQ@(7o;wȑ#,X@/HTT&EDݻ2fw2|).., ~ NO>?\/ IDATC@6mڤ(vɵkה/ 4)W\QۢE  YYYJ}h~rIe+L6(""JnڵKI#de cbbdΜ9R1FDsư1[>}ZDD壏>2}tǢc_Ѷ }]]""r9quu5j(e˖-vr)%̚5'3""p Qiذ!… sBoE͚5Xv-7nO?;=zjxzz_iӦXz5n߾ pvvȑ#oJ_;Nnn.L)S^z.W{>C(|>ׯw˗/+ym{aa!f͚___eĉVfx,ZkFhhVVhѢ !"w|採)C6mVVV4iT*^;jNNN,Y,YDqm;v HLLD0a/^~')""$U;wjժ"Ƣ[npttDqqh4ڵ+222\׮]}+SVcԨQSNƍgJJJp)_ut_".իW/u%m={W#== A0߹sg>}c內z 6mRV5-m[Kұt+m: u V}בݻC+&O~Mc̙3 \\xTa۶m/++Kf4Mر#`׮]©Spiܽ{5j0y]h4fmױP^J@&Moڴ)Å 憭[BD0lذR;Ɣgc_mINN69jZo7bXjVZWWWcƌA߾}y""bHDܼyqqq_>/CPP|[ //h/fŋ쌀kxgl/,i; O~+F^^ʨ[l̙3ei&X2ƔgEETVttWFLヸ8=zFXX6l؀3gb>jժ:xzz7oƘ1cp,\d9{,mW˟O>xg '''Ok,Ys5L"Q[|9,Xggg;ZY{DRR^Lm|i׭[zYYY(((@ FGG?h,h{esrr/"""ۀu>SNYtU˔ÇԩSXhQ>1|cQmkժ4ho999z+\VVV8s 6lhIADDD R}+^{5h4=wh"k׮شi.\nWTxװ|r~s=۷o߆-4h#&&HHH@HHr+݃@y;wyyyJ+s^]h H`ƍ5}Jt}||| ^~?K1걨`޼yvz"55VѶm[t pqq֭[rJ$$$ %%˖-Ν;ѹsgeuW""zBDd{jiܸL0AݵkqQV\Ns='3gKRd޼yRRRݹs8::ر>>h׮~ mڴ3HDDDDDD ߓHDZf W^$""I$""""""o7%""""""DDDDDD /cΜ9ؽ{4%%%3g>cwyGׯ_ǒ%Ko͛9s`޼y())1f֭3gVzժUXlfn=L"C# 3f%K)..Z~w3dDDD cuLOODZcСC4h)??^^^HJJBڵq 4mڴ\y=< 'c87$ca߾}HNNĉPdffE}{(G^^Tjشi~1xroi}[nz{jժiݺuEZZ\]]ѣG΢9ܻoѣG~~~;vA[JX:C DDЄ 1c4EEE@<<<?^ZXB4J֭I\\600Pj@BCC [o W-\PDHVFȐ!C$//OI,u֕;vJ_ݻE_4jHH:uիF("2|p^իV0 AǍ'mL~~5JF-[_]I+jRٳGȤIDD~2|p/yAAH͚5J'NZ#F(233WN:I~~Es?:UƵw!-Z(snwsLDDUA"c$j4_?sHx{{K ƍJyKqqdeeIpp[4F-W_UIiР0 SnNq"Haa!f͚___eĉVf4O&MйsgٳoV/mjΝ Vo5k8::bڵhܸ1>Ssss1eL2CII Ѽys[@'Lŋ駟66662dN:d[Uoݺeh"Ԯ]ppphZ_j-x&qmTV rwڅ)SgE5Ю];X|NJVQF9r oFPPZh{_5 0n8{}mi߾=jժ?zVZUTUA"qҵš5kݻcܹطo~WlܸݻwƍO_Wz0`"##qM7 ͢E]bӦMpbbbзo_ܺu ӧO/pqq֭[rJ$$$ %%˖-Ν;ѹsgeҜ;wyyyJV / !!%%%6HIIƍkkkfejj*9OOOmhkkk :"M6ZipE|רV111 4 \$$$ $$D`omѕX3UBDmڴIZ&L yƏ/$++`B;vi޼ۮ]vzrtt+WӽNA={A۞~ixbuLLLF乿3x_y^}\]]%**J/]yߓ{ Ypaty{{|Oby\Ȑ|ҦMqppٹs8::ձcG9yr1cƘ=74ŋKpp{ SnNDgZ""z p$%%!++ ͛7EV۷o#66_>}Yhr{.bbbpE888ãH<{,<GGG5JY%::X`̙cv233 .:t#3*p-]vFrr2~'iJu&""0H$"ȑ#e$''[H #m툏ǖ-[ЧODDDUWׯAطo<<<)DDD I,tVV\A"=4,1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD 5)**BZZѨQ#X[[SA"=Zrrrp9\v pwwG5=x Oݻt_;ЪUJm E׮]9Uٳ4hju{н{w@LL 4ibV,,Y7oFZZM4A^0}thт9r`kkؔ+G}+WܯRиqcj =zȑ#R8fڵk7oB`hԨQy gbĈXx#ݾ?V³>STXX$iӦhѢ4M:uJ9oߘ+##C^}v*O6ӽ{we}ϟGʅ MOO7޽[)ݕZ6= LĉJ?LJJRړdV-[H͚5~&lmmZo[joቩ cE$$$+wٳgudhZM/W:?~#߾zKH^xytnܸ!ӦM|6662m4qɼ^^ggg3O4 44999prrڃ]vغukUZ53gDNGmئhZZd߬pI5 YYYpuuҥKq%"//)))WWW'~g=[lAnn.o>ܾ}}֬Y7x 6/ p͛7*},33m۶8::((( ܸqE"3f7֭[7n̙3Dz h4|rWOҬY3 5k֔/*rss%;;ѣ7N@L򷹒hMO'^I8p5jȹsLKIIQ6>sSt;pP sojL8h֭[?#?^ܹ_~* _u\\\ }l IDATnFѲ~'ܹW\V+MAA}=z[nŋj퍠 $jnk.DGG###uօFe<8p* }`͈;fϞmq#G >>jhԨѲeKJk{vv6>3(FFFmۆXdee~~~SSenB^^iӦeܹ3/_FZ.]_@>}L.De<_EEEضmۇ7o~>|8t颔hР:wÇ3!!.\@&M7n`8y$rssѼys :۷/][N>899Yf D қYYYJһwoXYY9{N[UٿeN%&&"%%.]\zQQQ5j?s: ͚5 vZ=={,wۇه׮]o!??nnno߾Xp!o)}o!110~x|* ?q8wZn/O_ o i֬YL"I&.W^1zappE Z'NÇM_nRv]TTwٳg&#G(''СCor'YJV+o&!!!ɹm۶վ}{ g7|#˫ʂD {rJ QF)?vYmBGGG ?P&N(uUK(y{{kV넄(;v(sΕ˗̙3UVʾ+W5_|39cǎ>@F%NNN@%22RƩ2k3?էOge˖@OntEesbgg'ӧO0Yp (_֮]+~3ݗ=z(̞=[Ǝ+ 4PKt\xQ\\\ԪUK&O,K.ٳggh:H-%)!!!Һuk Z * oYU9g$ﵙ3g%Abe&RW^2g]GXvv2Vƞ92dZVZz\]_$Ow\|ytQҥKM)5j5ge˗$HTTdWҤM2OOOe__{wU))**jb(ki)ŜgMiTش6W.Kh #.h  a㺸.=Ϲ}9Ϲ}jy d̈#Lllʞfy򥧧={ Pc/vcǎy'""´jH2^^^/y*4Hܷor֭[_||ʕ+EΛoY]3gZȶ͜UF +O_%?8K.YT7zAEٍt0`fƍi߭ \RSS в])Mcرc$Taaae˖V5ko+Jz/m] јGTVݻ܃DGa~-dEKeI|=xblMFvZsvZ? \xG\U:A"*Ȗ-[L _Ӓ%K$Ӽy.%Hٳg_z[l) K.v9soA?Z/bwqqqpz+kiϸww|gچi!AiӬ/vZ>>JLLTbb|őmlas뮻$IvryM:uVG}[Hdddh۶m2eZjѣGڵkyoɍʊVXX$ivзo|Kcw&MZ'N^zzg$]W#@eG.VX/\β߲ 9’%K[z5ђx ͛7T}[yջ#좪[I٣ӧm_._/z… /t%km3{g͚gd|]~/PffO{ϺH~G͛7/4_(yyy{Z[3:b%ٿm0OOOk>{l/+11Qk֬њ5k$Imڴc=?e,?Cg/+]쳋kƌڸqsY'm/8qB]t)?̙c!iv^M>]V֮]{ZcOzҮ][)xb`[os D"-Z`]{9/XAby|iUfqdeeIw]hT!-{ffb +:t ___uYǎӄ V' ut;O};wTll7n}cڴiڷo/jժUy۫}:|.]N:i߾}о~.KǜDZZC@pp +Wjʕ URR4m4g}f i+c,o U}<gW&MC>BBB4o޼R}+mJߡ*?y 2$r{?zo$=#Ĝu릇zH?.\'Hql+rQ֭[1c(##C _]N`ْ^z9%7֭[+22Rׇ~X &Ny9 ooo۷OO.0m(#Tyy4sLuA+4+Vرcvjԩ[w yѱT9نF>j Vpp~-X@g˗5~x!w+"?Ce,X[jĉdG< \W^աC]oPq,mٲE[lѹs~svVNGruuUFFa^ .*:H}vNNN5kW|'… %zE֝?*z@\\|mw\b7ڶmL$&7|%&&]f*r[lիW%IboУGIRHH>l7ͥK4x`hg ڶmo͛7;tݻwsfVZe=bK_wȐ!rvvVJJ5ħ 殻~5~饗#WWWUX;裏.OHHPmEÆ S߾}5k,7onE(즱,*3D]}v۶m5ydIן76~… 7gPu_GE_kZb7JJJO?$Iҥw̦˖-˷ ۻwo:D ,YbuV7|S:F{X#,n\k~Rjjju4iV\i388bzꩧɞ={4n8I%:th<ޢ}6mڤ!C(++Ku /vx I֭[%I=PN4o<}g?^<^*i/ٳg[?fP,HΡ7$}'ھ}{g*3t,}kfޫBꫯ ?{ k׮%sQ%?&O,k޽zg~7=:k0lQjժzM/$i̙\~LO87PqoA .4}nY"INʑ?k֬,wwwO1jܹ8p"##ծ];u]w|r={VNNN7o^+rѣGkɒ%P׮]5j(+""BN8:hԩSO͜9SFRdd:wGЦMիkΜ9br׬Y;wꫯ_-[M6jԨΝ;GZ𸸸諯W 4؎4jHIIIz饗4w\Cqqq UBBI#Ri)SeOC Q۶mY;w$9R;v, 6T^}v͘1CQQQzᇕ 6hÆ 1boߞo_*3t,}+n۷u]111 )S䚠<꾤Gll5~p=֭[7M>>Oy.\h<<<։[c-;vZvرbd3uTSv|?cNNNG5v*6;vh$oݤmض{]IW^. 17sL...W^1YYYv]6`1_|_|nnng1)))O:enoȑ&99xzz9eYEQ;vdJ2ydk?%FQYy{I״iӊ_;vX۲C۲ɓ'˗Ks~F|,/K[io^Νkd<==ܹs-éSLnݻd*޸_^!!!JKKM+UaǔŋR۶m5dn\E9~֬Y(9;;_ÇW%I{ܹs⢡Cwr~GٳGIIIP5hРbRSSi&ܹsV˖-ղeKuԩXPvEz5sro3_5m4K۶m˗tR8p@ }^I˗zjD@j*M6ΝP* P)tA~~~JII?~[5jԨԨQCS',L\ H$DA" @ H$DA" @ H$DA" @ H$$DA" @ H$DA" @ H$DA" @ H$DA"DA" @ H$U*(زe7 MרQ yyRǎ#T̙=Iҗ_vW&5iAL%...Y]?h6||Vc2ֱge\N˗3T6ECo=oqjtɳ<--KΥj3:~N7 UMY}xޡIhANl6z=ڴ)^'O^պuzT*kYNzvP)$:XӦTRS |1==[۶ JHHGuymxJ$I>9;;-˞= NF?~EΥ4IR||v8j՜ԵG 񦔑lIWDMWy>Є 4|xa_ԩ7߿ѣ[kܸ8qE/7HLHHҬ\ٿ n߬ozV[6lxI0IDAT@xSڽڣG<#" ;ZOy{ߦdm4e)(n%&n]W L͛RRR6l8S믣SW6)CVM[ULL||{Fj+܎{$I]4P~ggMO))YjժOW͚~4cFTMvmx-XpwOmtoe| L5S\\bbձc}r{k}e)'23aV-pl=k2%I?L;ĉ+rvvow JRznzNzͺv-S+Wg$%I~~y~Nƫ~} RNvBԯ_]7QZy69o=on7GuH!!qڻ7Z^$K:}Z+ߐ!^2ī먪AbW;gvљ3)ڲ%^g\&wJw5IRյ|c]4..Z6hPS-_~JII U Թs5lXQU)'R Cu_e/p0EF&/Zrj m36|U:wn._??$hQ[7Сܹ+oU\͚.=NF}U޷YmuW=iSs<\}z*44^gg]ӧiΜcZ^}O#F(V1*'*;XNJȵyڊ]=K%mGG+;(*֮ՊuZ񏃺źSz(r({Tcծ{}r AL+xiED$I~2<>Osnر%KoԳg#e_k׮ S%"Z۫@~?nGmQr c 7f_syIҤI~ #~&ۨQ MN>4ϺOiƌHN\Nz/r OK/yLSܭC7)!!M+Wg'cb5l&Iʵ\֭{s6>>ׯT%5,,LSNաCTzu=zTnnnUr.\P׮]%IׯO+99YԷo_-RluU/^$SwHs͟?_U84p@Xˌ1zGUbb7n;#׺,eddTz>}^*IZh>Sխ[|?ínaeJOO*++ʕ+~ b;$BZ(-ZH111ڱcƌ[V;K,QJJj֬^{W^kiʕ?~>*מҴj*=E2_w{/գG7n&MDTO=T ֈ#~zm߾]-ȑ#̱:uJ4p@ 0oE_.^ŋ$fggkٲe9R.]NOCC_u%&&[O=0q-VZ={_~J6ijvڷ~+%I!!!JLL,0u~۷/6*;͛iӦÇ婩ڲeŋT۶m5y\9{-[={ҥKjذwaÆ^zyt o3gh tv.owi{!ٳߍ\~\]]տ|mڴIWVll<<<Դ4}ڼyΞ=+OOOiȑEz0?~~~j׮9+VMwYmқDFF*,,L7oi&OW$Ϛ4(==]7o$ 4HsN-]TO5fժUR|VܾeeffjٲeڰaմiSW^V~Ak׮ٳgլY3CUv.*=*oFd233 Lm֭k$zZm$jժ,3fk}͵/ԩSZaÆf$ysߍE4 Jo-߽{ ߿~Œ|u5f*v{;c$|0YYYI&FYn 2MII1cƌ1NNNvdy<:d[矷ݦM:e$QFqI>o JRur9ӽ{wW]?`e  7olٽ0$fĉtg϶7j4|9rWd\\\̏?g%? &IL0L0dddJw…f„ ;4L̄ ̛oibK.F6l9s3g )??<ؽ{]dԩcƌcg}xzzZOK$FDDXvoٲH27&LյkW[oӧ^{Xf̘Q qҤIF2d1coȑ#<>%/(irI=L͚5+b.\h}]n$gggӱcG#<׿e|}}%$$fZli]fM C'''fFabcc\;YaZje$///搼6cǎ5LPPP꧴.~1fذaF?~|$I3ek}LL<++ ^}}}sp߿djժeN>] cn#|vӿ F;v1$WWW#NzzٳgE ̇~g̩S*,H,s\6_eo5Lxxlq.]2 6,957#G'裏}ѣ5S?zcyZx6mkݜ9stU999i޼yyu]9s$)&&FVrHҪ}UϞ=5~~urvv֜9sA?֭d}W%.O%%EǏbmϑuXP=ެQm>Qv0:)l= HD|g];.]HhѢ-[̕yK"]T 6,VzEիzB_rT{'ŋ[AbqrJ-ZHaaau74ŭÛ;8v  HD%Qzumw( eKᐼU.^ geeI~.4k^{M۷oWll5kf 5mذasT``VXa:t ___uYǎӄ ʥos6__P$־}tن|)ziVd+֭[+22Rׇ~X;tj׮]4ak"{Hw[ĉ׿5ݵ/qYn|1q u)Iki1ڳgu!鈼Y@H Lc-[:Ұrxbeggk咊>Ԗ~РAOLKKs\m" HD%Խ{wI͛n7ͪUlK"]YCÇMs% ``@@@'J͔O?)555׺TM4I+W+9.6_IDyxxh̙5j"##չsg 0@>>>:p6mڤU^]sJrV͚5%Ik֬,ww\/O/)WWW͝;WTddڵkݻSRR/_gZ/S O(,,L.]TYMG%K(""B]vըQ}:q:t+&&FSNU@@o[iqYjTy'O6$YmDGG[8tPi.\h<<<9Mhhh;vdJt%wi`\Z癙V{ 5v,ZeSdOg]\\qvv6LƍMVVV4AAAF8p`uqssSVdsSn]k1:tZowޝ1UVH26l(H2F*4mE㒴%)[QYǎ${]IW^|PLasv\rE?٣$yxx{4h,oE֯_[/CŋR۶m5dNferqYFQQQrvvKݫsEC-37ҜnU$,L\ H$DA" @ H$DA" @ H$DA" @ H$$DA" @ H$DA" @ H$D@a=gPIIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Montpellier_page_1.png000066400000000000000000001554411420322575300302620ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxyXT . (`׾+SK-K[gheVjYㆈ( 2A\auyxssϑl)I@DDDDDD A"1H$""""""DDDDDD D!0"HA"`sS""""""bHDDDDDD A"1H$""""""DDDDDD t3H>}:\]]{ꩧx"|޽{}ꩧУG֘ꫯb֬Y:!C`ҥ\3gNrwyuP(K.ر6wWWW""""6m 3{!00`ffHNNFYYO|6hTDGGcŊXjʼl7.ӑP!CgϞW2999Q(ƍqMﵮ'HгgOXXX4w#ˑAX[$>iii* 2uJ%Һl* ku4v=z`0atն5os=uۭmRRԸ]{{{3FefϞLպ_~E4mljL7 h:N{$aС0335֭['+++üycccW\?p  o___UVX`'9cǎСC1c (::t(~QQQ6l,--add;vLmbȑ077'~g5 i_WM8ϟ֭[1qzʏ ?] Bpp0z)SN {{{{`*AkCʈ6y,7oJJJT5x󃑑pF]'DDDDD:$[1c"##1g,^*m<~8~G]v0`44""SLAϞ=a$)) &L#͛7cӦMسgOH$|u>:=z4nݺӐJ߿܎78tBBBЭ[7 H :eee8{,v؁ǏWyP]:K+V>,VXQs),,Ė-[`ii //:8<<\|G֭[?>V^HRt ٸr V^]v᯿ǂ <<\ER2![y+V˗ѭ[7 > N$4T֘gnn.,]T,D"?~\$pUq\.܄/RA066^{5q6f傋 _ ۷ow!44u 6 ~`ff& cǎ&N( ?^ fffw}WoF?C!""B|iPXXXk>|X022i@8xV) $,YDm4i`jj*>>>BTػw/T<Μ9#>LfRd BllloeD<.--/_-,,TV ۷oQ(o4:!""""RGA]v700ߗ T*ž}~e}vuuN:G0ag}ם5k~̜9ʼ١SNVZK.hp}6~G\|L4~::vqZ>}Tה/BӨ:WWWgKKKumڶmNNNHRXZZ6YQڪV8p`۷t:FFF0007i$C\ںcnn0|̙3ÇkNL_5N<~Ae^II kcjj]yy9Ə'x/_^c022R ES:6&srr´iĿq?H$Rǵo N;䰲۷:thuwDGGcȑ9r$JKKcٲeaѢE7o:u''' ;;666b#F4(.^#!!A 4鉭[B.On߾Qtll=lJ<Wm W^WQuR]= t3g΄L& عs'ƍ\dv3>rH!RJLM.] :uJOoY;vŋ*!!!˃RD~~>dk֬:wԨQXzܒ%Kꕎڤ.\e<600 '+WI&K,ܳg;_~·>I1cƍѹs&[~>,=zppp@ppnddm۶駟~aggCCCbǎpqqQ{b޽*ӌ={K.ԩRRR0o<9r ˗kl;v)S_:$6IԔjӨSNغu+222s·\iRǪUw^ _@!lmmѻwo8::iiiXj8ESQ%n@PZZP 00Ͳ]١{044l)**µkPVV]6]1RsΡݺu-gyִʂ1._ oooQQQڤc]i$pYgϞL͛7?Gll,"##ѹsgiӦ·$#,&&^^^1n8oƍM4$CdÆ Xt)P(`ff={ ((CDDDD A(77QQQAvT """""DDDDDDD#""""""bHDDDDDD Hď>&"""""q-qHN'"""""alnJDDDDDD A"1H$""""""DDDDDD $Q#?,rn9ipuu)0bDPKPl2 AA,ADDDDD A-!}w8 G^woaР9dr<|s,K1Hl)665{k  %nUi6J%JYMDDDDDԒF*޾ i2˖}Ѯ>ӱ|ry9 XDqRYif܌+Wk ̜Y$63g#0.\N矿cVm[l4('NʕSWqy۷9RYsZEC''<{pj4׃T3vĉؼyxv9'Oֺ_B1wDDDDDDDa?=۷BLL ݽ5d29fKKSqCBMA\\(+׷`ӧ\!,qDDDDĎ/ য়NW>L^ST;;K!biӯH$jm:G$||\`ii-[^3ffF+0dH7 #F,=agg_TW^O?=/3f ܿ v:|[7m:WV&Gxx< V5 ,X U1sdd"2''rƆx /&"""""bHDDDDDD:O$ """"""DDDDDD $D""""""bHDDDDDD 1 7o>\#"""""bXa˖35""""""DDDDDD $D""""""bHDDDDDD A"&W`6yLRSо};0t) [SqLl۴/6KZ1H|g(JDGgbDGg/6۾w##}|fƴi{ХK̙ =2YyGFF!RS pP2 ߂L@I\I$@.m}zKdI0^{|}͖DDDDD ֦2Ļƴ>8X[S(IT)RIm~AANl6J hvw¡Cj'OFյއT*n1,t>}<ꕶIeC;IյJs;ɓwc„o%Xw]~i~Bbb u, wo_fh6 ׮%aϞk?7iڴݻLGޟvT5`@{X>#$ՠ&>>ӧ]?Z5Ξ5""c~kk{ѵGsCK M)*7;v78u*? 0bWLBϞйz,ZJ*1Hl 2|ŋ" ̚11غuv~R/d2$п~{`Ҙm̝:c;8}ݺ?>*^|֯ 9 qipqiɓwsm ѯ'oӊd8s&2l62NxQQ(-hw ƳС=wBS:hʍdaժXi;=yy%ؿe,\x^DDDDԬAAm^F̞ʴ7R0l6!Hv`h'.X? 44 /3о}ESϏ>}[psV;g`aa[[Sxzzi60339m&k_7> f\G8;Y3}`:vX$|iH$MMljm ;l/{.ؿ? %%rX~b9o^_|e$&檜WCԕzz1oj+7ڦ).g×_Ò%@__)S/!51Hn׮d;6]\e]cb2amm"`ii ֈDyB|mhGCuXRHU##3 Jpm^_ HNS~<68|uٙ3{!66 F <<'NDi}̦k+-4T뼩^nM_''K #ۛC_ؤR Ycbooch\XFF5D2ۨqY]TTCCAبQ~mv&&xi/B8}:ot %,8Sbз'| g[oQkKPWZhJ|z6}{g""""":յ22 W++љKG5drLF#G"j9|xGXq~~h5^c"oOkoHѱUMcӗ%z Xm瑗W!C|4o}hzG*t ww`߾0̝嚷ӷdش iAAJe*:ٶ<@.WDjJMcӗ%Ib=cÆQ;W z(*aժptbxycϞk.#4.'0{~t1LM _wooyp V{hQ}{;b >S/=&7M_""""$uTR"GDDdrtKKzo}#+pj"FqVKѱ#̚4ݔJ׮%D??'jelܻ>}LjJMs/D""""""jR|'$D""""""bHDDDDDD A"5CL"""""" DDDDDDMA"1H$""""""DDDDDD IMS$ L""""""ܔ$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"=*c2YYeMM[[#JQXX9*..G^^EZJ$?ˎLM))%ӓD+JvvF00o52)ZH KKC7_͕Dh&&zmcr% g_?wn/Y?'77sHRc۵)Z0>f,zf ;Lw-7Dpp`ͣ^5r vR&~{嗻?"JDaDDD,I>:tTLjj +:T6iSqÏ1OxRi52Dֵ7+/ZrqR)`(J̙aDDDpVؽe-&6o6tcnPذ&VĠ\%PkJ9w.Ro ]b0th?isg6mLᬃ1榤ӚGqtKNN&xm,YY&?5ǎuÊX"6LpADD H7nm~kք7Q .^`"""jrԋ~992$&pq1a`R{E(T FT {0W;Ds쿩(KX CC)\\L=Dŋpr&ʑV-[nc"f_qq9+BV &&z7.?_bVGư3nеАRb([Zlɲۜm HO/\ja}$%#5 ֭SS2XX n֥:dUɔ/DffLMl {{^4@D QDEcӦ[t)S?TA0kVʰ}{IFv8=-&Lhv,_~+khX2 w^y^yC쿹ܹ/Uw35رn2VVM_c̞5knСmйu#,,۷GҥLdhCॗ`fLā DECz{gO:oS~~!11*ӽ+ѯ#jUE^ƹ7۵ز, IDAT{@~WR8Bonֆ-U݆w௿RӧG*{ؿ?[бc+>Vx Fm=d"CdLr/f^ph2ƍƗBB2sj|Og6=ΞMs;iiq#7n䠸aa99eoj_^V&xw15$rƌqC.6b\Vq4ħ´igqlzo1z_k -SڵsfXg`XZ4dJ̟ +V\ @dd./Dqqf[vE%< U>4:urrd5gdTmߧiWjW-px : v|T@3uDDtuPBB2-H%t)*%'}yX,Tk}KDDIYضXG;t`2=7sśw߽={uիY7/D24" >>VMP(*`%Z:=VA'͵1駻g;;#())ǭ[yp⽨r,^|? &;X3Jo1cF~ݲ6.FlaaѶJJ µk ; 3gǷAv5("*ݺ%% $&ħa''1|Kw߽ҡGvӧ5 \'S'))%jٔBcˮypD @q`gI^\U!:8oFm޽wqd*$:K8z4Y >0 NN&s'FFz1 QZi8w.C%読Gl]j.-GkcG+tj ##=?iX*֭@s_DD uPHH&`O̚"۷Gbc _T˖_F[b@xzZ,%K!! 5kn (u*Cv1wqCלoҝ;ϣFwkt| R) #.dXڵ3K/ya۶;;1hsoX<7.eb+ϗ+V\ǎuP&k[~?޽ŧgfh )ITܹ4SesvSXZh;` p|)X~a`-Aa#.IBud*llaC7&GObfrl˫*Ǎsǧ;w#SikucSAͩ:&?_CC)VĠA[jj {_d]N&" }8b fmLo/۷k6xVikkU:vl{ADNL&6II;v38eԜo|T<1&|^%(-K/yB V ٤&_%6!k>Qk ݻa'7nT՛ k `-- paG[i*|e3/YcffXwuikAʮORYLDBBNLK/?ĊH1uW렆xNsnpu5S|y+tiՃ_]jn-GYsxv }M}'#$I6H*:ͨTP ޽w.sZ[bl_?h3woekk^y1o^Gj10bɒbrz6틯v*U6sNf{:s o k 3vn*Ɣߐ $'h6eڼ{vjՔׂ]uO@PСZz sE.#<Fpit6^.[2\76EZ"j3iƦÆQ .|'#$6n 7rT(5gdii= 3 7c pe,[ 24LלxG򼨨\^[nU5)n23ːY\'2WdC}3N'[ӧ.FFzpw7okAWnm hPퟷo7섟^$Q}[e%e:DF@ LDDUk$fdT Ni^u.)fKѿ H%kQ^^Tpp"ah(5vAϞŦ:s13~X2&F'Nhݣa.@RD|];;]$$!1 EwH왳>4zc&*es] ZvkTt4aCDZz:=wr񠿓  {Y(,,6w}/?7@k׆ҥ2Wf,|u1|xLޡIK~8 'N֭ ׺G9:j7vvFb2mk yy2lv%:6Y@Cmh*Ղ?ұZղے4塮zA"33}VW9x:A'#$65ehPS&Gkns←/zBw*NJ͛*gdocpX 6mꮱ'˦hBB2QP GVV>,q=i#Y9y %&c5 pw7_zۚʯTZL6eet]E]5ݨVJAR33}N&""򋯷e},NꅩSP\\l\JAbbE/xP|mfKsC۠[7[뙛Wݫr_k.AX =쳮6T已鮶O(Z]+hԍ ";[yPHO/ժ{ERÇ;QXT}naj^0w/~uϯ>_^5J~ci$V@nھל_FddE'<lڡŎz1mӱZZЕKFؐ:!t>ߪד$$TK1D"Gc$zS\dgi?9P5e]kgO8xANݮ$!"Iw+h*Nj8d2%+W_Q_q]n>:r$IB'mz_ZczWܡ+ƛӧŃ޿& Eط/ȑdͿ8K8\sm0}z{wŨ]Z(/qj/(cުwԉ[MߩM~!**!!j߽;uVRv[PiҜ~o~(DcFn2Nm|'"b8]joOL& syѣj;͛U||Z4'OWE%M=K0zt[޽w]J5kn *>H 9j{;~<~[CKڈ7lsluׯg?صМe!ÉУU76 ,+:Tg׳q@CgVرdW?޽Fg2[1H|D 쌞=޺իoΝ|(  E裛xݫuk_ {rLx wBqbY.7FEQ__Khԩ^pqxN&S/૯ |9 z^̙ްo^_}<~H*񱂑Q/YYeX;A"#`%|JsՆZHll^|4NHrfgb0kEdJ+kk9nTT>9렎~/…TuqxՊ>u:*;p!Ss(-U@Un䓧J@;ѣ4H"VYALM*@"/x$ Mk[+ޯ),,ƍظ1B/0t ǻcϞ8˚aݺn5rrdɔغnCC)reÇIMz ˭򸬬 1w/֭ ?ѣOffHL,C13I4bKvi}{K?V R) 1_PԵӑQ\acc$6Ӧ:: 6">ڶ5CQQ9vݤ?Q76ESѽ8xٓ3!CڠkW^}CgoP*Dܾ9sB|.7jJaw"GIPqsmۓ5UW_-+J1y'o kkGf̘s-Xylo$1|nn_ֺw,}{-d>fsC#ۋ#U>1*}IJ Fmk)1n*]lyHYI|a`N23Q"&OĊ:?ƟD"e]0iʱtn{4}Q#T_'R2 mۚg}pD RXZ..8IeH8u* )ѽwbΝ|UMZ7nv1@47W܌$C(**G||!W3V׿cMH7.DOO~*)7.С&'cP:b)SDDDD:$QegaԳ*[Xm[3!*yyU=J$[oaxw&D"zednUls}1pA"=꒓qh2Trjemd=k<$b5DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDc11/:6(**GTT>:t)sGK񅈈ȃ -(-7o8d2%ΜIw{NWBDDD up&^lw⣏nb"? XJ [$/#lYzv-!C<4Abs υ$+(-Ysse04bT븺BH=m R9Ӟ s~~Zd992q>>Vر8֭<JߊiWm۝:b#"""ҕ 'Z02+t`7\2bdO&pf.LMnbL 1a;ӮڶMLЮ9Q=|5 LYuMoPsR)\׶4S##ˏI}!iNy?Ru[ɑ RɎD6`Р'[_ee (I;Mv+qJ\uT岥ʘ_:-z`aa9)^xΧ%aa9(ܺlm0dHL #[6X |m ~.Kagg.]l0o^G89sx ܹP*%K!>wE$;w!+a~ZcڴӫOu~1N7~ڙ㭷Ԟ 8~<3gzsgA…fŋϗT~~jFCW<̟ ݺܰre' 9aժr11ص+O#/O <-E۶f5?_~|(<<,;( 07Ww߽ // ,XЩ1˗pa'' rWfLKK<\Q)re RIz5 w!$$vlcy:ٹ~C]ݻcqVrrdӓǻcXZĨO5վsm_ۣpF.A,T\c۶;8w.AwwsL4*5.cJsC 'cӦ\a: Ǘ_Fƍa>Ԛ$>/g#жW$&,_ {Np߾x_BNݻcߩ˞ooABB/D8: (oĉ\O> Ry)5!!.-Q cc=WrW}ח׷LLm… lY:rR|2TVxw!! LUW_=\ __+tf*n#44|G ݾ:o!$$ΦxHH(]8r;yTdb׮>psh')he9 eR_ܹ!ЩSUqFBB2lB8:wX% BCq@ mۓHJ*FYYYe04а鱵ΞMu_~ְۣ6͛98y29~2*m67߂Un@"ƌ.vM 166mLѻ 3᫯zbJJ L92xzZOֈGll-33=ؠT.[EG n^qBRRJbu$&cǎ(b`g;5۟ߔDDD 'Skސbݺp:$&'cÆ033ƍХ T|#Gj lC~ 9s|wr%>:n]8O6l-uⓨL{{c|Iʰ`%`8L^N}֙<'C^pq1Ν%/2r˖uQO?ヒ=qXK>פ) ˗ϯsXѣr˖]ѣlX:ΜIGX"@ ##KgqX2էϗcҤ 956=/{ (bÆbK Q>_ll6o{{c|YxxTlKu/wqBJ֐k}W>8w.a7H$lx?oo*>2^gݶF<{6] 뛿eךU.? bR IDAT ?z_HK+w{" .ðaqn!kEDDD6|'3gvD5 R_GA.Wb1(cc=,[&p!i^T:10h7sYc)֮T+̝$U+CJ%Nsh8p 1uʍjC>פ ':wVy/"!Jqcw1@}} fPd2`NBvXMw1֫fDD.j^vv~. A*͙-- Я_kӫ}jOn=lC +sJר|ab X..f*?v4$b |{cX7H_y(+S /OK2i Сm0uulPj*-QƪSz"Jao_ll`fcc=DDD uC^5:i06փA ͆D \c TXi֘'V冫=`ml<ܔUru5C` q^qinmT4 ]2L|Z6oڶ5*owEYcƸֶ滚/]BUM+Y3#G^sYVUEEZ!m=3ZRI5!iTGY66F4f&&zpv6R) # ))% .Ú,>ǡA\D>mXweJ4ϗ}D""ǔND] bI0o^Hˤhnͭ:)ydguvNb+WT//żypX2KvE> 慶$7Wb8;߿f\Pd`jW*BE()qb&LM1pc˓P /G*O뺁?q" 0n\큰'Hϗ#(NA622Jq|Tw /Uдk}WO#]wWPPCnm +ܾ%Kᣏn{w;aU٬o+-UJJ)YMIzuR$>׮r 02SXT:LLjN/s^Š'4uManr#ؐuP]`߾طٻ*T zE*bG+eWA׵Ხe] ؅Aѵ HPB 5 =Hm{so_Ó̜33I{ϙ3)cڵ+K{h޼dիg類=딻.q~q^ޝ!_NTUv">_7[f*22TmTAASUUn+,il5hPխۋUnڿ?' 1;H/UX%%F5jD]/N&SOmVIR[vطk;Kyt ԨQ50w>KŇmI-^|X֌]5rd2ׯvy6ژ$ؑ%x K>,ýAyfըVyXcÇ^@^аaU(--6G9 LュkWww3\JHcm{Y"=Ud6N*" z/bZcGxoǐ' Եk-h߾Sٌ+7 QXXTTd̠(;HxIRqCIoҨQum}r<)==\e}͍WED0!l-[╝]kk}ںO$Rey˩ jf$pq Oij*91}&C_Й֮=u?#""TG)=@))닊l Rχ'MEx{Y}l~{Oq, [ԬYuٯշosBISV;vdy~eQQa9s^|qN(p[gqLb.Yֺ(kٶU :ZphZqӧ'9ٟKݸ1˅۳[>Z!!$$楨ZpDŽ" [гsgׯ8kjOk3b/ *)182ݴ ݵ+[キPl.X޶͚SV8vF{fت}rtM%Kwiٲز%C%%F:(44]6fDDGrAAvVfUpg]ٌ.=K8i^c6ܹjU&MY\D͚U֭'{dw_/ѝw҄ Դiumْ?+c[*66`s??EKQ^:]}uU~:>KQhhNSV3٧ڵ_8{Ҏwa^=\}ڵ[i,Ԃ)ڷ/G]ruQ}9t贲 ջwYq=F}wo|͛tYGn͆٢E:v'ukt]mWEק)&&Bii%CT UQM?EN6-_~L￿GQQan7ޱ9obc#qc>ؚtԮ7ϧKу~VMV޽9={81cip_v؟}j֬ڷQZZ.=/HuL^EE삱o{ ݽ{m}^K┞^>Kjݺ}$9O??YkGk+ֆ 7/YW~˳22[;u=5)ɚF}c$IO'篰͜9@O>IVifбpOWgX{mjp>ժNЪUin=XEg{} )Zh޼d5W_ɓ׻m#}{~zۺ>}=*TeH҈o_{o^zicyDDƍk4($D6~x_0rK7t Əo7LҥGt;٧\ʏq~u˖Lܙ5jTU+KJ/?\ի֭kU Qvv.="ƌiv)`۞vŊcJM=MKXÖm[23 Tn6njy.ks6E$VkXv E)"$}UՋRHH3zDA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" @ H$DA" @ H$DA" @ H @ H$DA" @ H$DA" @ H\p)VJӬY+Gn%I,E#ԩ]Ǯ]2F1V;.j{tiH_\ TUbb^~yN(PRR~4p`=v[K5iRM;vd嗷ȑ<҂4B ]km[SuFiƌmٌ6oOߪ"H>S#F4r7N_\Snԏ?Ֆ-=cb^Hd -}Ri覺JN՗_jfݎgStt^zСӺxYd7zt=k$YDDkwG٨Q55mZ]$h, c΁uxW6v \O?$-貫Z5LӦus<{n/?|IҸqD =W8~sٌM5@ ƱcyϞuTF$J0Mѣ7mۚjԨ$ȑ4> Һu =s`3s+Vs]\P`}Qw11yy%K{D0AOzu+hk֬p.8&)ͱcm *}Q 3'N(4|TQJIgoR!8VM/]ZŜ>]Rww[i6-O6[5kLtVN$lj HD) kx7dyڰ!]qq=W\|_{ܹζ&999V(Ellƍk.IJHHן쒒?UIQDD֭khȐ#CO3g>F$kkvN3kM2}I\^j+&&R֭/]Բe <ڽ{ӲeG5|bu5"x'bxx|ԟcpѓxR%LoyFjW…h]E駻kz#.f}$I%JHHGbF4hPszξc."Իw]rIR߃x.A",c) @ H$DA" @ H<|w/KJl6:vx-\)LGYlڴlCjݺj*.*2*9sSS8EUV)99۷o/Iڹsv!IСES~֭Srrծ] m޼Y{<6lؠbjJqqqeTrruFa@XF\߿_SN$w= SF$Ik׮$խ[W-Zh/11QܹVzQ!{ݷiFk!''G}fʕ+ϻ |a\g}0 H\ ҠA<ᇎ{w^j>$_~UMoHhڰa9-ZW^7n</\yyyO?aÆ>}z';;[k֬$]veX_kΝڵkc(߮2P˖-Shh ג%KtըQCwQj}O?u ǫgϞZV233{RT-X@:pj֬x|jժU5))I׮];Pdd6lؠ'N[njРA\y7!!AǏw}'IӢEΝ; k׮ٳeegg[n;vZn5} -9&9r駟TFF5j & \z %''N:1bƎ[9ڬȵӧO맟~dĨ^c]eZjĉ3gnݪG7pׯr.y͠LDDd~aۯZH2̆ ̠AwףGSPP̘1T^k]͛7{ܹtёfߟsI&&&l6u~iРլYӬ\Lqv̊+LݿSXXNz!5]߾}\-2Lddw[kn6 1O V^ ;wIjժnݺ&66L<̙3Ǽ{n7o[ڢ"s׺ݬj͛g^ySNǗ999A+Zyᇽ6-ȯj޼d:wlBBBLC=df̘a&L"f͚ȑ#A-@_~q㐜woٱ̡C>|L4m݃>WMIIw}ב3<ƧN:_7EEEA{?X_y+ɤ/28p9|G:{f7H2믿{ڴi,XP2꫍$s}-h"t IW^)S8ƍ鎛jI_~AkyIzꦸ8MNNv4iG/ұ#[[6Ƙoݑ{Hg8pm;XfOUe]VେnF~籮2ѣnm`ܸq=K.5!!!Ah "p-8/e˖F[ ]Ν=&&&0#ɼ>5jF9zPV^푮TVH2_~c̙3$Ӽys6olZsךHۇ/+((0k6̔)SVիg$?mu]gbcco[~eW_}CkkvM~yGoLY؇?J2W]u #cՖ1]v/=#襤$?ʵYkQ_}Ì}]uQ^ K{`n݂Z M5\wǏ;n`J Ud>Dz;ƛnH2Æ s,;xcO>tߟM69z#:i$pǏ>-c{ZƗ_~dR1p@G/E\{vYsi]_-ZIf>w ?裠$裏CBB̞={|nIVZnN|LG ?op-[&I{JGII$VZe.m)))ڶm֬Y?XԪU+ŋ;ꫴsu|V+ohÆ Gu&X; g,-_^iԨQѣ_~ʼ6{C-|j?::Z:t8(/q 2D;v?Q΁.$d ־}>}|Xڵ$XBO$͞=[g-Zxo߾n*}fвe*''Goz-EFFjȐ!4a„2n"2oZK,fSZtUW-u9995|ݻWfW/$]r%$ƪM6Ak߭[:/vJHH$M0!;}+ڲ}y.]WZZZvƵYkrpe1F֭$vmFi?$^]HHۍ]Y%_7>`ڵkVLCsРA^h=﨨(}7ZbΝZ*,,Ԓ%Kd}~[y:ģG:n^X2xw8z֭#GgϞcƌі-[|&uʕN:zl[n`&SkAjڴi\zg3 _@'9??}mZqy6ڽ{N<鸎K}vF9~ Ho ڵkؠޔn*Iٳ{2f:,UE'77W۶m+ !C_޽{w^SRR-[ ꫯ6)))R裏7tB9|u][nEO<SNy-@~)//O}YP\E7ࣴDrsf߾}m V,-kwә=ɒqF+$$D{>+fyرԲ:qV^7H fy?HckE9AE$2t޽JOO/ubmܸc"GPK*33SڵSΝ%I;vPNNNHlذA6Mիc?ݻ+&&Ʊ}Vt}iԨQ}{]r;.***rfG$tM3g״VRIIգG@վs?܃*Re]ze֬Y2(..έ(֖AǑ#GzJ[ߦMg]+ڬȵ~zl6IWsuASek0<7|S%%%j޼ʠs  M(EPvwvLPIkbccպuklٲEyyy7۷M2jŊ>|ƍuuLE;t5jH~g :TC͛+((p|vYh'&&*??ߣoO$UR帚5k 8ڏ}>gyFVժUTslgJOOה)Sw2]6Qq ,덶k/gWIIIz%IH]v՘1cTF [NK,d?qRr.~G? ,~I~-,,4QQQF/}nשS'#L>c]~~{/vmLbrssҜ>}ڄIfѢEcyȑ#<6lnզqڵkW0x׮]^vf֬Yen'&,,H2˗/w[`1.3{17xcYV\6l0۷ذafǎaÆF/&S0իWwlj /`$]Ç{=ߐs뭷cǎy<}咒SF #|g^qF_pd"""L^^^_VrrrLnݼkΝʕ+M^$?z׌$3qDs1ӵkWc 5'N4A<|J+o7!q^IHHO?ݻw+..N۷W\:u\*..W_}m۶СC]ZjnݺM r6l6}wڸq<{5jGS0O?վ}TjUnZÇwD7t6_|Ǝ+zƀ.s=t萚4i"Iڼys@?&~Eիf͚)55U?"""޽[^uILj(9'9V:uD$5\Ç{}1<<\O>*zRXX@#Gj֭z嗵n::tHWթS'~j޼YYY޽j* x&JDA" @ H$DA" @ H$DA" @ H$DE,"(]bb^zi{ۄH TUfպuM]zi}ED:"Z:M2  H8+11v[8W/JO?C{׹tQ4N!I-[P||WYlQiڿ?U=g矧jDoPXhӚ5ǵfq]~yC=L(OjdD$PZZ~[{e׮l}~#uh=IRhhƌi^f%&g(#@?pD:>ʛǠATNmڔ/H$=pGլzd ع3K>1YM۶5ժU ΞOz~}F/(=u!Muk/LرԹslPhժADZvX_CNSUǻf36G(I˗UZZ$iܸn]ÆUc,I??Y;wjQ\%'.>>ZO J$I5jcb"JD>Lisn#8ԯoj~ouDk3>]ի$I-[FZ +h{e͝lk#=J|eeRqA"*C54dH}IRBB wPfΜ}z$IL],ypADF-SOm_ڽ{ӲeG5|bu5"CY)yГxYo8IR~~ҵ|QGpרQ5j? Tpq 1uIZÇOȦ(]G\R-;]HDA" @ H$DA" @ H$DA" @ H$_pn),Lj AO⹔%}k׹='ZV~[۴&M졾_Ns=JIqWJ tJLt?@ ci8髯1̛gq{9i^'J |SE ]kd%%ֲd9_;+Oݞ XRB]o239v@ **~CBtVObzK/IHyyR~o4c.?_.駟;\'KnϮpRGHw)mrn㩧ޅ5eˤ4BBxid知XlbH_$j<(s4pԢ4{=c￷>'u{xiUJ]9[f<'+B*YA?H΀V-ɓs P-ߠԹ5f͊Ν% J]J99[HRnرDYc[WsRzyk#WǏ[!I}HkW($D1c\ov'r޺պHIeyOtZ}O(U~nFimfjgruMZmMÎc]UJI&ըa8yR{YE#kh̢EԮߝwSXgEڽW1[."˜]^WӲ5kk6͘_6&6s?ժ{Nkͽoܙzk]h1H IDAT'NT(ݘ[o5&&Zf7߸KMHɺy%k9S}_oLh/Y=+Nwu1eovްGDkWy͟f˵N%c{w0 8z34}92Ҙ.]y-9s xtfl|eZcocߘqXgm$>s]>/'cڶu׿WO=̣cGc&O j-kع3ĊGYQuhXEg A'Oos 5{wg{Ƽ1:8{ B*]cY?jk|`w^$m >*+`:ճ 7-@G H$H ئMԨ~ߺ11_}eLN =ɓ7m~!8iu vn̡CiwK4ibLAs;o>[74nJJZס1{?qº> &MwwUz~YYV0)[>y3e2\:oz{.8`?&<뮲kOɘ^L;usg}κ83]a1Z믺{;+U2[ܯ!c5HhyU]hy$FEnrr?<PVft==un 1"#==]f{f{A"Abmje l} XAzO{5F#}dHP&W z#<3}3Z{Ç;mZr\1:>c k޽9l7/.km9{] )vԡ1EEi+ ,_~vWd} V6m|z<9l;/{Cxihy FXEg A#x߷}tA.cg0Z?xٻy:Ab0˵ <6p+@^:uVw"^yA"뽈SZO :U9CޗX'R FZÇ[xs$/W~ŚLw!-X ~-} JW]e}.("߻F9'a1ƹ>1XH+WO"YT5p-w6ٟ;qcׇ1mkMԑ<@믭#EEyO{_^(5zV: ^} j 0m]^v? ' v9WmMֿBkᅲ>ܚD#kիF k\riʓyUֹ\vezԡLoP4j;ݻ7 Y |̎Y }/҉,ݻ[eg5^Ϟւ֌|>WWN9sQ9l1KL{Zx4o4ffI=|u Qk\׮vojʹ\ zf4j+~ ~EFZ7CJ>k4{ _/VR{G|sr;˓\܃K/}83S[d.;Y?rrVo'L(}[R2ܿ_+H"d}eVhF@}#ح_4 Dz8zi>;wФm:ڇx{xlu#:q5nf3gZ/X{oE.קyDos[{phb0Xa-?өeñc2a]9ˡ x >?{-碊ksV`GYъ1e{SmΞ 1qj.T :ft>x+RF"77W8q&]; A"OLt57aaV'ZӑKmyasz-{5ogtހoyU7׾oa"2 *5@X y$(#* <ꈂ(2B\WFbXā^""0 QbIwrUy(ro}auVF_K /@@r(M׿HD][/Z5P5Zg^fŊ̓8T3jYTi 7d~w߶cnؠ5wݻՠ8Q{|0;ԡlj tjoL,%z5{׫3j,5}矯sroެ6$ رC1^NM?Ϟ=0QYV?쑡NҖL9FўgEv>b=|{{otyaӜ'? W@DG?A3A@{BQ4B|B\G1 ?.gF_+Vd>::޿nUۙg Bd曅}[c Ғ9==Blۖw?MMg qBD"mLNj/ûR 18( 'd.),_n"Ok*%z{|gϞo>&IGnU#F'Z_﫥E'b|\or~!}\u\)'?J9Gm>^ ={|gxߓ]{êUf\*$Ba6ٺM5K ysy\_՟jfb&狦Y#U{vT*ګx:|+ EkԳCM:쿹6u:3Tg_Z͋ա\yr~,Pߣ{ mK sV-->??p^P'z՞W{<ތb\z:SuשCB!uݻ{z!MqJCvc15o'ӽs;;+Wֳj/ɤЇJ m \t#ƍf<(-l+u-j]/)~SKGzP{/[LDD9WѦ[moڤD3m6N.[?@FweØH$Guh5DsȾQתM'G& 1H$YG[T' Չ8֬Q'աΆjpxm/""YeښW˗31nؠ>fuDm8"""bH]fo&>:>nÌ^@;: gԥSuh5DDDDDD;DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD hf'H(ePt pcޗs!2:jIV!CCCFhllDCCü͇H$ q ,Yᨮ`^D6 `6pB$1HrSSqHf3 v$!HԼqǡ( L&,ˬ)EQH$fU ͳD"爢(Ts/ZGq ̘N:kg6$MdYmhj$ (@,&ch(ΣX Ѐ6V: !`@WWv{s~bAgg'l6['""zcehh@kgD2$If3d20ӈhifNNs^nObQԤ V n7P@Ch,F3<Dp3gbnB$"#W̱ ! D If3l6XX $A B! z((B>nhD<1)KY bسPNSjaB!HͦI-==eYF @4-(/) `ZԔVV@X ,d2pvM{4E0D"`d2e(D"˕3ix$Iz0p\iZ|Pۯ$IB9{[-ݲ,h4pRVL}ŐH$`4aXPWW.\%^+O-E낢(lpE\ϵ:F IL&V+΁rΣ4CefPH[fuuuUR/U$b{f15dH(2N066VIiL&,[K… wy::: CƢI>晢(B H+j. CCC񠽽=-/%I =X t:SL>ccci|>L&vglfbb"솱X c=6k}gҥi IM399 ÁN択7VH$zz)iX,XtD0<<1hllDKKKUcccBhnnF8DZ]G{{{iEqQLMMTG]lFS~;55444`hh(>155ϧZ[{@ZuA,p`.sH(I( F#n7l6vddB}ɤl,q>|XkOwDzá'G!!( ÁD"p8($bL;f шP(?ŋp:$IKky ՚|L&\.XVb1B!ȲAtuuV ֋g2F144TᆓX֔j=Xx1 CEΛRpQz4[٬npdU.JAWe`x^Wm5SB!DQX,444u/Nv{#/155UPV baۑH$z( Һ:\.()qa|{@e%Yf3!CiiYpf1 CQXVtuuȲ!avH$H$p8Zzϔb R&>|`^Q1 magggʍVQ C`JK)yOyF֖x'n7R-˲ll6tuu|100D",]To\kb!ٙ|>"+H`||\ٙB<G}}}M5EA<f+xsju4B$\.477umV_~޸_hQJzq!b1~Skf"r48Kj]]!$ۋڇEkk+ .J=\hQ=pL:x dYF$$rDt""*ʟb1cc15j7vw @>d2FB|uww C3)E444dF#,Xêf:OGN'hÔjLAe7|>>\#sժ7%I5ɔM}}}UfzUFcjQi\|XoKb1z4=E?)&Ҹ\hhi-nO ĒϥАvHli2zx5/T^:DD E`r2(Ed2,_Bk6|>9AeLoY_ONW)AbƎH= ̓l,$/O4=p'cU 8˖rh5Kss3*D9T+ޖ*[};f <,XPt^Abu8U +%y7ybU=r6!"i (MńfۜXQk@服/VJ#`0Ya0r$ORlh2r6 &''!˲>g&$Y9[ Tt$Ie|嫽}_WZVƴ=*qr?zS-Ͷz[lAerpT=҂D˕sK-Jy1v C$M}R{@%lCD `)\[r͝О`U<Aͷ 1ɟ' L͓bL.b2S(_qC~rȗ>\!rZԆk%O4m5DÁAe}R7n[zoVŖGJT^ζ:DD a 1[v[fll6[=wԆ6ȧ,>k'GC-f_n[">1$ڊZZ+BنhR{@%lCD (q. -b t4^9|OzJy1_O-J IDATJ̓\e1ifL,dZ9y?$l8vzr5aw+5x ^P<66(G!}\X"п;[J.\VeO4>gFdaxںoC?Dؑe9g#AʹX,ߙʓ^)QKTZ,_kOWbX姖߹X@UJ>TYHH$-іYdzL&)mYRPuE:DD JB! "`44is}g 188Xpfmdy-Yk pEQ|^zr@9T)sV+iVzUl>ji OBd\SZ9j{@-euh||}}}5(h;5 I E4͘4_VcNh4Ç^SSZZZ`0ѡdp8P@@Qi 'ӞRB!LNN;Oss34vf!H  X,VSUӉH$|>vH2̧9%-7O)'m6L;2~?c^644kf2ގ!qtj"!jL_t#N& HX NS=0yHDo\.(p8p8 ۝qXjEss3 fDєqLցrk.jhjjB8$IVUե=*5{].B١> b j֋XyTmjQ/KC$j9/1H$Iup8ݍa$ W,nf966Tpl6 CCC$)eqɄN|>bv444`xxh4e0+'g,|hhh(-/g e9myłC(a4155YRiA"tvvb``X,ez-M8x`ֆ`8$IJx<:PN>cjXگ/5f]^աXsUSjrQ b&;(V۝t({0,KC5ͦ$ e5HACoIR$rZe8^/.\?Eצ׶[IREA(B4(z/̛v:yA}P U j9D:PN>͇z[ M$L&XVG888`0za$E<KUyTM]/KCDD iޒ$ ,^w<ӃD"J=0#"QEd4 Ѽ%I6l#""D3$2@$"^ '""bH6e:D^ A"٩r F#v&!,fUeK""m9N\CDDDDDD>'""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD3,=! Y0 00jߏ шC`ZY(ðZ%W, `ѢE0L ! JUy^|>8tttD"~bX夕j#`bbxK,,˼W1HݢQSSqJ Ѣ(H$eZߏQPRpǡ( L&SIH$(JUem{|e}*7T󮿿_T彊AGGI$(@GEә)dY@}}}Jc6t#ȶ !hhh@[[[M]tY͇ !`@WWv{un&Y""Tb,#َ C&'hnU5==x<ېe;GHqbeq2S[bSi=~NNBD HH$!e--6X,YH(%D" 櫡!h,>)Iz({~hΨ5$z@Zin7!(Nh3ׄaB!HǓ/@0D$$I0Ͱl;!0r($IdjE}}}EEQB!}"ݮW<q*wBP(Y+$Vjxi2EQDOVX DFuuuEVre@X ,d2pvu,$I$nPh4`0D"&ɔZF#G2zU}r~~b1!`XvaKs\# UhZV :Ql}D"z6p-8b9~IP(73uҶ!2f3RP(l6p )"bx4eɐ5@pk0wDEQ044@ EWWl6[PIښHEQ00080::]h5227V4~XpLGGǬ5jb…)H$<~ٲe)N$p򜘘@cc#ZZZW喳Xq|>L&vOkL&,[fdd$e[yL166ٜz155Ʉ$UOί^uuu(M׈BVYc_hQրwttPᒹ P__tww1ED 6MMV|Xo@j  H ^jTi$appP5zdYF0D<՟r|L&\.XVb1vpp]]]zod{l6[^llַF144Tp/X]]$jsd 4yl6[,汔rjwcc>bjAsjppX H$zPzk]]\.E80|>_D$A  Ce-kFQ =V+&&&@= PV]]])dYАރvs}#dYb R.755z@6zбhѢlnnơCK -gYf+q H`ddK.`@]]H$H$p8Zl. )h?iC"H QVHZe L(ԇlv%JE0X'>3g!ǧ]k?Ǔ܌~D"BAHG5sN;O(f|s*bѢE)ÁÇPf*ÃBeD"DTS|;|qP|q46ZQW7r8/ɍa:bH{d2F1 v=妪Ij*& b0N~d4ԔN{n`@ccc r:::kZi%IJf6LX`AZa}}}Q3Rr08QS,h4C!UQjM$iCˠw%`h4fAZ=?q,3yͅ{UCCCڹp8a6- FޣʵA<(Mʲ\2[7[#Sd۳X=wrQasssV lh4cPx`UǴ4iCᒿ_ Z}mll:3S>ۭokzZ #W>ժhBb5RiՆif*D"Vs 9昬T rP\Qcsn.ܫש;ˈū Y @4 &')hkϩ!l d퉨lyS1`0C0,0 9He6|>dYFoo/\.<GE9ŖVgnQK%׾V+Fc L&8NP(EQj6g6eYM%Lk]]&&&R&I~b'Yu2S\W A"% 0/l6#cdBS4n~i`!G;i i$jA ZlՖ(v)Zp8dYg"ۭS:ܸ+Xkvl.j(A(҇jyMzRjUM:뽊A'zu-Z9HR&xN#M$_ (`KXyO/|,>uHl.xa%h{8:Py}m[SSSYɒt:a2ZͲzY2mxQjZ᠀8$I*dV *u,3yͷ{ģ˥| FQSSq E04ɹv덢'{:Cj\ƙ,Oi|52hi*xLLL@Ü,+ϗ|jek}('Z8*WV{ {գXc9WJN3UC__S" XȌPHB,&K aa4%0@S&!-ԂCqh0ѡ\p8P@@oj Jss3tvf!HiPP(ɔq:x>R&>8t`2 H$$IЯI *q,sz{$Iz-gU%"sXk ^oᰄDBI4hjn7͋&rF"@8N3hmmYm]]]$I)SL&tvv!qFw{{;!rt~mmm5KC2::1MiȲ1L0Jyw0ᒂDm=CI`2>GUVv F4Mm0܌Yq(70X,TrBKK &&&RijtPeQsn9\WUA! #I "td̈́8{pXoX`Xvgt:qm8fi:p$IB{{{Eؿ?/^q'_`ڊ6$XA"f ZfAQ\.477 Kc!"5DDDDDD5DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$Ë/al,Z=CXti8qB|>|ɒꭷ{|||Vk__־y]s܎_~9.]{w1GFD23 f` Jއ>z{{K}",6 r{Gp7{7\^޲,c$IO$IR 7b߾}D{{;,Y2g{RW7Ogf2HED0Xۆ?a<#?>Iq2~H8G$ <_,̼\ɋ<ˍfWlٲ7x#~3}DT qǎqǕYf$]w~;8w\[o$zzzpWgĹahh/ݻwիWr#""R^a6_m_=>`ɒ%xGDDDDT0$?o"p '{/駟ZZZb lܸ.+{SSSӟ@j4?Fxt:Ӿ#I|Iڵ @}}=zzzn:,["Ǵc<3xw`Zzj\{pطo<{%c֭@CCCE<00M6Ul ?9X֚޽{ꫯb޽EKK .\u֕復uddO>$x LMM~:֮]ӡ՟ŋN#<;w"`ٲe˰z`\!~_᷿-?x~9-㥗^\xzlݺX` y>}Ywpg+AW,3<^z ###+~zx<։ ~_СChiiʕ+q5d$͛78餓pWczc߾}p88pWӟ055UV)T<={```###ԉyX,{eדb{bW̽m6\iCgg'"GݻqI'K.1|'neXqo5yIDATXz3b۶O[ww 6lؐ{ v! utt]vvh4{{{߿?۷e˖eܧb_Wʇ>qf~OO8t萸_}544dwZwJMOS=kmm7o.nV@tMMMM׊x<0Beq5?[;::*N?-XfM;(֭[ WXQ СCUn.?xwO.$.2q]wnM0>񏋮.@/UAb}T#HfYtMO=TQ|Ewqg{oAAbiݴiY[[kw~zQ__ד%sp88s.Z~e:waZʕ+Ţ38C8q7{L|hV_.~_'O?!crv5\#|3Cݿ׬N$-"/X{??ϧ_4W^yE뮻N|_g}mmmEwy˗oYyvc$G)cnIVtI⦛nJ{Sj =l򥯜{lh6POO[w]qUW+,طom A"<'N=YsBA"8;wqyłozC7h4*VX!|#E$'tZ߯@eI/Ab" "7}>@\tEuxxXA\jHo-.]*nŊ>Ԕ8O;? ZK/MK[An;wL/r~{KKp'_+dYy{q'w}7ws{+:T:|A}iW;}}})kg_|)?fYNAȈp:'>Vr$G9-k׮č7ޘY9*-}f|_ > IRSOӟfÍ$cF D4*S:'t>xi?w}b{7ŋ|f/k׮EWWW۾k.x<lݺ+VH.块SO=5;Eʢ. uX,Xn`UK>`0~ ,H ':aSO=UR>^wukRV__'|R/'?Il2WJK[nF|)Ї>rJ|_LKE]ӥo/hă>577GA8~׉SN9_~OO} 7n,:"/򗿌}C^Z)j'ոd=G ."w}0L)>]vF41Hx/cF?wTƭ&-_Ǿ}27  p5\4Vi6u$&''u`yuj??k:֬YN8Av)a(;'Z Ygqrδ߶m}{gngg`+5ٮWz9B=p82K_Ry ݞ;֫-S8+]OʭոT=-&H4 9׆ʤwh5cxp:7Ott-{ml몫ߏ xXf 6l؀:'O>$^/l6>Oe$I \D"صk^xWӪ5N9唜^j݋}\uuuY-ԞO@]2j6+v<;C7dYU3z/w|XL>k~O?t׉bWɽ)%K/KAG,,\0r}T<*yVTjjj]O$ ;w|]:V.D r h4.Gn?_7e5z ٸq#֮]-[`˖-ضm|>yu]~G)o nϞ=zMr޽{ 7oޜ`AbB$\qo~'N: 'x"N9߿7tSUӪo>jK$ iAE26k,ԞBz,KD׫2y\Len咭S:+YO]KT=gϞ==H"T"۾'ίihhƍqF(]vGŦMq7.K3z@^D@Fd|1D"m۶$ v'>l?eVY͛|B{bI$Yx㍒`0={dW_A"[9?Xd V^=#uPx<ؾ};.{뭷 ~P{/^w};vgNQf=i3UOITKe BcqDg7F+.+?2\qfn'9|plڴ)M&֮]><@,\PoL:tO=bs=>11:{Nq^x!ySSSXf ֭[7Hf(?Aޛle6)ѦM嚅Qf=i3YOsIIL3| _UCىA"ep}ÕW+|$я~}'m&?:Q6moZ#zd=~ߧ|6>>5kzsv5U,Y h4h4[n[lZiݸq#W_}u,oDAOOOO~sall G a2pwvZ,]B[.-0*~\.\r%3Z' 099~z=??\v ^/֯_Ϣ;RZZ9QTWɓfk=uo߷r &&&R׿k֬A$+p-|~cʕXre3sXᆱb1eOkk+| _C=38ضmސJ!, z!ػw//_O?v|>6oތ SuP\pZ/?g}6:;;?;w? '{ߏ[nwSOa8x/cΝX~=~_Ae}ZG's{EYO +}z͎;( L&.wÊ+سgyȲ%KgjM>M["afDT^XmPy_n@lذ!@ٳ'w$uV@l۶-峾>b ׯpXtttbiO*2j믿^D"۶mbilll=KquU,2c%544{){bxx&eo}KXִm'xB ǣoB~oԴ>c%zzzw!nV@y^i6Lo,7ܒ;vdUo~3o3G===󫻻[<%RD!+fY[nM,H}sh4UlݺUϓly/v{v*1>> G->ho*b;l+64K}{8f0HmlܸMq)Ufdou*Q[l]022|#Z~?~iV_ p""""""D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD u,0z "I@D$I@DD$I@D$I@D$I@D$I@D$I@D$I@D$I@@D$I@D$I@D$I@D$I@D$I@D$I@D$I@@D$I@5zX/IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_PaloAlto_page_0.png000066400000000000000000001626441420322575300275050ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxw|{Błuֶ~SVUZE{ՊUQ  $!dqrSNr&^#G9s0 Kl%!t#I H$DA" @ H$DA" @ H$DA" @ H$$DA" @ H$DA" @ H$DA" @ H$DA"DA" @ H$DA" @ H$DA" @ H$DA" @HDA" @ H$DA" @ H$DA" @ HCEG*((qA R6-an H$DA" @ H$DA" @ H${(Mٕ7~e[w+RӟւOj+Δbo~I6뷅 Gpjɒ,gGqc$)4ԢEFkRIRu]'_\wGEO 7l^,r8\*osgHwm[:yF惩i,=A-IpV]~:eeUi)rLI ckW.Mm<-Ն uzݺ͙ӻy\.ydue`zכrsS|-t{{ZrrrI@͝[޻]_2-^]1#γ͛l^mZyӧO,?CeL~:T|ǏWiٲ+!!#GF3"h6Qfg'.nwo]PUMsP\.͞YMukAiΞ=%JO//OgeoW9[n?;G4wngn[ VqMufYY/UJJ09O755& 2fsnw,]huTVuetj…#rlyfl:.;4aBoj0D$UW;h&I>dfVj57U^n|?kV22;lKJ R>AZ֯?.ըe~ڴ),+Wzzk<PJK݁hP~ڰ89OTv.֑#Zp,  hɒq26Ϗ K'j0w.KEE5+VcFy|U[h4Hv¬Z9O7NK޻M>:N_~y*+ '~6Ϗ}Ul/OSvvbcUTT[nmٜzz)^-ZM<2NWϑT@YPnn59O2On5xpBB,JK+QAAMc)..@6!`aZڻS#,]:QӦŒtAfsj׮NJVSU4=D@k㚧~(?vJ%'q^Wk|UV?u)5 ##bQ;ӓkW}v_ӄXT^^ӘLJQJJnmKUd tFANտ4}kk7 rlZw6y[U\lkt]w}-iݡ$&%''iݺo魷fhҤﯽvFSKS%IQQ~Zt֯>`9'Aj5ۇO_ϟC<Ϝwߝokn&Az衱92BCmdeUJrAmjzkvo+LԩZLm4Oo=Ch9ڸqx`WҾ@ ydM6k JM-փ=%%DѮ]EZ4USduux4iR^p.Z4Z&Ek­uʪSX=Xmؐ.[Gݭ/Oќ9|y,W_h򶵣 4뗿LVE]n$"$)99X>\O?W %Y 誫j޼Dժ}aMW֗_СrIQ@IUUIZl$3cB5AO=5ɳ̄@͝[W]^ii%ŋ3tH,?CG+=LɩRFF*+*(QFFE>|x}w;j6ԫ\.fszyCھPǙzݲ]zCoվr'$%'s{kذ0͘`[ <C<$OU˥ٳ4kVvjUg<}U;~J\QQ;W7&'Y]՞mq:]*/m@ M&򗱚6-V7j˖|=\x ꂤ jj^lN[Lٜ O>RZZ*+u:5V睗 GۇwjӦVo~~> oc\.׏>7=mK=6H1"Bf}6,y23+5~f'PJN%3RVQo&f͊WFFԧO֯?j5/npҾ@whS5QQ~1"ope09ͺ(*f~Πo5:rB b ]xa-Y2NfQj҉^=\.UaX>-t6I=;^g{}g95s*U7ߜ2EG75eJyfz}euct%}gҋ/״iTZtt窲Үx_CʴeK^~y믢rfIe⾊j>-tøqvFAFE( ؔ@}M^Víqjذ09t9/uh״)$Ģx-k0ئbֺ:Z,Fv*Ҿ5g҉6-\ tXNAM?{{^}LtC^ /-3D}N}]O zdVw(UW;t=[p gO ڔ]54 %؃  HPbřziZn…t]#:e))!oQQ~><\͠Yf`{w,AB;nV}ךZ;Mk-cڴ)Wj2вXzJI |gWiXXq6mߞCuCzm8W<0kgߞvO?yrzVn}>}<=:4k##|Trr\zJNektA?D~~uj4zoޫ ^},YtU{5o^Ə,cѢZoZ@pJqN0!Zsnyir~e8>WU9d2dQ'Yڽ^0ZKpJ1ʆS>;u gb17iب^OIM;vOQii"#Zlv,{G/Ue]!!=ڿ7멧hϞf-_at-üFh*q>RRBԻwJ[!;P}Fi5xpBB,JK+QAAOҥ5mZl}z}@~aM+=%q˔^֡ʪTVVelNUDŋ?$!.Re]7i$Nt+7$wgb t#˚$EJ; tJ^= /@7[k Ѭ*egW@7rD4kj"D4ɩuIf*++hlbܱaA"% 1d2l6jj_ N'552e2dXT[[+.өoQH=HYY\.  t[)Sմ~h2d2G@">*OYVvEDth? jkkt:z9Z6q8ztU]]l6O`p8p8dos$@R]]-ip8t:=.]M" 'o.8ujҡ?u\~yrrd0tg˫nt .HTjj,=EFZ5sf>(@AI55N}}Avg#8,[ڦ`l8)åurQh7ը0F6s~X$Iee*/')0Ь0wZ\RNN埒ZUVx'h4W/fw"#׺P55NdwN* $I*.5.: Źp)7o(IUUv:Ta'XsoU].>< m~ L&O|gYgR>r:rmؐK/M֚59*(VhEӧǩW/UUٵcGQgҴiJL 7l8ZIԻwO>"W&D hJַo Ջ/г"a(Jh4^fs]%!"ªC{.~9ʕ2 9Nڵ9 ɠOTY]~xT&QӦx5fΜYFZ-ݥtzr8\ھPVUTjBrڭʮ}oPw-/+;euôaC g{dΞYg%%6?x5=٠Ote{88A|%Hmec-F**77hȐfKI I￟i3fMN"Iz(>>@sFs͚]qERRBJKke9TYiWQv۳DW\ix Ow|G¡Iqp-\@6{jicz]-7\s͟$WתUY->kΝu*9ؔAA:vJV5leQQ*)yDI:tv~*(jT^PPWnQuëaMC5{4!3'A|돓08;VG٥bwhI> ./Ѯe28t8NK ﹪QxR=LF{7kjYfm۝Xbo;~Z_}UWGt'XWӐIbH AqC]`x?4* ⢢5n\dUKKk5`@ƺ&>0$??m`PxUr""JL RHY99̬ FA})&ONYjg|WѠ`+=&:ch4(6_ٜ̬v:.KK 2Wt=NY_`Y})*ʪ*򪕙߅Zp~?^:ښw(QήjqW]w;Ӷm3&Rbl0*m9ջwd2txu=xLH? DKePg${7X~t(;} 6eXF+()9Nj ر̜Q.+VcFj˖ `so#4yr&Lyɓc+UYi1Z.W.KcDߤtD: խՄ ўAǴlV sg護5;ԥ&{[>._aµh( *Iz}z}2hP~2%AMJ}^~JJ:msnnzj{$Kjժ,Ya5*B_?P&Dj޷*Z_JS{ukz0!IRkW񦛆$0 IDATs{+86}zz{k2,&_?yRaشsg8#R))!2 ڽX$ͩ5ki֬8Og5Ng͟4UU]{\3gҐ!a}R[cpfM>;A tl6i>}Ŝ9 1 nO<)3'A3gi:pv'FGy/4Ԣk_2Yw}zȑ y`YFE'XE ;FHVϣhւu}uvh'IG4wno)ѠEF+w 2TW_ݿ} еЅѭnnRW+@KN)Sb4eJ>$KݷAx2yj5jɒq:^>xp|~6m, :\hoޭ;n]DZw@WS`niv@JNOL…[ys/oK/MӵnTjjOQ%%y5$ڊu|8IRBB}v}Ȑ0gst7[ Hl/8֪Llׁe (?ZvQ !t)?Z+?4Ӎ˔Y86;V+]QQ2 ϯnge#n$٠{KڷT~3'AÇ{ndzh.l]]׏K'zMͩ wopHL/-VsHQiim7pU 5Zrr*`Сa<.*(Ȭ%Ki/:j/KzzXJI ѵhPVM7 т=jvm22*`Ҙ1Q:H Rd/k٠C|&c2}]`RbbOy6wno}u>8yzkÆ*)UBBf͊ hƱ΅<ٳe2#?Վ.=QSԵCmqkck]rIf͊ҪUY&DkΜù?qҠAq裏kWcDyfgEF5#Uu>N'6sh8Sc=q^zwēVTTճlΓnơ̊VO_[뢮5NI'FK^~-z~?0Ь{-ڦ:mԨqݺ L%KOͺѺ>>Trw\rʚ$=njOOҰa'S4$&Λ[3gy>{kj193N%6/y.tD]֬9Sύ[76{[Ƕ5+N5޺~@㮒bQHEٕ-^8yne4(Tv}l23uq_ƄZd9u}۴zw 9sk2Nt >(SO=ћӼ.Ez}~YPPfS$7zMhczԾ}F/F<8SէM$}uWPҘ'(=,Z4j-zگWl]w}.BBmd?˛n[TdSO|>Wû}oUPPl_OҥZ4Uww:;=ёm^Ή7F':ޫ-ꏭRϳ,oc}W[o{Z]zX<_,; l]yȨЪUMCvb݃ABk2RS[IIA':jI6 oyHyrU4!!I$wx^Kw,һ|M6ݔ1c"=o+[U5=qFϜ/p@FWQQ~^nKywҤh}P|^G w;JffoG>mgO7ԛ^a}l2uq^Ko*'dy q/\Aqh`s=Ų[ngTZZ= f;7'ƹ3ɓcM<^OAAfO5th]½{KZվ~~~1jԸqQZxLnSVK=Jwٹy16SŶfJY_/~V6uqlՍynZW-[u:N?֚֩]ʌoSKv\ct2;*易_/<泝\pARSKu`i ]qE?}YIp tc$=?To5U)(tͽҟ]6R%j޼DlN][ 7yڱ:skɒzUfώouom[-y|d2hԨ %&)))H}yzlnll@*3_ͻCw:V]N^6 lݕ[{M?]q VKNVpE.K))痢6_xR@Yfk ?Υ 6+88hn ca۶B]vW0jرQ;6J@U㏳bž)_}/8ٳ%Iw9=oӺdK5jeiU¬A:FO̝%-ݐsuitq.jJ-G_A {U_~d$ڀ:z\.M1 mz=>1]S ۻ@OP*KzzIUE9Q1-Brp~o34cF/ y&_sMsNnuKzlGݭbQTz-WG_FN3cםb_gO.JK+os[ܖYuol]~.j*=2SƓ-NЗd4ZU}~YZQak2[% ^}LF{ ݐKOL&&Nр!7)7J6*/F{jhZ9LX7QXEgKqq2 *.զMyrw|EIڴ)WcD)!!PNK۷hǎ"ӗԫ??I7i„hY,~.4Yk䨠mN5紴NO&X|z 4k̘HM$^.x]s͆NKFO>G(IUwW^^r76\FwXd'@7G[Ɠɻ'dsukyFxeɈ13 oU>}ꕥ{Mo))(WFFoqJL z#*-( J;4mZ<8+;Y,Z?*͚U7HqxU3fiaWIbfd'`pm6,Laaա""4sf7;JjKjԫWikӦ\{tEk kYG3oG1IZ$$$w{7_h>ztvwctguɶկ.4ln<|%(O :A>ꗓIJۗc k"N qРPp֩ !! 5kر*hcv*9X[w\qq><\ӧƍ^O˴~{j* $zCJO/WYY._.Kߤի[c*fMNU*eK~YfSI,#F{5~oJBBxbxbot^K.ggWsCDuޯ_HŝBڧO~Aγ{w]qFTnF=|mˀuikWQUZN&sNBls']ܲeЏtSry-NӧO8#^U#;N 1,̢ȑ92\.AV^/.i„(Mt:={ڰ!WS*7J{8mwC5eJfl/?um&$"O5^ jԣZ sQZʔ:^:^䢻ߒ ]|q_]|q_{nˁwu22*b~ 7;]Eqf_ӇXt%uf]~UґeW_ե81鯸kRBOɻec{ I^Uk6wnbcF^@qj?ia8`@v-JJ VRRr8\MZ r8\r:w@W`pW??I))*)he2DEjC:YuEIϟ|ߜYs$4ۦlذp ^WMoޒ.=r@y?K5fLdAw=;_I1"^>;^78kc߾RmV|ýzoH]pA.=:3r]S6 :Xpy:zt~qfot=sNͫۇt&ӎ;|8?vN˽Jk і-Si]&Avyׯ_n@Igf:~| \bcԯ_x㐧ccŴVhq. :bϳu}4yrF{l{2 Rށd]ziz\]ߜ͛dd6hֿ5C=O6*3BN3sMЂ=7Fvi߾.=vKV@/t@[ZzzZlИ1o{UZl/~wojj3)*OKӒ%Ya?T MkfͶzziXJI ѫڣsU]Pd??Q70HVQǎUy%66RG w Ujj1)^6wvTs߾z z]V͝[0>\`=^ h4=Ln-PmS))!Ҿ袾y=4 ccfՆ ~;xLW?^צ/7Zŵ:^Z6GNKi^z#3┕U~(Դi:zR}zd~d=OF_ihM͛Lۦۻ @OrIݷ]˖M2䩦tr5|*|`);V߯ݾ&8جnn㛡n9?P>.UUywZl""Zo鷿$)ؠzg;tOf,URbGw9B4eJUQaWbb牾%ӟt+giǎB;]ؿT?KhPbb,'Ƶ+Smy.ttɩRJg*#BAAf]w}hQ6vD~qmْi3;eJ>`kd9P ̧fiBsH=^(͛!C=ei^^k\O'+ sIдi PeCe3<7|fp/fMN w8͝+/Z>qzaʔM EDFiiL>\_`~ HJKkupV>5\~Og\ߏ?P(>$ и^;KCu/ @ؑAdk +]۶4;}JJ'@,/7[ "HA5N\:(?%$*8\Zu1#?g|g0̼]רXIzZJ&,̪!C<ǏjopY))۶py~s8\^O喡ziJ3^sǥUg+}vLqd9>r: od˖| &?? 4)Zd9eh֨Qӎy"wuSI>"[@:qS]||$oys> B9o~ 7ztdL#I<9>z晱N;jTDesx; Ab$=*&AGGӛ *շoLSOi0@*If Lkk?D$hʔ.mt9aBOXt`>𨪪N#99XFE(99X *.*}1edT4:bQΓ~:{vT\lӁ2t#X:w}-jԸqQr`9'AӦґ#z^ˋ:4Lh"]r{7lXf͊S IDATށٜڷT|šF hĈpINgêU'_rWqn*cc5gN I99Uڴ)W[j]Z5wړFrv9֜J/ը}T[ԁ˫ eeUvhy۞)hܸ C-]:QӦv:6lխn&} /LըQ*,ќ9{֯_yg$i/'(IO?W~~ͽhڵ*0Ьu۶x~KI oϐ$͙ k?4)ئsgHz,sIh0OAAn[_ZZp;/N\.3C;1:]'~;K.`jtӷ:xUX:w}-s||>pLX7Z矟(Iڞlz! $$@@4t*ʁܗC*WES9~rbCE,h( 'CGC{6c!ݴ E_cɼӐVٳ <}7/*.=\ipa,F ʀŋOۡG[)t~K 5,No@VOcϯiR/\I*OM9W%Wӫ{w?zOɤ_ua٢E?5nެƸq?mcPܹGq`ӧdzd2c(+5x<3: 9"ҥqiX 5ђ״3>tUܲL:spT7ʕr}H,`v]u˗C61﷮=Yƥj^^^§JӿD{ n퉫Woٷ"޼Y+WW#M/~{步av3>\  h22qxjji|޽8|55F C" @7G~_Jr==0xpڴAVV96oܤIpP HHȑ ҥq:Əyלt~v;6z /W…[&+tkq@>.]DNHLl??9!5yxA˃Snn5.@q+KơB"{H<\+UHMGaa v!ǻckv˕4jԔq15bb|TJgO.rr*!PWC`Ƌ [#4TqhR^u޽Ε6 ֩76P($8vgΔ (!8ǷT*ƢE'nR״3۞9S/yʕ*8`Xzm:+jWa„6;bɒ6߯^5k`MkW_-,۹._ٝоBBͭvK~5bO?={r|9ؾ-roGmoV+«vC?u+?W^9ajxB32w Wgba6GǛoDdGG`*F-U{wsK_cb,R+1oQ,[>}3HIE^^5)`T*B|| ]Ugi~g2!&ƒT=k9zhŧljo=:;v\kvR״ۦ#55y!=WSc歳 wruߧO <_>`wm˭ZWҞ88p =bYIkd2sHAh3?Smʪht 7""TMWhTT0 3~olx2?V_}Y֭7rKH\i6|0n\T*)f`“v_Te8SOE6 ~9۷_ŎW[lOr 'ku8at\I;Uu-}zHHBv^0,WY(+a“2C ,M 8uXx-.tO[̻tRiih9kmۮ/xM]-Yn\l޺^(w]= lDyDDA׮5*3bDAo#`Ngٳ%jcc-6&[D9bb|l'Yul6mR+W0x. ]Io-* 3ZvW׮=z:x.UP+GϞ/=xY90/9>( }']-gN'wsK_cnkΟ/umaVh"ٳZA>}mi-g6\DybC½9>*+ BQ%GK^-]n\J޺^(w]شR6mpJ{h\.hM*!,L~q`>rskn*H$Q\u8Rݱc+^\/452rr*WV,˝?_Q)Qlmf7ţ *t~0lXhKSwfsKC.p32Ѷ7AAΕԻŋ6 -r뿯9R`SSo5/dyr15MOỾi[3kx@ѱ722h]Ue@zzҊ0xpz4C#=ky TCb妩\[w+\G~t/rr*~u%A Έ74vȃ0HPboiܱo5,MN9}ޚ 0qb0֮ͼ-#ܾAB0bDbcashu_ZyՒhdP ܼYmUa{k~22a4lcnk̝׃avV0f^X74 S!>>BͩSBCЫ%0љ7nT7*,Le7 Un\ TW7}t[W+b( hLM"K_DDPHP\lz!Хj)  =[ H!CBpH0bD"ˬ秀j Gֻo{t\f16gϖsz9 ĉmе/dCuNkO"aٲ^<8Dŋ,ŋHO/C֞x.nw:Ul-ZV]Q;9(VG#T47dyr15Z˚n9p SE|| >L ZnZ~-}Mtqy{+׮;{BW$6(8r˭=g ڴZ|п+ D@||+qR%+zܼ$n/B\r(z}Zs~w 3N.F~AGFF9D"KS'G-hDbڼ$-x2i}krr>8-ǂ5!! 70X ,L`PjW^XEMFNѽ5vjڶUرB߿6{TKسgR$TX z ;VXoԞZÑڵG5wtw߭eټRָsY4cFj`:U,tUhZcNJPXEEiiL US X+QQǕ+U8|͟kф#*+ n7ѽK_EUVn jJw!C,}*8l&Ts jYN@uutk3\ *ʧuz v/G^{wÐ!6sYZŀ`ӗZثW0h3MMB MW`UXk7eKZ]yh)5BqCvni1HTUV\S5J{D>11>0LP(-գBCг?U˫FiZrDwoX$< nQSS+T#F {-5hY\\Y:u:#;@xkº>LrsjOئ7.BС#pÕ4^Μ~%oW5 5 "pt~ى1cv.myuWv+Z a﷮^W QqF\npP&g7,zUb ~1ǏB.gO?V\o*В&[ >Q ʷYXk7hBs8f ͐Ř;7YYGp&w츊JKx㍞v嗻4E۷ƍ!)1b$$nINGL[{"55 }!>>{G?ɩ50gN4?_~9G@]}^w)\I;-yw5f0h)^?mƖ-pL Ν+Z-Ð!!Wl-:)CY*aA3Pex.3&gΔ (H^W_~yٵ[, ]䭳ͩSHI!o ruuE yTce={"fw={cϞ\2bZ}#Faa* Yl56ut&y&=;~PE,5o% 9#FOy:TAxt̚ {gcl^~9 ǎa!b֬N㭷ݳyj:u_ʅ>gVׯkdiyimoyFL||}:4WO >>.H^;;{!!!f￿_?ۇ{eA3ᩧЪƵ f~[ʕ4SyR|7_cNgEx {4}ϯAR/HIuT];//;Vc#~K k\‡f{ &Ǧ/dFrE\@!*]3kkuǨQvۢ"-,89s6)u~uE^v4[{o{ $D]C7W}!`L&ƹsʪXly t:#RS P^GξFcHdiѩ7RSo6HMG~~ wC۶j\^'URR<[|޼RFBB L&|Em݈x mڨa2Uu1c"`2.N(çJ%Ebb0bb|VPZٳ%8tzm[ĠA! Sh4#;?xnZ"G/ j@a;|8 2R R\Pr%T޷1טL&F~A>>2Js)3ј1N*AxzJ1th(:v0%f ޮkN\mswп+(՚Y={nʀkGx X.ӭۻ___jxyy V*zh\brdb손CB3Dg3g j:TW9FK-fcf vDPH [*Ht&Y)-;hE7Ե@}Q81H$""""""DDDDnәPQFÁ>4#**wl -c2 D6w&vI$""""""DDDDDD $Q">2B!ue21T#﯀Hd[qb($"""""c2qqhJ%zC~ĩu=<$h+GD-G߾ T>uz$SS`hFk O  &(TUכ 'GM߂Le Fh4:i#8XܚZdJ()l,H,6Jow^:PP>2x{[2$F6 f:D &ә`%@"""",@Dj4F~ $HD0-5}}65-(b>]JUV!ED ay*jqTb`yJ$""""ü-nbc  iKիU\.e(([֜כejj7nT׻nAA BCU4@$QY:x[\ Z);uÇb͚ ^DDDDDwPXX r9R)R)$(Bԫ׎Z $4t9Gd2A55?OOzcQKEP($2@@3`sIIHL nh 0!EIDDDDDBa뫄'jKWlZ;s9קhg6zD7[dRI1~g^DDDDDw]^rr2LԮYJ.$rjQ1sfG&m֩S.ڷBĺbU ̉‹/vT*bb0،nݮ 6GPG#DLiMbȐ M$BCK1tt\JJe(֮U/u2HlFe2;w}jVop@>\B~~5t0 0 §z==kRA IDAT <<\-DD Ϛ~?v{͛Q]] R;v >> ©}ڵKb1L& e$?=zjRʻya0tPBBB0l0|ضm4 T* :&3bmZ~***}vc=SDDDu&ܮG >b;ɚ۷пzk]M6ٳh4hӦ FCB$5z,HMM <rncǎ믿FNN<<<Zr9-W_!--  BBB&Lu333Wn޼]v5 ٺuЯ'@n燒$''GuܴZ-v؁!$$]vԩS0bbbЦMKIINChh(wn}zz:a͚5xPYYi<((k֬ĉ}x ұ!󊉉A\\`ĉXn{ߩs;tx }K/_f͚R#oc֭?nmٲ'OD"삮z }|^}U̚5 k֬Y^RR"`>իWmo`׮]ڵ]LmT V3gO? 4H*Ξ3D""JJJ:u¨Q#G`֭HMMqid2~cشiM6xѪU+b޽xGԾ׮]z 1c ::OΝ;QPPɓ'c 2 7ovލϣSNwY~ 0m4a)Sn:zlٲ_}niii>|8V? ]tAvv6+1w\D"|G֭Ξ=7x?_~6`!ӧFܼy[nEFF>t]O] V^cbȑ®]7nٳg^>O?\.GTTz٤4v91H$""2LBSxyywo_?7nR߰aN_ׯ̙3Gcbƍ6}׭[ٳg#??=z`Ν OOOѣqE̞=ِ=z4FYf󈋋;TnܸF"HCE@@ d2a騪BLL [kN7Ĕ)Sg,X'ND֭Ѻukƌ3'Ng}ݻ7.\h{:.`ƌm1x`bΝL˗/ /?#** q9\rEh a4pB<cSs&"r!"z#G6{Zjׯ  ,-ZR˷yfAbfΜ3f8O>DX~]p{7|jڿw}rT*4qݿ?]֬~8k׮>}:z! ̘1z۶m^|vSB\t ?ow<2 &M`i\8Ѫv\{{wٌcӦMMyDD ju>u8WYM6f^}Uk0`@o6?Ν[?sNuОaÆs9r$GukeddB5e!6nج}ݻлwo;\'44F!֬Y@9s/~i(}u %%%())7-;W;@u$$$Dhkޝk\:g""g)9!vvv682|p >ܩ_~] o߾OOOTUUKSt:ЊT*Ebb"eeeHNNvXVL!鈵ŋ6[jիWcXr%ȣͩFvv6N>~_~etСꎒa}*gΙA".ѢA(DFF6n۶mqf7Ճd=cbb\ɓ_]n}&͵EäI0fܹ ٶm6l؀65hM %((莔G6LD )5jHI[T9L&oϰz~ȑ#aFb4XjIeXg_ ^z5/_p{)S`֭BpXaj,̛7hNPiKyDD 螒pyhh(T*4 \"]{/68)KS=~kSLwNnmj*U)FڵC^^$v2dH]c/|I ** .\+#!!nիW `ZAw1w✉j5DDԢMh0SNջG}F9 SwΞ=cǎ5.iii6* L0p@DFFBP8T*a&c=ֺs u!|W9Zؽ{7w^s'ΙA"M^p?5J|0c]6l@nnӵpZz9o񧤤ĉo}jМ{na޾yc~/^ii)FI&x饗+WDHHV^ ___\pݾȧV)))n/-Y>sΙA"5l6#55ɟ_~Eضvf+V4XC >cvk׮G?~S7w\@II ƍ'<[%%%aN{ƌ#|aΜ9,ΞC]֦rӟ]?11M6 2aDFFl6cҤIvh裏œӦMFq 644o6wޱtv5555xm6Ғ1w꜉'2HLLlcǎŎ;XFLLLāj*dffbѨƏ??08 |֥K,Y*K.:t(pQQF5̑|O>$>c۷QQQ4hBCC'N@RصkW{O<CSN8s كj( |'nGØ1c6"'OFRRrssaÆ5L&g}aÆ!==;wFBB틲2|˃H$`7ѣGf3gƍ{n<8u07gl޼+'x_c 66OƵk&MBn\Jϖ,SLD Z_|1cܹsصk̓ԩSvZBzWP(h"\z|݃;1~PxwQXX-[aÆ  N Hs碰_}ڵúufڶm?nԩMGERRKƂDRk.̜9999HIIi˗ ǏoR[h0>ݺuCFF^{5vq̘1x7d;w/M0yf 2ڵCyy9\NӖ, LD^v x$&3!e2m6>}yyy 1cЧO&#??[nů ٌh={tqfeea۶mx"R)vɓ'761عs'PVV@$$$`Ĉtt:8x (;V tl|w̄X,Fn0qDgA"`0`=Q>s&" $5DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""]L""ʕ+d2cذaPB|((( pٳ0o<Իϟ~ {oC``[u۶mHKK… !wy .`ɒ%,DtWd7%%#11 ADnpD9s&VZ{rssqjڵ+Ǐm۶]d /^ x1{zۿ8p(YvZTVV󞽶ω'o^ lnJDDM<׮]>iiiXv-ڷo>SLȑ#0aQܹsO?zĺ/6mT7n@jj*D"*qnƍܹsy!C6ላäI0j(ر)))R'ш> iii|2JRXoݸtf͚[b3g m۶o|wO?#;;gƶm? ={6b1o>o߾xgm~9? w^|(**B0gt=m߾CNNbbbbРAvO?3f̀O}Gp!lٲ<7oF׮]ѥKAbSsm޽عs'2339scǎ.+yʹrܹv_}ۇ7o"..ӟЩS'u.]?.\L&C׮]Oߟ7+"r$'ZO3׻^ǎqUTWW oC" 22.]Nĉa( @PPL8qmڴAnn.t:[ cذa8y$LL&v8=zj<0Xv-G_TTT xuVk,l۶ -?]BP*8vtRz{{;N'|ɐdh۶-rrr`4s<ذa RG"22~}SRR0{lYƍ%Kp]֦ObS(n݊zf͛7 ._L6 o!rJ|خWYYf̘+Wƍ1c`ӦMX~=?DAAp/L?ÇTdggCؾ};ʄlaٲe8rN8saʕFmxYf 1i$ ##8p VX!b^Zr~m &# 55׮]n˖-0͘rw;wƍeQM֙o)))HNN_|^z ˖-͊$j*TUU_n * Gyy9^}U( #((۶m޽{Q]] ̛7OhJW7hϣf{ n.]zC Ν; 6`„ H$6ӊZK{Gvl:G--}nr/F~~>ҥKXz5~[n –-[j*ddd ''oߎ_ݕA"ENN>sg(J̚5 Ν#..۷oNc=vapVZe7hbb"ϟ#&&cƌAzz:/^9sG}NCR!** ѣGe˖sΩK.dxסT*i6\soȑ#駟"77cǎE1uTb|wT#бcGѣI47]ͣʋyn_|r=zDdd$̙hlڴ 2 J_|"** ۷s=8lذ71"r֫3ޔ`&Uˑt@``:AAAڵ+RRR#G@._~hӦ>o>GD"Avv6كݻo߾M:gbP՘:ujGt׹7Wsiiix"лwo;^.ȣȋ}n7oıcǐ($&&YUU{ʕ+Dtt4H$}E]qD-skLɜ*K2,Gf4gnܢ^#** 8Ad[}z>@;>}g1Hd ^?كD"""*]ݔ$QN\'Jʕ+9"D"""3J)v7%""""""DDDDDD $QIqfϞÇ纏Vٳulق9s(,X3f@bbbٳwAgΝ={6jU/_~)DD4o_`6,y m:1#ػw/? ,0F\.Gqƍ"N JUj5… hѢTRה WWWܾ}˗ǥKPf[~}ܼyp t)>|6mڄ 1e˖HJJBxxQ6ÖD""zSLy… ׯΞ=J)44oĉɓ.]͛7QR%2z}&Q~vFk,T[ۼy3`ɒ%7nvڅe˖̌5,DD pqDDD`ڵk?Fڵ}8L2>>>Ƈ~sFGGM4Aǎ/\իpppヒ^zA";v QQQ;v,ك7?F.]UV͛P(puuĉaooo"&&7իW1pOpoM67ۇӧO#22 4@׮]ѡCq#G?q222[[<ϫhuVۣ_~8x ֯_Cw-WGDDM6E ۻw/0rH+WN 6 00prr})SHe u]nΟ?~#-yXk&"bHDDe۶mR R㯿¿F֭[L2aaaꫯP\99ϟyaΜ9dUzjX-[pttĀ z#GO>PT\2d2n݊?!!!Xbkooo:tg -Tooo1H=uoxI`ĉ033Ð!C~zlٲAb~y^zu[QQQ @ 8 ԩS ҥ {{{}sB 6 -- ǏT*|ᇨP/_.oҥܹs0$$$ ϟ1޳e/K0yd$''ݻ fX6rSk&"bHDDER᫯BfƏ\hԨQ8z(RRRϝ;'vSug[888`ƍX[[F4i&MJ*A"<<...]@ǎ㭷*Tzп#""B|HNN2jO?c888`ӦM駟~cϞ=pvv'@PHOO7hMAqƘ;w.8c޼y -v3{{{ :_|Rm- sNTTTѬY3,]TlMn֬,Ykd/2,<(51H$""ʦs9) <6lJ%'>ZSVF|( kwT(_>.^?!!!KKK̜9+tz صkܖ-[ "7111A߾}aiiijժ˗^۷O>|`崰y_u֘2e ~gL<9LoooqVEppp0eʕ+jF[k+hwۢ\3D"",e hrۦVŎ; еjڵ r:;;&PzuǽX6Rk&"z8q +Fu6/>hA9::K.8|0>}/"&&?BF\+W67m8<|}}q)lٲ7o̙31B]5k-|޽{/_իWc|ǹyaӧOnݺꫯ0|qO?ZBDD )Se˖dddݞ)%\3D""z#ԩS ׽͛ ʰapaĉĐ!CժUy3e,^xtUt ,~g~ 5k`Ν8tЧO|ӷdXE|rLSnoJѣG_~ɱرcڵ+lْkX gΜ̙3ѣGqT,^nnnpA^䲣oA  =}/$?5'v7%""[.qq\r>.m۶5keʔ͛{n 4Hl!t-:tpmc &W\AժU1qDׯRYkر#rJ:u C )P+-5k___ܽ{`?"T黚>N:2~Q]\:ѣq~|Ej+k&"bHDD`֭?wyZqY;7:e[\\\o}ATbذapvvFǎqMVoɓQ^=>8jn5jB~eʔ1XC?chڵ& {X~=bbbлwo`J8x`nٲ ڊ7tPq$݋uaʔ)hӦxYФI̜9w܁D"5kT*ѱcGXZZ^zŋQ|y̟?PAޗ_~3f ((ݺuCÆ _b޼y۷odq^3Qq4o_`6,y m:1#TR*r n߾$յHZJJ ʕ+M6ppp(Ϟ=޽ +++ԯ_k$^z`ԩSԩ{̞=iG`` ܹzE.5e}hڴ)!'OI&hժU/BVM6[A"1H$"z :۷oGDDD'I!""2nJDD ޽aaaؾ};v$?OQQQbeejMz_[ڕJOZӣ jǎ7n͡V/۷ocݺu믿3t޴2ѥKzPBܹsOƪU`ӦMpvvϿgÓ'O'No™3gXIG۷#==eʔǑss"kشicʕ/PjUs0jԨBضm?RdpssR kkk4hVVVP*ѴiSPO|ꫯkkk4jHHH̙37A"==B%Kc!..'O34 Ǝ{{!xrqqa4o* * *Tw}Z :u ~)V D\Zja85BNp!ᅤ:ӧO1n8H$]Vp 66#G@PSNFuI۷<\]]eRSNsNܽ{hܸ1F%VMSff&ߏSN!66+V+ga IDAT >}]v ضm8zo)(,,  CTTPZ5 8u1ŖWSSS?_r&ňŮ]$8::'S( kkk1$]vuHRصk?DT\F۶msСCE*Ux[nΝ;Qׯlڴ AAAHOO  ͛–=}Z._H4s!򘔔$/RiCxŲU[PɿpDFF-=‘#GL˪V*Wڵkr{J*ߋRg+ᅬΝ;)%?ƦMLԪU .<<İa.H;ٳgƀШQ#DDD`޽q㐞)Sz] .affzYf/uz_}֯_hٲ%z{{{._ .. ¾}гgϗ~LޢH$h׮9sΡG^4muAxx8v܉֭['>>^l9rdCHHO͛#""-BRRkl۶ !!!4hz쉴4矸qN85k`ر9{eXԩ<===z< J7 ܻwG\\ʕ+aÆvHHH;pMpssàAJ^-5gӦMñcp5ԭ[WV\>})))bYQ붒wS177ʕ+Ѯ];DDD`ܹdÈ 0iiiҥ <<'N0IBr儨(222WWWЫWmI4ueOa̘1aСE~(hKb@@PF q߃n+HKe´$F. %ޒh<^/ 7o68.11Ѡ^عsg~_(d۶mR@ӧp!¡C^z;v08w+myRZpOG&06#1;vjժ?~khӦ &M>nt"pøvR)֭[ccӦMAZZV^m< ۶mCʕMvQQQO8B*YnRSS!Hq_>-[@7.o޽&{^Ezp9׵tRh׮͛cֺ @78͛7  knҤI9Zhڵk'ٸqc|mmmѣGus3f̘k;b׮]&)֭[F9Zf>sUT)z8>C0|p 6QF5h 1EJ*MUg/ʕ+CVc̘1%&dq݉'b ˗//Z=q1gO=аaC@qIM/55Ula̋~~2 ˷^ *Z=ٓ'O_!))I|N?r3fG^qvSzéj,YoyYժU+9֮]pTZ5כ¨]:)^(9bŊ,}ݹs'}7|}鈈˗qQoo\^ӦMb};/ӧOӡT*cǎa Fƍq @P?x`|عs'~-[@TR%יs[gNWmMٲeQn\O>ziii|20tPXhРw#F}Ej2 ltfM+++4hovm%怜 _~x{n|xPV׶:99z ʕ+W"ߗ%]_QQQ9wvv|d֭cERRv܉/[l۷qI1bHz ^C׮].]@ו~_5jI&@muI0kۇ}ӧOsV z>>>F@@ 8x <S ?08Wg.]u,9`|7e]X'N8dL0Au,/v̫^DKu։-uhX{%K ((rB-mvvv3f \]]Ѷm[\x8!!!4[A"x{{ Jvvv;w.&L`t=\pW\Ēz_[&M-G oa]Vcسgx|  oƴiL' &uT*ާNTP`1cڵk'OQFHHH޽{s5BFp5ܹ͚5CHHص/_S~c"33$e |||dc߰t~44S}J`J RJ_1~x=z7n|,-,cĉݻwS{[c f׺ukزeK n/o=5$ÇcԨQPT֭֮][ `ժUmۚl7EڵN:a/_.L~)-t쌐ܽ{7]LYJ:7nIJe憐|X"ڷo={:q1gر?؊آEWбTe`JEe^^^V˗yfZ )))4i:t`R}!kرؼy3駟{e-h J%%U Ǐ?JѬY3,\W^BJ2+/~U3:xlD+WN U'O!Z?zbKYq}qL_Çvշ<>}T_tqLba/eHڴiagg+WyV9@P~Z;2s_ 8z(]ft$tc ի>N2kzxx>]v{ǧۻwoHR]|re1Ovjt닿O:߇BСC_Y9_pŖ d2:tʕ+WZ51j)m }oU~Xg]^=|7toܸZ'OBq}qL:t(%*q1@~mqf]vZYa/D  }v2ܻw/֯_C?}Tn_Z~VZ1ZXYYk! pǎCFF ̘1>>>M~zyy_L~< tvvF߾}Kez Abڵk1vX_;y$z Fkkk|'Wf?Gt7bҥšO>HMML&w}g2)ZbіUV?gPK//^gϖzU~tΞ9s^rzcccѻwo<{ 2`uI}Qo7FƍŵK=!p=9` }@>b<|r`LXlx?ӟ~K5(ɘ+FWW^Wn={4ѣ9x -Z;;;|Gu&B 6K. CÆ VZ!99wFll(v~ȑ#}vܸq-[Ĉ#`gg7n`._cΜ98p¾XlF0sΨ[.\'O"==XnILZr%py^k׮E5PN899Ǹu8G&aըZj|???-G)gӧq}wިW233?t7m4wttD۶mqYGϞ=Ǐxp\*?CoRg+ ^F[J{ر#Ξ= &`͚5'ag6$ǃnK=Y֭7`ܹسgΞ=Ν;ZjsN8!N<3{lj\3f]pu 0'ND:upuZ pssuKbHoJkהz%0Ab޽퍸8|pppxļԶm[9rGFdd$N:eХjժX`A"@^?bܹ 5۷SNpvvFJJ {$$$?xsH$2e d6m~W;bٲe5krgff///N͛ѫW/ȑ#K >Ww>Cnժ&Md6m`¿k0~ sYJ<xd}\\\_ 66VWbEFgʵơC0d?>G]oc֭dŐ Ifiɒж39r=L8;;R&RG" Z*ի޽{qJDDŁd888ݺu+R,%ޢɓ'ǏCբFQ5kVY(7o L8˖-+2W_ah۶-Μ9ܹW\R3xE-)))طoܹҥK B/_Fll,*V^zj3_PץNj7A@ݺu{J*4RhZd2\poV+)))8s _(ԬY 6Dvq'NΝ;CtI2 BBBı5Ν+ػdqqqprr r鿃Qxbn"@$"/y)~w3@$HDD7nx| ŦM J{b_ ^/.A J777"==={w} Wv=5""O51N\CDDDDDƉkA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDDo9L"66JeʘB;TkMlY Dz#ݺmAh=H$2H$2H$  }C!+z| ݺ5g1H7Ad# 3Z9R3(dH$Y{ -A#>Ξ3gc6#zzJDDDD ^WSgoB&Ba 2Rn jj5uVVƍ0{?1cF \""""":qw2 [He`fVff H A FPA=t p%DGb„^lL&""""bHG82 r+(ְUV(jD5juVpZJJ V @ AB@* 4-څL:vtcf1H N\^2YYXX6BaL7a08CC*A*BB@$YA% waժC4GVDDDDD 4dVɬaaaeںl`kk2e$h(,o IDATZdfjnʳf=3$R) J=*VGN|"""""TlpC.lammeˡB ۛBF@fI!Il UMljH$K$Zvʘ4ұkW4֯w?'' TjMѧO5d=|(ǟXJʰ`D*%KA.TZ(SeʔEpr@Ŋe HFZ$kZZNr_T*-$m8&MѮIґÇiaBB{6D`[~5ALF#l{RRT7Cʖ,DDDD rO[!C*5Y氶RB Ar) ) m_),,䰰!.N FL LV#htfA8;wPΚer<8q""g l6eo{t `1ÕA"QvryYH C0Ba33)r)Z -MTB% DH5+ T*͚FߺnSEݿ#ttZֹƌ/ ɓ1s'?Vg """7Y@y9} $9$Rd2d2n HO@@BR4mjHtc?Jÿo?čJ!`5?e """7[)Ow$ ɲsHU*-224]P%45jXk 3JkedMf#As jEBUΝ$&\9Mʖ!#CXFR3gbqR<3`޽ ri4Nx>> 6m[ic ;;3?޵HIDDDD  rM|VZ!dqZ5knAXGׅ,kًK_yu<5Spv.pt 3WСbc痐ݺUAjHNVGNڵ[]T*n퀲ei[-ZT]'1HR 9A[P FFZ iV0) w9UuQ_ykU4)J$VHDg2^?w.]4o^;V4خ 3'Ԫe%KB*[>2+Bڄ=͛YGug5֭ uq~6g5$""""T ei4jjd*dfꖾP1jF yhrBƩTdfLqZI edhgt({/lc sq| Tkj ~ 8gnԵ˱|?ۛ2\'1Hf%PQgJqS@Z-L&)قA!+HTgσ]Ps,fҭ[w_7GN`i󣢟 A[4jdgxsiㄣG"88^|Fv- w>CV]{W}euN""""bH%Lih QVe[C dqC灥>Z P \´uҤ07 =J1xH7&oLW T`wʗ7 ~чvVwG#9Yሞ=ݽ<-JMx]$R ~ h **VD}&[ˢD OT1H=4FZ 쭊e˖ik:'ر K_€5 Dw_w[7u??ի[SJ۷Z\'1H`aa ҧFm9And 0uVUj&Tג}٬)#ȑ.5+JDEٹ]~}[ԩc}TC?X>Ajw>úueK$>Wl.uDDDD ^Snn8vJVK JЧO5hSpsϞWѢEgK>:2 (/-[DXB54T*%Tl?PPu7jJ\:CVgz .PB*Tɾoew An6۷ʕD<7n$е@#(( σ:Tzl1mZClrjK |.PIDDDD 5նm#YcuM Dcy}H]p UY5MVPh,X\ 5kVӯ u}vPHQnڳOlaءCETl AfÇi3245+ϞQ ;>OCz1vE޽gF]ƍuoۺNc6oDHHK7-Mm\'8&ճ[8v, Z Y?/h4Zq|S8A4j jV$vvf{UUq{PQ8d^P\x4Kk--g8f~NV3mEZV^GtRfyMP3T&ps8(xP Z,߽߳v?}ܜ(.W9 {0kΝ#&fݻkص+" Xg>|˗ ?~/mAqcDz,. j-ZѣGf~9~1~|(*3fϞ͒%K\{***bƍ7~ܹZ Re/9sʢo߾̚5e^DDDEɓ'W6*<|W1iҤm?QQQ <޺Eff&֭iHX,lذ\ԫW;\孡/YYY1ydtDDDI]WV0i>Jhoy͏1uV'www/_n믿nPv]޺6fvAVV ꫯt-Z`:HI2s2\][`ȵk,YߓӷN׺ukx"w^ Cjn:nJǎyWʽOzz:6lСCdggӪU+"""=z4͛7ajZ6993g?p%TMzO8 HOOJ{#quueРAU۵k6m… x{{ӵkWMvÀZTT͛ٽ{7ѵkW&MTg ҵkW:wɓ'O>}z~G`iFHHH ))sM֭Cc߾} 8>hPqq1w`ذa8p?Mnݘ:u*qqMjz.iݮ?ff 6,%22^f˖-?!==KlllKDnekUaZ8H[e̞is? rr`2`6g;eZYG^{5fsBi' >m۶CL۶mqqqӧj*tKEe˘?}pZjŲeP׻e >Xu;{+WV7w???[xJ#>>ݻWxmL23gTxYf[̘1FiӦxbrrrX`CY,t۷ogʕ|DEEs bՕc01c˖-+Dv @ZZlfΜ9,]oG?hIMMeʔ)Y.\p+u+O._̨Qؿ_3g111l߾fǎ5HDDz.ǧ3ݻ1lXkJHNٳqrrjSj?!,=wGw^rss`~뭷Xjnnntؑ={_[bO=>>>$b :wwwl† HKKc|w:t!CO&M;v,]t!%%7̙31<ӷ^bccY`vʕ+N=aˋAUm^|E{ݻ7ÇˋK.駟riн{w~ը/K.eȑDGGӴiSx"'N;}[ι6ѣ9z(=z"%%E/̺u8z(ƍcĈr)>sC;Ilԓxk~lp0ƀ~\R9:CZZ:/_"==,l~1眜:t@FFFC:|g{pss#?ӹddRXX:.‘#)4&MbĉFE.]۷= 7˲Zk׎u֕(Xr%yyy ֬YSN:/v7nX+eU뮮~U?۷o'11'''V\Ya˖-[vZ5kFAA+V庍?|}Ν;z^ѣIIIprվ}*>||dŴm؞<{Cu |j:v[h4±cرcjsh?Rqml=U퓛."" ";yyF3, QPOII1V Ռ_ <Ƶ:VVQHiƌʕ_b4p bTXјRR;wnCnn[Cy[l˙LZ)먺\wubYװJMC端… o5mժU e6O?osHHܹs>%jU tDǣYs\ , ()1c~ F,B~NDD4m ѣ?n-+;)#eUIJJbРA曷}}m۶%<<G1w\@6cǎVҥKq޼yz׮n1mN?e5r׹>^}u2fs.fsfsEEec6_$|JJ h׮FEЧO*Z:t~!Ye9@7olذmrn:, | P[Mm6~/t2c||]?QHiMIDATkM[4(gh&N/""ݻwsJٸqy%򎖭zW}`ǎ$&&VLvv6$򱱱 85kHKKLJW|ff&;vrݻwDR vh""(`=P6g?ăӥ/ ʳ>sύe(\]ܶM6͛0y #:tYf=?pzGѣZTئ&L@nn.3uÄjd)sΝ{?|gvHçg֞r5JӦhѤAo7>SL!))0Lpp0Ǐg׮]F5jʕ+MHٺ7n mXh&OU^(ܹ3Ӈ>퓩ƏOBB@F5}GY~=NwL2OOON:͛9s ;vT,X@LL ݺu+#BHqOOqQ&M`駟ʕ+)l׿Jbw%Ku;p_Ӑ!vغux>O?uQD;9h\ۣ@|| _̚5f߮}RS/HAJ~…At\y __6o:H%,(I&"Q6,0m7X,b""2XlI$-UUuvmM!:!+R1qd. k#[9aP*uDI$"8;̬V,a\?HblaDD z̘qmV$top!_`Qr)/²e#,,$>9r o6..x챾2ShA|Q_>rPff%3uQ)u5'b'& %ݺU7ߌ5WD"_}+bE4 ଃ$aɩƱc/e9Dt1>܁: $ac#9,-%ήFFF// ac(@FF0$Xoo 8; 9&"hww3(JddTv8Jub1t=%pr2ų]r>33 <;`XzPtdb0X @@6lD8I -MӢil-r^^v:̄}lldZ;84BgkڐfUoo 0} r)v|4@{hZtu6仹FR5pu5çԩ^^c~VxAظqX!}'Q%zСv? %8w.׮'"(Zx]v0O?aӦ0KKPҥB$$027òe믷Z>^~yZ:>̜[;?Ǐ ;o#%XnLUUz X >t,R1||,1{v_|A~}~5WGf#-F8B$lmcG8{$n4EW?2\Pjc: a'̙<:v` =n,ɓ9()""Vϩ{e2s`_~Zb5R1!ލy>荈g׫pp0Fr0{L*R[/GMM=~!11E011˜1N9A#jnFlC*ݙGMƍÄ{<./>>?č5kcɒ ]^t@D 칁4O>IO`\?%̵$XzeTˣqFvXf<=ad$K/ @TT>Z7ol<>HxOؼ9 b&1kyv]9sȑl!!69XanRIbE(9eC% ]୷bRl6\h 5Agؖ㝅7oǾ}74οysVy/-ۭ?ǽƒ+DuĶ?lؒx{Ўa{ED8_ry@/ii)YYX<_o/LsA9lld]w nwԕ+ncr) %VƑ#)^}BCmk8U!PHݔz?d`fvHOi^pvVYPPyNk}@\\1=%662渹ڵR̙s ?QW˥-&=d3yAasv]Grr,_bI]xOBxZ). Οҥ`cP3J6{T."6 ﯻ똮+O=:EE^~w-`heO2戈pƮ]#>~J}uPGf}M*+4^[FqoPF}A];9k\ X 4={v_N&"tWGROR̓z ߰*[H[ㅿǎսfoĴfW3WAAM3(~I26mæMq-멭Ub͚+BjS}~g;>_a< "С'yA!L suw={nw~zs^0ۚ)S<u_N7܅"8Zn[J&U͛嗬ܤrvB.^,hvzngu꠮]yt >r=TYY]k d"bHwbK<\?P(ei:-ik@םﬦf.$}JKƾ}8q"ˮʕ"|UhҮc h+"feUk'$ 4`>??~j=H3nױus$~1>} Xv%#??-GJJy ZvP(Q\h_bb o_CyzÎnm֭*۪ze:uG5-Xm11EӖĞN&"5cn\믯_|1M5ܨZkwR%Hc"#B"\XgpraMRQQubaP.F&yFæSuj(*!!69isafU~M۝99UeW ZvIu_0{XZJagg5kܯvm=zv5/%HI)GJJ9K9U~ʦfmk16w`eR-V7t"CFI(}i]ZQQg0D 4~ML,/wC=Gݻc03`@[ frzKWW3Z5=vג+(-x?Ç3qBA7 Ư-֭"ud|]z?[kehmʖ{.ucG렎thҦMREN$q굚d;gTV\l7N5w6McW^ 91I $6z[[uP['ᩫSasxkvmM5[ڮ;C)tgԍ:i=Ot HDؒHVӮ,ְ59^|1zjի/2}za#GnfSKDL&,ާe$װ^矏L&9ou4NNi=4Me1o:11E:ӻMs+>ݽ,Чe R;[N*qŐAuzxc &uWqw"ҍ-k_J2&HxHDx>noi)Ń6.}hAߦzvjz=c'GX}Ϙ- [.κu.͞/1{v^o'\3r\?ujh$o QV#"\z cF?kKO긳@k5vKH(|ܻ:_Ww[ҵC]  ?7mK7 Rcߞy 8ئYթk<בS'#0o0F"aP;^FW;Y{/>]KH(AMs;;c[7DcLD"B@6n7&K5vUX`fb w7BW]??9+ο@uP\\^^ذa_kk~{OgJJAWd^#F8`9&&F02OehӍeaow"j#&f*b%l>~~rD)*Tڿ ߸Q+/oͭ[U$mdl>662dbac;t,^|Ak}5W`m8C+hW ,_)DyzG]Y)*J֤JBR{ ~?Jի/c߾dk9>sn{';i(^  N5e l;;cTW#5ii._&Lp\\LhR*Q_$Bojqз%llQSSj?G  ;-nzddT8zu5md$#`(G :gl[}b{qюpv6Eee=iB b8%K.߲^Wٽ.gLgC^^5֯Xۍzu>;`(GxzEE5HL,?d|7c~~rPZZr9rKcz1H$DD~KM_4H#"";$˱v`. ou{K!@,/k1H$"^ƍ288\// [׎;z4[kvS"""sp"zS)mۆܵf uu5ʕq}K_s HDDt^c3lm{(jVzYʪqFS xXߟ#""bH N`&OvZJl_D#""bH Nj]f773IP\@ZZpl^gDbHDDDDDw0N\CDDDDDD HI$-h>.\??9]+AFF%,hDE3A)Z7z:d21FvBYY-Ο˧ ? 1H$n=oY-hQ֯m5e'^zibbb$vwSO`=߯֯~5AbW ? 1H$STT> k2<7 %v^H;=Lv??b[<&H7 wlldᇻP9sN oBb]c_Z2FDD %HE=䍚z5&Hb##{` kTV!%L׿"_|´kr쪪zܼY2FDD8q u)##d3cc#Ĥ13@zb}7}SSSm4io^t$[#ZO,<lld/RLMZ tŰ㶗bQs7X8X,T*nsiェr]eLWooKDD]$b'PjuV%>$֒< 5L}5:Ϸti0M|1m7M_˗ iSnݪ]0e6oX Y3^^18]+DFa/!\crIo-f</ZFpT/b0b !W#83f`xgUU1>{u}R2$<ݿ{x#,̾`H0{XXH5 T*F|| .\1p-f>)ɋ5Y!,YYQ4G} /h]D"etV?aaxѓHMUwX~(FvDYY-N΃BCmysN\p `0FFUH(suu*DG>98u*}X 8|0ES3Ƹq 'OWK^=8v,C\vG07DJJNÈpq1Ŋpw7Ü9~./daHGXK$RϋpG%Mƶƒ%>7  ^˅]^}5&aٲxs:ka!Ad;lIbj("#ݰdI0{~!) O>yFh ԩ^˫G 7CH f胝;g{ooHddTOuI^>X?CrX"dI0MƈZGN_n}0r֯_BRpa~. {WCakk_ҴQBU.Wea`kJ4~%K NN5ݻ寮rei{ !@B066_@{ѣ]Bs$78:oR^u܆ܼmA~)++Vi\s4Z[z0*¹:[ K/=@i&wm}BPpMM;}iYZ_X@NN5JЯ֬Ep|>Νѣc6ۛ*cFDzzVmCW'rҪJ"""#Zz55VȨlUU/'QVV e-B}[TW4Eyyƃ`G7Q3kw\\SbT/+Zb4oVch\Xhuix8>w.P*U]Btt0l||IˋxzZ`lBR99U˫d21ήhulnu TTi̞T>mr), =HZ$&ܹ|ݛ+CQVV+LѴǹZ)$3FVVЍrΜS: '"('bDW,^5kয়2۝ew1 bـc5tanOwo"""dJKkQVV R')SZ}hoxo$ll]I[Z( G;!!QQ ٳyX"Z1<ܡ4oox{ccqe@T/Sf1hO>z$bQ-岫˘@bBÏ$;xP=A461~2-6[hk0x-CtOHQ!}`|qB٧o`8kV_ת1o?, {"H䥡d{oMP5*+BYYYra(GϽt̜#0.u [Z"fA&My*zӛӦyNP1H,zBNN]P33+P[$];FF"}]g/3*TAA=`Xxq0||,er}+]w9k#$FF"Ǘ@T;u(c 篭Uj,O jvG=Vqb""\"i%""j R:p Ww>ii}!}{bgbb]FaHO@H fHۗ%p.05/UUu3 SzATa˖N^ g̘;/dXQQ< w}^O/Xʕ"aE{773XYpB֬ >֮5kP ;;Lpb>X=fJJ9h;IϯСv9%%pt4WST*/`ǎDdbٳ^X~Ľa$+0h-fTzkW Ӭe#)}!5T8x0SzaӦaxkHO%y49ǎ $$?H_TGRٳ3ԩ^:ׯ᭷b@(,TʕBJ0dMFmRX\vGUzjZkalzncc1֯XΜ1H$U_¼yj@ƮcuX.VS?W^ EAkJ ;v$|:̞} o1F9j`VW."!י3yL捅 ?cVV%{. 6 ~ժxa Š?W^T^-5Y s||,}pazm_}͛IT*`ظq|}-v?g7`sxV}n੧ገuTI3|m]C7 Kѿ֯kJ1cǻm뤑غ5ܦrp&MB~Vx!՗k ¼y]ء׹P(c?̙')ز%^篿NEX=Ǝu³ 6mÕ+Eew6HDkUL ("o_9 镸p!_+UK@+L 0` ]bbtfD+nqՎ^V ii8q"Y``;x{[Fj\Vbڑh;63FFF%._.l#F899U8}:OgKr`ETVމ" j}娮Cbb)JZ~bbq|b~`jj*:эD7 ^^ͭequu*RDD@*4#is7;v<=͑^-X!( 66˫Fzz._.jUKw1""" ;iXXX!"""" N\CDDDDDD A"ݡj[ :c{1I$"""""}cK"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD$J ͘DDDDD ğK\ѣDDDDD7nJDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDԫI:{W_ AxcgeU'No_1YNth;GB*c޼P(-[z%֭e"""""fw8u* K|y>( :1do޸cWT_7HrH:.ę3y-#TLڦrΜAll1f/dڵRWakk[c;c׮ػL&Ƃ1q+e-o_E|| `߾1X.w?a֬:iiz;v,cϞʪ jsQmvB5k5^[<o9GLD]Zu,yDDDDDdDC|oP+dbXRt> )+FmR/VHH(æMa=ڑfPQ()}nXz\TȒFDDDDDWu'""""""DDDDDD $Q[ymۆbwTb0YjDE㣏Z,7_@\\1KD[[cXZJ{Շ۶m8bb{ZRZءH>},0s||,p)j1$"""""EP*Um~_mٮbb)o4^+.V`ɒ`X[P\h\KѮkiOI4ǖ-q8{6_|1Ç;7`ǎp= `ggMpĽs+6nmd21- O?݃3g"#ѿ8{6Gދ !kƀ62 kn̬nAmbײwh初;GH?~~rx 9mK@d;kg#""""" znzH~=7o.SS#TU}{`Hx{[o5 b1]]0yf<U7J8p HN.Cyy-V: -k W_WGbLR+VJ/_ IDAT\Bkz쳛tpP[oŢN>shҦ7,DDDDD{ď>oo L@+笵ŋyLVmT*&LpFDDpq1ÙHN.Þ=Y8w.ǎe}crr|yy-^s!?ZR66"""""^$1z#NxD^=Hc \ Rcss#(J3X:L~F9ܱl,Z5k6_~~ .MvM9*궿[Vg#"""""Abp ""q} o֭Q)S!@BcbJdb|i2pAZZ9<=a'rpDd21^}0z*]AbOوzB&3Fpƿ kXXH `n9$=: 4cr ~n'3hl[ ,[T =nH$bɱiSƌ* EE]XRA&FDDDDDՒ8a &LpxMPbÈ)gErrMw:VIW_ʕ^066®]I= nJ 'RU$%2?={F#+ &(*sEn(ԩ^aժ>QO ^VpE JPR9\]pl22(hTlGL?;+4 %((8V@MQ\@\\1jkcR1BCmPSDLLAf֚M0z#K1f7U*UZU 6/X?˄ (y%2M*qBAgFDDDDD+ȨXz/X TW/:+(݁A"| |m<>8tn1 %H3FP5zJ ++YW""3`D-ƬYEmz-uAz Ob-T/K5cc#QsH>Og#G&ԩXz9 pz#4+hQ~9?lcG8vŒDDDDDD ;KR7cm4HZظRb׼-hQmKY'R<VVR̜y۶% 2C^{H`CB@A]Xuum"Xvmh . 5RB!@B d0f&=!))ȨΝjx4h~}jkێ 8pS_ŋ{”5+/'+]W^IAm'qX9֮=J$"""""!C&6oY"׿kQR΀ fdJw8rۿM&3~{[zlƴi:1(4LCa=95n(bDɌ+S1jT f o>._4W9Z""t& f?v"-.ճ E]2U/Evv˵+}~믗mz@AR| `;fS K؝2ǙcĈ f 3Z#Na z_=Y<^^a3&۷,qR={n$!#q5DDDDDtwt&i|86Ɍeј>$!֯q$[FJoP[kמUk)^gB6K>Z"""""a vFEy!<\ jPV! WW/O\XR11>…TThUY3&Q_/ήCvv]PB: gTM/D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $Q% ޽=]SضRdI,FIw{ϝZdeնzRLJh4YAbK"h&VkDAA}()Ѱ StD""""""bHDDDDDD w 9KD!4Tm gv@ =D!(HΚDDDDDD ӻ'<=%ňt)H$超P!7&$"""""!tWlͮ]؞Mo鵭[)zQQ^oEDDDD$*bDDx`߾bi=%A]"G!: ree=Z˗Wb@]z`ܸ`#e n5rTWqeZC?'-ða Sd2#%Uoo &M EHwđ#1jT $mÝwƁ%hh67˰eiE\Tŧh,X011$FEyB3"/Oz&IB}EK5`ΜH("R1a"#=MDݻ m[>4:5ԶWɓCYoEFF-ƌ "sD@ v8>><R ~mRېp#m3/3@$""""@.Uaݺ7S<mq[nFv Fz yyv= ^8pTUiXzII U 6&ȑ2Tu8tȒ.BA"i|0'Gl8qfDEyB.a߾"5XJ 8XX(.8kI [;\OdLDDDDIL&3m;ENn#APZ  0O*2fDEy *î`LdQ12L99u̬u8ǩSo_oЫD9Q^o|3~~2TTh4SWQVK=yC6ybzt&DG{ql%ozB7A*_PQŀc\@ff-1yr0v,DQee,X Z(>]̞m.5gƈRLJ@Q47ݕVk9-:v޼ӟ&Z T*-lylVC:fJH@9R!&i C"L  ((h:2AAu++u0[W4XfmYΒUٳӢc'/8JHpȟsk@DDDDtɓOӳs_kwl4z[l61mM55C5+ ӧqP={.`=ۓ7{⮻@zzmy{! 0`@Vڏ>;fۿcY{+1jT$D"""JT*dr R)F#D"Q/dSw\ ZmޜjwϞC6'NB~0x0`ŊPP($Ρ}R) <+?BC0mZ? @^^5;ɛ: Z|[oȸ??氿N$KgX+u*  tt0 ? mθns(Vӧ\|YlȑCZ;z4]=t(ٖ sy?hrޞ;v,vkxXi._wYfDDDDtɂZFc2l=mm]TfIWzL#FD=N""{"W]ܹRDEx-ȼ JJdXQ~""""Yg4!m>mUV[W/K 6uj?Lگ=<g0}EE5M)*u8jW#툼&c0HDDDtczdXGcHX=[vy {CcWuY2qb뗁u:C獈0HʥKU /\Z6? ,̻""|\FDDDD ,15yDAA Ξ-q6@ j *oDDDDD] %90~e Wx;l۞R3bcC]6ۻ"oDDDDD `߾ TC }B ~)F޽ln=:-7owJ_ f午p)P yf>nDE`!%E7A`f駷ۂBW~o܎l~rs+c{C.C3gpbg午A"Q{3qf )0sfjZ;WûةA ˁAcƌR{ }-%e& "г $6l6C5: GED2Z>]* ,LXxza0.̙jL_-G]v)SY??رrfHDDDDDAbpR7><~~M5!&'`Ϟ"R!7W??)PYGqō]YWCVZ(".(]&""""" O9s"lDD8Q2PSRH%,AurG QAңNLT&44R(sS9p`/~6_}?&Focڴ7EUWWcڴucР!7e鴘0aF#>=3u-[6|!ص Z$pf IDATL]+1l._B1G W ,La;d2A#?_:=L EAA=P\d4moݞc~A~~^w 233qp-oKI9TMHM=ш޽?ZCCl`>> rM[Ϗ* 3gd2bgj'OcaQ˃DWL&OO Pk7JkP\P(с8II ~Rgs3Hvƌ1c9mߴۿ&%'[/qq#o[OXO7}JN> 1b&:u& bC e}SոpܕA"Yۓ`0AR J  {{b̘@H1n\vgΐ f)m>L*ZʦMݏ[k\6Gn- -4`@,{UNNh@ С#X DD=P[GDΞ^o3&sF`0A"̙*PWCyyCV qefdf֡oDD(!U@kLS*ݞc : b*РAzzCpOؿ/ dRH&Rsv=1tp̝;"xGX,ĉhh`嗣 /lRWW'~L01{ŋʺhwKݪt:9Pɓh4⧟ ))ȑcxMޯp<*++гg/ 2 >Ba뿏Fvv֕K|ܹ(,,zw>/fbǎuGwC*"5*++;!smO}ל !$$J–-qlT:sѧOT]}8|'zGBUUBC{`Ѣ%C ;w@~~1e4̞=Þ|VZ\k4jQ1BTvzYEeelلӡ0|~|_ӿDDԵqq;:t%AP__)$!jjthhpBC3J΢bTW뚝T( @ ҋܹoDk֌Ƅ z ΀;Vۀ0z<+t{ۦ;qŮ]\F}Wji:,⣏>܍ . v)Ffflj6o^W^yeeNi~Vj-~xcŊ?& 7rh|nƭVۀ|0 NFE)ML܏EA*";R̶OVcŊ?ﶸ@ O.7[K.?ŠoO8P(oᮻiSY'={a/Cj)o1b|ͷ9r {n6l3< xg:gZ>>>wzX,FvvW3ꡇ۰p]'t:1AO0iҔ.KDD_'l?WP}t3m2mA+:WR\m{8s4z!!trχ!àv\pgΤbÆq}87 xص[ce) Ɖǰsa8p(|||li^^^?6JKK^HH7~ u>-+2nxz"== [nF]]z>>{b-Z,X0x?cᨯ 8q6mZ{ϖVQcٶwǏ[oDÇt'cv0v/9cc;:waĈ8x{ - vZmzk5L^lKkQQ!͛B$$܆QƖ-qTmOh5L1cF^^>+ִÆŹ}aÝUVLK;-[6"00 ,Bhh֭P^~!!3f$`ԨPHM=ArIxxx?Yfm㏯o/ìYsZQW_ .a۶HJ:P ">~%Kł>$6w_M&-9# _} 7Nccڴ HL̺;h`։[P^z;v|RkZ< /N8!ڛϿݷz~{m58)++?^{Ӗv(++ŏ?Bffȑ /NåK9`>+-+%de((,St|:Νku=X`曫z]7!E-:6 ~C!!wN?>! ={,6q:~-HכshF>z%8rlL<j=8q2f͚Y (($ Щ AA5 9) v8Ӷ+–F;・)@,Z{j{Zr_??HN> T8GYnݾ7=u=:԰a#Z5L6W>!a6&O 8{6Ue\}5V)m>}mMA3>+VMn6(+Ys&LdrǾ:o,1H5Ph.xiƘUII 6}>xF^g KJ#GvJמ7th4+jǙONtZTVV88p֭[uC&z--缼\r~睷XzOnsN*99-'y(/2쳯Y5kwĉc0_پj2z 0.H:ў{ǵ@ k8gn3T}AVEmve̙3!粽JSϵUaa]TzYee|oK!vX""uFVsY"/ty̥Kv $j5nAj%pi?$uJ7D[ݻ7ː#aE;wFB٦{ҒrAUUC9ȑ$ҥ˚h׷_&XkOӡ .o7^)>h}ML܏+׫ZmF) )S Jfʲ Hgɟi))3<+,֞5+UVWkܸDP^ɛKD7 [`6lFWl[oh )#FĹost.|¾}?BRaݺOnݧJ;v<.\Ej<9))& 67M^@K>_&QT ر;䠨&W7qq L6u־5AE4sr~4Wg Z\yyl=Pj#q\Y/5q3 f  %cA"݄A@ aq{FUcq@:c~~~9e?c[&o?wm޽QPNHJ:M[nZ[ٺ[~1MGTVVjkfYFo?7/ SLǐ!C1d0 2 K.FzzS`}.ҿ&v|S:{k AxxD>l;TG+Ws[vi |.7zZ$vvY@vvm[ni[NcA"TAaݯi5ZHwUy4LnfuR__ 5ǍqBnn؋?/f$߿3f$*km9z7o`k6J!{;v|tw'q"VmehZr_ ={L NQu>bkOZӫ. Z\gHE9sC粽ϊJBf+랾 .Wig}ݱy=EE8t(0}.KDD &8醁彞&gΜvyuF:jj6_fT&ݞ7%5L&B!XU m_}lØ>}&FLQUUѢђrv26S[[ck5}:Z:8u^~yy ᇟL{0k侪Tu~;CmmS=nkhmIVSϢ>Wl6?[Kʲ\TT_4[?*]z.$d2A$]ﶸ\?ʾMʺuh4""'N%ckb~""<:$#R+}!!V_C 9~兰0 $DΚԌ,ۄ-]Ƕl];Aqa{?| ŲeB85ݾ+Ӟ7p\_xzz5a޼Y7oΞ=2V{ذ-^Kܹj9**!pŋJeoq]ރHYIe{۠Vp^%3%_UU+_n?Ke[D{JBF&w{{]> !Z\Mg Zn3Vs؍粽ϊK`,OѣGX_92mZi].~Ku$zzJ Cq81=7+V jW&$!V y aW>HHku#1|C@q7Ȣ1bDkR YL˂Dwç>f PZsN=%?|f$$vhYM9 w=Ac}6̧#G0;哕u~o4֥$VZ xꩿ4;,1_K:ؗ{E;lJ 29~q;,۴=ml{D{)~as?+`%p</ ䷤,z7l,[#粽ϊuhfyeRV%eOܽe鐖ĪUO:~W,^<:&Lr3Ɩb:u<'5ҦᦕZ|[жad)`@pTzxyI닲dg[r6dT*=i鱷⃱cqpCTpl5FPBX_hPPgVV-&O'*9߀Iモ"5,32jq dBxyI-q.56Td2jԸo93h<v;XS?~ 'NL&éSɶkƎ|UuuG)F #FUUU䓏z ƍH$ŋطo4JXfmg7mO9/]>c\p/<ߋPT8xp1toOtjDm+gyΝE߾(++CJJ2v<<~u:o9N粽ϊl6cxG3gRu&hZDDDAA;UViigЯ-6,7G|X$$OOO:W@틏>̡uHKJ< ^xoDUkמC` :%3'))UHL,v ^^)QZjVUzw  BC-&L^oF K_CrrJlؐYD"^o!HJ*E`~~R([pϳ0d?DFF ,‰ ۮK؆,m65jsb/@R/>Ezzmv?2tOŶ`ܹ6zznd*J|x(..‰p1c&NϿa-gTu6x'NáC ?⫸ZUOjm8X5k?YU2ߊ,ΛZ|_yv<ݶo„Ixq]i&tHhϽ1b$J%j5}-B,Ztw5k;nCff֭kl ,X+WB``Pw%4ֹ&/H#{gϠ˶}ěoy]VV֡qq+qO>cOKrigDDyqq;Z+ŗ_ND~~=B$!2Zӧʕw/z6ń}6۷;m[(!!r,_/bozG"K)HG~Ƃz@"1xfCiYY*?~WĆ 9926dW:kb o'dv5kFc„NNg@MMu[ON/Evv} 8=={vs(..zBl Ad{qi"88 i3z:JAA>oߊ\( I+rL0 s_))D#G#&?O !a R22mmiشi4}﷿;wޏ7j5nlkgϽ粥oٳgR!88MNhպ`0`ǎpL*зo4fΜ뮬n/^^^W(mFz Xm#?qg`6ڀp/q&^Uzw^-'MN@~ވdf@.]R}w &}NGU+W,vsxQŋu2%_|Y:@ j&BDDDD 45/L&r2̡WѾgCM;PT*P(֋trO"f::j0ޒ=Wdke6 0LH$0L \wu~h}hסz Jm`0z ߆XF"""""rݞ{g1ry :Q"`0 ^CNv$RUl\n ]RF=DDDDDnNinbG-u H$RUnT ^Ik {]$uG(BTB"@; A%"""""ׁKYĮ :[ęMZ$ZkA"u !DDDDD,""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDDݞE@RiQZBCADDDDr^2HSjj6dBDDDD=0mZ?,\8C1HR_ލ={.lfyuzlܘMR0cFJ]H-Y ?Ǐ?2@$""""Lf3pʪ`HOyy=~(,aauj<І.}ŋA"_wu?{{.  IG "} DQTDAD Bz>}^r{xr3;|Q !B!wDR=6l؆ Q !B$>?DR(B!L~"Cɲ>;_^e#K;v{Sr +8{UqTh!BHY_D2v Cq-0cF͈93eZq W?u? {b*/B!|$IC<.wSH&O(}[0̬y<fϮi-BKK4?NSOn7Y܋ꀪR+"!B)/PH8AJIeɲVkּȟrrXr.N[5kޝq>n)}mxTP!BHb1p!\.WIELI={ɒSfۙTv%B!pxy%I$ (RD2:;鉣ɏ \<= aSOmeO\ŋ[10ƍ䓛|gٳ0kVӦ~\9ݪhTB!R6,iEuJ=r(I$S^492h}y0 ]qu_nJ? |[+f@?#xMy˞yb\~ ˖bٲVK$B!eHH0MAB!2Y" C0Nr(|$u)q ~桇Ifټ9Wb~̛W%K;^1B!2Ymۂ0 $a8/4.$wOIҰeK^}ױuk޿=ߍy1kV$B!2]JMӄeYӯbQHk/z@BId:q舌|GG4.K!BdJ]b)Ĥکx+ɲB!(I$SVq9c@I%B!DB8Ii?0-Do$B!BI"!Uh]gcѢ91{v]]B!J B[ 7|3gf.hQ V: rn.ɲcqUG㡇.C] hgB!)F7%Sࠄ1y ;}.láCU |e͵X̲cǂQÌB!PHHEY.,w"jk=8餅Yﷷq5k%]B!t05t2\Tx晏pV},|>3 papPƍ~VhQe !B|FE(G p^x&ԒHv kڵUtYB!Bv74p !B!J !B!PH!B!DB!B!$B!Bݔh~̟@ B!*tPH&…MB!B(I$XpA!BH*wPHF RK"!B!$SH!BHXD28B!= !B!PH!B!$u7%#2 Cq B!dOA-dD B!BI"!C,B!J !B!PH!B!DB!B!nJCUF"0M WM B!JɞdgB ٶ0 X w}j/@1mq1pB0B!B(I$er~_]~>^{eAE<s){3 B6Tl8#B!$RJϭ._}3c,0MhŲ HH2omDx&}۫lD"z\Nu~C`̜c!]~hgR;Џ G"<cU]6Ԝq]<cf+Xy]/<~Yu*&t#v !$2/ 4"jjz!<,˂iIYFB4mc|[s=x?_07Kt1t@m ϶p.o yN%{,nG`#aM0f K \{ѵh}h''Gcaƒ`݋AHMIX_5^fa~k+Ϛ93f`fs3ZT_Pu55E#خ%>~b0̆F|=7~^aw_S ` iǒ=GcY}3o"2S(Tk`,NY--`/jkIwg'\x8L˂(0b}cϘ>0 S /tV XOVeh +vj[&!c !Bo B&ZIUx@=ǡ- `/N: 8p`}ٳ́ぇN~/=W_.Zg( cF_&B!S$I{lٌf5j̙@]=0C\vD.AKHDy6~  +~Qd; 5{k.]Ss0_G `sQdos<^=nGڶØ c`?&Y1g.΀~A9-fLlo\=7D" )  /r nvX s{ܑ*{†glj~>V 0mng-}?x z!^}L, sO_;8`Wr{c.U[;8as`Yp>O<c$e1{`;;q'a#.za0?BX^ohFx%p?挙vY3hxCܖ`З !*H%0Jqݿ85L"s튣QW{cw~`a-Ӡq6;)>(>nsth.r@^*%/÷+p؝"}&zQ5r}}p FU`ΆziYVkxEBdҥk, tM˰reSYCUuD"rY㑋.@d탘`NK fOڅ Z[i%^%q E!曈bq%X_D킽HBf0e?DދI/"t }DWnjg^x {!]UǝR%BnȘewk$9 f(wep۷ ׮B;?(x."swK  ڭ5=c o %E翆| cf+^7i>ǝ7,p rُϻ#8pW]elwn6/'z߹45#rﷸ"e۾ u˖=EW}+ϥa  3}*x{#`Y0Zg#oPN;$9;bEc%=N0$ԙm~<yz$#H|/#Ar(;߀Ϲ#-ceJr)ge@=XH_.yz(8 [sCEBտB(G p^x&ԒH&z%, .}$NE;;vt,4XDW'' ~«/ުE6wa'G `;; >鈭d˺v'W_iﷆF'cB G!"B= ή~``B:y`Ãp=x?6{/VOoO&A9L nVm6+Ktkve㙧 2s|j FJ"찼DYNn$ <>'I6w: b)b]}]E{-ezqjB{mmQ[߸o@94hp=_"}e#rʩP-z 0C`zx -?Ao1<}WvRpǝzϭGgD1sb9ϝ!]~%۾ \ּs&B]Ii"K$0^]1{P"x _ߵz:3Cng]NxeH_ooLgϝh5b7:rrtVM3YIb;X0MϭGV{Ax W=0O|_C~+Wρr9}Î@'?+|!z į/u&w|?_hN^b7>#t֩^~OGl_//zc(7^mDrF,c&?h@茓[:HPy[~>/<7TLzo E+~SXsVKp@]};O;T"er3x j9/ybK2>0,iBuȪ$]nYLuuC7 d~AWdhR2oϰ#OA;숡 ܶ;\x'N׿[7.|wQuY.J*?^XBI"!ed&96EU!2$(t @JC4'QL'fj]NwT%E% E0'Axy~~٩r5삜ya>{]o-0x_K |pԱYϻd%T;F[o'^y z9q ϭc~A^;29)_M>O}7}l/_Z%1`Ba8-g8ߕ*Y/1͢?iLϪMv{Gۼ1D9:}!>Sٷ\E__Dj8oN82Xwyʤ|g os&5QX Kx{cc]l!dwGGTc?PH$8X4M/`ƞCPTN5 ;$/+%+1(]~ݢ^y ⺧Z ͛À޻ok;LQɵcCuwY#Mdt+dg6KCw (g} vpu+B ?u#Vxۺũ/X8<xK%Ǐ8嵻5[=}%`m +@G k lX<EP9(Lnc<jnFm!>\?oͷ/Ll2sQ)6=>'<6R+qroBRerđK|+W8bt`a00PEB% x=MPQ,L˂i9y^dE(viv@O%a vmőV5?s\}%M:< җ//mzi8֡ٶy'l:9#~hs+| Ⓩٟ΀Tч!>:sLyLt[v7;O|##6B3/^~A;h^yDFbybcP( .kǓ,44$n둇^y lgGv N4۱ O/Zg؊D>TǞ3Ž? eҬo(a~Ϭ1n6衃~^$PH@p,6o O&0 .Qv$b**EjY44w]])=pFcS֜Ph@kQw`ztılƳugQ˦Gm4-@94yb*9bQp[{_ˬj/9~ưZ lx='|ȘׯNx R l-ôW %1 f&&%%ߴ Oy7 PglAr[6n&{^2`E/=NL odW  <l_oƙ)ֽ44mDj@u;b,W_tRB3`Y0ꡞ|ׯ< &GmϗLg:_ Zմ1W!v>hcG=v@ NWm~c,=iQY ŜǪ/IRלUBG~И1w$q0{K9U(c*%攋owtf{{̧i8.rwQ{r`JȞI$Uab; 蒄!KBHW,UL![CCx``v@x˜9 Ƽ0۲\{j`C[aNìop/nǟF!{OC' B$ gQMڡvuBxnH})CY֬G7"x%6oBq+y #KDbCVYvBˠx2 *^Q/ȶn 5<@?tµA= v'u4zq]|f}߃GÀ1ѿߛ3ㇵ K`Θ vά2CybP{0ۡ/o/~ 3hL^׮7Z+v1AoF(<3aY[yLBSKt)mQ^zv2R7'_kc,SPHd} t׋]!c[$$H@-FѼP1NY0Vߏk0$9w10PN:w5r̧ħCwH?y.b7ނCq[#o#pF3ү"tY"0_s5؁~z { A;순J@7*{aA!?EnbDfóY]3Sک/nE쏃ۼ)N6@么g0'T^Y!~vʣ]$2ĠRWN8 U߅YW_$qW'5?nf]=ڑG`b1xoAįaߑa̞ w ]YB_u=hش!G1gX5tR\seA+ϥx |.{o|ɫ1ebMYtEaniVl*wHw:^x[7^!eI%Vep!0yQp/M _KKyE~޴レ&Y0f΂yGbp='M*3!7^8X 5;œ3ʩ;S1fxs#Xf]=CC=[ܘX ւݱlW'zB=ꘂeD<aLc' ׾ ~3p=G׷؃^;dW=tg$QTrOB|)@Q`̞Zq۾ Ⓩ߲,}A9tXvps7qPN:+lgCx5XNv pm[jL-XDωRVLS)R˂|(iӧ^ իP(ߏ@ ༆q@I"%U$@ =_#ڶɞ( U2jB46?}svިw?G+WZvwRB~N$*ϭb;"x(7k=&p7!tYH|ݷ^x`Y$B%vw(de($ptTc> .~B)<G!PHrêWtB_ꉧPa"UG9Lh.BxU{:]9m:WB0ۣcB*TgkyB!BHJ \COB!B$B!B%B!B(I$B!BI"!B!J !B!PH!B!DB!B!$B!B$B!B%B!B(I$B!RI}Fqy̘1B(I$db1 Tbȁe9,VD2aYF0 ߓZt C0 q4 i8|a@uQueP, uݹ@JYR2r+IItuu:N4ͬk!DH$TȂa8pb cWi,i*b, f 0-KdC"@MM PHx<20,Mks+T,ḫPAӴ` L00M D{;QL&pE%Tk ǻ^;PB%ŔaX{(E,0n;Ie"wTSY * P1'Tp{Y!DBJD5H u QdaY3EaAh *6@4E8(  aR8 CGww7fj-6g_A$ex0 :7ZZevKEkשXx*1yZV;,躎~')innh!"#,h^^Lwܖ즷Ye׋q x_YAL"CcccN|p3xcrĴ`VUj`MN/ttLtkyz$jTc!~* IDATDBd -& r^ * F `r%ܗ+ibYve)U!l%z}{O?TS*8D֎֢.$YL*aZB tUY>S2m\-xc$FH]qC}0_^ψe>7zuqX~22O e10MYՉ0M/ U52>o_LYpΑ8q3X@|$1̖&hEy<.D"v#0qrUbYc,ug$vUܝTzu]wZ UD0 sXY['JHj8 `?4 ){O:F^#`N1YjJ7Tc!DBIJ 8nhD`V evUDcU>7C9x<455aHH8|~'\e9GG{V-}>>fy C%,ahB 'Atyjݗ# aZq.@QQUz(d7m#umG.qYf~X[.")=ڮݕD__/<OZ21yq;.z*U8y UJ5_*]~$q< " JŤߝO8(C"f?h'ܤϑhW4e ð/]쮸ֈߝ&8AkLqtk& 0q}iTU-xg=KFsy(WHқ,ea&$I.2 ZL& >e&:;;t, Ir=tt""HĮLe7q} 2 b9Z<wH䙟ϼq v, &3˿vy"NWq{RUUg0 ;ѱ`!^.M4y- U{xJkdB(I$D8#FL^VCY(PVD!tyr,==]h#ݑȳOnPx ̹xwvvf݁hA4˚ˎXaI(e\FR*ͱX4gDðiZ7iy 04DOOwζ+^{y糒aL&3Ai^-p LBwwwFNNV/&VR+UvK)=-O4۝1:eykq4M++aiD`YfyˡcRPLG{{J:!S u7%UqAԨr:ZcerEȗyDEQkQ? բ à*vra&`ssKށvK&ܘC0 ;Cu466U!5Mx[ 7xǜhxG[_Lܖx+Ӵ4 nX8cWW' `YbӪ<~N^1T}U]׀b!l_! ;32p g(4̀0 #aLIdf:]7g^oQ>q ??{H]םgAnWQϾ[_SѸ3fCd PhDͤ55n7*PS/&VXn+Qvq, ?o+3j TzCWu ($Ta""$tF7LYϧE Ct(ݺH!{R0#J )cq", $JnI).:YR"wEq'j2tÌfJ)1=( RފDG$A% 3Bj݄,˂*fRqA$0M\)=$1c& աA$ill BH $B!B$B!B%B!B(I$B!BI"!B!J !B!PH!B!DB!B!$B!B$B!B%B!B(I$B!RIv]iLq_Z C0Ml ÀucCDTe%=^ZE$TYhqB8,ð6.gmWB%[O , "g&H%VwTmK_AD@XP# *Xb)OML0vcEŘc7**Ae]cf.3̶i[=>̝{Ν{{=GQTPހwfsd Cm( p8,C,KG OuL&3!޿=IR`aXC!=.2D14`h 5UU(@ N!^?<:g?=UWWOW$46Hd*DĐH@OAha6렪N'@ *Pyyfz46z!R@6hԧtzpݐ$ :&GVCTU,{^r!IAb}.ǃ`0@~6DQ@0D0l3|>EN[HeN3(*|оX⇂ ۍ@`0Qa0aْ7*kYv zL&3l6{\ $ ,vO踴X, /|<!"жtN_Y;|If(:z?=l6;fsRu dlkApoX G0$IFjy${|tgI䘋|Fe KxsUxz=}*v{!2z=f3v;VD t(hi%@PQ!<`JzeȲ ODNNUU'*!1k+z\o(ؿ.+FFFխNS__deeŽWdšCNgs766o~0I`0ZrC$?p]ӧG͚g0ѿUU&JA}IɐPS?A^^~*ղnnvNW>lohs=E `S[[:{[ۿ^uߕ@k4CIIIFʫ׋x<,N>ݎ>}tM2Hd[eY>`2xjv{`X:TUAmmZZZP,Iϒ1DcccLC=^\UR2U|&#;;x=8V׏+"D^8 Z؋4eYN *Qa$tT{ Љ]$ɐ$Dž:>l6XV>Y ߏCe>mh$ry jkk sl<9Ͱ٬Zm^---$ Wǽo"q߾ jl6CQd\.AjL=WސP}LSIP]].fs`0@QB @0MI_ON'jǖVF nwj(..jZ,Vt:nA&X&lٯ5B , t:|>^/t/nBnuBPEBFBW0@uuTUbl$z!I\.EA߾7xm5BA\VxZ9tn7hl6jBEHC b,sf999p=0 1!=u@NNno%477BrnjAU477#ttA)@@҂a}hDaawn;-@8G#+ˑZ .[G ʎ|:bXm6svbzC V.A }#pʎma71ڢ^;} ?Nguu>x< ,?GUiU:_l&f fͿLZy~s52T ԫVC91̄BLk9Y(.wOUbu,>0^^զ=Ӳ/" 6KtxnfE +=hL/b˫xp |FҽFQ/$IZgeu`0d(JJYO>gc7VK$;͜(}8ܔzN(E@Q"*BnZ#IՀ&)dƜ#$:30^>XbvY]^;zI=$v8PeZmX,)VB&&SÀCK IQ$5*~O:, <\=EIhX`Kӵ[N OC:5Xhhh<01 a>>2Y-窶^|VHIDD ԋs?a$ F<Հ,#=ݯZm@F&iA)Áݩ!Gm M};#2bz\ZMZsBWn, +, )B}}-dY Oe6YYY)D:=zR@ߠw;0~A ?ntCʫ}m)t}?s[u:sLP.WxrpZ|t1[UDĐH{ԋ0k"CM^B/AC!݁pM^7{cC,]%MEbEKK dYF}}}B>E˟EEExIH$ :2AM~|uA@nnrss{Cy4t(}vXV壱@u1VeeeP ei;NYR=RJx*"JϤIoq^G`>}@@BssXHxv=dЂc*</d:!V 2IxpϏAQVV IPX'm =`4$C#I}}GEQ5M& VK^`0hCI;+ q!e4a{ ř*Ȥ:Tmd^3lkE^~dee0+?cJhVkRvgIKEko=W ,y999ڬ#ScO"(F(@ J$9>% bh z }^D套BqXaY{vt"vG$i:)5DQLj‹o.jtߔ`@vvaW^^^~mrajL&SƆjr̥"㵷!zk`Y`0cBXnAbh HP4LHc*һ. 6"꼦f-ɫBDĐH @:*ˑ@UU =.Az&/t/lNk"Q JᡟYQ=!ӰNJI> yv’C1$QwaYz^#""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""bH$""""""D""""""Jz-<N7ElDN (p1$bÆmx/Wc߾zCa8q8N\;wC">dz5SA0h,W¶m5 ,[3gOSOHDDDDĐHz&Stf&EQ (?֬ي;smҥ/Jxm \zzk.ǰaY=ĺuk0zؤimXB됗#?kEE9:k6`U0`a[W\|5׸⊫Cz)ۈ2‡nX5yZmPUA ,!:TW쳧ci&˅{˓`0eY{I {_nX.\wݯz@ ,=JRtr-evُ{t:3PX5s-MI%K.)aH$jw-F>̓b `ۭ#BB|^\ vp 'cɒ[}[oDSS&O.E)**f"`?|۰̨aժ⊫q=pۈz-[jՉ)kZzWx 0  @߾1|x d45P[k`N CU ^|(.yHyaÆ9|;& <?_onkʯ5aDTV6r",3"""DA//z;L,Gʃ( lDXl I TU;wV`Ӧ]>&N+Xz)Ve><رc;6oބ@ LDDD D?GEE38p8oEavbjj㤓b"YS #Џ$!zjΝعN'Ͼ~GxݕD^^>Fj<_WQ<~6| 8aľ$IXb9meeC0w()7_VaϞ00(\tBl6K1x :,Yn  Ϧln76n0mL.)]_|]vbr;{*Y[[+cMhnnFAA9f fϞ%R #Flٲ>%%C0gY0abLJ 8YPUo WGw2 uN:E'֭ASS⬳ԩi{Cmm ɓ⬳ՆƷ&wWס}a18 p8R֋?3|x7QQyy3f,ͻ8&ڦM_RLf;?}R>ƾ~'װ{0͘4i2;ov;K477aܸ{u<;v|JM&f 1ㄔI;mKhgrc̘qp\XUl۶.W Ǝ=g1C e)¤Io #L}2f_F㷿}X}A6Gb t:.?vw?%f:W_}㇇^tovqq_,]&8bL\o~_cO'[n3~?$k{a(A^M7)yE̙sV@RscGi$}l[*pxUƛn477y(@D"!i ɺy&̞='4 VX+niy}*p9998 0dP455/~a~o;Hy9 =1wiNs0q$8X [n7oL8Gnǔ)~1fpLǝw.~'N¬Y"''Wcʷ{xc̘q2/8ԟ`ĈQض[^p S~>ܶ[<31L<UUXCTUUW^D0(yfɒx՗`41lyN~6[~5Ə? ?'w};|sn݂3<x_Owbx7oυfÜ9g#FtVz55 >ŵ ]w-³>N;'|*v;֬˖-Euu겸믿o 0`@x(,샍?'UWYYɍ>5̚ul6;6lXO>YmǪ:Jy$OmO߾R~e˖j ?$f&rL^}CW,Dmm  _\snܹwو#:xϿ=o s6n W۩v0nx(.=ksQ^^o7nۑ?^^;;pt.kE-'2g{ٶزe3V|?q}qpYCQlݺ~7W7SN@}}>( jx<9 /:.ֿ+?w.gE^<ģXN\w .b 6v{1`pK- v? /nרM?8 xߣ-XQ,Zv_:Jy$={(//Ci8qm:I2u3ۖʹhgUTkCmr#~+q=hs.~6`=~ 6 rPwjlt]$(IA~xPSCm#GfbXwPe( UUZ"  @aL9ţ/gڿ[◌o 4iJBF 1{?m۾e+]&NPI&crXVdgg:<`0`ܳ?; Ad?#F? 4iPB.ҘYYY_ˊ4>!?K8 W\rqӴG5\]f5:}jܹ(bb%KK/=bb?eڿq{@駟uI{Gz_G]wnqMk5ګG&t֓T~&mUG;뫯=kic"~8ᄓ۶mC"Q(Jdj*!Btt QN(SO@S~@hЏI*PdO 7n#Ŝ!''@?-=Jq?BWLkD7^GsLǰañkWvhȂ坭WnW_&X96Oz#Cupd ^7';xڴO"OourV'uD}tCg^̛wq@Y^'ŵ0-m߯キJkLV֚G&tדT~&mQGס(BCFʤtnJl6`2TUN6oxoȑ`Zx:튢<޽tOҚ@#0ە8e&O:v'JZm,D DQrs0N(J>F(BQL|q*+*Xt;}[V"  pXa{\H,((:x'?ߌ&xwCÜ9gᢋn8SC@g&ill5Z-bʷޛ'OŠA{\TyU+/>GUUe̕DJng;'x2g51j12+nG1iJr^w*z(A%Ν;ڕF}g:Hqz}n:Y$a˖а /Fұ C"~1|xCPx|"# O3 EQcc[bP *|򲐓cq;=^?̞=VʕoaÆp:سg7/~ܿёP۱cp+*x]R!1 U[AzdHDyH+V|K#GرGbĈQ?(nOsp`u׎g(*LS"CǏ? cƌztUH*zdN=O;޶@*呩0$u?s[wڱ;x#soo DU@ƕ`ꯠ(e Fcz^kP* )tC/JR ?89ž٘?̟ Embٲx{L6S=XjWR¯2/}1eʱXv3bȺq stv<[nAEv_ .~޲v2gOG?dP=O?ݙdhK1Y^^nvT8pz=$I¾}{ۼ7[#;;uGIkn\SVV K>}&vt5:j8&M E|=p]pZDž3|H?UUBVA7_m޽+w,cÆa1͋#EG}`0MБ`0Yzj">l6#f<~B:rJvF&0曯ۭÑu3 qn;v|_|Zv{Ͽ}vbrmuGT:ߓx(Ty466s>x]lS۲Vw2 ?:Q/vN/o,kckhǼy`/QĄ Y3T ?C~nOXjE ++ %RܟIDATpWhJ#6oބn-PO~ܕ^{%X%\ N?_fϞACUU\~zpU?GKK V+8cn_;3~kMMMXD<xWz+ W_}6jĽIR߭L֓D$3qROvoCccCsv܁yΆG&{+fΜ3&4AQO{G1?N9h|A|&^QADr&>đ#`„a7c A~~N=)gnri|5Xn ~3 Bkn1*+aƌ)81||ںvwa̚۰|p\³1{u***bś?(l F Ɗ‹|8p󑕕]vwWcm۾Ee>];l=6ۙ{]w%vfMÌ'bذX~]xc{쩤l+((x.}'OEuu>d֐_$5ClW3 xb׮1m18NP[[AdZz'8 ]"6l7Ӧ@QQ16n [|Ŋc=kּk}$\ocwƴi`pdaÆe78 ˲gWG;2ᅨ%K#;;G[>3۶TtW7| EQp≳aƌ)=/VAe 8/FckTUUj}>O~ĐH YV`q[UCtĨ+‘h!n7c=G9& C^?O>/\|ر;Y~L.?c92O{w߽XbyF_?)**Ƌ/kUXb999xa˖o]/p8ԟ[;v|;sLh{1c 8qhii܋vNe;;B[ov<ڰD 67x3ؼySW:W_Kw:1uqXMpõ(++bׯ_/w&;zY>l6;yhh[os7>hM!n9f*N:iVUθο`0uqx҂z}@%%%83{mXC|ghjjD߾1|v0-In&EgZʠqcp ;;說J|zl, f: 7 {cҤPO?&^^}]!~?.IG:m?+W .C=ǃ7x }Uus1p 6F[,Y rrr`p8?zY"D^C'lV={o_r JfY(*ŀ2Ç򞠪&])ƌ3f(V^RHO>YJ 2{v~K`4Q^^-DY =8,;ː4H}o "-LCD8`0YٓHDDDDAHj2|Dj$Iaa>74n0L[7?*7@o|vF7'i̘O?=W_=(I$z }m~$) Khsھ=Ww߽{fWsէOPHrsR\\(f޼ڲ%Y'H&D跿}W_zi-K$=(]vY_tޜm;T߳kW_-_~h#^uk,9FBb}Y{AYBDt:^4(6e*, s R\/Np_Kg\Byxo`hW]m(3LkV ʪ{#sh$_\\-:6?4n\^|q VgƐh;M?im22Z8Akƌޔk̈{ it 7mk֬X~"QGyFG\UW5hNb H+*Oms{[7 fQNr7g(A~n 4C~~RSKTTTh?h.VcJ]!g@EFcHVbef_ Mj5txRSK㡞=Z9ŢGmrTRR2-Xp@?oܖu-nk=:\vI/WUI˨4'*-Te1 55.R^^իWBB;Dܑڠ$ٖ9zX99 Tkv5@t0k<<,>=Fw5Iڜ8Q it9+6ZP}l>o9wp ~:ڭBIm m j㷖BAmܘ*tU}tv槻s$}Q͘C#Ftq1v…uk*+[tf衛n$WVZ):T(8bW81R]O'F{qJ]>(I9>xpnm9'Zglx%=t}[.Zv:E_}eղ|sxuӦy}lQQC|Z&St5eJ71-^"Iz34thVЛo&(11 8GeUoŋSTPP]4thh ׿h۶\IwiC}_~'K^,8T\:dHf/Ѥ}o2Б1hĊysv)VC+V<Ֆ-95#u~$[֕WOVVמ=*-6?F}|w3 juZ.EdÚ9svw97}4rdO=hW^ٯ[nY %Lw+X~*u +L7JH ql}f=ziI٭ܪt`x`^{JKgez]pNm޽'Ub]ǴRs:gg_qq=imS?n*͙}7Na93gΏml6(%Lע&{C>t|R]w:}z=Nzێ tt$Nlۖ7LPu!CBu4(D99Z"]0/dݡO>9ީw}m1||<4jT 5/ TScF߿U<3F+{a cZw?<';"WgUkmd{.Z<]Ob[*{]`}a`o{nzTYYvΝy2 )/BFTvExb:yӯ_ƍH?(5Dea}I"u%=].sp#66HSF)4[Z: (k.Zv օv$Z[x͞X??6*6n<bn·75ϓzu<=-1|֭9Z" ~zbbP(__O]zi E5,mؐp54#vGi[ j-mOy[z>thƌ*__O%%9܈[.KϏk|ww}j˖Iҍ7]w qg^; IthI j=.h=hO?мy;RC=G&D(85[ tu.Z }D3{O^u[d.צMٚ6-ڭn7L$NOm|쳣䓣<ukyd TZZ;S:m5Iza暾uίJހ볝M)˖iL{w8OڵZ,wqg]pG=w^Ov:MeGI(r\=tF]yeړOt^b]Ҿ}'.ʕzMU?1|r\(ϼaC~!I.II)__nQ©[ohn?|x£Gq}QQ>!ozjjڵn;9LC eK-:"gT.t6IrҜ|Kwp!ujkߴl$YbIN/WЗ__|qN|g1bEg~;9LoȐ6n [jl//'k׮zZ =^s϶'{eW8|/W ѣͿ_|qìoi]hͲDpAnҴS:EUW??^+ӵlQ\ӷd2-D4u5qbyC{P(PMOs0/La:0!ҜmZf}E\l=^wM]wm6/AB4,z챑MpdΜ\]eUw޹Io`>S]mh۶\~F`EFooߨiӖ7}-!CBks[GLPu t[. g*)H7V0{8*u]UYiuX֪ Yv*ͭ zfѣzJK;YO7C}2M5gΏڰkTScСB=|?! IZ"͟?JwݵY0dSb{W`=[7lW륗~K/d^#'lgB8#L\W|rm=t]_Jx#Ao UUY ~n=疬f?P{o~$il]qjED)0K%f`hH i92\=6Bݻ4< џ4\O=[VR=vI=#3gRx9l5NY]vd ouzTIIyg[osh:+JGkxnܘ_j""|EИ1z=6>;JVlY(=l1Զ42O/0ޥ:c큞D 7'i^ww-||<…Sԥis|g~A8V"ӢK/ޛ>}wn잃h)u&Zt tq_Fwnu?a[c&نg{8|ϭ[sml3{Yvx 5o8qr {hkwwKL,RFF FmskA=:*T"w5Ɵb㏏s8SZpp!߁6sOЖ-֪Uڻ7_T>;H^ؽhn7$?RVebed2{ϏqXg)1HTn~?>B/@KJN.Vjj<ճg>;Jg%OOۅVM>J!lw5SVV+ǕYO_9|m=8w^tw5k2w??/EFᇇ9_^7fkJI)Q~~t!Ҟ~i})ַӡC˫TH 1˅ H]:pshx&$$jlY_zi퓒1(P3@dVvvJJuh '׍;zg7Mï(slYK֙14=TO>KKJ-}qH@\3)/Bsw?8[{S䌦Ct5}I<r_wiu.{{o??D pKO/ՊJK+UZZJK޽5aB&Nwl@pDA" @ H$DA" @֭99m! IDATsf\Kt&.Yr鶯61HXdvDeĉJs))%}4N<]3g֧&Gin|y&]tJ]~*UUY;h(!" p2$TeZ mؐ9s4JO/$]3{5Ǖ^/IVaV)>m6mʖ$M>}lG7l8^ﶻw7?G~~$=8eZSc(>>Ogs$Gqc;ζ@3(*IՊ7Soo>\˕W!I,ƍh̭[sn]/WX.8{w^0EEcԻw`j۶\IҤIlVe(3Laa>0 D]ֳYBk,++ھ=W- CZ2]?>}t-WU2#s伉Z:SiiРA! w*{Bã*K! Z"]*/Qt&O#d4-+iZ9u̕|m:挻ҫҪ~ҶmͭPD֌=UXIItѐ!&3&\?9l3;(-T117HUZ,Uª=ty1 mNEng)+֓SmK gJ9nJ;X+uX=4`GFyѻwzpk{J0 ik|jŊ ;rXW_Vx4{H qj5tUZZώK/7KJ*5|/IZ/7ԝ)5,G߅ȅ$gk:W C++zZ4I,+zk^k˖K{Gl TM:5eUhK4~6U4vlW$3/Wiiuu⣹sGhڴzwߥy/0KO>9J}]t睃u͛ܲAa%>d?IԳg,-:Dv#GgǨ[7&Ɇȕ4jԔJfk,0q5vcTZZie+z͟%K)&_|s~\~*s+L?â+/Ph`^.V'wܹ;TXXwR3{iԩY[^; ջwsrK%mE}eQcgjϒ;O=0޺@g-vƍ˫бc%}{/bLzTTlMٺ첞w- 6d{iݺ,jРU~~Wg٭ tњ81R~~,^ ͛S9M 7/ Ӕ)⭜rY-^Bt5}^}QuV&MT`6nr͝Yy7xI?LҷߦC}j_}g#I ԩԷo Yϯ#l>^S8^ ?.Xapĉ U||oܹ;*{Ѣ#z}޽5eJ7EDi|YHM*+Q@;/Z+5T =nUTh֬XIԩݴd1ed)58# %^۶H k4@-!P_|#(;\6er-YrLV͟?ϷVngG뮋զM9JJ*Rށ:^c4n$o[Vz3{W)([{akom_~ֺA"Us;036mֆ >xE=tE=n5*\p1ye=ۇH6jw#޿!ӏ?wzֽ]ziO7HE,St[kj:[^{;/Z=4Lw_z'IҠA!?&8\{٢R=n}y{OYgEg8 Z䘞~z9̝J`~IgGg8 \9ʡ-.oӖ-9Z,M_ޫΰ֪-)4eJ7=n%%iȐ&ׯc-ۖrWߺ5 'O:Enmk]I{t58n+=yMUռ9Hɓm߼9a}ݻm րr]HW'/RSK2{)8[__9L//??}:_ yȐPv+c1-Z3 g=X >ITVbu7H>:\y2{l =7s93gjgɪ* K:ω]tQc޲%ǥcFUuέ]Y6nVRR<va81ĉ R8l/Ictu:AKzdxWi 5k.Қ55|}QƞBpv5O2.Gþ ɑ7yi5o /&LrMK.ix„[n[n1c]:VKӨ=˓ι;}ҍPqFX5HyW֭9kUH֓=sͶ9M7V? H֬ӭ]n\J޺p7]=~۾ Nt*MqZ?>B۷ȑ"V)$j:thL|+*_YY8#LMy%jxFJH(ԦM2x^ gF:u2A!JN.VZwvv9İa]\ll=w9yޡ ns晑=yiԞ]u̝!%ļnh '5:5J~8QC 5hPrrlrziȐPUkdj۶\׮銏SvvÝڦ0i^Tyabb.j#=()}VAvϾ4ڳ<[>/f׭Һu=l466Hݻ(=T[hРfԨpsŚ5ھVVZ%CMwo*=΄$mUn\ Tj+\rGm޺RD6yg1>>_Çw1/H42E{PQQyd_5Уnך5cc5p`bc4dH+:Nc66>,ڶa^ϯSCUVZO6^6˗Q{'wsk1w{92$IC?O-;Svӧ&k˖]}?sرmnZ*6\79֮ӭ]n\ҼuW[JuG6mjo]WA"Q E#GkӦliРmS}'LE55KƎASK|Q馛Թ xQ zPBB230؇՞ =鰹6?+jD}Ե~7m5/N}{I=6§&7xauKneJ7Z<].vF1_;k1V7mn𙬢*}f=:f;eȑ]f?ǵoyĨsCR~GYwԲJ޶e[Z,˴8ko? H:!CB^ qҤnۆ֙49Zzg%3mޜ]7ҪW^ٯkmCs.ZΗ_KAA1oN; ݿ@=Gm(9眼 5+ o<-ZtD˖{=|r}Y}iQiiQUgGVQ{}ksGcdok4wTSӦهW01v1l_?~-9XՆ6'qieJ[UZZ-n}PP뫛䭫mEGqmަuG:;I{âcCMcb12$T](?RR{k_\~`/Ň[åʕ:rX7.tH֭RZZ QBB/o$c4`@p_W9,G>:\=SŚ=>}uPnUEE||<䓣zU&N̙d1ؑ+\c*"W:p@~~=:\7f;K]:vDStSEU7gk˖w^vW^^ge ֫І uk„EFjEt=\J+WҨ5Ϲ1//;ܤb]uZEÆuQqqVT^^,if0T}i Sh.T;lp_WiTEھ=W4w˕oϲn-m+:Q5mZ֬l RpwBW[w+ ƍ0DgmhˤI]ɖgM˗)?R/|Z=H:sz+Apsc5~|W͜Z%%zTᇇuڼu5g!Ez}:q|̮G=Hsxim{ώĉJZpaceKN Qzjw.ƍ̘C=6B3gnoy||<Uo9V'y3ܒVQ{}ksGcFk3+-T۶: }O7TӦEԯ_穡C.>~|W}mi޽cryxXtu瞖MJ޷WYon-i+:ڭKvgW_=XRW[WY 0H6n֦M٪G͞ݯMZ+%X ib-6ҥ쳣5fL/>KKǵûhҤHy{;X֮Tzz<=-?Xӧ(8VCkfСBV("WSv!yyZ6SG0l!nO+WҨι#ױ*6m*(RT Ygu3{˂{5*\o=Y%%Z*Cy8mZL UnޔJ6Y, y(0K޺Av; H֩A"N΂D-5DA" {+ >~ nLr$DA" @ H$DA" @ H$DA" @ H$DDA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" :gyFk.|XM>ɟ9zy.G5_߳gzNNNꫯVll,XЦa]pQ߾}UYY}=f >\UUU-NO|Z6-E@+99ٟp9)99Y~~~MLuuy땕555>L%''СC>} hѾo+77|mʕKZp_plMyxx>h?^O?UYY7h„ mѾ/_nZZhQA"(@$Ξ=c6ixeGb9}t.?$EGGkW_Tt&qH@gcZ~dIҵ^뮻NTRRb/ =N8͛7K.yxԽgW^^^tYg5W+//O[n$EEEiԨQ n[\\KM&:lݺU/VRR4rH͞=[QQQ.EVV m߾]'NPdd&M_ uСCJJJұc$IZ|tt/4k5|puEZhf͚w7|5k(++K6l:ԛqqqݻw[f*++#Fyڰa8dEDDW^ꪫ4p:WVVj͚5.Hi&}JIIQDDoiknmŢ /Pa?.]k޼yM.&0 //4$zINN6ILLtxo$cȐ!u>c9Ґdlbbbۻwzffþˍٳgb,^ؘ:u!xꩧT###ŋ;l?o޼zu\xᅆ$#..|o6$Fnnnm(=6l`ׯ{7mVqÇug OOOcƍ7xaX=b1n:46z?߽{wcϞ=u>a/^^^FMMq7;sT6['N#:޽{k͚5ׯ_w7?$w޺ kڵ5kZ~[$Iݺuӥ^!C(>>^K.Uvvj-YĜDfҤIrJ۷O 2lvU$I7p5\wyGUUUum5m߾]\pJJF}gt IDATJ7:3ta}mݦ2s=X,Zp={詧讻$ĉ?I$i }JHHЛo#F9ܹsk.ӌ3˗kѢEJOO׵^={|zkMJcw|g=֞Do_{k HJJjRWC56m2_ˌb-\2iNObffك8j(#--$gϞuznVC1k֬/l8%''WUU]v5$sN{kjj38<|p;ϐd))){öcYfqUUU0 IƜ9sgee1eCq7ؓhX^x򗿘=z-^-c\yuʀw4 Z$6ߨQZ5H :=- C1uf{`As=g c4 }nǍgH2>b1;֬ qҥM͛7t#$$Đd<W2$#F0*++/ҐdaaaFXXXiݐd 8 qر~6##fժUn)v\\\w4MAAAM&CLfQ&$IsOhI{OaÆջ͌34dIҖ-[ܚf ڶm[O>i־׮]+I7n&LP6111%Lg7xCڽ{|Aq^xAA)??_ }!{YaZ\hs(,^{mBtwԏg Qf͙3ǥ~y n@4k$3vFҁt裏<:u|PhѢEzC}fؗ8rQQQztWW^dy9ՕÊ׊+g54biaખ|gA"vҔs9Gںuz!]~ڵkk$)66}վ}{RvQw-$UWW+..;w qɒ%MZk W]u.R-]Tꫯ6J6lؠ4SDFFK߿ HNMoV 7nrrrwmkgZ6UUU؛7oVbbb>;6LMM$[/i}kۻÆ ߯^xz?_]]kF_~iȑӘ1cy4'rgmgЩdff6MLL[hԨQ{K;2 1%XJH,%ľ|i5|X>jSҪVN"EQFH$ ߿?~3f&dA<{rι9ss=g>֬Yx{{ufܸq#Icccq\ib蚮~:Tb0ثUݻ|uAdd$ڷoo0ǁCѣG_>^wItR%X8q"LT~*k<I8p KfiڵkFάY.FBzzQTB+Wp1.]TsG^E!33SNNN)S |}}<^s4✂/߱}v%?#<;;;wEvv6TرϟhZZZ^}}e䙈A"]nݺ7͊+ _+++H|Fc֭/68@Ϸ~kԾ5OBBBpYi~W>}OЌqAܿ0`ƍ )StEgذa>}Ȕ)SwޑҥK 0/{XYY իW0aRT*O~M,--*UJڵk'~=Z*V(Dvءl3c ,ܹs:uR^=냂puusʲedRV- 5RL>].^(""3g,sss *#66V.""q ]3A"K UoKJJTTɨ QDd…֯_oT!|ꜣ:tH>SDQzˠVZw;c 6(޺uk;yСC$*ˋUƍ^ZyܸqC ?Cu_~XXXGV˖-[R\9eرc$H4(lX<QLD9:l… w*Uwy͚5{ č7`nnWWW{-^<1H$""""""!""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D"""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $Q0g͛7b * ر#jԨz=xW)S|zӅȑ# &B yaƏZ]$pL6 իW1sL^DD%DD@DǏGV 7&&6l/^RJVyǩSдiS8::盖WWW\~*T3gPfMigΜ3f-[#Go֭q1@dd$ׯ_$y1bV\dXYY[W^ BFF "DDFzpm+WvԩSQ7|#""pu=<0 ͛ {.?7"o=zqv7%"2GGG4n֭vލk׎INN4j(۴hGE||<*U~xzzg!aXDD ^_666;w.1sL ԩSƥKVwzO?vhٲ%lقPC v󝕕_~ላ<==1`.]ZIwAbĈعs'֭[1cƠcǎ DPP`Ϟ=ѣh98pЪU+9ѣG4o|q C) ڵk:u`̘1S<߼۵k=sh۶~~>T&;mۆc߲e \]]ѠAAb~Ps Epp01cƠnݺ}afaa`DGG}P^=4Xb^ JWWW=vvvl ""*cǎ 5]:uRegSSSQTR^=ҫW/IMMUҩj۷4nXHՕC%mBBxxx닩-ZHZZ_*U$;w +W???)[eˊZ$>|TPA>3)[xyy#FСCJB @zSEVˢEDR4h@Hҥ%"""5$--M/DRIݺuLȇ~5jZ-111;c  !!!R^=iժN;w̚5K.$22u[oF,--C2|uQغ/lDD|}}\gJJ{JiZvܩ۷oT* UTjժ X_l̈ `HDTLAbΝܺuKDD/G#yOȬYDqrr?SDD>}* j>s 3gΔ,ILL  K.-666?ݻw%33SY(dӦMZiܸܿ_wtt"wQ[N > ÇJ*Uٳg-2~\,""x{{ ٽ{644TȲeܯ&H iӦR+W  RQJ… ""%}I&]M__(˗/+WN .֭+*Ts).\PȔ)SؘkIժU7nL>j֭-WF?˖- L2Xjj֬e˖;;;1LMM.5={cbر\2o1v ꫯPJ.ʶ{FFLeȑ#ann8cΜ9P֮]V~zcΜ9s???nݪ|֭pss Z̘1 6b011*Ea뾨򦑒yS^[4i?~SN!##QQQ]6ݕGsf#EDdD"b@呙px{{YYYGRM6wu йsg}HIIիWƍƍwq97xqe\Ø@oaaa"񈏏GϞ=QL` .\(t⭷¦MeQMs֘:ԧ}Z/]֏օu_yӸv3R~Dm* 8}4ƌ+?L<>>>l 5DD͛'''"33۷ot&D 4kDGGYfݻwc8w.\O\rGAT-0&Pr"@5Y& LZ~~~1cnܸ'''l۶ "{/ ZUfօu_yӈ6XZ mܸ ҥKtR888SN4htFA"Qy"""PJXYY)7ݺuÐ!C nzӤkݠO2s΅|||0qD4o߰,0& =`N'iiizk&ikdԂ[lɓe4l71uO^efl]FQMCd4+++ϴɓ'`Æ }O>PZ5XZZL2۷N8<}TkXt|2N:HNNѨQ#:uJ+z%˜5͓H###Q|"9a4hN8ٳgL_uXuQyLok׮~/7oJ]ouI$"*r .ĬY`gg & ptt=gϞڵk0aҕ` ?._THUA^;gddd}FLL 6n/(kCnɒ%pwwי='c:*(YXX`ƌ>:uꄰ0bҥXp!5j-Z ضm/^k׮!&& ,]奌JDD/, DD͓\W.#Fh޽[t\󱶶ŋkSҺuk6m kk~].J:oǣ~hժμO>Ehh(n޼ +++8;;sD"<0H$"z JI$""""""DDDDDD$/_Α;DDDDDD`wS""""""bHDDDDDD A"ѫʕ+6mg0Mvv6M?U=`޼yOѣ|oiӦaƌ֛f۶m6m233QҥK`̵ID5DD%_>#̛7Oo,W\18zBPP222^ٲw8u6m GG?4PΜ95kk[ggg\zpao^'͠A~zs]7k G\DDo:>I$"ѣƍڝScǎs1zh>>سg֮]{wwV ;_|9/G\\tF]Sk֬ɓ':tN^r6^嘟s&" DDTb|Gdff qvvZ>|pQղh"QT! 4RtiP|W@֮]sO?TH``lbjj**Jի'@z%FA IDATJ:TܹSLLL\R'*JH*UZj@*V(se )[j _aVIKK QTRn]133*F%666@DVKLLLuz G={I;p@U)tqww[[[}ݙ3g\,KHH R~}155ҢE IKK3ꚺ{4mTR:ugggSN׆z/9QcHD*JT"gϞU/ZH`bbb"ݻw9V͚5bŊ!""ңGy葈|بkj@>Ϟ=+@'Hwm3?\CD)S,9r$w5j ǏMӧOZƺu`kk իQzuZ~ƎcǢrFTTj׮tĈ;w.~z¹sU5)) ssA vZXYYj5֯_sss̙3xv܉Zj RЫW/<{ y#e憙3g"88k׮_|^Zf vvvׯ>c>qFXlܸXh22.\hlr^fffˠLDDŋA"kC:TRrGzz:vڥ,۸q#(eff"<<ްFVVQThӦ ݻ۷ok;{w* 8}4ƌʔ)ɓ'ǧl߾]Ysss%0$>>ٳ'ʔ)jժ… ]vɓ'4hskӂ-Z`ܸqꫯSNZ7n6nܨǗs.^ll۫W/_~4有A"i hc۶mM֭[ ϟeffb077_ڵkkƍx뭷tRxxxbŊ8p otPlgg{RRѭ[7mLL OSY&RRRoԹiF5?>핏&x=toO?(U+ݽ{7Ǝ-[\rhܸ1BCC4XV-ufff^^6rSs&"MJ+]VV4u/9h~ۣcǎطo>gVҨT*@n0dR_8y$lذ'Oܹs t?3┑GT+--Mz̈́LU}AVk׮:/\K.a֭3f'Of}O2sUF[8q"7ohl rM-[w}ZZܮ C9g""bHDPn]zEW^ _Qyo>(S V,--ukӧZX(55 '<==<}7oO3/}?m۶a޽E=N$+22RH/_><eddd`ذau7m۶ظq#~m-c-[ݻwGpp0=zaÆ餙3gЦMlڴ 7n@hh(t邤$L4)c۶mŋq5`صk̨'uDDTmڴILF!f@uY[[OsܹSHڵ%;;[޽[*Tu^ֲxbt94sj8p@to͛7s=Ǩ(QT69z!kڵbeeu>~t'/2{\ifpf &hm. 6+++]v־5k&gϞU1hР_S'ܹs_gD}׆z/9Q3ϴDDTqE\~]6\]]=~ሌD*UвeK|oS͛sHt`mm+}5kMV<%$$ <<7n@ѴiSX[[2Ca<{ѣHJJ;7n 333DGGȑ#hذ!7onԾcccqidffe˖G}Ι A"-[ ::AR(oݔ^i;v@dd$lقΝ;3@$""*f|HDD4{{{jժMϞ=q%s}7`ҥhٲ%֯_φ^ׯ#665kD:uRszxx{[zcݻwO "eʔZ6mȅ ti۶Nڼ>W^'Oʍ77}Qٷo} M`(gΜQ;>>ו\~@nٲElmm&,--LkYRd͚5l?z,k׮Iҥ|o?u:Zw6M62|W>~;)1Bk; ?~<|W_ֶvvv_Kff&+ wPqqqpwwڵkxxx(ֆqضm[UT)ߓ'OF-wc򟘧Ȼ9 gϞE̟?n³gϐ|ppp@jj*~cU x=>e<{ KơCcXZZkbZ˗?FժU; a͛7 u?FGzz:+++ᅦ;>|! )SÇF `mmbgI"iڷo/DR… %--MYwU[[[yٳgg@ u\ cǎI)ӧOK.J 6eI"qpp>IQc"";eՒ-""YYY?+Os 6(| O>d=zn˖-$>I7EDD9={6Ə>Jvk.XZZ"11QRJ*DZaT^ ,`ӛ<[oe0>S# u VVVz2e`ŊO: ܿ} cFݏ%''cS_yÆ ɓxֱg̘hӦ -Z2e(mÏ?///ΊzC(44y四cȑz4h۷޽{{O<`ժU sݻyCR}zuڵ w܁Z+&==!!!.]N>>)z*#)) 5k ۷o|[n?t 111R+33۷oǡC#TR~~~hժ ݻ݃#sk׮ƍQC_gϞųgPvmM4544ypbbb`ccZjkIozLLLTN:!nZ| ܺu _a潰U*Uݻ|r6CuVRnL_Uf͚իWcСC/u[ex}_ϟGZZ3ǫz?v9dggk}'K.={6pyϟ?(u311o8qW\˗ѠA@*O>RV\Ӎ;VH5QF~wPZ̙37}Jr}ۘ9"J*rҥ|IĉJw?ʕ˗=X 撕%C Qk۶m=g!CLLL?vy="""A'-[&zaoo/;v٦y-L~n )YYYF;wN9n0]o^߿/zW_IrrtU:蜻[ل d:h>Ctk5 "r1]T*|g:;-87? Z~ 8c5y j-ʕҭ[m$6;MΝ+"vڒn sv7ݷo/_^vǫz?vQ:O 155R+<$;&k֬|t%,,LLLLDVǏȄ ƹQF2aAդI >>>dYf*k{xbYv_YyI}VVV@eȐ!7ȑ#RJ~\ke27778qb]c„ f͚e…2ydWn܂+Vh3tP믥bcc#L"ƾΝ;KxxQu2i$H~+V(M/q5Q;11Q{]$׀-֬Y#>>>:];H,MaʯD???ׯ֧gϞ[ot/,hۖ ˽m1AbRRTREi^ ;H,2.?>vC%}ilߏ>|Xg.^ͧB qs=77o@ݔ<رcѮ];$$$Gҥs.33}`̙FϹ1dsK[,e`ؕ*UYy!iӦx\2uΏ9_XAϽ^zx=zWWWeyk[رcvӧOY=j իWߢk׮ 0m4899ax>ܔ2yqX8q0x`жm[z\r1qDmllS]vMusNO%vgPQزe 6mڤٵk2ВJ?[Pm[I{QU\9p,\q~y gϞ-W(؃l2$&&*4Q\|Έ)))J}~/?G7%dffb…/N:Fj~ժUBժU ޤD:u.7v81׌VR%e>}4޸q` _qg .غukott4qƹswwGdd$bbb;/&M¤I'Nرc"##uʕ+8qT*~~~5kmۆZY+VkYސeˢ^z׷h4SRRPLB]O?k׮8p QJֆWPQ3fޑ5֭[VZ#?m[I{Q޽{cǎ>}:z ''upp@l4?ڕ/_D/KXv-bccuתU  *Xrr2t邳gBVcܹ m6|q4bH IDAT-[7 Mse̙36{l 0 :d)Naۿ(ckvڅ]vɓ'gXnc=007nĉ'p_:0ܰv5jJ_T5m۶E۶m_",, F•+Wp,YǏ$ܹslذ McWw^S{э[oUkV‡~GaϞ=سgnݺӧkZ|o(,Zm~a(r/6/^Ç#)) FR'y]͵v!&&M4)˒n?֬Y^͓z͓cbHo7鰵̙31j(sr)\xQ KKe~aDVV7l0/>9)?]x zΝ;]\\ШQ#qƸ~:&LPde b^IQdT=y$ܹ+j7O6mp4h>į$6h 4˗m6xxxJ>CL1gV$׀?|||@")) QQQ;w.,XE)]ڊ;%^}=(e]P+W7|#GXn]_uk'T%}Yѣѽ{w~1~lӦM=zh9hݺuCPPtHe Tۇ!C ##]tUjVXhժUMBOQNDFF}7o+w~K.U'bʔ):O݌Zjyf4]*[K,AFpslݺ_~iӦ/ec}]rt=5`kk #;;.\ b <~cǎE۶m@||+w2f#F`Æ  ĉѵko`jjF(ɲ/ϯX4m[8܌ Awzzr >I|3q7PJJ  { 2*@LII͛p@ܽ{ZYZXX`ܸq%K(s9M0=qD&덵4.][h_:8yʑf={テ-i(O* :vH[D͑;v޽{011u򜯨 <[l+WЬY3 8r vލ4j.\۷W֧Zƒ%K0p@DFFqСի/ȑ#x,--f͚"b*'ObʕXjjԨuǵkהwx̰rJTZ>' |,HJJ/ wEhh(<&!HMGpuuEQ~}8y$pwwѪU+;v /FTTٳg8t:޽{رc2^6[RaʕDUn۵kcǎaԨQ۷o#44T ¦M5@MIǝ;wn_-Z`ԩ9s&v܉cǎCVnܸÇ+L6 ͛7'|۷?D>}0zhԭ['VX44jzE:{~> VED$>>^YwL%Mhhho>e}iy3g܇C+ORV޽UU&zm@P D J6^rt,"3{2;Q9eec3s:VvLfRKŻ2"$ N r<|ؾ,==R{V\iVc뻯'Nؗ8qVc/??,\xxxTX,;0?cf$::_?dFYhWiSO=e.cc>㰞={)((Px)p}ӧO7߿R7񭉺YfIfڴiu?d픖i5lϚ3jW^Qow֬Y 2n/[`Yn]+ߣ-r˺~~̜9^oqǖ/_3X7˗/ N2կֽ[Mjj*_c5o˖-VQQR]mXeee)00P}ѤIgKRR6oެD999)44TSN$i߾}Z|5e5A3//O6m޽{#ժaÆi„ z KSo]j֭ٳgeԽ{wu]7tSfU\\ M:ƍO?)--MVUAAA?~|Nׄfuedd_o5dȐ\AKn-71 ]wݥf=ulrvv?C񚛛;vѣJNNV=Կ5~e5'*&&FԩƍѣG7#Њ߿~oM\\\kײLW ky7%]9"\O[o)<< w@ k.:uJw'|"If4yZbD@˱a+[<B"E4hBBBTPPo]/ڶmli۶Ip bB" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"D!@HD@\СleСl:uIyy%*((کgOOwԨQ~mˈpMc6і-iZRR.ըE#GjΜFB`߾,?SNNz~ve $V֥Vo9D}g $&H~Xk$7z]꫃5lX'FBbkG' nww#>ŵkO㏓Z׷ɓҪ̙=p$svC&vnwz4K䓻|GR_\ZZҗ_Iz j}UVf]VVo))["Wu; $--ZtP6[N>lsgjT>--_ロsծsEEe:{P~{FIIyJI矏׊˷>tEFObI?_T:tݵysjC$mEUwӬY7jں5]?tQ_;P'NhŊK.=D:mf3M߁N=/mNLcTkL_*?:tpUhh^'~teeǭIKwm²*e,.iǎ s^juS^7hyxT= ʌs/OOxhܸ |JtI-Xdqؖ{KnGmV}ylRRΞ-TV3˔ECXVQHܾ=FL ,+3ڹ&OڤZRbSqCoz`^xaRS+ȷ>:%di:}rOC֜9}*,?y2O=$)6vVˬ_?bI}߿.C}!ooW}mj+$$lFfըGu}YM9gglKerwwر AOkt?_ELӦ(мy{],/60!@]+'D|sFN]_`/߹W\w:}:_^j֥ŵ $PgFeѣ9}}+$<ٴeJ1c+ L={zj ݣڽ,IИ1l¯JO?UᙅݍzJJӗ_ܨk„M>0= eZJ[Bb Yl>{a={v\\*_YXhSFF.]|h e<99Ya$o流^Iw߽M.j#WҡC]].fV jz5lܫqر^;'ׯ vXjuӈNӾ}˽HKͣBI5iR`V \]mϝWnngٌΜ):s=y<{a/rIԱE &LuN)'X16n=@թS߭!x{7e:4#"zӳnzѾUBB>X>#Ք_*I? Qhγڹ$[7YStt֮9fе,?RMvCs)VrE I۷n}ϪVZV׶Z޹Go=b[o+ڿ?Kk$/i_s;_gW B/ǵ~ϲj^^m4cFow_O:1z%iiTܙG/EooWw3_93jueeF-QAA<=ϯ||887B" $q\x -Y-u`3FӦMbiu rss*{9 2De<`KF>Fl6 ,I҈#bŊiӡC4eIݻeZ,_\ .soV^^^-!׸ .(992?o߮Kwъ+j111QǏWAA}YS<=~=zؗE디]xQj*[j;w*>>{޽MUVV //ꔔ>D\G>c9;;WXDZJOV\\f̘՜Q\f Ԯ];}:tZvy_^s;SQQ6lؠ|FǪQ?\c__< c);;[Çל9sܹs?,lJ!܋/K[lUVibN:%I?~ƍwo%QVVV^}Րhٴv l\pppΟ?_ _:1q ]K.?_q]l%:u$)::ZՖuuAGp&5ҵkWuEiii:r}yaao.ŢnM^Z6mR>}` OtgIDATڵkw^]pA:uҰatw}ն6uuIϒ3gh˖-._T4v>TeddH|Fr˖-jӦƎ֭[qFj*$$D3gά6/жm۔!h5:!!!߿=?\oVeٿ`Y>Mu%''jk׮Ѝ7XŋsNIҘ1ck۶m &Hvڥ>L)))Z Ռ3q}~ԶmgZveggK.ȑ#uK}WP@@V9Mີ`#H2ՖlH2o˓$b̌3=ztu|?:u2֭r{OaaaQSow̙ZVc1e{18Fll rXx*?N/6$smUYtH2_6mdƏ_lAA1cX,mXٳ+;|Lzz}DZ<#ۥKsСyI\Cq}.|ԥmWgϚaÆ9ŋfĉ_7n)++?AH$$($n۶^/d\]]Mhhy'.]jk_ռf}Fqvv66mݴi2 0Lpp2QQQFǧ9rJeze$A(Wc3}t뎎cSĺq}՚~ԵmWÇvڙzʬ\ҼKH2NNN&,,H2s裏̻kg_?@H!ƚݻn޼Cb\]]]weRSS+}+aaa^?vٳdMQQQ5ƘYfIfڴi:6͵rwydΝ[eIwީT^~i2{xׯIJJPܹsfرFqww7)))u3p@#|?F5k1TL6m$3sJ)..6#Ft!b_zφJ2NjX>o?g䳠m+mۚxt(y7*~өS;&$i*q0`n{o~G-W^ZztRe˖ŋX,O*޷o_{ӧOkÆ R>k1b͝;w'%%_ȑ#rrrҲe*=cǎZb/j߽+#.422$''Czꩧ*ަMEDDHN8Qvk޼yϞ=ﺬ9㾺ςsM7Ta٨Q'I OϤ+ u qXwĉ۷$l\ۭ3f8\P {I7߬C:۹sg;vԫ}/&&>O;v(==];vԘ1c]Opp]e_TGcasC> j V5$׿i:wܬ @k즐$͙3̛ׯnJg_Yj뇅)!!A'Ol\ۭ޽{;\^̍/3~:R>cO?T+>>^}}Qk峚}uz}AAtEGGאDZcRP㾪ςg :.W{QoI]/ݺu~+ohFNjU ƍqƫ˫w^kXKM~zZJJMMp6>_k{[r׷jWYPcjM3Wī\IIIԭnmpYYgxmڴw###3Wjj엚vԩTZZH}ׯ ~)<<\'NPTTTǖU}4D@AAAڿRRR-W~iٕEOjsKջwo%$$hرzכd=zСC?}5:{OQzz|}}5jԨʒ$ӧ2۶m㾹 $9sڷo/I+Xw^͙3G3SLiǔ;ճgOcQi5m4CSNmD}5(|Uaaa Ok߯w5@pO"j{ァx@ ׸qj֭*((-[V\mnڵ$m޼Yo񆼽+<@.ڴi˗kJHHP5l0r-Ѻu딑azyXh{bccuIҚ5kt1 2DUVթ͞FYxqҌdLYYY2ӦM3+h"ZVլYƜ;wxyyٗϝ;cÇ8ٳ}rqq17|S[``dxj5D׷2kYPդŒ$/;|}F9r$P \@ӦMw^jjذa0a\]]ns>l٢h)((HO>dXъUVVէOM4~IJJ͛('''jԩ$۷O˗/LR{eq p $옸@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@HD!@HD!@H $CJaIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Pittsburgh_page_1.png000066400000000000000000001454721420322575300301260ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwtTeg{# !$P4A]kUTW.veYZPT,XuEz!$^&1 ! s8Lf;w3o3fd)D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B"8@&Uu6{r{TK<=[#kTTd9ꎷ_#ιdVVVgg9:}(?JUU6=N^^Nrpz\XhTEE$I|סb6Kޠ@ $h^TTn}Knsٲ35n\/IJ{ny0'TB$A6]xi׮<{6&7&{;\իqγ*mVd74pmߞۮu5a :tA]&Iz1ӟBN9կC7?76N| 'Ўr"IɥZ*IW_Qo+I:%WWEDx [:zx8(8حmK:@9s2p̜Kήz{;w僚ԘYc&Y˗ǫڤp $=_dV<,Zڽix-Y2&Wkɒzq 056A3͘G<2ddThŊZ&ڂ ¾~)ךQ׍:t7unRn]~%V>GjQfO/ŋjX?N6!DzvѴiA֟{.ZrŬY3>mۖI:8Z($ݺtF{Lf=Z*I!! p8!Lf%%*3RxDW3LfegW*5\NNv q1:A?HO?eJnuN 7՚5)a|aC-öf݆hoi͚m;j6̻[=:h꾠3WEGkcW\RRʬ絤؆r/)TF^kݤի$hM^o{1Zn<-[֤IRnn֭KGݭO?=ɩwo~p99i? m)ܷ/_fUVjzq:>-_AQ>{f c}YggsNoFiV˘=.Yw1 …tT]mRbbn}}AgOOGM~UQQ{gOf)?Jw޹E+V U|| π?\TQQ2mڔem 4yff 锺裻m&Yg˵aCE #տ3 [ K֯Pm%(w^5ž[˻ڤ-[!6ߕe_| 2eooЅܱ#W֥[COW>+.FUee~%Kc\:;aü5n\/9;+1拸Mpnn-x?ھ=Wt5wPxuZ<^XF75Zhi`/=X iB-\G))e5hDyz6?f_V^^=tm>= ]WxoF{YB##}ڲ%GmdVNNnԩne$I{X3fw8_`9xbL7;vwZ5Zx}w Zg۶kw5IzFW\\{fm ؼ9Րؖvm~9y={߫ڵ-3 Q>^Gg|鱝Nb[͖/7oIZ|5HmnBV/T~pH]I֒n%3lBaS3t i O=nyxk/=MN0a $v:5P\drԃ|P]Zf曱6_\Fwwwгώ]K:o,FI))eڰ!S7>8:GG;͙3踮?CÛwnO un=Bnn7 =ؙס]et G5 eNq!8EZc0X&ΨSRR9_|dG|}tq֟7mj}ͬGⷛ]jxzrnq#|xp(kٷ/_W'{;uEunepۄ 67[_}Y9W#Gj̖'Ѫ OSwoQzz$Kwob]{mxBO-Y&E'~)S҂;Uhsm[pTrvipw^p4n\&bo^Scz⵱C];˨~u_tM_j7x?B"p6̧e oRfCdgZ֒JUXg63uGÛ5WgtٽGՕWY~Cήl6ͷ"ku ϞSoy{o{o.吘WծmVwm˵[]J⢋xX;KH^~y.8ʰ#"#[ǹs[- ۓqJUFǚ={@ݰ/RuO{1@HN!Ƿہ63rؙ8?Ѻ5fwjѢں5ՙ= Ny^VVcN8twƖ V#[ܪ=b4kW|oo[ҰUi}/$Pkئ5Ԋ?vvct][TScvm֮MFոq~<9@Gud.zz,]֯hl oʁ.3X[ ߳a5k%$(%LeJI)ѣeY9ۣ]ػMBOMˤ:2:O=סtr[?>' $gko86F%F鴏p;O~:M?;&ޝݻ; p̙}uEsM ҹ^jl Ǫmm{{]:;lY6ɵ !ڢ[RR ס0iT\M&s7;c7Cxuه{O{94g h|ؑ~Pjer=^XqV#׫/RO?_W)¾?W?mYjlnjwYv.4-2vumk eKBO85uD~ǖWmYٕmz~hYkIy0q pkfSVVirssД)7/R_~G=@5w~6ӷ?V'%i8Q[Cb],c:+ۗX$<$qGD[.cm=-=; =Ը6v:e=<4N$%hy-)awBW:zz^|$>iߒO?=b]0 %">ͺ#%2\ZqF&=Zߎk5#Fמ=yʪP-O 1:#GzNY-[,MCnyPON.Ց#%^8/Nkcg\U]mn 4)~j ѣeڳ',sDl`2MV_bE~%Kuܓ\$%LW'kd}}zwpkp}]s׭ ->H_GMY|痔T/˞>=G݆zvj?gvM?ھ=\yD- Rq];:$ɦKsJJu_f}z˗۬SKAHp_­o7lЗ_X袐~2u[O] ݭex 4hRk=88te?Eo&Y=e'R+IQQ-zxEDxiX?K9}7GЕ#KԹ6vu.X۴fۗNUScTSZWW5Ld+s;/X'Xozh}e2U[kVJJσzS5bIL`mFF\RszÚ;whH_EDxuk:8c<Ȝ9bSg4t[qq055fܙ;b;( fL-o׿Ć*=.1A55fiwܸWtW FQXEgX[9 ;wFuBWb.CÆ\ܡpaQ|rDwaY3,̣ǖUd^[hΜ_o٪UmYz6e4pM Huu /ܹ[UP`h[o魷djS3g:;[qy{;i޼HB$i˖]vAe`h0H/:i 7ѣc֡\ yzJ_:dggOm4Rnn5  7 cz:AlDŽ Z|MWSq~e6sN7ɥZ>SQQ˫wW~:._D)F_RedT(;B^^N vSH=͒'}qc.QAA 5}zPIO/R^!!n::޲h֚ljڼ9}m! tk23+fhAӦY=lӷߦ614=\O4!S]zz֭KWZZU^^#'箉4yr@g@H@HD!@HD!@HtNJ\ڮ׌㧲+"[!!n6JN.UttzrĉnU տ711EZ`.IroM/''F}y4gΠF uWRR)'-d}EjNH7*$-+(0Сzݩ*F5>1)!R}yuNP]mRnnBBt 9!'rssPXGѤ!Cm0]sM]]Az&tZFS^SUU)lvkd67~d2ܮm8;w[y,:r[RScnڳ?v[*(0*2[vvN;把d>!箵}oǺmɬjSL{߫U/V{ڂDqS^V IDAT@WU>nͶ_wމסC*(0W/g]pA_͙3P~~έ磔]_Mn#ex`Ə/ﯧگM4cF=8J l3T~7ժUI-dրz䑑ɩd ШGݭA<5Fڹ3O>8f|٦MYZ*Iw竪V^^h޼Hyy9j׮<-_Iҧ+;;Cܽ;O+W*/}b^a nP[hD:T CW_+9w﨨B붷m:pPfYCzkUii-oe2RX3WV/Lf͛]>_Kڵ+_YYst}W7ߌՁ*(0jO=F!pBܙ+ZKBZݻQrt4mo WN֋/Fd>*ʕLVo,PJJxb֮MUP&NWLL֯Ю]yz6c23+}{.k('R..rpg=ի`Pd\]Ueuk^{ml?6jedֿ?zL۷6kkھ=W6;ڤHof޽z#e$&H۷*8M7߼Y))e7hܸ^Ƭ=5fϙھ=W~xt3MZ`~5[2%@ڷ@mԩǁھ=ٮkצ)9TAAZ ;\]wo:EɥZLʤ*99z͛ojxIȑuڰ!S{hժivjӹ]"AzHEF֗kbb{ +ߗ9wﺐX>JT߾n:5PG**P~{5(fdTU~~YgVBBKhkڴok;%ڲ%Gee5kʔmݚ -^OzxK~Vbb/B"۰!S7HЧѢE;\~kb~uFOш]-[=w@z142OMYѺu׿K%IO=OӃxk-M7m?Km;ZJKk\pO[k1Z6UCxkɒj͞׾}5+Tc~Ҙ1~z-S; qӒ%4h,ߡs|y|-QJL,ѫR@I0-Yz(Z[slZG]goh2,Y>䈖.=߷|r7J]֯Qܼ9[Ety{~TT~z;//'eeU5f=_.QII*/ieI0yg5 JҬY2rNMᄀP"I..Zh\uk-kӾL N?>FAA:xP۷6z~MWwޱ̛ic GyMW;|ҽs<~5a3g͍jGʢ=oM] Сz5foΠK'X$984wPIͺvm=3ln ̙!$g4:fՌ.\*}Y+m3{y9jڴޒd=_(} Ƕ3yԘ[qru׫Nĺ8j߾6bMf id0HcZ9$ˎwmYŒ+o wTUU"v6Q.s PV/5 s DIrrS@>%Yrq' L h4Iݛ/A:Fsvϡ7gsS$WW{:;O5:z^t }pԻgMnGʢ=oM],X0,7gС"͘dU`yʕnh[f6 lf&Ay4{|u7~Z]qExԇ:Z84ߧ);R__[jt^/^}?߶\+*jwi#箳_Z9k3+8M&Y99UȨ,9R/MDDx{ꬳ;Tc 0Lf%&˱ήTqq5ѩp\6FmY岷77 I.mԍ$oNK+owϯRyy lvrwڕ2 ١t?5pƍ륳 ĉѲh[SXhTZZ4rdv%Plߞ.M&fKX4Mڶ-Wnn:ܠ&WTT(Z&ش7w~} 骫. Z'[7G%ɦaiJmْr+)T[CU1uuƾ?):6X%%9wo ꭘ"-\GAMI5}z͘oKXEEJިն+gntZjAжjTSc} M!!nmյ$<=%IfWB67yMg37v~ZzVN?g).H %Z*I.zꩱ7WˢoMIM>>Xvv.pر~Ye##]^$%ـ܍uTT4xjY޽]g4_ WVǦZOL, 9RX\\^?,OOG Iu h$3ݰ4JY^^*YQT^uu`֭K׺uZ. .m^vGCd2 -m s{{D@(OOG[gv6*] JOeـ>}\eggPvvE̬4nmE>+O~Dwk]x\eі6.}>ϥ5ڼ9[4lX!6HU5W%&d27ZrNSm_⌰eHƏo<֚u=[]3ꦛĒFǔW١snumro d׿ Wqqm'**P?($|[=O={HK"c&4MEEf'ɰtmr||֜6Ի򪔜\&)u:buViٲ8}E1oo'͘Go5Eh}]{ˢoIsXVL&**jKzcnԛ~5ɪmbKKDF6WGmn6h+Ҕ)kfMr7u7uAҕSSY:['Wtt&Oc~Os%2-3jd#ɩĉ6:N{PQ>8l󘋋~;N/*ߙf$/u%[~K,C](Zmޜ~DcuRoBttz+͵,[lqש[ڤk=d0X&![0aX*Ynn ECM艉)RޮtA]vJM-W||1F>[f͙3sw%<57.Xws\箳}efOIڴ)$-YO! Џ?kٲ8Sf}ߟZ"#egghwV/ѮQrUUկl9bp;&Y6dhÆ Vn 6]O}vD7g뮻KBԯ e25w6oV7ݴY70Pڿ@} Y={||6g/H֏?fb:_zu ~M{Mre5iuJFwwMmrt[5{/LVbbF.޲hV"ƏhV:Gݭ kPUjժdޝqz-ayh0EG;[Y;w飏F]T]mҳםwhƍYzrqqsI{룏,>(ͺiFk`/>\,ds3`ЬYZ:Y߿CwPw%$uh.fhˎ|sTkPoegWhÆL}Uu☼*UVž3]njӇ&ΠɓWիsg C$/HFSEEvӪUIrt.m^vGϷ:|OScc-pUU&-XK꫓t| z)zڼ9[wp)j_ޯ1;;snepߟG٭͛mZ]4tq<3@W]UtiW^imx>M௧{\eў7J$󃕘X;K;:+k޼aI iѢњ?J裻A_J}m ͞=Po 2auIO>9V+W&*)Ԧ6\99ڵ+O6h*҂;ᥕ+ivۼyɩԦMY6^Цr}jUbb p֖-9曣z=z);֯C箳}`u][zxk\}u/ZW\_۷jӦ,ZLw4jo˷zuq-9d<"ht!Y:|X11E7*4M7J՜nEEZ<:ZzkVs,{)&X2KÆ4;jG_^Eڿ@%%Cg,{wJUP`T@"" )lx$'j߾U)$MG5}F[(%L{jʔV[ _/Ҡ;ɬ;tp\\4djSUUkTP`ȑ>0տuV:5 ֚qcKA<5p *.ֆ 6KsG]g6e)%L9ҧn˱E:xHU pQhFmUۚc!j9!t"&D)Y.2 :cV$B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@H'#NA6o;6F$͛]:`]{m8'!dRP`ԁǵ 'cbW#}8'>}\u}]qqvȕ$+"«EFzs"OgKgѫ:TEtف?8' )kĞ֬B掽ڤ:ZWw$KjS$&[|NeeJKk`@;ٸ1S| d2d=5gΠfB)+$ҕR&IrssPD&LGvvqHV8_Va%p993zjuSee:Lc+Qӂ#:XyJKuujU>,Iɥ\pA&Ԙba}QK|}4mZ*__'*@Hy^=F{1ѤCût-u]C|mLLۮ*kwoN{ŻfMjk͍a˖mْs+GG~TII>I3oxuLUixZ3m/S]^ܡmg-(0ꫯR{w>th<=ȏ?f(;R{[kpoUUiDԘ{5sf_aڬ uVXl~:+P.+֚5JI)ΝymZ| 4mڔg/I3KCu zu~}<<c;Gd6KÆ(Ƭ; ҵgiڴnSj֬P{6%%Ste4bD?8Q'iܸƳ6Vk Eo_7۷H93Dk vShfE&Y11ET@;d /kJI)/dI.MjEF[}y7nTvv$+:}ڌ+⋤&ɬEF7;Xqwmq(Irv׃k`WIRFF9 $,y62W3iSu_K]&5c%~ϭ[s,ngеhv'k`/+0Eӧuٱ64|\\]@z{;5sx<Dt~; %YZdn߀n&Yg rmq#GZlnnokC{7u-my1&յ|W 2em_װu2L>n.(9F9$:X@%w,TVvlaZ,looR IDATG+*j$:X$$-_?w}6РQyyUkZU>VDn ann:zvQrr[9vvvwcpb$1jeޝs_=FwܱEynmْkoْ< Aqo+)Պ ڵ+O-W^{7>KRqe .{B!-qҕW$ޝGm rubct}T[ks6ûTYi;YʕzXIL/ 9V'cO"s޽.lqZ>:Rx6ƣR|ȨO?ejƌu6G:p&A?>Xt?ZO"zɚ9 ˒KӁŋKB܆yg&N$UVj;3;L~=O$3w=wsQ[~=1~xIbj͛7OM8p˖-\{1cF4}|" 4蘉ߎ;cjeHÇG~~>1uTx^|'.IdY>:)S0DDDLSk>}z=u] &]_|8-YK,9бc_h4bĉ,N|S2 DDDq= RZ[V;6Dc7I侏:RG1ٲe <t:&Òʼn-IO4 Fcpl6l߾= QfTTT 33SLUW]r9Xz56oތZ 4&M¢E`0裏`4qf^Rw} -?6|N; &)z }vޭvt:B3΀{gu֡YYY6m⊰/2466b8q".B_[innƞ={&Xz5***PYYl <_|1~ݵkVZݻwCSNW\ٌ͛7ǏGIIIe.e:tk׮U?_$}Z222 ' ׿^{M?U?ӨQĐ!CDff[+"׿"B{{{ҎT+7|fʼVx 8Pcǎ:NnI</W/dggڤ9CDD$_|'|xFM ~_GyDx<~iusO{c ˕G~k?d8x`)"jjjޯS=Ƌ-Dffx뭷}w^zuL18<_j׮]4:@iz<5-++[l j8V&ݿ 222:->_}oW_h,?yVN宲2zJ}{KUD%Z-܊s=W^{m{W]]]@XhQP | t:]ҿc-?DDDL?яK2d *dcu_ݱc0 xC._wWmAٸqc|.?-o?8p|۶mw8fz}X{O9/KTV#{.?_披*:Jo~}GP]_I+[nEm8묳BNwgbAEg,#GT/h%7t]v#fNJRo\駟z/6}V'5ΑcR:s"N{!'g}V}+ hK1{l*uwu|,?J]EW:t()#+O?t@}aq)obLׯWSxĠAdɒOx3q뭷'N{ 9.ף9NBf5W4UZ//_ƫ'D[iWQQNs΀R;C]_3)B-KM!"":pt8566b{2 `_90fgg'V\ ;vrFŋ͓#Q߿2PWW!CK.Ep'#===fx߾}hjj qee%>C5\vs rrr0bĈ#NS C~}w3utt'Ż=6ovH~޼y#*6oCx+˛6m}{6m .IA%TY~ff&FYS/efΜ1cD,d9CDDt4a'mV~ʔ)!+Vȑ#6l@WW`ŊXbEu 4(hSN x]ct 7?ov<x'`61sL\z饸czD41Vuz:+: @ގ^xV¾}PYY _}]I'61=p 77ÇOZgܹS]o4^n\~Q#R<Õe?^3>p~.fJ8Z~c8B/\zQ}&-є"""&%tXP%P3zwf Z5Mt~4ņ rJ[ĺun:CYg}v+vzۍ[MrԄ!>9r$Ǝ ov,?͛7BcҤIz Մ N?tP?ʾdrimmU+{ᒽzJMҢ.V.e^z+?!^|Eyh4NP_f*LVR?{\"7cJXTS(˗/-FS,+IGmmmIOpkDM6`0I+WT{Ҕx!Dęg8GS~6z v{QteК\ 6Ls۷fU4 7|0Ȉ 6`Μ9Xh O&GG,g}Yfa֬Yضm|Cۿe%رv=(ʽxJ"î]`X/0`JJJ qUWLJ-~U>uwa,]T߿t"e"ޮvߊ]vx㍰X,1S,9X{eϝc3cEﯰP~Z}Ri;Oꫯ.] ɔ8GS~$+$$O/ȉs΅^Gkk+n喠 6`…Bs G}/7+YTF,++xQ2bgx衇zxl2evi&1V.6Yg+5qDeۯʽQo:b޽5kjjjȑ62ݲeG{a@I.pm>783a0vXvm13TR&O9d+Ա*ILձȱRYY hhhݻ橨… 2W_}w'*6n܈3<g78+?uuu8p 'ODDt`w8(47.2eoɒ%'x~)N;4/Tﯙ1cFШ|Ht|S"??MMM͛7c̙0 صk~ml6f1b믿;v#PWWM67@ff:͆ SO᪫NjyXb0|,XCUc|7;wnDWI,j[VV Dƿܹsf; ,@QQv܉7| [oq5wED\qa۷/~Qٳgn@AAn݊_|v&ɌW_}ӉQFaʔ)x1n8,XYYY/n:^ ^I4>_|&?x$"O(իWN{]tСCcޯ7oF Zٳŷ~+JKK'Lij+++EFF:^c| bܸqFt:q%gxDVV ^}Uy @\xᅚYF&Il+buرO>&M0o裏 bŢ^7.hzXxhjjJw`s o""F'Oʖ-[cϞ=(,,ĨQpgX?ۍ7|_5Cb$׋wy[nEUU1a̟??)***/cZ6l̙OԄG}ٳqļÁM6a0͘6mƌ?'t, >>X',DDDDL_CC0h_ . q'l۶-(2\C=ҧO 0a2ԁcك^x=9њ ANqqq1I$"-?q9砦F>FшK}JUrҤI0 DDDDLH˼ysN "I#sLAV :j?U1s1IX铆iӊoj6\.oil6\"K2MS.0!_w݃. {5xoQ[kE m Xցxٽ8f&b쒈26l;TK}{w -̀QrpC$R*+;տ-?C{ 3f CZo< N/>>N?sBGnij:5A# ["$1I(54g e6 0fL.ɅI`ALTlvhDS_L-x1}zXWMx 7Av}q'1Ih|]+`5#Fdc,iW؏L#{DL(A>CChNQZjm~`ժr;! """""&Fyy;"N7xp&c;.74}a,Agz\2$2N-س-kADDDDDL)+JJY, #s0~?: (,\o9س 459oI2I"qq5#oi4Ginv ^2ADDDDD=Cpd͡CpxYYsI2I"2iS 7BeD&jj"NLPTeDAm::#vuqc`ȐL """""bHgU~=zt+WMP3o^YҗAC v:㈈$R* 3[4׿ =p@_܏@zH֬0:}68""""-={>Am ~X9sŘ12aǎf4594p]cN2–^ЂOԩ݃-[㣏ot<ȉ>OʖADDDDDB0 Ν-PSˋ4L\N* d/$1MHDDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDDgd0!M>F ;(+Əf=nA`I"Xs3pա._lKK ?+W햯L9%aoDZ)Sk#F:x5K~]5pI_Xp,go= ""&xĖv-0>p$Mw-ln]Zu:YϘrLc(y /n6o Ut;zW͛g)*M; =-۶Mv Сpo)[o끒`X?+k}'+)-ƍہ+ہ69b… Br"`7mϜ X:$ uO,J9dB#GR;=GV} 84y>|r݋Gl+37r[ey÷/$Y8DK,LBH<=Fٷ.&̞ oS}uż}.Oﭷ5k-+]$SvʪU@E,/{(D7=YJn``ynI!㑈(ZR _ݑ.6iǍo^!Vi_'nמ7޽ח.WB]+D~J!e&2"3S{"!^{-g:T{>Io2D{l!9ey?,DnnzӅx˺J9[o=^㠔#Q+3kVjx uu6m⢋/)b۶+{j{Bat鄸o~#e,BL._*o#I(x{7khZӟ3?TKvz+Ď9ߤ2^J3Gw"/O{ /+qx$"T] ӪTVF$B|Q6oo9s yIg%&w UYo.Ӯ3B<>}<'%#_7竨 $ +?>(;ro/MȐgfʓ q2yP_ߧžKz.Wa7ؽ;V ]ߧ||rr_>, qM/$@I<Ə+Ɇs$߅׿X=0vlϕpI~{o߅_Z#|o퇻-c!,͚%_++{HSSNuv9 BGǐBρOGh}mwQ&ILKb˖>(0K) u6u:Yo}<$1/f+VXYޣ)?DDL{E"'zuu$,O$'};w 1cFnY3f+*JN{ޖ'd̫t2[FUPFؽ׿de{7חT}55ʕm}Bqrɓ#/sl9E~K/j - T7.qяq+_/+nr@kkFzK9LD1z3f>jRZ{\:^JJ!rW㥸e@+qNuoTSFK&9YX,%K)G;|=䨇rɒ%I'ߵ@WWhu̫$GZ#v0A~}]|\> -.}C/k_DP2QIf ?ª8 46Q"'LܻW7ql^-GSJeNMH9P#dž 7l3 GܷOw^y%J#P%x#=\G#5r,Ɏ9#2|,J2H!"bJK}'T(.uɉgJaqq3̜)wl|ؒH]"g"*֊429.֯]x!G|] ȖP-(bMwO1>c2I\ė$z={uÖ-ϙKV,SdT>{6YoWyhѣ WᗣT#c4Q|E*GBOdkj_泲T~I"E0llKx>l?^>7^-+ 5-{wMg!CgtҭG⹹"x^m|hOplUZ+ ]WO; _i.$q0+Yņzyӂԥ:^~#zzܗ t{ޠA([c u%+J{2y"oR)2Z8I풭=_T9áCSU%*jx::|[Z6n}W_WI2|B7V<يG@CQ^=cr_/cǎSW}뎖:ʕi-˗VX{nt˞=ZEo)gfө$*CxOok>}LG"؝viSnM~<9FXoM{&_DU90w+EDL) pl:Ror*.@&lA}w|y|0<|# 2AIƼKGۼ7b+/J§TPJd رڃ82=|'KOm?eޓexu/e Y-[(MƾM{92doRi)ˀ=w/B%DDxObO6y1n0ȣ?=}&OlO?-+Çˡd> ANׯoEErO>76['?_* G*qs+55+g q<1/L&5'.پ]&6li׿[̖-]٪d"tٲ5]>LNw%r$P$o1cd '5YdESIbil1d+5r,gNM݌z+QwG[('Æ~n֩CO,j~_}oW_qmr/ˋ Sc!7We*஻d[ԩ{d1Ζϖ-YRKنɈGh6HHqIٳ庯x)*Y ˖P8WWAs]z{ a4 ![!jk#O$g.!22BKb!B{ 1v\"QR"߻7ҥӅx]!7XD'p̫xE! {!֯מ"?_{>YkfӞwzly⥗b߇+7N!Fއ\"D}}eet!· /+8ٹ3ˏƊ*,E67VJ6[',UX(/ (Dvn}?<iibpI$m$~Eϝ;}^/w6i;a|{"oOKlsuoR/;r?$;+RY8XuH}zWC'.[жlW`^٪8p쾥5§?WvO۶M^,)IS7O.GlkVyNp믽]Gyj[X(ΛM>ZPX(9gNgr}Wd$[fG-JkF,?_TȮtw۷ ]"=ǭ%;=krۛo>zbݾ}lyFiۺUr ̙Z|r}ύkh<'xsƳo]ԛt$MO:|R/l=>|3Ә$W^ą!Av1^yo'"ё~,Cjnt\ /l}#""8pMOB9јQ^ة^+r,RT'$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDL02#x:F!"""""& ӋN7l67n^j@FiiNV%%%hjjBkkQǃ @YYf3$nG^^rss8l6>|N: N^ێ455rb_~hDy@D$Ņ.w^N7:;HK3 7 Yprxt`0d2zrz6E3+%Ǫ566ӧ cF ttt@ iiiQ"嶭 `2PZZ ~|x@Ց&ՊCi.c0P\\LJY}}f|z=JJJ ͆BfPYY >|f9PTqknnFcc`0V0I=nbG{Ʉ+myl^N<;(((^ÇʂNCqqqi#Ѐa"Ǒzj ZDd-*CDDbKb  hԡ8 z6FFP_o(vvc]v;z둙 ө^B}t@FF jcXBDt:QYYq˅͕_umm-^/aZrեxޠ:Dk̔ϜtztvvW0popB#-- n[R 7|SSڠ`6*W+0p8AMM ʂZ+Ԅ@i3 BmmmJ677СC^塪 NKqOV+Vze[6##FQ]oZZVkVXʫFMMڂx<ttttImmJw] Ʉ\쵷Nby؈ddd ###} 555p8CZZ\.zبfee!##^---p:Bkkf9 Y2eIb/e{Ždm^CKmm.Ѕb+ͨ˃Oza6QVVRxP[[.:tj,\.\.XVőx ed2o߾C~~>*++ѡ^£t;,-- 8z^Ԩ]:::Z^I$nO>lf>|XTl|S[rcֆlsB>|ӧO=lY,t:Q]] ˅z LVJp84xFCiX$bǒd :Z,jxg^zHfe$R\otܚ(p=\ȷRyMKK )dlKںBr&}'IԪ(_:1 U#/DS?yjJXiE_9Bv ݉]4)TWւ'qĩrPUv]3YF߾}cn5I E%dd u(&r{x)"TР]!3X paHO|].\K9S:.lK &!ljGs$cXnPP;RW_%n[}`{wW%URWi^ ^9KNdM&yƩ'rP5;;x<(//GFFaZSH)IbFFF/xsct:jHx, DJOEE{[MU״dVW9?ƚ$FB}pDcKeԪEJ#Uu(Hg4ENP[qMEXԓz[MEhZQRRCdPTKH5IԅZx9$\2DDL)"iss4V<G%Z,-" ]7P:$t2)w2x$bV*\|ץƳRh.+;;jե Ԅf'vDP+4P]4)9 岷!"bHQ3Ut#H]]n8vG =_4Lp:HOOkD(-1*V~H-)Z-QG2&y_X]11u(dHˎTN jl7NrMuR?22PCCVk1˥N[d.ﭞ*=]ākRb\3 -xlhltD $('H%k !zE<\kfS-ʎ [IPZ3M&zHŤKvD%!g*Hۤ_]r8qwS O%bڊIKSov4o6 6-(Q-2h "B2ډ+#m :) 5U瀞(G DJFdgF]-VGVk'JpZAUUjjjvW,< ƪ)dAL.rbr4b}=*"Tҥ<``"jh{%mmm!׫<| PRR&dZHKKE{{zROJىNERPPvjlff&, \.:::Ԋbjzz:l6ڊ4n> h1$EZn*`0ȴi2777V3btHOOl@WWXOOOGvv6`P^^t l68t:jf x^tuu f3 ؈NuFv= A>ee 8%|6ۭ>l6]V[ѿ0##8x::TG4L۷o"&rZ<瀞(!ۭ"ɑ~I"E`2鑓cBk[(Oz.tjZׯrԓQTTy433S=Y:t!ꊣhDYYjkkv7 (--Ekk+G]MҐ:NSv̘DHR/#QڠXe- x=DTrH""NΏQtu^٬Gqa}!+& & aHwvv-&).N3Ţsp(..NB$J9ToL"I4fڗeMMMZ߿z]_YnIznU[)#n wtt#FdddD}qB)11ͰZaH'ZӱPn{U˛`lV[ǚttt ''q?HQ2x%rRTx^JɁEŀByvc}O"%zA$0I$ fDDt%u@A&Z&暡c~-H3A$cVZ刈I"EmBFmm.tv5OӍ10R$ "jw|"""&GA<3̰=p:x<00#.r=eY^9'"&.$""&G4CRwHb<:zv&:B<,KJ{IDD@]I"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""ޝGUL2LHH T\@ZqZT**ZkEOcڪWW֥qQ[*H*HXB6Yf?M%3,y^y23w=ܹ{ϹD!@H <`p|E""CvMMN]y*(pfwvtt%Ϗ7Nv]v$tRC\4̸+I?~~,JVy<:eB!ٳ]ig]10|>ZZZ e4aqD"8|xaG`0vJKURF 2a ۷O(qX{0T4Yp BF9)lU噿'@+rٳ:dkX!/5@@$ϴVeKyy%v^E߿" 5bĈ&//8axgKKUQQVo={<߿?f=T\\l{[[:::bN&NVijj구exz~IRmml]C BYdu߳cDi]7"Ջ2k$} }ݝpdmf1BUUUY?r-sojkkki1ͤjĉvUTTL 1Ǜvy<7)CJr2oWUUQCaQ9vyr:jl%Y8Ovv'۷O~_rݲh766#9ٳGhTv]r\ UԦ&a= T{{TTTw" j ٻF٩P(dm{Ir^l ڻwk`FE"uuu) պL񨩩Ip8TTT$ө@ `ݻW555VoEQQr%hYzjhhH }I7Wu Рh4*ۭBB!y^auvv*&倘߈lT0Tggg=XF׶͐SPP`xrng:G.%}N:]^^np:} gXw^@PHFjnnz^KJJTTTh4vAy^yt\lK( rߥk%ڽ{f;DwNeW8{~ie0Kϓ՞t̫ŒT]]sPuuv{n(((uPw$@d5nܸGv]#G;l*//OD?xn1t:i!phر1=#FHw3 |RoS_ësYWeee1n*xC"߈lP(3dgsVv{3%{_G.e0p*++7 a.+vգʳ1`kH!8pY)Z@Ht›$TPP0`CO9G:p?d+=כ~P^ZZcW6f `>'S\\l-ks2d4PuhvXRyK6#0xu uHG>:a;5WcAG.e0pJt_݉nXůOE"CCI*+s0p(H%:A6%='ɮ&1f臮.E"l'H=KH~#GI BUWWkD" f *..6.l\N_PRuww[CN21'=Iuh`ꪯz(JZ溚* )X=ff;ũN ?r- cыn7˳ӨQ.ߟ<(lg%f,B˕)lNahyyy)]6g(Ld!<,..N^5Ekk4z!9B=Ωl-TTTd uuuiĈFVK~*܆oDuu:fu\ VH7Xd NZPP`0hMMޖc9æT/||ª*ȑN55,V`0(۝̑fN W9e}*  IDAT|նmN0.UZZj`dZ۷O9 6??ߚ07#[ӳpcdNi 90lU_=C7?juuuoAX\#Gʤg1Uܖc"-3qlBd@DPT.#iOa29prP;߯0 v>Z|Pbf40a $#ڎ#`p8d2f:{>q*$ _qoD՜Լo0:0HqC-2XxB! 3 ].jj*-OZ%SXveb^`hT{޽{~El6[3a=,{CjRb fxz g4To.=alkk-aMoξΰ\UkkkPf~_*=麚Ag36ӕs-n* $N{g9Q;0i(Mv۰ I޽{cDQk@H$={:H>Áy2ƜMsuiitbk߾} 9}tVD"kkker!ZZZdҚ1uxb§YfY&z @Fg]e85Uf{ \(fk[W6'ǪfܹS;w$ I#F䫹9j$b SEK!E MxIۇߍ6MVફSaa Fi*(FRgguuX.KPȺ˜r e#GU8t:!flIIɀká*544( jΝrr:֣ ðC V[[[gvT|z}>l6HLN=r|jjjQAApFJy\Fw]ܫN2٩`0]vDC`P]]] BM8VKK m>Jp۟}v l`C}F 56/|Nl6ᨂhg,6UU$:!k]W~~u:qqfO>Q8VUUUVm6yzvh4j!tvâD~EQ9v'mc3 Ca0{aj.+׺2C9|boDuΝ *++wh B}oְOsY3 e;des[W6vB! j>ML+*\*(pP O>$yY}vy䑃&hΝQҶP~]Յr8aiv=|=8pF: L8WTZ|1eh\LB@ ʶH۝<yE""CvMMN]sx^Vt\Y'm!I٤G˕ZR4UQQF5l',95B" $B" $B" $G hmv56UZsL>Q' $ۃzmzz8OfѵcY{L?3R͘1C+cR0ǣիWkʔ)￯ /P甆bnΝ;ugK֬Y#Pب:y<þ,>#J&L6DZ |^GiɒS)LBP9aꮻs賏 &B|Xs1,7 ʕ+xbdd5$_.O 84Uk97GF8c֦Z-X 2CCC?S7orOUaz`FtG[=O6SK/TY[ޞ={tuNӄ ORH=`.=ǩ'wMUUji (}/k͜9zlk{Nɓh"z_{{I:0nVvZIg!;vҞp8˗kӦMO4bj8qbViztjU\\>H;vPmm9昌cjiiQYYYVֹ^K.jvuu7ߔ$s9r:V[n[o[N:#4=umjj˵aRz͛#Ff9#uqǩUO<6n(ϧ'K.6Mgϖaz/jҤIނ^uIygի֦c.駟n} /_~YMMM̙3ueft ?_]MMMɓuWt@+I_?IvREEL*oMOVXO>D:u,X~mӇ~zJ} u)h*))7kڴiQ-[T__vW^Q~~f͚vv,K6iuڹsƌN:Iz'yfutthԩ袋tGs -kL|V0 N/}iDƍ3$ .LFC!X~qeY󯺺شiSϮ[z]~]]m۶żn:cĉq3??wۯrعsqy]~mmk.K.1$h'?NK/4:3$áyiƌx}o߮{Ww~Z.Rzկ~?P~a}_a}Wwwu%OϪQ]w|>no 4gW^ݻWW\qE߫JO?$i={oj͚53 Xwy$NܹsURR5kh͚5;wn=V@#={k:u9眘mF;ɤ~9 f;;#I_~[5rHmܸQ˖-nY($"ev܃x/{tuՓ8}ƽc{%/cz}Ϟ=YI; IFyyQWWsɆ$ _BF=SN|z]QRR'e0{}G.zsU@7$-y= v!ɘ;wnJ=kccՃ8m4>C㨣2$ƍ3@=fȣ>vsϵꫯ6p:_n$7nkڿޘuD"Ɖ'hH2?xc>l̚5صk׀kٌ;?ܹk_.?g'՞Ħ&v+"}ݽ!^Ob6ПOya̛7ϐd,^8Wm/֯?Ƕn}y\dp F8g}z+_ 'q'059-)ۦ4_+WJc̓vZG+_۳}%Igcrt-h޼yI{w}6mڤR^Z'Oyˌ3SyU]թHeeeq똟G}[GUWWl6q;;87t` g}6rkuUW#Fh}Y]ĉOǬ[/^sgZM2EcmܹezGU[[sFOdr-1~u?e˖:]s5ZhQeL^W~s-ܢ3< @#`6I6~.mNb Iso~9gI EH̱q4wn}54\:d0}ȑ#%6G]gyFK,Ik]]]%IbN\LӦM)rX\ű6uTV&jT}sKsqg-;a<)|+p>;WWWK:문ӌ3&׬Y#I?p1co xH{U]]m0aztM*,,|;i /`}OզSNsqlvNHlI iI6/~'1ZZ}ƭn^أUkR#@ "1hۘhD_%KE̙ ꬳ˗U.K\sMaBb"ϧ۷kӦMZj?|]͓O>9鲧M[O>I{JJJ>T:)x덙 J4+zOu"kΪcǎofmMsaݝҺGQIR{N:> d>f{64E;/Lfg:*B"Rt&u8ldmI{vM!\YY9wYgw鶴M/^z%I1K.DW_}uxe̙3GF% gkҚZJh4{V\i;!8SuQG 0\RO=z-rR&j.IH0aB{{]]N8^#}c:l?sz|gg瀷tzN0A?RZ={xG$|_j٨ln'zQ.mNqFIҗ5XD$QQQ]_YI:WޔN{Fdusc0Ei޼yZrV\5k?]wݥO/zݿs8'۲eufKd֭zG +VHzf ɐú3Xkԩ:u'k۶mַu57= BYo=2CEO.kȴH$"@k*=`&_&ۏ.dGl\LmNey^I҉'1p)SiL6RW]5Q.]-^Xg}vJXaX{LRj8+$}Oyy{챜_ϥlօ$Noo}kmm{=ڕ|2)s8\&śCٓ5p}Gk֭5k.;m"&ر#iU=M0Ayyy ڵkWߓ^#v25"=s8cL\c>:k?BvM\sX_ꁓh֬ĽUg1zXO^xH@]Vk׮վ}ݐv}S=ܣ_ B } BdWx k8~5Wu!I+Vtޙq^ӟu5O}ݤmxÆ .}zZO,Wu!II&%|믿u=S29س>kce?]sOoiizf͚5̙3%IVJxo^{{̙0ltq_W KTɏ~̡K6 e.#v2&ӳ'57!5!SPЂvNcs;6E=F=ky?y+LK,KZj$,?W_Zss̙>ck}U]/׭ު+WZu]hF!IZ`A,6lQP[[MV^իW/ֺuz yvZٳG'O\I&)7_WIҕW^뙆}-[L:4o

Y7nԉ'þm./kٲe5c -\PeeeO>ԩSi&ٳG?5|M2%ZQQ7ZpnݪO>Y{=Xm޼Y|>\.}ь6zhy<}c=3gj޽Zfu"=bR~~{1}s֭[u 'SO)"ǣ+VI6M?Mjٺ#hڵ4i>l3Fo6n(ۭ38{{g>[oU?ONй瞫R]Vz IDAT7nԕW^~ZHz@G|K/{WeeeCsNRlc0i"ׯW4ٳ/kUVVj˖-zD4a r:Q__o p `{ϾhL|V0 N+vd=ǍgH2.\}$Ce˖ {֬Y뵝;w'O^wW^ר6$۶mY<`92Nqu>/_f1vؘe/qk6ke^VVw̐ds=}~˖-VY466H]'?1Ng2+**e˖Fii/6 0mf0***~6}n3$~j**fø曍H$uuu}~6m!ɸ;\xQmmm7nSOe3mlaF^^!XzukPȸ ի2ITf,Y(((Y_n477ǭT@#6 x'c>JgI~= v;箻2$'tw^㎋Y7f\yFSSSe,Z(u’%4,gJԉ- 6ב5ҳimmK/ 6PSLѼyTXXqƩ^>կf˵~a=ibz饗nkʔ)袋zp8tZCszay<UTTSOys=~.~z7ѡ?OڼyjkkuE v j*[jmmոq4i$]pV/PiضmV\;v(//O'O֥^~-^k֬;#ۭs3T]]}eL?+hժU wk'Hek;/386l _] .W_P(z$&4={6iW}}$f@H&L(}WEEiKK5gNo~4eJ97Bp8\wK_ uV͙3G֭UGGx ͚5Kk׮nN!M>f7DSԩ#um}ڿ߯֠ʜ5ʥ5r N8=Zp^{5k<򗿴-wޑvMcǺ5v"Ms9@Gϟ3g;C:a謳׾5}2x4m4]p0q =B" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@HD!>33IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Rochester_page_0.png000066400000000000000000001270151420322575300277210ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxTeLz'B:Dbem{]u] ZXreW׾ȵ-@i {8'L$<C3ms~=1c[$3E $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"E $B" $B" $B" $B" $B" $B"+RHLB1$B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!@HD!@HD!@H7Eд/^r bctT z nϾ~sn $B" $B" $B" $B"xSj|}͊ssVN쭐IRqqJJj(v VX,-)#Oaa^qq*T[k27M7~ɩTuug&"O~~;\YY*Ը ᫀ/IRAAkc+LRlsZUA@ӆ+9oy6oΕ$]qE?%I/WBoK= $h:=矟`nY|K/]#GJ;Alߞgĉ2*1@tS?[ ̚Ib(,:UGݡ 3s-XE lі-y6cB"x }Mw+X옶nr&DS(A~6UBBBBQK[glRAS]tx+dq2$٤}CJn*fI={+!!PUUu:~mX,=N oۇwջw"#}U^^ ?߅(!!P=zX?Gffrr*v(Y:y;/vdu-[4rd$gO[uckyyY ^^&?WرRU{Ictt=I[(?2egWt83p`sƍ[΢/<_ӪkmzՍ7񊈰cQQ>{{A]~y_zEvh"qF͟AB%IO-.[+55Z>>jG[UXXʪֽ$]vY} mߞHN׍7ԸqQlz*-|}ͺD]|q tήaC,9 ܹr^pAo͝C~wo^ye&C''nζ /LEYW2~gSuW:Oߙ mkSc%I_kf=%$JxGUit̓4`}}wkM7 %$*,nSvvic)IzڼT;KtGiҩ~$ٙykҩ:묞>OLF׈ VrrƗ_L&wޙɓcdK3p^_˖MSrrÿuD۶u:~r=c^{,uVFQ{uGSuabb[gAD[=F'G5M{ڮYO?=N 4 4xp|rnm珉w{_p6,c=߻E>v?T;Uzۇ6{tt{t&mLcj߾zq1#N>zͳu7<[gFwAAFރIdd]zi&!azQzqM x:$o$oo)h߾"EEi֬x ؑ]h&=:R<3Ҫ֭yڳ)LII^zqS_xo5,EEՍX]׿_sNN6Se Сa8z]TP{l.dk],iZd||JJ u ?ܑoko\\\ի3th4rdF$EDOռyktgFjCqc+ॄ Mc /{il}qE8|DkdZ6-8gqe_p8P??)I>=N^^֠'3Z>>f_xqk뱵.MUmE}v¸>rܸ(͚oH֩S4(TZvȗ&MљgFV]ctt=SO3]ڼ9WJJ ;7yr.{ء5~|$魷w9no(IJJ Q>Av#/4;^fI81ZVe>\78o$I˓lvo3[]3n\{lBC} Rt k=Pɺpmʚ$=N~z^` 8h!5mwΜ^2%gwkv쳻C#5eJIpY\\vOƎlq}[dׯLSCSm1mZ*u[~QmڔN QHN,]w:tqP pFv=mltNYO ǘPUUi-KeRR"8kVq S@ V8N |Ȑ/bcG>ss+uM}IҮ]ƵF mJ^ڷH7ܰV~/#wUh$v%ilPT9oСCF??i 4W?qS 4dm~#^𳥥l]xao&cGv'8^ -[jo?>Z񁒬Szz[pʾimבK.I?uhҩz>ضpV-/N6;_6n͹Mn[QQkwkk~*+o4(ѵ n`׮oQAUUu2G^зozhKȑF+u;h||IoߞŋiCLϿPߦ928xdYƾ!FEzLxZqHkv'L2'[ħpmU/V8t=ݎW,(lhUXO]1[G/>TO?=aw+ SON@7qs`1"댊햠?}w&:]3jϝ$=X=HMt {%σ[k){]weYcDꡇFiGؑgMs*+k^a}SnSTPP޽QW\Ze*#pS-lkccuT=5N;vԏ $vw2Еp S΅i.vbv;΢?yTy{[3'As$N;wk=Nt=[a22ZwZrr*ies7Y0g[%-ݐueh;wOmzT]altf JKkN)otcVg'Dd7СvMEM9jJKGs^n۠}5eJ9'FÆxt믙3tiZY?SG)$G~j->vAAfm<:SBB^}F_+{wK^{~rv[WpuglͦVMo8xw2@H IvG|-rۗ~{oЛoP`Fиq:5N ֕.C#5oK.7R=[<,ID} mܘq%%ޚn{lKKkd!?ǚ,c{ڮmnkN:}.1=""|=μLӿU{j0VuD3p F {}ghݺ,=n]|z k3W--.LpֆD[׻:>xu9܄ϢQ"]]ށƙD*/%__Mj1פI14)E.:[K/K/ٳ[ܾSM;zTk;~ǎ|cۤs9>$G]Vի3<6ᔭL280TG9%U ]kΎA4'&:]u _&xohwچZD{&iqDO?=_ߑ{Ϛ3aSءtuRK{裏?_vY_ l6{ TU=3>$ pU3\طH[?}0UcJIоζۉΎA`is /Lum҂)nϜ9sge~zdZD⋓ڰ!q~≱4(TfI^^&%&g-m\]; ;jszstI7ظ\||~^|qccG+zGz7<ǭKuM`M;6R/j7߫l׭˩Zjv%gO*+G##cc 6i0=8=P;U]m=sO3pFDk'lwnv ev?ѧO|rz=zꪫ嗭LO/-5qb|lyfO{ˤCu#b@U贃2^`V *I4:,G,փnȩSz5޺3t]g;B˫ԃv5!?XOוWkqZsFD׬[n[n:MZKs{f{_Uzݺᒤh}4TF AF0Xc~^Ƣo=I۶Gɲ6׿2MJHcd=ȲeǔWiLk nJJW_=SG*([7֥ܰ 5FWA})'RUU+Wy[_~)Y3'ACxX]?act$ /R7߼^˖; l;jiSUU>o\ns-h{o wkk-Z⸮n#/ի{Wo\h__XVV߭?y11~+'>qQv6ղetݛa@?jѣ~ PwWg0 Dqq21[,z-U3"A-XgX۴x!zzIKэ7nh& W7iΜ/;F'XӧjpEFVG}I~愇j8*bcTVVC5o>Xs{٨萾શ;uj~˄>_+;톟 :묞JL Rx+woV8Lү_; UD^/}5hPUAͫoMn Zk֢o^Sh2I/0A瞛h@=H{n$/z8H<[#GF(>>P~z衑a:zT80Daa+Z,O%NL"#U㏏hذ;6. UOfūW@@oTRC6lnN,ӛor!B" $B" $B" $B"ĸqQZl-p`l{n{Cm $ bGV=|%&u:io9u=6F˖MWn.99\/4Q+W5w:;q<={  ٤3ό֛ohvi(I2%V˖kv۳@Ixl>11H>˫ɓev3M㼽1G,G "#`N/ʝuM;kq&Fqq-$ CMфjȐ0c#=쭤$-[T[k1V[k;7֯D8('gQή++wQg}#͘/??/UV귿ݠɓ?SUUmC+gѭh0yiȐ0Yh d2IUUu5+0[ڴ)Ѷ#FG7n݅0aʉ:Ir(![L"A.%%m&N$mؐ#GG*>$GÇd=PWxjK)͕wϞ5+^KZ.Kii9XZWVș2rW{jKs^qUy5iRƎTdrr*u`>JKk V~~)lm),̺yi?Xj111Hzԩr(4Gs$hȐ0uxv.lOtDncm)&z&1*Ow{r[=c#rf0 D3gƫw UWή0R8Q֙0&̙󥲲*(.Rrr*5kv/X|0Et%/I/PNNνlճo]wKJ #I5 UN7^)J3f|n|LI5|k3=&7R/j5u M.`H}tTmorƏ_{.h ~:xU響rrZ*縸-_>]~ Rty Mru-\rIyP6>^_Ekժ&OJ/٫JKk[5wnFK/7:ڙ3l_.k?x1!v elۖ۬Vș2rW{jq^Z &ΖWrrydz lM>.}Qw  zԩrW|tcwu>o^wCUWg̙_g!Z֭ҢExQeˎiѢ4ym ֍7lmmMŶ~G9ӎCfIw=L_޷Q+/OTbbn[g]CLLVNA43v6nQrr""Իw?o;xT-UffqmĉvG-m; 6gÆh%$j߾"mܘ4 ڰ![4)FӦ)2O ү~M?5vv*ڵY**VTNUbb.$Q]vY}]֯ViiRS_Rt-ݦn뵥$w^tH?KqEJY ώQx{lӴvԬYrmؐJDh̘H-Z4ZniW_Ow5Lth֮RNNԩJIЋ/NUW}6y:g5}̕A Ӌ/NT@j:tX :XEFw=,IZ&K\[qqJH9 0d]8vl$i΂bCK祴mߞhM=umւ[|t{}{,9GKfo--ھٞmX0;ʕG袋%I6':ގ?)E|uB"ru :dHM͹81Zg.$zĕ+OhtmݚۙoӑZsFl܏oczmvSpkgwVGiΜ^ZXi}ڵYZ6K'+))D{fkoݶwpwqQF@\.K޻Yee5C\::S@w5vm34\l|}u0!LUbϦv$V=W\\kT\\ŋ_YScW_9 yϞB/vKu7YvLeMv;|t "O[==D>CzsΉ1v뭃%Y6{F,[vL˗sK۾5FӖF׉\yB7[zk9SF՞\\RS:kj#+IUӟF^"mݚg74ztO$iȐ0S6,\鋶3gm {h\u};O8u몱™(W': {6Dx>ǝQ!PUUuڱ#X60%źcSWg0 ֐櫡C춗͛s.@^$mM-ԩ+5ufԽ<q_F9L,ʕ'5|n!Z.[%?0ǨQwMoeԂI`;'/kkysS2>`[tcBcAɩ4HUVqZfsCXՖ[%%5Fh8Ý}ԭ+ g\mқ]G=]0RZZƌT~! QQQ1t׮B*Vffbbc"# [s=b{4ېRBB ĉњ1#﫬ٿc+wmt{8ݷH}W/hc;}%*/5ζJ.lv϶;Sk:==?$&;G=C||kd=|5p`+RTZSMr5ujƎ4vm#u$8\vyTWh7Lݺbp;>,Wmۚ?uP[g $L&Ԅ 8ݺuٺDyfO?b~~˟sʔX͞EGmsAAe֕;_A%ZԩrO,keJJru2>jYYeԙU}̕3;yr&Onydi2j(Wdٺ5Ϙu1ujƌC__1>gɓ-_6Z}ڍ3Au몱™(W3 $l|bJJv7TH\>K_{($ \yˤGSc>|XS޽?3CWG[-MwMnFW]̛:U/m-lOzcvgOa~v֬WQZ1n&6!CB!CkVUU6߾[W7:rwiwgn]5V8w]̭oz͍+xmĉJIо}E2S&9˺ҟmzɦM w>%>48QABx mz\ NkنȦWEɩTEEZ|ߝYF]^r;vT}+--G>͏_Gɸ*V^^""4jTq=^ZZN׈9Mix鎮{Omێ+ܥY}[gp -QazE6nm_II9gm;Jn4Pg멧v59M;g4$vV E .qB}}mSs;.4xpX\xaVwޙ)e+1۵_:.99\Ӧ-e++.&OQ~!*+v6q̘HcњL5@o+*Wh%Kwսug# wή0;oi~Ǝ̙55v+ٳ㍝=w-ZjO)ivusf; 0vlwsΉ5v lKҖ-o;&\ӿ[n'??Xtg+2ΔQW׮Ƕolj&+$G??A?>Noee1|`LҶmv+ڮ>6v=bfss#,W\aumݙȱ],iq4^{[g@H<؞=Y//S!q,m*-=&Lnt6׬;)SSlsv)ˏ6.xC{GHNEw=lgg9s|݆g _ϝ嶺֢@o-Z4gDg~TY9SFU|ϞVɓe23{iѢ VyyV:9lg gc;ַoM:xXĥ=ը)0[uuӞ֛ԭcx}o{|uE:IDUWgѦMTS1ݳPU {uVOI*.;Xq\3gƫ_`'U\\~5yrz Ծ}E4(T={[髯N.[ΔsAA}tyd ;LRZZ)7.R~~^Ӄn;aC-; .ѣ#tTmڔJkȐ0UTj˖8G?J [.K~z©r:=X`VD?sg}4mZ""dH l1PC[[؜>رR6A Ce{U*8Gw=L瞛1c"f{?Hn9SMg궽cٺ5OVehfW7:[x~qcES[֯6J7$~]fp_y*(r{H\&K/G74Hwjt{e˦)([74Haaz]n->;!EG_3'Cی /U^^/=|5}zݎlQB$͟E>;^(55n>;Gٮe˦5_t뭃(<.)+gʨ]֭ٓy?W@i75+BmB"t(٬~s ￯rh?~\+W4lV]],YbHmF!qܹ]s3U+=mz34}tkŒX͘1C/ֿo)00N>EjlSKzb-[LtUWꫯ$3 KfΜ)1 }7I&V^^$I1119rdۖhڵS׷6iiiZt:$hܹq,233K6mRAA.Haaav߿_ұc$INʕ+~z IDAT#}q]k1Bג%KtW:*++|rZJuW+44::t|UVJqqqJNNn={hݺuڳg޽{.m_UUUVIfϞ-Iڰa>C=zTQQQ1b͛}ڶdҬYdX{iŊ>>f\yڬ[Βlٽ+ƶuuu3gZ$YFal||E˲~z[͛g1LMd|͍3##ئrm5xˎ;=ֶ-y2eJf{?3eIn$77WӧO׶m۔UV)))7o<{D͚5K111ZvV^+R=zhs꫺[%I={Թ瞫!Ch۶mZbukٲe"2;_ԠAyyy W_}%Ik_qzU]]?P7|s?ۦM4sL*88X^zw1]_Y&DB"} AR [H[hR>Q{>-ՒUKII$kTd%-fL$^cs=K3qHHH/{x)Ə\x">3̙3GݻwUVǛ>}:-[Dagg[naǎŏ?&M(y?,[ ={DnPbE۷!!!y&~m\x믿Fpp0,,,ШQ#xyyQf""D"">I455{uرR b:u$11HO=9q~Ϟ=[r+i$1%%Ey)7n~eqvvRfM'k#F2p@1((Hy└-@|||$177W7nEBBΟ?c˖-qqqѻĤ2DD _ƍq|||?|z{{{ٹuťKuЧo5Qc!!!ٳ|rwYu}=z <<tB 6q<]Q~}۱e&""DD/ر#-Zݻ:u*V^m󯉗g3,tF;ɓ'_<6lИm =%յT*-[ ̟رC дiSYfĉ <Uʕ+vc$TRRR MSZ5B Ą pBY1͸zj'%%sڵkS4ꡦG{۷R 111aÐFʕ+Xp!ooo˖-SI&aZO'LD*5DD0}Obcc kccTgΜ9ѣG#++ˠsGJt/^,G^Ɛggg+WNB lxeQ'Qk >Ƕm۔2}8p>} //Æ CFF~o.\shffQlie&"bHDD*оKg+V{VVV111/ >v,Ywڠ}EDD̙3:/t=A3āp M?`1u-^ZZu`266ӦM,^UVŲe`kk+WO>@̧jFå? OA"HDpر"O%oy,[paOh һwo0o<%*RSSѫW/\-((k׮5h߁Qgرc<{ػwozzBӷm5jlڴIaA V1p@<|VVVJ[`Ȑ!HOOG^ Zjo-"8p@IcFF>C*7LD*Q1L:UY8={jm۶ʶ]ʷ~+ϗN: ׯ899i-."d :kkk of[\Ddذa6_5k&B ҵkWҋbbbb"Vz->}C,--+WN=wxO<+++ }-r'*up}})"믿Jr/_^:v(}3FT"Do߮5kR7n:Ν; iذaaaye2aWM*ifΜ).\ӧOsss 4JHJJREGG=Y2Q$CAbrrL;h IOOU$)[nAAbvvbjjurA裏 EDBBBAgԫWO"##u3$H\~-[9߉'|Æ +R(",Ͽj֬)6lPJ zjqU%}:*W3]DD> 8q"СCL0F9PDEEaƌ׵EHH\ٳgcVQ;v m۶a51ñd/_*[JJ N<-ZFfff񰷷ӧQn]igϞYf/_QFovobbbШQ#yȑ駟cXYY[ڳo߾ Cvv6/@DDeM Կ\~]yEEE᧟~BrJte:y$@U=hc̘1{/6mڤw͛7q1Rmd ǏEp)4vԨQ͚5?w]v!"";vded?~ hڴij GAJJ V}۶mx{{g%Y DD ^^666?>|||0{l ɓŋ>}GO~ԯ_mڴ͛ 333x{{cС07׼|FTTooo <J )) #GĎ;vZ;:uBhh(wFJJ ƌG"!!FBhh(ߏm۶5jLMM#Gݻx7k8e?xrH޽{pqqرczϷܹGAbb"ХKtAپo>eBFFaccS~ [nŸq㴶o޼hܸ (mEFF"<<qqqpvvرcѠAEIھ$e@xx8&n۶ G[ЬY3[hذF$XW\J;ƌ;;;^""*~MH```\\\\r7w\155J% 6  } % 0@5k&vJZ޽{%Q5j$@Zj%J@ZرCLLLO"" +VRbEqppȈ#^>cXnZ9R &VVVҺukһwo(jG!xbQT%7bii)>2h  *J4h fff@&O=zILLԻYf J۶mܸqCLLLdΜ92b 111nÂ|WR\9'''.]dp[KZ6177W.WHݖֲc%޽{ER ^ԪUKH*U֭[ .]믿DDd߾}@z%""#8p9sh&&&,Sʕ-"".]'''T\6h@ٳJޠ  ӧOŌHN\CDTJj֬ z*`̙pppڵkakk իQvm|ϏPVZubx!|SSSeoq|Obܸq7nU33"端rnݺ T^]9n>}ׯ_W٘>}:Fsss$''̓=@n:c޼y%nl٢-[WWWۆ̚5 M4b̘1011ѨEIXeSKOOǂ  (C_{5L2>ɓ'8ԯ_J#Gbxy""҃A"Q)yrATT|||`mm\Rо}{ܾ}[]tا9 t\r0~xlذAmW^^Ξ=f_M}3_ORbW3oj%ERRR޽{B Z|֭q;^{5lܸQyO=iA҆jRKCж7fbcck;ydCPTpuuũS0vX;wNeڴiEHN\CDTJ]pvvFRRrrrm6IgKKKS@:;;LS~}@BBZl صkۇgx *U8}J*jUfHLLԩSGuѣzg&-̚5 W^3n A W6ԥ:3- m{cM-!!Ao[kL0a <˖-òeΝ;cȐ!ڵ+/RDD Njj*QzuXYY)7ݻwСCS i4nЧO~~~4ix $$$]~\reV@O233Sv"͌Z q͘6m6oތ&MQFz҆VgEIlj'Dtt4N80DDD $$ׯǴi0|^$%Kɓ'jBrPB 0@+}rr23 SKSk mCCۨۢfaaYfΝ;ܹ3=$,[ AAAhڴ)Zj8::b֭Xd bccEaΝhݺ2+=N/sss]9Rtݵkemm-K,H ڵiӦi511YfI^^vΝbmme˖rXC QI8eqk_NDdĉ@_s@-㉈X[[_[`8'''ٷoF:CIS|I,NF\iM:yyy`177o&M4u˵kx1#"D51ÇT^mڴFGGG#""qqq8y$,,,ЪU+Ԯ][koƑ#GxzzYf033CBB>&M7(]xG5 T,U*޻wQQQz*5j-ZiCcQiEY֭[?Fm۶Z~>yv5 ?H$"""*KM"1H$""""""m\'?rE"""G7DDDDDDpS""""""bHDDDDDD A"ы˘1cݫ7M^^f̘o㄄O?}E=ǻwbZ|aaa1cf͚}УG(i8$9;vڵk1vXt IIIXb\Jwww3vvv:BCCؽ{7RRR။/_kiLL xzzZ;wđ#G777t:tP۷O9C@\lܸvvvݻ={O>En߂-2`{GGGiԨ iժdffԧn޼)-ZR\9];w,Rh=g""*} ^ QRI̙3/2aXRRHϞ=Un]RdggȾ}KRSSEDѣG2p@ s,--F;yH ^Ξ= 2}tAbٸqڊF ͛ZǏ->>>@vڥ|"+رc""%vvvbii)>,4H,j_pA,,,Gq<<9s&vZzjԮ]ƾ>}qaܸqVk 9r$ϟ_X嵰@߾}qY$$$h U}}B1o<#88VVV[7oSرC֭* }ӧOZ>Z={6> Xz20p@|05}1occ~pb$lذ^^^Xx23Maff{DDT$d|M@|y;w*mذߔ ** >>>FnnRTh߾=n߾ׯk;T*\]]q);ΝTPӦM_ضm^HH͕ BwިPƶ5ku8msNWf[4ix $$$h`[>UbE@FF홙JY rDD _A]r'|oc޽ áCPB 0@^V-+WN}d\+ͼy󐙙cƍz*"##ѵkW>Xy7o,ʕ333ʗ//k֬ᅩcIƊF(rO>XoooIHH`R=z)O-1/G}$SNe„ baaB&L כ7;;[ kgg'_~q^aM+*99Fzz:lll|[{Q4k [n-ʗ/{ڴihժM]dp 4iiiprr… _ӧ@bb"k899!##믿U ټy3>} KKKDr Wpp0֭[f͚C ǦMI%w6moYYYoD2dO75߿iӦ!00 'R$((H233mz k׮)۞>}*?.5x` Ç8qk$+ӫU)O{%RJr%ڵJȑ#ˠ$ɓ'ҵkW%_$899ɽ{$cݏGzj\Yrt:땾˓'ODD2fe͛H|Hh>|0w\L0A(;vΝ;Q\9i|򰲲*u1_kƢEX~kM쌏>p1%XYYq*T+V(?y$+{w`aa;w`ԩޏt?cڵ ' 00P)iӦBCCScϚ5 о}{,^*TP =Zn OP(yEFF>k|ss5Jgƍ{Q}?zLLLj*Ѹqn߾ }ARW>;wƍppp;~s@׮]'N֭[q5888CU.-Sff&vڅܾ}UV; G8rLLLХK6mڄp4j|?~111HJJjժ4h@[Ae1;|ضmGGGx{{666Fk'c<@FFnݺoݺ5ׯ_GʕO@.]N8<__999ضm}㭷B ,sq,ϟGbb"lllP^=~ZǴ4%xܹ3LMM@v픾U[Tũ8$&&⯿ܺu +%UV-T^7oĥKumfeU\Ü9szj <ofߖe޹s֭ùs琙 ggg>/ ~cgϞE^^gv특s"77ΝSܹs1B+ |2.]ƍV^1~znܸq@ԩS}=Z@888h 7=}L_jmpfUzuxbˤvqeJ*ɏ?󜓒Knn :TסC{CLLLWX٣ tbbmms}v<%-kIkpӼc|-$$D&N\6m*'NT.?7o.O.]*k֬b^jAݳgOYdˠA]XDgee%Z*_}5JVo-C/Tf+I&&Nloٲ̜9SdڴiҰaCeے%K՞+VMΰa/A333 7J;&1ot"QQQ6h@Ȕ)Stn{T*̐Zn-2e s*455OOOm+7n7;vTa___OdذaRF %;Cuk׮ʕ+رce…'HFDcoa p8q4nXHÆ eĉ2qD. 1""BIV 4$""6mڴ$H4f bee%&&&ҩS'1cuA쮥yiE{V~s("ҷo_e 6,/o$_`)O˖-,\PoL\[3f(ۯ_^*A,X@+ٳ4E*SnnrC5 ݻw  ~311 ׯܸqh瞙ZM6ZORnO?<==seqvvRfM𗴝JR^CsIŊ5?^v%=*~>/]TG}毯˙3g4|7Ҕ=͠;7T:t(}/Pn𒒒4edd])I1B l(jxqSvź%H4v] QFߘٳg}L1i>???"44x0|,Z/Vv˚^%y1]\ժUW_}QFaXvm~[Ծ ,ǘ1cгgOu}cƍzkժw0hC}z?9R$Rۻw/ltV2"b @۶m bbb pl2%`4iOؿͨWΝ;k׮N=Ș}˻vZ,]M6Źs M_jU`ǎי& ~)lق?\yآEdc]CST="00~zX>ĸqСC<HIIynɿ!^Kȑ#~z=z&MBn^~[납2,뾬z?xxxaaaHNN=tgee)W'ycРAFfPM6x6ԍo8ŋ߱m6DEEm߾еkW,\PNc7(uQo_o~bcc)N鈋ùso[`C<~z'ԩR>#Gȑ#s} _5.^Jlü_{wUSCTfi9fhtNj'YGխu[cS.+t-˔pB+!q(* ( 2 'yA߯XK߽{}>|Ҕak}w&I˗/RRRJ%a-=ewGm|3_ @BB$|=8`y&xǭYFiiirvv+=ܾ}%I8p }$ԩS6~2sng |||J\f޽պMzov[lo@@씓cŧ4c2tPtW7xCqqqrppĉk9=%%3{:m=z ˗,׮];K-***חr˗/\|D]Q!w㣅 J3ge-麐l~]n\?j9ObwJOO?,Iիez-#nذtkTs $~~zq˖-ZjU?d𸹹U|࿮sF|Pa(00hlٚ8q222ԤI3FkVnnռ\͟?_7o^sڴi&O\옄k̙ntԨQurˣsΖoF/_ogPM6լYJ\ $I$=쳵:իgYMvF,w߭6`RW_- 0Xożs$O>u6?Cr~뭷,7nWXQ$ƍz&}e .|}}יcueV0)S(!!A 4zQ$iٲes_GazܹL@Y/'Nдi\'Ј#M 2帝?۷oג%K쬗^z^ϒA2dԥKO>JOOƍ$ɤիW/j:sz)SYgΜѶmtyCŋhCEϧ-[)S(**J~~~}XkڰaN>qW_#<ӧO믿V^^zQ;/q0p_7 Iy''!!2O>)[uai'OYLhhh{ǎ;v찚w=Z:4h`H2vU}2 5l[OOOcڵ6?CѱX\]]Ff,gϞ]}?yeZbbb|wceVu_ΝL;w\^vvxbI&%~L&kٳgOCѢE #77mü> ~8=$$hݺu}7|M+ 0Kf9GGGcƌFNNUŋnݺ\ߤIlݽعǷ<*{OnH2&NXC.\hNAAAQk[I&{ee1>\˿N>Zf2޸ܹS!!!˓=W)??_!!! Sjj<==㣀Ko\m-;;;j̘1rqq$ FzZgff~G+==]װa*՞={WH:tP裏Vh^z)""B-[VmG}~Ǐ+??_^^^3fLl֭[u%$$U^^^2dHNGQQ6oެH%%%]=z];kv}i)))7 ÐƎ+Z=~^:^322t>}Zرt颧ze)Eڽ{BCCu5jJրjd}DG;fyznD]vMnnn+3 zO>tkp??q_v9/~ի%jd@1o<򻟟_;_uB=ԭ[7hĈzwհaZOÆ 쬦Mrr1p kD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B" $pKy]HN@HSsq9  (M!6\ԪUe?[PճFl'{{S+Wr+%I_}6mB" ]r :v,U?}Q/y{7]XhX(6ҥȸ)GmۘUttb;tWFŦ\}E11tY_NN93 MTPPG͟ߍF _7os!qжjڴ;}#Z \{$…,oIs \StsogoQLN*z+E GOsYok۶6Wnna2$=<:顇jҤ&TXhh+P||6m &<<=]fM|M Իk a1jT;Z{fn,R~~N69~wމPzzbceyNGݐxqv0] MRxx t \yN}w^uر]g08܍zDK;6;=ռv(66K{7*npȑ4rd;O?kӦKq@'c-SwWCu8&MAFF!hΕ>iڳΜj"C)HQj$3֭{Z TP`єr| lu }^]$IGz-7khpK37jƌڴr[7jdvJZ_~% qϺ}`d8`ڶm,ÐWBBBNn(PF8zqÆ|ͰqV_nj](Voر*ovv'p픟_GS4cm IS3gQllCս{ uBYY7gORSd2IU>[Gtj&Lا~Zc&/RddNH$ !o[AE GcR~}._'tS^^~~5Yر4C*Cj͚zz'@H=$?:r""R~}:Z颥K"GSssk9sh@w>XK-XMKF)#b5N#Gzj޼nV?QƯt5˼=hQwٿvWZZ>+]O^f2xJǎj-ϼe7oȑk:~))I6lPxx_VZ_GVKGEFGG|$ʕ+ڹs[ٕo,5ݓ'O*>>^IIInFܹS4hP٣[*>>^֭MVj@Ӷm۴w^%%%]ݺuӤIaiu.]ڴi?oK4zS()**Jru qIDATuUvGyYYY:t$iw^IҰa$IGK.U:u7n\>ǕVZPy aڵKiiij۶ԯ_?K~A?᡾}*((@g ORRNpBC!((((u٢"Yf$gkH24h`SNwV~FӦM-oiժqPѲߝ?>N5iӦ,z[IL?zdis;aaar͚53/_^6e>N~{C|aaѦMCccĉ$cȐ!Ŗ1NjL&6Lƌ3;yeDDZxWmm۶Ɖ'Y4$SL)uvqe?T~W6e >gѓXJMͫtٚo>eddXzJ]V|||裏ZXB_$InnnzԩS'EFFԵk4~xmݺU#FZoekΜ9u)y{{[jzCmۦC,W^QxxFCqa%&&j:qUp=3q㆚6mqƩk׮і-[3f(''GzLPP/^={(99'̷hРAZre{j*IR޽EW\ѦMtY-_\ݻw׬Y*TwyG_|4|p=ڹs;%$$^(vkJM|N{-68zh;vLoz꥘-YDׯ_7[Nǎ5beggkҥ:svޭzO@O"F^*]#=aaaF,n߾fd2cz=={,6̙3ƃ>hH2<==j)k1}tC1q v 0FmH2fϞ]jo$?/̢E,zvjH2:wlXKNN6 dH27nl\t=aݻw7$_~g͚eH2OnQbOb^^`H2MVl=ƓO>i<=&㏋*ɸxb$9j/ϵ3sÆ :nK,uUV>W \j1i$ V??v}ZF?~}ْ`zH֭S۶m\RYYY2LZzu:uҲe$IqqqڲeKnE<䓚={v/111رCNV\Y읗-[Ԛ5kԬY3eggkŊU߄ $~X5iDz7wppP``$ܹs͛Wl3,z96_ڵٳz'%驧R֭%I;w͛[_k"B"g֭:}K;CիW^x;#2UN:I~j)[݊:uV_BCC%I=qe۴ic"}*BCC-8p@jٲXzEzzzqtww"\ַs\mkAuFuww$=61'5gQ-fΜis&Ms߿bx'sO_{쩨(?ZVEmm"~aK1::E<-g /\P)""BճQMǍW(&&F :ci^ 6X̣[NEEEڸqjj^~ذaOlނ&|mA@/Iڻw"""l.eJZ\WWSN\>|AAA2L:rV^D驧*WTIOݻZqMj:fڴij޼$iF, ̙3%5jT:W8vGփ>(0Xl5qDeddI&3fLl( {$H?rssjڼyYUqMjOx&-[)S(**J~~~`cAMiyrڷ/_{{*&SkIzvY{j98X߀..';P^^yرRBz$+#7}6[G߾>>=ZCefovhe+)]iݺ,_Z.SSW]{mwz}<>^hO=,>8ݎS]/7jlgyF9sN(в>b*춦 oƌ $>Ysj^U&K}vvر]4cFz.B=n2M.//Gio?cvkssg;~^H͍7GscljNUFu]wԄ rwس'O￟>ܬed8MǏ;Cl7 ?>DXz5|sF ޛnǨwoNy w׃+&6 ֔zᅡ;w@Ӵ::C4gN?(I^Zp#V9pu{nV%""ܭ.,82 uh~@@26jd~.<=t6KWޝp7>plFYAg*!!׿FizgO/==ܐzϷ;ug4cF ڳ'Og+))_N?>DqqޖhQKZ[hϞ<@'h4( YÆlm9xPo_3fHM롕+3Z ?tTO_GkİזB[<<{G8e0֭NB[S-5vlrr4k&&˗ߎ2=<᠌b͜Qז{zYO8Z5lƶ>*1*/֜9[ru` v6@Zq1;`v77tBbm gOSD(8eֵ6_F{wO_c >>V uURRM[˨˨=bc= |ǤlI,PX~n o_c}l6ٔ[n4!LJ׃Vo 7fݧOQn5kS Zp^n:T5oaجR?Rv icßAFc wرzuQ**tS>Ƴ>;"מxbUkI*.}ηnƶ<(̛& Jgi{պoGN!hsiF i2 wIN( /$Z51~zGlOEuxY=(~-ڭEvkvٞj͛B-^No϶qceu4ǀ qB;vW_5Z5ToBBBB\%΁F_:Xlu1&kÆKvD}-X0XVy7CA-u`>s}lӦڼxӖVYwsyVQet"}MJv116dYwmr5wI}ݽܢekQܬ￟l~x55CST:hr8>_[ b{z}e)ak$&6ennYi 5]ƶ8(,[dS쯿>l5FM 8KBbZکaקeeeWXuArO'_Lhwp`͝_Æ43]{z=.-]7W^M kew^H;9N4OO>ٿÍ{giHYYRR ;Xu>-o޽y?v骫Viڬ6)l[#%MLk:#ύzjoQFiN֎狺wOw2q͑#jS~xA]5v#M_.{{3R'i0Wkڼ9Gei۶̥RYO–-9zx RۼѨ4pn%ZYYz㍤6!Wghܸ.ٳݣa237vUIefe}#xy9jƌ]rIXc r5B4GSþNk~lh8:kHMagu&Ot6**l6{:$$MY ZQ}5VRR uѣuA`< Y7]]Eݷɞ,‚;/9{{i޼MWG;75 \vSXxcM׬R%&)%P))ڻ7/'4{MfͻkdcݎYjl}j CgFh44~siQQeN%߽{˽5aqZt\]տ Ә1]f2$UO>_7K%wx,Iԣ$]~y6m:|kCկ q:< K@,*Կ7柍elmi; MBg8;΍=c.3;;kW:3;fs)([(.ڵǴxqG=|1}=?Vݷ?h&;&QsCbMϻ5ԯbc͝TVtImu5w?64]G 87aan'^Yꎁx&'朾X)K||}?$U<'5ܹ7꫻YO^6n̮w:SVCFn^]=SvSCUp]S=Ijp7(/krӣƩݙV@H<}A> c+-uݛo!>wֻjٓסRS=TV|y+T Fz(MyyռS畤xF{.ΞVT%%k˖߳fY[W~Үv,gmp"8΍z 5.$&ψ27hΜ~_tQ&NmG)6ɜiijghݺ,˅QLF w_Z.׬9;s7fÆ,Kos 4uj"#-cυ{襗Z.v8-Jzj[;Yt9:t1` jk-XSpQQzq7.n^ziVwB{hO9΁ss{v1""] QhhkW_5Rة˫3at:@9;ΠhO=Hr:p*g+s}LҜ9[KC)Afj&L 8P'zV1G7׸kޚ9B;R99ezLȮ]]}u&-)ٛK(GGn-Fj98mF~a-[ܦܚj+/\'jxIZ|KUTT07K04_Oj4wGj۶=vedjOchPXyf$]׺wGVHSNN㜶u73DQQP)5Hnn6mMh3砟>-cxwT^^ys~O-~:*Q81L={ziɒK9|.*lw(3ldd/gU+VY \ejMF'N5o'iɒDkEvUI_~nZCN//ٽ{&%k56-8:ZJB-nh>Jo쳔`掙dnvkIVsgŊ4͚f|h޼ƿ.h{ mYw?C]@ӳܞj}tMJNh2I{@slcL&͝M˖%[mƍٚ>}Us۳lc4szi#"]+>G~~N*-ҡCEJM-weͧ{ qԸq].]\red+=X?pjH3M~ !'UرRmܘU2;HH0EF+,UUJO/O??UU03k4bD K/mpqE*%'?I4\p.ٛ㏙~,U3&X_gTVV,i5νsc[><@#F*>N:qL{/;}3t?= j#VÅDlHij^m5F:{vֈ%Μ飢<,f $88Pg+"]11 z㍵cǭZiӻ)::*UU&^m~`^|q.$̦АW=D]rI$SIL"Vuҥ#/(PjjJJ!/MM&gw꣏RyDggڌ_VWFF/N?aBB\5~|BC]*WW{+5H6diݺz!Iq .$vͳuk<S:޽tx6lft yСB8PpڶѨRAA6n>]g)> $CuM=Z4wWd8-X@5iRzFv8AH`^oܹN|Ϟ^Z`surB6lVyykގHWkRہҊNЌ2 Z$QeC:X|$iYBٓiX^Kڱ#}WgٻvR:KH0}Wg%%U:x:B;;[NNvmng/^z7 7pf=eeUV-'--݆h^VH||IŮ Uw K99h4}ԺkkYhuj[ˎcMsžnX߾>ޖVG[ҷn%ZzyQǏok)kr}>@g=o2%R.Ӷm9Zh) hҤ-^(Q7o""5uOJJʗ$MI") zQ>UUלy. r!t`}vgsҤp]xa^yeo?a".C 3[ IDAT~|Jܙ[2ZS-]~chӦCz챾5*H+W#lL׽F *oǵdIRSlvՔ)hPrr~z%Y7v{n6Np.F Ҕ)8WNNvϯwD'*?Bihu!Inc[T]mjpinJH𗫫עEѲΡ ԩQK>>2СB}Q>P?bdߵպ-:4@ӧGOo ٓeS5cF;/P]`RR t~}S*ߦe{1Ѡŋ>H}֠A rQNN{nbb>JN.ok JM-矧),UUQagY_N(ٓ]rﭩS4ztn}]qq> wOĉa,ц KuѠA~ V8(!_=zx讻z* YU4ɓ#TYiRbbJJ3b4lXk+88-wFssvn]ݔ_oض3(!_VW=Zc 8Q8}4ej7kxcw}w/UUX[QQz>2O?=.[j5!1*C]Çf1uxoyֵإy|:Qu(͝;@EEUZ:UT:֣.<\))EZ6KÆK͙Oaa6-Z[g塿mrߔOc[mW]ٳu%V!1$UfũB3gnҶm9M&L#]wor81LK$Zsp0iP͞ofYo_nW˝MR{Kvs Q߾>:xce9-wjډJO/7iX985w6Xfy{z꫻im.,)5M1/,\۷'j&'[~{{Ctu}$I=OU25gVKoEHS !swWD,PQyYwS'i<͚rA˖TG+Vi˖-_>F[;5. -D+=Xfmx!JHމ:YTJ^e 2%RÆX컶ZwM Ђ;駇d293N\M3g馛Z<զh --ߦܹڽLGݢϰ((E7]w޹N[Y__'}t͏Y)9d9L/Qyyz5d( 7t~SfʷzunH\% JRyyͿ(I99e**TiiBbvmM' U_L?dؼWVVe 5VMl^2?Ikݺl8algO/TY]HK+Җ-9rwW׮4O{;|4ZGK{궦,ZԔ͂;m`1"Pzyiʌz#%2J|SFI~{Ͳ$Yzͬ EzaaRS ܾ 믏>}V֪UM !u9aBgVdܚPּ~{Xw޹N}g]..vPmj;kuGG{N99eZ̶ߒ*edh4( I]`us*;k{/ZUMˎcu_듿Ѡ(wW@gyz:<"N43yj⪪*-Jw.]\$l6G}^t:4Եu &=H)4MjhQ-. Em|\rL6d[{kˢoBC]Q;lĉ@Zb4`0EGGWqq~!yy9pwyz:h, ]E&cJ*OOmؐmY祗v$'Ϻ!95|x\Hwi U5}뮻"l<<)ѣڳ'O={zi޼_qc֪֯UVl|U\\ԽҊl4%6xZ4tqw277{TVVH*Vzzq;()8 Icpw7҆(,l*/־}rrSp-QVViѨhOefXuo(wUZZWn=;^]";; *woֻ֯&'IJk][n=h.QliF9mMCC4~|f͊Ӽy[\MˎcԫFCe4anIso@H+TPPjn6YfP d]!!`6ȑUW4.yښOw[srIzߟUWuZ`O,j3GG""uxYfh#G1"P&{|}%'m~B&EEh4 Qf̪*Lf'"OO:5#]$I6e7 zaK_}uXo*XFEyls][nh>|N` d~6><=4th6Jzx؜m^v?tjމB"w8#&˱ijz2l(lPz_6,5j=Z*??'EDۼ`tR|Xk9_, Y'͘+W+*5HގZZ-]~cY2 f'sq}֭Ɯt^&EŮ^,哘hwyA﹧֮I"hЯ >>榤 Ҟ=yڰدzҺuY3g͝-wmn77{EF''cukڤ?NQBf̈рV?<}}WUUdoohhq6^wk*6hP^^+3@HV0w(3kV?N>>=:ȦcLicWc@_燎4k9&ܣfEfgmؐmPki洽zy\pCJKt1=;^NV K'/5%[Z-]~cU\\YoJN#F|뮋V\6?.n6hs5CԝBLNHjL,LPqqCڐx*饣GKmnzp**hϓ(;;.>k㩛o{=}V뎋3)IFTY/H͘1cmѷ JLSuT:Vj;NNvTjjwf~VrFƎcXig/3,_?F?9L"{릛zh4襗6{yvzzJK+R߾>2e˒ۼlY2B^E..C*)ȑA<9B&-YxTMSF)'Lg[I r`,*Ԇ Y:4@/>EEyhZZ-]~CBC]M[ד4@͛7@O{YSDh@?m|\g 3%Pwwoop>egi`?]w]*hg䯬ZF=p_^9:uA*--׷^_ߧr 3zS-oY{<-YM3k?cFFg.l5On?1D{{iΜ~VmܘGrJeђ7J$2塛o3{[^'Ż-LܹsCԽz p%Y]`LҲet;6XcǚNǷh(EF[5W?v) YZ^3W^^Z`5uO >xq5jT>-- /$UW氦LPϞ^Ysi]ziW=zZmْӪ}V뎋Vyyx`6-ZӦE[磏RdI?5jTM[ho?m^vDk9ƞ9yD`4sYA RKJK+֦M6M#ջƏ^%%G|;v4}7!ԳwovmR^GJM-?kEI8OqTVV ),TDD_?9)=X۶4|^Æ(>ڱ#W7f7YQϞ^rqSFF֬9 EDرR_UYiƎ"Tmn;ku;jTݔV;rl른8/8)+TiiEڶDw[ZM:pΆSU7$䔱C!@Hlȉe:vT&ox&`D!@HD!@HD!@HD!@HD!@HD!@HD!@HCC] Id2 B" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@HB" $B" $B" $B" $B" $B" $B" $D!(sKo?Bh}gܯZٮn9in $B" $B"hs]~ysVRZZ||\7KM@))9\3BCZc$IvvFrq xFZfZQ{s挗lIowBv"B"%%frYXp'46,BE+(C99%ڷ/K}]%% h1c5lXܔ]}UXX4~|ᬜbmzX+W&v^''{ .ɤ_~9(A8FskNi4th$_eggԄ :ntֱcD[e1czhԨsѣڲ%]_(PZr]|q/sM@{yoP=Ե{f3>Z:z|p\]m^)֜9_sӛoYUUՊ_/W$mؐj[m^^z?K__RZMsp*&$e 7 UW״i@O=u₵re~JK+4fLSnZO߰'..Xo}\\T\\oݫյ.0Fnzꩋlwd5)$?^U+9z =ŋ';>iӆ+Jh6ٶ/j-^| ̙I:r$_#\(IJL<3>ұc=FEׯRXνX^OUTTYmh}wSO}g5l[]{G-mܘeˮhP^AoowUCt%$mk:Vo?<ȑQWuI=U͚BerqqД),]qE:dxs'IJ=4n\v Rjj?6ʶյloVӔ]$IJJҥ/((O?|xQBi^s '$Kv<37+P?,I<~]{Pe;?'+9$oߐz]yT R}&$nؐZo4YYE6 i:tDJd%0 rKJ%Iaaw!kH|dGWo3,!-0hG~OǏ7>B+'EGDر;6j{0 }yΓo5NnF֒Gg;;sS]2dBkh9ftv_^^V8t脢n!-XcMKU^A lt0וaVHM5?t*0]yڵ+*$ӥ )>>:jt^nډmޜ. IDATI1'EEi믇 )gg{W顇w,6Dok4%[CFhZG}}ͼK&I=6^>>.0!\=ȗڴ)÷ @d0C͝3rt4`@uhkժ*-lt^77GCqqp҉%ں~9YUuǟ3;g*oEEݝnt.t\ $B" $StNGh6skxsKOj9f?>d2Ε[XX j9fsqq9yy&@HD!@HD!@H]|ЦM{6(9D-Z.T*Ξ=]Θ$uP7 [c*]sWiK)GL? Aвe8sߒl pj4j$%tHv܎͛ի Am1fxd2Q*Xv%;ׯVlCX,vzV= HЭ[Oh4j,YgV7xǧtRspV2}N; УGoFl߾;vlիi Ev1jCƍ,X gϞANN6ѢE+{pDe/ iiXv^Mիi CBBm j׮s?U…:܍QL&ñcGMJ>׹G}[ ֭lWsHKUIfP*X:uJe!6mN.&^Ǯ]XnMXbى\TV#Gq}XvRS **zC=?ۦ/m6 j бcg^ To鎌DNN6.]3gкu{pU{*2l6+*ZzOՠnx≧[{|p=}6ī}:yXnSh470k{PTN5i _~4i;cĈ!h޼%GLΞ=x|iVXgÑAl-Yo:23;mEiPko9s ׮]Xީsj{oᅥ`pڮM^zrYx|R}7lKСr 7nGVm|s).]"9yRc<~Hlذ3f(#??= E0>hF봽7tW>{"!!?> ǎq"'Dv+3 ᥗ^sϽ@M_ڊ58w.աM\% .^LwTLy+W={瞁Nu&66_w8{ΤPH*4ˑD8qz8y(QmtAA 5S>-ZAa޼Oq8q ?<Ѷ`nj[gG^cUHJ:Ga˖=mk q5VD 8[?+ҩStHJ:e˖S'VXc,lڴCãcV@Ϟ}ЦM[GXj9Z ̙^:̋\ӯbذAHIHA۶푟KܹxǑr 2ܡk(KL&?mڴ,,NAXX7oQo۶GbbmL0QQ8~(VXZ:܍u빬.[o%h4ӧ kޛ5yFO0 xpF|rڴik20{9ǞDHH!mźmVmݶkym8P~ɓDZtÈ#QZu$%²eqF&N{8goJQ[~F[~z zAv͡jpqmz5["&MzE~ŴiO 5 >C,`ٳ QQ9?~-d4Ϸwj|o'MӦ/ڵ ">V$3::t? Vf{h߾9T*;}p!o_צOY`54hHʁq>_-[!гgnj#,sQ$r5L4i,RR.zh޼d!'>}b۶f͚;^R'So.VZ?X`̚׷P]AVV&x) ~xz=>|>dz꩝IfuL0|0۶Cy6Cr9ԯwB5mۇbt|CK[fGU╕4cΜIС0o޷ c1bb1k'~7Nk$!>>b_DZmBQұ9s& 5?);͋3fm9f-JpLh4c RIrPTOpJ [4h 2ILLS؞Qh;bժ!A,I_=!T_=zSXVյԸrWÇA&cѢ "DEEǦm?k(oZjժMY>}c֬O8p0z 8u>Jlwć~ԩS϶_~Y@znE,o[1 8xZjorڵ}Jš(x3˗S>Sڵt@Ӧ%# _}9F#6mG35<987]]Dž ?E vHpΟOTR11owqwjm#5ٳ纽`b?8{S$YN,o{gĊb \}y 녁b'e?V-ǥK䴏u۶-m{LLau䲎OOE\-W Vqz~jfyۊ}9y${͟xq' 6xRXG?DDDL+Ehԯ%=u<%W7os.1L&ee)**ٳ=wN]ЩS|\–-صk6o,S2Vk{%:Coeoժ>2ijϾtJϾ)Ѩz 9_:/ZV˗Slߵk2S])\/۹|\ĉa0 ZlsKfyۊRDr$(_NNmaW DuRݏ_Ν}K?DDDL+[JXxD 8q=0TE?cC l+%'R4ǎdH$B˖mCլY _vL(v, ef{YXۭX򞂂|[gSpG)x-mm3saFv0H$ \Riժ(((pǾ _כ-OmZNO0͈qM<]ekq5d1=usK[9z0L&bW._c/M =`0O@}goѝŋl :G\,)m<sgwn? Lu e_/yn9sfp~7ZrN]wyoU*}-_RsxLܱIQw|2Ʋ죏NL&/S<]eaƥ$[ͯkwKڦ/mz ::|ׯa֬XMQz x_(8qNItw}{ H̜H޽#c`61p`)ewޝGʭ\N? ^ʈ5>._ᰍQ~[mH[/6HJh>=uՆ mf.]d[?>>Z'[Ǐ%\GxmdVgϞQàѨѸq$ߛxݲֻVڸ\d))]cݽy߁j뭙7ndca y1t8yćkhu>5:]vwX8{?ѻw/$ryy tqs|Of-Oc޼ϰ`|8ݺ\.Ǒ#mk3jMt0k4֎}gMvBnn.~;v:uX,شi#45d2>t׫'⧟ٳg0sؼomJ[nuǏ>B!dzm1x8}իL=zׯAHH={…?㡇CuƌtŘ1#0p=].\8$$5ٳgЫWoՉ?|W)u{͛7[4$lܸFj%ߖ@&˞~s9/HK.K['?h8q ˖-VE||Үx:7|xyXb.^>c\cdJ};>CZZ*V\( ԩSݻ=0775ok22NѣGtR u@FqA  2]qdN|NbߡѨQ~Lx#aU7n* ˖-ukcw\[6I4WXSN@,D*UѩSWtܵL5 Uĉch4W> ZwTbQ( 3IdHtXr9wネqS?@>h;|[lt̙ƍ @DDDL `):u v=֭ƟxsHGFF:JDDDDqN"ѿHllk!--o2R):uH/?zj:ڷxǞunBFb1I$"W>x.ƍk20qXF/`ƌӚ$l bODDD$\ի/v؏oG###qqUРAC4jtF;h֬B'"""#.\CDDDDD!"""""JI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"`6 I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDL_GRNVBֳԉk r&Fsl…XˉkƵ4MI"1I$""""""&DDDDDD$$. IDATD""""""bHDDDDDDLI"!lҤ7f3 }.c͚$w湶ng醆 п7덬DDDDDL*,L5#<'>>:$`V7^xa%RSLLO?APPI?Dr] 7B( ժu裡;;jDq @1ǗttE$""""bHnZuF/v/G׮uѶm< iUN1VetϞKػ7MDDDDTIq?QxuhQ:~RZ$""""8GTJP4hk\.A ص< zKr嗻Yj BN G^ŦMPX-8ʲ}bb4jՊDaPtZeTd2`$Ry,UAcbB`4Ь,=>9`+IѭFpaߣGFN o}1uaÚa.w萀͛D"""""&T^' 4T8w.{&MÛC7ҥ$%]-[*lv/fq*ٳ>g'` N.G^łйs4hk_D*eU!w="ӧwƍg;W^ 8}:}tuF">>o=}~0ZYo/wAX:u ￿JDDDD$J9S(HHB%sׯ?;Gr%ӧ/wz, *.^̙PZim{""""""&e4h]_7L0o.YS-[`Y,&9;w^ŋ٨[7-ZpH|ݞIba}z\p"55>.^vH@Ru۟>}uƠVHnODDDDD$}wϋK"I[zz 퉈@Z:߭#ևڻc}D"DDDDDDL+c|9ǯ1IIbݾGfͪ'y~ݞIbrU@ǎhڴDDDDDDL+eˎP =^;.,Ӵi5̜9epdn=z^= IJŸi[omw/֍_M޽Fpݵ$NgK/vz֢{Rj(4d2DDDDDLXf3^{?0멩yx58x05  f\YN7bC8CBdٳ>609rs8z*v퉈ĸqm+r$**a͚$Yt['""""ʋ D""""""bHDDDDDDLI"1I$""""""&DDDDDDJc YDDDDD䵐)fͪzpr"""""ZFFA:_l6+*Zzr"""""B!EhҜ/$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$ѿ! iX cX̘1I$tZH 0GFgW)˗ZDT c|-z30֩B%rA~WX~8.qD7r\+ºOBwàT _|c'|=BDLɳ!+!Zϻ a? !d_f_ť}!?fX,UZ !σ) .+8l(9.,mEӕXy^N=58'2_!8~OSlogp#5 Y7s$3߃)6VOB*_G^P|9`/lDDDL) 0!ﯵP?L5jH$0&$B= sD`4"8"[в5s S\$R͐n cnjLH@cxJEii(VcIk%~}0Wa(^4GχGo@|Aj ݳ˲;ìycrs?AvhCNe[{LW0B߮~Cݩ_N9<:vϱi!۰]; ʄJUj#a \ NSj04iAD? >u"e! MC;xWIPXSL, -Z9y= Qn\;u9H?jyU[| t=f3˗B7gə$2!ʴ9 d[7,B߭ec`-uSqYSSxK][r;@|4)wF نuPx (}E9ЌQش'WsmBfYL#Rwx=OHӗ`)z$ +-aӦ"菅`nkm}s=A2ԒP_| eRФ-K©Y;3#hoAf#Sryo&?0aLHD/ g!ݷv}~GYhie[_iDu$٧.jz}Ǐ~.z-R+r$|^ =Gk3]:- kзQF:d۶@Ez oa/LtDb7 9uC}#?;q5 @}Hh?cB/'#YFxǎ ⁡T*CB2 wAruk ʼnYiV?O/Y:۶@zp?0hH|2jžw)u DТ_!Nq%Ζ8-ANIt劽m{qr#$P [4κ}`lZS.д9] 1 cG4^}`V( ۸+,dwsr3֙4n ]~0EFAtkWA|<~&͠h! -IaSH(d{vB{'"FvT՗xl=MB K!9yr}@Pϝl6-) 2余P=tB׻̡m ]@أڋ?"^┋8Z ]^0QU[ Z$ξ""T#Hĉ@6іDڵ[3XܩRiN]Gotb?F-#A'_8@ק?-ugAt# mAPAI_~0c!% 597$gO" ~ ST4 0 ʞ:ho]sK@7pe.ɩg ͱvn;SA˾PXXCT*g80֮8ݭsivJI}v;Yz`#"?Rh+Nং//>VϾtH@5uܭ(ocgO~iHߩ-4ǟr:6wzih)ApQJ|8g 9"¡c!"bXTDEYw-xCrrr{}zHكALf{Q[?7(O[])϶C ter3]~06hhy-`*A/w،qIwĻUkڴulYP ##}%,ݹrN5j:̿W4t̸[ܜ$.>TСlW7p#9m rm\gA>ƣmvyW'ts*U-wrSժ.VKͨwE.]88RnouS*t-Y q9hDВE$EM.)/sh(Ojڵ\Ѹ~ ZZ]yZxah²ZQy>D9y`zz+x},A\,^Pjc.Nuz\ala?7}"dkdCr Z@tė.CVuUii]APo`@`MoGKmKVubE8f4jS.A|d۶@U9L]xjģmv~VaX>_6K+-{XAW`nUj 8R$Rd2tK7&{w#i; PԏN_GpJ^]LlkM<uK ۴M,[!A3fSg_ W'4#x|x(a#!r`h֢dyn= _ =;Q˪$8Kgo2v|jȗ->2GG蠻*QU:稹k|Qv_Q6ꏲ{]H zߛ@ uӭڢL?RbÜ@9䃷ս#wt9XǟCt2X~~Z0֭SlD7 qjCb~25m0B߱B7_]4HolVh}{&8}E-^}]ˀtN[sʳ):}S N>>]z!I: 4jer~ÈYsE]_ETct:H텴#ah.Ӗpw1]оmA((|J2A@ےXÀ捖ctL1N|:hV ~[pRľ7':ua4CpKPXMr.Ќ}طcvA3!W,YD탣a $,dB|9!9uCpWSoh#O _.pHQhG|Rh=(wl}nC,5~ $}ۋAзQUI&_gQFzm ;>D$Jg E_k'P JNW2! ճ/y~@C@r& ۺvH~5w{z¦cG\P?$om#F@ dCz~k𳯠S'OLJ7m c|osc'/^iOXٵ>SPn[o44 C@|Jۧw IDATj @;b$|Sl\늱V!gUDk8I#8܊k |o t0E$ނ8U(zM3IrnA?C߭5PXBͅ^FoØXq\@ _]tcC|GyۨeXEu7| h: c9Iwx38 f\YNVB߲S|Bx90;u-AtvH\5`c|-t§ u-#Y0U m.JwD9w센U!Bj9$I'ڵ|g?y+cG!*̇):vhPX5] ѵ cb`L]nVCAm (/5aaRy򵫠7s,0l% nPjzp/ۺ m[P?S.AieH]M<(Ȟ1-^ }.eHtNHYO;u8 ZF&O_r (O-O뻨BTD9z0֫=TƝg"r+ q, !J3*1Ip ѝ܀3!*~4j;>u žyл0g4}&DDDL‘<¬] UF,8"Gt^jBHكt.@$j 5J )N -[b1BQc~žܹE@ls∈Ib(5lcF fy0mM V(PCA߾#_σAˣt ׀SWh&LNJ=FDDTa\=.\CDDDDDDD""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDDt{IQP* ڻ8O{ȀNB*UTC~~ TzdDjj*FJl|~r5hDFF!""A '': !! mQQr!PF+q H$ԬF""&T6Zh`ha2 !H*P<0 0s)K}5(**N^H$T*CHHw?޺/D L&e2c(NV; VҞD"k9_͟kZ*גQ"T"FH$!444 婗CDDLCC,9tFVׯ_sCvv6bbb^r[V^^. ~TĨSN?_ƍ,[ժвJ]͚FQUT-ӏJBf5[g*U5&)kL&_RZNN.jԨL.((@^^."##םc0UqJF#22!֭LwddJlUAHHN\VVC|K-zuL` JEN(''i1\jjJn:$p֎mnn.JA,RYT8 De׋/h|وDttL@3srnHhj& 8yOnܸ|q^d2_ڑ֮]׮e@TH\v *UMQ_[/U$ޑ ժA,V!*FժA@VAzUfDBB `0T`4 ل`b/+/Gp\ @z\A LF(JzdeeA}U}u{KO @4 @@ D_A_H"4 H 4 $ @h!-evvzcdNݒ~iswι;jb@C?ȲI&')4F`a P2IӃiӦW<ۿ; EaZRCQ ~AhL)Kχ^^fdF,E05q6[jۣ%FVzHp==G vkka0$F"0u괡ϛbb`xLݙmb$ƀ@ Qa6[`Z *LUE\CJ:NFrbt7d2k#\fF"Q-D"0 ^G4E b)xDj` A!"zz\ieX.W7jjj_$pFp8P^X p>/-`+PzY:DD q2@08׻W0Luu&tud{zz( L&&M,{]˅p8 {vawکMcZ-o(EҦ C]SSm:cNHy}8(B455KRb#!J4`vGIy2B,1eO? x*nU8˦>dY?2NSnv444$IpNI)b QׇmZ:( 647OJix|~}{Q10ш~ YySl>lvlvr/w[5ݑH(fkSԩ`0ljk1T>_k(ƵDPUU:p8hpЃDCC=kS`0jeN/oe SLIWTB*TZl7Kɧ2mWuj$H<=BP@UUUك-EQ=^7 -b?3Vs(gku$(TWt(@\T5y-S)jp"`0I֨j:ylCYl#vj{O#kjLr˿4הRos_fG(D @$,ˈDCCcAv PǴᮛj0Ys#wU^1r˱VA"݀ZzDQ5 bXlhh|E7vL(%x Bٮ]==ږnƤuѴ`,ufW.< *]/GDaF2vG˺b$ID$uM>L.+m E,'V!+]̳O4@p8vN}.ϟ$Iꂢ(!erpH(ID^Nm$z{{FחD`0$Isa!91̶ab '<}>V}JSz[n<>7(aV(JJ,K;1twoRΣP=`$euh`vttm!."x1{ \h4m:}_MM-![յ X X0-e`@ܒPtC [- =F0LOaTH$^>bHXԦXj ۛSBRtgd`X "X.jLӣ=blbɔx/ m8 ߏp86mH$1&:XmEcX,D"z5EI !vD"iaF up# #w)y[Jɧ{!i: "::ڇ]F(: i3 G;AjC(D{{бX P`0`ҤI#6XyTiF^[DQ:Oey|X""8HToBΥ77mb`ҤȄ3>cOj$Ip5zZZn0Ҹ^Css3|>hQ#V]]m5I "DQ*;1Ȝw]]]Pllr㽊A"`ڲ}$UUՙ+AEv)0̈́^xy1sLby*W٫Bz{]k  )B*IvSNٜ9E0j;R}}3w QUUƦ 'O6 IDATf$N&͖x\٬n٬CWWx\ ׏h4AnHL6=3h]]۠( t:v& C $녢Ȩn|^6lvp8 QJ|m:Yק=g6TtBhHU %"\vv'F#d91x`2/}>{z6 &X`DžlFj^G0D<df-x!j4aZD{phAb0̸Tb"{#a*ꆢ(ZmX,80DQD ,˘4)nHٜ6&#f dYB( =6 :(jl6g]LR9wMM FcZ M!hޫ\nD1}^$pFp8P^X p>""LM \DUPUeaFШhXTa``@{.NŔe{zz( L&&MZ]542ݑuA44ԣ6 t|) ˥Mq۶uj=:Ph"kAԩRCggb~_QAb,I>Q2){>Lh0&NmjA}}CCT v'4X}>?{^`0j"#d WUE 9%M8B(hoJA @}}}| @QB"Zj؎#uu64m95H,ı{ff,"l+{U4Ô)SR:- i׍$u9I$ш1 Fɤ()"Uq|bI骒B 31i7UNft:(uV1bIiR$X:SLM u:uu)iQuD՚! n/zBkݚdBcc`0Xp#)-i#UU΂FgF=) Z>e.7ReUUUvlz---i>[Q:ΡO2ֹDǀ:]~#ωg{ j~ı97UUUi3Nj$i#ʯDD wrxqx<~!qS/+R:{7=;>kba~V]@}vdy( AQl x rT^ b2=tVeRsUױy+6]{--/FwuuM p8 BʴR߆EtYej]3Z,{y(WZM&V_v,Qrh4b]0s.Y,e??*q,y΍{f)BfDDtQ(HJ 0Ԙ8BlQz!c/ƚrpA?$I 9rkEB{8JVMq lo hMbQ0Igo,lAWYV455$CK@UUUA}6@=AwHq*gosN!Lo; l_?Ѩ nkԡRe5|^SG5iU+QLq׋ "#UXF/*""TpX,a4 Z 77x|.l6K+KB-7\m< A]3m*p[WH\#MhhB<C0lF4,n+WJb2Hf ^},uM{ $PgXD47[P_oh4 b~LM]dQ u|X,sŘoPzNYԕ>ejVF#)r&Syғ={UB~h*(:e5\^'pᕾFʠiuuHlX*>W kjjPSS6Vnĭ2ZDWU% @2sdYɲ3@PG ð#.FVuf<G4E0!m\f!t&)籌97UDD wbfSPUeѠY=XBdI.\.mjHIMiXC@OO7i#-cRVeY/:npp٬uC N`d 8׈bӚ2ݯox H&T)籌97UDD wb El `h;eJ[@QdVl`G,mꔽ@p8x֞InDLt >7#gNg6ۓVǢηKا ^g$Ҏ;9@,f_?5SG<(VJOQ$tuu m.H\#JIDf+jue8VM>F_mԖH:rs*糎c^50FGG;:: Z(_|&qȲPHn@C~YV`0P[X.[յ X X0-ĞoT[:M}?(x0Lyo4C8 (}(ߌPud!2ԐtNGCC#z{{8@"kuq)j @=jt#M[6IVE[t^O  YeeZDߋ@2Y{X :kjjSkDiM N [LB p: :m1QBEx<y-Xc)+/*Q|$"b8 D IdPHib`ҤZV1 ׏h,ثe{ԅzF<&x<$9%ƖDCCÈImC4 455g,GIv np666A$ThnnF(.*HTNQ >G*UV5A$IWN֡vL\#JMkbDg^Vufb6mmme$ e;Ou,s_J;g۽EQ&>@=3z=IIAHL1$18uuܗ(ˆF qơlnQI$#0Mp8Z!"ʺCk2eڸ^4%C#Q`4FuĨ}H _lfBCeFQFZx֮]=[TY}fw_\1{8+WcS .|X˘!6""]nN3]g::ڋx<I8 {?kKވ%K~PcVޒ$c)MrO3AGG;|>߄ϋ[?;&L6}ܤ6ZxQ9cq=d|?8Cpᅗf|Oss "03rx῔~0r1./,7ϱz*\|eۘ>"*GmMw$2HnYp/1883fᬳfCO _3|ч%}Ͼ.3tah%yL!e_|>^oپk7ǁ?83Ƒı47[vG*ֽ]{E΃fKyŻ 1UK靖F#X5~V-=(bժؼ 3f‚aYe9/_|F 9|vl9[1c,ˮEڵk ,iv#-kAlÏdز3[زSttSLłŦVƍ4/@UUUPԩ1{Wx6mD$̙p)b}z~c9`Ŋ'cfG?Irbx}x-O֮]AL©C9L^x ŤIqSπ /W֢MMc=qgthx}O?Ǟ{…f${gV̝:k!J:>غsX,x8̅p8xwb~':P($?#tww@b!5k^`đG]r=)wTh z+Mhnn{@ '|7@s'/YAF4 (`({_(xᚋ.%K`ɒ7aC`؅kroյ g s7_\V|*}MMX|s/o6SN9aɜvpܡoJko&hm2FW^C\w/·\}fKi͘1+V~-VZeâEٳו- iK.< `k>cy<[Sĕ*h4k!/2]Aݶ,ﭭ_b޼}2֝bCbҟ" V_߀nN>yAAw IJee}w.Bxt:tM8XH>A\w5_ӟniW`82t:qĽމz] 8ƥ!˩ӧ#<[o)ZP(<r|Zr=)3.}B=矍_k55ooJbp-/FTI翂իZp8&98W .+.\s6n|矂}8XVsXj%z{{pcڷ{۶u ΁ݏ~0k.>| n;wo|_| ^z̟ @|^\Z[u]c<;4D%,nX5@w EO >4n?^V,>~ 8ᄯc9ؼspqG<ܼ<ЃD8ȣq 2?x\is=d2a]gc-Ed>K{2x^tXI|&|㿎p8?On+x챇S7ZP(ݎSN9 Z[ϠW_}D"a\z#^'nq)p'cO5O.Ս~Œ׫+ +V< :u9X466aÆ7~UUoow0g8a;~::,Ztư#V@)QL~sq?/1w8∣ҎoJf=λ+/w6`ƌQ[[MʕO!꫿y-i 1H2  .7o-e_ [n~w6gҤe'\5_~}~'|$G__/OG][{U`sh_Re-ZeKykO?6_|> ?ߡN}--m9 k† Ҧ`0;…{}>.p1֭{?p9M$ ͯo|7|[JiF[zRl'}F]f;\o z^{ BqyqwF4Aq1kFU+Vϛwhƍ/ߙ6*m:HyeLDQhfCuuuF ˭K? A=)!:{Wp뭷H,vj RD_\L( fΜ?顢DF`;pmj{_;Qkx^~E|tX) =<Ӊp8{h>V}j_ 1:{EMͻ? wqOZÒ%W@)QsuѬNĭޞ I'>y "4N>y*ϟook)7rߺy衿=1`0OGpQ>pAV,vu7l҉-[:>wnXo*&obZt{ h:P;a_=L'>#3կqquyvss` x7kK/5K~Zld|OjG%rדR~%mUO Q{CehtQ6e ^V /tᢋfcȶ ZUKug3?{:k!#JQ^j<L&3=EQuk}eghk+|pdݷ:(Qzz\Ci:ݹ1mL_l67ՑL TNZ11uwwix`N|el6BP^ieQ\eZeG@ˣsTrF$~k\(f@+D*^/ছ@ :~u444}G;/~q-K㥗ˮ8Sq9lxgK/=xe}_r 0ܢ5֬OڀNIDATb8}im&S3\W,TWSO=~ ])=6IZ=^L3mZrM.v̙{륮;\>js=;׉®W O9lY~y}oW6bQٟluQs\+BW6t8(bӦĔ>'{^ۺD*W_G($Ĉp-ZOիOcu|⋭XᄏqMMy~c8t;䓏[ssKnrx < Re!".x٧W`ܽ1{~˭iU7n:x<^D]WL'u(D^7rܲ,HNA F~ v}}?d젷gTWWcѢXh1dY'Gߏ뮻~d^Xh9sfMob޼C|={*Orh/W]uuZC=XΘ1 ~ 9 Z.-#Yfg[|#8KPd%looYÕeiӦ`0@El֑ټQ)Jw%hz:Ekf~ikkզqQlM`\fG5t:]֮=IK$vI8I;u>dEٺuKƿK_,7boh4"k $ 'CۙFkTo^N6џGTY3@ٙ_SrSҪ.^ꞙq`|Q~;ZccǛsw6`ժZFWmm[o}9:M9WRWd~WѪywR<_( qI'F F֭~Xюۆ^sͱ/+{4m۶e|#5z=.`N;m>~/3eT1(M3Lڈog^E2 k$*Ux}!^[[|<6mz?{+eYa=gH#q,:Cy^,\x. s9yZ\ oTʣ]z2Fĉa}ReZ/#Fp?ի?Z.ZtW\q6Tq{O@b_/'v.X[:`P]t^Z~!|߁f'/:K/088VOTx≿\rAe]o~IϩRLAu%IY4̟ Xj(g?l>v}—eʕO> 'o}ke˧xg֊sknF,XpcnYZWW[nK\-[>q#<>C[H&wǢlkhhO|q믯r^xi+Ď$шx8 |><̿ Ap=hhՉ|sq8?_a?-ذMl>V=X楼ĕWwy;{~A8ctVaװi8̳bœ$Is$ʣVyq=P]]mB_z\+hl]Ȳ ^c9 8y?o^X I0mtoOd2|Gww6->!C 28ܳ'a͚RVgy6n.t?{G[nM7-U+S^7LXh1nւ܂G}_~\nZR/#Aߏn <O Mg Aӟ͘1wq6%PZ,Yr)6n|/+^.~_:q!a+֊^[2n)/o(xtuݝx10OHW$+̘1 ?AGG;{aO? 7[<+RNSO=KSJՓS[O3y8o`˖Rgy6~ߠ77{>ʌ AnH E8׿:p[+:g9z\,Xz6o}}hjj=g~?F}}=f̘:&Ųx<ƍb`=ObžAww~;q)K>̞=/n\nZhm/nX8/W࣏>D,̙3q"W^oA&MvO< uLՉB|Xi`0`7y:K.:aZqq'GGG;<01_^QJ~Y^yeDQ̘1W\''}㵞&wų>λ]Bx'Gj]'ӦMgMxc< A"Јw9W^y{WYw=w/-)g &__.̚Kgvy߸0Lho$ʗڹ߅λBT$nC'u(͆9s(:D2H\%K.~p9LI9XT.tww@ֽ8$@]d}^/N$EEE(,,T7nURRb'Gx-{'Ѿ =IJ7߬QYY,||LOlֿ$I:3UTT<ٳ_hܸ1nuL4l=*x]hDtM&_l6+&&ZUC sWPL&UWe6x555)-m22(.njڎSSSk-پ(N ѳhkWttBCCg~M0V>>>:~>&(?@ёZ:tqڟl&t {aרQ4q8mۖeVO ;v""lMu($$H55u e22XUnn,& 2X%%eNcN^Ǐiwp:2_fhjjReeV۔WVpXUU-٬:=bQii|}} pZ5qD@ Q"J|$ғ0DOIRHHbG2>\$VVVkӦ4***\UUfWhTFe<֥gXeK %ڼy.` I%%eСOLUbbrr 2 =jEFGFFZ,S; QeeU;dBCCH}2IΝ˔[3NO"xSffV7-+І ;UV_iRGǎy.H&䫢ZaaJNNP` i$?D(}HO"·$ѓ H$p Iرp @O"9HdN"I$ZaD@s5#H'`ǜDDA" kFHO"kzA"sFHO"  $DA"=D@+,\0ГhY`$옓0Гh$%ln 00`'`'$JDDzVX`3ѕ=szDA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" @ H$DA" @ H$DA" @ H p?}M}EunglllLUY I WXդFdDF+$y[c;!!H&HsŪZu\\x))S]S(""@~~)eei$EE(8ؗ߰S r'U˳}O__A"жݻKumܺϗ_ɓc%ITIw7 ѻ/3%I!!~Z^?mۊu]Ӧgty?W^Gü"kh̘H ifڼK<8Lӧ'?!CW{n,9!Iz챉ysAT]h|@-]z!^pZ۲H~iر*}A[Y,V6iD9~926yy5 s S~!߫JPLL ^qC2WX>>:Ķ56ZW#xbW3`w!sh$o̘HNwÛNӳN%Ю==d!Ps /L~t!}qу[u;)בcBfn m[,[kIéZp*G]v։fըɪĠvWljJ)<_*"+foj>O 2z}ڲa?.0Yw9SsmZ4G%%zUW O~YP|i̷\ U#FDh2=x$vHvHS?q@6n!!~)22MH]wO$}1]zicW3eK[RR.niBCIϲ'YȨzŮ4cF3ۼr~q>\Q:$edT'mxu5C{nz4OlpvoyXVInufNp_gIx +suc~fz^y>8KێvƎ쑶ڠmn-$uM|UZZ$*55^/ޯKOʱuH͟?T]ֿSd1e9iSa%--5׬n#y͛tիmc$zgx㰮z֭+hw?ڵTvlnTzz~ˍƏnV?kfM~l曇5wJ b<}6ϣ;^xane֭+h Jx_j-:_nNn<:@ MwMwn}E-Z*@u[d67ϯx]pLme*]qX0 }ii}6ﯪmmUoorUQѠoNvUa9si2o=eeUZYY߉|vo'I1k޼5cmz-m x;z'n-/TcUGG34rdlY)3.d,خ6߾X޻ ĉ1=:Ҹ(LK+QSUM-zɺdWZZ0%"¿Uo}Xwi g'*))D55ڷ\7EUW7ꡇSpd.y֨#G*_vwzp{n UMMv,֎%Z:g)%Ż;|3thNU||jj]5kް>3u\. lwX#%%LgH䘵reqg]p/'IZ"WMM@=AA= m<1!0cg}aV̓I^ߘeK-1'HWrrP`RSU[ۤk~}Cފ6z '{ټ-F=;6R'*0WGT:܈[&_ n3L|ww}/ys$;G;Ջ/ЫfHԱcխ.F;#"4lXv{iʪVSUO?Kӧ)<{U\\0#uI.(I׿ u;`KO/u>;Q=6-[CTQ Q_C%%!ktCZ_EE~MFouNΔ%KNh<=s8=գyZ$wqg]pG=d~ƅOLrs;j8z'䡡ǮX2O11z٩-jLSOنdVV6AilD6p_?uA"p 59c2ΰlh͇f3~~ttkz͚ߥ:㻢ez:]Aqޱޱ7.# HZZ>Xc1N۴iq[}vk*F+55Z_|1 -{ݲysrr̒lCna|7/㹳.x[u㏳4}Wm7k]}*=V]ж-\8S ruuEJJ._elXMAA7ښm O|jiРP]ziPHno2@Ǝ115ʪ6OC˜i9!3JeehjHzh]P]P͙s?>Z?_O]Ν%F/b~!;P;v{MzzٺAbqq]QݴQ]Ş7]w0 D˙.cW|˨: m; O|:p(ewx}7&)b@מkW_""?y/&z?j~ڸÕ<׿m,y^]h,MY5)=:SƎm**SQQ]'mVG٥ agZjLjȐ Zvࣨ/ 5+-UIIܖÍ;gFW O|:Yg06-{{7KXp"9ٵ OZ.]]vz1{1_jms,֒% Ѹqњ<9F3fk„[%4O=4N߿Umъ^Ѱ2}rBB||LFdIIAMMVJeeU+;ZYY:~X:*5]N`ғu[n[Ҷ't]SmmVyorZ>vDZg{yYUU>Z.}{0iRs?֖-C -ھX۷P||.nu[ўsI$kŊ\I3-%%u۾&:3ꫯ|6Y`ξ DG:*-Υ9_Mg;~A˷?Dz \A=l:;ϓJtm??3u#{Zl:ۮ'낷]mcwڠή|kN:]Z>/&=DZeٽL%%u.埓c֟Gmi~B=~GÓ/0YӦŵd{Dҥ'=Z#+ٟwuߪޢǫ+~fܸڱX5JLtX-]z^1С:wQw6l=kr|;VG+{.􅲋6 oݞjQҢ6z 4~-z#~7k|]"}deU룏飏iҜiqs խ0^aۧFVQWV6}I^Q~[i9d=WӜڼ{TΦT.6IrҜq~O_gwW_pxNm˛v}-Dvu)ƿz +s'Y.̨Qƿ-q:l2M+Iw:]orw^92B&}vê-/h]dDp굍AN;D5-D}'ѪE_o=sȐ0/b^7mRSUz]4lXC@W-IJ/;Iz@LL^~yp~. G?0lEG2wlA5+gk޻}:ȑz٭Zw CBt]c?LG#\{z#Vs=fmX_rnm.ܲancW͝;P>;ճZ?0-\8^eeK{@=YYvTnn<=fOA>>&=ĤV*$ôhDƟd?A_?\O#ӦWg9 =:gcǪbEv.Uqq|5xp {)-׊:vJ5*(QDD р!d"5ii%|:T:*!!HӦs$'Ǭ/Vff Հ!:D͙(__ۅVSUsDCsT+vI˗ W_ h1|omyf??GꂻUy￟ӯmt  n]UZZ@+Lrh22*TRR  /Lvx\A"wk1w@1'uЂ%ن>49Riaa~ND@3lX kU]ݨcǪt`UAxq瞛sx__96j~MV+c;Wْl$ .`N"+9,AB쫌J7hj2I<0N^; p**,__}ճZ/D3F\L@8䘵lYN0 FEEhРPM3|p6 HkDA" @ H$DA" @ Hb˖"͝Rsrk2N}}ƶUJ4++9ʪ>t*xm;w?<Nq饺㎍jh[QC# p=:Ryy5XZP78mWUNYzu('Ǭ?I,-YYժhPLL qb5>h9Y:Y:{:UU,@O5)0W Ys|(^[{I)eڴ8W&_qZmiSV) G͍JO/Ք)ݵԸ#>V_ qn/ jlYPmm5kVMԹrGSW+:挻ҫޢkukauXuu4ztde\D&OQ`qKKqF""~Ǭj8aVrr SEE,媫h~ƌlNDg)?֓XTT  mw g:J9L;tP/dŠA?ĭ+ie& aRnyKe.rѣUՒ?>Oպ͒"5_[,V{R͍:D=4oGTk$-[vbb?/Zoظ咤ޚ7>Ha;uNm(sskt+k҆ kѢ4}e$iʔXL3|L?OfscEGh:D6L_hP?=DY;oat/osޒ%O׀xݣ;,a7aBzj:U&#WS3Ǖ|d(0q5K#;tℹ2ycuU-JWrrV0^Y׿I˗_qzC7/Ef%hhܹ`xZ O|W3W{e;y۝(Wʱvbg2[ջ`_=8eeUu%큾[ 8LRj |gދABdMܸP?X3cFfM92BS*(jڷ\瞛3䫵krep9ދ3.Ǝ WQQVSVV>8KÇGk8c3'Q3g+4O6=Z-XKywx]I>/̖ըQͽ~'%I Yg%hȐ08gO1wIڷ\w޹Q55M 'ipegy*.OI]"I:}q(;pq[cmqĭ[$IEu t`>(KuuM6-NGV7V~\-Z4{NwGk޼mX#G*5hP:`lNvh7ʝ'wO$I6.nZ?1MCu%D M+;m0<9V7j /.rrl]'p.&?0#۞<+G_jn}JwN/`zg~a{W\1@꥗J())-u6-^|??I<0Nw˟{n$i/Yެx"]}v1i2#@3'QO>9aO /'I:D=daK=Z%K5w.ɖ\I#O]:`X;USӤ0=tc$y(=vmRŋ󒔘3όIVm\{Co 1bCڹĨ]uk|}Mz챉mUU|p6o.Ғ%'t[ TggN zt9Rѣ#;]:ӎu7oV7]~˖"#@5+AO?=Y!!~Ç+ֺkpʙ0!VrqsfiSm9϶.$拵ls[`?[3 ߧ$nwՃ?,{xV4`@zj$}EFL8߇ J|oIކj^ܹu=R? Sj%ɶ^͛\:+i[]:aC-jy!+I')4OMSP?Mc\}{婟$irUW7ܳT55я9m3L5x}AfiOWt7oVzd3SD{{9ǽA"|}fq\` [X^^}ɓc.@]'_$9ޕܔABj%Zvw,@#9ٓǻmڽۖӧǷ^fkȐ/ˌرv}uCZ]xٵ`;or\~y &rprMұFYuΞcE7ƌgDٸ@cͽl)rا)sh۾h2og-GrxN{ܸ•uG[o{'C]?MN 7)iڴ8mVG+UQѠcر+ `V;(;3;ZmxIfdeU=Gj~CM%)$ :6 ]{t+y뎶•(wzUUz'LhСnoo]I{ bj 93'Q65?dfO~}nuD<1::\:OK(-Dwj;أy㵵2$@Ga.Z#/φ͓h0VLHܗQo'w;bv͚|Y0ȖFSRԯ_rrڼH#GF=7'.VӶmbjگ_poW99V NTq%Pj޺p7e:t{J/6n\qg1-T3 gL'di2UV6AgBy;{QzmZ*wJJFPJJFӣpNaQ [jN=pz,_FYuΞcr8ztd~\v:+A￟͛tCavSno_F_z|>ݹl=]=]n\ݼuW[JuGtko]WA"Ϥ bqcJ4rdVP N'__l+هLASw|1u޼1 s>D`rasm(.n{UԸ@4ڗ̬Ҵiq1]ٶ qǎb56Z9 qpN;vMkw3-іG wtw{kYnt[)-{;no=ko]Wkpʲ޳.2ujlwn6u_(y+msfΌ}msP˻˧;޽/@a(c yСnϏsjE(ow>%,k{%b:fuPKre\6106b͚|=Z?lmۊEk3TF+*j%KO彷uW' O2zG4?] H:H5.ܖ/=׮vGa,]c\yjw?<8mN~~C`bd~g\@طIl (~f&ouM-ۻ'Y_d :l׹J|ulx[yܸ9Y Mzm.z}vj&LvXA>/ g}>bbϹQ^^?뱼ֲJd[)&Ǵ8ko| HёFOS qmcb[-ݽ6m*l՛Q_o /նr9OI+0[XprrW%6s/.w<ؽQ-Yq[@?G[w8c~uCkܨ ~e<]J+WҨޓusԯ_VεMZ`Kn{Ca723hհa".ݱdɉV忴^͍1GXVt%o]m+mD{{;1'L5&';c:ztTZZ/g[W>p?{W 9:zJ?Z]~*Y'92BVV/tP\lQQzT=efVi6-N*#B[I>z챉*3fk܁ھXW_JS*..Piiڿ\AA4)F6:7::@'h~ hӦBm\OΝ*)i=Wfp~(~}[M@]f\͚.RZFG_}UXXmۊU^nk{fp{\,+yݶLKҪUy~ o[J{z$^l8#Ht֋(ن̜oܕn8gN.=z=^EEx\uOOѴi;w+U^^gt2?y9gvG'K[`_}1kŊ\ '͛Zt=up6l(tKGkܕ7W@ϯ_onI+WҨSul-^|48a֭C_tcuyIm~_ #G*䫱c[?<|ڴX}eiAB_#Ծ}s||L7/EwݽB\*MW;m7zIzt}Vmllzjm)uu^}jZI6l(ƍjh͟?GmֺuʪIÇ/ɶW_eǤN1}:͍WEE(55Z3gǫzurrjkҰad;bȨPqquY m^NW*YᐩQ5*iJV{ꜽ54XqcKU^ޠ 9s޲x~!MsbE22*<~!! ﵅S r$DA" @ H$DA" @ H$DA" @L IDAT H$DDA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" ̓O>.s^=cǎr1]vuy\sRRRx>ׯE]d 2D?lAjjp_plǏ$)--Ufff?WWW׫hwcc~}}~SSSLwЅ^=ڭ}544/_/[ W& z|No?l01[?jjj/BӧOW```tR#@bѻa&$Zcʔ)^M;/B]p.ߖ$%%% /oO?TfY!!!t&~8$- ui?%I?O5oziӦM.H>>o$͙3^l{ڵkf K/T\pL&SRUUuI;<f˖-ui„ ?]N|}Gڶm3gG?"##Б#GtqIRnn.]4Oy_RSSR\nuuu/j*+))IƍӼyf3F jsVR}}5~V߿֯_+33Sqqq8p~kĈתU$I\r$iƍ8npګa/&I_|V{=}W5j.\ +K~Z%YΪ}GEqS( BDK"6X {裱x` ͛7leffJuYYYҺuk ݻw{'H-Z޼yJRmdd$fffү_?>PP,Ip  ( qڴi@%--Mg~ooo C5(HT?>7H P]1ݻW͛K=Hl޼v-_ ”"##u}TPAȜ9s4GHƍ%++Kv!Bbbbu[[[ud $6kLg;w(i>\*#vss | %)3u>_6Ç%3gb֬Yh׮!O_L4IO:ՠWөS'Lӭ[7N:UwU>}ZQaƍvxx8yx7uZ*wJ=Dž `EAZrqqAJJ RRR֥z"{Qa=ZK*UGyK 2s!VH7HDd =Ghڴ4;wFΝ [Q?z-`ee'Obbb_a ۴iwjiii|Pm_vM #sꢞ+W˗cXt)g#罺O"..ϟǁe˖BԫWOG-! )31H$"WxRRRիW/  L[vm\tXW}zPUF Ɂ[iϞ=˗/ qΝEkQ ѣ} EHH"""p-;hE u5KZf""bHDJ\ff?ib ?(^4[R999ʼ~pvvΏ%|}}<{稏9c۶mJվ;}#G"##Ck;۷oŋ|l4P0D$Qh_3͏?7ڵkQ$µml2|Wm[}Gř3gt_tA3q=a M?h  ӪU+nݺW#z*OXt)T˗W\Y9ѣGKe(?Uf""DDT '?7-^;42!C.'>|лwo7i$@JJ z\bݺum666JQQQ0agw -ԏoӦ UشiaA||| V1x`<|VVV۷/gw9tK bVdw?:4fdd࣏>BhhR0T^""*>@8={jlM6ʺ]7|#ҩS' GGG>3%5O)H ]߄""#GTۋҴiS ҵkWҋbÆ bdd$V/3f̐=zsss9~I\=yD۷:8x`)"믿rI?Kʕە>>J ott4bcc1~xܿ_o6mһ8q^6* &MIDDҸQZ54m޽;vڅGCWǏM4)r-[رcHJJB*Uo۶ "///b5j+A"ѫƼyHŋG>}УG;L?֭֭[c 0bjsss?#** ptt  %1c`ǎXn&LN:!44wٳIII?~<?8;8pЦM;Ʊcp}[x5[:tH_xx8za„ W=۹s';xK.h߾~v> Ʀ4;n݊'j߼y3ѰaCAbQP_ GXX]gggL0/q[KR6333!..Nnmp1ܹsM6E⢑&!!?#\Jwww?vvv ͓\IMM??? -,,F[}(CCClܸQ#P M6{)ժU&nR[^= 6SѣGJ'''9s挲|ҥ@&O\+?[ڵKI.dŊnW$ٳHisoF˗uiÂڨJ*ry͕Zȴi n}I˦+HOreggȥKQ*TחJ*ٳg@f̘T^pu9s`oou`mm5k֠f͚+VWFڵb <|`gg?!C4SL8'NDժUabbR|pppP٭[7'''e}ܼyS[ܲgggcƌT;HLL4=.\J*!((Hׯ).\X68p D[lXe4j: ;w.7n 066addQgm}iM-==-+-Z}:|||x""҃7nl۶MkЙRSS;:ԭ[-Zvڅٳ8<#@5`nnKKK 4H+}bb"dkl#,, 铓ѤI7Ncyzz:V^FժUTdeeYfZw=r|PfccOOO޽[y Xĉ8{Aw8p Ξ= leQ6TV ֭CzzƺUVaٲe066ƅ Pzuy$]]]QD"Rqq >\t2e T*5޻Zp!233Ѯ];lܸׯ_Gxx8v튴4L6McFFF2e ={m۶x!fΜ sssTV  Exx8>}W_y`(.] HUq^ǻpBdggcǎ C||]#̝;W;wkkkt-Z3g(>|2O"e]vM|7ߝzs߉ yyՓ'"bmm->>>oAJe '1? }'8mXPjWSSS-ն(NۗlI˓Ev7nQGGG7|SnܸFRZ?Q<|QQQZn {{{4pwwѣGq5DFF -[D͚5y];v iii@ӦMabb89r7[oUx"?kkk :#XVًǛ(\~ 4@ammaiQYŋ.۝;w )) 4@6m| q XYYՕs$A"K(HDDD"D""""""bHDDDDDD8O"Khʕy|'|ܔ$D""""""bHDr|2fϞ}Mٳgo1x?O^xYXh>#9ݻ1{l̝;yyy:lݺgFNNο_/_K,M"!"z~>Etͅ)\]]qeӷo_޽/m]:Ƥ$DFFyV ?L#66*UӧQv"uuuŕ+WFǎ >ׯGFF5EHMMŵk}u;DDBz¤I^c~䘢EO>+Wjժ-Wo8O"ѿШQxx1I&ʷa@`` {=l۶ =_ID ^ B\\Ǝp!99Ä P^=%mXX0i$"11#GD 4P4n:tPGFF",, /^==zHIsA$$$`̘1رc֭[ &SNHHH?+W@RǏcP޽g$%%QFx"|}}? BoΝ8v.]}+?|02227>>>سgw^ӧ[PaF_~ xwQbE~gDEE!11°a`aaaP=vZ@o G-tRQT) 6baa!JZ___155?\HPP־>c ʲ T*qqq333 } %TREv!FFF@~'ٷoT* NNNRF  +W;wlP6l_93gHjVok3=\CD ƌ3,;v,LMM3OZЪU+8p>Tc>3gn:fԬY}ƶ>}'bĉZ*p5ԭ[W1c ofkff}ٳxT5-- nXp!*U XYY~zb…ӧOcԩSZT*O>Ehhh(j7jCXX駟"::k֬Q3;;; <~!}`Ȑ!ׯO%$$ $$Xt22'Mabb{DDT$b~m@\r2dsNeYHH( ** ްFnnQTh׮޽7ojl;{w* 8u&Ls,--1}tl۶MY SSS%')) IIIݻ7,--5U^Z n;wѣG>|c.l~-[bҤIsۜ4iBBBpY8}… ˃V޾}E}'Ӑc&""DD,7255֭[-[ nnn-m`jjY~= 55UcuHHx ,_\2y߿N94{ppp(0o||ۣ[nZϟ?/b˖-0a޲gGvZmϘ1hSL[o8lӧʗ/й>33S)KA}CC$+ԯ_4ޯ{ޕ+W@WZ }a8|0,--1h e}5`nn\-11O<јyHNN t;vĢE0gG? 3h Z [n޽{akk^zO}'+&&FTX2yfdggcԨQ/>>011~ZLHH@DDФIiLLLп6nX'O7n`(WժUBCCOիW}>- *`ڴiHJJ78˗//̙3 VVLDD%Y@^7Ș1cݻZyF-$55Uk8Ȏ;ԭ[Wtۮ]RJemm-˖-HN=ځQloܸqcv효T*%O:tHk> +++qttk+<} NF'(u?_#_VV4nX$>>^DDv)jѢ9sFËݧrrr䣏>j׀Ӛ'QW9f""*{F^,\pHMMEݺun襥ÇBLL кuk9'O7n E#ŋ8~81tPe@Gcǎ?>fϞ]2%''#** ׯ_G мysX[[4uݻwq1M6 p4noANHHS֭[9e:f""*DDJ}*?.3l0 Fد'k$+u)w{%B r%㕻m۶ ̘1cˠ$tɓ'ҵkW% ^'8::Jrr2$z̠1>}(OYFDD$77WVZ]߿~7lؠ_1?~]vf͚???_ccc5 ӧOӧ;w.]vXt),--sw}VZ>6k޼ß5)Ǝ3MÆ ѱcGݻG#{022իq-ܽ{+J;֑#GsNܺu pww__deeѣ]N<[ƍGF0b$Z2effb׮]8z(޽*UCRzFF;###t"M6!,, 4Y > ""111HHH=jԨ___ԯ__[Ae1N8|ݻضm xyy666NQ^C!##PvBӷj 7obŊ 'K.zǵkה|}`۶m8tRRR䄁M66vލ{ݻVZjjի~:jժWWW>Ν;ؿe/5j oƥKunf/ 9g;ԩc͚56l~"/I}ux=_ΝCff&ѧOxyyX4^={yyy߉ڵ+,X\;wNsڵkѣGk322DDD˸t6l WEz|G@ԩS`' UV=n8^qӧOuRJ/pi}h "oIݺuuST2sL|T\%$$hwwwe$v$'"2zh 6軡AbDDԪUKIgϞbۊ$v] Q?}cjj*gϞ}Abia󂙙`E)))煭[KC/ئMXj޽޽{GJe|;wV~$(uV' !ǎJ*){,$͛7 QF.%Hlݺu_zǎ+ Yf:߹sGoAe SNБ:{mq9s-_KrW\[[[xJ|޽{u[v*IyK2ObttmVMm۶ xy%ϩS֫Ç묯>@v+W,QFʨx:G\18n8NMMUv~JCڵkGK~ R+ q2x`O޽7z綢]%=g$r^{>. 40yaɅ~}ie;|\OJ$<<\+={0޼8~ qtSRܿ'ND GGG߿̙33x-#F\^ZҖIw*U`bbR}_Ho޼9|MiVݻ@ 2Š{...HIIAJJ RlSNz٭[7N:UjOW=q|W֭2Dvv6~W̞=xwm4jHJHH@DDwy ۷[_sUZSLѹgsFS]zUgرc~z,-ҰyflܸQsNe%JXn]m/K]T*Tw}B``࿢N:™3g^z(b *ԃQ\rֈJ{t~/ѿG7% 00~rܹsgZ 5j(4իq5T^]EjqԫWOrCG,}aUTQFE=ZQ_?}qqq8<8-[j6mZ`: >>L۩|:m4L6 YYY}v 77֭˗J?>n݊/BY Aj\r몰/_...z׷l4aiiY>0x`HNNuwyprrΡeUe7T&LsdM+++m۶SN(ʹE{i1gίluttD͚5 =/X |珠 $$$h-S^Ǐk׮8s ___ 55[n`ȑ#Jx:8,_3?~ƍ˗qi|>gϞ'`Æ ͽoeh #nBBxooo^SNEJJ ك={ׯcȑe,JҥKK|/ɔ]y.e˖HKKøqI^ž{E9/ǣYf/E?֮]!ͯSN:^̙3055޽{Ѽyse-F wwwiN·~ǫSˠ^sL 5???deeøqtiOdd$.\/K,\~oܸq響s_Q-`رc M46mXZS.vz=y$nݺʕ+k7Kvp4l7H R ި[nzꩧvZ-^!$|N qmذAFRNN L9sHzQa/!]w}R>}V}V`8q~m+tl8gY~+QESz},XYfcǎ:p@彽Ojʕ:q26m[M>ݺ#TɋJu#CE^^^=zF||rw˵[Z+VH 3f8~"Op%i޽1XmQԳ}}'?ǏŋK4MllotDGG7,pY)22u5kf]1(>[j֭po\]>,www8ͫ(]pEUĪ q̮cfϞڵk+))N~{ҥBd=sغukJYe}e?|~,( xIo_yzuۭg7… ,///͞==mݺUiii޽{Ӱ7޽$),,LGqZʕ+8pXk׮2[leZg^z>^&ꪌ ܏?2335i$Z"ѣL/C߿_ƍt[ҡCV-[W++͛5x`~?~|}%I۶m$=SUӂ 駟vE 2Diiirssӻ[!/tzbΜ9֗r㭘7$͘1C;vVǙ 1޲^o5a;wꫯMΝK/T5@>rHǫVZIҬY#0=q2_L@Vѣ-߭[7 4axXX$)ǍY~>#yyy_Y:kׯԡCSJJVXDhžKZl;]jȑұcԩSر^{M=9s(++K;v,QTnݺ9'>>?cƌ/ѢEmٌ1$$$X"##Nk /zoذvÆ ݸ}:ZjIfӦM%Z'pm}||̒%K./&&6)oݧOn<<<e̲e̥KL &L(ѺGFFZxbcٜ[u-8qvĉR{fڴiӳϘy/RyvH252e7y(Q?rnjS!me}ؔ)S̊+ KoN>ue=~=*cǎjw>6|`I̟?:9st={4qqq8\Lu7*,,LYYY-*n]vQv4x`j\U9y֯_h* @ÇWƍ%Iϟ/777 :TOxl6_~/.|ZJTbbڵk>TgNP5eMJJ0OD;w& PٳGgΜ޽{`I*3 r曊… i իXwܹ 5ͯjcǎWFF w}WuԩԩSG^^^_>,t\ $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $Xh-_~F_}rM֑O=uXCK_3꫻%I_~C;[ZZӋ-.kX͟R|E~~ jkLqg^Sjj7PQBwRݺnótB~NgO…=Um~zL nI9B❧_&3~M_7'4mnM1踦"E;:*FJbkѢqSff^2fgkDۗ,luwi,|yEG*..]R˖۷|| z5GW$I=fӺߟ$IzƪS[dO 2ur$)!!Cw_TZ.Vz $ޖrr򕝝/IjԨ2%k_"?BC;hpTi(6q?K/ݧq~U?Kv$ǐeYO!nSs۶%j۶DyyyhӦe'Bmi߾KϿhM;(##OR>Kں5AIIY>r5]bb|sՠ hV)%%G6י3ih5P~+mu鮻ji۶DƦϯynթSZ!}QHԥۻ|i(##OS_Z4yr3Ի5n~עEOxg/߯_ܮ'js hZ*>>Cԩեn]Uv|%&fڵ\IҠA-5yrw_ԩSWwT JRÆ_ֳnѵkZ^}O*IoR{W OPUF5vxje7>}^=ǦwӾ}C=mz ׯ&Y4p$9rEg^S֞$)<|`0gsQ4i;ti6߿ø+h(J܍]5d|_/'$dɓRS>C7+))KVg'cc5lfI*0\6lӔ)Ǜ6/W=X99ڳJVJJ56mgϦU:g]֭OŋP˖c65kV,lգGSuUuؽ침|lYO/[z $ D!@HD!@HD!p+բ j>H3gWIDAT,tZn-???[!!!rqqk.M6M]?.K.k׮7ϯZ>tIR^Dk׮|$… +NСC%I{f6?MV'Vm @H]rE111E9}nݪ9s>… [3::ZSFF5S{q%''Yfj۶mqyyyvɩ6|YI,YO>D 4(v;w*"":egg[mWmpb?SEo꺍wZnnn+::ZK,QllvޭQFi۶m5e˔uף>ڵkW[Zj&L>OYYYZz^|Sjݺտ˿zս{w7i͛s0DT/CH{w3hƍڱc,Y#FԘu;s$_~۷mܪָqc]|YK.-6$kH]tW 5tJNN^x:C5wziΜ9?sOOO;bUmᒤ0%''Yvǎ:5j^zaxiժZhx9r[E1FK.պuԮ];M2||r߿_W\Q&MaÆaÆE֡FGGԩS:w$ڸq,<ˍT\\%]qFO>NyfYFqqqlѣ YYYe%&&[1bD%,:t蠣GjʕB~VwzS(ڵKQQQfSVߡ|ZZv)IݻiPvvl"I0`$iϞ=tYl6hԨQW^ m\[i,77W˗/צM-Z(88X=zYv~%&&e˖޽kl\T{5ޔ)S$#Y6??4hH2O=5<&&H2j2yyyfԨQ<{U`_|_5Ɵ&M+VL{Yv*˳ѣG;fYe3N6t]v___5h̞=>c{I3͛77̆ LHHdP6##Ì5ʸ8;vtVmk^{5mѢ9|p||||$3rbV6.4ǂ6p t:43p@k@% $a!q˖-VtzbH2& L8*7gkM3̈#LÆ $f֭[Nn:j|A#PjrrrJFeYvyxbj^#tф?ONOtb$aÆYfy晠 +L;,c߾}H27F2ͫjy'eǎ/:-uV#4ndggCCCzu6y뭷5n̙&M2̙3_mFawֆ2$m\[Ieۍmҽ{wSn]oŋH2SNFy?O??}e 7صkiӦUv'...<3&.. :u0رc{1ʪiƌc$ROy]c̰aÌ$3a„"$g9:u5>66gۛ'OҥKO>FW9{lB1_cAyf_:uꘈ_:>\b4iRmJkn3#F~?O?|AuSO=c{ZtZhQ`ܼy󔖖&-XavX̷&n:T7a==j֬$) @'N,0aÆֱ~<xYl?k֬ѣGwyG ,(tj~tځ$/2myUKjԨQNlٲI]xx$Gѣ>t͛['۷o/s/<i Mo3ƍs릧ڷo={:|3W9:w\:uRTTN:U!ӖWU.> 1:::錽ӧOn;wVDD;?gg-322tI_ر?ڤO&eu:n?lݺuӷiӦ@N[^UjҤIO׬Y5k[ի?-] FVҒ%Kk.TҶ+j/XPQ_qۛ0!Dڵ_,/{ r%UړἼ}VڶmG}T[Z<%z[qĉz}|*`W>?pkq Ju)I{-1FN$+bڪwut"޽[˗/֭<콜.]TZbjj/?`͘1YYY|*`W>_ $ $mٲENˬ^z^^VeݻKte\*((ؓ٣ (!!AM6O_ux&%f4k,9RQQQܹ+???:tH7oVFFj׮yx%ByzWݺu%IׯG}$///O/+www͟?_STT:t@=cJIIъ+hL׮]tI^Ҳet1uU#G;^NRǎuAjڴi R@@y+6}?pxSL1$[yX󈌌,ŋfk+e1cI&$$LXeg-*fKHH(sss2n|}}YdI\~}#|㍫d5kfʄI_~On<<<j̲e̥KL &L0i KHHpچ+tjժe$M6c$#G[qY RlN:Iw:~Fѣ.>'^uiJIIfS``  J*]V7nTXX?:li׮]||||Ԯ]; <غYԯғO'S -TuujG^QLL?x>tUh0H~~:,i0>H42~L7.i6eXtv5m8DI4hP@\]]$TUU7\knUaajƌk5p`w~ezse]\2Ivjjj4cƳz[*I2t}f]zjORbbRS776j8-ΌھS5me0H}=/jy Unn|-]qŹ袉? }u#uppRu6Ree*22L^{N:~Abg&~`zJLU=&F\YY:GQQQ7wNg)55K&+<֜ uyj.x=t s3h,}7*::R!zezU6o<*AJLLO^A`ΐ#gggh2jjj+M7Ԧi$L뭟~ڪ[nyd%ӟ5c߿$i䑊zNzPVVwh4ׇ~kdJLޡ˟UPPdp:28P`9+a2U)>>Uť80B~ KQVVWuQTTzo6jޝ(77 үŴ pZk'#ELG" 0HǂDz 30e%'g(,ƌ;%1H̞zL&Y/??ojgC'u%bmOugSнIᣪio&%$Is{1vVrqqjonn./nzcc]%% 3uvyғ݌Kg%~wKTyIrr2j4a0J[yA$Uw(>>E}#C$N< H4 %D D@-#EEO" H5[HO"lI<$ 0q D@]5[HO"$lI$ ` Ib = g DlL&Mf@\]KKURR-Iv3F** w,83 799ulQvv@Wd&?R&U˺*giÅ&UT%I~~.rwwv :"eeYɠ 7vn h܁5ksc5rd$ϓ[[nҔ)(6Z*]~IV<Ӯ]y={ѣ{8 7TDW(Ju[x 1f~znu;^:>ӧweH/;T?ujviŊsٹ.emr7iN{))#>}.lP88Mѓ|]&3BU$//gzfP0c/ZvP') ٝ m暟T^n'*Uj23+T^^mlTUew :m8$2q N67'7O钤zXGNK}~$WjܑHЍ6ݕ :=7D?e-G%/Sm=| .k\K mOX';j4 +St;#Wvݡ,믃h]Y / դI]:iç1-酆z*:_=[uҐ+kΜ#tTir :!A"p hZ,·#Bp|~}$ܯѣi YoQgMK{oRkW$i˖\ Dt ) LJK+SIIBBi{u#fʔS)ASAA:9R EFz)$ģK(W8T(=\..FtZsr}1ڶ-Wee*Ň4k֐NɯZiie3IAAVBvG6 ݣGuh,W/7}+ng1"$fgWܪר8R^rX 55%%(?R. K86wcPgzII)Unn<<ꡠ ~ 28uGAJH(ֿ}P[g4tytm ФwMU~~||\teꪾٳgѪU-|p сz=/$Mo;qڴ)GUUfyz:#׿kSps^xa$Sta6̿]ַgO}7A۶d߶]xaL!쬞DɬNbY, ;6H]cͳ=m'IJJ*|@_|yfz0]qENv*U_}*I}>cFώk{?VeIZS6mM.+Hf͊Qt֮=K㕘h_}zmiLfN"UEE6_3gQto1hɒCڶ-Ot5jT@hI=DkP^O㒒*!}}JK>h.R]Ժ׬s2ЭDi6?pTO?ŽdSLdd:[jYWW\\?LҊG4~l ZYYڻz"/+ў=z*+nv;*Ez}Gj-[/H…cxjz=}zuvΗlт{[| }m꣏ܶr}A:M ic -5{V%$7"mڔMrtEaz챑 .vM&|~%|uMQ?>Ȗ~ll&ݬ ַo_UU>.sێʿ#bE=t Pyy,ԦM9.\Ggé`zhOߠ* >}CiiٲD.:EDxܬ]rsg,)?R3g%K&*2һʸ#zzj]دF 7V laWk ]|qvyvޚ81X~~(O?e opvw޶$QX#.ԶN?G@UٶΒԳ܌ǖ'kL99ta1uk~!vsn=]rss%iPUT_qcNewltñ3A[}>T6~xm?ըQ=椤bmܘm ;S[{\N "FI_]Oowߍ$%%ȑee՚?'2*Gsjx@JI)UME ՘1=/|@yyQ:묐wN;32ꂨK/ 6~уnlQNN6ogtDFzkRk}^;/۞=vgGG@mݚ.+3O67؆IҬYCtU}_qqo8לfִUϙk]3fD'w3jU/$}#99X/:/;ۅy#;=eXol>\7tp{ZSX6Snzv]@-\hYRR*zgЀuux}m_\\ L vccG:SWScLqq\]z:<-3\u ۍrNNڻOs*4v-ߕK.3`[ohw?t2}vD;n'h'z*(0]2 _ .K墨/ qww҃km0!Hl9w:M:@؂djNՁ}䓱uiܘ1=Suܻ@[teS \WFc|}]4kVmك v%7l_}?/Gꭹm}nGWcY,&JM-ڵ_'Iﹸu} jiێw}1>ܿr_GYHA3gzj1+ͯod. mTTMѣۣe=6,^g(ӆ YM.;|xnn&Ou><@W^kPvvCiܙoE Ijǎnt-Y2QKLԅ6?c`^^em/ WI\|ql_m^wQ-MVoYu9)q l]UOǻ~-ž0WaԾΥ; vѮ\/WE!!0))% l4ڡ>M;=ꩌ2Y,CmEKz+66Khs֭TvvJK{cM~: +'}ȐYrs+[ voOWdd2kϞʁV-Z11-n㷻lQgjט`菱]~yfߑzttzl~0ҦymJWkM{su5j0?5/}D*Hz&&U߫Rsh4hT]mlѷߦojС иqA1"N^^z={$<`Tbu/P]F߶ 3X{wKRR)563gkv.`w5Bwmp͞=Sn^w;6cЉzj9mI$r\owk:wj;-Ms;z!X:ó{mJީs}{.WϞ0|vw>;D]/YsT {5vlf'mޭ$qoU9;䦬cuW!b+UXhқookxam'$ĭUdvƾYm3z;\R=elmz9ccWS^{ӺX d y'N0:(P¿nV~>vVp{#Sjh&eٷ^yeKvQ[} lj'jѢ1 f}aڼ9WUͭ/# o"t\].PZ[~ VfQiie_caϞS߾ފҠA ԅnվR5XVfn6TVZ::`3tpzmǖځhZ]yl> VO_QQ#Yz=Lc-}NN ;8-BFC}zGuFYފM7EZ;wi˖}הU)CȚK̓&M ֤Ih}Q^|q$-ЈN_GVk6pg٭>:z?e=-h48ك#msgN lK/k)ۖnX)=h u=>vO=Fvd@ѝ'ԖJK+vtrX{d{bw8''UHP={ W'#IO/…$Y_#N['IJJ/ƌ jY/.nSؖ# _N&Y))v/yoСucG23GE8eWHH(kK-#hɈڸ1[>=哓KTevq{ :^UUKedۍd设:^RRJ^#4lIYfe?sP^/ߣbd2룏ZL~}֯ϔS^Lݹ,CJJ>4Y~ի3ZL$S֩}u-myf1"vQ]mGn6jXlKs{uʋů5/^6[v9'Զd\\6omv?>lL}G v;:؞c^[?˻d0^sHi^ioMUvvev0O ms2uuOG\v͚ }\~ߜA|zҎ.X߾}ǽʯKq(EEY'iu]qEa;=ܞcXu}Eۭ^]|5=gmW{Fllݻ^xāܙ/ Z! IDATL}3ۮwll1HZreL&s_9)ꬺڢwt\fk" <8Qx&L$]tQ2E7flh-ʾꪾb}mZz` p~-? Z7ܰV6H&+}Cz6-JV)5L&YwݵQӧG"jv}{]y͞1e~(sztWLܜTYYJ͙U=4\ា "-^|H"U)!.tΞ=LSWUYŚ:gsO&O*WZL&BC=Q~/vfۍ/Ґ!'h'3'UǠ!CnF$'o۬9s^QP`7ߤ饗ڢHo>\ҭ}}]TTT5}z͘1XGQZ(uo+"X+e4ZWx͛7ȿ9喁Z$옋ӢEl?1yF:_^?NjqY'-X0FwݵQ&Lf-^|HQUUS5eJ]zR^~~93F $kbR}AA4ۤS##z 談'%٢2=⮮F.P`y'^/ttCg*~Q>^*-ҥճ;SǠ رAڼ9Ƕk&WW'MuŽ5ztmCd6K+WB{&[=,]??ثNzN] 0MKLeEM}o6[NFFM:@o5YL͹AfEA^wޙ}OX]Θ1USK!o5YcO`2κmzGgH Տb}%O/xv sw9"po)ܜ:}_ȶ{U}->X卼ұ3AFAO=c'Uɩ4u=Ĩnf04wHMn]GƎ [oMn{*;)J%ᇣڳ'_rwwR߾^[]֮'CM72\reeUaa چIvڵ/V~~ܜ쮱ctHzz*U(5LN g謳BlCZkj,Dmؐev][A%5t_G}t}l>]k}h1zuɾQmoRmzt486w_ֆ Y:rT ppEFztۓTJQ\\LuQd. TGDLYX_3'h 6D@sPyd$pE6|bb-@vnv Hd QvvJK\C^;qw߭{۹ VEݎAc}b7}ujC4o}u$/n)x&-Ujڴ vSO/yx8).Xu3 ҃ӵFRx$NEo0O͜ H˴zuʔVjO/S&l L\ H$DA" @p$$+9ġ@7*.H)<ܓlW=4n\҅23˵woր>'l=L&֯ϔƎ :˭  4NCy8֯ /tf+|=n @ž2U~Ps<j쭺'Eؙ]@nj$WW&?jԴiQ Eђ%e6[t10'ɗ$ %t+:OKN}\]>/ڴA"$ߛ\ܜtm(RUeVNN=5u ػ@Ίd2k`?ϯ.R]IKIy1q .QScdn5wEiUbilQuf|ܜ>-G-ݒjKh~f}Ze7)&OFֹـARz KQ52-'ܚ˻.m[fEUUfڌ#jGɮjc-GP=:ծ]?نZzhoɮ]z8_|zpִi֪{n*gw|aeeU((M#Gj֬! gO5sffǶ+9D˖A|%I+WOuPG[n('}]vQۅկ|pXG1"Aշz>} qڹ3OEEUtְah}8vK}m֘1=t}䓻n]. TO?=ZubO?g$qF{oj4-_~Xl=pegWHXP`#lSTh.Ӗ-z -[.S˗ֶmy;/T3gE[ꭷ┐P,I$}U|2VF|mղeIڴ)Gee&Y(,̱ɡ6nֲeڿP&99Է6RW_ݷ֑yS`K߲[qڽ@E~j-YrHRY,RdM۶uܚ6mlhMGi}?E(5L۶Š+(\"Y?GfCgO-KO?Oh޽:rTʕCBCnK/{rmڔbegWI`gvkŊd9;/'S%KilxyzNYl2A^EEwSRJiSNvME6娤Awʬ?iKgǎ<Ιp48PMr橛oޠ#GJd=֭ڢ|4jT*O?զM9z3շoݐ>ɬٳh,hҤΝ9s&O$ j :vצM9M \2M%իfl9ggbc{I;v/(9DKLTZZ*+ͭQ7mؐh~Po'I><@nڻ7_kՎZl}7A/_NNkbb}v 骫:2 11X|޽=5yrJgOn$@1#\7ݴ^yy0Gg"%&kr9jS&_UZZ??H/MS7f+#\O:BW\ѧA;ܰ!$:Z͵ɮjcٳ@O= / W\23{ z 5ʺU^f4gtHoq [(I]!A(}q2{m$;iC7f+%yOl7 Q(塽{ iSN︸sc+g0Wd4 ][7~]iӢ.VGn^h?`2 Zh-@$gg+Zg֦M9Z2MyG]$?!\`wUs߾Y,˫'qvÙ}}]t9!d+yVW[x!yx8ںv\Ma{VDbcURR6-Uz }]$)$Cwm7p$֨ٳٽeÆ,_ .k4 9;}gٲDIEmڀb^{{;O&׭'FW]W=z4|vҹ u 8UiʪЕWm2AUiiu{W'袋뵼F|fN[GWiʔzx8),SfEٕCM-))D~ k wG3\Mɮjc?HfKҠ|*TTTm%W!(=LNN͚e22%YlVc_Է:-'/Reeߧij/ԷnUZZ]Z~Pg5+Ffmwߥ5`F3 ָqA-ڴ[2yjpdJk0iS5-Xd3yz:{5_aa]rH4~|O.!Ct5vm"JI{|Fvv~5[eJK+%/UC:*?۞ >^q5@M| c {5vlƏҹ{f:nMvU+/QBB""%=묐\%$81疧z/-VuEnnNV l1>>."SURbqwoζ AG KS+ՊL:Tb-_~XzXݣMڴ[y+hƄmb̲11~M^ȑF.ɗQZWVrxgϖ]LfW/^^X"//3JJ*nuXTT UScA:)={ .ʻ~hZ tq1jZ"YWk^իӵp^=]|q6qsm+ژ$_(hP\zC N(__h4hnffmd}^̔!Ѡ&9z89|go50M:H:3\m[fުwm֤ݚgd2+9D=zzrs+ce]RR d0HC_7vQ}`rr*5bDHrrfKݐޓdA *U6;+1c-{+[ӧ ,֩-Qy{h4Uj 7 7SQQ~-[~={ s{&6f44$ғx& BSd\t~ib..F+7R% ^UeM؋k'Ԓ%&>sjIK&wGnISTWe6[l W^^_ܧ78ȅzd7~bb>) .kl~MR~E{~m oJԋSS˴~}4n\AΝyڷP&O6yFܑr먼KKuuߩ47?(IFA\):q̒%}{ͧ / kMA͖6qSmXK`S3-ڿP~~0DeY'YpL& ݻO?e6T9˗ڶ-O?qV?EbΪY{Y㏓]ql 9|[ݿE{7XIoqH QNN,mᒎԇidyz:7&<=魊mؐ`{n> Rokpa߾B-^|bloj+\-:I ˗'6H]`8PYm鐚Zj=6X4mZTec5xjlCEzcAʭ#޻:$[y\{.ܣb6Z~hϧW}_$lA]+5kf~ EDx)!X~R}t-}/SԧU5kϏ&ͭTEEMʭ G 'h4h„ VjŊdmْ(=0[Ϩ#U^^[s|amGq[j]*QC̞zuz]Yi[%I/<^' @doLC6diκaczaZ륗驧v>3 喁NY3Y?M6db멧F+:گ˷ĉ=u5Z-۾0O_[|m+OرAz6ׇ#i7 K.(Lzx-ZQW_W3g4`߬b=ȶcN~ή_. iʔzZ֬LjX-[ÇK U߆*;B[ᇷ>KmEEjB͞Ejٲ|megWhݺLruww=\//Oց3g]7wHk2E?]o1I[Gwo\]z1_ti.ϵF{cjӦ[W^9 5kFhS&5Lds<"0X "B1c5gԟo_VPڽ;_Z ޺X_]TQQ}5d:|[}uYMΰXk۶\>\|ztנAMև#iGrrvWnn=5rd`wKKqc)UH&MlO}ik;٢-[r_$wwg 쫁}TVh44|Ǝ jq{wׁ*/QX&Ov IDAT55]+*G٠*Y*>uv:2[#GJ|`-T~~ztWDF h-uܜhc@mT?H t@5DA"S\@e0( 6D =DA" @ H$DA" @ H$DA" @ H$DA" @A" @ H$DA" @ H$DA" @ H$DA" @ H$@ H$DA" @ H$DA" @ H$DA" @ H$ H$DA" @ H$DA" M8S۰!Ko׮4F ЬYC$I3gnRQQ.0LK? A$?ߤݻە*7RÇSO6:FVTT͛s$I^4ȷbb(H33/ԍ7,I:`P )kEME&Y,m~UYEEUZUy$ܪ*s$Lf]F%%40A 7=A֮=K2-ru5jM䳐JK{ t9R*It֠AH~FCi$%w~} QgCW^W׫=NUTk#;`+K[ziJEP"%h5DQԐ&%삂( (E^ea{3;8{gfޯgwsgsŐ!7xC(,l 7tc پ>~ՙp]0lX{|Q.VuzN>f;ǚ5gPPHI„ >HIb#""""b?^kjСjO;q=qス].{p5|g^oh0cϞ SxׇOp~X,im+Ŷm,i++yص~8QQl<'""""b؆__t;{$V[eNlx6-]-.nĽZesʔ;618z|ryyر<xc 46o.Ƴh̘ ÆGbb$FE~[>r>@~cԐw#?StuuAff,QVfđ#ո 1a̘t|s7tCxA6"/W1Il;JJ 4(/|CY^HKEjػ)I\jkMhg)S:FLuuqcgWwR1~?ٵb[ѣq՝?!7ka0َ˖^W^C:o9fg!==wݵ 'rڴ_fq)=VÇY`߻V]vl^^^=0cFgKÂ{VuiSJJ Y8$X WuV LCqz}HHDG0wn?^ѡC,IbңG˖9%rwL&&Fbd=Z?X*Vٳ]ȑ3ac0qbf^Ɉѹ5));$1[$RXtrR@u颇*t&ZgZώ-SSq{D̈ )aW{Ui9e"""""$0_ٷUUAd.i E;L8P쫿IA""""`Kb f  `Q6 ޯ $%E76Z{zD(Z[2i9VMy9]^r:x'Ŷy|I*CDDDDD$ʧ2Vl(Z# 44kWyømX``3uuflVv3n-tG\\D+1I$&MT|#Z]?ԩ: YT/=𭷎]NJL*JDDDDDLɃ(̚kW9]j"8rOX"#>=0~|_G0Y$^}9vn}%""""{!{T*|m!l)a퐔gp@-ip6bÆ"L5KFBB$TOqW"""""jylIÇСC}^0۾};rss޽{_eh޽8qwsNft,䳍7"77f0$ԩSDީS0|wߍq9ͣСCO?HKKC׮]/߿0`bcc/2={]v<ܨȑ#aZe˖6$,و# """&5vX;w}W{!C<\|TΝs^eB=ھ};V+"""0tPeY}}=~ȑ#"" )Wccc1`V`.$޷sjl#ڵ Çg@ĖU lllľ}k׮E^^z=F;QQQnS[[իWcΝ(,,D׮]1l0̚5 :i~M6!""]vGVV.\m^z)"##8|0=vo~$Ԅ 6@/b7|̙3HHHQpmy<^%%%Xr%<2`Сmǎ$aÙ3gtM޽{ȑ#Xj= F1cnCTTv܉2 <A@]PZZ u֩ϛÇ AP[[e˖a߾}1sL]Y6LTSNdʕ+qFTTTC[@nݺ~)rssѾ}{L23gCynsx;=#>>^xwNIIAYY/_h4bĈ둑8{>i("##{~sN1vX.HFfXhwܠA޽{o>|XO][n zެXBIIIj:L{wEff%&&-[-%ƽ{7o}uQF&.9r8u1Xn `pVWW'nfh4'o+ D}@o>}ܞꪫ`xb촮8[o\ޗx+? rrrđ#GİaÜ!֭['jjjĜ9s\׿o.-f0dsy 믿^=^󎈎vZ&==]|7!#ѹIbnݪVVXu_|Q"--M$''s˗zˡR;,k25\PYy… ̙3׻v**++}1aVr,V\;w .r_}UuǏ/3gDږL)RRRģ>*>CtRҥK#GTO8Q>^\tE_O~;=GtMz裏>H_۷W/"ֆ׹2*Wt"F#222C=$-Z$nVBLbb(,, i})?DDDL//V+^馛G-I0Z饗bqo~W|ڷo/^ya2B~o\}-//OZm8}۲1cDAA"ucY{BV&=<#qW/Ýy,{V/Jnz!uGq߫_RR"fdRg]7txS_;vۋ JCgo凈IBd]uU^---U+0*!)))xwnvJ+7| &MvYuO>Y7{Qo_{f!9XIc|e b1fW\=mܸQ]>Nގb]vܹsݮ>9~BV&=ƍģ>WF?~|? RRR^rҒ|u׹tR5^-qns޽[]ryyy<px=6I8R~%4@eee8y$ߞ{pM7ɓt+V 0@ە\@.]F9s8-QߩS'deew PTTnݺa٘5kFF'N!gΜ wumX,@JJ1HJJB^8yi/ضm}@*~ԿCU=;w8c?uT#*6xz*;v:ӦMW_};vp, b]%TY^G߾}k8ѯ_?e@8R~%LTb|*1m>ݻ7`hhh,[ ˖-󺭮]:mwȑ+]y~lذ_~%jkk_GTTƏoz_%<1^~=V+RRRpWz܆ra h4ixj*8qgΜjuZGy;_5K.񘘞:u ={Lr|8nח / ٌ]vnV_-ʲ]&NBIIe_v[ \wo~#^Bl߾p7T:t8R~$^N8TMU|dByXv^UonĉN;vy];&&_|6oތ+V?G^^~z_.h1co|PmKKKԩS1tPgƌطoqݲe N l(D W9233ѩS'k\~'K-qגl0s3s8yJy\?:vؓ:PٗCDD$T zV :o_hZ]v˲/}?Ǐ+'N૯/#G`Æ Xv-Oajޒ wlF[ \šC<ƪ [n$2^eS?{,[Pg_ ,I'P^^q~ٌݻw;c2Ԅݻ7 8tjkk=n7{sNXVhZ 6LݎR2dwӦMS+JBcɤvKZyJx 5i[mZV<o˗/w?ł\tEWej*s|9\qrgҥB 55աȗx*JQXXsizϞ=u ׹̹cXVt:2ioŊ7O/2 p_{5X,tW\qEHK!"":h;vLAkѣG۷N BzAAFm޼'OƬYuo7--}2ݷo_$$$~GL8'N޽{].g4տ[Va0b܋$,\GAtt_;wFffZ~0IO? @޻qUޓ5W^^ywLz|kkknV[w,^"::گx*z'[޺W6:79WRSS]OXXXz luDeكE͛ȐٗCDD$`_!%I}~GN2e Z-#8l޼3g΄W_}Ceߗ{ߟ8A,>#Le4l"J|=_|aՊ^x̟?cF_b`cb|\yRCuNOU7>SQ?~'NDAA9R[&=vRt_/ (ɥ{1+@cc# {xkR]o>5rwKuns9sPRRG:,3gm<&ٳG`D֭[qWh4bҤI#gO姨]t."<$"s@`РA>'.{s?ضm.RlP IDAT`5ƍs?=rHk;wbt8rK466"** oϣ * `ٲei0c t]ҒsAL2%de"$lƌ3`cqʔ)Xv- 3f -- g}ł]?GTTI(qEyy9N8s?\(Ip}ؽ{7/_.]PkϞ=hjjB>}0b{4hf̘l߾ׯ [?ϕ`=j__DDt"w bԨQ^mjj111Xf/ :M3 {Q@mżyD]]2 """B֭󸏁ߛBu;wtuV-.? E=*Frڵk'.]w9:N6mrzju\znP_޽uΝO>N4i8tħ~2=s挈Wjky@ 4H|F̞=[;-K<ݕe"\n_rڵk)~n{֊< [lÆ ķ~l/ bΜ9X 4iߴZ3gg㏫o""F#}p嗣}f|g_vڡ{ ݺu5\s+֒7& +W޽{QSSLL0&L빦b6j*޽իjt3QkbHt1Xj`ԩHMMu9-܂e˖+ė_~yξߎ;"??K,o[""""&Dd?7x<~)fΜ @>fc{Gǎ{`""""GѹsgFdd:p̱cW^ G=WD6I\\σODDD$\ .cO>>\*9l0t:x""""&DԩSq,^۷oG~~>222ЧOoХKs}VWWcȐ!>}::QD""""""Ri""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLx%^xy4 33;ǣGDL#6SغF˂ADDDD$TWg^۷6Ozz ׋0|xs?.|]ǎ,DDDDDL uK@NF ΞǙ3()1 KA~I=yVM{J5tFމ,DDDDDL &O]wr;ȑj<>:T&+-:7sξ'jտ!ٓ "ׄPI?G !!ZSc:gߏhUNJ&""""bHJOQi'O\M &<Ԙ DuMàS'.yy2_7C7ॗ7=6a]Nwc˖TU56= &M?cb|U> מ~?bbt' ڝI"̙zh P[k¸q8u*>m'aXghjb۶RlV.O_ԩ:|uSȖH&DDDDDLG%%c{9z~x B%#'GSgj51 kH_?> #z}$䴍@1vl:ڷƞ=<Cbbcx$/3S+ݻ'wٲ#+cP)?sC1aKNx[5k0sfg ut$N܁ "D8zu=[v]*``6m*BI0kVNGU0`HHADDDDDLɃ:y/'G'Γ]:tWj5=u=qXCP$̌u9-:Z]ѻwM눈u vڑ#h۳'ǎՠ̈ #ڵ:I"yp՝p]B4fe橬lRP.@EOs.{wUY^q 33dr,` V^طfΔym\&- :y@y{x9БRy<`]⠔#2E^X wo'9st4n \zerrsS6<[\:ɲܳg!9 \|1p@B쨪 qBL<|=G9,%uuLDEɿdl`T{^^^`X>XVl~ r-U.7 {Z28p pm`oZ2^%% #c̘![BHD+A-F-[z!!-jZ5J%l"a0'76͓B['Dvn]&ulǠOZ|=wzH!}n[7&& w\Jk!/"9y;qqBu~Kӻt/? QV|r!mٖ81q3RS"k;vq bޖ+Ǐ>QPqMF 87_wN 1vժßs۱&"_y"۲室D~s QW'W~eQ.l{]C!M8㥔ɓ+!RR\/wB446DD~`ؚ |k$B1ud!vl$q$[zB FGb,[26`@˕ OIh6bŸ$D^iw`ᩧlOsk'ײmi$Qo$1"_K8zܹ=oV!Cl[o +Bk[Uriߏ=&O.;ae$1R@NF#~8z>1Id={HHp! g Q[2IێUU+<~el-CCcG!F۴瞳U>ss3dUEb9o_!Np^V&+JK_^dzyv*5kle2 yVR {MMJϳφ&hd%k]|5rw_xeeϷM?{e]h4ڎ955 1f~啮˙P\,׿v<p}l<=G[_@>|/IbLv9.icO}S l8˥~k4<49}:Ib(e_XqJ2K!"b$o1nnY+*JUU B RqdoZ׭J7gofnz_|aK~]cbmB\~gp4I{ y|mծ˅}``_dr^6q%I3yiS쳻$xE\Ϟ߇0wvcl<=GC$Yk<}Iy V9}ܸ;RXX2I ez/]8R~M/t7Gg"^qFI>q|yُrzRVH%*L,p+ ϶וW~YXmWƍȑ\y;Q*K^~|Oila{] F e-|ʠAïq-gon7>%ꨬtTW;﫯bb\/߻~=xz瘧xbDׯgf&l%+qnr|t:e0Pᇽe@P9CD ?MVi;W459pV9_$$s%wa!8Z] *ɑ; "ɓnIV.ˁ}e2y-Bѡu;f(|yqT٩S=l>Weer!Cd, *+[WRApAI[#޸9hma985GޗquV9J*\te/29\rmzkKO#-{A4X;{/9CD$g-#;G Gpu|c *I/s@i8&&o)WV_~)nݹT?Mm14mWo}:|LVıcK/IrE`Wቃ$8qEZ>|<֭1#T]gP|;@V}xpT| P;×2p|,J(L!"bH3e`L(WƏ[ƿ$[W!oӕ.G̲ʳ-g29>g|⧟ʟe׼cǀ^|x%["@] =[j!!qnK凈$9ddfʤ`jYyGQJ4wk5)eu9/JWON9sd{C,~V!^z)x*#*ϝ'm*ɝI2a޼YӿP\,Q^zsp!W_%=-:޳׵/l瘻ܝhc o7kjm-jǁk.Tѣ@io˜=+*#Z\ٺUȰ]} fY%ھrB;w:V,يiPRbwiW+&:mۀ?mW(W]YTT}[I@ldcN%ܸ6hM-p?\O>N^x9k`snw;vo#s4X|$-K~߄SY狨=;:,"bHeũ7{y2}W3g\/d/Zr[F󮋁.;ja(s֬+̯.l':uUVG_ e fy04gߒh#Gŋ>{פX[Sr6f(z/%p! wo(Bc[7܍L<9GC!ϱ-K 'weV&EDLx `@K_}{9~xwɤb-Hgf󥗜}G#{˗W]%t2A Ųs曝G۹6<n-nh% RQd5'G&Xf9oAXS#G9cY[+[=&+Fȃ( RAQGT(Çe ̀qgZb1g{(|#g0駶? }E0{,ww|}?xz9ִF&T7tsWbZ_/ˀ=s8DtA=|[7@*l_lo)+={ʡKJd> Nױmiir-[[M&+˟k%rP}W^Y-(]dw}P ˦1oE&5C]&ٷO&ō[ϗ]Ξ5h]~Q7{ T)od~d YhdESIb}cld+ڵrf̐Mb݌?Wʣ-͓=d ruU+b돍?}owy}v[+Ņ#乐,3yٳO Hh.\([Xb<vȊ\*6 E<=G=|EQ. M8M$}=ox=+ˀrab|jp'$' h̑B}hh'mF#ČBu>-Ā=[n#3Smykc Bdd8/ 1w$+ IDAT6YV|[7!6ntk Ѯ墢.!]/q\e;v??/4H!q} g8ү\W\MMoͶ͛=+89p ŲeJMy76}>~ܶsO!yFJMbJ!ʄHL~_"&y7$i=#sݱ&"_ym"wÐ!rO{:|o!_M8㥼B|yc_y&YO8Dt^њESa0]XU*v"oӞ*+zff֤#/?ǎbVּ&sL~ fY{>;UTywTϭm55VNւTɓ=?r 2ۻlPZ3qrVvϾ۷ONMvi8׭5el~܉Is'NȖc=Fi۽[rtظQޫ\y\Onq%% &P}e-]. %Zꅐ^ dg[q& Dj=+W-cGY_D&DmFY&ww} ]wQŁkep<:a@FY,GL9wD"""&D('j nq\q̣Av{9M29/""6˔g&#j #1r\|Dg%*ω#"""&D-Z?}:-fŌ\lwL}|tʅ9FDDFq""""""RD""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDDԺ"'`2YatDDhjZ|?ԄXdff^ǥ\<, وI"0 HIIArrF ]vF9m]]***`2;""":uI""&le^ f8-:Zvrf&+gMMMZtl3jd2}5f&'X@8{YZqmhh@AAT>'yiDDLʦ@qq#,Yje ,` 6"55qqa)++C]]Q.uuuB@ ;;111>"嶦,DGG;L?1I$@EF$'GAR0,0lhBt:A#V!..zz111ȂADD5\"+  )) bbtHKFX:HDmB{&""@%( "CEL45Yϙ&@]]a6h$$$8UF#f3fOMF `0^T#&&jhjjR1KłF!e!xhP__ Vh5&-nXP[[ S,hhhpxGTTڵktjkka4aX ^u `2hXt:[V466=? [\uO4> !xƟ8)PٮlF}}}[e-~kZƪq0S^50LjDBBӽp7DB8"-- IIIk>_:ݻw{fjUQSSJtI'33ӯ$EEEjeQQQQdffojEaa!jkkUTT ;;pwMM ***xebb"222bi6F={HC\\CNTWWC!##ze!rFz6TqUVVi0J"++ !=or ^^n+**555DNN9kymllDQQ-//GJJ RSSYZZzo (//w* eee;jUD^PRR*a0vw| ed:}OTUUZ6Tp!""&mXlZ0vbOϞ= V ^h455Wk!PNDGGme񦩩 gΜQqɄ˕_q0VqqqdBCCcZtL7f{VE}}ze]t ~W @\\bbb`6X* OWTTQQQjt:шzX, ;;۩HMV>۷]yQ+;wv#//F555N>3M&Z QRPPP!*++6***a.Xv; 66gΜQ/TگSNbew@(eQxW~`4ZPZjY{z}۾@iYd Pt:jB:ۯP رS74VџVDErrӗVEd¾[Ukľr}fM%hbٜ敩j\ff("l6ՋDM9"))),#X*Zew5{LZJ[,rW^Fy|5 RRRO"w ~_㐈ٟK$B-99;7::iZ*~\2DDLYM(.6j4HO?BĸM{ B3ܾ}{7W IʎRIP*=֌Jumֱ%'j8DiWU6߆>RRRvsPi0ۣ]v!{D0qj)m]yU`p,%&&C~$zz΢KwS(a;O^~r]xxԘPSc*GGT*+_Z w`Xh<o""B(ǟ;BYWWS״PVT97I6tNת1XyKUm(ۗ o.rJ2Њk(.m8XdffETYF׫BMuV#eڪ@BY.Z""&f f!j >w/u'::cB7\%tkyֈI(TfùMe W놷i'}K|(l+11zkzI'ݝC"2 *5@@ <ADe!. OF ,DN J !TUwUuU//&ꉙIB>#Nԓ'j:d&e>yKڭ ;Xl܆Dؖ.|T"y2'k6JknyނCchv]׭S]f #>_/br#raxֺoc?# i˧m$Xʓ^Dbܙt\9Ih5&Jɿ5{Cp8adppP{QKKK|kPaAZZdҥCBN[3m\eK1fC-=`*t!( #ӡyf=w.ytAkk vc-}`Zsח`5'< eߟS^f+yLA ?001̔d{hh(Z`25pf%%%9?(6(`D"v}ob< ^NW@" Fy\q }J80QGGPAEZPx֍mhooO[' 9ΌO饱CCC)qf^HɁ7x<6;*O&R 8"CCC),XnI^F#%PHݒF[[ td|-[ D"aΪLL>l lE֬=5w,ք'mmm2Ƥ]SX&sM\SQ/C===jiiQKKˌy@ `)PM'8<͏ǍcNP(w}w͛Z9544Yss^ʔH$4<4882b1|jjj͓L&&o1rwdeuuu^f.KP$QKK|>nƁ |>UUUihhH`P|r\  r8|ɿz Zyy*** sݪQOOFFF-))Q( 8eu`2T5m1̛7O@@X^vC^ʔ[crayyFFFbDY8KKKp)EyTl^[b=`*g@q#b;.׫EShԾDuuuiVTT7rep,))Qcc:::L5r` *=ԴLT(r8b̓L&ϊYF{&3Cee$[x|7ǣz;x9Rϟe,&sSb!ȕL|8`@ `?a---Uii***}"=22b`߄iz)g-))Qyyy'F'n[^w!ғɧCND"a׷X,&%m(25ga$E<5^[ X,={H,Y;DSP&At: b6L$$ Z({8>8dYSA"BA" i1Q8CNix%h1q c~A" @ H$DA" @ H$3D Y01FqJJr8ۛ-Z$ө}Iv).H(v]^pX풤ŋryP(ܹsU]]]-tYe___zА>ѨZ[[JiiiQ|2iU$ҥK 2sę-k` H$1TQQ9sJt?ZL$F rf!uww.#\.WX,h4D"Q-tYeڟu=7>M6(yjc ur vwCJKŌ ᨂE}>_ƧW<՜9sWn> d_&=== .C1}~1r8jllTYYYun:Y HD t?"I*-uj<< ?X̨?OQ3pÞMg2#SD,SOOUVV#8L-BoˊGY=~>O> ă[0S4::֣ұUV*M)$:Tutt^N瓊b{=P_F!/mΔRVS"aNh3(t񨪪j1F~_`PXL%%%x<=c$\ 4<j_'r/HD`PHĮ%%%H{mc圳=],Ȅi{@ x<UVV9GFF촕ăQ6x>ŋg x522p4 9sT___ǒ9g]SO+Gqĸu&sv:U˗/W[[BИmT[[jutto488Eј@x7-=Acht:rͮ6 BȈDSK,I鶶*HtBGH~%c<@U^^og#wߵVB"Ѩ}ܒ%)z -5z~"'ʧ%Ir\*//V8{mhVrٽg^L:;;hIIP(@ {*++ њ#]a^UUո-VYEQutt(H**(ixxXDBYF"Gn[HDixwm9eeevN.Ay<ǙQc眓F{Νkp Zr9g^ޮp8s窬LhT}}}J${^+++U^^D"E" @gXZ IDAT,ѡ2sjM  417Ȫ*nÁ{@:;;H$v8fx[<WGG݃RQQ1nI]]ΝoOqj…c.ϛ7O~ko AŋǔgMMۧp8\9ہQcc:D֦h4.-[LCT4U4U]]]kcAuwwg=5, f k4UV֐ ^"P{{=$e q(TZ+**'ߟN 3sfs|ֵJaQkkFFF2!8|9<H$"Ǔy9;P(ŋx^Fͦ+ý{*+ $R>MZ[ڷoDA Ft:4w[o.כXMc=-\.t:'\lMՒ|3~+$tjѢE)ÏN͛7& :t8;wn ɔ=ܭ!wn=M~,Bfv\ZpaJ9srI>V>M4eU]]X:1nH y(TZmhʐ2]I+Xu:iwr6Z8_Ơ }!Xuܹ}kЏׁkk2i*q9N;`f)B^# Vkf2FvryvuXOks=?q,y͆{U:z@2,>dBљL ?lV 9Hej [ODKJJƽZ񞠎7cy߯x<.1n)yAq577\UUUziZVlw >inNg \.|>% lʚ3׫~q{k&F2}?~E"a:XcsnܫƫtCpHrdt ǩFFb=E3@Vjx \{"Ӯgӈ6H&/hz2FKIL׫߿_xܞa ***w%7i4ʩ$UUUZybMzbDǛy4L y(dZ**=fV:8𰽼BϏbts^ȋWbB ]d_3G5)DXzs{#&NSUUUvӚ%ӚԢ[^3(Tz.\{!~^>a.zre-5b2iz~jkk\ rGv8w\͛7/+lX;TUP6YP\C##11{-hp8:e5&j lct{`NTE8A7.]j3HDu.T`r잧354 謼N^q*|Y*--ǥ׈ɤ՚zo02Xbyy,f[!eιC^MP߆G'Q4ߛ],V[J$jmmU{{{KXL&h=cXtfR[RRB@ q6MkB־2yr[/2,eח1(~/ϩFVk848{,U6#2.VTcsPWAA|tTo8`$MC7,c$!o(::ځlVQQa7S[$ {TCCC)x<1 lS9X=4lSXWUUفNGGGJB5}`Rza}<Ȱ·^cT^^̈,+/3-?׈ɤ lj&/H{ 1ڿXBKι*13^ӣ( ID##1q F8t:%0yn\ APCCp577LDBv#Zxhxx~:\QQ!ǣh4jeMx4m3ټyen=dꙭr^D"jii0u!y|А`0p8,a/iOc|ppоf:4Xe եA)ZSS żFL6S&>V$Ѿ}TYY)˥H$"߯h4j_obz{{kR!BdϹBW=gg*=̪ q/@ h4#XRԼyn&rT4U sWRR)}2kncc:::L}r` *3Fw}}zzzS?!NR544fMǵ~\r:`r= yzXL.+sXeUVVjuvv* p8TSSy͈kdj r\yV ciZi޽J$U</yTc9W`w2lW@91l:XB`\&)-uqP=@ `?/--Uii***u:qk8iڳgb DݻdɒY=i"{@ vMb2PHDB.K^W>o:fIhj #ͅm SxkVwqD3XcX,vHl*Agg588xŮ]߯z-]t֤{0{1իkt='3S"at? z~^:St5פf ,FuNbQbV^)7L~ڴiZy睤@AmW>gHę]x#ԑG?nFI]vY}$'իy> Qn 8M>gUR 3q_| V]}>Kꡇ"5zPT7'%F\skAq\/z)V+VІ T^^>f4:L}V K/I>lciڳg̙&[N˗//1m۶MO?~mn^ZW^y***k.ݻWMMM:#͛7WIs[[6nXвo+I:3v,vܩW^yE;wTssjkkuaiݺuy{ic=^{M'kjΜ99ê?K,G>=z |r]tEZzupsΑ1F/_JGunq-_${vl޼YZp.zo>3.566SN%\"#p8~Z/Р+Vh:qJ{Ծ}T[[+W+H{I?Q?٣2wqT__?cz뭷#h׮]z:餓teR400UVٿm(Dy;vP[[$N$sϩTgyI}\ӗ˽m&Ң }C7А;8]p:i:)w Oo|Oի6[tL{-Zd$/|:;;$#l۶\r%'khh0۷oݭ[ڟBonnٽ{w[n5˗/Ok_ڤ򡥥Ŝ{idg."#?oUWW=| [WQQa$;#}ر>))`0h p8p:{wXwMc;WWWgo4u]g{93o޼+M$I{~x'oo֬Y:c{WLSSSTUU{wJDb1}..\h|ʹ e]qsꩧI[VNuM7әe˖7x/˜d#ްaCmkkk ROr9t&Jdm3Ndo:e>o5V~zF`G8ŞxŬ^G6Aի$vZswϬ[ξAXA}L]]dΝk}|樣裏v2Fq\梋.2z馛ill4̟$fb,뮻'h7jկ#<쮻*H77n??+w~z3gW+H<35̙ginfsW+Pwc$mV\i/$r)믿<]_NYjd.bG?2s۶m3F0W\qg?Y`ߦN$ 7`$?u]??^Y>O,^\uUk_9?~A-bc5_[666ǖ)HL<~\wu3]w]|ӕqg2Q&so t"ֽz0dnFsmK/~XQZZjvE  {|YsϘ_5Ƙ"HdΔm۟,Hm7| ̊+$|$㎳vhh\Lۓr*p8lJKK$aÆ#>`$;/ 1vvv=V2mmmc[oe˖IfѢE&$Z o欳βo~r~8vͅ^lIJ2믏K/4w6+NVqH2syw|ǜyvož}N$0~{_ަeg?||ӟԔd$vuug$O~)oSdc2m1k׮5̵^dҕmݟHM6t"UIsbcy'?pA!kH4?+ӟ>\?9|kS|N~O$dɒ1y<}+_ڵkؘovm߾]UUUڼyVX11<xiߩh}ݒF' z'ǫJW\qŘ͙3G=^֏~t h/~l]{:Cʕ+/})%mwN?YNSw|F>d '|+)oHϟG}4]OڰaCym)N?RW}C2L1}$m߾p#H"w޹Sv iʹ8:ƶ1`7ohꫯj׮]iO{i~_?$I7|sJŲj*tIt.VYyWJn,϶nVQuggLǚ5ktGǁAXr0f5 ߥ擟BO /00xz=Jo/Z",hf=K/Tsz{{u1h͚5uiMc=>y<}ӟθ],#H,rY ;hzEOH:UsNٳ'㪬̸n4)yRf5|e:'izOtq?O.f{c>#c.l5z)=Sn?<<骧ٱc$=yOVC} @)H۴!_nS]] 6hÆ J$ھ}z!mܸQCCCkugՋes{щ{q;w?/B$җn)z9֦&7>pȞ50䞬;w3^}N'{[eKDXLx=<Ŭ'mD'4ڋhm{gxQ,WpT6ne:jIC"2XD}uVI͟?_?^/W4Ֆ-[ LѨt{'/=PZ\3nmOdjǭïZA׎;2Nr+HUYY9DIz7w۵tR^zZDjjjTUU!mݺUsN|ͬGF{ǖ,YwyG۶mg<5+TG1dMW=HZֽ.'2ƨVh0f7-s:ƌ>oW^Qqh}ݴlܸ1].֮]O?]{om;010IȠ" IDATmeE2 Φ'`V>IQGq_|i=߲9ГO>icem;#{{{^3Ǔ<\?a^t瞴DmܸѾQ[lX=o~3泞YF_FOs<.b5k+ , nЦM.VZ7lؠ9sH.첔Y_{5{?)я~T~_.Krˌk׮ղedѺuR+K/АuLkIR>я@<@^u8YT-_<=ɔG;]P]z|&Otc|뭷;f/ZfVXna7|V\+Wf=9ٍᦳ!,N㩫ө[ꮻoW0͛yf]xںuS]/Z[[b :ꨣV%IׯDoG=\]V{ۧ{LPH'p^u=QEE!_7Uԧ裏ꭷ҉'/\z뭷OkϞ=:}vn:\iw߭/\;w ':KGyx xwj{b֓lɘzɶm۔H$rt9׿VX㪫ӎ;O+kҥzgv죭͞f[`ZOի6[t[/(jz-Zd$/|:;;$#ر#6ѩ[$e˖1+V؟'[~ H2wNc3o޼wꫯ6`0߲eYpa>Νk}YsI檫*XWWW=B6wܑwaEgg甔ſ۝Z裏SUUek5{noki}Mmmm555lxF9S?oSr_o677OxWnm~wժUFַ5aӝGMMMikѢEGɫ['9^c)))1͛S>Fq:)_WWg6olI<{1eee)KMOOOڲζLd{)OݳqM7[oթ_~YCCC/7xCHDMMM fmD"z+O-QG?ř)u"w֦Mw^hŊU]]=i˖-zWtyCo^?/L~?szԤ/SVOMfk=Mv'UW]7jddDOL;wԚ5kuV _֙g^zINS7t[>7f{I'&ctU(I~͞5@˗VrrF bd2}m=,,[;d2)88@>>ޒ6mگ#G2TUUH͙3^{G9z4K|s@EEј14{854;t***LT_ߠw]ooSVVN*QQQ.V@z)hLkwիwԩb]vTk۶#zot-+88@Um8qƌb}Ehذ/U}}{63gJEG+1q9?A+饗>7^իA^:EĪB*6$i)Z:v,K%\ f;X ‚:|<!Qp""Btd˾knh0+99CU+dRrrRR2TZZ)IPTT{oF见{kxyyyMH], OC{oذ>>Svv%ool $<ڭuE4`@l}4)Mk}qכ5iPۤd*22TTTTr%$+!!^ Zj6o _˫}iZr:/D+VlVnnQo0)(_^^&x]Ufn=p6鎝FGȑ ͚u,+o[)__iFwӡC5p`}wÃTVV ]u,L&Mǵ{Q+,,H3P#e"øuo='r5wDƆB7.\R<ۺ4]u,EKяL'N"l 33 4p`oٽ#*##%H4:Z,ֿΒ O(8ZJNP߾Ѥ>-Ab^!3fVV992-*((էnQTT%øuvS%0)1q8K`$X,ͫvDD@Owo!۷ It7$DA"LB2$$DA" @ H$DA" @ H$DA" @ H$W_e kZF*$@ H$@*$I&b!MDA" @ H$DA" @ H$DA" @ H$DA" DA" @ H$DA" @ H$DA" @ H$DA" @ H$ DA" @ H$DA" @ H$DA"! ֚UPP򗟟Iyy$I tVeeJJii2IqqW~}<ή2 ooGlQnn::_<֨ܮm'ZUU5HzS`73 r%EɱNoobcA"вt[\:]&EI^z$;G[z m4ۏi׮}6ubb^~yZ+80#<7~<Na<,YG۷w3hh4hԪU/wV͙REE;zETnp{Ymǎ|\yYĉr}Ak6Y'q}4|xmrrTZj>}N^x{͚Hb.],//u S-wӫ('J{fE˗ά{E H<ߨQzn17M瞛B¡UuzzI$Eyy]J뷿p*QXnII) /Ҏv3yy4o^kdj^B|uӟv-/az}JN.$~p~p]Kі-y_-(G?@xtQz?[G{Р7鶴5גbEJJj7.B]6{ZΝIw}T$I;6V-;ի3U^nup-ZK/ۮs2n a͚,xڶ-ٔfEkd76;In|]u_Ǜ$ә7<ڠ͛O=ڿH^闿jܽWX?-ڤMr]dK'pouL ׾}E.??>'qtƋ/ҭnͧu&78+ܠ/:[oV%'7meK{~=-nә[[ko~CK&5 %ȑ=NUVߟ[lmMۖ]U;ĉr!!Ncff}QQm5~_yyOvئ7١Viin[fM7}/mPzzee ||J]w&}щ=[O:'';wWU_oȑ:h Y ŋw>ũw.}m7NZ~~^0!R#GIIjhA߿CO=5Is;G&͟cG֬2'ܧ@%'[]WcFA|˳ ZSFwAd+߿èGkҤ({+5FܦMZd}vJ滫@x%I78Dw5.\(A/|D˗HRStDE z{Ѱaaz≉2$n/֒%{^yfNVhh5WAA/~1\g5s]qAG o;-[te6[W[4gNKe|Pj$ܼPNgT^{mF$K˗4ZЖdfVj03u}Z<s:rTuOLZȖc–nyB 'm= aӟ&8ACbbxדFWAUt%K5 %XڿuݾxǝD mrdNaSVVl?L3($~QM^3뷿ΦpEt}u}5fL/,g"II#[o%&F]l}I4vlƎЂ''`^m.QX cѵ̑cU\Isf3u4+BEt :n;q" 2^tTucB)b>AhQ={ <rPLL]r Vݶ-is)K/buˮ\]vY?FrvT\6iw65ض6ݺ*NמKc6M$v9Ip >޹ 1/cOnN]Qvbve0A[HZU21c"4iRM]6Kp~xx`$ku=aiۻrllLEG{B Wcʔ^ W cfj:U4;.tg]Բے+NmcGuU:yzlnU{Nn]e7 $g7U^^GөOtw&NԿ}ڱamYwh) Ђ}um]Ek. NskݺlIҳhMǫŵomooneUJJj⋌&k&hK[eI׾4t;ꂧݮV>z6:}v)oiwmVwD ֤+KBBhغ޿ _rmܘv U7ilBbftC*+SAACZd\k:]EE/$m w)#RݶYטAB4hPFav}o[e˫EYԘ.xj*TuSQm>͖vuoږx9 H Ivw|GsSߙ`񦛆ꦛ^{jǎmؐ LYYz챽zYn_K.*_3JO>O'?Lrto@.wKete>G[)cgʮn{N:u.ΌmPgzt54XtTu>Vjs{&N]]o`v0[osرƅG}E{eeugώt\O.[ٸ1e4HI)r4u]̶6H]tuo_~暑˗حS]Ow 8]{`oBzl}qK;2bD5k)b>P:Lb_S^^^?q!tH=x 9^Am`}vkjU[k+$W祺:s ';t」$I[++::@>Ȩ0CI/4&Ͽzq'1lX~۱z}2-Ȩd}…otkiSWWݸ@ZnN^L4@h]w^o%&Fkxnْh筬ƀKjҤH=~ͯ-YZ*C{xz[?yJK |O.W_ ݵ>D˗TDG~Qvk ڎEI]Oo1Sv;=3MP[k GqK#\s v0#,'f[_rn}.ܱ#nlcG-\_=7dMn%KƩq PwWv2egWB3mvgeғONl6R~~ L>DKN5L&~c=$&Fkvmτ|Y,tD֭сE*(Q@ ր!>n_ߚZ['ʕ]S>}ԯ_΍[IJ*_2[JLqU?PZZ22*~tuymjhwSy) ]whsTU5h,})T)([ 7x`:g 㺤.nؐ/(&&@=4nm7}m+lْ͛O)=BEE5׈a~ʹ%ǏO*%T ՠA!7/n=DYe& GǘDIN.Ż%Y>|SSˌ1$aW3@a U^^**uDK 曍͞}8<8DTWg6>o6[OOPii"#ԧOfz'Y(+Ru~,ʝy_mUMM3rwzb;x3FhF$FWVIWRRzر2:UIRNNlɓI;vkӦ\:U^4dH;wV}VJ޽5wn n3uufY I>=F)uɩR^~:4L_ޯCB-k+kkڵ@&5-i,}m ѭ[CJT^^^5n\fώSH&~}23+t}eeu:pXWU㗬][KSfM-Uuu5cFe2/3iԑ:L95orsg j!CB5~_4VQQ?B.QIuI"oߢnKaaczz23+ABTZZU2tpjj/H^Q[]Q;Yo͵>Iϯі-ywgrG3m#=G9S=Zktd|}4ty1`@ ri{L=b0Bg[n٬}5k.ꍒ+(#Bܳ]^Ƌ{٢ٳW^[?h-5L\$i͚?!I}|^W _V魷iڬfײejذvZzj"IL&+hq-^َk'meՐ!:Uu6i˖Z4I!I<9J2̊' TYY""x8͙bZIf OлjByr0í~'I-[$}Ʌׯdw\a2lƏOORll@dkyL<8cm&Φ׾}Ez=̬lLwh]y㽥KrI6W3QT͘k7>fuu3}#Z Y փQzzx[g3Δ)ڷH5:yB7ٷ=EԀ;uk.]KBn6-Z>ڴ)W>{nbwe4p`^y%Yǎ)'Jqq.ɯl6[Gtqz1[K_2iiʪԓOӧ^ht:p;zj]+O'\)3R˖$~o=$nWgwۣ˵jU.ߡ2ٔ3iV޻]\Yf{l4xp^xaNkydvײe5gNzԹǤzoW~OCvv2l]m-ڻШsgMz vmyyzhoתUͺ]Nw3gjX=>ivׯcζg|5th[ b-#]ߕ]@뛏1i#G۝mj']ȲgH']Ige^&?NlAB#c%Y|u$ӆgl\…uR? Mfl%դI֧۷;/gҨʓu̕a˖<x5p?}򉵋cp&L4.ěڽGtp**`W߭-#5.ϐ8p֬_V))>92\'GiÆY`\#v$8vXy~~Qn˙uE[9V'Ƿ~+!!3i$Y,.[۶5.}q3bSa]>bD˿s^BUݩmW/.+wA%7hwմa>Am|6H'SZZg/M,O:fw1WMڴnM>}U5|xf„Hņ 9ڵ֚3]M l*+ل$]Un T:j+9G7MnoWA"ƌ0,&%icMc:pXeeuEmM(wpSyd6l1{P C4rdN.=Nӵ6mmuwunFڪDƆe4cvwse}Ñ#3kV?M۷nv'[on>\z>\Zzn_Hq.7l޺pԘvv+ Ԃcں5OII>qzu Xq}\]lOlN^U\vv6<+jtU]qwg|u`+11Z;ß9$Sz1$&$*2_5ڳ1G.ђOZԲټ]>5nlu^g&vbȔ)Q- 1&㩣Bӭ_o 5}zt݄]>.> (,vgLt"=Z1nN]Hґ#%n䒵ZnI=~=Zp}~}\6bӦ\?^ lvt$UV;\6td,ݕZ֝ۮl+%&&xr쨽MMm\U H<:H2.֮kRWSRWg{lO iu:;nY`\s 4quOkcqzgƄ[:K5N?p&zb:6n>&-]:Aw޹UiiO6jܸ:_Lҥ`)6w?X&iP*/s_dhܸh׮Xޫ[}wuGuәl[i&LԜ9qڰ!68G͞:޺^2%=E][O1Jv6H9I۷7 %'&{ر2mْg}pV[KVN6 fx3i]yc:6aB-;WC23+sg]wh͙ RBBRSѣ/?!-:i`{uPX.//ns8U۪mg O嗙ۨ(=$ґ::[dX,$Z[i<ՙշo-JfdTjSJO/ICjΜxJNb24iRYΕS:tDuOcFh:d6nQVVM2$T+4f6nUJJ jYb[8oMaa6nX!ǎ#]VΤQw彻ٓX]Y[i߾"ԩw ΋5Xue7j„H3TQQu법Rj9񭮃Uu;z{3yѶS=ZoUNN4lX.0^>wosneK[OWA"NWr$&$y)4WAAL VhoM` @ H$DA" @ H$DA" @ H$DA" @Ox' IDAT H$@ H$DA" @ H$DA" @ H$DA" @ H$$DA" @ H$DTO={>qq,'N0߿~~~~ꫯlٲ.=}."kРAw=#F;VuuuNO|8[6C@)--ß㮯7xxߛ4toIIIѼyTUUegX:]uuu?㽵kjJO|8[6Х[o{!Cxg}UUU)00P}N*N}իKfY^A"(@h$.Zɓ'{'u7oΝw;8͛7O>UVV*((N$4N}OYYV\)I~뮻NTQQaن' m6IE]$/쪫_K;Vjedd?߯J 0@ܹse2HvRqqbbb4}t?Vxxݶ)))JMMɓ'%IZztt?65^;v"?{q^ DP$bCPǀ>cKb|,$D1јآbWb7QFQXЈ`CߝR01_9s[,nعs'q]TP8p ʔ)cQZ5兇###+VD 22111HHHFAժU:u@xx8cǎǏc˖-q4 <==]ŽVTСD7nDXX֭iӦxlDDTBDD2i$ &qQ $--`%Mll4 .kkk%]W͛JXEGG+'&&ꔟ& 2X~2ed۶mҢE  |Iaҥbggg|'''ٶmNiӦLW;C@ݕ*DVKRRѼS+22Rj֬i-[ɑ t6o,\~7mϞ=QTR+311QI%F2RJrضl Pnݺ@c:Qx'\]]ѹsgTX'Nq1oΝZ6iظq#ZjСʗ/cǎ!""Ie9r$]tΝ;0_ӧvءL"ム 8p/^ܼw0:zz!..?3{ٳg;v,T*/_OOO\p| fϞw}L:M6ߔ)Szj@&Mйsg8::Ν;ؾ};\e˖~J9/%Kk׮ԩJ.}!$$oƀp…b_~%V^ KKKԭ[j3N"QI433{uرb'VVV@w.:CBB˗/7NǕv*Ormwww7Y:Q8)Qemm]Nh3x` Pr:u*MVZ ~Wرc L:~=ڵ4:uɓ~W\S5ȩ6lP#""7ƛoi0MŊѹsgPYᅦF1i$5 0|ԭ[W,WWW$''#99h[jأņTPAyW8ǀ bqՙ oL=ZX˾ 64}h߾IߺuK2xi?xyy!&&~֭SE{^C`ҤI.իJp׮]y|Xd Ex>ha~W3ܹsؿ?6oޜoڵk,9>_)u&""DD <@rr2J*%KikԨ/|mglի/.!!!,̙3tR^ wQ }.] ,, w[Nhh(֯_HܺuKZABqrr[GZLǢ֙$R=&O%sϽ&^NNN]0G233m'N@lll_^gѼdggx~Z/24[ɒ%?YYY۷/o߮GhРѰaC"((((LPUʪyDD 蕒h+qFf͚ʿ] &|_(fq.} T`f͚{.BBB $֮]111h۶./ dԭ[/_Ƃ ЫW/_d,?SLѻ+߿R#?G^'ofnڕ+W DٳF,_+Vw+WNѣF]pпGdyKTTN}*++KY...2?Wt~7lݺUַ~ѣrrr0d镳m6`\Jz|3D""*Q? QZj2֯_Dµlxb|&=p>}`Y};h8pݻ4hP[;4k ~KIIANL^r'O,Z*T%K˗/cڴize=x |^c$G~:1H$"<;VigmyޡyU w?СCݻTcѭ[7\+88k֬1@+ڋ3|FEEau4/>jjii޽{盾E\2`ƍ ꖚѣGEϞ=<9x`[nJ[bE|W V8p@NcZZ>C*/.%9>wՙu!"B4iwa^]v)Eʶ;_-͓v ի8;;-֮駟*V*O@:w,2dMшҰaC 666ұcG bݺuR888H޽eʔ)ҥKbee%G1H{ O={8_PPȷ=ED~WRT)iӦ|G2j()_J%۶mS̜9Si[nG,^k.8<<Ȥ QD$$$D4YDDDgJn:͛78Ǖ|C )P(",/T"ׯWJ rJq52a/ ,--hdӦMr})S1c%H4u|5H,J(*|'"P;wwE ХK4iҤeܻw۷oǥK "pssCӦM]lP\v @>}P?~0DEEÇh4AǎaiiJoFFߏH*u cǎI%DD&չQre4lܹ3v܉piӆy AӴiS>|P[BD~\Ce#1H$"zuc޼yŬY'N ,, .\FA=ХK;L=jժ͛cӦM9||| wvv6~'DEEpvv kkk%݁ÇcXf Fv!44v޽5j981ؿ?>|-Z`Ĉ033CHH>㭷￯"""zj$%%v=z4j׮ F7رF||<ѡCnZپo>C!-- ϳ~~Ö-[0f6mիg0H,Hsn իWѣGN:E}Qfii0Mܺu+>;waÆݻ7\]]u$$$~˗VQFё'+""c ѣ@LWvm9s戙jquuKKK ={4%F~IÆ TVMI+5YfIvvH``Cboo/|ܾ}[@6lؠ( ʽ{ ʕ+ qww[n)]}ذaVRJriE 7n\k6P;wNDD嫯2qD}_Ժ ?^""rEqvv2e(e:u\rr%opp)SdFDd'!"*!UT\v 0c h4Y;;;\ժU÷~Xt)666XbjԨKѣGGGG|̔G^ gϞa̘13f *Vss/N:>3TTIo=7oT2e F \~ݤ;w.ʕ+իW+3j4];wno߾l޼Y͛7nnn9s&ׯ033èQRtڬ}QԾ/ibpssGx L8=‰'WVZR>Ûoɓ JǏe˖EVV ;;;dgg+/ZVZݻ:ʕCtʴ˗/Ǝ+3g ^ki/ I\J.Z~m[ZZHbb"ѽ{w͚5ùsx7a=yvkJҶm[[[[| `j_Y7+WÇכ)v„ HIIA֭V憓'Ob8{eɓǓܸq₄deea֭z䖒܁tqq1VZ84isN۷gΜsS)S~eZ.Z*VXl}^5j#GLZ}̙3q5`˖-'|CCk3SԾ/κiK ֯_Aaɒ%Xd Ѿ}{ <;vIA"˓hTT tΝ`4=HKK3&##C}ʔ)7o㭷B\\7^Z[RwE^O07t۵73jaM6aشiׯucJ_EQ\u7qqڵ  u0yd̛7'+""DD/ŋS|U 666ׯ^ׯӧ:#--Mˋ/j׮'O`hРN8]zԽie17n9sM2eEIMW\7|[HJJ=|||u۶m1|̘1Cc""o]pp0fϞ GGG=?ٚu CllN$4h#Gy?55+VKO?bŊpssCJJ 222ШQ#^]v)k;v gΜ1鮖1}ř3g0w|5}}$ʕ+c͚5HMMٶ|r,^fff8\ ݹsegg'/Ihe˖2yd*JfΜ)999J;vN&Mӧ} [NV^DDܼyກE [wc??<7/W[[[cpvv}3uܼ|{a^}d_-,,߿X0}_ԺZ'1''Gϟ/:֯__]/zoܸq'3""#TR\_Q 69/~x뭷 t|.\#G`ggx{axk׮nݺhܸ1qQ>,>*xus~w$&&nݺhѢ޺O>EDDnܸ[[[qD"|0H$"$LM"1H$""""""}\'hٲeyM"))1H$""""""DDDDDD ҥK>}:k4MNNO?G?߿?Drrrڵ ӧO̙3c0͖-[0}tdee%Kp$"zq"&ML ҥK&gϞصk233maq 4n+W~ǔƢ\r8ujԨQnnn|2СCh۶^cڵHKKտf\7i)))zblx'_[n;v+w'N=Stt4bcc1j(ܿSpeTXeM"I$":t(O<4hРP֭[{g[テ%+86$+È#իW#)) kѣQvm%mXX0vX2dʔ)SM6'N@XX.\F=zK.PTJ !!Ç۱f=ڵCBB~\|j5j #b׮]ݻw#11p?} //|oǎ8|0:u})?t{{<Ɔ ???޽Wƞ={УGo^m]v :~g$$$wEٲec駟ׯ>>>4hMSqWZǏ|||0d56^Xc&"@ 2i$i?l0h4h"Q-bmm-JZ>LիG Uޛ3gZWWWҳgOIKKSJ dR㏲w^Q@*U$UVR|ysc۷.]ZHҥEHHHO?T؇*tmHzz 8PZ:uꈹ &(F)@lmmEH|||}~ Fݻw ۷^wyGcA<##CAn޼;uXXXH~[ԭ[W4mTMSoߖƍ R}&kwl3<DDPVRJriE 7n,!!AT*tUo_5jԐKff۷OHn$99YDD?~,2{l@Zo۷oKVVԩSGʕ+'gΜQ 2e 1wlذA [']ZZKFmsm˓'ODD䯿___ ;wTFDDYtiwr1GGGG$ϟ?/ҥKe?RreyR,d֬Y-"")))(СC&A y?}T\YƆ~/1Q5DDLL2{#F_n0OѬY3߿=Rߔ-,`ƌh4Xf vvvXr%UoVgϞa̘13f *V\zjyt7o|B={ę3gÇ[ܹsQ\9^Fks5?={۷f͚h֬@VgϞxBCC-mYf!,, W'|h\Ryѿ|03{1ooo]V1-RffFppѶ=6͍AaJD"WoH*U*< @FFvء~zP~S(KVUV{.n޼Svݩjɓ=z4Ξ= ɓWuV彐XXX(A1HLLDaccJ*h֬Ν;gr_ر? s~?4mcǎg}۷)sرX~;9sF//̘:DXX:w ''<x~7Ր5j 55&vV Iyi׃⯿2mnnn=BRg,wΝ3f 7o2eʠaÆ0yLi۱f͚zQZ5^y)1QDD/Qli۴i_{тrrrBvw^<~'ODbb"̙QΝ;# hY*U{yy!::ǏǮ]['OƼy u7/_ׯ+3QSt۵ TERR FN:m?w.\͛7cFV6駟?ƪUʞ2e ̶͛:~x[ә0ct4ӕ561嘉A"ѿB:u@u/|2(wˀw^ڵ  lZ*׺~:>}ŋҐ{{{*ڶmcƌz~_~X|9lق={ݺu7NVLL111([lu2fӦMСCm?p:t耐Abaȑ#Xp!&L_'OFΝ: ,@ p ի&hl{1n޼Ca1)K GGG"֭[#,, :yРA92}?UTQtwssD>6m@`ٲeG~ tصknܸرc8sw8m HHH0!\6Pvm|Xb2220tP珥fddQFzniԨʖ-O<ٶdɒ<秤$']33,[ hݺ5f̘ɓX~=Zn7bwҥѵkW!99CK3w\UVذa]t>ĉ܇'e,^W\A||<.\;vYf yx"Ҕz•+WSGMs)33m۶EXX~z|I2!!pwwG 177G޽!"ذaCW67nnܸ+VTR?DDDT\NNN EDD={+W ((Hy` ʔ)'"11ؿ?.]?SN5NVI3W!"z6l ...@enn.Çw6lmvvv""۷oRV-1xl;wr,^X'v ;ڃZgggrƍ<իVt]'O?2gΜ}Z =?yI``:Ɔ~/1QSkZ""z222py"%%jՂIG!** 111T7oFSO>EDDnܸ[[[x .ȑ# QѶm[̞=ӧO/tk׮nݺhܸ11㡨mݻwqa<|^^^hذ!_~[oeR 8y$мys3 A"M6!..IR(ݔѶmۆlڴ :t`HDDTx'ќp}T\A"f͚̌r1H$"""""_D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD%ʂM@Ddee077GժUannF!"""ϒ/޽{pvvFݺuQLi9PohyZG&M탫kȑ#^ZbǗ .{敮Ѻuk@DDW^)))?>6n܈ׯ#++ VQzuk'NDڵ9x8K\dd$>cDGG W\e~WXx* ժU+ڴiCR4lP8tVoݻ… ׯ͛_|%KyXv-O<%|=L"!!5j@ڵV ̙3~ ń^[wޕ:VZɹsnZ/m~h%˗r5r /.{U߻womNcu?uމ|=ccc*MAoJu+UZ'oEq{iii?mڴB}||$..}&"FS.] q@ G}$]v<鼄1ȸqR'7NsbիW#55V=r6l-[y_JR=yd4m_}տ-u*[XX~X8p RRR ?ijgϐx|pvvFZZ_ p<>i&<{ 8x =z+++Zz5֮]Zl>TRo! ">%,, 7n&z,)) 4_ _ ///|nݺ?ļ2<}T:v쨤]nk$gggIJJD^t=&"ңG锕+WJNNdgg˕{u딱ӧOEDɓ'2j(eۦMIHh/9s`ܸq:GiӦ v+++TRu1[ժU… ~oM₏>p1$''%ږ~lll?(?q;Ľ{0i$6L{ v 6maС|* :t`ƍ Cݺu1m4E111DLL hPjUN:?'Op1CФw֭[899~~~/~*ÇHKKԨQ#͚5͛([,?СI@qUe^YYYغu+>'Ν;طo_u/URJ}6.^Xs>{Yn9<<J?ĥKpEԫWЯ᷊ԬY3tcƌRz=rH@=nz)۷*Tܦ'OHN n]XYPP۷OokȐ!axM""GZj̧VeԩzyǣG;yž/-¶_^Θ:qM~ZH2etܹP6c}2svA77oZjIjjj7-ʸ-6޽{lٲh}K?zʱP綂%E9g&H_ϵɓ'-Abq"R]v2}t]K?zɓ'J_͡HϞ=Js&_m =a(O&M,XhL\c[ӧ+o޼Y"AJ5kSvvrA7 ҵz*J,--W^r֭b;t% ˗!͛7׻ PuWK.*UT$={VJ.3k׮-cǎQ; IDAT;wǏ TԩSw)H[f*U>}Z'OoW_}=%%Ez1^ j/^\#%%E~m%͡Ce |g^BBN40xZAbqo^~""Æ ҿ> $FFFJՕw.Թ Abq{Qم E7r̙$g>/XZZMVs^زeK4O۸q)QٳGٳgtE 7oެ}ʗ 1HÇ\r7 mӦM@VK 7oÇK$HlԨw1xW”' {mq3for/_qpp0x:uK8o<>cݢSQ[ue˖Fojٲ̙3' +yN<]<`{M4`˗̊ۻkp#G4XvJJ2{U,c@/-VZ%~~~z tX훗_q}뼺w.oㅅ=$H,v/9۔ ÇRR%b]Abqa¸q=//?zСCzkj_ʕX[[/++ SN̚55 _rܿ-60 *ܼP qx7 X":w y7`| +챻"990:JqvvgN8ydQ_G˗_SN$_1}twӧOTŵ xw C֭bŊ ooo{c 8::*]rؾ};z,-i&lذAce%ZXfMm/݋]Peʔ~ BppbN0!ӧ_?QcҥHIIQNz<_Gqٲez3f*0D~ݔ`|'Er|rTZ5+VիWQJQvm:`q۔kgP2K!Z]f4ٳgùs~l޼X7..аa/_cHHH{f͚V6}}>O}믿v[v0͜9~:}?7n 22MUn޼k֬ApƍRoԨ|M۷} бcG|7}66hn;cve2֭[SSS$&&jϟk afͤ+e]}XP111oU\yLOOŝ={Vz&Qx1Hܖ-[ [NN> @޽Yxxxpˤ`.og 4.s)n{zlWԁScӦMׯжm[t]vEjj*݋8d2l޼۸qk.s;v,,,,?=BpMDEEaѢEVziee5k`ر ; GGGܺu 'ODvv6LMMqFen:DDD 886l͛uְF||<߿/=chh 6N:}||+ *HMMӱi&xxx &&HLL5 ED*OXp!N>(`prrBnn.Ο?`/JÆ saǏxwq9~eˮaxxxUm޽q9|_н{wDEE!00P .\4@MeǏhzC[nX` ۷ΝC߾}ѴiS<~'NYp!v9s`Ϟ={.F)Suָ{.֯_\tA;/ 蕒' ?ݺuSYOLL4ŊZo֭J붲B+M Q@Z&00L}Q)ѣG+W4HǏjڲ۷oWRˤy_t011Qɗصkx077k!!!ҴXl۶MXYY-[}->x@2,h"aff;&;#.]:Q~}sPgɒ%jϛ7O}244fj׭KB~IXZZMgbb"&M$ҔWR㇟̹s]lӦMjDFĦM4ɓ'[njCDGG 67;}C@@;;;899aոC9r000+KKKױi&bСٳ^3==իW +++t^^^ez KeﯮrrrpI\v h޼97o;iN:ڵk2e ֬YSmO?Ųe鉳g"-- wƭ[ >wpA<~111imr߿7oD\\5jAsSUߡWAu>fהv(ݽ!#}]4iҤJ^\.!.^.]Tgݻ=ڶm={JYp'N@`` аaCzWQcHDTܸqCz… Z={WA",!!ֈ*5%zYp"dŊ^ ^Q"ѫ$==? +OUsx ._͛7ȀDDT1fϞlٲA 8p-[&^G&" ʃA"U :t 1p@,^jժԪU [.+%ākHkA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDj2blϞ'.gm] vvuf!CPVٳlL|ak[ A-#11Y.7pP6mze:ѼF{aP(͋DZZ>,-Mиq6"""""ۣvmC鹹a:"#3gװeKere(cc9s\8$zou5ل 1oU<Ǐ3ph4y j \4a,"""""Qx%Q7Z SXⳌyyr=+W ++Sl h33RX(p3!:: uI3k ;;g 2yz5б%j|Ç鈏ARR. 66.$HΝt'1H|)ˑ'ԯov[puDG+Wbƌ>\6՛7h DE[6 ƵԩNJ=JG] j+--[?J93g`aaO"""""bRr9#zx4Tiӂ]:uЧO#88,>\,]z 5...g_Arr͍MAjj>'O2pt4G~ݺY׌pLh_oZU>Abp!Kt{7R/ ,ZtمhѢ. 4ݴiN7._~իлw#ؼx7_EK֭=YÇ8ti_^^M11وʂ%>4䓈$VI`dzfNqq, 湪SGh8;Cvj[Y7;wRf̔ ljJ>Abȟrg8}:Ϟx&o\i\dd&ASܼq;Ecbi^^w;ݻ7M ֪6eTSIDDDDD uj.i` ⧟cĈJ*DňQܾ wwq|<Y33cC\l5%DDDDD ծmqZbkHMCDD^+F=mӦZ6/r=8dHS իϑQLl۶=.xfeʷBPQ$"""""5}]|yM!"";[atgk2) i \ << }"YoJ]bbˡ"IDDDDDπE_ffiiył>xP8n%g M kv-IIt289Ìms02@ʕ2YqlyUt>AbSXϭůеoo ~* uG1gU)40a֬+4TƦ4jGenYVV:ܘʑO"""""bR*:Ab^иq̙s11YJsr 15dfvmC杜^<øg<}6KK{q{k}izӦιcct[>I:oVV擈>g&011@^W$bҤ"m$놩So@o_..'c ;*&8ڵ`Nf˓dܾ 0 ~}Yƍ$O3͕\}4JF*e#y$""""A&x_~!V ( 3>>J]K_DttJZkZ1-o2o'X:LW .01Q@/C[\ h cГHL}`gɨ, vѣXRp|xr哈$N[HM͇M-4o^=zXKW,qBBB,,LФItjqOCbb.Lim-tއ |941cʝO"""""bHDDDDDD#""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $Qe2b|~-V^qL&Cf޽{cԨQd5r_h"߇IѹsgcX-ʸ]v Vr9:w$o-[%OoСC/_UMh"ӟ8qն$RRRk IDATQ2?ӧ~zZ [lCp4!D ++,,-??ڔsdd$222۷o?ssRӝ?׮]oժ򔗗'UaaaAzzzߩ(곺1WCCCiYYY .`8sLk.dggv?ѥKVΝ;?VZUSnn.8_rЃQz-WA?#$''SNU-FDDD 1cƨ /ƻヒcǎܹsؾ};|}}k̾=yЯ_?nUDRRvYj(˱gtԩSJy!993f :DDD5:u`/^QWiffJl >=w={W^`iڴ)7nܹsGӧOC&B`Ν8|0`aϞ=z*RRRаaCtÆ CzJCYӆѣGx)ٳg8vh[GY]톄 ::qqq^\@X*)IXXXYYiӦF֭U{ éS^^^`޽+Ə:uT`eqYoe=5o묠{ǑƍRC᯿B\\4i=A5ނ @\.x022b:{ꥴ~Iԭ[W_ӰaCw^%m+ѺʺlOm:+++iXi+W457oT 6Xn]ۓ{_/,,8z5j 맲lvv?~dj,ĤIT҅Hƪ-Â1emܸ}^ovvv;vlVu}+˱@-xѽ{w 1`+ y "" _ ԩSҲv +@WWW1sLiK魭ſ/W_ ___Q^=@Çl[״3fڵ1c1cתtvym61c ѲeK@tA̘1C|gj;˝:uİaĚ5kƍLlʕ+LuǏ˗/'O5?$J"!!AO+1H1cΝ;?\|bܹQz2sի.|}}ʰ2ʮc]o t[2kf۶m_~pssȑ#o&~G,G"""b Ѽysi#Gt e2011V)777EzI0a@5LSm]!6l K UV,pBi~TT4P ^Ç=\Gu:BѾ}{@Oj6m &L \all,???7xC*AL&_zWC'OTYXu\6ͱySoZĵk|JSRRDÆ """*;\ѣ>ڵkiΑ#GVw1Zl;wqJ6n܈ d2l޼Ye~6mf@TT8Uo>|(}Qܹsظq;/4h-[YYYذay{EQM}||J\ODD`aaYf7667eΧ;fϞ2}ҤIߺ&ֱ>|I}?tQiZϞ=accpuu̙3׫WO:v)gDDD_ _2vŽ;>ݻwyf=zw)FCׯ\\\Ԧ0`ڴit^ҖWUn[[ǏW;I&Jv@믿.]Mkkk+uϞ=s_``4ٳg w%HNNX*Z2lԨZ][X_m^ӱ@_OH5jQ*듈eM_2SNU;ꦙѣG_StS\pww/1#-ܶZjvåδbOu#f>~\yswwǵkװ{nL6MtĈ:>;;>͛7 OeXR9u6XbLJODDD I +We˖j+:͚5+1}͕/omkaÆeZ^I?x )) qSN񋦇:6_폈$R5zƌ2bիW1uT/d :T/i2Rށc6lZh!U)++ FBZZ0|roN & z{{k=Pb̿999Jrrr0g߿_UW:6_폈*I$YYYa͚5;v,}nɓ' SSSlܸQI[.ڵk9oJ/Oו16mڄ~!,, m۶EѵkWb޽^CPPRRRmTqa׮] EΝ1vXXXX 44'=z:͛¢E WWWV:6_U폈*o tZGDDݶm/qppv„ 5jN˳ݭ[*mJH˨_``pppPOvvvbesݺu߫̋*ˌ5JStRabbW+++k.sann.MB"MU[W\ѸOFFF8~xovvv;vlVur,%oԙ ,YvyQH'R#==իW +++t^^^011Uo];v ͅ>?// BRRKW2ȑ#\]]1|pXZZ_M6CǗYy긢|MkDDDT:DDDDDD$5DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$"""""3 Me)ы 8DDDDDD $D""""""bHDDDDDD HWb """""" !$nJDDDDDD A"1H$""""""DDDDDD $AAA!r RY֡S'aþxzBP*/uvذ/0hB̛3g\y=z/kx .\јPNqJkEqIߏFNъ%0e*ɓk8j>g2de~-Тx88᭷>ŁjT[.2bėؿ?Hgw1.]ǺсQE׷7qfb>}\\u⒑WP児ǧ ""+Vŧ4/%%ß?OEjjfjTG/CN0{eRS3an^GZPhaܻ6L&CNQnJ۟ٳ$IDRHJJ8/11&&Z*·]_y>Z5?evbѢxMWر+6m5d2V#RuGWTdg穝 3|yjH&#//uS]NZ+U0tzטF.00i_X(/3n~iiJmzwVXyڶmպKߊo桤'˵uAs Eik쳍HJJkjnt˴ҥ-_~NQVVTʺGU[LHH2l6m&`͚?yyyMps-w֭|/pD48z zG6x. {PX(׸\rrLY6m&.CddBX?83g.S0nh_} 88LTF~ WcUeޟfͬ~\P>}"$$0pB8qÆ}-ơW 44˖턋dh1VKѦ Ч\ܻ%MSK~0=л>}\""\+W[8:~gJ$67)tT{%t/zֵOKj8w.;vbjӧd *two+y:u5V< 矏Ox4mع^K-@DDF\?t1~-@ߧYuqjT[1fL;-&L%K#""0kz=5kCf9rtkQ>}-[h4IqspȗСMQ_ 8xp1VoٍgC-+K*9sѦMSxyuœ9eڗ[^{6ZXaaOãhf̟? G, ))8vl)ݻ"(VV:B ,ҳr4]3G.A;v9>|h|:Sǧ',.uL[`@Ϯ]gP~]4lXO^sEi!Ŷ5uSҟЯ_G,Z8t" ;vٳ$ zt-SʢY8x0XZ#p^Ξ(W܇ks՗./ZZ;ȑKQX(޽ rltǖo{GڴT7㔙`)v8uʼV%/%W 7gOċƍ}ۏsĦMDžBۏ"&:|[OBqak;Z(?yyB! yعmD:͛9Jʚ;w"h}))Ma\xz~"M Uy#?*vHgdd ;1RJq>LM͛G^|Ѧg>?Wv/z.VwW/o8mS׷ݪrغ> ѬXak;Z9[|^[~[Y륕ťKDƾT+5{_| 1iB!~qK-}V88集lvJ6?pSմXqRYu}8aTտ666 _‘#e ~!Y[4%NNv4h!톞=]: KM{ܹ`۶y~ kprA۶q~7ر*-w#VVҴ.]/} ˨ƍ-1e`ukKGטu4R*Skk )/2ZmX[eɯ? d=!"^̬Tϵuз3^^pMr g΄h}+z(O"Od2oode"88;v7ƙ3g2mGzieup]XZ&Mǧ'f^!_?7ї֦/ZR;w/ ..Ѡ?}v¢n6GeAձnUnZt22abb # wVrꙕ9MIjĉj4fb_ЭtÑ#aofTHʱo'U I 恿|a&N|u_C#)ѣgx8oo:u5zZiSo-͛[#>>))/#rܿҨuC9rWIdoo͛O ?PRJ+QMkWqBdd^ yNe4on7 ?Uz&,z#8r2aϞ:\>EyS99Xt;tqBΎ* iS}aŊ{ s:pum_~9;*StE}iOvV*{v,|7ppܹ ?By& /oލĸq_+d` S=43gE]\*M{v/*dWDJJZRq\ ==ʐի*E XM]e*Gmʨ*ISQJ:622BZ&8rTO+]HK8pgѽ?DDT9 醐|n%==~+RR21p`[  E6ysk,y!M}})*O ZEN1sϸ~tU766 KnsSnݸѵһwDF톞kxx8KNY-nР.HO @AA!/RӳUNJOAiսnWm$kVkIDAT`꩘0{i3ffHMcLoiz0hB4m11I2ǖ-sλ1zHLM0yJk7 &&FwMe;t"4m{+;NNvOĉo#0||ѥ*_.VbӦG'nLrlժIed͛O 11 }aoWֱ &+С-ĉo+_.:wvBSPRI#QlKw`_.`kn?m ݻh{et/o6li~ĠA Q[ d2^KAstd4kPj3W,L]뽬zhWhqɘ9glrrݺGݸvٳߢeK[su}_B&JzM5'HM̀ʭ}JS\HHai`lx:++!!ˇkr?+& \rYYDZǛoW[6055͛в-je2娩 p}ԪeNZ4J[E!22..u>I<>A۶Шe_VV.݋B|| 4i'';5yӦ?y_>EERR2pn$rrмRPQQ>g뺭+k_T ܺprjZ uUZ;uSA"WDD<1H$"""""̀E@DDDDDD A"iftlK^,""""""MA"1H$""""""DDDDDD :IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Szeged_page_1.png000066400000000000000000001624051420322575300272070ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwxNH$@*4/^ū4 "EPP/"/bDT BQTT T{-k&Y6T|?󰛙3眙ߞ&Z6^ """""""bf1H$""""""DDDDDD $D""""""jQrr """"""MV$v7%""""""DDDDDD $D""""""bHDDDDDD դeOkgj* Nc#;FFƚ53&"""""UAbII%M[O UUɰ9L[#C.^?{kXDDDDDD$Nc NJ I=` * *]&"""""uxT$lssS\^ŋOѽT<\t]k?8C_Cn<,ZZ!3mkj:ՙ1s;[aƌMDDDDD ?4__7XYn6KA.x2 WC,ahDE?)޽}䉱cƸq0thFք4-/m"""""Qv7upȑƍI R $džo_9>Xp Ç/6zLRe57m""""";hb"=1dHO嵘>}4lm-m+ %%ׯjkbN P(}>}i"""""ܒ5̑[>}놅 7VZ~8^T1e Obl!Jannh!X\'D"ǯ릪/m"""""V48 r o1kּ_鰲2Cii,oȑ0dHO6U''[l۶b/0}v2ӧɓWɴF"u'XP&EllJK+{mbcSYGG 6>> 77GǪU ::榸i1H$"""""Y@DDDDDD A"1H$""""""DDDDDD)DNJDDDDD ۶BDlxyMF/wAP2版:v]'qouATV,-0hPl:si\l|2!@*NcbDDDDDDwKqWUq8D"""""&HDh؂s`1'V%"""""kĈ&g44ŠA=DDDDDDwKSM { eu2:)lv}3dSG`֬G JDDDDDDw[XGRC,1lj$SD""""""%x@DDDDDD 1:@DDDDDDݔ$D""""""bHDDDDDD A"HV DDDDDD%$D""""""bHDDDDDD A"1H$""""""DDDDDDvep@{83f i}|o05tH#GŻFdw} ' _=:_W>7Q TqÚ5!,̭YF&a'[^m$ f T*$%oT/nj03wG[==z* +sW '{aaZ߯B.W֨D"wo&С~,Z^Wm{A"88Xb }w?`7R D$VEz62{96u CiTjf', {^ N=ʌ>X,go9{/(!C|[EK7&KטFDDDDt1^^Zƣ~31evL%%՘7o"">A߾~@FFVY( 'Ob׮K>F1 ?…L|Zs>}V""|)orwʕu+߯a̘ꃚ"<c}'N\ᇿF\\.`„Mp!/}~sέњ0T>7cw„M8r$O=aa1vzO`k,*w""""bضЭ ) >}ܱp9s vؾ}2b&OrRHG6/0n>o@aҘ3g(3g}/b~XOЌ;y:>س9xzcʔBkkS 懨{r?3qPU%ǺuO`ǎi skMbb>jj4S [QxP;LJaŊ?ZnM^*댱\?Ν ߠw?cϞX>;1Hl/gcu=zzh-gΤT"l7p1Ξ+A߾ѣ+>x Lx{; ]Xϯ94||aee ggk8 O#n_ *EFF ~5˗Cd7cakk 1=uu[NDn:]aGA~^&FQQ1>QasB"ܶDK˜iXg""SF{<< ss,Zm1uj,S;ݵuL-{ }zZk/@rr,Pښ#8+ FOϞ+C,Eؿ֌&&bdeLw0?ox13&Dg3!%l:جs4T*ioi^*:usoccggkHsE6]$gg+LvvvtOB*17o<;++e05`ƅ"$t-,Lp}@g;^OkRyȑd ꇁa֬!x_X^ENNQSWgq"""" (-?II>mZ{\:566fkuWg̘XtBC]ѽ{jwW˗;]3&&fO[/i; ..6 ֝Dii F 6zX 'ѧW/w8w@mj5k%̙ qi J9V>ѣuˠRQQ!fݺZe)cCyђi%"""""NՒhf&ʕ0gO5LM%mZ{ c;/ |0V+VìY ,-MPV&Ûo@PyX, >}<0n8!/ӦEرLv~S1yi%""""" oZB.WgOWښhCZ%Οπ}xLի(+Aprj|SԸp!riiEqCtTel(/ZR>흿DDDDD "fD""""""bHDDDDDD A"1H$"""""<\ """"""MR\ """"""nJDDDDDD A"1H$""""""DDDDDDLR''sDjZl """"""MA"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $ѝB*4.]`j*FEX[KY-TU@i&/E"▟u/j..HD"U*5rskNNf01o5w"d2Qۚakk pIJ),,$wmV99)b΋Abbc '4uo.x/gX-oX<`i)ѣn9;WYN #"οuH]ѭusۺ^ر2e-fӭ5"#0q||ڶ>ZuQQ%K=ڲAmR!|.]̰o߃l N̙ f*cG*x2*{QhD )mnS2MWGkk)- Iwի0d ͘tKsPyCۮ렝)vmBFNN5{*6$VٳCX8AbHowŋ/ݛsʕXԨZ\yߗADEB+PkK#F7n]͛{wЂuk2F01zra=rnJr6hٿ? ǎ2Sf7âEj﮷I&tҥX4pރA"QԵ9 s^alƍB>Aރ5ЯXJ+jOO+6?VԸq2ŀ!j0$J ZrqRW*intD". ٳT 7k\Âr*nܨDa8;zWVV*h>G׮pr2oѵВ]*Tu-vdmOᎸxWZQ˨4 #3 99P*ռYkn.вUq..[ͱsg*΁D"¨Q3g H%Y ! ff끰0(qX.;_+jlFrol{P{2jX7;#\=zءo.03 %\뇸Gshy,_ޯ}=1H섢 Sa`}ذ!RJ*/(|bٲphmWE. =J~xNiz'ġPݭ1}z wyk7$ Ǎ›o:y2sDCR#?N\\w3cݺƍI1½ۥKZС]dI7g`s(+EUK`b|(z(xGj+ր' ߨLWzΜLu9szw.⯿rZh{n~ƒ{:R5?l\^ߒxsЖas>GG3\O޸.MZVE߿}vUP\,m}jOUF7cjaj*ҥ1B;`ɩ{11E9ߟ%YH㶿;YB}h1#H 5;v!'Gg.fX~Ηa  ADq\!1U ƍC~[+> ee4-&=dZAacy6Bl٥&M׉B@[|=Nᄏ>Gx}rqQa]0qO !zp1CW*^뇙ɓtoe%ʮ)my-t?SCj\Bzz%3Ƿߦ1mA-=eޒ%:/K)ؖeԘEzf,Gj{ӦNLDDw@(v4f)/fTuӍ5+Dx}5|3L/}h_]A}1wn̝r>&&b,ZKBbbkWZөk1sz?[D֞=7:5Vaa s1'޽A.jMGVVMwSSOu{:[gtDFmߠAQx?`YƖh-eԄ\Aս5|н{n@@}=ׯ nmujoUF7¨QM߇,-x6td""= .QXJaXZO1()iK[7k:4+JBҽz9`$_L{nԫ&L^U4+VDwwK>  ;59RXX(kVچzrG{4Bgm~cz ["$D,f t7u3:3iأG{h-Q3|'$zyn ˗(RlmMy&nan;?,/S Lמ^y%XR!LMoW5G du"p\!ybiز0bf&u\ 6T {{S0f^{'~q8 rn2l WW݆ݍ, l+-(Vhؒxʑ IDATm=q[_0qk8webv[ X>x饓P(4c2SS1BCз# pFގ6 b4]6zFÆS9bYT$SZ]Tҥb$'#=HOč̜aU7;v .Zu1fR` [#[{jo>pnd""CD356UQ@EEyh8o aX9S߽P.WB?_N9ƌM6*-ep3UV Yew+edTOtuv6GH||c _3:mCW,n`f\LkݎYjl[}j ugFQR}JiA"hdn_- MǴiR"9S?FFfˬ*El<ג g.~9Fy_.zwCA _[.VX ZYISxFkelikl eS۵.ƖރZHީLT#/ƨ7nT6޶߉DDwz5Vuo KK) r9! +mtY{oK'&i8ᑱAb] hƻ;=!>^3 T*Nj/vع52fl>6]G^ ҝqol=%22*;}5Oꓞ^Yx;'iĆ]YbcKPT$38VVV@35ŽoׅœGpCDSۉD%"w~Cf[/'@.WƍJ_wpU`o_N1%)~NXn8C[]?'Oj֛

a \^!Pw7tZW:8ݛaƍJ\Pe[;ѝnItt4r6>7'ر\;I.n IOĮ]iص+ eA*nq-[n 94ˠVC& *g%K=k5k**X*V B7H9:aɒ[3&gO{<m-,$Xf3Zc8/\Og}~XJJkmk-cu\IIή=O{s{ރb{/\gR D)~XO_O$aޘ4W\oF""a wBiDj5sJKC9-Fa tfook<{/|ߔb9FZZW [[S[<঵$&&G")2Ib' @oHM@FF%С]q]!hJ56'N ]f 2818p Ǐ!'pΟGh-_B[?g٤pv6ǂZkwol 'Oĉ:K{&6mJj>+X O<1P s`~5_}ŋ{kJ`9qw\YA?"#`jݓDLӦe H3[JٳC0`33BC;xr{vظqի05#,̞y =YLj:KxsVZZ~1ffB s ֪PP %LcWR  rޟ8'0ma!A֬cDDDD'Q*ՐUG&SɱkjNUj* Yiڧ8ff+Isˢ%yB{9JVVV X,jsV P_%)RoI:v}B**LsնU s"'vR1>$Njfmҥb|u"^-Aq]aHLGG3X`Ŋ{ys2vHE^^ л#77 }i3'*hU` DEeb4$$V__ =>c8r$Gx|Ssޝ0cFzr "?nݬpa}:qq%X>11E(+ђhnW_=~GaٲK8z4#F %'cd;R9llLp=]0{vt_;R_J __fkhw,)㭷9Ǎql!5\ؑ )akksÜ9!5sذ!￿~eEMBl~R3M̝͛ԩ|lߞWKQ\,D"Bnx LЭ1wmu!ӧaC"._.ZFpS**X.7*V>>֘6cx| c*sD#$O>իp\rshyz`($$᫯qr1i&"""ٳ8x{[_BFFΟ/Ċ01G wJÊP`;ilߞW_ 0@|J1+dI 2jH'\VCq\!>4RkSNN5 T5k!?H@.c׮4H"B[SfMXZj֪!JƍJDG4l+jDGV+{œU!$Y i\XMqKʢsZ) ng=JH$"E 5lЧ#J_9.֭CЭ[\‚gqxllL0h3jj)Ɯ9<гg}qr1  ZSvjI"w/aϞtU`ݺ̬LBa bjZpD^xlؐ s\)9x;v Qyys2>*$BB5%~x"ceK򮭎]$c۶xxXb`\^L7֯$՘:8d!]\r,^|VV ڢ5T/;%%|TV* A8u*X4Uظ1]<;󛒈Awp}6/?m?cwoVU+VCގ4]}_ƚ5 B ̞"UwccyV];Ph.]ipv6ǧF NIKؾ:>@H9L'Aio.eWUa7KxϮb˖d|u,^ܻeќ 늹gO:zrĒ%}Zᇗ`w5(j,^|gOzu$`ٲ?]ti!/3ϜY[yΡ *н 4iYs QQ ʕ겲ZLt /!&y!<>}sϞt|u"<=-rem7 aCb-Q7KI)_9դV˗bǎT:$u; ǺA$j|uZu6iwߍAQ o/SO斯zxvcuƖB ?~ͭƖ-Gs0zAVJc:Dk̘(0nD" ;JkۯNDm g A Kxq/Zԩ|ܸQiԱ rњDwWW \R}LL~Z]Zӂ3gNVK)@,a۶dG-٧%%i7>'`4ՖEs7)8_~9z9hx"Z! 0sf0Mf]ݭ}0f' ..:جqq%PVT$?}՝Æu!Q:kPvm,,$BXWuGet«4pM9{zZiђkc+jǗ^~9&t#"05#.2r9S??Fi:ԵEk^vDk$N'`j*o "8:J ss D"""àA:4K`b{/A$x]off!{2yO"zjh'88hwۻv:^^VwDE7nTjl%a<tjW^ jmIY4'}CfP%XNի1½" j۾=3:ifl՚tkk)<[S )cХXɓu>昺AHcۗ%FcM"S +úu ع3Mx#FaABI\دeijRgUAR oV]qX>Ʒ߽; FfԔOH8]7E?* izbMWҦJȨCd 1&qq0K<UםR-[37`,_j0K]wEsʕXZJBii)5jj8q"Oselۖ"W7.…"JvmõZ $&jٺSI}wHnŎi ZAϵkNN.V01## e7$ y(jLo0O/^OuMH(7$ٷ*WhfGsoOʕHI){{wk?t'K"aAx睋8q"11]ǬX0TSdO?{]_E1#=`t:Rl4oy'Ni`"8خ4xqؑU?%>,wz .Kh-" ުhNM14Y <;RR7IX*NxD aΜ¤A"xqơwxns ?Gj婹f`d_ʨQر# ׮7ipɓx X~[wmu+WJ`j*ƊK'qc"6nL'|0{vPΏ= 8z4k\ ^Z\eG1}t9xD"""6VIIevEErxyY_?'TM2JbknjfqR\V%lѣ}t抏/ťK(/5ץYBVXggs6,~kU &2xzZwo&VV*pT>+ѵ r6ؒWz""$N;Jg Tss)l`#)b9d^TkJQ]viJG"-..-Rjqp6jkUxosnI޵ձ=z4BX}ݖKqJ)epv6zvhUkHG1"""6HlA3JbfwQUߓ=@a¾l*RQ\VimVQKVZVԺ`h"n"KKB יf#3I2a#]ν9Ϝ{I"$1-զMpD=DI"$@ I$H$DI"$@ I$H$DI"$@ I$H$DI"$@I"$@ I$H$DI"$@ I$H$DI"$@ I$H$DI"$@ I$@ I$H$z!}e٠2 j_$;Qaa.OO'HO'ڴ)Aey޶@GVh $tӮ].]yUZ*WԩSS,r}4'H mC[uk~/$IG]w#`@xp:1[ʥªCYSU^[Uj}J *k]ܩjPG\nz,]W^٣MrE[d͘=轐n%%zC,$5i=k )*Qk{wi;f( JW^Yǧ\w۠rn?>ڪ2]sM{o룏nRqqm7ڷSΤIu}j_ޥwݯCJ%I-Zi4բE  I<⋻UVuk~5^ݶ@w^ZZ~} k?y6 \o$؇+h#vzټdI4zt[ݛGtiаaz }iVr.Ԗ-̙qzL]{TXy$B>$K999I7C5WEKԼy{T]mK4yrueTTd/ٜ8FjQާ^}T^x|9[}t$)*ʡ)S:iVj,V6[oS^^>4KII={`ױcG2F7EI6,5˻t`&NlꬴDmڔ'ܢ m^Z*~]}WuD['(+L%Z0S^ۅF$:rr5p` =9~g={6S 3[\F6H|pH<2D'1"UW]Yggk|~]~y'2F=Icw^]~y'~(ֻfjԳԿg;ΛGII1zs4dHQ`,~vDm$[VJDNQ`Oپ}uT7\.m h@\{wuWW^|qWff$iʔ.h= Ͻwo7lKM kw__e&W_))qzט>dH+%'J5sf={6SR@xj=9`Ϝ; vܲe=vdf0&e;v;W_]1bDzhڴIиqiKQBBty['xڼy\}IbCFoH(:icl\IrLП]e.с޳喩JKKu{D67Byyh}նm}u и's|Օ{в2;;v"Ӯ]륥yϯT˖~k{D$I $`f`R wrr7]V1GIDb_$&6IYg5Ղ^ŖG+|~)...h9EEEZp֬Y,uECմi]cr-]T111 UVV^{M_|ڵkARXX+WJ.֘k۶mڱcRj޼yUYY%K(**J]tN>c}'ڿ5rHtMWNNx mٲEJOOא!CtW+*߭kΝ&Zp233~5kLԭ[۵`رCCn&i͚5ՠA6W]v9?Pŋ{^_(۶mӾ}Ԯ]; 8PEEE7o6nܨB 4HSNUN<媪*T&MRUUx }Su7]b ;PV4qDM:c!JcZJKK_HWb4m3{Iw-_]7oVEEZm۶xz<pJ32k$+_~d$5k֘QFy9MEEE͜9sLӦM7p@aÆ}駞rmfYnhp̟?H2͛77.o+bnYffuږ;ƽz2˖-3} Xȑ#Meee:;MLLLFa[,^H2qqqo^qqnp￿zas,O>СC[nFYjUD\}wAp\veFy̓O>iRRRjդIK/\?xk_dСCkl;&&,^3f|[c 9VqHIIqLcbbLii߼ƊW__~XM6?x=8$6+<'_#$&&֭[3sL믛^z[\q~'+wuyԩS=ӻtb`$cǚvyNr dx̙3$sEM?)w̘1f'03f0qqqFi߾}qZZ5-Z0scΝw"Wmw\}tj͚5'Mp$X7Cx֖W^-c5yZ/85Kج.]%]~RRS6F5f7dpDi?NH} {Ç=M&z%IZlJKK%IӼyBnK.5;bn -?}|~_hɒ%TTT{N=4f]pb^7Ɵ|\.ZhK.mo ߼"kZ`vޭr(׏>Ht֚ݻW=zDMԧ~7on8_UWWkڵo1;}gmm=}{*''vOıYc8+c1eѪU$I_}Xm}s83;s8~'vuM sZl[7FF lC˯NHH?-[L￯LUVVO>'|W^yEqo{ӧON /;ӛ׺ukM4IC L2E7n ˗KWm޼F6QuSiiiԩSM.}'N* ֓\^^^}lXy2oxܹSǎǵٲe_]G"H^z)%%%'edffJ ^zNr^!R\\o=f3FjKH$eٳdzrv0ߓ,I֭Suu vB8| IDAT+EEEںukՊ+B&o8p@~$y.umhi?$aIb8޽[Guj[2UUU6}իW/_uVպ݆ʚ5krCz>lp=״`kTkH t,)sTp-^:6r^Z.K~m=~|XmƘgTΝuG$N7QvС.֤{ٸqjhOHl7Ȉe˖i„ 6m n:}2 )?ݧO%''K+7Nƍӆ WQQ۷g1޴ik}/;I_gu<=Ə~I?,޻Xzu&wvGj֬Y}/nHoy.뉶o/߾o߮'|Rtw(>>N Ԗ}'%%,7 uy񯻱͆+RSSOzHԮ];u!#/$ѽ֯_9sHf͚؈9I$$1Se?rĉ}5zJ-[S/d?R~]^ bo֧Pf;-_ձcGI҆ º?1p ҦMuY]wݥX1;wkgyF tM% 'M4Q~|De]C1&&F>+CUtt4@ I&iz'j*4 $T\\MC.qw6mߝaZϲ=wؔF$BvMVzzReeN8PKdS_k͝{m~ھ={< bϞtgWf4$4aB;rKϠo/o֭tiΜzO׻{wvz A&zj?yc%KP NSQݼy $ڴIȑ=SzUrպLYSU22|wqi#;Kffnw۠rn?>ڪ2]sM{o-/9:vRC[+;kS2-;?:; kL//wR8Pt4>>Z70hY. Jҥ)$M/sk.Q_?W 2Կ$(VFFqӓtկ_JeڴIиqq_]1bDzh; .qTHQD%.]WlZƾ֭#+7^u]o{YnR׮6֭mVTP,OK6kְzݶPҮ4pTTdظQ*, Nr]ukiȐWc:u䈭I>\jٲaqp#C8~1IzIxq޼{/bc .gI]/5n{ iӓ6jk3+Vv_;umG֭ҿmDs믗{DZc{pm$ߋ‰gqNƏߕ664i52}{kQ{}i"z;t\c-+V,23m0@&EC?oNdrrlX.=]2~D#(,4fr$c$c9rh?r1NgYܖ!S^x 2vyϚeW,^lL˖|~Cc*+lȺn>뭃Z6nk}׊txf͌?V]fzc|ҘiĘ^ ]h9Νe~A=fEE8QLm7]gܸƍJM󳳽V6k/f̆ 'm3Ƙ2C#6cna?tc6n4f(G]PuJCߋ‰iu}]N}/?bc.8 / woo̦Mix |1-Z^꫍)-lr<@$L$c̤IY${ .0 Un!Y}5ƘoƮLnLvzt1z6~fO-7jnsjc6hOjkm[o/ٓYv{k̎`A-:"ߓ3`1wٸq~uAdsP+ߍ׿6͛FmI~7|_ژ=Cyט3q9>IlHHqW]%5O' n1~;}㍵/~=GwKv{L_^Z$ٞXAUמ͛md)Բ}^]8&Oy&3gzıcul֮bBBE*7v#qy*su}…}>GO/vIUPWcģ>hC5},T>NTtoac\mTj?HqzU#8h}o(ii6)XОyӘrsk}Ygٕ9 IDAT:N,$R{TV&͚z M{}ϙxѣ/]#GK2w'{rywGҷ^1;ƴiOۓۥ'qG&%&z'g?{MX%.1}˳{ {pˠlކģ!h$4}Ts*KiL@nM= I"N/ `}U>$lRt;ŖO?!W_#eo裣mug̰ÑK-n]Gk|?},t`MVsvTB;ԩeQs^{Rk{QVfypuk/}}ҳm? Qo#D/(lU^n;x_ҞIӧvklGA74=F#Q y;՜vJ>oܹ5/>|~6{Ocǹ1'tp2{(~=坓c/qgm[Fv˥MlO ?\y, m*q+oV,CY75ޏy 62DBƍ6).+=mRl"t饶7^JWvHnv&LPs߶'=t'XDG^EMbgf{i/3~}Nr?${wCv?P/bcDh?naacs 7(rap{,{޻:h ?bM4kfv=FϷlHģhC!c.CMc?n[^:pgPqn}'OJ11sԾ܌v9ɘի#<1Mzqa̔)|M23Nnfߵ˻ެYvڨQ|1m\?:ژ3q:ِu^ݘݵ1xg5es-Ɣ^mفјucv9tȘ޽>\ҷ-Ic*+kο&-!#û͑/?jgg޷j2Vc]2|=cy^Vj1oaLn1͚yu3&!6Ζ_[9 G}`uJCߋ‰e}]φ'X g1&&.' ix1oG{VӘƜq(/=hko`].۫ع|+\.{yچ [ϴ4ۛ4|xu~;QvTBiۛWYi/:5"{ݚ5[T-IgZk{ RS6'Lpݿ>Yٞ^l7.ҎTKJJ6nv4zۉ8/VTum{v(`w޺u#:^v=fLs{j&%r22ύ uSىnD:zSo=JC+h$8y?:Q~thOğ&Mv?^FwU˘M.pbtv?8і,9v 9ށG&N<}DHr܏h>8\{`b;Gi/hK7!^b8I8to 8kGb{gJt?'$JH'%uK 0^J{©e4/ˌ 1vӟGc=DI"$@ I$H$DI"$@ I\13Fr4v(&ơ( ߏRJKK;%//O]{wϩ$ٓMÇt(ۃX]mrUT8Ux5iݮ\+%%Emڴq3mX9uA a"Pv)>>o~C{Q9$$U4r88%%}Q^T^^*hApҹ{͚4i&MQ9))I ~5kf͚0i \sBN8\*/wJ7Sr7Ahn Crt)ak AO N%)))pcc2*+]k3ƨXeeeVLL㕜\BժsJJJp8CQ^^Ϡ j֬TYYǤ^:NBYhHLBoJKKURRjEEE)>>tHaRYTTũe˖5ꪨHr:VbbB{yyUUU%Uttt].$IM6u%j>cM֨H7uۭVIIItov:~DO***եBUUURllk ɺwק;>.\.㕔T|۹MHՊV\\7o^hqtv1---TLL=#I%%%D%''7g@}ec! I|sVXX|us/OZZZĒegg{N򔜜'uI(uRVVjSj_]XX_GݰB$#h^&==Ɖ[~~rssk DkN111=n'w|ݧ{ۇB*66VD6;;oZLѣjѢRSS=ȑ#*))QVTZZGh j۶mؗӺ\.Oٳrrrtر!Ǒvu릃ocǎ)55U)))ʪ9q1xFg@}ec! I<%&F+66*c.\>⩟ 8p@.KQQQJJJR||*++=>|Xϣ6mhOM|||^P*++~]UUU8ͯ%˥&M(11QUUU*yս7o;,tb.qA7TܐWM5<\5&J D"n$rQ0Quf߻ת:tO,<OtwթsNU_SxZ(:OI7cv:О췵aĉyOwxCBvXVHJ4|OOn7t:fsDCr`0p8`6000Y҂ڨފ6- P{ ~?^/Z[[2ܰ_硩 'NNyI>l6hjZzp8`4ZVlWIҢઽ>,  Gm5S d2X{ڃ՚ȋ.ppT҂@ XVB!@Qtuuip8P}}}zp\Q[\\!""b@CӲ6,f3cjkk(0ͨ)ezԆ  ! f"} !)ɄqE8p<ikjj"nEx"z^2ɓd3ߏʈGaa!f3kGUމt(,,9|Nn8NTVVF[e-زX,< P Xo3cK7n\=xYT2^2̕x牺kIW\XM#AQĿn*Yjh4&l|7Lx<Ȳ N'|BtDa Y?#'|;P_5/%Il*մ$+_} 꾒l6CGMsǒ`y#4hوW_ r 2p8PXX͖@J G/DtQ4JE3LD{;-sa4PTd1vB}xRFv7tdS `0F4Oi0 wYGɂd#uFƜ S6\sP'|N#HlFgg'dYf*Ut:wrIɆPenyd*{@.hCD ^CQ Ni/b$Qrxd7Auhk|ȓ\lwӭ6fOuWFӍ~8`쫰NS "^61POOz{{QYYֲjz݌7DrQ/G[""G~cihi,& `v=${ҫ.zRbDd$/I:cb*P$)a9ٶӈѨ ޺Lנ9Q uttfGLtB!%Hn W:DD&N\3 D݈J Ɇj" !D|G]ZdҤIC\N걫3m eFJ>fC=`8H!"bHy20 AQzJK=w.|XASSZZZrvWNQtm)?/)a__> ~uAdzZZZnb@}*I/ڀuQɲo*k ˲f-*OÑnмLgrU2Qi0_v^mc^mP[{{{>Wh:ީ:<ԁl)WbW`3(RgLp+|TUS !`ds tQ/3C]]]hllDccy@IDI4xCQg6MbG<͗eSIWZZrt:TWWkYCCl6V+EAvR>@oooĺSɔ_{t:aX xN b詪nC{{;\.V+$ISVVf'dgɶt 3/353 Bkk+ aa6ze5.\oQXX χv |>t:vml6|>p8( ^/^/Ngaafeee_ 2:M>~zz$I[l6kC^[cxϡ١6 d¸qㆭ1(2 G̴I"Ι~A"%  I;.͆ǣ PHkhDEEE'NSYvvv`0p4Ekk+$Ij`0. @ 㡦Vhkkhht:m\I2Y>25(jmmK`g-  e9jyɄC(Yр Ыiƾ}6t: IRTeaaa<ɦdO6_GUUbk3G|X,҂=de,9){@e6u(]:1A x^ ddLDz``@0LiqR׈R{|,Ͻ{B$TUUe UuxU%52͓dͳ|e,]]]fa=EWWIRE~?Ez)v{Ҵ h3F8N<5Of3l6[!ցlPAQI٬(2[ZZxPTT*< (a9){@euA"$I޽{'ND _ѡAE !K$mm+GDD F 0i$貸Aʲ{D0D]NL-*P(U6hp@EEE A(E$B!(uY۞z=4>eVyԤcru^ED qTPIIP|> նv=SNȲ ͆ؕh&N#G˕m醳{tuu񠸸ú\oP({9Bt:j\F%"bH6Ё dң CC Bz{(+5=vuu+&݆,,1B$tuu!d-Պ?'\˞M""7OB(48)rB!סUUU볟OJ$Ϟ_"3rq $""^(4@7Qj5㑠(48Xz100IaXPXX/$I0X,(((;!^/p~?!I f3r29gG^1a„{fÁ U,| hXhi BסČ~fx oQ@uuuOInZ7UUTW:I ^㣆zFPdZSӡ$|6rnQ54$i.3 7.ǰ(ޙs)<ڨW)|UqqqT`#!֐ȡryUZB!eλjc -Z8<½8ܴlڰmUz^QZD (ѳMʲX2^7^#SdZX=ߓobEeeeq'[ O7Fc充7n\{Ucjn ԡpAԶ5qN(^Tb5"WiUi*P(!fSNԩSS5J4CqG>e$Ϲp^xdz/#">#d8;L}>OnwJr/@VƄ7U1 j3u:]K?x<Ȳ N]/YÁBl4r-g$+ݢ\=$IKK}f'2 S=DP%iwYqc Y˴~BAxޘ:csnܫwD n::_X,ztutIvJx<) 9JԐNwɄOJ#6 Q"QЪۯFKI ͆jtvvBemA5 r:ڻ?Qw4s` Nr2i .,,6TuғT櫬oP(a˴U(B z2Hwqé~my|8:ʽA"en7h A 3]bA_Id2! n=sd$ §OfKݻcN0zj LuLuRlk2 Q{3r$)v1R׆z<mt9溬 ˚kD6iU{<##˥%%%(--ʤg1U<:{Qt̂tHZpp(Km$jxm!t;Snϧ}8"|>|>_̛T&Mz2d$`-YQ{s )qk#tYɲ0Re2MZՙA3) :TTT\Hs⽊AAUB!_7σX޷ŇRMMMhiiI{ ld3 !ŢÏP܌Rk4Sb jzΦ.T`_V___@7mv m}ut泬zzzeRkDiUKTF.e (W2ܡv""bxp8G \`@wwBzv{(྾ Z[}hmiXt:FQKKK}=EQ!v\ƙ,hjjhʡ@mLQgP tZ[[ѡ5)c5ӥ. 2zz{{a}t:E&q˥]3|hooj$IC[R$׈lt:Q&>G0QPP`0ǃP(]o$IBwwvMe c}%sv,ޫ$Izl9*1H**,  )Q=FfXC"?ԉ\ z#zF#***ɬZB jjjr8tH ]]]e9jxu aKC3M& 1ȲN UUUxw0yތDu=CI`0>GUVVhkkPVVQq60@ q@yy9"inc߾}Pݐe9Q%s.n6XWN! G|2$ߓԘLzX,g !z'& & NsDW׏S{},{B$TUUtݻwcĉczvSEQ51Ͱ#XL(0 l 똺&:{:4j:LbX-+5(Vk/f|^#Ikcc#BޛnԆ}3ϪP\K6\rqΎ{DQKػw/`ĉ9gL8qĂ)"JM @cc#`„ czTt,DD;|( 4^w  <"":ذEJAW s? kC?SBDD r4|Nthx<k+Z,c!""DcbIiAp":{EQp8PVV6f',9D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""r[X'O޽{եΝ;YkqY}ZywuucmllxHX*^ɓ''dfQ 22 FVK7Wx<~S~444dP(YmB!(cɒ%xGq뭷`0,ˣX%I*I!]cmmmhhh:bΝEUU&M4f{3;qF| )oE`ٲކ췾-<1?~^x≸c~>8FB!<3_,\ɋ<ˍFߎիWcɒ%x'>"ib qTW[{}ӦMôiO;UW]w džV?֭[N}}=A,7"":]mfb|'q=vh13q^z)r&\8餓0i$ d""""J{G²exxqx7܌r̘1-^__G?7aۣ#I^{5lٲ{EQQ0|L2%'Ǵi&[صkf3xb8NܹC]]?n:tww8'innnsZ}Olرc>cر (//ag6oތ>TTTNyPTTv:3qDy?> >SL%\NYg!^~e;8#lٲ >l-O֭[^7]vN>dmo6?8qeA+୷|vTWWcƌX` N =^Oꫯb(//̙3q5ļքUVa޽Z5k*TUUeuL۷oK/;wfUW]oC__fϞ':H'mۆfHw߅dœ9s'P/{h؈} /[vc֬Y袋0uT6ֈuҥD}[;6.K׿%֯o?^ .L6@6m]vŖ-["~qFss wvƍŔ)Sbd2+|hllg}vՉK.D>lV*..yrbƍN }ьm6چ,|>kNmN'޽;n4o<BZ*;q7w}WŋE0y~F!˲kviI-'pB}?G̝;7gqe9>cQWW7g:~$1?n8ܷW]uUcZj8u\wyQ۝{'S 3M˵*++ŋC=$,X z;d$~f bΜ9bٲebZu>7z!@f1sL( O6Mz_V_z={ .Rϊ_b67m$ Nk?,nQ]]NҥKqy'|R ,>zR]~w&L :q]wN;MʴOQG%nVq}iۭՎ-^dS/(nfZ9k,q7G=4]w<җͽm4d{`NqW\qd2;wF $pط_tqqo>B"H x≨}MMM9 k ~1c =ܴYfiO>uDAAA̞C%HWYa2hѢσ8餓q9$fֶ6q٢9w۷o'OE H;HT=\}}}3о{E:NfqG- j>,w~a_"*mj~eY|k_Ş={"~%̙V߿XDt:#D?ƈ>;Ox< Ѩ}' ]v@\yQG(XAb:MydB1o<@,Y$lҕjO&^t=M& @|$E|7>wÆ1H/kcJc;餓dɒ;={rĉ#>X,0o<֦Gy[lAaa!֭[3fD|^PPqCEʢ1u4L?>`yKs=N+Wbܸq;#SO07(:\s5+**k_:2e ^~娴jɒ%8c"v)h͜9?яv9ht/^s=ߕGaa!^/~ {8cqmEs=J+Q]{XhQyp)${e$nȦ}:RJ(hhhpG}tmū.l\+ۺ?\ᨧPb} grV=TA"/'c&jknEEŰSOr-Ś5kfK./NEܹsQVV{@n]N0իX N8'OueP^/>c477G<9OIZղ0aBmW3 'MrohhQGyK$tYmx7~D׫ޔdI_ݦ&a{>KVrQ<s]OrQ>m]O$ }ꫯN]:.D  IDAThl'^^ڋ?i oo_?~l1L6fѢE7oV^իWcp\صk|A?F2pmۦ5!wر=\ qժU tQ$,$Ie]_];ӧc֬Y>}:=X޽7|s^Ӫo> B9 AE82j,{^S3L^'ҽ^t*Du+xu 9zﺟɽmi2۶m|k_Kw!bHBQow%NS7,pjkkKb,Z-(زe ^x,_nK,iR/Bg+VwMX"O)eoF֏~#yQO}1'ߟppX d'9''k/p=uTرs#HzL5޷{~l1H|0I?PYi;$'^/JE'7n0Pee%s 9tM:u*B֯_R` ۉoذANv?eWYU ;cN=1٤U 'Û7o8x<ضm[I.>cC F}yEKK &M*++Caa!n76n܈:+>G{&N={`ӦMڌCwy3YOFHd'Ruw ؈#:qv<+)1sj;W/t{0c`0`޼y83a5Sf6xH|>|{;ăYzzzGqD|yO 'K}g7xC{J~}јz̙3ĉ'Xvmw0w\̟??i:o~'|2q0uR˗kCJ4 e>#z2F&ޓ}W ?GPv"bH1Xt)V^wҺh"ꪨY7oެ-QPWW+WF 8x`0p}0o#|' DiߏW^y81o<uQؿ?^{5~{} N󐯛* oߎ; .Dqq1oߎz {ŬYe455{1s̜O=.\;vcgiӦa֭x`Xsef[ee%\.~bŊ8҂k o1bdŠ+pgbǎ8ꨣp '㏇ªUN+WjHՉTuYXx1}Y|8#pi}>3v|Lro|Xt)z!8ꨣpg~!>3,X/2dY6$׬Y_(..g=IUec$i<6m(0 8묳?3f^ l۶ odYƤIol6GlYf["aFTw_׿%׷}SΗ_5=Ǐ… ~MĶmb~GUׯQ̘1C<߂ ؽ{wԶߊҘ7>/_~7n\6KJJĚ5k_,뮻.gy^\\sX>hF߶mmmmR?τlfyyxWDWW(,,d!w64_3M/(c.~;',֮]+m0ĭ*dYmCCC/Q6mٳg HXQ]]]?~x饗2։TW!F ֭[Y(?^EEXn',~ZX֨^q+fYZ)L[!^xᅨ"]w"җmi,> >h"<Ȩt:`s-J)mDá-_imLQb:luߏwy7oByy9N8}QOSqw' 6vW_֭[ QWW.h֋`0k?FOOƏ#8w֋3ZD:vލիWc߾}01c.Rgf_~)v;9r)hhhЖxL#~wvZ[nzT7Vi/::,_x饗uVC͛tVgv맍6v hč?e˖JEUU6mڔU0Ec =ׯGss3LUVK.lKiDp˗cQJx!J:#Hq:6o`…Xx1BP,kuY )mhnnA"Q^z mW$C_Պ;v`ܹظq#^/n76l؀9s?^ǝw [v=7MҼ "QG+Wb…xGߤF<ڂDO&1H$eg駟̠YVs)Cq'◿%>S444@$SO 7܀S2(#. gy p""""""D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $2nb.`aC;sp)1H$""""""DDDDDD $D""""""ʔ@'`HDDDDDD8ܔ$D""""""bHDDDDDD A"1H$""""J$PG4,A⭷>%q͛S'ߊ?r3gsey~sϽ@(곥K٬v砫x˖1^|wOxq' 3liw'sg3 jEDt{߸ƲeLi;#q?Lu#6ؾ>.qkqɷbkPW֝x㍿4Zr%cc~<7o7Obd.Xp:̙ ppmÌvދ`PL/vt= wyyg}}0û\pTQ_?6?w\ڵȲ]૯?w: 仌$ =|IDtPYww?fSJa}d߁j#|7k/{Sgw7?It:\p4ZYor%QYf" lFKX_xDN;:oE@\X'M2c7y^8ꨉ)m;#C?O5 3EQRQVVsFJK p]ϡ13?L9OWٔq&u Yzq7m DiKMɽ_ijcOZŋ¢E6}ahjʕbҽ򞜋N.ɾm;'\yyQT;2_HM>bTxkӅ Ĕ)pᩧ> C=FL| .>lݺOͻqhC &&rm8#}=+sO?;Ȳ{|O#ôibgVo_!Lv-&Ms܎QGGL'p3|\sͣ)}<ͻr{Hx&Lx+s܎mxb޼bqi?/cƌ0y5Dܼ2#q($aΜWM`2I/o;pK1i8íY'DD4}wcӦX6ZL݈vz?p=+"~_aΜJ^=;}?^i"m-ƍ?…}_MM]Q_nK(/nI<ڶ~z ̹{jvtڢ144K@]"wMxٵ9?ճT6qTx/ફ`_^BCC;[cÆmx%9&Lĥ> ݹ ?op챇{J7ɴǙg{

a\v)xz?VX}ڒ1_ԳT6q&򬣣O\)>`KgS.?$ƍ[ 6l\46vq?ߧ} I~ VX'bҤw^<裯cO!}􅨩Rݢ}vf 1{ 7m!oރ8BK ` րVV-HCڮU[K][.A:~[-2Vl*"RUԬZ7 ?,W@3sgwN^ƲLf1͞1XqT.]/VjdAA3؞=]nŋ7uy5_ӧ/1456tL&Qq/aRi;zEq44丘7/3بQ بQ XLL*0OL.rrNs3~JXQQ76m-34mV1ju,$$c>nmU34Tqm/^cRi۱8FձślzBy|Ӹahy>]ohhf~~j|R52l:;rzJÂg={-{\;[Sz٧nt:۶-Mɤ$6z,#c?knnn&EQQ{WŚ[Y@obff1W߲ȹ|jQsx&`w>MKK?۷9g^ˤҤN/7YA㬧 _s{dˎJ>\3}D"oC˖1eP9 ?/+Dcp=GGmgx…ؾ#oo˫ ?n {Wq-|ITomt1*+Sb _έR\_{9cQ^xIu77gDE g_>z1E(W/gƈ>5.66BF˷lzByrr]] Zwwo)D\p?^N(Z: {)MiƢعG\oҼn.Ӧ N(W/Fbh|ɓe?>:ZڒZ80z~XfcbcV=oXnD544C,vH ԩ6l wr)N8v,ͅJՈ =yyS(ʕ8q"?w[s˜hll)vmmZA\ߐ{`Q cdbHhO:DRnIHi4A4??b1ǝlo;>sq@>!.orBWuɓcpY8p'YbU+|S7oEV7...B6n/xpuҼn.B3?Trg Amm.]S1~|$uqVA"[pq-!8}Z!Zpww>\om UUWń 0!̙+r0%8s$7C@&Fuu-jkoFZ*+o *K;wgP\\;'Q`l9F}{r-1zƕ}RYv+ѷI\p >B!L: 2\z[?q֘0!1wߝž}+)쭧ZZ4HKہ(Fd ;vKfI_UC*o<ww@v44YlE;Nզ55u8}8{, R,\ 1#fZWPYӧ;ZP(=Ӝ)péSܺ '-M23&4xwpeܹ+kNP_۷ -XEuuMO!?z!< (-+]뛱hWm/GNNb|dOQIDATވ+Y[u): )pW۷!-mBB~[kcBƙ3ؽ;11!ܹƻޱ-(7c`MK=Z}}Q}ܾt<%㹧z/Bdf̙ WW T&,]&BBxkc(.Ɔ">~ ֭{[mbL?u#"%e-BCgA,)JL>^Ni['8K 6}յHN~i8r$<=ݰjU _͛GK*;W8p)~زjjꐑ1WP(YvAFkk'M$m#2xz-z;)BȣX <=PSS76n|sYbʔ[y^;YS쩧};7 K`{1lX?@ ylAzvСrܾ}}1yȪ_0mwkۍju-j)HM݀[&۝?&}m#(Hjx}Wj 3u"UPhk_m ^͛5ꅈ9O75j _1MM:TOO7\zJe5~H%%U aa)8y2>DZi4m(*ÇWd6'\^+Wna^!55k oyϒzȒokMѝTmmʔhiQC&ћTtWseM;kkѮܿ߀ 'qQn_$~]+bbRa|$$<]"-my5B!I9X|<<\"!22C!BMi{TWׄ_ᆀnIB!BDB!B!O0!B!BM !B!$B!BHDR!B!<$( B!BB!BhH!B!&B!BhH!B!&B!B?* OٟHIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_Warsaw_page_0.png000066400000000000000000001502111420322575300272210ustar00rootroot00000000000000PNG  IHDR+bKGD pHYs.#.#x?v IDATxwx[e[{q!$m{*\JhHSeZ(@ {px{[c)%y_ϓ'}$ICr_vL"!$$DA" @+I˜9s4zh֪@k׮նm:\nf;:x A"3Z_|񻀀 :T]t^ueddtȹj*Kua-[ Qn޼Y7xFhh6UWWk60L2L~ym@háIX:5j(v>|Xc O?]111Ԇ 駟l6olIkw.\pRRRhM HӀ1Rbb~miOD kƍJJJ9眣,m߾]IM&S߹,[L֊+-[0nxڻw$)**JGֳ>#GHo԰aôvZEGGbhUvv***TXXsSUUJJJ46 HxQPP>jՈ#4|߿_JHH5|pغ:EDDHZ?٣;w'zrرuV_$GdT[[:7oVff$J_;(((H ,M7ݤ7-JӔ־6 z{%(66VbhժU01b$I111VFF222dZuk̙ڷo$ʤ.QQQ->ok.2 ?'`RXX$)33SyyyZ`,L&ƍ /t+99x áR֪j65cƌfW&X,;6zl9R_|***;g?.\*O>ѱc$I;wԾ}tW Wii^{59ZJrF!ժUV)--O8Q!!!z|m?&Il6hjUbbu48&))I*++Sff2񊌌ѣGUTT,RSSU]]Ç7ھtj$2@HA".I$DA" @ H$C9H$YCCCI3H #DA" kFHO" ЀA2$j2H$LDA" @ H$DA" @ H$DA" @ H$DA"DA" @ H$DA" @ H$DA" @ H$DA" @A" @ H$DA" @ H$D@d% )W_ήPYY `vUA3&J3g&j0Ep8zs_'خo9Fiz3tMկ_(Abo˗g;׫^CRpE3Nf%$6_~yD W]`6tzm+}JteߪݪW^7Wn4FO-^IJ y=^:PMlޜoYFfn rﭙ;7Y@W:r\߿Eo6~g2IEvoТEhmؐOb Hر }Q…֛tKƍܔ)q$ m^h(RRBfѣ:|:5f Q\\ÇKSj6 [u &)%Ů:>\y:CIέD UlljUNoYD<8\7<\&zWWSOh\HjKVt^EEz݃?y ӌKlѮ]E1"Rw5FCK}6C>!C_մiq PVV>_ޣ*ovv|r.-I~Lm\3&JW]5X&flG3⋻UZuP:T{n׉;ҪU9zZ*ыݳK.<~sg}vw83[Z[v>;U\2(bN5*(м>b6,,#mm>^v@͜(Iz]Z"<;/UC?h۶5+I^;Dy%zmklf]sw^""ln\߭ڶC ĉ1'ܮJO$=6mRUoaP; k{G-zN2͘;7Y/<]S5Xl6idi $O4yryg~ $g;'7: A=:JGGnj̘(oS/#L~7J6C3f$4Ȗ=p]6PKҘ1Q>?6m74zmq's%+wߝ#"dHH/O?JC4 ]8mZ|rw\Ǵlf=$-Z @C#uCe[OH{]houOeԨH*ѯ_㒒vc>v([տ^hǞ iizI:$襗+5<\7g^ziFm?ڠ#]l-|j$Iv ~Fqذw8=ȤFۮ tu$^Lk"դ; (RllMȑƅ%&_ZUUuڸ1_;vѲXL G&;/x=(n}=z_/g?K3Vo2[5|xNu΋ &󖩼gpHoP@Y+oߝn.h<..W_ h-I6M_\uMgٻXk)'Bhƌ7?чnw]dbhc*,Vr]f%II~_օݻYٳd8>2zb+*j;4̚6~bva-ǖ4͚Z>8Ә9iRM6;#G5dH*+kڲ@AArJN:)#jjE6 'W|IF=߶P穲Vy܈1#Am|u}.jXI/SO_{m~j$i0n{_Fv鮻6hϞbF㔚"Ť Gk\7=_{bbo_ }t|_\^y ҥ?oi0iڴ8=d&i8-[vԧo_^|qv$W?js6fLG7t̿4)V<0AۭZ(]Պ.1?Tr.\&I=Uo/b|r %ew>:Do׫xߦ{NK)^?//_ї_|ĸ >'L&獍{Oږ|lY_[o]1wjݺ<~sHfXXU[nYݻoȐpEE jm |rocTUUE6=`O㔞mܹƍ t 7hvz|pSbg^^fe/#IڶjDDE<.Bӧ]EկVO2С 1i"[.#(l,}wkb#1ll !(֬xs \pA')(ғOn7ϘYw6^yy^WP|zmzmں_ΧNo6h~Vwylkz\l}v.SL&i˖mR?ľ}Zew8%'%9}?_օVv9T^}FVwޙQ"=ڶŋ7hAڠطD}d{kW}[6O5zlEE uŶWmud>;xTt;TVV_1dHx $=mǛݢ ?!:ch7sB% Vo/ d׍7o.Ыիշ9m\o>U1vlыU֢yܸ.S^xarr>{mNkYn%G^/|]bÇtM;[kv+\?^v۪]mEoO'zսL0\Ow2@oѣ<(kjgTTT+ x1љQ>w&uc5uj\+_X<$j,MRÇ)ܱE˶m Tll`'6Y&{ƶB^-iJee/鰺Unctx;w3.+\|lGÍ)oXGm[GӉZUWi˖6ý'k/i_Wwp󟧶yqX<[/fG{9?n_:MVs)??EUUuں@kժmڔa'Jr1=;+/ +TW0z ۵6bXL3&J)55D))!JM Q߾!ʜ-\ٍnu;V\.tղۘs.ckuT:umuVynwqntw2@t>/+4ԪаVR'r 6?Z(MT?f3k }a{.ç_4믏/h$ImjՎm۵VZ2DDtCt)M̹hNse7,, 珺UnGj.6 JKk)w>ܽd $y eٻMCQ\C\__PvZN=5A#GFzl0/9stkZe{=VMꦛk>}E7}O̻Δbsϝ`kNNo/%ڿD;w8r^^[W~Qֲ@sׅZv;JW٪͝.>ͦ woKKKkw2@@IoRS?;h$~>eԨHEG6r]HIΥwS}͓?֬m8ùEļy}됕\ŽƩ7D\3sn?qbcǼV1~޽Km4~Ζ-ͦ;Ӧ93'Y/}S~BտXՅPv}A' 05{+̓ng4ۋڷoƍvkw|:=W_J6Y\2\~@rJN9%݋\t7'55DOO%7{|MMۅS ;xT=x|eeKqat% .0v>}VSN;-gi0xp&Oz)U ݥ{m$y iNM]W ӟ4gUW ا]ww xcz!=kV=7xG{sgܹ^甍#Qء+{sRs=8\co&-\8Xপ㹝y%iԨ(~z~a=22aC[Gz.==ZgٷC?nkAkK3h}vj3դEe6I2|sd[@gYZ*Ǹp~衉2$\fII!%K+VdkY:Xmn7N<]0 IDATPZZ\r]W^9HO=5Ÿ0ڲ@E55wߦ/8Kus^fOO5 1X&Mg1o۩߭3ӴlټVs%cG*+wcb<Y& Gq1\-|p=p8Eg'=с첁z)v篺ϲ;xp8 g/hmV3_P=$S_##m/g{}_ҥ˵ԩqz:xYd4xpcG>Sv|: I!-ZQO=5Ed1L!]={u{{sH~9&4Ԫ[n[na\#_9!?p\o_?yf-/mSOMUTM6Y]7D]7DUUu 07ᇙzս>=:*=vv(IҴiqzYͭPiiRRB '}E#^ymڔ۬VǮ]E讻l6)%Ů 3t!Wԗuer  {$i6 cZ&sڴ8?[Z%'|ul~}1)6,BO<1Ҝ wkJ;;I:@~~;-]z.뮥KUU^yej z{g'{-:7Z>మb;O?ū{fd骫V4Xhf j?nr[#~=.#L&39׳f裏2=>IsCֵ &s=Zx"#w._<>۠AaJJ =mgTWНwnhRll :+ѢEC޻I\O#kꪫVz t4͠_.\/8-BwSOMРAa Tee+fMhINk*%ŮZ>\o9o=ZWb% 'C؞zjg+6'8آ9s5}zUVV{4o>Dzs~m՗_퐺૲;sf~Ӕ?_rr*[=vCk}aڴ8|rRSCJY>8凙6P-XW+:ڦj_??]HowΙgSPPPgX,=3$zW_=EÆ9Ͼ ĖcN"2$\Kz-k?`@ xj̞=Ŋ RHUjȐp^~yq_}uM@˰p ˩u믝s M&/3Hibhr]w=Vg"ɹ/&hz]cmرJN+::P3V:RV)"~ESCzmڷItIꪕzaa92R'xYYeZp|s? @;ѓrr*t;7Y}է]vUǏWR^Ur8$z2s  7$DA" @ H$DA" Ibt,-]:KW\1W^98z=&I4(]di3<-]:K]F=ܘ1Qz9z 螗WE;t=V=ŎJL lI'饗v7yYIJNKN;-QKjؓOWr]ee5ڷD`6o6@*IvUQF`Z]]@IRbbMSMCk4`N3ǫgO{v1cdұc#:x5qb$r$9{QgNRbbEzíj,~ͥfք 1r8yl2Is$k8Pzс=;IÇG(44@ǏWj}Qx|#FDj֬DcWUU22Gϯl)PWph%;>>Hs&kРpYthV֚5r8ZV=iԚ:֞|GWeu) 81F11ͭԞ=L4bUAAv(llG("¹|ߨa?p\EE^?cjjȑr_͟a"he#ھ:u5u}gObllMZR[mi+iwT{qKڡA4gN Quuvv~ #/,UffO=Эo9^5|/th99߃3&J;3:Mty˔',IO>SnnŽlW_͓n7-16`@|TIܹ)?Rct$Ke Ԝ9 Wn^vslfqqFJ&8һԒ%0rF 58.'B7)n95N}9))X7[M-Jׂ)utu9~/+(Ғ%lFHOڧJKktu%4vl~z^xaqO$t҇[r$sΗ:|b___<pٴ)_߾^-*MQ{_%=:\`3&J7N}-=M{ݢE:묾:r\gElc7ʕoΡ9s>Saax tre,:-]zHKlVMAgns~jpTnmYnK޶h,;=[;d6t#ui ]yyzhRSCt|޶'ѳy:),,Laaa 5~v.#>3=q֮՘1QT߾!:tξȑrMt`/wXZZ7ےmi+܃r_|GqhsN$1g{lo'N{}ֶ'D Z&O$F5$TVj\2~s]]CfBh\8XM;6ڨ1qbjkmhU>8Q'j>zC ]N+VdkŊlu ; [\ZҎ5oV;W~ҤX#@\2[ WYYMv0I{`86J 0?c~JSz4fEEڽ/؅Sbok%%FzՆ0kj#? w(bwy}ne$>\o_q'Ig"*C64%-yN=5ۯ=Ta ,]zHw/e dUVV?aCyb|락ޓ'ǶړFU|ucӦi09/ YI*,A5 sCKKkqcq!nS$iذS92JTzsm5x]xaZihkhw/~_sm]};#DӖ-? :υVr6 q$_u:"l6>xT3g~3?ir~kS6y~ƿp*t0|{O>ltרQμ]:Z2GxQiǸq 7˥|u^0wwivW[Ө3˓u̗>77"9n\}w&zSQQC1F[՚yՏ#p:r[_Uw}s6Ri 7EfM&LQa PQQ1t۶B-ֱcJHp.hLTo|ĶpWKIZbא!:5N*koXʟ纨;/p32>}w₌ n-hym.l)o{.:<]|YRSC禮gHNk|1tpEF4xp22]ZZ; n]fLĉ1k>bkJRYY`lq^*( 0urR[_E)4yiS7-y{۞.ؙL!~{LSo}q+st:x=ܮyi7/Yъ S/+;4~ *ɸ|#G=.܇fe52 y2j4swe}p]Θ3>lt߾ee)9ٮɓcQdlܘo93Q&8ClmjUUr$Un6o}V;=;mO.lbzzl)0j,Hl{nFTXXq|ًbt4sfk׮"W; շoFvyut:%]p'װ(y{U_25qR6[V"W6:<]|Y\pǎ <,_.Jɱzս0u7\7܆ WhUÆEf3MG:rm[_m}+ jjڴ)_S)==ZE2C&zujkX+[3.^_}^|qw׏2 DC\= q$'۽KJj[oCLL㫢VVAAfϻ3Ө;kwc*--TkǷ+V8qbd9 qbW*::P֬mr7[k4ƽᎾZۚV{qm>gSm{p z,]##"k5zǯXS^GׅRW7ks.wG5:Lro1(L&uZXXe,ᾐlj k0.\$iЈ&9T})F1_ss4(qcDi֬$Ź\mbesŌ ?Lee5s\&ִe$VVϯl򾫖mGSa{ko Wm{@t 1ϸp3ǹ]cCM]\[a̛l\k_s?9pcN7s81Ƹ;ѩ&%i ]ɥln{nj})Ƃ'7/Y11hOu|ulfgy:59Yaaz)z .z++kvkd6m*XA5/{x随xTRls;,jYoOvd[/mZ] H; ^lwW6X45zg-\+Mנ7f3ӜC\smI;gXx= GKrE 7g =6\.Oi}{ ~ ~%1unjɒ >9{}ͱvU{ҨޟUW_UVVL&'4AA-Y2^!!Vjٲ# ^+8hbص[ZZV)6qi4(QQ6=$V93VBYon'oVt>т[_+cN"z:֭39R*(RTMR{]{|r~*.|>IV?NчVqqՌ Ǯ"  ]w}]m=|xoBkh͚\8P5iR-woUY*GKYg1z睙Z.OJOҰaՆ 6-} qcƎEoX@Lɱˣ;6J [g٩fN:)^ouVUNNF4.VGe+ړFG*˗gwkh0=..\5kt,Xu5CaӃnytL9~7R6cΙKffg1ݟY嵺~i$ ;\ɓct]5p`M83u}t&vNP%$36f~U{Ҩ_ܕƍ?O&N]ۦeˎ62[TQQmnfM,H1-t`]ᄆ>9^shb-[vDEEՒqF曣Z>קn>OQg彿ι+ױNӘ1Qбc:pD~mXun+u+bI<8eˎ4bG(-ֶ]ՠAa:%&Nv/F=wƎO /i{ە:ΙgSPPPgXzƴD IDATСA"KނD mX@ H$RUUj|V՝g06F|''@ H$DAb+?Dh5Ѧ$vqQQ6J73LAb7lhUh6 Gnfڴ8J9X,2\AsB^$Θ` %WVkV?=pdi7i% jc T@@,8$r /!C)Qed<EW G&)))^i)$Ħ@{H$&嗧kjIRLLfܭhd`Ānjr]>,K/[E (נAGV #@ n7(44GlJx2mT T$ l V\\""aFX$t!HlBMMURRbgRc0d2{ {"+Eqd/qkZZfcukhٌ@=A KPPd2HO" q$kWo'=@i{#${QMM DAb }US@1 G A5555DWq"(7Ht]76}io [5px@]VGo≋!I Uv]+ҋt=Ht_@W [`Lmm*++UUU1wx5at!Hl6 @ %m0,fsND$$DA" @ H$DA" @ H$DA" @ H$DDA" @ H$DA" @Ò%KԿV۸qW^Qu駷90lb>77r_ҡrJ͙3GIIIJKKSUUU_k…F=ZmNO|lJٻʿdQTp}aខ>ה2YYej*J ).䆦b">sǙa4߯s>^8s>sιOjj*/++HJJBr劜'77W\eyvvJ:6A"3eff֭~XX_7oFFFk.lVVV&fffGPPPA"ql1H$"" q/|=5kV+';v.]uV]bݺuFzz:lll896^s6hږ`ΝCbذaG)ˉ^6HDHKKñcݺuov8x ]vźu]8qPJxyyMC9rЩS'XZZ9qoߎD+WM4QJŭ[m6DEE!-- 񁯯/u!11W^ܼyaaacAvء<o*UBjj*0dȐ-++ vBxx8nݺUÆ C  ;j֬ipdggZjhܸDFF"&&IIIh4QP~}pQlݺW\F' ڱRн{w6mڄP4l}QfqLDDE DDT,SNbaaar@233 IJJR[t777|wܑ&MQ7>>`yd233e'?*T۷K۶m|'n˗e:?#i jǂt]lԨQ@jk="##N:FnŊJ|֭OOO+o˖-@?Y!R nOR[oWfrr&77WƏo0;wN/C;-,,$//O|;v,4DDT8^I$"IIIA.]pԬYScӦM5k{R 9 2+V4ƍ899wpssÙ3gΝ;Id|||}hРܼW081b|РA駟[⭷*vݢЭ[7}:֬YhѢzܼy;v@ll,VXƍ+}gϞ(_<7n`С8w\/k֬%6loo"qiԙx%T$ɞ={9rH_I| bZ$11HW]9zO>CV\)J\ILNNV zyyu_pA\]]T^]ѣ 2~\xr)))IY#+WҡCb_I˓F)W(vY\rEYzj ۩SC Ҽys)/++KjΖ6mի+*J,XJ˗/ЎmJ%k鍁fILDDcHDdbXWO:AAVL'''IOO7`A m""wV޼ys͛7Ҿ}{RTrbʏǎ3ƍRB 3gY׿ 7lٱckkk+ŋRbEXѶ\h 5kf0͛74(vww | %3]>r!<<j*]&&M2Ik'ڵ+<<< ٳ'Ǐ/6ɓ'n5}Sm;lܸXeGDD7o-[LSZ5 vhpYL:Ǐ,X 6+AHMMEjjѶԾ^wVXcRjUV^mC-KDDdI$"2ja%@{ueW_}h:wwwѣG*?!!дiyyy!&&nׯWm۶u^q=aԩE.;..N 3s}}ǥKtWR˖-dg-suHHH3gw^lٲ<3NRPRԙ$\~ׯ_G'NC߾}QreqZ`ڵk*_{ՃhiAAA\ӸpBwYw-{Fhh(+`lذ~]_cGa:L8q ?մB\ՙ3gr q㐝m>U\*T>|hsy''N.QQQJUrssu2ǷWu>NضmRGo탃"""пcȑ+g?pBfee-QDD L=ykիW ]-@LL >s]vK/4lp:u`_~Ey4S۷o >V}0[ݻxiiiٳ'tXL6 dTZ˖-CŊqE|Gzeݽ{ |^c,Ga:1H$"9R_}< OZpaWh ү_? 00o<%*I&RSSѷo_\kXvIe^ ֞3** &Lc~JϴZZZ_/4}۶mشiaA|}} ^1dܿJ_bĈHOOG߾} Zjꫯ-yVAۧw133>LD2Q1L:Uywq>})m۶ʺ=z_-ϗ] yIe""K.fp^*vvv@tRߍ\Ddȑ:F#~~~oKӦMH=^^ׯJ%bŊӥwbmm-J:d%C )=z$@ P|J۷OYn=ED~wR\9ԩ|2~xRJ%۷oW̚5KiׯGn4h@!!!~xxxe2ydS&M(ifΜ)gϞdeɓ'HJJREGGݮY:Q$CA˗`aÆIzzTZդ QDdJy֭3)Hɑ~[Q/|IAHPPh4mPN0ϔ qJ[l)rG*FY QD$""B XT^]6lؠ=qZ~\tI }]u~XZZmG͛Ν;RBeĉK%H4u|4H,Ip*"αNDD.??8s nݺUwhѢsƥK`aa 8+V,q<@hh(p=h4G|7;;{Edd$޽իaÆӧKu[ _333xzzbppp}?3ѯ_?ok$D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD ٰ`ϕ+W?-WpqqA׮]QV-6 Ν;XjoL>*U2.<< 00+W6Z4V'EDD 44qqqpuuń P~EI$uDhh(&n۶ ͛7ѴiShРN$x"j5<<<0~x888`EDdQ>|XH@@@ի'VVV,;wZ HffNiӦ@j֬Сܽ{WI"@aÆbff&UV Uʎ;DR EDdРAR|y ˗F#ݓѣGKʕ?K֭AȘ1cdȑbkk+[ʕ+ ׯ^{GF#K,Z-ҨQ# ]%Æ V~bnn.wUҍ7NڊFDΚ5KHxx4h@ڶmRdΜ92zh 111Â|bee%䤴M}I&"'J2p@}igg';vPٳGjgggQ*U͛7y0#"2A"QݻwrU ҷo_IMMȐ!C̙3G'HTT*zhQ,NR/YDɓ _cÇ""KڵKI!d兖 #""dƌR>\p`X>,V*gΜ<ꫯL2(iߗnO>DWNN?^B JpY~}\>}Zɻxb ӧON\CDTFWt`̙h4Xv-*VêUPfM|O˗`cc~ kq} {fff-CپVFF&N'Zj077/R} 8::*ٳ'>]-nsrr0}tx{{+Ǝ \|٤7o*W5k(3j4[7o^|РAlٲEg-[ 777ۇ̚5 7aPT:mVܾ(iߗVݴӱ`aʭׯ LرcA\\֭ ///%1c0|lْ)""#$*U\DEECC^^Qh߾=nݺsr]ret]L 6 x"`ҤIذalW~~>N>md_K{2_OOR|kRwҥ---M~Hrr2ѯ_?[ƙ3gJxWqFevVӂf5 ܹu~0/LҬVll,ݻ???b}]cǎPpss1aʏ-ӦM/RDDFp"2r+m۶M:󤴴4 d6 IDAT4u$$$E]v!,, Oƙ3g#TPveZ.r-SժU+HLLԪUڵkСCFg&-Aa֬Yt\]]uVX`!}ajߗfݴC6lñl2,[ NNN֭F=z ED IMMEtt4akkL FioLiuNЧOxwꫯ"!!7Y[Rw%~W ׾Q$n޼ӦM͛Ѹqc4lhSАԾ(Ҫh^^^iG"$$ 1m4̟?+""DDҥK#5j 666}ڤZ 4OƼy Y[ ₵k"==]gʕ+tRٳ^{$QD"Rq!1BNNNxwVռy󐕕cƍt"""УGܻwSL)_Rwŋ_ڵ ...pttDpp0"""X*= 瑙 )*nb͛tHLLĆ  sss|'66W;xyyI}T}QuĬYpmt BRR-[ŋI&hժ<==舭[bҥEbb"-Z;wuDDȴ$>5kʘ1c$!!`]v)/~dҥ:4kNMVRɬY$??_IsNIעE 9uꔲ#F(I'iqqqӾ+w߉ vj_z_ܺ۞Yf샓3=O駟ߓI,NGBJ/%$˂ Bƍ޽{Ioe˖r̈PIiLLDDEr}DEE!&&hӦ 4NGGGxxx <<qqq8v,--ѪU+ԬYS[nwдiS#!!7nW_}Hw9:tvvv6lXg,Wq7%%QQQt6l͛裲g]7oĉHNNFÆ Ѷm[~>zr lmmw$A"s Y3DDDDDD =DDϡ+VpE"""GD""""""RvS""""""bHDDDDDD A"… 1cc4M~~>f̘?~y;w`xZ|!!!1cf͚|in݊3f 77_5-[Ek&ˎ=C |}}1uT,X`|٧hcsNē'OŋVWDD/;'_hԨQG<|ФIb[~=`x뭷m6|w`|&D""z!߿ ;v,"""f^z0aի EBB&M`\|#GD tʼ|2ѸqctIY~1ܹsh4߿?z Jٷo0fرk׮ń еkW$%%~ŋV>@pp0BBB+sOӘC*v܉"11޽;:v쨬 Sdff" 7_f޽/r  :t蠓_~ARR|MTTI٧QQQ|2Çڤ1<w8z(#GԫKAc~DD =3@Nj4Mnn777GF#K,Z-ҨQ#  YFo[|`eܹsLj4h@,-- 0@233tRjUٱcT* ?ٳGjgggQ*U͛7 ȠA|@ʗ//F|z>j(SoCdذa@jԯ__JqƉ[[[h4XhݻWED_2h oiǢyvvxyyIŊڵkJ'O hdlܸQ *V(:233^5kVhkO>|(""tAȮ]@/_^>}79rDDDAEmgϊ[َݻw>c gϖ<IKK 0iL >\oSEƆ~/>Q5DD/L>ʲc/_6VZhݺ5݋+6E O̜9k׮EŊvvvXjj֬oV쌌 L8'NDjՐ8ԭ[W1c`hٲekiiHHHйU޽{x7 -c޼y\2֬Y[[[Fu`aayرcԩ֭[j5  ZFQgFhh(֬YO>Xjr)888`Ȑ!x`fkC\tc*)) 6l7,Yŋm'dž6(>QbHDҥ^ U\ :عslÆ j۷ǭ[p5|NV ǏDŽ lll0m4 l۶MY %0&99ׯllltU^[ƙ3gL;w1b}.l{gVZaҤIo[n:eN4 6lPӧ〈g"??zy `tLS$Ҿfnݪoٲ>>>pwwjQnn.m Ϻuiii:e׭[W6l+e˖UTo0beݻP MLLj!kFzz:M7 .m4q=߿r>3X]0qDi*T@ӦMaҶc:u֙f͚==6 R}&"M!tyyyFhi>F]vŞ={?~ɘ;wFVze9;;{yy!::GEHHcڴi?~]{ʕ+qeeѢj•ep"%%{FAϞ=֟9sΝÖ-[0au+n`zeO>Wf[}wꫯ"!!Ag〈233 RR0Ɣ}&""DD vEP𕖡CbϞ= `cc+kԨ+++Z/_ƣGt^cL>>>u;wƂ 0sL[? 3x`\[nݻQbE۷|+Y111ĠRJɘ͛7#''F~߾}޽;mCaѢExwcڴiի\]]<~… ѤI;vL'H3yh FGGOg݃p5eLM ٳg BضmR`mmc8prx|cǎ E||Nޔ4iƍ+pgϞE1~xnnn ;;ީS'h4XD"kf+V ==;v̙3~?~6l@ǎalJu˗G>}T5J/ͼy󐕕cƍt"""УGܻwSL)pptt֭[tR"11-Ν;Ѻukeς?Jcaa^{ /ҭO)'';wFhh(a|I2)) pwwG&M 177믿ƍ ܿɓqO(W<<<...pttDpp0"""X*>E 0e$''Cػw/.\?~IWbj"goƍ*t>2fu^ѣG IKK[ggg'PDdǎ@֭+m׮]RreKӾNA{^Zl)W\)pDV+yWTk֬[[[qrr0tE}O⧟~*dܹӖi=Eis#ueggKƍVEDdΝbggSV-ԩS6FQ1+^Ο?_ޓhhl3=h%"g*;;gϞE||gggi=z\rpss+;ϝ;CÆ S&D GΝ1g̘1uJIIATT.] y氳{nCIInq=xyyiӦ077GBB~74nIe'%%E6m<3D""z! 27oFBBɓQ8)=׶oߎl޼ݻwgHDDTx%ks\\\~Q$*::iiihݺ58)7D""""""zf,1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDT,DDNnn.._ sssԨQl"""bHϗt?o߆6l *L{!*[nFӺsZh C J?`͚5h߾=; ;w8q慮˗ѱcG@DDjժUiiiX`6mڄ˗/#77VQV-tSLAz8x8\dd$>cDGG ,Rޯ K.5^Rf͚hР:u!C@R4mP8pjԨQh~ܹs{ZNN㑔ڵk^zPE{ieEKbB/[nO̙3zy:v쨗OttŋrQtNӗ={(ٳT6VseLKš5k{{{x{{+:tM6֭[Kr)6mZj_Ӗ:F-,,`ar߬p) 6 iiiprr… qUddd 33/L~wc7oFFF~ܿVVV&f[Nb {^:??D}PlڴT󱔔4i_5aggwww";;_5p]C0bL>wޅ5j;;;ܽ{ӦMC@@;Weӹsg jZ/^,YYYʺ~Mԩ#bŊre]FF<|5Jg@&NhN/^I۷ *獦KLLT6k׎(*3cƌҷo_?y% ==z(iׯ_ҷWJ"L:߿rwʪU$??_DDdʕ_]oׯWo-=u7of'J",oΝɓ'<ҩS'ܹVVVHKKy\r-s_5kĢE}+M>p%ږvlll?(?v۷1uT6L:{!v裏6}6֭[?YYYpuuES`z>vi|'>G;w.*m"..0zh|* ?H\pϟGFxH/_H:u L7qD j*rƍ3xa@@I 4'OAL_j6v'sœggg9w\.B b $B_ױcJ2OR[oGGG8`}v<%kIk!>>>gӧmFGHΝc[Ԝ~ IDATΟ}<|Pzip}.]]{[Y``Mz9R )c@DRn]j|zyÇ:y/-_AΘ:qMaZK իX6c},cvQo7?dffuJzzzo7-ɸ-6|v={HJ 8pǏ|ʾ߿s'?-Z$Ln߾m0͛7o'/!/Çի%$$HkO: s!QTh:낂$00P987iD_Z͚5+}^ZGv>}dҥf6lmV'3 /dرRjUܯ/?\SyV``E2sLYxL6M4h[ti ~y&gȑ˰a^J?F}M}&gw.QQQ&֯__Ȕ)S s玨j̐d{nZeʔ)$sU433///mժU*'N̴':uRΝ;G}$#G%o+WJ*Ʉ d…GIÆ >CSAbioaLiP F iРJ``I}ul+JX^cvqD]^6m?$fj bkk+*Jv*3f;.ݵ/M=~T3"" Pf+}20>ܠA A"|ŋE@.\h4MQ&1Ռ3׮]+ QRɂ Ϟ=[Is")//O9!swwכΝ;ʁFt헞JKKKy륶YYYJ`/;;[ڴiw(u/O{K>.\WWW իWyT$R|y]^=4iڵKw8Җd{+WNN:_W_}>--M9z:Ӟ jOʞ~uGZZtEIsR}r/33S<<< uX[ѣ 2ĤRV-%Zc[Qn$7rg$f>y\ԛ(55U縰ug}iy>۴i)Q޽[/ٽ{[ l٢[nʏE9{ڄ$?RreAc>>x饗},++ CٳgŋchԨ¦Mpug ?aphoo/ |2O3g0}ԩSXl<^cK<|c11$b͘>}: 舅 bfiW?.\CbmҪ_߱cr娸tt:cΝ۷GNо}{;wn1Ĕ׽θVT{I$$$yc< ߿ݻw~~~˗m6tr׾2(wӧOǘ1ck.ڵ aaaHOOGtt4/^ҥK.mk[M}ޞPj]YM6ſ/̚5 !!!ذaC>uYo+Z7}Y׏^{ #G,1x}5$ ׫W/ >{ŦMJć>8.{jC"ղcڴij:t(*]V^ ӧO=qѺukDEEa/}r`zwh{3|||23v%:UǻaX:uBddd˻_~عs'_nv`,X?-Z$"v֭Ntl+UqƮCMGGGL>ӧO$I8<~^3g_#-IIIs[!^W_}?=wyÆ kR)FͲGpp#>f\@@݋[n -Zl.((߃-O&\Ij1aݻJ1''[l`F%pŋ\ĉؾ};"""juv:t(,Yb &ӧK]F!EY5~vRRR*N||<һtDGG#22RKrM \YYYtR긹-UzG#Gpݢ_bJ%t邯 /^FV5ͫ,~ࢮCb]}x~lBUV+uP^oSSSKC͛-e.A 11i7_ccff|~رc{7C"=6n܈48::bժUUYȑ# 0޽{BBBpe\$ov޽[?Ÿ|C<ޑ#GBT"77WSe2d˴kNoxh4L8W_}ev{TT*3ǪU̮%QI*f1/3kfm`ի ޖv]HMM?ů ۯ*{Xzz:~7@׮]}G6ݾ}{0*l߾}y`H'֭[ ݻnݺ2_f𸺺V[FM__<|LcƌA˖-!KƖ'"##xku#o3>v9}tɓKIDD^u=^oEo^nꫯP9zvvvx7J /8z(`u:ӆ tRi)))5jR駟H0~)̶T^ZcqŲ1%Kpzu㮾\?C&=5kJtONNȑ# Jerum}UC@@pܹz}l֬YPT}6Nj c 2e VM[oXb}uy*7&PƳ2^/^ӧ|^0bĈCBBA93>g߾}W^yAgiǤh~z <QQQСгgOcǎHNNB }^QM:u*n݊W{2e qUψANpyc?~=XbL(bРAŅ \XZZbڵ5&VZX9xcȑh۶-ɓI&s Ǐc刎ƈ#;v,?^jmuz՗kF5kлwo-Z0ǏٳAAAGXXϟo2@Mm}U rz^za޼yXp!v܉ǏcРA͛7q!ygϞ&}v\rƍk6mʕ+Xz5ѩSRyIOAOT* zUb;%KTm;;; !HJJ]t:N^&,,Rǽ~y+gΜ)ujZ1 e)6olbcc-EErvv[nA>gΜ KiIII%gӦMl==iׯ_T ,~ xĩS*Ν; q"//uø/>H})uzHHpss+qL*J{BכvUB\R899]B̜9S暬SV}u7I&^?򭈪ߌ31q*7o>:JۨȵsV^kvykZޒwƌ5Roe͛7OرZZ3hѢRQc2Ǐw֯_o @חnz2n߾}EBB8?M $$y,JU1 $$><==Ѷm[9Rn+7n} R ))'N@V{wj+Cc &zBH%Z@P( I:]FQ8NqTSë02* 4$&ޫj []…4̟ %CҥW1wn<|nǂ/޷Fax&cb2G¢dHw/_^f׮ecϷ埏MѣptCDDDDD oغg|GU:1t;UʡPXOhƙ3}ai*|/ m)0iM+{$aQ9s&U6ۻwV̫W'98r$ cѢ cĖzɹx3HK+CzZj=:[&R׻}%""""bHSal3 ^NE~JZ-КhhQj%9JQƀp=Q 33yyc?q"_|qеk n2_,Dn-[ozã7⣏T,_fx6᯿&ȡ6yf+K/Íػ# ^Cz`P$&">>;;wL/JDDDDĐXde $I($** %Ѹ^o EA /RѠ@]ę3áVl˓lC7#I@F,]0nadgkm̚ P⥗Z!,, NNu^Ҿ1$>b*E}Bz:T(Ih !QD#1-EAdˢh*jخ](w''K 66%OqpΖx)W$ܹ{*4˗ ..͛ۚ7r'Fu!+C#֨-HBI2ÑN=NW4EapAAtZ]P%y, EMQ( s洃eɑ?%IΝ\9;w }?&L6Y...Ф%Ο_GML̕  ;vBzzƏCP F@``Xի:А!k֬ \S$tnGbàa Cct:]aKޤUQ}aSl@T*Ǝmxoٕ~:x^}5QQXƍka#}o+7M1zWVА!kժ)P^Dc`2D}4eQlRI|z0$ [( E@Q#8:RSknmԩ'g^,󍣞km8_qq(/$%#""YY:ecش)cWjkKW"""""ϯEa3D!T]M*]JMC^FcH4@~o4v=5$BT 뻹5KZ?~oo;Zy^^BxUھFya(/H@tt~5;w!;["ukRV{IY<}%""""bHl`[I;˭V[{E bQK^7 P_KC 5kRok[t32  L_/{ ҐMmо}#H@d}9:9FkU*h۶ڶm[b̘PtgܫT2v z_'`-ѯ_G%Qtj tNW@i 'ueVˢ(-[ysZ?~-t;:N4< ÜL-||A&J{ f<;̮f-Z+/$%]mVWc_Sw/ Z$iK M3{ofN+zmaAxX4$m֭ѱ[ljwGf6$&O";[kk (z|۶{o۷ Cրt/2Ǜ%*rrt%Uu_'{jûc߾J H=B_H e6b y9hdl)ԛ EA~~-ЮW,,((p=̜Y"xaر1#+K$ܿ.&s _={wO7x{ۢ@ix1 0l|}i;;!2>nx)WK:+~oQ ~7^k^}%""""bH|g\CJJ6$I J%, uߗhl,oXt_եK+t^^.urJMpd Ξ[c- ˗…瑐3g̙{|WW+̝l[&#,_ -BCh5_b ~nĉ)8q"E7lѣC+u}oBW""""'B<7^]KwC@>+DU5G7-ͅD5ѾFgY']M+Cpd .\HCznnVh}ʭtdgpH2sGG xxؠgOgY$ %#::}C*É)8y2ZLS#JDDDDĐbɒc($qdS+rLh7og!CMfuDDDDDTo`A/='Qܒ( 1$* nM,jIlOD"""""ؖDش0v>|InI4"u95DA adHl AAз:wnFDDDDD {ؽBBڵ`* 滜G:5ךhggΝ[[6ٳڶdM#"""""Ć&,3gphlQ47x PԊ(`cc __@ǎ-ѥKk8;1 DDDDDĐ`̙h\tщ Hb#<=]֭];/jՔIDDDDD \\HJJCZZP(`a5mf͜м+6ubCL\j 66 dC"1$C"UE@U_cW(h޼9|}}1`L8 Akxx8,XK.׮]E|Ttp֛rCNNW$IBq}SO=7>]xG>}Ώׯ_ TyCǧ^c"""bH؃đ#Gzj,[ 7nO:h <:{5 &z|޴Zm*븸8dee6oތppp(wgϞnݺuSAA\^zfffg}>DDDĐHOuARLAtt46oތx8qӦMѣGT֭[ kkkѣ,--~صk̙e˖5:ݻw㥗^PY= v.UVZP{t:l߾DZZ5k`G^g޽_  v."" XxIn=_ |ɼX@jŴidٕ+W ;;;y~񗋋رcGPuï Smͮ,/$O?s68 >>>fsppVR27|#.\(!C^M6ĉ1xiӦ Bav 9sf.]$/du:xnYfŋyzz bʔ).[縪\ ݻ"((?DVV6l zxŖs} KKu€i[P5wBOSVx啡GAFFJT ֭ڶm.]֬Yٳg\]]Ϣ]v8<~`„ سgFaݪs~˗++ˇ2q t  (h֬Y1c0d`޽ؾ};0yd\xd<3Άƍ???ܸqwFRRfΜ\[U3X`BCCjƮNNN8p ֮][>c[н{w >NNNsv܉k׮aժUر#xJ'|o#Gİa`oo`ӦMHLLċ/XkKm|N+z-:8fDFFC׮]q |x׿b˖-Ą 0b`z*:xW ؒHLѣ7bpoĉbÆ'gY':vh}5C@dddZKbxxhѢ}̶( aaa!Ǝ+J[&:w\bիWE˖-)kd]!1c &NXB1cbΜ9e˖-+&-w~~~h߾qzbqqqUnIB; bʕf71c !(%1??_h4@L>v SO=e"- B|%kl  nݺU'-y[+r-J={d#G_m2ť灈5 ڵA  ,zRJ FB BcqFcҤIxM^=лwoy &`Z–-[ЬYs-P(aÆ۵k+V{Yzn޷2z)̙3W^)wƍAߏ˗/CTbڵ%y٤Ilܸ5k/(>ipppۉ-{h0~xl/1}̙݆vkΗu-:8gIx;c2QFxM#""z1$6p]NCFF&_HLAZZ !@@NBRR>&`֭M^{+W/| 6lPv^|EϤ3:xR6 ڵ:uF֭zʘ6m&_؍ݺuC=̮۴iScǪ&ct1$%%I&0`@EZZJ=%.wv9:_ڵ`i#ẻgvp(|ޓSR!tBZ=($IB^^rr[7= $_쨛h߾=[/<>X;wFTTbbbjdꨫ֭[^ȍi㈟yf/00gϞŶmL4j:nܸ*=>777n"o&˱|qMҮ5U-Ky󉈈j߾o?tܿo ^KK+(sssHBd&Mjt?.]Z\ҪU+Ӎ_&7o^-Z0YVG]oeTjy={`Ϟ=.Y}|pYlٲEjZܮ]yf#!!5:_+[9:_ڵ`yaz.Xp,ܻ0$* [ IyTvhݺY<KKKӍu2.gh9QW["Z:vX?ǏGBB<<<䮦...v,N!88;w}ԩڷo@\~sέr|\qMҮuQAiG޽x@ *$AB Iy`e@߾hժi:NDFF"..]ˊ?:>W[FTT/V=zSO?aܹ@6ƍP ~+wyqjڨuQ41Ѯ+tthj / 2eAφ^IŸq}0|xwO>]2BDDD_$kbݺ ̿'N`Uq-[@$ر@Ż:t(,Yb f~~>/&<ǵQ1$RҼ rk..z}&t,W⥗ۭcPP8{ev-߯d\>W{fy 䃃P(pIlذIIIpuuO?]7۶mR9|0/&<ǵQ1$Rӹs+,_b*} :vl]ЫW+R|sn7}t4j0y#FDD_`h=zt[W\Sjbƌ-[BǗ8L8?_#) }Ǐ`IƑ27|]v??ɪskU$""zLj-!6$%!//VVpuuZj+V`ʔ)B``  ___\pͅ%֮]kH[W\]}믿ӫJ`>>fSl޼Jeegg'oļDT*&z}e&N(h"aaaQb֭[Ejjpppϙ3G!ĥKiIIIf̙3ZyĔ)S]qU|eUٿΝ; /0;>D>}K[ QXDLff&~DDD == СCaaa֭} $$[/((@HHq}xzzm۶9rܒYܸqCtt4J% p9_* G=ڨ 5 DDDDDD$5DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDq_IDATĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDD DDDDDDĐHDDDDDDQd)Y^$O=t&Ÿ6eAM!!!,""2?Fmv^RRw^6q1tIII%bʔ)8~8T*bcc1vX>}wa  R'&`ƌp1]@DĽ:I|0lN=V׬ FW_ GAd2O:B^Ҷ/˗o|>kcwiy8u*99:) ;W<}}<>>X'Ǝ=<=/D DDTۜ [mT*xzzBRKKK'ODfffsssM*ݻoS̛ @^!8;[¢;٩lY4-^}OɼF4E5%5 |yO\ᄏfvYYZ\ys@˖v2>>xӥnŴRC(o_Z ZA!Lrr2o^+%I&LPbR$I /\H3 9p}8R:J$jt~y딧2_So%ڵvMoe*e-W>sܪ= ݹ{~X< S }ѨSQ1ݺ5бU*}T6Ny?KpJ:.-9!ݔJճgODFF?_v\]]n:\v 'ONW=T&L3u놔C)Sܹsuy'w91c/6^/0|L9?L,\]_?wq pT|Xf6Z,^^hع3ne!&&YYZ$%Ojrr.(̙aaIHL̑4F.N>=977þ}U*qpn`t(/X[[4ЉzvF<_}˖-o*ⲑý{.um[0Hbcs6o}m嗗 l|Vծ#eʨ\'BC a}y8qcL?'DĐHDD#G^^{ݻ7nTh]???;wN?^|T6B` w ^l MZ?=[42jE)ի鈉ĺu}?H#I*vO?-A 3S U:0t:th~.g,6mpf ̴W'T b䟳8> ))yf4|fyH@VHi2*FO$?H]>'DdQt:KK]H;vs+}---WbzEGUmokBAN@/zk.]z`*NYrrt8(? >${ BޮZ_>CXZZ>+}m|P(PXd '֥KpV6>#4% `h/]V+kls_ƿBWj׬FFHΜIEJJ [Q# vtvvJKqz%ۭ= j816HZEϞ}Y? 2]{۷ˢ\y׭‚ N!|ʄ*ӊǏ?.1LLLl+n:'+bIRmmhi9Zw|[t3^''qs4>Dmm4hm*Iq jkrY!7$)x$5ys4zi2CDo%"bXPXXAxޤ5Z|,և3g@9(av6.m~g6g`vx$gt:% h4FGhaA)H0vJC^nUsA($c߾ {xiOO5jjz15%<ʑZ-,B2b^%Ȁ|=DQ`-((H۷q׳?D,RF()vУ.=ns=~/IIDq)$w7nA[!\XAX)))l߾(++Ç$t݈# a֭`Xċ/`eeŜ+##SokN> ggg̞=On2υ!qDبGv()IbGܹ3 Į]+˄q[tꤎa sgF.ale Ӯ] ܹ3S ]')ҥVyo0v픚׽{Аw^߾u+<14Νq@ƙ3.Y9~ ,-k:v;lmUukGܻ7>>4e Qvpn4q`W<~< E̛ ]kߨ'D"AЧOٳ̾o߾0ahk׎Ù3gpUbXx1ƏkkkHKK 6޾xzz"$$/^gar1n1T 05U5x"۷~x?f| .M?z4x0۶6w +11w/ ^^EuOav00c{xءsgu\ &Grr)&h:KJQc. Cܸ ,ZS>Dhh~ف9nftO56]K¸qpJ.lCCwuSeQo,߈ XKZapL<px()I`ؽ;C5z9u7%С23 ##o`ҤIprrB`` `鈎ño>XXX@RR@DD^|<$$$4;M(,,DZZ"##ѫW cJg,hiI<=PQQÜI~=`cUczZko_]$&7yڵ$U"'qqE KTHH(FIIˑP{CQ9 ttdX ]]Y ɓ ""fM.\p6Uv,ZvǫjX`WXoܹƤD|dd8(-}Ν4FlzyE`xc И-yM!*@o7?v- ز%UU7$$$rЌ555@ee%JKK1zhF,zxxkxT K,dfa,ӦCIIީ"D"!!~"$$^cJ[HHbÆ`&'py(rr\̛g[N<, rr)de6ͼ./~Qvx[߼} % \ +WD~~>&Os!77EEEPVVƒ%K x"n߾ ???C__Jp`iII6󙮇o8BB ;;ŋ\dR GvvyڍfV22#?rՕoG_Qvx[ߴ} HA5H$ uL'   H$AAA$   AAAD   D"AAAA"    HAAAH$   H$AAAWE;\L_.<ާYSէq3C=SX9###3%|Q)t'ڸf>n'yQZ>[Z×ka~~ܟ{\P@e T6P@e z@M   AAAD   D"AAAA"    HAAAH$   \R 55i= ]K@AAPXXJ["''%%:Z$%Ł,WXWW^ꚏ ZZ3Yjʌ_ CyyQUzDUU22R"}[C__iZZNCbAJJ=A$F l0gA@@&Ə6d0KZPRRN~4u쨏G0~~>\ù}{#(l;w3ۣF˗0o-uMll:>ѣw֢Q,9~ٹ=NZl?|7u{Il gddj"=A9ݔ,#GZ!/SS-LޞXll=н5ƍE  > >hKbII""  b„{ꏵ<%KCė4V셥K14deZ%kr&zz;?&Np?BC9 1W2o,uad Ⓠ<55JAmЫ "IN΁i}, -wx!,^|ODx 9Q !IK+rrd寿?޽-II͛OgB^^ CA|pěVQ$ZTT4͂44dXiRY01QbcZ,"~EhjʢBddS-͂ QQQĂV+AN/J|06V,JK+QO9PR TTdQRRddnj]]%DGg %a)COOl6 II9HJ}flMMEx5Fzzxo0,hk+H Ux* YYnr5iR'aX`kG];mΝ>عG1c mh  MΝ>E۶M.\ĉM|÷ߺbP{ /şرGHK-۷7n9N| //,wqBHK[Ϟ]oƌ)zNIފ2ĩS]ꖳaŊ K16m۶]ƶmk;v\OPcv.OSx<;m[}sSniܾ]$KI.PQe@@4V>&YUU ]08q_&--6/L6?ӧʕЭ5`ݺcmz9N0"S {?0thW,[6 ~:oo:I'bԁPQQ:p\AAuCVRt rBǂw9=#VXjjJXd"F cyy8v*8g1c8, /_-oֵeMGyQ9A"sbC]{ز, `^1yMDE5^Y[`f\}EEI[aDK,[v4%V[[ I^{Dѥ.~7_ v8 Kƃž,ĉ6k$77+̞}E9CQl6 èQ'[de\ީ{Q7t6=,BB>g@GGOV~dGsaKl? E%U 8|x욂HJr{Z6*м&޽H88bMknصkd`Μ^n? o==cn`5`99)|MoLi# NYVQmj*"3*pt4a Ǐ/taѴb{M9 o4`X:8rd1ۋCq2l\''s\abVط[()50Wpwoc0jTwth 6~}@ee;QNNm>ʋ<\NNul>Re+(bժXpL#Vq'fބܹ6mműcKÓ'ۛc6r9đ#K0on\El>x{omcغGY6N>C8s~~ax#Fd| kkSU௿|idd0`@g:1>ںu!z8%%%pO@ /PVVKKC o Lvş̜_QQ _< GGKtd]w)8|3.]פ]Ԕo P :V Q]Ǐc|̚U۝T FF ^JNNweZdd.Vx<NIoe{P Vuo* +M߲e.|xy**@9"::WH$Y[c^02RÆG7_R{ow|֬!tf{aASSݺۻelllf7"vtO4V2{;v 4$a`Zk{Stbl[w'N<4&TIIOBH\b 44]5ֆ9|=kǜq :Pc˖ׯ=Fth2>99)#SwƄ 'X֍£GQ(((Ȼׇ̛'8˴>MϞmqLp8lhi)GKܼps\^k>}62K`,ZtnD{, ˗6Ν&Yz,44ۯƍg46 rDVVfOF3ԩ{ SԶvYY"!!;rͫmljj Ǝo݃$&?Bqy01/Lǃ!((hٱQQر<- Xx._QQ]8d31mz3:q&? rPR2EBB:LYxƮG\t|혺2jjJnxHeey(+ˣmKe65oЩ`1. ;yyYٳ/_bΜ ui`}VT\.[,½{Ms]n45U [W}drbf7r%;w>opϞ`kZ~ IDAT77 hkvc*uQ/1u PEE3g46}}`ʔq#@qAGGڴkB5!!2Pf9m۵`UaQGpvuL+kk(qfƯg`ѢKuQ_WX"mg]?8uE' Rlp@aa;v?\y!$.X,/~ZTT Dtt&O´6ffbx/'88cδha< BQ/}bIJrajq5o*sɰ e"F،KY T@ĉ{%m.u57ΓS^mo|sb+jjXpxj L{qosYr@s  Xp"-[NM.Y XKRRƍ[fߢE5F`Р-2nRi368p>ǧVx 0Hd\&uxn.IrryufOBYФ .aÆK Lx>8bcw"6vW_TNܹ6/?,ZuE[բSq#\-7sKK+ roD(,l af3²e!;Zb~]68|x8#22Qɘ&')**>ʘJx,_ ]/7<]{0Ym-Yu H$~b戜4'񊦑"ttj+&]A۰܆ 6nQ婤 ޜsE 0NFz Ё?9((Jcss ܠ} Z/b⚔w[/PCCF`QٳCźNp Ŧ.m2MM k*矑b/#dٷ+}p0pl, fa,Q^^tѣI<*nvpu5Àmpx떩헚*ެvEémTWEfeaAmhH FF06V*33gshuP[[I@^jj>ƛhi)2۴߉`먼.T T$|3|H Uu(DHH*bc34$%" -`7YcHIqz+1S[cb20i4Я5P˪"qŐ!9@3~>љ#"[V:=m(MMexzNe^:*(- xSk%<<*YOMz2 D"BFDbZ7*VKb~a"u"XY}J__6ń  +[<ڵ}cʕp%mw]]E⒓br;2G@7 -ײ_ UU::zy}¯(`s u@k5~*WW46o/q`e g_ߟvڵl; x/!%vˬ̙'s]zIIb?A?/>?ሎr+rܽ .w X A|XGS|3l )`bXɂLMC@\CQOO )llԄ&i+]\k+֬N ~jc!4!M+`ؽ?֮٪4="4Mxu_OZ`f~O[TCCe̛E3vό3l!CEFf_KK~%*(( Ϟ5݂r"=KBu7^ w/7kU<莃ݱiбiӺcݺXnx ,,A|X>ACCCC 227-<˖CEE%#,۬0$$!rqD4mb.]|͟ߟ/BCCEdxFF8uj=NZ; D⻓] LN5ӧ[gO}쩏Ҫwϟg0Ob%ww[]* nnVx/Z X<~Ŀm[xxtj]l)a.ؼ@hU&1NI:&&*rpXSYN8xp#Ξ?O^-1c8|x, J;ر B]Mw|[ĉ_*[O}/T3(+mMАǮ]n04!.u5;w*)ƍYsią 1p53 >A ~魬ҥ{~=73ѣ+`d&UU1kP;3$$8NW^ 7nlG>!##.M qJOaa8pBp.\;wOE2cnfcULx~B]W MńVz/>hF,0vl55) .yXQſr=?mڨͭm]z-cѹX^&%`jr\/\mrrJj4<)SDw/,-ĢEqXBJ anot%~Ңin1^+/6?a["3EE04Tˮg<}CĤ;عsٳDXq_. << ~,b * ;E3q+,t;6mba.8 3Bdd-;]/\ŋc8<<7Vvv-;&'2ck //Q#==^na"/rkg)S\1e+k؅'a},́8|:f,Ç/нM^碼|xĦMs>Zݸ 67>5?<--ӦAees7ܹM2´i_aڴ{XXD APKb3)ÌpbW-)/Ƒ#/7[֢O~ .D5?[(Ç1e)}[c&y #l\F\\Z(ĉ' %)),KJ*o|:RNGyy# 55`jĸlfKlpv6y+*(9t^q**E* /;&ٳOl%,Ta߾;w4VΝiUu1 #FlGllF#v~,poԁ*XU*QqzAP(WbϞ+1b ?7d=)jjx;w;>|!_KK<~ ּaسP7A2d bc{ [Sn{v:!C!;; 1`99]jt7OuDkZccEcuKx7o#=Ucl}`k uuVի|ƍ7o 9L"`l ]]hk!?IIHJ*͛HJ$ 88OsXX2[VV"wrrJD5[69j04TEii%rH3wwgXe#66 F}/Nzdd$0d zJJ*3gV۝k2m7n|j`@@CCeeB\\&\y|l*Al`j ==(!/9HHϑ-0#Ft ʐOϳBk<~ᅬl03!`MM%V &&it9)--޽ЧLMu|᯿ʹuR64d6m 1n\_X[B]]NĥKqplcn'TEii9bb "%%u:<O˗S7&aʆֲ /"eن*U,mGdd:U"@e T6H$He 64& V];l^6WMon2e  3$ h5"#ӡyy)];[iC̞u+M  օ&!ըwt, GLȑf Wc0rd팳ط  @c9-[zhɇ0q'8{v6k3v%--@۶PVHk^Ʊc}bT6P@e oW6|?*l|H+ZTڵȡM-,HIq}}HKK0&%bժ8w. GA񁠖/苀k1}-~ߋ}}e j B^^99%x n"}-4T6P@e ^6PK" T6A|$%래*AA!k   AAAD}>hwSssE),00 i<$%X VV*_= 22CR޽-__߸OnJ3@ll&"#Z!|e"66U鈈H  OS$d-u`l,wƍpL4yQ ƌiիf!88&H|i {`ժkT$Z[b.7\Iѣwk7fLG|,_'/njqҥC'H$AD? TTT SVĸq樨Ƒ#xu1!f2oln%A3O]UU-Bhhƍ;췲Ayy>V ߰/ |sp0U=pAA|"ɓ ߯Q\\4z x'>k8$%9ͺFJ"qKK7_krb56 \n"V]D͵Ik/ .d W,BBPSr_9dd$zϓ"\pbڍ-dgŋ T*/Q]]ָv- ر]0ujoTZuڵ WUUv@DD ֮^,g6X/DDao Gc ti]]Udgb͚3p`pt4RpA$PJA$?<;jbR{zU`` '' ,_=+<͘1Xl6 aa Ɇ&On WW̚uMϖjmCCE]댡CMZ ?4k~б6AHr-.]t`aE!*TU 9gY()εG׮3_Wã+]kѵ>fϾJHJ'6H zq8,8;CQQJH92lf"9FFE:0,óǍʕ=b/akSѧ)#))9AG/_foG1?4ś}{M8;"99NM k)mx;Z\.QQYHFv]a㈋9zBFFzطo,ߏJ]3׿ɰa01QCjj+ n<} t`cajI АGyy˫b]  tjZ/ŋ{c޼u"# 99ŰCdw#/D,Ξ5 II7&֬Sٍ޽-QPP ##''#:4 wF0"N{/^$B ֍!hggX1@ 3fDRR & q|;>…PWW@dd*||BѦ6ڴƶmP\\[^Wct֦n#Gv&s-II8w;h~~ѐk&\]QPP{B!##Lq\ܹNP <3&޽-bcLèQaj.\\ //{ :: wトK{a˖ado'OpSe ] z  H$~xaسxuǍ!CD~ŕXj4?ã#ν#2^yy jm۞qlY!CLbEGLtu˗wBdd.o"!Vt77Kdf`umE?{wU; *;* "ʎ+kfڮieYVoZde[.Klʾ* 63?0 Typnsps=(-kU (./1cCz?ǰwo0wn/̘?<ձtL胫W **bQPPE… id_Ř1X8駣0dH7;ŋBYYU]30zg]H$v ?ؘkWk$%Bii; SO 66Fvvd2E^N tž= KѣqJa>lFzzqq@adロ\1~0>f;%5'$$ȷ%'O`4]xX,\K(=:aW0vo]bXh41k֏e1cF ]%$*z='o!I!Oaç0a_N'v{/EHHO!$*y(-T ]~Ǖ+)XW\ DիgaPo>ފ2z^^Nx^j!ߥ.4r HL߿oğ a̙Oѩ^~y$M[DdBCW*^=%ذ!Ze2!;,K5ׄ|%斡pr2jeD)>rrm};S]-(?.?W_ a*dYH2̚r/׭sYeJ|)H2< wG&oQظ1QQzzbZ:L}t99%0Զ0mۮCd<̞ B@7Ty rR^-^(.xI/$%;PÁ@{f)Jߩ.4>P fBQQ^|wdg޹Sc..VuaC|N*ׇs*Dڵ'>VgP߃&*/ty/SHJ7!Dyec>"%+bq|>O!;Ee߀=;]G`۶ M2 _}7jCC=XZ`7`ǎK*޿ 6l8cǢZNP Si"<<z`„HLkm"d?BrsU-8CD"rÆB@ުE^}6vV1*QQQ̀HDDĐ`8>GmJ jj'h L;~LU/CV޷O {&5m޿t) =QQQÇrŸr%pv6װNJ#䪭sef˖ znn)V;{;B&Q/Z\QאW3\`ع3JcO=%8+?C\VdجYA￿-l^CHޓXRRYCC]l[ԇCoxO? GՅuP ~~U>pp0aHK+PۮKSSH̚K\'sOVm[a5=x0=uMucc})XNX|c`i]8-MsFjwGGFS6&#{; -Xc:\\y׏ȑn9  ƙ3x1SUb:w6D"㔶P;u2;FkYl$FrǨQHH,>5~1,UkCOÇ_P;>H*.tAYY5Ӹ? #bssC?q.Bȑɀ~qyy%u2! 6܆%,,pBߧHq66&u! =''+89Y[7[xx *224 eeU8|8r3 1OZcoo`89Y([Y Cmcn.?w7o";љvĚ53tx?qH '8w.NT h꽌VV&pvAffJ30=PVVC")Tc1Ξ1(BbJ]6@Iu%=~)[ rdܹS"xjZ#3 `kk'<76mƍ 3ƍ qXtw8{.Z\tQRR T_<7AFпΝ/͒*Je7itEgffIu]TePocÆ0l CӦ (V#~FqqJJ 4sdj___/:t0D߾N>AAfX>5_.X ͮ!ִ)j 1dd22O?ͅ# N 11O8O62u8Փ';Ŗ-geXXaРx!gмagg^!ښוUA#eeod2DFio vvr%Y8^^Gm$=t(ALw zi~__'iLMyye1zz:S^Me1nb{otի=`ccy0yZQQ%N"XZ{w㺃 lq3ga2?~_L` 5kwнMGѓi==1tttTHT^o잽Iad2S"$*Bg&&BdѢa~SօC"$*SɠAl Mi^s`n` 527tSeWM\㈳g`$&7طھMM ^RM;1{`H2 7޽]e)_E`HuuG35|uǣyҚž4>m@R(ҩS}a!j]ՖW|AR1$>tKkTB__A bGj7t$laÜQ^^GӴٳZp*+k꫽d`-S޽ޙXey??,Z4CBy}C`kk5HJRNZVV!8Um?KٽRS ꂊ^KH>P*=` L P xII!agg֠:cڴ U㯿b,߳rr! !VX2 U=z8W;&yhJI?/woXY4[BI˗S4# VRpLH$ EbbƎ[oȑ>j XJeDT{y`j#?o]PVV/ VV 3y )УGzz`ƌ`@ZĨ<=_uJ/X1cza̘^1=tݻ7 SvǠACq@ Jms{BGGo Qز%sHlI<0b tq@"**jIu׮XL.ؼy<"#__Tŋ07?-[‘V++#<7uի9Tpr@ Yq֯+bݺ Ƀ NGN MMNt֭SaܼY}0gNULehkee-Xl$ u1l;^z?*+k`l 17 [L÷ߞAaaYO,EE@"ﭵ4=ra]X[+W1uj~a$ н.]kW8iܼ)?<ۈɆ9FIhS!9"#3_uN^r88Xh5iMz Y#FxcJ6**jaa)x!H8w.666?wC\\-3R\ =3F+V:5&a꿡/>7qTTT@eggkXZzk۷k͛/4eرpO1ϧ᫯B__#Fb޼1(ֱ6CֈHU=:Zߏh`0cj>ͿDDD .D9sc4mBH ><i_?>EפR֭z;ee5>/\9;b`Gὼ2,^|ׯְA\0x:T^g`ǎLŋWfeWڵU_֮//;,_޿fw* ){n>qwA@@3%KJ駧  k>oo;|…LCMs]o /W9jj$ؾ=+V&ɀ%K OV=))ƏBLlro1#Fx`PȢ ,\x?ݺP#7E>]fEEXoo}ׯ⩧~PR>+Cv_<%^QQ6nԶm0p`w E6qr%EXOwFc(_[[?cΜ!psGjjGTlomظexxt·j擰ĉ}U֕dX Qcx-;w(: Ǡ{&iDDDpuAA#EƖm5&iƏGD": ֆ(Ahh.ܩj{6={Zcذ(+-<<: /׮DNNYF,AV.n#:,"a OOkqF5|ڲR>W=zXHKSPUUh} WWKXZ!/qq{S~D"={E|9 wT6Zoz]`e^ovB``gX[##+mpbbr|xϬY!#Fسg6`ΜHM-FDDDD&70$>ΞMj9}tgb==^iDDDDDĐ ʺrϧ`[t qj&m ׸͛]DDDDDxzttGO Z-ZЅ C`nn"<+չ1! ]]]=ҁ݅DTʚNDDDDDZȀttt }}}@__!~`0wۛ 7wo$**j]G__w&u 7q`,JKܟ F QPP,;u tѻ3ΝKHCtCJJ֯?ߦco.s!`H /CqJNHyy%z5]LDDDDDE-JKK#"B"@&!ZO__k֌=ޛ7o ف|:{NN[0_~y;wFh)Xx(^/((ҥph{&شi2$)Wb*!5faaM&?*̜:_~ ڵOc`W{.&cΜJ)))Ћ(H"QdH/ //;sRPYY7 |Փx≍*xy9`˖02Cyy5Cb-89uaccGP?aٲQ۷qT"oC_4^}uNNxsń > %w֯=y󿈉Ʌ%fssCc3z?I04ŌAg DDDDDmuM5500T*L&H$X,#u"C}ˏ_G|3 -͐W/HII;Q$zi|3G#'| \^ډW]]㏓h 55[oȑ8,_~De=0eψ^ Mǯ΀=z/c˖ȑW`ee޽12*Gi) h+7GQG*Qa׮k6v R{OEEXJK`dgޛ0ɀw= 96>0 ÆH᭷ߖcSWT<$f֭2@|MeKJp挼S' V,""""goeee(//Gee%PUUߣ!>(+zL$ܧ3 ::׽yg$]={6ɷ4.1Hgm˱)|9]느xrin,S+/""""<*?{nz6W\\v+*Ɇt ]WWkB<6MaPDMODDDDtA&lR!>*((o]ȃС:ԽMLgUR;M]|C ލckIc$"""od*v+C}ղ#ˇRj|4zV<ᘊtu߯FDDDDynbH|.aŊ-Z7#=zأS'&stW};6"""""bHVHOaragg;U >>]O$w\ 8P M qd|^^^6pobqlDDDDDĐHpX<23 | FFzX)G *ʕOO> @xx};6"""""zpqVE⧟"""pZ6 1L!@aa-;IZ?f4Pޟx\ܹ;c}vA߾]ssKb =1d4ȑ*gdBXX}?6"""""z0dAt!!g>L4+aaa$'ƩSmr]} //Y8{655c#""""zMV CCC 777X,fHdH$"""""G+$r""""""bH$""""""D""""""bH$""""""D""""""jvDCC]Zrue]'"""""DDO.a]'""""f嵿Bbem'"""""DDpSDNDDDDD:s!:DDDDDDDDDDDDDĐHDDDDDDpSL6%"""""Ҍ=DDDDDD~C"'!"""""bH$""""""D""""""j ]vN8w}Y?T>1l؈vQ~EEE6l `mwu D" ЧO?^Xtٳ vv8t !޹|22[{w@BB<ݻ{򋈸tͽ]֡h^TMv*$ \\ʚuvYddˇADDĐxo [wfA߾ԖppX[ɹݔ_ll ,,,F\]ҒU#JKK1rHRQcͺLZrE;6  !۷?Ν ?Ϛ5١gثWP*yyo:~؛T^T ]]].w:cH$""j-N\Fo S0] cU0-/=SG-DH?@Q+' ynYYYhpi?~YY011A@@/L:n}׮E //NN q!Ֆą 砫vK.K.oSRR====9x$%% C}v*[j?:::x챡H$8}Μ9L"(/&Ou&ߋ(( g.ǓONN˿[)**BrrRݹAff 2 3338;`„gҵ511CRR"D"ɓA__׮]EAmxyξu5722o‰GVV8yt;gOobϞxy`̘qUڔgcuΝ ^SS…(,,CGL4UedhHBBa̘qM~ƻymZir\tз ݫRݡCƞ=;qF,'[[^-d"L&kO2Hw#WUUյjjjꫯcٲϛ\>4_;pY,Y{Qm9?:tB-(J$|:X=U^?{4&N|>>~-={nyf ֯Mo{⋳`nnLD"]cٲoۢY@eU…o) QkVUUϖaP[[^``/-ԩ4i< }}r,\ۣq"o.{V[nž}{Զݽƍ@jj 9 6׹֜߁{!!!^pfxI8|.|:XwQY_~ SLW[_l._QC2׮]UFNWAA} c6cxo;^f[E9XXX >>CnXuuu+|Ág`ȐRY} !w~W044`jj*ssVu<ؓQQ U 344P[[yހ?n@T5ر =7[XsġC  ."663gNƉ`aa!433Ä c sss89uQcڼ(UnLnݺIxH1` XXt@ll4݅sz_2...ĉO ?aÆoعs;ONX&8p0  ===;wgΜDx̟"GcøoG% VWW̙!C!0-V@Hpb9Y?~4RSSQƢW޸s{D||^@_@:ђ+J1bho }>>-*SN ,2tqYsaii߿Xu4ӦʳJ\YYa[7w| tǏ_~Bmm-,Yjܺu翉 `/PXXU/χ];ZQ߫@q>4 Wgtt$668q:"66{ĭ[71{t\xU׼M!""bHl %@hWVV6"z !!䃪JDGGlه8tOOĜ9/ {ܾWH?޻rE>…s—_̙UeQ_^L|?翩>= 33N-:'yӧ6m#FB>(//ǵkWU2ï??>RxﭷbŊϰrt/D Jh]P?v̙{1d0NP ͝WT9s#55;v¯OD0翅aԩooԉ֜ߏ?o1VXqy3v?ߕ*O,{n2jjjv*^Nc=m:TI~~f͚wޘ1㐟Ç!!!nn8 :u,obbޚj{umZf+^͛̔?ƍX7PL@II V+VkM!""zXp⚻mll6ؼWRFF 7bqwxW:u0qNh*)öm0{* n)R}(//ZO`'`kksbmm[[;e|I<a&X]hj\W46oXXX`ʔjϪi竱y}}l߾G% %^~y։֞_DP-X +V?jNGFFzgʄVkH$v-B!s2\L {CsT]v-2 bÇhLݛkE%Tѫfbb"|rKq\gu،Z9kSF6ϽS4mX)z&xݿ )NN]Ԏ309ۺ?wX]#S}ΝűcQZZ[7cG~31i=nB2Vr9s R:ta7-+͓wށ!%%ٙJjh;Nջ`<pֻQ'Zs~{Z?N4jl.+OТ) =ɍ}T_Gzݗk׊r94uREyd2ȉ'ku wkM!""bHlG!Q$߿_iaUp1P1KKK yVf߾4.svطoƙ3'qIv:i-c=(??Oh He ,yWͳAHp9s2bcՂIsUhOMۍjnԉ֜_EO=:wvԺ|esU IDATXul~57rث*՞z^+Iې{wǝtgWާ~oHm\yyP~O󚝝pvn3UVV?:זCM'ҥii4(ET]V)n^i|\DTT$jkk!x_^+HH y{ n h*{Q^#fggSGޕr֦1$CϚo)hQ[[Hea,//krgϞƝ;EpssfKHCiiimsUHR/@>/ͅ]\bΜ0|H'(,վ)㚚Y).#4 {۶m %OƏ۬q˗/B"@WWWYڜҒf?P\\VR'r~jZTOdVMT#//W-LPwur뽺6rDDC*B,7}4{U^3*&zdMH$pttСJ9kS6ݴ Z|D  F 3)hPdDŋ30g TTT5mO-o.߿LMMx1~h?11Q׫~j_ڔ1T+cWW7 ڵ}}[Z8:: NNN&6mftժFyL/,, W-u練7 QITQRᅲ KoТT_711Ä́ /f[VV'Ŋ?cN?.// i\/::}xwwWYCDDĐNZ}Hllrç̉C '\x??2 FQi)MٶlƻzHT_Cc#s;vR^|wߪx_,,XaǥH2V|٠,''S<-+qMWV©SUKIISOwttl[DkoddЕ\6Gy#,[Kw'Gee<={|mʳ-E8RllR l66r(f޺uSxBfff͚*OT 'O@uu VTС1t@B$"!$69mnx{W_Ǻu_c ^ o6l`?nl9rc100(,,ĦMڵ b1pTVV@__k֬zvӶ̙Ow|ǏE^A(--ɓDŽ̙ma]րM(E1 ?ac۶1mLD"…aϞQXXS'bԨpq銤$yqq72Չ֞_g)] ;v¨QcFy!p G _ő# H~}}_'rS7s xHMMѸ{umZQ{^ӟZYYc׮xչHH_4(_~O?=:Չ֞ | :::4i_Dxx5c["'N_Ve}mʳ̈́%uWǯ{umZ>}o11Qg}"+W~%K!33]-`ޫR 5ի7.](FcӦi*/4>㴵\QDDD AoA*}8?rdd.]$X[[ͭ;  KKbjkkq!ܸq99ٰ+U&R)N8Hdgg޾6lZݐ"55FFF! qw} O<}TWW!"*bc>DxxF  9عs*++^x1c,Z-˱w.ߥ ƌ+v?Mm{٣A0`Pkz}Jt憑#*g""zp_ aff333 ?+\G1$2$7U8p``ᰲָܼy/`1ll߾~~ƪUbƌYDDDĐxpGHqq1{潀3gNi\С?{wY~֜ldhDDDD8ޓH233tC#Frrvށ͛[ݻCYãO>Cbȧ|pSzt}71crss0{t^W  ?ԟSDDD`kNG.v]!!qe|:DD#''vpw}IRk+v3@’d$(`B rc:(&% %IKK]6NGutOwO잝t~꭪7ᬳyߑHVqǝȝNDDDK 'Nyƌ&I!6X‰hD7sIk?'E*IQ>ApI 8%""""U@eȲ Itn:DQ,DDDDD4_,KP$?r~%".zx<&l(k>) p QdS"""""EC@$7I}L$Q;^D&"""""B{{+}~ض Ǔ0(Ne\DQ@uDBiZ<*f^ضmTUKVEU~,+at݄e0M 0MB CG,Eww'"(zނVE3`X$$1S` F@<C4E,C,6dG""""]Uv`0vMsEϗtlEd8’JvPjY$ض ۶0""""] (u}EQn$qhmMLIsg+RU,UU  bơܺ6I,(NM$689wt]m,4M&DDDDD0Q!B^v;&L<Ţ4Ǔh aIkvq-D1wln=Ad8Dqh( t]eYlI$""""E$1i6IT&#H 0$b5źN׵$N(nQ/vDquacb)lLr(2I$""""ġ-(0I8hK8v7e#"""""r 1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""")Ofm؍w#TJg@1WASS3˖3 Leone """"/xN;mDQѱl۶g_oQADDDDD{ﹸ3d8Ӵs("""""r55pa޼g5 /+D"""""*Ņ$qoƍ],DDDDDTԆ ]oc8$p-/Ѱnyf 3.I| H x"""""V293śqK`<̖1-mhm`^6w;Ugyðn 4[ɳ髵u`L<;j̛WX睷…?wH""""y +V4B9ĸo Ӵ)X'f>s񓟜sϽujQ82w{ECcc˗׻xd6~z 8=qKeK/nᙼϩV`ժYM`x FG.cy…?g AzNeܱDDDD4EQi,g ӮEIb +7+h]]0M VW^~j/6%眳/h眳z{w#l( c}G? ]tXXXHDDDD3{uA$IPa (n8(2I,_`ذk?-N?}5tĖ-xv|/|{'zzxysv߽G ~Wg “On*p|y=nu+5hFmw4DEQ( ^/Djz^h.x(+Fgg}>o}v _3%Kpga޼j|'c~Z9?&<&'azv;QP"""""6`l b0;a73I1z> jl|O=U'@ss?.4N?}5~ |k%xys.!t٘5+^|l'""""BD Fx<7ATUa4a&$Ib8Ӝx>ony\%_so$^s8lXuys,Ú5s򒼉EQ܉kd 1WLش/܂a?c枢_;þw;dIϯ.84m.Dcg d.l:0[[#y/hx%uǧzriZAʑ Wu,DDDDDDLl 9a_7o^`۶޲ILW]5Z5+DDDDDDLw֮]+g}G k^_1IB7W]u*˟XfY8Ʋ8]v{X;hSD__CNŒ%u?>ۆ[{bEH$4u"""""ϼ<ĥKi&K;1Id̚i,DDDDDDEp""""""bHDDDDDDLh3nLe DDDDDD͸DQdHDDDDD$$D""""""bHDDDDDD!3&tb;`Ӑ~fzrԯ\ kƻ݂L:yi{ I0$;I"{wށ'z)$2rD @߃-܋'?eeD%,;.h̟5 TW*2T޹x[-7#! o@?B҅nbV}t ˾ gci |Q}Qp };dyMe!W-w܊yØԄY^/HDO&ǡ* dIݲ ޚZqg &+À \{^\ɋ.vi9\=!`"IbZ""4lI6+zM>66bz(p AWC^U0.K"## gkhyqxf]6Ҷ<8 }G! ʋCN&""""ؒX/'3 55W<Xhnv P_υSH@uua@G+/~4 o@H$pȳ0Kb}!x0lM@j sw_ !0-F`OgNywI:_ zK0&m[a0.vEP~ bW'&{g&_ mo4 ƞ b/~ b, cjO:eT)/!UWcޅ'BsAˏmO77;/욚 -GȣۆA}!˖#W,{@lky{3-+;x= CClkU[|9wJ(/iZa;)KNx?HއwAlƾ#uٰA( aƪ5Qٷ<&B<!YӠ>Gf!Ú5΀ ԇxΞ}Hv0L/ˡ @y%xxs%Rgҽ^Lz3ϐz`!Oe6x$"u`۶=~pOOUk݁[ ,zh<,;¡ TWmb`O~H,h((egU꓏toz +QۛQp+h|k~ c vJ}?b?R ? Q O0-@o<_;i 7hGګ;(-jj'2 tE62xas/ Imz u+olwsդ iV._ ;o]O}9~ƹ?k,+3 /~Ay9D~'O>l1:6tW IDATDE9I0z&Թ-l(/Xo A}œ#1p?^*Q.s*|,Ԛ59^vsכJ+[ÏB˗8eH#zo nM$c9hnzBBy0i|[l @eR@GH8c=غ8T)$Ȓ4!ev ڼ۶'IG"9o_^Ũ7Nz_ Alk? 7?݌.u*" Ў=~#BFv񃕌' tîF\b<6ϜSO_CNH>0wPbg3l*\8XSx1(/s"?y5X?!@m)r+BǞ-y-i{ ̺$Qyڹc^X8oƩ*aޫq֎<vU5ԇu zxVW/kHx2A}Ax_{&oݹWc;$Ѳ mp`[EOCY$?N5wޘ(mov)/g/@GW9w?O :ѫ/aCס Q}Xrt5c%_`۲=r{Lf4읗 ˧?w]**sy "UUye ""&f$ΉnHk>%1$vt==02i0&LӄeY, 6>6MXSKo{W=^C:}u"+P*_ qE9zk#yJfÏrǺ }Xws^ VuMo/CAasq\JffZc}`|hߢi5r+ YRy5$ ӂXjg_:rK;&=mILDžt[W8Nx5&##$7fɫm6.C޸1 D":>[ѷ=x9`<{p͉C+&-:يTt?OVL۝%;^ є7W$)?DDClRzHuT d(gYPc1۶a& 2]םa0M3lfEQQ  k.]E8 >< i{7-:x ̥J'5hLV7f[q5Ï0Vqf 6>c{}=d_h> C{+mV@/8(#Lṵ3~ qެ%9˿ oXbG;-aB0 (OsofgL{BEMwFGHZ9 !!Byv) C^*|/\TJKp t{IHc\~w A}!K"}iH}SlE@}~<ۜ6|qma,_cސlB!,nDb1:8PwJ5Yܭ;sQ^SP<1I!jwb8T$Y!- a@eH$ )$4 ttiӄ$,QD`l᭪vz?cj=>X A:SqcS˶ϙ\t5. f糋-aWU!uιZL;QrZa.^ih?(3idiVwb69I<tΤ5Θc!vuByY(e># U:JMnH\_-:ޛ?33.0 h)9Jܾ1:Q9\Hכ~w(ˀ(:.g"8qM5!^{0RbH_>:ľt֮ vՖ9Ʋ58F'j"籩$NciכVz{shΝ+I"CŘ{3 D Dcd1H L"J!aHbj6Y4d5Wj2gAQJ"pwF|pfdӎpNh0aw(?w}ž^xo[[l5?> *ɾϜꏞ-(|ϝVL_$QOۙX%s`Ugσ;cڟ-ʫ/<}H~"&^z%`8(o=LȃP^{dX8T+aglY\t~1nM)<&pDcS͔WAݞPbw˲n+> z};﹕uO܏ ;[X;+_V~}-q{wQ~s?i(I[eyo`w !>~-;[cn\wēI l+N!@ >כb1wBOUgB* c=1l—۝Vt2i@agud|~ne9̂>t:B: f=/!{>+ȩO4=F˱o'rjvFܖzSI?\U[Ds1sGGkQsڒI(Q1Xu%'TOZ0,8 U )';\jf^&ۊXb4/셺SƏWBl啗 œ7e vwAڴRKf`IBa͙~UW}AP^xMЎ9B*ǡ>89 ϕLBuxk!Ayf$?EVm?.qj>aG\ ;oAYTA浘ſ T?49hǝsrd`LyUkr2moDՙ8y~0?s߿ vu 7IH#m;#!<?& GLo$;yIeaR>sGk`WU#u'v VzHIxwHGG s` o|CCڶՐ~b~CO(=Vŗ Hyh(Q@c0͂$QId6Qu+Wi1kиϾP0i.;?ګW H dB>$$`S8 E׿C'?w>(KzY^}j[]r;̥ː7? Z IB_F;W3BD s??w"Dk\P jܙuHs.b?iabAn.Й@Ys"Nq{bDy=f g?U0b_,{}~{0<xr[&Is\˖C;^ߘ]{:3:g"j'Φ7e9B}1 p![>3VaN]ow'A?1 uP^{tfLXxrI.#f2}nK=leHTXZq&" 7^P`P([8D&%ٶOC/7ѿڐRE(0| ΙEYj0-dwkĶVDqR}grg9.^Rt̰ܹ+o r#""&SV: ;pT/]$[6!ڊT_/deAT( 4Fh|T-^˲M_b[+$֣#l3OՏa. O<_ihG~xM+&$8gs`V$Xz{M$CVW_ӬJR^u}~+`@hJHv&| >tĿ?κ 7< H\UI ᙄYh$ko`to]bwDo /IT{HU:qDDD$ v 8NHƪ5Ў;)Z~s=^v1 X@;P>s>Kfyh19q Qq3q@DDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$"""""$3;eٰ,  "$I``IL&b$4t{ND G׫Q0"""""b8Yt/{0MɤdRyxEDDDDD$qH$pCA2=KmImx^45r'()q38E%pيy߽۾>EE( ,XCe .SyMR;{P]]ں3{{'P[[d2!dhhh@(gZw,tww#(ٳ@UղG߻hb!J )CUU5ۑHć<D"~̙3׀J!""&SD:=q&CQf&it.znAQ^8iZ0M e;wںlK 0 Xim:sC$̴qM:v4!^/,D,ꂦ9kSz<1|6ض  БL&3?1XٳL8&#k̺N!Bbi *݃@mebiFmih @Q}D $ ~ꁦ;5kDMJE$IHRH&hsK~t 2R)-JϴMO^/';˭##0 x<^|^4[L@ EQ`YN뮦냪zr3SR)Ȳ*Ht:X, ۶ ;D"dha`C{{i 5o``iX t`~ma``!L $l\ 1I"Nt0ItaۥT(xI2!b]c,JmPUgɛD{{;$zzz!rtyQWW?m nwkcvα( yϏ Ʀ;v$ $N6N(&#k E__oN3۝L&3l̛ò&Evm=on45kvT.,Xw+N8I hjWD,0aMHrZ#FM&|܌7N~~ ]{wrT*0Q[[;sSEy!˃IXMM-oo[/90t,R)U+`M0sQ__}(ˊ]{Rܹsny^pzTWW4M$ɂ$q׀rr!"2]O͙|Ɔm;-a4m]aYN $ 05 gf?wI$ug; .r( (¶-LCEs+HEQ@m`EԸU]$IĬY֥ȔInآo4]l6HQW%eV4uN66nhhhp+}`w>4ef09+Z(rT*QH&T,U^ ʽsSP@uu5@EA̶"@CCCAX8g x<޼1*|[8\US$+ [s'bv׀r˩XI"ML-e4mw ۶˨A-tuaYI#㒼^OSٝ $ᶛPԖ_$("rӴԔЄw}9V,ء`uT2S!l)sߑTUU]r\X֎ %Ԡ,98MXnǫTyHREǓBa̚5{-x Iֳq`0_~߰e?$Pr9`ܱ;K$IrdbQb6^xiAVT:'k,YRK1$ԘkWJoӍz44 Zb۝V g;ͭNS"O2\mv#˺x4ZoQKV#Xm|o~7?v֬eԍ\N2DDLicLg!5wӆ4D__mɤ Im";?I4=G5p6dۅh,֌04Hwdhf*ˡ]{ޙW&3#/MVF}cP'*oq܊˜{|hllBOOL,w˞lٶviZ91LU\N2DDL,ܐf[D1$z2dYD4#Dh/v$slxF5!L9ّZEkY\R5f՝bfWؗCT]|6g+dswX8*vsB BH$bHua` cZcZs[G:of㞼s (gje$R UiFbci$1DQQEH[Eiz3D]kZn+eΌTޗ&-]A:qeCUfo#mrj#C +t݄7Yx|q嶒$ID(481Rv].|1eunc}U8qM\&\Nv""&TW$(fDd+ .1ؒR8&QQdȲ]lrajoo/¶-tvòYHKݕاl7X,d2Qpnkk˻<փH$Zihmmm!ord$/6F A4Mg_Y˚1n(4DggG)tuuenyhvYӴN( `EhrYjfCg e`F"\gqhHeW,]'(ڝ1ykq,;/YeCD mm;`V5+e"d5`2xPooZZ\hcw ,D n$~#( xQVt:;A45Bkhfxx<^Xx<ljU\߉D}Eiԃkkk99GaNa:c˜MDS;Exa:R{[q1nb6Jo$I12݈Fcz0 dҭUj5E 쀦iؾ^K&Se5ߘ: FL&ܼ͝F>rZAugM^T Neöd2@ RfEoo8ZZr7 ]{e`"q]]VBMM-0 --͙sζ2I}xLAH܂`ЙZ4$ ض Y1{IkEqTcLFo2 ýyZ ,"BdRC:bHeRʴ: N]z1{e"L- ,2)F0M===c8JY7!;Ӹ$hjjB$A:xoFggۊ[ EMMMYc2re1+EGGT^wOMaf^yn{ccSѲQ00rޛ[mjjB",H mn%;5P ضDE0 D!)ib]V*oD__7L*  ]~qv/V hmաiZA Y(B]]/c1׷\*""+.JѻNn&R) ]7Fʲ$N1mH$H}YQlgV {1hb䋩$&0Ě%T,6J les|̝a/[{Gܽ{wfΙ;sI'kt yXt8H$`;y!"ˠ( z 4`0܈nCݢe,;>˅1cJid9]p2ܝkD4*CUH mH<G8,+^E }RUdqRU`erumo@op}Aӌ8E$.qB(B @aat]Gkkիd}!ޜG-ٮ!"JrY3 _Y7!O!ycC3$lFHICچrecǶD}u%D"{aFDĐ8B"o9ETBӴ6{DDQ$$4ëE"HQk7ˈ!q2f*5f)us?3$ϧHQ$ak 37̈!q`(n(െR14iHCHQx0^RƞDR8I<~RXXȃ@DDicO"1$C"1$C"1$C"1$C"1$C"1$Q_X,HD,ǡ@lvNNNJP(q5)PG, ŰHDDDDD CuuMDD0H[AСi:B8dYÑbjmmACCCڿ?fL DQ]Gngap! p]^,0vXjbQ@NNNƏo˪kjjBssn7SzOEcϞ=ϕ1ٲ9қmFY!ƍg]/Sy""bHXECuu=T$Q!A}iVXTU --a +s6]ס(J/.:Ah: {[QWW|HhVC84M$Iٲ1 EiY9.OUU(EQxOi}ͶRߜwkafٶu*""~:(IƗMӠitm¢qA @33Atzr!ؤ6=4XcssKFKc" !''}3y|3]VǿSAA1jH8׹#R9OzmY*A@=a,#!AQqsuX}/sQAUUtV\$N|ַP(p8UUarذ""Μ!&1BCP]D8 Q:b1N47G% hۛ@< W\H4 55~ЈѣGpv؀pz tY'N{1jh8+c:bjm5fI3(**PS=д(j:N4EmmM"L_ꑛUo˹ uw $Ezwښ` E &LH)&׾mo$A}J!Il766(ٲMpk|>RqgDOZ^RRwo-B0nwkۋ֎o44#(#G6%sLmAcccR3ĉ oy*-*DW󑓓já~x0zh6!qpD9/!1̾IjTN*I4Mof"K!7QQT1@?n/b(^/<AH\PU555;v\bQTVE^"# CUB5v  AD EQPSSo4 ٳxp\4`xuuus~Ns@CQu1;NEAuuUM3zd9F8δS---ػ6q^Ix#2NlL<G00Xip8bAv].<DQ(V=liit2TΏlK:眹߹ˆevA3yB,wD477BU5# "B5477CeD"a}C!qǕ`>WAH4czncjǵD{|fc( ތE sq$MK^SS ]p80j褟婨N4u ASS 3"olvoA{J5TWW[}Þ=;([9TV()݈yؽ{dYFkkKZ!1rVUuVxQIu\OQa8h47ۅχ^G%5X[ZZwom'lp݈D"c~_JQ`FM$F8l4Ƚ7SVχFAwp\u`}hnn=yyܓ4$z~dc_=Bjp:{~ޥr*1f̘. {ύ涹AGEE9TUE$aH$>%dV%s q/MQX#>ڦq|r%]tMmm!Fkaaq(J(..(v6 hF@R0@"11cJ@Q7"iXQu[]`j'EE@aa{P(cǢѓR\<]F Owlưe0SGv&I"Fid)L~Fdj[}> 4qcQYϳI;\T+#G6?Ϲp UF IDATrڍ81Gǧm@4_z\͙_-]uOQ@3 &uuBqz I] 4s ;ٳS&..5',0_u=?^ ѫYCmC< 9(Y!Fױy+N{y=h4ca6srr;}.> $ +Y1eQld9d3"Sp8(b{ Wݎ҉(-i=5E}sn0\<wIvҨ!"^845 ^?-QԠ泊ErԤtlgz֩Nb6L%]}5! Za]5uD#Ĵ4CTTTv{ػ:f8]6(rF(5*Fzn70psgCUV$uYNnH(z|&?#2> a4=oޭqXb#_`VuVygAuc+DD ھ fxQ4MHLmC BUU(uAQ$f[x"z4䨫ᵩ3ǥ01ГIkIAݼƸyc ]vQTT:*>d5̼^@ڡ>r6=M]&m$?߶w9}ޏp8htF>G*=|$'V3X)s?l~ͩVDѴb:ޗ:˵!qK^jD3^4 7x14׫fHI!b˴T3z٣ _2wn6l6[;Z!VwK<[_xCF#4 xMMhnnBAAaMг\ͺ]6C]]]bxi@Y76:JWe(ngDj;`;p:bֺm]QSS@5B<.c޽YVev_*""ACDkGfHe 8  abNzML}!me.jIA25.uʾp-JD&f1g47jػn;hźhs8;MND!|>/Z[[ 5jUwǺvψl131L3//u:]S帥 Ѯ9{=nܗ:뵊(DtC .Wۋk5WSS .]nK6G<ƴAb>ٮI.&f.~̛N()k=$#2L1͖%LDQz#,iM@e>shj=fYie@0{m6[=.Ͷ08bB!c@gt  Բvdr_*""AHD\DhEKthH$HD}Ev vmHD-wLjDuu53AzM:k뺆ڤp'jjPYamز03ە(HVsAKKSCꚚzo IX!\Ҡ˪Pf,}~bO`}hF:͛*ܗ<۵!qrx̰|Fq_`lD})5تM`jka^o( [5gv6";sI{hZZZq_3?`ִcXuu6۾)֙joT# ޟǓlUKKkuUUEeeebqvGgDo Qfx'//(tUUs+tcHL1"(]*]7{Oz_EQBAA!jkk 2vﮀaO,-kV]HY!Rt~"ܚ65zYA&IGssʄ5,+ۍh4{k t%kX37wDm5foқL  &nhM&(JbɈEAcc^_&QyH̾99;UX7,{&Ctڭ;hx BOH rtڇq\5ju|Nʪ6άm9rvBAJb yEhl UՒ(((m2{frt=hmmOYXXQܔX$ئI(..F8I+$SQH9r\Emm hҺr `Ĉ<1b@|Fv[GEM><YQ_7)tFyy94MCCCTUEAAaΓLKoϹl*"llaC}:v4G4C,,+mcS v N}X麎p8X̘C쉵<.M! %z}|^2(¢.PVƌ;g75d0;R$nw#"Nތp8H$ MaۭaeY/ף kYgڋg6?#zwB,C ޅ6\Og[x<)dۗқs2qkŋf7_ؓe.$fá W,DQ(,CK/qxzvInEQR\L:[(5EvIHejxzܔnGNΈaUVFNΠHw[c59K chԓ0LKoι9;خUDD .n Eд}֘'Jh} Ij1e.fRI~m#kjj`j( 1$J,ZS7q CEƳ(.+~ DW,E<$~fr8#9ch1(WFO"G$^AcLL{&P 1$ !tf|"؜NcycmJ/F }!""D~7fL 0DV""x됈!!!!!/xΝUز558n'rQZZSA݉!qH4=Kf u wC'㨣f`ܸ"8"""""bHjwqpAp8 R" u ۱f&|~8#aegqɒgq]/ ~?N;-äIY6MVYmݺ_~ `ժ5{w=w.`ٲ()7l}0Pp5W`ÆOq ?5\254FDĐ}SXt=l|H. (A4(JX X&CӢ;֮݊]P[ۄs9mS0Į]i~<{(J=¿݆nAʿ/˲Uު}UuS>m(]hiib E;vܠ>^ۈ|+Vl^?yyp8u$bHPpA "k:?83]Xߌ&̞=W]_S\<h믯W_YKΝEEEƏ'7֬y  UxdlC֯p'pYY%>hv؎]*1cJ0oyit˗/ƍ8#1w<?3l֟q<@466M6"t>\̚uh 8S:.}V],x5N::&kּ&9 {9*|ubԨј={=Bǣd9^[w]ZcڴpiO>//ݻ/𳦭>ta(,l_~عp\8ٸ|ӏ܄3fZu ޶m *QWW H߀f$_ۗʵm Ӯi A@0ċ/>͛@0؊YgÄ ٘#]!hZvsޒE()CǴi9hmUP_Emm~\R S~&6l(Gkk Z[[jܹG⋿?䐩܃.Zŋ<}q[j zOXv+**ƒ%KqA3_!>z/g۽6=Mo.ʾnv7Cr˯>w~6~|).]_gX|xX`akZ6c6 ^:yBiO\}V͛w&5UX7C,Y,:W\m}I/+G9ú>XB~_{yg5/u}r*46z饗now~l6]n=L" {Eݺk\q||v-{[O/kwAyyYXv\qŷNߪ&r??=r(,YSa^x}zGĺu[~ߟxnm|>hq㩧OX<8sS)t~=_ϴ{m^^>m+u=Ie;6iwJ|ϐ;hnnNz]w۫Q6͝+Wاx=p\|I_$IǙ=v&`n(e 2Q hT!ʱpDQ!I$IB<=Kd,nu;q)!7wjjbعxɿ㠃f꫿m}'(((iɓ`ϱjիߋkO=N=͟'G4gAUU%V~ UU?Fx=Ə/ŕW^#i,["0~GիQ2DĐHmlRQA$]ס( p$:8ذ76`Bsh@ a\F@D44agƍ;NZl[q=wY{FK[oޏ~Sz ضm {I,5\Z7O?$nM7݌yNǫbɓ=[e!2 W8~Xtf̘g}#G~oǎ/q7|֯n(nw}w l6|Ϙ?ߝ\uB]//\zé;=spw'm[Omڴ+V>cqgB4|&ǜ9P_|5MÍ7^p8gyǗZ^-]nu:kƌ):cѢ[q 7Y߻0ida۶-ؽ{JJƶiXlO?Ig7{֥tC pܦ܂ŋǢE=)t\ .(+Gu ~;~7$ݺߓ͵?iwvﮰ~z|;N8oG<ǃދ{ ;aJ!ȬFEQECmmuuQ~x<6R9TU^1!u`,zGup…߲t}FntÉ;BCݏ͛?Nj/.o7%=r衇wLpص9997<_ڶ_  A,^h1ay U ^ z.lx:JK'GH+ 5\׮裏N6ލSNZ۷BE<_0bD/~ ~H3w{3cEEc9i[ 8Cqa..i?|uzgpܝ|_}w:]j{RzS83]Oz[qmz~jDA\,@DfauC4A$(PUg9sKia Faظq$UPU5ѫYf2Nbu6 Zg_'| 8qɧᢋc˗]vES}!gH4AYϱz[m5{ fY3fbǎ/Q^ztR8T# հÝ <;vZ ?o=qMX:լSUU.w~S h5MCE ճtM@ˣ`+C3umzJH؍fUUv>=[`Jqb ?56x\pp8֬I}98#&kx썡 IDAT'NgK/ˆwGxu'#:}] ݤ5 x7Zؖ,DZbVMG ٳ`ܸg,L+W.K/=>Zʤ;6V{y:gخ˵mWTT`ʔR{;+nw1l6_}u^}uE}^'Sj;pܸnr=z=`Ο3ՁLG&LדLk[_(M!\ri5?z 1$RRc@Ep(14Da;n]wUUEN _7V@e]W!>x1n҂ 1wXr9Vx￿---ꫝx{??oc1߶m[[q._cǗ׿2$2^y?]޵a@l(oaŊ?)>`L<3gމ_ 3_Ө]wgPі0uATT4׷]֣DWni;Vc@o#[`&I~:׶ٶm "{i]v-8C"eԤI;дq M!QE`$:+,bQ/@ (,E~~R[[krrr`B,XaKSGkk+n8{ԋ7KK^Dг/<(,YL\~4wų)ecV#{߻7vw֟xo{.߳Қ.~׮.޶'k„= cǗ8o`Ѣ[3٬]i{^VTuYݕe[cǎf(سgW޽_#;W=NIkƏZS^^f K=ب#8qMM^C Mi2T5X,P``+BP^^|54-u]ر=:yY{֯?t֋s*]I͋En;ffinG<&H1׸Qo߷ U+`<;Ы)SjN^aç]astB\(¶m[:Gk h֭|ˬuFȳf]N_u?c09+o_G6w6Izڝ>83O?躎|yYl1$R# p@Ӣд(T5 Y'⾯A1 CQb4OE#,J Fab c6ٳ2Gi5͡{?Kydxg]iۓuw~8NC"e1L '̂Ŭh~ab!DƗ,(QhZ z u])0yr &Ngpk;\GiGy;LO>xD=? u*}zd/k׮NYCC=?۷o3NQĬY0g-|睷E~E+W.O,kۺ`s믱6n ?0z8#;?vB}^,\x1B!>̝{6ƍ]q՗;^H ǃΚׯuMMMzb_3!quW[IK:7呩Qf=IU:' z>رWhllHz0yF#: x~~ ' 'LD4ĬQ8CԊkC5AHޜP(֐3J1m8x`ɐ8>3h[૯vSOG4;-5k7y֭ ihG??܃?~&8`2dYƺuXk]x%Ikvg?-{ `\r=SLݻ|Rb1̜y6mڀ)S˰lK8o k+P^^͟r0oy6mzF5//wunZ%N9X4l֮]h4ÉKZkOd?1{TWWZ N3%ݎ~^8;v|c=g;---x `Ǭ_uN<\z?ᅨ>{^kG."l۶oFR /}=#8=p]˗/K qmHiG駟w5|2ssscO駟M\/m8VYv۶mkgyyx'qG@kk+N466v@tzᅗ@?ACC}?5$1U&on;ظ$Iu}M3h,Y7t=k׍=ͭ)eN{ xI7׿wN)$~;?OkWyIgnx% }V=ާv&^zyŢE@^^~RV=y}zOSLß0.رˤ tA^NF3ϔx Hл}Afqo>` 6l؉z͡CfOEaa&M,8 =:ȕiXr96ouu(**ƩgZ[[kUp 'hm4667_ƍr0mtupܘ5k *q=+0yr VZ;g7VY}7x _}(&bF0zT>|#,'$Ige ƶAZ*6n܀f#ओNiw׽'n7x{1gxڊ_^-[,(--Yg3h,X-|чhjjĨQcpqgr: +Wrl6Lz9|}*{kgvSNG]*pF/֭_~^ћo`0~|)DOoӶ˰b˸+q!㥗ǖ-_X7:kƎV1 pair'} IKW1$2$v㏿ƍ;}nTTԠ --a(1Ø$z] xJJ PZ:0SÈ>~" UU5k `pA324VUgH{EUU%&L3\uB8TTYkrys{_B9ܴqā7SFyy-jkB$"Ct<'rs}((;cv1kGy<L2-ck1z`ab-5щ'̀H)DUU%t'Cb?**EQQ.9$F45Ǡ$I@ A^^Ȝd֬C3zhx: Ž_bӟ3g΂ؼsqAEt<`2۝ٛDĐH0q(A|=0NZCD7eT,^(Z]֮}Efwm-Huk֬C8"bH c%O)SU3fqǝAtg杇ٳ~}1v(5j4>8\y՘0a"3f h9&ij WYÉ[n⚎&*)xQ IAHPavcDDDDD399# I%mH IM$""""577AVHlơԛ8,Ӓ`'"""".}ZHn}l/30%2$:6vz"""""֭_rN'GAfZ q>N'O$""""d_~~NjF34%:%.D"qB2J DDDDDYGcp\pp\Iašfwv86D"qȲExv #ub۶/i*<\.WRPl͐h~1$A(uu@uhEQ  D*{!!E# Buka΂51$GH] P80"B B(4=DDDDDv!5̡4(aq(5eHBuOPJt::l6{yPl73l[hPŐEei[I̻ RIt:ٓHDDDD4 XCfP ^  Ñ,p8P (nyD""""!;rjvCÒ(IҐ>. ]=4 {DDDDD48C"v?mPš VADDÞ@a "G@ѰDDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDĐHDDDDDD DDDDDDK6""?s9ßUWWcݾGii)֮]ٳgۻ;ewyPD0FcAbmGZ6yLڠ-:hhcb5  ,,3;{sqϽ[\a˗ ĉT*._Lhh(gϞ5[_rr2;v ..ڵc2ŽEEXqC7/n|]̗9s< OU]V+y46MEDE[oemt|u9k}uׁ<`e9Sm6[NT>'+;i:m$[MZIB|HYYQQQYTJbСT*===j RSS괾Aakk{Oȑ+|Y j"#Dz{+oM\]h4{{+\].ˎ{۳M99ii1aLjqpPsҶm:22رj=QcOX/ZuӺ32:M"ٿ~iRnB!BH({s5>z=-\T~UIvSJ:-T* 2IrGq|eݟ}KvS*(]g6ee$&~k&gg f_k͚/m Xoonw{ qkBF!##2ڸu֗1b֒ϋ/xs@-11:N!)i6#nիӧ8uj.;Q{1c;qXb<8Թ$'aժݞIH'9IÆ HJͱcs1dHf;8~|s9p d;eGIIÑ#<6ō -}W1ڰac 4t86L\Zks}|@myi<;vMɹ|A~~\9Y|YяIoƈ%V+9p __2Ve7?~ |ĩSe{̭OljBD!=q:<B 00kkòR6l`EՒJ"((p^xx(>$Ge@d8t:W""d\ZGl\\Z__!#[,*wwk 8q%Kۙ,]ˬY]3 lܘ=K=z+Nb0عsJn8[[rdeM17h,_~sӹbk>٪8v.]رbbc-֊ŋi>1k^mل`0޽O&,,m۲;w(&Xo}_mZeio[ccsx*xG>ܾlj#n*S:ҥK-ݝ={py~ijѢE2i$JJZev_Сw߽aCKORɩ **Ç ̡C9SjNl[tZG_MnnMwMkulߞͯ~5bjƌOz ~ѣ39sG*~E$%W ^yacF'mq: oo{K.]ƨfnhӶ8s[ɔA1`ݺt呞~G Y܏M2in6uHW=io[o}1cY؛}r{|!$IBC̛7;9rggg.]dQـҌ "@zz:7o޼㝝]q[ 1 ̘1m/ji|MU3ӧK8vfˮ? 믏ᥗNS^hLp__^ox{3{'G;4vmqs$/ʘ 31]?jbt{ҵwoyMMΕQRRo흹=j@uuS'z6gϖ >]}!y2T!Dhhh贌;:tϟ}]VK}}}U^`vv*47hiiW,7IzZ+,YrkptT1?S"cIDATԩ _ɓ] ijm -&<{BRqD{\RΝwΊv46Mnf]6 9R`|!A1 w<|۾/f_I{ۏ -T^'BLBXvXi&^ʮ]!!!NeٲejZй@ƷFR]~&68؃~+sa#%))h~KNnQ.U{Y:*JK(,U&ccωz?L0&WG;wP;ƳW&LwqKʒ3yo??_ Ftʕ~!ĭHBt NgammMSSuuu,X,FFFv8;f͚5hZ|݃Q(XYYyfc+3""ƢV+Q(?⭷&be2澌o! ee =j]lb„|y)%%hcB!>.rqlp B]?,lmxهnK{5g~Srhij}1,_h.Bp1Y\Ϣ3Y{f As㏯!LB.L\ՙBH(B񀩪j"+\!B!BH(B!BD!B!]ilKHIENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_default_page_0.png000066400000000000000000001263161420322575300274120ustar00rootroot00000000000000PNG  IHDR+bKGDcΪ pHYs.#.#x?v IDATxw|TU@B 4;(XUAWW]կ.eY۪?uY;v ,E^C THss!ɤ̤xx;9msϱaI$ @ H$DA" @ H$DA" @ H$DA" @ H$@ H$DA" @ H$DA" @ H$DA" @ H$$DA" @ H$DA" @ H$DA" @ H$DA"I H$DA" @ H$DA" @ H$DA" @ H$$Ht4Vegu;vϤR`oQMRyyX(vW~BCj2|TJJ$Iaa>7 n0tK?*7@m\vF7'hԨΒ??W_=(IA$z3?z/[7ilufc#k㛼+XeWA"32JQll(fܝڲ%I;HE跿>}W_zi-K$=]~y_tޜm;U߳sg_-_> n/Eۺ5KK !wx"Q^^{VD  EO":/Ą8&=DaAA^-}]KbM\z!V],  Q׮uӫ4^J5ЂUQawǒ9A/66T tio3&B/8C+3H J@͝L֟t~-J2{?MM n{26@pSFo͊ Hz8͝;|0O>9򾯾yFjp6A"_]̿{no=5bDu ys&B@+9HSMa:qHezTd,.>#ŞӱX,z䑡ڶ-KEE(C[xŕ:qHTdzx+\SlߣkW?ED5.4즥(-XVԭf]lͲےF ׮]9'KUQam2*MJI)Vzz uW UU)PNNճgBBEܞڠ$ٖ9~PYYe Tnkv%@3k,<<,2%Zw9Qڜ:U kT8+ӵ"|rΜ8 ~:ڭC%Ini㷔Cqc**w W֍7Wh[ۥ+V=G5mZw mؽ;W ֭Y*/wnQQ6~ lMryU|ŋtp ]iH͚OGyqJ]>)px}РPv@w^3Kkh]t~M6eii7|饱ɧUق `GfM$[jҤ.Z(ICgiȐ0^7<'H7GyUouH%)/aa:jȐVi[жmْըQ·Oϕ$ujwd/)*,tu<8TgM3 X"U76oά5%jhŊT]sZ?۲%KW]F|r֏dy#5Zd(՞=ڳ'Wŕڽ;W&Ǩn!^͞NeԺȖl=p|pD3fݹn?7vy+u-~ZdtkOyddWqck|g4얗[u}[5o^|QlkTqq ݚQmٻaS?^wPKRln[^Vܓ651PݷU_+tM?wj37~To[ JJ*2ӵ^-$)5XfW_comO@{GO"ĶmzC44xp>;B11!*ӊڷy!;g}uN]cGw#5xpyQ*CUzQh痛[g KHw:;|}YwD=TRRiJ=v-Zt=v4w0͚NV=ZKڝ{ԫWJJkWv̑aH99e7'o(O<k̘ΊSIIn]w)0!R^;g< ]b^n4]Y\-⋻IVJSU-P:٪y]Qaƍ!v|qc󱱾2QWӢiӺGnݚ+R w+:_S]]qqTZZ~І W}3bڠd/߿լCjԨѣ7ܹ֭;cZ5]Dڲ%Ktu睃ٳjÒG txQ J=.h=HO?ܹ;T*C=GE(85񏟔]}?j]еqA 3fԟW3u=[d,զM(K߾A7Iy'AStkv{wCx]#j=ukyd+T\\y;m5Iz衡>/?Bހ3)˖ht{w8= OڵZ,wqg]pGٽh]xaOt:eǎU$>49W+;7gY[uZW^nURRVN>9oot۠z衳|磌zg@מ|rCawm1 ^3mm;۠Zts %۳8c^BM3p6q]AAEm2;;u]wŚ[Ys;-}|WLΝ}Π8{v?{{ "sH||xc1喁Nر[|sÐ:)..d}V_h-[2Z,6;ͷY6x?a-s3:u޽j@ךwU b II_O_OӵiذN>~N K/6UT6phtض6V>1ی=m t$L\8ZY}ȑ|7s5.*w;gq|WyxX׿ПQg-KֲeС4jTƏ6K`ydx`$U=air.~=99eh_ WUڽ;WG()HEJJ*҉E̜P=yiصCpْuݺ\qmRP>6UkS{o]mZZ[&ܮm $g__:k>UXX‚&Tڧ[F ק}nbX^nՎڱ#[o}X~.Q΋EEkժ4Im5Wj۞EDL_k+כoҥuMV3OѐnAAeqil 춦m+mЙ(0jfo2@Vj e/YCQCܖ>^B]о},ʕiz屍U?}ԧO oCeãEYzlʬ^km-e6uF{FFh_- j7A"Ir;hPH7'X*.Ԯ]9ں5[k֤)96ejjxbr%׹;VO?[I6ƌsAAޘmP]h < 4kV?W=꬗9e>lζk.ΌmPs䔷<2tdi8QT-鰿@[b\)#w|Wxi.X-^||y>{nu/۟~zwԜA=lϻ59mxyYois9\il֬ h5GrrQϷ3IIߥ7hm$-P{O)'SS $٦ cSDk؈:XlKD,_b.~XA$g_/nU^nՉEzCN?3thyܙuK&7؋zDv̩vu|=@ 5˭ ~2.OroHRR긾긖/Omp{//N7\W@z@>8tNGe?>t }e.ozj٪ڵn;yUڲ% G]:JEl]m$9 iNJr\{%t|׌\:5ou|3̙}QҫWi${t;3hP+R>SOo_0C[506l,^_~]rj5s{ n||<>ۖWu:W_=\#Ϳ_|qì5oOj]hɲDp浍AnҔzo:DUV7/^u+SlYkSk2A"p:Ə4/zh}vʗjPRRۧ9svד&uСaΌi6W\\3…GXh=ZwMНwn6/:)&&Uˢ Gniz=WW^nwl[o24m[n}P?q"#7ko,o?Zbv<;L<ᙠJCG;\W8 Wm*ooѣjUÙS>8;ܬrâϵT]hɲ{p> /mn6hȐǏ*%:UO>9o٧OP/d^6eꦛ~Ԇ 'UZZ*Cg8SaGwL",i޼:|8_!sEK'Gw&:_2Poa{R/^z'Bp_=d<rYa>c n;ܤr[㡊 kᑗ^]_ϭܜ{$mܘ+\?z)9 -bNcԭ[@cqzݲZ %'GK1}asuqκ寣GmAnP^**;LrMtm9tر7fWZ_x*5:`5*\>׹v*-[t[|<- /s)@['hz 1]`]K;w`$usߙ?!Fw밶j^d{zZte={ԻwA3&&D L5Bycॻ_:-p}t1 ۺ36<[ӻ;|ϭ[ml3zZfx 5w0:U=%;o~%$(-D#O趹% ~zdIb~7oD_bLJ9ud-X0a홐@9'hMǏjժtݛ2yw@/ 4듛[UtxJtdBB|ԭ[zEE;,3P2zK?Ϗj XbyG{nWsNWyz. }Q_v睃A!%%UZ2U?xR% T~{7x`|ϏхFJ]pW]&]}Rd~xn嵍qc֯?"斩S'_ .رB?'tprr>}4eJr!|x_-3g9gΡC3g$p֗^tG 1(P3@`Vff*uxw:+WwQun _Q@iyٞ)4 o.M5chjj|r.Md[gRNNniT+P:|@yy3Z,C յ! H23KwߥZnt=h D.5X+V*%X))*.TXz Ըq?>΅A"L\ H$DA" @ H$DA"[fiƌ՚ IDAT1c{/ロ`nd ۾~sۄIRBBکS>S%%yt:)H QnYJ'Uҹ=.Sjj +\UKQ[|-IeeUk1r[Fuv8ѓ3Fp $wJukKֱWk\=NY&wڼyZ䄢W2Q8M?k<<,ZrBC}~4kV_MEsP~~If9sRNdng_{,8\M-uŦFRCV_ܧ/HU=CCTKp{{J@p3&Bw*'L'Ng;^h]g7mpkiX9>G(8Ke(9X11!3f<[4~|<Z:Me;w>FNCiҤ. VVV֬IWRR-JҀ!>N/9<`6nR͙Iy7xMI>:'Y;PUR|uyf$)A:t(_?r=vc5iOҊ (p_hl͙C-R.<^'I+P&uQD՚5銏ѝwn'2y:WҨ%Sc;ι;$ߟ;ܤ*x ԯ_.OVYYf+I<,9%';\d q۶,IСa 5:JRYYƎаaYM2ud,9JY[N7ÆuҬY}iS-P^<^C4n6'oV z3{I]mmDݶ-[[ v{[J@;4vlg$$ڇzjԨڴ)S6t<%t%tWjkĈpYN~xo6#ռ[ WO wxOoߨI~xDnove=Իwx㐎)Pzzݒ_M=^cj5kuQz衡t[K?IbbBsx?1Pw߽Ez O{2sg0jɒz02wJI)%IU>;a)_vرB-[3z6LJTyj(u-]YVCOC[fi(u꯳ώElRս!;v؆yxXdBJCvu)m˖EO>9¡-,oӖ-YZ,EW\ѳְ˖I]4iR=n=ZC]ӎ57oV7]~,3@8{njGu%33|x95V#'N,v}6$[yu!_U_%'7j_ii%Rps^^]tQt@?vW][dgRz|*."o#kߧO}4Ny0{l =7s93fWl*/* KZω]rIwe޲%˥cFmUu-]Y6nѣ^5/d%)4GHzJ_m# vh:[- H)u9H ]xx8N 0~-H+yKҨQN@\_$9ޕm#ýzj͚Kf%>e_Խ/Ν}tp-yK.^簯{my;n\d5qb y;w.gSˮ ~K0[[jԨp4jsn:`t#66TgVg#"|!;wV _ۺ5arvu}-ж}V5GPDђuˍ+\[wFۿoۧIoJ{LpSƎ:v@ 60_~_:+Ley9jxJ:t(_6eKkyrdz_ԝ~{`11!JL,TJwff9С\߾A4{[ܥC#z]?VҨ-˓ι;CRRy]߲?R NU~:UÇ,۳܁^<8TGw֚5ڶ-ۼ ?ԡtظ8yVVJKjmQn˕uG[o;}^^ m=Çӫ_`=@c0lCN96o^t'Fj$mpR:UG\6]˗*>>Gwj۪yՒǫkfPI w9[>GL~~9d.-KsӨ-˓ι;bvݺ [0ȚF RnJM-֖-Y 1{nF7G]Ymayl3Դ[7ޯWŵ&$qwnrJԼuW[o;}tn֕z$С;񹊋dUW8aB-^{O¼ ًRUeGk͚ts}kCuDתpNaQ kj|~՝[Zp{YZ-_FmYu-]YpF D`WsbҚې]TiiUݖi#ױ=Xc#t=MI qlUV3 _`*'L;wfQ3b\Z.5{oeymEKkp{ۼY_{jL\3.}"ct_P9ߧ nj۳P&D9L_:O??a,Psy.!؇9w"Iջ7$KVj$:bv:f+!!vwj4ɹmmźu:v@^ϲ{o6'iPSI*.t\}VpZ3YT޷ײJ޶f[R"#̞cgѣku^@;n+Wֵk})S͋ϟT6uKf!m[ywO7/ Kȑ >< ?1"\vuD&Mꢲ26oԖ-Y(ڕoW_= Nk׸q޽̋h.+iVyߒ^똗EwlRbbz 뤡C;BW+'L4oH3ɾ{ 4 T6Gx +ti 2mߞ<[{5ܻJ޷eYwV7]͈(Y^o{`ZWA"Ўaz%Ж "ͻ 9/OQnn^~'x8yrq`!9Rksύر5cjUꭷ)/\?<歫99eZ6]ǎ0l!4hPʕ4josnuªM2{w*Եz9t1{{ 1"\o=QEEZ*MyxZu-zc+yԶJH(?d(=D80D^@/zڕ;o=+ tX;9 4DV||<쭀&x*8ػ&DL\0q@ H$DA" @ H$DA" @ H$DA" @ H$ H$DA" @ H$DA" @ H$DA" @ H$DDA" @ H$Dhgy۷vզ}q\?ng&kQ߾}5V>6lԩS>}zG4SEEE+M@x4JLLl+++󮬬4_///7_j~ӕV.֔)STRRbfFUQQ~[k+Wԥ^ڬʇe@C|A߿1X?JJJoVƍo|r3@j…  AD@ q{=Q+)S袋.ri_}$)**JSLG}Z S6wC:@SPP%KH:͚5KTTTd/ =N:͛7KN*JKKK9z{giϞ=*..V^4m4]tEX, Kaa֯_/I Sk[jѢE:z4|p͞=[]vu9-222W_i:u"##5a׿VhhöѣGu IRZZ/_4Yx\_8uIZpfΜw+++ӷ~5k(##CQQQ:tf͚: 66Vzsk֬Qyy5lذZ8p@6lЁSW_}XkrYFt%H6mڤ/RIIIP\\nFM-mXt0 }gZt s6l6;4Ƀ>hH2ѐdH2JKK&11&!!mv5M4HNN6MHHs{5_OOOwii1{:b,ZȘe˨2nFs~fs3a$@/$h銎͛xb_^SNU||uoQ}$W^յkW_^k׮̙3֬}(Iҥ.2 ^|EѠA4rF;3DpkOQ֯_֞#G$cƌFqq .4?`f$nڴ|/7 `ܦ)=f#oאdѣVڭjH2fΜ||D sΆ$krObUUqYg=Gq\VVq#))|3{va>sLC1faeee!ɸ馛jgyy1i$C1}z{- /_WsǏ|˶b1|||VpV6]$@3Ħ1b[xdyyyu~3$fjVh٥KZAZS{ hwߙ$3Ɛd{~/b8qIAҥK͛7o󳩩FHH!xկ~eH2 f/6$ƁjFXXVoZ0$7H=ztMKK3Yj[GͲ[+ml cvSpAPPP mn Pj_ssm(ᄏuI{LCֹʹi4x`IҖ-[ܚ~Ҷmj 59Ԟ~ivZIҘ1c4nܸ:%Lg7xCڽ{|AO$ 4hP}(77W}!{YaZ\(s(,]w]Btwԍg G$5mNS6k)))欟g}v*00PEEEn?I1b8G5>c3'OZ+44TyyyZp|Ffpe.;;z׮]kk+"6hS+))ё#G+V/h3 gugpUs3 999͕$ѣEPI۷m}5iz,\PTYYXܹSopӃ%K4jźn4\}պ˴tRIҫ~k}'ڰaRRRzJddd7;]DP&WVVV݈{L3^sM<3lh(} {JHHhg>Fd%k-5lJJ6l`k^󕕕kxb38QF)!!A{hJPϸ;CIOOhXIII-r~;2 1%XJH,%ľ|ի7oz OOOK,Q'bʔ):OWˋ3`]v-@Ο?o0ʕ+Qr<ӧB ʀ8ǎ3ҥK~1gZ.Z-Le^?ooo899RL2{e~ќs >~ە>"LD Uή}4˗/7Қ5kQqFuEo5jߚ ٳg_=A3q=L߷o_ߚ8pwѵkWj׮]ɓ .DJdի:uξ )k8<1H$"\?l3pӌ`Ӽyr}B+:7+VÇ={4*ƍ<|=zPn5,Xuo(#|c̘1=u46t5@>}LߪU+8::6oެo899AD뫓=zSA!%%=zPʕ+̟?_]Ec*/*y}E噈u!" ޽~Zjҥ|2gر޽{d_~}j_*nݺ9 EDS+4nXH2eK.:dž DGL"o.]Z_~>ޓ'OJH^݄ 28x`)"믿RJIvO>ѣGKŊȎ;mf̘۷uΣSN@ի5y}PPr2gYt?^jժ%QFJӧŋED$>>^Y~e`nn.СCEr}*EDD@ jٲeܿ_ʕ+,;vl^  g""ʛHQF`` .\wRJx뭷ЬY|޽{عs'\3Zh";ׯ#007n܀9\]];ֶ~1$jxzzK.x7=='TZGQt"=Vtt4ك( zg=033CϞ=ѦMWxYLDO $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD%ÜE@DT07ouT*8::cǎQ w}^7LM#G&L *Ç ?~>NBӦMڞoZZ\]]quTPgΜA͚59s&f̘Xt)Fip[Ʊc_~yĈXbaeem^z!((lJw[Oxx8VXڵkcʕ{t)(z~:F q`߹sǏkUGE=z`ܸqltJJi#7n ___t wFHHڵkz$''5jmZhG">>*UY}v<==o `ذa,""DD.̙3ޘ9sNx)ҥKPx[oi=a駟Pvml[lAhh(!C\?p0`J.;x bcc1bܹ֭Ø1cбcG"((gc Ctt4F@8pIIIhժF SSSѣ>7o_CㅆbڵHHH@:u0fԩS o^ڵ GELL \\\йsgmVY~eFjj*acc~~ ۶mرcuoٲhР 1?uh(9"88QQQprr˜1cPnBEa0y@pp0u&n߾G_ƍO>WVX,_W^J+F ;;;6VDDȱc皮N:bii)ʲYfT*WXXXի*jW7n,zJZoooy6!!A<<<KTH-$--MI/*U;w+V-[VHٲeEVKRR >\*T ~-[VNȈ#dСbee%^^^RB ={)}Ve…RC4h t&Rnݺbff&>Pҍ5JlllXYYZ1cWjJ'۷D>s>|anu@qppPFEa뾰yssse)));(uKkkkٹsn߾}RTREU&bŊ_1#"2A"Q1;wC>|(""?~ ϵDqrr?CDD3 3gΔ,ILL  K.-666?ȝ;w$33SY(dӦMZiܸܻwOwtt"oV[N > ÇJ*Uٳg .2~\,""x{{ ٽ{644TҥKܯ&H iӦR+W  RQJ… ""%}I&]M__(˗/+WN .֭+*Ts).X@Ȕ)SؘkIժU7nL>j֭-WF?>K. L2Xjj֬KѣG;;;}LMM.5>}cbر\2o1v ꫯPJo6֭[ʶ{FFLeȑ#ann8c٨P֮]V~zcمs???nݪ|֭pss Z̘1 6b011*Ea뾨򦑒ssU^4i=zSN!##QQQ]6ݕG9s7d#EDdD"bc@呙px{{YYYGRM6{u йsg}HIIիWƍƍwq97x~e\Ø@oaaa"񈏏GϞ=QL` .\(t7MeQMs֘:ԧ}Z/]֏օu_yӸv3R|Dm* 8}4ƌ+?L<>>>l 5DD͛'''"33۷ot&D 4kDGGYfݻwc8w.\'O\rGAT-0&Pr"@5Y& LZ~~~1cnܸ'''l۶ "wy' ZUfօu_yӈ6XZ mܸ %Kd888SN4htFA"Qy!"""PJXYY)7ݺuÐ!C nzӤkݠO2ś|||0qD4o߰,0& =`N'iiizk&ikdԂ[lɓe4l71uO^efl]FQMCd4+++ϴɓ'`Æ s@tbcc#?ܹsG233nݺRB9wv@Lb0HY>6mR<[[[J*666ҤI<\S>,""x{{ ٽ{644TҥK]rqIOO;;;)]l55` rgϞGGG$6 {AΙ!"zddd`ʔ)P9戋ӻM5ѣG~MhnӧCVcݺuX[[cը^:~G}?}cǎرcQredgg#** k:b̙3ofkaa^zܹsꪚ繏ٳgB Xv-jׯ9fϞmt}<};wDZPTի>}<2wss̙3k/@DDV^t3;;;}LM}wܸqTll,6n,\P ,0X69 333ePs&" ӡC@TRn"==vRmܸw233oooX[[#++KT*iwŭ[;Jggg>}cƌeʔɓSo߮, DxeʔZWjUxyy… FŮ]c 4H95iA>B-0n8|WxѩS'}77nTƹst\S/^Dvv6uի/dsDD fZضmruVxzzEؾ};u>ׯ$&&jvZ߸q#x ,YX")瞔`t nT}j֬unQM͛{{{ ^:-s333OxJ*J~wލcǢe˖(W7nP)M9֪UKgWw篍ptS"Je0f&r0_ر#ۇǏӈǬY4* Э[7 2ྪT'wwwGDDN< 6lɓ1gΜʕ+<'\iiizk&t7f۷j]vY\t [nŘ1c 歠e??~5k{ʔ)3g2ĉѼysDGGk`[klٲTҔvmb9D"uuϻz*(Oʻヒ}!((F2eзo_e}j`ii\#..O<њyHHH <== t۷ܹs1}ty۷/V\m۶a޽E=N$+22RH/_><eddd`ذauɓ'[nprrlyQF8uVey___u?ƭ[s(:g""2zŋt!lժUW^(]46l؀;vwQϞ\m~ֶ hԨF1.^UbZ˝ AzzzϽ]vPXlBBBзo|=pMuǏǹs~Rjڿ۷o{{{8q P=!CPN|Xj1l0gRѤI 1iҤ ʗ/~ Z,Y9D"W55Ųeːmb8tN>7m۶ظq#|M?)c-[ݻwGpp0>|aÆ餙={6ЦMlڴ 7n@hh(t邤$L4)c۶mâEp5`صk~t'/2k֬\ifpf &hm. 6+++]v־5k&gϞU1hР_S9s_gD}׆z/9Q3ϴDDTqE\~]6\]]=zሌD*UвeK|o͛sHt`mm+}1mڴ)!!qׯM [9ݽ{GERRѸqc!::GAÆ ѼysӧO#33-[48rtDDT0 Я_?lٲFBDDDyDDR۱c"##etܙ"Q1D""zpttġCB!""bHDD$&& A"$KDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$""""""DDDDDDD A"1H$""""""DDDDDD $D""""""bHDDDDDD A"1H$"""""a" "*9U333 1HKJJ ._{Gr ]w4߿f͚ߏzi0dڵkѦMV|1tz ߡV_šm۶PԨQ@'&&bܹؼy3␙ PTQ:vI&N:xx='N>CDD,--q5XXXk-2իWGzЮ];&&&37ÇRpaTV-mzK.o߾3gKoK,A˖-~z6<|? \~Y&ԩJmϝ;#?kݻ2d)SiF.\M۶muPz_v˖-bkk7aii)fffZJ*%k֬aT ica\vMJ.u{Sh֙j%OoViڴÇOtؑN ܏iEҥq! ^pA/x i'?خK*)S˗/W)8p ,,,p=|,ޏu?ݻwN _SSS 6 'OӧZǞ1cM6Xp!ʔ) ?#}+5ž7gon#GMӠAo{}?~LLLj*눈ܾ}w{Rо}{:rvڅ۷oCVE~s@.]'OĶmpMjaȐ!J#Zw^ܽ{򂟟1]7nFpvvƃ~z={O>EڵѧO4i$<… jժ___Ԯ]['111Q ^:uSSSкuk*ͯ_TTbbb/߿?׼VjPJܹs/_.PfJ܍ijիWcСC/u[ex=_ϟGZZo3z?v9dggk}'>K.5kpyϟ?(u311o8qW\˗ѠA@*k?RV\Ӎ;VH5QF~wPZ̙37}Jr}ۘ9"J*rҥ|IĉJw?ʕe˖=X 撕%C Qk۶m=g!CLLL.GDD:ҥKZ>eǎ:6ɯ1MB<==%++˨s) ޽׽{So+INN]]ߡCst+0a߿_ggС|DD;&kֻJO?TgCcEw|gGA/g&A-\r@uVPDf緻9s$55U\\\Ԯ][RRRݴ0mqaw14xYǎ=C1| r=_w?бcd͚5~μjyֺ0a87jH&L494i"G/^,k֬___ruu- Q`w]-Z$k׮+s;<<J 2D9rTTI_V&'N,ԹkL0AY߬Y3>},X@&O,S-Z@[|rwr*__lllIpppSQwsչsg 7onݺ@&MwER eԜ%KI&I@@̚5KyTݕիWˏ?й1 kN ۷o/SNCuk͛boo/|2f7oL:Uׯo|bL˄ A@ի'&L &HFFF!!!Jڏ>@m[~(´ ED~W{m/$H,2Դ NNNbee%&&&ұcG6mNot4xYǒΡH^Jswիq5<3H$_i0,Xm5k&d޼ygCZM6MY֭b MLLdܹ:Ϝ9SI^4Hoy}z[bE nnnʨx9 ={7xC{aA۶E]m J*J|]AbQavay :t(Kcۏ~:sj>*TPm4]w5ays覤>Ǝv!!!ؿ?J.vO3g4z-!C]]b)CǮT tl M6śo7Mʕѭ[7u~w}7 zÇC|([3Bǎ k׮pvv>}EW3@XX^o]vUiӦ Ɠ'Ot榔seĉ=m,/;Eʕ,']ncc{S]vMusNO%vgPQزe 6mڤٵk2ВJ_[Pm[I{QU\9p,Xq~y gϞ-˗(tR$&&*4Q\lΈ)))J}~/?G7%dffb/N:aʕVZۯZ QQQZԂSƎX6*Uҧf7nL+s)q8p[n-򍎎4n8tDLLLSq uҤI4iq }:z ''Wupp@l4?ڕ/_D/KXv-bccuתU  *Xrr2t邳gBVcΜ9 m6|'q{Н IDAT4b^͓z͓cbH7鰵̙31j(sr)\xQ KKE~aDVVg7l0?9)?]x zΝ;]\\ШQ#qƸ~:&LPde b^IQdT=y$n߾+j7O6mp4hCL1gV$׀?|||@")) QQQ3gϟ *]ڊ;%^}=(e]P+W7|#GXn]_uk,c޽r}?s?i&@=ĜZhnݺ!((:APY"{jD*aÐ!C.]`ժUF5˗/jժ&!S"##Ѿ}{̝;;%K(ĉ1e'tEnFZpyܼy3tDEyMt~׭[ŋQF8|+Uoooܹׯ_כ}n݊/Ryشi2ѱT9iFj? .`Æ X|9=zcǢm۶ED >>}Cl׈#aaĉڵ+y]055Uz#dٗTWc6-tnnn B\\ InFFޠ;==]9$8pk(%%GFFy `uu#tR~7l߾%z~;vtۅS(op7FD×=k׮6n`;#** ϟW~I.w5TXQyb`5GѣwLMo.]JBFFn^1C/:H|QCl611e`iiB @yzʓ.n?^-;wyc~ޯy$?CbٲeF,wQ$''ڵkǂ}|4ڵ+|}}r,jw ׯo0MHHHSoΑr_S4_vx'7.\Pʤsz8;;+?n݂JB~^u]<9׀|||жm[,[LvժUS|ݔkzhzK,^oׯSx+W^Pp}7gPe_Njn{UŞ4i,oݺ2 #Qa[nA"l٢4 ֮]Gb4 Ce /'''|}}uFcKIIA~#XYYW^%z}CСCݻ7;f0/i/oeiU*VX///O^]v8vF+WnBhhM6Mk({cۏ۷o+5 c-ZԩS1sLܹǎCPZ5ܸqV6m7o?۷o>}`Ѩ[.,_iiihԨ9/5 ZIOOSSSO-tsey} 6h[VH||,""BﶙJ{߾}ʶZgΜ1sss W4{L8;x(x SQ KF1S#$tf|m6k䚚V]f%-SL;y Q$PP9Ip~b-y~{gGFF???}k֮]t} Im۾tR.j֯_o\b<<<ϟ_mOKIIqhϚ5kju'~~~Nom6{3gT5K,1~,yGÇ@#ɴkذ-W_u:ѢEF>|x#""LN<󦤤kr cosss3s1yyyeTt\{UVV>SxECDdggwQPPuy9rDV2#ǂ իW $͛7^G৯Fa P^^z!+jٲee˖T6m9܂`5B" $B" $B" $B" $B" $B" $B" $D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HԟftA6l8>\ǎ-Z^zru4mx1OO=u@ Qέ8 B-'X.VZ…\??Oʕzh^Rb^RbKL"yyK(!Kժ]l%&^իPd_iEF(4. cMl컵h1ڕsrznt&k3],z>M wX.ղK*.caaMѣiJK+B={ޡ}^n))1꫋Rrrڴi&wY .RLUI[bqږc$I륖-D6>>[.+=@.Y3 ָRJڵkɓzo"}hdTOHג%ǕXՓOޥs{~ly$)*!9Ĵ{MFWV>[שTyziα5n'B-+*->С>y*/D[7CIIڳ'EiiZ Jv^jj,8Byx4׸q>ڵ23sE?8{(8sm~fw4_*))WjٲYj'Bb;p^}$i5ʻR%K+/DwFo=X>>?޵7-֑#WlYFVNM#ʼ7[O_<]V,Iz!-Z\ٳrqWDIjMzݺvX6$eI9EOj*@HϪW Y[;vmp޽۪o_O6"".o=mܸ.ڸ23 !C:衇|^:l4}T Xk!!=ԦM]6o=Rll{=h2BmD_;eeiKڿ$[7wY'vusw5v $ֻV\=K,TBBϷzz=mu|ᇻjHoEF(22Uǎ]QNNiŊ3Z,Д)ݪncLC}!ѣߙEeuꮄ dճ︣~~JKD]V}ԥy?G;?n fzL<].LI@FG)::M?:zj>Zj̢bGӪfcU@HlrJJ~|tw$ꍏZ,?>nyˬTv $ޒnʕ!qHouZH Ӆ e襗uZZrըQ?lWaܰ~Ӡu~٧w9z|VǏx{ss^vhNbt Kuh̹Y?j܃JHQHHov)Ү])JO/"O g+:.]ԩ{4|x'R8S2$IAqڵsS`O k6 Jue>|EG{2V*/i곺fzn5n'bxB};-I_+0l?/K. Phh2?PrrCݎ[*<Ǝ0oZ,~'F͛}`A NIӳV|#k]JK+ЦM{II4i$.I_~ŋ)w[v $޶Jue<"uRݻtߥsڵbٓ rur<=ZoUNʭWZj,jm;OoÁueǧOu;B" $B" $B"Mߛoe˖;b[nרQ&$5**JK,QLLZh^nnnMrW\ѠA$I;v쐿}*77W4rH}UWZZA)==]4l0^Nt)M8QtYz탕+Wjɒ%5W_ϯcB-իJHH̹sg}zzj5팋Sppӌ1z222ԩS'ѣ̼~+**j4Iڵk;ãzWttTXXh㮝zJ?Sƺ>He*..Nk׮URR83g믿nRwׯ_]VӦMk2vyIRppƌs˯yyy)==]֭4$jÆ eե;q>h"eddOӧOn9 \siݺ>jR=~[MlMwo3]vU.]t}ڳg,Ǝ+c֭[m۶W^Zxq夦jÆ :v옮^:hȐ!4iڶm[a[7..NgϞ? Ixv!c..U[Gu](99Yߍܱc7oѣG[o׮]ڲeeZYfUP uV޽[V@@MV' @}w}>L-'؃mЛ***JJHHjU׮]ۡ|NN/I5j}РB޽[4n8I駟*11QVU̙3պuF ۶bmذA;wTFFtP >^?_|ThС mp4y/6$S\\\aRa$|>=!!H2͚53%%%f̙e92}ӦM:t`6nXkRO~~~zg͚崞jIIIO?z uZۜ8qzzg'[dƎ[nӹsg#|&,,H2e̙3bqfb̙P/&&^&%%i~rtbN:U'7___#̘1Ҳ kyι&mO.]d _cƏt1cLII PYHܽ{;0|׍$fg{9{>^cǎWyʹiL۶m$jmݶm 7}5 7ᦨJ}Tufk֬1gϞF0` 7*a 2IDAT^,8H2&M2˗/7+V0!!!0ఎGwww#ɴi̜95O=/wީqH<}|{1),,0$5h ?^0y˖-vH\pd&L`-[f>#3m4|g}x3C5U\PӶ'C5Z2?Yfl<==$b$c?o3{ׯA!x(ӽ{w{۷;\Z,fLb.l"00aӧ͝wi$___SPPP'umfϞm$jOm]c̤I$3 ${9y󓒒KJJw&>>L+WѣGIu&11F!co$iyIfSnH,((0͛77̬YSXXh p!b7xa,$}\c*ڶͶ-[4N`y7̿zСC>L6M?xGyD}СC#u>cz=~={jݺuҥKy+VPNN,VZ0{%IIIIڼysԭ\wU 6LwxK}rqqъ+yپ}{^ZտmԩQMCCC+\NBBa~"I:sL 8L3g5YnSuqWt.o{L1b:u$Iׯ{2۶mk?wgno1ׯ׿2?[lw}g饗jժr;}'m4`8;~xs=ÇIjuW̙3N)sn)I4x`u;wl޻wof xlݫo^Fp9PFFF!33a[kۇdMq1_޹F$?w:8= ?1-fܹNGtwwW޽8l?eTa@ٳuRrUu]w9^qqqiۨFyGt= >szV}kP OI:rHe1:vB.6dsSNUXڰa}j6uTZZ7Jƍ[o˂>huo 2D{nEGG;-yflk[!X :ToiWj b*BCCeXtAZJ)))رFQ钤^z[f|`1 $5kڶm+I>}Èǎܹs%]1q:ې+8&M;S8lSnn”%wwwM< CBB2d~effjƍJMMLjkԩիW%UoT'|Rׯӧ5h ͘1C:}nݪgj:qℒd_~6:Mb-^H2Lqqq`_FLLLe׬YcV?~~~&22^Ξ=H2aaa5ƚ6ˬj祤T2inYvmܦM#ɼ.\`\\\$өS'SRRP&,,H2.]jjZ͕+W}1ا8ãGM͚53Ν;ky5̌3*-&|u5i[UY``d^}U-Zd$Çb*#p";;[۶mӱcǔ)ժ!Chܸqrss ڱc"""TPP ???w*""BQQQJOOz &d6&ھ}~i$}7Zr\]]5q*VV}\|S;@;D!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"!@HD!@HD!@HD!@HD!@HD!@HD!@HDB"|)%f_IENDB`Setzer-0.4.4/data/resources/document_wizard/beamerpreview_default_page_1.png000066400000000000000000001424651420322575300274160ustar00rootroot00000000000000PNG  IHDR+bKGDcΪ pHYs.#.#x?v IDATxwtTeg{#H衃4]kUTW.veYZPTP + @$@HBze3ɐ9sdn}{>sb0f ɎC $B" $B" $B" $B" $B" $RѤv]gnrrSqq*%IpۨJci0H|N;ގrsk}Y߽ ]☛Lfed[w#՜mrs+TQaj{$FUK||j֖͙~ jOfn; ݅]wmku.[vƌ/87<,IAbz(I6o9z֟Ǎ[oMlz.|kLS>]gdGpo*Yf½n2}xhx]}BC۷>/]zP֥Hzj೶lkP{*)ݺ9.30Хܙ8gb^ۤ:,A@'8ЫAAAnͮgW^֔))1cO6\$;k:=nWUeVzzJKLf-_J|0ýjMgѢMckɒTXX%Kp0pJW4}zO=&ߓV+h$ď>:K.r-1bzQ\g9V:Ok֯OկfpPpVUp-\8,}vY5ţxh $]S.:5 /Dut0sfF q;vdqPΨ~yyF%'J. vSsd%ʪ쮀NdVBBշGMtۋdVffKd`c0ôkWJJQ7ވт:d{U:~D99F+ E_ӻJ%'*?w"6 miieJK+$6߸άih?ۗ+I,WeEӨ [#%Te6GFG6"VQ!!rf&춥 W<N$qMf~{\k&Iyd ƍiZ,VGؖwh~xuFIkTP`y߆i6wkп]r$I<1cn+ڿ?O4o ۥʨn}|CmoK/բud8MׯO-lюY7Z>U^KEDd몫~֧a$YάXqTW]nlt=劌SddJKt@gèf嗣t㍛ysFlnʣ9sk}>9Z'j޼ ^og2N'vhٲXUU5x&L^ή:x0z{g78t=9z뇖F֛sU]mVyy۩ .6}X=?>?O@7UСmnURRGݭk WWvAZpna*+M/҇ѝw7o+ZtԴi]eeڷ/G{lrs+t=۴buI|rjoxرࢲj%'h ӰOѹhƌv?f@0MCގJM-ƍ'iieMn=υ{ꢋ$I6/0$žS˺Ҥmj!vt3▖ak|e6nLA\Grl_j R>{@={*6P^>W [MjhDrmkPG2[7i=LJ ֘1l"/6o…{Kc;:lI-Ӝ9m7[oq"%&Ի/-ҢEFxgF_?OEGk½JJ*QuY/x+Z99 НwԴin:rqCG?Ϝ^ӶmY;7B&YYYھ=KC`KXn-$Mv@M@<zQܙGݭJViz]dɚ$=0]w]h+,> غ5ِؒn]~%ܹ5'ܧ_~I׺uɍn=υcO=X>v'fǎ>I6oϵ/bg2ⴿ:^vYx {dSՉJO|٭}wR#I2G˗O$޺fנx䑡 ɻ> qyFڄw5PnnS ]؞נeԐ G /믏r3 $lc0XͨQTTY=_~`CU__'=@͛3dž7fGod=^ݺ9797C C Ѱa>?vZp5ߟ5k['F5n}@۸q67[|s˜f4|ՌMV{UNFDd)5T9-kn!mnS֮M5oҤuꪟ`.EE\.ѢVX.0kln3[uq~y]^נYet޽u%_t뭵_lx?g@H2ħ) kTb?dgmZ֔}f>Fퟬ7MN$=bfYzt>k 뇔Yުuۗk}֢7{s9pmuMĜVcG]t^ګ>bm/nz .öozK:m:t7t+_:2kVfb_zi/0jvdCBNn<Jyy9 AH'Lhwf4.-ZO۷g5;2]G!KJCӷԡCM nQ!Cjo+]qڜ'FIw'f)ul=>qvWhG ]6N>>NM4[3f6T_|1M&KE``ݺ͍{tm潆xנeԐ0GG; ^{$T&jyr!1+ߣG uZ\KJ}_SO1;c' A({6UUYH[uda|5f&N ȑ~6}t%hÆhXwNܽ 'ZWWu@-RRRKTK#sFs73DZGWpQBW rˠ:2l8V]xנvsK?뾯3pDg{Z_VqqZCinS0z>l^|1J;w6/4Mڳ'G{3z;:5P\S6I^z)#زɷ w6+kiPP`Բe&jhoQQUײ:\u35W]pm{@I^;[yx&w AU6r74]Ʃ裻A7WW\`Ϧ24mBW83mEnKYuY-jz~xIkigz5edu?nn4 W_Q?\wu?>{فIxҐX$$KHa <}N۷MZz{_g ]̸6%]^'TԝtL3Y$nS|V4;jj^~$;f9*嗵fO%o~=ul5_uSBEDd7UnU}..udAl4'%5=]LJ9-3r8yj~iw;`K}ƍi$ϗ^|o)yY~}j΢u`m3;o4[jn/Lо} d289,{*~?7ߌN^=%mFk\}N;:e:YƓ}hs7IEUUx~UU5c֭mqu9g / ĉG٥矏TllL&JJ*?yP?zs=yrw so)XG+-_IV+!:\jj>a1>Wzuj9:8#[<lSg4t}~0UUfڕf{) FMm~hտ =n>AUUf>\yvmsVXXi\,&GGe$>H76lH>ͭʕG5g&ks#n\\!gAC~Xw*%7O-s}ztk,͞EjUWW瞋)~@ Fm@tssFPqk͖yjIfm:Aw5P^ܹ3ۦoc[̜%K֛n@~Zpky QB{ݫcw9R2iyzF_;dggгώ7Rvv5  7ţAԬY}msd8-_>ɦPp1ԕX  ثOw. OgԆ iJL,VZZ23夠 7 zLpٿ?W6eȑ"U^ݻh8Mo@RSK&+!XɥrqWp?;-7Zf}Inʹ6a3gP#DYY~1U[d*=LnnSsokwi&K^?1υ?OosP@,f3ξkc{ض-K[f*)Dyyu֠A^.̴!ǎ=BPMffU11&>|i8"6P?GIҥ|||5 zx84 D~@'48y6.kD!@HD!@HΡ#Vzh[̨Q~*)R\\VpBŊ.Pn?ޟ҉22t`P~l?Flɐƍ?]W)@Hߧj_b`0]w](k&"e25|/!}m~-yJocb `n]|q&$v*?_NN-Y99i qWBB1%J˖dփkH'ʓ$ )3~z*YС>1O|X/Hk GTV]`7|s?)p`ih4i oׯ>T_ʱnWW{yPZ\S]mhj2֯JfsM&̭ZWslپʣǤeіcޔ*sКLJM-U^Q޲3>U7$aSmjLSrv}6̪4δ\mzYuk.88t;p OWUϞnƾ>-9p OCgTnκ^=ދ/F)3\/|V8իY.g駇=]m4]se2I UbbV:_zI֭Kڵ-TeI}zjo%|1mڔn Sm IDAT # k\6I?{#|녈wO=hzqڿ?Wrssаa> -e7~xƎg9͛34}zO=-Gկf(OOGsN7=`zvĿVNÅ2S=6\YYl{ԿZo?Nvh66o ڳ'WrSsQwh8=Z$Ic3egght{hժcViitC QPPھ=KVСeooP>P]sMhͱkmGE[׽cG/SddfּyCի*-[~%2P͞_3f:m^vt3̚;7B>_B+ڽ;WesּyCt%[><շ~zTxJڕ+Z{C\={rQrt4誫lo ׬I/GdС>תUtfoSRRzj֭KV`ƏWLL6lH9z6}#G1*,A#fM lYooLmtJɐd xx"" fEDd&}6UVcݬط/W~8R]Sbb  7vV%%ޠ1cۿ*ԨQ~-/+""[}4E}X&-XK[dQ&ZiM]4thmSDDvM׭KQbb]/;984zt7k߾\}MlٹJI)UEI99rr鱯nlpo}X˗Iƍڷ/OWOSGdooPxxm"e0HW_]{^ص׶kBb||>8^zi:vXQQA1-LܲESSѣ/ҢE{nSTΨcGi۶,T믓I}{ʴx~%'4zt7]xa~-SE۫/'%Sotv{ ~ z(}]MHLM-Ւ%KjH?ITO?}@?瞋oLhvUZ.Y>nWYiO׺u)z(X1rKԀzsO""fM\A'?ߨyvUW^ye$gk˖LMŋGY֭TIOyj'dUJL,VX-z[AdXJ͚y93DG+֨Q~z͉Mno{q vӒ%Կ,۩l-_) EkY,RVNY6A-Ǯ]߲`0]}u e.=O?=K-OWnnF+{׫[fZCbk˷zhc5׳ώօYW2\yTo9QFY ]zOJH(ViiU/KI = DI93DVjދSeI>8J$^P`o%-ImqtӓOR`WDDvecm* ܹ6O||A|ԦQ[hGX7^pAOׯ>TgQmKYfͩy4xzkF[eggҥQ 3g$˓͚n]kʢfZt\ 5~~x5I m)`w/;rcf>\(IA> w`99):@*(0jli%Kzi:6os3Xݐ8{v?k@$'';XíQ {"ĮaҤz4ѱۗ+Azsv!^7msUĉmS WW{!!=OU:~hzY>k8IU?n[ʢ5oNM,X0,[fСM`U`YnժxIҭ.IQ36r޽=ݿ>WEEuW飏ӴiM-۬BnRY꣐z U%%U-:_Ko9Q]d[eezԖc^ێ+TEE5kV]]&ɬ l+k֔)TΨcu_PLf˱,Waa%8Kuɯ[6FuY7衇"|OZZ$K͖hKX6;ers+TZZ}=&8]w(%D{iCz衝TcԘ14eJwo m-9F*(MÇYEDDz72-ah4iǎl9 ^AAeTJM` d0H^pݥ'Hɥ*,m~qIi{bBZ"+\۶e)9T))JH(֑#PUOm=vO >QQe~~NE{+&@ ?yPkMhgT:VVVG^mMSQX5ON9l*UUlDrSp[pumx: OOGIRa(.UkT_%Kj^.eg1I:t@&@Ժj07 $v ^^tAsn3#TSLг ,k=ee[^^O[uuÕ/8={r`n?M4vǡڬ߮͘K:&Xۧ6vܫk@05MH%K߼5Lk +cG>$^QQzŨz!%\lqj>Ԇ=FϙB"O8ٝ@H LS3acD;vd7YoϽu8:کGT(1++MRjed5VhٲX}e5oo'MS3I{+?h]e7A],I&Deezhn 7 DU70|675iҤuZ6ɛ giJDɥڲ%C{kC.ĉZxt'۶e5z[{c%%UJH;A^l-[{smx ֹ7,mI:\lw&Y۩/!˛92̒%e4FF_/dX1W'Xس'W?{-Z嗇lYsYώ)+\j2UӜСz7+Wy^^Rvvfu播-֮)͡&nn Pyynͬwb>8ZMԽ{s}]wމwsm6Kqq0[5j6LX  $5 W':HmH =11U&zNɥ+nԽnwowEEd2kΜA-^_yynunBBu@>fi֬iY؜52Q?ӟ_К53Oz֪@;vdk֬ qW^Q_}"ke7&%TFۭި5s|.ܫ;}SիgOƌ馛n!C|{٦o gڕ?235svSeI?@3HFI6eI_K_١; 'ݛ?z#7kWtHFͼA3gh͚D=N}@"}I/WQowow 2mܘNSjطصǶkQ~裣3hDTh͚Dڕ=#$?/#TVVݻszuS|Qrs-SoÇ-4+*LZ`$'suukm:GfS:^>{@Akvvs ~A~8Y=G[f;F{2uP^KkƠ 7x͟O>9RNEGh67_>;ʢ5oLsHE)>H|pDKF[_wt5ܹC ҢE#5oN=Z 0eemn i֬~zڸ1]7ZNy{;Gkժx%$4W߆*+\wX_̋yeҡCZ`ҪU7mpeek cbM7mQ]^Z:Q11wEFj۶,}q=^$צc^>x0_NNvz屺mz8~|.T>n-端lmޜ7ވzhFms6U/;5O>GsCCZfȑB(7ר7_)UcnWEGh <>li7|xOcܻ@11*/֠A^2ħQTۺLk>\TTT޽=tyeQQBB p^ֶEk2rr*즑#m[RR۳T=\5iR@O/Ҡd;ɬ]rtH\\4h 䧢Z֥(/Ϩ}4ny)PYY\5yrVO^]m֦MJL,V.SyJmܘJ>ص׶kݼ9CII% q>6[>|@(/B. qȑ >nm63YOVݐpVBbc|}ս Y>+$B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@HD!@HD!@HDB"Amݚދ;u髇"I;7B pC!tgTddIThp.BgOW]pAWXX;%I!!8Ы{s Mӭ:TnUty5oP3]EuYFm[ҤʓڇjVy$KJS$&|Oyy`@+ٴ)]+W+22O&YNNvSgo/d*\yT?Iׇ z:+֊GeK-NMW]GC`-^_պPLkRZZ.T  k}}HWꪫsi}y ͝;D2kŊ#JM-$:i@͙3XNT<fkFIGw{5lLL΍PNN륥Uڷ/Wjn?ݽ]6I/js}ض-K۶e zgFa?RCǎ%4duӦtThX^ 端]7ޘwi$ٓ>*''.䧟ҔY>}^ pђ%e2^Q** =]tQw'_u@f ʬ^diZc4ujmIk=%$ot啽5lX?$^'h̘֕RnEW/7u&'rƌ`a3(M!!5WLfPf7oh+/M0+)D!I6-i{ 6ߴ)]咤kckjӯ/L&-`@l}I7ct$^4r@/JJ|!k߳'s5a>s7gX5dQӧ[BYllJKkGܾ=RvpCF1~ YDݻhڴ׺} pWooFOfVѻ{;x0_ \>2̍Ld2+9Ö tmr{Ç[lvvrs+ok]=z45O[ͣOb'yZ5#UkҤu-^ӹ| 2={5\``{s}SIǾ6Nfo߶4S^޶KKӳ/+h}pj$4n m{/x9CGlɩ^Ӕ$T $ 5}+dg׶0գ$ IDAT(5ﱳ3l{+S榧#,ŔViϞ&1mZh5Wi۶F/-oeJC+B"?ZaL pXV8ݻso k+F *, rsŽNɾ $ >>N>={rc{Az6NS}z*/,fժxaIL)W}O#s ־}y׆ iڲ%S'oo'%'***:aW߾#EiietM^CQy9 zQNP $4lߞ3z`LioYEFZBW.Zx.=γqq0 $v)Shʔ)^_rsFz"""$I&L85eZ;wdƌC]Fs@h#$o]]]5lذg>w>%}OD" "BjҦ(m5AB!EK>sso$1l}>|>sNX9~D莩O<-u;vvCSNa@Ė$UO>|8V+v(|ذaaX0c p 0!сc#0}t,Y:.`z͆?z{.V+^|E|'())#<#ioog}8s`0wajWΎi]7oVyۍ6mBEE2331sL\wuaW}}=^y|7hllȑ#q'/V8p lX^^ףȑ#qWb }aݺuؿ?4 |z8rH1ظq Fl~uvv::5{ޯuuu~eO8QTWWѣG /LJgN0!.HwxENNNs=th,9rطo>}zzظqhooK. Y_ݶT+Jrrre^׋nR/\_?0L?qx$""$&`֭j%`ڵa6ŠADNNXlx饗s=Wxu:K.qG/V_1bhii >lQRRVrN*^y啄ɲeqy?Y]ٳŊ+ģ>*.]*F Ӻ rss]w%իWUW^7oWW8S̙#xCy橯uY!+ơ׿Č3^~˞?{ʕ+5\#>䓘kEEjZxb˗C L&ʼnDD,vK\wu qI'?_?4a1j(aX]w%^}U?Q:::vX;!X*^ÇɓFEEEo+W^{z!&++K$5є"""&ǁ\8E+T?3DUUjRp-_R?vϪ~狧zJ8Τ-?{Q_+//Ww Y =|c|gjkkk%KaXoO]c^(g~oSqƀ cLvIoiiرcMMMj8ӒV&ݿ 222:eee~->rKo7h`eY!~|)J]EE<~ϖT+Jp+.b@'? x/񪭭+K, hFIwl凈Iq?})FĠA*dɓ't_ݳgtxC._w…~j a.r󤕉xwީB@\p!;q))ʲB?^,e۷/O>D^96=VNz+n>l{?OYfȠ N:5qT~$'JE]qچ+^}sW bܹkz%H+u[nEnАmD7{ .°83Vhr}w1}>H7N#FIJeB.79~V&ݿgu 뮘th4!{z4IҢ&jy.,WVf"Ν;ykkkW^^Nw^R{W]_3)BM&SM!""H8iqa=NU+ :Ç7fWW֮] /"`~_{=uL*s_ۍ۷6Ҿ_`AБ`=!R<Õm۶AN ݾ/8۶m .I#F%TYbĉ>k*lٳ1iҤe@8GS~&qR*1Vhg̘bL?etww֬Y5kD\׈#{ꩧHt~1[yf;O?~FgW_k6MDceoڴ  ®C0o 4{xn::tx<H~a#Grrr0vؤx޽{FsErc^Y>"3\YV^?&GA}}}[v{،X Py "^B|:20x9CDD$8$tƯbk$sB^UiΜ9˜5kVi]~;-- ׿e]o6p8i&lڴ Gxc=\Lxv#_sϞ=gSO=CwœO>}aذa.¤W|}9z(`ȑa /h[Bu\nnF~{]人/ZYY3YVkI-shp ÇiΝS<ÕH7aْ ;wF)+fJGG۰jll֭[#&ɌoW+++58GS~$gIb4]M:ӻ\.ܹ3`ө& |hii1yd~Mdl߾ZӧOWףTMluѣGg?.\V%#NS;M[[Z =3jRvr)x<뮻K/7n7z=N:$h~ϴn:'%c9~ eB(x+JQSSuc뚪c3ce۶mx̝;]vYضmv ш3gbҤI/pd2I}xD"aԨQKbylFt:+`׮]hooGqq1>l}1=4U\.֭[;wjbܸq1lذg""$b۱n: PPPtkk֬\wyg~!C V~#""""&D䫾EEE0oŋ83g!Cv`""""C 1l0;`P9p^|E df.yvwv;I"Ū0 3gR?|#۝p:=aZhowB/ """"cС]˻0mZ.ln\qL߯O|+b{߲ħ֣0>=^:sGܞXeK} k?ii:Lk͝LDDDD$UQѥm27n\':G7U#{vOpxg {n |𤐏܈gGtG@D2I$""""bHQnj >?@`Ҥi)%enVEC1}z> سvv|A ,Vx1kV!MfF9;&!+ˈ4d"""""&kCV7. Ggv͚ðXxpSt~x-=gzϿ@YY'|9IYљv+Iy 1I$_W^ܨFeeud{\#p}SʉAY IDATDZK K%%f}d֭+Ӓ """""bHau3t#GZpSp 9!),LÜ9Qj\uը8&kDDDDD$(.6=I#20~|6.^vY'}.'юf;LI[1I0.x(ni\Rƒ(W4--5K2e:v96[.$R?`ȤMx&:4 a2ADDDDDL(*82VAiI]1I~@ԦӅ> =hw [F =]eD;os#Nvm5 &}XnP_oC[;I"˜1=cG3뿶fP楗@zÒH6l…p&<.8""""cSMƊ͛k1o{4)ӂf܁z )Y_ؒOz8ƎMZ5<8OX}Y@z{~`p`Yާc:z4pe*zO뫮N},3g\dg%fgFɄ{}7'ˮYYモS@{;0u*x(> |r۶MMٳ@G3⠔#?_^X׿{M]ǰrѣƍsNy>?|rK}S6•[2Cʲ7z<EKPhoO,!!Vx0go9~*a;ח/Bl(D^w:ߟ_f"*>3h3|>A{ [5*YYB׋.˺>!\ surÃ?|wZ!RzY^;Ϝ9ҥUP ߯mW\|b!v꽲q`cO!VC&:5!n)_s#G {f׭Knd&XE{' qbǾ?{&n"zM7~ymm2xi[R _$'hd%K]|%r[o ]xyW_Y;*I۽v!okjȓ_2UAj4]|mUPFسdeg7˛T}Ey{}˵kj4ysio_}յ-x^H|ĉB8:$g8PI}'''1crcCPa2om5g^iN4Hc.6$w|JOtcg{055u2d˷ v[2pɋs4凈(xw -}E\Bx@WWjۃ-GURIƼA9|9?וW9`EO]_<}$r pYR\p;Q*K|2t̅ }] Fn7*S$??AgF#ௗ ޷OD1c9s^\,}vVJJ*b@\x)#rPJv)?DD=ۄe!G;|}娇n7 r­[ɒ)55@whu̫$GF5m{_JYlj&N5 uR2#QIf,?ª8w46Q"MG7Gɮy? <ޮEld[_+['"M EcB੧dl7Imz6O(9qܖ_2r퇞h+MT"cu_rTtMMֺ}|ffܟ1Idԩ򁿑ˤ`zYyEmmi;׳kR<%?syyyn=(#+Kuvɇ֯Z%@뭲%Vi3Fv]=OTGT>_({Uh-[d¼e|]ņ:ysԥ:^~*6ہ_*E'{FE\ uU/YMT"c,|JіGV{r%gtz_.cϞ3׼뎖:ʕ`V=w.`6AzKv;XTΏ>Zӳio!OUe G ~LG"ؓvm[vL~<9FXM&_DU96L1PI".PVV`m|]**ϻjU\&oFϮ;sy(s|{2N'͙:[xq{_UdI CO-ڷxqmE5l&< +gg?MX%C }Q2@ǪUn=7x$r&C"cMl4IcYYٱC#kr<0Mt&=E$T;W曁g񪬔e@0b5sDtwrrX2tK!mK6tw qBddxGb"!8zTɓ{Ur-_._5K(p~Ne˄pיȼ^ v%G/"//|F7$|ޏ>6!BrSQ]-Ą UW QWY4I.+=]#o˖ˊ'eeiMf 뵵Nlb.B x!~뭱"--pW^)n9#c4Ծ$hwwZ.Թa4F:n!46%~IeW_?n|C%;+RIei!rh7l6قcVe`#|xd]Ubٚ4cFy~+9YrTv`:ٚpȮS"m.ȫ omkoϴ:rDuΛpܾޓY47˖eҚK/#UG+]W|QdHqmɎCo-F\];NLz:tH8 Q>Dy(-{;wVNv=;}$UMO.@.ܸ$xxm.sMMMޖz!d+Dt\cH}g媷= "+VD},G.L^ZC?7X#""8p @VU%ϣ#m7^dԓxd 1I$~GyEz|=Qiir ϗytwˮ|"GcWQ?M2噄ӧƈIH\#u g|V8"""bH49̼һK0^D˒%2|1y1 pg ')Q?ŁkH{I"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$$Q3O45j5UUUp80(..>Kss3\L8]ѣQUU7okk+ Dkk+Qku\ 1If m\8d'xaޮ~$;tef%533BEEE1 Bnnn0Y, w0ͨP/Tۮ#GvjM9$\& ŋwv v5X=J [zvt(..VmmmI]sszOА!CiZ"*rrrNZV nU}QӾ o7`AeOczVrF"rԋDMm";;;%#X*Z6hw5{HzK, U^v}s{5 rsscK" w[c旈K$-'''k2Kժ⡞y9 ?!"bHhiqG@Ӡ0 ~ 򚖖2SP'HN<9???MOTJoE/cRs}/ez&N:MJʞP>GnnnȮ{;z ƒ=n"8Xn*fM0x[bM=gQe)0YB'z}eb=$\2DD^n#N;;萟oGT*z>lK9Sn&lK &:.ll6n[ӗ1*iz#uUbrj~e["_~ eze]5j{$1m"B׬,v ʂlNy"$aGT=ᖫhiJHx, DJyAS]}̅^AvgW(W0;;;ꚖJ*'XHCt:4&Tz{_`HIbʑez߲iz}Һ)x+ɸKzS+Hf3ۭTcX{I&P+>F&`m6+ʰJEw;z^oiiQ,䛼{cKKKȫJqYrD,ܦ*mmm )Vk{ʀ'=Ī*!>S0U9zC(F=zG7(='edHL&|[a*Ɣl8]^^ hP\\&deee0HKKAGGzRKJՅNEjbdDggZѱ0Lq]UMOOjE]]ڐ'??/M4&$HMvt:ɉLӡ555p88z(a4aݭ>VӑvXV!==:Vv聾5ͰZje-##b -h4"??R׫aĞ#Q[S2@,n\.FQeff\܊7-ѣGѡ: `{1(9F \.AoKDL) !Ksl6cȐ!TOj1hРWJ-zlhhNQZZ\.u:JJJwWӴ4䠶6ͯhԇ'3&$TH& lYKdL@}}=nwAPAբn~ؒtww$PRR*vam*..Ƒ#GBV4 rZ,$2H1Pm"466ʳ_=>8*ǛdBQQl!Daaa?"(=\&Rb}19CI@wwz`0`0b"ե` 8)ψRZ|L&Çr( 8(sPEzF1$јj_؈ff :T ǯ,7Yx<tuuf]i}}fffTW;;;ՑCz=2228TF]-x(rAh4-Ɍcuu5:;;"8(a9R)s@eeI"\.> >|x$Rbz&Du?)J V[.K}6fh#""&D}$2A$"~BODD$[ʐrNDL]HDDLVxNɣhj`g>va2RK"":rODDDDDDLI"1I$""""""&DDDDDD$$D""""""bHDDDDDDLI"1I$""""""&DDDDDD$!}B8n^^F{oooGSSS2ZRF~񠻻F1eQ]] 6lt:l6"'''M fl68e:NTVV+!1Od[wXV455p@`Ĉ$ptϾǩ"* &-$&kxigPHGRcU^W~_NSˋ>ds0Tss^\.^~p$Գޮ~96LkTVVVen[KfYTwSS^1JOOWnn233sF*uooN[_|><|>]Ҕ%/%cvow@@=cle) *--Myyy]V{Ҕ<R'`rD N-NH BRssskuuu9r222"6"N*pG/2 R4qD>|X q}wAnXT__SN9ž业5vSN.$O}?~.a񨺺:by֪PEEEqիޖscc9ݍr\6lrss׫)r4~MMMMeu tIRii"lթA.KI-ʾ^WW|XUvvNZ[[+3fLI Br:UFF|>}FP QNNNL ϧ/n@Z PHvKJ$UzuJ@ CٽVoT0TKK|>+JUSS#Ir\ɑ{m:#Gڽ999r\v_FFFfTWW Ѵ4{jkkSUUU̽`yyyvH&4v}SUV~_UUU BVVV~ܬP(#GuȐSsss= ڽFn[!'33ӮߝˣQQ3#ے1'u|#6nw=xa2d<(ǣ֨!$#ے1g'V0|ȈsU{{F\/RRǰHe~Ay<B">68ЪCZO zr:5jT#өwYuSfffXy:ݐM9766JJJ¾v;'5C҈#z  WLcsR-y sUAAAرe+CiGēD(>d0h4'ȴ1effF X=o${.02dHV:7!G 1bD}UcV7;;;jhu~2X0H :qmM~ꫲ]N,<%ZWkf2:svk„ 0aBzjf(HŶ17U봾;'#FdK ů&ސPCNh dhZZZ'U1ft8q?E`PR;_ *//WNN󕕕FNlՙƺ(YW.}y"!˥l=D B=T5g4YYYW0F߈dk^^jkkeb~|>y^Ed%ޖ:ʹN@HDCCiipQޠZ[8EXVEKKKLCkH=0###S8[պZS`kX=mFennݠjkk'S}}z\N`4λsٙ$ɱ{ZZZ4h B!;Өﲊ>7.3fdda"`eM9n{8hff|>=!L2%{[;YU@H18vvw(|$==]>Oqj֤ =S"++\ٳ'T~~fɴ&8|R>lzz=SawތdO .7#kf{iKKx9&z5տYWEEEE]~ Gv@,,,zYU2\)oӱ Rp5,#v E=qYڵ&80Wxug<<ƠTcǎ{d$ѰSݱz].vzބYםe  _ֲ{qIoDo՚Ժo02X1''GC-_xB \~50C{<}2k}ȑ#UUU@ es˥ÇQ^4 G* Mo=oС}NVÇ#SzzJJJ"{& :r\.W\ aÆt˽Q[[[B!za IUYeff@joo2dphȐ!=zݻwSǹF\2O>zqVTT>Dpkܸqz6._{ZZ/.*Iw677<~A{~<ν Zxqs=q m RU^^Ɠ~_޽[6lƎ;`֏sp{]7eeCtLv&! -YZZ!}M/B~^{n>|<8@~=쳽Hb@Sn?яzj-^XO= !q˖+um^W;x|W;{'N#XUZZo92CUUY;vrʸ>Qn ܓO>N9'믿^ I[umرc/3zAS_K|POO:!w՛oJiԩZprrrA%u }u:ïUkƍ .@a Zro߮}iРA*--ռy4~lӖ-[f}r*++ӢEݻwk*--թw_^*((H:WVVjٲeI-ۖ}/Xnb׮]ڼyvڥrSNѼykMMV\[AŚ9sΝAŽV3fN;4^жmx4~x]wu*++z|8]ve2W^oI&iɒ%ݖ{'I}~zkĈt[ojjj4rH{pDzf{QIIN+??Oı+I~^{58p@EEE6mn喈5/ѪUo>effj5lذ^m_~YwVVV9|ӟg544hƌZQ;wR555:&zwٳgĻNJw9OuugY/vء&M>]\s&L@c 8b֘jm7eekLYaCUۨQ$`nW]]m$If˖-n󿒒}.ݴiz{{{嗗ٳgO6m2Ǐ?qCEE#.8p\wuFyz]1QMMMfӦM]IOh;wO[n8v8n ܞ={֝D7W\\lVZF;;cq-2>/񑖖f[Ϛ5r|>|̜93w?7---fΜ9_KL0 ۶͛7҈7>l։1bO"~w{{曣nӪUo$gqm<`NgrǍgva/^< .ޢԓx;֯7㡞䪫2O~OgggRYٚb':Bb{ SV|MSXVVf$sgy,_̛7>AN:5!H2o7OT,RUQAAA:k޼y={l]/_9=1bDϝvizg$uLo$oVr-]6h \Ҿ/׿u4~x+aŋ3 /оmڴi뮻+>S9N-_\]>7d W[[~y8묳tnO~"I:t^}հ{Ѿok…qG}Tmmm*..{}^]x=2ݻ#믿KƵܖ=䓒%K5\,3f̰9sRTĉU__nXkJd]Fե^u=̙N;^v" aØ(ӟ=7{,YfE{II$颋.89 $I_Wկ~5rnD߫{=eeeEw뭷fffD{^m,u7告c0u?D!2I]͛);;M?ٙrN^D-ڬuM7iҥɓ5g-X@]tQ(\Ruuuз E$G{۵n:Wj$uY.{ƌڵkvE}n)u<󲭭-lVC+&*ڬ}vC֚U5'n}^'16UVVυxV^mDj̜9Sƍ;>UeaYz^~em޼Y]PJd]=zt˶&ǎ˽\SLzo1~g?[7|Sofonn:UޔcO?i$r)Qk=ՁdG2dדd=(綾= ڶm$[V~zXDtEuu^9>8~u<-ӨQ#Pǰa4 .ܹszj^Z6lPcc =/_W]5Fvi7ެ!wڵK˗/1$Z۫ *@ nA'O5yduYڳgΔuiOzOz]|ϐ*:8nB0KXzzz׉x:TխD)Tɬ'dΝjkk$~1N2!}"2ns`[~Dwl̘1ڻwlbxy,kV޾.TT֓_''ղu1FEEEi'1f7MBbd^eeC枸0/2{-[.KsլYF|)b7cvힼhHz<?߱$RUTWW'I4iR{)_י3ges7xþz{fϞ}׉s=Wnݺ544hΜ97o^!!u"\p$駟z\25)Ѳe졀nTG*w*Izڝ=gWC3M7޸Q7޸Q5<\WUO<5ҥK#>'jٲejzK/?]^;z̙>q:̕TJUYXۻޮOW;UpB 4Ht7ͲuV _yÎ#G誫RKK\.z>̝;Wƍ1F _mmm馛Ԥ]s5Z'buwHuUWOOhCuuu?=r*zSߑBu*Ijƍ:xN+R&M|?P4.4OSjnn_sjʔ):pV\vuYڶmN?tu3Ueo}K>s}Z` k͚5ڷoO۷͛7OӦMKgт k.uYK4qDرC<222|6tP566?VXs=W҆ ߞ })==]+VХ^]viʔ)9s9566jժU?o˴h"=sڸq&MYfim6egg .ξկ#<7xCSL%\|mܸQ۶m+( 'vZPAAT֓Xu~џ4-[( r.M:U7T\\;wj͚5 ;vz-.˨'p vSVƔ16TE|C~g5t}Fe$ tj#H2;w@ԭFٰaC***ԩS;?ikk3%%%FٳgOزߘG6vx5o~f>ϢYt [M7d=c)D1ƼaIzų݉~=w=6ga:dN;us8f&2.\Ӻ}aҿKfwmّ=p_R$ iھ}jjjTRR:c|SS|M߿_RQQJKKu饗lhvZmݺUYYY6mΝ,5Jzg~7)P[lг,ݫk/Դit5=*VX!˥2umnno[QEEE9s.x￯&kڱc|>JKKu5 zn:m޼Yuuu5j&M+9^D<٣իWkJKKԩSu׫W˭Ԇ G);;[W\q.Bۏ9|pKW0Ԍ3t3k*((Q*'ys/K}G*//W ȑ#uE{&LBB5c ]y qa{D!@HD!@H6#IDATD!@HD!@HD!@HD!@HD!@H $B" $B" $B" $B" $B" $B" $B" $@HD!@HD!@HD!@HD!@HD!@HD!@HD!B" $B" $B" $B" $B" $B" $B" $B"D!@HD!@HD!@HD!@HD!@HD!@HD!@HDB" $B" $B" $B" $B" $B" $B" $@HD!@HD!,ZρGFIENDB`Setzer-0.4.4/data/resources/document_wizard/book1.svg000066400000000000000000000516131420322575300226610ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/document_wizard/letter1.svg000066400000000000000000000364771420322575300232410ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/document_wizard/report1.svg000066400000000000000000000412711420322575300232410ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/gtksourceview/000077500000000000000000000000001420322575300206225ustar00rootroot00000000000000Setzer-0.4.4/data/resources/gtksourceview/language-specs/000077500000000000000000000000001420322575300235205ustar00rootroot00000000000000Setzer-0.4.4/data/resources/gtksourceview/language-specs/Makefile.am000066400000000000000000000043111420322575300255530ustar00rootroot00000000000000TESTS = check-language.sh LANGUAGES = \ actionscript.lang \ abnf.lang \ ada.lang \ ansforth94.lang \ asp.lang \ automake.lang \ awk.lang \ bennugd.lang \ bibtex.lang \ bluespec.lang \ boo.lang \ changelog.lang \ c.lang \ cg.lang \ chdr.lang \ cmake.lang \ cobol.lang \ cpp.lang \ cpphdr.lang \ csharp.lang \ css.lang \ csv.lang \ cuda.lang \ def.lang \ desktop.lang \ diff.lang \ dtl.lang \ d.lang \ docbook.lang \ dosbatch.lang \ dot.lang \ dpatch.lang \ dtd.lang \ eiffel.lang \ erlang.lang \ fcl.lang \ forth.lang \ fortran.lang \ fsharp.lang \ gap.lang \ gdb-log.lang \ genie.lang \ glsl.lang \ go.lang \ gtk-doc.lang \ gtkrc.lang \ haddock.lang \ haskell.lang \ haskell-literate.lang \ haxe.lang \ html.lang \ idl.lang \ idl-exelis.lang \ imagej.lang \ ini.lang \ j.lang \ jade.lang \ java.lang \ javascript.lang \ json.lang \ julia.lang \ kotlin.lang \ latex.lang \ lex.lang \ libtool.lang \ llvm.lang \ lua.lang \ m4.lang \ makefile.lang \ mallard.lang \ markdown.lang \ matlab.lang \ maxima.lang \ mediawiki.lang \ meson.lang \ modelica.lang \ mxml.lang \ nemerle.lang \ netrexx.lang \ nsis.lang \ objc.lang \ objj.lang \ ocaml.lang \ ocl.lang \ octave.lang \ ooc.lang \ opal.lang \ opencl.lang \ pascal.lang \ perl.lang \ php.lang \ pig.lang \ pkgconfig.lang \ po.lang \ python.lang \ python3.lang \ prolog.lang \ protobuf.lang \ puppet.lang \ R.lang \ rpmspec.lang \ rst.lang \ ruby.lang \ rust.lang \ scala.lang \ scheme.lang \ scilab.lang \ sh.lang \ sml.lang \ sparql.lang \ sql.lang \ sweave.lang \ swift.lang \ systemverilog.lang \ t2t.lang \ tcl.lang \ texinfo.lang \ thrift.lang \ vala.lang \ vbnet.lang \ verilog.lang \ vhdl.lang \ xml.lang \ xslt.lang \ yacc.lang \ yaml.lang languagesdir = $(datadir)/gtksourceview-@GSV_API_VERSION@/language-specs languages_DATA = $(LANGUAGES) language.rng language2.rng language.dtd EXTRA_DIST = \ $(languages_DATA) \ check-language.sh \ language-specs.its \ language-specs.pot \ update-pot.sh -include $(top_srcdir)/git.mk Setzer-0.4.4/data/resources/gtksourceview/language-specs/R.lang000066400000000000000000002331611420322575300245720ustar00rootroot00000000000000 text/x-R *.R;*.Rout;*.r;*.Rhistory;*.Rt;*.Rout.save;*.Rout.fail # . Name: / .*$/ Name: / / / / Name: / / / / Name: / / / / Name: \b \b Name: / / Setzer-0.4.4/data/resources/gtksourceview/language-specs/language-specs.its000066400000000000000000000004351420322575300271410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/gtksourceview/language-specs/language-specs.pot000066400000000000000000000305771420322575300271560ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2020-05-16 12:24+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. (itstool) path: abnf.lang/language@_section #. (itstool) path: actionscript.lang/language@_section #. (itstool) path: ada.lang/language@_section #. (itstool) path: ansforth94.lang/language@_section #. (itstool) path: asp.lang/language@_section #. (itstool) path: automake.lang/language@_section #. (itstool) path: bennugd.lang/language@_section #. (itstool) path: bluespec.lang/language@_section #. (itstool) path: boo.lang/language@_section #. (itstool) path: cg.lang/language@_section #. (itstool) path: chdr.lang/language@_section #. (itstool) path: c.lang/language@_section #. (itstool) path: cobol.lang/language@_section #. (itstool) path: commonlisp.lang/language@_section #. (itstool) path: cpphdr.lang/language@_section #. (itstool) path: cpp.lang/language@_section #. (itstool) path: csharp.lang/language@_section #. (itstool) path: cuda.lang/language@_section #. (itstool) path: dart.lang/language@_section #. (itstool) path: d.lang/language@_section #. (itstool) path: docker.lang/language@_section #. (itstool) path: eiffel.lang/language@_section #. (itstool) path: erlang.lang/language@_section #. (itstool) path: forth.lang/language@_section #. (itstool) path: fortran.lang/language@_section #. (itstool) path: fsharp.lang/language@_section #. (itstool) path: genie.lang/language@_section #. (itstool) path: glsl.lang/language@_section #. (itstool) path: go.lang/language@_section #. (itstool) path: gradle.lang/language@_section #. (itstool) path: groovy.lang/language@_section #. (itstool) path: haskell.lang/language@_section #. (itstool) path: haskell-literate.lang/language@_section #. (itstool) path: haxe.lang/language@_section #. (itstool) path: idl.lang/language@_section #. (itstool) path: java.lang/language@_section #. (itstool) path: j.lang/language@_section #. (itstool) path: kotlin.lang/language@_section #. (itstool) path: lex.lang/language@_section #. (itstool) path: llvm.lang/language@_section #. (itstool) path: logtalk.lang/language@_section #. (itstool) path: makefile.lang/language@_section #. (itstool) path: meson.lang/language@_section #. (itstool) path: nemerle.lang/language@_section #. (itstool) path: netrexx.lang/language@_section #. (itstool) path: objc.lang/language@_section #. (itstool) path: objj.lang/language@_section #. (itstool) path: ocaml.lang/language@_section #. (itstool) path: ooc.lang/language@_section #. (itstool) path: opal.lang/language@_section #. (itstool) path: opencl.lang/language@_section #. (itstool) path: pascal.lang/language@_section #. (itstool) path: pig.lang/language@_section #. (itstool) path: powershell.lang/language@_section #. (itstool) path: prolog.lang/language@_section #. (itstool) path: rust.lang/language@_section #. (itstool) path: scala.lang/language@_section #. (itstool) path: scheme.lang/language@_section #. (itstool) path: sml.lang/language@_section #. (itstool) path: solidity.lang/language@_section #. (itstool) path: sparql.lang/language@_section #. (itstool) path: sql.lang/language@_section #. (itstool) path: swift.lang/language@_section #. (itstool) path: systemverilog.lang/language@_section #. (itstool) path: thrift.lang/language@_section #. (itstool) path: vala.lang/language@_section #. (itstool) path: vbnet.lang/language@_section #. (itstool) path: verilog.lang/language@_section #. (itstool) path: vhdl.lang/language@_section #: abnf.lang:30 #: actionscript.lang:24 #: ada.lang:25 #: ansforth94.lang:24 #: asp.lang:23 #: automake.lang:23 #: bennugd.lang:22 #: bluespec.lang:21 #: boo.lang:23 #: cg.lang:23 #: chdr.lang:24 #: c.lang:24 #: cobol.lang:26 #: commonlisp.lang:24 #: cpphdr.lang:24 #: cpp.lang:25 #: csharp.lang:26 #: cuda.lang:22 #: dart.lang:22 #: d.lang:29 #: docker.lang:21 #: eiffel.lang:23 #: erlang.lang:23 #: forth.lang:23 #: fortran.lang:24 #: fsharp.lang:24 #: genie.lang:23 #: glsl.lang:30 #: go.lang:24 #: gradle.lang:21 #: groovy.lang:24 #: haskell.lang:24 #: haskell-literate.lang:23 #: haxe.lang:34 #: idl.lang:23 #: java.lang:24 #: j.lang:23 #: kotlin.lang:24 #: lex.lang:24 #: llvm.lang:22 #: logtalk.lang:23 #: makefile.lang:22 #: meson.lang:23 #: nemerle.lang:23 #: netrexx.lang:23 #: objc.lang:23 #: objj.lang:26 #: ocaml.lang:26 #: ooc.lang:23 #: opal.lang:23 #: opencl.lang:23 #: pascal.lang:24 #: pig.lang:26 #: powershell.lang:23 #: prolog.lang:23 #: rust.lang:35 #: scala.lang:24 #: scheme.lang:23 #: sml.lang:23 #: solidity.lang:28 #: sparql.lang:23 #: sql.lang:23 #: swift.lang:24 #: systemverilog.lang:21 #: thrift.lang:20 #: vala.lang:27 #: vbnet.lang:23 #: verilog.lang:23 #: vhdl.lang:23 msgid "Source" msgstr "" #. (itstool) path: asciidoc.lang/language@_section #. (itstool) path: bibtex.lang/language@_section #. (itstool) path: docbook.lang/language@_section #. (itstool) path: dtd.lang/language@_section #. (itstool) path: dtl.lang/language@_section #. (itstool) path: gtk-doc.lang/language@_section #. (itstool) path: haddock.lang/language@_section #. (itstool) path: html.lang/language@_section #. (itstool) path: jade.lang/language@_section #. (itstool) path: jsdoc.lang/language@_section #. (itstool) path: latex.lang/language@_section #. (itstool) path: mallard.lang/language@_section #. (itstool) path: markdown.lang/language@_section #. (itstool) path: mediawiki.lang/language@_section #. (itstool) path: mxml.lang/language@_section #. (itstool) path: rst.lang/language@_section #. (itstool) path: sweave.lang/language@_section #. (itstool) path: t2t.lang/language@_section #. (itstool) path: tera.lang/language@_section #. (itstool) path: texinfo.lang/language@_section #. (itstool) path: xml.lang/language@_section #. (itstool) path: xslt.lang/language@_section #: asciidoc.lang:22 #: bibtex.lang:23 #: docbook.lang:23 #: dtd.lang:23 #: dtl.lang:25 #: gtk-doc.lang:24 #: haddock.lang:23 #: html.lang:25 #: jade.lang:24 #: jsdoc.lang:23 #: latex.lang:24 #: mallard.lang:22 #: markdown.lang:25 #: mediawiki.lang:22 #: mxml.lang:23 #: rst.lang:22 #: sweave.lang:24 #: t2t.lang:23 #: tera.lang:23 #: texinfo.lang:24 #: xml.lang:26 #: xslt.lang:23 msgid "Markup" msgstr "" #. (itstool) path: awk.lang/language@_section #. (itstool) path: dosbatch.lang/language@_section #. (itstool) path: fish.lang/language@_section #. (itstool) path: gdscript.lang/language@_section #. (itstool) path: javascript-expressions.lang/language@_section #. (itstool) path: javascript-functions-classes.lang/language@_section #. (itstool) path: javascript.lang/language@_section #. (itstool) path: javascript-literals.lang/language@_section #. (itstool) path: javascript-modules.lang/language@_section #. (itstool) path: javascript-statements.lang/language@_section #. (itstool) path: javascript-values.lang/language@_section #. (itstool) path: jsx.lang/language@_section #. (itstool) path: lua.lang/language@_section #. (itstool) path: m4.lang/language@_section #. (itstool) path: perl.lang/language@_section #. (itstool) path: php.lang/language@_section #. (itstool) path: python3.lang/language@_section #. (itstool) path: python.lang/language@_section #. (itstool) path: ruby.lang/language@_section #. (itstool) path: sh.lang/language@_section #. (itstool) path: tcl.lang/language@_section #. (itstool) path: typescript-js-expressions.lang/language@_section #. (itstool) path: typescript-js-functions-classes.lang/language@_section #. (itstool) path: typescript-js-literals.lang/language@_section #. (itstool) path: typescript-js-modules.lang/language@_section #. (itstool) path: typescript-js-statements.lang/language@_section #. (itstool) path: typescript-js-values.lang/language@_section #. (itstool) path: typescript-jsx.lang/language@_section #. (itstool) path: typescript.lang/language@_section #. (itstool) path: typescript-type-expressions.lang/language@_section #. (itstool) path: typescript-type-generics.lang/language@_section #. (itstool) path: typescript-type-literals.lang/language@_section #: awk.lang:23 #: dosbatch.lang:23 #: fish.lang:19 #: gdscript.lang:22 #: javascript-expressions.lang:27 #: javascript-functions-classes.lang:27 #: javascript.lang:27 #: javascript-literals.lang:27 #: javascript-modules.lang:27 #: javascript-statements.lang:27 #: javascript-values.lang:27 #: jsx.lang:23 #: lua.lang:23 #: m4.lang:23 #: perl.lang:25 #: php.lang:28 #: python3.lang:23 #: python.lang:27 #: ruby.lang:27 #: sh.lang:24 #: tcl.lang:23 #: typescript-js-expressions.lang:23 #: typescript-js-functions-classes.lang:23 #: typescript-js-literals.lang:23 #: typescript-js-modules.lang:23 #: typescript-js-statements.lang:23 #: typescript-js-values.lang:23 #: typescript-jsx.lang:23 #: typescript.lang:23 #: typescript-type-expressions.lang:23 #: typescript-type-generics.lang:23 #: typescript-type-literals.lang:23 msgid "Script" msgstr "" #. (itstool) path: cg.lang/language@_name #: cg.lang:23 msgid "CG Shader Language" msgstr "" #. (itstool) path: changelog.lang/language@_section #. (itstool) path: cmake.lang/language@_section #. (itstool) path: css.lang/language@_section #. (itstool) path: csv.lang/language@_section #. (itstool) path: desktop.lang/language@_section #. (itstool) path: diff.lang/language@_section #. (itstool) path: dot.lang/language@_section #. (itstool) path: dpatch.lang/language@_section #. (itstool) path: ftl.lang/language@_section #. (itstool) path: gdb-log.lang/language@_section #. (itstool) path: gtkrc.lang/language@_section #. (itstool) path: ini.lang/language@_section #. (itstool) path: json.lang/language@_section #. (itstool) path: less.lang/language@_section #. (itstool) path: libtool.lang/language@_section #. (itstool) path: logcat.lang/language@_section #. (itstool) path: nsis.lang/language@_section #. (itstool) path: ocl.lang/language@_section #. (itstool) path: pkgconfig.lang/language@_section #. (itstool) path: po.lang/language@_section #. (itstool) path: protobuf.lang/language@_section #. (itstool) path: puppet.lang/language@_section #. (itstool) path: rpmspec.lang/language@_section #. (itstool) path: scss.lang/language@_section #. (itstool) path: toml.lang/language@_section #. (itstool) path: yacc.lang/language@_section #. (itstool) path: yaml.lang/language@_section #. (itstool) path: yara.lang/language@_section #: changelog.lang:24 #: cmake.lang:23 #: css.lang:26 #: csv.lang:23 #: desktop.lang:24 #: diff.lang:23 #: dot.lang:23 #: dpatch.lang:23 #: ftl.lang:23 #: gdb-log.lang:18 #: gtkrc.lang:24 #: ini.lang:22 #: json.lang:29 #: less.lang:23 #: libtool.lang:23 #: logcat.lang:23 #: nsis.lang:23 #: ocl.lang:32 #: pkgconfig.lang:23 #: po.lang:23 #: protobuf.lang:21 #: puppet.lang:23 #: rpmspec.lang:24 #: scss.lang:23 #: toml.lang:23 #: yacc.lang:23 #: yaml.lang:21 #: yara.lang:26 msgid "Other" msgstr "" #. (itstool) path: chdr.lang/language@_name #: chdr.lang:24 msgid "C/ObjC Header" msgstr "" #. (itstool) path: cpphdr.lang/language@_name #: cpphdr.lang:24 msgid "C++ Header" msgstr "" #. (itstool) path: dosbatch.lang/language@_name #: dosbatch.lang:23 msgid "DOS Batch" msgstr "" #. (itstool) path: dtl.lang/language@_name #: dtl.lang:25 msgid "Django Template" msgstr "" #. (itstool) path: fcl.lang/language@_section #. (itstool) path: gap.lang/language@_section #. (itstool) path: idl-exelis.lang/language@_section #. (itstool) path: imagej.lang/language@_section #. (itstool) path: julia.lang/language@_section #. (itstool) path: matlab.lang/language@_section #. (itstool) path: maxima.lang/language@_section #. (itstool) path: modelica.lang/language@_section #. (itstool) path: octave.lang/language@_section #. (itstool) path: R.lang/language@_section #. (itstool) path: scilab.lang/language@_section #: fcl.lang:23 #: gap.lang:23 #: idl-exelis.lang:20 #: imagej.lang:23 #: julia.lang:23 #: matlab.lang:25 #: maxima.lang:24 #: modelica.lang:25 #: octave.lang:25 #: R.lang:25 #: scilab.lang:23 msgid "Scientific" msgstr "" #. (itstool) path: gdb-log.lang/language@_name #: gdb-log.lang:18 msgid "GDB Log" msgstr "" #. (itstool) path: glsl.lang/language@_name #: glsl.lang:30 msgid "OpenGL Shading Language" msgstr "" #. (itstool) path: llvm.lang/language@_name #: llvm.lang:22 msgid "LLVM IR" msgstr "" #. (itstool) path: po.lang/language@_name #: po.lang:23 msgid "gettext translation" msgstr "" #. (itstool) path: rpmspec.lang/language@_name #: rpmspec.lang:24 msgid "RPM spec" msgstr "" #. (itstool) path: tera.lang/language@_name #: tera.lang:23 msgid "Tera Template" msgstr "" Setzer-0.4.4/data/resources/gtksourceview/language-specs/language.dtd000066400000000000000000000044501420322575300260030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/gtksourceview/language-specs/language.rng000066400000000000000000000254351420322575300260240ustar00rootroot00000000000000 true false TRUE FALSE 0 1 1\.0 Setzer-0.4.4/data/resources/gtksourceview/language-specs/language2.rng000066400000000000000000000316701420322575300261040ustar00rootroot00000000000000 [a-zA-Z0-9_\-]+ ([a-zA-Z0-9_\-]+:)?[a-zA-Z0-9_\-]+ ([a-zA-Z0-9_\-]+:)?[a-zA-Z0-9_\-]+(:\*)? true false [a-zA-Z0-9_\-]+ start end Setzer-0.4.4/data/resources/gtksourceview/language-specs/latex.lang000066400000000000000000000515521420322575300255100ustar00rootroot00000000000000 text/x-tex *.tex;*.ltx;*.sty;*.cls;*.dtx;*.ins;*.bbl %

Help

Welcome to the help browser. It includes a general LaTeX Reference and even more detailed Package Documentation.

LaTeX Reference

This is the "LaTeX2e unofficial reference manual (October 2018)", see About this document for details.

Overview of LaTeX
Starting and ending, Output files, TeX engines, LaTeX command syntax, Environment, CTAN: the Comprehensive TeX Archive Network

Document classes
Document class options, Additional packages, Class and package construction

Fonts
Font styles, Font sizes, Low-level font commands

Layout
\onecolumn, \twocolumn, \flushbottom, \raggedbottom, Page layout parameters, Floats

Sectioning
\part, \chapter, \section, \subsection, \subsubsection, \paragraph, \subparagraph, \appendix, \frontmatter, \mainmatter, \backmatter, \@startsection

Cross references
\label, \pageref, \ref

Environments
abstract, array, center, description, displaymath, document, enumerate, eqnarray, equation, figure, filecontents: Write an external file, flushleft, flushright, itemize, letter environment: writing letters, list, math, minipage, picture, quotation & quote, tabbing, table, tabular, thebibliography, theorem, titlepage, verbatim, verse

Line breaking
\\, \obeycr & \restorecr, \newline, \- (discretionary hyphen), \discretionary (generalized hyphenation point), \fussy & \sloppy, \hyphenation, \linebreak & \nolinebreak

Page breaking
\clearpage & \cleardoublepage, \newpage, \enlargethispage, \pagebreak & \nopagebreak

Footnotes
\footnote, \footnotemark, \footnotetext, Footnotes in section headings, Footnotes in a table, Footnotes of footnotes

Definitions
\newcommand & \renewcommand, \providecommand, \makeatletter & \makeatother, \@ifstar, \newcounter: Allocating a counter, \newlength, \newsavebox, \newenvironment & \renewenvironment, \newtheorem, \newfont, \protect, \ignorespaces & \ignorespacesafterend

Counters
\alph \Alph \arabic \roman \Roman \fnsymbol: Printing counters, \usecounter, \value, \setcounter, \addtocounter, \refstepcounter, \stepcounter, \day & \month & \year

Lengths
Units of length, \setlength, \addtolength, \settodepth, \settoheight, \settowidth

Making paragraphs
\par, \indent & \noindent, \parindent & \parskip, Marginal notes

Math formulas
Subscripts & superscripts, Math symbols, Math functions, Math accents, Over- and Underlining, Spacing in math mode, Math miscellany

Modes
\ensuremath

Page styles
\maketitle, \pagenumbering, \pagestyle, \thispagestyle

Spaces
\enspace & \quad & \qquad, \hspace, \hfill, \hss, \spacefactor, Backslash-space, \ , ~, \thinspace & \negthinspace, \/, \hrulefill & \dotfill, \bigskip & \medskip & \smallskip, \bigbreak & \medbreak & \smallbreak, \strut, \vspace, \vfill, \addvspace

Boxes
\mbox & \makebox, \fbox & \framebox, \parbox, \raisebox, \sbox & \savebox, lrbox, \usebox

Color
color package options, Color models, Commands for color, Define colors, Colored text, Colored boxes, Colored pages

Graphics
graphics package options, graphics package configuration, Commands for graphics, \includegraphics, \rotatebox, \scalebox, \resizebox

Special insertions
Reserved characters, Upper and lower case, Symbols by font position, Text symbols, Accents, Additional Latin letters, \rule, \today

Splitting the input
\endinput, \include & \includeonly, \input

Front/back matter
Table of contents etc., Indexes, Glossaries

Letters
\address, \cc, \closing, \encl, \location, \makelabels, \name, \opening, \ps, \signature, \telephone

Terminal input/output
\typein, \typeout

Command line
Command line options, Command line input, Recovering from errors

Appendix: Document templates
beamer, article, book, ...

Package Documentation

amsfonts
Additional math fonts from AMS.

amsmath
Mathematics package from AMS.

amsthm
Math theorems setting package from AMS.

babel
Multilingual documents.

braket
Dirac braket and set notations.

calc
Simple arithmetic in LaTeX commands.

color
Foreground and background colors.

colortbl
Colored tables.

enumerate
Enumerate with redefinable labels.

geometry
Interface to document dimensions.

glossaries
Create a glossary for your document.

graphicx
Include graphics in your document.

hyperref
Create hyperlinks within your document.

ifthen
Conditional commands.

listings
Provides a listing environment for embedding programming code.

natbib
Additional bibliography and citations styles.

parskip
Paragraphs without indentation.

pgfplots
Create plots in two and three dimensions.

theorem
Theorem environments (like "definition", "lemma", ...) with custom styling.

TikZ & PGF
Graphics and plotting.

transparent
Set transparency for sections in your document.

url
Type urls with the \\url{..} command without escaping them.

xcolor
Enables colored text and more.

Setzer-0.4.4/data/resources/help/latex2e_1.html000066400000000000000000000171321420322575300213270ustar00rootroot00000000000000 About this document (LaTeX2e unofficial reference manual (October 2018))

About this document

This is an unofficial reference manual for the LaTeX2e document preparation system, which is a macro package for the TeX typesetting program (see Overview).

This document’s home page is https://puszcza.gnu.org.ua/software/latexrefman. There you can get the sources, subscribe to the mailing list or read its archives, see other infrastructure, and get the current output in various formats. In particular, the output comes in two web formats. Probably the most convenient one, shown at http://latexref.xyz/, has pages for each topic and so is good for a quick lookup; see also the note there about easy-to-remember links. The other, shown at http://svn.gnu.org.ua/viewvc/latexrefman/trunk/latex2e.html?view=co, has all the information on single page.

In this document, we will mostly just use ‘LaTeX’ rather than ‘LaTeX2e’, since the previous version of LaTeX (2.09) was frozen decades ago.

LaTeX is currently maintained by a group of volunteers (http://latex-project.org). The official documentation written by the LaTeX project is available from their web site. This document is completely unofficial and has not been reviewed by the LaTeX maintainers. Do not send bug reports or anything else about this document to them. Instead, please send all comments to latexrefman@tug.org.

This document is a reference. There is a vast array of other sources of information about LaTeX, at all levels. Here are a few introductions.

http://ctan.org/pkg/latex-doc-ptr

Two pages of recommended references to LaTeX documentation.

http://ctan.org/pkg/first-latex-doc

Writing your first document, with a bit of both text and math.

http://ctan.org/pkg/usrguide

The guide for document authors that is maintained as part of LaTeX. Many other guides by many other people are also available, independent of LaTeX itself; one such is the next item:

http://ctan.org/pkg/lshort

A short introduction to LaTeX, translated to many languages.

http://tug.org/begin.html

Introduction to the TeX system, including LaTeX, with further references.

Setzer-0.4.4/data/resources/help/latex2e_10.html000066400000000000000000000327421420322575300214130ustar00rootroot00000000000000 Page breaking (LaTeX2e unofficial reference manual (October 2018))

Page breaking

Ordinarily LaTeX automatically takes care of breaking output into pages with its usual aplomb. But if you are writing commands, or tweaking the final version of a document, then you may need to understand how to influence its actions.

LaTeX’s algorithm for splitting a document into pages is more complex than just waiting until there is enough material to fill a page and outputting the result. Instead, LaTeX typesets more material than would fit on the page and then chooses a break that is optimal in some way (it has the smallest badness). An example of the advantage of this approach is that if the page has some vertical space that can be stretched or shrunk, such as with rubber lengths between paragraphs, then LaTeX can use that to avoid widow lines (where a new page starts with the last line of a paragraph; LaTeX can squeeze the extra line onto the first page) and orphans (where the first line of paragraph is at the end of a page; LaTeX can stretch the material of the first page so the extra line falls on the second page). Another example is where LaTeX uses available vertical shrinkage to fit on a page not just the header for a new section but also the first two lines of that section.

But LaTeX does not optimize over the entire document’s set of page breaks. So it can happen that the first page break is great but the second one is lousy; to break the current page LaTeX doesn’t look as far ahead as the next page break. So occasionally you may want to influence page breaks while preparing a final version of a document.

See Layout for more material that is relevant to page breaking.


\clearpage & \cleardoublepage

Synopsis:

\clearpage

or

\cleardoublepage

End the current page and output all of the pending floating figures and tables (see Floats). If there are too many floats to fit on the page then LaTeX will put in extra pages containing only floats. In two-sided printing, \cleardoublepage also makes the next page of content a right-hand page, an odd-numbered page, if necessary inserting a blank page. The \clearpage command is robust while \cleardoublepage is fragile (see \protect).

LaTeX’s page breaks are optimized so ordinarily you only use this command in a document body to polish the final version, or inside commands.

The \cleardoublepage command will put in a blank page, but it will have the running headers and footers. To get a really blank page, use this command.

\let\origdoublepage\cleardoublepage
\newcommand{\clearemptydoublepage}{%
  \clearpage
  {\pagestyle{empty}\origdoublepage}%
}

If you want LaTeX’s standard \chapter command to do this then add the line \let\cleardoublepage\clearemptydoublepage.

The command \newpage (see \newpage) also ends the current page, but without clearing pending floats. And, if LaTeX is in two-column mode then \newpage ends the current column while \clearpage and \cleardoublepage end the current page.


\newpage

Synopsis:

\newpage

End the current page. This command is robust (see \protect).

LaTeX’s page breaks are optimized so ordinarily you only use this command in a document body to polish the final version, or inside commands.

While the commands \clearpage and \cleardoublepage also end the current page, in addition they clear pending floats (see \clearpage & \cleardoublepage). And, if LaTeX is in two-column mode then \clearpage and \cleardoublepage end the current page, possibly leaving an empty column, while \newpage only ends the current column.

In contrast with \pagebreak (see \pagebreak & \nopagebreak), the \newpage command will cause the new page to start right where requested. This

Four score and seven years ago our fathers brought forth on this
continent,
\newpage
\noindent a new nation, conceived in Liberty, and dedicated to the
proposition that all men are created equal.

makes a new page start after ‘continent,’ and the cut-off line is not right justified. In addition, \newpage does not vertically stretch out the page, as \pagebreak does.


\enlargethispage

Synopsis, one of:

\enlargethispage{size}
\enlargethispage*{size}

Enlarge the \textheight for the current page. The required argument size must be a rigid length (see Lengths). It may be positive or negative. This command is fragile (see \protect).

A common strategy is to wait until you have the final text of a document, and then pass through it tweaking line and page breaks. This command allows you some page size leeway.

This will allow one extra line on the current page.

\enlargethispage{\baselineskip}

The starred form \enlargesthispage* tries to squeeze the material together on the page as much as possible, for the common use case of getting one more line on the page. This is often used together with an explicit \pagebreak.


\pagebreak & \nopagebreak

Synopses:

\pagebreak
\pagebreak[zero-to-four]

or

\nopagebreak
\nopagebreak[zero-to-four]

Encourage or discourage a page break. The optional zero-to-four is an integer that allows you to soften the request. The default is 4, so that without the optional argument these commands entirely force or prevent the break. But for instance \nopagebreak[1] suggests to LaTeX that another spot might be preferable. The higher the number, the more insistent the request. Both commands are fragile (see \protect).

LaTeX’s page endings are optimized so ordinarily you only use this command in a document body to polish the final version, or inside commands.

If you use these inside a paragraph, they apply to the point following the line in which they appear. So this

Four score and seven years ago our fathers brought forth on this
continent,
\pagebreak
a new nation, conceived in Liberty, and dedicated to the proposition
that all men are created equal.

does not give a page break at ‘continent,’ but instead at ‘nation,’ since that is where LaTeX breaks that line. In addition, with \pagebreak the vertical space on the page is stretched out where possible so that it extends to the normal bottom margin. This can look strange, and if \flushbottom is in effect this can cause you to get ‘Underfull \vbox (badness 10000) has occurred while \output is active’. See \newpage for a command that does not have these effects.

Setzer-0.4.4/data/resources/help/latex2e_11.html000066400000000000000000000450241420322575300214110ustar00rootroot00000000000000 Footnotes (LaTeX2e unofficial reference manual (October 2018))

Footnotes

Place a footnote at the bottom of the current page, as here.

Noël Coward quipped that having to read a footnote is like having
to go downstairs to answer the door, while in the midst of making
love.\footnote{%
  I wouldn't know, I don't read footnotes.}

You can put multiple footnotes on a page. If the footnote text becomes too long then it will flow to the next page.

You can also produce footnotes by combining the \footnotemark and the \footnotetext commands, which is useful in special circumstances.

To make bibliographic references come out as footnotes you need to include a bibliographic style with that behavior (see Using BibTeX).


\footnote

Synopsis, one of:

\footnote{text}
\footnote[number]{text}

Place a footnote text at the bottom of the current page.

There are over a thousand footnotes in Gibbon's 
\textit{Decline and Fall of the Roman Empire}.\footnote{%
  After reading an early version with endnotes David Hume complained, 
  ``One is also plagued with his Notes, according to the present Method 
  of printing the Book'' and suggested that they ``only to be printed 
  at the Margin or the Bottom of the Page.''}

The optional argument number allows you to specify the number of the footnote. If you use this then LaTeX does not increment the footnote counter.

By default, LaTeX uses arabic numbers as footnote markers. Change this with something like \renewcommand{\thefootnote}{\fnsymbol{footnote}}, which uses a sequence of symbols (see \alph \Alph \arabic \roman \Roman \fnsymbol). To make this change global put that in the preamble. If you make the change local then you may want to reset the counter with \setcounter{footnote}{0}.

LaTeX determines the spacing of footnotes with two parameters.

\footnoterule

Produces the rule separating the main text on a page from the page’s footnotes. Default dimensions in the standard document classes (except slides, where it does not appear) is: vertical thickness of 0.4pt, and horizontal size of 0.4\columnwidth long. Change the rule with something like this.

\renewcommand{\footnoterule}{% Kerns avoid vertical space
  \kern -3pt                         % This -3 is negative
  \hrule width \textwidth height 1pt % of the sum of this 1
  \kern 2pt}                         % and this 2
\footnotesep

The height of the strut placed at the beginning of the footnote (see \strut). By default, this is set to the normal strut for \footnotesize fonts (see Font sizes), therefore there is no extra space between footnotes. This is ‘6.65pt’ for ‘10pt’, ‘7.7pt’ for ‘11pt’, and ‘8.4pt’ for ‘12pt’. Change it as with \setlength{\footnotesep}{11pt}.

The \footnote command is fragile (see \protect).

LaTeX’s default puts many restrictions on where you can use a \footnote; for instance, you cannot use it in an argument to a sectioning command such as \chapter (it can only be used in outer paragraph mode; see Modes). There are some workarounds; see following sections.

In a minipage environment the \footnote command uses the mpfootnote counter instead of the footnote counter, so they are numbered independently. They are shown at the bottom of the environment, not at the bottom of the page. And by default they are shown alphabetically. See minipage and Footnotes in a table.


\footnotemark

Synopsis, one of:

\footnotemark
\footnotemark[number]

Put the current footnote mark in the text. To specify associated text for the footnote see \footnotetext. The optional argument number causes the command to use that number to determine the footnote mark. This command can be used in inner paragraph mode (see Modes).

If you use \footnotemark without the optional argument then it increments the footnote counter but if you use the optional number then it does not. The next example produces several consecutive footnote markers referring to the same footnote.

The first theorem\footnote{Due to Gauss.} 
and the second theorem\footnotemark[\value{footnote}] 
and the third theorem.\footnotemark[\value{footnote}]

If there are intervening footnotes then you must remember the value of the common mark. This example gives the same institutional affiliation to both the first and third authors (\thanks is a version of footnote), by-hand giving the number of the footnote.

\title{A Treatise on the Binomial Theorem}
\author{J Moriarty\thanks{University of Leeds} 
  \and A C Doyle\thanks{Durham University} 
  \and S Holmes\footnotemark[1]}
\begin{document}
\maketitle

This uses a counter to remember the footnote number. The third sentence is followed by the same footnote marker as the first.

\newcounter{footnoteValueSaver}
All babies are illogical.\footnote{%
  Lewis Carroll.}\setcounter{footnoteValueSaver}{\value{footnote}}
Nobody is despised who can manage a crocodile.\footnote{%
  Captain Hook.}
Illogical persons are despised.\footnotemark[\value{footnoteValueSaver}]
Therefore, anyone who can manage a crocodile is not a baby.

This example accomplishes the same by using the package cleveref.

\usepackage{cleveref}[2012/02/15]   % in preamble 
\crefformat{footnote}{#2\footnotemark[#1]#3}
...
The theorem is from Evers.\footnote{\label{fn:TE}Tinker, Evers, 1994.}
The corollary is from Chance.\footnote{Evers, Chance, 1990.}
But the key lemma is from Tinker.\cref{fn:TE}

It will work with the package hyperref.


\footnotetext

Synopsis, one of:

\footnotetext{text}
\footnotetext[number]{text}

Place text at the bottom of the page as a footnote. It pairs with \footnotemark (see \footnotemark) and can come anywhere after that command, but must appear in outer paragraph mode (see Modes). The optional argument number changes the number of the footnote mark.

See \footnotemark and Footnotes in a table for usage examples.


Footnotes in section headings

Putting a footnote in a section heading, as in:

\section{Full sets\protect\footnote{This material due to ...}}

causes the footnote to appear at the bottom of the page where the section starts, as usual, but also at the bottom of the table of contents, where it is not likely to be desired. The simplest way to have it not appear on the table of contents is to use the optional argument to \section

\section[Please]{Please\footnote{%
  Don't footnote in chapter and section headers!}}

No \protect is needed in front of \footnote here because what gets moved to the table of contents is the optional argument.


Footnotes in a table

Inside a tabular or array environment the \footnote command does not work; there is a footnote mark in the table cell but the footnote text does not appear. The solution is to use a minipage environment as here (see minipage).

\begin{center}
  \begin{minipage}{\textwidth} \centering
     \begin{tabular}{l|l}
       \textsc{Ship}           &\textsc{Book} \\ \hline 
       \textit{HMS Sophie}     &Master and Commander  \\ 
       \textit{HMS Polychrest} &Post Captain  \\  
       \textit{HMS Lively}     &Post Captain \\
       \textit{HMS Surprise}   &A number of books\footnote{%
                                  Starting with HMS Surprise.}
     \end{tabular}
  \end{minipage}                              
\end{center}

Inside a minipage, footnote marks are lowercase letters. Change that with something like \renewcommand{\thempfootnote}{\arabic{mpfootnote}} (see \alph \Alph \arabic \roman \Roman \fnsymbol).

The footnotes in the prior example appear at the bottom of the minipage. To have them appear at the bottom of the main page, as part of the regular footnote sequence, use the \footnotemark and \footnotetext pair and make a new counter.

\newcounter{mpFootnoteValueSaver}
\begin{center}
  \begin{minipage}{\textwidth}
    \setcounter{mpFootnoteValueSaver}{\value{footnote}} \centering
     \begin{tabular}{l|l}
       \textsc{Woman}             &\textsc{Relationship} \\ \hline 
       Mona                       &Attached\footnotemark  \\ 
       Diana Villiers             &Eventual wife  \\  
       Christine Hatherleigh Wood &Fiance\footnotemark 
     \end{tabular}
  \end{minipage}%  percent sign keeps footnote text close to minipage
  \stepcounter{mpFootnoteValueSaver}%
    \footnotetext[\value{mpFootnoteValueSaver}]{%
      Little is known other than her death.}%
  \stepcounter{mpFootnoteValueSaver}%
    \footnotetext[\value{mpFootnoteValueSaver}]{%
      Relationship is unresolved in XXI.}
\end{center}

For a floating table environment (see table), use the tablefootnote package.

\usepackage{tablefootnote}  % in preamble
   ...
\begin{table}
  \centering
     \begin{tabular}{l|l}
     \textsc{Date}  &\textsc{Campaign} \\ \hline 
     1862           &Fort Donelson \\ 
     1863           &Vicksburg     \\  
     1865           &Army of Northern Virginia\tablefootnote{%
                      Ending the war.}
     \end{tabular}
    \caption{Forces captured by US Grant}
\end{table}

The footnote appears at the page bottom and is numbered in sequence with other footnotes.


Footnotes of footnotes

Particularly in the humanities, authors can have multiple classes of footnotes, including having footnotes of footnotes. The package bigfoot extends LaTeX’s default footnote mechanism in many ways, including allow these two, as in this example.

\usepackage{bigfoot}    % in preamble
\DeclareNewFootnote{Default}
\DeclareNewFootnote{from}[alph]   % create class \footnotefrom{}
 ...
The third theorem is a partial converse of the 
second.\footnotefrom{%
  First noted in Wilson.\footnote{Second edition only.}}
Setzer-0.4.4/data/resources/help/latex2e_12.html000066400000000000000000001322211420322575300214060ustar00rootroot00000000000000 Definitions (LaTeX2e unofficial reference manual (October 2018))

Definitions

LaTeX has support for making new commands of many different kinds.


\newcommand & \renewcommand

Synopses, one of:

\newcommand{\cmd}{defn}
\newcommand{\cmd}[nargs]{defn}
\newcommand{\cmd}[nargs][optargdefault]{defn}
\newcommand*{\cmd}{defn}
\newcommand*{\cmd}[nargs]{defn}
\newcommand*{\cmd}[nargs][optargdefault]{defn}

or one of these.

\renewcommand{\cmd}[nargs]{defn}
\renewcommand{\cmd}[nargs]{defn}
\renewcommand{\cmd}[nargs][optargdefault]{defn}
\renewcommand*{\cmd}{defn}
\renewcommand*{\cmd}[nargs]{defn}
\renewcommand*{\cmd}[nargs][optargdefault]{defn}

Define or redefine a command. See also the discussion of \DeclareRobustCommand in Class and package commands. The starred form of these two requires that the arguments not contain multiple paragraphs of text (in plain TeX terms that it not be \long).

These are the parameters:

cmd

Required; the command name. It must begin with a backslash, \, and must not begin with the four letter string \end. For \newcommand, it must not be already defined. For \renewcommand, this name must already be defined.

nargs

Optional; an integer from 0 to 9, specifying the number of arguments that the command takes, including any optional argument. Omitting this argument is the same as specifying 0, meaning that the command has no arguments. If you redefine a command, the new version can have a different number of arguments than the old version.

optargdefault

Optional; if this argument is present then the first argument of \cmd is optional, with default value optargdefault (which may be the empty string). If this argument is not present then \cmd does not take an optional argument.

That is, if \cmd is used with square brackets, as in \cmd[optval]{...}..., then within defn the parameter #1 is set to the value of optval. On the other hand, if \cmd is called without the square brackets then within defn the parameter #1 is set to the value of optargdefault. In either case, the required arguments start with #2.

Omitting [optargdefault] is different from having the square brackets with no contents, as in []. The former sets #1 to the value of optargdefault; the latter sets #1 to the empty string.

defn

Required; the text to be substituted for every occurrence of \cmd. The parameters #1, #2, ... #nargs are replaced by the values that you supply when you call the command (or by the default value if there is an optional argument and you don’t exercise the option).

TeX ignores spaces in the source following an alphabetic control sequence, as in ‘\cmd ’. If you actually want a space there, one solution is to type {} after the command (‘\cmd{} ’, and another solution is to use an explicit control space (‘\cmd\ ’).

A simple example of defining a new command: \newcommand{\RS}{Robin Smith} results in \RS being replaced by the longer text. Redefining an existing command is similar: \renewcommand{\qedsymbol}{{\small QED}}.

If you try to define a command and the name has already been used then you get something like ‘LaTeX Error: Command \fred already defined. Or name \end... illegal, see p.192 of the manual’. If you try to redefine a command and the name has not yet been used then you get something like ‘LaTeX Error: \hank undefined’.

Here the first command definition has no arguments, and the second has one required argument.

\newcommand{\student}{Ms~O'Leary}
\newcommand{\defref}[1]{Definition~\ref{#1}}

Use the first as in I highly recommend \student{} to you. The second has a variable, so that \defref{def:basis} expands to Definition~\ref{def:basis}, which ultimately expands to something like ‘Definition~3.14’.

Similarly, but with two required arguments: \newcommand{\nbym}[2]{$#1 \times #2$} is invoked as \nbym{2}{k}.

This example has an optional argument.

\newcommand{\salutation}[1][Sir or Madam]{Dear #1:}

Then \salutation gives ‘Dear Sir or Madam:’ while \salutation[John] gives ‘Dear John:’. And \salutation[] gives ‘Dear :’.

This example has an optional argument and two required arguments.

\newcommand{\lawyers}[3][company]{#2, #3, and~#1}
I employ \lawyers[Howe]{Dewey}{Cheatem}.

The output is ‘I employ Dewey, Cheatem, and Howe’. The optional argument, the Howe, is associated with #1, while Dewey and Cheatem are associated with #2 and #3. Because of the optional argument, \lawyers{Dewey}{Cheatem} will give the output ‘I employ Dewey, Cheatem, and company’.

The braces around defn do not define a group, that is, they do not delimit the scope of the result of expanding defn. For example, with \newcommand{\shipname}[1]{\it #1}, in this sentence,

The \shipname{Monitor} met the \shipname{Merrimac}.

the words ‘met the’ would incorrectly be in italics. The solution is to put another pair of braces inside the definition: \newcommand{\shipname}[1]{{\it #1}}.


\providecommand

Synopses, one of:

\providecommand{cmd}{defn}
\providecommand{cmd}[nargs]{defn}
\providecommand{cmd}[nargs][optargdefault]{defn}
\providecommand*{cmd}{defn}
\providecommand*{cmd}[nargs]{defn}
\providecommand*{cmd}[nargs][optargdefault]{defn}

Defines a command, as long as no command of this name already exists. If no command of this name already exists then this has the same effect as \newcommand. If a command of this name already exists then this definition does nothing. This is particularly useful in a file that may be loaded more than once, such as a style file. See \newcommand & \renewcommand for the description of the arguments.

This example

\providecommand{\myaffiliation}{Saint Michael's College}
\providecommand{\myaffiliation}{Saint Michael's College}
From \myaffiliation.

outputs ‘From Saint Michael's College’. Unlike \newcommand, the repeated use of \providecommand does not give an error.


\makeatletter & \makeatother

Synopsis:

\makeatletter
  ... definition of commands with @ in their name ..
\makeatother

Use this pair when you redefine LaTeX commands that are named with an at-sign character ‘@’. The \makeatletter declaration makes the at-sign character have the category code of a letter, code 11. The \makeatother declaration sets the category code of the at-sign to code 12, its default value.

As TeX reads characters, it assigns each one a category code, or catcode. For instance, it assigns the backslash character ‘\’ the catcode 0. Command names consist of a category 0 character, ordinarily backslash, followed by letters, category 11 characters (except that a command name can also consist of a category 0 character followed by a single non-letter symbol).

LaTeX’s source code has the convention that some commands use @ in their name. These commands are mainly intended for package or class writers. The convention prevents authors who are just using a package or class from accidentally replacing such a command with one of their own, because by default the at-sign has catcode 12.

The pair \makeatletter and \makeatother changes the default code and then changes it back. Use them inside a .tex file, in the preamble, when you are defining or redefining commands named with @, by having them surround your definition. Don’t use these inside .sty or .cls files since the \usepackage and \documentclass commands already arrange that the at-sign has the character code of a letter, catcode 11.

For a comprehensive list of macros with an at-sign in their names see http://ctan.org/pkg/macros2e.

In this example the class file has a command \thesis@universityname that the user wants to change. These three lines should go in the preamble, before the \begin{document}.

\makeatletter
\renewcommand{\thesis@universityname}{Saint Michael's College}
\makeatother

\@ifstar

Synopsis:

\newcommand{\mycmd}{\@ifstar{\mycmd@star}{\mycmd@nostar}}
\newcommand{\mycmd@nostar}[nostar-num-args]{nostar-body} 
\newcommand{\mycmd@star}[star-num-args]{star-body}

Many standard LaTeX environments or commands have a variant with the same name but ending with a star character *, an asterisk. Examples are the table and table* environments and the \section and \section* commands.

When defining environments, following this pattern is straightforward because \newenvironment and \renewenvironment allow the environment name to contain a star. For commands the situation is more complex. As in the synopsis above, there will be a user-called command, given above as \mycmd, which peeks ahead to see if it is followed by a star. For instance, LaTeX does not really have a \section* command; instead, the \section command peeks ahead. This command does not accept arguments but instead expands to one of two commands that do accept arguments. In the synopsis these two are \mycmd@nostar and \mycmd@star. They could take the same number of arguments or a different number, or no arguments at all. As always, in a LaTeX document a command using at-sign @ must be enclosed inside a \makeatletter ... \makeatother block (see \makeatletter & \makeatother).

This example of \@ifstar defines the command \ciel and a variant \ciel*. Both have one required argument. A call to \ciel{night} will return "starry night sky" while \ciel*{blue} will return "starry not blue sky".

\newcommand*{\ciel@unstarred}[1]{starry #1 sky}
\newcommand*{\ciel@starred}[1]{starry not #1 sky}
\newcommand*{\ciel}{\@ifstar{\ciel@starred}{\ciel@unstarred}}

In the next example, the starred variant takes a different number of arguments than the unstarred one. With this definition, Agent 007’s ``My name is \agentsecret*{Bond}, \agentsecret{James}{Bond}.'' is equivalent to entering the commands ``My name is \textsc{Bond}, \textit{James} textsc{Bond}.''

\newcommand*{\agentsecret@unstarred}[2]{\textit{#1} \textsc{#2}}
\newcommand*{\agentsecret@starred}[1]{\textsc{#1}}
\newcommand*{\agentsecret}{%
  \@ifstar{\agentsecret@starred}{\agentsecret@unstarred}}

There are two sometimes more convenient ways to accomplish the work of \@ifstar. The suffix package allows the construct \newcommand\mycommand{unstarred version} followed by \WithSuffix\newcommand\mycommand*{starred version}. And LaTeX3 has the xparse package that allows this code.

\NewDocumentCommand\foo{s}{\IfBooleanTF#1
  {starred version}%
  {unstarred version}% 
  }

\newcounter: Allocating a counter

Synopsis, one of:

\newcounter{countername}
\newcounter{countername}[supercounter]

Globally defines a new counter named countername and initialize it to zero (see Counters).

The name countername must consist of letters only. It does not begin with a backslash. This name must not already be in use by another counter.

When you use the optional argument [supercounter] then the counter countername will be reset to zero whenever supercounter is incremented. For example, ordinarily subsection is numbered within section so that any time you increment section, either with \stepcounter (see \stepcounter) or \refstepcounter (see \refstepcounter), then LaTeX will reset subsection to zero.

This example

\newcounter{asuper}  \setcounter{asuper}{1}
\newcounter{asub}[asuper] \setcounter{asub}{3}   % Note `asuper'
The value of asuper is \arabic{asuper} and of asub is \arabic{asub}.
\stepcounter{asuper}
Now asuper is \arabic{asuper} while asub is \arabic{asub}.

produces ‘The value of asuper is 1 and that of asub is 3’ and ‘Now asuper is 2 while asub is 0’.

If the counter already exists, for instance by entering asuper twice, then you get something like ‘LaTeX Error: Command \c@asuper already defined. Or name \end... illegal, see p.192 of the manual.’.

If you use the optional argument then the super counter must already exist. Entering \newcounter{jh}[lh] when lh is not a defined counter will get you ‘LaTeX Error: No counter 'lh' defined.


\newlength

Synopsis:

\newlength{arg}

Allocate a new length register (see Lengths). The required argument arg must begin with a backslash, \. The new register holds rubber lengths such as 72.27pt or 1in plus.2in minus.1in (a LaTeX length register is what plain TeX calls a skip register). The initial value is zero. The control sequence \arg must not be already defined.

An example:

\newlength{\graphichgt}

If you forget the backslash then you get ‘Missing control sequence inserted’. If the command sequence already exists then you get something like ‘LaTeX Error: Command \graphichgt already defined. Or name \end... illegal, see p.192 of the manual’.


\newsavebox

Synopsis:

\newsavebox{\cmd}

Define \cmd, the string consisting of a backslash followed by cmd, to refer to a new bin for storing material. These bins hold material that has been typeset, to use multiple times or to measure or manipulate (see Boxes). The bin name \cmd is required, must start with a backslash, \, and must not already be a defined command. This command is fragile (see \protect).

This allocates a bin and then puts typeset material into it.

\newsavebox{\logobox}
\savebox{\logobox}{LoGo}
Our logo is \usebox{\logobox}. 

The output is ‘Our logo is LoGo’.

If there is an already defined bin then you get something like ‘LaTeX Error: Command \logobox already defined. Or name \end... illegal, see p.192 of the manual’.

The allocation of a box is global.


\newenvironment & \renewenvironment

Synopses, one of:

\newenvironment{env}{begdef}{enddef}
\newenvironment{env}[nargs]{begdef}{enddef}
\newenvironment{env}[nargs][optargdefault]{begdef}{enddef}
\newenvironment*{env}{begdef}{enddef}
\newenvironment*{env}[nargs]{begdef}{enddef}
\newenvironment*{env}[nargs][optargdefault]{begdef}{enddef}

or one of these.

\renewenvironment{env}{begdef}{enddef}
\renewenvironment{env}[nargs]{begdef}{enddef}
\renewenvironment{env}[nargs][optargdefault]{begdef}{enddef}
\renewenvironment*{env}{begdef}{enddef}
\renewenvironment*{env}[nargs]{begdef}{enddef}
\renewenvironment*{env}[nargs][optargdefault]{begdef}{enddef}

Define or redefine the environment env, that is, create the construct \begin{env} ... body ... \end{env}.

The starred form of these commands requires that the arguments not contain multiple paragraphs of text. However, the body of these environments can contain multiple paragraphs.

env

Required; the environment name. It consists only of letters or the * character, and thus does not begin with backslash, \. It must not begin with the string end. For \newenvironment, the name env must not be the name of an already existing environment, and also the command \env must be undefined. For \renewenvironment, env must be the name of an existing environment.

nargs

Optional; an integer from 0 to 9 denoting the number of arguments of that the environment takes. When you use the environment these arguments appear after the \begin, as in \begin{env}{arg1} ... {argn}. Omitting this is equivalent to setting it to 0; the environment will have no arguments. When redefining an environment, the new version can have a different number of arguments than the old version.

optargdefault

Optional; if this is present then the first argument of the defined environment is optional, with default value optargdefault (which may be the empty string). If this is not in the definition then the environment does not take an optional argument.

That is, when optargdefault is present in the definition of the environment then you can start the environment with square brackets, as in \begin{env}[optval]{...} ... \end{env}. In this case, within begdefn the parameter #1 is set to the value of optval. If you call \begin{env} without square brackets, then within begdefn the parameter #1 is set to the value of the default optargdefault. In either case, any required arguments start with #2.

Omitting [myval] in the call is different than having the square brackets with no contents, as in []. The former results in #1 expanding to optargdefault; the latter results in #1 expanding to the empty string.

begdef

Required; the text expanded at every occurrence of \begin{env}. Within begdef, the parameters #1, #2, ... #nargs, are replaced by the values that you supply when you call the environment; see the examples below.

enddef

Required; the text expanded at every occurrence of \end{env}. This may not contain any parameters, that is, you cannot use #1, #2, etc., here (but see the final example below).

All environments, that is to say the begdef code, the environment body, and the enddef code, are processed within a group. Thus, in the first example below, the effect of the \small is limited to the quote and does not extend to material following the environment.

If you try to define an environment and the name has already been used then you get something like ‘LaTeX Error: Command \fred already defined. Or name \end... illegal, see p.192 of the manual’. If you try to redefine an environment and the name has not yet been used then you get something like ‘LaTeX Error: Environment hank undefined.’.

This example gives an environment like LaTeX’s quotation except that it will be set in smaller type.

\newenvironment{smallquote}{%
  \small\begin{quotation}
}{%
  \end{quotation}
}

This has an argument, which is set in boldface at the start of a paragraph.

\newenvironment{point}[1]{%
  \noindent\textbf{#1}
}{%
}

This one shows the use of a optional argument; it gives a quotation environment that cites the author.

\newenvironment{citequote}[1][Shakespeare]{%
  \begin{quotation}
  \noindent\textit{#1}: 
}{%
  \end{quotation}
}

The author’s name is optional, and defaults to ‘Shakespeare’. In the document, use the environment like this.

\begin{citequote}[Lincoln]
  ...
\end{citequote}

The final example shows how to save the value of an argument to use in enddef, in this case in a box (see \sbox & \savebox).

\newsavebox{\quoteauthor}
\newenvironment{citequote}[1][Shakespeare]{%
  \sbox\quoteauthor{#1}%
  \begin{quotation} 
}{%
  \hspace{1em plus 1fill}---\usebox{\quoteauthor}
  \end{quotation}
}

\newtheorem

Synopses:

\newtheorem{name}{title}
\newtheorem{name}{title}[numbered_within]
\newtheorem{name}[numbered_like]{title}

Define a new theorem-like environment. You can specify one of numbered_within and numbered_like, or neither, but not both.

The first form, \newtheorem{name}{title}, creates an environment that will be labelled with title; see the first example below.

The second form, \newtheorem{name}{title}[numbered_within], creates an environment whose counter is subordinate to the existing counter numbered_within, so this counter will be reset when numbered_within is reset. See the second example below.

The third form \newtheorem{name}[numbered_like]{title}, with optional argument between the two required arguments, creates an environment whose counter will share the previously defined counter numbered_like. See the third example.

This command creates a counter named name. In addition, unless the optional argument numbered_like is used, inside of the theorem-like environment the current \ref value will be that of \thenumbered_within (see \ref).

This declaration is global. It is fragile (see \protect).

Arguments:

name

The name of the environment. It is a string of letters. It must not begin with a backslash, \. It must not be the name of an existing environment, and the command name \name must not already be defined.

title

The text to be printed at the beginning of the environment, before the number. For example, ‘Theorem’.

numbered_within

Optional; the name of an already defined counter, usually a sectional unit such as chapter or section. When the numbered_within counter is reset then the name environment’s counter will also be reset.

If this optional argument is not used then the command \thename is set to \arabic{name}.

numbered_like

Optional; the name of an already defined theorem-like environment. The new environment will be numbered in sequence with numbered_like.

Without any optional arguments the environments are numbered sequentially. The example below has a declaration in the preamble that results in ‘Definition 1’ and ‘Definition 2’ in the output.

\newtheorem{defn}{Definition}
\begin{document}
\section{...}
\begin{defn}
  First def 
\end{defn}

\section{...}
\begin{defn}
  Second def
\end{defn}

This example has the same document body as the prior one. But here \newtheorem’s optional argument numbered_within is given as section, so the output is like ‘Definition 1.1’ and ‘Definition 2.1’.

\newtheorem{defn}{Definition}[section]
\begin{document}
\section{...}
\begin{defn}
  First def 
\end{defn}

\section{...}
\begin{defn}
  Second def
\end{defn}

In the next example there are two declarations in the preamble, the second of which calls for the new thm environment to use the same counter as defn. It gives ‘Definition 1.1’, followed by ‘Theorem 2.1’ and ‘Definition 2.2’.

\newtheorem{defn}{Definition}[section]
\newtheorem{thm}[defn]{Theorem}
\begin{document}
\section{...}
\begin{defn}
  First def 
\end{defn}

\section{...}
\begin{thm}
  First thm
\end{thm}

\begin{defn}
  Second def
\end{defn}

\newfont

This command is obsolete. This description is here only to help with old documents. New documents should define fonts in families through the New Font Selection Scheme which allows you to, for example, associate a boldface with a roman (see Fonts).

Synopsis:

\newfont{\cmd}{font description}

Define a command \cmd that will change the current font. The control sequence must not already be defined. It must begin with a backslash, \.

The font description consists of a fontname and an optional at clause. LaTeX will look on your system for a file named fontname.tfm. The at clause can have the form either at dimen or scaled factor, where a factor of ‘1000’ means no scaling. For LaTeX’s purposes, all this does is scale all the character and other font dimensions relative to the font’s design size, which is a value defined in the .tfm file.

This defines two equivalent fonts and typesets a few characters in each.

\newfont{\testfontat}{cmb10 at 11pt}
\newfont{\testfontscaled}{cmb10 scaled 1100}
\testfontat abc
\testfontscaled abc

\protect

All LaTeX commands are either fragile or robust. A fragile command can break when it is used in the argument to certain other commands. Commands that contain data that LaTeX writes to an auxiliary file and re-reads later are fragile. This includes material that goes into a table of contents, list of figures, list of tables, etc. Fragile commands also include line breaks, any command that has an optional argument, and many more. To prevent such commands from breaking, one solution is to preceded them with the command \protect.

For example, when LaTeX runs the \section{section name} command it writes the section name text to the .aux auxiliary file, moving it there for use elsewhere in the document such as in the table of contents. Any argument that is internally expanded by LaTeX without typesetting it directly is referred to as a moving argument. A command is fragile if it can expand during this process into invalid TeX code. Some examples of moving arguments are those that appear in the \caption{...} command (see figure), in the \thanks{...} command (see \maketitle), and in @-expressions in the tabular and array environments (see tabular).

If you get strange errors from commands used in moving arguments, try preceding it with \protect. Every fragile commands must be protected with their own \protect.

Although usually a \protect command doesn’t hurt, length commands are robust and should not be preceded by a \protect command. Nor can a \protect command be used in the argument to \addtocounter or \setcounter command.

In this example the \caption command gives a mysterious error about an extra curly brace. Fix the problem by preceding each \raisebox command with \protect.

\begin{figure}
  ...
  \caption{Company headquarters of A\raisebox{1pt}{B}\raisebox{-1pt}{C}}
\end{figure}

In the next example the \tableofcontents command gives an error because the \(..\) in the section title expands to illegal TeX in the .toc file. You can solve this by changing \(..\) to \protect\(..\protect\).

\begin{document}
\tableofcontents
...
\section{Einstein's \( e=mc^2 \)}
...

\ignorespaces & \ignorespacesafterend

Synopsis:

\ignorespaces

or

\ignorespacesafterend

Both commands cause LaTeX to ignore spaces after the end of the command up until the first non-space character. The first is a command from Plain TeX, and the second is LaTeX-specific.

The ignorespaces is often used when defining commands via \newcommand, or \newenvironment, or \def. The example below illustrates. It allows a user to show the points values for quiz questions in the margin but it is inconvenient because, as shown in the enumerate list, users must not put any space between the command and the question text.

\newcommand{\points}[1]{\makebox[0pt]{\makebox[10em][l]{#1~pts}}
\begin{enumerate} 
  \item\points{10}no extra space output here
  \item\points{15} extra space between the number and the `extra'
\end{enumerate} 

The solution is to change to this.

\newcommand{\points}[1]{%
  \makebox[0pt]{\makebox[10em][l]{#1~pts}}\ignorespaces}

A second example shows spaces being removed from the front of text. The commands below allow a user to uniformly attach a title to names. But, as given, if a title accidentally starts with a space then \fullname will reproduce that.

\makeatletter
\newcommand{\honorific}[1]{\def\@honorific{#1}} % remember title
\newcommand{\fullname}[1]{\@honorific~#1}       % put title before name
\makeatother
\begin{tabular}{|l|}
\honorific{Mr/Ms}  \fullname{Jones} \\  % no extra space here
\honorific{ Mr/Ms} \fullname{Jones}     % extra space before title
\end{tabular}

To fix this, change to \newcommand{\fullname}[1]{\ignorespaces\@honorific~#1}.

The \ignorespaces is also often used in a \newenvironment at the end of the begin clause, that is, as part of the second argument, as in \begin{newenvironment}{env name}{... \ignorespaces}{...}.

To strip spaces off the end of an environment use \ignorespacesafterend. An example is that this will show a much larger vertical space between the first and second environments than between the second and third.

\newenvironment{eq}{\begin{equation}}{\end{equation}}
\begin{eq}
e=mc^2
\end{eq}
\begin{equation}
F=ma
\end{equation}
\begin{equation}
E=IR
\end{equation}

Putting a comment character % immediately after the \end{eq} will make the vertical space disappear, but that is inconvenient. The solution is to change to \newenvironment{eq}{\begin{equation}}{\end{equation}\ignorespacesafterend}.

Setzer-0.4.4/data/resources/help/latex2e_13.html000066400000000000000000000426631420322575300214210ustar00rootroot00000000000000 Counters (LaTeX2e unofficial reference manual (October 2018))

Counters

Everything LaTeX numbers for you has a counter associated with it. The name of the counter is often the same as the name of the environment or command associated with the number, except that the counter’s name has no backslash \. Thus, associated with the \chapter command is the chapter counter that keeps track of the chapter number.

Below is a list of the counters used in LaTeX’s standard document classes to control numbering.

part            paragraph       figure          enumi
chapter         subparagraph    table           enumii
section         page            footnote        enumiii
subsection      equation        mpfootnote      enumiv
subsubsection

The mpfootnote counter is used by the \footnote command inside of a minipage (see minipage). The counters enumi through enumiv are used in the enumerate environment, for up to four levels of nesting (see enumerate).

Counters can have any integer value but they are typically positive.

New counters are created with \newcounter. See \newcounter.


\alph \Alph \arabic \roman \Roman \fnsymbol: Printing counters

Print the value of a counter, in a specified style. For instance, if the counter counter has the value 1 then a \alph{counter} in your source will result in a lowercase letter a appearing in the output.

All of these commands take a single counter as an argument, for instance, \alph{enumi}. Note that the counter name does not start with a backslash.

\alph{counter}

Print the value of counter in lowercase letters: ‘a’, ‘b’, ... If the counter’s value is less than 1 or more than 26 then you get ‘LaTeX Error: Counter too large.

\Alph{counter}

Print in uppercase letters: ‘A’, ‘B’, ... If the counter’s value is less than 1 or more than 26 then you get ‘LaTeX Error: Counter too large.

\arabic{counter}

Print in Arabic numbers such as ‘5’ or ‘-2’.

\roman{counter}

Print in lowercase roman numerals: ‘i’, ‘ii’, ... If the counter’s value is less than 1 then you get no warning or error but LaTeX does not print anything in the output.

\Roman{counter}

Print in uppercase roman numerals: ‘I’, ‘II’, ... If the counter’s value is less than 1 then you get no warning or error but LaTeX does not print anything in the output.

\fnsymbol{counter}

Prints the value of counter using a sequence of nine symbols that are traditionally used for labeling footnotes. The value of counter should be between 1 and 9, inclusive. If the counter’s value is less than 0 or more than 9 then you get ‘LaTeX Error: Counter too large’, while if it is 0 then you get no error or warning but LaTeX does not output anything.

Here are the symbols:

NumberNameCommandSymbol
1asterisk\ast*
2dagger\dagger
3ddagger\ddagger
4section-sign\S§
5paragraph-sign\P
6double-vert\parallel
7double-asterisk\ast\ast**
8double-dagger\dagger\dagger††
9double-ddagger\ddagger\ddagger‡‡

\usecounter

Synopsis:

\usecounter{counter}

Used in the second argument of the list environment (see list), this declares that list items will be numbered by counter. It initializes counter to zero, and arranges that when \item is called without its optional argument then counter is incremented by \refstepcounter, making its value be the current ref value (see \ref). This command is fragile (see \protect).

Put in the document preamble, this example makes a new list environment enumerated with testcounter:

\newcounter{testcounter}
\newenvironment{test}{%
  \begin{list}{}{%
    \usecounter{testcounter}
  }
}{%
  \end{list}
}

\value

Synopsis:

\value{counter}

Expands to the value of the counter counter. (Note that the name of a counter does not begin with a backslash.)

This example outputs ‘Test counter is 6. Other counter is 5.’.

\newcounter{test} \setcounter{test}{5}
\newcounter{other} \setcounter{other}{\value{test}}
\addtocounter{test}{1}

Test counter is \arabic{test}.
Other counter is \arabic{other}.

The \value command is not used for typesetting the value of the counter. For that, see \alph \Alph \arabic \roman \Roman \fnsymbol.

It is often used in \setcounter or \addtocounter but \value can be used anywhere that LaTeX expects a number, such as in \hspace{\value{foo}\parindent}. It must not be preceded by \protect (see \protect).

This example inserts \hspace{4\parindent}.

\setcounter{myctr}{3} \addtocounter{myctr}{1}
\hspace{\value{myctr}\parindent}

\setcounter

Synopsis:

\setcounter{counter}{value}

Globally set the counter counter to have the value of the value argument, which must be an integer. Thus, you can set a counter’s value as \setcounter{section}{5}. Note that the counter name does not start with a backslash.

In this example if the counter theorem has value 12 then the second line will print ‘XII’.

\setcounter{exercise}{\value{theorem}}
Here it is in Roman: \Roman{exercise}.

\addtocounter

Synopsis:

\addtocounter{counter}{value 

Globally increment counter by the amount specified by the value argument, which may be negative.

In this example the section value appears as ‘VII’.

\setcounter{section}{5}
\addtocounter{section}{2}
Here it is in Roman: \Roman{section}.

\refstepcounter

Synopsis:

\refstepcounter{counter}

Globally increments the value of counter by one, as does \stepcounter (see \stepcounter). The difference is that this command resets the value of any counter numbered within it. (For the definition of “counters numbered within”, see \newcounter.)

In addition, this command also defines the current \ref value to be the result of \thecounter.

While the counter value is set globally, the \ref value is set locally, i.e., inside the current group.


\stepcounter

Synopsis:

\stepcounter{counter}

Globally adds one to counter and resets all counters numbered within it. (For the definition of “counters numbered within”, see \newcounter.)

This command differs from \refstepcounter in that this one does not influence references — it does not define the current \ref value to be the result of \thecounter (see \refstepcounter).


\day & \month & \year

LaTeX defines the counter \day for the day of the month (nominally with value between 1 and 31), \month for the month of the year (nominally with value between 1 and 12), and year \year. When TeX starts up, they are set from the current values on the system. The related command \today produces a string representing the current day (see \today).

They counters are not updated as the job progresses so in principle they could be incorrect by the end. In addition, TeX does no sanity check:

\day=-2 \month=13 \year=-4 \today

gives no error or warning and results in the output ‘-2, -4’ (the bogus month value produces no output).

Setzer-0.4.4/data/resources/help/latex2e_14.html000066400000000000000000000465031420322575300214170ustar00rootroot00000000000000 Lengths (LaTeX2e unofficial reference manual (October 2018))

Lengths

A length is a measure of distance. Many LaTeX commands take a length as an argument.

Lengths come in two types. A rigid length such as 10pt does not contain a plus or minus component. (Plain TeX calls this a dimen.) A rubber length (what Plain TeX calls a skip) such as as with 1cm plus0.05cm minus0.01cm can contain either or both of those components. In that rubber length, the 1cm is the natural length while the other two, the plus and minus components, allow TeX to stretch or shrink the length to optimize placement.

The illustrations below use these two commands.

% make a black bar 10pt tall and #1 wide
\newcommand{\blackbar}[1]{\rule{#1}{10pt}}

% Make a box around #2 that is #1 wide (excluding the border)
\newcommand{\showhbox}[2]{%
  \fboxsep=0pt\fbox{\hbox to #1{#2}}} 

This example uses those commands to show a black bar 100 points long between ‘XXX’ and ‘YYY’. This length is rigid.

XXX\showhbox{100pt}{\blackbar{100pt}}YYY

As for rubber lengths, shrinking is simpler one: with 1cm minus 0.05cm, the natural length is 1cm but TeX can shrink it down as far as 0.95cm. Beyond that, TeX refuses to shrink any more. Thus, below the first one works fine, producing a space of 98 points between the two bars.

XXX\showhbox{300pt}{%
  \blackbar{101pt}\hspace{100pt minus 2pt}\blackbar{101pt}}YYY

XXX\showhbox{300pt}{%
  \blackbar{105pt}\hspace{100pt minus 1pt}\blackbar{105pt}}YYY

But the second one gets a warning like ‘Overfull \hbox (1.0pt too wide) detected at line 17’. In the output the first ‘Y’ is overwritten by the end of the black bar, because the box’s material is wider than the 300pt allocated, as TeX has refused to shrink the total to less than 309 points.

Stretching is like shrinking except that if TeX is asked to stretch beyond the given amount, it will do it. Here the first line is fine, producing a space of 110 points between the bars.

XXX\showhbox{300pt}{%
  \blackbar{95pt}\hspace{100pt plus 10pt}\blackbar{95pt}}YYY

XXX\showhbox{300pt}{%
  \blackbar{95pt}\hspace{100pt plus 1pt}\blackbar{95pt}}YYY

In the second line TeX needs a stretch of 10 points and only 1 point was specified. TeX stretches the space to the required length but it gives you a warning like ‘Underfull \hbox (badness 10000) detected at line 22’. (We won’t discuss badness.)

You can put both stretch and shrink in the same length, as in 1ex plus 0.05ex minus 0.02ex.

If TeX is setting two or more rubber lengths then it allocates the stretch or shrink in proportion.

XXX\showhbox{300pt}{%
  \blackbar{100pt}%  left
  \hspace{0pt plus 50pt}\blackbar{80pt}\hspace{0pt plus 10pt}%  middle
  \blackbar{100pt}}YYY  % right

The left and right bars take up 100 points, so the middle needs another 100. The middle bar is 80 points so the two \hspace’s must stretch 20 points. Because the two are plus 50pt and plus 10pt, TeX gets 5/6 of the stretch from the first space and 1/6 from the second.

The plus or minus component of a rubber length can contain a fill component, as in 1in plus2fill. This gives the length infinite stretchability or shrinkability so that TeX could set it to any distance. Here the two figures will be equal-spaced across the page.

\begin{minipage}{\linewidth}
  \hspace{0pt plus 1fill}\includegraphics{godel.png}%
  \hspace{0pt plus 1fill}\includegraphics{einstein.png}%
  \hspace{0pt plus 1fill}
\end{minipage}

TeX actually has three levels of infinity for glue components: fil, fill, and filll. The later ones are more infinite than the earlier ones. Ordinarily document authors only use the middle one (see \hfill and see \vfill).

Multiplying a rubber length by a number turns it into a rigid length, so that after \setlength{\ylength}{1in plus 0.2in} and \setlength{\zlength}{3\ylength} then the value of \zlength is 3in.


Units of length

TeX and LaTeX know about these units both inside and outside of math mode.

pt

Point, 1/72.27 inch. The conversion to metric units, to two decimal places, is 1point = 2.85mm = 28.45cm.

pc

Pica, 12 pt

in

Inch, 72.27 pt

bp

Big point, 1/72 inch. This length is the definition of a point in PostScript and many desktop publishing systems.

cm

Centimeter

mm

Millimeter

dd

Didot point, 1.07 pt

cc

Cicero, 12 dd

sp

Scaled point, 1/65536 pt

Two other lengths that are often used are values set by the designer of the font. The x-height of the current font ex, traditionally the height of the lowercase letter x, is often used for vertical lengths. Similarly em, traditionally the width of the capital letter M, is often used for horizontal lengths (there is also \enspace, which is 0.5em). Use of these can help make a definition work better across font changes. For example, a definition of the vertical space between list items given as \setlength{\itemsep}{1ex plus 0.05ex minus 0.01ex} is more likely to still be reasonable if the font is changed than a definition given in points.

In math mode, many definitions are expressed in terms of the math unit mu given by 1 em = 18 mu, where the em is taken from the current math symbols family. See Spacing in math mode.


\setlength

Synopsis:

\setlength{len}{amount}

Set the length len to amount. The length name len must begin with a backslash, \. The amount can be a rubber length (see Lengths). It can be positive, negative or zero, and can be in any units that LaTeX understands (see Units of length).

Below, with LaTeX’s defaults the first paragraph will be indented while the second will not.

I told the doctor I broke my leg in two places.

\setlength{\parindent}{0em}
He said stop going to those places.

If you did not declare len with \newlength, for example if you mistype the above as \newlength{\specparindent}\setlength{\sepcparindent}{...}, then you get an error like ‘Undefined control sequence. <argument> \sepcindent’. If you omit the backslash at the start of the length name then you get an error like ‘Missing number, treated as zero. <to be read again> \relax l.19 \setlength{specparindent}{0.6\parindent}


\addtolength

Synopsis:

\addtolength{len}{amount}

Increment the length len by amount. The length name len begins with a backslash, \. The amount is a rubber length (see Lengths). It can be positive, negative or zero, and can be in any units that LaTeX understands (see Units of length).

Below, if \parskip starts with the value 0pt plus 1pt

Doctor: how is the boy who swallowed the silver dollar?
\addtolength{\parskip}{1pt}

Nurse: no change.

then it has the value 1pt plus 1pt for the second paragraph.

If you did not declare the length len with \newlength, if for example you mistype the above as \addtolength{\specparindent}{0.6\praindent}, then you get something like ‘Undefined control sequence. <argument> \praindent’. If you leave off the backslash at the start of len, as in \addtolength{parindent}{1pt}, then you get something like ‘You can't use `the letter p' after \advance’.


\settodepth

Synopsis:

\settodepth{len}{text}

Set the length len to the depth of box that LaTeX gets on typesetting the text argument. The length name len must begin with a backslash, \.

This will show how low the character descenders go.

\newlength{\alphabetdepth}
\settodepth{\alphabetdepth}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetdepth

If you did not set aside the length len, if for example you mistype the above as \settodepth{\aplhabetdepth}{abc...}, then you get something like ‘Undefined control sequence. <argument> \aplhabetdepth’. If you leave the backslash out of len, as in \settodepth{alphabetdepth}{...} then you get something like ‘Missing number, treated as zero. <to be read again> \setbox’.


\settoheight

Synopsis:

\settoheight{len}{text}

Sets the length len to the height of box that LaTeX gets on typesetting the text argument. The length name len must begin with a backslash, \.

This will show how high the characters go.

\newlength{\alphabetheight}
\settoheight{\alphabetheight}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetheight

If no such length len has been declared with \newlength, if for example you mistype as \settoheight{\aplhabetheight}{abc...}, then you get something like ‘Undefined control sequence. <argument> \alphabetheight’. If you leave the backslash out of len, as in \settoheight{alphabetheight}{...} then you get something like ‘Missing number, treated as zero. <to be read again> \setbox’.


\settowidth

Synopsis:

\settowidth{len}{text}

Set the length len to the width of the box that LaTeX gets on typesetting the text argument. The length name len must begin with a backslash, \.

This measures the width of the lowercase ASCII alphabet.

\newlength{\alphabetwidth}
\settowidth{\alphabetwidth}{abcdefghijklmnopqrstuvwxyz}
\the\alphabetwidth

If no such length len has been set aside, if for example you mistype the above as \settowidth{\aplhabetwidth}{abc...}, then you get something like ‘Undefined control sequence. <argument> \aplhabetwidth’. If you leave the backslash out of len, as in \settoheight{alphabetwidth}{...} then you get something like ‘Missing number, treated as zero. <to be read again> \setbox’.

Setzer-0.4.4/data/resources/help/latex2e_15.html000066400000000000000000000376051420322575300214230ustar00rootroot00000000000000 Making paragraphs (LaTeX2e unofficial reference manual (October 2018))

Making paragraphs

To start a paragraph, just type some text. To end the current paragraph, put an empty line. This is three paragraphs, separated by two empty lines.

It is a truth universally acknowledged, that a single man in possession
of a good fortune, must be in want of a wife.

However little known the feelings or views of such a man may be on his
first entering a neighbourhood, this truth is so well fixed in the minds
of the surrounding families, that he is considered the rightful property
of some one or other of their daughters.

``My dear Mr. Bennet,'' said his lady to him one day,
``have you heard that Netherfield Park is let at last?''

The separator lines must be empty, including not containing a comment character, %.

Once LaTeX has gathered all of a paragraph’s contents it divides that content into lines in a way that is optimized over the entire paragraph (see Line breaking).

There are places where a new paragraph is not permitted. Don’t put a blank line in math mode (see Modes); here the line before the \end{equation}

\begin{equation}
  2^{|S|} > |S|

\end{equation}

will get you the error ‘Missing $ inserted’. Similarly, the blank line in this section argument

\section{aaa

bbb}

gets ‘Runaway argument? {aaa ! Paragraph ended before \@sect was complete’.


\par

Synopsis (note that while reading the input TeX converts two consecutive newlines to a \par):

\par

End the current paragraph. The usual way to separate paragraphs is with a blank line but the \par command is entirely equivalent. This command is robust (see \protect).

This example uses \par rather than a blank line simply for readability.

\newcommand{\syllabusLegalese}{%
  \whatCheatingIs\par\whatHappensWhenICatchYou}

In LR mode or a vertical mode the \par command does nothing but it terminates paragraph mode, switching LaTeX to vertical mode (see Modes).

You cannot use the \par command in a math mode. You also cannot use it in the argument of many commands, such as the \section command (see Making paragraphs and \newcommand & \renewcommand).

The \par command is not the same as the \paragraph command. The latter is, like \section or \subsection, a sectioning unit used by the standard LaTeX documents (see \subsubsection & \paragraph & \subparagraph).

The \par command is not the same as \newline or the line break double backslash, \\. The difference is that \par ends the paragraph, not just the line, and also triggers the addition of the between-paragraph vertical space \parskip (see \parindent & \parskip).

The output from this example

xyz

\setlength{\parindent}{3in}
\setlength{\parskip}{5in}
\noindent test\indent test1\par test2 

is: after ‘xyz’ there is a vertical skip of 5 inches and then ‘test’ appears, aligned with the left margin. On the same line, there is an empty horizontal space of 3 inches and then ‘test1’ appears. Finally. there is a vertical space of 5 inches, followed by a fresh paragraph with a paragraph indent of 3 inches, and then LaTeX puts the text ‘test2’.


\indent & \noindent

Synopsis:

\indent

or

\noindent

Go into horizontal mode (see Modes). The \indent command first outputs an empty box whose width is \parindent. These commands are robust (see \protect).

Ordinarily you create a new paragraph by putting in a blank line. See \par for the difference between this command and \par. To start a paragraph without an indent, or to continue an interrupted paragraph, use \noindent.

In the middle of a paragraph the \noindent command has no effect, because LaTeX is already in horizontal mode there. The \indent command’s only effect is to output a space.

This example starts a fresh paragraph.

... end of the prior paragraph.

\noindent This paragraph is not indented.

and this continues an interrupted paragraph.

The data 

\begin{center}
  \begin{tabular}{rl} ... \end{tabular}
\end{center}

\noindent shows this clearly.

To omit indentation in the entire document put \setlength{\parindent}{0pt} in the preamble. If you do that, you may want to also set the length of spaces between paragraphs, \parskip (see \parindent & \parskip).

Default LaTeX styles have the first paragraph after a section that is not indented, as is traditional typesetting in English. To change that, look on CTAN for the package indentfirst.


\parindent & \parskip

Synopsis:

\setlength{\parskip}{horizontal len}
\setlength{\parinden}{vertical len}

Both are a rubber lengths (see Lengths). They give the indentation of ordinary paragraphs, not paragraphs inside minipages (see minipage), and the vertical space between paragraphs.

This, put in the preamble,

\setlength{\parindent}{0em}
\setlength{\parskip}{1ex}

arranges that the document will have paragraphs that are not indented, but instead are vertically separated by about the height of a lowercase ‘x’.

In standard LaTeX documents, the default value for \parindent in one-column documents is 15pt when the default text size is 10pt , 17pt for 11pt, and 1.5em for 12pt. In two-column documents it is 1em. The default value for \parskip in LaTeX’s standard document styles is 0pt plus1pt.


Marginal notes

Synopsis, one of:

\marginpar{right}
\marginpar[left]{right}

Create a note in the margin. The first line of the note will have the same baseline as the line in the text where the \marginpar occurs.

The margin that LaTeX uses for the note depends on the current layout (see Document class options) and also on \reversemarginpar (see below). If you are using one-sided layout (document option oneside) then it goes in the right margin. If you are using two-sided layout (document option twoside) then it goes in the outside margin. If you are in two-column layout (document option twocolumn) then it goes in the nearest margin.

If you declare \reversemarginpar then LaTeX will place subsequent marginal notes in the opposite margin to that given in the prior paragraph. Revert that to the default position with \normalmarginpar.

When you specify the optional argument left then it is used for a note in the left margin, while the mandatory argument right is used for a note in the right margin.

Normally, a note’s first word will not be hyphenated. You can enable hyphenation there by beginning left or right with \hspace{0pt}.

These parameters affect the formatting of the note:

\marginparpush

Minimum vertical space between notes; default ‘7pt’ for ‘12pt’ documents, ‘5pt’ else.

\marginparsep

Horizontal space between the main text and the note; default ‘11pt’ for ‘10pt’ documents, ‘10pt’ else.

\marginparwidth

Width of the note itself; default for a one-sided ‘10pt’ document is ‘90pt’, ‘83pt’ for ‘11pt’, and ‘68pt’ for ‘12pt’; ‘17pt’ more in each case for a two-sided document. In two column mode, the default is ‘48pt’.

The standard LaTeX routine for marginal notes does not prevent notes from falling off the bottom of the page.

Setzer-0.4.4/data/resources/help/latex2e_16.html000066400000000000000000002722731420322575300214260ustar00rootroot00000000000000 Math formulas (LaTeX2e unofficial reference manual (October 2018))

Math formulas

Produce mathematical text by putting LaTeX into math mode or display math mode (see Modes). This example shows both.

The wave equation for \( u \) is
\begin{displaymath}
  \frac{\partial^2u}{\partial t^2} = c^2\nabla^2u
\end{displaymath}
where \( \nabla^2 \) is the spatial Laplacian and \( c \) is constant.

Math mode is for inline mathematics. In the above example it is invoked by the starting \( and finished by the matching ending \). Display math mode is for displayed equations and here is invoked by the displaymath environment. Note that any mathematical text whatever, including mathematical text consisting of just one character, is handled in math mode.

When in math mode or display math mode, LaTeX handles many aspects of your input text differently than in other text modes. For example,

contrast x+y with \( x+y \)

in math mode the letters are in italics and the spacing around the plus sign is different.

There are three ways to make inline formulas, to put LaTeX in math mode.

\( mathematical material \)
$ mathematical material $
\begin{math} mathematical material \end{math}

The first form is preferred and the second is quite common, but the third form is rarely used. You can sometimes use one and sometimes another, as in \(x\) and $y$. You can use these in paragraph mode or in LR mode (see Modes).

To make displayed formulas, put LaTeX into display math mode with either:

\begin{displaymath}
  mathematical material
\end{displaymath}

or

\begin{equation}
  mathematical material
\end{equation}

(see displaymath, see equation). The only difference is that with the equation environment, LaTeX puts a formula number alongside the formula. The construct \[ math \] is equivalent to \begin{displaymath} math \end{displaymath}. These environments can only be used in paragraph mode (see Modes).

The two mathematics modes are similar, but there are some differences. One involves the placement of subscripts and superscripts; in display math mode they are further apart and in inline math mode they are closer together.

Sometimes you want the display math typographical treatment to happen in the inline math mode. For this, the \displaystyle declaration forces the size and style of the formula to be that of displaymath. Thus \(\displaystyle \sum_{n=0}^\infty x_n\) will have the limits above and below the summation sign, not next to it. Another example is that

\begin{tabular}{r|cc}
  \textsc{Name}  &\textsc{Series}  &\textsc{Sum}  \\  \hline
  Arithmetic     &\( a+(a+b)+(a+2b)+\cdots+(a+(n-1)b) \)
                   &\( na+(n-1)n\cdot\frac{b}{2}\)  \\
  Geometric      &\( a+ab+ab^2+\cdots+ab^{n-1} \)
                   &\(\displaystyle a\cdot\frac{1-b^n}{1-b}\)  \\
\end{tabular}

because it has no \displaystyle, the ‘Arithmetic’ line’s fraction will be scrunched. But, because of its \displaystyle, the ‘Geometric’ line’s fraction will be easy to read, with characters the same size as in the rest of the line.

The American Mathematical Society has made freely available a set of packages that greatly expand your options for writing mathematics, amsmath and amssymb (also be aware of the mathtools package that is an extension to, and loads, amsmath). New documents that will have mathematical text should use these packages. Descriptions of these packages is outside the scope of this document; see their documentation on CTAN.


Subscripts & superscripts

Synopsis (in math mode or display math mode), one of:

base^exp
base^{exp}

or, one of:

base_exp
base_{exp}

Make exp appear as a superscript of base (with the caret character, ^) or a subscript (with underscore, _).

In this example the 0’s and 1’s are subscripts while the 2’s are superscripts.

\( (x_0+x_1)^2 \leq (x_0)^2+(x_1)^2 \)

To have the subscript or superscript contain more than one character, surround the expression with curly braces, as in e^{-2x}. This example’s fourth line shows curly braces used to group an expression for the exponent.

\begin{displaymath}
  (3^3)^3=27^3=19\,683
  \qquad
  3^{(3^3)}=3^{27}=7\,625\,597\,484\,987
\end{displaymath}

LaTeX knows how to handle a superscript on a superscript, or a subscript on a subscript, or supers on subs, or subs on supers. So, expressions such as e^{x^2} and x_{i_0} give correct output. Note the use in those expressions of curly braces to give the base a determined exp. If you enter \(3^3^3\) then you get ‘Double superscript’.

LaTeX does the right thing when something has both a subscript and a superscript. In this example the integral has both. They come out in the correct place without any author intervention.

\begin{displaymath}
  \int_{x=a}^b f'(x)\,dx = f(b)-f(a)
\end{displaymath}

Note the parentheses around x=a to make the entire expression a subscript.

To put a superscript or subscript before a symbol, use a construct like {}_t K^2. The empty curly braces {} give the subscript something to attach to and keeps it from accidentally attaching to a prior symbols.

Using the subscript or superscript command outside of math mode or display math mode, as in the expression x^2, will get you the error ‘Missing $ inserted’.

A common reason to want subscripts outside of a mathematics mode is to typeset chemical formulas. There are packages for that such as mhchem; see CTAN.


Math symbols

LaTeX provides almost any mathematical or technical symbol that anyone uses. For example, if you include $\pi$ in your source, you will get the pi symbol π. See the Comprehensive LaTeX Symbol List at https://ctan.org/tex-archive/info/symbols/comprehensive/.

Here is a list of commonly-used symbols. It is by no means exhaustive. Each symbol is described with a short phrase, and its symbol class, which determines the spacing around it, is given in parenthesis. Unless said otherwise, the commands for these symbols can be used only in math mode. To redefine a command so that it can be used whatever the current mode, see \ensuremath.

\|

∥ Parallel (relation). Synonym: \parallel.

\aleph

ℵ Aleph, transfinite cardinal (ordinary).

\alpha

α Lowercase Greek letter alpha (ordinary).

\amalg

⨿ Disjoint union (binary)

\angle

∠ Geometric angle (ordinary). Similar: less-than sign < and angle bracket \langle.

\approx

≈ Almost equal to (relation).

\ast

∗ Asterisk operator, convolution, six-pointed (binary). Synonym: *, which is often a superscript or subscript, as in the Kleene star. Similar: \star, which is five-pointed, and is sometimes used as a general binary operation, and sometimes reserved for cross-correlation.

\asymp

≍ Asymptotically equivalent (relation).

\backslash

\ Backslash (ordinary). Similar: set minus \setminus, and \textbackslash for backslash outside of math mode.

\beta

β Lowercase Greek letter beta (ordinary).

\bigcap

⋂ Variable-sized, or n-ary, intersection (operator). Similar: binary intersection \cap.

\bigcirc

⚪ Circle, larger (binary). Similar: function composition \circ.

\bigcup

⋃ Variable-sized, or n-ary, union (operator). Similar: binary union \cup.

\bigodot

⨀ Variable-sized, or n-ary, circled dot operator (operator).

\bigoplus

⨁ Variable-sized, or n-ary, circled plus operator (operator).

\bigotimes

⨂ Variable-sized, or n-ary, circled times operator (operator).

\bigtriangledown

▽ Variable-sized, or n-ary, open triangle pointing down (operator).

\bigtriangleup

△ Variable-sized, or n-ary, open triangle pointing up (operator).

\bigsqcup

⨆ Variable-sized, or n-ary, square union (operator).

\biguplus

⨄ Variable-sized, or n-ary, union operator with a plus (operator). (Note that the name has only one p.)

\bigvee

⋁ Variable-sized, or n-ary, logical-and (operator).

\bigwedge

⋀ Variable-sized, or n-ary, logical-or (operator).

\bot

⊥ Up tack, bottom, least element of a partially ordered set, or a contradiction (ordinary). See also \top.

\bowtie

⋈ Natural join of two relations (relation).

\Box

□ Modal operator for necessity; square open box (ordinary). Not available in plain TeX. In LaTeX you need to load the amssymb package.

\bullet

• Bullet (binary). Similar: multiplication dot \cdot.

\cap

∩ Intersection of two sets (binary). Similar: variable-sized operator \bigcap.

\cdot

⋅ Multiplication (binary). Similar: Bullet dot \bullet.

\chi

χ Lowercase Greek chi (ordinary).

\circ

∘ Function composition, ring operator (binary). Similar: variable-sized operator \bigcirc.

\clubsuit

♣ Club card suit (ordinary).

\complement

∁ Set complement, used as a superscript as in $S^\complement$ (ordinary). Not available in plain TeX. In LaTeX you need to load the amssymb package. Also used: $S^{\mathsf{c}}$ or $\bar{S}$.

\cong

≅ Congruent (relation).

\coprod

∐ Coproduct (operator).

\cup

∪ Union of two sets (binary). Similar: variable-sized operator \bigcup.

\dagger

† Dagger relation (binary).

\dashv

⊣ Dash with vertical, reversed turnstile (relation). Similar: turnstile \vdash.

\ddagger

‡ Double dagger relation (binary).

\Delta

Δ Greek uppercase delta, used for increment (ordinary).

\delta

δ Greek lowercase delta (ordinary).

\Diamond

◇ Large diamond operator (ordinary). Not available in plain TeX. In LaTeX you need to load the amssymb package.

\diamond

⋄ Diamond operator (binary). Similar: large diamond \Diamond, circle bullet \bullet.

\diamondsuit

♢ Diamond card suit (ordinary).

\div

÷ Division sign (binary).

\doteq

≐ Approaches the limit (relation). Similar: geometrically equal to \Doteq.

\downarrow

↓ Down arrow, converges (relation). Similar: \Downarrow double line down arrow.

\Downarrow

⇓ Double line down arrow (relation). Similar: \downarrow single line down arrow.

\ell

ℓ Lowercase cursive letter l (ordinary).

\emptyset

∅ Empty set symbol (ordinary). The variant form is \varnothing.

\epsilon

ϵ Lowercase lunate epsilon (ordinary). Similar to Greek text letter. More widely used in mathematics is the script small letter epsilon \varepsilon ε. Related: the set membership relation \in ∈.

\equiv

≡ Equivalence (relation).

\eta

η Lowercase Greek letter (ordinary).

\exists

∃ Existential quantifier (ordinary).

\flat

♭ Musical flat (ordinary).

\forall

∀ Universal quantifier (ordinary).

\frown

⌢ Downward curving arc (ordinary).

\Gamma

Γ uppercase Greek letter (ordinary).

\gamma

γ Lowercase Greek letter (ordinary).

\ge

≥ Greater than or equal to (relation). This is a synonym for \geq.

\geq

≥ Greater than or equal to (relation). This is a synonym for \ge.

\gets

← Is assigned the value (relation). Synonym: \leftarrow.

\gg

≫ Much greater than (relation). Similar: much less than \ll.

\hbar

ℏ Planck constant over two pi (ordinary).

\heartsuit

♡ Heart card suit (ordinary).

\hookleftarrow

↩ Hooked left arrow (relation).

\hookrightarrow

↪ Hooked right arrow (relation).

\iff

⟷ If and only if (relation). It is \Longleftrightarrow with a \thickmuskip on either side.

\Im

ℑ Imaginary part (ordinary). See: real part \Re.

\imath

Dotless i; used when you are putting an accent on an i (see Math accents).

\in

∈ Set element (relation). See also: lowercase lunate epsilon \epsilonϵ and small letter script epsilon \varepsilon.

\infty

∞ Infinity (ordinary).

\int

∫ Integral (operator).

\iota

ι Lowercase Greek letter (ordinary).

\Join

⨝ Condensed bowtie symbol (relation). Not available in Plain TeX.

\jmath

Dotless j; used when you are putting an accent on a j (see Math accents).

\kappa

κ Lowercase Greek letter (ordinary).

\Lambda

Λ uppercase Greek letter (ordinary).

\lambda

λ Lowercase Greek letter (ordinary).

\land

∧ Logical and (binary). This is a synonym for \wedge. See also logical or \lor.

\langle

⟨ Left angle, or sequence, bracket (opening). Similar: less-than <. Matches \rangle.

\lbrace

{ Left curly brace (opening). Synonym: \{. Matches \rbrace.

\lbrack

[ Left square bracket (opening). Synonym: [. Matches \rbrack.

\lceil

⌈ Left ceiling bracket, like a square bracket but with the bottom shaved off (opening). Matches \rceil.

\le

≤ Less than or equal to (relation). This is a synonym for \leq.

\leadsto

⇝ Squiggly right arrow (relation). Not available in plain TeX. In LaTeX you need to load the amssymb package. To get this symbol outside of math mode you can put \newcommand*{\Leadsto}{\ensuremath{\leadsto}} in the preamble and then use \Leadsto instead.

\Leftarrow

⇐ Is implied by, double-line left arrow (relation). Similar: single-line left arrow \leftarrow.

\leftarrow

← Single-line left arrow (relation). Synonym: \gets. Similar: double-line left arrow \Leftarrow.

\leftharpoondown

↽ Single-line left harpoon, barb under bar (relation).

\leftharpoonup

↼ Single-line left harpoon, barb over bar (relation).

\Leftrightarrow

⇔ Bi-implication; double-line double-headed arrow (relation). Similar: single-line double headed arrow \leftrightarrow.

\leftrightarrow

↔ Single-line double-headed arrow (relation). Similar: double-line double headed arrow \Leftrightarrow.

\leq

≤ Less than or equal to (relation). This is a synonym for \le.

\lfloor

⌊ Left floor bracket (opening). Matches: \floor.

\lhd

◁ Arrowhead, that is, triangle, pointing left (binary). Not available in plain TeX. In LaTeX you need to load the amssymb package. For the normal subgroup symbol you should load amssymb and use \vartriangleleft (which is a relation and so gives better spacing).

\ll

≪ Much less than (relation). Similar: much greater than \gg.

\lnot

¬ Logical negation (ordinary). Synonym: \neg.

\longleftarrow

⟵ Long single-line left arrow (relation). Similar: long double-line left arrow \Longleftarrow.

\longleftrightarrow

⟷ Long single-line double-headed arrow (relation). Similar: long double-line double-headed arrow \Longleftrightarrow.

\longmapsto

⟼ Long single-line left arrow starting with vertical bar (relation). Similar: shorter version \mapsto.

\longrightarrow

⟶ Long single-line right arrow (relation). Similar: long double-line right arrow \Longrightarrow.

\lor

∨ Logical or (binary). Synonym: wedge \wedge.

\mapsto

↦ Single-line left arrow starting with vertical bar (relation). Similar: longer version \longmapsto.

\mho

℧ Conductance, half-circle rotated capital omega (ordinary). Not available in plain TeX. In LaTeX you need to load the amssymb package.

\mid

∣ Single-line vertical bar (relation). A typical use of \mid is for a set \{\, x \mid x\geq 5 \,\}.

Similar: \vert and | produce the same single-line vertical bar symbol but without any spacing (they fall in class ordinary) and you should not use them as relations but instead only as ordinals, i.e., footnote symbols. For absolute value, see the entry for \vert and for norm see the entry for \Vert.

\models

⊨ Entails, or satisfies; double turnstile, short double dash (relation). Similar: long double dash \vDash.

\mp

∓ Minus or plus (relation).

\mu

μ Lowercase Greek letter (ordinary).

\nabla

∇ Hamilton’s del, or differential, operator (ordinary).

\natural

♮ Musical natural notation (ordinary).

\ne

≠ Not equal (relation). Synonym: \neq.

\nearrow

↗ North-east arrow (relation).

\neg

¬ Logical negation (ordinary). Synonym: \lnot. Sometimes instead used for negation: \sim.

\neq

≠ Not equal (relation). Synonym: \ne.

\ni

∋ Reflected membership epsilon; has the member (relation). Synonym: \owns. Similar: is a member of \in.

\not

    Long solidus, or slash, used to overstrike a following operator (relation).

Many negated operators are available that don’t require \not, particularly with the amssymb package. For example, \notin is typographically preferable to \not\in.

\notin

∉ Not an element of (relation). Similar: not subset of \nsubseteq.

\nu

ν Lowercase Greek letter (ordinary).

\nwarrow

↖ North-west arrow (relation).

\odot

⊙ Dot inside a circle (binary). Similar: variable-sized operator \bigodot.

\oint

∮ Contour integral, integral with circle in the middle (operator).

\Omega

Ω uppercase Greek letter (ordinary).

\omega

ω Lowercase Greek letter (ordinary).

\ominus

⊖ Minus sign, or dash, inside a circle (binary).

\oplus

⊕ Plus sign inside a circle (binary). Similar: variable-sized operator \bigoplus.

\oslash

⊘ Solidus, or slash, inside a circle (binary).

\otimes

⊗ Times sign, or cross, inside a circle (binary). Similar: variable-sized operator \bigotimes.

\owns

∋ Reflected membership epsilon; has the member (relation). Synonym: \ni. Similar: is a member of \in.

\parallel

∥ Parallel (relation). Synonym: \|.

\partial

∂ Partial differential (ordinary).

\perp

⟂ Perpendicular (relation). Similar: \bot uses the same glyph but the spacing is different because it is in the class ordinary.

\phi

ϕ Lowercase Greek letter (ordinary). The variant form is \varphi φ.

\Pi

Π uppercase Greek letter (ordinary).

\pi

π Lowercase Greek letter (ordinary). The variant form is \varpi ϖ.

\pm

± Plus or minus (binary).

\prec

≺ Precedes (relation). Similar: less than <.

\preceq

⪯ Precedes or equals (relation). Similar: less than or equals \leq.

\prime

′ Prime, or minute in a time expression (ordinary). Typically used as a superscript: $f^\prime$; $f^\prime$ and $f'$ produce the same result. An advantage of the second is that $f'''$ produces the desired symbol, that is, the same result as $f^{\prime\prime\prime}$, but uses rather less typing. You can only use \prime in math mode. Using the right single quote ' in text mode produces a different character (apostrophe).

\prod

∏ Product (operator).

\propto

∝ Is proportional to (relation)

\Psi

Ψ uppercase Greek letter (ordinary).

\psi

ψ Lowercase Greek letter (ordinary).

\rangle

⟩ Right angle, or sequence, bracket (closing). Similar: greater than >. Matches:\langle.

\rbrace

} Right curly brace (closing). Synonym: \}. Matches \lbrace.

\rbrack

] Right square bracket (closing). Synonym: ]. Matches \lbrack.

\rceil

⌉ Right ceiling bracket (closing). Matches \lceil.

\Re

ℜ Real part, real numbers, cursive capital R (ordinary). Related: double-line, or blackboard bold, R \mathbb{R}; to access this, load the amsfonts package.

\restriction

↾ Restriction of a function (relation). Synonym: \upharpoonright. Not available in plain TeX. In LaTeX you need to load the amssymb package.

\revemptyset

⦰ Reversed empty set symbol (ordinary). Related: \varnothing. Not available in plain TeX. In LaTeX you need to load the stix package.

\rfloor

⌋ Right floor bracket, a right square bracket with the top cut off (closing). Matches \lfloor.

\rhd

◁ Arrowhead, that is, triangle, pointing right (binary). Not available in plain TeX. In LaTeX you need to load the amssymb package. For the normal subgroup symbol you should instead load amssymb and use \vartriangleright (which is a relation and so gives better spacing).

\rho

ρ Lowercase Greek letter (ordinary). The variant form is \varrho ϱ.

\Rightarrow

⇒ Implies, right-pointing double line arrow (relation). Similar: right single-line arrow \rightarrow.

\rightarrow

→ Right-pointing single line arrow (relation). Synonym: \to. Similar: right double line arrow \Rightarrow.

\rightharpoondown

⇁ Right-pointing harpoon with barb below the line (relation).

\rightharpoonup

⇀ Right-pointing harpoon with barb above the line (relation).

\rightleftharpoons

⇌ Right harpoon up above left harpoon down (relation).

\searrow

↘ Arrow pointing southeast (relation).

\setminus

⧵ Set difference, reverse solidus or reverse slash, like \ (binary). Similar: backslash \backslash and also \textbackslash outside of math mode.

\sharp

♯ Musical sharp (ordinary).

\Sigma

Σ uppercase Greek letter (ordinary).

\sigma

σ Lowercase Greek letter (ordinary). The variant form is \varsigma ς.

\sim

∼ Similar, in a relation (relation).

\simeq

≃ Similar or equal to, in a relation (relation).

\smallint

∫ Integral sign that does not change to a larger size in a display (operator).

\smile

⌣ Upward curving arc, smile (ordinary).

\spadesuit

♠ Spade card suit (ordinary).

\sqcap

⊓ Square intersection symbol (binary). Similar: intersection cap.

\sqcup

⊔ Square union symbol (binary). Similar: union cup. Related: variable-sized operator \bigsqcup.

\sqsubset

⊏ Square subset symbol (relation). Similar: subset \subset. Not available in plain TeX. In LaTeX you need to load the amssymb package.

\sqsubseteq

⊑ Square subset or equal symbol (binary). Similar: subset or equal to \subseteq.

\sqsupset

⊐ Square superset symbol (relation). Similar: superset \supset. Not available in plain TeX. In LaTeX you need to load the amssymb package.

\sqsupseteq

⊒ Square superset or equal symbol (binary). Similar: superset or equal \supseteq.

\star

⋆ Five-pointed star, sometimes used as a general binary operation but sometimes reserved for cross-correlation (binary). Similar: the synonyms asterisk * and \ast, which are six-pointed, and more often appear as a superscript or subscript, as with the Kleene star.

\subset

⊂ Subset (occasionally, is implied by) (relation).

\subseteq

⊆ Subset or equal to (relation).

\succ

≻ Comes after, succeeds (relation). Similar: is less than >.

\succeq

⪰ Succeeds or is equal to (relation). Similar: less than or equal to \leq.

\sum

∑ Summation (operator). Similar: Greek capital sigma \Sigma.

\supset

⊃ Superset (relation).

\supseteq

⊇ Superset or equal to (relation).

\surd

√ Radical symbol (ordinary). The LaTeX command \sqrt{...} typesets the square root of the argument, with a bar that extends to cover the argument.

\swarrow

↙ Southwest-pointing arrow (relation).

\tau

τ Lowercase Greek letter (ordinary).

\theta

θ Lowercase Greek letter (ordinary). The variant form is \vartheta ϑ.

\times

× Primary school multiplication sign (binary). See also \cdot.

\to

→ Right-pointing single line arrow (relation). Synonym: \rightarrow.

\top

⊤ Top, greatest element of a partially ordered set (ordinary). See also \bot.

\triangle

△ Triangle (ordinary).

\triangleleft

◁ Not-filled triangle pointing left (binary). Similar: \lhd. For the normal subgroup symbol you should load amssymb and use \vartriangleleft (which is a relation and so gives better spacing).

\triangleright

▷ Not-filled triangle pointing right (binary). For the normal subgroup symbol you should instead load amssymb and use \vartriangleright (which is a relation and so gives better spacing).

\unlhd

⊴ Left-pointing not-filled underlined arrowhead, that is, triangle, with a line under (binary). Not available in plain TeX. In LaTeX you need to load the amssymb package. For the normal subgroup symbol load amssymb and use \vartrianglelefteq (which is a relation and so gives better spacing).

\unrhd

⊵ Right-pointing not-filled underlined arrowhead, that is, triangle, with a line under (binary). Not available in plain TeX. In LaTeX you need to load the amssymb package. For the normal subgroup symbol load amssymb and use \vartrianglerighteq (which is a relation and so gives better spacing).

\Uparrow

⇑ Double-line upward-pointing arrow (relation). Similar: single-line up-pointing arrow \uparrow.

\uparrow

↑ Single-line upward-pointing arrow, diverges (relation). Similar: double-line up-pointing arrow \Uparrow.

\Updownarrow

⇕ Double-line upward-and-downward-pointing arrow (relation). Similar: single-line upward-and-downward-pointing arrow \updownarrow.

\updownarrow

↕ Single-line upward-and-downward-pointing arrow (relation). Similar: double-line upward-and-downward-pointing arrow \Updownarrow.

\upharpoonright

↾ Up harpoon, with barb on right side (relation). Synonym: \restriction. Not available in plain TeX. In LaTeX you need to load the amssymb package.

\uplus

⊎ Multiset union, a union symbol with a plus symbol in the middle (binary). Similar: union \cup. Related: variable-sized operator \biguplus.

\Upsilon

Υ uppercase Greek letter (ordinary).

\upsilon

υ Lowercase Greek letter (ordinary).

\varepsilon

ε Small letter script epsilon (ordinary). This is more widely used in mathematics than the non-variant lunate epsilon form \epsilon ϵ. Related: set membership \in.

\vanothing

∅ Empty set symbol. Similar: \emptyset. Related: \revemptyset. Not available in plain TeX. In LaTeX you need to load the amssymb package.

\varphi

φ Variant on the lowercase Greek letter (ordinary). The non-variant form is \phi ϕ.

\varpi

ϖ Variant on the lowercase Greek letter (ordinary). The non-variant form is \pi π.

\varrho

ϱ Variant on the lowercase Greek letter (ordinary). The non-variant form is \rho ρ.

\varsigma

ς Variant on the lowercase Greek letter (ordinary). The non-variant form is \sigma σ.

\vartheta

ϑ Variant on the lowercase Greek letter (ordinary). The non-variant form is \theta θ.

\vdash

⊢ Provable; turnstile, vertical and a dash (relation). Similar: turnstile rotated a half-circle \dashv.

\vee

∨ Logical or; a downwards v shape (binary). Related: logical and \wedge. Similar: variable-sized operator \bigvee.

\Vert

‖ Vertical double bar (ordinary). Similar: vertical single bar \vert.

For a norm symbol, you can use the mathtools package and put in your preamble \DeclarePairedDelimiter\norm{\lVert}{\rVert}. This gives you three command variants for double-line vertical bars that are correctly horizontally spaced: if in the document body you write the starred version $\norm*{M^\perp}$ then the height of the vertical bars will match the height of the argument, whereas with \norm{M^\perp} the bars do not grow with the height of the argument but instead are the default height, and \norm[size command]{M^\perp} also gives bars that do not grow but are set to the size given in the size command, e.g., \Bigg.

\vert

| Single line vertical bar (ordinary). Similar: double-line vertical bar \Vert. For such that, as in the definition of a set, use \mid because it is a relation.

For absolute value you can use the mathtools package and in your preamble put \DeclarePairedDelimiter\abs{\lvert}{\rvert}. This gives you three command variants for single-line vertical bars that are correctly horizontally spaced: if in the document body you write the starred version $\abs*{\frac{22}{7}}$ then the height of the vertical bars will match the height of the argument, whereas with \abs{\frac{22}{7}} the bars do not grow with the height of the argument but instead are the default height, and \abs[size command]{\frac{22}{7}} also gives bars that do not grow but are set to the size given in the size command, e.g., \Bigg.

\wedge

∧ Logical and (binary). Synonym: \land. See also logical or \vee. Similar: variable-sized operator \bigwedge.

\wp

℘ Weierstrass p (ordinary).

\wr

≀ Wreath product (binary).

\Xi

Ξ uppercase Greek letter (ordinary).

\xi

ξ Lowercase Greek letter (ordinary).

\zeta

ζ Lowercase Greek letter (ordinary).

The following symbols are most often used in plain text but LaTeX provides versions to use in mathematical text.

\mathdollar

Dollar sign in math mode: $.

\mathparagraph

Paragraph sign (pilcrow) in math mode, ¶.

\mathsection

Section sign in math mode §.

\mathsterling

Sterling sign in math mode: £.

\mathunderscore

Underscore in math mode: _.


Blackboard bold

Synopsis:

\usepackage{amssymb}   % in preamble
  ... 
\mathbb{uppercase-letter}

Provide blackboard bold symbols, sometimes also known as doublestruck letters, used to denote number sets such as the natural numbers, the integers, etc.

Here

\( \forall n \in \mathbb{N}, n^2 \geq 0 \)

the \mathbb{N} gives blackboard bold symbol ℕ representing the natural numbers.

If you use other than an uppercase letter then you do not get an error but you get strange results, including unexpected characters.

There are packages that give access to symbols other than just the capital letters; look on CTAN.


Calligraphic

Synopsis:

\mathcal{uppercase-letters}

Use a script-like font.

In this example the graph identifier is output in a cursive font.

Let the graph be \( \mathcal{G} \).

If you use something other than an uppercase letter then you do not get an error. Instead you get unexpected output. For instance, \mathcal{g} outputs a close curly brace symbol, while \mathcal{+} outputs a plus sign.


\boldmath & \unboldmath

Synopsis (used in paragraph mode or LR mode):

\boldmath \( math \)

or

\unboldmath \( math \)

Declarations to change the letters and symbols in math to be in a bold font, or to countermand that and bring back the regular (non-bold) default. They must be used when not in math mode or display math mode (see Modes). Both commands are fragile (see \protect).

In this example each \boldmath command takes place inside an \mbox,

we have $\mbox{\boldmath \( v \)} = 5\cdot\mbox{\boldmath \( u \)$}$

which means \boldmath is only called in a text mode, here LR mode, and explains why LaTeX must switch to math mode to set v and u.

If you use either command inside math mode, as with Trouble: \( \boldmath x \), then you get something like ‘LaTeX Font Warning: Command \boldmath invalid in math mode on input line 11’ and ‘LaTeX Font Warning: Command \mathversion invalid in math mode on input line 11’.

There are many issues with \boldmath. New documents should use the bm package provided by the LaTeX Project team. A complete description is outside the scope of this document (see the full documentation on CTAN) but even this small example

\usepackage{bm}   % in preamble
...
we have $\bm{v} = 5\cdot\bm{u}$

shows that it is an improvement over \boldmath.


Dots, horizontal or vertical

Ellipses are the three dots (usually three) indicating that a pattern continues.

\begin{array}{cccc}
  a_{0,0}    &a_{0,1}   &a_{0,2} &\ldots \\
  a_{1,0}    &\ddots                     \\
  \vdots
\end{array}

LaTeX provides these.

\cdots

Horizontal ellipsis with the dots raised to the center of the line, as in ⋯. Used as: \( a_0\cdot a_1\cdots a_{n-1} \).

\ddots

Diagonal ellipsis, ⋱. See the above array example for a usage.

\ldots

Ellipsis on the baseline, …. Used as: \( x_0,\ldots x_{n-1} \). Another example is the above array example. A synonym is \mathellipsis. A synonym from the amsmath package is \hdots.

You can also use this command outside of mathematical text, as in The gears, brakes, \ldots{} are all broken. (In a paragraph mode or LR mode a synonym for \ldots is \dots.)

\vdots

Vertical ellipsis, ⋮. See the above array example for a usage.

The amsmath package has the command \dots to semantically mark up ellipses. This example produces two different-looking outputs for the first two uses of the \dots command.

\usepackage{amsmath}  % in preamble
  ...
Suppose that \( p_0, p_1, \dots, p_{n-1} \) lists all of the primes.
Observe that \( p_0\cdot p_1 \dots \cdot p_{n-1} +1 \) is not a
  multiple of any \( p_i \).
Conclusion: there are infinitely many primes \( p_0, p_1, \dotsc \).

In the first line LaTeX looks to the comma following \dots to determine that it should output an ellipsis on the baseline. The second line has a \cdot following \dots so LaTeX outputs an ellipsis that is on the math axis, vertically centered. However, the third usage has no follow-on character so you have to tell LaTeX what to do. You can use one of the commands: \dotsc if you need the ellipsis appropriate for a comma following, \dotsb if you need the ellipses that fits when the dots are followed by a binary operator or relation symbol, \dotsi for dots with integrals, or \dotso for others.


Math functions

These commands produce roman function names in math mode with proper spacing.

\arccos

Inverse cosine

\arcsin

Inverse sine

\arctan

Inverse tangent

\arg

Angle between the real axis and a point in the complex plane

\bmod

Binary modulo operator, used as in \( 5\bmod 3=2 \)

\cos

Cosine

\cosh

Hyperbolic cosine

\cot

Cotangent

\coth

Hyperbolic cotangent

\csc

Cosecant

\deg

Degrees

\det

Determinant

\dim

Dimension

\exp

Exponential

\gcd

Greatest common divisor

\hom

Homomorphism

\inf

Infinum

\ker

Kernel

\lg

Base 2 logarithm

\lim

Limit

\liminf

Limit inferior

\limsup

Limit superior

\ln

Natural logarithm

\log

Logarithm

\max

Maximum

\min

Minimum

\pmod

Parenthesized modulus, as used in \( 5\equiv 2\pmod 3 \)

\Pr

Probability

\sec

Secant

\sin

Sine

\sinh

Hyperbolic sine

\sup

sup

\tan

Tangent

\tanh

Hyperbolic tangent

The amsmath package adds improvements on some of these, and also allows you to define your own. The full documentation is on CTAN, but briefly, you can define an identity operator with \DeclareMathOperator{\identity}{id} that is like the ones above but prints as ‘id’. The starred form \DeclareMathOperator*{\op}{op} sets any limits above and below, as is traditional with \lim, \sup, or \max.


Math accents

LaTeX provides a variety of commands for producing accented letters in math. These are different from accents in normal text (see Accents).

\acute

Math acute accent

\bar

Math bar-over accent

\breve

Math breve accent

\check

Math háček (check) accent

\ddot

Math dieresis accent

\dot

Math dot accent

\grave

Math grave accent

\hat

Math hat (circumflex) accent

\mathring

Math ring accent

\tilde

Math tilde accent

\vec

Math vector symbol

\widehat

Math wide hat accent

\widetilde

Math wide tilde accent

When you are putting an accent on an i or a j, the tradition is to use one without a dot, \imath or jmath (see Math symbols).


Over- and Underlining

LaTeX provides commands for making overlines or underlines, or putting braces over or under some material.

\underline{text}

Underline text. Works inside math mode, and outside. The line is always completely below the text, taking account of descenders, so in \(\underline{y}\) the line is lower than in \(\underline{x}\). This command is fragile (see \protect).

Note that the package ulem does text mode underlining and allows line breaking as well as a number of other features. See the documentation on CTAN. See also \hrulefill & \dotfill for producing a line, for such things as a signature.

\overline{text}

Put a horizontal line over text. Works inside math mode, and outside. For example, \overline{x+y}. Note that this differs from the command \bar (see Math accents).

\underbrace{math}

Put a brace under math. For example, this (1-\underbrace{1/2)+(1/2}-1/3) emphasizes the telescoping part. Attach text to the brace by using subscript, _, or superscript, ^, as here.

\begin{displaymath}
  1+1/2+\underbrace{1/3+1/4}_{>1/2}+
       \underbrace{1/5+1/6+1/7+1/8}_{>1/2}+\cdots
\end{displaymath}

The superscript appears on top of the expression, and so can look unconnected to the underbrace.

\overbrace{math}

Put a brace over math, as with \overbrace{x+x+\cdots+x}^{\mbox{\(k\) times}}. See also \underbrace.

The package mathtools adds an over- and underbrace, as well as some improvements on the braces. See the documentation on CTAN.


Spacing in math mode

When typesetting mathematics, LaTeX puts in spacing according to the normal rules for mathematics texts. If you enter y=m x then LaTeX ignores the space and in the output the m is next to the x, as y=mx.

But LaTeX’s rules sometimes need tweaking. For example, in an integral the tradition is to put a small extra space between the f(x) and the dx, here done with the \, command.

\int_0^1 f(x)\,dx

LaTeX provides the commands that follow for use in math mode. Many of these spacing definitions are expressed in terms of the math unit mu. It is defined as 1/18em, where the em is taken from the current math symbols family (see Units of length). Thus, a \thickspace is something like 5/18 times the width of a ‘M’.

\;

Synonym: \thickspace. Normally 5.0mu plus 5.0mu. Math mode only.

\:
\>

Synonym: \medspace. Normally 4.0mu plus 2.0mu minus 4.0mu. Math mode only.

\,

Synonym: \thinspace. Normally 3mu, which is 1/6em. Can be used in both math mode and text mode (see \thinspace & \negthinspace).

This space is widely used, for instance between the function and the infinitesimal in an integral \int f(x)\,dx and, if an author does this, before punctuation in a displayed equation.

The antiderivative is
\begin{equation}
  3x^{-1/2}+3^{1/2}\,.
\end{equation}
\!

A negative thin space. Normally -3mu. The \! command is math mode only but the \negthinspace command is available for text mode (see \thinspace & \negthinspace).

\quad

This is 18mu, that is, 1em. This is often used for space surrounding equations or expressions, for instance for the space between two equations inside a displaymath environment. It is available in both text and math mode.

\qquad

A length of 2 quads, that is, 36mu = 2em. It is available in both text and math mode.


\smash

Synopsis:

\smash{subformula}

Typeset subformula as if its height and depth were zero.

In this example the exponential is so tall that without the \smash command LaTeX would separate its line from the line above it, and the uneven line spacing might be unsightly.

To compute the tetration $\smash{2^{2^{2^2}}}$,
evaluate from the top down, as $2^{2^4}=2^{16}=65536$.

(Because of the \smash the printed expression could run into the line above so you may want to wait until the final version of the document to make such adjustments.)

This pictures the effect of \smash by using \fbox to surround the box that LaTeX will put on the line. The \blackbar command makes a bar extending from 10 points below the baseline to 20 points above.

\newcommand{\blackbar}{\rule[-10pt]{5pt}{30pt}}
\fbox{\blackbar}
\fbox{\smash{\blackbar}}

The first box that LaTeX places is 20 points high and 10 points deep. But the second box is treated by LaTeX as having zero height and zero depth, despite that the ink printed on the page still extends well above and below the line.

The \smash command appears often in mathematics to adjust the size of an element that surrounds a subformula. Here the first radical extends below the baseline while the second lies just on the baseline.

\begin{equation}
\sqrt{\sum_{0\leq k< n} f(k)}
\sqrt{\vphantom{\sum}\smash{\sum_{0\leq k< n}} f(k)}
\end{equation}

Note the use of \vphantom to give the \sqrt command an argument with the height of the \sum (see \phantom & \vphantom & \hphantom).

While most often used in mathematics, the \smash command can appear in other contexts. However, it doesn’t change into horizontal mode. So if it starts a paragraph then you should first put a \leavevmode, as in the bottom line below.

xxx xxx xxx

\smash{yyy}  % no paragraph indent

\leavevmode\smash{zzz}  % usual paragraph indent

The package mathtools has operators that provide even finer control over smashing a subformula box.


\phantom & \vphantom & \hphantom

Synopsis:

\phantom{subformula}

or

\vphantom{subformula}

or

\hphantom{subformula}

The \phantom command creates a box with the same height, depth, and width as subformula, but empty. That is, this command causes LaTeX to typeset the box but not its ink. The \vphantom variant also produces an invisible box with the same height and depth as subformula, but it has width zero. And \hphantom makes a box with the same width as subformula but with height and depth zero.

Without the \vphantom in this example, the top bars of the two square roots would be at different heights.

\( \sqrt{\vphantom{a^3}a}\cdot\sqrt{a^3} \)

The \vphantom{a^3} causes the first \sqrt to have inside it a box of the same height as the second \sqrt, so LaTeX makes the bars align.

These commands often are combined with \smash. See \smash for another example of the use of \vphantom.

The three phantom commands appear often but note that LaTeX provides a suite of other commands to work with box sizes that may be more convenient, including \makebox (see \mbox & \makebox) as well as \settodepth (see \settodepth), \settoheight (see \settoheight), and \settowidth (see \settowidth). In addition, the mathtools package has many commands that offer fine-grained control over spacing.

All three commands produce an ordinary box, without any special mathematics status. So to do something like attaching a superscript you should give it such a status, for example with the \operatorname command from the package amsmath.

While most often used in mathematics, these three can appear in other contexts. However, they don’t cause LaTeX to change into horizontal mode. So if one of these starts a paragraph then you should prefix it with \leavevmode.


Math miscellany

LaTeX contains a wide variety of mathematics facilities. Here are some that don’t fit into other categories.


Colon character : & \colon

Synopsis, one of:

:
\colon

In mathematics, the colon character, :, is a relation.

With side ratios \( 3:4 \) and \( 4:5 \), the triangle is right.

Ordinary LaTeX defines \colon to produce the colon character with the spacing appropriate for punctuation, as in set-builder notation \{x\colon 0\leq x<1\}.

But the widely-used amsmath package defines \colon for use in the definition of functions f\colon D\to C. So if you want the colon character as a punctuation then use \mathpunct{:}.


\*

Synopsis:

\*

A multiplication symbol that allows a line break. If there is a break then LaTeX puts a \times symbol, ×, before that break.

In \( A_1\* A_2\* A_3\* A_4 \), if there is no line break then LaTeX outputs it as though it were \( A_1 A_2 A_3 A_4 \). If a line break does happen, for example between the two middle ones, then LaTeX sets it like \( A_1 A_2 \times \), followed by the break, followed by \( A_3 A_4 \).


\frac

Synopsis:

\frac{numerator}{denominator}

Produces the fraction. Used as: \begin{displaymath} \frac{1}{\sqrt{2\pi\sigma}} \end{displaymath}. In inline math mode it comes out small; see the discussion of \displaystyle (see Math formulas).


\left & \right

Synopsis:

\left delimiter1 ... \right delimiter2

Make matching parentheses, braces, or other delimiters. The delimiters are sized according to the math they enclose. This makes a unit vector surrounded by appropriate-height parentheses.

\begin{equation}
  \left(\begin{array}{c}
    1   \\
    0   \\
  \end{array}\right)

Every \left must have a matching \right. Leaving out the \left( in the above gets ‘Extra \right’. Leaving off the \right) gets ‘You can't use `\eqno' in math mode’.

However, the two delimiters delimiter1 and delimiter2 need not match. A common case is that you want an unmatched brace, as below. Use a period, ‘.’, as a null delimiter.

\begin{equation}
  f(n)=\left\{\begin{array}{ll}
                1             &\mbox{--if \(n=0\)} \\
                f(n-1)+3n^2   &\mbox{--else}       
       \end{array}\right.
\end{equation}

Note that to get a curly brace as a delimiter you must prefix it with a backslash, \{.


\sqrt

Synopsis, one of:

\sqrt{arg}
\sqrt[root-number]{arg}

The square root, or optionally other roots, of arg. The optional argument root-number gives the root, i.e., enter the cube root of x+y as \sqrt[3]{x+y}. The radical grows with the size of arg (as the height of the radical grows, the angle on the leftmost part gets steeper, until for a large enough arg, it is vertical).

LaTeX has a separate \surd character (see Math symbols).


\stackrel

Synopsis, one of:

\stackrel{text}{relation}

Put text above relation. To put a function name above an arrow enter \stackrel{f}{\longrightarrow}.

Setzer-0.4.4/data/resources/help/latex2e_17.html000066400000000000000000000213151420322575300214140ustar00rootroot00000000000000 Modes (LaTeX2e unofficial reference manual (October 2018))

Modes

As LaTeX processes your document, at any point it is in one of six modes. They fall into three categories of two each, the horizontal modes, the math modes, and the vertical modes. Some commands only work in one mode or another (in particular, many commands only work in one of the math modes), and error messages will refer to these.

  • Paragraph mode is what LaTeX is in when processing ordinary text. It breaks the input text into lines and breaks the lines into pages. This is the mode LaTeX is in most of the time.

    LR mode (for left-to-right mode; in plain TeX this is called restricted horizontal mode) is in effect when LaTeX starts making a box with an \mbox command. As in paragraph mode, LaTeX’s output is a string of words with spaces between them. Unlike in paragraph mode, in LR mode LaTeX never starts a new line, it just keeps going from left to right. (Although LaTeX will not complain that the LR box is too long, when it is finished and next tries to put that box into a line, it could very well complain that the finished LR box won’t fit there.)

  • Math mode is when LaTeX is generating an inline mathematical formula.

    Display math mode is when LaTeX is generating a displayed mathematical formula. (Displayed formulas differ somewhat from inline ones. One example is that the placement of the subscript on \int differs in the two situations.)

  • Vertical mode is when LaTeX is building the list of lines and other material making the output page. This is the mode LaTeX is in when it starts a document.

    Internal vertical mode is in effect when LaTeX starts making a \vbox. This is the vertical analogue of LR mode.

For instance, if you begin a LaTeX article with ‘Let \( x \) be ...’ then these are the modes: first LaTeX starts every document in vertical mode, then it reads the ‘L’ and switches to paragraph mode, then the next switch happens at the ‘\(’ where LaTeX changes to math mode, and then when it leaves the formula it pops back to paragraph mode.

Paragraph mode has two subcases. If you use a \parbox command or a minipage then LaTeX is put into paragraph mode. But it will not put a page break here. Inside one of these boxes, called a parbox, LaTeX is in inner paragraph mode. Its more usual situation, where it can put page breaks, is outer paragraph mode (see Page breaking).


\ensuremath

Synopsis:

\ensuremath{formula}

Ensure that formula is typeset in math mode.

For instance, you can redefine commands that ordinarily can be used only in math mode, so that they can be used both in math and in plain text.

\newcommand{\dx}{\ensuremath{dx}}
In $\int f(x)\, \dx$, the \dx{} is an infinitesimal.

Caution: the \ensuremath command is useful but not a panacea.

\newcommand{\alf}{\ensuremath{\alpha}}
You get an alpha in text mode: \alf.
But compare the correct spacing in $\alf+\alf$ with that in \alf+\alf.

Best is to typeset math things in a math mode.


Up: Modes   [Contents][Index]

Setzer-0.4.4/data/resources/help/latex2e_18.html000066400000000000000000000437141420322575300214240ustar00rootroot00000000000000 Page styles (LaTeX2e unofficial reference manual (October 2018))

Page styles

The style of a page determines where LaTeX places the components of that page, such as headers and footers, and the text body. This includes pages in the main part of the document but also includes special pages such as the title page of a book, a page from an index, or the first page of an article.

The package fancyhdr is very helpful for constructing page styles. See its documentation on CTAN.


\maketitle

Synopsis:

\maketitle

Generate a title. In the standard classes the title appears on a separate page, except in the article class where it is at the top of the first page. (See Document class options for information about the titlepage document class option.)

This example shows \maketitle appearing in its usual place, immediately after \begin{document}.

\documentclass{article}
\title{Constructing a Nuclear Reactor Using Only Coconuts}
\author{Jonas Grumby\thanks{%
    With the support of a Ginger Grant from the Roy Hinkley Society.} \\
  Skipper, \textit{Minnow}
  \and
  Willy Gilligan\thanks{%
    Thanks to the Mary Ann Summers foundation
    and to Thurston and Lovey Howell.}           \\
  Mate, \textit{Minnow}
  }
\date{1964-Sep-26}
\begin{document}
\maketitle
Just sit right back and you'll hear a tale, a tale of a fateful trip.
That started from this tropic port, aboard this tiny ship. The mate was
a mighty sailin' man, the Skipper brave and sure. Five passengers set
sail that day for a three hour tour. A three hour tour.
  ...

You tell LaTeX the information used to produce the title by making the following declarations. These must come before the \maketitle, either in the preamble or in the document body.

\author{name1 \and name2 \and ...}

Required. Declare the document author or authors. The argument is a list of authors separated by \and commands. To separate lines within a single author’s entry, for instance to give the author’s institution or address, use a double backslash, \\. If you omit the \author declaration then you get ‘LaTeX Warning: No \author given’.

\date{text}

Optional. Declare text to be the document’s date. The text doesn’t need to be in a date format; it can be any text at all. If you omit \date then LaTeX uses the current date (see \today). To have no date, instead use \date{}.

\thanks{text}

Optional. Produce a footnote. You can use it in the author information for acknowledgements as illustrated above, but you can also use it in the title, or any place a footnote makes sense. It can be any text at all so you can use it for any purpose, such as to print an email address.

\title{text}

Required. Declare text to be the title of the document. Get line breaks inside text with a double backslash, \\. If you omit the \title declaration then you get ‘LaTeX Error: No \title given’.

To make your own title page, see titlepage. You can either create this as a one-off or you can include it as part of a renewed \maketitle command. (Many publishers will provide a class to use in place of article that formats the title according to their house requirements.)


\pagenumbering

Synopsis:

\pagenumbering{number-style}

Specifies the style of page numbers, and resets the page number. The numbering style is reflected on the page, and also in the table of contents and other page references. This declaration has global scope so its effect is not delimited by braces or environments.

In this example, before the Main section the pages are numbered ‘a’, etc. Starting on the page containing that section, the pages are numbered ‘1’, etc.

\begin{document}\pagenumbering{alph}
  ...
\section{Main}\pagenumbering{arabic}
  ...

The argument number-style is one of the following (see also \alph \Alph \arabic \roman \Roman \fnsymbol).

arabic

Arabic numerals: 1, 2, …

roman

lowercase Roman numerals: i, ii, …

Roman

uppercase Roman numerals: I, II, …

alph

lowercase letters: a, b, … If you have more than 26 pages then you get ‘LaTeX Error: Counter too large’.

Alph

uppercase letters: A, B, … If you have more than 26 pages then you get ‘LaTeX Error: Counter too large’.

gobble

LaTeX does not output a page number, although it does get reset. References to that page also are blank. (This does not work with the popular package hyperref so to have the page number not appear you may want to instead use \pagestyle{empty} or \thispagestyle{empty}.)

Traditionally, if a document has front matter—preface, table of contents, etc.—then it is numbered with lowercase Roman numerals. The main matter of a document uses arabic. See \frontmatter & \mainmatter & \backmatter.

If you want to address where the page number appears on the page, see \pagestyle. If you want to change the value of page number then you will manipulate the page counter (see Counters).


\pagestyle

Synopsis:

\pagestyle{style}

Declaration that specifies how the page headers and footers are typeset, from the current page onwards.

A discussion with an example is below. Note first that the package fancyhdr is now the standard way to manipulate headers and footers. New documents that need to do anything other than one of the standard options below should use this package. See its documentation on CTAN.

Values for style:

plain

The header is empty. The footer contains only a page number, centered.

empty

The header and footer is empty.

headings

Put running headers and footers on each page. The document style specifies what goes in there; see the discussion below.

myheadings

Custom headers, specified via the \markboth or the \markright commands.

Some discussion of the motivation for LaTeX’s mechanism will help you work with the options headings or myheadings. The document source below produces an article, two-sided, with the pagestyle headings. On this document’s left hand pages, LaTeX wants (in addition to the page number) the title of the current section. On its right hand pages LaTeX wants the title of the current subsection. When it makes up a page, LaTeX gets this information from the commands \leftmark and \rightmark. So it is up to \section and \subsection to store that information there.

\documentclass[twoside]{article}
\pagestyle{headings}
\begin{document}
  ... \section{Section 1} ... \subsection{Subsection 1.1} ...
\section{Section 2}
  ...
\subsection{Subsection 2.1}
  ...
\subsection{Subsection 2.2}
  ...

Suppose that the second section falls on a left page. Although when the page starts it is in the first section, LaTeX will put ‘Section 2’ in the left page header. As to the right header, if no subsection starts before the end of the right page then LaTeX blanks the right hand header. If a subsection does appear before the right page finishes then there are two cases. If at least one subsection starts on the right hand page then LaTeX will put in the right header the title of the first subsection starting on that right page. If at least one of 2.1, 2.2, …, starts on the left page but none starts on the right then LaTeX puts in the right hand header the title of the last subsection to start, that is, the one in effect during the right hand page.

To accomplish this, in a two-sided article, LaTeX has \section issue a command \markboth, setting \leftmark to ‘Section 2’ and setting \rightmark to blank. And, LaTeX has \subsection issue a command \markright, setting \rightmark to ‘Subsection 2.1’, etc.

Here are the descriptions of \markboth and \markright:

\markboth{left-head}{right-head}

Sets both the right hand and left hand heading information for either a page style of headings or myheadings. A left hand page heading left-head is generated by the last \markboth command before the end of the page. A right hand page heading right-head is generated by the first \markboth or \markright that comes on the page if there is one, otherwise by the last one that came before that page.

\markright{right}

Sets the right hand page heading, leaving the left unchanged.


\thispagestyle

Synopsis:

\thispagestyle{style}

Works in the same way as the \pagestyle (see \pagestyle), except that it changes to style for the current page only. This declaration has global scope, so its effect is not delimited by braces or environments.

Often the first page of a chapter or section has a different style. For example, this LaTeX book document has the first page of the first chapter in plain style, as is the default (see Page styles).

\documentclass{book}
\pagestyle{headings}
\begin{document}
\chapter{First chapter}
  ...
\chapter{Second chapter}\thispagestyle{empty}
  ...

The plain style has a page number on it, centered in the footer. To make the page entirely empty, the command \thispagestyle{empty} immediately follows the second \chapter.

Setzer-0.4.4/data/resources/help/latex2e_19.html000066400000000000000000001271321420322575300214220ustar00rootroot00000000000000 Spaces (LaTeX2e unofficial reference manual (October 2018))

Spaces

LaTeX has many ways to produce white (or filled) space. Some of these are best suited to mathematical text; see Spacing in math mode. Some spacing commands are suitable for both regular text and mathematical text; versions of some of these commands are in this chapter.


\enspace & \quad & \qquad

Synopsis, one of:

\enspace
\quad
\qquad

Insert a horizontal space of 1/2em, 1em, or 2em. The em is a length defined by a font designer, often thought of as being the width of a capital M. One advantage of describing space in ems is that it can be more portable across documents than an absolute measurement such as points (see Lengths/em).

This puts a suitable gap between two graphics.

\begin{center}
  \includegraphics{womensmile.png}%
  \qquad\includegraphics{mensmile.png}
\end{center}

See Spacing in math mode for \quad and \qquad. These are lengths from centuries of typesetting and so may be a better choice in many circumstances than arbitrary lengths, such as you get with \hspace.


\hspace

Synopsis, one of:

\hspace{length}
\hspace*{length}

Insert the horizontal space length. The length can be positive, negative, or zero; adding negative space is like backspacing. It is a rubber length, that is, it may contain a plus or minus component, or both (see Lengths). Because the space is stretchable and shrinkable, it is sometimes called glue.

This makes a line with ‘Name:’ an inch from the right margin.

\noindent\makebox[\linewidth][r]{Name:\hspace{1in}}

The *-version inserts horizontal space that non-discardable. More precisely, when TeX breaks a paragraph into lines any white space—glues and kerns—that come at a line break are discarded. The *-version avoids that (technically, it adds a non-discardable invisible item in front of the space).

In this example

\parbox{0.8\linewidth}{%
  Fill in each blank: Four \hspace*{1in} and seven years ago our
  fathers brought forth on this continent, a new \hspace*{1in},
  conceived in \hspace*{1in}, and dedicated to the proposition
  that all men are created \hspace*{1in}.}

the 1 inch blank following ‘conceived in’ falls at the start of a line. If you erase the * then LaTeX discards the blank.

Here, the \hspace separates the three graphics.

\begin{center}
  \includegraphics{lion.png}%   comment keeps out extra space
  \hspace{1cm minus 0.25cm}\includegraphics{tiger.png}%
  \hspace{1cm minus 0.25cm}\includegraphics{bear.png}
\end{center}

Because the argument to each \hspace has minus 0.25cm, each can shrink a little if the three figures are too wide. But each space won’t shrink more than 0.25cm (see Lengths).


\hfill

Synopsis:

\hfill

Produce a rubber length which has no natural space but that can stretch horizontally as far as needed (see Lengths).

This creates a one-line paragraph with ‘Name:’ on the left side of the page and ‘Quiz One’ on the right.

\noindent Name:\hfill Quiz One

The \hfill command is equivalent to \hspace{\fill} and so the space can be discarded at line breaks. To avoid that instead use \hspace*{\fill} (see \hspace).

Here the graphs are evenly spaced in the middle of the figure.

\newcommand*{\vcenteredhbox}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}
  ...
\begin{figure}
  \hspace*{\fill}%
  \vcenteredhbox{\includegraphics{graph0.png}}%
    \hfill\vcenteredhbox{\includegraphics{graph1.png}}%
  \hspace*{\fill}%
  \caption{Comparison of two graphs} \label{fig:twographs}
\end{figure}

Note the \hspace*’s where the space could otherwise be dropped.


\hss

Synopsis:

\hss

Produce a horizontal space that is infinitely shrinkable as well as infinitely stretchable (this command is a TeX primitive). LaTeX authors should reach first for the \makebox command to get the effects of \hss (see \mbox & \makebox).

Here, the first line’s \hss makes the Z stick out to the right, overwriting the Y. In the second line the Z sticks out to the left, overwriting the X.

X\hbox to 0pt{Z\hss}Y
X\hbox to 0pt{\hss Z}Y

Without the \hss you get something like ‘Overfull \hbox (6.11111pt too wide) detected at line 20’.


\spacefactor

Synopsis:

\spacefactor=integer

Influence LaTeX’s glue stretch and shrink behavior. Most user-level documents do not use this command.

While LaTeX is laying out the material, it may stretch or shrink the gaps between words. (This space is not a character; it is called the interword glue; see \hspace). The \spacefactor command (from Plain TeX) allows you to, for instance, have the space after a period stretch more than the space after a word-ending letter.

After LaTeX places each character, or rule or other box, it sets a parameter called the space factor. If the next thing in the input is a space then this parameter affects how much stretching or shrinking can happen. A space factor that is larger than the normal value means that the glue can stretch more and shrink less. Normally, the space factor is 1000. This value is in effect following most characters, and any non-character box or math formula. But it is 3000 after a period, exclamation mark, or question mark, it is 2000 after a colon, 1500 after a semicolon, 1250 after a comma, and 0 after a right parenthesis or bracket, or closing double quote or single quote. Finally, it is 999 after a capital letter.

If the space factor f is 1000 then the glue gap will be the font’s normal space value (for Computer Modern Roman 10 point this is 3.3333 points). Otherwise, if the space factor f is greater than 2000 then TeX adds the font’s extra space value (for Computer Modern Roman 10 point this is 1.11111 points), and then the font’s normal stretch value is multiplied by f /1000 and the normal shrink value is multiplied by 1000/f (for Computer Modern Roman 10 point these are 1.66666 and 1.11111 points).

For example, consider the period ending A man's best friend is his dog. After it, TeX puts in a fixed extra space, and also allows the glue to stretch 3 times as much and shrink 1/3 as much, as the glue after friend, which does not end in a period.

The rules for space factors are even more complex because they play additional roles. In practice, there are two consequences. First, if a period or other punctuation is followed by a right parenthesis or bracket, or right single or double quote then the spacing effect of that period carries through those characters (that is, the following glue will have increased stretch and shrink). Second, if punctuation comes after a capital letter then its effect is not in place so you get an ordinary space. This second case also affects abbreviations that do not end in a capital letter (see \@).

You can only use \spacefactor in paragraph mode or LR mode (see Modes). You can see the current value with \the\spacefactor or \showthe\spacefactor.

(Comment, not really related to \spacefactor: if you get errors like ‘You can't use `\spacefactor' in vertical mode’, or ‘You can't use `\spacefactor' in math mode.’, or ‘Improper \spacefactor’ then you have probably tried to redefine an internal command. See \makeatletter & \makeatother.)


\@

Synopsis:

capital-letter\@.    

Treat a period as sentence-ending, where LaTeX would otherwise think it is part of an abbreviation. LaTeX thinks that a period ends an abbreviation if the period comes after a capital letter, and otherwise thinks the period ends the sentence. By default, in justifying a line LaTeX adjusts the space after a sentence-ending period (or a question mark, exclamation point, comma, or colon) more than it adjusts the space between words (see \spacefactor).

This example shows the two cases to remember.

The songs \textit{Red Guitar}, etc.\ are by Loudon Wainwright~III\@.

The second period ends the sentence, despite that it is preceded by a capital. We tell LaTeX that it ends the sentence by putting \@ before it. The first period ends the abbreviation ‘etc.’ but not the sentence. The backslash-space, \ , produces a mid-sentence space.

So: if you have a capital letter followed by a period that ends the sentence, then put \@ before the period. This holds even if there is an intervening right parenthesis or bracket, or right single or double quote, because the spacing effect of that period carries through those characters. For example, this

Use the \textit{Instructional Practices Guide},
(a book by the MAA)\@.

will have correct inter-sentence spacing after the period.

The \@ command is only for a text mode. If you use it outside of a text mode then you get ‘You can't use `\spacefactor' in vertical mode’ (see Modes).

Comment: the converse case is a period ending an abbreviation whose last letter is not a capital letter, and that abbreviation is not the last word in the sentence. For that case follow the period with a backslash-space, (\ ), or a tie, (~), or \@. Examples are Nat.\ Acad.\ Science, and Mr.~Bean, and (manure, etc.\@) for sale (note in the last one that the \@ comes before the closing parenthesis).


\frenchspacing

Synopsis, one of:

\frenchspacing
\nonfrenchspacing

The first declaration causes LaTeX to treat spacing between sentences in the same way as spacing between words in the middle of a sentence. The second causes spacing between sentences to stretch or shrink more (see \spacefactor); this is the default.

Some typographic traditions, including English, prefer to adjust the space between sentences (or spaces following a question mark, exclamation point, comma, or colon) more than the space between words that are in the middle of a sentence. Declaring \frenchspacing (the command is from Plain TeX) switches to the tradition that all spaces are treated equally.


\normalsfcodes

Synopsis:

\normalsfcodes

Reset the LaTeX space factor values to the default (see \spacefactor).


Backslash-space, \

This section refers to the command consisting of two characters, a backslash followed by a space. Synopsis:

\    

Produce a space. By default it produces white space of length 3.33333pt plus 1.66666pt minus 1.11111pt.

When you type one or more blanks between words, LaTeX produces white space. But that is different than an explicit space. This illustrates.

\begin{tabular}{l}
One blank: makes some space \\
Three blanks:   in a row \\
Three spaces:\ \ \ in a row \\
\end{tabular}

On the first line LaTeX puts some space after the colon. On the second line LaTeX collapses the three blanks to output one whitespace, so you end with the same space after the colon as in the first line. LaTeX would similarly collapse a blank followed by a tab, or a blank and a newline and a blank. However, the bottom line asks for three spaces so the white area is wider. That is, the backslash-space command creates a fixed amount of horizontal space. (Note that you can define a horizontal space of any width at all with \hspace; see \hspace.)

The backslash-space command has two main uses. It is often used after control sequences to keep them from gobbling the space that follows, as in \TeX\ is nice. (But using curly parentheses, as in \TeX{} is best, has the advantage of still working if the next character is a period.) The other common use is that it marks a period as ending an abbreviation instead of ending a sentence, as in So says Prof.\ Smith (see \@).

Under normal circumstances, \tab and \newline are equivalent to backslash-space, \ .


~

Synopsis:

before~after

The tie character, ~, produces a space between before and after at which the line will not be broken. By default the white space has length 3.33333pt plus 1.66666pt minus 1.11111pt (see Lengths).

Here LaTeX will not break the line between the final two words.

Thanks to Prof.~Lerman.

In addition, despite the period, LaTeX does not use the end-of-sentence spacing (see \@).

Ties prevent the end of line separation of things where that could cause confusion. But they also reduce LaTeX’s options when it breaks lines into paragraphs, so you can use too many. They are also matters of taste, sometimes alarmingly dogmatic taste, among readers. Nevertheless, here are some usage models, many of them from the TeXbook.

  • Between an enumerator and its item, such as in references: Chapter~12, or Theorem~\ref{th:Wilsons}, or Figure~\ref{fig:KGraph}. When cases are enumerated inline: (b)~Show that $f(x)$ is (1)~continuous, and (2)~bounded.
  • Between a number and its unit: $745.7.8$~watts (the siunitx package has a special facility for this) or 144~eggs. This includes between a month and a date: October~12 or 12~Oct. In general, in any expressions where numbers and abbreviations or symbols are separated by a space: AD~565, or 2:50~pm, or Boeing~747, or 268~Plains Road, or \$$1.4$~billion.
  • When mathematical phrases are rendered in words: equals~$n$, or less than~$\epsilon$, or given~$X$, or modulo~$p^e$ for all large~$n$ (but compare is~$15$ with is $15$~times the height). Between mathematical symbols in apposition with nouns: dimension~$d$ or function~$f(x)$ (but compare with length $l$~or more). When a symbol is a tightly bound object of a preposition: of~$x$, or from $0$ to~$1$, or in common with~$m$.
  • Between symbols in series: $1$,~$2$, or~$3$ or $1$,~$2$, \ldots,~$n$.
  • Between a person’s forenames and between multiple surnames: Donald~E. Knuth, or Luis~I. Trabb~Pardo, or Charles~XII (but you must give TeX places to break the line so you may do Charles Louis Xavier~Joseph de~la Vall\'ee~Poussin).
  • Before a dash: pages 12~--14 or it is~--- it must be said~--- plausible.

\thinspace & \negthinspace

Synopsis, one of:

\thinspace
\negthinspace

Produce an unbreakable and unstretchable space of 1/6em and -1/6em. These are the text mode equivalents of \, and \! (see Spacing in math mode/\thinspace). You can use \, as a synonym for \thinspace in text mode.

The \negthinspace command is used in text mode mostly for fiddling with spaces. One common use of \thinspace is as the space between nested quotes.

Killick replied, ``I heard the Captain say, `Ahoy there.'\thinspace''

Another use is that some style guides call for a \thinspace between an ellipsis and a sentence ending period (other style guides, though, think the three dots are quite enough already). Still another use is between initials, as in D.\thinspace E.\ Knuth.


\/

Synopsis:

before-character\/after-character

Insert an italic correction, a small space defined by the font designer for each character, to avoid the character colliding with whatever follows. When you use \/, LaTeX takes the correction from the font metric file, scales it by any scaling that has been applied to the font, and then inserts that much horizontal space.

Here, were it not for the \/, the before-character italic f would hit the after-character roman H

\newcommand{\companylogo}{{\it f}\/H}

because the italic letter leans far to the right.

If after-character is a period or comma then don’t insert an italic correction since those punctuation symbols have a very small height. However, with semicolons or colons as well as with normal letters, the italic correction can help.

When you use commands such as \textit or \itshape to change fonts, LaTeX will automatically insert any needed italic correction (see Font styles).

Roman characters can also have an italic correction. An example is in the name pdf\/\TeX.

There is no concept of italic correction in math mode; spacing is done in a different way.


\hrulefill & \dotfill

Synopsis, one of:

\hrulefill
\dotfill

Produce an infinite horizontal rubber length (see Lengths) that LaTeX fills with a rule (that is, a line) or with dots, instead of white space.

This outputs a line 2 inches long.

Name:~\makebox[2in]{\hrulefill}

This example, when placed between blank lines, creates a paragraph that is left and right justified and where the middle is filled with evenly spaced dots.

\noindent John Aubrey, RN \dotfill{} Melbury Lodge

To make the rule or dots go to the line’s end use \null at the start or end.

To change the rule’s thickness, copy the definition and adjust it, as here

\renewcommand{\hrulefill}{%
  \leavevmode\leaders\hrule height 1pt\hfill\kern\z@}

which changes the default thickness of 0.4pt to 1pt. Similarly, adjust the dot spacing as with

\renewcommand{\dotfill}{%
  \leavevmode\cleaders\hb@xt@1.00em{\hss .\hss }\hfill\kern\z@}

which changes the default length of 0.33em to 1.00em.

This example produces a line for a signature.

\begin{minipage}{4cm}
  \centering
  \hrulefill\\
  Signed
\end{minipage}

The line is 4cm long.


\bigskip & \medskip & \smallskip

Synopsis, one of:

\bigskip
\medskip
\smallskip

Produce an amount of vertical space, large or medium-sized or small. These commands are fragile (see \protect).

Here the skip suggests the passage of time (from The Golden Ocean by O’Brian).

Mr Saumarez would have something rude to say to him, no doubt: he
was at home again, and it was delightful.

\bigskip
``A hundred and fifty-seven miles and one third, in twenty-four hours,''
said Peter.

Each command is associated with a length defined in the document class file.

\bigskip

The same as \vspace{\bigskipamount}, ordinarily about one line space, with stretch and shrink. The default for the book and article classes is 12pt plus 4pt minus 4pt.

\medskip

The same as \vspace{\medskipamount}, ordinarily about half of a line space, with stretch and shrink. The default for the book and article classes is 6pt plus 2pt minus 2pt.

\smallskip

The same as \vspace{\smallskipamount}, ordinarily about a quarter of a line space, with stretch and shrink. The default for the book and article classes is 3pt plus 1pt minus 1pt.

Because each command is a \vspace, if you use on in mid-paragraph then it will insert its vertical space between the line in which you use it and the next line, not necessarily at the place that you use it. So these are best between paragraphs.

The commands \bigbreak, \medbreak, and \smallbreak are similar but also suggest to LaTeX that this is a good place to put a page break (see \bigbreak & \medbreak & \smallbreak.


\bigbreak & \medbreak & \smallbreak

Synopsis, one of:

\bigbreak
\medbreak
\smallbreak

Produce a vertical space that is big or medium-sized or small, and suggest to LaTeX that this is a good place to break the page. (The associated penalties are -200, -100, and -50.)

See \bigskip & \medskip & \smallskip, for more. These commands produce the same vertical space but differ in that they also remove a preceding vertical space if it is less than what they would insert (as with \addvspace). In addition, they terminate a paragraph where they are used: this example

abc\bigbreak def ghi

jkl mno pqr

will output three paragraphs, the first ending in ‘abc’ and the second starting, after an extra vertical space and a paragraph indent, with ‘def’.


\strut

Synopsis:

\strut

Ensure that the current line has height at least 0.7\baselineskip and depth at least 0.3\baselineskip. Essentially, LaTeX inserts into the line a rectangle having zero width, \rule[-0.3\baselineskip]{0pt}{\baselineskip} (see \rule). The \baselineskip changes with the current font and fontsize.

In this example the \strut keeps the box inside the frame from having zero height.

\setlength{\fboxsep}{0pt}\framebox[2in]{\strut}

This example has four lists. In the first there is a much bigger gap between items 2 and 3 than there is between items 1 and 2. The second list fixes that with a \strut at the end of its first item’s second line.

\setlength{\fboxsep}{0pt}
\noindent\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
  \item \parbox[t]{15pt}{test \\ test}
  \item test
  \item test
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
  \item \parbox[t]{15pt}{test \\ test\strut}
  \item test
  \item test
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
  \item \fbox{\parbox[t]{15pt}{test \\ test}}
  \item \fbox{test}
  \item \fbox{test}
\end{enumerate}
\end{minipage}%
\begin{minipage}[t]{0.2\linewidth}
\begin{enumerate}
  \item \fbox{\parbox[t]{15pt}{test \\ test\strut}}
  \item \fbox{test}
  \item \fbox{test}
\end{enumerate}
\end{minipage}%

The final two lists use \fbox to show what’s happening. The third list’s \parbox goes only to the bottom of its second ‘test’, which happens not have any characters that descend below the baseline. The fourth list adds the strut that gives the needed extra below-baseline space.

The \strut command is often useful in graphics, such as in TikZ or Asymptote. For instance, you may have a command such as \graphnode{node-name} that fits a circle around node-name. However, unless you are careful the node-name’s ‘x’ and ‘y’ will produce different-diameter circles because the characters are different sizes. A careful \graphnode might insert a \strut, then node-name, and then draw the circle.

The general approach of using a zero width \rule is useful in many circumstances. In this table, the zero-width rule keeps the top of the first integral from hitting the \hline. Similarly, the second rule keeps the second integral from hitting the first.

\begin{tabular}{rl}
  \textsc{Integral}   &\textsc{Value}           \\
  \hline
  $\int_0^x t\, dt$   &$x^2/2$  \rule{0em}{2.5ex} \\  
  $\int_0^x t^2\, dt$ &$x^3/3$  \rule{0em}{2.5ex}
\end{tabular}

(Although the line-ending double backslash command has an available optional argument to put in more vertical room, that won’t work here. Changing the first double backslash to something like \\[2.5ex] will put the room between the header line and the \hline, and the integral would still hit the line.)


\vspace

Synopsis, one of:

\vspace{length}
\vspace*{length}

Add the vertical space length. The length can be positive, negative, or zero. It is a rubber length—it may contain a plus or minus component (see Lengths).

This puts space between the two paragraphs.

And I slept.

\vspace{1ex plus 0.5ex}
The new day dawned cold.

(See \bigskip & \medskip & \smallskip for common inter-paragraph spaces.)

The *-version inserts vertical space that non-discardable. More precisely, LaTeX discards vertical space at a page break and the *-version causes the space to stay. This example leaves space between the two questions.

Question: Find the integral of \( 5x^4+5 \).

\vspace*{2cm plus 0.5cm}
Question: Find the derivative of \( x^5+5x+9 \).

That space will be present even if the page break happens to fall between the questions.

If you use \vspace in the middle of a paragraph (i.e., in horizontal mode) then the space is inserted after the line containing the \vspace command; it does not start a new paragraph at the \vspace command.

In this example the two questions will be evenly spaced vertically on the page, with at least one inch of space below each.

\begin{document}
1) Who put the bomp in the bomp bah bomp bah bomp?
\vspace{1in plus 1fill}

2) Who put the ram in the rama lama ding dong?
\vspace{1in plus 1fill}
\end{document}

\vfill

Synopsis:

\vfill

End the current paragraph and insert a vertical rubber length that is infinite, so it can stretch or shrink as far as needed (see Lengths).

It is often used in the same way as \vspace{\fill}, except that \vfill ends the current paragraph whereas \vspace{\fill} adds the infinite vertical space below its line, irrespective of the paragraph structure. In both cases that space will disappear at a page boundary; to circumvent this see the starred option in \vspace.

In this example the page is filled, so the top and bottom lines contain the text ‘Lost Dog!’ and the second ‘Lost Dog!’ is exactly halfway between them.

\begin{document}
Lost Dog!
\vfill
Lost Dog!  % perfectly in the middle
\vfill
Lost Dog!
\end{document}

\addvspace

Synopsis:

\addvspace{vert-length}

Add a vertical space of vert-length. However, if there are two or more \addvspace’s in a sequence then together they only add the space needed to make the natural length equal to the maximum of the vert-length’s in that sequence. This command is fragile (see \protect). The vert-length is a rubber length (see Lengths).

This example illustrates. The picture draws a scale. In a standard LaTeX article the length \baselineskip is 12pt. The two rules here are 22pt apart: the sum of the \baselineskip and the 10pt from the first addvspace.

\documentclass{article}
\usepackage{color}
\begin{document}
\setlength{\unitlength}{2pt}%
\noindent\begin{picture}(0,0)%
  \multiput(0,0)(0,-1){25}{{\color{blue}\line(1,0){1}}}
  \multiput(0,0)(0,-5){6}{{\color{red}\line(1,0){2}}}
\end{picture}%
\rule{0.25\linewidth}{0.1pt}% 
\par\addvspace{10pt}% \addvspace{20pt}%
\par\noindent\rule{0.25\linewidth}{0.1pt}%
\end{document}

Now uncomment the second \addvspace. It does not make the gap 20pt longer; instead the gap is the sum of \baselineskip and 20pt. So \addvspace in a sense does the opposite of its name — it makes sure that multiple vertical spaces do not accumulate, but instead that only the largest one is used.

LaTeX uses this command to adjust the vertical space above or below an environment that starts a new paragraph. For instance, a theorem environment begins and ends with \addvspace so that two consecutive theorem’s are separated by one vertical space, not two.

A error ‘Something's wrong--perhaps a missing \item’ pointing to an \addvspace means that you were not in vertical mode when you hit this command. One way to change that is to precede \addvspace with a \par command (see \par), as in the above example.

Setzer-0.4.4/data/resources/help/latex2e_2.html000066400000000000000000000526151420322575300213350ustar00rootroot00000000000000 Overview (LaTeX2e unofficial reference manual (October 2018))

Overview of LaTeX

LaTeX is a system for typesetting documents. It was originally created by Leslie Lamport and is now maintained by a group of volunteers (http://latex-project.org). It is widely used, particularly for complex and technical documents, such as those involving mathematics.

A LaTeX user writes an input file containing text along with interspersed commands, for instance commands describing how the text should be formatted. It is implemented as a set of related commands that interface with Donald E. Knuth’s TeX typesetting program (the technical term is that LaTeX is a macro package for the TeX engine). The user produces the output document by giving that input file to the TeX engine.

The term LaTeX is also sometimes used to mean the language in which the document is marked up, that is, to mean the set of commands available to a LaTeX user.

The name LaTeX is short for “Lamport TeX”. It is pronounced LAH-teck or LAY-teck, or sometimes LAY-tecks. Inside a document, produce the logo with \LaTeX. Where use of the logo is not sensible, such as in plain text, write it as ‘LaTeX’.


Starting and ending

LaTeX files have a simple global structure, with a standard beginning and ending. This is a small example.

\documentclass{article}
\begin{document}
Hello, \LaTeX\ world.
\end{document}

Every LaTeX document has a \begin{document} line and an \end{document} line.

Here, the ‘article’ is the document class. It is implemented in a file article.cls. You can use any document class on your system. A few document classes are defined by LaTeX itself, and vast array of others are widely available. See Document classes.

You can include other LaTeX commands between the \documentclass and the \begin{document} commands. This area is called the preamble.

The \begin{document}, \end{document} pair defines an environment; the ‘document’ environment (and no others) is required in all LaTeX documents (see document). LaTeX make available to you many environments that are documented here (see Environments). Many more are available to you from external packages, most importantly those available at CTAN (see CTAN).

The following sections discuss how to produce PDF or other output from a LaTeX input file.


Output files

LaTeX produces a main output file and at least two auxiliary files. The main output file’s name ends in either .dvi or .pdf.

.dvi

If LaTeX is invoked with the system command latex then it produces a DeVice Independent file, with extension .dvi. You can view this file with a command such as xdvi, or convert it to a PostScript .ps file with dvips or to a Portable Document Format .pdf file with dvipdfmx. The contents of the file can be dumped in human-readable form with dvitype. A vast array of other DVI utility programs are available (http://mirror.ctan.org/dviware).

.pdf

If LaTeX is invoked via the system command pdflatex, among other commands (see TeX engines), then the main output is a Portable Document Format (PDF) file. Typically this is a self-contained file, with all fonts and images included.

LaTeX also produces at least two additional files.

.log

This transcript file contains summary information such as a list of loaded packages. It also includes diagnostic messages and perhaps additional information for any errors.

.aux

Auxiliary information is used by LaTeX for things such as cross references. For example, the first time that LaTeX finds a forward reference—a cross reference to something that has not yet appeared in the source—it will appear in the output as a doubled question mark ??. When the referred-to spot does eventually appear in the source then LaTeX writes its location information to this .aux file. On the next invocation, LaTeX reads the location information from this file and uses it to resolve the reference, replacing the double question mark with the remembered location.

LaTeX may produce yet more files, characterized by the filename ending. These include a .lof file that is used to make a list of figures, a .lot file used to make a list of tables, and a .toc file used to make a table of contents (see Table of contents etc.). A particular class may create others; the list is open-ended.


TeX engines

LaTeX is defined to be a set of commands that are run by a TeX implementation (see Overview). This section gives a terse overview of the main programs (see also Command line).

latex
pdflatex

In TeX Live (http://tug.org/texlive), if LaTeX is invoked via either the system command latex or pdflatex, then the pdfTeX engine is run (http://ctan.org/pkg/pdftex). When invoked as latex, the main output is a .dvi file; as pdflatex, the main output is a .pdf file.

pdfTeX incorporates the e-TeX extensions to Knuth’s original program (http://ctan.org/pkg/etex), including additional programming features and bi-directional typesetting, and has plenty of extensions of its own. e-TeX is available on its own as the system command etex, but this is plain TeX (and produces .dvi).

In other TeX distributions, latex may invoke e-TeX rather than pdfTeX. In any case, the e-TeX extensions can be assumed to be available in LaTeX.

lualatex

If LaTeX is invoked via the system command lualatex, the LuaTeX engine is run (http://ctan.org/pkg/luatex). This program allows code written in the scripting language Lua (http://luatex.org) to interact with TeX’s typesetting. LuaTeX handles UTF-8 Unicode input natively, can handle OpenType and TrueType fonts, and produces a .pdf file by default. There is also dvilualatex to produce a .dvi file, but this is rarely used.

xelatex

If LaTeX is invoked with the system command xelatex, the XeTeX engine is run (http://tug.org/xetex). Like LuaTeX, XeTeX natively supports UTF-8 Unicode and TrueType and OpenType fonts, though the implementation is completely different, mainly using external libraries instead of internal code. XeTeX produces a .pdf file as output; it does not support DVI output.

Internally, XeTeX creates an .xdv file, a variant of DVI, and translates that to PDF using the (x)dvipdfmx program, but this process is automatic. The .xdv file is only useful for debugging.

Other variants of LaTeX and TeX exist, e.g., to provide additional support for Japanese and other languages ([u]pTeX, http://ctan.org/pkg/ptex, http://ctan.org/pkg/uptex).


LaTeX command syntax

In the LaTeX input file, a command name starts with a backslash character, \. The name itself then consists of either (a) a string of letters or (b) a single non-letter.

LaTeX commands names are case sensitive so that \pagebreak differs from \Pagebreak (the latter is not a standard command). Most commands are lowercase, but in any event you must enter all commands in the same case as they are defined.

A command may be followed by zero, one, or more arguments. These arguments may be either required or optional. Required arguments are contained in curly braces, {...}. Optional arguments are contained in square brackets, [...]. Generally, but not universally, if the command accepts an optional argument, it comes first, before any required arguments.

Inside of an optional argument, to use the character close square bracket (]) hide it inside curly braces, as in \item[closing bracket {]}]. Similarly, if an optional argument comes last, with no required argument after it, then to make the first character of the following text be an open square bracket, hide it inside curly braces.

Some of LaTeX’s commands are a declaration. Such a command changes the value the meaning of some other command or parameter. For instance, the \mainmatter declaration changes the typesetting of page numbers from roman numerals to arabic (see \frontmatter & \mainmatter & \backmatter).

LaTeX has the convention that some commands have a * form that is related to the form without a *, such as \chapter and \chapter*. The exact difference in behavior varies from command to command.

This manual describes all accepted options and *-forms for the commands it covers (barring unintentional omissions, a.k.a. bugs).


Environment

Synopsis:

\begin{environment name}
  ...
\end{environment name}

An area of LaTeX source, inside of which there is a distinct behavior. For instance, for poetry in LaTeX put the lines between \begin{verse} and \end{verse}.

\begin{verse}
  There once was a man from Nantucket \\
  ...
\end{verse}

See Environments for a list of environments. Particularly notable is that every LaTeX document must have a document environment, a \begin{document} ... \end{document} pair.

The environment name at the beginning must exactly match that at the end. This includes the case where environment name ends in a star (*); both the \begin and \end texts must include the star.

Environments may have arguments, including optional arguments. This example produces a table. The first argument is optional (and causes the table to be aligned on its top row) while the second argument is required (it specifies the formatting of columns).

\begin{tabular}[t]{r|l}
  ... rows of table ...
\end{tabular}

CTAN: the Comprehensive TeX Archive Network

The Comprehensive TeX Archive Network, CTAN, is the TeX and LaTeX community’s repository of free material. It is a set of Internet sites around the world that offer material related to LaTeX for download. Visit CTAN on the web at https://ctan.org.

This material is organized into packages, discrete bundles that typically offer some coherent functionality and are maintained by one person or a small number of people. For instance, many publishers have a package that allows authors to format papers to that publisher’s specifications.

In addition to the massive holdings, the web site offers features such as search by name or by functionality.

CTAN is not a single site, but instead is a set of sites. One of the sites is the core. This site actively manages the material, for instance, by accepting uploads of new or updated packages. It is hosted by the German TeX group DANTE e.V. Other sites around the world help out by mirroring, that is, automatically syncing their collections with the core site and then in turn making their copies publicly available. This gives users close to their location better access and relieves the load on the core site. The list of mirrors is at https://ctan.org/mirrors.

Setzer-0.4.4/data/resources/help/latex2e_20.html000066400000000000000000000622051420322575300214110ustar00rootroot00000000000000 Boxes (LaTeX2e unofficial reference manual (October 2018))

Boxes

At its core, LaTeX puts things in boxes and then puts the boxes on a page. So these commands are central.

There are many packages on CTAN that are useful for manipulating boxes. One useful adjunct to the commands here is adjustbox.


\mbox & \makebox

Synopsis, one of:

\mbox{text}
\makebox{text}
\makebox[width]{text}
\makebox[width][position]{text}

Create a box, a container for material. The text is typeset in LR mode (see Modes) so it is not broken into lines. The \mbox command is robust, while \makebox is fragile (see \protect).

Because text is not broken into lines, you can use \mbox to prevent hyphenation. In this example, LaTeX will not hyphenate the table name, ‘T-4’.

See Table~\mbox{T-4}

The first two command versions, \mbox and \makebox, are roughly equivalent. They create a box just wide enough to contain the text. (They are like plain TeX’s \hbox.)

In the third version the optional argument width specifies the width of the box. Note that the space occupied by the text need not equal the width of the box. For one thing, text can be too small; this creates a full-line box

\makebox[\linewidth]{Chapter Exam}

with ‘Chapter Exam’ centered. But text can also be too wide for width. See the example below of zero-width boxes.

In the width argument you can use the following lengths that refer to the dimension of the box that LaTeX gets on typesetting text: \depth, \height, \width, \totalheight (this is the box’s height plus its depth). For example, to make a box with the text stretched to double the natural size you can say this.

\makebox[2\width]{Get a stretcher}

For the fourth command version the optional argument position gives position of the text within the box. It may take the following values:

c

The text is centered (default).

l

The text is flush left.

r

Flush right.

s

Stretch the interword space in text across the entire width. The text must contain stretchable space for this to work. For instance, this could head a press release: \noindent\makebox[\textwidth][s]{\large\hfil IMMEDIATE\hfil RELEASE\hfil}

A common use of \makebox is to make zero-width text boxes. This puts the value of the quiz questions to the left of those questions.

\newcommand{\pts}[1]{\makebox[0em][r]{#1 points\hspace*{1em}}}
\pts{10}What is the air-speed velocity of an unladen swallow?

\pts{90}An African or European swallow?

The right edge of the output ‘10 points ’ (note the ending space) will be just before the ‘What’ (note the space after ‘points’). You can use \makebox similarly when making graphics, such as in TikZ or Asymptote, where you put the edge of the text at a known location, regardless of the length of that text.

For boxes with frames see \fbox & \framebox. For colors see Colored boxes.

There is a related version of \makebox that is used within the picture environment, where the length is given in terms of \unitlength (see \makebox (picture)).

If you put a double-backslash into text then LaTeX will not give you a new line; for instance \makebox{abc def \\ ghi} outputs ‘abc defghi’ while \makebox{abc def \par ghi} outputs ‘abc def ghi’, but neither go to a second line. To get multiple lines see \parbox and minipage.


\fbox & \framebox

Synopses, one of:

\fbox{text}
\framebox{text}
\framebox[width]{text}
\framebox[width][position]{text}

Create a box with an enclosing frame, four lines surrounding the space. These commands are the same as \mbox and \makebox except for the frame (see \mbox & \makebox). The \fbox command is robust, the \framebox command is fragile (see \protect).

\fbox{Warning! No work shown, no credit given.}

LaTeX puts the text into a box that cannot be split or hyphenated. Around that box, separated from it by a small gap, are four lines making a frame.

The first two command invocations, \fbox{...} and \framebox{...}, are roughly the same. As to the third and fourth invocations, the optional arguments allow you to specify the box width as width and the position of the text inside that box as position. See \mbox & \makebox for the full description but here is an example creating an empty box that is 1/4in wide.

\setlength{\fboxsep}{0pt}\framebox[0.25in]{\strut}}

The \strut inserts a vertical height of \baselineskip (see \strut).

These parameters determine the frame layout.

\fboxrule

The thickness of the lines around the enclosed box. The default is 0.2pt. Change it with a command such as \setlength{\fboxrule}{0.8pt} (see \setlength).

\fboxsep

The distance from the frame to the enclosed box. The default is 3pt. Change it with a command such as \setlength{\fboxsep}{0pt} (see \setlength). Setting it to 0pt is useful sometimes: this will put a frame around the picture with no white border.

{\setlength{\fboxsep}{0pt}
 \framebox{%
   \includegraphics[width=0.5\textwidth]{prudence.jpg}}}

The extra curly braces keep the effect of the \setlength local.

As with \mbox and \makebox, LaTeX will not break lines in text. But this example has LaTeX break lines to make a paragraph, and then frame the result.

\framebox{%
  \begin{minipage}{0.6\linewidth}
    My dear, here we must run as fast as we can, just to stay in place.
    And if you wish to go anywhere you must run twice as fast as that.
  \end{minipage}}

See Colored boxes for colors other than black and white.

The picture environment has a version of this command where the units depend on picture’s \unitlength (see \framebox (picture)).


\parbox

Synopses, one of:

\parbox{width}{contents}
\parbox[position]{width}{contents}
\parbox[position][height]{width}{contents}
\parbox[position][height][inner-pos]{width}{contents}

Produce a box of text that is width wide. Use this command to make a box of small pieces of text, of a single paragraph. This command is fragile (see \protect).

\begin{picture}(0,0)
  ...
  \put(1,2){\parbox{1.75in}{\raggedright Because the graph is a line on
                         this semilog paper, the relationship is
                         exponential.}}
\end{picture}

The contents are processed in a text mode (see Modes) so LaTeX will break lines to make a paragraph. But it won’t make multiple paragraphs; for that, use a minipage environment (see minipage).

The options for \parbox (except for contents) are the same as those for minipage. For convenience a summary of the options is here but see minipage for a complete description.

There are two required arguments. The width is a rigid length (see Lengths). It sets the width of the box into which LaTeX typesets contents. The contents is the text that is placed in that box. It should not have any paragraph-making components.

There are three optional arguments, position, height, and inner-pos. The position gives the vertical alignment of the parbox with respect to the surrounding material. The possible values are c or m to make the vertical center of the parbox lines up with the center of the adjacent line (this is the default), or t to match the top line of the parbox with the baseline of the surrounding material, or b to match the bottom line.

The optional argument height overrides the natural height of the box.

The optional argument inner-pos controls the placement of content inside the parbox. Its default is the value of position. Its possible values are: t to put the content at the top of the box, c to put it in the vertical center, b to put it at the bottom of the box, and s to stretch it out vertically (for this, the text must contain vertically stretchable space).


\raisebox

Synopsis, one of:

\raisebox{distance}{text}
\raisebox{distance}[height]{text}
\raisebox{distance}[height][depth]{text}

Raise or lower text. This command is fragile (see \protect).

This example makes a command for the restriction of a function by lowering the vertical bar symbol.

\newcommand\restricted[1]{\raisebox{-.5ex}{$|$}_{#1}}
$f\restricted{A}$

The first mandatory argument distance specifies how far to raise the second mandatory argument text. This is a rigid length (see Lengths). If it is negative then it lowers text. The text is processed in LR mode so it cannot contain line breaks (see Modes).

The optional arguments height and depth are dimensions. If they are specified, they override the natural height and depth of the box LaTeX gets by typesetting text.

In the arguments distance, height, and depth you can use the following lengths that refer to the dimension of the box that LaTeX gets on typesetting text: \depth, \height, \width, \totalheight (this is the box’s height plus its depth).

This will align two graphics on their top (see Graphics).

\usepackage{graphicx} \usepackage{calc}  % in preamble
   ...
\begin{center}
  \raisebox{1ex-\height}{%
    \includegraphics[width=0.4\linewidth]{lion.png}}
  \qquad
  \raisebox{1ex-\height}{%
    \includegraphics[width=0.4\linewidth]{meta.png}}
\end{center}

The first \height is the height of lion.png while the second is the height of meta.png.


\sbox & \savebox

Synopsis, one of:

\sbox{box-cmd}{text}
\savebox{box-cmd}{text}
\savebox{box-cmd}[width]{text}
\savebox{box-cmd}[width][pos]{text}

Typeset text just as with \makebox (see \mbox & \makebox) except that LaTeX does not output it but instead saves it in a storage bin named box-cmd. The bin name box-cmd begins with a backslash, \. You must have previously allocated the bin box-cmd with \newsavebox (see \newsavebox).The \sbox command is robust while \savebox is fragile (see \protect).

This creates and uses a bin.

\newsavebox{\fullname}
\sbox{\fullname}{John Jacob Jingleheimer Schmidt}
  ...
\usebox{\fullname}! His name is my name, too!
Whenever we go out, the people always shout!
There goes \\usebox{\fullname}!  Ya da da da da da da.

One advantage of using and reusing a bin over a \newcommand is efficiency, that LaTeX need not repeatedly retypeset the contents. See the example below.

The first two command invocations, \sbox{box-cmd}{text} and \savebox{box-cmd}{text}, are roughly equivalent. As to the third and fourth, the optional arguments allow you to specify the box width as width, and the position of the text inside that box as position. See \mbox & \makebox for the full description.

In the \sbox and \savebox commands the text is typeset in LR mode so it does not have line breaks (see Modes). If you use these then LaTeX doesn’t give you an error but it ignores what you want: if you enter \sbox{\newbin}{test \\ test} and \usebox{\newbin} then you get ‘testtest’, while if you enter \sbox{\newbin}{test \par test} and \usebox{\newbin} then you get ‘test test’, but no error or warning. To fix this use a \parbox or minipage as here.

\savebox{\abin}{%
  \begin{minipage}{\linewidth}
    \begin{enumerate}
      \item First item
      \item Second item
    \end{enumerate}
  \end{minipage}}
  ...
\usebox{\abin}

As an example of the efficiency of reusing a bin’s contents, this puts the same picture on each page of the document by putting it in the header. LaTeX only typesets it once.

\usepackage{graphicx}  % all this in the preamble
\newsavebox{\sealbin}
\savebox{\sealbin}{%
  \setlength{\unitlength}{1in}%
  \begin{picture}(0,0)%
     \put(1.5,-2.5){%
       \begin{tabular}{c}
          \includegraphics[height=2in]{companylogo.png} \\
          Office of the President
       \end{tabular}}
  \end{picture}%
}
\markright{\usebox{\sealbin}}
\pagestyle{headings}

The picture environment is good for fine-tuning the placement.

If the bin has not already been defined then you get something like ‘Undefined control sequence. <argument> \nobin’.


lrbox

Synopsis:

\begin{lrbox}{box-cmd} 
  text
\end{lrbox}

The text inside the environment is saved in the bin box-cmd. The box-cmd must begin with a backslash. You must create this bin in advance with \newsavebox (see \newsavebox). This is the environment form of the \sbox and \savebox commands, and is equivalent to them. See \sbox & \savebox for the full information.

In this example the environment is convenient for entering the tabular.

\newsavebox{\jhbin}
\begin{lrbox}{\jhbin}
  \begin{tabular}{c}
    \includegraphics[height=1in]{jh.png} \\
    Jim Hef{}feron
  \end{tabular}
\end{lrbox}    
  ...
\usebox{\jhbin}

\usebox

Synopsis:

\usebox{box-cmd}

Produce the box most recently saved in the bin box-cmd by the commands \sbox or \savebox, or the lrbox environment. See \sbox & \savebox for more information and examples. (Note that box-cmd starts with a backslash.) This command is robust (see \protect).

Setzer-0.4.4/data/resources/help/latex2e_21.html000066400000000000000000000426171420322575300214170ustar00rootroot00000000000000 Color (LaTeX2e unofficial reference manual (October 2018))

Color

You can add color to text, rules, etc. You can also have color in a box or on an entire page and write text on top of it.

Color support comes as an additional package. So put \usepackage{color} in your document preamble to use the commands described here.

Many other packages also supplement LaTeX’s color abilities. Particularly worth mentioning is xcolor, which is widely used and significantly extends the capabilities described here, including adding ‘HTML’ and ‘Hsb’ color models.


color package options

Synopsis (must be in the document preamble):

\usepackage[comma-separated option list]{color}

When you load the color package there are two kinds of available options.

The first specifies the printer driver. LaTeX doesn’t contain information about different output systems but instead depends on information stored in a file. Normally you should not specify the driver option in the document, and instead rely on your system’s default. One advantage of this is that it makes the document portable across systems. For completeness we include a list of the drivers. The currently relevant ones are: dvipdfmx, dvips, dvisvgm, luatex, pdftex, xetex. The two xdvi and oztex are essentially aliases for dvips (and xdvi is monochrome). Ones that should not be used for new systems are: dvipdf, dvipdfm, dviwin, dvipsone, emtex, pctexps, pctexwin, pctexhp, pctex32, truetex, tcidvi, vtex (and dviwindo is an alias for dvipsone).

The second kind of options, beyond the drivers, are below.

monochrome

Disable the color commands, so that they do not generate errors but do not generate color either.

dvipsnames

Make available a list of 68 color names that are often used, particularly in legacy documents. These color names were originally provided by the dvips driver, giving the option name.

nodvipsnames

Do not load that list of color names, saving LaTeX a tiny amount of memory space.


Color models

A color model is a way of representing colors. LaTeX’s capabilities depend on the printer driver. However, the pdftex, xetex, and luatex printer drivers are today by far the most commonly used. The models below work for those drivers. All but one of these is also supported by essentially all other printer drivers used today.

Note that color combination can be additive or subtractive. Additive mixes colors of light, so that for instance combining full intensities of red, green, and blue produces white. Subtractive mixes pigments, such as with inks, so that combining full intensity of cyan, magenta, and yellow makes black.

cmyk

A comma-separated list with four real numbers between 0 and 1, inclusive. The first number is the intensity of cyan, the second is magenta, and the others are yellow and black. A number value of 0 means minimal intensity, while a 1 is for full intensity. This model is often used in color printing. It is a subtractive model.

gray

A single real number between 0 and 1, inclusive. The colors are shades of grey. The number 0 produces black while 1 gives white.

rgb

A comma-separated list with three real numbers between 0 and 1, inclusive. The first number is the intensity of the red component, the second is green, and the third the blue. A number value of 0 means that none of that component is added in, while a 1 means full intensity. This is an additive model.

RGB

(pdftex, xetex, luatex drivers) A comma-separated list with three integers between 0 and 255, inclusive. This model is a convenience for using rgb since outside of LaTeX colors are often described in a red-green-blue model using numbers in this range. The values entered here are converted to the rgb model by dividing by 255.

named

Colors are accessed by name, such as ‘PrussianBlue’. The list of names depends on the driver, but all support the names ‘black’, ‘blue’, ‘cyan’, ‘green’, ‘magenta’, ‘red’, ‘white’, and ‘yellow’ (See the dvipsnames option in Color package options).


Commands for color

These are the commands available with the color package.


Define colors

Synopsis:

\definecolor{name}{model}{specification}

Give the name name to the color. For example, after this

\definecolor{silver}{rgb}{0.75,0.75,0.74}

you can use that color name with Hi ho, \textcolor{silver}{Silver}!.

This example gives the color a more abstract name, so it could change and not be misleading.

\definecolor{logocolor}{RGB}{145,92,131}    % RGB needs pdflatex
\newcommand{\logo}{\textcolor{logocolor}{Bob's Big Bagels}}

Often a document’s colors are defined in the preamble, or in the class or style, rather than in the document body.


Colored text

Synopses:

\textcolor{name}{...}
\textcolor[color model]{color specification}{...}

or

\color{name}
\color[color model]{specification}

The affected text gets the color. This line

\textcolor{magenta}{My name is Ozymandias, king of kings:}
Look on my works, ye Mighty, and despair!

causes the first half to be in magenta while the rest is in black. You can use a color declared with \definecolor in exactly the same way that we just used the builtin color ‘magenta’.

\definecolor{MidlifeCrisisRed}{rgb}{1.0,0.11,0.0}
I'm thinking about getting a \textcolor{MidlifeCrisisRed}{sports car}.

The two \textcolor and \color differ in that the first is a command form, enclosing the text to be colored as an argument. Often this form is more convenient, or at least more explicit. The second form is a declaration, as in The moon is made of {\color{green} green} cheese, so it is in effect until the end of the current group or environment. This is sometimes useful when writing macros or as below where it colors everything inside the center environment, including the vertical and horizontal lines.

\begin{center} \color{blue}
  \begin{tabular}{l|r}
    UL &UR \\ \hline
    LL &LR 
  \end{tabular}
\end{center}

You can use color in equations. A document might have this definition in the preamble

\definecolor{highlightcolor}{RGB}{225,15,0}

and then contain this equation.

\begin{equation}
  \int_a^b \textcolor{highlightcolor}{f'(x)}\,dx=f(b)-f(a)
\end{equation}

Typically the colors used in a document are declared in a class or style but sometimes you want a one-off. Those are the second forms in the synopses.

Colors of \textcolor[rgb]{0.33,0.14,0.47}{Purple} and
{\color[rgb]{0.72,0.60,0.37} Gold} for the team.

The format of color specification depends on the color model (see Color models). For instance, while rgb takes three numbers, gray takes only one.

The selection was \textcolor[gray]{0.5}{grayed out}.

Colors inside colors do not combine. Thus

\textcolor{green}{kind of \textcolor{blue}{blue}}

has a final word that is blue, not a combination of blue and green.


Colored boxes

Synopses:

\colorbox{name}{...}
\colorbox[model name]{box background color}{...}

or

\fcolorbox{frame color}{box background color}{...}
\fcolorbox[model name]{frame color}{box background color}{...}

Make a box with the stated background color. The \fcolorbox command puts a frame around the box. For instance this

Name:~\colorbox{cyan}{\makebox[5cm][l]{\strut}}

makes a cyan-colored box that is five centimeters long and gets its depth and height from the \strut (so the depth is -.3\baselineskip and the height is \baselineskip). This puts white text on a blue background.

\colorbox{blue}{\textcolor{white}{Welcome to the machine.}}

The \fcolorbox commands use the same parameters as \fbox (see \fbox & \framebox), \fboxrule and \fboxsep, to set the thickness of the rule and the boundary between the box interior and the surrounding rule. LaTeX’s defaults are 0.4pt and 3pt, respectively.

This example changes the thickness of the border to 0.8 points. Note that it is surrounded by curly braces so that the change ends at the end of the second line.

{\setlength{\fboxrule}{0.8pt}
\fcolorbox{black}{red}{Under no circumstances turn this knob.}}

Colored pages

Synopses:

\pagecolor{name}
\pagecolor[color model]{color specification}
\nopagecolor

The first two set the background of the page, and all subsequent pages, to the color. For an explanation of the specification in the second form see Colored text. The third returns the background to normal, which is a transparent background. (If that is not supported use \pagecolor{white}, although that will make a white background rather than the default transparent background.)

 ...
\pagecolor{cyan}
 ...
\nopagecolor
Setzer-0.4.4/data/resources/help/latex2e_22.html000066400000000000000000001324531420322575300214160ustar00rootroot00000000000000 Graphics (LaTeX2e unofficial reference manual (October 2018))

Graphics

You can use graphics such as PNG or PDF files in your LaTeX document. You need an additional package, which comes standard with LaTeX. This example is the short how-to.

\include{graphicx}  % goes in the preamble
  ...
\includegraphics[width=0.5\linewidth]{plot.pdf}

To use the commands described here your document preamble must contain either \usepackage{graphicx} or \usepackage{graphics}. Most of the time, graphicx is the better choice.

Graphics come in two main types, raster and vector. LaTeX can use both. In raster graphics the file contains an entry for each location in an array, describing what color it is. An example is a photograph, in JPG format. In vector graphics, the file contains a list of instructions such as ‘draw a circle with this radius and that center’. An example is a line drawing produced by the Asymptote program, in PDF format. Generally vector graphics are more useful because you can rescale their size without pixelation or other problems, and because they often have a smaller size.

There are systems particularly well-suited to make graphics for a LaTeX document. For example, these allow you to use the same fonts as in your document. LaTeX comes with a picture environment (see picture) that has simple capabilities. Besides that, there are other ways to include the graphic-making commands in the document. Two such systems are the PSTricks and TikZ packages. There are also systems external to LaTeX, that generate a graphic that you include using the commands of this chapter. Two that use a programming language are Asymptote and MetaPost. One that uses a graphical interface is Xfig. Full description of these systems is outside the scope of this document; see their documentation on CTAN.


graphics package options

Synopsis (must be in the document preamble):

\usepackage[comma-separated option list]{graphics}

or

\usepackage[comma-separated option list]{graphicx}

The graphicx package has a format for optional arguments to the \includegraphics command that is convenient (it is the key-value format), so it is the better choice for new documents. When you load the graphics or graphicx package with \usepackage there are two kinds of available options.

The first is that LaTeX does not contain information about different output systems but instead depends on information stored in a printer driver file. Normally you should not specify the driver option in the document, and instead rely on your system’s default. One advantage of this is that it makes the document portable across systems.

For completeness here is a list of the drivers. The currently relevant ones are: dvipdfmx, dvips, dvisvgm, luatex, pdftex, xetex. The two xdvi and oztex are essentially aliases for dvips (and xdvi is monochrome). Ones that should not be used for new systems are: dvipdf, dvipdfm, dviwin, dvipsone, emtex, pctexps, pctexwin, pctexhp, pctex32, truetex, tcidvi, vtex (and dviwindo is an alias for dvipsone). These are stored in files with a .def extension, such as pdftex.def.

The second kind of options are below.

demo

Instead of an image file, LaTeX puts in a 150 pt by 100 pt rectangle (unless another size is specified in the \includegraphics command).

draft

For each graphic file, it is not shown but instead the file name is printed in a box of the correct size. In order to determine the size, the file must be present.

final

(Default) Override any previous draft option, so that the document shows the contents of the graphic files.

hiderotate

Do not show rotated text. (This allows for the possibility that a previewer does not have the capability to rotate text.)

hidescale

Do not show scaled text. (This allows for the possibility that a previewer does not have the capability to scale.)

hiresbb

In a PS or EPS file the graphic size may be specified in two ways. The %%BoundingBox lines describe the graphic size using integer multiples of a PostScript point, that is, integer multiples of 1/72 inch. A later addition to the PostScript language allows decimal multiples, such as 1.23, in %%HiResBoundingBox lines. This option has LaTeX to read the size from the latter.


graphics package configuration

These commands configure the way LaTeX searches the file system for the graphic.

The behavior of file system search code is necessarily platform dependent. In this document we cover GNU/Linux, Macintosh, and Windows, as those systems are typically configured. For other situations consult the documentation in grfguide.pdf, or the LaTeX source, or your TeX distribution’s documentation.


\graphicspath

Synopsis:

\graphicspath{list of dir names inside curly brackets}

Declare a list of directories to search for graphics files. This allows you to later say something like \includegraphics{lion.png} instead of having to give its path.

LaTeX always looks for graphic files first in the current directory. The declaration below tells the system to then look in the subdirectory pix, and then ../pix.

\usepackage{graphicx}   % or graphics; put in preamble
  ...
\graphicspath{ {pix/} {../pix/} }

The \graphicspath declaration is optional. If you don’t include it then LaTeX’s default is to search all of the places that it usually looks for a file (it uses LaTeX’s \input@path). In particular, in this case one of the places it looks is the current directory.

Enclose each directory name in curly braces; for example, above it says ‘{pix}’. Do this even if there is only one directory. Each directory name must end in a forward slash, /. This is true even on Windows, where good practice is to use forward slashes for all the directory separators since it makes the document portable to other platforms. If you have spaces in your directory name then use double quotes, as with {"my docs/"}. Getting one of these rules wrong will cause LaTeX to report Error: File `filename' not found.

Basically, the algorithm is that with this example, after looking in the current directory,

\graphicspath{ {pix/} {../pix/} }
...
\usepackage{lion.png}

for each of the listed directories, LaTeX concatenates it with the file name and searches for the result, checking for pix/lion.png and then ../pix/lion.png. This algorithm means that the \graphicspath command does not recursively search subdirectories: if you issue \graphicspath{{a/}} and the graphic is in a/b/lion.png then LaTeX will not find it. It also means that you can use absolute paths such as \graphicspath{{/home/jim/logos/}} or \graphicspath{{C:/Users/Albert/Pictures/}}. However, using these means that the document is not portable. (You could preserve portability by adjusting your TeX system settings configuration file parameter TEXINPUTS; see the documentation of your system.)

You can use \graphicspath anywhere in the document. You can use it more than once. Show its value with \makeatletter\typeout{\Ginput@path}\makeatother.

The directories are taken with respect to the base file. That is, suppose that you are working on a document based on book/book.tex and it contains \include{chapters/chap1}. If in chap1.tex you put \graphicspath{{plots/}} then LaTeX will not search for graphics in book/chapters/plots, but instead in book/plots.


\DeclareGraphicsExtensions

Synopses:

\DeclareGraphicsExtensions{comma-separated list of file extensions}

Declare the filename extensions to try. This allows you to specify the order in which to choose graphic formats when you include graphic files by giving the filename without the extension, as in \includegraphics{functionplot}.

In this example, LaTeX will find files in the PNG format before PDF files.

\DeclareGraphicsExtensions{.png,PNG,.pdf,.PDF}
  ...
\includegraphics{lion}   % will find lion.png before lion.pdf 

Because the file name lion does not have a period, LaTeX uses the extension list. For each directory in the graphics path (see \graphicspath), LaTeX will try the extensions in the order given. If it does not find such a file after trying all the directories and extensions then it reports ‘! LaTeX Error: File `lion' not found’. Note that you must include the periods at the start of the extensions.

Because GNU/Linux and Macintosh filenames are case sensitive, the list of file extensions is case sensitive on those platforms. The Windows platform is not case sensitive.

You are not required to include \DeclareGraphicsExtensions in your document; the printer driver has a sensible default. For example, the most recent pdftex.def has this extension list.

.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPEG,.JBIG2,.JB2

You can use this command anywhere in the document. You can use it more than once. Show its value with \makeatletter\typeout{\Gin@extensions}\makeatother.


\DeclareGraphicsRule

Synopsis:

\DeclareGraphicsRule{extension}{type}{size-file extension}{command}

Declare how to handle graphic files whose names end in extension.

This example declares that all files with names have the form filename-without-dot.mps will be treated as output from MetaPost, meaning that the printer driver will use its MetaPost-handling code to input the file.

\DeclareGraphicsRule{.mps}{mps}{.mps}{}

This

\DeclareGraphicsRule{*}{mps}{*}{}

tells LaTeX that it should handle as MetaPost output any file with an extension not covered by another rule, so it covers filename.1, filename.2, etc.

This describes the four arguments.

extension

The file extension to which this rule applies. The extension is anything after and including the first dot in the filename. Use the Kleene star, *, to denote the default behaviour for all undeclared extensions.

type

The type of file involved. This type is a string that must be defined in the printer driver. For instance, files with extensions .ps, .eps, or .ps.gz may all be classed as type eps. All files of the same type will be input with the same internal command by the printer driver. For example, the file types that pdftex recognizes are: jpg, jbig2, mps, pdf, png, tif.

size-file extension

The extension of the file to be read to determine the size of the graphic, if there is such a file. It may be the same as extension but it may be different.

As an example, consider a PostScript graphic. To make it smaller, it might be compressed into a .ps.gz file. Compressed files are not easily read by LaTeX so you can put the bounding box information in a separate file. If size-file extension is empty then you must specify size information in the arguments of \includegraphics.

If the driver file has a procedure for reading size files for type then that will be used, otherwise it will use the procedure for reading .eps files. (Thus you may specify the size of bitmap files in a file with a PostScript style %%BoundingBox line if no other format is available.)

command

A command that will be applied to the file. This is very often left blank. This command must start with a single backward quote. Thus, \DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{`gunzip -c #1} specifies that any file with the extension .eps.gz should be treated as an eps file, with the BoundingBox information stored in the file with extension .eps.bb, and that the command gunzip -c will run on your platform to decompresses the file.

Such a command is specific to your platform. In addition, your TeX system must allow you to run external commands; as a security measure modern systems restrict running commands unless you explicitly allow it. See the documentation for your TeX distribution.


Commands for graphics

These are the commands available with the graphics and graphicx packages.


\includegraphics

Synopses for graphics package:

\includegraphics{filename}
\includegraphics[urx,ury]{filename}
\includegraphics[llx,lly][urx,ury]{filename}
\includegraphics*{filename}
\includegraphics*[urx,ury]{filename}
\includegraphics*[llx,lly][urx,ury]{filename}

Synopses for graphicx package:

\includegraphics{filename}
\includegraphics[key-value list]{filename}
\includegraphics*{filename}
\includegraphics*[key-value list]{filename}

Include a graphics file. The starred form \includegraphics* will clip the graphic to the size specified, while for the unstarred form any part of the graphic that is outside the box of the specified size will over-print the surrounding area.

This

\usepackage{graphicx}  % in preamble
  ...
\begin{center}
  \includegraphics{plot.pdf}
\end{center}

will incorporate into the document the graphic in plot.pdf, centered and at its nominal size. You can also give a path to the file, as with \includegraphics{graphics/plot.pdf}. To specify a list of locations to search for the file, see \graphicspath.

If your filename includes spaces then put it in double quotes. An example is \includegraphics{"sister picture.jpg"}.

The \includegraphics{filename} command decides on the type of graphic by splitting filename on the first dot. You can use filename with no dot, as in \includegraphics{turing} and then LaTeX tries a sequence of extensions such as .png and .pdf until it finds a file with that extension (see \DeclareGraphicsExtensions).

If your file name contains dots before the extension then you can hide them with curly braces, as in \includegraphics{{plot.2018.03.12.a}.pdf}. Or, if you use the graphicx package then you can use the options type and ext; see below. This and other filename issues are also handled with the package grffile.

This example puts a graphic in a figure environment so LaTeX can move it to the next page if fitting it on the current page is awkward (see figure).

\begin{figure}
  \centering
  \includegraphics[width=3cm]{lungxray.jpg}
  \caption{The evidence is overwhelming: don't smoke.}  \label{fig:xray}
\end{figure}

This places a graphic that will not float, so it is sure to appear at this point in the document even if makes LaTeX stretch the text or resort to blank areas on the page. It will be centered and will have a caption.

\usepackage{caption}  % in preamble
  ...
\begin{center}
  \includegraphics{pix/nix.png}
  \captionof{figure}{The spirit of the night} \label{pix:nix} % optional
\end{center}

This example puts a box with a graphic side by side with one having text, with the two vertically centered.

\newcommand*{\vcenteredhbox}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}
  ...
\begin{center}
  \vcenteredhbox{\includegraphics[width=0.4\textwidth]{plot}}
  \hspace{1em}
  \vcenteredhbox{\begin{minipage}{0.4\textwidth}
                   \begin{displaymath}
                     f(x)=x\cdot \sin (1/x)
                   \end{displaymath}
                 \end{minipage}}
\end{center}

If you use the graphics package then the only options involve the size of the graphic (but see \rotatebox and \scalebox). When one optional argument is present then it is [urx,ury] and it gives the coordinates of the top right corner of the image, as a pair of TeX dimensions (see Units of length). If the units are omitted they default to bp. In this case, the lower left corner of the image is assumed to be at (0,0). If two optional arguments are present then the leading one is [llx,lly], specifying the coordinates of the image’s lower left. Thus, \includegraphics[1in,0.618in]{...} calls for the graphic to be placed so it is 1 inch wide and 0.618 inches tall and so its origin is at (0,0).

The graphicx package gives you many more options. Specify them in a key-value form, as here.

\begin{center}
  \includegraphics[width=1in,angle=90]{lion}
  \hspace{2em}
  \includegraphics[angle=90,width=1in]{lion}
\end{center}

The options are read left-to-right. So the first graphic above is made one inch wide and then rotated, while the second is rotated and then made one inch wide. Thus, unless the graphic is perfectly square, the two will end with different widths and heights.

There are many options. The primary ones are listed first.

Note that a graphic is placed by LaTeX into a box, which is traditionally referred to as its bounding box (distinct from the PostScript BoundingBox described below). The graphic’s printed area may go beyond this box, or sit inside this box, but when LaTeX makes up a page it puts together boxes and this is the box allocated for the graphic.

width

The graphic will be shown so its bounding box is this width. An example is \includegraphics[width=1in]{plot}. You can use the standard TeX dimensions (see Units of length) and also convenient is \linewidth, or in a two-column document, \columnwidth (see Page layout parameters). An example is that by using the calc package you can make the graphic be 1 cm narrow than the width of the text with \includegraphics[width=\linewidth-1.0cm]{hefferon.jpg}.

height

The graphic will be shown so its bounding box is this height. You can use the standard TeX dimensions (see Units of length), and also convenient are \pageheight and \textheight (see Page layout parameters). For instance, the command \includegraphics[height=0.25\textheight]{godel} will make the graphic a quarter of the height of the text area.

totalheight

The graphic will be shown so its bounding box has this height plus depth. This differs from the height if the graphic was rotated. For instance, if it has been rotated by -90 then it will have zero height but a large depth.

keepaspectratio

If set to true, or just specified as here

\includegraphics[...,keepaspectratio,...]{...}

and you give as options both width and height (or totalheight), then LaTeX will make the graphic is as large as possible without distortion. That is, LaTeX will ensure that neither is the graphic wider than width nor taller than height (or totalheight).

scale

Factor by which to scale the graphic. To make a graphic twice its nominal size, enter \includegraphics[scale=2.0]{...}. This number may be any value; a number between 1 and 0 will shrink the graphic and a negative number will reflect it.

angle

Rotate the graphic. The angle is taken in degrees and counterclockwise. The graphic is rotated about its origin; see that option. For a complete description of how rotated material is typeset, see \rotatebox.

origin

The point of the graphic about which the rotation happens. Possible values are any string containing one or two of: l for left, r for right, b for bottom, c for center, t for top, and B for baseline. Thus, entering the command \includegraphics[angle=180,origin=c]{moon} will turn the picture upside down about that picture’s center, while the command \includegraphics[angle=180,origin=lB]{LeBateau} will turn its picture upside down about its left baseline. (The character c gives the horizontal center in bc or tc, but gives the vertical center in lc or rc.) The default is lB.

To rotate about an arbitrary point, see \rotatebox.

These are lesser-used options.

viewport

Pick out a subregion of the graphic to show. Takes four arguments, separated by spaces and given in TeX dimensions, as with \includegraphics[.., viewport=0in 0in 1in 0.618in]{...}. The dimensions default to big points, bp. They are taken relative to the origin specified by the bounding box. See also the trim option.

trim

Gives parts of the graphic to not show. Takes four arguments, separated by spaces, that are given in TeX dimensions, as with \includegraphics[.., trim= 0in 0.1in 0.2in 0.3in, ...]{...}. These give the amounts of the graphic not to show, that is, LaTeX will crop the picture by 0 inches on the left, 0.1 inches on the bottom, 0.2 inches on the right, and 0.3 inches on the top. See also the viewport option.

clip

If set to true, or just specified as here

\includegraphics[...,clip,...]{...}

then the graphic is cropped to the bounding box. This is the same as using the starred form of the command, \includegraphics*[...]{...}.

page

Give the page number of a multi-page PDF file. The default is page=1.

pagebox

Specifies which bounding box to use for PDF files from among mediabox, cropbox, bleedbox, trimbox, or artbox. PDF files do not have the BoundingBox that PostScript files have, but may specify up to four predefined rectangles. The MediaBox gives the boundaries of the physical medium. The CropBox is the region to which the contents of the page are to be clipped when displayed. The BleedBox is the region to which the contents of the page should be clipped in production. The TrimBox is the intended dimensions of the finished page. The ArtBox is the extent of the page’s meaningful content. The driver will set the image size based on CropBox if present, otherwise it will not use one of the others, with a driver-defined order of preference. MediaBox is always present.

interpolate

Enable or disable interpolation of raster images by the viewer. Can be set with interpolate=true or just specified as here.

\includegraphics[...,interpolate,...]{...}
quiet

Do not write information to the log. You can set it with quiet=true or just specified it with \includegraphics[...,quite,...]{...},

draft

If you set it with draft=true or just specify it with

\includegraphics[...,draft,...]{...}

then the graphic will not appear in the document, possibly saving color printer ink. Instead, LaTeX will put an empty box of the correct size with the filename printed in it.

These options address the bounding box for Encapsulated PostScript graphic files, which have a size specified with a line %%BoundingBox that appears in the file. It has four values, giving the lower x coordinate, lower y coordinate, upper x coordinate, and upper y coordinate. The units are PostScript points, equivalent to TeX’s big points, 1/72 inch. For example, if an .eps file has the line %%BoundingBox 10 20 40 80 then its natural size is 30/72 inch wide by 60/72 inch tall.

bb

Specify the bounding box of the displayed region. The argument is four dimensions separated by spaces, as with \includegraphics[.., bb= 0in 0in 1in 0.618in]{...}. Usually \includegraphics reads the BoundingBox numbers from the EPS file automatically, so this option is only useful if the bounding box is missing from that file or if you want to change it.

bbllx, bblly, bburx, bbury

Set the bounding box. These four are obsolete, but are retained for compatibility with old packages.

natwidth, natheight

An alternative for bb. Setting

\includegraphics[...,natwidth=1in,natheight=0.618in,...]{...}

is the same as setting bb=0 0 1in 0.618in.

hiresbb

If set to true, or just specified as with

\includegraphics[...,hiresbb,...]{...}

then LaTeX will look for %%HiResBoundingBox lines instead of %%BoundingBox lines. (The BoundingBox lines use only natural numbers while the HiResBoundingBox lines use decimals; both use units equivalent to TeX’s big points, 1/72 inch.) To override a prior setting of true, you can set it to false.

These following options allow a user to override LaTeX’s method of choosing the graphic type based on the filename extension. An example is that \includegraphics[type=png,ext=.xxx,read=.xxx]{lion} will read the file lion.xxx as though it were lion.png. For more on these, see \DeclareGraphicsRule.

type

Specify the graphics type.

ext

Specify the graphics extension. Only use this in conjunction with the option type.

read

Specify the file extension of the read file. Only use this in conjunction with the option type.

command

Specify a command to be applied to this file. Only use this in conjunction with the option type. See Command line options for a discussion of enabling the \write18 functionality to run external commands.


\rotatebox

Synopsis if you use the graphics package:

\rotatebox{angle}{material}

Synopses if you use the graphicx package:

\rotatebox{angle}{material}
\rotatebox[key-value list]{angle}{material}

Put material in a box and rotate it angle degrees counterclockwise.

This example rotates the table column heads forty five degrees.

\begin{tabular}{ll}
  \rotatebox{45}{Character} &\rotatebox{45}{NATO phonetic}   \\
  A                         &AL-FAH  \\
  B                         &BRAH-VOH
\end{tabular}

The material can be anything that goes in a box, including a graphic.

  \rotatebox[origin=c]{45}{\includegraphics[width=1in]{lion}}

To place the rotated material, the first step is that LaTeX sets material in a box, with a reference point on the left baseline. The second step is the rotation, by default about the reference point. The third step is that LaTeX computes a box to bound the rotated material. Fourth, LaTeX moves this box horizontally so that the left edge of this new bounding box coincides with the left edge of the box from the first step (they need not coincide vertically). This new bounding box, in its new position, is what LaTeX uses as the box when typesetting this material.

If you use the graphics package then the rotation is about the reference point of the box. If you use the graphicx package then these are the options that can go in the key-value list, but note that you can get the same effect without needing this package, except for the x and y options (see \includegraphics).

origin

The point of the material’s box about which the rotation happens. Possible value is any string containing one or two of: l for left, r for right, b for bottom, c for center, t for top, and B for baseline. Thus, the first line here

\rotatebox[origin=c]{180}{moon}
\rotatebox[origin=lB]{180}{LeBateau}

will turn the picture upside down from the center while the second will turn its picture upside down about its left baseline. (The character c gives the horizontal center in bc or tc but gives the vertical center in lc or rc, and gives both in c.) The default is lB.

x, y

Specify an arbitrary point of rotation with \rotatebox[x=TeX dimension,y=TeX dimension]{...} (see Units of length). These give the offset from the box’s reference point.

units

This key allows you to change the default of degrees counterclockwise. Setting units=-360 changes the direction to degrees clockwise and setting units=6.283185 changes to radians counterclockwise.


\scalebox

Synopses:

\scalebox{horizontal factor}{material}
\scalebox{horizontal factor}[vertical factor]{material}
\reflectbox{material}

Scale the material.

This example halves the size, both horizontally and vertically, of the first text and doubles the size of the second.

\scalebox{0.5}{DRINK ME} and \scalebox{2.0}{Eat Me}

If you do not specify the optional vertical factor then it defaults to the same value as the horizontal factor.

You can use this command to resize a graphic, as here.

\scalebox{0.5}{\includegraphics{lion}}

If you use the graphicx package then you can accomplish the same thing with optional arguments to \includegraphics (see \includegraphics).

The \reflectbox command abbreviates \scalebox{-1}[1]{material}. Thus, Able was I\reflectbox{Able was I} will show the phrase ‘Able was I’ immediately followed by its mirror reflection.


\resizebox

Synopses:

\resizebox{horizontal length}{vertical length}{material}
\resizebox*{horizontal length}{vertical length}{material}

Given a size, such as 3cm, transform material to make it that size. If either horizontal length or vertical length is an exclamation point ! then the other argument is used to determine a scale factor for both directions.

This example makes the graphic be a half inch wide and scales it vertically by the same factor to keep it from being distorted.

\resizebox{0.5in}{!}{\includegraphics{lion}}

The unstarred form \resizebox takes vertical length to be the box’s height while the starred form \resizebox* takes it to be height+depth. For instance, make the text have a height+depth of a quarter inch with \resizebox*{!}{0.25in}{\parbox{1in}{This box has both height and depth.}}.

You can use \depth, \height, \totalheight, and \width to refer to the original size of the box. Thus, make the text two inches wide but keep the original height with \resizebox{2in}{\height}{Two inches}.

Setzer-0.4.4/data/resources/help/latex2e_23.html000066400000000000000000001223571420322575300214210ustar00rootroot00000000000000 Special insertions (LaTeX2e unofficial reference manual (October 2018))

Special insertions

LaTeX provides commands for inserting characters that have a special meaning do not correspond to simple characters you can type.


Reserved characters

LaTeX sets aside the following characters for special purposes. For example, the percent sign % is for comments. They are called reserved characters or special characters.

# $ % & { } _ ~ ^ \ 

If you want a reserved character to be printed as itself, in the text body font, for all but the final three characters in that list simply put a backslash \ in front of the character. Thus, typing \$1.23 will produce $1.23 in your output.

As to the last three characters, to get a tilde in the text body font use \~{} (omitting the curly braces would result in the next character receiving a tilde accent). Similarly, to get a get a text body font circumflex use \^{}. To get a backslash in the font of the text body, enter \textbackslash{}.

To produce the reserved characters in a typewriter font use \verb!! as below (the double backslash \\ is only there to split the lines).

\begin{center}
  \# \$ \% \& \{ \} \_ \~{} \^{} \textbackslash \\
  \verb!# $ % & { } _ ~ ^ \!
\end{center}

Upper and lower case

Synopsis:

\uppercase{text}
\lowercase{text}
\MakeUppercase{text}
\MakeLowercase{text}

Change the case of characters. The TeX primitives commands \uppercase and \lowercase only work for American characters. The LaTeX commands \MakeUppercase and \MakeLowercase commands also change characters accessed by commands such as \ae or \aa. The commands \MakeUppercase and \MakeLowercase are robust but they have moving arguments (see \protect).

These commands do not change the case of letters used in the name of a command within text. But they do change the case of every other Latin letter inside the argument text. Thus, \MakeUppercase{Let $y=f(x)$} produces ‘LET Y=F(X)’. Another example is that the name of an environment will be changed, so that \MakeUppercase{\begin{tabular} ... \end{tabular}} will produce an error because the first half is changed to \begin{TABULAR}.

LaTeX uses the same fixed table for changing case throughout a document, The table used is designed for the font encoding T1; this works well with the standard TeX fonts for all Latin alphabets but will cause problems when using other alphabets.

To change the case of text that results from a macro inside text you need to do expansion. Here the \Schoolname produces ‘COLLEGE OF MATHEMATICS’.

\newcommand{\schoolname}{College of Mathematics}
\newcommand{\Schoolname}{\expandafter\MakeUppercase
                           \expandafter{\schoolname}}

The textcase package brings some of the missing feature of the standard LaTeX commands \MakeUppercase and \MakeLowerCase.

To uppercase only the first letter of words, you can use the package mfirstuc.


Symbols by font position

You can access any character of the current font using its number with the \symbol command. For example, the visible space character used in the \verb* command has the code decimal 32, so it can be typed as \symbol{32}.

You can also specify numbers in octal (base 8) by using a ' prefix, or hexadecimal (base 16) with a " prefix, so the previous example could also be written as \symbol{'40} or \symbol{"20}.


Text symbols

LaTeX provides commands to generate a number of non-letter symbols in running text. Some of these, especially the more obscure ones, are not available in OT1. Unless you are using XeLaTeX or LuaLaTeX then you may need to load the textcomp package.

\copyright
\textcopyright

© The copyright symbol.

\dag

† The dagger symbol (in text).

\ddag

‡ The double dagger symbol (in text).

\LaTeX

The LaTeX logo.

\LaTeXe

The LaTeX2e logo.

\guillemotleft («)
\guillemotright (»)
\guilsinglleft (‹)
\guilsinglright (›)

«, », ‹, › Double and single angle quotation marks, commonly used in French.

\ldots
\dots
\textellipsis

… An ellipsis (three dots at the baseline): \ldots and \dots also work in math mode.

\lq

‘ Left (opening) quote.

\P
\textparagraph

¶ Paragraph sign (pilcrow).

\pounds
\textsterling

£ English pounds sterling.

\quotedblbase („)
\quotesinglbase (‚)

„ and ‚ Double and single quotation marks on the baseline.

\rq

’ Right (closing) quote.

\S
\textsection

§ Section sign.

\TeX

The TeX logo.

\textasciicircum

^ ASCII circumflex.

\textasciitilde

~ ASCII tilde.

\textasteriskcentered

* Centered asterisk.

\textbackslash

\ Backslash.

\textbar

| Vertical bar.

\textbardbl

⏸ Double vertical bar.

\textbigcircle

◯ Big circle symbol.

\textbraceleft

{ Left brace.

\textbraceright

} Right brace.

\textbullet

• Bullet.

\textcircled{letter}

Ⓐ Circle around letter.

\textcompwordmark
\textcapitalcompwordmark
\textascendercompwordmark

Used to separate letters that would normally ligature. For example, f\textcompwordmark i produces ‘fi’ without a ligature. This is most useful in non-English languages. The \textcapitalcompwordmark form has the cap height of the font while the \textascendercompwordmark form has the ascender height.

\textdagger

† Dagger.

\textdaggerdbl

‡ Double dagger.

\textdollar (or \$)

$ Dollar sign.

\textemdash (or ---)

— Em-dash (used for punctuation, as in The playoffs --- if you are fortunate enough to make the playoffs --- is more like a sprint.).

\textendash (or --)

– En-dash (used for ranges, as in See pages 12--14).

\texteuro

The Euro symbol: €. For an alternative glyph design, try the eurosym package; also, most fonts nowadays come with their own Euro symbol (Unicode U+20AC).

\textexclamdown (or !`)

¡ Upside down exclamation point.

\textgreater

> Greater than symbol.

\textless

< Less than symbol.

\textleftarrow

← Left arrow.

\textordfeminine
\textordmasculine

ª, º Feminine and masculine ordinal symbols.

\textperiodcentered

· Centered period.

\textquestiondown (or ?`)

¿ Upside down question mark.

\textquotedblleft (or ``)

“ Double left quote.

\textquotedblright (or '')

” Double right quote.

\textquoteleft (or `)

‘ Single left quote.

\textquoteright (or ')

’ Single right quote.

\textquotesingle

' Straight single quote. (From TS1 encoding.)

\textquotestraightbase
\textquotestraightdblbase

Single and double straight quotes on the baseline.

\textregistered

® Registered symbol.

\textrightarrow

→ Right arrow.

\textthreequartersemdash

﹘ “Three-quarters” em-dash, between en-dash and em-dash.

\texttrademark

™ Trademark symbol.

\texttwelveudash

﹘ “Two-thirds” em-dash, between en-dash and em-dash.

\textunderscore

_ Underscore.

\textvisiblespace

␣ Visible space symbol.


Accents

LaTeX has wide support for many of the world’s scripts and languages, through the babel package and related support if you are using pdfLaTeX, or polyglossia if you are using XeLaTeX or LuaLaTeX. This section does not cover that support. It only lists the core LaTeX commands for creating accented characters. The \capital... commands shown here produce alternative forms for use with capital letters. These are not available with OT1.

Below, to make them easier to find, the accents are all illustrated with lowercase ‘o’.

Note that \i produces a dotless i, and \j produces a dotless j. These are often used in place of their dotted counterparts when they are accented.

\"
\capitaldieresis

ö Umlaut (dieresis).

\'
\capitalacute

ó Acute accent.

\.

ȯ Dot accent.

\=
\capitalmacron

ō Macron (overbar) accent.

\^
\capitalcircumflex

ô Circumflex (hat) accent.

\`
\capitalgrave

ò Grave accent.

\~
\capitaltilde

ñ Tilde accent.

\b

o_ Bar accent underneath.

Related to this, \underbar{text} produces a bar under text. The argument is always processed in LR mode (see Modes). The bar is always a fixed position under the baseline, thus crossing through descenders. See also \underline in Math miscellany.

\c
\capitalcedilla

ç Cedilla accent underneath.

\d
\capitaldotaccent

ọ Dot accent underneath.

\H
\capitalhungarumlaut

ő Long Hungarian umlaut accent.

\k
\capitalogonek

ǫ Ogonek. Not available in the OT1 encoding.

\r
\capitalring

o* Ring accent.

\t
\capitaltie
\newtie
\capitalnewtie

oo[ Tie-after accent. The \newtie form is centered in its box.

\u
\capitalbreve

ŏ Breve accent.

\v
\capitalcaron

ǒ Háček (check, caron) accent.


Additional Latin letters

Here are the basic LaTeX commands for inserting letters beyond A–Z that extend the Latin alphabet, used primarily in languages other than English.

\aa
\AA

å and Å.

\ae
\AE

æ and Æ.

\dh
\DH

Icelandic letter eth: ð and Ð. Not available with OT1 encoding, you need the fontenc package to select an alternate font encoding, such as T1.

\dj
\DJ

Crossed d and D, a.k.a. capital and small letter d with stroke. Not available with OT1 encoding, you need the fontenc package to select an alternate font encoding, such as T1.

\ij
\IJ

ij and IJ (except somewhat closer together than appears here).

\l
\L

ł and Ł.

\ng
\NG

Lappish letter eng, also used in phonetics.

\o
\O

ø and Ø.

\oe
\OE

œ and Œ.

\ss
\SS

ß and SS.

\th
\TH

Icelandic letter thorn: þ and Þ. Not available with OT1 encoding, you need the fontenc package to select an alternate font encoding, such as T1.


\rule

Synopsis, one of:

\rule{width}{thickness}
\rule[raise]{width}{thickness}

Produce a rule, a filled-in rectangle.

This produces a rectangular blob, sometimes called a Halmos symbol, often used to mark the end of a proof.

\newcommand{\qedsymbol}{\rule{0.4em}{2ex}}

The amsthm package includes this command, with a somewhat different-looking symbol.

The mandatory arguments give the horizontal width and vertical thickness of the rectangle. They are rigid lengths (see Lengths). The optional argument raise is also a rigid length, and tells LaTeX how much to raise the rule above the baseline, or lower it if the length is negative.

This produces a line, a rectangle that is wide but not tall.

\noindent\rule{\textwidth}{0.4pt}

The line is the width of the page and 0.4 points tall. This line thickness is common in LaTeX.

A rule that has zero width, or zero thickness, will not show up in the output, but can cause LaTeX to change the output around it. See \strut for examples.


\today

Synopsis:

\today

Produce today’s date in the format ‘month dd, yyyy’. An example of a date in that format is ‘July 4, 1976’.

Multilingual packages such as babel or polyglossia, or classes such as lettre, will localize \today. For example, the following will output ‘4 juillet 1976’:

\year=1976 \month=7 \day=4
\documentclass{minimal}
\usepackage[french]{babel}
\begin{document}
\today
\end{document}

\today uses the counters \day, \month, and \year (see \day & \month & \year).

A number of package on CTAN work with dates. One is datetime package which can produce a wide variety of date formats, including ISO standards.

The date is not updated as the LaTeX process runs, so in principle the date could be incorrect by the time the program finishes.

Setzer-0.4.4/data/resources/help/latex2e_24.html000066400000000000000000000346101420322575300214140ustar00rootroot00000000000000 Splitting the input (LaTeX2e unofficial reference manual (October 2018))

Splitting the input

LaTeX lets you split a large document into several smaller ones. This can simplify editing or allow multiple authors to work on the document. It can also speed processing.

Regardless of how many separate files you use, there is always one root file, on which LaTeX compilation starts. This shows such a file with five included files.

\documentclass{book}
\includeonly{  % comment out lines below to omit compiling
  pref,
  chap1,
  chap2,
  append,
  bib
  }
\begin{document}
\frontmatter
\include{pref} 
\mainmatter
\include{chap1} 
\include{chap2}
\appendix
\include{append}
\backmatter
\include{bib} 
\end{document}

This will bring in material from pref.tex, chap1.tex, chap2.tex, append.tex, and bib.tex. If you compile this file, and then comment out all of the lines inside \includeonly{...} except for chap1, and compile again, then LaTeX will only process the material in the first chapter. Thus, your output will appear more quickly and be shorter to print. However, the advantage of the \includeonly command is that LaTeX will retain the page numbers and all of the cross reference information from the other parts of the document so these will appear in your output correctly.

See Larger book template for another example of \includeonly.


\endinput

Synopsis:

\endinput

When you \include{filename}, inside filename.tex the material after \endinput will not be included. This command is optional; if filename.tex has no \endinput then LaTeX will read all of the file.

For example, suppose that a document’s root file has \input{chap1} and this is chap1.tex.

\chapter{One}
This material will appear in the document. 
\endinput
This will not appear.

This can be useful for putting documentation or comments at the end of a file, or for avoiding junk characters that can be added during mailing. It is also useful for debugging: one strategy to localize errors is to put \endinput halfway through the included file and see if the error disappears. Now, knowing which half contains the error, moving \endinput to halfway through that area further narrows down the location. This process rapidly finds the offending line.

After reading \endinput, LaTeX continues to read to the end of the line, so something can follow this command and be read nonetheless. This allows you, for instance, to close an \if... with a \fi.


\include & \includeonly

Synopsis:

\includeonly{  % in document preamble
  ...
  filename,
  ...
  }
  ...
\include{filename}  % in document body 

Bring material from the external file filename.tex into a LaTeX document.

The \include command does three things: it executes \clearpage (see \clearpage & \cleardoublepage), then it inputs the material from filename.tex into the document, and then it does another \clearpage. This command can only appear in the document body. The \includeonly command controls which files will be read by LaTeX under subsequent \include commands. Its list of filenames is comma-separated, and it can only appear in the preamble.

This example root document, constitution.tex, brings in three files, preamble.tex, articles.tex, and amendments.tex.

\documentclass{book}
\includeonly{
  preamble,
  articles,
  amendments
  }
\begin{document}
\include{preamble}
\include{articles}
\include{amendments}
\end{document}

The file preamble.tex contains no special code; you have just excerpted the chapter from consitution.tex and put it in a separate file just for editing convenience.

\chapter{Preamble}
We the People of the United States,
in Order to form a more perfect Union, ...

Running LaTeX on constitution.tex makes the material from the three files appear in the document but also generates the auxiliary files preamble.aux, articles.aux, and amendments.tex. These contain information such as page numbers and cross-references (see Cross references). If you now comment out \includeonly’s lines with preamble and amendments and run LaTeX again then the resulting document shows only the material from articles.tex, not the material from preamble.tex or amendments.tex. Nonetheless, all of the auxiliary information from the omitted files is still there, including the starting page number of the chapter.

If the document preamble does not have \includeonly then LaTeX will include all the files you call for with \include commands.

The \include command makes a new page. To avoid that, see \input (which, however, does not retain the auxiliary information).

See Larger book template for another example using \include and \includeonly. That example also uses \input for some material that will not necessarily start on a new page.

File names can involve paths.

\documentclass{book}
\includeonly{
  chapters/chap1,
  }
\begin{document}
\include{chapters/chap1}
\end{document}

To make your document portable across distributions and platforms you should avoid spaces in the file names. The tradition is to instead use dashes or underscores. Nevertheless, for the name ‘amo amas amat’, this works under TeX Live on GNU/Linux:

\documentclass{book}
\includeonly{
  "amo\space amas\space amat"
  }
\begin{document}
\include{"amo\space amas\space amat"}
\end{document}

and this works under MiKTeX on Windows:

\documentclass{book}
\includeonly{
  {"amo amas amat"}
  }
\begin{document}
\include{{"amo amas amat"}}
\end{document}

You cannot use \include inside a file that is being included or you get ‘LaTeX Error: \include cannot be nested.’ The \include command cannot appear in the document preamble; you will get ‘LaTeX Error: Missing \begin{document}’.

If a file that you \include does not exist, for instance if you \include{athiesm} but you meant \include{atheism}, then LaTeX does not give you an error but will warn you ‘No file athiesm.tex.’ (It will also create athiesm.aux.)

If you \include the root file in itself then you first get ‘LaTeX Error: Can be used only in preamble.’ Later runs get ‘TeX capacity exceeded, sorry [text input levels=15]’. To fix this, you must remove the inclusion \include{root} but also delete the file root.aux and rerun LaTeX.


\input

Synopsis:

\input{filename}

LaTeX processes the file as if its contents were inserted in the current file. For a more sophisticated inclusion mechanism see \include & \includeonly.

If filename does not end in ‘.tex’ then LaTeX first tries the filename with that extension; this is the usual case. If filename ends with ‘.tex’ then LaTeX looks for the filename as it is.

For example, this

\input{macros}

will cause LaTeX to first look for macros.tex. If it finds that file then it processes its contents as thought they had been copy-pasted in. If there is no file of the name macros.tex then LaTeX tries the name macros, without an extension. (This may vary by distribution.)

To make your document portable across distributions and platforms you should avoid spaces in the file names. The tradition is to instead use dashes or underscores. Nevertheless, for the name ‘amo amas amat’, this works under TeX Live on GNU/Linux:

\input{"amo\space amas\space amat"}

and this works under MiKTeX on Windows:

\input{{"amo amas amat"}}
Setzer-0.4.4/data/resources/help/latex2e_25.html000066400000000000000000001244711420322575300214220ustar00rootroot00000000000000 Front/back matter (LaTeX2e unofficial reference manual (October 2018))

Front/back matter


Table of contents etc.

Synopsis, one of:

\tableofcontents
\listoffigures
\listoftables

Produce a table of contents, or list of figures, or list of tables. Put the command in the input file where you want the table or list to go. You do not type the entries; for example, typically the table of contents entries are automatically generated from the sectioning commands \chapter, etc.

This example illustrates the first command, \tableofcontents. LaTeX will produce a table of contents on the book’s first page.

\documentclass{book}
% \setcounter{tocdepth}{1}
\begin{document}
\tableofcontents\newpage
  ...
\chapter{...}
  ...
\section{...}
  ...
\subsection{...}
  ...
\end{document}

Uncommenting the second line would cause that table to contain chapter and section listings but not subsection listings, because the \section command has level 1. See Sectioning for level numbers of the sectioning units. For more on the tocdepth see Sectioning/tocdepth.

Another example of the use of \tableofcontents is in Larger book template.

If you want a page break after the table of contents, write a \newpage command after the \tableofcontents command, as above.

To make the table of contents LaTeX stores the information in an auxiliary file named root-file.toc (see Splitting the input). For example, this LaTeX file test.tex

\documentclass{article}
\begin{document}
\tableofcontents\newpage
\section{First section}
\subsection{First subsection}
  ...

writes the following line to test.toc.

\contentsline {section}{\numberline {1}First section}{2}
\contentsline {subsection}{\numberline {1.1}First subsection}{2}

The section or subsection is the sectioning unit. The hook \numberline lets you to change how the information appears in the table of contents. Of its two arguments, 1 or 1.1 is the sectioning unit number and First section or First subsection is the title. Finally, 2 is the page number on which the sectioning units start.

One consequence of this auxiliary file storage strategy is that to get the contents page correct you must run LaTeX twice, once to store the information and once to get it. In particular, the first time that you run LaTeX on a new document, the table of contents page will be empty except for its ‘Contents’ header. Just run it again.

The commands \listoffigures and \listoftables produce a list of figures and a list of tables. They work the same way as the contents commands; for instance, these work with information stored in .lof and .lot files.

To change the header for the table of contents page do something like the first line here.

\renewcommand{\contentsname}{Table of contents}
\renewcommand{\listfigurename}{Plots}
\renewcommand{\listtablename}{Tables}

Similarly, the other two lines will do the other two. Internationalization packages such as babel or polyglossia will change the headers depending on the chosen base language.

CTAN has many packages for the table of contents and lists of figures and tables. One convenient one for adjusting some aspects of the default, such as spacing, is tocloft. And, tocbibbind will automatically add the bibliography, index, etc. to the table of contents.


\addcontentsline

Synopsis:

\addcontentsline{ext}{unit}{text}

Add an entry to the file specified by ext. Usually ext is one of toc for the table of contents, lof for the list of figures, or lot for the list of tables.

The following will result in an ‘Appendices’ line in the table of contents.

\addcontentsline{toc}{section}{\protect\textbf{Appendices}}

It will appear at the same indentation level as the sections, will be in boldface, and will be assigned the page number associated with the point where it appears in the input file.

The \addcontentsline command writes information to the file root-name.ext. It writes that information as the text of the command \contentsline{unit}{text}{num}, where num is the current value of counter unit. The most common case is the table of contents and there num is the page number of the first page of unit.

This command is invoked by the sectioning commands \chapter, etc., and also by \caption inside a float environment. But it is also used by authors. For example, in a book to have the preface unnumbered, you may use the starred \chapter*. But that does not put in table of contents information, so you can enter it manually, as here.

\chapter*{Preface}
\addcontentsline{toc}{chapter}{\protect\numberline{}Preface}

In the .toc file LaTeX will put the line \contentsline {chapter}{\numberline {}Preface}{3}; note the page number ‘3’.

All of the arguments for \addcontentsline are required.

ext

Typically one of the strings toc for the table of contents, lof for the list of figures, or lot for the list of tables. The filename extension of the information file.

unit

A string that depends on the value of the ext argument:

toc

For the table of contents, this is the name of a sectional unit: part, chapter, section, subsection, etc.

lof

For the list of figures: figure.

lot

For the list of tables: table.

text

The text of the entry. You must \protect any commands that are fragile (see \protect).

The \addcontentsline command has an interaction with \include (see \include & \includeonly). If you use them at the same level, as with \addcontentsline{...}{...}{...}\include{...} then lines in the table of contents can come out in the wrong order. The solution is to move \addcontentsline into the file being included.

If you use a unit that LaTeX does not recognize, as here

\addcontentsline{toc}{setcion}{\protect\textbf{Appendices}}

then you don’t get an error but the formatting in the table of contents will not make sense.


\addtocontents

Synopsis:

\addtocontents{ext}{text}

Add text, which may be text or formatting commands, directly to the auxiliary file with extension ext. This is most commonly used for the table of contents so that is the discussion here, but this also applies to the list of figures and list of tables.

This will put some vertical space in the table of contents after the ‘Contents’ header.

\tableofcontents\newpage
\addtocontents{toc}{\protect\vspace*{3ex}}

The \addtocontents command has two arguments. Both are required.

ext

Typically one of: toc for the table of contents, lof for the list of figures, or lot for the list of tables. The extension of the file holding the information.

text

The text, and possibly commands, to be written.

The sectioning commands such as \chapter use the \addcontentsline command to store information. This command creates lines in the .toc auxiliary file containing the \contentsline command (see \addcontentsline). In contrast, the command \addtocontents puts material directly in that file.

The \addtocontents command has an interaction with \include (see \include & \includeonly). If you use them at the same level, as with \addtocontents{...}{...}\include{...} then lines in the table of contents can come out in the wrong order. The solution is to move \addtocontents into the file being included.


\nofiles

Synopsis:

\nofiles

Prevent LaTeX from writing any auxiliary files. The only output will be the .log and .pdf (or .dvi) files. This command must go in the preamble.

Because of the \nofiles command this example will not produce a .toc file.

\documentclass{book}
\nofiles
\begin{document}
\tableofcontents\newpage
\chapter{...}
  ...

LaTeX will not erase any existing auxiliary files, so if you insert the \nofiles command after you have run the file and gotten a .toc then the table of contents page will continue to show the old information.


Indexes

This document has an index.

\documentclass{article}
\usepackage{makeidx} \makeindex
  ...
\begin{document}
  ...
Recall Wilson's Theorem: \index{Wilson's Theorem}
a number \( n>1 \) is prime if and only if the factorial of \( n-1 \)
is congruent to \( -1 \) modulo~\( n \).
  ...
\printindex
  ...

The \usepackage{makeidx} and \makeindex in the preamble bring in the relevant commands.

Producing an index is a three stage process. First, in the document body you declare index entries with the \index command (see \index). When you run LaTeX, the \index writes its information to an auxiliary file root-name.idx. Next, to alphabetize and to do other manipulations you run an external command, typically makeindex or xindy (see makeindex). These output a file root-name.ind. Finally, you bring the information back into your document and typeset it with the \printindex command (see \printindex).

There are many packages that apply to indexing commands. The showidx package causes each index entries to be shown in the margin on the page where the entry appears. This can help in preparing the index. The multind package supports multiple indexes. See also the TeX FAQ entry on this topic, http://www.tex.ac.uk/cgi-bin/texfaq2html?label=multind.


\index

Synopsis:

\index{index-entry-string}

Declare an entry in the index. This command is fragile (see \protect).

For example, as described in Indexes, one way to get an index from what’s below is to compile the document with pdflatex test, then process the index entries with makeindex test, and then compile again with pdflatex test.

W~Ackermann (1896--1962).\index{Ackermann}
  ...
Ackermann function\index{Ackermann!function}
  ...
rate of growth\index{Ackermann!function!growth rate}

All three index entries will get a page number, such as ‘Ackermann, 22’. LaTeX will format the second as a subitem of the first, on the line below it and indented, and the third as a subitem of the second. Three levels deep is as far as you can nest subentries. (If you add \index{Ackermann!function!growth rate!comparison} then makeindex says ‘Scanning input file test.idx....done (4 entries accepted, 1 rejected)’ and nothing appears in the index).

If you enter a second \index with the same index-entry-string then you will get a single index entry with two page numbers (unless they happen to fall on the same page). Thus, adding as for Ackermann.\index{Ackermann} later in the same document as above will give an index entry like ‘Ackermann, 22, 151’. Also, you can enter the index entries in any order, so for instance \index{Ackermann!function} could come before \index{Ackermann}.

Get a page range in the output, like ‘Hilbert, 23--27’, as here.

W~Ackermann (1896--1962).\index{Ackermann}
  ...
D~Hilbert (1862--1943)\index{Ackermann!Hilbert\(}
  ...
disapproved of his marriage.\index{Ackermann!Hilbert\)}

If the beginning and ending of the page range are equal then the system just gives a single page entry, not a range.

If you index subentries but not a main entry, as with \index{Jones!program} and \index{Jones!results}, then the output is the item ‘Jones’ with no comma or page number, followed by two subitems, like ‘program, 50’ and ‘results, 51’.

Generate a index entry that says ‘See’ by using a vertical bar character: \index{Ackermann!function|see{P\'eter's function}}. You can instead get ‘See also’ with seealso. (The text ‘See’ is defined by \seename, and ‘See also’ by \alsoname. You can redefine these either by using an internationalization package such as babel or polyglossia, or directly as with \renewcommand{\alsoname}[1]{Also see #1}.)

The ‘See’ feature is part of a more general functionality. After the vertical bar you can put the name of a one-input command, as in \index{group|textit} (note the missing backslash on the \textit command) and the system will apply that command to the page number, here giving something like \textit{7}. You can define your own one-input commands, such as \newcommand{\definedpage}[1]{{\color{blue}#1}} and then \index{Ackermann!function|definedpage} will give a blue page number (see Color). Another, less practical, example is this,

\newcommand\indexownpage[1]{#1, \thepage}
  ... Epimenides.\index{self-reference|indexownpage}

which creates an entry citing the page number of its own index listing.

The two functions just described combine, as here

\index{Ackermann!function|(definedpage}
  ...
\index{Ackermann!function|)}

which outputs an index entry like ‘function, 23--27’ where the page number range is in blue.

Consider an index entry such as ‘α-ring’. Entering it as $\alpha$-ring will cause it to be alphabetized according to the dollar sign. You can instead enter it using an at-sign, as \index{alpha-ring@$\alpha$-ring}. If you specify an entry with an at-sign separating two strings, pos@text, then pos gives the alphabetical position of the entry while text produces the text of the entry. Another example is that \index{Saint Michael's College@SMC} produces an index entry ‘SMC’ alphabetized into a different location than its spelling would naturally give it.

To put a !, or @, or | character in an index entry, preceding it with a double quote, ". (The double quote gets deleted before alphabetization.)

A number of packages on CTAN have additional functionality beyond that provided by makeidx. One is index, which allows for multiple indices and contains a command \index*{index-entry-string} that prints the index-entry-string as well as indexing it.

The \index command writes the indexing information to the file root-name.idx file. Specifically, it writes text of the command \indexentry{index-entry-string}{page-num}, where page-num is the value of the \thepage counter. On occasion, when the \printindex command is confused, you have to delete this file to start with a fresh slate.

If you omit the closing brace of an \index command then you get a message like this.

Runaway argument?  {Ackermann!function
!  Paragraph ended before \@wrindex was complete.

makeindex

Synopsis, one of:

makeindex filename
makeindex -s style-file filename
makeindex options filename0 ...

Sort, and otherwise process, the index information in the auxiliary file filename. This is a command line program. It takes one or more raw index files, filename.idx files, and produces the actual index file, the filename.ind file that is input by \printindex (see \printindex).

The first form of the command suffices for many uses. The second allows you to format the index by using an index style file, a .isty file. The third form is the most general; see the full documentation on CTAN.

This is a simple .isty file.

% book.isty 
%   $ makeindex -s book.isty -p odd book.idx
% creates the index as book.ind, starting on an odd page. 
preamble
"\\pagestyle{empty}
\\small
\\begin{theindex}
\\thispagestyle{empty}"

postamble
"\n
\\end{theindex}"

The description here covers only some of the index formatting possibilities in style-file. For a full list see the documentation on CTAN.

A style file consists of a list of pairs: specifier and attribute. These can appear in the file in any order. All of the attributes are strings, except where noted. Strings are surrounded with double quotes, ", and the maximum length of a string is 144 characters. The \n is for a newline and \t is for a tab. Backslashes are escaped with another backslash, \\. If a line begins with a percent sign, %, then it is a comment.

preamble

Preamble of the output file. Defines the context in which the index is formatted. Default: "\\begin{theindex}\n".

postamble

Postamble of the output file. Default: "\n\n\\end{theindex}\n".

group_skip

Traditionally index items are broken into groups, typically a group for entries starting with ‘a’, etc. This specifier gives what is inserted when a new group begins. Default: "\n\n \\indexspace\n" (\indexspace is a rubber length with default value 10pt plus5pt minus3pt).

lethead_flag

An integer. It governs what is inserted for a new group or letter. If it is 0 (which is the default) then other than group_skip nothing will be inserted before the group. If it is positive then at a new letter the lethead_prefix and lethead_suffix will be inserted, with that letter in uppercase between them. If it is negative then what will be inserted is the letter in lowercase. The default is 0.

lethead_prefix

If a new group begins with a different letter then this is the prefix inserted before the new letter header. Default: ""

lethead_suffix

If a group begins with a different letter then this is the suffix inserted after the new letter header. Default: "".

item_0

What is put between two level 0 items. Default: "\n \\item ".

item_1

Put between two level 1 items. Default: "\n \\subitem ".

item_2

put between two level 2 items. Default: "\n \\subsubitem ".

item_01

What is put between a level 0 item and a level 1 item. Default: "\n \\subitem ".

item_x1

What is put between a level 0 item and a level 1 item in the case that the level 0 item doesn’t have any page numbers (as in \index{aaa|see{bbb}}). Default: "\n \\subitem ".

item_12

What is put between a level 1 item and a level 2 item. Default: "\n \\subsubitem ".

item_x2

What is put between a level 1 item and a level 2 item, if the level 1 item doesn’t have page numbers. Default: "\n \\subsubitem ".

delim_0

Delimiter put between a level 0 key and its first page number. Default: a comma followed by a blank, ", ".

delim_1

Delimiter put between a level 1 key and its first page number. Default: a comma followed by a blank, ", ".

delim_2

Delimiter between a level 2 key and its first page number. Default: a comma followed by a blank, ", ".

delim_n

Delimiter between two page numbers for the same key (at any level). Default: a comma followed by a blank, ", ".

delim_r

What is put between the starting and ending page numbers of a range. Default: "--".

line_max

An integer. Maximum length of an index entry’s line in the output, beyond which the line wraps. Default: 72.

indent_space

What is inserted at the start of a wrapped line. Default: "\t\t".

indent_length

A number. The length of the wrapped line indentation. The default indent_space is two tabs and each tab is eight spaces so the default here is 16.

page_precedence

A document may have pages numbered in different ways. For example, a book may have front matter pages numbered in lowercase roman while main matter pages are in arabic. This string specifies the order in which they will appear in the index. The makeindex command supports five different types of numerals: lowercase roman r, and numeric or arabic n, and lowercase alphabetic a, and uppercase roman R, and uppercase alphabetic A. Default: "rnaRA".

There are a number of other programs that do the job makeindex does. One is xindy, which does internationalization and can process indexes for documents marked up using LaTeX and a number of other languages. It is highly configurable, both in markup terms and in terms of the collating order of the text, as described in its documentation.


\printindex

Synopsis:

\printindex

Place the index into the output.

To get an index you must first include \usepackage{makeidx}\makeindex in the document preamble and compile the document, then run the system command makeindex, and then compile the document again. See Indexes for further discussion and an example of the use of \printindex.


Glossaries

Synopsis:

\usepackage{glossaries} \makeglossaries
  ...
\newglossaryentry{label}{settings}  
  ...
\gls{label}.  
  ...
\printglossaries

The glossaries package allows you to make glossaries, including multiple glossaries, as well as lists of acronyms.

To get the output from this example, compile the document (for instance with pdflatex filename), then run the command line command makeglossaries filename, and then compile the document again.

\documentclass{...}  
\usepackage{glossaries} \makeglossaries
\newglossaryentry{tm}{%
  name={Turing machine},
  description={A model of a machine that computes.  The model is simple
               but can compute anything any existing device can compute.
               It is the standard model used in Computer Science.},
  }  
\begin{document}  
Everything begins with the definition of a \gls{tm}.  
  ...
\printglossaries
\end{document}

That gives two things. In the main text it outputs ‘... definition of a Turing machine’. In addition, in a separate sectional unit headed ‘Glossary’ there appears a description list. In boldface it says ‘Turing machine’ and the rest of the item says in normal type ‘A model of a machine … Computer Science’.

The command \makeglossary opens the file that will contain the entry information, root-file.glo. Put the \printglossaries command where you want the glossaries to appear in your document.

The glossaries package is very powerful. For instance, besides the commands \newglossaryentry and \gls, there are similar commands for a list of acronyms. See the package documentations on CTAN.


\newglossaryentry

Synopsis, one of:

\newglossaryentry{label} 
{ 
  name={name}, 
  description={description}, 
  other options, ... 
}

or

\longnewglossaryentry{label} 
{ 
  name={name}, 
  other options ..., 
} 
{description}

Declare a new entry for a glossary. The label must be unique for the document. The settings associated with the label are pairs: key=value.

This puts the blackboard bold symbol for the real numbers ℝ in the glossary.

\newglossaryentry{R}  
{  
  name={\ensuremath{\mathbb{R}}},  
  description={the real numbers},  
}

Use the second command form if the description spans more than one paragraph.

For a full list of keys see the package documentation on CTAN but here are a few.

name

(Required.) The word, phrase, or symbol that you are defining.

description

(Required.) The description that will appear in the glossary. If this has more than one paragraph then you must use the second command form given in the synopsis.

plural

The plural form of name. Refer to the plural form using \glspl or \Glspl (see \gls).

sort

How to place this entry in the list of entries that the glossary holds.

symbol

A symbol, such as a mathematical symbol, besides the name.


\gls

Synopsis, one of:

\gls{label}
\glspl{label}
\Gls{label}
\Glspl{label}

Refer to a glossary entry. The entries are declared with \newglossaryentry (see \newglossaryentry).

This

\newglossaryentry{N}{%
  name={the natural numbers},
  description={The numbers $0$, $1$, $2$, $\ldots$\@},
  symbol={\ensuremath{\mathbb{N}}},
  }  
  ...
Consider \gls{N}.

gives the output ‘Consider the natural numbers’.

The second command form \glspl{label} produces the plural of name (by default it tries adding an ‘s’). The third form capitalizes the first letter of name, as does the fourth form, which also takes the plural.

Setzer-0.4.4/data/resources/help/latex2e_26.html000066400000000000000000000423641420322575300214230ustar00rootroot00000000000000 Letters (LaTeX2e unofficial reference manual (October 2018))

Letters

Synopsis:

\documentclass{letter}
\address{senders address}   % return address
\signature{sender name}
\begin{document}
\begin{letter}{recipient address}
\opening{salutation}
  letter body
\closing{closing text}
\end{letter}
   ...
\end{document}

Produce one or more letters.

Each letter is in a separate letter environment, whose argument recipient address often contains multiple lines separated with a double backslash, (\\). For example, you might have:

 \begin{letter}{Ninon de l'Enclos \\
                l'h\^otel Sagonne}
   ...
 \end{letter}

The start of the letter environment resets the page number to 1, and the footnote number to 1 also.

The sender address and sender name are common to all of the letters, whether there is one or more, so these are best put in the preamble. As with the recipient address, often sender address contains multiple lines separated by a double backslash (\\). LaTeX will put the sender name under the closing, after a vertical space for the traditional hand-written signature.

Each letter environment body begins with a required \opening command such as \opening{Dear Madam or Sir:}. The letter body text is ordinary LaTeX so it can contain everything from enumerated lists to displayed math, except that commands such as \chapter that make no sense in a letter are turned off. Each letter environment body typically ends with a \closing command such as \closing{Yours,}.

Additional material may come after the \closing. You can say who is receiving a copy of the letter with a command like \cc{the Boss \\ the Boss's Boss}. There’s a similar \encl command for a list of enclosures. And, you can add a postscript with \ps.

LaTeX’s default is to indent the sender name and the closing above it by a length of \longindentation. By default this is 0.5\textwidth. To make them flush left, put \setlength{\longindentation}{0em} in your preamble.

To set a fixed date use something like \renewcommand{\today}{1958-Oct-12}. If put in your preamble then it will apply to all the letters.

This example shows only one letter environment. The three lines marked as optional are typically omitted.

\documentclass{letter}
\address{Sender's street \\ Sender's town}
\signature{Sender's name \\ Sender's title}
% optional: \location{Mailbox 13}
% optional: \telephone{(102) 555-0101}
\begin{document}
\begin{letter}{Recipient's name \\ Recipient's address}
\opening{Sir:}
% optional: \thispagestyle{firstpage}
I am not interested in entering a business arrangement with you.
\closing{Your most humble, etc.,}
\end{letter}
\end{document}

These commands are used with the letter class.


\address

Synopsis:

\address{senders address}

Specify the return address, as it appears on the letter and on the envelope. Separate multiple lines in senders address with a double backslash, \\.

Because it can apply to multiple letters this declaration is often put in the preamble. However, it can go anywhere, including inside an individual letter environment.

This command is optional: if you do not use it then the letter is formatted with some blank space on top, for copying onto pre-printed letterhead paper. If you do use the \address declaration then it is formatted as a personal letter.

Here is an example.

\address{Stephen Maturin \\
         The Grapes of the Savoy}

\cc

Synopsis:

\cc{name0 \\ 
     ... }

Produce a list of names to which copies of the letter were sent. This command is optional. If it appears then typically it comes after \closing. Put the names on different lines by separating them with a double backslash, \\, as in:

\cc{President \\
    Vice President}

\closing

Synopsis:

\closing{text}

Produce the letter’s closing. This is optional, but usual. It appears at the end of a letter, above a handwritten signature. For example:

\closing{Regards,}

\encl

Synopsis:

\encl{first enclosed object \\ 
       ... }

Produce a list of things included with the letter. This command is optional; when it is used, it typically is put after \closing. Separate multiple lines with a double backslash, \\.

\encl{License \\
      Passport}

\location

Synopsis:

\location{text}

The text appears centered at the bottom of the page. It only appears if the page style is firstpage.


\makelabels

Synopsis:

\makelabels   % in preamble

Optional, for a document that contains letter environments. If you just put \makelabels in the preamble then at the end of the document you will get a sheet with labels for all the recipients, one for each letter environment, that you can copy to a sheet of peel-off address labels.

Customize the labels by redefining the commands \startlabels, \mlabel, and \returnaddress (and perhaps \name) in the preamble. The command \startlabels sets the width, height, number of columns, etc., of the page onto which the labels are printed. The command \mlabel{return address}{recipient address} produces the two labels (or one, if you choose to ignore the return address) for each letter environment. The first argument, return address, is the value returned by the macro \returnaddress. The second argument, recipient address, is the value passed in the argument to the letter environment. By default \mlabel ignores the first argument, the return address, causing the default behavior described in the prior paragraph.

This illustrates customization. Its output includes a page with two columns having two labels each.

\documentclass{letter}
\renewcommand*{\returnaddress}{Fred McGuilicuddy \\
                               Oshkosh, Mineola 12305}
\newcommand*\originalMlabel{}
\let\originalMlabel\mlabel
\def\mlabel#1#2{\originalMlabel{}{#1}\originalMlabel{}{#2}}
\makelabels
  ...
\begin{document}
\begin{letter}{A Einstein \\
               112 Mercer Street \\
               Princeton, New Jersey, USA 08540}
  ...
\end{letter}
\begin{letter}{K G\"odel \\
               145 Linden Lane \\
               Princeton, New Jersey, USA 08540}
  ...
\end{letter}
\end{document}

The first column contains the return address twice. The second column contains the address for each recipient.

The package envlab makes formatting the labels easier, with standard sizes already provided. The preamble lines \usepackage[personalenvelope]{envlab} and \makelabels are all that you need to print envelopes.


\name

Synopsis:

\name{name}

Optional. Sender’s name, used for printing on the envelope together with the return address.


\opening

Synopsis:

\opening{salutation}

Required. Follows the \begin{letter}{...}. The argument salutation is mandatory. For instance:

\opening{Dear John:}

\ps

Synopsis:

\ps{text}

Add a postscript. This command is optional and usually is used after \closing.

\ps{P.S. After you have read this letter, burn it. Or eat it.}

\signature

Synopsis:

\signature{first line \\
            ... }

The sender’s name. This command is optional, although its inclusion is usual.

The argument text appears at the end of the letter, after the closing. LaTeX leaves some vertical space for a handwritten signature. Separate multiple lines with a double backslash, \\. For example:

\signature{J Fred Muggs \\
           White House}

LaTeX’s default for the vertical space from the \closing text down to the \signature text is 6\medskipamount, which is six times \medskipamount (where \medskipamount is equal to a \parskip, which in turn is defined by default here to 0.7em).

This command is usually in the preamble, to apply to all the letters in the document. To have it apply to one letter only, put it inside a letter environment and before the \closing.

You can include a graphic in the signature as here.

\signature{\vspace{-6\medskipamount}\includegraphics{sig.png}\\
             My name}

For this you must put \usepackage{graphicx} in the preamble (see Graphics).


\telephone

Synopsis:

\telephone{number}

The sender’s telephone number. This is typically in the preamble, where it applies to all letters. This only appears if the firstpage pagestyle is selected. If so, it appears on the lower right of the page.

Setzer-0.4.4/data/resources/help/latex2e_27.html000066400000000000000000000166241420322575300214240ustar00rootroot00000000000000 Terminal input/output (LaTeX2e unofficial reference manual (October 2018))

Terminal input/output


\typein

Synopsis, one of:

\typein{prompt-msg}
\typein[cmd]{prompt-msg}

Print prompt-msg on the terminal and cause LaTeX to stop and wait for you to type a line of input. This line of input ends when you hit the return key.

For example, this

As long as I live I shall never forget \typein{Enter student name:}

coupled with this command line interaction

Enter student name:

\@typein=Aphra Behn

gives the output ‘... never forget Aphra Behn’.

The first command version, \typein{prompt-msg}, causes the input you typed to be processed as if it had been included in the input file in place of the \typein command.

In the second command version the optional argument cmd argument must be a command name — it must begin with a backslash, \. This command name is then defined or redefined to be the input that you typed. For example, this

\typein[\student]{Enter student name:}
\typeout{Recommendation for \student .}

gives this output on the command line,

Enter student name:

\student=John Dee
Recommendation for John Dee.

where the user has entered ‘John Dee.


\typeout

Synopsis:

\typeout{msg}

Print msg on the terminal and in the log file.

This

\newcommand{\student}{John Dee}
\typeout{Recommendation for \student .}

outputs ‘Recommendation for John Dee’. Like what happens here with \student, commands that are defined with \newcommand or \renewcommand (among others) are replaced by their definitions before being printed.

LaTeX’s usual rules for treating multiple spaces as a single space and ignoring spaces after a command name apply to msg. As above, use the command \space to get a single space, independent of surrounding spaces. Use ^^J to get a newline. Get a percent character with \csname @percentchar\endcsname.

This command can be useful for simple debugging, as here:

\newlength{\jhlength}
\setlength{\jhlength}{5pt}
\typeout{The length is \the\jhlength.}

produces on the command line ‘The length is 5.0pt’.

Setzer-0.4.4/data/resources/help/latex2e_28.html000066400000000000000000000401161420322575300214160ustar00rootroot00000000000000 Command line (LaTeX2e unofficial reference manual (October 2018))

Command line

Synopsis (from a terminal command line):

pdflatex options argument

Run LaTeX on argument. In place of pdflatex you can also use xelatex, or lualatex, or dviluatex, or latex.

For example, this will run LaTeX on the file thesis.tex, creating the output thesis.pdf.

pdflatex thesis

Note that .tex is the default file extension.

pdfTeX is a development of the original TeX program, as are XeTeX and LuaTeX (see TeX engines). They are completely backward compatible. But the original program had a custom output format, DVI, while the newer ones can output directly to PDF. This allows them to take advantage of the extra features in PDF such as hyperlinks, support for modern image formats such as JPG and PNG, and ubiquitous viewing programs. In short, if you run pdflatex or xelatex or lualatex then you will by default get PDF and have access to all its modern features. If you run latex, or dvilualatex, then you will get DVI. The description here assumes pdfLaTeX.

See Command line options, for a selection of the most useful command line options. As to argument, the usual case is that it does not begin with a backslash, so the system takes it to be the name of a file and it compiles that file. If argument begins with a backslash then the system will interpret it as a line of LaTeX input, which can be used for special effects (see Command line input).

If you gave no arguments or options then pdflatex prompts for input from the terminal. You can escape from this by entering <control>-D.

If LaTeX finds an error in your document then by default it stops and asks you about it. See Recovering from errors for an outline of what to do.


Command line options

These are the command-line options relevant to ordinary document authoring. For a full list, try running ‘latex --help’ from the command line.

With many implementations you can specify command line options by prefixing them with ‘-’ or ‘--’. This is the case for both TeX Live (and MacTeX) and MiKTeX. We will use both conventions interchangeably.

-version

Show the current version, like ‘pdfTeX 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian)’ along with a small amount of additional information, and exit.

-help

Give a brief usage message that is useful as a prompt and exit.

-interaction=mode

TeX compiles a document in one of four interaction modes: batchmode, nonstopmode, scrollmode, errorstopmode. In errorstop mode (the default), TeX stops at each error and asks for user intervention. In batch mode it prints nothing on the terminal, errors are scrolled as if the user hit <return> at every error, and missing files cause the job to abort. In nonstop mode, diagnostic message appear on the terminal but as in batch mode there is no user interaction. In scroll mode, TeX only stops for missing files or keyboard input.

For instance, starting LaTeX with this command line

pdflatex -interaction=batchmode filename

eliminates most terminal output.

-jobname=string

Set the value of TeX’s jobname to the string. The log file and output file will then be named string.log and string.pdf.

When you run pdflatex options argument, if argument does not start with a backslash then TeX considers it the name of a file to input. Otherwise it waits for the first \input instruction and the name of the input file will be the job name. This is used to name the log file the output file. The jobname option overrides that process and directly specifies the name. See Command line input for an example of its use.

-output-directory=directory

Write files in the directory directory. It must already exist.

--shell-escape
--no-shell-escape
--enable-write18
--disable-write18

Enable or disable \write18{shell command}. The first two options are for with TeX Live or MacTeX while the second two are for MiKTeX.

Sometimes you want to run external system commands from inside a LaTeX file. For instance the package sagetex allows you to have the mathematics software system Sage do calculations or draw graphs and then incorporate that output in your document. For this TeX provides the \write18 command.

But with this functionality enabled, security issues could happen if you compiled a LaTeX file from the Internet. By default \write18 is disabled. (More precisely, by default TeX Live, MacTeX, and MiKTeX only allow the execution of a limited number of TeX-related programs, which they distribute.)

If you invoke LaTeX with the option no-shell-escape, and in your document you call \write18{ls -l}, then you do not get an error but the log file says ‘runsystem(ls -l)...disabled’.

-halt-on-error

Stop processing at the first error.

-file-line-error
-no-file-line-error

Enable or disable filename:lineno:error-style error messages. These are only available with TeX Live or MacTeX.


Command line input

As part of the command line invocation pdflatex options argument you can specify arbitrary LaTeX input by starting argument with a backslash. This allows you to do some special effects.

For example, this file (which uses the hyperref package for hyperlinks) can produce two kinds of output, one for paper and one for a PDF.

\ifdefined\paperversion        % in preamble
\newcommand{\urlcolor}{black}
\else
\newcommand{\urlcolor}{blue}
\fi
\usepackage[colorlinks=true,urlcolor=\urlcolor]{hyperref}
  ...
\href{https://www.ctan.org}{CTAN}  % in body
  ...

Compiling this document book.tex with the command line pdflatex book will give the ‘CTAN’ link in blue. But compiling it with pdflatex "\def\paperversion{}\input book.tex" has the link in black. (Note the use of double quotes to prevent interpretation of the symbols by the command line shell; your system may do this differently.)

In a similar way, from the single file main.tex you can compile two different versions.

pdflatex -jobname=students "\def\student{}\input{main}"
pdflatex -jobname=teachers "\def\teachers{}\input{main}"

The jobname option is there because otherwise both files would be called main.pdf and the second would overwrite the first.

A final example. This loads the package graphicx with the option draft

pdflatex -jobname=aa "\RequirePackage[draft]{graphicx}\input{aa.tex}"

so the graphic files are read for their size information but not incorporated into the PDF. (The jobname option is there because otherwise the output file would be graphicx.pdf, as \RequirePackage does an \input of its own.)


Recovering from errors

If LaTeX finds an error in your document then it gives you an error message and prompts you with a question mark, ?. For instance, running LaTeX on this file

\newcommand{\NP}{\ensuremath{\textbf{NP}}}
The \PN{} problem is a million dollar one.

causes it show this, and wait for input.

! Undefined control sequence.
l.5 The \PN
           {} problem is a million dollar one.
? 

The simplest thing is to enter ‘x’ and <return> and fix the typo. You could instead enter ‘?’ and <return> to see other options.

There are two other error scenarios. The first is that you forgot to include the \end{document} or misspelled it. In this case LaTeX gives you a ‘*’ prompt. You can get back to the command line by typing \stop and <return>.

The last scenario is that you mistyped the file name. For instance, instead of pdflatex test you might type pdflatex tste.

! I can't find file `tste'.
<*> tste
        
(Press Enter to retry, or Control-D to exit)
Please type another input file name:

The simplest thing is to enter <Control> and ‘d’ (holding them down at the same time), and then retype the correct command line.

Setzer-0.4.4/data/resources/help/latex2e_29.html000066400000000000000000000254371420322575300214300ustar00rootroot00000000000000 Document templates (LaTeX2e unofficial reference manual (October 2018))

Document templates

Although not reference material, perhaps these document templates will be useful. Additional template resources are listed at http://tug.org/interest.html#latextemplates.


beamer template

The beamer class creates presentation slides. It has a vast array of features, but here is a basic template:

\documentclass{beamer}

\title{Beamer Class template}
\author{Alex Author}
\date{July 31, 2007}

\begin{document}

\maketitle

% without [fragile], any {verbatim} code gets mysterious errors.
\begin{frame}[fragile]
 \frametitle{First Slide}

\begin{verbatim}
  This is \verbatim!
\end{verbatim}

\end{frame}

\end{document}

One web resource for this: http://robjhyndman.com/hyndsight/beamer/.


article template

\documentclass{article}
\title{Article Class Template}
\author{Alex Author}

\begin{document}
\maketitle

\section{First section}
Some text.

\subsection{First section, first subsection}
Additional text.

\section{Second section}
Some more text.
\end{document}

book template

This is a straightforward template for a book. See See Larger book template for a more elaborate one.

\documentclass{book}
\title{Book Class Template}
\author{Alex Author}

\begin{document}
\maketitle

\chapter{First}
Some text.

\chapter{Second}
Some other text.

\section{A subtopic}
The end.
\end{document}

Larger book template

This is a more elaborate template for a book. It has \frontmatter, \mainmatter, and \backmatter to control the typography of the three main areas of a book (see \frontmatter & \mainmatter & \backmatter). The book has a bibliography and an index.

Notable is that it uses \include and \includeonly (see Splitting the input). While you are working on a chapter you can comment out all the other chapter entries from the argument to \includeonly. That will speed up compilation without losing any information such as cross-references. (Material that does not need to come on a new page is brought in with \input instead of \include. You don’t get the cross-reference benefit this way.)

\documentclass[titlepage]{book}
\usepackage{makeidx}\makeindex

\title{Book Class Template}
\author{Alex Author}

\includeonly{%
  frontcover,
  preface,
  chap1,
  ...
  }
\begin{document}
\frontmatter
\include{frontcover}
  % maybe comment out while drafting:
\maketitle \input{dedication} \input{copyright}
\tableofcontents
\include{preface}
\mainmatter
\include{chap1}
...
\appendix
\include{appena}
...
\backmatter
\bibliographystyle{apalike}
\addcontentsline{toc}{chapter}{Bibliography}
\bibliography
\addcontentsline{toc}{chapter}{Index}
\printindex
\include{backcover}
\end{document}

tugboat template

TUGboat is the journal of the TeX Users Group, http://tug.org/TUGboat.

\documentclass{ltugboat}

\usepackage{graphicx}
\usepackage{ifpdf}
\ifpdf
\usepackage[breaklinks,hidelinks]{hyperref}
\else
\usepackage{url}
\fi

%%% Start of metadata %%%

\title{Example \TUB\ article}

% repeat info for each author.
\author{First Last}
\address{Street Address \\ Town, Postal \\ Country}
\netaddress{user (at) example dot org}
\personalURL{http://example.org/~user/}

%%% End of metadata %%%

\begin{document}

\maketitle

\begin{abstract}
This is an example article for \TUB{}.
Please write an abstract.
\end{abstract}

\section{Introduction}

This is an example article for \TUB, linked from
\url{http://tug.org/TUGboat/location.html}.

We recommend the \texttt{graphicx} package for image inclusions, and the
\texttt{hyperref} package if active urls are desired (in the \acro{PDF}
output).  Nowadays \TUB\ is produced using \acro{PDF} files exclusively.

The \texttt{ltugboat} class provides these abbreviations (and many more):
% verbatim blocks are often better in \small
\begin{verbatim}[\small]
\AllTeX \AMS \AmS \AmSLaTeX \AmSTeX \aw \AW
\BibTeX \CTAN \DTD \HTML
\ISBN \ISSN \LaTeXe
\mf \MFB
\plain \POBox \PS
\SGML \TANGLE \TB \TP
\TUB \TUG \tug
\UNIX \XeT \WEB \WEAVE

\, \bull \Dash \dash \hyph

\acro{FRED} -> {\small[er] fred}  % please use!
\cs{fred}   -> \fred
\meta{fred} -> <fred>
\nth{n}     -> 1st, 2nd, ...
\sfrac{3/4} -> 3/4
\booktitle{Book of Fred}
\end{verbatim}

For references to other \TUB\ issue, please use the format
\textsl{volno:issno}, e.g., ``\TUB\ 32:1'' for our \nth{100} issue.

This file is just a template.  The \TUB\ style documentation is the
\texttt{ltubguid} document at \url{http://ctan.org/pkg/tugboat}.  (For
\CTAN\ references, where sensible we recommend that form of url, using
\texttt{/pkg/}; or, if you need to refer to a specific file location,
\texttt{http://mirror.ctan.org/\textsl{path}}.)

Email \verb|tugboat@tug.org| if problems or questions.

\bibliographystyle{plain}  % we recommend the plain bibliography style
\nocite{book-minimal}      % just making the bibliography non-empty
\bibliography{xampl}       % xampl.bib comes with BibTeX

\makesignature
\end{document}
Setzer-0.4.4/data/resources/help/latex2e_3.html000066400000000000000000001243511420322575300213330ustar00rootroot00000000000000 Document classes (LaTeX2e unofficial reference manual (October 2018))

Document classes

The document’s overall class is defined with this command, which is normally the first command in a LaTeX source file.

\documentclass[options]{class}

The following document class names are built into LaTeX. (Many other document classes are available as separate packages; see Overview.)

article

For a journal article, a presentation, and miscellaneous general use.

book

Full-length books, including chapters and possibly including front matter, such as a preface, and back matter, such as an appendix (see Front/back matter).

letter

Mail, optionally including mailing labels (see Letters).

report

For documents of length between an article and a book, such as technical reports or theses, which may contain several chapters.

slides

For slide presentations—rarely used today. In its place the beamer package is perhaps the most prevalent (see beamer template).

Standard options are described in the next section.


Document class options

You can specify global options or class options to the \documentclass command by enclosing them in square brackets. To specify more than one option, separate them with a comma.

\documentclass[option1,option2,...]{class}

Here is the list of the standard class options.

All of the standard classes except slides accept the following options for selecting the typeface size (default is 10pt):

10pt  11pt  12pt

All of the standard classes accept these options for selecting the paper size (these show height by width):

a4paper

210 by 297mm (about 8.25 by 11.75 inches)

a5paper

148 by 210mm (about 5.8 by 8.3 inches)

b5paper

176 by 250mm (about 6.9 by 9.8 inches)

executivepaper

7.25 by 10.5 inches

legalpaper

8.5 by 14 inches

letterpaper

8.5 by 11 inches (the default)

When using one of the engines pdfLaTeX, LuaLaTeX, or XeLaTeX (see TeX engines), options other than letterpaper set the print area but you must also set the physical paper size. One way to do that is to put \pdfpagewidth=\paperwidth and \pdfpageheight=\paperheight in your document’s preamble.

The geometry package provides flexible ways of setting the print area and physical page size.

Miscellaneous other options:

draft
final

Mark (draft) or do not mark (final) overfull boxes with a black box in the margin; default is final.

fleqn

Put displayed formulas flush left; default is centered.

landscape

Selects landscape format; default is portrait.

leqno

Put equation numbers on the left side of equations; default is the right side.

openbib

Use “open” bibliography format.

titlepage
notitlepage

Specifies whether there is a separate page for the title information and for the abstract also, if there is one. The default for the report class is titlepage, for the other classes it is notitlepage.

The following options are not available with the slides class.

onecolumn
twocolumn

Typeset in one or two columns; default is onecolumn.

oneside
twoside

Selects one- or two-sided layout; default is oneside, except that in the book class the default is twoside.

For one-sided printing, the text is centered on the page. For two-sided printing, the \evensidemargin (\oddsidemargin) parameter determines the distance on even (odd) numbered pages between the left side of the page and the text’s left margin, with \oddsidemargin being 40% of the difference between \paperwidth and \textwidth, and \evensidemargin is the remainder.

openright
openany

Determines if a chapter should start on a right-hand page; default is openright for book, and openany for report.

The slides class offers the option clock for printing the time at the bottom of each note.


Additional packages

Load a package pkg, with the package options given in the comma-separated list options, as here.

\usepackage[options]{pkg}.

To specify more than one package you can separate them with a comma, as in \usepackage{pkg1,pkg2,...}, or use multiple \usepackage commands.

Any options given in the \documentclass command that are unknown to the selected document class are passed on to the packages loaded with \usepackage.


Class and package construction

You can create new document classes and new packages. For instance, if your memos must satisfy some local requirements, such as a standard header for each page, then you could create a new class smcmemo.cls and begin your documents with \documentclass{smcmemo}.

What separates a package from a document class is that the commands in a package are useful across classes while those in a document class are specific to that class. Thus, a command to set page headers is for a package while a command to make the page headers say Memo from the SMC Math Department is for a class.

Inside of a class or package file you can use the at-sign @ as a character in command names without having to surround the code containing that command with \makeatletter and \makeatother. See \makeatletter & \makeatother. This allow you to create commands that users will not accidentally redefine. Another technique is to preface class- or package-specific commands with some string to prevent your class or package from interfering with others. For instance, the class smcmemo might have commands \smc@tolist, \smc@fromlist, etc.


Class and package structure

A class file or package file typically has four parts.

  1. In the identification part, the file says that it is a LaTeX package or class and describes itself, using the \NeedsTeXFormat and \ProvidesClass or \ProvidesPackage commands.
  2. The preliminary declarations part declares some commands and can also load other files. Usually these commands will be those needed for the code used in the next part. For example, an smcmemo class might be called with an option to read in a file with a list of people for the to-head, as \documentclass[mathto]{smcmemo}, and therefore needs to define a command \newcommand{\setto}[1]{\def\@tolist{#1}} used in that file.
  3. In the handle options part the class or package declares and processes its options. Class options allow a user to start their document as \documentclass[option list]{class name}, to modify the behavior of the class. An example is when you declare \documentclass[11pt]{article} to set the default document font size.
  4. Finally, in the more declarations part the class or package usually does most of its work: declaring new variables, commands and fonts, and loading other files.

Here is a starting class file, which should be saved as stub.cls where LaTeX can find it, for example in the same directory as the .tex file.

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{stub}[2017/07/06 stub to start building classes from]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
\LoadClass{article}

It identifies itself, handles the class options via the default of passing them all to the article class, and then loads the article class to provide the basis for this class’s code.

For more, see the official guide for class and package writers, the Class Guide, at http://www.latex-project.org/help/documentation/clsguide.pdf (much of the descriptions here derive from this document), or the tutorial https://www.tug.org/TUGboat/tb26-3/tb84heff.pdf.


Class and package commands

These are the commands designed to help writers of classes or packages.

\AtBeginDvi{specials}

Save in a box register things that are written to the .dvi file at the beginning of the shipout of the first page of the document.

\AtEndOfClass{code}
\AtEndOfPackage{code}

Hook to insert code to be executed when LaTeX finishes processing the current class or package. You can use these hooks multiple times; the code will be executed in the order that you called it. See also \AtBeginDocument.

\CheckCommand{cmd}[num][default]{definition}
\CheckCommand*{cmd}[num][default]{definition}

Like \newcommand (see \newcommand & \renewcommand) but does not define cmd; instead it checks that the current definition of cmd is exactly as given by definition and is or is not long as expected. A long command is a command that accepts \par within an argument. The cmd command is expected to be long with the unstarred version of \CheckCommand. Raises an error when the check fails. This allows you to check before you start redefining cmd yourself that no other package has already redefined this command.

\ClassError{class name}{error text}{help text}
\PackageError{package name}{error text}{help text}
\ClassWarning{class name}{warning text}
\PackageWarning{package name}{warning text}
\ClassWarningNoLine{class name}{warning text}
\PackageWarningNoLine{package name}{warning text}
\ClassInfo{class name}{info text}
\PackageInfo{package name}{info text}
\ClassInfoNoLine{class name}{info text}
\PackageInfoNoLine{package name}{info text}

Produce an error message, or warning or informational messages.

For \ClassError and \PackageError the message is error text, followed by TeX’s ? error prompt. If the user then asks for help by typing h, they see the help text.

The four warning commands are similar except that they write warning text on the screen with no error prompt. The four info commands write info text only in the transcript file. The NoLine versions do not show the number of the line generating the message, while the other versions do show that number.

To format the messages, including the help text: use \protect to stop a command from expanding, get a line break with \MessageBreak, and get a space with \space when a space character does not allow it, like after a command. Note that LaTeX appends a period to the messages.

\CurrentOption

Expands to the name of the currently-being-processed option. Can only be used within the code argument of either \DeclareOption or \DeclareOption*.

\DeclareOption{option}{code}
\DeclareOption*{code}

Make an option available to a user to invoke in their \documentclass command. For example, the smcmemo class could have an option \documentclass[logo]{smcmemo} allowing users to put the institutional logo on the first page. The class file must contain \DeclareOption{logo}{code} (and later, \ProcessOptions).

If you request an option that has not been declared, by default this will produce a warning like Unused global option(s): [badoption]. Change this behaviour with the starred version \DeclareOption*{code}. For example, many classes extend an existing class, using a declaration such as \LoadClass{article}, and for passing extra options to the underlying class use code such as this.

\DeclareOption*{%
\PassOptionsToClass{\CurrentOption}{article}%
}

Another example is that the class smcmemo may allow users to keep lists of memo recipients in external files. Then the user could invoke \documentclass[math]{smcmemo} and it will read the file math.memo. This code handles the file if it exists and otherwise passes the option to the article class.

\DeclareOption*{\InputIfFileExists{\CurrentOption.memo}{}{%
    \PassOptionsToClass{\CurrentOption}{article}}}
\DeclareRobustCommand{cmd}[num][default]{definition}
\DeclareRobustCommand*{cmd}[num][default]{definition}

Like \newcommand and \newcommand* (see \newcommand & \renewcommand) but these declare a robust command, even if some code within the definition is fragile. (For a discussion of robust and fragile commands see \protect.) Use this command to define new robust commands or to redefine existing commands and make them robust. Unlike \newcommand these do not give an error if macro cmd already exists; instead, a log message is put into the transcript file if a command is redefined.

Commands defined this way are a bit less efficient than those defined using \newcommand so unless the command’s data is fragile and the command is used within a moving argument, use \newcommand.

The etoolbox package offers the commands \newrobustcmd, \newrobustcmd*, as well as the commands \renewrobustcmd, \renewrobustcmd*, and the commands \providerobustcmd, and \providerobustcmd*. These are similar to \newcommand, \newcommand*, \renewcommand, \renewcommand*, \providecommand, and \providecommand*, but define a robust cmd with two advantages as compared to \DeclareRobustCommand:

  1. They use the low-level e-TeX protection mechanism rather than the higher level LaTeX \protect mechanism, so they do not incur the slight loss of performance mentioned above, and
  2. They make the same distinction between \new…, \renew…, and \provide…, as the standard commands, so they do not just make a log message when you redefine cmd that already exists, in that case you need to use either \renew… or \provide… or you get an error.
\IfFileExists{file name}{true code}{false code}
\InputIfFileExists{file name}{true code}{false code}

Execute true code if LaTeX finds the file file name or false code otherwise. In the first case it executing true code and then inputs the file. Thus the command

\IfFileExists{img.pdf}{%
  \includegraphics{img.pdf}}{\typeout{!! img.pdf not found}

will include the graphic img.pdf if it is found and otherwise give a warning.

This command looks for the file in all search paths that LaTeX uses, not only in the current directory. To look only in the current directory do something like \IfFileExists{./filename}{true code}{false code}. If you ask for a filename without a .tex extension then LaTeX will first look for the file by appending the .tex; for more on how LaTeX handles file extensions see \input.

\LoadClass[options list]{class name}[release date]
\LoadClassWithOptions{class name}[release date]

Load a class, as with \documentclass[options list]{class name}[release info]. An example is \LoadClass[twoside]{article}.

The options list, if present, is a comma-separated list. The release date is optional. If present it must have the form YYYY/MM/DD.

If you request a release date and the date of the package installed on your system is earlier, then you get a warning on the screen and in the log like this.

You have requested, on input line 4, version `2038/01/19' of
document class article, but only version `2014/09/29 v1.4h
Standard LaTeX document class' is available.

The command version \LoadClassWithOptions uses the list of options for the current class. This means it ignores any options passed to it via \PassOptionsToClass. This is a convenience command that lets you build classes on existing ones, such as the standard article class, without having to track which options were passed.

\ExecuteOptions{options-list}

For each option option in the options-list, in order, this command executes the command \ds@option. If this command is not defined then that option is silently ignored.

It can be used to provide a default option list before \ProcessOptions. For example, if in a class file you want the default to be 11pt fonts then you could specify \ExecuteOptions{11pt}\ProcessOptions\relax.

\NeedsTeXFormat{format}[format date]

Specifies the format that this class must be run under. Often issued as the first line of a class file, and most often used as: \NeedsTeXFormat{LaTeX2e}. When a document using that class is processed, the format name given here must match the format that is actually being run (including that the format string is case sensitive). If it does not match then execution stops with an error like ‘This file needs format `LaTeX2e' but this is `xxx'.

To specify a version of the format that you know to have certain features, include the optional format date on which those features were implemented. If present it must be in the form YYYY/MM/DD. If the format version installed on your system is earlier than format date then you get a warning like this.

You have requested release `2038/01/20' of LaTeX, but only
release `2016/02/01' is available.
\OptionNotUsed

Adds the current option to the list of unused options. Can only be used within the code argument of either \DeclareOption or \DeclareOption*.

\PassOptionsToClass{option list}{class name}
\PassOptionsToPackage{option list}{package name}

Adds the options in the comma-separated list option list to the options used by any future \RequirePackage or \usepackage command for package package name or the class class name.

The reason for these commands is: you may load a package any number of times with no options but if you want options then you may only supply them when you first load the package. Loading a package with options more than once will get you an error like Option clash for package foo. (LaTeX throws an error even if there is no conflict between the options.)

If your own code is bringing in a package twice then you can collapse that to once, for example replacing the two \RequirePackage[landscape]{geometry} and \RequirePackage[margins=1in]{geometry} with the single command \RequirePackage[landscape,margins=1in]{geometry}.

However, imagine that you are loading firstpkg and inside that package it loads secondpkg, and you need the second package to be loaded with option draft. Then before doing the first package you must queue up the options for the second package, like this.

\PassOptionsToPackage{draft}{secondpkg}
\RequirePackage{firstpkg}

(If firstpkg.sty loads an option in conflict with what you want then you may have to alter its source.)

These commands are useful for general users as well as class and package writers. For instance, suppose a user wants to load the graphicx package with the option draft and also wants to use a class foo that loads the graphicx package, but without that option. The user could start their LaTeX file with \PassOptionsToPackage{draft}{graphicx}\documentclass{foo}.

\ProcessOptions
\ProcessOptions*\@options

Execute the code for each option that the user has invoked. Include it in the class file as \ProcessOptions\relax (because of the existence of the starred command).

Options come in two types. Local options have been specified for this particular package in the options argument of \PassOptionsToPackage{options}, \usepackage[options], or \RequirePackage[options]. Global options are those given by the class user in \documentclass[options] (If an option is specified both locally and globally then it is local.)

When \ProcessOptions is called for a package pkg.sty, the following happens:

  1. For each option option so far declared with \DeclareOption, it looks to see if that option is either a global or a local option for pkg. If so then it executes the declared code. This is done in the order in which these options were given in pkg.sty.
  2. For each remaining local option, it executes the command \ds@option if it has been defined somewhere (other than by a \DeclareOption); otherwise, it executes the default option code given in \DeclareOption*. If no default option code has been declared then it gives an error message. This is done in the order in which these options were specified.

When \ProcessOptions is called for a class it works in the same way except that all options are local, and the default code for \DeclareOption* is \OptionNotUsed rather than an error.

The starred version \ProcessOptions* executes the options in the order specified in the calling commands, rather than in the order of declaration in the class or package. For a package this means that the global options are processed first.

\ProvidesClass{class name}[release date brief additional information]
\ProvidesClass{class name}[release date]
\ProvidesPackage{package name}[release date brief additional information]
\ProvidesPackage{package name}[release date]

Identifies the class or package, printing a message to the screen and the log file.

When you load a class or package, for example with \documentclass{smcmemo} or \usepackage{test}, LaTeX inputs a file. If the name of the file does not match the class or package name declared in it then you get a warning. Thus, if you invoke \documentclass{smcmemo}, and the file smcmemo.cls has the statement \ProvidesClass{xxx} then you get a warning like You have requested document class `smcmemo', but the document class provides 'xxx'. This warning does not prevent LaTeX from processing the rest of the class file normally.

If you include the optional argument then you must include a date, before any spaces, of the form YYYY/MM/DD. The rest of the optional argument is free-form, although it traditionally identifies the class, and is written to the screen during compilation and to the log file. Thus, if your file smcmemo.cls contains the line \ProvidesClass{smcmemo}[2008/06/01 v1.0 SMC memo class] and your document’s first line is \documentclass{smcmemo} then you will see Document Class: smcmemo 2008/06/01 v1.0 SMC memo class.

The date in the optional argument allows class and package users to ask to be warned if the version of the class or package is earlier than release date. For instance, a user could enter \documentclass{smcmemo}[2018/10/12] or \usepackage{foo}[[2017/07/07]] to require a class or package with certain features by specifying that it must be released no earlier than the given date. (Although, in practice package users only rarely include a date, and class users almost never do.)

\ProvidesFile{file name}[additional information]

Declare a file other than the main class and package files, such as configuration files or font definition files. Put this command in that file and you get in the log a string like File: test.config 2017/10/12 config file for test.cls for file name equal to ‘test.config’ and additional information equal to ‘2017/10/12 config file for test.cls’.

\RequirePackage[option list]{package name}[release date]
\RequirePackageWithOptions{package name}[release date]

Load a package, like the command \usepackage (see Additional packages). The LaTeX development team strongly recommends use of these commands over Plain TeX’s \input; see the Class Guide. An example is \RequirePackage[landscape,margin=1in]{geometry}.

The option list, if present, is a comma-separated list. The release date, if present, must have the form YYYY/MM/DD. If the release date of the package as installed on your system is earlier than release date then you get a warning like You have requested, on input line 9, version `2017/07/03' of package jhtest, but only version `2000/01/01' is available.

The \RequirePackageWithOptions version uses the list of options for the current class. This means it ignores any options passed to it via \PassOptionsToClass. This is a convenience command to allow easily building classes on existing ones without having to track which options were passed.

The difference between \usepackage and \RequirePackage is small. The \usepackage command is intended for the document file while \RequirePackage is intended for package and class files. Thus, using \usepackage before the \documentclass command causes LaTeX to give error like \usepackage before \documentclass, but you can use \RequirePackage there.

Setzer-0.4.4/data/resources/help/latex2e_30.html000066400000000000000000016440731420322575300214240ustar00rootroot00000000000000 Index (LaTeX2e unofficial reference manual (October 2018))

Index

Jump to:   &   *   -   .   1   :   [   \   ^   _   `   {   ~  
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X  
Index Entry  Section

&
&: tabular

*
*’ prompt: Recovering from errors
*-form of environment commands: \newenvironment & \renewenvironment
*-form of sectioning commands: Sectioning
*-form, defining new commands: \newcommand & \renewcommand

-
--disable-write18 command-line option: Command line options
--enable-write18 command-line option: Command line options
--file-line-error command-line option: Command line options
--halt-on-error command-line option: Command line options
--help command-line option: Command line options
--interaction command-line option: Command line options
--jobname command-line option: Command line options
--no-file-line-error command-line option: Command line options
--no-shell-escape command-line option: Command line options
--output-directory command-line option: Command line options
--shell-escape command-line option: Command line options
--version command-line option: Command line options

.
.aux file: Output files
.dvi file: Output files
.glo file: Glossaries
.idx file: Indexes
.idx file: makeindex
.ind file: makeindex
.isty file: makeindex
.lof file: Output files
.lof file: Table of contents etc.
.log file: Output files
.lot file: Output files
.lot file: Table of contents etc.
.pdf file: Output files
.tex, default extension: Command line
.toc file: Output files
.toc file: Table of contents etc.
.xdv file: TeX engines

1
10pt option: Document class options
11pt option: Document class options
12pt option: Document class options

:
:: Colon character & \colon
:: Colon character & \colon

[
[...] for optional arguments: LaTeX command syntax

\
\ character starting commands: LaTeX command syntax
\!: Spacing in math mode
\" (umlaut accent): Accents
\#: Reserved characters
\$: Reserved characters
\%: Reserved characters
\&: Reserved characters
\' (acute accent): Accents
\' (tabbing): tabbing
\*: \*
\+: tabbing
\,: Spacing in math mode
\-: tabbing
\- (hyphenation): \- (hyphenation)
\. (dot-over accent): Accents
\/: \/
\:: Spacing in math mode
\;: Spacing in math mode
\<: tabbing
\= (macron accent): Accents
\= (tabbing): tabbing
\>: tabbing
\>: Spacing in math mode
\> (tabbing): tabbing
\@: \@
\@beginparpenalty: list
\@endparpenalty: list
\@fnsymbol: \footnote
\@ifstar: \@ifstar
\@itempenalty: list
\@startsection: \@startsection
\a (tabbing): tabbing
\a' (acute accent in tabbing): tabbing
\a= (macron accent in tabbing): tabbing
\aa (å): Additional Latin letters
\AA (Å): Additional Latin letters
\acute: Math accents
\addcontentsline: \addcontentsline
\address: \address
\addtocontents{ext}{text}: \addtocontents
\addtocounter: \addtocounter
\addtolength: \addtolength
\addvspace: \addvspace
\ae (æ): Additional Latin letters
\AE (Æ): Additional Latin letters
\aleph: Math symbols
\Alph example: enumerate
\alpha: Math symbols
\alph{counter}: \alph \Alph \arabic \roman \Roman \fnsymbol
\Alph{counter}: \alph \Alph \arabic \roman \Roman \fnsymbol
\alsoname: \index
\amalg: Math symbols
\and for \author: \maketitle
\angle: Math symbols
\appendix: \appendix
\approx: Math symbols
\arabic{counter}: \alph \Alph \arabic \roman \Roman \fnsymbol
\arccos: Math functions
\arcsin: Math functions
\arctan: Math functions
\arg: Math functions
\arraycolsep: array
\arrayrulewidth: tabular
\arraystretch: tabular
\ast: Math symbols
\asymp: Math symbols
\AtBeginDocument: \AtBeginDocument
\AtBeginDvi: Class and package commands
\AtEndDocument: \AtEndDocument
\AtEndOfClass: Class and package commands
\AtEndOfPackage: Class and package commands
\author{name1 \and name2 \and ...}: \maketitle
\a` (grave accent in tabbing): tabbing
\b (bar-under accent): Accents
\backmatter: \frontmatter & \mainmatter & \backmatter
\backslash: Math symbols
\bar: Math accents
\baselineskip: Low-level font commands
\baselinestretch: Low-level font commands
\begin: Environments
\beta: Math symbols
\bf: Font styles
\bfseries: Font styles
\bibitem: \bibitem
\bibliography: Using BibTeX
\bibliographystyle: Using BibTeX
\bigcap: Math symbols
\bigcirc: Math symbols
\bigcup: Math symbols
\bigodot: Math symbols
\bigoplus: Math symbols
\bigotimes: Math symbols
\bigskip: \bigskip & \medskip & \smallskip
\bigskipamount: \bigskip & \medskip & \smallskip
\bigsqcup: Math symbols
\bigtriangledown: Math symbols
\bigtriangleup: Math symbols
\biguplus: Math symbols
\bigvee: Math symbols
\bigwedge: Math symbols
\bmod: Math functions
\boldmath: \boldmath & \unboldmath
\boldmath: \boldmath & \unboldmath
\bot: Math symbols
\bottomfraction: Floats
\bottomfraction: Floats
\bowtie: Math symbols
\Box: Math symbols
\breve: Math accents
\bullet: Math symbols
\c (cedilla accent): Accents
\cal: Font styles
\cap: Math symbols
\capitalacute: Accents
\capitalbreve: Accents
\capitalcaron: Accents
\capitalcedilla: Accents
\capitalcircumflex: Accents
\capitaldieresis: Accents
\capitaldotaccent: Accents
\capitalgrave: Accents
\capitalhungarumlaut: Accents
\capitalmacron: Accents
\capitalnewtie: Accents
\capitalogonek: Accents
\capitalring: Accents
\capitaltie: Accents
\capitaltilde: Accents
\caption: figure
\caption: table
\cc: \cc
\cdot: Math symbols
\cdots: Dots
\centering: \centering
\chapter: Sectioning
\chapter: \chapter
\check: Math accents
\CheckCommand: Class and package commands
\CheckCommand*: Class and package commands
\chi: Math symbols
\circ: Math symbols
\circle: \circle
\cite: \cite
\ClassError: Class and package commands
\ClassInfo: Class and package commands
\ClassInfoNoLine: Class and package commands
\ClassWarning: Class and package commands
\ClassWarningNoLine: Class and package commands
\cleardoublepage: \clearpage & \cleardoublepage
\clearpage: \clearpage & \cleardoublepage
\cline: \cline
\closing: \closing
\clubsuit: Math symbols
\colon: Colon character & \colon
\columnsep: \twocolumn
\columnsep: Page layout parameters
\columnsep: Page layout parameters
\columnseprule: \twocolumn
\columnseprule: Page layout parameters
\columnseprule: Page layout parameters
\columnwidth: \twocolumn
\columnwidth: Page layout parameters
\columnwidth: Page layout parameters
\complement: Math symbols
\cong: Math symbols
\contentsline: \addcontentsline
\coprod: Math symbols
\copyright: Text symbols
\cos: Math functions
\cosh: Math functions
\cot: Math functions
\coth: Math functions
\csc: Math functions
\cup: Math symbols
\CurrentOption: Class and package commands
\d (dot-under accent): Accents
\dag: Text symbols
\dagger: Math symbols
\dashbox: \dashbox
\dashv: Math symbols
\date{text}: \maketitle
\day: \day & \month & \year
\dblfloatpagefraction: \twocolumn
\dblfloatsep: \twocolumn
\dbltextfloatsep: \twocolumn
\dbltopfraction: \twocolumn
\dbltopnumber: \twocolumn
\ddag: Text symbols
\ddagger: Math symbols
\ddot: Math accents
\ddots: Dots
\DeclareGraphicsExtensions: \DeclareGraphicsExtensions
\DeclareGraphicsRule: \DeclareGraphicsRule
\DeclareOption: Class and package commands
\DeclareOption*: Class and package commands
\DeclareRobustCommand: Class and package commands
\DeclareRobustCommand*: Class and package commands
\deg: Math functions
\Delta: Math symbols
\delta: Math symbols
\det: Math functions
\dh (ð): Additional Latin letters
\DH (Ð): Additional Latin letters
\Diamond: Math symbols
\diamond: Math symbols
\diamondsuit: Math symbols
\dim: Math functions
\displaystyle: Math formulas
\div: Math symbols
\dj: Additional Latin letters
\DJ: Additional Latin letters
\documentclass: Document classes
\dot: Math accents
\doteq: Math symbols
\dotfill: \hrulefill & \dotfill
\dots: Text symbols
\doublerulesep: tabular
\downarrow: Math symbols
\Downarrow: Math symbols
\ell: Math symbols
\emph: Font styles
\emptyset: Math symbols
\encl: \encl
\end: Environments
\endinput: \endinput
\enlargethispage: \enlargethispage
\enspace: \enspace & \quad & \qquad
\enumi: enumerate
\enumii: enumerate
\enumiii: enumerate
\enumiv: enumerate
\epsilon: Math symbols
\equiv: Math symbols
\eta: Math symbols
\evensidemargin: Document class options
\evensidemargin: Page layout parameters
\evensidemargin: Page layout parameters
\ExecuteOptions: Class and package commands
\exists: Math symbols
\exp: Math functions
\extracolsep: tabular
\fbox: \fbox & \framebox
\fboxrule: \framebox (picture)
\fboxrule: \fbox & \framebox
\fboxrule: \fbox & \framebox
\fboxsep: \framebox (picture)
\fboxsep: \fbox & \framebox
\fboxsep: \fbox & \framebox
\fill: \hfill
\flat: Math symbols
\floatpagefraction: Floats
\floatpagefraction: Floats
\floatsep: Floats
\floatsep: Floats
\flushbottom: \flushbottom
\fnsymbol, and footnotes: \footnote
\fnsymbol{counter}: \alph \Alph \arabic \roman \Roman \fnsymbol
\fontencoding: Low-level font commands
\fontfamily: Low-level font commands
\fontseries: Low-level font commands
\fontshape: Low-level font commands
\fontsize: Low-level font commands
\footnote: \footnote
\footnotemark: \footnotemark
\footnoterule: \footnote
\footnotesep: \footnote
\footnotesize: Font sizes
\footnotetext: \footnotetext
\footskip: Page layout parameters
\footskip: Page layout parameters
\forall: Math symbols
\frac: \frac
\frame: \frame
\framebox: \framebox (picture)
\framebox: \fbox & \framebox
\frenchspacing: \frenchspacing
\frontmatter: \frontmatter & \mainmatter & \backmatter
\frown: Math symbols
\fussy: \fussy & \sloppy
\Gamma: Math symbols
\gamma: Math symbols
\gcd: Math functions
\ge: Math symbols
\geq: Math symbols
\gets: Math symbols
\gg: Math symbols
\gls: \gls
\graphicspath: \graphicspath
\graphpaper: \graphpaper
\grave: Math accents
\guillemotleft («): Text symbols
\guillemotright (»): Text symbols
\guilsinglleft (‹): Text symbols
\guilsinglright (›): Text symbols
\H (Hungarian umlaut accent): Accents
\hat: Math accents
\hbar: Math symbols
\headheight: Page layout parameters
\headheight: Page layout parameters
\headsep: Page layout parameters
\headsep: Page layout parameters
\heartsuit: Math symbols
\hfill: \hfill
\hline: \hline
\hom: Math functions
\hookleftarrow: Math symbols
\hookrightarrow: Math symbols
\hrulefill: \hrulefill & \dotfill
\hsize: Page layout parameters
\hsize: Page layout parameters
\hspace: \hspace
\hss: \hss
\huge: Font sizes
\Huge: Font sizes
\hyphenation: \hyphenation
\i (dotless i): Accents
\iff: Math symbols
\IfFileExists: Class and package commands
\ignorespaces: \ignorespaces & \ignorespacesafterend
\ignorespacesafterend: \ignorespaces & \ignorespacesafterend
\ij (ij): Additional Latin letters
\IJ (IJ): Additional Latin letters
\Im: Math symbols
\imath: Math symbols
\in: Math symbols
\include: \include & \includeonly
\includegraphics: \includegraphics
\includeonly: \include & \includeonly
\indent: \indent & \noindent
\index: Indexes
\index: \index
\indexentry: \index
\indexspace: makeindex
\inf: Math functions
\infty: Math symbols
\input: \input
\InputIfFileExists: Class and package commands
\int: Math symbols
\intextsep: Floats
\intextsep: Floats
\iota: Math symbols
\it: Font styles
\item: description
\item: enumerate
\item: itemize
\item: itemize
\itemindent: list
\itemsep: list
\itshape: Font styles
\j (dotless j): Accents
\jmath: Math symbols
\Join: Math symbols
\k (ogonek): Accents
\kappa: Math symbols
\ker: Math functions
\kill: tabbing
\l (ł): Additional Latin letters
\L (Ł): Additional Latin letters
\label: \label
\labelenumi: enumerate
\labelenumii: enumerate
\labelenumiii: enumerate
\labelenumiv: enumerate
\labelitemi: itemize
\labelitemii: itemize
\labelitemiii: itemize
\labelitemiv: itemize
\labelsep: list
\labelwidth: list
\Lambda: Math symbols
\lambda: Math symbols
\land: Math symbols
\langle: Math symbols
\large: Font sizes
\Large: Font sizes
\LARGE: Font sizes
\LaTeX: Text symbols
\LaTeXe: Text symbols
\lbrace: Math symbols
\lbrack: Math symbols
\lceil: Math symbols
\ldots: Dots
\ldots: Text symbols
\le: Math symbols
\leadsto: Math symbols
\left: \left & \right
\Leftarrow: Math symbols
\leftarrow: Math symbols
\lefteqn: eqnarray
\leftharpoondown: Math symbols
\leftharpoonup: Math symbols
\leftmargin: itemize
\leftmargin: list
\leftmargini: itemize
\leftmarginii: itemize
\leftmarginiii: itemize
\leftmarginiv: itemize
\leftmarginv: itemize
\leftmarginvi: itemize
\Leftrightarrow: Math symbols
\leftrightarrow: Math symbols
\leq: Math symbols
\lfloor: Math symbols
\lg: Math functions
\lhd: Math symbols
\lim: Math functions
\liminf: Math functions
\limsup: Math functions
\line: \line
\linebreak: \linebreak & \nolinebreak
\linespread: Low-level font commands
\linethickness: \linethickness
\linewidth: Page layout parameters
\linewidth: Page layout parameters
\listoffigures: Table of contents etc.
\listoftables: Table of contents etc.
\listparindent: list
\ll: Math symbols
\ln: Math functions
\lnot: Math symbols
\LoadClass: Class and package commands
\LoadClassWithOptions: Class and package commands
\location: \location
\log: Math functions
\longleftarrow: Math symbols
\longleftrightarrow: Math symbols
\longmapsto: Math symbols
\longrightarrow: Math symbols
\lor: Math symbols
\lq: Text symbols
\mainmatter: \frontmatter & \mainmatter & \backmatter
\makebox: \mbox & \makebox
\makebox (for picture): \makebox (picture)
\makeglossary: Glossaries
\makeglossary: Glossaries
\makeindex: Indexes
\makelabel: list
\makelabels: \makelabels
\maketitle: \maketitle
\mapsto: Math symbols
\marginpar: Marginal notes
\marginparpush: Page layout parameters
\marginparpush: Page layout parameters
\marginparpush: Marginal notes
\marginparsep: Marginal notes
\marginparwidth: Page layout parameters
\marginparwidth: Page layout parameters
\marginparwidth: Marginal notes
\marginsep: Page layout parameters
\marginsep: Page layout parameters
\markboth{left-head}{right-head}: \pagestyle
\markright{right}: \pagestyle
\mathbf: Font styles
\mathcal: Font styles
\mathdollar: Math symbols
\mathnormal: Font styles
\mathparagraph: Math symbols
\mathring: Math accents
\mathrm: Font styles
\mathsection: Math symbols
\mathsf: Font styles
\mathsterling: Math symbols
\mathtt: Font styles
\mathunderscore: Math symbols
\mathversion: Font styles
\max: Math functions
\mbox: \mbox & \makebox
\mdseries: Font styles
\medskip: \bigskip & \medskip & \smallskip
\medskipamount: \bigskip & \medskip & \smallskip
\medspace: Spacing in math mode
\mho: Math symbols
\mid: Math symbols
\min: Math functions
\models: Math symbols
\month: \day & \month & \year
\mp: Math symbols
\mu: Math symbols
\multicolumn: \multicolumn
\multiput: \multiput
\nabla: Math symbols
\name: \name
\natural: Math symbols
\ne: Math symbols
\nearrow: Math symbols
\NeedsTeXFormat: Class and package commands
\neg: Math symbols
\negthinspace: Spacing in math mode
\negthinspace: \thinspace & \negthinspace
\neq: Math symbols
\newcommand: \newcommand & \renewcommand
\newcounter: \newcounter
\newenvironment: \newenvironment & \renewenvironment
\newfont: \newfont
\newglossaryentry: \newglossaryentry
\newlength: \newlength
\newline: \newline
\NEWLINE: \(SPACE)
\newpage: \newpage
\newsavebox: \newsavebox
\newtheorem: \newtheorem
\newtie: Accents
\ng: Additional Latin letters
\NG: Additional Latin letters
\ni: Math symbols
\nocite: \nocite
\nocorr: Font styles
\nocorrlist: Font styles
\nofiles: \nofiles
\noindent: \indent & \noindent
\nolinebreak: \linebreak & \nolinebreak
\nonfrenchspacing: \frenchspacing
\nonumber: eqnarray
\nopagebreak: \pagebreak & \nopagebreak
\normalfont: Font styles
\normalmarginpar: Marginal notes
\normalsfcodes: \normalsfcodes
\normalsize: Font sizes
\not: Math symbols
\notin: Math symbols
\nu: Math symbols
\nwarrow: Math symbols
\o (ø): Additional Latin letters
\O (Ø): Additional Latin letters
\obeycr: \obeycr & \restorecr
\oddsidemargin: Document class options
\oddsidemargin: Page layout parameters
\oddsidemargin: Page layout parameters
\odot: Math symbols
\oe (œ): Additional Latin letters
\OE (Œ): Additional Latin letters
\oint: Math symbols
\oldstylenums: Font styles
\Omega: Math symbols
\omega: Math symbols
\ominus: Math symbols
\onecolumn: \onecolumn
\opening: \opening
\oplus: Math symbols
\OptionNotUsed: Class and package commands
\oslash: Math symbols
\otimes: Math symbols
\oval: \oval
\overbrace{math}: Over- and Underlining
\overline{text}: Over- and Underlining
\owns: Math symbols
\P: Text symbols
\PackageError: Class and package commands
\PackageInfo: Class and package commands
\PackageInfoNoLine: Class and package commands
\PackageWarning: Class and package commands
\PackageWarningNoLine: Class and package commands
\pagebreak: \pagebreak & \nopagebreak
\pagenumbering: \pagenumbering
\pageref: \pageref
\pagestyle: \pagestyle
\paperheight: Page layout parameters
\paperheight: Page layout parameters
\paperwidth: Page layout parameters
\paperwidth: Page layout parameters
\par: \par
\paragraph: Sectioning
\paragraph: \subsubsection & \paragraph & \subparagraph
\parallel: Math symbols
\parbox: \parbox
\parindent: minipage
\parindent: \indent & \noindent
\parindent: \parindent & \parskip
\parsep: list
\parskip: \parindent & \parskip
\parskip example: itemize
\part: Sectioning
\part: \part
\partial: Math symbols
\partopsep: list
\PassOptionsToClass: Class and package commands
\PassOptionsToPackage: Class and package commands
\pdfpageheight: Document class options
\pdfpagewidth: Document class options
\perp: Math symbols
\phi: Math symbols
\Pi: Math symbols
\pi: Math symbols
\pm: Math symbols
\pmod: Math functions
\poptabs: tabbing
\poptabs: tabbing
\pounds: Text symbols
\Pr: Math functions
\prec: Math symbols
\preceq: Math symbols
\prime: Math symbols
\printglossaries: Glossaries
\printglossaries: Glossaries
\printindex: \printindex
\printindex: \printindex
\ProcessOptions: Class and package commands
\ProcessOptions*: Class and package commands
\prod: Math symbols
\propto: Math symbols
\protect: \protect
\providecommand: \providecommand
\ProvidesClass: Class and package commands
\ProvidesFile: Class and package commands
\ProvidesPackage: Class and package commands
\ps: \ps
\Psi: Math symbols
\psi: Math symbols
\pushtabs: tabbing
\put: \put
\qbezier: \qbezier
\qquad: Spacing in math mode
\qquad: \enspace & \quad & \qquad
\quad: Spacing in math mode
\quad: \enspace & \quad & \qquad
\quotedblbase („): Text symbols
\quotesinglbase (‚): Text symbols
\r (ring accent): Accents
\raggedbottom: \raggedbottom
\raggedleft: \raggedleft
\raggedright: \raggedright
\raisebox: \raisebox
\rangle: Math symbols
\rbrace: Math symbols
\rbrack: Math symbols
\rceil: Math symbols
\Re: Math symbols
\ref: \ref
\reflectbox: \scalebox
\refstepcounter: \refstepcounter
\renewenvironment: \newenvironment & \renewenvironment
\RequirePackage: Class and package commands
\RequirePackageWithOptions: Class and package commands
\resizebox: \resizebox
\restorecr: \obeycr & \restorecr
\restriction: Math symbols
\revemptyset: Math symbols
\reversemarginpar: Marginal notes
\rfloor: Math symbols
\rhd: Math symbols
\rho: Math symbols
\right: \left & \right
\Rightarrow: Math symbols
\rightarrow: Math symbols
\rightharpoondown: Math symbols
\rightharpoonup: Math symbols
\rightleftharpoons: Math symbols
\rightmargin: list
\rm: Font styles
\rmfamily: Font styles
\roman{counter}: \alph \Alph \arabic \roman \Roman \fnsymbol
\Roman{counter}: \alph \Alph \arabic \roman \Roman \fnsymbol
\rotatebox: \rotatebox
\rq: Text symbols
\rule: \rule
\S: Text symbols
\savebox: \sbox & \savebox
\sbox: \sbox & \savebox
\sc: Font styles
\scalebox: \scalebox
\scriptsize: Font sizes
\scshape: Font styles
\searrow: Math symbols
\sec: Math functions
\section: Sectioning
\section: \section
\seename: \index
\selectfont: Low-level font commands
\setcounter: \setcounter
\setlength: \setlength
\setminus: Math symbols
\settodepth: \settodepth
\settoheight: \settoheight
\settowidth: \settowidth
\sf: Font styles
\sffamily: Font styles
\sharp: Math symbols
\shortstack: \shortstack
\Sigma: Math symbols
\sigma: Math symbols
\signature: \signature
\sim: Math symbols
\simeq: Math symbols
\sin: Math functions
\sinh: Math functions
\sl: Font styles
\sloppy: \fussy & \sloppy
\slshape: Font styles
\small: Font sizes
\smallint: Math symbols
\smallskip: \bigskip & \medskip & \smallskip
\smallskipamount: \bigskip & \medskip & \smallskip
\smile: Math symbols
\SPACE: \(SPACE)
\spacefactor: \spacefactor
\spadesuit: Math symbols
\sqcap: Math symbols
\sqcup: Math symbols
\sqrt: \sqrt
\sqsubset: Math symbols
\sqsubseteq: Math symbols
\sqsupset: Math symbols
\sqsupseteq: Math symbols
\ss (ß): Additional Latin letters
\SS (SS): Additional Latin letters
\stackrel: \stackrel
\star: Math symbols
\stepcounter: \stepcounter
\stop: Recovering from errors
\strut: \strut
\subparagraph: Sectioning
\subparagraph: \subsubsection & \paragraph & \subparagraph
\subsection: Sectioning
\subsection: \subsection
\subset: Math symbols
\subseteq: Math symbols
\subsubsection: \subsubsection & \paragraph & \subparagraph
\succ: Math symbols
\succeq: Math symbols
\sum: Math symbols
\sup: Math functions
\suppressfloats: Floats
\supset: Math symbols
\supseteq: Math symbols
\surd: Math symbols
\swarrow: Math symbols
\symbol: Symbols by font position
\t (tie-after accent): Accents
\TAB: \(SPACE)
\tabbingsep: tabbing
\tabcolsep: tabular
\tableofcontents: Table of contents etc.
\tan: Math functions
\tanh: Math functions
\tau: Math symbols
\telephone: \telephone
\TeX: Text symbols
\textascendercompwordmark: Text symbols
\textasciicircum: Text symbols
\textasciitilde: Text symbols
\textasteriskcentered: Text symbols
\textbackslash: Reserved characters
\textbackslash: Text symbols
\textbar: Text symbols
\textbardbl: Text symbols
\textbf: Font styles
\textbigcircle: Text symbols
\textbraceleft: Text symbols
\textbraceright: Text symbols
\textbullet: Text symbols
\textcapitalcompwordmark: Text symbols
\textcircled{letter}: Text symbols
\textcompwordmark: Text symbols
\textcopyright: Text symbols
\textdagger: Text symbols
\textdaggerdbl: Text symbols
\textdollar (or \$): Text symbols
\textellipsis: Text symbols
\textemdash (or ---): Text symbols
\textendash (or --): Text symbols
\texteuro: Text symbols
\textexclamdown (or !`): Text symbols
\textfloatsep: Floats
\textfloatsep: Floats
\textfraction: Floats
\textfraction: Floats
\textgreater: Text symbols
\textheight: Page layout parameters
\textheight: Page layout parameters
\textit: Font styles
\textleftarrow: Text symbols
\textless: Text symbols
\textmd: Font styles
\textnormal: Font styles
\textordfeminine: Text symbols
\textordmasculine: Text symbols
\textparagraph: Text symbols
\textperiodcentered: Text symbols
\textquestiondown (or ?`): Text symbols
\textquotedblleft (or ``): Text symbols
\textquotedblright (or ''): Text symbols
\textquoteleft (or `): Text symbols
\textquoteright (or '): Text symbols
\textquotesingle: Text symbols
\textquotestraightbase: Text symbols
\textquotestraightdblbase: Text symbols
\textregistered: Text symbols
\textrightarrow: Text symbols
\textrm: Font styles
\textsc: Font styles
\textsection: Text symbols
\textsf: Font styles
\textsl: Font styles
\textsterling: Text symbols
\textthreequartersemdash: Text symbols
\texttrademark: Text symbols
\texttt: Font styles
\texttwelveudash: Text symbols
\textunderscore: Text symbols
\textup: Font styles
\textvisiblespace: Text symbols
\textwidth: Page layout parameters
\textwidth: Page layout parameters
\th (þ): Additional Latin letters
\TH (Þ): Additional Latin letters
\thanks{text}: \maketitle
\theta: Math symbols
\thicklines: \thicklines
\thickspace: Spacing in math mode
\thinlines: \thinlines
\thinspace: Spacing in math mode
\thinspace: \thinspace & \negthinspace
\thispagestyle: \thispagestyle
\tilde: Math accents
\times: Math symbols
\tiny: Font sizes
\title{text}: \maketitle
\to: Math symbols
\today: \today
\top: Math symbols
\topfraction: Floats
\topfraction: Floats
\topmargin: Page layout parameters
\topsep: list
\topskip: Page layout parameters
\topskip: Page layout parameters
\triangle: Math symbols
\triangleleft: Math symbols
\triangleright: Math symbols
\tt: Font styles
\ttfamily: Font styles
\twocolumn: \twocolumn
\typein: \typein
\typeout: \typeout
\u (breve accent): Accents
\unboldmath: \boldmath & \unboldmath
\unboldmath: \boldmath & \unboldmath
\underbar: Accents
\underbrace{math}: Over- and Underlining
\underline{text}: Over- and Underlining
\unitlength: picture
\unlhd: Math symbols
\unrhd: Math symbols
\Uparrow: Math symbols
\uparrow: Math symbols
\Updownarrow: Math symbols
\updownarrow: Math symbols
\upharpoonright: Math symbols
\uplus: Math symbols
\upshape: Font styles
\Upsilon: Math symbols
\upsilon: Math symbols
\usebox: \usebox
\usecounter: \usecounter
\usefont: Low-level font commands
\usepackage: Additional packages
\v (breve accent): Accents
\value: \value
\vanothing: Math symbols
\varepsilon: Math symbols
\varphi: Math symbols
\varpi: Math symbols
\varrho: Math symbols
\varsigma: Math symbols
\vartheta: Math symbols
\vdash: Math symbols
\vdots: Dots
\vec: Math accents
\vector: \vector
\vee: Math symbols
\verb: \verb
\Vert: Math symbols
\vert: Math symbols
\vfill: \vfill
\vline: \vline
\vspace: \vspace
\wedge: Math symbols
\widehat: Math accents
\widetilde: Math accents
\wp: Math symbols
\wr: Math symbols
\Xi: Math symbols
\xi: Math symbols
\year: \day & \month & \year
\zeta: Math symbols
\\ (for center): center
\\ (for eqnarray): eqnarray
\\ (for flushright): flushright
\\ (for \shortstack objects): \shortstack
\\ (tabbing): tabbing
\\ for flushleft: flushleft
\\ for letters: Letters
\\ for tabular: tabular
\\ for verse: verse
\\ for \author: \maketitle
\\ for \title: \maketitle
\\ force line break: \\
\\* (for eqnarray): eqnarray
\^: Reserved characters
\^ (circumflex accent): Accents
\_: Reserved characters
\` (grave accent): Accents
\` (tabbing): tabbing
\{: Reserved characters
\|: Math symbols
\}: Reserved characters
\~: Reserved characters
\~ (tilde accent): Accents

^
^: Subscripts & superscripts

_
_: Subscripts & superscripts

`
‘see’ and ‘see also’ index entries: \index

{
{...} for required arguments: LaTeX command syntax

~
~: ~

A
a4paper option: Document class options
a5paper option: Document class options
abstract environment: abstract
abstracts: abstract
accents: Accents
accents, mathematical: Math accents
accessing any character of a font: Symbols by font position
acronyms, list of: Glossaries
acute accent: Accents
acute accent, math: Math accents
additional packages, loading: Additional packages
ae ligature: Additional Latin letters
algorithm2e package: tabbing
align environment, from amsmath: eqnarray
aligning equations: eqnarray
alignment via tabbing: tabbing
amsfonts package: Math formulas
amsmath package: array
amsmath package: array
amsmath package: displaymath
amsmath package: equation
amsmath package: theorem
amsmath package: Math formulas
amsmath package: Dots
amsmath package: Math functions
amsmath package: \phantom & \vphantom & \hphantom
amsmath package: Colon character & \colon
amsmath package: Colon character & \colon
amsmath package, replacing eqnarray: eqnarray
amsthm package: theorem
amsthm package: \rule
appendices: \appendix
appendix: \appendix
appendix package: \appendix
aring: Additional Latin letters
array (package) package: array
array environment: array
arrays, math: array
arrow, left, in text: Text symbols
arrow, right, in text: Text symbols
article class: Document classes
ascender height: Text symbols
ASCII circumflex, in text: Text symbols
ASCII tilde, in text: Text symbols
asterisk, centered, in text: Text symbols
Asymptote package: \line
Asymptote package: \strut
Asymptote package: \mbox & \makebox
at clause, in font definitions: \newfont
at-sign: \@
author, for titlepage: \maketitle
auxiliary file: Output files

B
b5paper option: Document class options
babel package: \chapter
babel package: thebibliography
babel package: Accents
babel package: \today
babel package: Table of contents etc.
babel package: \index
background, colored: Colored pages
backslash, in text: Text symbols
bar, double vertical, in text: Text symbols
bar, vertical, in text: Text symbols
bar-over accent: Accents
bar-over accent, math: Math accents
bar-under accent: Accents
basics of LaTeX: Overview
beamer template and class: beamer template
beginning of document hook: \AtBeginDocument
bibliography format, open: Document class options
bibliography, creating (automatically): Using BibTeX
bibliography, creating (manually): thebibliography
bibTeX, using: Using BibTeX
big circle symbols, in text: Text symbols
Big point: Units of length
bigfoot package: Footnotes of footnotes
black boxes, omitting: Document class options
blackboard bold: Blackboard bold
bm package: \boldmath & \unboldmath
bold font: Font styles
bold math: Font styles
bold typewriter, avoiding: description
boldface mathematics: \boldmath & \unboldmath
book class: Document classes
book, back matter: \frontmatter & \mainmatter & \backmatter
book, end matter: \frontmatter & \mainmatter & \backmatter
book, front matter: \frontmatter & \mainmatter & \backmatter
book, main matter: \frontmatter & \mainmatter & \backmatter
bottomnumber: Floats
bottomnumber: Floats
box: \mbox & \makebox
box, allocating new: \newsavebox
box, colored: Colored boxes
box, save: \sbox & \savebox
box, use saved box: \usebox
boxes: Boxes
bp: Units of length
brace, left, in text: Text symbols
brace, right, in text: Text symbols
breaking lines: Line breaking
breaking pages: Page breaking
breaks, multiplication discretionary: \*
breve accent: Accents
breve accent, math: Math accents
bug reporting: About this document
bullet lists: itemize
bullet symbol: Math symbols
bullet, in text: Text symbols
bulleted lists: itemize

C
calligraphic fonts: Calligraphic
calligraphic letters for math: Font styles
cap height: Text symbols
caron accent: Accents
catcode: \makeatletter & \makeatother
category code, character: \makeatletter & \makeatother
cc: Units of length
cc list, in letters: \cc
cedilla accent: Accents
center environment: center
centered asterisk, in text: Text symbols
centered equations: Document class options
centered period, in text: Text symbols
centering text, declaration for: \centering
centering text, environment for: center
Centimeter: Units of length
chapter: Sectioning
chapter: \chapter
character category code: \makeatletter & \makeatother
character, invisible: \phantom & \vphantom & \hphantom
characters, accented: Accents
characters, case of: Upper and lower case
characters, non-English: Additional Latin letters
characters, reserved: Reserved characters
characters, special: Reserved characters
check accent: Accents
check accent, math: Math accents
Cicero: Units of length
circle symbol, big, in text: Text symbols
circled letter, in text: Text symbols
circumflex accent: Accents
circumflex accent, math: Math accents
circumflex, ASCII, in text: Text symbols
citation key: \bibitem
class and package commands: Class and package commands
class and package difference: Class and package construction
class and package structure: Class and package structure
class file example: Class and package structure
class file layout: Class and package structure
class options: Document class options
class options: Class and package structure
class options: Class and package commands
classes of documents: Document classes
cleveref package: Cross references
cleveref package: \ref
cleveref package: \footnotemark
clock option to slides class: Document class options
closing letters: \closing
closing quote: Text symbols
cm: Units of length
code, typesetting: verbatim
colon character: Colon character & \colon
color: Color
color: Define colors
color: Colored text
color: Colored boxes
color: Colored pages
color models: Color models
color package commands: Commands for color
color package options: Color package options
color, define: Define colors
colored boxes: Colored boxes
colored page: Colored pages
colored text: Colored text
command line: Command line
command syntax: LaTeX command syntax
commands, class and package: Class and package commands
commands, defining new ones: \newcommand & \renewcommand
commands, defining new ones: \providecommand
commands, document class: Class and package construction
commands, graphics package: Commands for graphics
commands, ignore spaces: \ignorespaces & \ignorespacesafterend
commands, redefining: \newcommand & \renewcommand
commands, star-variants: \@ifstar
composite word mark, in text: Text symbols
computer programs, typesetting: verbatim
configuration, graphics package: Graphics package configuration
contents file: Output files
copyright symbol: Text symbols
counters, a list of: Counters
counters, defining new: \newcounter
counters, getting value of: \value
counters, printing: \alph \Alph \arabic \roman \Roman \fnsymbol
counters, setting: \setcounter
cprotect package: verbatim
cprotect package: \verb
creating pictures: picture
creating tables: table
credit footnote: \maketitle
cross references: Cross references
cross references, resolving: Output files
cross referencing with page number: \pageref
cross referencing, symbolic: \ref
CTAN: CTAN
currency, dollar: Text symbols
currency, euro: Text symbols

D
dagger, double, in text: Text symbols
dagger, in text: Text symbols
dagger, in text: Text symbols
DANTE e.V.: CTAN
date, for titlepage: \maketitle
date, today’s: \today
datetime package: \today
dbltopnumber: Floats
dbltopnumber: Floats
dcolumn package: array
dd: Units of length
define color: Define colors
defining a new command: \newcommand & \renewcommand
defining a new command: \providecommand
defining new environments: \newenvironment & \renewenvironment
defining new fonts: \newfont
defining new theorems: \newtheorem
definitions: Definitions
delimiters, paired: \left & \right
delim_0: makeindex
delim_1: makeindex
delim_2: makeindex
delim_n: makeindex
delim_r: makeindex
description: \newglossaryentry
description environment: description
description lists, creating: description
design size, in font definitions: \newfont
Didot point: Units of length
dieresis accent: Accents
difference between class and package: Class and package construction
discretionary breaks, multiplication: \*
discretionary hyphenation: \discretionary
display math mode: Modes
displaying quoted text with paragraph indentation: quotation & quote
displaying quoted text without paragraph indentation: quotation & quote
displaymath environment: displaymath
displaymath environment: Math formulas
document class commands: Class and package construction
document class options: Document class options
document class, defined: Starting and ending
document classes: Document classes
document environment: document
document templates: Document templates
dollar sign: Text symbols
dot accent: Accents
dot over accent, math: Math accents
dot-over accent: Accents
dot-under accent: Accents
dotless i: Accents
dotless i, math: Math symbols
dotless j: Accents
dotless j, math: Math symbols
dots: Dots
double angle quotation marks: Text symbols
double dagger, in text: Text symbols
double dagger, in text: Text symbols
double dot accent, math: Math accents
double guillemets: Text symbols
double left quote: Text symbols
double low-9 quotation mark: Text symbols
double quote, straight base: Text symbols
double right quote: Text symbols
double spacing: Low-level font commands
double vertical bar, in text: Text symbols
doublestruck: Blackboard bold
draft option: Document class options
dvipdfmx command: Output files
dvips command: Output files
dvitype command: Output files

E
e-dash: Text symbols
e-TeX: TeX engines
ellipses: Dots
ellipsis: Text symbols
em: Units of length
em: Units of length
em-dash: Text symbols
em-dash, three-quarters: Text symbols
em-dash, two-thirds: Text symbols
emphasis: Font styles
enclosure list: \encl
end of document hook: \AtEndDocument
ending and starting: Starting and ending
engines, TeX: TeX engines
enlarge current page: \enlargethispage
enumerate environment: enumerate
enumitem package: list
environment: Starting and ending
environment, abstract: abstract
environment, array: array
environment, center: center
environment, description: description
environment, displaymath: displaymath
environment, displaymath: Math formulas
environment, document: document
environment, enumerate: enumerate
environment, eqnarray: eqnarray
environment, equation: equation
environment, equation: Math formulas
environment, figure: figure
environment, filecontents: filecontents
environment, filecontents*: filecontents
environment, flushleft: flushleft
environment, flushright: flushright
environment, itemize: itemize
environment, letter: letter
environment, list: list
environment, math: math
environment, math: Math formulas
environment, minipage: minipage
environment, picture: picture
environment, quotation: quotation & quote
environment, quote: quotation & quote
environment, tabbing: tabbing
environment, table: table
environment, tabular: tabular
environment, thebibliography: thebibliography
environment, theorem: theorem
environment, theorem-like: \newtheorem
environment, titlepage: titlepage
environment, verbatim: verbatim
environment, verse: verse
environments: Environments
environments, defining: \newenvironment & \renewenvironment
envlab package: \makelabels
EPS files: Graphics package configuration
EPS files: \includegraphics
eqnarray environment: eqnarray
equation environment: equation
equation environment: Math formulas
equation number, cross referencing: \ref
equation numbers, left vs. right: Document class options
equation numbers, omitting: eqnarray
equations, aligning: eqnarray
equations, environment for: equation
equations, flush left vs. centered: Document class options
es-zet German letter: Additional Latin letters
etex command: TeX engines
eth, Icelandic letter: Additional Latin letters
etoolbox package: Class and package commands
euro symbol: Text symbols
eurosym package: Text symbols
ex: Units of length
ex: Units of length
exclamation point, upside-down: Text symbols
executivepaper option: Document class options
exponent: Subscripts & superscripts
extended Latin: Additional Latin letters
external files, writing: filecontents

F
families, of fonts: Low-level font commands
fancyhdr package: Page styles
fancyhdr package: \pagestyle
fancyvrb package: tabbing
fancyvrb package: verbatim
feminine ordinal symbol: Text symbols
figure environment: figure
figure number, cross referencing: \ref
figures, footnotes in: minipage
figures, inserting: figure
file, root: Splitting the input
filecontents environment: filecontents
filecontents* environment: filecontents
final option: Document class options
first-latex-doc document: About this document
fixed-width font: Font styles
flafter package: Floats
fleqn option: Document class options
float package: Floats
float page: Floats
flush left equations: Document class options
flushing floats and starting a page: \clearpage & \cleardoublepage
flushleft environment: flushleft
flushright environment: flushright
font catalogue: Low-level font commands
font commands, low-level: Low-level font commands
font size: Low-level font commands
font sizes: Font sizes
font styles: Font styles
font symbols, by number: Symbols by font position
fonts: Fonts
fonts, new commands for: \newfont
fonts, script: Calligraphic
footer style: \pagestyle
footer, parameters for: Page layout parameters
footnote number, cross referencing: \ref
footnote parameters: \footnote
footnote, in a table: Footnotes in a table
footnote, in section headings: Footnotes in section headings
footnote, of a footnote: Footnotes of footnotes
footnotes in figures: minipage
footnotes, creating: Footnotes
Footnotes, in a minipage: \footnote
footnotes, symbols instead of numbers: \footnote
formulas, environment for: equation
formulas, math: Math formulas
forward reference: Cross references
forward references, resolving: Output files
fraction: \frac
fragile commands: \protect
frame rule width: \fbox & \framebox
frame, line width: \fbox & \framebox
frame, separation from contents: \fbox & \framebox
French quotation marks: Text symbols
functions, math: Math functions

G
geometry package: Document class options
geometry package: Document class options
global options: Document class options
global options: Additional packages
glossaries: Glossaries
glossary: Glossaries
glossary, entries: \newglossaryentry
glossary, entry reference: \gls
glue register, plain TeX: \newlength
graphics: Graphics
graphics: Graphics package configuration
graphics: \includegraphics
graphics package: Graphics
graphics package: Graphics package configuration
graphics package: \includegraphics
graphics package commands: Commands for graphics
graphics package options: Graphics package options
graphics packages: \line
graphics, resizing: \scalebox
graphics, resizing: \resizebox
graphics, scaling: \scalebox
graphics, scaling: \resizebox
grave accent: Accents
grave accent, math: Math accents
greater than symbol, in text: Text symbols
greek letters: Math symbols
group, and environments: Environments
group_skip: makeindex

H
háček accent, math: Math accents
hacek accent: Accents
Halmos symbol: \rule
hat accent: Accents
hat accent, math: Math accents
header style: \pagestyle
header, parameters for: Page layout parameters
hello, world: Starting and ending
here, putting floats: Floats
home page for manual: About this document
horizontal space: \hss
horizontal space, stretchable: \hss
horizontal spacing: \phantom & \vphantom & \hphantom
hungarian umlaut accent: Accents
hyperref package: \footnotemark
hyperref package: \footnotemark
hyperref package: \pagenumbering
hyperref package: Command line input
hyphenation, defining: \hyphenation
hyphenation, discretionary: \discretionary
hyphenation, forcing: \- (hyphenation)
hyphenation, preventing: \mbox & \makebox

I
Icelandic eth: Additional Latin letters
Icelandic thorn: Additional Latin letters
idx file: \index
ij letter, Dutch: Additional Latin letters
implementations of TeX: TeX engines
importing graphics: \includegraphics
in: Units of length
in-line formulas: math
inch: Units of length
including graphics: \includegraphics
indent, forcing: \indent & \noindent
indentation of paragraphs, in minipage: minipage
indentfirst package: \part
indentfirst package: \chapter
indentfirst package: \section
indentfirst package: \subsection
indentfirst package: \subsubsection & \paragraph & \subparagraph
indentfirst package: \indent & \noindent
indent_length: makeindex
indent_space: makeindex
index entries, ‘see’ and ‘see also’: \index
index entry: \index
index package: \index
index, page range: \index
index, printing: \printindex
index, processing: makeindex
index, style file: makeindex
indexes: Indexes
infinite horizontal stretch: \hfill
infinite vertical stretch: \vfill
inner paragraph mode: Modes
input file: Splitting the input
input, on command line: Command line input
input/output, to terminal: Terminal input/output
inserting figures: figure
insertions of special characters: Special insertions
internal vertical mode: Modes
invisible character: \phantom & \vphantom & \hphantom
italic correction: \/
italic font: Font styles
itemize environment: itemize
item_0: makeindex
item_01: makeindex
item_1: makeindex
item_12: makeindex
item_2: makeindex
item_x1: makeindex
item_x2: makeindex

J
JPEG files: Graphics package configuration
JPEG files: \includegraphics
JPG files: Graphics package configuration
JPG files: \includegraphics
justification, ragged left: \raggedleft
justification, ragged right: \raggedright

K
Knuth, Donald E.: Overview

L
label: Cross references
labelled lists, creating: description
Lamport TeX: Overview
Lamport, Leslie: Overview
landscape option: Document class options
landscape orientation: Document class options
latex command: Output files
LaTeX logo: Text symbols
LaTeX overview: Overview
LaTeX Project team: About this document
LaTeX vs. LaTeX2e: About this document
latex-doc-ptr document: About this document
LaTeX2e logo: Text symbols
latexrefman@tug.org email address: About this document
Latin letters, additional: Additional Latin letters
layout commands: Layout
layout, page parameters for: Page layout parameters
left angle quotation marks: Text symbols
left arrow, in text: Text symbols
left brace, in text: Text symbols
left quote: Text symbols
left quote, double: Text symbols
left quote, single: Text symbols
left-hand equation numbers: Document class options
left-justifying text: \raggedright
left-justifying text, environment for: flushleft
left-to-right mode: Modes
legalpaper option: Document class options
lengths, adding to: \addtolength
lengths, allocating new: \newlength
lengths, defining and using: Lengths
lengths, setting: \setlength
leqno option: Document class options
less than symbol, in text: Text symbols
lethead_flag: makeindex
lethead_prefix: makeindex
lethead_suffix: makeindex
letter class: Document classes
letter environment: letter
letterpaper option: Document class options
letters, accented: Accents
letters, additional Latin: Additional Latin letters
letters, ending: \closing
letters, starting: \opening
letters, writing: Letters
line break, forcing: \\
line breaking: Line breaking
line breaks, changing: \fussy & \sloppy
line breaks, forcing: \linebreak & \nolinebreak
line breaks, multiplication discretionary: \*
line breaks, preventing: \linebreak & \nolinebreak
lines in tables: tabular
line_max: makeindex
lining numerals: Font styles
lining text up in tables: tabular
lining text up using tab stops: tabbing
list environment: list
list items, specifying counter: \usecounter
list of figures file: Output files
list of tables file: Output files
listings package: tabbing
listings package: verbatim
listings package: \verb
lists of items: itemize
lists of items, generic: list
lists of items, numbered: enumerate
loading additional packages: Additional packages
log file: Output files
logo, LaTeX: Text symbols
logo, LaTeX2e: Text symbols
logo, TeX: Text symbols
long command: Class and package commands
low-9 quotation marks, single and double: Text symbols
low-level font commands: Low-level font commands
lowercase: Upper and lower case
LR box: picture
LR mode: Modes
lrbox: lrbox
lshort document: About this document
ltugboat class: tugboat template
lualatex command: TeX engines
LuaTeX: TeX engines

M
m-width: Units of length
macro package, LaTeX as: Overview
macron accent: Accents
macron accent, math: Math accents
macros2e package: \makeatletter & \makeatother
Madsen, Lars: eqnarray
make a box: \mbox & \makebox
makeindex: makeindex
makeindex program: makeindex
makeindex, style file: makeindex
making a title page: titlepage
making paragraphs: Making paragraphs
marginal notes: Marginal notes
masculine ordinal symbol: Text symbols
matching brackets: \left & \right
matching parentheses: \left & \right
math accents: Math accents
math environment: math
math environment: Math formulas
math formulas: Math formulas
math functions: Math functions
math miscellany: Math miscellany
math mode: Modes
math mode, entering: Math formulas
math mode, spacing: Spacing in math mode
math mode, spacing: \phantom & \vphantom & \hphantom
math mode, vertical space: \smash
math symbols: Math symbols
math, bold: Font styles
mathtools package: Math formulas
mathtools package: Over- and Underlining
mathtools package: \smash
mathtools package: \phantom & \vphantom & \hphantom
MetaPost package: \line
mfirstuc package: Upper and lower case
mhchem package: Subscripts & superscripts
Millimeter: Units of length
minipage environment: minipage
minipage, creating a: minipage
minted package: tabbing
minted package: verbatim
minted package: \verb
mirrors of CTAN: CTAN
mm: Units of length
modes: Modes
monospace font: Font styles
moving arguments: \protect
mpfootnote counter: \footnote
mu: Units of length
mu, math unit: Units of length
multicolumn text: \twocolumn
multilingual support: Accents
multind package: Indexes
multiplication, discretionary: \*

N
name: \newglossaryentry
NBSP: ~
nested \include, not allowed: \include & \includeonly
new class commands: Class and package construction
new command, check: Class and package commands
new command, definition: Class and package commands
new commands, defining: \newcommand & \renewcommand
new commands, defining: \providecommand
new line, output as input: \obeycr & \restorecr
new line, starting: \\
new line, starting (paragraph mode): \newline
new page, starting: \newpage
non-English characters: Additional Latin letters
notes in the margin: Marginal notes
notitlepage option: Document class options
null delimiter: \left & \right
numbered items, specifying counter: \usecounter
numerals, old-style: Font styles

O
oblique font: Font styles
oe ligature: Additional Latin letters
ogonek: Accents
old-style numerals: Font styles
one-column output: \onecolumn
onecolumn option: Document class options
oneside option: Document class options
openany option: Document class options
openbib option: Document class options
opening quote: Text symbols
openright option: Document class options
OpenType fonts: TeX engines
options, class: Class and package commands
options, color package: Color package options
options, command line: Command line options
options, document class: Document class options
options, document class: Class and package structure
options, global: Additional packages
options, graphics package: Graphics package options
options, package: Class and package structure
options, package: Class and package commands
ordinals, feminine and masculine: Text symbols
oslash: Additional Latin letters
outer paragraph mode: Modes
overbar accent: Accents
overdot accent, math: Math accents
overlining: Over- and Underlining
overview of LaTeX: Overview

P
package file layout: Class and package structure
package options: Class and package structure
package options: Class and package commands
package, algorithm2e: tabbing
package, amsfonts: Math formulas
package, amsmath: array
package, amsmath: array
package, amsmath: displaymath
package, amsmath: equation
package, amsmath: theorem
package, amsmath: Math formulas
package, amsmath: Dots
package, amsmath: Math functions
package, amsmath: \phantom & \vphantom & \hphantom
package, amsmath: Colon character & \colon
package, amsmath: Colon character & \colon
package, amsthm: theorem
package, amsthm: \rule
package, appendix: \appendix
package, array (package): array
package, Asymptote: \line
package, Asymptote: \strut
package, Asymptote: \mbox & \makebox
package, babel: \chapter
package, babel: thebibliography
package, babel: Accents
package, babel: \today
package, babel: Table of contents etc.
package, babel: \index
package, bigfoot: Footnotes of footnotes
package, bm: \boldmath & \unboldmath
package, cleveref: Cross references
package, cleveref: \ref
package, cleveref: \footnotemark
package, cprotect: verbatim
package, cprotect: \verb
package, datetime: \today
package, dcolumn: array
package, enumitem: list
package, envlab: \makelabels
package, etoolbox: Class and package commands
package, eurosym: Text symbols
package, fancyhdr: Page styles
package, fancyhdr: \pagestyle
package, fancyvrb: tabbing
package, fancyvrb: verbatim
package, flafter: Floats
package, float: Floats
package, geometry: Document class options
package, geometry: Document class options
package, hyperref: \footnotemark
package, hyperref: \footnotemark
package, hyperref: \pagenumbering
package, hyperref: Command line input
package, indentfirst: \part
package, indentfirst: \chapter
package, indentfirst: \section
package, indentfirst: \subsection
package, indentfirst: \subsubsection & \paragraph & \subparagraph
package, indentfirst: \indent & \noindent
package, index: \index
package, listings: tabbing
package, listings: verbatim
package, listings: \verb
package, macros2e: \makeatletter & \makeatother
package, mathtools: Math formulas
package, mathtools: Over- and Underlining
package, mathtools: \smash
package, mathtools: \phantom & \vphantom & \hphantom
package, MetaPost: \line
package, mfirstuc: Upper and lower case
package, mhchem: Subscripts & superscripts
package, minted: tabbing
package, minted: verbatim
package, minted: \verb
package, multind: Indexes
package, pict2e: \line
package, polyglossia: Accents
package, polyglossia: \today
package, polyglossia: Table of contents etc.
package, polyglossia: \index
package, PSTricks: \line
package, sagetex: Command line options
package, setspace: Low-level font commands
package, showidx: Indexes
package, siunitx: ~
package, symbols: Math symbols
package, textcase: Upper and lower case
package, textcomp: Font styles
package, TikZ: \line
package, TikZ: \strut
package, TikZ: \mbox & \makebox
package, titlesec: \part
package, titlesec: \chapter
package, titlesec: \section
package, titlesec: \subsection
package, titlesec: \subsubsection & \paragraph & \subparagraph
package, tocbibbind: Table of contents etc.
package, tocloft: Table of contents etc.
package, ulem: Over- and Underlining
package, url: \verb
package, verbatimbox: verbatim
packages, loading additional: Additional packages
page break, forcing: \pagebreak & \nopagebreak
page break, preventing: \pagebreak & \nopagebreak
page breaking: Page breaking
page layout parameters: Page layout parameters
page number, cross referencing: \pageref
page numbering style: \pagenumbering
page style, this page: \thispagestyle
page styles: Page styles
page, colored: Colored pages
page_precedence: makeindex
paired delimiters: \left & \right
paragraph: Sectioning
paragraph: \subsubsection & \paragraph & \subparagraph
paragraph indentation: \parindent & \parskip
paragraph indentation, in minipage: minipage
paragraph indentations in quoted text: quotation & quote
paragraph indentations in quoted text, omitting: quotation & quote
paragraph mode: Modes
paragraph mode: \parbox
paragraph symbol: Text symbols
paragraph, ending: \par
paragraph, in a box: \parbox
paragraphs: Making paragraphs
parameters, for footnotes: \footnote
parameters, page layout: Page layout parameters
part: Sectioning
part: \part
pc: Units of length
PDF graphic files: Graphics package configuration
PDF graphic files: \includegraphics
pdflatex command: Output files
pdfTeX: Output files
pdfTeX engine: TeX engines
period, abbreviation-ending: \@
period, centered, in text: Text symbols
period, sentence-ending: \@
period, spacing after: \@
pica: Units of length
pict2e package: \line
pict2e package: \line
picture environment: picture
pictures, creating: picture
pilcrow: Text symbols
placement of floats: Floats
plural: \newglossaryentry
PNG files: Graphics package configuration
PNG files: \includegraphics
poetry, an environment for: verse
Point: Units of length
polish l: Additional Latin letters
polyglossia package: Accents
polyglossia package: \today
polyglossia package: Table of contents etc.
polyglossia package: \index
portrait orientation: Document class options
position, in picture: picture
positional parameter: \newcommand & \renewcommand
postamble: makeindex
postscript, in letters: \ps
pounds symbol: Text symbols
preamble: makeindex
preamble, defined: Starting and ending
prompt, ‘*: Recovering from errors
pronunciation: Overview
PSTricks package: \line
pt: Units of length

Q
quad: Spacing in math mode
question mark, upside-down: Text symbols
quotation environment: quotation & quote
quotation marks, French: Text symbols
quote environment: quotation & quote
quote, single straight: Text symbols
quote, straight base: Text symbols
quoted text with paragraph indentation, displaying: quotation & quote
quoted text without paragraph indentation, displaying: quotation & quote

R
radical: \sqrt
ragged left text: \raggedleft
ragged left text, environment for: flushright
ragged right text: \raggedright
ragged right text, environment for: flushleft
redefining environments: \newenvironment & \renewenvironment
reference, forward: Cross references
references, resolving forward: Output files
registered symbol: Text symbols
relation, text above: \stackrel
remarks in the margin: Marginal notes
report class: Document classes
reporting bugs: About this document
reserved characters: Reserved characters
resizing: \scalebox
resizing: \resizebox
right angle quotation marks: Text symbols
right arrow, in text: Text symbols
right brace, in text: Text symbols
right quote: Text symbols
right quote, double: Text symbols
right quote, single: Text symbols
right-hand equation numbers: Document class options
right-justifying text: \raggedleft
right-justifying text, environment for: flushright
ring accent: Accents
ring accent, math: Math accents
robust commands: \protect
roman font: Font styles
root file: Splitting the input
roots: \sqrt
rotating graphics: \rotatebox
rotating text: \rotatebox
rotation: \rotatebox
row, tabbing: tabbing
rubber lengths, defining new: \newlength
running header and footer: Page layout parameters
running header and footer style: \pagestyle

S
sagetex package: Command line options
sans serif font: Font styles
Scaled point: Units of length
scaling: \scalebox
scaling: \resizebox
script fonts: Calligraphic
script letters for math: Font styles
secnumdepth: Sectioning
secnumdepth counter: Sectioning
section: Sectioning
section: \section
section number, cross referencing: \ref
section numbers, printing: Sectioning
section symbol: Text symbols
section, redefining: \@startsection
sectioning commands: Sectioning
sectioning, part: \part
series, of fonts: Low-level font commands
setspace package: Low-level font commands
setting counters: \setcounter
shapes, of fonts: Low-level font commands
sharp S letters: Additional Latin letters
showidx package: Indexes
simulating typed text: verbatim
single angle quotation marks: Text symbols
single guillemets: Text symbols
single left quote: Text symbols
single low-9 quotation mark: Text symbols
single quote, straight: Text symbols
single right quote: Text symbols
siunitx package: ~
sizes of text: Font sizes
skip register, plain TeX: \newlength
slanted font: Font styles
slides class: Document classes
sloppypar: sloppypar
sloppypar environment: sloppypar
small caps font: Font styles
sort: \newglossaryentry
sp: Units of length
space, hard: ~
space, inserting horizontal: \hss
space, inserting vertical: \addvspace
space, negative thin: \thinspace & \negthinspace
space, thin: \thinspace & \negthinspace
space, unbreakable: ~
space, vertical: \vspace
spaces: Spaces
spaces, ignore around commands: \ignorespaces & \ignorespacesafterend
spacing within math mode: Spacing in math mode
spacing, inter-sentence: \frenchspacing
spacing, inter-sentence: \normalsfcodes
spacing, math mode: \phantom & \vphantom & \hphantom
Spanish ordinals, feminine and masculine: Text symbols
special characters: Reserved characters
special characters: Additional Latin letters
special insertions: Special insertions
specifier, float placement: Floats
splitting the input file: Splitting the input
square root: \sqrt
stack math: \stackrel
star-variants, commands: \@ifstar
starred form, defining new commands: \newcommand & \renewcommand
starting a new page: \newpage
starting a new page and clearing floats: \clearpage & \cleardoublepage
starting and ending: Starting and ending
starting on a right-hand page: \clearpage & \cleardoublepage
sterling symbol: Text symbols
straight double quote, base: Text symbols
straight quote, base: Text symbols
straight single quote: Text symbols
stretch, infinite horizontal: \hfill
stretch, infinite vertical: \vfill
stretch, omitting vertical: \raggedbottom
strut: \strut
styles of text: Font styles
styles, page: Page styles
subparagraph: Sectioning
subparagraph: \subsubsection & \paragraph & \subparagraph
subscript: Subscripts & superscripts
subsection: Sectioning
subsection: \subsection
subsubsection: \subsubsection & \paragraph & \subparagraph
superscript: Subscripts & superscripts
symbol: \newglossaryentry
symbols package: Math symbols
symbols, boldface: \boldmath & \unboldmath
symbols, math: Math symbols
symbols, text: Text symbols

T
tab stops, using: tabbing
tabbing environment: tabbing
table environment: table
table of contents entry, manually adding: \addcontentsline
table of contents file: Output files
table of contents, avoiding footnotes: Footnotes in section headings
table of contents, creating: Table of contents etc.
table of contents, sectioning numbers printed: Sectioning
tables, creating: table
tabular environment: tabular
template, article: article template
template, beamer: beamer template
template, book: book template
template, book: Larger book template
template, TUGboat: tugboat template
templates, document: Document templates
terminal input/output: Terminal input/output
TeX logo: Text symbols
text symbols: Text symbols
text, resizing: \scalebox
text, resizing: \resizebox
text, scaling: \scalebox
text, scaling: \resizebox
textcase package: Upper and lower case
textcomp package: Font styles
textcomp package: Text symbols
thanks, for titlepage: \maketitle
thebibliography environment: thebibliography
theorem environment: theorem
theorem-like environment: \newtheorem
theorems, defining: \newtheorem
theorems, typesetting: theorem
thin space: Spacing in math mode
thin space: \thinspace & \negthinspace
thin space, negative: Spacing in math mode
thin space, negative: \thinspace & \negthinspace
thorn, Icelandic letter: Additional Latin letters
three-quarters em-dash: Text symbols
tie: ~
tie-after accent: Accents
TikZ package: \line
TikZ package: \strut
TikZ package: \mbox & \makebox
tilde accent: Accents
tilde accent, math: Math accents
tilde, ASCII, in text: Text symbols
title page, separate or run-in: Document class options
title pages, creating: titlepage
title, for titlepage: \maketitle
titlepage environment: titlepage
titlepage option: Document class options
titles, making: \maketitle
titlesec package: \part
titlesec package: \chapter
titlesec package: \section
titlesec package: \subsection
titlesec package: \subsubsection & \paragraph & \subparagraph
tocbibbind package: Table of contents etc.
tocdepth: Sectioning
tocdepth counter: Sectioning
tocloft package: Table of contents etc.
today’s date: \today
tombstone: \rule
topmargin: Page layout parameters
topnumber: Floats
topnumber: Floats
totalnumber: Floats
totalnumber: Floats
trademark symbol: Text symbols
transcript file: Output files
TrueType fonts: TeX engines
TUGboat template: tugboat template
two-column output: \twocolumn
two-thirds em-dash: Text symbols
twocolumn option: Document class options
twoside option: Document class options
type styles: Font styles
typed text, simulating: verbatim
typeface sizes: Font sizes
typefaces: Fonts
typewriter font: Font styles
typewriter labels in lists: description

U
ulem package: Over- and Underlining
umlaut accent: Accents
underbar: Accents
underlining: Over- and Underlining
underscore, in text: Text symbols
Unicode input, native: TeX engines
units, of length: Units of length
unofficial nature of this manual: About this document
unordered lists: itemize
uppercase: Upper and lower case
url package: \verb
using BibTeX: Using BibTeX
usrguide official documentation: About this document
UTF-8: TeX engines

V
variables, a list of: Counters
vector symbol, math: Math accents
verbatim environment: verbatim
verbatim text: verbatim
verbatim text, inline: \verb
verbatimbox package: verbatim
verse environment: verse
vertical bar, double, in text: Text symbols
vertical bar, in text: Text symbols
vertical mode: Modes
vertical space: \vspace
vertical space: \addvspace
vertical space before paragraphs: \parindent & \parskip
vertical spacing: \phantom & \vphantom & \hphantom
vertical spacing, math mode: \smash
visible space: \verb
visible space symbol, in text: Text symbols

W
weights, of fonts: Low-level font commands
white space: Spaces
wide hat accent, math: Math accents
wide tilde accent, math: Math accents
widths, of fonts: Low-level font commands
writing external files: filecontents
writing letters: Letters

X
x-height: Units of length
xdvi command: Output files
xdvipdfmx: TeX engines
xelatex command: TeX engines
XeTeX: TeX engines
xindy: makeindex
xindy program: makeindex

Jump to:   &   *   -   .   1   :   [   \   ^   _   `   {   ~  
A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X  
Setzer-0.4.4/data/resources/help/latex2e_4.html000066400000000000000000000615711420322575300213400ustar00rootroot00000000000000 Fonts (LaTeX2e unofficial reference manual (October 2018))

Fonts

Two important aspects of selecting a font are specifying a size and a style. The LaTeX commands for doing this are described here.


Font styles

The following type style commands are supported by LaTeX.

In the table below the listed commands, the \text... commands, is used with an argument, as in \textit{text}. This is the preferred form. But shown after it, in parenthesis, is the corresponding declaration form, which is sometimes useful. This form takes no arguments, as in {\itshape text}. The scope of the declaration form lasts until the next type style command or the end of the current group. In addition, each has an environment form such as \begin{itshape}...\end{itshape}.

These commands, in both the argument form and the declaration form, are cumulative; for instance you can get bold sans serif by saying either of \sffamily\bfseries or \bfseries\sffamily.

One advantage of these commands is that they automatically insert italic corrections if needed (see \/). Specifically, they insert the italic correction unless the following character is in the list \nocorrlist, which by default consists of a period and a comma. To suppress the automatic insertion of italic correction, use \nocorr at the start or end of the command argument, such as \textit{\nocorr text} or \textsc{text \nocorr}.

\textrm (\rmfamily)

Roman.

\textit (\itshape)

Italics.

\textmd (\mdseries)

Medium weight (default).

\textbf (\bfseries)

Boldface.

\textup (\upshape)

Upright (default).

\textsl (\slshape)

Slanted.

\textsf (\sffamily)

Sans serif.

\textsc (\scshape)

Small caps.

\texttt (\ttfamily)

Typewriter.

\textnormal (\normalfont)

Main document font.

Although it also changes fonts, the \emph{text} command is semantic, for text to be emphasized, and should not be used as a substitute for \textit. For example, \emph{start text \emph{middle text} end text} will result in the start text and end text in italics, but middle text will be in roman.

LaTeX also provides the following commands, which unconditionally switch to the given style, that is, are not cumulative. They are used as declarations: {\cmd...} instead of \cmd{...}.

(The unconditional commands below are an older version of font switching. The earlier commands are an improvement in most circumstances. But sometimes an unconditional font switch is precisely what you want.)

\bf

Switch to bold face.

\cal

Switch to calligraphic letters for math.

\it

Italics.

\rm

Roman.

\sc

Small caps.

\sf

Sans serif.

\sl

Slanted (oblique).

\tt

Typewriter (monospace, fixed-width).

The \em command is the unconditional version of \emph.

The following commands are for use in math mode. They are not cumulative, so \mathbf{\mathit{symbol}} does not create a boldface and italic symbol; instead, it will just be in italics. This is because typically math symbols need consistent typographic treatment, regardless of the surrounding environment.

\mathrm

Roman, for use in math mode.

\mathbf

Boldface, for use in math mode.

\mathsf

Sans serif, for use in math mode.

\mathtt

Typewriter, for use in math mode.

\mathit
(\mit)

Italics, for use in math mode.

\mathnormal

For use in math mode, e.g., inside another type style declaration.

\mathcal

Calligraphic letters, for use in math mode.

In addition, the command \mathversion{bold} can be used for switching to bold letters and symbols in formulas. \mathversion{normal} restores the default.

Finally, the command \oldstylenums{numerals} will typeset so-called “old-style” numerals, which have differing heights and depths (and sometimes widths) from the standard “lining” numerals, which all have the same height as uppercase letters. LaTeX’s default fonts support this, and will respect \textbf (but not other styles; there are no italic old-style numerals in Computer Modern). Many other fonts have old-style numerals also; sometimes the textcomp package must be loaded, and sometimes package options are provided to make them the default. FAQ entry: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=osf.


Font sizes

The following standard type size commands are supported by LaTeX. The table shows the command name and the corresponding actual font size used (in points) with the ‘10pt’, ‘11pt’, and ‘12pt’ document size options, respectively (see Document class options).

Command10pt11pt12pt
\tiny566
\scriptsize788
\footnotesize8910
\small91010.95
\normalsize (default)1010.9512
\large121214.4
\Large14.414.417.28
\LARGE17.2817.2820.74
\huge20.7420.7424.88
\Huge24.8824.8824.88

The commands are listed here in declaration forms. You use them by declaring them, as with this example.

\begin{quotation} \small
  The Tao that can be named is not the eternal Tao.
\end{quotation}

The scope of the \small lasts until the end of the quotation environment. It would also end at the next type style command or the end of the current group, so you could enclose it in extra curly braces {\small We are here, we are here, we are here!}. You can instead use the environment form of these commands; for instance, \begin{tiny}...\end{tiny}.


Low-level font commands

These commands are primarily intended for writers of macros and packages. The commands listed here are only a subset of the available ones.

\fontencoding{encoding}

Select the font encoding, the encoding of the output font. There are a large number of valid encodings. The most common are OT1, Knuth’s original encoding for Computer Modern (the default), and T1, also known as the Cork encoding, which has support for the accented characters used by the most widespread European languages (German, French, Italian, Polish and others), which allows TeX to hyphenate words containing accented letters. For more, see https://ctan.org/pkg/encguide.

\fontfamily{family}

Select the font family. The web page http://www.tug.dk/FontCatalogue/ provides one way to browse through many of the fonts easily used with LaTeX. Here are examples of some common families.

pagAvant Garde
fvsBitstream Vera Sans
pbkBookman
bchCharter
ccrComputer Concrete
cmrComputer Modern
cmssComputer Modern Sans Serif
cmttComputer Modern Typewriter
pcrCourier
phvHelvetica
fi4Inconsolata
lmrLatin Modern
lmssLatin Modern Sans
lmttLatin Modern Typewriter
pncNew Century Schoolbook
pplPalatino
ptmTimes
unclUncial
putUtopia
pzcZapf Chancery
\fontseries{series}

Select the font series. A series combines a weight and a width. Typically, a font supports only a few of the possible combinations. Some common combined series values include:

mMedium (normal)
bBold
cCondensed
bcBold condensed
bxBold extended

The possible values for weight, individually, are:

ulUltra light
elExtra light
lLight
slSemi light
mMedium (normal)
sbSemi bold
bBold
ebExtra bold
ubUltra bold

The possible values for width, individually, are (the meaning and relationship of these terms varies with individual typefaces):

ucUltra condensed
ecExtra condensed
cCondensed
scSemi condensed
mMedium
sxSemi expanded
xExpanded
exExtra expanded
uxUltra expanded

When forming the series string from the weight and width, drop the m that stands for medium weight or medium width, unless both weight and width are m, in which case use just one (‘m’).

\fontshape{shape}

Select font shape. Valid shapes are:

nUpright (normal)
itItalic
slSlanted (oblique)
scSmall caps
uiUpright italics
olOutline

The two last shapes are not available for most font families, and small caps are often missing as well.

\fontsize{size}{skip}

Set the font size and the line spacing. The unit of both parameters defaults to points (pt). The line spacing is the nominal vertical space between lines, baseline to baseline. It is stored in the parameter \baselineskip. The default \baselineskip for the Computer Modern typeface is 1.2 times the \fontsize. Changing \baselineskip directly is inadvisable since its value is reset every time a size change happens; see \baselinestretch, next.

\baselinestretch

LaTeX multiplies the line spacing by the value of the \baselinestretch parameter; the default factor is 1. A change takes effect when \selectfont (see below) is called. You can make a line skip change happen for the entire document, for instance doubling it, by doing \renewcommand{\baselinestretch}{2.0} in the preamble.

However, the best way to double-space a document is to use the setspace package. In addition to offering a number of spacing options, this package keeps the line spacing single-spaced in places where that is typically desirable, such as footnotes and figure captions. See the package documentation.

\linespread{factor}

Equivalent to \renewcommand{\baselinestretch}{factor}, and therefore must be followed by \selectfont to have any effect. Best specified in the preamble, or use the setspace package, as just described.

\selectfont

The effects of the font commands described above do not happen until \selectfont is called, as in \fontfamily{familyname}\selectfont. It is often useful to put this in a macro:
\newcommand*{\myfont}{\fontfamily{familyname}\selectfont}
(see \newcommand & \renewcommand).

\usefont{enc}{family}{series}{shape}

The same as invoking \fontencoding, \fontfamily, \fontseries and \fontshape with the given parameters, followed by \selectfont. For example:

\usefont{ot1}{cmr}{m}{n}
Setzer-0.4.4/data/resources/help/latex2e_5.html000066400000000000000000001040411420322575300213270ustar00rootroot00000000000000 Layout (LaTeX2e unofficial reference manual (October 2018))

Layout

Commands for controlling the general page layout.


\onecolumn

Synopsis:

\onecolumn

Start a new page and produce single-column output. If the document is given the class option onecolumn then this is the default behavior (see Document class options). This command is fragile (see \protect).


\twocolumn

Synopses:

\twocolumn
\twocolumn[prelim one column text]

Start a new page and produce two-column output. If the document is given the class option twocolumn then this is the default (see Document class options). This command is fragile (see \protect).

If the optional prelim one column text argument is present, it is typeset in one-column mode before the two-column typesetting starts.

These parameters control typesetting in two-column output:

\columnsep

The distance between columns. The default is 35pt. Change it with a command such as \setlength{\columnsep}{40pt} You must change it before the two column environment starts; in the preamble is a good place.

\columnseprule

The width of the rule between columns. The rule appears halfway between the two columns. The default is 0pt, meaning that there is no rule. Change it with a command such as \setlength{\columnseprule}{0.4pt}, before the two-column environment starts.

\columnwidth

The width of a single column. In one-column mode this is equal to \textwidth. In two-column mode by default LaTeX sets the width of each of the two columns to be half of \textwidth minus \columnsep.

In a two-column document, the starred environments table* and figure* are two columns wide, whereas the unstarred environments table and figure take up only one column (see figure and see table). LaTeX places starred floats at the top of a page. The following parameters control float behavior of two-column output.

\dbltopfraction

The maximum fraction at the top of a two-column page that may be occupied by two-column wide floats. The default is 0.7, meaning that the height of a table* or figure* environment must not exceed 0.7\textheight . If the height of your starred float environment exceeds this then you can take one of the following actions to prevent it from floating all the way to the back of the document:

  • Use the [tp] location specifier to tell LaTeX to try to put the bulky float on a page by itself, as well as at the top of a page.
  • Use the [t!] location specifier to override the effect of \dbltopfraction for this particular float.
  • Increase the value of \dbltopfraction to a suitably large number, to avoid going to float pages so soon.

You can redefine it, as with \renewcommand{\dbltopfraction}{0.9}.

\dblfloatpagefraction

For a float page of two-column wide floats, this is the minimum fraction that must be occupied by floats, limiting the amount of blank space. LaTeX’s default is 0.5. Change it with \renewcommand.

\dblfloatsep

On a float page of two-column wide floats, this length is the distance between floats, at both the top and bottom of the page. The default is 12pt plus2pt minus2pt for a document set at 10pt or 11pt, and 14pt plus2pt minus4pt for a document set at 12pt.

\dbltextfloatsep

This length is the distance between a multi-column float at the top or bottom of a page and the main text. The default is 20pt plus2pt minus4pt.

\dbltopnumber

On a float page of two-column wide floats, this counter gives the maximum number of floats allowed at the top of the page. The LaTeX default is 2.

This example uses \twocolumn’s optional argument of to create a title that spans the two-column article:

\documentclass[twocolumn]{article}
\newcommand{\authormark}[1]{\textsuperscript{#1}}
\begin{document}
\twocolumn[{% inside this optional argument goes one-column text
  \centering
  \LARGE The Title \\[1.5em]
  \large Author One\authormark{1},
         Author Two\authormark{2},
         Author Three\authormark{1} \\[1em]
  \normalsize
  \begin{tabular}{p{.2\textwidth}@{\hspace{2em}}p{.2\textwidth}}
    \authormark{1}Department one  &\authormark{2}Department two \\ 
     School one                   &School two 
  \end{tabular}\\[3em] % space below title part
  }]

Two column text here.

\flushbottom

Make all pages in the documents after this declaration have the same height, by stretching the vertical space where necessary to fill out the page. This is most often used when making two-sided documents since the differences in facing pages can be glaring.

If TeX cannot satisfactorily stretch the vertical space in a page then you get a message like ‘Underfull \vbox (badness 10000) has occurred while \output is active’. If you get that, one option is to change to \raggedbottom (see \raggedbottom). Alternatively, you can adjust the textheight to make compatible pages, or you can add some vertical stretch glue between lines or between paragraphs, as in \setlength{\parskip}{0ex plus0.1ex}. Your last option is to, in a final editing stage, adjust the height of individual pages (see \enlargethispage).

The \flushbottom state is the default only if you select the twoside document class option (see Document class options).


\raggedbottom

Make all later pages the natural height of the material on that page; no rubber vertical lengths will be stretched. Thus, in a two-sided document the facing pages may be different heights. This command can go at any point in the document body. See \flushbottom.

This is the default unless you select the twoside document class option (see Document class options).


Page layout parameters

\columnsep
\columnseprule
\columnwidth

The distance between the two columns, the width of a rule between the columns, and the width of the columns, when the document class option twocolumn is in effect (see Document class options). See \twocolumn.

\headheight

Height of the box that contains the running head. The default in the article, report, and book classes is ‘12pt’, at all type sizes.

\headsep

Vertical distance between the bottom of the header line and the top of the main text. The default in the article and report classes is ‘25pt’. In the book class the default is: if the document is set at 10pt then it is ‘0.25in’, and at 11pt and 12pt it is ‘0.275in’.

\footskip

Distance from the baseline of the last line of text to the baseline of the page footer. The default in the article and report classes is ‘30pt’. In the book class the default is: when the type size is 10pt the default is ‘0.35in’, while at 11pt it is ‘0.38in’, and at 12pt it is ‘30pt’.

\linewidth

Width of the current line, decreased for each nested list (see list). That is, the nominal value for \linewidth is to equal \textwidth but for each nested list the \linewidth is decreased by the sum of that list’s \leftmargin and \rightmargin (see itemize).

\marginparpush
\marginsep
\marginparwidth

The minimum vertical space between two marginal notes, the horizontal space between the text body and the marginal notes, and the horizontal width of the notes.

Normally marginal notes appear on the outside of the page, but the declaration \reversemarginpar changes that (and \normalmarginpar changes it back).

The defaults for \marginparpush in both book and article classes are: ‘7pt’ if the document is set at 12pt, and ‘5pt’ if the document is set at 11pt or 10pt.

For \marginsep, in article class the default is ‘10pt’ except if the document is set at 10pt and in two-column mode where the default is ‘11pt’.

For \marginsep in book class the default is ‘10pt’ in two-column mode and ‘7pt’ in one-column mode.

For \marginparwidth in both book and article classes, in two-column mode the default is 60% of \paperwidth - \textwidth, while in one-column mode it is 50% of that distance.

\oddsidemargin
\evensidemargin

The \oddsidemargin is the extra distance between the left side of the page and the text’s left margin, on odd-numbered pages when the document class option twoside is chosen and on all pages when oneside is in effect. When twoside is in effect, on even-numbered pages the extra distance on the left is evensidemargin.

LaTeX’s default is that \oddsidemargin is 40% of the difference between \paperwidth and \textwidth, and \evensidemargin is the remainder.

\paperheight

The height of the paper, as distinct from the height of the print area. Normally set with a document class option, as in \documentclass[a4paper]{article} (see Document class options).

\paperwidth

The width of the paper, as distinct from the width of the print area. Normally set with a document class option, as in \documentclass[a4paper]{article} (see Document class options).

\textheight

The normal vertical height of the page body. If the document is set at a nominal type size of 10pt then for an article or report the default is ‘43\baselineskip’, while for a book it is ‘41\baselineskip’. At a type size of 11pt the default is ‘38\baselineskip’ for all document classes. At 12pt it is ‘36\baselineskip’ for all classes.

\textwidth

The full horizontal width of the entire page body. For an article or report document, the default is ‘345pt’ when the chosen type size is 10pt, the default is ‘360pt’ at 11pt, and it is ‘390pt’ at 12pt. For a book document, the default is ‘4.5in’ at a type size of 10pt, and ‘5in’ at 11pt or 12pt.

In multi-column output, \textwidth remains the width of the entire page body, while \columnwidth is the width of one column (see \twocolumn).

In lists (see list), \textwidth remains the width of the entire page body (and \columnwidth the width of the entire column), while \linewidth may decrease for nested lists.

Inside a minipage (see minipage) or \parbox (see \parbox), all the width-related parameters are set to the specified width, and revert to their normal values at the end of the minipage or \parbox.

\hsize

This entry is included for completeness: \hsize is the TeX primitive parameter used when text is broken into lines. It should not be used in normal LaTeX documents.

\topmargin

Space between the top of the TeX page (one inch from the top of the paper, by default) and the top of the header. The value is computed based on many other parameters: \paperheight - 2in - \headheight - \headsep - \textheight - \footskip, and then divided by two.

\topskip

Minimum distance between the top of the page body and the baseline of the first line of text. For the standard classes, the default is the same as the font size, e.g., ‘10pt’ at a type size of 10pt.


Floats

Some typographic elements, such as figures and tables, cannot be broken across pages. They must be typeset outside of the normal flow of text, for instance floating to the top of a later page.

LaTeX can have a number of different classes of floating material. The default is the two classes, figure (see figure) and table (see table), but you can create a new class with the package float.

Within any one float class LaTeX always respects the order, so that the first figure in a document source must be typeset before the second figure. However, LaTeX may mix the classes, so it can happen that while the first table appears in the source before the first figure, it appears in the output after it.

The placement of floats is subject to parameters, given below, that limit the number of floats that can appear at the top of a page, and the bottom, etc. If so many floats are queued that the limits prevent them all from fitting on a page then LaTeX places what it can and defers the rest to the next page. In this way, floats may end up being typeset far from their place in the source. In particular, a float that is big may migrate to the end of the document. In which event, because all floats in a class must appear in sequential order, every following float in that class also appears at the end.

In addition to changing the parameters, for each float you can tweak where the float placement algorithm tries to place it by using its placement argument. The possible values are a sequence of the letters below. The default for both figure and table, in both article and book classes, is tbp.

t

(Top)—at the top of a text page.

b

(Bottom)—at the bottom of a text page. (However, b is not allowed for full-width floats (figure*) with double-column output. To ameliorate this, use the stfloats or dblfloatfix package, but see the discussion at caveats in the FAQ: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=2colfloat.

h

(Here)—at the position in the text where the figure environment appears. However, h is not allowed by itself; t is automatically added.

To absolutely force a float to appear “here”, you can \usepackage{float} and use the H specifier which it defines. For further discussion, see the FAQ entry at http://www.tex.ac.uk/cgi-bin/texfaq2html?label=figurehere.

p

(Page of floats)—on a separate float page, which is a page containing no text, only floats.

!

Used in addition to one of the above; for this float only, LaTeX ignores the restrictions on both the number of floats that can appear and the relative amounts of float and non-float text on the page. The ! specifier does not mean “put the float here”; see above.

Note: the order in which letters appear in the placement argument does not change the order in which LaTeX tries to place the float; for instance, btp has the same effect as tbp. All that placement does is that if a letter is not present then the algorithm does not try that location. Thus, LaTeX’s default of tbp is to try every location except placing the float where it occurs in the source.

To prevent LaTeX from moving floats to the end of the document or a chapter you can use a \clearpage command to start a new page and insert all pending floats. If a pagebreak is undesirable then you can use the afterpage package and issue \afterpage{\clearpage}. This will wait until the current page is finished and then flush all outstanding floats.

LaTeX can typeset a float before where it appears in the source (although on the same output page) if there is a t specifier in the placement parameter. If this is not desired, and deleting the t is not acceptable as it keeps the float from being placed at the top of the next page, then you can prevent it by either using the flafter package or using the command \suppressfloats[t], which causes floats for the top position on this page to moved to the next page.

Parameters relating to fractions of pages occupied by float and non-float text (change them with \renewcommand{parameter}{decimal between 0 and 1}):

\bottomfraction

The maximum fraction of the page allowed to be occupied by floats at the bottom; default ‘.3’.

\floatpagefraction

The minimum fraction of a float page that must be occupied by floats; default ‘.5’.

\textfraction

Minimum fraction of a page that must be text; if floats take up too much space to preserve this much text, floats will be moved to a different page. The default is ‘.2’.

\topfraction

Maximum fraction at the top of a page that may be occupied before floats; default ‘.7’.

Parameters relating to vertical space around floats (change them with a command of the form \setlength{parameter}{length expression}):

\floatsep

Space between floats at the top or bottom of a page; default ‘12pt plus2pt minus2pt’.

\intextsep

Space above and below a float in the middle of the main text; default ‘12pt plus2pt minus2pt’ for 10 point and 11 point documents, and ‘14pt plus4pt minus4pt’ for 12 point documents.

\textfloatsep

Space between the last (first) float at the top (bottom) of a page; default ‘20pt plus2pt minus4pt’.

Counters relating to the number of floats on a page (change them with a command of the form \setcounter{ctrname}{natural number}):

bottomnumber

Maximum number of floats that can appear at the bottom of a text page; default 1.

dbltopnumber

Maximum number of full-sized floats that can appear at the top of a two-column page; default 2.

topnumber

Maximum number of floats that can appear at the top of a text page; default 2.

totalnumber

Maximum number of floats that can appear on a text page; default 3.

The principal TeX FAQ entry relating to floats http://www.tex.ac.uk/cgi-bin/texfaq2html?label=floats contains suggestions for relaxing LaTeX’s default parameters to reduce the problem of floats being pushed to the end. A full explanation of the float placement algorithm is in Frank Mittelbach’s article “How to influence the position of float environments like figure and table in LaTeX?” (http://latex-project.org/papers/tb111mitt-float.pdf).

Setzer-0.4.4/data/resources/help/latex2e_6.html000066400000000000000000001354451420322575300213440ustar00rootroot00000000000000 Sectioning (LaTeX2e unofficial reference manual (October 2018))

Sectioning

Structure your text into divisions: parts, chapters, sections, etc. All sectioning commands have the same form, one of:

sectioning-command{title}
sectioning-command*{title}
sectioning-command[toc-title]{title}

For instance, declare the start of a subsection as with \subsection{Motivation}.

The table has each sectioning-command in LaTeX. All are available in all of LaTeX’s standard document classes book, report, and article, except that \chapter is not available in article.

Sectioning unitCommandLevel
Part\part-1 (book, report), 0 (article)
Chapter\chapter0
Section\section1
Subsection\subsection2
Subsubsection\subsubsection3
Paragraph\paragraph4
Subparagraph\subparagraph5

All these commands have a *-form that prints title as usual but is not numbered and does not make an entry in the table of contents. An example of using this is for an appendix in an article . The input \appendix\section{Appendix} gives the output ‘A Appendix’ (see \appendix). You can lose the numbering ‘A’ by instead entering \section*{Appendix} (articles often omit a table of contents and have simple page headers so the other differences from the \section command may not matter).

The section title title provides the heading in the main text, but it may also appear in the table of contents and in the running head or foot (see Page styles). You may not want the same text in these places as in the main text. All of these commands have an optional argument toc-title for these other places.

The level number in the table above determines which sectional units are numbered, and which appear in the table of contents. If the sectioning command’s level is less than or equal to the value of the counter secnumdepth then the titles for this sectioning command will be numbered (see Sectioning/secnumdepth). And, if level is less than or equal to the value of the counter tocdepth then the table of contents will have an entry for this sectioning unit (see Sectioning/tocdepth).

LaTeX expects that before you have a \subsection you will have a \section and, in a book, that before a \section you will have a \chapter. Otherwise you can get a something like a subsection numbered ‘3.0.1’.

Two counters relate to the appearance of sectioning commands.

secnumdepth

Controls which sectioning commands are numbered. Suppress numbering of sectioning at any depth greater than level \setcounter{secnumdepth}{level} (see \setcounter). See the above table for the level numbers. For instance, if the secnumdepth is 1 in an article then a \section{Introduction} command will produce output like ‘1 Introduction’ while \subsection{Discussion} will produce output like ‘Discussion’, without the number. LaTeX’s default secnumdepth is 3 in article class and  2 in the book and report classes.

tocdepth

Controls which sectioning units are listed in the table of contents. The setting \setcounter{tocdepth}{level} makes the sectioning units at level be the smallest ones listed (see \setcounter). See the above table for the level numbers. For instance, if tocdepth is 1 then the table of contents will list sections but not subsections. LaTeX’s default secnumdepth is 3 in article class and  2 in the book and report classes.


\part

Synopsis, one of:

\part{title}
\part*{title}
\part[toc-title]{title}

Start a document part. The standard LaTeX classes book, report, and article, all have this command.

This produces a document part, in a book.

\part{VOLUME I \\
       PERSONAL MEMOIRS OF  U.\ S.\ GRANT}
\chapter{ANCESTRY--BIRTH--BOYHOOD.}
My family is American, and has been for generations,
in all its branches, direct and collateral.

In each standard class the \part command outputs a part number such as ‘Part I’, alone on its line, in boldface, and in large type. Then LaTeX outputs title, also alone on its line, in bold and in even larger type. In class book, the LaTeX default puts each part alone on its own page. If the book is two-sided then LaTeX will skip a page if needed to have the new part on an odd-numbered page. In report it is again alone on a page, but LaTeX won’t force it onto an odd-numbered page. In an article LaTeX does not put it on a fresh page, but instead outputs the part number and part title onto the main document page.

The * form shows title but it does not show the part number, does not increment the part counter, and produces no table of contents entry.

The optional argument toc-title will appear as the part title in the table of contents (see Table of contents etc.) and in running headers (see Page styles). If it is not present then title will be there. This example puts a line break in title but leaves out the break in the table of contents.

\part[Up from the bottom; my life]{Up from the bottom\\ my life}

For determining which sectional units are numbered and which appear in the table of contents, the level number of a part is -1 (see Sectioning/secnumdepth and see Sectioning/tocdepth).

In the class article, if a paragraph immediately follows the part title then it is not indented. To get an indent you can use the package indentfirst.

One package to change the behavior of \part is titlesec. See its documentation on CTAN.


\chapter

Synopsis, one of:

\chapter{title}
\chapter*{title}
\chapter[toc-title]{title}

Start a chapter. The standard LaTeX classes book and report have this command but article does not.

This produces a chapter.

\chapter{Loomings}
Call me Ishmael.
Some years ago---never mind how long precisely---having little or no
money in my purse, and nothing particular to interest me on shore, I
thought I would sail about a little and see the watery part of
the world.

The LaTeX default starts each chapter on a fresh page, an odd-numbered page if the document is two-sided. It produces a chapter number such as ‘Chapter 1’ in large boldface type (the size is \huge). It then puts title on a fresh line, in boldface type that is still larger (size \Huge). It also increments the chapter counter, adds an entry to the table of contents (see Table of contents etc.), and sets the running header information (see Page styles).

The * form shows title on a fresh line, in boldface. But it does not show the chapter number, does not increment the chapter counter, produces no table of contents entry, and does not affect the running header. (If you use the page style headings in a two-sided document then the header will be from the prior chapter.) This example illustrates.

\chapter*{Preamble}

The optional argument toc-title will appear as the chapter title in the table of contents (see Table of contents etc.) and in running headers (see Page styles). If it is not present then title will be there. This shows the full name in the chapter title,

\chapter[Weyl]{Hermann Klaus Hugo (Peter) Weyl (1885--1955)}

but only ‘Weyl’ on the contents page. This puts a line break in the title but that doesn’t work well with running headers so it omits the break in the contents

\chapter[Given it all\\ my story]{Given it all\\ my story}

For determining which sectional units are numbered and which appear in the table of contents, the level number of a chapter is 0 (see Sectioning/secnumdepth and see Sectioning/tocdepth).

The paragraph that follows the chapter title is not indented, as is a standard typographical practice. To get an indent use the package indentfirst.

You can change what is shown for the chapter number. To change it to something like ‘Lecture 1’, put in the preamble either \renewcommand{\chaptername}{Lecture} or this (see \makeatletter & \makeatother).

\makeatletter
\renewcommand{\@chapapp}{Lecture}
\makeatother

To make this change because of the primary language for the document, see the package babel.

In a two-sided document LaTeX puts a chapter on odd-numbered page, if necessary leaving an even-numbered page that is blank except for any running headers. To make that page completely blank, see \clearpage & \cleardoublepage.

To change the behavior of the \chapter command, you can copy its definition from the LaTeX format file and make adjustments. But there are also many packages on CTAN that address this. One is titlesec. See its documentation, but the example below gives a sense of what it can do.

\usepackage{titlesec}   % in preamble
\titleformat{\chapter}
  {\Huge\bfseries}  % format of title
  {}                % label, such as 1.2 for a subsection
  {0pt}             % length of separation between label and title
  {}                % before-code hook

This omits the chapter number ‘Chapter 1’ from the page but unlike \chapter* it keeps the chapter in the table of contents and the running headers.


\section

Synopsis, one of:

\section{title}
\section*{title}
\section[toc-title]{title}

Start a section. The standard LaTeX classes article, book, and report all have this command.

This produces a section.

In this Part we tend to be more interested in the function,
in the input-output behavior,
than in the details of implementing that behavior.

\section{Turing machines}
Despite this desire to downplay implementation,
we follow the approach of A~Turing that the
first step toward defining the set of computable functions
is to reflect on the details of what mechanisms can do.

For the standard LaTeX classes book and report the default output is like ‘1.2 title’ (for chapter 1, section 2), alone on its line and flush left, in boldface and a larger type (the type size is \Large). The same holds in article except that there are no chapters in that class so it looks like ‘2 title’.

The * form shows title. But it does not show the section number, does not increment the section counter, produces no table of contents entry, and does not affect the running header. (If you use the page style headings in a two-sided document then the header will be from the prior section.)

The optional argument toc-title will appear as the section title in the table of contents (see Table of contents etc.) and in running headers (see Page styles). If it is not present then title will be there. This shows the full name in the title of the section,

\section[Elizabeth~II]{Elizabeth the Second,
  by the Grace of God of the United Kingdom,
  Canada and Her other Realms and Territories Queen,
  Head of the Commonwealth, Defender of the Faith.}

but only ‘Elizabeth II’ on the contents page and in the headers. This has a line break in title but that does not work with headers so it is omitted from the contents and headers.

\section[Truth is, I cheated; my life story]{Truth is,
  I cheated\\my life story}

For determining which sectional units are numbered and which appear in the table of contents, the level number of a section is 1 (see Sectioning/secnumdepth and see Sectioning/tocdepth).

The paragraph that follows the section title is not indented, as is a standard typographical practice. One way to get an indent is to use the package indentfirst.

In general, to change the behavior of the \section command, there are a number of options. One is the \@startsection command (see \@startsection). There are also many packages on CTAN that address this, including titlesec. See the documentation but the example below gives a sense of what they can do.

\usepackage{titlesec}   % in preamble
\titleformat{\section}
  {\normalfont\Large\bfseries}  % format of title
  {\makebox[1pc][r]{\thesection\hspace{1pc}}} % label
  {0pt}                   % length of separation between label and title
  {}                      % before-code hook
\titlespacing*{\section}
  {-1pc}{18pt}{10pt}[10pc]

That puts the section number in the margin.


\subsection

Synopsis, one of:

\subsection{title}
\subsection*{title}
\subsection[toc-title]{title}

Start a subsection. The standard LaTeX classes article, book, and report all have this command.

This produces a subsection.

We will show that there are more functions than Turing machines and that
therefore some functions have no associated machine.

\subsection{Cardinality} We will begin with two paradoxes that
dramatize the challenge to our intuition posed by comparing the sizes of
infinite sets.

For the standard LaTeX classes book and report the default output is like ‘1.2.3 title’ (for chapter 1, section 2, subsection 3), alone on its line and flush left, in boldface and a larger type (the type size is \large). The same holds in article except that there are no chapters in that class so it looks like ‘2.3 title’.

The * form shows title. But it does not show the section number, does not increment the section counter, and produces no table of contents entry.

The optional argument toc-title will appear as the section title in the table of contents (see Table of contents etc.). If it is not present then title will be there. This shows the full name in the title of the section,

\subsection[$\alpha,\beta,\gamma$ paper]{\textit{The Origin of
  Chemical Elements} by R.A.~Alpher, H.~Bethe, and G.~Gamow}

but only ‘α,β,γ paper’ on the contents page.

For determining which sectional units are numbered and which appear in the table of contents, the level number of a subsection is 2 (see Sectioning/secnumdepth and see Sectioning/tocdepth).

The paragraph that follows the subsection title is not indented, as is a standard typographical practice. One way to get an indent is to use the package indentfirst.

There are a number of ways to change the behavior of the \subsection command. One is the \@startsection command (see \@startsection). There are also many packages on CTAN that address this, including titlesec. See the documentation but the example below gives a sense of what they can do.

\usepackage{titlesec}   % in preamble
\titleformat{\subsection}[runin]
  {\normalfont\normalsize\bfseries}  % format of the title
  {\thesubsection}                   % label
  {0.6em}                            % space between label and title
  {}                                 % before-code hook

That puts the subsection number and title in the first line of text.


\subsubsection, \paragraph, \subparagraph

Synopsis, one of:

\subsubsection{title}
\subsubsection*{title}
\subsubsection[toc-title]{title}

or one of:

\paragraph{title}
\paragraph*{title}
\paragraph[toc-title]{title}

or one of:

\subparagraph{title}
\subparagraph*{title}
\subparagraph[toc-title]{title}

Start a subsubsection, paragraph, or subparagraph. The standard LaTeX classes article, book, and report all have these commands, although they are not commonly used.

This produces a subsubsection.

\subsubsection{Piston ring compressors: structural performance}
Provide exterior/interior wall cladding assemblies
capable of withstanding the effects of load and stresses from 
consumer-grade gasoline engine piston rings.

The default output of each of the three does not change over the standard LaTeX classes article, book, and report. For \subsubsection the title is alone on its line, in boldface and normal size type. For \paragraph the title is inline with the text, not indented, in boldface and normal size type. For \subparagraph the title is inline with the text, with a paragraph indent, in boldface and normal size type (Because an article has no chapters its subsubsections are numbered and so it looks like ‘1.2.3 title’, for section 1, subsection 2, and subsubsection 3. The other two divisions are not numbered.)

The * form shows title. But it does not increment the associated counter and produces no table of contents entry (and does not show the number for \subsubsection).

The optional argument toc-title will appear as the division title in the table of contents (see Table of contents etc.). If it is not present then title will be there.

For determining which sectional units are numbered and which appear in the table of contents, the level number of a subsubsection is 3, of a paragraph is 4, and of a subparagraph is 5 (see Sectioning/secnumdepth and see Sectioning/tocdepth).

The paragraph that follows the subsubsection title is not indented, as is a standard typographical practice. One way to get an indent is to use the package indentfirst.

There are a number of ways to change the behavior of the these commands. One is the \@startsection command (see \@startsection). There are also many packages on CTAN that address this, including titlesec. See the documentation on CTAN.


\appendix

Synopsis:

\appendix

This does not directly produce any output. But in a book or report it declares that subsequent \chapter commands start an appendix. In an article it does the same, for \section commands. It also resets the chapter and section counters to 0 in a book or report, and in an article resets the section and subsection counters.

In this book

\chapter{One}  ...
\chapter{Two}  ...
 ...
\appendix
\chapter{Three}  ...
\chapter{Four}  ...

the first two will generate output numbered ‘Chapter 1’ and ‘Chapter 2’. After the \appendix the numbering will be ‘Appendix A’ and ‘Appendix B’. See Larger book template for another example.

The appendix package adds the command \appendixpage to put a separate ‘Appendices’ in the document body before the first appendix, and the command \addappheadtotoc to do the same in the table of contents. You can reset the name ‘Appendix’ with a command like \renewcommand{\appendixname}{Specification}, as well as a number of other features. See the documentation on CTAN.


\frontmatter, \mainmatter, \backmatter

Synopsis, one of:

\frontmatter
\mainmatter
\backmatter

Format a book class document differently according to which part of the document is being produced. All three commands are optional.

Traditionally, a book’s front matter contains such things as the title page, an abstract, a table of contents, a preface, a list of notations, a list of figures, and a list of tables. (Some of these front matter pages, such as the title page, are traditionally not numbered.) The back matter may contain such things as a glossary, notes, a bibliography, and an index.

The \frontmatter declaration makes the pages numbered in lowercase roman, and makes chapters not numbered, although each chapter’s title appears in the table of contents; if you use other sectioning commands here, use the *-version (see Sectioning). The \mainmatter changes the behavior back to the expected version, and resets the page number. The \backmatter leaves the page numbering alone but switches the chapters back to being not numbered. See Larger book template for an example using the three.


\@startsection

Synopsis:

\@startsection{name}{level}{indent}{beforeskip}{afterskip}{style}

Used to help redefine the behavior of commands that start sectioning divisions such as \section or \subsection.

Note that the titlesec package makes manipulation of sectioning easier. Further, while most requirements for sectioning commands can be satisfied with \@startsection, some cannot. For instance, in the standard LaTeX book and report classes the commands \chapter and \report are not constructed in this way. To make such a command you may want to use the \secdef command.

Technically, \@startsection has the form

\@startsection{name}
  {level}
  {indent}
  {beforeskip}
  {afterskip}
  {style}*[toctitle]{title}

so that issuing

\renewcommand{\section}{\@startsection{name}
  {level}
  {indent}
  {beforeskip}
  {afterskip}
  {style}}

redefines \section to have the form \section*[toctitle]{title} (here too, the star * is optional). See Sectioning. This implies that when you write a command like \renewcommand{section}{...}, the \@startsection{...} must come last in the definition. See the examples below.

name

Name of the counter used to number the sectioning header. This counter must be defined separately. Most commonly this is either section, subsection, or paragraph. Although in those cases the counter name is the same as the sectioning command itself, you don’t have to use the same name.

Then \thename displays the title number and \namemark is for the page headers. See the third example below.

level

An integer giving the depth of the sectioning command. See Sectioning for the list of standard level numbers.

If level is less than or equal to the value of the counter secnumdepth then titles for this sectioning command will be numbered (see Sectioning/secnumdepth). For instance, if secnumdepth is 1 in an article then the command \section{Introduction} will produce output like “1 Introduction” while \subsection{Discussion} will produce output like “Discussion”, without the number prefix.

If level is less than or equal to the value of the counter tocdepth then the table of contents will have an entry for this sectioning unit (see Sectioning/tocdepth). For instance, in an article, if tocdepth is 1 then the table of contents will list sections but not subsections.

indent

A length giving the indentation of all of the title lines with respect to the left margin. To have the title flush with the margin use 0pt. A negative indentation such as -\parindent will move the title into the left margin.

beforeskip

The absolute value of this length is the amount of vertical space that is inserted before this sectioning unit’s title. This space will be discarded if the sectioning unit happens to start at the top of a fresh page. If this number is negative then the first paragraph following the header is not indented, if it is non-negative then the first paragraph is indented. (Note that the negative of 1pt plus 2pt minus 3pt is -1pt plus -2pt minus -3pt.)

For example, if beforeskip is -3.5ex plus -1ex minus -0.2ex then to start the new sectioning unit, LaTeX will add about 3.5 times the height of a letter x in vertical space, and the first paragraph in the section will not be indented. Using a rubber length, with plus and minus, is good practice here since it gives LaTeX more flexibility in making up the page (see Lengths).

The full accounting of the vertical space between the baseline of the line prior to this sectioning unit’s header and the baseline of the header is that it is the sum of the \parskip of the text font, the \baselineskip of the title font, and the absolute value of the beforeskip. This space is typically rubber so it may stretch or shrink. (If the sectioning unit starts on a fresh page so that the vertical space is discarded then the baseline of the header text will be where LaTeX would put the baseline of the first text line on that page.)

afterskip

This is a length. If afterskip is non-negative then this is the vertical space inserted after the sectioning unit’s title header. If it is negative then the title header becomes a run-in header, so that it becomes part of the next paragraph. In this case the absolute value of the length gives the horizontal space between the end of the title and the beginning of the following paragraph. (Note that the negative of 1pt plus 2pt minus 3pt is -1pt plus -2pt minus -3pt.)

As with beforeskip, using a rubber length, with plus and minus components, is good practice here since it gives LaTeX more flexibility in putting together the page.

If afterskip is non-negative then the full accounting of the vertical space between the baseline of the sectioning unit’s header and the baseline of the first line of the following paragraph is that it is the sum of the \parskip of the title font, the \baselineskip of the text font, and the value of after. That space is typically rubber so it may stretch or shrink. (Note that because the sign of afterskip changes the sectioning unit header’s from standalone to run-in, you cannot use a negative afterskip to cancel part of the \parskip.)

style

Controls the styling of the title. See the examples below. Typical commands to use here are \centering, \raggedright, \normalfont, \hrule, or \newpage. The last command in style may be one that takes one argument, such as \MakeUppercase or \fbox that takes one argument. The section title will be supplied as the argument to this command. For instance, setting style to \bfseries\MakeUppercase would produce titles that are bold and uppercase.

These are LaTeX’s defaults for the first three sectioning units that are defined with \@startsection, for the article, book, and report classes. For section, the level is 1, the indent is 0pt, the beforeskip is -3.5ex plus -1ex minus -0.2ex, the afterskip is 2.3ex plus 0.2ex, and the style is \normalfont\Large\bfseries. For subsection, the level is 2, the indent is 0pt, the beforeskip is -3.25ex plus -1ex minus -0.2ex, the afterskip is 1.5ex plus 0.2ex, and the style is \normalfont\large\bfseries. For subsubsection, the level is 3, the indent is 0pt, the beforeskip is -3.25ex plus -1ex minus -0.2ex, the afterskip is 1.5ex plus 0.2ex, and the style is \normalfont\normalsize\bfseries.

Here are examples. They go either in a package or class file or in the preamble of a LaTeX document. If you put them in the preamble they must go between a \makeatletter command and a \makeatother. (Probably the error message You can't use `\spacefactor' in vertical mode. means that you forgot this.) See \makeatletter & \makeatother.

This will put section titles in large boldface type, centered. It says \renewcommand because LaTeX’s standard classes have already defined a \section. For the same reason it does not define a section counter, or the commands \thesection and \l@section.

\renewcommand\section{%
  \@startsection{section}% name
    {1}% level
    {0pt}% indent
    {-3.5ex plus -1ex minus -.2ex}% beforeskip
    {2.3ex plus.2ex}% afterskip
    {\centering\normalfont\Large\bfseries}% style
  }

This will put subsection titles in small caps type, inline with the paragraph.

\renewcommand\subsection{%
  \@startsection{subsection}%  name
    {2}% level
    {0em}% indent
    {-1ex plus 0.1ex minus -0.05ex}% beforeskip
    {-1em plus 0.2em}% afterskip
    {\scshape}% style
  }

The prior examples redefined existing sectional unit title commands. This defines a new one, illustrating the needed counter and macros to display that counter.

\setcounter{secnumdepth}{6}% show counters this far down
\newcounter{subsubparagraph}[subparagraph]% counter for numbering
\renewcommand{\thesubsubparagraph}%               how to display 
  {\thesubparagraph.\@arabic\c@subsubparagraph}%  numbering
\newcommand{\subsubparagraph}{\@startsection
                         {subsubparagraph}%
                         {6}%
                         {0em}%
                         {\baselineskip}%
                         {0.5\baselineskip}%
                         {\normalfont\normalsize}}
\newcommand*\l@subsubparagraph{\@dottedtocline{6}{10em}{5em}}% for toc
\newcommand{\subsubparagraphmark}[1]{}% for page headers
Setzer-0.4.4/data/resources/help/latex2e_7.html000066400000000000000000000275651420322575300213500ustar00rootroot00000000000000 Cross references (LaTeX2e unofficial reference manual (October 2018))

Cross references

We often want something like ‘See Theorem~31’. But by-hand typing the 31 is poor practice. Instead you should write a label such as \label{eq:GreensThm} and then reference it, as with See equation~\ref{eq:GreensThm}. LaTeX will automatically work out the number, put it into the output, and will change that number later if needed.

We will see this with Theorem~\ref{th:GreensThm}. % forward reference
...
\begin{theorem} \label{th:GreensThm}
  ...
\end{theorem}
...
See Theorem~\ref{th:GreensThm} on page~\pageref{th:GreensThm}.

LaTeX tracks cross reference information in a file having the extension .aux and with the same base name as the file containing the \label. So if \label is in calculus.tex then the information is in calculus.aux. LaTeX puts the information in that file every time it runs across a \label.

The behavior described in the prior paragraph results in a quirk that happens when your document has a forward reference, a \ref that appears before the associated \label. If this is the first time that you are compiling the document then you will get ‘LaTeX Warning: Label(s) may have changed. Rerun to get cross references right’ and in the output the forward reference will appear as two question marks ‘??’, in boldface. A similar thing happens if you change some things so the references changes; you get the same warning and the output contains the old reference information. In both cases, resolve this by compiling the document a second time.

The cleveref package enhances LaTeX’s cross referencing features. You can arrange that if you enter \begin{thm}\label{th:Nerode}...\end{thm} then \cref{th:Nerode} will output ‘Theorem 3.21’, without you having to enter the “Theorem.”


\label

Synopsis:

\label{key}

Assign a reference number to key. In ordinary text \label{key} assigns to key the number of the current sectional unit. Inside an environment with numbering, such as a table or theorem environment, \label{key} assigns to key the number of that environment. Retrieve the assigned number with the \ref{key} command (see \ref).

A key name can consist of any sequence of letters, digits, or common punctuation characters. Upper and lowercase letters are distinguished, as usual.

A common convention is to use labels consisting of a prefix and a suffix separated by a colon or period. Thus, \label{fig:Post} is a label for a figure with a portrait of Emil Post. This helps to avoid accidentally creating two labels with the same name, and makes your source more readable. Some commonly-used prefixes:

ch

for chapters

sec
subsec

for lower-level sectioning commands

fig

for figures

tab

for tables

eq

for equations

In the auxiliary file the reference information is kept as the text of a command of the form \newlabel{label}{{currentlabel}{pagenumber}}. Here currentlabel is the current value of the macro \@currentlabel that is usually updated whenever you call \refstepcounter{counter}.

Below, the key sec:test will get the number of the current section and the key fig:test will get the number of the figure. (Incidentally, put labels after captions in figures and tables.)

\section{section name}
\label{sec:test}
This is Section~\ref{sec:test}.
\begin{figure}
  ...
  \caption{caption text}
  \label{fig:test}
\end{figure}
See Figure~\ref{fig:test}.

\pageref

Synopsis:

\pageref{key}

Produce the page number of the place in the text where the corresponding \label{key} command appears.

If there is no \label{key} then you get something like ‘LaTeX Warning: Reference `th:GrensThm' on page 1 undefined on input line 11.

Below, the \label{eq:main} is used both for the formula number and for the page number. (Note that the two references are forward references so this document would need to be compiled twice to resolve those.)

The main result is formula~\ref{eq:main} on page~\pageref{eq:main}.
  ...
\begin{equation} \label{eq:main}
   \mathbf{P}=\mathbf{NP}
\end{equation}

\ref

Synopsis:

\ref{key}

Produces the number of the sectional unit, equation, footnote, figure, …, of the corresponding \label command (see \label). It does not produce any text, such as the word ‘Section’ or ‘Figure’, just the bare number itself.

If there is no \label{key} then you get something like ‘LaTeX Warning: Reference `th:GrensThm' on page 1 undefined on input line 11.

In this example the \ref{popular} produces ‘2’. Note that it is a forward reference since it comes before \label{popular} so this document would have to be compiled twice.

The most widely-used format is item number~\ref{popular}.
\begin{enumerate}
\item Plain \TeX
\item \label{popular} \LaTeX
\item Con\TeX t
\end{enumerate}

The cleveref package includes text such as ‘Theorem’ in the reference. See the documentation on CTAN.

Setzer-0.4.4/data/resources/help/latex2e_8.html000066400000000000000000004753231420322575300213500ustar00rootroot00000000000000 Environments (LaTeX2e unofficial reference manual (October 2018))

Environments

LaTeX provides many environments for delimiting certain behavior. An environment begins with \begin and ends with \end, like this:

\begin{environment-name}
  ...
\end{environment-name}

The environment-name at the beginning must exactly match that at the end. For instance, the input \begin{table*}...\end{table} will cause an error like: ‘! LaTeX Error: \begin{table*} on input line 5 ended by \end{table}.

Environments are executed within a group.


abstract

Synopsis:

\begin{abstract}
...
\end{abstract}

Produce an abstract, possibly of multiple paragraphs. This environment is only defined in the article and report document classes (see Document classes).

Using the example below in the article class produces a displayed paragraph. Document class option titlepage causes the abstract to be on a separate page (see Document class options); this is the default only in the report class.

\begin{abstract}
  We compare all known accounts of the proposal made by Porter Alexander 
  to Robert E Lee at the Appomattox Court House that the army continue
  in a guerrilla war, which Lee refused.
\end{abstract}

The next example produces a one column abstract in a two column document (for a more flexible solution, use the package abstract).

\documentclass[twocolumn]{article}
  ...
\begin{document}
\title{Babe Ruth as Cultural Progenitor: a Atavistic Approach}
\author{Smith \\ Jones \\ Robinson\thanks{Railroad tracking grant.}}
\twocolumn[
  \begin{@twocolumnfalse}
     \maketitle
     \begin{abstract}
       Ruth was not just the Sultan of Swat, he was the entire swat
       team.   
     \end{abstract}
   \end{@twocolumnfalse}
   ]
{   % by-hand insert a footnote at page bottom
 \renewcommand{\thefootnote}{\fnsymbol{footnote}}
 \footnotetext[1]{Thanks for all the fish.}
}

array

Synopsis:

\begin{array}{cols}
  column 1 entry &column 2 entry ... &column n entry \\
  ...
\end{array}

or:

\begin{array}[pos]{cols}
  column 1 entry &column 2 entry ... &column n entry \\
  ...
\end{array}

Produce a mathematical array. This environment can only be used in math mode, and normally appears within a displayed mathematics environment such as equation (see equation). Inside of each row the column entries are separated by an ampersand, (&). Rows are terminated with double-backslashes (see \\).

This example shows a three by three array.

\begin{equation*}
  \chi(x) =
  \left|              % vertical bar fence
    \begin{array}{ccc}
      x-a  &-b  &-c  \\
      -d   &x-e &-f  \\
      -g   &-h  &x-i
    \end{array}
 \right|
\end{equation*}

The required argument cols describes the number of columns, their alignment, and the formatting of the intercolumn regions. For instance, \begin{array}{rcl}...\end{array} gives three columns: the first flush right, the second centered, and the third flush left. See tabular for the complete description of cols and of the other common features of the two environments, including the optional pos argument.

There are two ways that array diverges from tabular. The first is that array entries are typeset in math mode, in textstyle (see Modes) except if the cols definition specifies the column with p{...}, which causes the entry to be typeset in text mode. The second is that, instead of tabular’s parameter \tabcolsep, LaTeX’s intercolumn space in an array is governed by \arraycolsep, which gives half the width between columns. The default for this is ‘5pt’ so that between two columns comes 10pt of space.

To obtain arrays with braces the standard is to use the amsmath package. It comes with environments pmatrix for an array surrounded by parentheses (...), bmatrix for an array surrounded by square brackets [...], Bmatrix for an array surrounded by curly braces {...}, vmatrix for an array surrounded by vertical bars |...|, and Vmatrix for an array surrounded by double vertical bars ||...||, along with a number of other array constructs.

The next example uses the amsmath package.

\usepackage{amsmath}  % in preamble

\begin{equation}    
  \begin{vmatrix}{cc}  % array with vert lines
    a  &b \\
    c  &d       
  \end{vmatrix}=ad-bc
\end{equation}

There are many packages concerning arrays. The array package has many useful extensions, including more column types. The dcolumn package adds a column type to center on a decimal point. For both see the documentation on CTAN.


center

Synopsis:

\begin{center}
  line1 \\
  line2 \\
  ...
\end{center}

Create a new paragraph consisting of a sequence of lines that are centered within the left and right margins. Use double-backslash, \\, to get a line break (see \\). If some text is too long to fit on a line then LaTeX will insert line breaks that avoid hyphenation and avoid stretching or shrinking any interword space.

This environment inserts space above and below the text body. See \centering to avoid such space, for example inside a figure environment.

This example produces three centered lines. There is extra vertical space between the last two lines.

\begin{center}
  A Thesis Submitted in Partial Fufillment \\
  of the Requirements of \\[0.5ex]
  the School of Environmental Engineering
\end{center}

In this example, depending on the page’s line width, LaTeX may choose a line break for the part before the double backslash. If so, it will center each of the two lines and if not it will center the single line. Then LaTeX will break at the double backslash, and will center the ending.

\begin{center}
  My father considered that anyone who went to chapel and didn't drink 
  alcohol was not to be tolerated.\\ 
  I grew up in that belief.  --Richard Burton 
\end{center}

A double backslash after the final line is optional. If present it doesn’t add any vertical space.

In a two-column document the text is centered in a column, not in the entire page.


\centering

Synopsis:

{\centering ... }

or

\begin{group}
  \centering ...
\end{group}

Center the material in its scope. It is most often used inside an environment such as figure, or in a parbox.

This example’s \centering declaration causes the graphic to be horizontally centered.

\begin{figure}
  \centering
  \includegraphics[width=0.6\textwidth]{ctan_lion.png}
  \caption{CTAN Lion}  \label{fig:CTANLion}
\end{figure}

The scope of this \centering ends with the \end{figure}.

Unlike the center environment, the \centering command does not add vertical space above and below the text. That’s its advantage in the above example; there is not an excess of space.

It also does not start a new paragraph; it simply changes how LaTeX formats paragraph units. If ww {\centering xx \\ yy} zz is surrounded by blank lines then LaTeX will create a paragraph whose first line ‘ww xx’ is centered and whose second line, not centered, contains ‘yy zz’. Usually what is desired is for the scope of the declaration to contain a blank line or the \end command of an environment such as figure or table that ends the paragraph unit. Thus, if {\centering xx \\ yy\par} zz is surrounded by blank lines then it makes a new paragraph with two centered lines ‘xx’ and ‘yy’, followed by a new paragraph with ‘zz’ that is formatted as usual.


description

Synopsis:

\begin{description}
  \item[label of first item] text of first item
  \item[label of second item] text of second item
   ...
\end{description}

Environment to make a list of labeled items. Each item’s label is typeset in bold and is flush left, so that long labels continue into the first line of the item text. There must be at least one item; having none causes the LaTeX error ‘Something's wrong--perhaps a missing \item’.

This example shows the environment used for a sequence of definitions.

\begin{definition}
  \item[lama] A priest.
  \item[llama] A beast.
\end{definition}

The labels ‘lama’ and ‘llama’ are output in boldface, with the left edge on the left margin.

Start list items with the \item command (see \item). Use the optional labels, as in \item[Main point], because there is no sensible default. Following the \item is optional text, which may contain multiple paragraphs.

Since the labels are in bold style, if the label text calls for a font change given in argument style (see Font styles) then it will come out bold. For instance, if the label text calls for typewriter with \item[\texttt{label text}] then it will appear in bold typewriter, if that is available. The simplest way around this, in this example to get non-bold typewriter, is to use declarative style: \item[{\tt label text}]. Similarly, get the standard roman font with \item[{\rm label text}].

For other major LaTeX labelled list environments, see itemize and enumerate. Unlike those environments, nesting description environments does not change the default label; it is boldface and flush left at all levels.

For information about list layout parameters, including the default values, and for information about customizing list layout, see list. The package enumitem is useful for customizing lists.

This example changes the description labels to small caps.

\renewcommand{\descriptionlabel}[1]{%
  {\hspace{\labelsep}\textsc{#1}}}

displaymath

Synopsis:

\begin{displaymath}
  mathematical text
\end{displaymath}

Environment to typeset the math text on its own line, in display style and centered. To make the text be flush-left use the global option fleqn; see Document class options.

In the displaymath environment no equation number is added to the math text. One way to get an equation number is to use the equation environment (see equation).

LaTeX will not break the math text across lines.

Note that the amsmath package has significantly more extensive displayed equation facilities. For example, there are a number of ways in that package for having math text broken across lines.

The construct \[math text\] is essentially a synonym for \begin{displaymath}math text\end{displaymath} but the latter is easier to work with in the source file; for instance, searching for a square bracket may get false positives but the word displaymath will likely be unique. (The construct $$math text$$ from Plain TeX is sometimes mistakenly used as a synonym for displaymath. It is not a synonym, because the displaymath environment checks that it isn’t started in math mode and that it ends in math mode begun by the matching environment start, because the displaymath environment has different vertical spacing, and because the displaymath environment honors the fleqn option.)

The output from this example is centered and alone on its line.

\begin{displaymath}
  \int_1^2 x^2\,dx=7/3
\end{displaymath}

Also, the integral sign is larger than the inline version \( \int_1^2 x^2\,dx=7/3 \) produces.


document

The document environment encloses the entire body of a document. It is required in every LaTeX document. See Starting and ending.


\AtBeginDocument

Synopsis:

\AtBeginDocument{code}

Save code and execute it when \begin{document} is executed, at the very end of the preamble. The code is executed after the font selection tables have been set up, so the normal font for the document is the current font. However, the code is executed as part of the preamble so you cannot do any typesetting with it.

You can issue this command more than once; the successive code lines will be executed in the order that you gave them.


\AtEndDocument

Synopsis:

\AtEndDocument{code}

Save code and execute it near the end of the document. Specifically, it is executed when \end{document} is executed, before the final page is finished and before any leftover floating environments are processed. If you want some of the code to be executed after these two processes then include a \clearpage at the appropriate point in code.

You can issue this command more than once; the successive code lines will be executed in the order that you gave them.


enumerate

Synopsis:

\begin{enumerate}
  \item[optional label of first item] text of first item
  \item[optional label of second item] text of second item
  ...
\end{enumerate}

Environment to produce a numbered list of items. The format of the label numbering depends on the nesting level of this environment; see below. The default top-level numbering is ‘1.’, ‘2.’, etc. Each enumerate list environment must have at least one item; having none causes the LaTeX error ‘Something's wrong--perhaps a missing \item’.

This example gives the first two finishers in the 1908 Olympic marathon. As a top-level list the labels would come out as ‘1.’ and ‘2.’.

\begin{enumerate}
 \item Johnny Hayes (USA)
 \item Charles Hefferon (RSA) 
\end{enumerate}

Start list items with the \item command (see \item). If you give \item an optional argument by following it with square brackets, as in \item[Interstitial label], then the next item will continue the interrupted sequence (see \item). That is, you will get labels like ‘1.’, then ‘Interstitial label’, then ‘2.’. Following the \item is optional text, which may contain multiple paragraphs.

Enumerations may be nested within other enumerate environments, or within any paragraph-making environment such as itemize (see itemize), up to four levels deep. This gives LaTeX’s default for the format at each nesting level, where 1 is the top level, the outermost level.

  1. arabic number followed by a period: ‘1.’, ‘2.’, …
  2. lowercase letter inside parentheses: ‘(a)’, ‘(b)’ …
  3. lowercase roman numeral followed by a period: ‘i.’, ‘ii.’, …
  4. uppercase letter followed by a period: ‘A.’, ‘B.’, …

The enumerate environment uses the counters \enumi through \enumiv (see Counters).

For other major LaTeX labeled list environments, see description and itemize. For information about list layout parameters, including the default values, and for information about customizing list layout, see list. The package enumitem is useful for customizing lists.

To change the format of the label use \renewcommand (see \newcommand & \renewcommand) on the commands \labelenumi through \labelenumiv. For instance, this first level list will be labelled with uppercase letters, in boldface, and without a trailing period.

\renewcommand{\labelenumi}{\textbf{\Alph{enumi}}}
\begin{enumerate}
  \item Shows as boldface A
  \item Shows as boldface B
\end{enumerate}

For a list of counter-labeling commands see \alph \Alph \arabic \roman \Roman \fnsymbol.


eqnarray

The eqnarray environment is obsolete. It has infelicities, including spacing that is inconsistent with other mathematics elements. (See “Avoid eqnarray!” by Lars Madsen http://tug.org/TUGboat/tb33-1/tb103madsen.pdf). New documents should include the amsmath package and use the displayed mathematics environments provided there, such as the align environment. We include a description only for completeness and for working with old documents.

Synopsis:

\begin{eqnarray} 
  first formula left  &first formula middle  &first formula right \\
  ...
\end{eqnarray}

or

\begin{eqnarray*} 
  first formula left  &first formula middle  &first formula right \\
  ...
\end{eqnarray*}

Display a sequence of equations or inequalities. The left and right sides are typeset in display mode, while the middle is typeset in text mode.

It is similar to a three-column array environment, with items within a row separated by an ampersand (&), and with rows separated by double backslash  \\). The starred form of line break (\\*) can also be used to separate equations, and will disallow a page break there (see \\).

The unstarred form eqnarray places an equation number on every line (using the equation counter), unless that line contains a \nonumber command. The starred form eqnarray* omits equation numbering, while otherwise being the same.

The command \lefteqn is used for splitting long formulas across lines. It typesets its argument in display style flush left in a box of zero width.

This example shows three lines. The first two lines make an inequality, while the third line has not entry on the left side.

\begin{eqnarray*}
  \lefteqn{x_1+x_2+\cdots+x_n}     \\
    &\leq &y_1+y_2+\cdots+y_n      \\
    &=    &z+y_3+\cdots+y_n
\end{eqnarray*}

equation

Synopsis:

\begin{equation}
  mathematical text
\end{equation}

The same as a displaymath environment (see displaymath) except that LaTeX puts an equation number flush to the right margin. The equation number is generated using the equation counter.

You should have no blank lines between \begin{equation} and \begin{equation}, or LaTeX will tell you that there is a missing dollar sign.

The package amsmath package has extensive displayed equation facilities. New documents should include this package.


figure

Synopsis:

\begin{figure}[placement]
  figure body
  \caption[loftitle]{title}  % optional
  \label{label}              % optional
\end{figure}

or:

\begin{figure*}[placement]
  figure body
  \caption[loftitle]{title}  % optional
  \label{label}              % optional  
\end{figure*}

Figures are for material that is not part of the normal text. An example is material that you cannot have split between two pages, such as a graphic. Because of this, LaTeX does not typeset figures in sequence with normal text but instead “floats” them to a convenient place, such as the top of a following page (see Floats).

The figure body can consist of imported graphics (see Graphics), or text, LaTeX commands, etc. It is typeset in a parbox of width \textwidth.

The possible values of placement are h for ‘here’, t for ‘top’, b for ‘bottom’, and p for ‘on a separate page of floats’. For the effect of these options on the float placement algorithm, see Floats.

The starred form figure* is used when a document is in double-column mode (see \twocolumn). It produces a figure that spans both columns, at the top of the page. To add the possibility of placing at a page bottom see the discussion of placement b in Floats.

The label is optional; it is used for cross references (see Cross references). The optional \caption command specifies caption text for the figure. By default it is numbered. If loftitle is present, it is used in the list of figures instead of title (see Table of contents etc.).

This example makes a figure out of a graphic. LaTeX will place that graphic and its caption at the top of a page or, if it is pushed to the end of the document, on a page of floats.

\usepackage{graphicx}  % in preamble
  ...
\begin{figure}[t]
  \centering
  \includegraphics[width=0.5\textwidth]{CTANlion.png}
  \caption{The CTAN lion, by Duane Bibby}
\end{figure}

filecontents: Write an external file

Synopsis:

\begin{filecontents}{filename}
  text
\end{filecontents}

or

\begin{filecontents*}{filename}
  text
\end{filecontents*}

Create a file named filename and fill it with text. The unstarred version of the environment filecontents prefixes the content of the created file with a header; see the example below. The starred version filecontents* does not include the header.

This environment can be used anywhere in the preamble, although it often appears before the \documentclass command. It is typically used when a source file requires a nonstandard style or class file. The environment will write that file to the directory containing the source and thus make the source file self-contained. Another use is to include bib references in the file, again to make it self-contained.

The environment checks whether a file of that name already exists and if so, does not do anything. There is a filecontents package that redefines the filecontents environment so that instead of doing nothing in that case, it will overwrite the existing file.

For example, this document

\documentclass{article}
\begin{filecontents}{JH.sty}
\newcommand{\myname}{Jim Hef{}feron}
\end{filecontents}
\usepackage{JH}
\begin{document}
Article by \myname.
\end{document}

produces this file JH.sty.

%% LaTeX2e file `JH.sty'
%% generated by the `filecontents' environment
%% from source `test' on 2015/10/12.
%%
\newcommand{\myname}{Jim Hef{}feron}

flushleft

Synopsis:

\begin{flushleft}
  line1 \\
  line2 \\
  ...
\end{flushleft}

An environment that creates a paragraph whose lines are flush to the left-hand margin, and ragged right. If you have lines that are too long then LaTeX will linebreak them in a way that avoids hyphenation and stretching or shrinking spaces. To force a new line use a double backslash, \\. For the declaration form see \raggedright.

This creates a box of text that is at most 3 inches wide, with the text flush left and ragged right.

\noindent\begin{minipage}{3in}
\begin{flushleft}
  A long sentence that will be broken by \LaTeX{}
    at a convenient spot. \\
  And, a fresh line forced by the double backslash.
\end{flushleft}
\end{minipage}

\raggedright

Synopses:

{\raggedright  ... }

or

\begin{environment} \raggedright
  ...
\end{environment}

A declaration which causes lines to be flush to the left margin and ragged right. It can be used inside an environment such as quote or in a parbox. For the environment form see flushleft.

Unlike the flushleft environment, the \raggedright command does not start a new paragraph; it only changes how LaTeX formats paragraph units. To affect a paragraph unit’s format, the scope of the declaration must contain the blank line or \end command that ends the paragraph unit.

Here \raggedright in each second column keeps LaTeX from doing very awkward typesetting to fit the text into the narrow column. Note that \raggedright is inside the curly braces {...} to delimit its effect.

\begin{tabular}{rp{2in}}
  Team alpha  &{\raggedright This team does all the real work.} \\
  Team beta   &{\raggedright This team ensures that the water
                cooler is never empty.}                         \\
\end{tabular}

flushright

\begin{flushright}
  line1 \\
  line2 \\
  ...
\end{flushright}

An environment that creates a paragraph whose lines are flush to the right-hand margin and ragged left. If you have lines that are too long to fit the margins then LaTeX will linebreak them in a way that avoids hyphenation and stretching or shrinking spaces. To force a new line use a double backslash, \\. For the declaration form see \raggedleft.

For an example related to this environment, see flushleft.


\raggedleft

Synopses:

{\raggedleft  ... }

or

\begin{environment} \raggedleft
  ...
\end{environment}

A declaration which causes lines to be flush to the right margin and ragged left. It can be used inside an environment such as quote or in a parbox. For the environment form see flushright.

Unlike the flushright environment, the \raggedleft command does not start a new paragraph; it only changes how LaTeX formats paragraph units. To affect a paragraph unit’s format, the scope of the declaration must contain the blank line or \end command that ends the paragraph unit.

For an example related to this environment, see \raggedright.


itemize

Synopsis:

\begin{itemize}
  \item[optional label of first item] text of first item
  \item[optional label of second item] text of second item
  ...
\end{itemize}

Produce a list that is unordered, sometimes called a bullet list. The environment must have at least one \item; having none causes the LaTeX error ‘Something's wrong--perhaps a missing \item’.

This gives a two-item list.

\begin{itemize}
 \item Pencil and watercolor sketch by Cassandra
 \item Rice portrait 
\end{itemize}

As a top-level list each label would come out as a bullet, •. The format of the labeling depends on the nesting level; see below.

Start list items with the \item command (see \item). If you give \item an optional argument by following it with square brackets, as in \item[Optional label], then by default it will appear in bold and be flush right, so it could extend into the left margin. For labels that are flush left see the description environment. Following the \item is optional text, which may contain multiple paragraphs.

Itemized lists can be nested within one another, up to four levels deep. They can also be nested within other paragraph-making environments, such as enumerate (see enumerate). The itemize environment uses the commands \labelitemi through \labelitemiv to produce the default label (this also uses the convention of lowercase roman numerals at the end of the command names that signify the nesting level). These are the default marks at each level.

  1. • (bullet, from \textbullet)
  2. -- (bold en-dash, from \normalfont\bfseries\textendash)
  3. * (asterisk, from \textasteriskcentered)
  4. . (centered dot, rendered here as a period, from \textperiodcentered)

Change the labels with \renewcommand. For instance, this makes the first level use diamonds.

\renewcommand{\labelitemi}{$\diamond$}

The distance between the left margin of the enclosing environment and the left margin of the itemize list is determined by the parameters \leftmargini through \leftmarginvi. (Note the convention of using lowercase roman numerals a the end of the command name to denote the nesting level.) The defaults are: 2.5em in level 1 (2em in two-column mode), 2.2em in level 2, 1.87em in level 3, and 1.7em in level 4, with smaller values for more deeply nested levels.

For other major LaTeX labeled list environments, see description and enumerate. For information about list layout parameters, including the default values, and for information about customizing list layout, see list. The package enumitem is useful for customizing lists.

This example greatly reduces the margin space for outermost itemized lists.

\setlength{\leftmargini}{1.25em} % default 2.5em

Especially for lists with short items, it may be desirable to elide space between items. Here is an example defining an itemize* environment with no extra spacing between items, or between paragraphs within a single item (\parskip is not list-specific, see \parindent & \parskip):

\newenvironment{itemize*}%
  {\begin{itemize}%
    \setlength{\itemsep}{0pt}%
    \setlength{\parsep}{0pt}}%
    \setlength{\parskip}{0pt}}%
  {\end{itemize}}

letter environment: writing letters

This environment is used for creating letters. See Letters.


list

Synopsis:

\begin{list}{labeling}{spacing}
  \item[optional label of first item] text of first item
  \item[optional label of second item] text of second item
  ...
\end{list}

An environment for constructing lists.

Note that this environment does not typically appear in the document body. Most lists created by LaTeX authors are the ones that come standard: the description, enumerate, and itemize environments (see description, enumerate, and itemize).

Instead, the list environment is most often used in macros. For example, many standard LaTeX environments that do not immediately appear to be lists are in fact constructed using list, including quotation, quote, and center (see quotation & quote, see center).

This uses the list environment to define a new custom environment.

\newcounter{namedlistcounter}  % number the items
\newenvironment{named}
  {\begin{list}
     {Item~\Roman{namedlistcounter}.} % labeling 
     {\usecounter{namedlistcounter}   % set counter
      \setlength{\leftmargin}{3.5em}} % set spacing 
  }
  {\end{list}}

\begin{named}
  \item Shows as ``Item~I.''
  \item[Special label.] Shows as ``Special label.''
  \item Shows as ``Item~II.''
\end{named}

The mandatory first argument labeling specifies the default labeling of list items. It can contain text and LaTeX commands, as above where it contains both ‘Item’ and ‘\Roman{...}’. LaTeX forms the label by putting the labeling argument in a box of width \labelwidth. If the label is wider than that, the additional material extends to the right. When making an instance of a list you can override the default labeling by giving \item an optional argument by including square braces and the text, as in the above \item[Special label.]; see \item.

The mandatory second argument spacing has a list of commands. This list can be empty. A command that can go in here is \usecounter{countername} (see \usecounter). Use this to tell LaTeX to number the items using the given counter. The counter will be reset to zero each time LaTeX enters the environment, and the counter is incremented by one each time LaTeX encounters an \item that does not have an optional argument.

Another command that can go in spacing is \makelabel, which constructs the label box. By default it puts the contents flush right. Its only argument is the label, which it typesets in LR mode (see Modes). One example of changing its definition is that to the above named example, before the definition of the environment add \newcommand{\namedmakelabel}[1]{\textsc{#1}}, and between the \setlength command and the parenthesis that closes the spacing argument also add \let\makelabel\namedmakelabel. Then the items will be typeset in small caps. Similarly, changing the second code line to \let\makelabel\fbox puts the labels inside a framed box. Another example of the \makelabel command is below, in the definition of the redlabel environment.

Also often in spacing are commands to redefine the spacing for the list. Below are the spacing parameters with their default values. (Default values for derived environments such as itemize can be different than the values shown here.) See also the figure that follows the list. Each is a length (see Lengths). The vertical spaces are normally rubber lengths, with plus and minus components, to give TeX flexibility in setting the page. Change each with a command such as \setlength{itemsep}{2pt plus1pt minus1pt}. For some effects these lengths should be zero or negative.

\itemindent

Extra horizontal space indentation, beyond leftmargin, of the first line each item. Its default value is 0pt.

\itemsep

Vertical space between items, beyond the \parsep. The defaults for the first three levels in LaTeX’s ‘article’, ‘book’, and ‘report’ classes at 10 point size are: 4pt plus2pt minus1pt, \parsep (that is, 2pt plus1pt minus1pt), and \topsep (that is, 2pt plus1pt minus1pt). The defaults at 11 point are: 4.5pt plus2pt minus1pt, \parsep (that is, 2pt plus1pt minus1pt), and topsep (that is, 2pt plus1pt minus1pt). The defaults at 12 point are: 5pt plus2.5pt minus1pt, \parsep (that is, 2.5pt plus1pt minus1pt), and \topsep (that is, 2.5pt plus1pt minus1pt).

\labelsep

Horizontal space between the label and text of an item. The default for LaTeX’s ‘article’, ‘book’, and ‘report’ classes is 0.5em.

\labelwidth

Horizontal width. The box containing the label is nominally this wide. If \makelabel returns text that is wider than this then the first line of the item will be indented to make room for this extra material. If \makelabel returns text of width less than or equal to \labelwidth then LaTeX’s default is that the label is typeset flush right in a box of this width.

The left edge of the label box is \leftmargin+\itemindent-\labelsep-\labelwidth from the left margin of the enclosing environment.

The default for LaTeX’s ‘article’, ‘book’, and ‘report’ classes at the top level is \leftmargini-\labelsep, (which is 2em in one column mode and 1.5em in two column mode). At the second level it is \leftmarginii-\labelsep, and at the third level it is \leftmarginiii-\labelsep. These definitions make the label’s left edge coincide with the left margin of the enclosing environment.

\leftmargin

Horizontal space between the left margin of the enclosing environment (or the left margin of the page if this is a top-level list), and the left margin of this list. It must be non-negative.

In the standard LaTeX document classes, a top-level list has this set to the value of \leftmargini, while a list that is nested inside a top-level list has this margin set to \leftmarginii. More deeply nested lists get the values of \leftmarginiii through \leftmarginvi. (Nesting greater than level five generates the error message ‘Too deeply nested’.)

The defaults for the first three levels in LaTeX’s ‘article’, ‘book’, and ‘report’ classes are: \leftmargini is 2.5em (in two column mode, 2em), \leftmarginii is 2.2em, and \leftmarginiii is 1.87em.

\listparindent

Horizontal space of additional line indentation, beyond \leftmargin, for second and subsequent paragraphs within a list item. A negative value makes this an “outdent”. Its default value is 0pt.

\parsep

Vertical space between paragraphs within an item. In the ‘book’ and ‘article’ classes The defaults for the first three levels in LaTeX’s ‘article’, ‘book’, and ‘report’ classes at 10 point size are: 4pt plus2pt minus1pt, 2pt plus1pt minus1pt, and 0pt. The defaults at 11 point size are: 4.5pt plus2pt minus1pt, 2pt plus1pt minus1pt, and 0pt. The defaults at 12 point size are: 5pt plus2.5pt minus1pt, 2.5pt plus1pt minus1pt, and 0pt.

\partopsep

Vertical space added, beyond \topsep+\parskip, to the top and bottom of the entire environment if the list instance is preceded by a blank line. (A blank line in the LaTeX source before the list changes spacing at both the top and bottom of the list; whether the line following the list is blank does not matter.)

The defaults for the first three levels in LaTeX’s ‘article’, ‘book’, and ‘report’ classes at 10 point size are: 2pt plus1 minus1pt, 2pt plus1pt minus1pt, and 1pt plus0pt minus1pt. The defaults at 11 point are: 3pt plus1pt minus1pt, 3pt plus1pt minus1pt, and 1pt plus0pt minus1pt). The defaults at 12 point are: 3pt plus2pt minus3pt, 3pt plus2pt minus2pt, and 1pt plus0pt minus1pt.

\rightmargin

Horizontal space between the right margin of the list and the right margin of the enclosing environment. Its default value is 0pt. It must be non-negative.

\topsep

Vertical space added to both the top and bottom of the list, in addition to \parskip (see \parindent & \parskip). The defaults for the first three levels in LaTeX’s ‘article’, ‘book’, and ‘report’ classes at 10 point size are: 8pt plus2pt minus4pt, 4pt plus2pt minus1pt, and 2pt plus1pt minus1pt. The defaults at 11 point are: 9pt plus3pt minus5pt, 4.5pt plus2pt minus1pt, and 2pt plus1pt minus1pt. The defaults at 12 point are: 10pt plus4pt minus6pt, 5pt plus2.5pt minus1pt, and 2.5pt plus1pt minus1pt.

This shows the horizontal and vertical distances.

latex2e-figures/list

The lengths shown are listed below. The key relationship is that the right edge of the bracket for h1 equals the right edge of the bracket for h4, so that the left edge of the label box is at h3+h4-(h0+h1).

v0

\topsep + \parskip if the list environment does not start a new paragraph, and \topsep+\parskip+\partopsep if it does

v1

\parsep

v2

\itemsep+\parsep

v3

Same as v0. (This space is affected by whether a blank line appears in the source above the environment; whether a blank line appears in the source below the environment does not matter.)

h0

\labelwidth

h1

\labelsep

h2

\listparindent

h3

\leftmargin

h4

\itemindent

h5

\rightmargin

The list’s left and right margins, shown above as h3 and h5, are with respect to the ones provided by the surrounding environment, or with respect to the page margins for a top-level list. The line width used for typesetting the list items is \linewidth (see Page layout parameters). For instance, set the list’s left margin to be one quarter of the distance between the left and right margins of the enclosing environment with \setlength{\leftmargin}{0.25\linewidth}.

Page breaking in a list structure is controlled by the three parameters below. For each, the LaTeX default is -\@lowpenalty, that is, -51. Because it is negative, it somewhat encourages a page break at each spot. Change it with, e.g., \@beginparpenalty=9999; a value of 10000 prohibits a page break.

\@beginparpenalty

The page breaking penalty for breaking before the list (default -51).

\@itempenalty

The page breaking penalty for breaking before a list item (default -51).

\@endparpenalty

The page breaking penalty for breaking after a list (default -51).

The package enumitem is useful for customizing lists.

This example has the labels in red. They are numbered, and the left edge of the label lines up with the left edge of the item text. See \usecounter.

\usepackage{color}
\newcounter{cnt}  
\newcommand{\makeredlabel}[1]{\textcolor{red}{#1.}}
\newenvironment{redlabel}
  {\begin{list}
    {\arabic{cnt}}
    {\usecounter{cnt}
     \setlength{\labelwidth}{0em}
     \setlength{\labelsep}{0.5em}
     \setlength{\leftmargin}{1.5em}
     \setlength{\itemindent}{0.5em} % equals \labelwidth+\labelsep
     \let\makelabel=\makeredlabel
    }
  }
{\end{list} }

\item: An entry in a list

Synopsis:

\item text of item

or

\item[optional-label] text of item

An entry in a list. The entries are prefixed by a label, whose default depends on the list type.

Because the optional label is surrounded by square brackets ‘[...]’, if you have an item whose text starts with ‘[’, you have to hide the bracket inside curly braces, as in: \item {[} is an open square bracket; otherwise, LaTeX will think it marks the start of an optional label.

Similarly, if the item does have the optional label and you need a close square bracket inside that label, you must hide it in the same way: \item[Close square bracket, {]}]. See LaTeX command syntax.

In this example the enumerate list has two items that use the default label and one that uses the optional label.

\begin{enumerate}
  \item Moe
  \item[sometimes] Shemp
  \item Larry
\end{enumerate}

The first item is labelled ‘1.’, the second item is labelled ‘sometimes’, and the third item is labelled ‘2.’. Because of the optional label in the second item, the third item is not labelled ‘3.’.


trivlist: A restricted form of list

Synopsis:

\begin{trivlist}
  ...
\end{trivlist}

A restricted version of the list environment, in which margins are not indented and an \item without an optional argument produces no text. It is most often used in macros, to define an environment where the \item command as part of the environment’s definition. For instance, the center environment is defined essentially like this:

\newenvironment{center}
  {\begin{trivlist}\centering\item\relax}
  {\end{trivlist}}

Using trivlist in this way allows the macro to inherit some common code: combining vertical space of two adjacent environments; detecting whether the text following the environment should be considered a new paragraph or a continuation of the previous one; adjusting the left and right margins for possible nested list environments.

Specifically, trivlist uses the current values of the list parameters (see list), except that \parsep is set to the value of \parskip, and \leftmargin, \labelwidth, and \itemindent are set to zero.

This example outputs the items as two paragraphs, except that (by default) they have no paragraph indent and are vertically separated.

\begin{trivlist}
\item The \textit{Surprise} is not old; no one would call her old.
\item She has a bluff bow, lovely lines.
\end{trivlist}

math

Synopsis:

\begin{math}
math
\end{math}

The math environment inserts given math material within the running text. \(...\) and $...$ are synonyms. See Math formulas.


minipage

Synopses:

\begin{minipage}{width}
  contents
\end{minipage}

or

\begin{minipage}[position][height][inner-pos]{width}
  contents
\end{minipage}

Put contents into a box that is width wide. This is like a small version of a page; it can contain its own footnotes, itemized lists, etc. (There are some restrictions, including that it cannot have floats.) This box will not be broken across pages. So minipage is similar to \parbox (see \parbox) but here you can have paragraphs.

This example will be 3 inches wide, and has two paragraphs.

\begin{minipage}{3in}
  Stephen Kleene was a founder of the Theory of Computation.

  He was a student of Church, wrote three influential texts,
  was President of the Association for Symbolic Logic,
  and won the National Medal of Science.
\end{minipage}

See below for a discussion of the paragraph indent inside a minipage.

The required argument width is a rigid length (see Lengths). It gives the width of the box into which contents are typeset.

There are three optional arguments, position, height, and inner-pos. You need not include all three. For example, get the default position and set the height with \begin{minipage}[c][2.54cm] contents \end{minipage}. (Get the natural height with an empty argument, [].)

The optional argument position governs how the minipage vertically aligns with the surrounding material.

c

(synonym m) Default. Positions the minipage so its vertical center lines up with the center of the adjacent text line (what Plain TeX calls \vcenter).

t

Match the top line in the minipage with the baseline of the surrounding text (Plain TeX’s \vtop.

b

Match the bottom line in the minipage with the baseline of the surrounding text (Plain TeX’s \vbox.

To see the effects of these, contrast running this

---\begin{minipage}[c]{0.25in}
  first\\ second\\ third
\end{minipage}

with the results of changing c to b or t.

The optional argument height is a rigid length (see Lengths). It sets the height of the minipage. You can enter any value larger than, or equal to, or smaller than the minipage’s natural height and LaTeX will not give an error or warning. You can also set it to a height of zero or a negative value.

The final optional argument inner-pos controls the placement of content inside the box. These are the possible values are (the default is the value of position).

t

Place content at the top of the box.

c

Place it in the vertical center.

b

Place it at the box bottom.

s

Stretch contents out vertically; it must contain vertically stretchable space.

The inner-pos argument makes sense when the height option is set to a value larger than the minipage’s natural height. To see the effect of the options, run this example with the various choices in place of b.

Text before
\begin{center}
  ---\begin{minipage}[c][3in][b]{0.25\textwidth}
       first\\ second\\ third
  \end{minipage}              
\end{center}
Text after  

By default paragraphs are not indented in a minipage. Change that with a command such as \setlength{\parindent}{1pc} at the start of contents.

Footnotes in a minipage environment are handled in a way that is particularly useful for putting footnotes in figures or tables. A \footnote or \footnotetext command puts the footnote at the bottom of the minipage instead of at the bottom of the page, and it uses the \mpfootnote counter instead of the ordinary footnote counter (see Counters).

This puts the footnote at the bottom of the table, not the bottom of the page.

\begin{center}           % center the minipage on the line
\begin{minipage}{2.5in}
  \begin{center}         % center the table inside the minipage
    \begin{tabular}{ll}
      \textsc{Monarch}  &\textsc{Reign}             \\ \hline
      Elizabeth II      &63 years\footnote{to date} \\
      Victoria          &63 years                   \\
      George III        &59 years
    \end{tabular}
  \end{center}  
\end{minipage}
\end{center}

If you nest minipages then there is an oddness when using footnotes. Footnotes appear at the bottom of the text ended by the next \end{minipage} which may not be their logical place.

This puts a table containing data side by side with a map graphic. They are vertically centered.

\newcommand*{\vcenteredhbox}[1]{\begin{tabular}{@{}c@{}}#1\end{tabular}}
  ...
\begin{center}
  \vcenteredhbox{\includegraphics[width=0.3\textwidth]{nyc.png}}
  \hspace{0.1\textwidth}
  \begin{minipage}{0.5\textwidth}
    \begin{tabular}{r|l}
      \multicolumn{1}{r}{Borough} &Pop (million)  \\ \hline
      The Bronx      &$1.5$  \\
      Brooklyn       &$2.6$  \\
      Manhattan      &$1.6$  \\
      Queens         &$2.3$  \\
      Staten Island  &$0.5$  
    \end{tabular}
  \end{minipage}              
\end{center}

picture

Synopses:

\begin{picture}(width,height)
   picture commands 
\end{picture}

or

\begin{picture}(width,height)(xoffset,yoffset)
  picture commands
\end{picture}

An environment to create simple pictures containing lines, arrows, boxes, circles, and text. Note that while this environment is not obsolete, new documents typically use much more powerful graphics creation systems, such as TikZ, PSTricks, MetaPost, or Asymptote. These are not covered in this document; see CTAN.

This shows the parallelogram law for adding vectors.

\setlength{\unitlength}{1cm}
\begin{picture}(6,6)      % picture box will be 6cm wide by 6cm tall
  \put(0,0){\vector(2,1){4}}  % for every 2 over this vector goes 1 up
    \put(2,1){\makebox(0,0)[l]{\ first leg}}
  \put(4,2){\vector(1,2){2}}
    \put(5,4){\makebox(0,0)[l]{\ second leg}}  
  \put(0,0){\line(1,1){6}}
    \put(3,3){\makebox(0,0)[r]{sum\ }}  
\end{picture}

You can also use this environment to place arbitrary material at an exact location.

\usepackage{color,graphicx}  % in preamble
  ...
\begin{center}
\setlength{\unitlength}{\textwidth} 
\begin{picture}(1,1)      % leave space, \textwidth wide and tall
  \put(0,0){\includegraphics[width=\textwidth]{desertedisland.jpg}}
  \put(0.25,0.35){\textcolor{red}{X Treasure here}}
\end{picture}
\end{center}

The red X will be precisely a quarter of the \linewidth from the left margin, and 0.35\linewidth up from the bottom. Another example of this usage is to put similar code in the page header to get repeat material on each of a document’s pages.

The picture environment has one required argument, a pair of numbers (width,height). Multiply these by the value \unitlength to get the nominal size of the output, the space that LaTeX reserves on the output page. This nominal size need not be how large the picture really is; LaTeX will draw things from the picture outside the picture’s box.

This environment also has an optional argument (xoffset,yoffset). It is used to shift the origin. Unlike most optional arguments, this one is not contained in square brackets. As with the required argument, it consists of two real numbers. Multiply these by \unitlength to get the point at the lower-left corner of the picture.

For example, if \unitlength has been set to 1mm, the command

\begin{picture}(100,200)(10,20)

produces a box of width 100 millimeters and height 200 millimeters. The picture’s origin is the point (10mm,20mm) and so the lower-left corner is there, and the upper-right corner is at (110mm,220mm). When you first draw a picture you typically omit the optional argument, leaving the origin at the lower-left corner. If you then want to modify your picture by shifting everything, you can just add the appropriate optional argument.

Each picture command tells LaTeX where to put something by naming its position. A position is a pair such as (2.4,-5) giving the x- and y-coordinates. A coordinate is a not a length, it is a real number (it may have a decimal point or a minus sign). It specifies a length in multiples of the unit length \unitlength, so if \unitlength has been set to 1cm, then the coordinate 2.54 specifies a length of 2.54 centimeters.

LaTeX’s default for \unitlength is 1pt. it is a rigid length (see Lengths). Change it with the \setlength command (see \setlength). Make this change only outside of a picture environment.

Coordinates are given with respect to an origin, which is normally at the lower-left corner of the picture. Note that when a position appears as an argument, as with \put(1,2){...}, it is not enclosed in braces since the parentheses serve to delimit the argument. Also, unlike in some computer graphics systems, larger y-coordinates are further up the page.

There are four ways to put things in a picture: \put, \multiput, \qbezier, and \graphpaper. The most often used is \put. This

\put(11.3,-0.3){...}

places the object with its reference point at coordinates (11.3,-0.3). The reference points for various objects will be described below. The \put command creates an LR box (see Modes). Anything that can go in an \mbox (see \mbox & \makebox) can go in the text argument of the \put command. The reference point will be the lower left corner of the box. In this picture

\setlength{\unitlength}{1cm}
...\begin{picture}(1,1)
  \put(0,0){\line(1,0){1}}
  \put(0,0){\line(1,1){1}}
\end{picture}

the three dots are just slightly left of the point of the angle formed by the two lines. (Also, \line(1,1){1} does not call for a line of length one; rather the line has a change in the x coordinate of 1.)

The \multiput, qbezier, and graphpaper commands are described below.

This draws a rectangle with a wavy top, using \qbezier for that curve.

\begin{picture}(3,1.5)
  \put(0,0){\vector(1,0){8}}  % x axis
  \put(0,0){\vector(0,1){4}}  % y axis
  \put(2,0){\line(0,1){3}}       % left side rectangle
  \put(4,0){\line(0,1){3.5}}     % right side
  \qbezier(2,3)(2.5,2.9)(3,3.25)
    \qbezier(3,3.25)(3.5,3.6)(4,3.5)
  \thicklines                 % below here, lines are twice as thick
  \put(2,3){\line(4,1){2}}
  \put(4.5,2.5){\framebox{Trapezoidal Rule}}
\end{picture}

\put

Synopsis:

\put(xcoord,ycoord){content}

Place content at the coordinate (xcoord,ycoord). See the discussion of coordinates and \unitlength in picture. The content is processed in LR mode (see Modes) so it cannot contain line breaks.

This includes the text into the picture.

\put(4.5,2.5){Apply the \textit{unpoke} move}

The reference point, the location (4.5,2.5), is the lower left of the text, at the bottom left of the ‘A’.


\multiput

Synopsis:

\multiput(x,y)(delta_x,delta_y){num-copies}{obj}

Copy obj a total of num-copies times, with an increment of delta_x,delta_y. The obj first appears at position (x,y), then at (x+\delta_x,y+\delta_y), and so on.

This draws a simple grid with every fifth line in bold (see also \graphpaper).

\begin{picture}(10,10)
  \linethickness{0.05mm}
  \multiput(0,0)(1,0){10}{\line(0,1){10}} 
  \multiput(0,0)(0,1){10}{\line(1,0){10}}
  \linethickness{0.5mm}
  \multiput(0,0)(5,0){3}{\line(0,1){10}}
  \multiput(0,0)(0,5){3}{\line(1,0){10}}
\end{picture}

\qbezier

Synopsis:

\qbezier(x1,y1)(x2,y2)(x3,y3)
\qbezier[num](x1,y1)(x2,y2)(x3,y3)

Draw a quadratic Bezier curve whose control points are given by the three required arguments (x1,y1), (x2,y2), and (x3,y3). That is, the curve runs from (x1,y1) to (x3,y3), is quadratic, and is such that the tangent line at (x1,y1) passes through (x2,y2), as does the tangent line at (x3,y3).

This draws a curve from the coordinate (1,1) to (1,0).

\qbezier(1,1)(1.25,0.75)(1,0)  

The curve’s tangent line at (1,1) contains (1.25,0.75), as does the curve’s tangent line at (1,0).

The optional argument num gives the number of calculated intermediate points. The default is to draw a smooth curve whose maximum number of points is \qbeziermax (change this value with \renewcommand).


\graphpaper

Synopsis:

\graphpaper(x_init,y_init)(x_dimen,y_dimen)
\graphpaper[spacing](x_init,y_init)(x_dimen,y_dimen)

Draw a coordinate grid. Requires the graphpap package. The grid’s origin is (x_init,y_init). Grid lines come every spacing units (the default is 10). The grid extends x_dimen units to the right and y_dimen units up. All arguments must be positive integers.

This make a grid with seven vertical lines and eleven horizontal lines.

\usepackage{graphpap}    % in preamble
  ...
\begin{picture}(6,20)    % in document body
  \graphpaper[2](0,0)(12,20)
\end{picture}

The lines are numbered every ten units.


\line

Synopsis:

\line(x_run,y_rise){travel}

Draw a line. It slopes such that it vertically rises y_rise for every horizontal x_run. The travel is the total horizontal change — it is not the length of the vector, it is the change in x. In the special case of vertical lines, where (x_run,y_rise)=(0,1), the travel gives the change in y.

This draws a line starting at coordinates (1,3).

\put(1,3){\line(2,5){4}}

For every over 2, this line will go up 5. Because travel specifies that this goes over 4, it must go up 10. Thus its endpoint is (1,3)+(4,10)=(5,13). In particular, note that travel=4 is not the length of the line, it is the change in x.

The arguments x_run and y_rise are integers that can be positive, negative, or zero. (If both are 0 then LaTeX treats the second as 1.) With \put(x_init,y_init){\line(x_run,y_rise){travel}}, if x_run is negative then the line’s ending point has a first coordinate that is less than x_init. If y_rise is negative then the line’s ending point has a second coordinate that is less than y_init.

If travel is negative then you get LaTeX Error: Bad \line or \vector argument.

Standard LaTeX can only draw lines with a limited range of slopes because these lines are made by putting together line segments from pre-made fonts. The two numbers x_run and y_rise must have integer values from -6 through 6. Also, they must be relatively prime, so that (x_run,y_rise) can be (2,1) but not (4,2) (if you choose the latter then instead of lines you get sequences of arrowheads; the solution is to switch to the former). To get lines of arbitrary slope and plenty of other shapes in a system like picture, see the package pict2e on CTAN. Another solution is to use a full-featured graphics system such as TikZ, or PSTricks, or MetaPost, or Asymptote


\linethickness

Synopsis:

\linethickness{dim}

Declares the thickness of subsequent horizontal and vertical lines in a picture to be dim, which must be a positive length (see Lengths). It differs from \thinlines and \thicklines in that it does not affect the thickness of slanted lines, circles, or ovals.


\thinlines

Declaration to set the thickness of subsequent lines, circles, and ovals in a picture environment to be 0.4pt. This is the default thickness, so this command is unnecessary unless the thickness has been changed with either \linethickness or \thicklines.


\thicklines

Declaration to set the thickness of subsequent lines, circles, and ovals in a picture environment to be 0.8pt. See also \linethickness and \thinlines. This command is illustrated in the Trapezoidal Rule example of picture.


\circle

Synopsis:

\circle{diameter}
\circle*{diameter}

Produces a circle with a diameter as close as possible to the specified one. The * form produces a filled-in circle.

This draws a circle of radius 6, centered at (5,7).

\put(5,7){\circle{6}}

The available radii for circle are, in points, the even numbers from 2 to 20, inclusive. For circle* they are all the integers from 1 to 15.


\oval

Synopsis:

\oval(width,height)
\oval(width,height)[portion]

Produce a rectangle with rounded corners. The optional argument portion allows you to produce only half or a quarter of the oval. For half an oval take portion to be one of these.

t

top half

b

bottom half

r

right half

l

left half

Produce only one quarter of the oval by setting portion to tr, br, bl, or tl.

This draws the top half of an oval that is 3 wide and 7 tall.

\put(5,7){\oval(3,7)[t]}

The (5,7) is the center of the entire oval, not just the center of the top half.

These shapes are not ellipses. They are rectangles whose corners are made with quarter circles. These circles have a maximum radius of 20pt (see \circle for the sizes). Thus large ovals are just boxes with a small amount of corner rounding.


\shortstack

Synopsis:

\shortstack[position]{line 1 \\ ... }

Produce a vertical stack of objects.

This labels the y axis.

\put(0,0){\vector(1,0){4}}   % x axis
\put(0,0){\vector(0,1){2}}   % y
\put(-0.25,2){\makebox[0][r]{\shortstack[r]{$y$\\ axis}}}

For a short stack, the reference point is the lower left of the stack. In the above example the \mbox & \makebox puts the stack flush right in a zero width box so in total the short stack sits slightly to the left of the y axis.

The valid positions are:

r

Make objects flush right

l

Make objects flush left

c

Center objects (default)

Separate objects into lines with \\. These stacks are short in that, unlike in a tabular or array environment, here the rows are not spaced out to be of even heights. Thus, in \shortstack{X\\o\\o\\X} the first and last rows are taller than the middle two. You can adjust row heights either by putting in the usual interline spacing with \shortstack{X\\ \strut o\\o\\X}, or by hand, via an explicit zero-width box \shortstack{X \\ \rule{0pt}{12pt} o\\o\\X} or by using \\’s optional argument \shortstack{X\\[2pt] o\\o\\X}.

The \shortstack command is also available outside the picture environment.


\vector

Synopsis:

\vector(x_run,y_rise){travel}

Draw a line ending in an arrow. The slope of that line is: it vertically rises y_rise for every horizontal x_run. The travel is the total horizontal change — it is not the length of the vector, it is the change in x. In the special case of vertical vectors, if (x_run,y_rise)=(0,1), then travel gives the change in y.

For an example see picture.

For elaboration on x_run and y_rise see \line. As there, the values of x_run and y_rise are limited. For \vector you must chooses integers between -4 and 4, inclusive. Also, the two you choose must be relatively prime. Thus, \vector(2,1){4} is acceptable but \vector(4,2){4} is not (if you use the latter then you get a sequence of arrowheads).


\makebox (picture)

Synopsis:

\makebox(rec-width,rec-height){text}
\makebox(rec-width,rec-height)[position]{text}

Make a box to hold text. This command fits with the picture environment, although you can use it outside of there, because rec-width and rec-height are numbers specifying distances in terms of the \unitlength (see picture). This command is similar to the normal \makebox command (see \mbox & \makebox) except here that you must specify the width and height. This command is fragile (see \protect).

This makes a box of length 3.5 times \unitlength and height 4 times \unitlength.

\put(1,2){\makebox(3.5,4){...}}

The optional argument position specifies where in the box the text appears. The default is to center it, both horizontally and vertically. To place it somewhere else, use a string with one or two of these letters.

t

Puts text the top of the box.

b

Put text at the bottom.

l

Put text on the left.

r

Put text on the right.


\framebox (picture)

Synopsis:

\framebox(rec-width,rec-height){text}
\framebox(rec-width,rec-height)[position]{text}

This is the same as \makebox (picture) except that it puts a frame around the outside of the box that it creates. The reference point is the bottom left corner of the frame. This command fits with the picture environment, although you can use it outside of there, because lengths are numbers specifying the distance in terms of the \unitlength (see picture). This command is fragile (see \protect).

This example creates a frame 2.5 inches by 3 inches and puts the text in the center.

\setlength{\unitlength}{1in}
\framebox(2.5,3){test text}

The required arguments are that the rectangle has overall width rect-width units and height rect-height units.

The optional argument position specifies the position of text; see \makebox (picture) for the values that it can take.

The rule has thickness \fboxrule and there is a blank space \fboxsep between the frame and the contents of the box.

For this command, you must specify the width and height. If you want to just put a frame around some contents whose dimension is determined in some other way then either use \fbox (see \fbox & \framebox) or \frame (see \frame).


\frame

Synopsis:

\frame{contents}

Puts a rectangular frame around contents. The reference point is the bottom left corner of the frame. In contrast to \framebox (see \framebox (picture)), this command puts no extra space is put between the frame and the object. It is fragile (see \protect).


\dashbox

Synopsis:

\dashbox{dash-len}(rect-width,rect-height){text}
\dashbox{dash-len}(rect-width,rect-height)[position]{text}

Create a dashed rectangle around text. This command fits with the picture environment, although you can use it outside of there, because lengths are numbers specifying the distance in terms of the \unitlength (see picture).

The required arguments are: dashes are dash-len units long, with the same length gap, and the rectangle has overall width rect-width units and height rect-height units.

The optional argument position specifies the position of text; see \makebox (picture) for the values that it can take.

This shows that you can use non-integer value for dash-len.

\put(0,0){\dashbox{0.1}(5,0.5){My hovercraft is full of eels.}}

Each dash will be 0.1\unitlength long, the box’s width is 5\unitlength and its height is 0.5\unitlength.

As in that example, a dashed box looks best when rect-width and rect-height are multiples of the dash-len.


quotation & quote

Synopsis:

\begin{quotation}
  text
\end{quotation}

or

\begin{quote}
  text
\end{quote}

Include a quotation. Both environments indent margins on both sides by \leftmargin and the text is right-justified.

They differ in how they treat paragraphs. In the quotation environment, paragraphs are indented by 1.5em and the space between paragraphs is small, 0pt plus 1pt. In the quote environment, paragraphs are not indented and there is vertical space between paragraphs (it is the rubber length \parsep).

\begin{quotation} \small\it
  Four score and seven years ago
  ... shall not perish from the earth.
  \hspace{1em plus 1fill}---Abraham Lincoln
\end{quotation}

tabbing

Synopsis:

\begin{tabbing}
row1col1 \= row1col2 ...  \\
row2col1 \> row2col2 ...  \\
...
\end{tabbing}

Align text in columns, by setting tab stops and tabbing to them much as was done on a typewriter. This is less often used than the environments tabular (see tabular) or array (see array) because in those the width of each column need not be constant and need not be known in advance.

This example has a first line where the tab stops are set to explicit widths, ended by a \kill command (which is described below):

\begin{tabbing}
\hspace{0.75in}     \= \hspace{0.40in}  \= \hspace{0.40in}    \kill
Ship                \> Guns             \> Year    \\ 
\textit{Sophie}     \> 14               \> 1800    \\
\textit{Polychrest} \> 24               \> 1803    \\
\textit{Lively}     \> 38               \> 1804    \\
\textit{Surprise}   \> 28               \> 1805    \\
\end{tabbing}

Both the tabbing environment and the more widely-used tabular environment put text in columns. The most important distinction is that in tabular the width of columns is determined automatically by LaTeX, while in tabbing the user sets the tab stops. Another distinction is that tabular generates a box, but tabbing can be broken across pages. Finally, while tabular can be used in any mode, tabbing can be used only in paragraph mode and it starts a new paragraph.

A tabbing environment always starts a new paragraph, without indentation. Moreover, as shown in the example above, there is no need to use the starred form of the \hspace command at the beginning of a tabbed row. The right margin of the tabbing environment is the end of line, so that the width of the environment is \linewidth.

The tabbing environment contains a sequence of tabbed rows. The first tabbed row begins immediately after \begin{tabbing} and each row ends with \\ or \kill. The last row may omit the \\ and end with just \end{tabbing}.

At any point the tabbing environment has a current tab stop pattern, a sequence of n > 0 tab stops, numbered 0, 1, etc. These create n corresponding columns. Tab stop 0 is always the left margin, defined by the enclosing environment. Tab stop number i is set if it is assigned a horizontal position on the page. Tab stop number i can only be set if all the stops 0, …, i-1 have already been set; normally later stops are to the right of earlier ones.

By default any text typeset in a tabbing environment is typeset ragged right and left-aligned on the current tab stop. Typesetting is done in LR mode (see Modes).

The following commands can be used inside a tabbing environment. They are all fragile (see \protect).

\\ (tabbing)

End a tabbed line and typeset it.

\= (tabbing)

Sets a tab stop at the current position.

\> (tabbing)

Advances to the next tab stop.

\<

Put following text to the left of the local margin (without changing the margin). Can only be used at the start of the line.

\+

Moves the left margin of the next and all the following commands one tab stop to the right, beginning tabbed line if necessary.

\-

Moves the left margin of the next and all the following commands one tab stop to the left, beginning tabbed line if necessary.

\' (tabbing)

Moves everything that you have typed so far in the current column, i.e., everything from the most recent \>, \<, \', \\, or \kill command, to the previous column and aligned to the right, flush against the current column’s tab stop.

\` (tabbing)

Allows you to put text flush right against any tab stop, including tab stop 0. However, it can’t move text to the right of the last column because there’s no tab stop there. The \` command moves all the text that follows it, up to the \\ or \end{tabbing} command that ends the line, to the right margin of the tabbing environment. There must be no \> or \' command between the \` and the \\ or \end{tabbing} command that ends the line.

\a (tabbing)

In a tabbing environment, the commands \=, \' and \` do not produce accents as usual (see Accents). Instead, use the commands \a=, \a' and \a`.

\kill

Sets tab stops without producing text. Works just like \\ except that it throws away the current line instead of producing output for it. Any \=, \+ or \- commands in that line remain in effect.

\poptabs

Restores the tab stop positions saved by the last \pushtabs.

\pushtabs

Saves all current tab stop positions. Useful for temporarily changing tab stop positions in the middle of a tabbing environment.

\tabbingsep

Distance of the text moved by \' to left of current tab stop.

This example typesets a Pascal function:

\begin{tabbing}
function \= fact(n : integer) : integer;\\
         \> begin \= \+ \\
               \> if \= n > 1 then \+ \\
                        fact := n * fact(n-1) \- \\
                  else \+ \\
                        fact := 1; \-\- \\
            end;\\
\end{tabbing}

The output looks like this.

function fact(n : integer) : integer;
         begin
               if n > 1 then
                  fact := n * fact(n-1);
               else
                  fact := 1;
         end;

This example is just for illustration of the environment. To actually typeset computer code in typewriter like this, a verbatim environment (see verbatim) would normally be best. For pretty-printed code, there are quite a few packages, including algorithm2e, fancyvrb, listings, and minted.


table

Synopsis:

\begin{table}[placement]
  table body
  \caption[loftitle]{title}  % optional
  \label{label}              % also optional
\end{table}

A class of floats (see Floats). They cannot be split across pages and so they are not typeset in sequence with the normal text but instead are floated to a convenient place, such as the top of a following page.

This example table environment contains a tabular

\begin{table}
  \centering\small
  \begin{tabular}{ll}
    \multicolumn{1}{c}{\textit{Author}}
      &\multicolumn{1}{c}{\textit{Piece}}  \\ \hline
    Bach            &Cello Suite Number 1  \\
    Beethoven       &Cello Sonata Number 3 \\
    Brahms          &Cello Sonata Number 1
  \end{tabular}
  \caption{Top cello pieces}
  \label{tab:cello}
\end{table}

but you can put many different kinds of content in a table, including text, LaTeX commands, etc.

For the possible values of placement and their effect on the float placement algorithm, see Floats.

The table body is typeset in a parbox of width \textwidth. It can contain text, commands, graphics, etc.

The label is optional; it is used for cross references (see Cross references). The \caption command is also optional. It specifies caption text for the table. By default it is numbered. If its optional lottitle is present then that text is used in the list of tables instead of title (see Table of contents etc.).

In this example the table and caption will float to the bottom of a page, unless it is pushed to a float page at the end.

\begin{table}[b]
  \centering
  \begin{tabular}{r|p{2in}} \hline
    One &The loneliest number \\
    Two &Can be as sad as one.
         It's the loneliest number since the number one.
  \end{tabular}
  \caption{Cardinal virtues}
  \label{tab:CardinalVirtues}
\end{table}

tabular

Synopsis:

\begin{tabular}[pos]{cols}
  column 1 entry  &column 2 entry  ...  &column n entry \\
  ...
\end{tabular}

or

\begin{tabular*}{width}[pos]{cols}
  column 1 entry  &column 2 entry  ...  &column n entry \\
  ...
\end{tabular*}

Produce a table, a box consisting of a sequence of horizontal rows. Each row consists of items that are aligned vertically in columns. This illustrates many of the features.

\begin{tabular}{l|l}
  \textit{Player name}  &\textit{Career home runs}  \\ 
  \hline
  Hank Aaron  &755 \\
  Babe Ruth   &714
\end{tabular}

The output will have two left-aligned columns with a vertical bar between them. This is specified in tabular’s argument {l|l}. Put the entries into different columns by separating them with an ampersand, &. The end of each row is marked with a double backslash, \\. Put a horizontal rule below a row, after a double backslash, with \hline. After the last row the \\ is optional, unless an \hline command follows to put a rule below the table.

The required and optional arguments to tabular consist of:

pos

Optional. Specifies the table’s vertical position. The default is to align the table so its vertical center matches the baseline of the surrounding text. There are two other possible alignments: t aligns the table so its top row matches the baseline of the surrounding text, and b aligns on the bottom row.

This only has an effect if there is other text. In the common case of a tabular alone in a center environment this option makes no difference.

cols

Required. Specifies the formatting of columns. It consists of a sequence of the following specifiers, corresponding to the types of column and intercolumn material.

l

A column of left-aligned items.

r

A column of right-aligned items.

c

A column of centered items.

|

A vertical line the full height and depth of the environment.

@{text or space}

Insert text or space at this location in every row. The text or space material is typeset in LR mode. This text is fragile (see \protect).

If between two columns there is no @-expression then LaTeX’s book, article, and report classes will put on either side of each column a space of length \tabcolsep, which by default is 6pt. That is, by default adjacent columns are separated by 12pt (so \tabcolsep is misleadingly named since it is only half of the separation between tabular columns). In addition, a space of 6pt also comes before the first column and after the final column, unless you put a @{...} or | there.

If you override the default and use an @-expression then LaTeX does not insert \tabcolsep so you must insert any desired space yourself, as in @{\hspace{1em}}.

An empty expression @{} will eliminate the space. In particular, sometimes you want to eliminate the space before the first column or after the last one, as in the example below where the tabular lines need to lie on the left margin.

\begin{flushleft}
  \begin{tabular}{@{}l}
    ...
  \end{tabular}
\end{flushleft}

The next example shows text, a decimal point between the columns, arranged so the numbers in the table are aligned on it.

\begin{tabular}{r@{$.$}l}
  $3$ &$14$  \\
  $9$ &$80665$
\end{tabular}

An \extracolsep{wd} command in an @-expression causes an extra space of width wd to appear to the left of all subsequent columns, until countermanded by another \extracolsep. Unlike ordinary intercolumn space, this extra space is not suppressed by an @-expression. An \extracolsep command can be used only in an @-expression in the cols argument. Below, LaTeX inserts the right amount of intercolumn space to make the entire table 4 inches wide.

\begin{tabular*}{4in}{l@{\extracolsep{\fill}}l}
  Seven times down, eight times up \ldots 
  &such is life!
\end{tabular*}

To insert commands that are automatically executed before a given column, load the array package and use the >{...} specifier.

p{wd}

Each item in the column is typeset in a parbox of width wd, as if it were the argument of a \parbox[t]{wd}{...} command.

A line break double backslash \\ may not appear in the item, except inside an environment like minipage, array, or tabular, or inside an explicit \parbox, or in the scope of a \centering, \raggedright, or \raggedleft declaration (when used in a p-column element these declarations must appear inside braces, as with {\centering .. \\ ..}). Otherwise LaTeX will misinterpret the double backslash as ending the row. Instead, to get a line break in there use \newline (see \newline).

*{num}{cols}

Equivalent to num copies of cols, where num is a positive integer and cols is a list of specifiers. Thus the specifier \begin{tabular}{|*{3}{l|r}|} is equivalent to the specifier \begin{tabular}{|l|rl|rl|r|}. Note that cols may contain another *-expression.

width

Required for tabular*, not allowed for tabular. Specifies the width of the tabular* environment. The space between columns should be rubber, as with @{\extracolsep{\fill}}, to allow the table to stretch or shrink to make the specified width, or else you are likely to get the Underfull \hbox (badness 10000) in alignment ... warning.

Parameters that control formatting:

\arrayrulewidth

A length that is the thickness of the rule created by |, \hline, and \vline in the tabular and array environments. The default is ‘.4pt’. Change it as in \setlength{\arrayrulewidth}{0.8pt}.

\arraystretch

A factor by which the spacing between rows in the tabular and array environments is multiplied. The default is ‘1’, for no scaling. Change it as \renewcommand{\arraystretch}{1.2}.

\doublerulesep

A length that is the distance between the vertical rules produced by the || specifier. The default is ‘2pt’.

\tabcolsep

A length that is half of the space between columns. The default is ‘6pt’. Change it with \setlength.

The following commands can be used inside the body of a tabular environment, the first two inside an entry and the second two between lines:


\multicolumn

Synopsis:

\multicolumn{numcols}{cols}{text}

Make an array or tabular entry that spans several columns. The first argument numcols gives the number of columns to span. The second argument cols specifies the formatting of the entry, with c for centered, l for flush left, or r for flush right. The third argument text gives the contents of that entry.

In this example, in the first row, the second and third columns are spanned by the single heading ‘Name’.

\begin{tabular}{lccl} 
  \textit{ID}       &\multicolumn{2}{c}{\textit{Name}} &\textit{Age} \\
  \hline  
  978-0-393-03701-2 &O'Brian &Patrick                  &55           \\
    ...
\end{tabular}

What counts as a column is: the column format specifier for the array or tabular environment is broken into parts, where each part (except the first) begins with l, c, r, or p. So from \begin{tabular}{|r|ccp{1.5in}|} the parts are |r|, c, c, and p{1.5in}|.

The cols argument overrides the array or tabular environment’s intercolumn area default adjoining this multicolumn entry. To affect that area, this argument can contain vertical bars | indicating the placement of vertical rules, and @{...} expressions. Thus if cols is ‘|c|’ then this multicolumn entry will be centered and a vertical rule will come in the intercolumn area before it and after it. This table details the exact behavior.

\begin{tabular}{|cc|c|c|}
  \multicolumn{1}{r}{w}       % entry one
    &\multicolumn{1}{|r|}{x}  % entry two 
    &\multicolumn{1}{|r}{y}   % entry three
    &z                        % entry four
\end{tabular}

Before the first entry the output will not have a vertical rule because the \multicolumn has the cols specifier ‘r’ with no initial vertical bar. Between entry one and entry two there will be a vertical rule; although the first cols does not have an ending vertical bar, the second cols does have a starting one. Between entry two and entry three there is a single vertical rule; despite that the cols in both of the surrounding multicolumn’s call for a vertical rule, you only get one rule. Between entry three and entry four there is no vertical rule; the default calls for one but the cols in the entry three \multicolumn leaves it out, and that takes precedence. Finally, following entry four there is a vertical rule because of the default.

The number of spanned columns numcols can be 1. Besides giving the ability to change the horizontal alignment, this also is useful to override for one row the tabular definition’s default intercolumn area specification, including the placement of vertical rules.

In the example below, in the tabular definition the first column is specified to default to left justified but in the first row the entry is centered with \multicolumn{1}{c}{\textsc{Period}}. Also in the first row, the second and third columns are spanned by a single entry with \multicolumn{2}{c}{\textsc{Span}}, overriding the specification to center those two columns on the page range en-dash.

\begin{tabular}{l|r@{--}l} 
  \multicolumn{1}{c}{\textsc{Period}}  
    &multicolumn{2}{c}{\textsc{Span}} \\ \hline
  Baroque          &1600           &1760         \\
  Classical        &1730           &1820         \\
  Romantic         &1780           &1910         \\
  Impressionistic  &1875           &1925
\end{tabular}

Although the tabular specification by default puts a vertical rule between the first and second columns, no such vertical rule appears in the first row here. That’s because there is no vertical bar in the cols part of the first row’s first \multicolumn command.


\vline

Draw a vertical line in a tabular or array environment extending the full height and depth of an entry’s row. Can also be used in an @-expression, although its synonym vertical bar | is more common. This command is rarely used in the body of a table; typically a table’s vertical lines are specified in tabular’s cols argument and overridden as needed with \multicolumn (see tabular).

The example below illustrates some pitfalls. In the first row’s second entry the \hfill moves the \vline to the left edge of the cell. But that is different than putting it halfway between the two columns, so between the first and second columns there are two vertical rules, with the one from the {c|cc} specifier coming before the one produced by the \vline\hfill. In contrast, the first row’s third entry shows the usual way to put a vertical bar between two columns. In the second row, the ghi is the widest entry in its column so in the \vline\hfill the \hfill has no effect and the vertical line in that entry appears immediately next to the g, with no whitespace.

\begin{tabular}{c|cc}
  x   &\vline\hfill y   &\multicolumn{1}{|r}{z} \\ % row 1  
  abc &def &\vline\hfill ghi                       % row 2  
\end{tabular}

\cline

Synopsis:

\cline{i-j}

In an array or tabular environment, draw a horizontal rule beginning in column i and ending in column j. The dash, -, must appear in the mandatory argument. To span a single column use the number twice, as with \cline{2-2}.

This example puts two horizontal lines between the first and second rows, one line in the first column only, and the other spanning the third and fourth columns. The two lines are side-by-side, at the same height.

\begin{tabular}{llrr} 
  a &b &c &d \\ \cline{1-1} \cline{3-4} 
  e &f &g &h 
\end{tabular}

\hline

Draw a horizontal line the width of the enclosing tabular or array environment. It’s most commonly used to draw a line at the top, bottom, and between the rows of a table.

In this example the top of the table has two horizontal rules, one above the other, that span both columns. The bottom of the table has a single rule spanning both columns. Because of the \hline, the tabular second row’s line ending double backslash \\ is required.

\begin{tabular}{ll} \hline\hline
  Baseball   &Red Sox  \\
  Basketball &Celtics  \\ \hline
\end{tabular}

thebibliography

Synopsis:

\begin{thebibliography}{widest-label}
  \bibitem[label]{cite_key}
  ...
\end{thebibliography}

Produce a bibliography or reference list. There are two ways to produce bibliographic lists. This environment is suitable when you have only a few references and can maintain the list by hand. See Using BibTeX for a more sophisticated approach.

This shows the environment with two entries.

This work is based on \cite{latexdps}.
Together they are \cite{latexdps, texbook}.
  ...
\begin{thebibliography}{9}
\bibitem{latexdps} 
  Leslie Lamport. 
  \textit{\LaTeX{}: a document preparation system}. 
  Addison-Wesley, Reading, Massachusetts, 1993.
\bibitem{texbook} 
  Donald Ervin Knuth. 
  \textit{The \TeX book}. 
  Addison-Wesley, Reading, Massachusetts, 1983.
\end{thebibliography}

This styles the first reference as ‘[1] Leslie ...’, and so that \cite{latexdps} produces the matching ‘... based on [1]’. The second \cite produces ‘[1, 2]’. You must compile the document twice to resolve these references.

The mandatory argument widest-label is text that, when typeset, is as wide as the widest item label produced by the \bibitem commands. The tradition is to use 9 for bibliographies with less than 10 references, 99 for ones with less than 100, etc.

The bibliographic list is headed by a title such as ‘Bibliography’. To change it there are two cases. In the book and report classes, where the top level sectioning is \chapter and the default title is ‘Bibliography’, that title is in the macro \bibname. For article, where the class’s top level sectioning is \section and the default is ‘References’, the title is in macro \refname. Change it by redefining the command, as with \renewcommand{\refname}{Cited references} after \begin{document}.

Language support packages such as babel will automatically redefine \refname or \bibname to fit the selected language.


\bibitem

Synopsis:

\bibitem{cite_key}

or

\bibitem[label]{cite_key}

Generate an entry labeled by label. The default is for LaTeX to generates a number using the enumi counter. The citation key cite_key is a string of letters, numbers, and punctuation symbols (but not comma).

See thebibliography for an example.

The optional label changes the default label from an integer to the given string. With this

\begin{thebibliography}
\bibitem[Lamport 1993]{latexdps} 
  Leslie Lamport. 
  \textit{\LaTeX{}: a document preparation system}. 
  Addison-Wesley, Reading, Massachusetts, 1993.
\bibitem{texbook} 
  Donald Ervin Knuth. 
  \textit{The \TeX book}. 
  Addison-Wesley, Reading, Massachusetts, 1983.
\end{thebibliography}

the first entry will be styled as ‘[Lamport 1993] Leslie ...’ (The amount of horizontal space that LaTeX leaves for the label depends on the widest-label argument of the thebibliography environment; see thebibliography.) Similarly, ... based on \cite{latexdps} will produce ‘... based on [Lamport 1994]’.

If you mix \bibitem entries having a label with those that do not then LaTeX will number the unlabelled ones sequentially. In the example above the texbook entry will appear as ‘[1] Donald ...’, despite that it is the second entry.

If you use the same cite_key twice then you get ‘LaTeX Warning: There were multiply-defined labels’.

Under the hood, LaTeX remembers the cite_key and label information because \bibitem writes it to the auxiliary file filename.aux. For instance, the above example causes \bibcite{latexdps}{Lamport, 1993} and \bibcite{texbook}{1} to appear in that file. The .aux file is read by the \begin{document} command and then the information is available for \cite commands. This explains why you need to run LaTeX twice to resolve references: once to write it out and once to read it in.

Because of this two-pass algorithm, when you add a \bibitem or change its cite_key you may get ‘LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right’. Fix it by recompiling.


\cite

Synopsis:

\cite{keys}

or

\cite[subcite]{keys}

Generate as output a citation to the references associated with keys. The mandatory keys is a citation key, or a comma-separated list of citation keys (see \bibitem).

This

The ultimate source is \cite{texbook}.
  ...
\begin{thebibliography}
\bibitem{texbook} 
  Donald Ervin Knuth. 
  \textit{The \TeX book}. 
  Addison-Wesley, Reading, Massachusetts, 1983.
\end{thebibliography}

produces output like ‘... source is [1]’. (You can change the appearance of the citation with bibliography styles. More is in Using BibTeX.)

The optional argument subcite is appended to the citation. For example, See 14.3 in \cite[p.~314]{texbook} might produce ‘See 14.3 in [1, p. 314]’.

In addition to what appears in the output, \cite writes information to the auxiliary file filename.aux. For instance, \cite{latexdps} writes ‘\citation{latexdps}’ to that file. This information is used by BibTeX to include in your reference list only those works that you have actually cited; see \nocite also.

If keys is not in your bibliography information then you get ‘LaTeX Warning: There were undefined references’, and in the output the citation shows as a boldface question mark between square brackets. There are two possible causes. If you have mistyped something, as in \cite{texbok} then you need to correct the spelling. On the other hand, if you have just added or modified the bibliographic information and so changed the .aux file (see \bibitem) then the fix may be to run LaTeX again.


\nocite

Synopsis:

\nocite{keys}

Produces no output but writes keys to the auxiliary file doc-filename.aux.

The mandatory argument keys is a comma-separated list of one or more citation keys (see \bibitem). This information is used by BibTeX to include these works in your reference list even though you have not cited them (see \cite).


Using BibTeX

As described in thebibliography (see thebibliography), a sophisticated approach to managing bibliographies is provided by the BibTeX program. This is only an introduction; see the full documentation on CTAN.

With BibTeX, you don’t use thebibliography (see thebibliography). Instead, include these lines.

\bibliographystyle{bibstyle}
\bibliography{bibfile1, bibfile2, ...}

The bibstyle refers to a file bibstyle.bst, which defines how your citations will look. The standard bibstyle’s distributed with BibTeX are:

alpha

Labels are formed from name of author and year of publication. The bibliographic items are sorted alphabetically.

plain

Labels are integers. Sort the bibliographic items alphabetically.

unsrt

Like plain, but entries are in order of citation.

abbrv

Like plain, but more compact labels.

Many, many other BibTeX style files exist, tailored to the demands of various publications. See CTAN’s listing http://mirror.ctan.org/biblio/bibtex/contrib.

The \bibliography command is what actually produces the bibliography. Its argument is a comma-separated list, referring to files named bibfile1.bib, bibfile2.bib, … These contain your database in BibTeX format. This shows a typical couple of entries in that format.

@book{texbook,
  title     = {The {{\TeX}}book},
  author    = {D.E. Knuth},
  isbn      = {0201134489},
  series    = {Computers \& typesetting},
  year      = {1983},
  publisher = {Addison-Wesley}
}
@book{sexbook,
    author    = {W.H. Masters and V.E. Johnson},
    title     = {Human Sexual Response},
    year      = {1966},
    publisher = {Bantam Books}
}

Only the bibliographic entries referred to via \cite and \nocite will be listed in the document’s bibliography. Thus you can keep all your sources together in one file, or a small number of files, and rely on BibTeX to include in this document only those that you used.


theorem

Synopsis:

\begin{theorem}
  theorem body
\end{theorem}

Produces ‘Theorem n’ in boldface followed by theorem body in italics. The numbering possibilities for n are described under \newtheorem (see \newtheorem).

\newtheorem{lem}{Lemma}      % in preamble
\newtheorem{thm}{Theorem}    
  ...
\begin{lem}                  % in  document body
  text of lemma
\end{lem}

The next result follows immediately.
\begin{thm}[Gauss]   %  put `Gauss' in parens after theorem head
  text of theorem
\end{thm}

Most new documents use the packages amsthm and amsmath from the American Mathematical Society. Among other things these packages include a large number of options for theorem environments, such as styling options.


titlepage

Synopsis:

\begin{titlepage}
  ... text and spacing ...
\end{titlepage}

Create a title page, a page with no printed page number or heading and with succeeding pages numbered starting with page one.

In this example all formatting, including vertical spacing, is left to the author.

\begin{titlepage}
\vspace*{\stretch{1}}
\begin{center}
  {\huge\bfseries Thesis \\[1ex] 
                  title}                  \\[6.5ex]
  {\large\bfseries Author name}           \\
  \vspace{4ex}
  Thesis  submitted to                    \\[5pt]
  \textit{University name}                \\[2cm]
  in partial fulfilment for the award of the degree of \\[2cm]
  \textsc{\Large Doctor of Philosophy}    \\[2ex]
  \textsc{\large Mathematics}             \\[12ex]
  \vfill
  Department of Mathematics               \\
  Address                                 \\
  \vfill
  \today
\end{center}
\vspace{\stretch{2}}
\end{titlepage}

To instead produce a standard title page without a titlepage environment, use \maketitle (see \maketitle).


verbatim

Synopsis:

\begin{verbatim}
literal-text
\end{verbatim}

A paragraph-making environment in which LaTeX produces as output exactly what you type as input. For instance inside literal-text the backslash \ character does not start commands, it produces a printed ‘\’, and carriage returns and blanks are taken literally. The output appears in a monospaced typewriter-like font (\tt).

\begin{verbatim}
Symbol swearing: %&$#?!.
\end{verbatim}

The only restriction on literal-text is that it cannot include the string \end{verbatim}.

You cannot use the verbatim environment in the argument to macros, for instance in the argument to a \section. This is not the same as commands being fragile (see \protect), instead it just cannot appear there. (But the cprotect package can help with this.)

One common use of verbatim input is to typeset computer code. There are packages that are an improvement the verbatim environment. For instance, one improvement is to allow the verbatim inclusion of external files, or parts of those files. Such packages include listings, and minted.

A package that provides many more options for verbatim environments is fancyvrb. Another is verbatimbox.

For a list of all the relevant packages, see CTAN.


\verb

Synopsis:

\verb char literal-text char
\verb* char literal-text char

Typeset literal-text as it is input, including special characters and spaces, using the typewriter (\tt) font.

This example shows two different invocations of \verb.

This is \verb!literally! the biggest pumpkin ever.
And this is the best squash, \verb+literally!+

The first \verb has its literal-text surrounded with exclamation point, !. The second instead uses plus, +, because the exclamation point is part of literal-text.

The single-character delimiter char surrounds literal-text — it must be the same character before and after. No spaces come between \verb or \verb* and char, or between char and literal-text, or between literal-text and the second occurrence of char (the synopsis shows a space only to distinguish one component from the other). The delimiter must not appear in literal-text. The literal-text cannot include a line break.

The *-form differs only in that spaces are printed with a visible space character.

The output from this will include a character showing the spaces.

The commands's first argument is \verb*!filename with extension! and ...

For typesetting Internet addresses, urls, the package url provides an option that is better than the \verb command, since it allows line breaks.

For computer code there are many packages with advantages over \verb. One is listings, another is minted.

You cannot use \verb in the argument to a macro, for instance in the argument to a \section. It is not a question of \verb being fragile (see \protect), instead it just cannot appear there. (But the cprotect package can help with this.)


verse

Synopsis:

\begin{verse}
  line1 \\
  line2 \\
  ...
\end{verse}

An environment for poetry.

Here are two lines from Shakespeare’s Romeo and Juliet.

Then plainly know my heart's dear love is set \\
On the fair daughter of rich Capulet.

Separate the lines of each stanza with \\, and use one or more blank lines to separate the stanzas.

\begin{verse}
\makebox[\linewidth][c]{\textit{Shut Not Your Doors} ---Walt Whitman}
  \\[1\baselineskip]
Shut not your doors to me proud libraries,                  \\
For that which was lacking on all your well-fill'd shelves, \\
\qquad yet needed most, I bring,                             \\
Forth from the war emerging, a book I have made,            \\
The words of my book nothing, the drift of it every thing,  \\
A book separate, not link'd with the rest nor felt by the intellect, \\
But you ye untold latencies will thrill to every page.
\end{verse}

The output has margins indented on the left and the right, paragraphs are not indented, and the text is not right-justified.

Setzer-0.4.4/data/resources/help/latex2e_9.html000066400000000000000000000455501420322575300213440ustar00rootroot00000000000000 Line breaking (LaTeX2e unofficial reference manual (October 2018))

Line breaking

The first thing LaTeX does when processing ordinary text is to translate your input file into a sequence of glyphs and spaces. To produce a printed document, this sequence must be broken into lines (and these lines must be broken into pages).

LaTeX usually does the line (and page) breaking in the text body for you but in some environments you manually force line breaks.

A common workflow is to get a final version of the document content before taking a final pass through and considering line breaks (and page breaks). This differs from word processing, where you are formatting text as you input it. Putting these off until the end prevents a lot of fiddling with breaks that will change anyway.


\\

Synopsis, one of:

\\
\\[morespace]

or one of:

\\*
\\*[morespace]

End the current line. The optional argument morespace specifies extra vertical space to be inserted before the next line. This is a rubber length (see Lengths) and can be negative. The text before the line break is set at its normal length, that is, it is not stretched to fill out the line width. This command is fragile (see \protect).

The starred form, \\*, tells LaTeX not to start a new page between the two lines, by issuing a \nobreak.

\title{My story: \\[0.25in]
       a tale of woe}

Explicit line breaks in the main text body are unusual in LaTeX. In particular, don’t start new paragraphs with \\. Instead leave a blank line between the two paragraphs. And don’t put in a sequence of \\’s to make vertical space. Instead use \vspace{length}, or \leavevmode\vspace{length}, or \vspace*{length} if you want the space to not be thrown out at the top of a new page (see \vspace).

The \\ command is mostly used outside of the main flow of text such as in a tabular or array environment or in an equation environment.

The \\ command is a synonym for \newline (see \newline) under ordinary circumstances (an example of an exception is the p{...} column in a tabular environment; see tabular).

The \\ command is a macro, and its definition changes by context so that its definition in normal text, a center environment, a flushleft environment, and a tabular are all different. In normal text when it forces a linebreak it is essentially a shorthand for \newline. It does not end horizontal mode or end the paragraph, it just inserts some glue and penalties so that when the paragraph does end a linebreak will occur at that point, with the short line padded with white space.

You get ‘LaTeX Error: There's no line here to end’ if you use \\ to ask for a new line, rather than to end the current line. An example is if you have \begin{document}\\ or, more likely, something like this.

\begin{center}
  \begin{minipage}{0.5\textwidth}
  \\
  In that vertical space put your mark.
  \end{minipage}
\end{center}

Fix it by replacing the double backslash with something like \vspace{\baselineskip}.


\obeycr & \restorecr

The \obeycr command makes a return in the input file (‘^^M’, internally) the same as \\, followed by \relax. So each new line in the input will also be a new line in the output. The \restorecr command restores normal line-breaking behavior.

This is not the way to show verbatim text or computer code. See verbatim instead.

With LaTeX’s usual defaults, this

aaa
bbb

\obeycr
ccc
ddd
   eee

\restorecr
fff
ggg

hhh
iii

produces output like this.

  aaa bbb
  ccc
ddd
eee

fff ggg
  hhh iii

The indents are paragraph indents.


\newline

In ordinary text, this ends a line in a way that does not right-justify the line, so the prior text is not stretched. That is, in paragraph mode (see Modes), the \newline command is equivalent to double-backslash (see \\). This command is fragile (see \protect).

However, the two commands are different inside a tabular or array environment. In a column with a specifier producing a paragraph box such as typically p{...}, \newline will insert a line end inside of the column; that is, it does not break the entire tabular row. To break the entire row use \\ or its equivalent \tabularnewline.

This will print ‘Name:’ and ‘Address:’ as two lines in a single cell of the table.

\begin{tabular}{p{1in}{\hspace{2in}}p{1in}}
  Name: \newline Address: &Date: \\ \hline
\end{tabular}

The ‘Date:’ will be baseline-aligned with ‘Name:’.


\- (discretionary hyphen)

Tell LaTeX that it may hyphenate the word at that point. When you insert \- commands in a word, the word will only be hyphenated at those points and not at any of the hyphenation points that LaTeX might otherwise have chosen. This command is robust (see \protect).

LaTeX is good at hyphenating and usually finds most of the correct hyphenation points, while almost never using an incorrect one. The \- command is for exceptional cases.

For example, LaTeX does not ordinarily hyphenate words containing a hyphen. Below, the long and hyphenated word means LaTeX has to put in unacceptably large spaces to set the narrow column.

\begin{tabular}{rp{1.75in}}
  Isaac Asimov &The strain of
               anti-intellectualism
               % an\-ti-in\-tel\-lec\-tu\-al\-ism
               has been a constant thread winding its way through our
               political and cultural life, nurtured by
               the false notion that democracy means that
               `my ignorance is just as good as your knowledge'.
\end{tabular}

Commenting out the third line and uncommenting the fourth makes a much better fit.

The \- command only allows LaTeX to break there, it does not require that it break there. You can insist on a split with something like Hef-\linebreak feron. Of course, if you later change the text then this forced break may look very odd, so this approach requires care.


\discretionary (generalized hyphenation point)

Synopsis:

\discretionary{pre-break}{post-break}{no-break}

Handle word changes around hyphens. This command is not often used in LaTeX documents.

If a line break occurs at the point where \discretionary appears then TeX puts pre-break at the end of the current line and puts post-break at the start of the next line. If there is no line break here then TeX puts no-break

In ‘difficult’ the three letters ffi form a ligature. But TeX can nonetheless break between the two f’s with this.

di\discretionary{f-}{fi}{ffi}cult

Note that users do not have to do this. It is typically handled automatically by TeX’s hyphenation algorithm.


\fussy & \sloppy

Declarations to make TeX more picky or less picky about line breaking. Declaring \fussy usually avoids too much space between words, at the cost of an occasional overfull box. Conversely, \sloppy avoids overfull boxes while suffering loose interword spacing.

The default is \fussy. Line breaking in a paragraph is controlled by whichever declaration is current at the blank line, or \par, or displayed equation ending that paragraph. So to affect the line breaks, include that paragraph-ending material in the scope of the command.


sloppypar

Synopsis:

\begin{sloppypar}
  ... paragraphs ...
\end{sloppypar}

Typeset the paragraphs with \sloppy in effect (see \fussy & \sloppy). Use this to locally adjust line breaking, to avoid ‘Overfull box’ or ‘Underfull box’ errors.

The example is simple.

\begin{sloppypar}
  Her plan for the morning thus settled, she sat quietly down to her
  book after breakfast, resolving to remain in the same place and the
  same employment till the clock struck one; and from habitude very
  little incommoded by the remarks and ejaculations of Mrs.\ Allen,
  whose vacancy of mind and incapacity for thinking were such, that
  as she never talked a great deal, so she could never be entirely
  silent; and, therefore, while she sat at her work, if she lost her
  needle or broke her thread, if she heard a carriage in the street,
  or saw a speck upon her gown, she must observe it aloud, whether
  there were anyone at leisure to answer her or not.
\end{sloppypar}

\hyphenation

Synopsis:

\hyphenation{word1 ...}

Declares allowed hyphenation points within the words in the list. The words in that list are separated by spaces. Show permitted points for hyphenation with a dash character, -.

Here is an example:

\hyphenation{hat-er il-lit-e-ra-ti tru-th-i-ness}

Use lowercase letters. TeX will only hyphenate if the word matches exactly. Multiple \hyphenation commands accumulate.


\linebreak & \nolinebreak

Synopses, one of:

\linebreak
\linebreak[zero-to-four]

or one of these.

\nolinebreak
\nolinebreak[zero-to-four]

Encourage or discourage a line break. The optional zero-to-four is an integer that allows you to soften the instruction. The default is 4, so that without the optional argument these commands entirely force or prevent the break. But for instance, \nolinebreak[1] is a suggestion that another place may be better. The higher the number, the more insistent the request. Both commands are fragile (see \protect).

Here we tell LaTeX that a good place to put a linebreak is after the standard legal text.

\boilerplatelegal{} \linebreak[2]
We especially encourage applications from members of traditionally
underrepresented groups.

When you issue \linebreak, the spaces in the line are stretched out so that it extends to the right margin. See \\ and \newline to have the spaces not stretched out.

Setzer-0.4.4/data/resources/help/search_index.pickle000066400000000000000000011300751420322575300225050ustar00rootroot00000000000000]q(]q(X &_____tabularqXlatex2e_8.html#index-_0026qX&qXtabularqe]q(X)‘*’ prompt_____recovering from errorsqX"latex2e_28.html#index-_002a-promptqX‘*’ promptq XRecovering from errorsq e]q (XF*-form of environment commands_____\newenvironment & \renewenvironmentq X<latex2e_12.html#index-_002a_002dform-of-environment-commandsq X*-form of environment commandsqX'\newenvironment & \renewenvironmentqe]q(X,*-form of sectioning commands_____sectioningqX:latex2e_6.html#index-_002a_002dform-of-sectioning-commandsqX*-form of sectioning commandsqX Sectioningqe]q(X=*-form, defining new commands_____\newcommand & \renewcommandqX?latex2e_12.html#index-_002a_002dform_002c-defining-new-commandsqX*-form, defining new commandsqX\newcommand & \renewcommandqe]q(X>--disable-write18 command-line option_____command line optionsqXKlatex2e_28.html#index-_002d_002ddisable_002dwrite18-command_002dline-optionqX%--disable-write18 command-line optionqXCommand line optionsqe]q(X=--enable-write18 command-line option_____command line optionsq XJlatex2e_28.html#index-_002d_002denable_002dwrite18-command_002dline-optionq!X$--enable-write18 command-line optionq"XCommand line optionsq#e]q$(X>--file-line-error command-line option_____command line optionsq%XOlatex2e_28.html#index-_002d_002dfile_002dline_002derror-command_002dline-optionq&X%--file-line-error command-line optionq'XCommand line optionsq(e]q)(X<--halt-on-error command-line option_____command line optionsq*XMlatex2e_28.html#index-_002d_002dhalt_002don_002derror-command_002dline-optionq+X#--halt-on-error command-line optionq,XCommand line optionsq-e]q.(X3--help command-line option_____command line optionsq/X<latex2e_28.html#index-_002d_002dhelp-command_002dline-optionq0X--help command-line optionq1XCommand line optionsq2e]q3(X:--interaction command-line option_____command line optionsq4XClatex2e_28.html#index-_002d_002dinteraction-command_002dline-optionq5X!--interaction command-line optionq6XCommand line optionsq7e]q8(X6--jobname command-line option_____command line optionsq9X?latex2e_28.html#index-_002d_002djobname-command_002dline-optionq:X--jobname command-line optionq;XCommand line optionsqXVlatex2e_28.html#index-_002d_002dno_002dfile_002dline_002derror-command_002dline-optionq?X(--no-file-line-error command-line optionq@XCommand line optionsqAe]qB(X>--no-shell-escape command-line option_____command line optionsqCXOlatex2e_28.html#index-_002d_002dno_002dshell_002descape-command_002dline-optionqDX%--no-shell-escape command-line optionqEXCommand line optionsqFe]qG(X?--output-directory command-line option_____command line optionsqHXLlatex2e_28.html#index-_002d_002doutput_002ddirectory-command_002dline-optionqIX&--output-directory command-line optionqJXCommand line optionsqKe]qL(X;--shell-escape command-line option_____command line optionsqMXHlatex2e_28.html#index-_002d_002dshell_002descape-command_002dline-optionqNX"--shell-escape command-line optionqOXCommand line optionsqPe]qQ(X6--version command-line option_____command line optionsqRX?latex2e_28.html#index-_002d_002dversion-command_002dline-optionqSX--version command-line optionqTXCommand line optionsqUe]qV(X.aux file_____output filesqWX"latex2e_2.html#index-_002eaux-fileqXX .aux fileqYX Output filesqZe]q[(X.dvi file_____output filesq\X"latex2e_2.html#index-_002edvi-fileq]X .dvi fileq^X Output filesq_e]q`(X.glo file_____glossariesqaX#latex2e_25.html#index-_002eglo-fileqbX .glo fileqcX Glossariesqde]qe(X.idx file_____indexesqfX#latex2e_25.html#index-_002eidx-fileqgX .idx fileqhXIndexesqie]qj(X.idx file_____makeindexqkX%latex2e_25.html#index-_002eidx-file-1qlX .idx fileqmX makeindexqne]qo(X.ind file_____makeindexqpX#latex2e_25.html#index-_002eind-fileqqX .ind fileqrX makeindexqse]qt(X.isty file_____makeindexquX$latex2e_25.html#index-_002eisty-fileqvX .isty fileqwX makeindexqxe]qy(X.lof file_____output filesqzX"latex2e_2.html#index-_002elof-fileq{X .lof fileq|X Output filesq}e]q~(X$.lof file_____table of contents etc.qX%latex2e_25.html#index-_002elof-file-1qX .lof fileqXTable of contents etc.qe]q(X.log file_____output filesqX"latex2e_2.html#index-_002elog-fileqX .log fileqX Output filesqe]q(X.lot file_____output filesqX"latex2e_2.html#index-_002elot-fileqX .lot fileqX Output filesqe]q(X$.lot file_____table of contents etc.qX%latex2e_25.html#index-_002elot-file-1qX .lot fileqXTable of contents etc.qe]q(X.pdf file_____output filesqX"latex2e_2.html#index-_002epdf-fileqX .pdf fileqX Output filesqe]q(X(.tex, default extension_____command lineqX5latex2e_28.html#index-_002etex_002c-default-extensionqX.tex, default extensionqX Command lineqe]q(X.toc file_____output filesqX"latex2e_2.html#index-_002etoc-fileqX .toc fileqX Output filesqe]q(X$.toc file_____table of contents etc.qX%latex2e_25.html#index-_002etoc-file-1qX .toc fileqXTable of contents etc.qe]q(X.xdv file_____tex enginesqX"latex2e_2.html#index-_002exdv-fileqX .xdv fileqX TeX enginesqe]q(X&10pt option_____document class optionsqX latex2e_3.html#index-10pt-optionqX 10pt optionqXDocument class optionsqe]q(X&11pt option_____document class optionsqX latex2e_3.html#index-11pt-optionqX 11pt optionqXDocument class optionsqe]q(X&12pt option_____document class optionsqX latex2e_3.html#index-12pt-optionqX 12pt optionqXDocument class optionsqe]q(X:_____colon character & \colonqXlatex2e_16.html#index-_003aqX:qXColon character & \colonqe]q(X:_____colon character & \colonqXlatex2e_16.html#index-_003a-1qX:qXColon character & \colonqe]q(X5[...] for optional arguments_____latex command syntaxqXElatex2e_2.html#index-_005b_002e_002e_002e_005d-for-optional-argumentsqX[...] for optional argumentsqXLaTeX command syntaxqe]q(X6\ character starting commands_____latex command syntaxqX6latex2e_2.html#index-_005c-character-starting-commandsqX\ character starting commandsqXLaTeX command syntaxqe]q(X\!_____spacing in math modeqX latex2e_16.html#index-_005c_0021qX\!qXSpacing in math modeqe]q(X\" (umlaut accent)_____accentsqX8latex2e_23.html#index-_005c_0022-_0028umlaut-accent_0029qX\" (umlaut accent)qXAccentsqe]q(X\#_____reserved charactersqX latex2e_23.html#index-_005c_0023qX\#qXReserved charactersqe]q(X\$_____reserved charactersqX latex2e_23.html#index-_005c_0024qX\$qXReserved charactersqe]q(X\%_____reserved charactersqX latex2e_23.html#index-_005c_0025qX\%qXReserved charactersqe]q(X\&_____reserved charactersqX latex2e_23.html#index-_005c_0026qX\&qXReserved charactersqe]q(X\' (acute accent)_____accentsqX7latex2e_23.html#index-_005c_0027-_0028acute-accent_0029qX\' (acute accent)qXAccentsqe]q(X\' (tabbing)_____tabbingqX1latex2e_8.html#index-_005c_0027-_0028tabbing_0029qX \' (tabbing)qXtabbingqe]q(X \*_____\*qX latex2e_16.html#index-_005c_002aqX\*qX\*qe]q(X\+_____tabbingqXlatex2e_8.html#index-_005c_002bqX\+qXtabbingqe]r(X\,_____spacing in math moderX latex2e_16.html#index-_005c_002crX\,rXSpacing in math modere]r(X\-_____tabbingrXlatex2e_8.html#index-_005c_002drX\-rXtabbingr e]r (X%\- (hyphenation)_____\- (hyphenation)r X5latex2e_9.html#index-_005c_002d-_0028hyphenation_0029r X\- (hyphenation)r X\- (hyphenation)re]r(X \. (dot-over accent)_____accentsrX>latex2e_23.html#index-_005c_002e-_0028dot_002dover-accent_0029rX\. (dot-over accent)rXAccentsre]r(X \/_____\/rX latex2e_19.html#index-_005c_002frX\/rX\/re]r(X\:_____spacing in math moderX latex2e_16.html#index-_005c_003arX\:rXSpacing in math modere]r(X\;_____spacing in math moderX latex2e_16.html#index-_005c_003br X\;r!XSpacing in math moder"e]r#(X\<_____tabbingr$Xlatex2e_8.html#index-_005c_003cr%X\<r&Xtabbingr'e]r((X\= (macron accent)_____accentsr)X8latex2e_23.html#index-_005c_003d-_0028macron-accent_0029r*X\= (macron accent)r+XAccentsr,e]r-(X\= (tabbing)_____tabbingr.X1latex2e_8.html#index-_005c_003d-_0028tabbing_0029r/X \= (tabbing)r0Xtabbingr1e]r2(X\>_____tabbingr3Xlatex2e_8.html#index-_005c_003er4X\>r5Xtabbingr6e]r7(X\>_____spacing in math moder8X"latex2e_16.html#index-_005c_003e-1r9X\>r:XSpacing in math moder;e]r<(X\> (tabbing)_____tabbingr=X1latex2e_8.html#index-_005c_003e-_0028tabbing_0029r>X\> (tabbing)r?Xtabbingr@e]rA(X \@_____\@rBX latex2e_19.html#index-_005c_0040rCX\@rDX\@rEe]rF(X\@beginparpenalty_____listrGX.latex2e_8.html#index-_005c_0040beginparpenaltyrHX\@beginparpenaltyrIXlistrJe]rK(X\@endparpenalty_____listrLX,latex2e_8.html#index-_005c_0040endparpenaltyrMX\@endparpenaltyrNXlistrOe]rP(X\@fnsymbol_____\footnoterQX(latex2e_11.html#index-_005c_0040fnsymbolrRX \@fnsymbolrSX \footnoterTe]rU(X\@ifstar_____\@ifstarrVX&latex2e_12.html#index-_005c_0040ifstarrWX\@ifstarrXX\@ifstarrYe]rZ(X\@itempenalty_____listr[X*latex2e_8.html#index-_005c_0040itempenaltyr\X \@itempenaltyr]Xlistr^e]r_(X!\@startsection_____\@startsectionr`X+latex2e_6.html#index-_005c_0040startsectionraX\@startsectionrbX\@startsectionrce]rd(X\a (tabbing)_____tabbingreX-latex2e_8.html#index-_005ca-_0028tabbing_0029rfX \a (tabbing)rgXtabbingrhe]ri(X)\a' (acute accent in tabbing)_____tabbingrjXBlatex2e_8.html#index-_005ca_0027-_0028acute-accent-in-tabbing_0029rkX\a' (acute accent in tabbing)rlXtabbingrme]rn(X*\a= (macron accent in tabbing)_____tabbingroXClatex2e_8.html#index-_005ca_003d-_0028macron-accent-in-tabbing_0029rpX\a= (macron accent in tabbing)rqXtabbingrre]rs(X%\aa (å)_____additional latin lettersrtX*latex2e_23.html#index-_005caa-_0028aa_0029ruX\aa (å)rvXAdditional Latin lettersrwe]rx(X%\aa (å)_____additional latin lettersryX*latex2e_23.html#index-_005cAA-_0028AA_0029rzX\AA (Å)r{XAdditional Latin lettersr|e]r}(X\acute_____math accentsr~X latex2e_16.html#index-_005cacuterX\acuterX Math accentsre]r(X%\addcontentsline_____\addcontentslinerX*latex2e_25.html#index-_005caddcontentslinerX\addcontentslinerX\addcontentslinere]r(X\address_____\addressrX"latex2e_26.html#index-_005caddressrX\addressrX\addressre]r(X,\addtocontents{ext}{text}_____\addtocontentsrXClatex2e_25.html#index-_005caddtocontents_007bext_007d_007btext_007drX\addtocontents{ext}{text}rX\addtocontentsre]r(X\addtocounter_____\addtocounterrX'latex2e_13.html#index-_005caddtocounterrX \addtocounterrX \addtocounterre]r(X\addtolength_____\addtolengthrX&latex2e_14.html#index-_005caddtolengthrX \addtolengthrX \addtolengthre]r(X\addvspace_____\addvspacerX$latex2e_19.html#index-_005caddvspacerX \addvspacerX \addvspacere]r(X%\ae (æ)_____additional latin lettersrX*latex2e_23.html#index-_005cae-_0028ae_0029rX\ae (æ)rXAdditional Latin lettersre]r(X%\ae (æ)_____additional latin lettersrX*latex2e_23.html#index-_005cAE-_0028AE_0029rX\AE (Æ)rXAdditional Latin lettersre]r(X\aleph_____math symbolsrX latex2e_16.html#index-_005calephrX\alephrX Math symbolsre]r(X\alph example_____enumeraterX&latex2e_8.html#index-_005cAlph-examplerX \Alph examplerX enumeratere]r(X\alpha_____math symbolsrX latex2e_16.html#index-_005calpharX\alpharX Math symbolsre]r(X>\alph{counter}_____\alph \alph \arabic \roman \roman \fnsymbolrX0latex2e_13.html#index-_005calph_007bcounter_007drX\alph{counter}rX+\alph \Alph \arabic \roman \Roman \fnsymbolre]r(X>\alph{counter}_____\alph \alph \arabic \roman \roman \fnsymbolrX0latex2e_13.html#index-_005cAlph_007bcounter_007drX\Alph{counter}rX+\alph \Alph \arabic \roman \Roman \fnsymbolre]r(X\alsoname_____\indexrX#latex2e_25.html#index-_005calsonamerX \alsonamerX\indexre]r(X\amalg_____math symbolsrX latex2e_16.html#index-_005camalgrX\amalgrX Math symbolsre]r(X\and for \author_____\maketitlerX.latex2e_18.html#index-_005cand-for-_005cauthorrX\and for \authorrX \maketitlere]r(X\angle_____math symbolsrX latex2e_16.html#index-_005canglerX\anglerX Math symbolsre]r(X\appendix_____\appendixrX"latex2e_6.html#index-_005cappendixrX \appendixrX \appendixre]r(X\approx_____math symbolsrX!latex2e_16.html#index-_005capproxrX\approxrX Math symbolsre]r(X@\arabic{counter}_____\alph \alph \arabic \roman \roman \fnsymbolrX2latex2e_13.html#index-_005carabic_007bcounter_007drX\arabic{counter}rX+\alph \Alph \arabic \roman \Roman \fnsymbolre]r(X\arccos_____math functionsrX!latex2e_16.html#index-_005carccosrX\arccosrXMath functionsre]r(X\arcsin_____math functionsrX!latex2e_16.html#index-_005carcsinrX\arcsinrXMath functionsre]r(X\arctan_____math functionsrX!latex2e_16.html#index-_005carctanrX\arctanrXMath functionsre]r(X\arg_____math functionsrXlatex2e_16.html#index-_005cargrX\argrXMath functionsre]r(X\arraycolsep_____arrayrX%latex2e_8.html#index-_005carraycolseprX \arraycolseprXarrayre]r(X\arrayrulewidth_____tabularrX(latex2e_8.html#index-_005carrayrulewidthrX\arrayrulewidthrXtabularre]r(X\arraystretch_____tabularrX&latex2e_8.html#index-_005carraystretchrX \arraystretchrXtabularre]r (X\ast_____math symbolsr Xlatex2e_16.html#index-_005castr X\astr X Math symbolsr e]r(X\asymp_____math symbolsrX latex2e_16.html#index-_005casymprX\asymprX Math symbolsre]r(X%\atbegindocument_____\atbegindocumentrX)latex2e_8.html#index-_005cAtBeginDocumentrX\AtBeginDocumentrX\AtBeginDocumentre]r(X*\atbegindvi_____class and package commandsrX$latex2e_3.html#index-_005cAtBeginDvirX \AtBeginDvirXClass and package commandsre]r(X!\atenddocument_____\atenddocumentrX'latex2e_8.html#index-_005cAtEndDocumentrX\AtEndDocumentr X\AtEndDocumentr!e]r"(X,\atendofclass_____class and package commandsr#X&latex2e_3.html#index-_005cAtEndOfClassr$X \AtEndOfClassr%XClass and package commandsr&e]r'(X.\atendofpackage_____class and package commandsr(X(latex2e_3.html#index-_005cAtEndOfPackager)X\AtEndOfPackager*XClass and package commandsr+e]r,(X1\author{name1 \and name2 \and ...}_____\maketitler-XXlatex2e_18.html#index-_005cauthor_007bname1-_005cand-name2-_005cand-_002e_002e_002e_007dr.X"\author{name1 \and name2 \and ...}r/X \maketitler0e]r1(X)\a` (grave accent in tabbing)_____tabbingr2XBlatex2e_8.html#index-_005ca_0060-_0028grave-accent-in-tabbing_0029r3X\a` (grave accent in tabbing)r4Xtabbingr5e]r6(X!\b (bar-under accent)_____accentsr7X;latex2e_23.html#index-_005cb-_0028bar_002dunder-accent_0029r8X\b (bar-under accent)r9XAccentsr:e]r;(X8\backmatter_____\frontmatter & \mainmatter & \backmatterr<X$latex2e_6.html#index-_005cbackmatterr=X \backmatterr>X0\frontmatter & \mainmatter & \backmatterr?e]r@(X\backslash_____math symbolsrAX$latex2e_16.html#index-_005cbackslashrBX \backslashrCX Math symbolsrDe]rE(X\bar_____math accentsrFXlatex2e_16.html#index-_005cbarrGX\barrHX Math accentsrIe]rJ(X)\baselineskip_____low-level font commandsrKX&latex2e_4.html#index-_005cbaselineskiprLX \baselineskiprMXLow-level font commandsrNe]rO(X,\baselinestretch_____low-level font commandsrPX)latex2e_4.html#index-_005cbaselinestretchrQX\baselinestretchrRXLow-level font commandsrSe]rT(X\begin_____environmentsrUXlatex2e_8.html#index-_005cbeginrVX\beginrWX EnvironmentsrXe]rY(X\beta_____math symbolsrZXlatex2e_16.html#index-_005cbetar[X\betar\X Math symbolsr]e]r^(X\bf_____font stylesr_Xlatex2e_4.html#index-_005cbfr`X\bfraX Font stylesrbe]rc(X\bfseries_____font stylesrdX"latex2e_4.html#index-_005cbfseriesreX \bfseriesrfX Font stylesrge]rh(X\bibitem_____\bibitemriX!latex2e_8.html#index-_005cbibitemrjX\bibitemrkX\bibitemrle]rm(X\bibliography_____using bibtexrnX&latex2e_8.html#index-_005cbibliographyroX \bibliographyrpX Using BibTeXrqe]rr(X#\bibliographystyle_____using bibtexrsX+latex2e_8.html#index-_005cbibliographystylertX\bibliographystyleruX Using BibTeXrve]rw(X\bigcap_____math symbolsrxX!latex2e_16.html#index-_005cbigcapryX\bigcaprzX Math symbolsr{e]r|(X\bigcirc_____math symbolsr}X"latex2e_16.html#index-_005cbigcircr~X\bigcircrX Math symbolsre]r(X\bigcup_____math symbolsrX!latex2e_16.html#index-_005cbigcuprX\bigcuprX Math symbolsre]r(X\bigodot_____math symbolsrX"latex2e_16.html#index-_005cbigodotrX\bigodotrX Math symbolsre]r(X\bigoplus_____math symbolsrX#latex2e_16.html#index-_005cbigoplusrX \bigoplusrX Math symbolsre]r(X\bigotimes_____math symbolsrX$latex2e_16.html#index-_005cbigotimesrX \bigotimesrX Math symbolsre]r(X-\bigskip_____\bigskip & \medskip & \smallskiprX"latex2e_19.html#index-_005cbigskiprX\bigskiprX(\bigskip & \medskip & \smallskipre]r(X3\bigskipamount_____\bigskip & \medskip & \smallskiprX(latex2e_19.html#index-_005cbigskipamountrX\bigskipamountrX(\bigskip & \medskip & \smallskipre]r(X\bigsqcup_____math symbolsrX#latex2e_16.html#index-_005cbigsqcuprX \bigsqcuprX Math symbolsre]r(X!\bigtriangledown_____math symbolsrX*latex2e_16.html#index-_005cbigtriangledownrX\bigtriangledownrX Math symbolsre]r(X\bigtriangleup_____math symbolsrX(latex2e_16.html#index-_005cbigtriangleuprX\bigtriangleuprX Math symbolsre]r(X\biguplus_____math symbolsrX#latex2e_16.html#index-_005cbiguplusrX \biguplusrX Math symbolsre]r(X\bigvee_____math symbolsrX!latex2e_16.html#index-_005cbigveerX\bigveerX Math symbolsre]r(X\bigwedge_____math symbolsrX#latex2e_16.html#index-_005cbigwedgerX \bigwedgerX Math symbolsre]r(X\bmod_____math functionsrXlatex2e_16.html#index-_005cbmodrX\bmodrXMath functionsre]r(X%\boldmath_____\boldmath & \unboldmathrX#latex2e_16.html#index-_005cboldmathrX \boldmathrX\boldmath & \unboldmathre]r(X%\boldmath_____\boldmath & \unboldmathrX%latex2e_16.html#index-_005cboldmath-1rX \boldmathrX\boldmath & \unboldmathre]r(X\bot_____math symbolsrXlatex2e_16.html#index-_005cbotrX\botrX Math symbolsre]r(X\bottomfraction_____floatsrX(latex2e_5.html#index-_005cbottomfractionrX\bottomfractionrXFloatsre]r(X\bottomfraction_____floatsrX*latex2e_5.html#index-_005cbottomfraction-1rX\bottomfractionrXFloatsre]r(X\bowtie_____math symbolsrX!latex2e_16.html#index-_005cbowtierX\bowtierX Math symbolsre]r(X\box_____math symbolsrXlatex2e_16.html#index-_005cBoxrX\BoxrX Math symbolsre]r(X\breve_____math accentsrX latex2e_16.html#index-_005cbreverX\breverX Math accentsre]r(X\bullet_____math symbolsrX!latex2e_16.html#index-_005cbulletrX\bulletrX Math symbolsre]r(X\c (cedilla accent)_____accentsrX5latex2e_23.html#index-_005cc-_0028cedilla-accent_0029rX\c (cedilla accent)rXAccentsre]r(X\cal_____font stylesrXlatex2e_4.html#index-_005ccalrX\calrX Font stylesre]r(X\cap_____math symbolsrXlatex2e_16.html#index-_005ccaprX\caprX Math symbolsre]r(X\capitalacute_____accentsrX'latex2e_23.html#index-_005ccapitalacuterX \capitalacuterXAccentsre]r(X\capitalbreve_____accentsrX'latex2e_23.html#index-_005ccapitalbreverX \capitalbreverXAccentsre]r(X\capitalcaron_____accentsr X'latex2e_23.html#index-_005ccapitalcaronr X \capitalcaronr XAccentsr e]r (X\capitalcedilla_____accentsrX)latex2e_23.html#index-_005ccapitalcedillarX\capitalcedillarXAccentsre]r(X\capitalcircumflex_____accentsrX,latex2e_23.html#index-_005ccapitalcircumflexrX\capitalcircumflexrXAccentsre]r(X\capitaldieresis_____accentsrX*latex2e_23.html#index-_005ccapitaldieresisrX\capitaldieresisrXAccentsre]r(X\capitaldotaccent_____accentsrX+latex2e_23.html#index-_005ccapitaldotaccentrX\capitaldotaccentrXAccentsr e]r!(X\capitalgrave_____accentsr"X'latex2e_23.html#index-_005ccapitalgraver#X \capitalgraver$XAccentsr%e]r&(X \capitalhungarumlaut_____accentsr'X.latex2e_23.html#index-_005ccapitalhungarumlautr(X\capitalhungarumlautr)XAccentsr*e]r+(X\capitalmacron_____accentsr,X(latex2e_23.html#index-_005ccapitalmacronr-X\capitalmacronr.XAccentsr/e]r0(X\capitalnewtie_____accentsr1X(latex2e_23.html#index-_005ccapitalnewtier2X\capitalnewtier3XAccentsr4e]r5(X\capitalogonek_____accentsr6X(latex2e_23.html#index-_005ccapitalogonekr7X\capitalogonekr8XAccentsr9e]r:(X\capitalring_____accentsr;X&latex2e_23.html#index-_005ccapitalringr<X \capitalringr=XAccentsr>e]r?(X\capitaltie_____accentsr@X%latex2e_23.html#index-_005ccapitaltierAX \capitaltierBXAccentsrCe]rD(X\capitaltilde_____accentsrEX'latex2e_23.html#index-_005ccapitaltilderFX \capitaltilderGXAccentsrHe]rI(X\caption_____figurerJX!latex2e_8.html#index-_005ccaptionrKX\captionrLXfigurerMe]rN(X\caption_____tablerOX#latex2e_8.html#index-_005ccaption-1rPX\captionrQXtablerRe]rS(X \cc_____\ccrTXlatex2e_26.html#index-_005cccrUX\ccrVX\ccrWe]rX(X\cdot_____math symbolsrYXlatex2e_16.html#index-_005ccdotrZX\cdotr[X Math symbolsr\e]r](X\cdots_____dotsr^X latex2e_16.html#index-_005ccdotsr_X\cdotsr`XDotsrae]rb(X\centering_____\centeringrcX#latex2e_8.html#index-_005ccenteringrdX \centeringreX \centeringrfe]rg(X\chapter_____sectioningrhX!latex2e_6.html#index-_005cchapterriX\chapterrjX Sectioningrke]rl(X\chapter_____\chapterrmX#latex2e_6.html#index-_005cchapter-1rnX\chapterroX\chapterrpe]rq(X\check_____math accentsrrX latex2e_16.html#index-_005ccheckrsX\checkrtX Math accentsrue]rv(X,\checkcommand_____class and package commandsrwX&latex2e_3.html#index-_005cCheckCommandrxX \CheckCommandryXClass and package commandsrze]r{(X-\checkcommand*_____class and package commandsr|X+latex2e_3.html#index-_005cCheckCommand_002ar}X\CheckCommand*r~XClass and package commandsre]r(X\chi_____math symbolsrXlatex2e_16.html#index-_005cchirX\chirX Math symbolsre]r(X\circ_____math symbolsrXlatex2e_16.html#index-_005ccircrX\circrX Math symbolsre]r(X\circle_____\circlerX latex2e_8.html#index-_005ccirclerX\circlerX\circlere]r(X\cite_____\citerXlatex2e_8.html#index-_005cciterX\citerX\citere]r(X*\classerror_____class and package commandsrX$latex2e_3.html#index-_005cClassErrorrX \ClassErrorrXClass and package commandsre]r(X)\classinfo_____class and package commandsrX#latex2e_3.html#index-_005cClassInforX \ClassInforXClass and package commandsre]r(X/\classinfonoline_____class and package commandsrX)latex2e_3.html#index-_005cClassInfoNoLinerX\ClassInfoNoLinerXClass and package commandsre]r(X,\classwarning_____class and package commandsrX&latex2e_3.html#index-_005cClassWarningrX \ClassWarningrXClass and package commandsre]r(X2\classwarningnoline_____class and package commandsrX,latex2e_3.html#index-_005cClassWarningNoLinerX\ClassWarningNoLinerXClass and package commandsre]r(X2\cleardoublepage_____\clearpage & \cleardoublepagerX*latex2e_10.html#index-_005ccleardoublepagerX\cleardoublepagerX!\clearpage & \cleardoublepagere]r(X,\clearpage_____\clearpage & \cleardoublepagerX$latex2e_10.html#index-_005cclearpagerX \clearpagerX!\clearpage & \cleardoublepagere]r(X\cline_____\clinerXlatex2e_8.html#index-_005cclinerX\clinerX\clinere]r(X\closing_____\closingrX"latex2e_26.html#index-_005cclosingrX\closingrX\closingre]r(X\clubsuit_____math symbolsrX#latex2e_16.html#index-_005cclubsuitrX \clubsuitrX Math symbolsre]r(X#\colon_____colon character & \colonrX latex2e_16.html#index-_005ccolonrX\colonrXColon character & \colonre]r(X\columnsep_____\twocolumnrX#latex2e_5.html#index-_005ccolumnseprX \columnseprX \twocolumnre]r(X%\columnsep_____page layout parametersrX%latex2e_5.html#index-_005ccolumnsep-1rX \columnseprXPage layout parametersre]r(X%\columnsep_____page layout parametersrX%latex2e_5.html#index-_005ccolumnsep-2rX \columnseprXPage layout parametersre]r(X\columnseprule_____\twocolumnrX'latex2e_5.html#index-_005ccolumnseprulerX\columnseprulerX \twocolumnre]r(X)\columnseprule_____page layout parametersrX)latex2e_5.html#index-_005ccolumnseprule-1rX\columnseprulerXPage layout parametersre]r(X)\columnseprule_____page layout parametersrX)latex2e_5.html#index-_005ccolumnseprule-2rX\columnseprulerXPage layout parametersre]r(X\columnwidth_____\twocolumnrX%latex2e_5.html#index-_005ccolumnwidthrX \columnwidthrX \twocolumnre]r(X'\columnwidth_____page layout parametersrX'latex2e_5.html#index-_005ccolumnwidth-1rX \columnwidthrXPage layout parametersre]r(X'\columnwidth_____page layout parametersrX'latex2e_5.html#index-_005ccolumnwidth-2rX \columnwidthrXPage layout parametersre]r(X\complement_____math symbolsrX%latex2e_16.html#index-_005ccomplementrX \complementrX Math symbolsre]r(X\cong_____math symbolsrXlatex2e_16.html#index-_005ccongrX\congrX Math symbolsre]r(X"\contentsline_____\addcontentslinerX'latex2e_25.html#index-_005ccontentslinerX \contentslinerX\addcontentslinere]r(X\coprod_____math symbolsrX!latex2e_16.html#index-_005ccoprodr X\coprodr X Math symbolsr e]r (X\copyright_____text symbolsr X$latex2e_23.html#index-_005ccopyrightrX \copyrightrX Text symbolsre]r(X\cos_____math functionsrXlatex2e_16.html#index-_005ccosrX\cosrXMath functionsre]r(X\cosh_____math functionsrXlatex2e_16.html#index-_005ccoshrX\coshrXMath functionsre]r(X\cot_____math functionsrXlatex2e_16.html#index-_005ccotrX\cotrXMath functionsre]r (X\coth_____math functionsr!Xlatex2e_16.html#index-_005ccothr"X\cothr#XMath functionsr$e]r%(X\csc_____math functionsr&Xlatex2e_16.html#index-_005ccscr'X\cscr(XMath functionsr)e]r*(X\cup_____math symbolsr+Xlatex2e_16.html#index-_005ccupr,X\cupr-X Math symbolsr.e]r/(X-\currentoption_____class and package commandsr0X'latex2e_3.html#index-_005cCurrentOptionr1X\CurrentOptionr2XClass and package commandsr3e]r4(X!\d (dot-under accent)_____accentsr5X;latex2e_23.html#index-_005cd-_0028dot_002dunder-accent_0029r6X\d (dot-under accent)r7XAccentsr8e]r9(X\dag_____text symbolsr:Xlatex2e_23.html#index-_005cdagr;X\dagr<X Text symbolsr=e]r>(X\dagger_____math symbolsr?X!latex2e_16.html#index-_005cdaggerr@X\daggerrAX Math symbolsrBe]rC(X\dashbox_____\dashboxrDX!latex2e_8.html#index-_005cdashboxrEX\dashboxrFX\dashboxrGe]rH(X\dashv_____math symbolsrIX latex2e_16.html#index-_005cdashvrJX\dashvrKX Math symbolsrLe]rM(X\date{text}_____\maketitlerNX-latex2e_18.html#index-_005cdate_007btext_007drOX \date{text}rPX \maketitlerQe]rR(X\day_____\day & \month & \yearrSXlatex2e_13.html#index-_005cdayrTX\dayrUX\day & \month & \yearrVe]rW(X$\dblfloatpagefraction_____\twocolumnrXX.latex2e_5.html#index-_005cdblfloatpagefractionrYX\dblfloatpagefractionrZX \twocolumnr[e]r\(X\dblfloatsep_____\twocolumnr]X%latex2e_5.html#index-_005cdblfloatsepr^X \dblfloatsepr_X \twocolumnr`e]ra(X\dbltextfloatsep_____\twocolumnrbX)latex2e_5.html#index-_005cdbltextfloatseprcX\dbltextfloatseprdX \twocolumnree]rf(X\dbltopfraction_____\twocolumnrgX(latex2e_5.html#index-_005cdbltopfractionrhX\dbltopfractionriX \twocolumnrje]rk(X\dbltopnumber_____\twocolumnrlX&latex2e_5.html#index-_005cdbltopnumberrmX \dbltopnumberrnX \twocolumnroe]rp(X\ddag_____text symbolsrqXlatex2e_23.html#index-_005cddagrrX\ddagrsX Text symbolsrte]ru(X\ddagger_____math symbolsrvX"latex2e_16.html#index-_005cddaggerrwX\ddaggerrxX Math symbolsrye]rz(X\ddot_____math accentsr{Xlatex2e_16.html#index-_005cddotr|X\ddotr}X Math accentsr~e]r(X\ddots_____dotsrX latex2e_16.html#index-_005cddotsrX\ddotsrXDotsre]r(X9\declaregraphicsextensions_____\declaregraphicsextensionsrX4latex2e_22.html#index-_005cDeclareGraphicsExtensionsrX\DeclareGraphicsExtensionsrX\DeclareGraphicsExtensionsre]r(X-\declaregraphicsrule_____\declaregraphicsrulerX.latex2e_22.html#index-_005cDeclareGraphicsRulerX\DeclareGraphicsRulerX\DeclareGraphicsRulere]r(X-\declareoption_____class and package commandsrX'latex2e_3.html#index-_005cDeclareOptionrX\DeclareOptionrXClass and package commandsre]r(X.\declareoption*_____class and package commandsrX,latex2e_3.html#index-_005cDeclareOption_002arX\DeclareOption*rXClass and package commandsre]r(X4\declarerobustcommand_____class and package commandsrX.latex2e_3.html#index-_005cDeclareRobustCommandrX\DeclareRobustCommandrXClass and package commandsre]r(X5\declarerobustcommand*_____class and package commandsrX3latex2e_3.html#index-_005cDeclareRobustCommand_002arX\DeclareRobustCommand*rXClass and package commandsre]r(X\deg_____math functionsrXlatex2e_16.html#index-_005cdegrX\degrXMath functionsre]r(X\delta_____math symbolsrX latex2e_16.html#index-_005cDeltarX\DeltarX Math symbolsre]r(X\delta_____math symbolsrX latex2e_16.html#index-_005cdeltarX\deltarX Math symbolsre]r(X\det_____math functionsrXlatex2e_16.html#index-_005cdetrX\detrXMath functionsre]r(X%\dh (ð)_____additional latin lettersrX)latex2e_23.html#index-_005cdh-_0028d_0029rX\dh (ð)rXAdditional Latin lettersre]r(X%\dh (ð)_____additional latin lettersrX)latex2e_23.html#index-_005cDH-_0028D_0029rX\DH (Ð)rXAdditional Latin lettersre]r(X\diamond_____math symbolsrX"latex2e_16.html#index-_005cDiamondrX\DiamondrX Math symbolsre]r(X\diamond_____math symbolsrX"latex2e_16.html#index-_005cdiamondrX\diamondrX Math symbolsre]r(X\diamondsuit_____math symbolsrX&latex2e_16.html#index-_005cdiamondsuitrX \diamondsuitrX Math symbolsre]r(X\dim_____math functionsrXlatex2e_16.html#index-_005cdimrX\dimrXMath functionsre]r(X\displaystyle_____math formulasrX'latex2e_16.html#index-_005cdisplaystylerX \displaystylerX Math formulasre]r(X\div_____math symbolsrXlatex2e_16.html#index-_005cdivrX\divrX Math symbolsre]r(X \dj_____additional latin lettersrXlatex2e_23.html#index-_005cdjrX\djrXAdditional Latin lettersre]r(X \dj_____additional latin lettersrXlatex2e_23.html#index-_005cDJrX\DJrXAdditional Latin lettersre]r(X#\documentclass_____document classesrX'latex2e_3.html#index-_005cdocumentclassrX\documentclassrXDocument classesre]r(X\dot_____math accentsrXlatex2e_16.html#index-_005cdotrX\dotrX Math accentsre]r(X\doteq_____math symbolsrX latex2e_16.html#index-_005cdoteqrX\doteqrX Math symbolsre]r(X"\dotfill_____\hrulefill & \dotfillrX"latex2e_19.html#index-_005cdotfillrX\dotfillrX\hrulefill & \dotfillre]r(X\dots_____text symbolsrXlatex2e_23.html#index-_005cdotsrX\dotsrX Text symbolsre]r(X\doublerulesep_____tabularrX'latex2e_8.html#index-_005cdoubleruleseprX\doubleruleseprXtabularre]r(X\downarrow_____math symbolsrX$latex2e_16.html#index-_005cdownarrowrX \downarrowr X Math symbolsr e]r (X\downarrow_____math symbolsr X$latex2e_16.html#index-_005cDownarrowr X \DownarrowrX Math symbolsre]r(X\ell_____math symbolsrXlatex2e_16.html#index-_005cellrX\ellrX Math symbolsre]r(X\emph_____font stylesrXlatex2e_4.html#index-_005cemphrX\emphrX Font stylesre]r(X\emptyset_____math symbolsrX#latex2e_16.html#index-_005cemptysetrX \emptysetrX Math symbolsre]r(X\encl_____\enclr Xlatex2e_26.html#index-_005cenclr!X\enclr"X\enclr#e]r$(X\end_____environmentsr%Xlatex2e_8.html#index-_005cendr&X\endr'X Environmentsr(e]r)(X\endinput_____\endinputr*X#latex2e_24.html#index-_005cendinputr+X \endinputr,X \endinputr-e]r.(X%\enlargethispage_____\enlargethispager/X*latex2e_10.html#index-_005cenlargethispager0X\enlargethispager1X\enlargethispager2e]r3(X&\enspace_____\enspace & \quad & \qquadr4X"latex2e_19.html#index-_005censpacer5X\enspacer6X!\enspace & \quad & \qquadr7e]r8(X\enumi_____enumerater9Xlatex2e_8.html#index-_005cenumir:X\enumir;X enumerater<e]r=(X\enumii_____enumerater>X latex2e_8.html#index-_005cenumiir?X\enumiir@X enumeraterAe]rB(X\enumiii_____enumeraterCX!latex2e_8.html#index-_005cenumiiirDX\enumiiirEX enumeraterFe]rG(X\enumiv_____enumeraterHX latex2e_8.html#index-_005cenumivrIX\enumivrJX enumeraterKe]rL(X\epsilon_____math symbolsrMX"latex2e_16.html#index-_005cepsilonrNX\epsilonrOX Math symbolsrPe]rQ(X\equiv_____math symbolsrRX latex2e_16.html#index-_005cequivrSX\equivrTX Math symbolsrUe]rV(X\eta_____math symbolsrWXlatex2e_16.html#index-_005cetarXX\etarYX Math symbolsrZe]r[(X*\evensidemargin_____document class optionsr\X(latex2e_3.html#index-_005cevensidemarginr]X\evensidemarginr^XDocument class optionsr_e]r`(X*\evensidemargin_____page layout parametersraX*latex2e_5.html#index-_005cevensidemargin-1rbX\evensidemarginrcXPage layout parametersrde]re(X*\evensidemargin_____page layout parametersrfX*latex2e_5.html#index-_005cevensidemargin-2rgX\evensidemarginrhXPage layout parametersrie]rj(X.\executeoptions_____class and package commandsrkX(latex2e_3.html#index-_005cExecuteOptionsrlX\ExecuteOptionsrmXClass and package commandsrne]ro(X\exists_____math symbolsrpX!latex2e_16.html#index-_005cexistsrqX\existsrrX Math symbolsrse]rt(X\exp_____math functionsruXlatex2e_16.html#index-_005cexprvX\exprwXMath functionsrxe]ry(X\extracolsep_____tabularrzX%latex2e_8.html#index-_005cextracolsepr{X \extracolsepr|Xtabularr}e]r~(X\fbox_____\fbox & \frameboxrXlatex2e_20.html#index-_005cfboxrX\fboxrX\fbox & \frameboxre]r(X!\fboxrule_____\framebox (picture)rX$latex2e_8.html#index-_005cfboxrule-1rX \fboxrulerX\framebox (picture)re]r(X\fboxrule_____\fbox & \frameboxrX#latex2e_20.html#index-_005cfboxrulerX \fboxrulerX\fbox & \frameboxre]r(X\fboxrule_____\fbox & \frameboxrX%latex2e_20.html#index-_005cfboxrule-2rX \fboxrulerX\fbox & \frameboxre]r(X \fboxsep_____\framebox (picture)rX#latex2e_8.html#index-_005cfboxsep-1rX\fboxseprX\framebox (picture)re]r(X\fboxsep_____\fbox & \frameboxrX"latex2e_20.html#index-_005cfboxseprX\fboxseprX\fbox & \frameboxre]r(X\fboxsep_____\fbox & \frameboxrX$latex2e_20.html#index-_005cfboxsep-2rX\fboxseprX\fbox & \frameboxre]r(X\fill_____\hfillrXlatex2e_19.html#index-_005cfillrX\fillrX\hfillre]r(X\flat_____math symbolsrXlatex2e_16.html#index-_005cflatrX\flatrX Math symbolsre]r(X\floatpagefraction_____floatsrX+latex2e_5.html#index-_005cfloatpagefractionrX\floatpagefractionrXFloatsre]r(X\floatpagefraction_____floatsrX-latex2e_5.html#index-_005cfloatpagefraction-1rX\floatpagefractionrXFloatsre]r(X\floatsep_____floatsrX"latex2e_5.html#index-_005cfloatseprX \floatseprXFloatsre]r(X\floatsep_____floatsrX$latex2e_5.html#index-_005cfloatsep-1rX \floatseprXFloatsre]r(X\flushbottom_____\flushbottomrX%latex2e_5.html#index-_005cflushbottomrX \flushbottomrX \flushbottomre]r(X&\fnsymbol, and footnotes_____\footnoterX6latex2e_11.html#index-_005cfnsymbol_002c-and-footnotesrX\fnsymbol, and footnotesrX \footnotere]r(XB\fnsymbol{counter}_____\alph \alph \arabic \roman \roman \fnsymbolrX4latex2e_13.html#index-_005cfnsymbol_007bcounter_007drX\fnsymbol{counter}rX+\alph \Alph \arabic \roman \Roman \fnsymbolre]r(X)\fontencoding_____low-level font commandsrX&latex2e_4.html#index-_005cfontencodingrX \fontencodingrXLow-level font commandsre]r(X'\fontfamily_____low-level font commandsrX$latex2e_4.html#index-_005cfontfamilyrX \fontfamilyrXLow-level font commandsre]r(X'\fontseries_____low-level font commandsrX$latex2e_4.html#index-_005cfontseriesrX \fontseriesrXLow-level font commandsre]r(X&\fontshape_____low-level font commandsrX#latex2e_4.html#index-_005cfontshaperX \fontshaperXLow-level font commandsre]r(X%\fontsize_____low-level font commandsrX"latex2e_4.html#index-_005cfontsizerX \fontsizerXLow-level font commandsre]r(X\footnote_____\footnoterX#latex2e_11.html#index-_005cfootnoterX \footnoterX \footnotere]r(X\footnotemark_____\footnotemarkrX'latex2e_11.html#index-_005cfootnotemarkrX \footnotemarkrX \footnotemarkre]r(X\footnoterule_____\footnoterX'latex2e_11.html#index-_005cfootnoterulerX \footnoterulerX \footnotere]r(X\footnotesep_____\footnoterX&latex2e_11.html#index-_005cfootnoteseprX \footnoteseprX \footnotere]r(X\footnotesize_____font sizesrX&latex2e_4.html#index-_005cfootnotesizerX \footnotesizerX Font sizesre]r(X\footnotetext_____\footnotetextrX'latex2e_11.html#index-_005cfootnotetextrX \footnotetextrX \footnotetextre]r(X$\footskip_____page layout parametersrX"latex2e_5.html#index-_005cfootskiprX \footskiprXPage layout parametersr e]r (X$\footskip_____page layout parametersr X$latex2e_5.html#index-_005cfootskip-1r X \footskipr XPage layout parametersre]r(X\forall_____math symbolsrX!latex2e_16.html#index-_005cforallrX\forallrX Math symbolsre]r(X\frac_____\fracrXlatex2e_16.html#index-_005cfracrX\fracrX\fracre]r(X\frame_____\framerXlatex2e_8.html#index-_005cframerX\framerX\framere]r(X!\framebox_____\framebox (picture)rX"latex2e_8.html#index-_005cframeboxr X \frameboxr!X\framebox (picture)r"e]r#(X\framebox_____\fbox & \frameboxr$X%latex2e_20.html#index-_005cframebox-1r%X \frameboxr&X\fbox & \frameboxr'e]r((X!\frenchspacing_____\frenchspacingr)X(latex2e_19.html#index-_005cfrenchspacingr*X\frenchspacingr+X\frenchspacingr,e]r-(X9\frontmatter_____\frontmatter & \mainmatter & \backmatterr.X%latex2e_6.html#index-_005cfrontmatterr/X \frontmatterr0X0\frontmatter & \mainmatter & \backmatterr1e]r2(X\frown_____math symbolsr3X latex2e_16.html#index-_005cfrownr4X\frownr5X Math symbolsr6e]r7(X\fussy_____\fussy & \sloppyr8Xlatex2e_9.html#index-_005cfussyr9X\fussyr:X\fussy & \sloppyr;e]r<(X\gamma_____math symbolsr=X latex2e_16.html#index-_005cGammar>X\Gammar?X Math symbolsr@e]rA(X\gamma_____math symbolsrBX latex2e_16.html#index-_005cgammarCX\gammarDX Math symbolsrEe]rF(X\gcd_____math functionsrGXlatex2e_16.html#index-_005cgcdrHX\gcdrIXMath functionsrJe]rK(X\ge_____math symbolsrLXlatex2e_16.html#index-_005cgerMX\gerNX Math symbolsrOe]rP(X\geq_____math symbolsrQXlatex2e_16.html#index-_005cgeqrRX\geqrSX Math symbolsrTe]rU(X\gets_____math symbolsrVXlatex2e_16.html#index-_005cgetsrWX\getsrXX Math symbolsrYe]rZ(X\gg_____math symbolsr[Xlatex2e_16.html#index-_005cggr\X\ggr]X Math symbolsr^e]r_(X \gls_____\glsr`Xlatex2e_25.html#index-_005cglsraX\glsrbX\glsrce]rd(X\graphicspath_____\graphicspathreX'latex2e_22.html#index-_005cgraphicspathrfX \graphicspathrgX \graphicspathrhe]ri(X\graphpaper_____\graphpaperrjX$latex2e_8.html#index-_005cgraphpaperrkX \graphpaperrlX \graphpaperrme]rn(X\grave_____math accentsroX latex2e_16.html#index-_005cgraverpX\graverqX Math accentsrre]rs(X$\guillemotleft («)_____text symbolsrtX8latex2e_23.html#index-_005cguillemotleft-_0028_00ab_0029ruX\guillemotleft («)rvX Text symbolsrwe]rx(X%\guillemotright (»)_____text symbolsryX9latex2e_23.html#index-_005cguillemotright-_0028_00bb_0029rzX\guillemotright (»)r{X Text symbolsr|e]r}(X%\guilsinglleft (‹)_____text symbolsr~X8latex2e_23.html#index-_005cguilsinglleft-_0028_2039_0029rX\guilsinglleft (‹)rX Text symbolsre]r(X&\guilsinglright (›)_____text symbolsrX9latex2e_23.html#index-_005cguilsinglright-_0028_203a_0029rX\guilsinglright (›)rX Text symbolsre]r(X(\h (hungarian umlaut accent)_____accentsrX>latex2e_23.html#index-_005cH-_0028Hungarian-umlaut-accent_0029rX\H (Hungarian umlaut accent)rXAccentsre]r(X\hat_____math accentsrXlatex2e_16.html#index-_005chatrX\hatrX Math accentsre]r(X\hbar_____math symbolsrXlatex2e_16.html#index-_005chbarrX\hbarrX Math symbolsre]r(X&\headheight_____page layout parametersrX$latex2e_5.html#index-_005cheadheightrX \headheightrXPage layout parametersre]r(X&\headheight_____page layout parametersrX&latex2e_5.html#index-_005cheadheight-1rX \headheightrXPage layout parametersre]r(X#\headsep_____page layout parametersrX!latex2e_5.html#index-_005cheadseprX\headseprXPage layout parametersre]r(X#\headsep_____page layout parametersrX#latex2e_5.html#index-_005cheadsep-1rX\headseprXPage layout parametersre]r(X\heartsuit_____math symbolsrX$latex2e_16.html#index-_005cheartsuitrX \heartsuitrX Math symbolsre]r(X\hfill_____\hfillrX latex2e_19.html#index-_005chfillrX\hfillrX\hfillre]r(X\hline_____\hlinerXlatex2e_8.html#index-_005chlinerX\hlinerX\hlinere]r(X\hom_____math functionsrXlatex2e_16.html#index-_005chomrX\homrXMath functionsre]r(X\hookleftarrow_____math symbolsrX(latex2e_16.html#index-_005chookleftarrowrX\hookleftarrowrX Math symbolsre]r(X \hookrightarrow_____math symbolsrX)latex2e_16.html#index-_005chookrightarrowrX\hookrightarrowrX Math symbolsre]r(X$\hrulefill_____\hrulefill & \dotfillrX$latex2e_19.html#index-_005chrulefillrX \hrulefillrX\hrulefill & \dotfillre]r(X!\hsize_____page layout parametersrXlatex2e_5.html#index-_005chsizerX\hsizerXPage layout parametersre]r(X!\hsize_____page layout parametersrX!latex2e_5.html#index-_005chsize-1rX\hsizerXPage layout parametersre]r(X\hspace_____\hspacerX!latex2e_19.html#index-_005chspacerX\hspacerX\hspacere]r(X \hss_____\hssrXlatex2e_19.html#index-_005chssrX\hssrX\hssre]r(X\huge_____font sizesrXlatex2e_4.html#index-_005chugerX\hugerX Font sizesre]r(X\huge_____font sizesrXlatex2e_4.html#index-_005cHugerX\HugerX Font sizesre]r(X\hyphenation_____\hyphenationrX%latex2e_9.html#index-_005chyphenationrX \hyphenationrX \hyphenationre]r(X\i (dotless i)_____accentsrX0latex2e_23.html#index-_005ci-_0028dotless-i_0029rX\i (dotless i)rXAccentsre]r(X\iff_____math symbolsrXlatex2e_16.html#index-_005ciffrX\iffrX Math symbolsre]r(X,\iffileexists_____class and package commandsrX&latex2e_3.html#index-_005cIfFileExistsrX \IfFileExistsrXClass and package commandsre]r(X7\ignorespaces_____\ignorespaces & \ignorespacesafterendrX'latex2e_12.html#index-_005cignorespacesrX \ignorespacesrX)\ignorespaces & \ignorespacesafterendre]r(X?\ignorespacesafterend_____\ignorespaces & \ignorespacesafterendrX/latex2e_12.html#index-_005cignorespacesafterendrX\ignorespacesafterendrX)\ignorespaces & \ignorespacesafterendre]r (X%\ij (ij)_____additional latin lettersr X*latex2e_23.html#index-_005cij-_0028ij_0029r X\ij (ij)r XAdditional Latin lettersr e]r(X%\ij (ij)_____additional latin lettersrX*latex2e_23.html#index-_005cIJ-_0028IJ_0029rX\IJ (IJ)rXAdditional Latin lettersre]r(X\im_____math symbolsrXlatex2e_16.html#index-_005cImrX\ImrX Math symbolsre]r(X\imath_____math symbolsrX latex2e_16.html#index-_005cimathrX\imathrX Math symbolsre]r(X\in_____math symbolsrXlatex2e_16.html#index-_005cinrX\inr X Math symbolsr!e]r"(X$\include_____\include & \includeonlyr#X"latex2e_24.html#index-_005cincluder$X\includer%X\include & \includeonlyr&e]r'(X%\includegraphics_____\includegraphicsr(X*latex2e_22.html#index-_005cincludegraphicsr)X\includegraphicsr*X\includegraphicsr+e]r,(X(\includeonly_____\include & \includeonlyr-X&latex2e_24.html#index-_005cincludeonlyr.X \includeonlyr/X\include & \includeonlyr0e]r1(X\indent_____\indent & \noindentr2X!latex2e_15.html#index-_005cindentr3X\indentr4X\indent & \noindentr5e]r6(X\index_____indexesr7X latex2e_25.html#index-_005cindexr8X\indexr9XIndexesr:e]r;(X\index_____\indexr<X"latex2e_25.html#index-_005cindex-1r=X\indexr>X\indexr?e]r@(X\indexentry_____\indexrAX%latex2e_25.html#index-_005cindexentryrBX \indexentryrCX\indexrDe]rE(X\indexspace_____makeindexrFX%latex2e_25.html#index-_005cindexspacerGX \indexspacerHX makeindexrIe]rJ(X\inf_____math functionsrKXlatex2e_16.html#index-_005cinfrLX\infrMXMath functionsrNe]rO(X\infty_____math symbolsrPX latex2e_16.html#index-_005cinftyrQX\inftyrRX Math symbolsrSe]rT(X\input_____\inputrUX latex2e_24.html#index-_005cinputrVX\inputrWX\inputrXe]rY(X1\inputiffileexists_____class and package commandsrZX+latex2e_3.html#index-_005cInputIfFileExistsr[X\InputIfFileExistsr\XClass and package commandsr]e]r^(X\int_____math symbolsr_Xlatex2e_16.html#index-_005cintr`X\intraX Math symbolsrbe]rc(X\intextsep_____floatsrdX#latex2e_5.html#index-_005cintextsepreX \intextseprfXFloatsrge]rh(X\intextsep_____floatsriX%latex2e_5.html#index-_005cintextsep-1rjX \intextseprkXFloatsrle]rm(X\iota_____math symbolsrnXlatex2e_16.html#index-_005ciotaroX\iotarpX Math symbolsrqe]rr(X\it_____font stylesrsXlatex2e_4.html#index-_005citrtX\itruX Font stylesrve]rw(X\item_____descriptionrxXlatex2e_8.html#index-_005citemryX\itemrzX descriptionr{e]r|(X\item_____enumerater}X latex2e_8.html#index-_005citem-1r~X\itemrX enumeratere]r(X\item_____itemizerX latex2e_8.html#index-_005citem-2rX\itemrXitemizere]r(X\item_____itemizerX latex2e_8.html#index-_005citem-3rX\itemrXitemizere]r(X\itemindent_____listrX$latex2e_8.html#index-_005citemindentrX \itemindentrXlistre]r(X\itemsep_____listrX!latex2e_8.html#index-_005citemseprX\itemseprXlistre]r(X\itshape_____font stylesrX!latex2e_4.html#index-_005citshaperX\itshaperX Font stylesre]r(X\j (dotless j)_____accentsrX0latex2e_23.html#index-_005cj-_0028dotless-j_0029rX\j (dotless j)rXAccentsre]r(X\jmath_____math symbolsrX latex2e_16.html#index-_005cjmathrX\jmathrX Math symbolsre]r(X\join_____math symbolsrXlatex2e_16.html#index-_005cJoinrX\JoinrX Math symbolsre]r(X\k (ogonek)_____accentsrX-latex2e_23.html#index-_005ck-_0028ogonek_0029rX \k (ogonek)rXAccentsre]r(X\kappa_____math symbolsrX latex2e_16.html#index-_005ckapparX\kapparX Math symbolsre]r(X\ker_____math functionsrXlatex2e_16.html#index-_005ckerrX\kerrXMath functionsre]r(X\kill_____tabbingrXlatex2e_8.html#index-_005ckillrX\killrXtabbingre]r(X$\l (ł)_____additional latin lettersrX(latex2e_23.html#index-_005cl-_0028l_0029rX\l (ł)rXAdditional Latin lettersre]r(X$\l (ł)_____additional latin lettersrX(latex2e_23.html#index-_005cL-_0028L_0029rX\L (Ł)rXAdditional Latin lettersre]r(X\label_____\labelrXlatex2e_7.html#index-_005clabelrX\labelrX\labelre]r(X\labelenumi_____enumeraterX$latex2e_8.html#index-_005clabelenumirX \labelenumirX enumeratere]r(X\labelenumii_____enumeraterX%latex2e_8.html#index-_005clabelenumiirX \labelenumiirX enumeratere]r(X\labelenumiii_____enumeraterX&latex2e_8.html#index-_005clabelenumiiirX \labelenumiiirX enumeratere]r(X\labelenumiv_____enumeraterX%latex2e_8.html#index-_005clabelenumivrX \labelenumivrX enumeratere]r(X\labelitemi_____itemizerX$latex2e_8.html#index-_005clabelitemirX \labelitemirXitemizere]r(X\labelitemii_____itemizerX%latex2e_8.html#index-_005clabelitemiirX \labelitemiirXitemizere]r(X\labelitemiii_____itemizerX&latex2e_8.html#index-_005clabelitemiiirX \labelitemiiirXitemizere]r(X\labelitemiv_____itemizerX%latex2e_8.html#index-_005clabelitemivrX \labelitemivrXitemizere]r(X\labelsep_____listrX"latex2e_8.html#index-_005clabelseprX \labelseprXlistre]r(X\labelwidth_____listrX$latex2e_8.html#index-_005clabelwidthrX \labelwidthrXlistre]r(X\lambda_____math symbolsrX!latex2e_16.html#index-_005cLambdarX\LambdarX Math symbolsre]r(X\lambda_____math symbolsrX!latex2e_16.html#index-_005clambdarX\lambdarX Math symbolsre]r(X\land_____math symbolsr Xlatex2e_16.html#index-_005clandr X\landr X Math symbolsr e]r (X\langle_____math symbolsrX!latex2e_16.html#index-_005clanglerX\langlerX Math symbolsre]r(X\large_____font sizesrXlatex2e_4.html#index-_005clargerX\largerX Font sizesre]r(X\large_____font sizesrXlatex2e_4.html#index-_005cLargerX\LargerX Font sizesre]r(X\large_____font sizesrXlatex2e_4.html#index-_005cLARGErX\LARGErX Font sizesr e]r!(X\latex_____text symbolsr"X latex2e_23.html#index-_005cLaTeXr#X\LaTeXr$X Text symbolsr%e]r&(X\latexe_____text symbolsr'X!latex2e_23.html#index-_005cLaTeXer(X\LaTeXer)X Text symbolsr*e]r+(X\lbrace_____math symbolsr,X!latex2e_16.html#index-_005clbracer-X\lbracer.X Math symbolsr/e]r0(X\lbrack_____math symbolsr1X!latex2e_16.html#index-_005clbrackr2X\lbrackr3X Math symbolsr4e]r5(X\lceil_____math symbolsr6X latex2e_16.html#index-_005clceilr7X\lceilr8X Math symbolsr9e]r:(X\ldots_____dotsr;X latex2e_16.html#index-_005cldotsr<X\ldotsr=XDotsr>e]r?(X\ldots_____text symbolsr@X"latex2e_23.html#index-_005cldots-1rAX\ldotsrBX Text symbolsrCe]rD(X\le_____math symbolsrEXlatex2e_16.html#index-_005clerFX\lerGX Math symbolsrHe]rI(X\leadsto_____math symbolsrJX"latex2e_16.html#index-_005cleadstorKX\leadstorLX Math symbolsrMe]rN(X\left_____\left & \rightrOXlatex2e_16.html#index-_005cleftrPX\leftrQX\left & \rightrRe]rS(X\leftarrow_____math symbolsrTX$latex2e_16.html#index-_005cLeftarrowrUX \LeftarrowrVX Math symbolsrWe]rX(X\leftarrow_____math symbolsrYX$latex2e_16.html#index-_005cleftarrowrZX \leftarrowr[X Math symbolsr\e]r](X\lefteqn_____eqnarrayr^X!latex2e_8.html#index-_005clefteqnr_X\lefteqnr`Xeqnarrayrae]rb(X!\leftharpoondown_____math symbolsrcX*latex2e_16.html#index-_005cleftharpoondownrdX\leftharpoondownreX Math symbolsrfe]rg(X\leftharpoonup_____math symbolsrhX(latex2e_16.html#index-_005cleftharpoonupriX\leftharpoonuprjX Math symbolsrke]rl(X\leftmargin_____itemizermX$latex2e_8.html#index-_005cleftmarginrnX \leftmarginroXitemizerpe]rq(X\leftmargin_____listrrX&latex2e_8.html#index-_005cleftmargin-1rsX \leftmarginrtXlistrue]rv(X\leftmargini_____itemizerwX%latex2e_8.html#index-_005cleftmarginirxX \leftmarginiryXitemizerze]r{(X\leftmarginii_____itemizer|X&latex2e_8.html#index-_005cleftmarginiir}X \leftmarginiir~Xitemizere]r(X\leftmarginiii_____itemizerX'latex2e_8.html#index-_005cleftmarginiiirX\leftmarginiiirXitemizere]r(X\leftmarginiv_____itemizerX&latex2e_8.html#index-_005cleftmarginivrX \leftmarginivrXitemizere]r(X\leftmarginv_____itemizerX%latex2e_8.html#index-_005cleftmarginvrX \leftmarginvrXitemizere]r(X\leftmarginvi_____itemizerX&latex2e_8.html#index-_005cleftmarginvirX \leftmarginvirXitemizere]r(X \leftrightarrow_____math symbolsrX)latex2e_16.html#index-_005cLeftrightarrowrX\LeftrightarrowrX Math symbolsre]r(X \leftrightarrow_____math symbolsrX)latex2e_16.html#index-_005cleftrightarrowrX\leftrightarrowrX Math symbolsre]r(X\leq_____math symbolsrXlatex2e_16.html#index-_005cleqrX\leqrX Math symbolsre]r(X\lfloor_____math symbolsrX!latex2e_16.html#index-_005clfloorrX\lfloorrX Math symbolsre]r(X\lg_____math functionsrXlatex2e_16.html#index-_005clgrX\lgrXMath functionsre]r(X\lhd_____math symbolsrXlatex2e_16.html#index-_005clhdrX\lhdrX Math symbolsre]r(X\lim_____math functionsrXlatex2e_16.html#index-_005climrX\limrXMath functionsre]r(X\liminf_____math functionsrX!latex2e_16.html#index-_005climinfrX\liminfrXMath functionsre]r(X\limsup_____math functionsrX!latex2e_16.html#index-_005climsuprX\limsuprXMath functionsre]r(X\line_____\linerXlatex2e_8.html#index-_005clinerX\linerX\linere]r(X(\linebreak_____\linebreak & \nolinebreakrX#latex2e_9.html#index-_005clinebreakrX \linebreakrX\linebreak & \nolinebreakre]r(X'\linespread_____low-level font commandsrX$latex2e_4.html#index-_005clinespreadrX \linespreadrXLow-level font commandsre]r(X!\linethickness_____\linethicknessrX'latex2e_8.html#index-_005clinethicknessrX\linethicknessrX\linethicknessre]r(X%\linewidth_____page layout parametersrX#latex2e_5.html#index-_005clinewidthrX \linewidthrXPage layout parametersre]r(X%\linewidth_____page layout parametersrX%latex2e_5.html#index-_005clinewidth-1rX \linewidthrXPage layout parametersre]r(X)\listoffigures_____table of contents etc.rX(latex2e_25.html#index-_005clistoffiguresrX\listoffiguresrXTable of contents etc.re]r(X(\listoftables_____table of contents etc.rX'latex2e_25.html#index-_005clistoftablesrX \listoftablesrXTable of contents etc.re]r(X\listparindent_____listrX'latex2e_8.html#index-_005clistparindentrX\listparindentrXlistre]r(X\ll_____math symbolsrXlatex2e_16.html#index-_005cllrX\llrX Math symbolsre]r(X\ln_____math functionsrXlatex2e_16.html#index-_005clnrX\lnrXMath functionsre]r(X\lnot_____math symbolsrXlatex2e_16.html#index-_005clnotrX\lnotrX Math symbolsre]r(X)\loadclass_____class and package commandsrX#latex2e_3.html#index-_005cLoadClassrX \LoadClassr XClass and package commandsr e]r (X4\loadclasswithoptions_____class and package commandsr X.latex2e_3.html#index-_005cLoadClassWithOptionsr X\LoadClassWithOptionsr XClass and package commandsr e]r (X\location_____\locationr X#latex2e_26.html#index-_005clocationr X \locationr X \locationr e]r (X\log_____math functionsr Xlatex2e_16.html#index-_005clogr X\logr XMath functionsr e]r (X\longleftarrow_____math symbolsr X(latex2e_16.html#index-_005clongleftarrowr X\longleftarrowr X Math symbolsr e]r (X$\longleftrightarrow_____math symbolsr X-latex2e_16.html#index-_005clongleftrightarrowr X\longleftrightarrowr X Math symbolsr e]r (X\longmapsto_____math symbolsr X%latex2e_16.html#index-_005clongmapstor X \longmapstor X Math symbolsr e]r (X \longrightarrow_____math symbolsr! X)latex2e_16.html#index-_005clongrightarrowr" X\longrightarrowr# X Math symbolsr$ e]r% (X\lor_____math symbolsr& Xlatex2e_16.html#index-_005clorr' X\lorr( X Math symbolsr) e]r* (X\lq_____text symbolsr+ Xlatex2e_23.html#index-_005clqr, X\lqr- X Text symbolsr. e]r/ (X8\mainmatter_____\frontmatter & \mainmatter & \backmatterr0 X$latex2e_6.html#index-_005cmainmatterr1 X \mainmatterr2 X0\frontmatter & \mainmatter & \backmatterr3 e]r4 (X\makebox_____\mbox & \makeboxr5 X"latex2e_20.html#index-_005cmakeboxr6 X\makeboxr7 X\mbox & \makeboxr8 e]r9 (X-\makebox (for picture)_____\makebox (picture)r: X7latex2e_8.html#index-_005cmakebox-_0028for-picture_0029r; X\makebox (for picture)r< X\makebox (picture)r= e]r> (X\makeglossary_____glossariesr? X'latex2e_25.html#index-_005cmakeglossaryr@ X \makeglossaryrA X GlossariesrB e]rC (X\makeglossary_____glossariesrD X)latex2e_25.html#index-_005cmakeglossary-1rE X \makeglossaryrF X GlossariesrG e]rH (X\makeindex_____indexesrI X$latex2e_25.html#index-_005cmakeindexrJ X \makeindexrK XIndexesrL e]rM (X\makelabel_____listrN X#latex2e_8.html#index-_005cmakelabelrO X \makelabelrP XlistrQ e]rR (X\makelabels_____\makelabelsrS X%latex2e_26.html#index-_005cmakelabelsrT X \makelabelsrU X \makelabelsrV e]rW (X\maketitle_____\maketitlerX X$latex2e_18.html#index-_005cmaketitlerY X \maketitlerZ X \maketitler[ e]r\ (X\mapsto_____math symbolsr] X!latex2e_16.html#index-_005cmapstor^ X\mapstor_ X Math symbolsr` e]ra (X\marginpar_____marginal notesrb X$latex2e_15.html#index-_005cmarginparrc X \marginparrd XMarginal notesre e]rf (X)\marginparpush_____page layout parametersrg X'latex2e_5.html#index-_005cmarginparpushrh X\marginparpushri XPage layout parametersrj e]rk (X)\marginparpush_____page layout parametersrl X)latex2e_5.html#index-_005cmarginparpush-1rm X\marginparpushrn XPage layout parametersro e]rp (X!\marginparpush_____marginal notesrq X*latex2e_15.html#index-_005cmarginparpush-2rr X\marginparpushrs XMarginal notesrt e]ru (X \marginparsep_____marginal notesrv X'latex2e_15.html#index-_005cmarginparseprw X \marginparseprx XMarginal notesry e]rz (X*\marginparwidth_____page layout parametersr{ X(latex2e_5.html#index-_005cmarginparwidthr| X\marginparwidthr} XPage layout parametersr~ e]r (X*\marginparwidth_____page layout parametersr X*latex2e_5.html#index-_005cmarginparwidth-1r X\marginparwidthr XPage layout parametersr e]r (X"\marginparwidth_____marginal notesr X+latex2e_15.html#index-_005cmarginparwidth-2r X\marginparwidthr XMarginal notesr e]r (X%\marginsep_____page layout parametersr X#latex2e_5.html#index-_005cmarginsepr X \marginsepr XPage layout parametersr e]r (X%\marginsep_____page layout parametersr X%latex2e_5.html#index-_005cmarginsep-1r X \marginsepr XPage layout parametersr e]r (X/\markboth{left-head}{right-head}_____\pagestyler XRlatex2e_18.html#index-_005cmarkboth_007bleft_002dhead_007d_007bright_002dhead_007dr X \markboth{left-head}{right-head}r X \pagestyler e]r (X \markright{right}_____\pagestyler X3latex2e_18.html#index-_005cmarkright_007bright_007dr X\markright{right}r X \pagestyler e]r (X\mathbf_____font stylesr X latex2e_4.html#index-_005cmathbfr X\mathbfr X Font stylesr e]r (X\mathcal_____font stylesr X!latex2e_4.html#index-_005cmathcalr X\mathcalr X Font stylesr e]r (X\mathdollar_____math symbolsr X%latex2e_16.html#index-_005cmathdollarr X \mathdollarr X Math symbolsr e]r (X\mathnormal_____font stylesr X$latex2e_4.html#index-_005cmathnormalr X \mathnormalr X Font stylesr e]r (X\mathparagraph_____math symbolsr X(latex2e_16.html#index-_005cmathparagraphr X\mathparagraphr X Math symbolsr e]r (X\mathring_____math accentsr X#latex2e_16.html#index-_005cmathringr X \mathringr X Math accentsr e]r (X\mathrm_____font stylesr X latex2e_4.html#index-_005cmathrmr X\mathrmr X Font stylesr e]r (X\mathsection_____math symbolsr X&latex2e_16.html#index-_005cmathsectionr X \mathsectionr X Math symbolsr e]r (X\mathsf_____font stylesr X latex2e_4.html#index-_005cmathsfr X\mathsfr X Font stylesr e]r (X\mathsterling_____math symbolsr X'latex2e_16.html#index-_005cmathsterlingr X \mathsterlingr X Math symbolsr e]r (X\mathtt_____font stylesr X latex2e_4.html#index-_005cmathttr X\mathttr X Font stylesr e]r (X \mathunderscore_____math symbolsr X)latex2e_16.html#index-_005cmathunderscorer X\mathunderscorer X Math symbolsr e]r (X\mathversion_____font stylesr X%latex2e_4.html#index-_005cmathversionr X \mathversionr X Font stylesr e]r (X\max_____math functionsr Xlatex2e_16.html#index-_005cmaxr X\maxr XMath functionsr e]r (X\mbox_____\mbox & \makeboxr Xlatex2e_20.html#index-_005cmboxr X\mboxr X\mbox & \makeboxr e]r (X\mdseries_____font stylesr X"latex2e_4.html#index-_005cmdseriesr X \mdseriesr X Font stylesr e]r (X-\medskip_____\bigskip & \medskip & \smallskipr X"latex2e_19.html#index-_005cmedskipr X\medskipr X(\bigskip & \medskip & \smallskipr e]r (X3\medskipamount_____\bigskip & \medskip & \smallskipr X(latex2e_19.html#index-_005cmedskipamountr X\medskipamountr X(\bigskip & \medskip & \smallskipr e]r (X"\medspace_____spacing in math moder X#latex2e_16.html#index-_005cmedspacer X \medspacer XSpacing in math moder e]r (X\mho_____math symbolsr Xlatex2e_16.html#index-_005cmhor X\mhor X Math symbolsr e]r (X\mid_____math symbolsr Xlatex2e_16.html#index-_005cmidr X\midr X Math symbolsr e]r (X\min_____math functionsr Xlatex2e_16.html#index-_005cminr X\minr XMath functionsr e]r (X\models_____math symbolsr X!latex2e_16.html#index-_005cmodelsr X\modelsr X Math symbolsr e]r (X \month_____\day & \month & \yearr X latex2e_13.html#index-_005cmonthr X\monthr X\day & \month & \yearr e]r (X\mp_____math symbolsr Xlatex2e_16.html#index-_005cmpr X\mpr X Math symbolsr e]r (X\mu_____math symbolsr Xlatex2e_16.html#index-_005cmur X\mur X Math symbolsr e]r (X\multicolumn_____\multicolumnr X%latex2e_8.html#index-_005cmulticolumnr! X \multicolumnr" X \multicolumnr# e]r$ (X\multiput_____\multiputr% X"latex2e_8.html#index-_005cmultiputr& X \multiputr' X \multiputr( e]r) (X\nabla_____math symbolsr* X latex2e_16.html#index-_005cnablar+ X\nablar, X Math symbolsr- e]r. (X\name_____\namer/ Xlatex2e_26.html#index-_005cnamer0 X\namer1 X\namer2 e]r3 (X\natural_____math symbolsr4 X"latex2e_16.html#index-_005cnaturalr5 X\naturalr6 X Math symbolsr7 e]r8 (X\ne_____math symbolsr9 Xlatex2e_16.html#index-_005cner: X\ner; X Math symbolsr< e]r= (X\nearrow_____math symbolsr> X"latex2e_16.html#index-_005cnearrowr? X\nearrowr@ X Math symbolsrA e]rB (X.\needstexformat_____class and package commandsrC X(latex2e_3.html#index-_005cNeedsTeXFormatrD X\NeedsTeXFormatrE XClass and package commandsrF e]rG (X\neg_____math symbolsrH Xlatex2e_16.html#index-_005cnegrI X\negrJ X Math symbolsrK e]rL (X&\negthinspace_____spacing in math moderM X'latex2e_16.html#index-_005cnegthinspacerN X \negthinspacerO XSpacing in math moderP e]rQ (X,\negthinspace_____\thinspace & \negthinspacerR X)latex2e_19.html#index-_005cnegthinspace-1rS X \negthinspacerT X\thinspace & \negthinspacerU e]rV (X\neq_____math symbolsrW Xlatex2e_16.html#index-_005cneqrX X\neqrY X Math symbolsrZ e]r[ (X+\newcommand_____\newcommand & \renewcommandr\ X%latex2e_12.html#index-_005cnewcommandr] X \newcommandr^ X\newcommand & \renewcommandr_ e]r` (X\newcounter_____\newcounterra X%latex2e_12.html#index-_005cnewcounterrb X \newcounterrc X \newcounterrd e]re (X7\newenvironment_____\newenvironment & \renewenvironmentrf X)latex2e_12.html#index-_005cnewenvironmentrg X\newenvironmentrh X'\newenvironment & \renewenvironmentri e]rj (X\newfont_____\newfontrk X"latex2e_12.html#index-_005cnewfontrl X\newfontrm X\newfontrn e]ro (X'\newglossaryentry_____\newglossaryentryrp X+latex2e_25.html#index-_005cnewglossaryentryrq X\newglossaryentryrr X\newglossaryentryrs e]rt (X\newlength_____\newlengthru X$latex2e_12.html#index-_005cnewlengthrv X \newlengthrw X \newlengthrx e]ry (X\newline_____\newlinerz X!latex2e_9.html#index-_005cnewliner{ X\newliner| X\newliner} e]r~ (X\newline_____\(space)r X"latex2e_19.html#index-_005cNEWLINEr X\NEWLINEr X\(SPACE)r e]r (X\newpage_____\newpager X"latex2e_10.html#index-_005cnewpager X\newpager X\newpager e]r (X\newsavebox_____\newsaveboxr X%latex2e_12.html#index-_005cnewsaveboxr X \newsaveboxr X \newsaveboxr e]r (X\newtheorem_____\newtheoremr X%latex2e_12.html#index-_005cnewtheoremr X \newtheoremr X \newtheoremr e]r (X\newtie_____accentsr X!latex2e_23.html#index-_005cnewtier X\newtier XAccentsr e]r (X \ng_____additional latin lettersr Xlatex2e_23.html#index-_005cngr X\ngr XAdditional Latin lettersr e]r (X \ng_____additional latin lettersr Xlatex2e_23.html#index-_005cNGr X\NGr XAdditional Latin lettersr e]r (X\ni_____math symbolsr Xlatex2e_16.html#index-_005cnir X\nir X Math symbolsr e]r (X\nocite_____\nociter X latex2e_8.html#index-_005cnociter X\nociter X\nociter e]r (X\nocorr_____font stylesr X latex2e_4.html#index-_005cnocorrr X\nocorrr X Font stylesr e]r (X\nocorrlist_____font stylesr X$latex2e_4.html#index-_005cnocorrlistr X \nocorrlistr X Font stylesr e]r (X\nofiles_____\nofilesr X"latex2e_25.html#index-_005cnofilesr X\nofilesr X\nofilesr e]r (X!\noindent_____\indent & \noindentr X#latex2e_15.html#index-_005cnoindentr X \noindentr X\indent & \noindentr e]r (X*\nolinebreak_____\linebreak & \nolinebreakr X%latex2e_9.html#index-_005cnolinebreakr X \nolinebreakr X\linebreak & \nolinebreakr e]r (X$\nonfrenchspacing_____\frenchspacingr X+latex2e_19.html#index-_005cnonfrenchspacingr X\nonfrenchspacingr X\frenchspacingr e]r (X\nonumber_____eqnarrayr X"latex2e_8.html#index-_005cnonumberr X \nonumberr Xeqnarrayr e]r (X*\nopagebreak_____\pagebreak & \nopagebreakr X&latex2e_10.html#index-_005cnopagebreakr X \nopagebreakr X\pagebreak & \nopagebreakr e]r (X\normalfont_____font stylesr X$latex2e_4.html#index-_005cnormalfontr X \normalfontr X Font stylesr e]r (X#\normalmarginpar_____marginal notesr X*latex2e_15.html#index-_005cnormalmarginparr X\normalmarginparr XMarginal notesr e]r (X!\normalsfcodes_____\normalsfcodesr X(latex2e_19.html#index-_005cnormalsfcodesr X\normalsfcodesr X\normalsfcodesr e]r (X\normalsize_____font sizesr X$latex2e_4.html#index-_005cnormalsizer X \normalsizer X Font sizesr e]r (X\not_____math symbolsr Xlatex2e_16.html#index-_005cnotr X\notr X Math symbolsr e]r (X\notin_____math symbolsr X latex2e_16.html#index-_005cnotinr X\notinr X Math symbolsr e]r (X\nu_____math symbolsr Xlatex2e_16.html#index-_005cnur X\nur X Math symbolsr e]r (X\nwarrow_____math symbolsr X"latex2e_16.html#index-_005cnwarrowr X\nwarrowr X Math symbolsr e]r (X$\o (ø)_____additional latin lettersr X(latex2e_23.html#index-_005co-_0028o_0029r X\o (ø)r XAdditional Latin lettersr e]r (X$\o (ø)_____additional latin lettersr X(latex2e_23.html#index-_005cO-_0028O_0029r X\O (Ø)r XAdditional Latin lettersr e]r (X \obeycr_____\obeycr & \restorecrr X latex2e_9.html#index-_005cobeycrr X\obeycrr X\obeycr & \restorecrr e]r (X)\oddsidemargin_____document class optionsr X'latex2e_3.html#index-_005coddsidemarginr X\oddsidemarginr XDocument class optionsr e]r (X)\oddsidemargin_____page layout parametersr X)latex2e_5.html#index-_005coddsidemargin-1r X\oddsidemarginr XPage layout parametersr e]r (X)\oddsidemargin_____page layout parametersr X)latex2e_5.html#index-_005coddsidemargin-2r X\oddsidemarginr XPage layout parametersr e]r (X\odot_____math symbolsr Xlatex2e_16.html#index-_005codotr X\odotr X Math symbolsr e]r (X%\oe (œ)_____additional latin lettersr X*latex2e_23.html#index-_005coe-_0028oe_0029r X\oe (œ)r! XAdditional Latin lettersr" e]r# (X%\oe (œ)_____additional latin lettersr$ X*latex2e_23.html#index-_005cOE-_0028OE_0029r% X\OE (Œ)r& XAdditional Latin lettersr' e]r( (X\oint_____math symbolsr) Xlatex2e_16.html#index-_005cointr* X\ointr+ X Math symbolsr, e]r- (X\oldstylenums_____font stylesr. X&latex2e_4.html#index-_005coldstylenumsr/ X \oldstylenumsr0 X Font stylesr1 e]r2 (X\omega_____math symbolsr3 X latex2e_16.html#index-_005cOmegar4 X\Omegar5 X Math symbolsr6 e]r7 (X\omega_____math symbolsr8 X latex2e_16.html#index-_005comegar9 X\omegar: X Math symbolsr; e]r< (X\ominus_____math symbolsr= X!latex2e_16.html#index-_005cominusr> X\ominusr? X Math symbolsr@ e]rA (X\onecolumn_____\onecolumnrB X#latex2e_5.html#index-_005conecolumnrC X \onecolumnrD X \onecolumnrE e]rF (X\opening_____\openingrG X"latex2e_26.html#index-_005copeningrH X\openingrI X\openingrJ e]rK (X\oplus_____math symbolsrL X latex2e_16.html#index-_005coplusrM X\oplusrN X Math symbolsrO e]rP (X-\optionnotused_____class and package commandsrQ X'latex2e_3.html#index-_005cOptionNotUsedrR X\OptionNotUsedrS XClass and package commandsrT e]rU (X\oslash_____math symbolsrV X!latex2e_16.html#index-_005coslashrW X\oslashrX X Math symbolsrY e]rZ (X\otimes_____math symbolsr[ X!latex2e_16.html#index-_005cotimesr\ X\otimesr] X Math symbolsr^ e]r_ (X\oval_____\ovalr` Xlatex2e_8.html#index-_005covalra X\ovalrb X\ovalrc e]rd (X*\overbrace{math}_____over- and underliningre X2latex2e_16.html#index-_005coverbrace_007bmath_007drf X\overbrace{math}rg XOver- and Underliningrh e]ri (X)\overline{text}_____over- and underliningrj X1latex2e_16.html#index-_005coverline_007btext_007drk X\overline{text}rl XOver- and Underliningrm e]rn (X\owns_____math symbolsro Xlatex2e_16.html#index-_005cownsrp X\ownsrq X Math symbolsrr e]rs (X\p_____text symbolsrt Xlatex2e_23.html#index-_005cPru X\Prv X Text symbolsrw e]rx (X,\packageerror_____class and package commandsry X&latex2e_3.html#index-_005cPackageErrorrz X \PackageErrorr{ XClass and package commandsr| e]r} (X+\packageinfo_____class and package commandsr~ X%latex2e_3.html#index-_005cPackageInfor X \PackageInfor XClass and package commandsr e]r (X1\packageinfonoline_____class and package commandsr X+latex2e_3.html#index-_005cPackageInfoNoLiner X\PackageInfoNoLiner XClass and package commandsr e]r (X.\packagewarning_____class and package commandsr X(latex2e_3.html#index-_005cPackageWarningr X\PackageWarningr XClass and package commandsr e]r (X4\packagewarningnoline_____class and package commandsr X.latex2e_3.html#index-_005cPackageWarningNoLiner X\PackageWarningNoLiner XClass and package commandsr e]r (X(\pagebreak_____\pagebreak & \nopagebreakr X$latex2e_10.html#index-_005cpagebreakr X \pagebreakr X\pagebreak & \nopagebreakr e]r (X!\pagenumbering_____\pagenumberingr X(latex2e_18.html#index-_005cpagenumberingr X\pagenumberingr X\pagenumberingr e]r (X\pageref_____\pagerefr X!latex2e_7.html#index-_005cpagerefr X\pagerefr X\pagerefr e]r (X\pagestyle_____\pagestyler X$latex2e_18.html#index-_005cpagestyler X \pagestyler X \pagestyler e]r (X'\paperheight_____page layout parametersr X%latex2e_5.html#index-_005cpaperheightr X \paperheightr XPage layout parametersr e]r (X'\paperheight_____page layout parametersr X'latex2e_5.html#index-_005cpaperheight-1r X \paperheightr XPage layout parametersr e]r (X&\paperwidth_____page layout parametersr X$latex2e_5.html#index-_005cpaperwidthr X \paperwidthr XPage layout parametersr e]r (X&\paperwidth_____page layout parametersr X&latex2e_5.html#index-_005cpaperwidth-1r X \paperwidthr XPage layout parametersr e]r (X \par_____\parr Xlatex2e_15.html#index-_005cparr X\parr X\parr e]r (X\paragraph_____sectioningr X#latex2e_6.html#index-_005cparagraphr X \paragraphr X Sectioningr e]r (X:\paragraph_____\subsubsection & \paragraph & \subparagraphr X%latex2e_6.html#index-_005cparagraph-1r X \paragraphr X3\subsubsection & \paragraph & \subparagraphr e]r (X\parallel_____math symbolsr X#latex2e_16.html#index-_005cparallelr X \parallelr X Math symbolsr e]r (X\parbox_____\parboxr X!latex2e_20.html#index-_005cparboxr X\parboxr X\parboxr e]r (X\parindent_____minipager X#latex2e_8.html#index-_005cparindentr X \parindentr Xminipager e]r (X"\parindent_____\indent & \noindentr X&latex2e_15.html#index-_005cparindent-1r X \parindentr X\indent & \noindentr e]r (X$\parindent_____\parindent & \parskipr X&latex2e_15.html#index-_005cparindent-2r X \parindentr X\parindent & \parskipr e]r (X\parsep_____listr X latex2e_8.html#index-_005cparsepr X\parsepr Xlistr e]r (X"\parskip_____\parindent & \parskipr X"latex2e_15.html#index-_005cparskipr X\parskipr X\parindent & \parskipr e]r (X\parskip example_____itemizer X)latex2e_8.html#index-_005cparskip-exampler X\parskip exampler Xitemizer e]r (X\part_____sectioningr Xlatex2e_6.html#index-_005cpartr X\partr X Sectioningr e]r (X\part_____\partr X latex2e_6.html#index-_005cpart-1r X\partr X\partr e]r (X\partial_____math symbolsr X"latex2e_16.html#index-_005cpartialr X\partialr X Math symbolsr e]r (X\partopsep_____listr X#latex2e_8.html#index-_005cpartopsepr X \partopsepr Xlistr e]r (X2\passoptionstoclass_____class and package commandsr X,latex2e_3.html#index-_005cPassOptionsToClassr X\PassOptionsToClassr XClass and package commandsr e]r (X4\passoptionstopackage_____class and package commandsr X.latex2e_3.html#index-_005cPassOptionsToPackager X\PassOptionsToPackager XClass and package commandsr e]r (X)\pdfpageheight_____document class optionsr X'latex2e_3.html#index-_005cpdfpageheightr X\pdfpageheightr XDocument class optionsr e]r (X(\pdfpagewidth_____document class optionsr X&latex2e_3.html#index-_005cpdfpagewidthr X \pdfpagewidthr XDocument class optionsr e]r (X\perp_____math symbolsr Xlatex2e_16.html#index-_005cperpr X\perpr X Math symbolsr e]r (X\phi_____math symbolsr Xlatex2e_16.html#index-_005cphir X\phir X Math symbolsr! e]r" (X\pi_____math symbolsr# Xlatex2e_16.html#index-_005cPir$ X\Pir% X Math symbolsr& e]r' (X\pi_____math symbolsr( Xlatex2e_16.html#index-_005cpir) X\pir* X Math symbolsr+ e]r, (X\pm_____math symbolsr- Xlatex2e_16.html#index-_005cpmr. X\pmr/ X Math symbolsr0 e]r1 (X\pmod_____math functionsr2 Xlatex2e_16.html#index-_005cpmodr3 X\pmodr4 XMath functionsr5 e]r6 (X\poptabs_____tabbingr7 X!latex2e_8.html#index-_005cpoptabsr8 X\poptabsr9 Xtabbingr: e]r; (X\poptabs_____tabbingr< X#latex2e_8.html#index-_005cpoptabs-1r= X\poptabsr> Xtabbingr? e]r@ (X\pounds_____text symbolsrA X!latex2e_23.html#index-_005cpoundsrB X\poundsrC X Text symbolsrD e]rE (X\pr_____math functionsrF Xlatex2e_16.html#index-_005cPrrG X\PrrH XMath functionsrI e]rJ (X\prec_____math symbolsrK Xlatex2e_16.html#index-_005cprecrL X\precrM X Math symbolsrN e]rO (X\preceq_____math symbolsrP X!latex2e_16.html#index-_005cpreceqrQ X\preceqrR X Math symbolsrS e]rT (X\prime_____math symbolsrU X latex2e_16.html#index-_005cprimerV X\primerW X Math symbolsrX e]rY (X\printglossaries_____glossariesrZ X*latex2e_25.html#index-_005cprintglossariesr[ X\printglossariesr\ X Glossariesr] e]r^ (X\printglossaries_____glossariesr_ X,latex2e_25.html#index-_005cprintglossaries-1r` X\printglossariesra X Glossariesrb e]rc (X\printindex_____\printindexrd X%latex2e_25.html#index-_005cprintindexre X \printindexrf X \printindexrg e]rh (X\printindex_____\printindexri X'latex2e_25.html#index-_005cprintindex-1rj X \printindexrk X \printindexrl e]rm (X.\processoptions_____class and package commandsrn X(latex2e_3.html#index-_005cProcessOptionsro X\ProcessOptionsrp XClass and package commandsrq e]rr (X/\processoptions*_____class and package commandsrs X-latex2e_3.html#index-_005cProcessOptions_002art X\ProcessOptions*ru XClass and package commandsrv e]rw (X\prod_____math symbolsrx Xlatex2e_16.html#index-_005cprodry X\prodrz X Math symbolsr{ e]r| (X\propto_____math symbolsr} X!latex2e_16.html#index-_005cproptor~ X\proptor X Math symbolsr e]r (X\protect_____\protectr X"latex2e_12.html#index-_005cprotectr X\protectr X\protectr e]r (X#\providecommand_____\providecommandr X)latex2e_12.html#index-_005cprovidecommandr X\providecommandr X\providecommandr e]r (X-\providesclass_____class and package commandsr X'latex2e_3.html#index-_005cProvidesClassr X\ProvidesClassr XClass and package commandsr e]r (X,\providesfile_____class and package commandsr X&latex2e_3.html#index-_005cProvidesFiler X \ProvidesFiler XClass and package commandsr e]r (X/\providespackage_____class and package commandsr X)latex2e_3.html#index-_005cProvidesPackager X\ProvidesPackager XClass and package commandsr e]r (X \ps_____\psr Xlatex2e_26.html#index-_005cpsr X\psr X\psr e]r (X\psi_____math symbolsr Xlatex2e_16.html#index-_005cPsir X\Psir X Math symbolsr e]r (X\psi_____math symbolsr Xlatex2e_16.html#index-_005cpsir X\psir X Math symbolsr e]r (X\pushtabs_____tabbingr X"latex2e_8.html#index-_005cpushtabsr X \pushtabsr Xtabbingr e]r (X \put_____\putr Xlatex2e_8.html#index-_005cputr X\putr X\putr e]r (X\qbezier_____\qbezierr X!latex2e_8.html#index-_005cqbezierr X\qbezierr X\qbezierr e]r (X\qquad_____spacing in math moder X latex2e_16.html#index-_005cqquadr X\qquadr XSpacing in math moder e]r (X$\qquad_____\enspace & \quad & \qquadr X"latex2e_19.html#index-_005cqquad-1r X\qquadr X!\enspace & \quad & \qquadr e]r (X\quad_____spacing in math moder Xlatex2e_16.html#index-_005cquadr X\quadr XSpacing in math moder e]r (X#\quad_____\enspace & \quad & \qquadr X!latex2e_19.html#index-_005cquad-1r X\quadr X!\enspace & \quad & \qquadr e]r (X$\quotedblbase („)_____text symbolsr X7latex2e_23.html#index-_005cquotedblbase-_0028_201e_0029r X\quotedblbase („)r X Text symbolsr e]r (X&\quotesinglbase (‚)_____text symbolsr X9latex2e_23.html#index-_005cquotesinglbase-_0028_201a_0029r X\quotesinglbase (‚)r X Text symbolsr e]r (X\r (ring accent)_____accentsr X2latex2e_23.html#index-_005cr-_0028ring-accent_0029r X\r (ring accent)r XAccentsr e]r (X\raggedbottom_____\raggedbottomr X&latex2e_5.html#index-_005craggedbottomr X \raggedbottomr X \raggedbottomr e]r (X\raggedleft_____\raggedleftr X$latex2e_8.html#index-_005craggedleftr X \raggedleftr X \raggedleftr e]r (X\raggedright_____\raggedrightr X%latex2e_8.html#index-_005craggedrightr X \raggedrightr X \raggedrightr e]r (X\raisebox_____\raiseboxr X#latex2e_20.html#index-_005craiseboxr X \raiseboxr X \raiseboxr e]r (X\rangle_____math symbolsr X!latex2e_16.html#index-_005crangler X\rangler X Math symbolsr e]r (X\rbrace_____math symbolsr X!latex2e_16.html#index-_005crbracer X\rbracer X Math symbolsr e]r (X\rbrack_____math symbolsr X!latex2e_16.html#index-_005crbrackr X\rbrackr X Math symbolsr e]r (X\rceil_____math symbolsr X latex2e_16.html#index-_005crceilr X\rceilr X Math symbolsr e]r (X\re_____math symbolsr Xlatex2e_16.html#index-_005cRer X\Rer X Math symbolsr e]r (X \ref_____\refr Xlatex2e_7.html#index-_005crefr X\refr X\refr e]r (X\reflectbox_____\scaleboxr X%latex2e_22.html#index-_005creflectboxr X \reflectboxr X \scaleboxr e]r (X#\refstepcounter_____\refstepcounterr X)latex2e_13.html#index-_005crefstepcounterr X\refstepcounterr X\refstepcounterr e]r (X9\renewenvironment_____\newenvironment & \renewenvironmentr X+latex2e_12.html#index-_005crenewenvironmentr X\renewenvironmentr X'\newenvironment & \renewenvironmentr e]r (X.\requirepackage_____class and package commandsr X(latex2e_3.html#index-_005cRequirePackager X\RequirePackager XClass and package commandsr e]r! (X9\requirepackagewithoptions_____class and package commandsr" X3latex2e_3.html#index-_005cRequirePackageWithOptionsr# X\RequirePackageWithOptionsr$ XClass and package commandsr% e]r& (X\resizebox_____\resizeboxr' X$latex2e_22.html#index-_005cresizeboxr( X \resizeboxr) X \resizeboxr* e]r+ (X#\restorecr_____\obeycr & \restorecrr, X#latex2e_9.html#index-_005crestorecrr- X \restorecrr. X\obeycr & \restorecrr/ e]r0 (X\restriction_____math symbolsr1 X&latex2e_16.html#index-_005crestrictionr2 X \restrictionr3 X Math symbolsr4 e]r5 (X\revemptyset_____math symbolsr6 X&latex2e_16.html#index-_005crevemptysetr7 X \revemptysetr8 X Math symbolsr9 e]r: (X$\reversemarginpar_____marginal notesr; X+latex2e_15.html#index-_005creversemarginparr< X\reversemarginparr= XMarginal notesr> e]r? (X\rfloor_____math symbolsr@ X!latex2e_16.html#index-_005crfloorrA X\rfloorrB X Math symbolsrC e]rD (X\rhd_____math symbolsrE Xlatex2e_16.html#index-_005crhdrF X\rhdrG X Math symbolsrH e]rI (X\rho_____math symbolsrJ Xlatex2e_16.html#index-_005crhorK X\rhorL X Math symbolsrM e]rN (X\right_____\left & \rightrO X latex2e_16.html#index-_005crightrP X\rightrQ X\left & \rightrR e]rS (X\rightarrow_____math symbolsrT X%latex2e_16.html#index-_005cRightarrowrU X \RightarrowrV X Math symbolsrW e]rX (X\rightarrow_____math symbolsrY X%latex2e_16.html#index-_005crightarrowrZ X \rightarrowr[ X Math symbolsr\ e]r] (X"\rightharpoondown_____math symbolsr^ X+latex2e_16.html#index-_005crightharpoondownr_ X\rightharpoondownr` X Math symbolsra e]rb (X \rightharpoonup_____math symbolsrc X)latex2e_16.html#index-_005crightharpoonuprd X\rightharpoonupre X Math symbolsrf e]rg (X#\rightleftharpoons_____math symbolsrh X,latex2e_16.html#index-_005crightleftharpoonsri X\rightleftharpoonsrj X Math symbolsrk e]rl (X\rightmargin_____listrm X%latex2e_8.html#index-_005crightmarginrn X \rightmarginro Xlistrp e]rq (X\rm_____font stylesrr Xlatex2e_4.html#index-_005crmrs X\rmrt X Font stylesru e]rv (X\rmfamily_____font stylesrw X"latex2e_4.html#index-_005crmfamilyrx X \rmfamilyry X Font stylesrz e]r{ (X?\roman{counter}_____\alph \alph \arabic \roman \roman \fnsymbolr| X1latex2e_13.html#index-_005croman_007bcounter_007dr} X\roman{counter}r~ X+\alph \Alph \arabic \roman \Roman \fnsymbolr e]r (X?\roman{counter}_____\alph \alph \arabic \roman \roman \fnsymbolr X1latex2e_13.html#index-_005cRoman_007bcounter_007dr X\Roman{counter}r X+\alph \Alph \arabic \roman \Roman \fnsymbolr e]r (X\rotatebox_____\rotateboxr X$latex2e_22.html#index-_005crotateboxr X \rotateboxr X \rotateboxr e]r (X\rq_____text symbolsr Xlatex2e_23.html#index-_005crqr X\rqr X Text symbolsr e]r (X\rule_____\ruler Xlatex2e_23.html#index-_005cruler X\ruler X\ruler e]r (X\s_____text symbolsr Xlatex2e_23.html#index-_005cSr X\Sr X Text symbolsr e]r (X\savebox_____\sbox & \saveboxr X"latex2e_20.html#index-_005csaveboxr X\saveboxr X\sbox & \saveboxr e]r (X\sbox_____\sbox & \saveboxr Xlatex2e_20.html#index-_005csboxr X\sboxr X\sbox & \saveboxr e]r (X\sc_____font stylesr Xlatex2e_4.html#index-_005cscr X\scr X Font stylesr e]r (X\scalebox_____\scaleboxr X#latex2e_22.html#index-_005cscaleboxr X \scaleboxr X \scaleboxr e]r (X\scriptsize_____font sizesr X$latex2e_4.html#index-_005cscriptsizer X \scriptsizer X Font sizesr e]r (X\scshape_____font stylesr X!latex2e_4.html#index-_005cscshaper X\scshaper X Font stylesr e]r (X\searrow_____math symbolsr X"latex2e_16.html#index-_005csearrowr X\searrowr X Math symbolsr e]r (X\sec_____math functionsr Xlatex2e_16.html#index-_005csecr X\secr XMath functionsr e]r (X\section_____sectioningr X!latex2e_6.html#index-_005csectionr X\sectionr X Sectioningr e]r (X\section_____\sectionr X#latex2e_6.html#index-_005csection-1r X\sectionr X\sectionr e]r (X\seename_____\indexr X"latex2e_25.html#index-_005cseenamer X\seenamer X\indexr e]r (X'\selectfont_____low-level font commandsr X$latex2e_4.html#index-_005cselectfontr X \selectfontr XLow-level font commandsr e]r (X\setcounter_____\setcounterr X%latex2e_13.html#index-_005csetcounterr X \setcounterr X \setcounterr e]r (X\setlength_____\setlengthr X$latex2e_14.html#index-_005csetlengthr X \setlengthr X \setlengthr e]r (X\setminus_____math symbolsr X#latex2e_16.html#index-_005csetminusr X \setminusr X Math symbolsr e]r (X\settodepth_____\settodepthr X%latex2e_14.html#index-_005csettodepthr X \settodepthr X \settodepthr e]r (X\settoheight_____\settoheightr X&latex2e_14.html#index-_005csettoheightr X \settoheightr X \settoheightr e]r (X\settowidth_____\settowidthr X%latex2e_14.html#index-_005csettowidthr X \settowidthr X \settowidthr e]r (X\sf_____font stylesr Xlatex2e_4.html#index-_005csfr X\sfr X Font stylesr e]r (X\sffamily_____font stylesr X"latex2e_4.html#index-_005csffamilyr X \sffamilyr X Font stylesr e]r (X\sharp_____math symbolsr X latex2e_16.html#index-_005csharpr X\sharprX Math symbolsre]r(X\shortstack_____\shortstackrX$latex2e_8.html#index-_005cshortstackrX \shortstackrX \shortstackre]r(X\sigma_____math symbolsrX latex2e_16.html#index-_005cSigmar X\Sigmar X Math symbolsr e]r (X\sigma_____math symbolsr X latex2e_16.html#index-_005csigmarX\sigmarX Math symbolsre]r(X\signature_____\signaturerX$latex2e_26.html#index-_005csignaturerX \signaturerX \signaturere]r(X\sim_____math symbolsrXlatex2e_16.html#index-_005csimrX\simrX Math symbolsre]r(X\simeq_____math symbolsrX latex2e_16.html#index-_005csimeqrX\simeqrX Math symbolsre]r (X\sin_____math functionsr!Xlatex2e_16.html#index-_005csinr"X\sinr#XMath functionsr$e]r%(X\sinh_____math functionsr&Xlatex2e_16.html#index-_005csinhr'X\sinhr(XMath functionsr)e]r*(X\sl_____font stylesr+Xlatex2e_4.html#index-_005cslr,X\slr-X Font stylesr.e]r/(X\sloppy_____\fussy & \sloppyr0X latex2e_9.html#index-_005csloppyr1X\sloppyr2X\fussy & \sloppyr3e]r4(X\slshape_____font stylesr5X!latex2e_4.html#index-_005cslshaper6X\slshaper7X Font stylesr8e]r9(X\small_____font sizesr:Xlatex2e_4.html#index-_005csmallr;X\smallr<X Font sizesr=e]r>(X\smallint_____math symbolsr?X#latex2e_16.html#index-_005csmallintr@X \smallintrAX Math symbolsrBe]rC(X/\smallskip_____\bigskip & \medskip & \smallskiprDX$latex2e_19.html#index-_005csmallskiprEX \smallskiprFX(\bigskip & \medskip & \smallskiprGe]rH(X5\smallskipamount_____\bigskip & \medskip & \smallskiprIX*latex2e_19.html#index-_005csmallskipamountrJX\smallskipamountrKX(\bigskip & \medskip & \smallskiprLe]rM(X\smile_____math symbolsrNX latex2e_16.html#index-_005csmilerOX\smilerPX Math symbolsrQe]rR(X\space_____\(space)rSX latex2e_19.html#index-_005cSPACErTX\SPACErUX\(SPACE)rVe]rW(X\spacefactor_____\spacefactorrXX&latex2e_19.html#index-_005cspacefactorrYX \spacefactorrZX \spacefactorr[e]r\(X\spadesuit_____math symbolsr]X$latex2e_16.html#index-_005cspadesuitr^X \spadesuitr_X Math symbolsr`e]ra(X\sqcap_____math symbolsrbX latex2e_16.html#index-_005csqcaprcX\sqcaprdX Math symbolsree]rf(X\sqcup_____math symbolsrgX latex2e_16.html#index-_005csqcuprhX\sqcupriX Math symbolsrje]rk(X\sqrt_____\sqrtrlXlatex2e_16.html#index-_005csqrtrmX\sqrtrnX\sqrtroe]rp(X\sqsubset_____math symbolsrqX#latex2e_16.html#index-_005csqsubsetrrX \sqsubsetrsX Math symbolsrte]ru(X\sqsubseteq_____math symbolsrvX%latex2e_16.html#index-_005csqsubseteqrwX \sqsubseteqrxX Math symbolsrye]rz(X\sqsupset_____math symbolsr{X#latex2e_16.html#index-_005csqsupsetr|X \sqsupsetr}X Math symbolsr~e]r(X\sqsupseteq_____math symbolsrX%latex2e_16.html#index-_005csqsupseteqrX \sqsupseteqrX Math symbolsre]r(X%\ss (ß)_____additional latin lettersrX*latex2e_23.html#index-_005css-_0028ss_0029rX\ss (ß)rXAdditional Latin lettersre]r(X%\ss (ss)_____additional latin lettersrX*latex2e_23.html#index-_005cSS-_0028SS_0029rX\SS (SS)rXAdditional Latin lettersre]r(X\stackrel_____\stackrelrX#latex2e_16.html#index-_005cstackrelrX \stackrelrX \stackrelre]r(X\star_____math symbolsrXlatex2e_16.html#index-_005cstarrX\starrX Math symbolsre]r(X\stepcounter_____\stepcounterrX&latex2e_13.html#index-_005cstepcounterrX \stepcounterrX \stepcounterre]r(X \stop_____recovering from errorsrXlatex2e_28.html#index-_005cstoprX\stoprXRecovering from errorsre]r(X\strut_____\strutrX latex2e_19.html#index-_005cstrutrX\strutrX\strutre]r(X\subparagraph_____sectioningrX&latex2e_6.html#index-_005csubparagraphrX \subparagraphrX Sectioningre]r(X=\subparagraph_____\subsubsection & \paragraph & \subparagraphrX(latex2e_6.html#index-_005csubparagraph-1rX \subparagraphrX3\subsubsection & \paragraph & \subparagraphre]r(X\subsection_____sectioningrX$latex2e_6.html#index-_005csubsectionrX \subsectionrX Sectioningre]r(X\subsection_____\subsectionrX&latex2e_6.html#index-_005csubsection-1rX \subsectionrX \subsectionre]r(X\subset_____math symbolsrX!latex2e_16.html#index-_005csubsetrX\subsetrX Math symbolsre]r(X\subseteq_____math symbolsrX#latex2e_16.html#index-_005csubseteqrX \subseteqrX Math symbolsre]r(X>\subsubsection_____\subsubsection & \paragraph & \subparagraphrX'latex2e_6.html#index-_005csubsubsectionrX\subsubsectionrX3\subsubsection & \paragraph & \subparagraphre]r(X\succ_____math symbolsrXlatex2e_16.html#index-_005csuccrX\succrX Math symbolsre]r(X\succeq_____math symbolsrX!latex2e_16.html#index-_005csucceqrX\succeqrX Math symbolsre]r(X\sum_____math symbolsrXlatex2e_16.html#index-_005csumrX\sumrX Math symbolsre]r(X\sup_____math functionsrXlatex2e_16.html#index-_005csuprX\suprXMath functionsre]r(X\suppressfloats_____floatsrX(latex2e_5.html#index-_005csuppressfloatsrX\suppressfloatsrXFloatsre]r(X\supset_____math symbolsrX!latex2e_16.html#index-_005csupsetrX\supsetrX Math symbolsre]r(X\supseteq_____math symbolsrX#latex2e_16.html#index-_005csupseteqrX \supseteqrX Math symbolsre]r(X\surd_____math symbolsrXlatex2e_16.html#index-_005csurdrX\surdrX Math symbolsre]r(X\swarrow_____math symbolsrX"latex2e_16.html#index-_005cswarrowrX\swarrowrX Math symbolsre]r(X$\symbol_____symbols by font positionrX!latex2e_23.html#index-_005csymbolrX\symbolrXSymbols by font positionre]r(X!\t (tie-after accent)_____accentsrX;latex2e_23.html#index-_005ct-_0028tie_002dafter-accent_0029rX\t (tie-after accent)rXAccentsre]r(X\tab_____\(space)rXlatex2e_19.html#index-_005cTABrX\TABrX\(SPACE)re]r(X\tabbingsep_____tabbingrX$latex2e_8.html#index-_005ctabbingseprX \tabbingsepr Xtabbingr e]r (X\tabcolsep_____tabularr X#latex2e_8.html#index-_005ctabcolsepr X \tabcolseprXtabularre]r(X+\tableofcontents_____table of contents etc.rX*latex2e_25.html#index-_005ctableofcontentsrX\tableofcontentsrXTable of contents etc.re]r(X\tan_____math functionsrXlatex2e_16.html#index-_005ctanrX\tanrXMath functionsre]r(X\tanh_____math functionsrXlatex2e_16.html#index-_005ctanhrX\tanhrXMath functionsre]r(X\tau_____math symbolsr Xlatex2e_16.html#index-_005ctaur!X\taur"X Math symbolsr#e]r$(X\telephone_____\telephoner%X$latex2e_26.html#index-_005ctelephoner&X \telephoner'X \telephoner(e]r)(X\tex_____text symbolsr*Xlatex2e_23.html#index-_005cTeXr+X\TeXr,X Text symbolsr-e]r.(X*\textascendercompwordmark_____text symbolsr/X3latex2e_23.html#index-_005ctextascendercompwordmarkr0X\textascendercompwordmarkr1X Text symbolsr2e]r3(X!\textasciicircum_____text symbolsr4X*latex2e_23.html#index-_005ctextasciicircumr5X\textasciicircumr6X Text symbolsr7e]r8(X \textasciitilde_____text symbolsr9X)latex2e_23.html#index-_005ctextasciitilder:X\textasciitilder;X Text symbolsr<e]r=(X&\textasteriskcentered_____text symbolsr>X/latex2e_23.html#index-_005ctextasteriskcenteredr?X\textasteriskcenteredr@X Text symbolsrAe]rB(X&\textbackslash_____reserved charactersrCX(latex2e_23.html#index-_005ctextbackslashrDX\textbackslashrEXReserved charactersrFe]rG(X\textbackslash_____text symbolsrHX*latex2e_23.html#index-_005ctextbackslash-1rIX\textbackslashrJX Text symbolsrKe]rL(X\textbar_____text symbolsrMX"latex2e_23.html#index-_005ctextbarrNX\textbarrOX Text symbolsrPe]rQ(X\textbardbl_____text symbolsrRX%latex2e_23.html#index-_005ctextbardblrSX \textbardblrTX Text symbolsrUe]rV(X\textbf_____font stylesrWX latex2e_4.html#index-_005ctextbfrXX\textbfrYX Font stylesrZe]r[(X\textbigcircle_____text symbolsr\X(latex2e_23.html#index-_005ctextbigcircler]X\textbigcircler^X Text symbolsr_e]r`(X\textbraceleft_____text symbolsraX(latex2e_23.html#index-_005ctextbraceleftrbX\textbraceleftrcX Text symbolsrde]re(X \textbraceright_____text symbolsrfX)latex2e_23.html#index-_005ctextbracerightrgX\textbracerightrhX Text symbolsrie]rj(X\textbullet_____text symbolsrkX%latex2e_23.html#index-_005ctextbulletrlX \textbulletrmX Text symbolsrne]ro(X)\textcapitalcompwordmark_____text symbolsrpX2latex2e_23.html#index-_005ctextcapitalcompwordmarkrqX\textcapitalcompwordmarkrrX Text symbolsrse]rt(X%\textcircled{letter}_____text symbolsruX6latex2e_23.html#index-_005ctextcircled_007bletter_007drvX\textcircled{letter}rwX Text symbolsrxe]ry(X"\textcompwordmark_____text symbolsrzX+latex2e_23.html#index-_005ctextcompwordmarkr{X\textcompwordmarkr|X Text symbolsr}e]r~(X\textcopyright_____text symbolsrX(latex2e_23.html#index-_005ctextcopyrightrX\textcopyrightrX Text symbolsre]r(X\textdagger_____text symbolsrX%latex2e_23.html#index-_005ctextdaggerrX \textdaggerrX Text symbolsre]r(X\textdaggerdbl_____text symbolsrX(latex2e_23.html#index-_005ctextdaggerdblrX\textdaggerdblrX Text symbolsre]r(X$\textdollar (or \$)_____text symbolsrX=latex2e_23.html#index-_005ctextdollar-_0028or-_005c_0024_0029rX\textdollar (or \$)rX Text symbolsre]r(X\textellipsis_____text symbolsrX'latex2e_23.html#index-_005ctextellipsisrX \textellipsisrX Text symbolsre]r(X%\textemdash (or ---)_____text symbolsrXBlatex2e_23.html#index-_005ctextemdash-_0028or-_002d_002d_002d_0029rX\textemdash (or ---)rX Text symbolsre]r(X$\textendash (or --)_____text symbolsrX=latex2e_23.html#index-_005ctextendash-_0028or-_002d_002d_0029rX\textendash (or --)rX Text symbolsre]r(X\texteuro_____text symbolsrX#latex2e_23.html#index-_005ctexteurorX \texteurorX Text symbolsre]r(X(\textexclamdown (or !`)_____text symbolsrXAlatex2e_23.html#index-_005ctextexclamdown-_0028or-_0021_0060_0029rX\textexclamdown (or !`)rX Text symbolsre]r(X\textfloatsep_____floatsrX&latex2e_5.html#index-_005ctextfloatseprX \textfloatseprXFloatsre]r(X\textfloatsep_____floatsrX(latex2e_5.html#index-_005ctextfloatsep-1rX \textfloatseprXFloatsre]r(X\textfraction_____floatsrX&latex2e_5.html#index-_005ctextfractionrX \textfractionrXFloatsre]r(X\textfraction_____floatsrX(latex2e_5.html#index-_005ctextfraction-1rX \textfractionrXFloatsre]r(X\textgreater_____text symbolsrX&latex2e_23.html#index-_005ctextgreaterrX \textgreaterrX Text symbolsre]r(X&\textheight_____page layout parametersrX$latex2e_5.html#index-_005ctextheightrX \textheightrXPage layout parametersre]r(X&\textheight_____page layout parametersrX&latex2e_5.html#index-_005ctextheight-1rX \textheightrXPage layout parametersre]r(X\textit_____font stylesrX latex2e_4.html#index-_005ctextitrX\textitrX Font stylesre]r(X\textleftarrow_____text symbolsrX(latex2e_23.html#index-_005ctextleftarrowrX\textleftarrowrX Text symbolsre]r(X\textless_____text symbolsrX#latex2e_23.html#index-_005ctextlessrX \textlessrX Text symbolsre]r(X\textmd_____font stylesrX latex2e_4.html#index-_005ctextmdrX\textmdrX Font stylesre]r(X\textnormal_____font stylesrX$latex2e_4.html#index-_005ctextnormalrX \textnormalrX Font stylesre]r(X!\textordfeminine_____text symbolsrX*latex2e_23.html#index-_005ctextordfemininerX\textordfemininerX Text symbolsre]r(X"\textordmasculine_____text symbolsrX+latex2e_23.html#index-_005ctextordmasculinerX\textordmasculinerX Text symbolsre]r(X\textparagraph_____text symbolsrX(latex2e_23.html#index-_005ctextparagraphrX\textparagraphrX Text symbolsre]r(X$\textperiodcentered_____text symbolsrX-latex2e_23.html#index-_005ctextperiodcenteredrX\textperiodcenteredrX Text symbolsre]r(X*\textquestiondown (or ?`)_____text symbolsrXClatex2e_23.html#index-_005ctextquestiondown-_0028or-_003f_0060_0029rX\textquestiondown (or ?`)rX Text symbolsre]r(X*\textquotedblleft (or ``)_____text symbolsrXClatex2e_23.html#index-_005ctextquotedblleft-_0028or-_0060_0060_0029rX\textquotedblleft (or ``)rX Text symbolsre]r(X+\textquotedblright (or '')_____text symbolsrXDlatex2e_23.html#index-_005ctextquotedblright-_0028or-_0027_0027_0029rX\textquotedblright (or '')rX Text symbolsr e]r (X&\textquoteleft (or `)_____text symbolsr X;latex2e_23.html#index-_005ctextquoteleft-_0028or-_0060_0029r X\textquoteleft (or `)r X Text symbolsre]r(X'\textquoteright (or ')_____text symbolsrX<latex2e_23.html#index-_005ctextquoteright-_0028or-_0027_0029rX\textquoteright (or ')rX Text symbolsre]r(X!\textquotesingle_____text symbolsrX*latex2e_23.html#index-_005ctextquotesinglerX\textquotesinglerX Text symbolsre]r(X'\textquotestraightbase_____text symbolsrX0latex2e_23.html#index-_005ctextquotestraightbaserX\textquotestraightbaserX Text symbolsre]r(X*\textquotestraightdblbase_____text symbolsrX3latex2e_23.html#index-_005ctextquotestraightdblbaser X\textquotestraightdblbaser!X Text symbolsr"e]r#(X \textregistered_____text symbolsr$X)latex2e_23.html#index-_005ctextregisteredr%X\textregisteredr&X Text symbolsr'e]r((X \textrightarrow_____text symbolsr)X)latex2e_23.html#index-_005ctextrightarrowr*X\textrightarrowr+X Text symbolsr,e]r-(X\textrm_____font stylesr.X latex2e_4.html#index-_005ctextrmr/X\textrmr0X Font stylesr1e]r2(X\textsc_____font stylesr3X latex2e_4.html#index-_005ctextscr4X\textscr5X Font stylesr6e]r7(X\textsection_____text symbolsr8X&latex2e_23.html#index-_005ctextsectionr9X \textsectionr:X Text symbolsr;e]r<(X\textsf_____font stylesr=X latex2e_4.html#index-_005ctextsfr>X\textsfr?X Font stylesr@e]rA(X\textsl_____font stylesrBX latex2e_4.html#index-_005ctextslrCX\textslrDX Font stylesrEe]rF(X\textsterling_____text symbolsrGX'latex2e_23.html#index-_005ctextsterlingrHX \textsterlingrIX Text symbolsrJe]rK(X)\textthreequartersemdash_____text symbolsrLX2latex2e_23.html#index-_005ctextthreequartersemdashrMX\textthreequartersemdashrNX Text symbolsrOe]rP(X\texttrademark_____text symbolsrQX(latex2e_23.html#index-_005ctexttrademarkrRX\texttrademarkrSX Text symbolsrTe]rU(X\texttt_____font stylesrVX latex2e_4.html#index-_005ctextttrWX\textttrXX Font stylesrYe]rZ(X!\texttwelveudash_____text symbolsr[X*latex2e_23.html#index-_005ctexttwelveudashr\X\texttwelveudashr]X Text symbolsr^e]r_(X \textunderscore_____text symbolsr`X)latex2e_23.html#index-_005ctextunderscoreraX\textunderscorerbX Text symbolsrce]rd(X\textup_____font stylesreX latex2e_4.html#index-_005ctextuprfX\textuprgX Font stylesrhe]ri(X"\textvisiblespace_____text symbolsrjX+latex2e_23.html#index-_005ctextvisiblespacerkX\textvisiblespacerlX Text symbolsrme]rn(X%\textwidth_____page layout parametersroX#latex2e_5.html#index-_005ctextwidthrpX \textwidthrqXPage layout parametersrre]rs(X%\textwidth_____page layout parametersrtX%latex2e_5.html#index-_005ctextwidth-1ruX \textwidthrvXPage layout parametersrwe]rx(X%\th (þ)_____additional latin lettersryX*latex2e_23.html#index-_005cth-_0028th_0029rzX\th (þ)r{XAdditional Latin lettersr|e]r}(X%\th (þ)_____additional latin lettersr~X*latex2e_23.html#index-_005cTH-_0028TH_0029rX\TH (Þ)rXAdditional Latin lettersre]r(X\thanks{text}_____\maketitlerX/latex2e_18.html#index-_005cthanks_007btext_007drX \thanks{text}rX \maketitlere]r(X\theta_____math symbolsrX latex2e_16.html#index-_005cthetarX\thetarX Math symbolsre]r(X\thicklines_____\thicklinesrX$latex2e_8.html#index-_005cthicklinesrX \thicklinesrX \thicklinesre]r(X$\thickspace_____spacing in math moderX%latex2e_16.html#index-_005cthickspacerX \thickspacerXSpacing in math modere]r(X\thinlines_____\thinlinesrX#latex2e_8.html#index-_005cthinlinesrX \thinlinesrX \thinlinesre]r(X#\thinspace_____spacing in math moderX$latex2e_16.html#index-_005cthinspacerX \thinspacerXSpacing in math modere]r(X)\thinspace_____\thinspace & \negthinspacerX&latex2e_19.html#index-_005cthinspace-1rX \thinspacerX\thinspace & \negthinspacere]r(X!\thispagestyle_____\thispagestylerX(latex2e_18.html#index-_005cthispagestylerX\thispagestylerX\thispagestylere]r(X\tilde_____math accentsrX latex2e_16.html#index-_005ctilderX\tilderX Math accentsre]r(X\times_____math symbolsrX latex2e_16.html#index-_005ctimesrX\timesrX Math symbolsre]r(X\tiny_____font sizesrXlatex2e_4.html#index-_005ctinyrX\tinyrX Font sizesre]r(X\title{text}_____\maketitlerX.latex2e_18.html#index-_005ctitle_007btext_007drX \title{text}rX \maketitlere]r(X\to_____math symbolsrXlatex2e_16.html#index-_005ctorX\torX Math symbolsre]r(X\today_____\todayrX latex2e_23.html#index-_005ctodayrX\todayrX\todayre]r(X\top_____math symbolsrXlatex2e_16.html#index-_005ctoprX\toprX Math symbolsre]r(X\topfraction_____floatsrX%latex2e_5.html#index-_005ctopfractionrX \topfractionrXFloatsre]r(X\topfraction_____floatsrX'latex2e_5.html#index-_005ctopfraction-1rX \topfractionrXFloatsre]r(X%\topmargin_____page layout parametersrX#latex2e_5.html#index-_005ctopmarginrX \topmarginrXPage layout parametersre]r(X\topsep_____listrX latex2e_8.html#index-_005ctopseprX\topseprXlistre]r(X#\topskip_____page layout parametersrX!latex2e_5.html#index-_005ctopskiprX\topskiprXPage layout parametersre]r(X#\topskip_____page layout parametersrX#latex2e_5.html#index-_005ctopskip-1rX\topskiprXPage layout parametersre]r(X\triangle_____math symbolsrX#latex2e_16.html#index-_005ctrianglerX \trianglerX Math symbolsre]r(X\triangleleft_____math symbolsrX'latex2e_16.html#index-_005ctriangleleftrX \triangleleftrX Math symbolsre]r(X\triangleright_____math symbolsrX(latex2e_16.html#index-_005ctrianglerightrX\trianglerightrX Math symbolsre]r(X\tt_____font stylesrXlatex2e_4.html#index-_005cttrX\ttrX Font stylesre]r(X\ttfamily_____font stylesrX"latex2e_4.html#index-_005cttfamilyrX \ttfamilyrX Font stylesre]r(X\twocolumn_____\twocolumnrX#latex2e_5.html#index-_005ctwocolumnrX \twocolumnrX \twocolumnre]r (X\typein_____\typeinr X!latex2e_27.html#index-_005ctypeinr X\typeinr X\typeinr e]r(X\typeout_____\typeoutrX"latex2e_27.html#index-_005ctypeoutrX\typeoutrX\typeoutre]r(X\u (breve accent)_____accentsrX3latex2e_23.html#index-_005cu-_0028breve-accent_0029rX\u (breve accent)rXAccentsre]r(X'\unboldmath_____\boldmath & \unboldmathrX%latex2e_16.html#index-_005cunboldmathrX \unboldmathrX\boldmath & \unboldmathre]r(X'\unboldmath_____\boldmath & \unboldmathrX'latex2e_16.html#index-_005cunboldmath-1rX \unboldmathr X\boldmath & \unboldmathr!e]r"(X\underbar_____accentsr#X#latex2e_23.html#index-_005cunderbarr$X \underbarr%XAccentsr&e]r'(X+\underbrace{math}_____over- and underliningr(X3latex2e_16.html#index-_005cunderbrace_007bmath_007dr)X\underbrace{math}r*XOver- and Underliningr+e]r,(X*\underline{text}_____over- and underliningr-X2latex2e_16.html#index-_005cunderline_007btext_007dr.X\underline{text}r/XOver- and Underliningr0e]r1(X\unitlength_____picturer2X$latex2e_8.html#index-_005cunitlengthr3X \unitlengthr4Xpicturer5e]r6(X\unlhd_____math symbolsr7X latex2e_16.html#index-_005cunlhdr8X\unlhdr9X Math symbolsr:e]r;(X\unrhd_____math symbolsr<X latex2e_16.html#index-_005cunrhdr=X\unrhdr>X Math symbolsr?e]r@(X\uparrow_____math symbolsrAX"latex2e_16.html#index-_005cUparrowrBX\UparrowrCX Math symbolsrDe]rE(X\uparrow_____math symbolsrFX"latex2e_16.html#index-_005cuparrowrGX\uparrowrHX Math symbolsrIe]rJ(X\updownarrow_____math symbolsrKX&latex2e_16.html#index-_005cUpdownarrowrLX \UpdownarrowrMX Math symbolsrNe]rO(X\updownarrow_____math symbolsrPX&latex2e_16.html#index-_005cupdownarrowrQX \updownarrowrRX Math symbolsrSe]rT(X \upharpoonright_____math symbolsrUX)latex2e_16.html#index-_005cupharpoonrightrVX\upharpoonrightrWX Math symbolsrXe]rY(X\uplus_____math symbolsrZX latex2e_16.html#index-_005cuplusr[X\uplusr\X Math symbolsr]e]r^(X\upshape_____font stylesr_X!latex2e_4.html#index-_005cupshaper`X\upshaperaX Font stylesrbe]rc(X\upsilon_____math symbolsrdX"latex2e_16.html#index-_005cUpsilonreX\UpsilonrfX Math symbolsrge]rh(X\upsilon_____math symbolsriX"latex2e_16.html#index-_005cupsilonrjX\upsilonrkX Math symbolsrle]rm(X\usebox_____\useboxrnX!latex2e_20.html#index-_005cuseboxroX\useboxrpX\useboxrqe]rr(X\usecounter_____\usecounterrsX%latex2e_13.html#index-_005cusecounterrtX \usecounterruX \usecounterrve]rw(X$\usefont_____low-level font commandsrxX!latex2e_4.html#index-_005cusefontryX\usefontrzXLow-level font commandsr{e]r|(X#\usepackage_____additional packagesr}X$latex2e_3.html#index-_005cusepackager~X \usepackagerXAdditional packagesre]r(X\v (breve accent)_____accentsrX3latex2e_23.html#index-_005cv-_0028breve-accent_0029rX\v (breve accent)rXAccentsre]r(X\value_____\valuerX latex2e_13.html#index-_005cvaluerX\valuerX\valuere]r(X\vanothing_____math symbolsrX$latex2e_16.html#index-_005cvanothingrX \vanothingrX Math symbolsre]r(X\varepsilon_____math symbolsrX%latex2e_16.html#index-_005cvarepsilonrX \varepsilonrX Math symbolsre]r(X\varphi_____math symbolsrX!latex2e_16.html#index-_005cvarphirX\varphirX Math symbolsre]r(X\varpi_____math symbolsrX latex2e_16.html#index-_005cvarpirX\varpirX Math symbolsre]r(X\varrho_____math symbolsrX!latex2e_16.html#index-_005cvarrhorX\varrhorX Math symbolsre]r(X\varsigma_____math symbolsrX#latex2e_16.html#index-_005cvarsigmarX \varsigmarX Math symbolsre]r(X\vartheta_____math symbolsrX#latex2e_16.html#index-_005cvarthetarX \varthetarX Math symbolsre]r(X\vdash_____math symbolsrX latex2e_16.html#index-_005cvdashrX\vdashrX Math symbolsre]r(X\vdots_____dotsrX latex2e_16.html#index-_005cvdotsrX\vdotsrXDotsre]r(X\vec_____math accentsrXlatex2e_16.html#index-_005cvecrX\vecrX Math accentsre]r(X\vector_____\vectorrX latex2e_8.html#index-_005cvectorrX\vectorrX\vectorre]r(X\vee_____math symbolsrXlatex2e_16.html#index-_005cveerX\veerX Math symbolsre]r(X\verb_____\verbrXlatex2e_8.html#index-_005cverbrX\verbrX\verbre]r(X\vert_____math symbolsrXlatex2e_16.html#index-_005cVertrX\VertrX Math symbolsre]r(X\vert_____math symbolsrXlatex2e_16.html#index-_005cvertrX\vertrX Math symbolsre]r(X\vfill_____\vfillrX latex2e_19.html#index-_005cvfillrX\vfillrX\vfillre]r(X\vline_____\vlinerXlatex2e_8.html#index-_005cvlinerX\vlinerX\vlinere]r(X\vspace_____\vspacerX!latex2e_19.html#index-_005cvspacerX\vspacerX\vspacere]r(X\wedge_____math symbolsrX latex2e_16.html#index-_005cwedgerX\wedgerX Math symbolsre]r(X\widehat_____math accentsrX"latex2e_16.html#index-_005cwidehatrX\widehatrX Math accentsre]r(X\widetilde_____math accentsrX$latex2e_16.html#index-_005cwidetilderX \widetilderX Math accentsre]r(X\wp_____math symbolsrXlatex2e_16.html#index-_005cwprX\wprX Math symbolsre]r(X\wr_____math symbolsrXlatex2e_16.html#index-_005cwrrX\wrrX Math symbolsre]r(X\xi_____math symbolsrXlatex2e_16.html#index-_005cXirX\XirX Math symbolsre]r(X\xi_____math symbolsrXlatex2e_16.html#index-_005cxirX\xirX Math symbolsre]r(X\year_____\day & \month & \yearr Xlatex2e_13.html#index-_005cyearr X\yearr X\day & \month & \yearr e]r (X\zeta_____math symbolsrXlatex2e_16.html#index-_005czetarX\zetarX Math symbolsre]r(X\\ (for center)_____centerrX4latex2e_8.html#index-_005c_005c-_0028for-center_0029rX\\ (for center)rXcenterre]r(X\\ (for eqnarray)_____eqnarrayrX6latex2e_8.html#index-_005c_005c-_0028for-eqnarray_0029rX\\ (for eqnarray)rXeqnarrayre]r(X"\\ (for flushright)_____flushrightrX8latex2e_8.html#index-_005c_005c-_0028for-flushright_0029rX\\ (for flushright)rX flushrightr e]r!(X,\\ (for \shortstack objects)_____\shortstackr"XElatex2e_8.html#index-_005c_005c-_0028for-_005cshortstack-objects_0029r#X\\ (for \shortstack objects)r$X \shortstackr%e]r&(X\\ (tabbing)_____tabbingr'X1latex2e_8.html#index-_005c_005c-_0028tabbing_0029r(X \\ (tabbing)r)Xtabbingr*e]r+(X\\ for flushleft_____flushleftr,X-latex2e_8.html#index-_005c_005c-for-flushleftr-X\\ for flushleftr.X flushleftr/e]r0(X\\ for letters_____lettersr1X,latex2e_26.html#index-_005c_005c-for-lettersr2X\\ for lettersr3XLettersr4e]r5(X\\ for tabular_____tabularr6X+latex2e_8.html#index-_005c_005c-for-tabularr7X\\ for tabularr8Xtabularr9e]r:(X\\ for verse_____verser;X)latex2e_8.html#index-_005c_005c-for-verser<X \\ for verser=Xverser>e]r?(X\\ for \author_____\maketitler@X0latex2e_18.html#index-_005c_005c-for-_005cauthorrAX\\ for \authorrBX \maketitlerCe]rD(X\\ for \title_____\maketitlerEX/latex2e_18.html#index-_005c_005c-for-_005ctitlerFX \\ for \titlerGX \maketitlerHe]rI(X\\ force line break_____\\rJX0latex2e_9.html#index-_005c_005c-force-line-breakrKX\\ force line breakrLX\\rMe]rN(X\\* (for eqnarray)_____eqnarrayrOX;latex2e_8.html#index-_005c_005c_002a-_0028for-eqnarray_0029rPX\\* (for eqnarray)rQXeqnarrayrRe]rS(X\^_____reserved charactersrTX latex2e_23.html#index-_005c_005erUX\^rVXReserved charactersrWe]rX(X"\^ (circumflex accent)_____accentsrYX<latex2e_23.html#index-_005c_005e-_0028circumflex-accent_0029rZX\^ (circumflex accent)r[XAccentsr\e]r](X\______reserved charactersr^X latex2e_23.html#index-_005c_005fr_X\_r`XReserved charactersrae]rb(X\` (grave accent)_____accentsrcX7latex2e_23.html#index-_005c_0060-_0028grave-accent_0029rdX\` (grave accent)reXAccentsrfe]rg(X\` (tabbing)_____tabbingrhX1latex2e_8.html#index-_005c_0060-_0028tabbing_0029riX \` (tabbing)rjXtabbingrke]rl(X\{_____reserved charactersrmX latex2e_23.html#index-_005c_007brnX\{roXReserved charactersrpe]rq(X\|_____math symbolsrrX latex2e_16.html#index-_005c_007crsX\|rtX Math symbolsrue]rv(X\}_____reserved charactersrwX latex2e_23.html#index-_005c_007drxX\}ryXReserved charactersrze]r{(X\~_____reserved charactersr|X latex2e_23.html#index-_005c_007er}X\~r~XReserved charactersre]r(X\~ (tilde accent)_____accentsrX7latex2e_23.html#index-_005c_007e-_0028tilde-accent_0029rX\~ (tilde accent)rXAccentsre]r(X^_____subscripts & superscriptsrXlatex2e_16.html#index-_005erX^rXSubscripts & superscriptsre]r(X______subscripts & superscriptsrXlatex2e_16.html#index-_005frX_rXSubscripts & superscriptsre]r(X5‘see’ and ‘see also’ index entries_____\indexrXHlatex2e_25.html#index-_0060see_0027-and-_0060see-also_0027-index-entriesrX*‘see’ and ‘see also’ index entriesrX\indexre]r(X5{...} for required arguments_____latex command syntaxrXElatex2e_2.html#index-_007b_002e_002e_002e_007d-for-required-argumentsrX{...} for required argumentsrXLaTeX command syntaxre]r(X~_____~rXlatex2e_19.html#index-_007erX~rX~re]r(X)a4paper option_____document class optionsrX#latex2e_3.html#index-a4paper-optionrXa4paper optionrXDocument class optionsre]r(X)a5paper option_____document class optionsrX#latex2e_3.html#index-a5paper-optionrXa5paper optionrXDocument class optionsre]r(X!abstract environment_____abstractrX)latex2e_8.html#index-abstract-environmentrXabstract environmentrXabstractre]r(Xabstracts_____abstractrXlatex2e_8.html#index-abstractsrX abstractsrXabstractre]r(Xaccents_____accentsrXlatex2e_23.html#index-accentsrXaccentsrXAccentsre]r(X&accents, mathematical_____math accentsrX/latex2e_16.html#index-accents_002c-mathematicalrXaccents, mathematicalrX Math accentsre]r(X>accessing any character of a font_____symbols by font positionrX7latex2e_23.html#index-accessing-any-character-of-a-fontrX!accessing any character of a fontrXSymbols by font positionre]r(X acronyms, list of_____glossariesrX+latex2e_25.html#index-acronyms_002c-list-ofrXacronyms, list ofrX Glossariesre]r(Xacute accent_____accentsrX"latex2e_23.html#index-acute-accentrX acute accentrXAccentsre]r(X#acute accent, math_____math accentsrX,latex2e_16.html#index-acute-accent_002c-mathrXacute accent, mathrX Math accentsre]r(X4additional packages, loading_____additional packagesrX5latex2e_3.html#index-additional-packages_002c-loadingrXadditional packages, loadingrXAdditional packagesre]r(X(ae ligature_____additional latin lettersrX!latex2e_23.html#index-ae-ligaturerX ae ligaturerXAdditional Latin lettersre]r(Xalgorithm2e package_____tabbingrX(latex2e_8.html#index-algorithm2e-packagerXalgorithm2e packagerXtabbingre]r(X,align environment, from amsmath_____eqnarrayrX8latex2e_8.html#index-align-environment_002c-from-amsmathrXalign environment, from amsmathrXeqnarrayre]r(Xaligning equations_____eqnarrayrX'latex2e_8.html#index-aligning-equationsrXaligning equationsrXeqnarrayre]r(X!alignment via tabbing_____tabbingrX*latex2e_8.html#index-alignment-via-tabbingrXalignment via tabbingrXtabbingre]r(X"amsfonts package_____math formulasrX&latex2e_16.html#index-amsfonts-packagerXamsfonts packagerX Math formulasre]r(Xamsmath package_____arrayrX$latex2e_8.html#index-amsmath-packagerXamsmath packagerXarrayre]r(Xamsmath package_____arrayrX&latex2e_8.html#index-amsmath-package-1rXamsmath packagerXarrayre]r(Xamsmath package_____displaymathrX&latex2e_8.html#index-amsmath-package-2rXamsmath packagerX displaymathre]r(Xamsmath package_____equationrX&latex2e_8.html#index-amsmath-package-3rXamsmath packagerXequationre]r(Xamsmath package_____theoremrX&latex2e_8.html#index-amsmath-package-4r Xamsmath packager Xtheoremr e]r (X!amsmath package_____math formulasr X'latex2e_16.html#index-amsmath-package-5rXamsmath packagerX Math formulasre]r(Xamsmath package_____dotsrX'latex2e_16.html#index-amsmath-package-6rXamsmath packagerXDotsre]r(X"amsmath package_____math functionsrX'latex2e_16.html#index-amsmath-package-7rXamsmath packagerXMath functionsre]r(X4amsmath package_____\phantom & \vphantom & \hphantomrX'latex2e_16.html#index-amsmath-package-8rXamsmath packagerX(\phantom & \vphantom & \hphantomre]r (X,amsmath package_____colon character & \colonr!X'latex2e_16.html#index-amsmath-package-9r"Xamsmath packager#XColon character & \colonr$e]r%(X,amsmath package_____colon character & \colonr&X(latex2e_16.html#index-amsmath-package-10r'Xamsmath packager(XColon character & \colonr)e]r*(X0amsmath package, replacing eqnarray_____eqnarrayr+X<latex2e_8.html#index-amsmath-package_002c-replacing-eqnarrayr,X#amsmath package, replacing eqnarrayr-Xeqnarrayr.e]r/(Xamsthm package_____theoremr0X#latex2e_8.html#index-amsthm-packager1Xamsthm packager2Xtheoremr3e]r4(Xamsthm package_____\ruler5X&latex2e_23.html#index-amsthm-package-1r6Xamsthm packager7X\ruler8e]r9(Xappendices_____\appendixr:Xlatex2e_6.html#index-appendicesr;X appendicesr<X \appendixr=e]r>(Xappendix_____\appendixr?Xlatex2e_6.html#index-appendixr@XappendixrAX \appendixrBe]rC(Xappendix package_____\appendixrDX%latex2e_6.html#index-appendix-packagerEXappendix packagerFX \appendixrGe]rH(X"aring_____additional latin lettersrIXlatex2e_23.html#index-aringrJXaringrKXAdditional Latin lettersrLe]rM(X!array (package) package_____arrayrNX4latex2e_8.html#index-array-_0028package_0029-packagerOXarray (package) packagerPXarrayrQe]rR(Xarray environment_____arrayrSX&latex2e_8.html#index-array-environmentrTXarray environmentrUXarrayrVe]rW(Xarrays, math_____arrayrXX%latex2e_8.html#index-arrays_002c-mathrYX arrays, mathrZXarrayr[e]r\(X%arrow, left, in text_____text symbolsr]X2latex2e_23.html#index-arrow_002c-left_002c-in-textr^Xarrow, left, in textr_X Text symbolsr`e]ra(X&arrow, right, in text_____text symbolsrbX3latex2e_23.html#index-arrow_002c-right_002c-in-textrcXarrow, right, in textrdX Text symbolsree]rf(X"article class_____document classesrgX"latex2e_3.html#index-article-classrhX article classriXDocument classesrje]rk(X ascender height_____text symbolsrlX%latex2e_23.html#index-ascender-heightrmXascender heightrnX Text symbolsroe]rp(X*ascii circumflex, in text_____text symbolsrqX3latex2e_23.html#index-ASCII-circumflex_002c-in-textrrXASCII circumflex, in textrsX Text symbolsrte]ru(X%ascii tilde, in text_____text symbolsrvX.latex2e_23.html#index-ASCII-tilde_002c-in-textrwXASCII tilde, in textrxX Text symbolsrye]rz(X,asterisk, centered, in text_____text symbolsr{X9latex2e_23.html#index-asterisk_002c-centered_002c-in-textr|Xasterisk, centered, in textr}X Text symbolsr~e]r(Xasymptote package_____\linerX&latex2e_8.html#index-Asymptote-packagerXAsymptote packagerX\linere]r(Xasymptote package_____\strutrX)latex2e_19.html#index-Asymptote-package-1rXAsymptote packagerX\strutree(]r(X&asymptote package_____\mbox & \makeboxrX)latex2e_20.html#index-Asymptote-package-2rXAsymptote packagerX\mbox & \makeboxre]r(X+at clause, in font definitions_____\newfontrX8latex2e_12.html#index-at-clause_002c-in-font-definitionsrXat clause, in font definitionsrX\newfontre]r(Xat-sign_____\@rX!latex2e_19.html#index-at_002dsignrXat-signrX\@re]r(X$author, for titlepage_____\maketitlerX/latex2e_18.html#index-author_002c-for-titlepagerXauthor, for titlepagerX \maketitlere]r(Xauxiliary file_____output filesrX#latex2e_2.html#index-auxiliary-filerXauxiliary filerX Output filesre]r(X)b5paper option_____document class optionsrX#latex2e_3.html#index-b5paper-optionrXb5paper optionrXDocument class optionsre]r(Xbabel package_____\chapterrX"latex2e_6.html#index-babel-packagerX babel packagerX\chapterre]r(X!babel package_____thebibliographyrX$latex2e_8.html#index-babel-package-1rX babel packagerXthebibliographyre]r(Xbabel package_____accentsrX%latex2e_23.html#index-babel-package-2rX babel packagerXAccentsre]r(Xbabel package_____\todayrX%latex2e_23.html#index-babel-package-3rX babel packagerX\todayre]r(X(babel package_____table of contents etc.rX%latex2e_25.html#index-babel-package-4rX babel packagerXTable of contents etc.re]r(Xbabel package_____\indexrX%latex2e_25.html#index-babel-package-5rX babel packagerX\indexre]r(X%background, colored_____colored pagesrX-latex2e_21.html#index-background_002c-coloredrXbackground, coloredrX Colored pagesre]r(X#backslash, in text_____text symbolsrX,latex2e_23.html#index-backslash_002c-in-textrXbackslash, in textrX Text symbolsre]r(X.bar, double vertical, in text_____text symbolsrX;latex2e_23.html#index-bar_002c-double-vertical_002c-in-textrXbar, double vertical, in textrX Text symbolsre]r(X'bar, vertical, in text_____text symbolsrX4latex2e_23.html#index-bar_002c-vertical_002c-in-textrXbar, vertical, in textrX Text symbolsre]r(Xbar-over accent_____accentsrX)latex2e_23.html#index-bar_002dover-accentrXbar-over accentrXAccentsre]r(X&bar-over accent, math_____math accentsrX3latex2e_16.html#index-bar_002dover-accent_002c-mathrXbar-over accent, mathrX Math accentsre]r(Xbar-under accent_____accentsrX*latex2e_23.html#index-bar_002dunder-accentrXbar-under accentrXAccentsre]r(Xbasics of latex_____overviewrX$latex2e_2.html#index-basics-of-LaTeXrXbasics of LaTeXrXOverviewre]r(X-beamer template and class_____beamer templaterX/latex2e_29.html#index-beamer-template-and-classrXbeamer template and classrXbeamer templatere]r(X/beginning of document hook_____\atbegindocumentrX/latex2e_8.html#index-beginning-of-document-hookrXbeginning of document hookrX\AtBeginDocumentre]r(X4bibliography format, open_____document class optionsrX2latex2e_3.html#index-bibliography-format_002c-openrXbibliography format, openrXDocument class optionsre]r(X7bibliography, creating (automatically)_____using bibtexrXGlatex2e_8.html#index-bibliography_002c-creating-_0028automatically_0029rX&bibliography, creating (automatically)rX Using BibTeXre]r(X5bibliography, creating (manually)_____thebibliographyrXBlatex2e_8.html#index-bibliography_002c-creating-_0028manually_0029rX!bibliography, creating (manually)rXthebibliographyre]r(Xbibtex, using_____using bibtexrX&latex2e_8.html#index-bibTeX_002c-usingrX bibTeX, usingr X Using BibTeXr e]r (X,big circle symbols, in text_____text symbolsr X5latex2e_23.html#index-big-circle-symbols_002c-in-textr Xbig circle symbols, in textrX Text symbolsre]r(Xbig point_____units of lengthrXlatex2e_14.html#index-Big-pointrX Big pointrXUnits of lengthre]r(X*bigfoot package_____footnotes of footnotesrX%latex2e_11.html#index-bigfoot-packagerXbigfoot packagerXFootnotes of footnotesre]r(X0black boxes, omitting_____document class optionsrX.latex2e_3.html#index-black-boxes_002c-omittingrXblack boxes, omittingrXDocument class optionsre]r(X#blackboard bold_____blackboard boldr X%latex2e_16.html#index-blackboard-boldr!Xblackboard boldr"XBlackboard boldr#e]r$(X&bm package_____\boldmath & \unboldmathr%X latex2e_16.html#index-bm-packager&X bm packager'X\boldmath & \unboldmathr(e]r)(Xbold font_____font stylesr*Xlatex2e_4.html#index-bold-fontr+X bold fontr,X Font stylesr-e]r.(Xbold math_____font stylesr/Xlatex2e_4.html#index-bold-mathr0X bold mathr1X Font stylesr2e]r3(X)bold typewriter, avoiding_____descriptionr4X2latex2e_8.html#index-bold-typewriter_002c-avoidingr5Xbold typewriter, avoidingr6X descriptionr7e]r8(X0boldface mathematics_____\boldmath & \unboldmathr9X*latex2e_16.html#index-boldface-mathematicsr:Xboldface mathematicsr;X\boldmath & \unboldmathr<e]r=(Xbook class_____document classesr>Xlatex2e_3.html#index-book-classr?X book classr@XDocument classesrAe]rB(X>book, back matter_____\frontmatter & \mainmatter & \backmatterrCX*latex2e_6.html#index-book_002c-back-matterrDXbook, back matterrEX0\frontmatter & \mainmatter & \backmatterrFe]rG(X=book, end matter_____\frontmatter & \mainmatter & \backmatterrHX)latex2e_6.html#index-book_002c-end-matterrIXbook, end matterrJX0\frontmatter & \mainmatter & \backmatterrKe]rL(X?book, front matter_____\frontmatter & \mainmatter & \backmatterrMX+latex2e_6.html#index-book_002c-front-matterrNXbook, front matterrOX0\frontmatter & \mainmatter & \backmatterrPe]rQ(X>book, main matter_____\frontmatter & \mainmatter & \backmatterrRX*latex2e_6.html#index-book_002c-main-matterrSXbook, main matterrTX0\frontmatter & \mainmatter & \backmatterrUe]rV(Xbottomnumber_____floatsrWX!latex2e_5.html#index-bottomnumberrXX bottomnumberrYXFloatsrZe]r[(Xbottomnumber_____floatsr\X#latex2e_5.html#index-bottomnumber-1r]X bottomnumberr^XFloatsr_e]r`(Xbox_____\mbox & \makeboxraXlatex2e_20.html#index-boxrbXboxrcX\mbox & \makeboxrde]re(X#box, allocating new_____\newsaveboxrfX-latex2e_12.html#index-box_002c-allocating-newrgXbox, allocating newrhX \newsaveboxrie]rj(Xbox, colored_____colored boxesrkX&latex2e_21.html#index-box_002c-coloredrlX box, coloredrmX Colored boxesrne]ro(Xbox, save_____\sbox & \saveboxrpX#latex2e_20.html#index-box_002c-saverqX box, saverrX\sbox & \saveboxrse]rt(Xbox, use saved box_____\useboxruX,latex2e_20.html#index-box_002c-use-saved-boxrvXbox, use saved boxrwX\useboxrxe]ry(Xboxes_____boxesrzXlatex2e_20.html#index-boxesr{Xboxesr|XBoxesr}e]r~(Xbp_____units of lengthrXlatex2e_14.html#index-bprXbprXUnits of lengthre]r(X%brace, left, in text_____text symbolsrX2latex2e_23.html#index-brace_002c-left_002c-in-textrXbrace, left, in textrX Text symbolsre]r(X&brace, right, in text_____text symbolsrX3latex2e_23.html#index-brace_002c-right_002c-in-textrXbrace, right, in textrX Text symbolsre]r(X breaking lines_____line breakingrX#latex2e_9.html#index-breaking-linesrXbreaking linesrX Line breakingre]r(X breaking pages_____page breakingrX$latex2e_10.html#index-breaking-pagesrXbreaking pagesrX Page breakingre]r(X+breaks, multiplication discretionary_____\*rX>latex2e_16.html#index-breaks_002c-multiplication-discretionaryrX$breaks, multiplication discretionaryrX\*re]r(Xbreve accent_____accentsrX"latex2e_23.html#index-breve-accentrX breve accentrXAccentsre]r(X#breve accent, math_____math accentsrX,latex2e_16.html#index-breve-accent_002c-mathrXbreve accent, mathrX Math accentsre]r(X%bug reporting_____about this documentrX"latex2e_1.html#index-bug-reportingrX bug reportingrXAbout this documentre]r(Xbullet lists_____itemizerX!latex2e_8.html#index-bullet-listsrX bullet listsrXitemizere]r(Xbullet symbol_____math symbolsrX#latex2e_16.html#index-bullet-symbolrX bullet symbolrX Math symbolsre]r(X bullet, in text_____text symbolsrX)latex2e_23.html#index-bullet_002c-in-textrXbullet, in textrX Text symbolsre]r(Xbulleted lists_____itemizerX#latex2e_8.html#index-bulleted-listsrXbulleted listsrXitemizere]r(X#calligraphic fonts_____calligraphicrX(latex2e_16.html#index-calligraphic-fontsrXcalligraphic fontsrX Calligraphicre]r(X-calligraphic letters for math_____font stylesrX2latex2e_4.html#index-calligraphic-letters-for-mathrXcalligraphic letters for mathrX Font stylesre]r(Xcap height_____text symbolsrX latex2e_23.html#index-cap-heightrX cap heightrX Text symbolsre]r(Xcaron accent_____accentsrX"latex2e_23.html#index-caron-accentrX caron accentrXAccentsre]r(X(catcode_____\makeatletter & \makeatotherrXlatex2e_12.html#index-catcoderXcatcoderX \makeatletter & \makeatotherre]r(X9category code, character_____\makeatletter & \makeatotherrX2latex2e_12.html#index-category-code_002c-characterrXcategory code, characterrX \makeatletter & \makeatotherre]r(Xcc_____units of lengthrXlatex2e_14.html#index-ccrXccrXUnits of lengthre]r(Xcc list, in letters_____\ccrX-latex2e_26.html#index-cc-list_002c-in-lettersrXcc list, in lettersrX\ccre]r(Xcedilla accent_____accentsrX$latex2e_23.html#index-cedilla-accentrXcedilla accentrXAccentsre]r(Xcenter environment_____centerrX'latex2e_8.html#index-center-environmentrXcenter environmentrXcenterre]r(X+centered asterisk, in text_____text symbolsrX4latex2e_23.html#index-centered-asterisk_002c-in-textrXcentered asterisk, in textrX Text symbolsre]r(X-centered equations_____document class optionsrX'latex2e_3.html#index-centered-equationsrXcentered equationsrXDocument class optionsre]r(X)centered period, in text_____text symbolsrX2latex2e_23.html#index-centered-period_002c-in-textrXcentered period, in textrX Text symbolsre]r(X.centering text, declaration for_____\centeringrX8latex2e_8.html#index-centering-text_002c-declaration-forrXcentering text, declaration forrX \centeringre]r(X*centering text, environment for_____centerrX8latex2e_8.html#index-centering-text_002c-environment-forrXcentering text, environment forrXcenterr e]r (Xcentimeter_____units of lengthr X latex2e_14.html#index-Centimeterr X Centimeterr XUnits of lengthre]r(Xchapter_____sectioningrXlatex2e_6.html#index-chapterrXchapterrX Sectioningre]r(Xchapter_____\chapterrXlatex2e_6.html#index-chapter-1rXchapterrX\chapterre]r(X8character category code_____\makeatletter & \makeatotherrX-latex2e_12.html#index-character-category-coderXcharacter category coderX \makeatletter & \makeatotherre]r(X9character, invisible_____\phantom & \vphantom & \hphantomrX.latex2e_16.html#index-character_002c-invisibler Xcharacter, invisibler!X(\phantom & \vphantom & \hphantomr"e]r#(X characters, accented_____accentsr$X.latex2e_23.html#index-characters_002c-accentedr%Xcharacters, accentedr&XAccentsr'e]r((X,characters, case of_____upper and lower caser)X-latex2e_23.html#index-characters_002c-case-ofr*Xcharacters, case ofr+XUpper and lower caser,e]r-(X4characters, non-english_____additional latin lettersr.X5latex2e_23.html#index-characters_002c-non_002dEnglishr/Xcharacters, non-Englishr0XAdditional Latin lettersr1e]r2(X,characters, reserved_____reserved charactersr3X.latex2e_23.html#index-characters_002c-reservedr4Xcharacters, reservedr5XReserved charactersr6e]r7(X+characters, special_____reserved charactersr8X-latex2e_23.html#index-characters_002c-specialr9Xcharacters, specialr:XReserved charactersr;e]r<(Xcheck accent_____accentsr=X"latex2e_23.html#index-check-accentr>X check accentr?XAccentsr@e]rA(X#check accent, math_____math accentsrBX,latex2e_16.html#index-check-accent_002c-mathrCXcheck accent, mathrDX Math accentsrEe]rF(Xcicero_____units of lengthrGXlatex2e_14.html#index-CicerorHXCicerorIXUnits of lengthrJe]rK(X,circle symbol, big, in text_____text symbolsrLX9latex2e_23.html#index-circle-symbol_002c-big_002c-in-textrMXcircle symbol, big, in textrNX Text symbolsrOe]rP(X(circled letter, in text_____text symbolsrQX1latex2e_23.html#index-circled-letter_002c-in-textrRXcircled letter, in textrSX Text symbolsrTe]rU(Xcircumflex accent_____accentsrVX'latex2e_23.html#index-circumflex-accentrWXcircumflex accentrXXAccentsrYe]rZ(X(circumflex accent, math_____math accentsr[X1latex2e_16.html#index-circumflex-accent_002c-mathr\Xcircumflex accent, mathr]X Math accentsr^e]r_(X+circumflex, ascii, in text_____text symbolsr`X8latex2e_23.html#index-circumflex_002c-ASCII_002c-in-textraXcircumflex, ASCII, in textrbX Text symbolsrce]rd(Xcitation key_____\bibitemreX!latex2e_8.html#index-citation-keyrfX citation keyrgX\bibitemrhe]ri(X9class and package commands_____class and package commandsrjX/latex2e_3.html#index-class-and-package-commandsrkXclass and package commandsrlXClass and package commandsrme]rn(X?class and package difference_____class and package constructionroX1latex2e_3.html#index-class-and-package-differencerpXclass and package differencerqXClass and package constructionrre]rs(X;class and package structure_____class and package structurertX0latex2e_3.html#index-class-and-package-structureruXclass and package structurervXClass and package structurerwe]rx(X2class file example_____class and package structureryX'latex2e_3.html#index-class-file-examplerzXclass file exampler{XClass and package structurer|e]r}(X1class file layout_____class and package structurer~X&latex2e_3.html#index-class-file-layoutrXclass file layoutrXClass and package structurere]r(X(class options_____document class optionsrX"latex2e_3.html#index-class-optionsrX class optionsrXDocument class optionsre]r(X-class options_____class and package structurerX$latex2e_3.html#index-class-options-1rX class optionsrXClass and package structurere]r(X,class options_____class and package commandsrX$latex2e_3.html#index-class-options-2rX class optionsrXClass and package commandsre]r(X)classes of documents_____document classesrX)latex2e_3.html#index-classes-of-documentsrXclasses of documentsrXDocument classesre]r(X%cleveref package_____cross referencesrX%latex2e_7.html#index-cleveref-packagerXcleveref packagerXCross referencesre]r(Xcleveref package_____\refrX'latex2e_7.html#index-cleveref-package-1rXcleveref packagerX\refre]r(X"cleveref package_____\footnotemarkrX(latex2e_11.html#index-cleveref-package-2rXcleveref packagerX \footnotemarkre]r(X7clock option to slides class_____document class optionsrX1latex2e_3.html#index-clock-option-to-slides-classrXclock option to slides classrXDocument class optionsre]r(Xclosing letters_____\closingrX%latex2e_26.html#index-closing-lettersrXclosing lettersrX\closingre]r(Xclosing quote_____text symbolsrX#latex2e_23.html#index-closing-quoterX closing quoterX Text symbolsre]r(Xcm_____units of lengthrXlatex2e_14.html#index-cmrXcmrXUnits of lengthre]r(Xcode, typesetting_____verbatimrX*latex2e_8.html#index-code_002c-typesettingrXcode, typesettingrXverbatimre]r(X,colon character_____colon character & \colonrX%latex2e_16.html#index-colon-characterrXcolon characterrXColon character & \colonre]r(Xcolor_____colorrXlatex2e_21.html#index-colorrXcolorrXColorre]r(Xcolor_____define colorsrXlatex2e_21.html#index-color-1rXcolorrX Define colorsre]r(Xcolor_____colored textrXlatex2e_21.html#index-color-2rXcolorrX Colored textre]r(Xcolor_____colored boxesrXlatex2e_21.html#index-color-3rXcolorrX Colored boxesre]r(Xcolor_____colored pagesrXlatex2e_21.html#index-color-4rXcolorrX Colored pagesre]r(Xcolor models_____color modelsrX"latex2e_21.html#index-color-modelsrX color modelsrX Color modelsre]r(X-color package commands_____commands for colorrX,latex2e_21.html#index-color-package-commandsrXcolor package commandsrXCommands for colorre]r(X/color package options_____color package optionsrX+latex2e_21.html#index-color-package-optionsrXcolor package optionsrXColor package optionsre]r(Xcolor, define_____define colorsrX'latex2e_21.html#index-color_002c-definerX color, definerX Define colorsre]r(Xcolored boxes_____colored boxesrX#latex2e_21.html#index-colored-boxesrX colored boxesrX Colored boxesre]r(Xcolored page_____colored pagesrX"latex2e_21.html#index-colored-pagerX colored pagerX Colored pagesre]r(Xcolored text_____colored textrX"latex2e_21.html#index-colored-textrX colored textrX Colored textre]r(Xcommand line_____command linerX"latex2e_28.html#index-command-linerX command linerX Command linere]r(X'command syntax_____latex command syntaxrX#latex2e_2.html#index-command-syntaxrXcommand syntaxrXLaTeX command syntaxre]r (X:commands, class and package_____class and package commandsr X4latex2e_3.html#index-commands_002c-class-and-packager Xcommands, class and packager XClass and package commandsr e]r(X;commands, defining new ones_____\newcommand & \renewcommandrX5latex2e_12.html#index-commands_002c-defining-new-onesrXcommands, defining new onesrX\newcommand & \renewcommandre]r(X/commands, defining new ones_____\providecommandrX7latex2e_12.html#index-commands_002c-defining-new-ones-1rXcommands, defining new onesrX\providecommandre]r(X;commands, document class_____class and package constructionrX1latex2e_3.html#index-commands_002c-document-classrXcommands, document classrXClass and package constructionre]r(X4commands, graphics package_____commands for graphicsrX4latex2e_22.html#index-commands_002c-graphics-packagerXcommands, graphics packager XCommands for graphicsr!e]r"(XAcommands, ignore spaces_____\ignorespaces & \ignorespacesafterendr#X1latex2e_12.html#index-commands_002c-ignore-spacesr$Xcommands, ignore spacesr%X)\ignorespaces & \ignorespacesafterendr&e]r'(X4commands, redefining_____\newcommand & \renewcommandr(X.latex2e_12.html#index-commands_002c-redefiningr)Xcommands, redefiningr*X\newcommand & \renewcommandr+e]r,(X$commands, star-variants_____\@ifstarr-X5latex2e_12.html#index-commands_002c-star_002dvariantsr.Xcommands, star-variantsr/X\@ifstarr0e]r1(X-composite word mark, in text_____text symbolsr2X6latex2e_23.html#index-composite-word-mark_002c-in-textr3Xcomposite word mark, in textr4X Text symbolsr5e]r6(X+computer programs, typesetting_____verbatimr7X7latex2e_8.html#index-computer-programs_002c-typesettingr8Xcomputer programs, typesettingr9Xverbatimr:e]r;(XBconfiguration, graphics package_____graphics package configurationr<X9latex2e_22.html#index-configuration_002c-graphics-packager=Xconfiguration, graphics packager>XGraphics package configurationr?e]r@(Xcontents file_____output filesrAX"latex2e_2.html#index-contents-filerBX contents filerCX Output filesrDe]rE(X!copyright symbol_____text symbolsrFX&latex2e_23.html#index-copyright-symbolrGXcopyright symbolrHX Text symbolsrIe]rJ(X counters, a list of_____countersrKX-latex2e_13.html#index-counters_002c-a-list-ofrLXcounters, a list ofrMXCountersrNe]rO(X&counters, defining new_____\newcounterrPX0latex2e_12.html#index-counters_002c-defining-newrQXcounters, defining newrRX \newcounterrSe]rT(X%counters, getting value of_____\valuerUX4latex2e_13.html#index-counters_002c-getting-value-ofrVXcounters, getting value ofrWX\valuerXe]rY(XBcounters, printing_____\alph \alph \arabic \roman \roman \fnsymbolrZX,latex2e_13.html#index-counters_002c-printingr[Xcounters, printingr\X+\alph \Alph \arabic \roman \Roman \fnsymbolr]e]r^(X!counters, setting_____\setcounterr_X+latex2e_13.html#index-counters_002c-settingr`Xcounters, settingraX \setcounterrbe]rc(Xcprotect package_____verbatimrdX%latex2e_8.html#index-cprotect-packagereXcprotect packagerfXverbatimrge]rh(Xcprotect package_____\verbriX'latex2e_8.html#index-cprotect-package-1rjXcprotect packagerkX\verbrle]rm(Xcreating pictures_____picturernX&latex2e_8.html#index-creating-picturesroXcreating picturesrpXpicturerqe]rr(Xcreating tables_____tablersX$latex2e_8.html#index-creating-tablesrtXcreating tablesruXtablerve]rw(Xcredit footnote_____\maketitlerxX%latex2e_18.html#index-credit-footnoteryXcredit footnoterzX \maketitler{e]r|(X%cross references_____cross referencesr}X%latex2e_7.html#index-cross-referencesr~Xcross referencesrXCross referencesre]r(X,cross references, resolving_____output filesrX4latex2e_2.html#index-cross-references_002c-resolvingrXcross references, resolvingrX Output filesre]r(X/cross referencing with page number_____\pagerefrX7latex2e_7.html#index-cross-referencing-with-page-numberrX"cross referencing with page numberrX\pagerefre]r(X$cross referencing, symbolic_____\refrX4latex2e_7.html#index-cross-referencing_002c-symbolicrXcross referencing, symbolicrX\refre]r(X ctan_____ctanrXlatex2e_2.html#index-CTANrXCTANrXCTANre]r(X!currency, dollar_____text symbolsrX*latex2e_23.html#index-currency_002c-dollarrXcurrency, dollarrX Text symbolsre]r(Xcurrency, euro_____text symbolsrX(latex2e_23.html#index-currency_002c-eurorXcurrency, eurorX Text symbolsre]r(X(dagger, double, in text_____text symbolsrX5latex2e_23.html#index-dagger_002c-double_002c-in-textrXdagger, double, in textrX Text symbolsre]r(X dagger, in text_____text symbolsrX)latex2e_23.html#index-dagger_002c-in-textrXdagger, in textrX Text symbolsre]r(X dagger, in text_____text symbolsrX+latex2e_23.html#index-dagger_002c-in-text-1rXdagger, in textrX Text symbolsre]r(Xdante e.v._____ctanrX'latex2e_2.html#index-DANTE-e_002eV_002erX DANTE e.V.rXCTANre]r(X"date, for titlepage_____\maketitlerX-latex2e_18.html#index-date_002c-for-titlepagerXdate, for titlepagerX \maketitlere]r(Xdate, today’s_____\todayrX+latex2e_23.html#index-date_002c-today_0027srXdate, today’srX\todayre]r(Xdatetime package_____\todayrX&latex2e_23.html#index-datetime-packagerXdatetime packagerX\todayre]r(Xdbltopnumber_____floatsrX!latex2e_5.html#index-dbltopnumberrX dbltopnumberrXFloatsre]r(Xdbltopnumber_____floatsrX#latex2e_5.html#index-dbltopnumber-1rX dbltopnumberrXFloatsre]r(Xdcolumn package_____arrayrX$latex2e_8.html#index-dcolumn-packagerXdcolumn packagerXarrayre]r(Xdd_____units of lengthrXlatex2e_14.html#index-ddrXddrXUnits of lengthre]r(Xdefine color_____define colorsrX"latex2e_21.html#index-define-colorrX define colorrX Define colorsre]r(X6defining a new command_____\newcommand & \renewcommandrX,latex2e_12.html#index-defining-a-new-commandrXdefining a new commandrX\newcommand & \renewcommandre]r(X*defining a new command_____\providecommandrX.latex2e_12.html#index-defining-a-new-command-1rXdefining a new commandrX\providecommandre]r(XAdefining new environments_____\newenvironment & \renewenvironmentrX/latex2e_12.html#index-defining-new-environmentsrXdefining new environmentsrX'\newenvironment & \renewenvironmentre]r(Xdefining new fonts_____\newfontrX(latex2e_12.html#index-defining-new-fontsrXdefining new fontsrX\newfontre]r(X%defining new theorems_____\newtheoremrX+latex2e_12.html#index-defining-new-theoremsrXdefining new theoremsrX \newtheoremre]r(Xdefinitions_____definitionsrX!latex2e_12.html#index-definitionsrX definitionsrX Definitionsre]r(X%delimiters, paired_____\left & \rightrX,latex2e_16.html#index-delimiters_002c-pairedrXdelimiters, pairedrX\left & \rightre]r(Xdelim_0_____makeindexrX!latex2e_25.html#index-delim_005f0rXdelim_0rX makeindexre]r(Xdelim_1_____makeindexrX!latex2e_25.html#index-delim_005f1rXdelim_1rX makeindexre]r(Xdelim_2_____makeindexr X!latex2e_25.html#index-delim_005f2r Xdelim_2r X makeindexr e]r (Xdelim_n_____makeindexrX!latex2e_25.html#index-delim_005fnrXdelim_nrX makeindexre]r(Xdelim_r_____makeindexrX!latex2e_25.html#index-delim_005frrXdelim_rrX makeindexre]r(X!description_____\newglossaryentryrX!latex2e_25.html#index-descriptionrX descriptionrX\newglossaryentryre]r(X'description environment_____descriptionrX,latex2e_8.html#index-description-environmentrXdescription environmentrX descriptionr e]r!(X+description lists, creating_____descriptionr"X4latex2e_8.html#index-description-lists_002c-creatingr#Xdescription lists, creatingr$X descriptionr%e]r&(X-design size, in font definitions_____\newfontr'X:latex2e_12.html#index-design-size_002c-in-font-definitionsr(X design size, in font definitionsr)X\newfontr*e]r+(Xdidot point_____units of lengthr,X!latex2e_14.html#index-Didot-pointr-X Didot pointr.XUnits of lengthr/e]r0(Xdieresis accent_____accentsr1X%latex2e_23.html#index-dieresis-accentr2Xdieresis accentr3XAccentsr4e]r5(XGdifference between class and package_____class and package constructionr6X9latex2e_3.html#index-difference-between-class-and-packager7X$difference between class and packager8XClass and package constructionr9e]r:(X+discretionary breaks, multiplication_____\*r;X>latex2e_16.html#index-discretionary-breaks_002c-multiplicationr<X$discretionary breaks, multiplicationr=X\*r>e]r?(X,discretionary hyphenation_____\discretionaryr@X.latex2e_9.html#index-discretionary-hyphenationrAXdiscretionary hyphenationrBX\discretionaryrCe]rD(Xdisplay math mode_____modesrEX'latex2e_17.html#index-display-math-moderFXdisplay math moderGXModesrHe]rI(XGdisplaying quoted text with paragraph indentation_____quotation & quoterJXFlatex2e_8.html#index-displaying-quoted-text-with-paragraph-indentationrKX1displaying quoted text with paragraph indentationrLXquotation & quoterMe]rN(XJdisplaying quoted text without paragraph indentation_____quotation & quoterOXIlatex2e_8.html#index-displaying-quoted-text-without-paragraph-indentationrPX4displaying quoted text without paragraph indentationrQXquotation & quoterRe]rS(X'displaymath environment_____displaymathrTX,latex2e_8.html#index-displaymath-environmentrUXdisplaymath environmentrVX displaymathrWe]rX(X)displaymath environment_____math formulasrYX/latex2e_16.html#index-displaymath-environment-1rZXdisplaymath environmentr[X Math formulasr\e]r](X:document class commands_____class and package constructionr^X,latex2e_3.html#index-document-class-commandsr_Xdocument class commandsr`XClass and package constructionrae]rb(X1document class options_____document class optionsrcX+latex2e_3.html#index-document-class-optionsrdXdocument class optionsreXDocument class optionsrfe]rg(X/document class, defined_____starting and endingrhX0latex2e_2.html#index-document-class_002c-definedriXdocument class, definedrjXStarting and endingrke]rl(X%document classes_____document classesrmX%latex2e_3.html#index-document-classesrnXdocument classesroXDocument classesrpe]rq(X!document environment_____documentrrX)latex2e_8.html#index-document-environmentrsXdocument environmentrtXdocumentrue]rv(X)document templates_____document templatesrwX(latex2e_29.html#index-document-templatesrxXdocument templatesryXDocument templatesrze]r{(Xdollar sign_____text symbolsr|X!latex2e_23.html#index-dollar-signr}X dollar signr~X Text symbolsre]r(Xdot accent_____accentsrX latex2e_23.html#index-dot-accentrX dot accentrXAccentsre]r(X&dot over accent, math_____math accentsrX/latex2e_16.html#index-dot-over-accent_002c-mathrXdot over accent, mathrX Math accentsre]r(Xdot-over accent_____accentsrX)latex2e_23.html#index-dot_002dover-accentrXdot-over accentrXAccentsre]r(Xdot-under accent_____accentsrX*latex2e_23.html#index-dot_002dunder-accentrXdot-under accentrXAccentsre]r(Xdotless i_____accentsrXlatex2e_23.html#index-dotless-irX dotless irXAccentsre]r(X dotless i, math_____math symbolsrX)latex2e_16.html#index-dotless-i_002c-mathrXdotless i, mathrX Math symbolsre]r(Xdotless j_____accentsrXlatex2e_23.html#index-dotless-jrX dotless jrXAccentsre]r(X dotless j, math_____math symbolsrX)latex2e_16.html#index-dotless-j_002c-mathrXdotless j, mathrX Math symbolsre]r(X dots_____dotsrXlatex2e_16.html#index-dotsrXdotsrXDotsre]r(X-double angle quotation marks_____text symbolsrX2latex2e_23.html#index-double-angle-quotation-marksrXdouble angle quotation marksrX Text symbolsre]r(X'double dagger, in text_____text symbolsrX0latex2e_23.html#index-double-dagger_002c-in-textrXdouble dagger, in textrX Text symbolsre]r(X'double dagger, in text_____text symbolsrX2latex2e_23.html#index-double-dagger_002c-in-text-1rXdouble dagger, in textrX Text symbolsre]r(X(double dot accent, math_____math accentsrX1latex2e_16.html#index-double-dot-accent_002c-mathrXdouble dot accent, mathrX Math accentsre]r(X"double guillemets_____text symbolsrX'latex2e_23.html#index-double-guillemetsrXdouble guillemetsrX Text symbolsre]r(X"double left quote_____text symbolsrX'latex2e_23.html#index-double-left-quoterXdouble left quoterX Text symbolsre]r(X,double low-9 quotation mark_____text symbolsrX5latex2e_23.html#index-double-low_002d9-quotation-markrXdouble low-9 quotation markrX Text symbolsre]r(X,double quote, straight base_____text symbolsrX5latex2e_23.html#index-double-quote_002c-straight-baserXdouble quote, straight baserX Text symbolsre]r(X#double right quote_____text symbolsrX(latex2e_23.html#index-double-right-quoterXdouble right quoterX Text symbolsre]r(X*double spacing_____low-level font commandsrX#latex2e_4.html#index-double-spacingrXdouble spacingrXLow-level font commandsre]r(X-double vertical bar, in text_____text symbolsrX6latex2e_23.html#index-double-vertical-bar_002c-in-textrXdouble vertical bar, in textrX Text symbolsre]r(X doublestruck_____blackboard boldrX"latex2e_16.html#index-doublestruckrX doublestruckrXBlackboard boldre]r(X'draft option_____document class optionsrX!latex2e_3.html#index-draft-optionrX draft optionrXDocument class optionsre]r(X!dvipdfmx command_____output filesrX%latex2e_2.html#index-dvipdfmx-commandrXdvipdfmx commandrX Output filesre]r(Xdvips command_____output filesrX"latex2e_2.html#index-dvips-commandrX dvips commandrX Output filesre]r(X dvitype command_____output filesrX$latex2e_2.html#index-dvitype-commandrXdvitype commandrX Output filesre]r(Xe-dash_____text symbolsrX latex2e_23.html#index-e_002ddashrXe-dashrX Text symbolsre]r(Xe-tex_____tex enginesrXlatex2e_2.html#index-e_002dTeXrXe-TeXrX TeX enginesre]r(Xellipses_____dotsrXlatex2e_16.html#index-ellipsesr Xellipsesr XDotsr e]r (Xellipsis_____text symbolsr Xlatex2e_23.html#index-ellipsisrXellipsisrX Text symbolsre]r(Xem_____units of lengthrXlatex2e_14.html#index-emrXemrXUnits of lengthre]r(Xem_____units of lengthrXlatex2e_14.html#index-em-1rXemrXUnits of lengthre]r(Xem-dash_____text symbolsrX!latex2e_23.html#index-em_002ddashrXem-dashrX Text symbolsre]r (X(em-dash, three-quarters_____text symbolsr!X9latex2e_23.html#index-em_002ddash_002c-three_002dquartersr"Xem-dash, three-quartersr#X Text symbolsr$e]r%(X$em-dash, two-thirds_____text symbolsr&X5latex2e_23.html#index-em_002ddash_002c-two_002dthirdsr'Xem-dash, two-thirdsr(X Text symbolsr)e]r*(Xemphasis_____font stylesr+Xlatex2e_4.html#index-emphasisr,Xemphasisr-X Font stylesr.e]r/(Xenclosure list_____\enclr0X$latex2e_26.html#index-enclosure-listr1Xenclosure listr2X\enclr3e]r4(X'end of document hook_____\atenddocumentr5X)latex2e_8.html#index-end-of-document-hookr6Xend of document hookr7X\AtEndDocumentr8e]r9(X+ending and starting_____starting and endingr:X(latex2e_2.html#index-ending-and-startingr;Xending and startingr<XStarting and endingr=e]r>(Xengines, tex_____tex enginesr?X%latex2e_2.html#index-engines_002c-TeXr@X engines, TeXrAX TeX enginesrBe]rC(X)enlarge current page_____\enlargethispagerDX*latex2e_10.html#index-enlarge-current-pagerEXenlarge current pagerFX\enlargethispagerGe]rH(X#enumerate environment_____enumeraterIX*latex2e_8.html#index-enumerate-environmentrJXenumerate environmentrKX enumeraterLe]rM(Xenumitem package_____listrNX%latex2e_8.html#index-enumitem-packagerOXenumitem packagerPXlistrQe]rR(X#environment_____starting and endingrSX latex2e_2.html#index-environmentrTX environmentrUXStarting and endingrVe]rW(X"environment, abstract_____abstractrXX.latex2e_8.html#index-environment_002c-abstractrYXenvironment, abstractrZXabstractr[e]r\(Xenvironment, array_____arrayr]X+latex2e_8.html#index-environment_002c-arrayr^Xenvironment, arrayr_Xarrayr`e]ra(Xenvironment, center_____centerrbX,latex2e_8.html#index-environment_002c-centerrcXenvironment, centerrdXcenterree]rf(X(environment, description_____descriptionrgX1latex2e_8.html#index-environment_002c-descriptionrhXenvironment, descriptionriX descriptionrje]rk(X(environment, displaymath_____displaymathrlX1latex2e_8.html#index-environment_002c-displaymathrmXenvironment, displaymathrnX displaymathroe]rp(X*environment, displaymath_____math formulasrqX4latex2e_16.html#index-environment_002c-displaymath-1rrXenvironment, displaymathrsX Math formulasrte]ru(X"environment, document_____documentrvX.latex2e_8.html#index-environment_002c-documentrwXenvironment, documentrxXdocumentrye]rz(X$environment, enumerate_____enumerater{X/latex2e_8.html#index-environment_002c-enumerater|Xenvironment, enumerater}X enumerater~e]r(X"environment, eqnarray_____eqnarrayrX.latex2e_8.html#index-environment_002c-eqnarrayrXenvironment, eqnarrayrXeqnarrayre]r(X"environment, equation_____equationrX.latex2e_8.html#index-environment_002c-equationrXenvironment, equationrXequationre]r(X'environment, equation_____math formulasrX1latex2e_16.html#index-environment_002c-equation-1rXenvironment, equationrX Math formulasre]r(Xenvironment, figure_____figurerX,latex2e_8.html#index-environment_002c-figurerXenvironment, figurerXfigurere]r(X*environment, filecontents_____filecontentsrX2latex2e_8.html#index-environment_002c-filecontentsrXenvironment, filecontentsrX filecontentsre]r(X+environment, filecontents*_____filecontentsrX7latex2e_8.html#index-environment_002c-filecontents_002arXenvironment, filecontents*rX filecontentsre]r(X$environment, flushleft_____flushleftrX/latex2e_8.html#index-environment_002c-flushleftrXenvironment, flushleftrX flushleftre]r(X&environment, flushright_____flushrightrX0latex2e_8.html#index-environment_002c-flushrightrXenvironment, flushrightrX flushrightre]r(X environment, itemize_____itemizerX-latex2e_8.html#index-environment_002c-itemizerXenvironment, itemizerXitemizere]r(Xenvironment, letter_____letterrX,latex2e_8.html#index-environment_002c-letterrXenvironment, letterrXletterre]r(Xenvironment, list_____listrX*latex2e_8.html#index-environment_002c-listrXenvironment, listrXlistre]r(Xenvironment, math_____mathrX*latex2e_8.html#index-environment_002c-mathrXenvironment, mathrXmathre]r(X#environment, math_____math formulasrX-latex2e_16.html#index-environment_002c-math-1rXenvironment, mathrX Math formulasre]r(X"environment, minipage_____minipagerX.latex2e_8.html#index-environment_002c-minipagerXenvironment, minipagerXminipagere]r(X environment, picture_____picturerX-latex2e_8.html#index-environment_002c-picturerXenvironment, picturerXpicturere]r(X,environment, quotation_____quotation & quoterX/latex2e_8.html#index-environment_002c-quotationrXenvironment, quotationrXquotation & quotere]r(X(environment, quote_____quotation & quoterX+latex2e_8.html#index-environment_002c-quoterXenvironment, quoterXquotation & quotere]r(X environment, tabbing_____tabbingrX-latex2e_8.html#index-environment_002c-tabbingrXenvironment, tabbingrXtabbingre]r(Xenvironment, table_____tablerX+latex2e_8.html#index-environment_002c-tablerXenvironment, tablerXtablere]r(X environment, tabular_____tabularrX-latex2e_8.html#index-environment_002c-tabularrXenvironment, tabularrXtabularre]r(X0environment, thebibliography_____thebibliographyrX5latex2e_8.html#index-environment_002c-thebibliographyrXenvironment, thebibliographyrXthebibliographyre]r(X environment, theorem_____theoremrX-latex2e_8.html#index-environment_002c-theoremrXenvironment, theoremrXtheoremre]r(X)environment, theorem-like_____\newtheoremrX7latex2e_12.html#index-environment_002c-theorem_002dlikerXenvironment, theorem-likerX \newtheoremre]r(X$environment, titlepage_____titlepagerX/latex2e_8.html#index-environment_002c-titlepagerXenvironment, titlepagerX titlepagere]r(X"environment, verbatim_____verbatimrX.latex2e_8.html#index-environment_002c-verbatimrXenvironment, verbatimrXverbatimre]r(Xenvironment, verse_____verserX+latex2e_8.html#index-environment_002c-verserXenvironment, verserXversere]r(Xenvironments_____environmentsrX!latex2e_8.html#index-environmentsrX environmentsrX Environmentsre]r(X>environments, defining_____\newenvironment & \renewenvironmentrX0latex2e_12.html#index-environments_002c-definingrXenvironments, definingr X'\newenvironment & \renewenvironmentr e]r (Xenvlab package_____\makelabelsr X$latex2e_26.html#index-envlab-packager Xenvlab packagerX \makelabelsre]r(X,eps files_____graphics package configurationrXlatex2e_22.html#index-EPS-filesrX EPS filesrXGraphics package configurationre]r(Xeps files_____\includegraphicsrX!latex2e_22.html#index-EPS-files-1rX EPS filesrX\includegraphicsre]r(X!eqnarray environment_____eqnarrayrX)latex2e_8.html#index-eqnarray-environmentrXeqnarray environmentrXeqnarrayre]r(X!equation environment_____equationr X)latex2e_8.html#index-equation-environmentr!Xequation environmentr"Xequationr#e]r$(X&equation environment_____math formulasr%X,latex2e_16.html#index-equation-environment-1r&Xequation environmentr'X Math formulasr(e]r)(X+equation number, cross referencing_____\refr*X;latex2e_7.html#index-equation-number_002c-cross-referencingr+X"equation number, cross referencingr,X\refr-e]r.(X;equation numbers, left vs. right_____document class optionsr/X=latex2e_3.html#index-equation-numbers_002c-left-vs_002e-rightr0X equation numbers, left vs. rightr1XDocument class optionsr2e]r3(X'equation numbers, omitting_____eqnarrayr4X3latex2e_8.html#index-equation-numbers_002c-omittingr5Xequation numbers, omittingr6Xeqnarrayr7e]r8(X equations, aligning_____eqnarrayr9X,latex2e_8.html#index-equations_002c-aligningr:Xequations, aligningr;Xeqnarrayr<e]r=(X'equations, environment for_____equationr>X3latex2e_8.html#index-equations_002c-environment-forr?Xequations, environment forr@XequationrAe]rB(X=equations, flush left vs. centered_____document class optionsrCX?latex2e_3.html#index-equations_002c-flush-left-vs_002e-centeredrDX"equations, flush left vs. centeredrEXDocument class optionsrFe]rG(X1es-zet german letter_____additional latin lettersrHX.latex2e_23.html#index-es_002dzet-German-letterrIXes-zet German letterrJXAdditional Latin lettersrKe]rL(Xetex command_____tex enginesrMX!latex2e_2.html#index-etex-commandrNX etex commandrOX TeX enginesrPe]rQ(X2eth, icelandic letter_____additional latin lettersrRX/latex2e_23.html#index-eth_002c-Icelandic-letterrSXeth, Icelandic letterrTXAdditional Latin lettersrUe]rV(X/etoolbox package_____class and package commandsrWX%latex2e_3.html#index-etoolbox-packagerXXetoolbox packagerYXClass and package commandsrZe]r[(Xeuro symbol_____text symbolsr\X!latex2e_23.html#index-euro-symbolr]X euro symbolr^X Text symbolsr_e]r`(X eurosym package_____text symbolsraX%latex2e_23.html#index-eurosym-packagerbXeurosym packagercX Text symbolsrde]re(Xex_____units of lengthrfXlatex2e_14.html#index-exrgXexrhXUnits of lengthrie]rj(Xex_____units of lengthrkXlatex2e_14.html#index-ex-1rlXexrmXUnits of lengthrne]ro(X/exclamation point, upside-down_____text symbolsrpX<latex2e_23.html#index-exclamation-point_002c-upside_002ddownrqXexclamation point, upside-downrrX Text symbolsrse]rt(X0executivepaper option_____document class optionsruX*latex2e_3.html#index-executivepaper-optionrvXexecutivepaper optionrwXDocument class optionsrxe]ry(X&exponent_____subscripts & superscriptsrzXlatex2e_16.html#index-exponentr{Xexponentr|XSubscripts & superscriptsr}e]r~(X+extended latin_____additional latin lettersrX$latex2e_23.html#index-extended-LatinrXextended LatinrXAdditional Latin lettersre]r(X(external files, writing_____filecontentsrX0latex2e_8.html#index-external-files_002c-writingrXexternal files, writingrX filecontentsre]r(X.families, of fonts_____low-level font commandsrX+latex2e_4.html#index-families_002c-of-fontsrXfamilies, of fontsrXLow-level font commandsre]r(X fancyhdr package_____page stylesrX&latex2e_18.html#index-fancyhdr-packagerXfancyhdr packagerX Page stylesre]r(Xfancyhdr package_____\pagestylerX(latex2e_18.html#index-fancyhdr-package-1rXfancyhdr packagerX \pagestylere]r(Xfancyvrb package_____tabbingrX%latex2e_8.html#index-fancyvrb-packagerXfancyvrb packagerXtabbingre]r(Xfancyvrb package_____verbatimrX'latex2e_8.html#index-fancyvrb-package-1rXfancyvrb packagerXverbatimre]r(X(feminine ordinal symbol_____text symbolsrX-latex2e_23.html#index-feminine-ordinal-symbolrXfeminine ordinal symbolrX Text symbolsre]r(Xfigure environment_____figurerX'latex2e_8.html#index-figure-environmentrXfigure environmentrXfigurere]r(X)figure number, cross referencing_____\refrX9latex2e_7.html#index-figure-number_002c-cross-referencingrX figure number, cross referencingrX\refre]r(X"figures, footnotes in_____minipagerX.latex2e_8.html#index-figures_002c-footnotes-inrXfigures, footnotes inrXminipagere]r(Xfigures, inserting_____figurerX+latex2e_8.html#index-figures_002c-insertingrXfigures, insertingrXfigurere]r(X"file, root_____splitting the inputrX$latex2e_24.html#index-file_002c-rootrX file, rootrXSplitting the inputre]r(X)filecontents environment_____filecontentsrX-latex2e_8.html#index-filecontents-environmentrXfilecontents environmentrX filecontentsre]r(X*filecontents* environment_____filecontentsrX2latex2e_8.html#index-filecontents_002a-environmentrXfilecontents* environmentrX filecontentsre]r(X'final option_____document class optionsrX!latex2e_3.html#index-final-optionrX final optionrXDocument class optionsre]r(X0first-latex-doc document_____about this documentrX5latex2e_1.html#index-first_002dlatex_002ddoc-documentrXfirst-latex-doc documentrXAbout this documentre]r(X fixed-width font_____font stylesrX)latex2e_4.html#index-fixed_002dwidth-fontrXfixed-width fontrX Font stylesre]r(Xflafter package_____floatsrX$latex2e_5.html#index-flafter-packagerXflafter packagerXFloatsre]r(X'fleqn option_____document class optionsrX!latex2e_3.html#index-fleqn-optionrX fleqn optionrXDocument class optionsre]r(Xfloat package_____floatsrX"latex2e_5.html#index-float-packagerX float packagerXFloatsre]r(Xfloat page_____floatsrXlatex2e_5.html#index-float-pagerX float pagerXFloatsre]r(X/flush left equations_____document class optionsrX)latex2e_3.html#index-flush-left-equationsrXflush left equationsrXDocument class optionsre]r(XEflushing floats and starting a page_____\clearpage & \cleardoublepagerX9latex2e_10.html#index-flushing-floats-and-starting-a-pagerX#flushing floats and starting a pagerX!\clearpage & \cleardoublepagere]r(X#flushleft environment_____flushleftrX*latex2e_8.html#index-flushleft-environmentrXflushleft environmentrX flushleftre]r(X%flushright environment_____flushrightrX+latex2e_8.html#index-flushright-environmentrXflushright environmentrX flushrightre]r(X*font catalogue_____low-level font commandsrX#latex2e_4.html#index-font-cataloguerXfont cataloguerXLow-level font commandsre]r(X4font commands, low-level_____low-level font commandsrX5latex2e_4.html#index-font-commands_002c-low_002dlevelrXfont commands, low-levelrXLow-level font commandsr e]r (X%font size_____low-level font commandsr Xlatex2e_4.html#index-font-sizer X font sizer XLow-level font commandsre]r(Xfont sizes_____font sizesrXlatex2e_4.html#index-font-sizesrX font sizesrX Font sizesre]r(Xfont styles_____font stylesrX latex2e_4.html#index-font-stylesrX font stylesrX Font stylesre]r(X4font symbols, by number_____symbols by font positionrX1latex2e_23.html#index-font-symbols_002c-by-numberrXfont symbols, by numberrXSymbols by font positionre]r(Xfonts_____fontsrXlatex2e_4.html#index-fontsr Xfontsr!XFontsr"e]r#(X$fonts, new commands for_____\newfontr$X1latex2e_12.html#index-fonts_002c-new-commands-forr%Xfonts, new commands forr&X\newfontr'e]r((Xfonts, script_____calligraphicr)X'latex2e_16.html#index-fonts_002c-scriptr*X fonts, scriptr+X Calligraphicr,e]r-(Xfooter style_____\pagestyler.X"latex2e_18.html#index-footer-styler/X footer styler0X \pagestyler1e]r2(X1footer, parameters for_____page layout parametersr3X/latex2e_5.html#index-footer_002c-parameters-forr4Xfooter, parameters forr5XPage layout parametersr6e]r7(X+footnote number, cross referencing_____\refr8X;latex2e_7.html#index-footnote-number_002c-cross-referencingr9X"footnote number, cross referencingr:X\refr;e]r<(X!footnote parameters_____\footnoter=X)latex2e_11.html#index-footnote-parametersr>Xfootnote parametersr?X \footnoter@e]rA(X-footnote, in a table_____footnotes in a tablerBX.latex2e_11.html#index-footnote_002c-in-a-tablerCXfootnote, in a tablerDXFootnotes in a tablerEe]rF(X?footnote, in section headings_____footnotes in section headingsrGX7latex2e_11.html#index-footnote_002c-in-section-headingsrHXfootnote, in section headingsrIXFootnotes in section headingsrJe]rK(X2footnote, of a footnote_____footnotes of footnotesrLX1latex2e_11.html#index-footnote_002c-of-a-footnoterMXfootnote, of a footnoterNXFootnotes of footnotesrOe]rP(X!footnotes in figures_____minipagerQX)latex2e_8.html#index-footnotes-in-figuresrRXfootnotes in figuresrSXminipagerTe]rU(X!footnotes, creating_____footnotesrVX-latex2e_11.html#index-footnotes_002c-creatingrWXfootnotes, creatingrXX FootnotesrYe]rZ(X&footnotes, in a minipage_____\footnoter[X2latex2e_11.html#index-Footnotes_002c-in-a-minipager\XFootnotes, in a minipager]X \footnoter^e]r_(X3footnotes, symbols instead of numbers_____\footnoter`X?latex2e_11.html#index-footnotes_002c-symbols-instead-of-numbersraX%footnotes, symbols instead of numbersrbX \footnoterce]rd(X&formulas, environment for_____equationreX2latex2e_8.html#index-formulas_002c-environment-forrfXformulas, environment forrgXequationrhe]ri(X formulas, math_____math formulasrjX(latex2e_16.html#index-formulas_002c-mathrkXformulas, mathrlX Math formulasrme]rn(X&forward reference_____cross referencesroX&latex2e_7.html#index-forward-referencerpXforward referencerqXCross referencesrre]rs(X.forward references, resolving_____output filesrtX6latex2e_2.html#index-forward-references_002c-resolvingruXforward references, resolvingrvX Output filesrwe]rx(Xfraction_____\fracryXlatex2e_16.html#index-fractionrzXfractionr{X\fracr|e]r}(Xfragile commands_____\protectr~X&latex2e_12.html#index-fragile-commandsrXfragile commandsrX\protectre]r(X&frame rule width_____\fbox & \frameboxrX&latex2e_20.html#index-frame-rule-widthrXframe rule widthrX\fbox & \frameboxre]r(X'frame, line width_____\fbox & \frameboxrX+latex2e_20.html#index-frame_002c-line-widthrXframe, line widthrX\fbox & \frameboxre]r(X5frame, separation from contents_____\fbox & \frameboxrX9latex2e_20.html#index-frame_002c-separation-from-contentsrXframe, separation from contentsrX\fbox & \frameboxre]r(X'french quotation marks_____text symbolsrX,latex2e_23.html#index-French-quotation-marksrXFrench quotation marksrX Text symbolsre]r(X"functions, math_____math functionsrX)latex2e_16.html#index-functions_002c-mathrXfunctions, mathrXMath functionsre]r(X+geometry package_____document class optionsrX%latex2e_3.html#index-geometry-packagerXgeometry packagerXDocument class optionsre]r(X+geometry package_____document class optionsrX'latex2e_3.html#index-geometry-package-1rXgeometry packagerXDocument class optionsre]r(X)global options_____document class optionsrX#latex2e_3.html#index-global-optionsrXglobal optionsrXDocument class optionsre]r(X&global options_____additional packagesrX%latex2e_3.html#index-global-options-1rXglobal optionsrXAdditional packagesre]r(Xglossaries_____glossariesrX latex2e_25.html#index-glossariesrX glossariesrX Glossariesre]r(Xglossary_____glossariesrXlatex2e_25.html#index-glossaryrXglossaryrX Glossariesre]r(X'glossary, entries_____\newglossaryentryrX+latex2e_25.html#index-glossary_002c-entriesrXglossary, entriesrX\newglossaryentryre]r(X"glossary, entry reference_____\glsrX3latex2e_25.html#index-glossary_002c-entry-referencerXglossary, entry referencerX\glsre]r(X'glue register, plain tex_____\newlengthrX2latex2e_12.html#index-glue-register_002c-plain-TeXrXglue register, plain TeXrX \newlengthre]r(Xgraphics_____graphicsrXlatex2e_22.html#index-graphicsrXgraphicsrXGraphicsre]r(X+graphics_____graphics package configurationrX latex2e_22.html#index-graphics-1rXgraphicsrXGraphics package configurationre]r(Xgraphics_____\includegraphicsrX latex2e_22.html#index-graphics-2rXgraphicsrX\includegraphicsre]r(Xgraphics package_____graphicsrX&latex2e_22.html#index-graphics-packagerXgraphics packagerXGraphicsre]r(X3graphics package_____graphics package configurationrX(latex2e_22.html#index-graphics-package-1rXgraphics packagerXGraphics package configurationre]r(X%graphics package_____\includegraphicsrX(latex2e_22.html#index-graphics-package-2rXgraphics packagerX\includegraphicsre]r(X3graphics package commands_____commands for graphicsrX/latex2e_22.html#index-graphics-package-commandsrXgraphics package commandsrXCommands for graphicsre]r(X5graphics package options_____graphics package optionsrX.latex2e_22.html#index-graphics-package-optionsrXgraphics package optionsrXGraphics package optionsre]r(Xgraphics packages_____\linerX&latex2e_8.html#index-graphics-packagesrXgraphics packagesrX\linere]r(X graphics, resizing_____\scaleboxrX,latex2e_22.html#index-graphics_002c-resizingrXgraphics, resizingrX \scaleboxre]r(X!graphics, resizing_____\resizeboxrX.latex2e_22.html#index-graphics_002c-resizing-1rXgraphics, resizingrX \resizeboxre]r(Xgraphics, scaling_____\scaleboxrX+latex2e_22.html#index-graphics_002c-scalingrXgraphics, scalingrX \scaleboxre]r(X graphics, scaling_____\resizeboxrX-latex2e_22.html#index-graphics_002c-scaling-1rXgraphics, scalingrX \resizeboxre]r (Xgrave accent_____accentsr X"latex2e_23.html#index-grave-accentr X grave accentr XAccentsr e]r(X#grave accent, math_____math accentsrX,latex2e_16.html#index-grave-accent_002c-mathrXgrave accent, mathrX Math accentsre]r(X-greater than symbol, in text_____text symbolsrX6latex2e_23.html#index-greater-than-symbol_002c-in-textrXgreater than symbol, in textrX Text symbolsre]r(Xgreek letters_____math symbolsrX#latex2e_16.html#index-greek-lettersrX greek lettersrX Math symbolsre]r(X(group, and environments_____environmentsrX0latex2e_8.html#index-group_002c-and-environmentsrXgroup, and environmentsr X Environmentsr!e]r"(Xgroup_skip_____makeindexr#X$latex2e_25.html#index-group_005fskipr$X group_skipr%X makeindexr&e]r'(X%háček accent, math_____math accentsr(X,latex2e_16.html#index-hacek-accent_002c-mathr)Xháček accent, mathr*X Math accentsr+e]r,(Xhacek accent_____accentsr-X"latex2e_23.html#index-hacek-accentr.X hacek accentr/XAccentsr0e]r1(Xhalmos symbol_____\ruler2X#latex2e_23.html#index-Halmos-symbolr3X Halmos symbolr4X\ruler5e]r6(Xhat accent_____accentsr7X latex2e_23.html#index-hat-accentr8X hat accentr9XAccentsr:e]r;(X!hat accent, math_____math accentsr<X*latex2e_16.html#index-hat-accent_002c-mathr=Xhat accent, mathr>X Math accentsr?e]r@(Xheader style_____\pagestylerAX"latex2e_18.html#index-header-stylerBX header stylerCX \pagestylerDe]rE(X1header, parameters for_____page layout parametersrFX/latex2e_5.html#index-header_002c-parameters-forrGXheader, parameters forrHXPage layout parametersrIe]rJ(X$hello, world_____starting and endingrKX%latex2e_2.html#index-hello_002c-worldrLX hello, worldrMXStarting and endingrNe]rO(Xhere, putting floats_____floatsrPX-latex2e_5.html#index-here_002c-putting-floatsrQXhere, putting floatsrRXFloatsrSe]rT(X,home page for manual_____about this documentrUX)latex2e_1.html#index-home-page-for-manualrVXhome page for manualrWXAbout this documentrXe]rY(Xhorizontal space_____\hssrZX&latex2e_19.html#index-horizontal-spacer[Xhorizontal spacer\X\hssr]e]r^(X&horizontal space, stretchable_____\hssr_X7latex2e_19.html#index-horizontal-space_002c-stretchabler`Xhorizontal space, stretchableraX\hssrbe]rc(X7horizontal spacing_____\phantom & \vphantom & \hphantomrdX(latex2e_16.html#index-horizontal-spacingreXhorizontal spacingrfX(\phantom & \vphantom & \hphantomrge]rh(X#hungarian umlaut accent_____accentsriX-latex2e_23.html#index-hungarian-umlaut-accentrjXhungarian umlaut accentrkXAccentsrle]rm(X"hyperref package_____\footnotemarkrnX&latex2e_11.html#index-hyperref-packageroXhyperref packagerpX \footnotemarkrqe]rr(X"hyperref package_____\footnotemarkrsX(latex2e_11.html#index-hyperref-package-1rtXhyperref packageruX \footnotemarkrve]rw(X#hyperref package_____\pagenumberingrxX(latex2e_18.html#index-hyperref-package-2ryXhyperref packagerzX\pagenumberingr{e]r|(X'hyperref package_____command line inputr}X(latex2e_28.html#index-hyperref-package-3r~Xhyperref packagerXCommand line inputre]r(X&hyphenation, defining_____\hyphenationrX.latex2e_9.html#index-hyphenation_002c-definingrXhyphenation, definingrX \hyphenationre]r(X-hyphenation, discretionary_____\discretionaryrX3latex2e_9.html#index-hyphenation_002c-discretionaryrXhyphenation, discretionaryrX\discretionaryre]r(X)hyphenation, forcing_____\- (hyphenation)rX-latex2e_9.html#index-hyphenation_002c-forcingrXhyphenation, forcingrX\- (hyphenation)re]r(X,hyphenation, preventing_____\mbox & \makeboxrX1latex2e_20.html#index-hyphenation_002c-preventingrXhyphenation, preventingrX\mbox & \makeboxre]r(X*icelandic eth_____additional latin lettersrX#latex2e_23.html#index-Icelandic-ethrX Icelandic ethrXAdditional Latin lettersre]r(X,icelandic thorn_____additional latin lettersrX%latex2e_23.html#index-Icelandic-thornrXIcelandic thornrXAdditional Latin lettersre]r(Xidx file_____\indexrXlatex2e_25.html#index-idx-filerXidx filerX\indexre]r(X-ij letter, dutch_____additional latin lettersrX*latex2e_23.html#index-ij-letter_002c-DutchrXij letter, DutchrXAdditional Latin lettersre]r(X&implementations of tex_____tex enginesrX+latex2e_2.html#index-implementations-of-TeXrXimplementations of TeXrX TeX enginesre]r(X'importing graphics_____\includegraphicsrX(latex2e_22.html#index-importing-graphicsrXimporting graphicsrX\includegraphicsre]r(Xin_____units of lengthrXlatex2e_14.html#index-inrXinrXUnits of lengthre]r(Xin-line formulas_____mathrX)latex2e_8.html#index-in_002dline-formulasrXin-line formulasrXmathre]r(Xinch_____units of lengthrXlatex2e_14.html#index-inchrXinchrXUnits of lengthre]r(X'including graphics_____\includegraphicsrX(latex2e_22.html#index-including-graphicsrXincluding graphicsrX\includegraphicsre]r(X'indent, forcing_____\indent & \noindentrX)latex2e_15.html#index-indent_002c-forcingrXindent, forcingrX\indent & \noindentre]r(X3indentation of paragraphs, in minipage_____minipagerX?latex2e_8.html#index-indentation-of-paragraphs_002c-in-minipagerX&indentation of paragraphs, in minipagerXminipagere]r(Xindentfirst package_____\partrX(latex2e_6.html#index-indentfirst-packagerXindentfirst packagerX\partre]r(X indentfirst package_____\chapterrX*latex2e_6.html#index-indentfirst-package-1rXindentfirst packagerX\chapterre]r(X indentfirst package_____\sectionrX*latex2e_6.html#index-indentfirst-package-2rXindentfirst packagerX\sectionre]r(X#indentfirst package_____\subsectionrX*latex2e_6.html#index-indentfirst-package-3rXindentfirst packagerX \subsectionre]r(XCindentfirst package_____\subsubsection & \paragraph & \subparagraphrX*latex2e_6.html#index-indentfirst-package-4rXindentfirst packagerX3\subsubsection & \paragraph & \subparagraphre]r(X+indentfirst package_____\indent & \noindentrX+latex2e_15.html#index-indentfirst-package-5rXindentfirst packagerX\indent & \noindentre]r(Xindent_length_____makeindexrX'latex2e_25.html#index-indent_005flengthrX indent_lengthrX makeindexre]r(Xindent_space_____makeindexrX&latex2e_25.html#index-indent_005fspacerX indent_spacerX makeindexre]r(X6index entries, ‘see’ and ‘see also’_____\indexrXMlatex2e_25.html#index-index-entries_002c-_0060see_0027-and-_0060see-also_0027rX+index entries, ‘see’ and ‘see also’rX\indexre]r(Xindex entry_____\indexrX!latex2e_25.html#index-index-entryrX index entryrX\indexre]r(Xindex package_____\indexrX#latex2e_25.html#index-index-packagerX index packagerX\indexre]r(Xindex, page range_____\indexr X+latex2e_25.html#index-index_002c-page-ranger Xindex, page ranger X\indexr e]r (Xindex, printing_____\printindexrX)latex2e_25.html#index-index_002c-printingrXindex, printingrX \printindexre]r(Xindex, processing_____makeindexrX+latex2e_25.html#index-index_002c-processingrXindex, processingrX makeindexre]r(Xindex, style file_____makeindexrX+latex2e_25.html#index-index_002c-style-filerXindex, style filerX makeindexre]r(Xindexes_____indexesrXlatex2e_25.html#index-indexesrXindexesrXIndexesr e]r!(X&infinite horizontal stretch_____\hfillr"X1latex2e_19.html#index-infinite-horizontal-stretchr#Xinfinite horizontal stretchr$X\hfillr%e]r&(X$infinite vertical stretch_____\vfillr'X/latex2e_19.html#index-infinite-vertical-stretchr(Xinfinite vertical stretchr)X\vfillr*e]r+(Xinner paragraph mode_____modesr,X*latex2e_17.html#index-inner-paragraph-moder-Xinner paragraph moder.XModesr/e]r0(X"input file_____splitting the inputr1X latex2e_24.html#index-input-filer2X input filer3XSplitting the inputr4e]r5(X-input, on command line_____command line inputr6X0latex2e_28.html#index-input_002c-on-command-liner7Xinput, on command liner8XCommand line inputr9e]r:(X3input/output, to terminal_____terminal input/outputr;X7latex2e_27.html#index-input_002foutput_002c-to-terminalr<Xinput/output, to terminalr=XTerminal input/outputr>e]r?(Xinserting figures_____figurer@X&latex2e_8.html#index-inserting-figuresrAXinserting figuresrBXfigurerCe]rD(X7insertions of special characters_____special insertionsrEX6latex2e_23.html#index-insertions-of-special-charactersrFX insertions of special charactersrGXSpecial insertionsrHe]rI(X internal vertical mode_____modesrJX,latex2e_17.html#index-internal-vertical-moderKXinternal vertical moderLXModesrMe]rN(X8invisible character_____\phantom & \vphantom & \hphantomrOX)latex2e_16.html#index-invisible-characterrPXinvisible characterrQX(\phantom & \vphantom & \hphantomrRe]rS(Xitalic correction_____\/rTX'latex2e_19.html#index-italic-correctionrUXitalic correctionrVX\/rWe]rX(Xitalic font_____font stylesrYX latex2e_4.html#index-italic-fontrZX italic fontr[X Font stylesr\e]r](Xitemize environment_____itemizer^X(latex2e_8.html#index-itemize-environmentr_Xitemize environmentr`Xitemizerae]rb(Xitem_0_____makeindexrcX latex2e_25.html#index-item_005f0rdXitem_0reX makeindexrfe]rg(Xitem_01_____makeindexrhX!latex2e_25.html#index-item_005f01riXitem_01rjX makeindexrke]rl(Xitem_1_____makeindexrmX latex2e_25.html#index-item_005f1rnXitem_1roX makeindexrpe]rq(Xitem_12_____makeindexrrX!latex2e_25.html#index-item_005f12rsXitem_12rtX makeindexrue]rv(Xitem_2_____makeindexrwX latex2e_25.html#index-item_005f2rxXitem_2ryX makeindexrze]r{(Xitem_x1_____makeindexr|X!latex2e_25.html#index-item_005fx1r}Xitem_x1r~X makeindexre]r(Xitem_x2_____makeindexrX!latex2e_25.html#index-item_005fx2rXitem_x2rX makeindexre]r(X-jpeg files_____graphics package configurationrX latex2e_22.html#index-JPEG-filesrX JPEG filesrXGraphics package configurationre]r(Xjpeg files_____\includegraphicsrX"latex2e_22.html#index-JPEG-files-1rX JPEG filesrX\includegraphicsre]r(X,jpg files_____graphics package configurationrXlatex2e_22.html#index-JPG-filesrX JPG filesrXGraphics package configurationre]r(Xjpg files_____\includegraphicsrX!latex2e_22.html#index-JPG-files-1rX JPG filesrX\includegraphicsre]r(X*justification, ragged left_____\raggedleftrX3latex2e_8.html#index-justification_002c-ragged-leftrXjustification, ragged leftrX \raggedleftre]r(X,justification, ragged right_____\raggedrightrX4latex2e_8.html#index-justification_002c-ragged-rightrXjustification, ragged rightrX \raggedrightre]r(Xknuth, donald e._____overviewrX-latex2e_2.html#index-Knuth_002c-Donald-E_002erXKnuth, Donald E.rXOverviewre]r(Xlabel_____cross referencesrXlatex2e_7.html#index-labelrXlabelrXCross referencesre]r(X(labelled lists, creating_____descriptionrX1latex2e_8.html#index-labelled-lists_002c-creatingrXlabelled lists, creatingrX descriptionre]r(Xlamport tex_____overviewrX latex2e_2.html#index-Lamport-TeXrX Lamport TeXrXOverviewre]r(Xlamport, leslie_____overviewrX(latex2e_2.html#index-Lamport_002c-LeslierXLamport, LeslierXOverviewre]r(X+landscape option_____document class optionsrX%latex2e_3.html#index-landscape-optionrXlandscape optionrXDocument class optionsre]r(X0landscape orientation_____document class optionsrX*latex2e_3.html#index-landscape-orientationrXlandscape orientationrXDocument class optionsre]r(Xlatex command_____output filesrX"latex2e_2.html#index-latex-commandrX latex commandrX Output filesre]r(Xlatex logo_____text symbolsrX latex2e_23.html#index-LaTeX-logorX LaTeX logorX Text symbolsre]r(Xlatex overview_____overviewrX#latex2e_2.html#index-LaTeX-overviewrXLaTeX overviewrXOverviewre]r(X*latex project team_____about this documentrX'latex2e_1.html#index-LaTeX-Project-teamrXLaTeX Project teamrXAbout this documentre]r(X)latex vs. latex2e_____about this documentrX*latex2e_1.html#index-LaTeX-vs_002e-LaTeX2erXLaTeX vs. LaTeX2erXAbout this documentre]r(X.latex-doc-ptr document_____about this documentrX3latex2e_1.html#index-latex_002ddoc_002dptr-documentrXlatex-doc-ptr documentrXAbout this documentre]r(Xlatex2e logo_____text symbolsrX"latex2e_23.html#index-LaTeX2e-logorX LaTeX2e logorX Text symbolsre]r(X6latin letters, additional_____additional latin lettersrX3latex2e_23.html#index-Latin-letters_002c-additionalrXLatin letters, additionalrXAdditional Latin lettersre]r(Xlayout commands_____layoutrX$latex2e_5.html#index-layout-commandsrXlayout commandsrXLayoutre]r(X6layout, page parameters for_____page layout parametersrX4latex2e_5.html#index-layout_002c-page-parameters-forrXlayout, page parameters forrXPage layout parametersre]r(X+left angle quotation marks_____text symbolsrX0latex2e_23.html#index-left-angle-quotation-marksrXleft angle quotation marksrX Text symbolsre]r(X$left arrow, in text_____text symbolsrX-latex2e_23.html#index-left-arrow_002c-in-textrXleft arrow, in textrX Text symbolsre]r(X$left brace, in text_____text symbolsrX-latex2e_23.html#index-left-brace_002c-in-textrXleft brace, in textrX Text symbolsre]r(Xleft quote_____text symbolsrX latex2e_23.html#index-left-quoter X left quoter X Text symbolsr e]r (X#left quote, double_____text symbolsr X,latex2e_23.html#index-left-quote_002c-doublerXleft quote, doublerX Text symbolsre]r(X#left quote, single_____text symbolsrX,latex2e_23.html#index-left-quote_002c-singlerXleft quote, singlerX Text symbolsre]r(X5left-hand equation numbers_____document class optionsrX3latex2e_3.html#index-left_002dhand-equation-numbersrXleft-hand equation numbersrXDocument class optionsre]r(X%left-justifying text_____\raggedrightrX-latex2e_8.html#index-left_002djustifying-textrXleft-justifying textrX \raggedrightre]r (X3left-justifying text, environment for_____flushleftr!XBlatex2e_8.html#index-left_002djustifying-text_002c-environment-forr"X%left-justifying text, environment forr#X flushleftr$e]r%(Xleft-to-right mode_____modesr&X0latex2e_17.html#index-left_002dto_002dright-moder'Xleft-to-right moder(XModesr)e]r*(X,legalpaper option_____document class optionsr+X&latex2e_3.html#index-legalpaper-optionr,Xlegalpaper optionr-XDocument class optionsr.e]r/(X#lengths, adding to_____\addtolengthr0X,latex2e_14.html#index-lengths_002c-adding-tor1Xlengths, adding tor2X \addtolengthr3e]r4(X&lengths, allocating new_____\newlengthr5X1latex2e_12.html#index-lengths_002c-allocating-newr6Xlengths, allocating newr7X \newlengthr8e]r9(X'lengths, defining and using_____lengthsr:X5latex2e_14.html#index-lengths_002c-defining-and-usingr;Xlengths, defining and usingr<XLengthsr=e]r>(Xlengths, setting_____\setlengthr?X*latex2e_14.html#index-lengths_002c-settingr@Xlengths, settingrAX \setlengthrBe]rC(X'leqno option_____document class optionsrDX!latex2e_3.html#index-leqno-optionrEX leqno optionrFXDocument class optionsrGe]rH(X*less than symbol, in text_____text symbolsrIX3latex2e_23.html#index-less-than-symbol_002c-in-textrJXless than symbol, in textrKX Text symbolsrLe]rM(Xlethead_flag_____makeindexrNX&latex2e_25.html#index-lethead_005fflagrOX lethead_flagrPX makeindexrQe]rR(Xlethead_prefix_____makeindexrSX(latex2e_25.html#index-lethead_005fprefixrTXlethead_prefixrUX makeindexrVe]rW(Xlethead_suffix_____makeindexrXX(latex2e_25.html#index-lethead_005fsuffixrYXlethead_suffixrZX makeindexr[e]r\(X!letter class_____document classesr]X!latex2e_3.html#index-letter-classr^X letter classr_XDocument classesr`e]ra(Xletter environment_____letterrbX'latex2e_8.html#index-letter-environmentrcXletter environmentrdXletterree]rf(X-letterpaper option_____document class optionsrgX'latex2e_3.html#index-letterpaper-optionrhXletterpaper optionriXDocument class optionsrje]rk(Xletters, accented_____accentsrlX+latex2e_23.html#index-letters_002c-accentedrmXletters, accentedrnXAccentsroe]rp(X6letters, additional latin_____additional latin lettersrqX3latex2e_23.html#index-letters_002c-additional-LatinrrXletters, additional LatinrsXAdditional Latin lettersrte]ru(Xletters, ending_____\closingrvX)latex2e_26.html#index-letters_002c-endingrwXletters, endingrxX\closingrye]rz(Xletters, starting_____\openingr{X+latex2e_26.html#index-letters_002c-startingr|Xletters, startingr}X\openingr~e]r(Xletters, writing_____lettersrX*latex2e_26.html#index-letters_002c-writingrXletters, writingrXLettersre]r(Xline break, forcing_____\\rX,latex2e_9.html#index-line-break_002c-forcingrXline break, forcingrX\\re]r(Xline breaking_____line breakingrX"latex2e_9.html#index-line-breakingrX line breakingrX Line breakingre]r(X*line breaks, changing_____\fussy & \sloppyrX.latex2e_9.html#index-line-breaks_002c-changingrXline breaks, changingrX\fussy & \sloppyre]r(X2line breaks, forcing_____\linebreak & \nolinebreakrX-latex2e_9.html#index-line-breaks_002c-forcingrXline breaks, forcingrX\linebreak & \nolinebreakre]r(X0line breaks, multiplication discretionary_____\*rXClatex2e_16.html#index-line-breaks_002c-multiplication-discretionaryrX)line breaks, multiplication discretionaryrX\*re]r(X5line breaks, preventing_____\linebreak & \nolinebreakrX0latex2e_9.html#index-line-breaks_002c-preventingrXline breaks, preventingrX\linebreak & \nolinebreakre]r(Xlines in tables_____tabularrX$latex2e_8.html#index-lines-in-tablesrXlines in tablesrXtabularre]r(Xline_max_____makeindexrX"latex2e_25.html#index-line_005fmaxrXline_maxrX makeindexre]r(Xlining numerals_____font stylesrX$latex2e_4.html#index-lining-numeralsrXlining numeralsrX Font stylesre]r(X$lining text up in tables_____tabularrX-latex2e_8.html#index-lining-text-up-in-tablesrXlining text up in tablesrXtabularre]r(X*lining text up using tab stops_____tabbingrX3latex2e_8.html#index-lining-text-up-using-tab-stopsrXlining text up using tab stopsrXtabbingre]r(Xlist environment_____listrX%latex2e_8.html#index-list-environmentrXlist environmentrXlistre]r(X.list items, specifying counter_____\usecounterrX8latex2e_13.html#index-list-items_002c-specifying-counterrXlist items, specifying counterrX \usecounterre]r(X%list of figures file_____output filesrX)latex2e_2.html#index-list-of-figures-filerXlist of figures filerX Output filesre]r(X$list of tables file_____output filesrX(latex2e_2.html#index-list-of-tables-filerXlist of tables filerX Output filesre]r(Xlistings package_____tabbingrX%latex2e_8.html#index-listings-packagerXlistings packagerXtabbingre]r(Xlistings package_____verbatimrX'latex2e_8.html#index-listings-package-1rXlistings packagerXverbatimre]r(Xlistings package_____\verbrX'latex2e_8.html#index-listings-package-2rXlistings packagerX\verbre]r(Xlists of items_____itemizerX#latex2e_8.html#index-lists-of-itemsrXlists of itemsrXitemizere]r(X lists of items, generic_____listrX0latex2e_8.html#index-lists-of-items_002c-genericrXlists of items, genericrXlistre]r(X&lists of items, numbered_____enumeraterX1latex2e_8.html#index-lists-of-items_002c-numberedrXlists of items, numberedrX enumeratere]r(X3loading additional packages_____additional packagesrX0latex2e_3.html#index-loading-additional-packagesrXloading additional packagesrXAdditional packagesre]r(Xlog file_____output filesrXlatex2e_2.html#index-log-filerXlog filerX Output filesre]r(Xlogo, latex_____text symbolsrX%latex2e_23.html#index-logo_002c-LaTeXrX logo, LaTeXrX Text symbolsre]r(Xlogo, latex2e_____text symbolsrX'latex2e_23.html#index-logo_002c-LaTeX2erX logo, LaTeX2erX Text symbolsre]r(Xlogo, tex_____text symbolsrX#latex2e_23.html#index-logo_002c-TeXrX logo, TeXrX Text symbolsre]r(X+long command_____class and package commandsrX!latex2e_3.html#index-long-commandrX long commandr XClass and package commandsr e]r (X9low-9 quotation marks, single and double_____text symbolsr XFlatex2e_23.html#index-low_002d9-quotation-marks_002c-single-and-doubler X(low-9 quotation marks, single and doublerX Text symbolsre]r(X3low-level font commands_____low-level font commandsrX0latex2e_4.html#index-low_002dlevel-font-commandsrXlow-level font commandsrXLow-level font commandsre]r(X"lowercase_____upper and lower caserXlatex2e_23.html#index-lowercaserX lowercaserXUpper and lower casere]r(Xlr box_____picturerXlatex2e_8.html#index-LR-boxrXLR boxrXpicturere]r(Xlr mode_____modesr Xlatex2e_17.html#index-LR-moder!XLR moder"XModesr#e]r$(Xlrbox_____lrboxr%Xlatex2e_20.html#index-lrboxr&Xlrboxr'Xlrboxr(e]r)(X'lshort document_____about this documentr*X$latex2e_1.html#index-lshort-documentr+Xlshort documentr,XAbout this documentr-e]r.(X#ltugboat class_____tugboat templater/X$latex2e_29.html#index-ltugboat-classr0Xltugboat classr1Xtugboat templater2e]r3(X lualatex command_____tex enginesr4X%latex2e_2.html#index-lualatex-commandr5Xlualatex commandr6X TeX enginesr7e]r8(Xluatex_____tex enginesr9Xlatex2e_2.html#index-LuaTeXr:XLuaTeXr;X TeX enginesr<e]r=(Xm-width_____units of lengthr>X!latex2e_14.html#index-m_002dwidthr?Xm-widthr@XUnits of lengthrAe]rB(X$macro package, latex as_____overviewrCX0latex2e_2.html#index-macro-package_002c-LaTeX-asrDXmacro package, LaTeX asrEXOverviewrFe]rG(Xmacron accent_____accentsrHX#latex2e_23.html#index-macron-accentrIX macron accentrJXAccentsrKe]rL(X$macron accent, math_____math accentsrMX-latex2e_16.html#index-macron-accent_002c-mathrNXmacron accent, mathrOX Math accentsrPe]rQ(X1macros2e package_____\makeatletter & \makeatotherrRX&latex2e_12.html#index-macros2e-packagerSXmacros2e packagerTX \makeatletter & \makeatotherrUe]rV(Xmadsen, lars_____eqnarrayrWX%latex2e_8.html#index-Madsen_002c-LarsrXX Madsen, LarsrYXeqnarrayrZe]r[(Xmake a box_____\mbox & \makeboxr\X latex2e_20.html#index-make-a-boxr]X make a boxr^X\mbox & \makeboxr_e]r`(Xmakeindex_____makeindexraXlatex2e_25.html#index-makeindexrbX makeindexrcX makeindexrde]re(Xmakeindex program_____makeindexrfX'latex2e_25.html#index-makeindex-programrgXmakeindex programrhX makeindexrie]rj(X#makeindex, style file_____makeindexrkX/latex2e_25.html#index-makeindex_002c-style-filerlXmakeindex, style filermX makeindexrne]ro(X!making a title page_____titlepagerpX(latex2e_8.html#index-making-a-title-pagerqXmaking a title pagerrX titlepagerse]rt(X'making paragraphs_____making paragraphsruX'latex2e_15.html#index-making-paragraphsrvXmaking paragraphsrwXMaking paragraphsrxe]ry(X!marginal notes_____marginal notesrzX$latex2e_15.html#index-marginal-notesr{Xmarginal notesr|XMarginal notesr}e]r~(X)masculine ordinal symbol_____text symbolsrX.latex2e_23.html#index-masculine-ordinal-symbolrXmasculine ordinal symbolrX Text symbolsre]r(X$matching brackets_____\left & \rightrX'latex2e_16.html#index-matching-bracketsrXmatching bracketsrX\left & \rightre]r(X'matching parentheses_____\left & \rightrX*latex2e_16.html#index-matching-parenthesesrXmatching parenthesesrX\left & \rightre]r(Xmath accents_____math accentsrX"latex2e_16.html#index-math-accentsrX math accentsrX Math accentsre]r(Xmath environment_____mathrX%latex2e_8.html#index-math-environmentrXmath environmentrXmathre]r(X"math environment_____math formulasrX(latex2e_16.html#index-math-environment-1rXmath environmentrX Math formulasre]r(Xmath formulas_____math formulasrX#latex2e_16.html#index-math-formulasrX math formulasrX Math formulasre]r(X!math functions_____math functionsrX$latex2e_16.html#index-math-functionsrXmath functionsrXMath functionsre]r(X#math miscellany_____math miscellanyrX%latex2e_16.html#index-math-miscellanyrXmath miscellanyrXMath miscellanyre]r(Xmath mode_____modesrXlatex2e_17.html#index-math-moderX math moderXModesre]r(X%math mode, entering_____math formulasrX-latex2e_16.html#index-math-mode_002c-enteringrXmath mode, enteringrX Math formulasre]r(X+math mode, spacing_____spacing in math moderX,latex2e_16.html#index-math-mode_002c-spacingrXmath mode, spacingrXSpacing in math modere]r(X7math mode, spacing_____\phantom & \vphantom & \hphantomrX.latex2e_16.html#index-math-mode_002c-spacing-1rXmath mode, spacingrX(\phantom & \vphantom & \hphantomre]r(X$math mode, vertical space_____\smashrX3latex2e_16.html#index-math-mode_002c-vertical-spacerXmath mode, vertical spacerX\smashre]r(Xmath symbols_____math symbolsrX"latex2e_16.html#index-math-symbolsrX math symbolsrX Math symbolsre]r(Xmath, bold_____font stylesrX#latex2e_4.html#index-math_002c-boldrX math, boldrX Font stylesre]r(X#mathtools package_____math formulasrX'latex2e_16.html#index-mathtools-packagerXmathtools packagerX Math formulasre]r(X+mathtools package_____over- and underliningrX)latex2e_16.html#index-mathtools-package-1rXmathtools packagerXOver- and Underliningre]r(Xmathtools package_____\smashrX)latex2e_16.html#index-mathtools-package-2rXmathtools packagerX\smashre]r(X6mathtools package_____\phantom & \vphantom & \hphantomrX)latex2e_16.html#index-mathtools-package-3rXmathtools packagerX(\phantom & \vphantom & \hphantomre]r(Xmetapost package_____\linerX%latex2e_8.html#index-MetaPost-packagerXMetaPost packagerX\linere]r(X)mfirstuc package_____upper and lower caserX&latex2e_23.html#index-mfirstuc-packagerXmfirstuc packagerXUpper and lower casere]r(X,mhchem package_____subscripts & superscriptsrX$latex2e_16.html#index-mhchem-packagerXmhchem packagerXSubscripts & superscriptsre]r(Xmillimeter_____units of lengthrX latex2e_14.html#index-MillimeterrX MillimeterrXUnits of lengthre]r(X!minipage environment_____minipagerX)latex2e_8.html#index-minipage-environmentrXminipage environmentrXminipagere]r(X!minipage, creating a_____minipagerX-latex2e_8.html#index-minipage_002c-creating-arXminipage, creating arXminipagere]r(Xminted package_____tabbingrX#latex2e_8.html#index-minted-packagerXminted packagerXtabbingre]r(Xminted package_____verbatimrX%latex2e_8.html#index-minted-package-1rXminted packagerXverbatimr e]r (Xminted package_____\verbr X%latex2e_8.html#index-minted-package-2r Xminted packager X\verbre]r(Xmirrors of ctan_____ctanrX$latex2e_2.html#index-mirrors-of-CTANrXmirrors of CTANrXCTANre]r(Xmm_____units of lengthrXlatex2e_14.html#index-mmrXmmrXUnits of lengthre]r(Xmodes_____modesrXlatex2e_17.html#index-modesrXmodesrXModesre]r(Xmonospace font_____font stylesrX#latex2e_4.html#index-monospace-fontr Xmonospace fontr!X Font stylesr"e]r#(Xmoving arguments_____\protectr$X&latex2e_12.html#index-moving-argumentsr%Xmoving argumentsr&X\protectr'e]r((X mpfootnote counter_____\footnoter)X(latex2e_11.html#index-mpfootnote-counterr*Xmpfootnote counterr+X \footnoter,e]r-(Xmu_____units of lengthr.Xlatex2e_14.html#index-mur/Xmur0XUnits of lengthr1e]r2(X!mu, math unit_____units of lengthr3X'latex2e_14.html#index-mu_002c-math-unitr4X mu, math unitr5XUnits of lengthr6e]r7(Xmulticolumn text_____\twocolumnr8X%latex2e_5.html#index-multicolumn-textr9Xmulticolumn textr:X \twocolumnr;e]r<(X multilingual support_____accentsr=X*latex2e_23.html#index-multilingual-supportr>Xmultilingual supportr?XAccentsr@e]rA(Xmultind package_____indexesrBX%latex2e_25.html#index-multind-packagerCXmultind packagerDXIndexesrEe]rF(X$multiplication, discretionary_____\*rGX7latex2e_16.html#index-multiplication_002c-discretionaryrHXmultiplication, discretionaryrIX\*rJe]rK(Xname_____\newglossaryentryrLXlatex2e_25.html#index-namerMXnamerNX\newglossaryentryrOe]rP(X nbsp_____~rQXlatex2e_19.html#index-NBSPrRXNBSPrSje]rT(X8nested \include, not allowed_____\include & \includeonlyrUX:latex2e_24.html#index-nested-_005cinclude_002c-not-allowedrVXnested \include, not allowedrWX\include & \includeonlyrXe]rY(X5new class commands_____class and package constructionrZX'latex2e_3.html#index-new-class-commandsr[Xnew class commandsr\XClass and package constructionr]e]r^(X1new command, check_____class and package commandsr_X+latex2e_3.html#index-new-command_002c-checkr`Xnew command, checkraXClass and package commandsrbe]rc(X6new command, definition_____class and package commandsrdX0latex2e_3.html#index-new-command_002c-definitionreXnew command, definitionrfXClass and package commandsrge]rh(X6new commands, defining_____\newcommand & \renewcommandriX0latex2e_12.html#index-new-commands_002c-definingrjXnew commands, definingrkX\newcommand & \renewcommandrle]rm(X*new commands, defining_____\providecommandrnX2latex2e_12.html#index-new-commands_002c-defining-1roXnew commands, definingrpX\providecommandrqe]rr(X2new line, output as input_____\obeycr & \restorecrrsX2latex2e_9.html#index-new-line_002c-output-as-inputrtXnew line, output as inputruX\obeycr & \restorecrrve]rw(Xnew line, starting_____\\rxX+latex2e_9.html#index-new-line_002c-startingryXnew line, startingrzX\\r{e]r|(X0new line, starting (paragraph mode)_____\newliner}XDlatex2e_9.html#index-new-line_002c-starting-_0028paragraph-mode_0029r~X#new line, starting (paragraph mode)rX\newlinere]r(Xnew page, starting_____\newpagerX,latex2e_10.html#index-new-page_002c-startingrXnew page, startingrX\newpagere]r(X3non-english characters_____additional latin lettersrX0latex2e_23.html#index-non_002dEnglish-charactersrXnon-English charactersrXAdditional Latin lettersre]r(X&notes in the margin_____marginal notesrX)latex2e_15.html#index-notes-in-the-marginrXnotes in the marginrXMarginal notesre]r(X-notitlepage option_____document class optionsrX'latex2e_3.html#index-notitlepage-optionrXnotitlepage optionrXDocument class optionsre]r(X!null delimiter_____\left & \rightrX$latex2e_16.html#index-null-delimiterrXnull delimiterrX\left & \rightre]r(X2numbered items, specifying counter_____\usecounterrX<latex2e_13.html#index-numbered-items_002c-specifying-counterrX"numbered items, specifying counterrX \usecounterre]r(X#numerals, old-style_____font stylesrX0latex2e_4.html#index-numerals_002c-old_002dstylerXnumerals, old-stylerX Font stylesre]r(Xoblique font_____font stylesrX!latex2e_4.html#index-oblique-fontrX oblique fontrX Font stylesre]r(X(oe ligature_____additional latin lettersrX!latex2e_23.html#index-oe-ligaturerX oe ligaturerXAdditional Latin lettersre]r(Xogonek_____accentsrXlatex2e_23.html#index-ogonekrXogonekrXAccentsre]r(X"old-style numerals_____font stylesrX+latex2e_4.html#index-old_002dstyle-numeralsrXold-style numeralsrX Font stylesre]r(X one-column output_____\onecolumnrX*latex2e_5.html#index-one_002dcolumn-outputrXone-column outputrX \onecolumnre]r(X+onecolumn option_____document class optionsrX%latex2e_3.html#index-onecolumn-optionrXonecolumn optionrXDocument class optionsre]r(X)oneside option_____document class optionsrX#latex2e_3.html#index-oneside-optionrXoneside optionrXDocument class optionsre]r(X)openany option_____document class optionsrX#latex2e_3.html#index-openany-optionrXopenany optionrXDocument class optionsre]r(X)openbib option_____document class optionsrX#latex2e_3.html#index-openbib-optionrXopenbib optionrXDocument class optionsre]r(Xopening quote_____text symbolsrX#latex2e_23.html#index-opening-quoterX opening quoterX Text symbolsre]r(X+openright option_____document class optionsrX%latex2e_3.html#index-openright-optionrXopenright optionrXDocument class optionsre]r(Xopentype fonts_____tex enginesrX#latex2e_2.html#index-OpenType-fontsrXOpenType fontsrX TeX enginesre]r(X-options, class_____class and package commandsrX'latex2e_3.html#index-options_002c-classrXoptions, classrXClass and package commandsre]r(X0options, color package_____color package optionsrX0latex2e_21.html#index-options_002c-color-packagerXoptions, color packagerXColor package optionsre]r(X.options, command line_____command line optionsrX/latex2e_28.html#index-options_002c-command-linerXoptions, command linerXCommand line optionsre]r(X2options, document class_____document class optionsrX0latex2e_3.html#index-options_002c-document-classrXoptions, document classrXDocument class optionsre]r(X7options, document class_____class and package structurerX2latex2e_3.html#index-options_002c-document-class-1rXoptions, document classrXClass and package structurere]r(X'options, global_____additional packagesrX(latex2e_3.html#index-options_002c-globalrXoptions, globalrXAdditional packagesre]r(X6options, graphics package_____graphics package optionsrX3latex2e_22.html#index-options_002c-graphics-packager Xoptions, graphics packager XGraphics package optionsr e]r (X0options, package_____class and package structurer X)latex2e_3.html#index-options_002c-packager Xoptions, packager XClass and package structurer e]r (X/options, package_____class and package commandsr X+latex2e_3.html#index-options_002c-package-1r Xoptions, packager XClass and package commandsr e]r (X1ordinals, feminine and masculine_____text symbolsr X:latex2e_23.html#index-ordinals_002c-feminine-and-masculiner X ordinals, feminine and masculiner X Text symbolsr e]r (X#oslash_____additional latin lettersr Xlatex2e_23.html#index-oslashr Xoslashr XAdditional Latin lettersr e]r (Xouter paragraph mode_____modesr X*latex2e_17.html#index-outer-paragraph-moder Xouter paragraph moder XModesr e]r (Xoverbar accent_____accentsr X$latex2e_23.html#index-overbar-accentr Xoverbar accentr XAccentsr e]r! (X%overdot accent, math_____math accentsr" X.latex2e_16.html#index-overdot-accent_002c-mathr# Xoverdot accent, mathr$ X Math accentsr% e]r& (X$overlining_____over- and underliningr' X latex2e_16.html#index-overliningr( X overliningr) XOver- and Underliningr* e]r+ (Xoverview of latex_____overviewr, X&latex2e_2.html#index-overview-of-LaTeXr- Xoverview of LaTeXr. XOverviewr/ e]r0 (X3package file layout_____class and package structurer1 X(latex2e_3.html#index-package-file-layoutr2 Xpackage file layoutr3 XClass and package structurer4 e]r5 (X/package options_____class and package structurer6 X$latex2e_3.html#index-package-optionsr7 Xpackage optionsr8 XClass and package structurer9 e]r: (X.package options_____class and package commandsr; X&latex2e_3.html#index-package-options-1r< Xpackage optionsr= XClass and package commandsr> e]r? (X package, algorithm2e_____tabbingr@ X-latex2e_8.html#index-package_002c-algorithm2erA Xpackage, algorithm2erB XtabbingrC e]rD (X#package, amsfonts_____math formulasrE X+latex2e_16.html#index-package_002c-amsfontsrF Xpackage, amsfontsrG X Math formulasrH e]rI (Xpackage, amsmath_____arrayrJ X)latex2e_8.html#index-package_002c-amsmathrK Xpackage, amsmathrL XarrayrM e]rN (Xpackage, amsmath_____arrayrO X+latex2e_8.html#index-package_002c-amsmath-1rP Xpackage, amsmathrQ XarrayrR e]rS (X package, amsmath_____displaymathrT X+latex2e_8.html#index-package_002c-amsmath-2rU Xpackage, amsmathrV X displaymathrW e]rX (Xpackage, amsmath_____equationrY X+latex2e_8.html#index-package_002c-amsmath-3rZ Xpackage, amsmathr[ Xequationr\ e]r] (Xpackage, amsmath_____theoremr^ X+latex2e_8.html#index-package_002c-amsmath-4r_ Xpackage, amsmathr` Xtheoremra e]rb (X"package, amsmath_____math formulasrc X,latex2e_16.html#index-package_002c-amsmath-5rd Xpackage, amsmathre X Math formulasrf e]rg (Xpackage, amsmath_____dotsrh X,latex2e_16.html#index-package_002c-amsmath-6ri Xpackage, amsmathrj XDotsrk e]rl (X#package, amsmath_____math functionsrm X,latex2e_16.html#index-package_002c-amsmath-7rn Xpackage, amsmathro XMath functionsrp e]rq (X5package, amsmath_____\phantom & \vphantom & \hphantomrr X,latex2e_16.html#index-package_002c-amsmath-8rs Xpackage, amsmathrt X(\phantom & \vphantom & \hphantomru e]rv (X-package, amsmath_____colon character & \colonrw X,latex2e_16.html#index-package_002c-amsmath-9rx Xpackage, amsmathry XColon character & \colonrz e]r{ (X-package, amsmath_____colon character & \colonr| X-latex2e_16.html#index-package_002c-amsmath-10r} Xpackage, amsmathr~ XColon character & \colonr e]r (Xpackage, amsthm_____theoremr X(latex2e_8.html#index-package_002c-amsthmr Xpackage, amsthmr Xtheoremr e]r (Xpackage, amsthm_____\ruler X+latex2e_23.html#index-package_002c-amsthm-1r Xpackage, amsthmr X\ruler e]r (Xpackage, appendix_____\appendixr X*latex2e_6.html#index-package_002c-appendixr Xpackage, appendixr X \appendixr e]r (X"package, array (package)_____arrayr X9latex2e_8.html#index-package_002c-array-_0028package_0029r Xpackage, array (package)r Xarrayr e]r (Xpackage, asymptote_____\liner X+latex2e_8.html#index-package_002c-Asymptoter Xpackage, Asymptoter X\liner e]r (Xpackage, asymptote_____\strutr X.latex2e_19.html#index-package_002c-Asymptote-1r Xpackage, Asymptoter X\strutr e]r (X'package, asymptote_____\mbox & \makeboxr X.latex2e_20.html#index-package_002c-Asymptote-2r Xpackage, Asymptoter X\mbox & \makeboxr e]r (Xpackage, babel_____\chapterr X'latex2e_6.html#index-package_002c-babelr Xpackage, babelr X\chapterr e]r (X"package, babel_____thebibliographyr X)latex2e_8.html#index-package_002c-babel-1r Xpackage, babelr Xthebibliographyr e]r (Xpackage, babel_____accentsr X*latex2e_23.html#index-package_002c-babel-2r Xpackage, babelr XAccentsr e]r (Xpackage, babel_____\todayr X*latex2e_23.html#index-package_002c-babel-3r Xpackage, babelr X\todayr e]r (X)package, babel_____table of contents etc.r X*latex2e_25.html#index-package_002c-babel-4r Xpackage, babelr XTable of contents etc.r e]r (Xpackage, babel_____\indexr X*latex2e_25.html#index-package_002c-babel-5r Xpackage, babelr X\indexr e]r (X+package, bigfoot_____footnotes of footnotesr X*latex2e_11.html#index-package_002c-bigfootr Xpackage, bigfootr XFootnotes of footnotesr e]r (X'package, bm_____\boldmath & \unboldmathr X%latex2e_16.html#index-package_002c-bmr X package, bmr X\boldmath & \unboldmathr e]r (X&package, cleveref_____cross referencesr X*latex2e_7.html#index-package_002c-cleverefr Xpackage, cleverefr XCross referencesr e]r (Xpackage, cleveref_____\refr X,latex2e_7.html#index-package_002c-cleveref-1r Xpackage, cleverefr X\refr e]r (X#package, cleveref_____\footnotemarkr X-latex2e_11.html#index-package_002c-cleveref-2r Xpackage, cleverefr X \footnotemarkr e]r (Xpackage, cprotect_____verbatimr X*latex2e_8.html#index-package_002c-cprotectr Xpackage, cprotectr Xverbatimr e]r (Xpackage, cprotect_____\verbr X,latex2e_8.html#index-package_002c-cprotect-1r Xpackage, cprotectr X\verbr e]r (Xpackage, datetime_____\todayr X+latex2e_23.html#index-package_002c-datetimer Xpackage, datetimer X\todayr e]r (Xpackage, dcolumn_____arrayr X)latex2e_8.html#index-package_002c-dcolumnr Xpackage, dcolumnr Xarrayr e]r (Xpackage, enumitem_____listr X*latex2e_8.html#index-package_002c-enumitemr Xpackage, enumitemr Xlistr e]r (Xpackage, envlab_____\makelabelsr X)latex2e_26.html#index-package_002c-envlabr Xpackage, envlabr X \makelabelsr e]r (X0package, etoolbox_____class and package commandsr X*latex2e_3.html#index-package_002c-etoolboxr Xpackage, etoolboxr XClass and package commandsr e]r (X!package, eurosym_____text symbolsr X*latex2e_23.html#index-package_002c-eurosymr Xpackage, eurosymr!X Text symbolsr!e]r!(X!package, fancyhdr_____page stylesr!X+latex2e_18.html#index-package_002c-fancyhdrr!Xpackage, fancyhdrr!X Page stylesr!e]r!(X package, fancyhdr_____\pagestyler!X-latex2e_18.html#index-package_002c-fancyhdr-1r !Xpackage, fancyhdrr !X \pagestyler !e]r !(Xpackage, fancyvrb_____tabbingr !X*latex2e_8.html#index-package_002c-fancyvrbr!Xpackage, fancyvrbr!Xtabbingr!e]r!(Xpackage, fancyvrb_____verbatimr!X,latex2e_8.html#index-package_002c-fancyvrb-1r!Xpackage, fancyvrbr!Xverbatimr!e]r!(Xpackage, flafter_____floatsr!X)latex2e_5.html#index-package_002c-flafterr!Xpackage, flafterr!XFloatsr!e]r!(Xpackage, float_____floatsr!X'latex2e_5.html#index-package_002c-floatr!Xpackage, floatr!XFloatsr!e]r !(X,package, geometry_____document class optionsr!!X*latex2e_3.html#index-package_002c-geometryr"!Xpackage, geometryr#!XDocument class optionsr$!e]r%!(X,package, geometry_____document class optionsr&!X,latex2e_3.html#index-package_002c-geometry-1r'!Xpackage, geometryr(!XDocument class optionsr)!e]r*!(X#package, hyperref_____\footnotemarkr+!X+latex2e_11.html#index-package_002c-hyperrefr,!Xpackage, hyperrefr-!X \footnotemarkr.!e]r/!(X#package, hyperref_____\footnotemarkr0!X-latex2e_11.html#index-package_002c-hyperref-1r1!Xpackage, hyperrefr2!X \footnotemarkr3!e]r4!(X$package, hyperref_____\pagenumberingr5!X-latex2e_18.html#index-package_002c-hyperref-2r6!Xpackage, hyperrefr7!X\pagenumberingr8!e]r9!(X(package, hyperref_____command line inputr:!X-latex2e_28.html#index-package_002c-hyperref-3r;!Xpackage, hyperrefr!(Xpackage, indentfirst_____\partr?!X-latex2e_6.html#index-package_002c-indentfirstr@!Xpackage, indentfirstrA!X\partrB!e]rC!(X!package, indentfirst_____\chapterrD!X/latex2e_6.html#index-package_002c-indentfirst-1rE!Xpackage, indentfirstrF!X\chapterrG!e]rH!(X!package, indentfirst_____\sectionrI!X/latex2e_6.html#index-package_002c-indentfirst-2rJ!Xpackage, indentfirstrK!X\sectionrL!e]rM!(X$package, indentfirst_____\subsectionrN!X/latex2e_6.html#index-package_002c-indentfirst-3rO!Xpackage, indentfirstrP!X \subsectionrQ!e]rR!(XDpackage, indentfirst_____\subsubsection & \paragraph & \subparagraphrS!X/latex2e_6.html#index-package_002c-indentfirst-4rT!Xpackage, indentfirstrU!X3\subsubsection & \paragraph & \subparagraphrV!e]rW!(X,package, indentfirst_____\indent & \noindentrX!X0latex2e_15.html#index-package_002c-indentfirst-5rY!Xpackage, indentfirstrZ!X\indent & \noindentr[!e]r\!(Xpackage, index_____\indexr]!X(latex2e_25.html#index-package_002c-indexr^!Xpackage, indexr_!X\indexr`!e]ra!(Xpackage, listings_____tabbingrb!X*latex2e_8.html#index-package_002c-listingsrc!Xpackage, listingsrd!Xtabbingre!e]rf!(Xpackage, listings_____verbatimrg!X,latex2e_8.html#index-package_002c-listings-1rh!Xpackage, listingsri!Xverbatimrj!e]rk!(Xpackage, listings_____\verbrl!X,latex2e_8.html#index-package_002c-listings-2rm!Xpackage, listingsrn!X\verbro!e]rp!(X2package, macros2e_____\makeatletter & \makeatotherrq!X+latex2e_12.html#index-package_002c-macros2err!Xpackage, macros2ers!X \makeatletter & \makeatotherrt!e]ru!(X$package, mathtools_____math formulasrv!X,latex2e_16.html#index-package_002c-mathtoolsrw!Xpackage, mathtoolsrx!X Math formulasry!e]rz!(X,package, mathtools_____over- and underliningr{!X.latex2e_16.html#index-package_002c-mathtools-1r|!Xpackage, mathtoolsr}!XOver- and Underliningr~!e]r!(Xpackage, mathtools_____\smashr!X.latex2e_16.html#index-package_002c-mathtools-2r!Xpackage, mathtoolsr!X\smashr!e]r!(X7package, mathtools_____\phantom & \vphantom & \hphantomr!X.latex2e_16.html#index-package_002c-mathtools-3r!Xpackage, mathtoolsr!X(\phantom & \vphantom & \hphantomr!e]r!(Xpackage, metapost_____\liner!X*latex2e_8.html#index-package_002c-MetaPostr!Xpackage, MetaPostr!X\liner!e]r!(X*package, mfirstuc_____upper and lower caser!X+latex2e_23.html#index-package_002c-mfirstucr!Xpackage, mfirstucr!XUpper and lower caser!e]r!(X-package, mhchem_____subscripts & superscriptsr!X)latex2e_16.html#index-package_002c-mhchemr!Xpackage, mhchemr!XSubscripts & superscriptsr!e]r!(Xpackage, minted_____tabbingr!X(latex2e_8.html#index-package_002c-mintedr!Xpackage, mintedr!Xtabbingr!e]r!(Xpackage, minted_____verbatimr!X*latex2e_8.html#index-package_002c-minted-1r!Xpackage, mintedr!Xverbatimr!e]r!(Xpackage, minted_____\verbr!X*latex2e_8.html#index-package_002c-minted-2r!Xpackage, mintedr!X\verbr!e]r!(Xpackage, multind_____indexesr!X*latex2e_25.html#index-package_002c-multindr!Xpackage, multindr!XIndexesr!e]r!(Xpackage, pict2e_____\liner!X(latex2e_8.html#index-package_002c-pict2er!Xpackage, pict2er!X\liner!e]r!(X package, polyglossia_____accentsr!X.latex2e_23.html#index-package_002c-polyglossiar!Xpackage, polyglossiar!XAccentsr!e]r!(Xpackage, polyglossia_____\todayr!X0latex2e_23.html#index-package_002c-polyglossia-1r!Xpackage, polyglossiar!X\todayr!e]r!(X/package, polyglossia_____table of contents etc.r!X0latex2e_25.html#index-package_002c-polyglossia-2r!Xpackage, polyglossiar!XTable of contents etc.r!e]r!(Xpackage, polyglossia_____\indexr!X0latex2e_25.html#index-package_002c-polyglossia-3r!Xpackage, polyglossiar!X\indexr!e]r!(Xpackage, pstricks_____\liner!X*latex2e_8.html#index-package_002c-PSTricksr!Xpackage, PSTricksr!X\liner!e]r!(X)package, sagetex_____command line optionsr!X*latex2e_28.html#index-package_002c-sagetexr!Xpackage, sagetexr!XCommand line optionsr!e]r!(X-package, setspace_____low-level font commandsr!X*latex2e_4.html#index-package_002c-setspacer!Xpackage, setspacer!XLow-level font commandsr!e]r!(Xpackage, showidx_____indexesr!X*latex2e_25.html#index-package_002c-showidxr!Xpackage, showidxr!XIndexesr!e]r!(Xpackage, siunitx_____~r!X*latex2e_19.html#index-package_002c-siunitxr!Xpackage, siunitxr!je]r!(X!package, symbols_____math symbolsr!X*latex2e_16.html#index-package_002c-symbolsr!Xpackage, symbolsr!X Math symbolsr!e]r!(X*package, textcase_____upper and lower caser!X+latex2e_23.html#index-package_002c-textcaser!Xpackage, textcaser!XUpper and lower caser!e]r!(X!package, textcomp_____font stylesr!X*latex2e_4.html#index-package_002c-textcompr!Xpackage, textcompr!X Font stylesr!e]r!(Xpackage, tikz_____\liner!X&latex2e_8.html#index-package_002c-TikZr!X package, TikZr!X\liner!e]r!(Xpackage, tikz_____\strutr!X)latex2e_19.html#index-package_002c-TikZ-1r!X package, TikZr!X\strutr!e]r!(X"package, tikz_____\mbox & \makeboxr!X)latex2e_20.html#index-package_002c-TikZ-2r!X package, TikZr!X\mbox & \makeboxr!e]r!(Xpackage, titlesec_____\partr!X*latex2e_6.html#index-package_002c-titlesecr!Xpackage, titlesecr!X\partr!e]r"(Xpackage, titlesec_____\chapterr"X,latex2e_6.html#index-package_002c-titlesec-1r"Xpackage, titlesecr"X\chapterr"e]r"(Xpackage, titlesec_____\sectionr"X,latex2e_6.html#index-package_002c-titlesec-2r"Xpackage, titlesecr"X\sectionr "e]r "(X!package, titlesec_____\subsectionr "X,latex2e_6.html#index-package_002c-titlesec-3r "Xpackage, titlesecr "X \subsectionr"e]r"(XApackage, titlesec_____\subsubsection & \paragraph & \subparagraphr"X,latex2e_6.html#index-package_002c-titlesec-4r"Xpackage, titlesecr"X3\subsubsection & \paragraph & \subparagraphr"e]r"(X.package, tocbibbind_____table of contents etc.r"X-latex2e_25.html#index-package_002c-tocbibbindr"Xpackage, tocbibbindr"XTable of contents etc.r"e]r"(X+package, tocloft_____table of contents etc.r"X*latex2e_25.html#index-package_002c-tocloftr"Xpackage, tocloftr"XTable of contents etc.r"e]r"(X'package, ulem_____over- and underliningr"X'latex2e_16.html#index-package_002c-ulemr "X package, ulemr!"XOver- and Underliningr""e]r#"(Xpackage, url_____\verbr$"X%latex2e_8.html#index-package_002c-urlr%"X package, urlr&"X\verbr'"e]r("(X!package, verbatimbox_____verbatimr)"X-latex2e_8.html#index-package_002c-verbatimboxr*"Xpackage, verbatimboxr+"Xverbatimr,"e]r-"(X4packages, loading additional_____additional packagesr."X5latex2e_3.html#index-packages_002c-loading-additionalr/"Xpackages, loading additionalr0"XAdditional packagesr1"e]r2"(X1page break, forcing_____\pagebreak & \nopagebreakr3"X-latex2e_10.html#index-page-break_002c-forcingr4"Xpage break, forcingr5"X\pagebreak & \nopagebreakr6"e]r7"(X4page break, preventing_____\pagebreak & \nopagebreakr8"X0latex2e_10.html#index-page-break_002c-preventingr9"Xpage break, preventingr:"X\pagebreak & \nopagebreakr;"e]r<"(Xpage breaking_____page breakingr="X#latex2e_10.html#index-page-breakingr>"X page breakingr?"X Page breakingr@"e]rA"(X1page layout parameters_____page layout parametersrB"X+latex2e_5.html#index-page-layout-parametersrC"Xpage layout parametersrD"XPage layout parametersrE"e]rF"(X+page number, cross referencing_____\pagerefrG"X7latex2e_7.html#index-page-number_002c-cross-referencingrH"Xpage number, cross referencingrI"X\pagerefrJ"e]rK"(X'page numbering style_____\pagenumberingrL"X*latex2e_18.html#index-page-numbering-stylerM"Xpage numbering stylerN"X\pagenumberingrO"e]rP"(X(page style, this page_____\thispagestylerQ"X/latex2e_18.html#index-page-style_002c-this-pagerR"Xpage style, this pagerS"X\thispagestylerT"e]rU"(Xpage styles_____page stylesrV"X!latex2e_18.html#index-page-stylesrW"X page stylesrX"X Page stylesrY"e]rZ"(Xpage, colored_____colored pagesr["X'latex2e_21.html#index-page_002c-coloredr\"X page, coloredr]"X Colored pagesr^"e]r_"(Xpage_precedence_____makeindexr`"X)latex2e_25.html#index-page_005fprecedencera"Xpage_precedencerb"X makeindexrc"e]rd"(X$paired delimiters_____\left & \rightre"X'latex2e_16.html#index-paired-delimitersrf"Xpaired delimitersrg"X\left & \rightrh"e]ri"(Xparagraph_____sectioningrj"Xlatex2e_6.html#index-paragraphrk"X paragraphrl"X Sectioningrm"e]rn"(X9paragraph_____\subsubsection & \paragraph & \subparagraphro"X latex2e_6.html#index-paragraph-1rp"X paragraphrq"X3\subsubsection & \paragraph & \subparagraphrr"e]rs"(X/paragraph indentation_____\parindent & \parskiprt"X+latex2e_15.html#index-paragraph-indentationru"Xparagraph indentationrv"X\parindent & \parskiprw"e]rx"(X/paragraph indentation, in minipage_____minipagery"X;latex2e_8.html#index-paragraph-indentation_002c-in-minipagerz"X"paragraph indentation, in minipager{"Xminipager|"e]r}"(X;paragraph indentations in quoted text_____quotation & quoter~"X:latex2e_8.html#index-paragraph-indentations-in-quoted-textr"X%paragraph indentations in quoted textr"Xquotation & quoter"e]r"(XEparagraph indentations in quoted text, omitting_____quotation & quoter"XHlatex2e_8.html#index-paragraph-indentations-in-quoted-text_002c-omittingr"X/paragraph indentations in quoted text, omittingr"Xquotation & quoter"e]r"(Xparagraph mode_____modesr"X$latex2e_17.html#index-paragraph-moder"Xparagraph moder"XModesr"e]r"(Xparagraph mode_____\parboxr"X&latex2e_20.html#index-paragraph-mode-1r"Xparagraph moder"X\parboxr"e]r"(X!paragraph symbol_____text symbolsr"X&latex2e_23.html#index-paragraph-symbolr"Xparagraph symbolr"X Text symbolsr"e]r"(Xparagraph, ending_____\parr"X+latex2e_15.html#index-paragraph_002c-endingr"Xparagraph, endingr"X\parr"e]r"(Xparagraph, in a box_____\parboxr"X-latex2e_20.html#index-paragraph_002c-in-a-boxr"Xparagraph, in a boxr"X\parboxr"e]r"(X paragraphs_____making paragraphsr"X latex2e_15.html#index-paragraphsr"X paragraphsr"XMaking paragraphsr"e]r"(X'parameters, for footnotes_____\footnoter"X3latex2e_11.html#index-parameters_002c-for-footnotesr"Xparameters, for footnotesr"X \footnoter"e]r"(X2parameters, page layout_____page layout parametersr"X0latex2e_5.html#index-parameters_002c-page-layoutr"Xparameters, page layoutr"XPage layout parametersr"e]r"(Xpart_____sectioningr"Xlatex2e_6.html#index-partr"Xpartr"X Sectioningr"e]r"(Xpart_____\partr"Xlatex2e_6.html#index-part-1r"Xpartr"X\partr"e]r"(Xpc_____units of lengthr"Xlatex2e_14.html#index-pcr"Xpcr"XUnits of lengthr"e]r"(X4pdf graphic files_____graphics package configurationr"X'latex2e_22.html#index-PDF-graphic-filesr"XPDF graphic filesr"XGraphics package configurationr"e]r"(X&pdf graphic files_____\includegraphicsr"X)latex2e_22.html#index-PDF-graphic-files-1r"XPDF graphic filesr"X\includegraphicsr"e]r"(X!pdflatex command_____output filesr"X%latex2e_2.html#index-pdflatex-commandr"Xpdflatex commandr"X Output filesr"e]r"(Xpdftex_____output filesr"Xlatex2e_2.html#index-pdfTeXr"XpdfTeXr"X Output filesr"e]r"(Xpdftex engine_____tex enginesr"X"latex2e_2.html#index-pdfTeX-enginer"X pdfTeX enginer"X TeX enginesr"e]r"(X"period, abbreviation-ending_____\@r"X9latex2e_19.html#index-period_002c-abbreviation_002dendingr"Xperiod, abbreviation-endingr"X\@r"e]r"(X*period, centered, in text_____text symbolsr"X7latex2e_23.html#index-period_002c-centered_002c-in-textr"Xperiod, centered, in textr"X Text symbolsr"e]r"(Xperiod, sentence-ending_____\@r"X5latex2e_19.html#index-period_002c-sentence_002dendingr"Xperiod, sentence-endingr"X\@r"e]r"(Xperiod, spacing after_____\@r"X/latex2e_19.html#index-period_002c-spacing-afterr"Xperiod, spacing afterr"X\@r"e]r"(Xpica_____units of lengthr"Xlatex2e_14.html#index-picar"Xpicar"XUnits of lengthr"e]r"(Xpict2e package_____\liner"X#latex2e_8.html#index-pict2e-packager"Xpict2e packager"X\liner"e]r"(Xpict2e package_____\liner"X%latex2e_8.html#index-pict2e-package-1r"Xpict2e packager"X\liner"e]r"(Xpicture environment_____picturer"X(latex2e_8.html#index-picture-environmentr"Xpicture environmentr"Xpicturer"e]r"(Xpictures, creating_____picturer#X+latex2e_8.html#index-pictures_002c-creatingr#Xpictures, creatingr#Xpicturer#e]r#(Xpilcrow_____text symbolsr#Xlatex2e_23.html#index-pilcrowr#Xpilcrowr#X Text symbolsr#e]r #(Xplacement of floats_____floatsr #X(latex2e_5.html#index-placement-of-floatsr #Xplacement of floatsr #XFloatsr #e]r#(Xplural_____\newglossaryentryr#Xlatex2e_25.html#index-pluralr#Xpluralr#X\newglossaryentryr#e]r#(X,png files_____graphics package configurationr#Xlatex2e_22.html#index-PNG-filesr#X PNG filesr#XGraphics package configurationr#e]r#(Xpng files_____\includegraphicsr#X!latex2e_22.html#index-PNG-files-1r#X PNG filesr#X\includegraphicsr#e]r#(X$poetry, an environment for_____verser#X3latex2e_8.html#index-poetry_002c-an-environment-forr#Xpoetry, an environment forr #Xverser!#e]r"#(Xpoint_____units of lengthr##Xlatex2e_14.html#index-Pointr$#XPointr%#XUnits of lengthr&#e]r'#(X%polish l_____additional latin lettersr(#Xlatex2e_23.html#index-polish-lr)#Xpolish lr*#XAdditional Latin lettersr+#e]r,#(Xpolyglossia package_____accentsr-#X)latex2e_23.html#index-polyglossia-packager.#Xpolyglossia packager/#XAccentsr0#e]r1#(Xpolyglossia package_____\todayr2#X+latex2e_23.html#index-polyglossia-package-1r3#Xpolyglossia packager4#X\todayr5#e]r6#(X.polyglossia package_____table of contents etc.r7#X+latex2e_25.html#index-polyglossia-package-2r8#Xpolyglossia packager9#XTable of contents etc.r:#e]r;#(Xpolyglossia package_____\indexr<#X+latex2e_25.html#index-polyglossia-package-3r=#Xpolyglossia packager>#X\indexr?#e]r@#(X/portrait orientation_____document class optionsrA#X)latex2e_3.html#index-portrait-orientationrB#Xportrait orientationrC#XDocument class optionsrD#e]rE#(X position, in picture_____picturerF#X-latex2e_8.html#index-position_002c-in-picturerG#Xposition, in picturerH#XpicturerI#e]rJ#(X4positional parameter_____\newcommand & \renewcommandrK#X*latex2e_12.html#index-positional-parameterrL#Xpositional parameterrM#X\newcommand & \renewcommandrN#e]rO#(Xpostamble_____makeindexrP#Xlatex2e_25.html#index-postamblerQ#X postamblerR#X makeindexrS#e]rT#(Xpostscript, in letters_____\psrU#X0latex2e_26.html#index-postscript_002c-in-lettersrV#Xpostscript, in lettersrW#X\psrX#e]rY#(Xpounds symbol_____text symbolsrZ#X#latex2e_23.html#index-pounds-symbolr[#X pounds symbolr\#X Text symbolsr]#e]r^#(Xpreamble_____makeindexr_#Xlatex2e_25.html#index-preambler`#Xpreamblera#X makeindexrb#e]rc#(X)preamble, defined_____starting and endingrd#X*latex2e_2.html#index-preamble_002c-definedre#Xpreamble, definedrf#XStarting and endingrg#e]rh#(X*prompt, ‘*’_____recovering from errorsri#X'latex2e_28.html#index-prompt_002c-_002arj#Xprompt, ‘*’rk#XRecovering from errorsrl#e]rm#(Xpronunciation_____overviewrn#X"latex2e_2.html#index-pronunciationro#X pronunciationrp#XOverviewrq#e]rr#(Xpstricks package_____\liners#X%latex2e_8.html#index-PSTricks-packagert#XPSTricks packageru#X\linerv#e]rw#(Xpt_____units of lengthrx#Xlatex2e_14.html#index-ptry#Xptrz#XUnits of lengthr{#e]r|#(Xquad_____spacing in math moder}#Xlatex2e_16.html#index-quadr~#Xquadr#XSpacing in math moder#e]r#(X+question mark, upside-down_____text symbolsr#X8latex2e_23.html#index-question-mark_002c-upside_002ddownr#Xquestion mark, upside-downr#X Text symbolsr#e]r#(X+quotation environment_____quotation & quoter#X*latex2e_8.html#index-quotation-environmentr#Xquotation environmentr#Xquotation & quoter#e]r#(X(quotation marks, french_____text symbolsr#X1latex2e_23.html#index-quotation-marks_002c-Frenchr#Xquotation marks, Frenchr#X Text symbolsr#e]r#(X'quote environment_____quotation & quoter#X&latex2e_8.html#index-quote-environmentr#Xquote environmentr#Xquotation & quoter#e]r#(X'quote, single straight_____text symbolsr#X0latex2e_23.html#index-quote_002c-single-straightr#Xquote, single straightr#X Text symbolsr#e]r#(X%quote, straight base_____text symbolsr#X.latex2e_23.html#index-quote_002c-straight-baser#Xquote, straight baser#X Text symbolsr#e]r#(XHquoted text with paragraph indentation, displaying_____quotation & quoter#XKlatex2e_8.html#index-quoted-text-with-paragraph-indentation_002c-displayingr#X2quoted text with paragraph indentation, displayingr#Xquotation & quoter#e]r#(XKquoted text without paragraph indentation, displaying_____quotation & quoter#XNlatex2e_8.html#index-quoted-text-without-paragraph-indentation_002c-displayingr#X5quoted text without paragraph indentation, displayingr#Xquotation & quoter#e]r#(Xradical_____\sqrtr#Xlatex2e_16.html#index-radicalr#Xradicalr#X\sqrtr#e]r#(X ragged left text_____\raggedleftr#X%latex2e_8.html#index-ragged-left-textr#Xragged left textr#X \raggedleftr#e]r#(X0ragged left text, environment for_____flushrightr#X:latex2e_8.html#index-ragged-left-text_002c-environment-forr#X!ragged left text, environment forr#X flushrightr#e]r#(X"ragged right text_____\raggedrightr#X&latex2e_8.html#index-ragged-right-textr#Xragged right textr#X \raggedrightr#e]r#(X0ragged right text, environment for_____flushleftr#X;latex2e_8.html#index-ragged-right-text_002c-environment-forr#X"ragged right text, environment forr#X flushleftr#e]r#(X?redefining environments_____\newenvironment & \renewenvironmentr#X-latex2e_12.html#index-redefining-environmentsr#Xredefining environmentsr#X'\newenvironment & \renewenvironmentr#e]r#(X'reference, forward_____cross referencesr#X+latex2e_7.html#index-reference_002c-forwardr#Xreference, forwardr#XCross referencesr#e]r#(X.references, resolving forward_____output filesr#X6latex2e_2.html#index-references_002c-resolving-forwardr#Xreferences, resolving forwardr#X Output filesr#e]r#(X"registered symbol_____text symbolsr#X'latex2e_23.html#index-registered-symbolr#Xregistered symbolr#X Text symbolsr#e]r#(X"relation, text above_____\stackrelr#X.latex2e_16.html#index-relation_002c-text-abover#Xrelation, text abover#X \stackrelr#e]r#(X(remarks in the margin_____marginal notesr#X+latex2e_15.html#index-remarks-in-the-marginr#Xremarks in the marginr#XMarginal notesr#e]r#(X!report class_____document classesr#X!latex2e_3.html#index-report-classr#X report classr#XDocument classesr#e]r#(X&reporting bugs_____about this documentr#X#latex2e_1.html#index-reporting-bugsr#Xreporting bugsr#XAbout this documentr#e]r#(X+reserved characters_____reserved charactersr#X)latex2e_23.html#index-reserved-charactersr#Xreserved charactersr#XReserved charactersr#e]r#(Xresizing_____\scaleboxr#Xlatex2e_22.html#index-resizingr#Xresizingr#X \scaleboxr#e]r#(Xresizing_____\resizeboxr#X latex2e_22.html#index-resizing-1r#Xresizingr#X \resizeboxr#e]r#(X,right angle quotation marks_____text symbolsr#X1latex2e_23.html#index-right-angle-quotation-marksr#Xright angle quotation marksr#X Text symbolsr#e]r#(X%right arrow, in text_____text symbolsr#X.latex2e_23.html#index-right-arrow_002c-in-textr$Xright arrow, in textr$X Text symbolsr$e]r$(X%right brace, in text_____text symbolsr$X.latex2e_23.html#index-right-brace_002c-in-textr$Xright brace, in textr$X Text symbolsr$e]r$(Xright quote_____text symbolsr $X!latex2e_23.html#index-right-quoter $X right quoter $X Text symbolsr $e]r $(X$right quote, double_____text symbolsr$X-latex2e_23.html#index-right-quote_002c-doubler$Xright quote, doubler$X Text symbolsr$e]r$(X$right quote, single_____text symbolsr$X-latex2e_23.html#index-right-quote_002c-singler$Xright quote, singler$X Text symbolsr$e]r$(X6right-hand equation numbers_____document class optionsr$X4latex2e_3.html#index-right_002dhand-equation-numbersr$Xright-hand equation numbersr$XDocument class optionsr$e]r$(X%right-justifying text_____\raggedleftr$X.latex2e_8.html#index-right_002djustifying-textr$Xright-justifying textr$X \raggedleftr $e]r!$(X5right-justifying text, environment for_____flushrightr"$XClatex2e_8.html#index-right_002djustifying-text_002c-environment-forr#$X&right-justifying text, environment forr$$X flushrightr%$e]r&$(Xring accent_____accentsr'$X!latex2e_23.html#index-ring-accentr($X ring accentr)$XAccentsr*$e]r+$(X"ring accent, math_____math accentsr,$X+latex2e_16.html#index-ring-accent_002c-mathr-$Xring accent, mathr.$X Math accentsr/$e]r0$(Xrobust commands_____\protectr1$X%latex2e_12.html#index-robust-commandsr2$Xrobust commandsr3$X\protectr4$e]r5$(Xroman font_____font stylesr6$Xlatex2e_4.html#index-roman-fontr7$X roman fontr8$X Font stylesr9$e]r:$(X!root file_____splitting the inputr;$Xlatex2e_24.html#index-root-filer<$X root filer=$XSplitting the inputr>$e]r?$(Xroots_____\sqrtr@$Xlatex2e_16.html#index-rootsrA$XrootsrB$X\sqrtrC$e]rD$(X rotating graphics_____\rotateboxrE$X'latex2e_22.html#index-rotating-graphicsrF$Xrotating graphicsrG$X \rotateboxrH$e]rI$(Xrotating text_____\rotateboxrJ$X#latex2e_22.html#index-rotating-textrK$X rotating textrL$X \rotateboxrM$e]rN$(Xrotation_____\rotateboxrO$Xlatex2e_22.html#index-rotationrP$XrotationrQ$X \rotateboxrR$e]rS$(Xrow, tabbing_____tabbingrT$X%latex2e_8.html#index-row_002c-tabbingrU$X row, tabbingrV$XtabbingrW$e]rX$(X+rubber lengths, defining new_____\newlengthrY$X6latex2e_12.html#index-rubber-lengths_002c-defining-newrZ$Xrubber lengths, defining newr[$X \newlengthr\$e]r]$(X4running header and footer_____page layout parametersr^$X.latex2e_5.html#index-running-header-and-footerr_$Xrunning header and footerr`$XPage layout parametersra$e]rb$(X.running header and footer style_____\pagestylerc$X5latex2e_18.html#index-running-header-and-footer-stylerd$Xrunning header and footer stylere$X \pagestylerf$e]rg$(X(sagetex package_____command line optionsrh$X%latex2e_28.html#index-sagetex-packageri$Xsagetex packagerj$XCommand line optionsrk$e]rl$(Xsans serif font_____font stylesrm$X$latex2e_4.html#index-sans-serif-fontrn$Xsans serif fontro$X Font stylesrp$e]rq$(X scaled point_____units of lengthrr$X"latex2e_14.html#index-Scaled-pointrs$X Scaled pointrt$XUnits of lengthru$e]rv$(Xscaling_____\scaleboxrw$Xlatex2e_22.html#index-scalingrx$Xscalingry$X \scaleboxrz$e]r{$(Xscaling_____\resizeboxr|$Xlatex2e_22.html#index-scaling-1r}$Xscalingr~$X \resizeboxr$e]r$(Xscript fonts_____calligraphicr$X"latex2e_16.html#index-script-fontsr$X script fontsr$X Calligraphicr$e]r$(X'script letters for math_____font stylesr$X,latex2e_4.html#index-script-letters-for-mathr$Xscript letters for mathr$X Font stylesr$e]r$(Xsecnumdepth_____sectioningr$X latex2e_6.html#index-secnumdepthr$X secnumdepthr$X Sectioningr$e]r$(X"secnumdepth counter_____sectioningr$X(latex2e_6.html#index-secnumdepth-counterr$Xsecnumdepth counterr$X Sectioningr$e]r$(Xsection_____sectioningr$Xlatex2e_6.html#index-sectionr$Xsectionr$X Sectioningr$e]r$(Xsection_____\sectionr$Xlatex2e_6.html#index-section-1r$Xsectionr$X\sectionr$e]r$(X*section number, cross referencing_____\refr$X:latex2e_7.html#index-section-number_002c-cross-referencingr$X!section number, cross referencingr$X\refr$e]r$(X(section numbers, printing_____sectioningr$X2latex2e_6.html#index-section-numbers_002c-printingr$Xsection numbers, printingr$X Sectioningr$e]r$(Xsection symbol_____text symbolsr$X$latex2e_23.html#index-section-symbolr$Xsection symbolr$X Text symbolsr$e]r$(X&section, redefining_____\@startsectionr$X,latex2e_6.html#index-section_002c-redefiningr$Xsection, redefiningr$X\@startsectionr$e]r$(X"sectioning commands_____sectioningr$X(latex2e_6.html#index-sectioning-commandsr$Xsectioning commandsr$X Sectioningr$e]r$(Xsectioning, part_____\partr$X)latex2e_6.html#index-sectioning_002c-partr$Xsectioning, partr$X\partr$e]r$(X,series, of fonts_____low-level font commandsr$X)latex2e_4.html#index-series_002c-of-fontsr$Xseries, of fontsr$XLow-level font commandsr$e]r$(X,setspace package_____low-level font commandsr$X%latex2e_4.html#index-setspace-packager$Xsetspace packager$XLow-level font commandsr$e]r$(X setting counters_____\setcounterr$X&latex2e_13.html#index-setting-countersr$Xsetting countersr$X \setcounterr$e]r$(X,shapes, of fonts_____low-level font commandsr$X)latex2e_4.html#index-shapes_002c-of-fontsr$Xshapes, of fontsr$XLow-level font commandsr$e]r$(X,sharp s letters_____additional latin lettersr$X%latex2e_23.html#index-sharp-S-lettersr$Xsharp S lettersr$XAdditional Latin lettersr$e]r$(Xshowidx package_____indexesr$X%latex2e_25.html#index-showidx-packager$Xshowidx packager$XIndexesr$e]r$(X"simulating typed text_____verbatimr$X*latex2e_8.html#index-simulating-typed-textr$Xsimulating typed textr$Xverbatimr$e]r$(X-single angle quotation marks_____text symbolsr$X2latex2e_23.html#index-single-angle-quotation-marksr$Xsingle angle quotation marksr$X Text symbolsr$e]r$(X"single guillemets_____text symbolsr$X'latex2e_23.html#index-single-guillemetsr$Xsingle guillemetsr$X Text symbolsr$e]r$(X"single left quote_____text symbolsr$X'latex2e_23.html#index-single-left-quoter$Xsingle left quoter$X Text symbolsr$e]r$(X,single low-9 quotation mark_____text symbolsr$X5latex2e_23.html#index-single-low_002d9-quotation-markr$Xsingle low-9 quotation markr$X Text symbolsr$e]r$(X'single quote, straight_____text symbolsr$X0latex2e_23.html#index-single-quote_002c-straightr$Xsingle quote, straightr$X Text symbolsr$e]r$(X#single right quote_____text symbolsr$X(latex2e_23.html#index-single-right-quoter$Xsingle right quoter$X Text symbolsr$e]r$(Xsiunitx package_____~r$X%latex2e_19.html#index-siunitx-packager$Xsiunitx packager%je]r%(Xsizes of text_____font sizesr%X"latex2e_4.html#index-sizes-of-textr%X sizes of textr%X Font sizesr%e]r%(X'skip register, plain tex_____\newlengthr%X2latex2e_12.html#index-skip-register_002c-plain-TeXr%Xskip register, plain TeXr %X \newlengthr %e]r %(Xslanted font_____font stylesr %X!latex2e_4.html#index-slanted-fontr %X slanted fontr%X Font stylesr%e]r%(X!slides class_____document classesr%X!latex2e_3.html#index-slides-classr%X slides classr%XDocument classesr%e]r%(Xsloppypar_____sloppyparr%Xlatex2e_9.html#index-sloppyparr%X sloppyparr%X sloppyparr%e]r%(X#sloppypar environment_____sloppyparr%X*latex2e_9.html#index-sloppypar-environmentr%Xsloppypar environmentr%X sloppyparr%e]r%(Xsmall caps font_____font stylesr %X$latex2e_4.html#index-small-caps-fontr!%Xsmall caps fontr"%X Font stylesr#%e]r$%(Xsort_____\newglossaryentryr%%Xlatex2e_25.html#index-sortr&%Xsortr'%X\newglossaryentryr(%e]r)%(Xsp_____units of lengthr*%Xlatex2e_14.html#index-spr+%Xspr,%XUnits of lengthr-%e]r.%(Xspace, hard_____~r/%X%latex2e_19.html#index-space_002c-hardr0%X space, hardr1%je]r2%(X$space, inserting horizontal_____\hssr3%X5latex2e_19.html#index-space_002c-inserting-horizontalr4%Xspace, inserting horizontalr5%X\hssr6%e]r7%(X(space, inserting vertical_____\addvspacer8%X3latex2e_19.html#index-space_002c-inserting-verticalr9%Xspace, inserting verticalr:%X \addvspacer;%e]r<%(X3space, negative thin_____\thinspace & \negthinspacer=%X.latex2e_19.html#index-space_002c-negative-thinr>%Xspace, negative thinr?%X\thinspace & \negthinspacer@%e]rA%(X*space, thin_____\thinspace & \negthinspacerB%X%latex2e_19.html#index-space_002c-thinrC%X space, thinrD%X\thinspace & \negthinspacerE%e]rF%(Xspace, unbreakable_____~rG%X,latex2e_19.html#index-space_002c-unbreakablerH%Xspace, unbreakablerI%je]rJ%(Xspace, vertical_____\vspacerK%X)latex2e_19.html#index-space_002c-verticalrL%Xspace, verticalrM%X\vspacerN%e]rO%(Xspaces_____spacesrP%Xlatex2e_19.html#index-spacesrQ%XspacesrR%XSpacesrS%e]rT%(XHspaces, ignore around commands_____\ignorespaces & \ignorespacesafterendrU%X8latex2e_12.html#index-spaces_002c-ignore-around-commandsrV%Xspaces, ignore around commandsrW%X)\ignorespaces & \ignorespacesafterendrX%e]rY%(X1spacing within math mode_____spacing in math moderZ%X.latex2e_16.html#index-spacing-within-math-moder[%Xspacing within math moder\%XSpacing in math moder]%e]r^%(X*spacing, inter-sentence_____\frenchspacingr_%X5latex2e_19.html#index-spacing_002c-inter_002dsentencer`%Xspacing, inter-sentencera%X\frenchspacingrb%e]rc%(X*spacing, inter-sentence_____\normalsfcodesrd%X7latex2e_19.html#index-spacing_002c-inter_002dsentence-1re%Xspacing, inter-sentencerf%X\normalsfcodesrg%e]rh%(X7spacing, math mode_____\phantom & \vphantom & \hphantomri%X,latex2e_16.html#index-spacing_002c-math-moderj%Xspacing, math moderk%X(\phantom & \vphantom & \hphantomrl%e]rm%(X9spanish ordinals, feminine and masculine_____text symbolsrn%XBlatex2e_23.html#index-Spanish-ordinals_002c-feminine-and-masculinero%X(Spanish ordinals, feminine and masculinerp%X Text symbolsrq%e]rr%(X*special characters_____reserved charactersrs%X(latex2e_23.html#index-special-charactersrt%Xspecial charactersru%XReserved charactersrv%e]rw%(X/special characters_____additional latin lettersrx%X*latex2e_23.html#index-special-characters-1ry%Xspecial charactersrz%XAdditional Latin lettersr{%e]r|%(X)special insertions_____special insertionsr}%X(latex2e_23.html#index-special-insertionsr~%Xspecial insertionsr%XSpecial insertionsr%e]r%(X%specifier, float placement_____floatsr%X3latex2e_5.html#index-specifier_002c-float-placementr%Xspecifier, float placementr%XFloatsr%e]r%(X0splitting the input file_____splitting the inputr%X.latex2e_24.html#index-splitting-the-input-filer%Xsplitting the input filer%XSplitting the inputr%e]r%(Xsquare root_____\sqrtr%X!latex2e_16.html#index-square-rootr%X square rootr%X\sqrtr%e]r%(Xstack math_____\stackrelr%X latex2e_16.html#index-stack-mathr%X stack mathr%X \stackrelr%e]r%(X$star-variants, commands_____\@ifstarr%X5latex2e_12.html#index-star_002dvariants_002c-commandsr%Xstar-variants, commandsr%X\@ifstarr%e]r%(XCstarred form, defining new commands_____\newcommand & \renewcommandr%X=latex2e_12.html#index-starred-form_002c-defining-new-commandsr%X#starred form, defining new commandsr%X\newcommand & \renewcommandr%e]r%(X starting a new page_____\newpager%X)latex2e_10.html#index-starting-a-new-pager%Xstarting a new pager%X\newpager%e]r%(XIstarting a new page and clearing floats_____\clearpage & \cleardoublepager%X=latex2e_10.html#index-starting-a-new-page-and-clearing-floatsr%X'starting a new page and clearing floatsr%X!\clearpage & \cleardoublepager%e]r%(X+starting and ending_____starting and endingr%X(latex2e_2.html#index-starting-and-endingr%Xstarting and endingr%XStarting and endingr%e]r%(X?starting on a right-hand page_____\clearpage & \cleardoublepager%X7latex2e_10.html#index-starting-on-a-right_002dhand-pager%Xstarting on a right-hand pager%X!\clearpage & \cleardoublepager%e]r%(X sterling symbol_____text symbolsr%X%latex2e_23.html#index-sterling-symbolr%Xsterling symbolr%X Text symbolsr%e]r%(X,straight double quote, base_____text symbolsr%X5latex2e_23.html#index-straight-double-quote_002c-baser%Xstraight double quote, baser%X Text symbolsr%e]r%(X%straight quote, base_____text symbolsr%X.latex2e_23.html#index-straight-quote_002c-baser%Xstraight quote, baser%X Text symbolsr%e]r%(X&straight single quote_____text symbolsr%X+latex2e_23.html#index-straight-single-quoter%Xstraight single quoter%X Text symbolsr%e]r%(X'stretch, infinite horizontal_____\hfillr%X6latex2e_19.html#index-stretch_002c-infinite-horizontalr%Xstretch, infinite horizontalr%X\hfillr%e]r%(X%stretch, infinite vertical_____\vfillr%X4latex2e_19.html#index-stretch_002c-infinite-verticalr%Xstretch, infinite verticalr%X\vfillr%e]r%(X,stretch, omitting vertical_____\raggedbottomr%X3latex2e_5.html#index-stretch_002c-omitting-verticalr%Xstretch, omitting verticalr%X \raggedbottomr%e]r%(Xstrut_____\strutr%Xlatex2e_19.html#index-strutr%Xstrutr%X\strutr%e]r%(Xstyles of text_____font stylesr%X#latex2e_4.html#index-styles-of-textr%Xstyles of textr%X Font stylesr%e]r%(Xstyles, page_____page stylesr%X&latex2e_18.html#index-styles_002c-pager%X styles, pager%X Page stylesr%e]r%(Xsubparagraph_____sectioningr%X!latex2e_6.html#index-subparagraphr%X subparagraphr%X Sectioningr%e]r%(X<subparagraph_____\subsubsection & \paragraph & \subparagraphr%X#latex2e_6.html#index-subparagraph-1r%X subparagraphr%X3\subsubsection & \paragraph & \subparagraphr%e]r%(X'subscript_____subscripts & superscriptsr%Xlatex2e_16.html#index-subscriptr%X subscriptr%XSubscripts & superscriptsr%e]r%(Xsubsection_____sectioningr%Xlatex2e_6.html#index-subsectionr%X subsectionr%X Sectioningr%e]r%(Xsubsection_____\subsectionr%X!latex2e_6.html#index-subsection-1r%X subsectionr%X \subsectionr%e]r%(X=subsubsection_____\subsubsection & \paragraph & \subparagraphr%X"latex2e_6.html#index-subsubsectionr&X subsubsectionr&X3\subsubsection & \paragraph & \subparagraphr&e]r&(X)superscript_____subscripts & superscriptsr&X!latex2e_16.html#index-superscriptr&X superscriptr&XSubscripts & superscriptsr&e]r&(Xsymbol_____\newglossaryentryr &Xlatex2e_25.html#index-symbolr &Xsymbolr &X\newglossaryentryr &e]r &(X symbols package_____math symbolsr&X%latex2e_16.html#index-symbols-packager&Xsymbols packager&X Math symbolsr&e]r&(X-symbols, boldface_____\boldmath & \unboldmathr&X+latex2e_16.html#index-symbols_002c-boldfacer&Xsymbols, boldfacer&X\boldmath & \unboldmathr&e]r&(Xsymbols, math_____math symbolsr&X'latex2e_16.html#index-symbols_002c-mathr&X symbols, mathr&X Math symbolsr&e]r&(Xsymbols, text_____text symbolsr&X'latex2e_23.html#index-symbols_002c-textr&X symbols, textr&X Text symbolsr &e]r!&(Xtab stops, using_____tabbingr"&X)latex2e_8.html#index-tab-stops_002c-usingr#&Xtab stops, usingr$&Xtabbingr%&e]r&&(Xtabbing environment_____tabbingr'&X(latex2e_8.html#index-tabbing-environmentr(&Xtabbing environmentr)&Xtabbingr*&e]r+&(Xtable environment_____tabler,&X&latex2e_8.html#index-table-environmentr-&Xtable environmentr.&Xtabler/&e]r0&(X=table of contents entry, manually adding_____\addcontentsliner1&XBlatex2e_25.html#index-table-of-contents-entry_002c-manually-addingr2&X(table of contents entry, manually addingr3&X\addcontentsliner4&e]r5&(X'table of contents file_____output filesr6&X+latex2e_2.html#index-table-of-contents-filer7&Xtable of contents filer8&X Output filesr9&e]r:&(XGtable of contents, avoiding footnotes_____footnotes in section headingsr;&X?latex2e_11.html#index-table-of-contents_002c-avoiding-footnotesr<&X%table of contents, avoiding footnotesr=&XFootnotes in section headingsr>&e]r?&(X6table of contents, creating_____table of contents etc.r@&X5latex2e_25.html#index-table-of-contents_002c-creatingrA&Xtable of contents, creatingrB&XTable of contents etc.rC&e]rD&(X<table of contents, sectioning numbers printed_____sectioningrE&XFlatex2e_6.html#index-table-of-contents_002c-sectioning-numbers-printedrF&X-table of contents, sectioning numbers printedrG&X SectioningrH&e]rI&(Xtables, creating_____tablerJ&X)latex2e_8.html#index-tables_002c-creatingrK&Xtables, creatingrL&XtablerM&e]rN&(Xtabular environment_____tabularrO&X(latex2e_8.html#index-tabular-environmentrP&Xtabular environmentrQ&XtabularrR&e]rS&(X&template, article_____article templaterT&X+latex2e_29.html#index-template_002c-articlerU&Xtemplate, articlerV&Xarticle templaterW&e]rX&(X$template, beamer_____beamer templaterY&X*latex2e_29.html#index-template_002c-beamerrZ&Xtemplate, beamerr[&Xbeamer templater\&e]r]&(X template, book_____book templater^&X(latex2e_29.html#index-template_002c-bookr_&Xtemplate, bookr`&X book templatera&e]rb&(X'template, book_____larger book templaterc&X*latex2e_29.html#index-template_002c-book-1rd&Xtemplate, bookre&XLarger book templaterf&e]rg&(X&template, tugboat_____tugboat templaterh&X+latex2e_29.html#index-template_002c-TUGboatri&Xtemplate, TUGboatrj&Xtugboat templaterk&e]rl&(X*templates, document_____document templatesrm&X-latex2e_29.html#index-templates_002c-documentrn&Xtemplates, documentro&XDocument templatesrp&e]rq&(X/terminal input/output_____terminal input/outputrr&X/latex2e_27.html#index-terminal-input_002foutputrs&Xterminal input/outputrt&XTerminal input/outputru&e]rv&(Xtex logo_____text symbolsrw&Xlatex2e_23.html#index-TeX-logorx&XTeX logory&X Text symbolsrz&e]r{&(Xtext symbols_____text symbolsr|&X"latex2e_23.html#index-text-symbolsr}&X text symbolsr~&X Text symbolsr&e]r&(Xtext, resizing_____\scaleboxr&X(latex2e_22.html#index-text_002c-resizingr&Xtext, resizingr&X \scaleboxr&e]r&(Xtext, resizing_____\resizeboxr&X*latex2e_22.html#index-text_002c-resizing-1r&Xtext, resizingr&X \resizeboxr&e]r&(Xtext, scaling_____\scaleboxr&X'latex2e_22.html#index-text_002c-scalingr&X text, scalingr&X \scaleboxr&e]r&(Xtext, scaling_____\resizeboxr&X)latex2e_22.html#index-text_002c-scaling-1r&X text, scalingr&X \resizeboxr&e]r&(X)textcase package_____upper and lower caser&X&latex2e_23.html#index-textcase-packager&Xtextcase packager&XUpper and lower caser&e]r&(X textcomp package_____font stylesr&X%latex2e_4.html#index-textcomp-packager&Xtextcomp packager&X Font stylesr&e]r&(X!textcomp package_____text symbolsr&X(latex2e_23.html#index-textcomp-package-1r&Xtextcomp packager&X Text symbolsr&e]r&(X$thanks, for titlepage_____\maketitler&X/latex2e_18.html#index-thanks_002c-for-titlepager&Xthanks, for titlepager&X \maketitler&e]r&(X/thebibliography environment_____thebibliographyr&X0latex2e_8.html#index-thebibliography-environmentr&Xthebibliography environmentr&Xthebibliographyr&e]r&(Xtheorem environment_____theoremr&X(latex2e_8.html#index-theorem-environmentr&Xtheorem environmentr&Xtheoremr&e]r&(X(theorem-like environment_____\newtheoremr&X2latex2e_12.html#index-theorem_002dlike-environmentr&Xtheorem-like environmentr&X \newtheoremr&e]r&(X"theorems, defining_____\newtheoremr&X,latex2e_12.html#index-theorems_002c-definingr&Xtheorems, definingr&X \newtheoremr&e]r&(X!theorems, typesetting_____theoremr&X.latex2e_8.html#index-theorems_002c-typesettingr&Xtheorems, typesettingr&Xtheoremr&e]r&(X#thin space_____spacing in math moder&X latex2e_16.html#index-thin-spacer&X thin spacer&XSpacing in math moder&e]r&(X)thin space_____\thinspace & \negthinspacer&X"latex2e_19.html#index-thin-space-1r&X thin spacer&X\thinspace & \negthinspacer&e]r&(X-thin space, negative_____spacing in math moder&X.latex2e_16.html#index-thin-space_002c-negativer&Xthin space, negativer&XSpacing in math moder&e]r&(X3thin space, negative_____\thinspace & \negthinspacer&X0latex2e_19.html#index-thin-space_002c-negative-1r&Xthin space, negativer&X\thinspace & \negthinspacer&e]r&(X4thorn, icelandic letter_____additional latin lettersr&X1latex2e_23.html#index-thorn_002c-Icelandic-letterr&Xthorn, Icelandic letterr&XAdditional Latin lettersr&e]r&(X'three-quarters em-dash_____text symbolsr&X4latex2e_23.html#index-three_002dquarters-em_002ddashr&Xthree-quarters em-dashr&X Text symbolsr&e]r&(X tie_____~r&Xlatex2e_19.html#index-tier&Xtier&je]r&(Xtie-after accent_____accentsr&X*latex2e_23.html#index-tie_002dafter-accentr&Xtie-after accentr&XAccentsr&e]r&(Xtikz package_____\liner&X!latex2e_8.html#index-TikZ-packager&X TikZ packager&X\liner&e]r&(Xtikz package_____\strutr&X$latex2e_19.html#index-TikZ-package-1r&X TikZ packager&X\strutr&e]r&(X!tikz package_____\mbox & \makeboxr&X$latex2e_20.html#index-TikZ-package-2r&X TikZ packager&X\mbox & \makeboxr&e]r&(Xtilde accent_____accentsr&X"latex2e_23.html#index-tilde-accentr&X tilde accentr&XAccentsr&e]r&(X#tilde accent, math_____math accentsr&X,latex2e_16.html#index-tilde-accent_002c-mathr&Xtilde accent, mathr&X Math accentsr'e]r'(X&tilde, ascii, in text_____text symbolsr'X3latex2e_23.html#index-tilde_002c-ASCII_002c-in-textr'Xtilde, ASCII, in textr'X Text symbolsr'e]r'(X9title page, separate or run-in_____document class optionsr'X;latex2e_3.html#index-title-page_002c-separate-or-run_002dinr'Xtitle page, separate or run-inr 'XDocument class optionsr 'ee(]r '(X#title pages, creating_____titlepager 'X.latex2e_8.html#index-title-pages_002c-creatingr 'Xtitle pages, creatingr'X titlepager'e]r'(X#title, for titlepage_____\maketitler'X.latex2e_18.html#index-title_002c-for-titlepager'Xtitle, for titlepager'X \maketitler'e]r'(X#titlepage environment_____titlepager'X*latex2e_8.html#index-titlepage-environmentr'Xtitlepage environmentr'X titlepager'e]r'(X+titlepage option_____document class optionsr'X%latex2e_3.html#index-titlepage-optionr'Xtitlepage optionr'XDocument class optionsr'e]r'(Xtitles, making_____\maketitler 'X(latex2e_18.html#index-titles_002c-makingr!'Xtitles, makingr"'X \maketitler#'e]r$'(Xtitlesec package_____\partr%'X%latex2e_6.html#index-titlesec-packager&'Xtitlesec packager''X\partr('e]r)'(Xtitlesec package_____\chapterr*'X'latex2e_6.html#index-titlesec-package-1r+'Xtitlesec packager,'X\chapterr-'e]r.'(Xtitlesec package_____\sectionr/'X'latex2e_6.html#index-titlesec-package-2r0'Xtitlesec packager1'X\sectionr2'e]r3'(X titlesec package_____\subsectionr4'X'latex2e_6.html#index-titlesec-package-3r5'Xtitlesec packager6'X \subsectionr7'e]r8'(X@titlesec package_____\subsubsection & \paragraph & \subparagraphr9'X'latex2e_6.html#index-titlesec-package-4r:'Xtitlesec packager;'X3\subsubsection & \paragraph & \subparagraphr<'e]r='(X-tocbibbind package_____table of contents etc.r>'X(latex2e_25.html#index-tocbibbind-packager?'Xtocbibbind packager@'XTable of contents etc.rA'e]rB'(Xtocdepth_____sectioningrC'Xlatex2e_6.html#index-tocdepthrD'XtocdepthrE'X SectioningrF'e]rG'(Xtocdepth counter_____sectioningrH'X%latex2e_6.html#index-tocdepth-counterrI'Xtocdepth counterrJ'X SectioningrK'e]rL'(X*tocloft package_____table of contents etc.rM'X%latex2e_25.html#index-tocloft-packagerN'Xtocloft packagerO'XTable of contents etc.rP'e]rQ'(Xtoday’s date_____\todayrR'X&latex2e_23.html#index-today_0027s-daterS'Xtoday’s daterT'X\todayrU'e]rV'(Xtombstone_____\rulerW'Xlatex2e_23.html#index-tombstonerX'X tombstonerY'X\rulerZ'e]r['(X$topmargin_____page layout parametersr\'Xlatex2e_5.html#index-topmarginr]'X topmarginr^'XPage layout parametersr_'e]r`'(Xtopnumber_____floatsra'Xlatex2e_5.html#index-topnumberrb'X topnumberrc'XFloatsrd'e]re'(Xtopnumber_____floatsrf'X latex2e_5.html#index-topnumber-1rg'X topnumberrh'XFloatsri'e]rj'(Xtotalnumber_____floatsrk'X latex2e_5.html#index-totalnumberrl'X totalnumberrm'XFloatsrn'e]ro'(Xtotalnumber_____floatsrp'X"latex2e_5.html#index-totalnumber-1rq'X totalnumberrr'XFloatsrs'e]rt'(X!trademark symbol_____text symbolsru'X&latex2e_23.html#index-trademark-symbolrv'Xtrademark symbolrw'X Text symbolsrx'e]ry'(X transcript file_____output filesrz'X$latex2e_2.html#index-transcript-filer{'Xtranscript filer|'X Output filesr}'e]r~'(Xtruetype fonts_____tex enginesr'X#latex2e_2.html#index-TrueType-fontsr'XTrueType fontsr'X TeX enginesr'e]r'(X%tugboat template_____tugboat templater'X&latex2e_29.html#index-TUGboat-templater'XTUGboat templater'Xtugboat templater'e]r'(X two-column output_____\twocolumnr'X*latex2e_5.html#index-two_002dcolumn-outputr'Xtwo-column outputr'X \twocolumnr'e]r'(X#two-thirds em-dash_____text symbolsr'X0latex2e_23.html#index-two_002dthirds-em_002ddashr'Xtwo-thirds em-dashr'X Text symbolsr'e]r'(X+twocolumn option_____document class optionsr'X%latex2e_3.html#index-twocolumn-optionr'Xtwocolumn optionr'XDocument class optionsr'e]r'(X)twoside option_____document class optionsr'X#latex2e_3.html#index-twoside-optionr'Xtwoside optionr'XDocument class optionsr'e]r'(Xtype styles_____font stylesr'X latex2e_4.html#index-type-stylesr'X type stylesr'X Font stylesr'e]r'(X#typed text, simulating_____verbatimr'X/latex2e_8.html#index-typed-text_002c-simulatingr'Xtyped text, simulatingr'Xverbatimr'e]r'(Xtypeface sizes_____font sizesr'X#latex2e_4.html#index-typeface-sizesr'Xtypeface sizesr'X Font sizesr'e]r'(Xtypefaces_____fontsr'Xlatex2e_4.html#index-typefacesr'X typefacesr'XFontsr'e]r'(Xtypewriter font_____font stylesr'X$latex2e_4.html#index-typewriter-fontr'Xtypewriter fontr'X Font stylesr'e]r'(X*typewriter labels in lists_____descriptionr'X/latex2e_8.html#index-typewriter-labels-in-listsr'Xtypewriter labels in listsr'X descriptionr'e]r'(X&ulem package_____over- and underliningr'X"latex2e_16.html#index-ulem-packager'X ulem packager'XOver- and Underliningr'e]r'(Xumlaut accent_____accentsr'X#latex2e_23.html#index-umlaut-accentr'X umlaut accentr'XAccentsr'e]r'(Xunderbar_____accentsr'Xlatex2e_23.html#index-underbarr'Xunderbarr'XAccentsr'e]r'(X%underlining_____over- and underliningr'X!latex2e_16.html#index-underliningr'X underliningr'XOver- and Underliningr'e]r'(X$underscore, in text_____text symbolsr'X-latex2e_23.html#index-underscore_002c-in-textr'Xunderscore, in textr'X Text symbolsr'e]r'(X%unicode input, native_____tex enginesr'X.latex2e_2.html#index-Unicode-input_002c-nativer'XUnicode input, nativer'X TeX enginesr'e]r'(X$units, of length_____units of lengthr'X*latex2e_14.html#index-units_002c-of-lengthr'Xunits, of lengthr'XUnits of lengthr'e]r'(X8unofficial nature of this manual_____about this documentr'X5latex2e_1.html#index-unofficial-nature-of-this-manualr'X unofficial nature of this manualr'XAbout this documentr'e]r'(Xunordered lists_____itemizer'X$latex2e_8.html#index-unordered-listsr'Xunordered listsr'Xitemizer'e]r'(X"uppercase_____upper and lower caser'Xlatex2e_23.html#index-uppercaser'X uppercaser'XUpper and lower caser'e]r'(Xurl package_____\verbr'X latex2e_8.html#index-url-packager'X url packager'X\verbr'e]r'(Xusing bibtex_____using bibtexr'X!latex2e_8.html#index-using-BibTeXr'X using BibTeXr'X Using BibTeXr'e]r'(X7usrguide official documentation_____about this documentr'X4latex2e_1.html#index-usrguide-official-documentationr'Xusrguide official documentationr'XAbout this documentr'e]r'(Xutf-8_____tex enginesr'Xlatex2e_2.html#index-UTF_002d8r'XUTF-8r'X TeX enginesr'e]r((X!variables, a list of_____countersr(X.latex2e_13.html#index-variables_002c-a-list-ofr(Xvariables, a list ofr(XCountersr(e]r((X$vector symbol, math_____math accentsr(X-latex2e_16.html#index-vector-symbol_002c-mathr(Xvector symbol, mathr(X Math accentsr (e]r ((X!verbatim environment_____verbatimr (X)latex2e_8.html#index-verbatim-environmentr (Xverbatim environmentr (Xverbatimr(e]r((Xverbatim text_____verbatimr(X"latex2e_8.html#index-verbatim-textr(X verbatim textr(Xverbatimr(e]r((Xverbatim text, inline_____\verbr(X.latex2e_8.html#index-verbatim-text_002c-inliner(Xverbatim text, inliner(X\verbr(e]r((X verbatimbox package_____verbatimr(X(latex2e_8.html#index-verbatimbox-packager(Xverbatimbox packager(Xverbatimr(e]r((Xverse environment_____verser(X&latex2e_8.html#index-verse-environmentr (Xverse environmentr!(Xverser"(e]r#((X.vertical bar, double, in text_____text symbolsr$(X;latex2e_23.html#index-vertical-bar_002c-double_002c-in-textr%(Xvertical bar, double, in textr&(X Text symbolsr'(e]r(((X&vertical bar, in text_____text symbolsr)(X/latex2e_23.html#index-vertical-bar_002c-in-textr*(Xvertical bar, in textr+(X Text symbolsr,(e]r-((Xvertical mode_____modesr.(X#latex2e_17.html#index-vertical-moder/(X vertical moder0(XModesr1(e]r2((Xvertical space_____\vspacer3(X$latex2e_19.html#index-vertical-spacer4(Xvertical spacer5(X\vspacer6(e]r7((Xvertical space_____\addvspacer8(X&latex2e_19.html#index-vertical-space-1r9(Xvertical spacer:(X \addvspacer;(e]r<((X:vertical space before paragraphs_____\parindent & \parskipr=(X6latex2e_15.html#index-vertical-space-before-paragraphsr>(X vertical space before paragraphsr?(X\parindent & \parskipr@(e]rA((X5vertical spacing_____\phantom & \vphantom & \hphantomrB(X&latex2e_16.html#index-vertical-spacingrC(Xvertical spacingrD(X(\phantom & \vphantom & \hphantomrE(e]rF((X&vertical spacing, math mode_____\smashrG(X5latex2e_16.html#index-vertical-spacing_002c-math-moderH(Xvertical spacing, math moderI(X\smashrJ(e]rK((Xvisible space_____\verbrL(X"latex2e_8.html#index-visible-spacerM(X visible spacerN(X\verbrO(e]rP((X.visible space symbol, in text_____text symbolsrQ(X7latex2e_23.html#index-visible-space-symbol_002c-in-textrR(Xvisible space symbol, in textrS(X Text symbolsrT(e]rU((X-weights, of fonts_____low-level font commandsrV(X*latex2e_4.html#index-weights_002c-of-fontsrW(Xweights, of fontsrX(XLow-level font commandsrY(e]rZ((Xwhite space_____spacesr[(X!latex2e_19.html#index-white-spacer\(X white spacer](XSpacesr^(e]r_((X&wide hat accent, math_____math accentsr`(X/latex2e_16.html#index-wide-hat-accent_002c-mathra(Xwide hat accent, mathrb(X Math accentsrc(e]rd((X(wide tilde accent, math_____math accentsre(X1latex2e_16.html#index-wide-tilde-accent_002c-mathrf(Xwide tilde accent, mathrg(X Math accentsrh(e]ri((X,widths, of fonts_____low-level font commandsrj(X)latex2e_4.html#index-widths_002c-of-fontsrk(Xwidths, of fontsrl(XLow-level font commandsrm(e]rn((X'writing external files_____filecontentsro(X+latex2e_8.html#index-writing-external-filesrp(Xwriting external filesrq(X filecontentsrr(e]rs((Xwriting letters_____lettersrt(X%latex2e_26.html#index-writing-lettersru(Xwriting lettersrv(XLettersrw(e]rx((Xx-height_____units of lengthry(X"latex2e_14.html#index-x_002dheightrz(Xx-heightr{(XUnits of lengthr|(e]r}((Xxdvi command_____output filesr~(X!latex2e_2.html#index-xdvi-commandr(X xdvi commandr(X Output filesr(e]r((Xxdvipdfmx_____tex enginesr(Xlatex2e_2.html#index-xdvipdfmxr(X xdvipdfmxr(X TeX enginesr(e]r((Xxelatex command_____tex enginesr(X$latex2e_2.html#index-xelatex-commandr(Xxelatex commandr(X TeX enginesr(e]r((Xxetex_____tex enginesr(Xlatex2e_2.html#index-XeTeXr(XXeTeXr(X TeX enginesr(e]r((Xxindy_____makeindexr(Xlatex2e_25.html#index-xindyr(Xxindyr(X makeindexr(e]r((Xxindy program_____makeindexr(X#latex2e_25.html#index-xindy-programr(X xindy programr(X makeindexr(ee.Setzer-0.4.4/data/resources/icons/000077500000000000000000000000001420322575300170345ustar00rootroot00000000000000Setzer-0.4.4/data/resources/icons/hicolor/000077500000000000000000000000001420322575300204735ustar00rootroot00000000000000Setzer-0.4.4/data/resources/icons/hicolor/scalable/000077500000000000000000000000001420322575300222415ustar00rootroot00000000000000Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/000077500000000000000000000000001420322575300237015ustar00rootroot00000000000000Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/brush-symbolic.svg000066400000000000000000000022141420322575300273630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/build-log-symbolic.svg000066400000000000000000000030171420322575300301200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/builder-build-symbolic.svg000066400000000000000000000134211420322575300307650ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/builder-view-bottom-pane-symbolic.svg000066400000000000000000000103521420322575300330630ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/builder-view-left-pane-symbolic.svg000066400000000000000000000104351420322575300325130ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/builder-view-right-pane-symbolic.svg000066400000000000000000000104321420322575300326730ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/document-new-symbolic.svg000066400000000000000000000032741420322575300306540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/external-viewer-symbolic.svg000066400000000000000000000107351420322575300313700ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-1-symbolic.svg000066400000000000000000000201411420322575300307570ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-10-symbolic.svg000066400000000000000000000213771420322575300310530ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-2-symbolic.svg000066400000000000000000000201171420322575300307630ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-3-symbolic.svg000066400000000000000000000177551420322575300310020ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-4-symbolic.svg000066400000000000000000000204451420322575300307710ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-5-symbolic.svg000066400000000000000000000205301420322575300307650ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-6-symbolic.svg000066400000000000000000000206111420322575300307660ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-7-symbolic.svg000066400000000000000000000207711420322575300307760ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-8-symbolic.svg000066400000000000000000000206771420322575300310040ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-accents-9-symbolic.svg000066400000000000000000000201651420322575300307750ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-1-symbolic.svg000066400000000000000000000074161420322575300317200ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-10-symbolic.svg000066400000000000000000000132231420322575300317710ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-2-symbolic.svg000066400000000000000000000077011420322575300317160ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-3-symbolic.svg000066400000000000000000000102361420322575300317140ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-4-symbolic.svg000066400000000000000000000071701420322575300317200ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-5-symbolic.svg000066400000000000000000000100261420322575300317130ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-6-symbolic.svg000066400000000000000000000072451420322575300317250ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-7-symbolic.svg000066400000000000000000000130621420322575300317200ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-8-symbolic.svg000066400000000000000000000074441420322575300317300ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-accents-9-symbolic.svg000066400000000000000000000132331420322575300317220ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-font-styles-1-symbolic.svg000066400000000000000000000057111420322575300325630ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-font-styles-2-symbolic.svg000066400000000000000000000063421420322575300325650ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-font-styles-3-symbolic.svg000066400000000000000000000060351420322575300325650ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-font-styles-4-symbolic.svg000066400000000000000000000047051420322575300325700ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-font-styles-5-symbolic.svg000066400000000000000000000057321420322575300325720ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-font-styles-6-symbolic.svg000066400000000000000000000067721420322575300326000ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-font-styles-7-symbolic.svg000066400000000000000000000071551420322575300325750ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/menu-math-font-styles-8-symbolic.svg000066400000000000000000000072311420322575300325710ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-badbox-symbolic.svg000066400000000000000000000060311420322575300303010ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-folded-symbolic.svg000066400000000000000000000035771420322575300303130ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-insert-object-symbolic.svg000066400000000000000000000041131420322575300316110ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-math-menu-symbolic.svg000066400000000000000000000060721420322575300307420ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-no-folding-symbolic.svg000066400000000000000000000026611420322575300311030ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-no-preview-symbolic.svg000066400000000000000000000072121420322575300311370ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-quotes-symbolic.svg000066400000000000000000000117251420322575300303700ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-quotes.svg000066400000000000000000000116511420322575300265470ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-searchandreplacearrow-symbolic.svg000066400000000000000000000064761420322575300334160ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-symbols-arrows-symbolic.svg000066400000000000000000000056101420322575300320470ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-symbols-delimiters-symbolic.svg000066400000000000000000000100451420322575300326710ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-symbols-greek-letters-symbolic.svg000066400000000000000000000055311420322575300333110ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-symbols-misc-math-symbolic.svg000066400000000000000000000047601420322575300324210ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-symbols-misc-text-symbolic.svg000066400000000000000000000100121420322575300324370ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-symbols-operators-symbolic.svg000066400000000000000000000052501420322575300325500ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-symbols-relations-symbolic.svg000066400000000000000000000071341420322575300325350ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-unfolded-symbolic.svg000066400000000000000000000031061420322575300306420ustar00rootroot00000000000000 image/svg+xml Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/own-wizard-symbolic.svg000066400000000000000000000167241420322575300303540ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/text-symbolic.svg000066400000000000000000000035231420322575300272300ustar00rootroot00000000000000 image/svg+xml Gnome Symbolic Icon Theme Gnome Symbolic Icon Theme Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/value-decrease-symbolic.svg000066400000000000000000000002431420322575300311250ustar00rootroot00000000000000Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/value-increase-symbolic.svg000066400000000000000000000002621420322575300311440ustar00rootroot00000000000000Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/view-list-ordered-symbolic.svg000066400000000000000000000016321420322575300316100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/icons/hicolor/scalable/actions/view-paged-symbolic.svg000066400000000000000000000023171420322575300302740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/000077500000000000000000000000001420322575300173445ustar00rootroot00000000000000Setzer-0.4.4/data/resources/latexdb/commands/000077500000000000000000000000001420322575300211455ustar00rootroot00000000000000Setzer-0.4.4/data/resources/latexdb/commands/additional.xml000066400000000000000000000033211420322575300237760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/amsbsy.xml000066400000000000000000000006121420322575300231640ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/amsfonts.xml000066400000000000000000000117311420322575300235240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/amsmath.xml000066400000000000000000000623271420322575300233330ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/amsopn.xml000066400000000000000000000146461420322575300231770ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/amssymb.xml000066400000000000000000001060611420322575300233460ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/amsthm.xml000066400000000000000000000053431420322575300231650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/color.xml000066400000000000000000000044641420322575300230150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/geometry.xml000066400000000000000000000017261420322575300235300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/glossaries.xml000066400000000000000000000243721420322575300240520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/graphicx.xml000066400000000000000000000060461420322575300235020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/latex-dev.xml000066400000000000000000001302051420322575300235610ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/latex-document.xml000066400000000000000000003025671420322575300246350ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/tex.xml000066400000000000000000004540161420322575300225010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/textcomp.xml000066400000000000000000000603651420322575300235440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/commands/url.xml000066400000000000000000000047661420322575300225060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/latexdb/packages/000077500000000000000000000000001420322575300211225ustar00rootroot00000000000000Setzer-0.4.4/data/resources/latexdb/packages/general.xml000066400000000000000000000047311420322575300232660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/style_gtk.css000066400000000000000000000332461420322575300204500ustar00rootroot00000000000000/* ** main_window */ paned.sidebar_paned { background-color: mix(@theme_base_color, @theme_bg_color, 0.5); } button.new-document-menu-button { padding-left: 8px; padding-right: 8px; } /* ** document view */ box.autocomplete { padding: 0px; } box.autocomplete scrollbar.right slider { min-height: 12px; } box.autocomplete list { background-color: #fff895; border-radius: 1px; } box.autocomplete list row { padding-top: 0px; padding-bottom: 0px; padding-left: 2px; padding-right: 2px; border-radius: 1px; } box.autocomplete list row:selected { background: mix(@borders, @theme_bg_color, 0.5); background: #f8e45c; } box.autocomplete list row:not(:selected) { background-color: @theme_bg_color; background-color: #fff895; } box.autocomplete list label { color: #000; } box.autocomplete label.infobox { border-top: 1px dotted mix(#f9f4af, #000, 0.2); border-radius: 1px; padding-top: 1px; padding-bottom: 2px; padding-left: 3px; padding-right: 3px; font-size: 13px; color: #000; background-color: #fff895; } /* ** welcome-screen */ box.welcome { margin-left: 150px; margin-right: 150px; margin-bottom: 50px; } label.welcome-header { font-size: 32pt; padding-bottom: 18px; font-weight: 200; } label.welcome-description { } /* ** open documents */ popover.documentchooser > box { margin: 9px; } popover.documentchooser entry { margin-bottom: 6px; } popover.documentchooser scrolledwindow { margin-bottom: 12px; } popover.documentchooser list row { } popover.documentchooser list row label { margin-left: 8px; margin-right: 8px; margin-top: 3px; margin-bottom: 5px; } popover.documentchooser list row label.folder { margin-top: 5px; font-size: 9pt; opacity: 0.5; } popover.documentchooser box.not_found { margin-bottom: 12px; } popover.documentchooser box.not_found image { opacity: 0.5; } popover.documentchooser box.not_found label { opacity: 0.65; } /* ** tab switching */ .open-docs-popover-button { padding: 0px 10px; padding-left: 2px; margin-top: 0; margin-bottom: 0; margin-left: 22px; border-radius: 0; border-top-width: 0px; border-bottom-width: 0px; box-shadow: none; transition: none; } .open-docs-popover-button:hover:not(:active) { background: none; text-shadow: none; } .open-docs-popover, .open-docs-popover list, .open-docs-popover row:not(:hover):not(:selected) { background-color: @theme_bg_color; } .open-docs-popover scrollbar slider { min-height: 12px; } .open-docs-popover .frame { border-width: 0px; outline: none; } .open-docs-popover row { border-radius: 4px; padding: 2px 1px 2px 4px; color: @theme_fg_color; } .open-docs-popover list { padding: 0px; margin: 0px; } .open-docs-popover list button { padding: 0px 0px; margin-top: 0; margin-bottom: 0; margin-left: 12px; opacity: 0.5; border-style: none; border-width: 0px; box-shadow: none; outline: none; } .open-docs-popover list button:hover:not(:backdrop) { background-image: none; opacity: 1; border-style: none; border-width: 0px; } popover label.explaination { margin-left: 5px; margin-right: 5px; color: mix(@theme_fg_color, @theme_bg_color, 0.3); font-size: 13px; } .open-docs-popover label.root-label { opacity: 0.3; } popover label.explaination-header { margin-left: 5px; margin-right: 5px; font-weight: bold; } button.like-model { border-width: 0px; box-shadow: none; padding: 1px 5px 1px 5px; margin: 0px; background: transparent; outline: none; } button.like-model:hover { background: @theme_base_color; transition: none; } .open-docs-popover list .icon { padding-top: 3px; padding-bottom: 3px; } .open-docs-popover list.selection-mode .radio-hover { padding-top: 3px; padding-bottom: 3px; opacity: 0; } .open-docs-popover list.selection-mode row:hover .radio-hover { opacity: 1; } /* ** build widget */ box.build-widget button { margin-left: 6px; } box.build-widget label.build-timer { padding: 6px 12px; border: 0px solid @borders; border-right-width: 0px; } /* ** build log */ box.buildlog > box { background: @theme_base_color; } box.buildlog > box label { padding-left: 12px; } box.buildlog > box button { margin: 6px; } /* ** sidebar */ box.sidebar-symbols { background-color: @theme_base_color; } box.sidebar-symbols toolbar { padding: 0px; margin: 0px; background-color: @theme_base_color; } box.sidebar-symbols toolbar toolbutton { padding: 0px; margin: 0px; } box.sidebar-symbols toolbar button { margin: 0px; padding: 6px; border-width: 0px; border-radius: 0px; box-shadow: none; } box.sidebar-symbols toolbar button:checked { background: mix(@theme_base_color, @borders, 0.45); } box.sidebar-symbols toolbar button:active { background: mix(@theme_base_color, @borders, 0.45); } box.sidebar-symbols label { padding: 9px 8px 8px 9px; background-color: @theme_base_color; border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); } box.sidebar-symbols label.overlay { border-bottom-width: 0px; } box.sidebar-symbols box.tabs-box { background-color: @theme_base_color; border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); padding-bottom: 0px; } box.sidebar-symbols box.tabs-box.no-border { border-bottom-width: 0px; padding-bottom: 1px; } box.sidebar-symbols flowbox { background-color: mix(@theme_base_color, @theme_bg_color, 0.7); padding-bottom: 36px; border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); } box.sidebar-symbols flowbox flowboxchild { padding: 0px; } box.sidebar-symbols flowbox flowboxchild image { color: @theme_fg_color; background-color: mix(@theme_base_color, @theme_bg_color, 0.7); border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); border-right: 1px solid mix(@theme_base_color, @borders, 0.5); margin: 0px; padding: 5px; } box.sidebar-symbols flowbox flowboxchild image.no_right_border { border-right: 1px solid mix(@theme_base_color, @theme_bg_color, 0.7); } box.sidebar-symbols box.search_bar { padding-left: 6px; padding-right: 6px; } box.sidebar-symbols box.search_bar button { margin-left: 6px; } /* ** shortcuts bar */ box.shortcutsbar { background-color: @theme_base_color; border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); } box.shortcutsbar toolbar { padding: 0px; margin: 0px; background-color: @theme_base_color; } box.shortcutsbar toolbar toolbutton { padding: 0px; margin: 0px; } box.shortcutsbar toolbar button { margin: 0px; padding: 6px; border-width: 0px; border-radius: 0px; box-shadow: none; } box.shortcutsbar toolbar button label { text-decoration: underline; } box.shortcutsbar toolbar button:checked { background: mix(@theme_base_color, @borders, 0.45); } box.shortcutsbar toolbar button:active { background: mix(@theme_base_color, @borders, 0.45); } popover.menu-own-quotes-symbolic { margin-left: 0px; } popover label.keyboard-shortcut { color: mix(@theme_base_color, @theme_fg_color, 0.6); margin-left: 18px; } /* ** preview */ box.preview scrolledwindow { background-color: #fff; } box.preview > box { background-color: @theme_base_color; border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); } box.preview > box button { border-width: 0px; margin: 0px; box-shadow: none; border-radius: 0px; padding: 6px; } box.preview > box button:checked { background: mix(@theme_base_color, @borders, 0.45); } box.preview > box button:active { background: mix(@theme_base_color, @borders, 0.45); } box.preview > box button.zoom_level_button { padding: 6px 5px; } box.preview > box button.zoom_level_button label { padding: 1px 4px; background: @theme_base_color; border: 1px solid @borders; border-radius: 3px; } box.preview_blank { background-color: @theme_bg_color; background-color: mix(@theme_base_color, @theme_bg_color, 0.5); } box.preview_blank image { opacity: 0.5; margin-bottom: 5px; } box.preview_blank label.header { opacity: 0.5; font-size: 20px; font-weight: bold; margin-bottom: 16px; } box.preview_blank label.body { opacity: 0.65; margin-bottom: 50px; margin-left: 50px; margin-right: 55px; } paned > paned.hidden-separator separator { padding: 0px; } paned > paned.visible-separator separator { padding: 4px; } /* ** help */ box.help { background-color: @theme_base_color; } box.help > box { background-color: @theme_base_color; border-bottom: 1px solid mix(@theme_base_color, @borders, 0.5); } box.help > box button { border-width: 0px; margin: 0px; box-shadow: none; border-radius: 0px; padding: 6px; } box.help > box button label { text-decoration: underline; } box.help > box button:checked { background: mix(@theme_base_color, @borders, 0.45); } box.help > box button:active { background: mix(@theme_base_color, @borders, 0.45); } label.location-label { margin-top: 2px; margin-bottom: 5px; font-size: 9pt; color: mix(@theme_base_color, @theme_fg_color, 0.6); } /* ** search bar */ box.search_bar { background-color: @theme_base_color; border-top: 1px solid @borders; padding: 6px; padding-left: 0px; } box.search_bar button.close { background: @theme_base_color; border-width: 0px } box.search_bar button.text-button { padding-left: 11px; padding-right: 11px; } box.search_bar entry.search_entry { } box.search_bar label.search_match_counter { } /* ** preferences */ box.preferences-page checkbutton check { margin-left: 1px; margin-right: 6px; } box.preferences-page radiobutton radio { margin-left: 1px; margin-right: 6px; } box.preferences-page checkbutton { } box.preferences-page .description { color: mix(@theme_fg_color, @theme_bg_color, 0.3); font-size: 13px; } box.preferences-page .preview { border: 1px solid @borders; } box.preferences-page .preview.light-bg textview text { background: #fff; } box.preferences-page .preview.dark-bg textview text { background: #2d2d2d; } box.preferences-page button.style-switcher-label { padding: 0px; margin: 0px; border: none; box-shadow: none; background: none; outline: none; } box.preferences-page button.style-switcher-label label { padding: 0px; margin: 0px; color: @theme_selected_bg_color; text-decoration: underline; } box.preferences-page button.style-switcher-label.active label { font-weight: bold; color: @theme_fg_color; text-decoration: none; } /* ** document wizard */ box.document-wizard-page checkbutton { margin-bottom: 6px; } box.document-wizard-page checkbutton.has-desc { margin-bottom: 2px; } box.document-wizard-page checkbutton check { margin-left: 1px; margin-right: 6px; } list.document-wizard-list1 { border: 1px solid @borders; } list.document-wizard-list1 row { border-bottom: 1px solid mix(@borders, @theme_base_color, 0.68); padding: 6px; } list.document-wizard-list2 row { border-bottom: 1px solid mix(@borders, @theme_base_color, 0.68); padding: 6px; } label.document-wizard-header { font-size: 18px; font-weight: bold; padding-bottom: 6px; } label.document-wizard-subheader { font-weight: bold; margin-bottom: 6px; padding-top: 6px; } label.document-wizard-option-desc { color: mix(@theme_fg_color, @theme_bg_color, 0.3); font-size: 13px; margin-left: 26px; margin-bottom: 6px; } label.document-wizard-desc { color: mix(@theme_fg_color, @theme_bg_color, 0.3); } scrolledwindow.document-wizard-scrolledwindow { border: 1px solid @borders; } box.document-wizard-beamer-preview-stack-wrapper { border: 1px solid @borders; } box.document-wizard-beamer-preview-buttons button { padding: 0px; border-radius: 0px; box-shadow: none; border-width: 0px; outline-width: 0px; text-shadow: none; } box.document-wizard-beamer-preview-buttons image { border: 1px solid @borders; } box.document-wizard-page box.margins-box { border: 1px solid @borders; background-color: @theme_base_color; } box.document-wizard-page box.margins-box spinbutton.left { border-left: 0px; } box.document-wizard-page box.margins-box spinbutton.right { border-right: 0px; } box.document-wizard-page box.margins-box spinbutton.top { border-top: 0px; } box.document-wizard-page box.margins-box spinbutton.bottom { border-bottom: 0px; } /* Add / Remove Packages */ box.add-remove-packages-add-box { padding: 18px; border-bottom: 1px dotted @borders; } box.add-remove-packages-add-box scrolledwindow { border: 1px solid @borders; } box.add-remove-packages-add-box list row { border-bottom: 1px solid mix(@borders, @theme_base_color, 0.68); padding: 6px; } box.add-remove-packages-remove-box scrolledwindow { border: 1px solid @borders; } box.add-remove-packages-remove-box list row { border-bottom: 1px solid mix(@borders, @theme_base_color, 0.68); padding: 6px; } /* BibTeX */ .include-bibtex-file-dialog .stack-wrapper { border: 1px solid @borders; } .include-bibtex-file-dialog button { outline-width: 0px; } .include-bibtex-file-dialog checkbutton check { margin-left: 1px; margin-right: 6px; } .bibtex-wizard-list1 { border: 1px solid @borders; } .bibtex-wizard-list1 row { border-bottom: 1px solid mix(@borders, @theme_base_color, 0.68); padding: 6px; } box.bibtex-wizard-page checkbutton check { margin-left: 1px; margin-right: 6px; } label.bibtex-wizard-header { font-size: 18px; font-weight: bold; padding-bottom: 6px; } Setzer-0.4.4/data/resources/symbols/000077500000000000000000000000001420322575300174115ustar00rootroot00000000000000Setzer-0.4.4/data/resources/symbols/arrows.xml000066400000000000000000000173451420322575300214620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/000077500000000000000000000000001420322575300207265ustar00rootroot00000000000000Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Downarrow-symbolic.svg000066400000000000000000000030341420322575300266570ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Leftarrow-symbolic.svg000066400000000000000000000031561420322575300266470ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Leftrightarrow-symbolic.svg000066400000000000000000000037201420322575300277020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Lleftarrow-symbolic.svg000066400000000000000000000026641420322575300270260ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Longleftarrow-symbolic.svg000066400000000000000000000046021420322575300275240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Longleftrightarrow-symbolic.svg000066400000000000000000000056651420322575300305740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Longrightarrow-symbolic.svg000066400000000000000000000046441420322575300277150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Lsh-symbolic.svg000066400000000000000000000017651420322575300254340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Rightarrow-symbolic.svg000066400000000000000000000032211420322575300270230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Rsh-symbolic.svg000066400000000000000000000017531420322575300254370ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Uparrow-symbolic.svg000066400000000000000000000030271420322575300263360ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-Updownarrow-symbolic.svg000066400000000000000000000041111420322575300272210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-circlearrowleft-symbolic.svg000066400000000000000000000030541420322575300300660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-circlearrowright-symbolic.svg000066400000000000000000000031061420322575300302470ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-curvearrowleft-symbolic.svg000066400000000000000000000026301420322575300277500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-curvearrowright-symbolic.svg000066400000000000000000000025751420322575300301430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-dashleftarrow-symbolic.svg000066400000000000000000000031721420322575300275450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-dashrightarrow-symbolic.svg000066400000000000000000000032041420322575300277240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-downarrow-symbolic.svg000066400000000000000000000025221420322575300267200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-downdownarrows-symbolic.svg000066400000000000000000000024551420322575300300000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-downharpoonleft-symbolic.svg000066400000000000000000000014651420322575300301140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-downharpoonright-symbolic.svg000066400000000000000000000014621420322575300302740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-hookleftarrow-symbolic.svg000066400000000000000000000040531420322575300275650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-hookrightarrow-symbolic.svg000066400000000000000000000040321420322575300277450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftarrow-symbolic.svg000066400000000000000000000024641420322575300267100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftarrowtail-symbolic.svg000066400000000000000000000021401420322575300275510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftharpoondown-symbolic.svg000066400000000000000000000017751420322575300301200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftharpoonup-symbolic.svg000066400000000000000000000020301420322575300275560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftleftarrows-symbolic.svg000066400000000000000000000024071420322575300277430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftrightarrow-symbolic.svg000066400000000000000000000035161420322575300277450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftrightarrows-symbolic.svg000066400000000000000000000024671420322575300301340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftrightharpoons-symbolic.svg000066400000000000000000000021721420322575300304410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-leftrightsquigarrow-symbolic.svg000066400000000000000000000045411420322575300310150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-longleftarrow-symbolic.svg000066400000000000000000000033761420322575300275730ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-longleftrightarrow-symbolic.svg000066400000000000000000000044251420322575300306250ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-longmapsto-symbolic.svg000066400000000000000000000044271420322575300270670ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-longrightarrow-symbolic.svg000066400000000000000000000033641420322575300277530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-looparrowleft-symbolic.svg000066400000000000000000000025241420322575300275770ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-looparrowright-symbolic.svg000066400000000000000000000025101420322575300277550ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-mapsto-symbolic.svg000066400000000000000000000035151420322575300262040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-nLeftarrow-symbolic.svg000066400000000000000000000042301420322575300270170ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-nLeftrightarrow-symbolic.svg000066400000000000000000000047321420322575300300640ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-nRightarrow-symbolic.svg000066400000000000000000000042471420322575300272120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-nearrow-symbolic.svg000066400000000000000000000032041420322575300263510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-nleftarrow-symbolic.svg000066400000000000000000000031741420322575300270650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-nleftrightarrow-symbolic.svg000066400000000000000000000040631420322575300301210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-nrightarrow-symbolic.svg000066400000000000000000000032141420322575300272430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-nwarrow-symbolic.svg000066400000000000000000000031531420322575300263760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-rightarrow-symbolic.svg000066400000000000000000000024531420322575300270710ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-rightarrowtail-symbolic.svg000066400000000000000000000021471420322575300277430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-rightharpoondown-symbolic.svg000066400000000000000000000020011420322575300302620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-rightharpoonup-symbolic.svg000066400000000000000000000020221420322575300277420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-rightleftarrows-symbolic.svg000066400000000000000000000024761420322575300301340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-rightleftharpoons-symbolic.svg000066400000000000000000000033041420322575300304370ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-rightrightarrows-symbolic.svg000066400000000000000000000024221420322575300303060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-rightsquigarrow-symbolic.svg000066400000000000000000000032211420322575300301340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-searrow-symbolic.svg000066400000000000000000000030731420322575300263620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-swarrow-symbolic.svg000066400000000000000000000030711420322575300264020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-twoheadleftarrow-symbolic.svg000066400000000000000000000023171420322575300302610ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-twoheadrightarrow-symbolic.svg000066400000000000000000000023341420322575300304430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-uparrow-symbolic.svg000066400000000000000000000025261420322575300264010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-updownarrow-symbolic.svg000066400000000000000000000041161420322575300272660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-upharpoonleft-symbolic.svg000066400000000000000000000014561420322575300275710ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-upharpoonright-symbolic.svg000066400000000000000000000014641420322575300277530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/arrows/sidebar-upuparrows-symbolic.svg000066400000000000000000000024121420322575300271230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters.xml000066400000000000000000000121011420322575300227650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/000077500000000000000000000000001420322575300222505ustar00rootroot00000000000000Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Delta-symbolic.svg000066400000000000000000000016641420322575300272570ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Gamma-symbolic.svg000066400000000000000000000021621420322575300272420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Lambda-symbolic.svg000066400000000000000000000024121420322575300273760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Omega-symbolic.svg000066400000000000000000000031011420322575300272420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Phi-symbolic.svg000066400000000000000000000032311420322575300267360ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Pi-symbolic.svg000066400000000000000000000026031420322575300265700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Psi-symbolic.svg000066400000000000000000000034631420322575300267600ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Sigma-symbolic.svg000066400000000000000000000021251420322575300272570ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Theta-symbolic.svg000066400000000000000000000022551420322575300272700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Upsilon-symbolic.svg000066400000000000000000000027701420322575300276560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-Xi-symbolic.svg000066400000000000000000000026311420322575300266010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-alpha-symbolic.svg000066400000000000000000000032311420322575300273030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-beta-symbolic.svg000066400000000000000000000036151420322575300271370ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-chi-symbolic.svg000066400000000000000000000035151420322575300267660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-delta-symbolic.svg000066400000000000000000000027121420322575300273120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-epsilon-symbolic.svg000066400000000000000000000024131420322575300276700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-eta-symbolic.svg000066400000000000000000000035251420322575300267750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-gamma-symbolic.svg000066400000000000000000000027511420322575300273060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-iota-symbolic.svg000066400000000000000000000024261420322575300271570ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-kappa-symbolic.svg000066400000000000000000000037061420322575300273210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-lambda-symbolic.svg000066400000000000000000000026571420322575300274510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-mu-symbolic.svg000066400000000000000000000034761420322575300266520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-nu-symbolic.svg000066400000000000000000000023121420322575300266370ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-omega-symbolic.svg000066400000000000000000000033341420322575300273120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-phi-symbolic.svg000066400000000000000000000030051420322575300267750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-pi-symbolic.svg000066400000000000000000000027641420322575300266400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-psi-symbolic.svg000066400000000000000000000041041420322575300270110ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-rho-symbolic.svg000066400000000000000000000024271420322575300270140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-sigma-symbolic.svg000066400000000000000000000021661420322575300273240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-tau-symbolic.svg000066400000000000000000000021421420322575300270070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-theta-symbolic.svg000066400000000000000000000023571420322575300273330ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-upsilon-symbolic.svg000066400000000000000000000031061420322575300277100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varDelta-symbolic.svg000066400000000000000000000015621420322575300277650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varGamma-symbolic.svg000066400000000000000000000034151420322575300277550ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varLambda-symbolic.svg000066400000000000000000000027551420322575300301210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varOmega-symbolic.svg000066400000000000000000000041321420322575300277600ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varPhi-symbolic.svg000066400000000000000000000042731420322575300274560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varPi-symbolic.svg000066400000000000000000000035711420322575300273060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varPsi-symbolic.svg000066400000000000000000000046211420322575300274660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varSigma-symbolic.svg000066400000000000000000000027251420322575300277760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varTheta-symbolic.svg000066400000000000000000000035301420322575300277760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varUpsilon-symbolic.svg000066400000000000000000000036461420322575300303720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varXi-symbolic.svg000066400000000000000000000052751420322575300273210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varepsilon-symbolic.svg000066400000000000000000000034741420322575300304110ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varphi-symbolic.svg000066400000000000000000000030701420322575300275100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varpi-symbolic.svg000066400000000000000000000036141420322575300273440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varrho-symbolic.svg000066400000000000000000000031151420322575300275200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-varsigma-symbolic.svg000066400000000000000000000027101420322575300300300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-vartheta-symbolic.svg000066400000000000000000000043101420322575300300330ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-xi-symbolic.svg000066400000000000000000000051161420322575300266420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/greek_letters/sidebar-zeta-symbolic.svg000066400000000000000000000036041420322575300271650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math.xml000066400000000000000000000276671420322575300221210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/000077500000000000000000000000001420322575300213555ustar00rootroot00000000000000Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-Bbbk-symbolic.svg000066400000000000000000000047541420322575300261760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-Box-symbolic.svg000066400000000000000000000016021420322575300260530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-Diamond-symbolic.svg000066400000000000000000000021401420322575300266740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-Finv-symbolic.svg000066400000000000000000000020161420322575300262250ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-Game-symbolic.svg000066400000000000000000000027461420322575300262060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-Im-symbolic.svg000066400000000000000000000045121420322575300256730ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-Re-symbolic.svg000066400000000000000000000060771420322575300257040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-acute-symbolic.svg000066400000000000000000000044361420322575300264340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-aleph-symbolic.svg000066400000000000000000000041441420322575300264200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-angle-symbolic.svg000066400000000000000000000021541420322575300264140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-backprime-symbolic.svg000066400000000000000000000016761420322575300272730ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-backslash-symbolic.svg000066400000000000000000000015731420322575300272650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-bar-symbolic.svg000066400000000000000000000041371420322575300260750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-bigstar-symbolic.svg000066400000000000000000000025311420322575300267600ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-blacklozenge-symbolic.svg000066400000000000000000000020001420322575300277540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-blacksquare-symbolic.svg000066400000000000000000000014511420322575300276220ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-blacktriangle-symbolic.svg000066400000000000000000000016051420322575300301300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-blacktriangledown-symbolic.svg000066400000000000000000000016221420322575300310170ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-bot-symbolic.svg000066400000000000000000000016621420322575300261150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-breve-symbolic.svg000066400000000000000000000044541420322575300264360ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-cdotp-symbolic.svg000066400000000000000000000014201420322575300264320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-cdots-symbolic.svg000066400000000000000000000017561420322575300264510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-check-symbolic.svg000066400000000000000000000042301420322575300264000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-circledR-symbolic.svg000066400000000000000000000045571420322575300270660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-circledS-symbolic.svg000066400000000000000000000046771420322575300270720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-clubsuit-symbolic.svg000066400000000000000000000031011420322575300271510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-colon-symbolic.svg000066400000000000000000000017261420322575300264440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-complement-symbolic.svg000066400000000000000000000031721420322575300274720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-ddddot-symbolic.svg000066400000000000000000000046341420322575300265750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-dddot-symbolic.svg000066400000000000000000000045571420322575300264350ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-ddot-symbolic.svg000066400000000000000000000051631420322575300262630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-ddots-symbolic.svg000066400000000000000000000017151420322575300264450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-diagdown-symbolic.svg000066400000000000000000000015571420322575300271300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-diagup-symbolic.svg000066400000000000000000000015501420322575300265760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-diamondsuit-symbolic.svg000066400000000000000000000033511420322575300276460ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-dot-symbolic.svg000066400000000000000000000046601420322575300261200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-ell-symbolic.svg000066400000000000000000000031671420322575300261070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-emptyset-symbolic.svg000066400000000000000000000034041420322575300271770ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-eth-symbolic.svg000066400000000000000000000042511420322575300261060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-exists-symbolic.svg000066400000000000000000000021061420322575300266420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-f1-symbolic.svg000066400000000000000000000046701420322575300256410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-f2-symbolic.svg000066400000000000000000000047621420322575300256440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-flat-symbolic.svg000066400000000000000000000025121420322575300262520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-forall-symbolic.svg000066400000000000000000000021271420322575300266050ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-grave-symbolic.svg000066400000000000000000000044061420322575300264340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-hat-symbolic.svg000066400000000000000000000042441420322575300261040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-hbar-symbolic.svg000066400000000000000000000044721420322575300262470ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-heartsuit-symbolic.svg000066400000000000000000000033311420322575300273340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-hslash-symbolic.svg000066400000000000000000000045641420322575300266170ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-imath-symbolic.svg000066400000000000000000000026421420322575300264320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-in-symbolic.svg000066400000000000000000000021431420322575300257320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-infty-symbolic.svg000066400000000000000000000031621420322575300264570ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-jmath-symbolic.svg000066400000000000000000000025261420322575300264340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-ldotp-symbolic.svg000066400000000000000000000013761420322575300264550ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-ldots-symbolic.svg000066400000000000000000000017301420322575300264520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-lozenge-symbolic.svg000066400000000000000000000021401420322575300267640ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-mathbbC-symbolic.svg000066400000000000000000000034751420322575300266750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-mathbbI-symbolic.svg000066400000000000000000000030161420322575300266720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-mathbbN-symbolic.svg000066400000000000000000000034451420322575300267050ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-mathbbQ-symbolic.svg000066400000000000000000000041231420322575300267020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-mathbbR-symbolic.svg000066400000000000000000000045611420322575300267110ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-mathbbZ-symbolic.svg000066400000000000000000000032751420322575300267220ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-mathring-symbolic.svg000066400000000000000000000047501420322575300271430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-measuredangle-symbolic.svg000066400000000000000000000023321420322575300301400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-mho-symbolic.svg000066400000000000000000000040151420322575300261070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-nabla-symbolic.svg000066400000000000000000000017361420322575300264100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-natural-symbolic.svg000066400000000000000000000022251420322575300267730ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-neg-symbolic.svg000066400000000000000000000015461420322575300261030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-nexists-symbolic.svg000066400000000000000000000035311420322575300270230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-ni-symbolic.svg000066400000000000000000000022311420322575300257300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-notin-symbolic.svg000066400000000000000000000036111420322575300264540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-overbrace-symbolic.svg000066400000000000000000000144661420322575300273070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-overleftarrow-symbolic.svg000066400000000000000000000127051420322575300302320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-overleftrightarrow-symbolic.svg000066400000000000000000000137331420322575300312720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-overline-symbolic.svg000066400000000000000000000102611420322575300271470ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-overrightarrow-symbolic.svg000066400000000000000000000126741420322575300304220ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-partial-symbolic.svg000066400000000000000000000027111420322575300267610ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-prime-symbolic.svg000066400000000000000000000016051420322575300264420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-sharp-symbolic.svg000066400000000000000000000042561420322575300264500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-spadesuit-symbolic.svg000066400000000000000000000026341420322575300273320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-sphericalangle-symbolic.svg000066400000000000000000000024221420322575300303050ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-sqrt-symbolic.svg000066400000000000000000000056541420322575300263270ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-square-symbolic.svg000066400000000000000000000016021420322575300266230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-stackrel-symbolic.svg000066400000000000000000000113571420322575300271430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-surd-symbolic.svg000066400000000000000000000022761420322575300263100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-tilde-symbolic.svg000066400000000000000000000051631420322575300264320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-top-symbolic.svg000066400000000000000000000016141420322575300261300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-triangle-symbolic.svg000066400000000000000000000016641420322575300271400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-triangledown-symbolic.svg000066400000000000000000000017071420322575300300260ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-underbrace-symbolic.svg000066400000000000000000000144771420322575300274530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-underleftarrow-symbolic.svg000066400000000000000000000127071420322575300303760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-underleftrightarrow-symbolic.svg000066400000000000000000000137351420322575300314360ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-underline-symbolic.svg000066400000000000000000000102501420322575300273070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-underrightarrow-symbolic.svg000066400000000000000000000126761420322575300305660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-varnothing-symbolic.svg000066400000000000000000000032411420322575300275030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-vartriangle-symbolic.svg000066400000000000000000000017011420322575300276410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-vdots-symbolic.svg000066400000000000000000000017171420322575300264710ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-vec-symbolic.svg000066400000000000000000000051701420322575300261040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-widehat-symbolic.svg000066400000000000000000000105541420322575300267560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-widetilde-symbolic.svg000066400000000000000000000114121420322575300272750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-wp-symbolic.svg000066400000000000000000000037621420322575300257620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-xleftarrow-symbolic.svg000066400000000000000000000127451420322575300275320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_math/sidebar-xrightarrow-symbolic.svg000066400000000000000000000127331420322575300277120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text.xml000066400000000000000000000433271420322575300221430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/000077500000000000000000000000001420322575300214105ustar00rootroot00000000000000Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-CheckedBox-symbolic.svg000066400000000000000000000026001420322575300273540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-Cutleft-symbolic.svg000066400000000000000000000037631420322575300267760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-Cutline-symbolic.svg000066400000000000000000000014331420322575300267630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-Cutright-symbolic.svg000066400000000000000000000036531420322575300271570ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-Kutline-symbolic.svg000066400000000000000000000013671420322575300270010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-Leftscissors-symbolic.svg000066400000000000000000000037601420322575300300500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-Rightscissors-symbolic.svg000066400000000000000000000037751420322575300302410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-S-symbolic.svg000066400000000000000000000042601420322575300255630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-Square-symbolic.svg000066400000000000000000000016411420322575300266210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-XBox-symbolic.svg000066400000000000000000000021261420322575300262400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-backslash-symbolic.svg000066400000000000000000000015731420322575300273200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-bracevert-symbolic.svg000066400000000000000000000015011420322575300273310ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-cbracketl-symbolic.svg000066400000000000000000000030741420322575300273150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-cbracketr-symbolic.svg000066400000000000000000000031251420322575300273200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-checkmark-symbolic.svg000066400000000000000000000022601420322575300273070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-dag-symbolic.svg000066400000000000000000000036521420322575300261200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-ddag-symbolic.svg000066400000000000000000000057761420322575300262750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-dollar-symbolic.svg000066400000000000000000000036051420322575300266400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-dots-symbolic.svg000066400000000000000000000022351420322575300263320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-dvertical-symbolic.svg000066400000000000000000000020331420322575300273320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-geneuro-symbolic.svg000066400000000000000000000036071420322575300270310ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-geneuronarrow-symbolic.svg000066400000000000000000000036161420322575300302620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-geneurowide-symbolic.svg000066400000000000000000000040351420322575300276760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-langle-symbolic.svg000066400000000000000000000020251420322575300266200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-lceil-symbolic.svg000066400000000000000000000016011420322575300264450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-lfloor-symbolic.svg000066400000000000000000000015641420322575300266620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-llcorner-symbolic.svg000066400000000000000000000015711420322575300272030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-lrcorner-symbolic.svg000066400000000000000000000015601420322575300272070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-maltese-symbolic.svg000066400000000000000000000035231420322575300270140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-officialeuro-symbolic.svg000066400000000000000000000047231420322575300300340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums0-symbolic.svg000066400000000000000000000020641420322575300302030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums1-symbolic.svg000066400000000000000000000025201420322575300302010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums2-symbolic.svg000066400000000000000000000030031420322575300301770ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums3-symbolic.svg000066400000000000000000000033741420322575300302130ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums4-symbolic.svg000066400000000000000000000026531420322575300302130ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums5-symbolic.svg000066400000000000000000000035101420322575300302050ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums6-symbolic.svg000066400000000000000000000032211420322575300302050ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums7-symbolic.svg000066400000000000000000000026601420322575300302140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums8-symbolic.svg000066400000000000000000000027571420322575300302240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-oldstylenums9-symbolic.svg000066400000000000000000000030701420322575300302120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-pounds-symbolic.svg000066400000000000000000000037161420322575300266760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-rangle-symbolic.svg000066400000000000000000000020331420322575300266250ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-rbracketl-symbolic.svg000066400000000000000000000020661420322575300273340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-rbracketr-symbolic.svg000066400000000000000000000020401420322575300273320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-rceil-symbolic.svg000066400000000000000000000015541420322575300264620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-rfloor-symbolic.svg000066400000000000000000000015421420322575300266640ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-sbracketl-symbolic.svg000066400000000000000000000013061420322575300273310ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-sbracketr-symbolic.svg000066400000000000000000000012641420322575300273420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-slash-symbolic.svg000066400000000000000000000016061420322575300264740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textacutedbl-symbolic.svg000066400000000000000000000020621420322575300300470ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasciiacute-symbolic.svg000066400000000000000000000014661420322575300304050ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasciibreve-symbolic.svg000066400000000000000000000014411420322575300304000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasciicaron-symbolic.svg000066400000000000000000000012321420322575300303750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasciicircum-symbolic.svg000066400000000000000000000012321420322575300305550ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasciidieresis-symbolic.svg000066400000000000000000000017131420322575300311060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasciigrave-symbolic.svg000066400000000000000000000014421420322575300304020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasciimacron-symbolic.svg000066400000000000000000000011541420322575300305550ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasciitilde-symbolic.svg000066400000000000000000000022101420322575300303710ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textasteriskcentered-symbolic.svg000066400000000000000000000041161420322575300316250ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textbackslash-symbolic.svg000066400000000000000000000016241420322575300302220ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textbaht-symbolic.svg000066400000000000000000000035721420322575300272110ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textbar-symbolic.svg000066400000000000000000000014661420322575300270370ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textbardbl-symbolic.svg000066400000000000000000000021001420322575300275030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textbigcircle-symbolic.svg000066400000000000000000000010121420322575300302010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textblank-symbolic.svg000066400000000000000000000033151420322575300273550ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textborn-symbolic.svg000066400000000000000000000033731420322575300272320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textbrokenbar-symbolic.svg000066400000000000000000000020751420322575300302350ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textbullet-symbolic.svg000066400000000000000000000014061420322575300275540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textcelsius-symbolic.svg000066400000000000000000000041731420322575300277400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textcent-symbolic.svg000066400000000000000000000030351420322575300272160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textcentoldstyle-symbolic.svg000066400000000000000000000032721420322575300310010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textcircleda-symbolic.svg000066400000000000000000000044501420322575300300350ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textcolonmonetary-symbolic.svg000066400000000000000000000032331420322575300311560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textcopyleft-symbolic.svg000066400000000000000000000034241420322575300301140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textcopyright-symbolic.svg000066400000000000000000000033571420322575300303040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textcurrency-symbolic.svg000066400000000000000000000033541420322575300301230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdblhyphen-symbolic.svg000066400000000000000000000012631420322575300302430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdblhyphenchar-symbolic.svg000066400000000000000000000015021420322575300310750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdegree-symbolic.svg000066400000000000000000000017661420322575300275310ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdied-symbolic.svg000066400000000000000000000033221420322575300271710ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdiscount-symbolic.svg000066400000000000000000000031441420322575300301160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdiv-symbolic.svg000066400000000000000000000024051420322575300270470ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdivorced-symbolic.svg000066400000000000000000000050711420322575300300660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdollar-symbolic.svg000066400000000000000000000036051420322575300275450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdollaroldstyle-symbolic.svg000066400000000000000000000047041420322575300313260ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdong-symbolic.svg000066400000000000000000000033371420322575300272210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textdownarrow-symbolic.svg000066400000000000000000000016211420322575300303060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textemdash-symbolic.svg000066400000000000000000000011361420322575300275260ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textendash-symbolic.svg000066400000000000000000000011361420322575300275270ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textestimated-symbolic.svg000066400000000000000000000027551420322575300302540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-texteuro-symbolic.svg000066400000000000000000000050371420322575300272430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textexclamdown-symbolic.svg000066400000000000000000000020401420322575300304210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textflorin-symbolic.svg000066400000000000000000000025611420322575300275610ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textfractionsolidus-symbolic.svg000066400000000000000000000016531420322575300315010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textgravedbl-symbolic.svg000066400000000000000000000010121420322575300300440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textgreater-symbolic.svg000066400000000000000000000020561420322575300277200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textguarani-symbolic.svg000066400000000000000000000042011420322575300277070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textinterrobang-symbolic.svg000066400000000000000000000033531420322575300306020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textinterrobangdown-symbolic.svg000066400000000000000000000010121420322575300314600ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textlangle-symbolic.svg000066400000000000000000000023061420322575300275270ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textlbrackdbl-symbolic.svg000066400000000000000000000014141420322575300302040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textleaf-symbolic.svg000066400000000000000000000041611420322575300271750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textleftarrow-symbolic.svg000066400000000000000000000022311420322575300302670ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textless-symbolic.svg000066400000000000000000000020561420322575300272350ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textlira-symbolic.svg000066400000000000000000000041621420322575300272160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textlnot-symbolic.svg000066400000000000000000000016321420322575300272420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textlquill-symbolic.svg000066400000000000000000000030231420322575300275640ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textmarried-symbolic.svg000066400000000000000000000044171420322575300277150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textmho-symbolic.svg000066400000000000000000000031451420322575300270520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textminus-symbolic.svg000066400000000000000000000014641420322575300274240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textmu-symbolic.svg000066400000000000000000000026111420322575300267050ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textmusicalnote-symbolic.svg000066400000000000000000000022571420322575300306150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textnaira-symbolic.svg000066400000000000000000000046001420322575300273560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textnumero-symbolic.svg000066400000000000000000000047521420322575300276010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textohm-symbolic.svg000066400000000000000000000031011420322575300270420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textonehalf-symbolic.svg000066400000000000000000000043221420322575300277010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textonequarter-symbolic.svg000066400000000000000000000037761420322575300304660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textonesuperior-symbolic.svg000066400000000000000000000020741420322575300306410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textopenbullet-symbolic.svg000066400000000000000000000017501420322575300304400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textordfeminine-symbolic.svg000066400000000000000000000035341420322575300305700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textordmasculine-symbolic.svg000066400000000000000000000027451420322575300307610ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textperiodcentered-symbolic.svg000066400000000000000000000013651420322575300312650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textpertenthousand-symbolic.svg000066400000000000000000000057761420322575300313460ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textperthousand-symbolic.svg000066400000000000000000000050311420322575300306170ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textpeso-symbolic.svg000066400000000000000000000031751420322575300272400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textpilcrow-symbolic.svg000066400000000000000000000023771420322575300277540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textpm-symbolic.svg000066400000000000000000000023421420322575300267010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textquestiondown-symbolic.svg000066400000000000000000000030251420322575300310230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textquotedblleft-symbolic.svg000066400000000000000000000027721420322575300307660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textquotedblright-symbolic.svg000066400000000000000000000030611420322575300311410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textquoteleft-symbolic.svg000066400000000000000000000020311420322575300302700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textquoteright-symbolic.svg000066400000000000000000000020401420322575300304530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textquotesingle-symbolic.svg000066400000000000000000000012671420322575300306310ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textquotestraightbase-symbolic.svg000066400000000000000000000015141420322575300320230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textquotestraightdblbase-symbolic.svg000066400000000000000000000026721420322575300325130ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textrangle-symbolic.svg000066400000000000000000000023231420322575300275340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textrbrackdbl-symbolic.svg000066400000000000000000000014021420322575300302070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textrecipe-symbolic.svg000066400000000000000000000045271420322575300275430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textreferencemark-symbolic.svg000066400000000000000000000040241420322575300310750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textregistered-symbolic.svg000066400000000000000000000045441420322575300304300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textrightarrow-symbolic.svg000066400000000000000000000023411420322575300304540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textrquill-symbolic.svg000066400000000000000000000030561420322575300276000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textservicemark-symbolic.svg000066400000000000000000000056631420322575300306110ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textsurd-symbolic.svg000066400000000000000000000026131420322575300272430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textthreequarters-symbolic.svg000066400000000000000000000052411420322575300311640ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textthreequartersemdash-symbolic.svg000066400000000000000000000011421420322575300323420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textthreesuperior-symbolic.svg000066400000000000000000000033351420322575300311700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-texttildelow-symbolic.svg000066400000000000000000000010121420322575300301010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-texttimes-symbolic.svg000066400000000000000000000021601420322575300274040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-texttrademark-symbolic.svg000066400000000000000000000045231420322575300302420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-texttwelveudash-symbolic.svg000066400000000000000000000011431420322575300306160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-texttwosuperior-symbolic.svg000066400000000000000000000024521420322575300306710ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textuparrow-symbolic.svg000066400000000000000000000016301420322575300277630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textvisiblespace-symbolic.svg000066400000000000000000000015301420322575300307340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textwon-symbolic.svg000066400000000000000000000057271420322575300271020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-textyen-symbolic.svg000066400000000000000000000034701420322575300270630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-ulcorner-symbolic.svg000066400000000000000000000016021420322575300272070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-underscore-symbolic.svg000066400000000000000000000011321420322575300275250ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-urcorner-symbolic.svg000066400000000000000000000015721420322575300272230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/misc_text/sidebar-vertical-symbolic.svg000066400000000000000000000014271420322575300271740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators.xml000066400000000000000000000214321420322575300221530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/000077500000000000000000000000001420322575300214275ustar00rootroot00000000000000Setzer-0.4.4/data/resources/symbols/operators/sidebar-Cap-symbolic.svg000066400000000000000000000033141420322575300261020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-Cup-symbolic.svg000066400000000000000000000033431420322575300261300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-amalg-symbolic.svg000066400000000000000000000035611420322575300264640ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-ast-symbolic.svg000066400000000000000000000031711420322575300261670ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-barwedge-symbolic.svg000066400000000000000000000023471420322575300271640ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigcap-symbolic.svg000066400000000000000000000017331420322575300266270ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigcirc-symbolic.svg000066400000000000000000000020021420322575300267720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigcup-symbolic.svg000066400000000000000000000017301420322575300266500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigodot-symbolic.svg000066400000000000000000000022261420322575300270270ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigoplus-symbolic.svg000066400000000000000000000020701420322575300272210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigotimes-symbolic.svg000066400000000000000000000024111420322575300273560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigsqcup-symbolic.svg000066400000000000000000000016211420322575300272130ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigtriangledown-symbolic.svg000066400000000000000000000017321420322575300305600ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigtriangleup-symbolic.svg000066400000000000000000000016641420322575300302410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-biguplus-symbolic.svg000066400000000000000000000027441420322575300272370ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigvee-symbolic.svg000066400000000000000000000017351420322575300266450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bigwedge-symbolic.svg000066400000000000000000000017501420322575300271560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-boxdot-symbolic.svg000066400000000000000000000021441420322575300266760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-boxminus-symbolic.svg000066400000000000000000000017201420322575300272420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-boxplus-symbolic.svg000066400000000000000000000021551420322575300270750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-boxtimes-symbolic.svg000066400000000000000000000020341420322575300272270ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-bullet-symbolic.svg000066400000000000000000000014021420322575300266620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-cap-symbolic.svg000066400000000000000000000021461420322575300261440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-cdot-symbolic.svg000066400000000000000000000014201420322575300263240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-circ-symbolic.svg000066400000000000000000000020001420322575300263060ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-circledast-symbolic.svg000066400000000000000000000043511420322575300275160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-circledcirc-symbolic.svg000066400000000000000000000027021420322575300276450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-circleddash-symbolic.svg000066400000000000000000000023661420322575300276520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-coprod-symbolic.svg000066400000000000000000000020611420322575300266630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-cup-symbolic.svg000066400000000000000000000021361420322575300261670ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-curlyvee-symbolic.svg000066400000000000000000000025351420322575300272410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-curlywedge-symbolic.svg000066400000000000000000000025661420322575300275610ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-dagger-symbolic.svg000066400000000000000000000036441420322575300266360ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-ddagger-symbolic.svg000066400000000000000000000060101420322575300267700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-diamond-symbolic.svg000066400000000000000000000024261420322575300270150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-div-symbolic.svg000066400000000000000000000023701420322575300261620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-divideontimes-symbolic.svg000066400000000000000000000040171420322575300302430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-dotplus-symbolic.svg000066400000000000000000000024621420322575300270740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-doublebarwedge-symbolic.svg000066400000000000000000000030161420322575300303510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-idotsint-symbolic.svg000066400000000000000000000044101420322575300272320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-iiiint-symbolic.svg000066400000000000000000000033721420322575300266700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-iiint-symbolic.svg000066400000000000000000000032161420322575300265140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-iint-symbolic.svg000066400000000000000000000030431420322575300263410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-int-symbolic.svg000066400000000000000000000025551420322575300261770ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-intercal-symbolic.svg000066400000000000000000000017221420322575300272010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-leftthreetimes-symbolic.svg000066400000000000000000000021331420322575300304210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-lhd-symbolic.svg000066400000000000000000000017141420322575300261500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-ltimes-symbolic.svg000066400000000000000000000024351420322575300266770ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-mp-symbolic.svg000066400000000000000000000023031420322575300260100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-odot-symbolic.svg000066400000000000000000000023421420322575300263440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-oint-symbolic.svg000066400000000000000000000035561420322575300263600ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-ominus-symbolic.svg000066400000000000000000000020161420322575300267070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-oplus-symbolic.svg000066400000000000000000000021741420322575300265440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-oslash-symbolic.svg000066400000000000000000000022561420322575300266740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-otimes-symbolic.svg000066400000000000000000000027051420322575300267020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-pm-symbolic.svg000066400000000000000000000023571420322575300260210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-prod-symbolic.svg000066400000000000000000000020771420322575300263500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-rhd-symbolic.svg000066400000000000000000000017211420322575300261540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-rightthreetimes-symbolic.svg000066400000000000000000000021271420322575300306070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-rtimes-symbolic.svg000066400000000000000000000023711420322575300267040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-setminus-symbolic.svg000066400000000000000000000015731420322575300272530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-smallsetminus-symbolic.svg000066400000000000000000000016241420322575300303010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-sqcap-symbolic.svg000066400000000000000000000016421420322575300265100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-sqcup-symbolic.svg000066400000000000000000000016651420322575300265410ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-star-symbolic.svg000066400000000000000000000025451420322575300263550ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-sum-symbolic.svg000066400000000000000000000022021420322575300261760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-times-symbolic.svg000066400000000000000000000025571420322575300265300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-triangleleft-symbolic.svg000066400000000000000000000017511420322575300300620ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-triangleright-symbolic.svg000066400000000000000000000017301420322575300302420ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-unlhd-symbolic.svg000066400000000000000000000023161420322575300265120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-unrhd-symbolic.svg000066400000000000000000000023251420322575300265200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-uplus-symbolic.svg000066400000000000000000000033101420322575300265430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-varinjlim-symbolic.svg000066400000000000000000000115061420322575300273740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-varliminf-symbolic.svg000066400000000000000000000066421420322575300273750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-varlimsup-symbolic.svg000066400000000000000000000066451420322575300274330ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-varprojlim-symbolic.svg000066400000000000000000000115161420322575300275670ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-vee-symbolic.svg000066400000000000000000000020461420322575300261570ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-veebar-symbolic.svg000066400000000000000000000023431420322575300266440ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-wedge-symbolic.svg000066400000000000000000000020331420322575300264670ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/operators/sidebar-wr-symbolic.svg000066400000000000000000000023711420322575300260310ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations.xml000066400000000000000000000373751420322575300221520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/000077500000000000000000000000001420322575300214115ustar00rootroot00000000000000Setzer-0.4.4/data/resources/symbols/relations/sidebar-Join-symbolic.svg000066400000000000000000000043111420322575300262560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-Subset-symbolic.svg000066400000000000000000000033141420322575300266260ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-Supset-symbolic.svg000066400000000000000000000033341420322575300266460ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-Vdash-symbolic.svg000066400000000000000000000022661420322575300264330ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-Vvdash-symbolic.svg000066400000000000000000000025601420322575300266160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-approx-symbolic.svg000066400000000000000000000034731420322575300267000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-approxeq-symbolic.svg000066400000000000000000000040301420322575300272140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-asymp-symbolic.svg000066400000000000000000000034551420322575300265200ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-backepsilon-symbolic.svg000066400000000000000000000023341420322575300276540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-backsimeq-symbolic.svg000066400000000000000000000026161420322575300273240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-because-symbolic.svg000066400000000000000000000026061420322575300267730ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-between-symbolic.svg000066400000000000000000000034621420322575300270160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-blacktriangleleft-symbolic.svg000066400000000000000000000016201420322575300310340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-blacktriangleright-symbolic.svg000066400000000000000000000016341420322575300312240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-bowtie-symbolic.svg000066400000000000000000000031741420322575300266560ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-cong-symbolic.svg000066400000000000000000000036451420322575300263160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-curlyeqprec-symbolic.svg000066400000000000000000000033321420322575300277170ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-curlyeqsucc-symbolic.svg000066400000000000000000000033061420322575300277240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-dashv-symbolic.svg000066400000000000000000000016741420322575300264750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-eqslantgtr-symbolic.svg000066400000000000000000000026161420322575300275510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-eqslantless-symbolic.svg000066400000000000000000000025671420322575300277300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-equals-symbolic.svg000066400000000000000000000020071420322575300266510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-equiv-symbolic.svg000066400000000000000000000023641420322575300265160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-frown-symbolic.svg000066400000000000000000000021311420322575300265100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-geq-symbolic.svg000066400000000000000000000024061420322575300261360ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-geqq-symbolic.svg000066400000000000000000000030201420322575300263100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-geqslant-symbolic.svg000066400000000000000000000025221420322575300271770ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gg-symbolic.svg000066400000000000000000000026501420322575300257600ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ggg-symbolic.svg000066400000000000000000000040051420322575300261230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gnapprox-symbolic.svg000066400000000000000000000061551420322575300272250ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gneq-symbolic.svg000066400000000000000000000035401420322575300263140ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gneqq-symbolic.svg000066400000000000000000000043501420322575300264750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gnsim-symbolic.svg000066400000000000000000000042101420322575300264720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gt-symbolic.svg000066400000000000000000000020241420322575300257700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gtrapprox-symbolic.svg000066400000000000000000000043251420322575300274120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gtrdot-symbolic.svg000066400000000000000000000024101420322575300266600ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gtreqless-symbolic.svg000066400000000000000000000034031420322575300273710ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gtreqqless-symbolic.svg000066400000000000000000000040421420322575300275520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gtrless-symbolic.svg000066400000000000000000000032621420322575300270460ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gtrsim-symbolic.svg000066400000000000000000000031741420322575300266720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-gvertneqq-symbolic.svg000066400000000000000000000036511420322575300274010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-leq-symbolic.svg000066400000000000000000000024111420322575300261370ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-leqq-symbolic.svg000066400000000000000000000030161420322575300263220ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-leqslant-symbolic.svg000066400000000000000000000025621420322575300272100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lessapprox-symbolic.svg000066400000000000000000000042751420322575300275700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lessdot-symbolic.svg000066400000000000000000000024121420322575300270340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lesseqgtr-symbolic.svg000066400000000000000000000033721420322575300273760ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lesseqqgtr-symbolic.svg000066400000000000000000000040231420322575300275510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lessgtr-symbolic.svg000066400000000000000000000032451420322575300270470ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lesssim-symbolic.svg000066400000000000000000000031661420322575300270450ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ll-symbolic.svg000066400000000000000000000030351420322575300257700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lll-symbolic.svg000066400000000000000000000040151420322575300261430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lnapprox-symbolic.svg000066400000000000000000000061251420322575300272270ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lneq-symbolic.svg000066400000000000000000000035231420322575300263220ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lneqq-symbolic.svg000066400000000000000000000043461420322575300265070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lnsim-symbolic.svg000066400000000000000000000042021420322575300265000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lt-symbolic.svg000066400000000000000000000020271420322575300260000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-lvertneqq-symbolic.svg000066400000000000000000000036471420322575300274130ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-mid-symbolic.svg000066400000000000000000000014271420322575300261350ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-models-symbolic.svg000066400000000000000000000030521420322575300266430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-multimap-symbolic.svg000066400000000000000000000021761420322575300272160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nVDash-symbolic.svg000066400000000000000000000040751420322575300265510ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ncong-symbolic.svg000066400000000000000000000044671420322575300264770ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-neq-symbolic.svg000066400000000000000000000032001420322575300261360ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ngeq-symbolic.svg000066400000000000000000000034511420322575300263150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ngeqq-symbolic.svg000066400000000000000000000041731420322575300265000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ngeqslant-symbolic.svg000066400000000000000000000037271420322575300273650ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ngtr-symbolic.svg000066400000000000000000000030521420322575300263320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nleq-symbolic.svg000066400000000000000000000034531420322575300263240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nleqq-symbolic.svg000066400000000000000000000043141420322575300265020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nleqslant-symbolic.svg000066400000000000000000000041161420322575300273630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nless-symbolic.svg000066400000000000000000000031061420322575300265040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nmid-symbolic.svg000066400000000000000000000022761420322575300263160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nparallel-symbolic.svg000066400000000000000000000030111420322575300273250ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nprec-symbolic.svg000066400000000000000000000032601420322575300264700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-npreceq-symbolic.svg000066400000000000000000000037641420322575300270270ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nshortmid-symbolic.svg000066400000000000000000000025241420322575300273720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nshortparallel-symbolic.svg000066400000000000000000000031431420322575300304130ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nsubseteq-symbolic.svg000066400000000000000000000035601420322575300273750ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nsubseteqq-symbolic.svg000066400000000000000000000044561420322575300275630ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nsucc-symbolic.svg000066400000000000000000000033041420322575300264730ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nsucceq-symbolic.svg000066400000000000000000000040021420322575300270150ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nsupseteq-symbolic.svg000066400000000000000000000036051420322575300274130ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nsupseteqq-symbolic.svg000066400000000000000000000043411420322575300275720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ntriangleleft-symbolic.svg000066400000000000000000000027741420322575300302300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ntrianglelefteq-symbolic.svg000066400000000000000000000034251420322575300305500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ntriangleright-symbolic.svg000066400000000000000000000030531420322575300304020ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-ntrianglerighteq-symbolic.svg000066400000000000000000000034431420322575300307330ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nvDash-symbolic.svg000066400000000000000000000033441420322575300266070ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-nvdash-symbolic.svg000066400000000000000000000030221420322575300266400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-parallel-symbolic.svg000066400000000000000000000020331420322575300271520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-perp-symbolic.svg000066400000000000000000000016621420322575300263330ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-pitchfork-symbolic.svg000066400000000000000000000026351420322575300273570ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-prec-symbolic.svg000066400000000000000000000023601420322575300263120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-precapprox-symbolic.svg000066400000000000000000000047061420322575300275520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-preccurlyeq-symbolic.svg000066400000000000000000000033161420322575300277210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-preceq-symbolic.svg000066400000000000000000000027461420322575300266500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-precnapprox-symbolic.svg000066400000000000000000000064031420322575300277240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-precnsim-symbolic.svg000066400000000000000000000050171420322575300272030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-precsim-symbolic.svg000066400000000000000000000040051420322575300270210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-propto-symbolic.svg000066400000000000000000000032151420322575300267040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-shortmid-symbolic.svg000066400000000000000000000014241420322575300272120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-shortparallel-symbolic.svg000066400000000000000000000020351420322575300302340ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-sim-symbolic.svg000066400000000000000000000022241420322575300261500ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-simeq-symbolic.svg000066400000000000000000000026261420322575300265040ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-smallfrown-symbolic.svg000066400000000000000000000017621420322575300275520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-smallsmile-symbolic.svg000066400000000000000000000017441420322575300275300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-smile-symbolic.svg000066400000000000000000000020461420322575300264730ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-sqsubset-symbolic.svg000066400000000000000000000016671420322575300272430ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-sqsubseteq-symbolic.svg000066400000000000000000000023111420322575300275540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-sqsupset-symbolic.svg000066400000000000000000000016361420322575300272550ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-sqsupseteq-symbolic.svg000066400000000000000000000022301420322575300275720ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-subset-symbolic.svg000066400000000000000000000017721420322575300266740ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-subseteq-symbolic.svg000066400000000000000000000024211420322575300272120ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-subseteqq-symbolic.svg000066400000000000000000000027671420322575300274100ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-subsetneq-symbolic.svg000066400000000000000000000035571420322575300274030ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-subsetneqq-symbolic.svg000066400000000000000000000043031420322575300275520ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-succ-symbolic.svg000066400000000000000000000024461420322575300263230ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-succapprox-symbolic.svg000066400000000000000000000047771420322575300275660ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-succcurlyeq-symbolic.svg000066400000000000000000000032661420322575300277310ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-succeq-symbolic.svg000066400000000000000000000030401420322575300266400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-succnapprox-symbolic.svg000066400000000000000000000064741420322575300277400ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-succnsim-symbolic.svg000066400000000000000000000047451420322575300272160ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-succsim-symbolic.svg000066400000000000000000000036421420322575300270330ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-supset-symbolic.svg000066400000000000000000000020061420322575300267010ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-supseteq-symbolic.svg000066400000000000000000000024211420322575300272300ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-supseteqq-symbolic.svg000066400000000000000000000027711420322575300274210ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-supsetneq-symbolic.svg000066400000000000000000000036321420322575300274130ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-supsetneqq-symbolic.svg000066400000000000000000000043021420322575300275670ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-therefore-symbolic.svg000066400000000000000000000025651420322575300273530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-trianglelefteq-symbolic.svg000066400000000000000000000023161420322575300303700ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-trianglerighteq-symbolic.svg000066400000000000000000000023251420322575300305530ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-vDash-symbolic.svg000066400000000000000000000021151420322575300264240ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-varpropto-symbolic.svg000066400000000000000000000026561420322575300274250ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-varsubsetneq-symbolic.svg000066400000000000000000000040041420322575300301000ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-varsupsetneq-symbolic.svg000066400000000000000000000036471420322575300301320ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-vartriangleleft-symbolic.svg000066400000000000000000000017141420322575300305540ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-vartriangleright-symbolic.svg000066400000000000000000000017211420322575300307350ustar00rootroot00000000000000 Setzer-0.4.4/data/resources/symbols/relations/sidebar-vdash-symbolic.svg000066400000000000000000000017011420322575300264640ustar00rootroot00000000000000 Setzer-0.4.4/data/screenshot.png000066400000000000000000001703751420322575300166070ustar00rootroot00000000000000PNG  IHDRAtcbKGD pHYs.#.#x?vtIME 0"?C IDATxw|SWFIRP6 "U( 2e2ܨq8X*{S( yI6MϓG7ɹ'7s*EQB!B!9TB!B!j^H!B!JשD!B!B`~P" .B!BQh˳p|B!B!Esru!B!BT?B g+kRl=gBG8 ?J FJB!B!%/MȑBgOm~ D%μB!B!ܓAEI?% )qĈęQaG?;B!B!pOBG!`ARR0a/|6qB!B!p/ @l}l9t6x{] AB!BINK 9o8 8[Z[+:^a7[B!B!~/|WiK% Eoa"AB!BQ8 Ajuu >Wш[ F8 0lEﳵPV9$B!B![Iu4`(J $[Ԙ9 b+(x%)~!B!U@ Z.N)ida+ذX,~v8T>!B!BT{@J`Б ?`y`0bw$N{|غ{][ !B!=6)~| ; uT*Z<}6,gu Bjb]fB!A`UHOjr,,K0FTA''+X폇rG:Oj*Lzz5o(8CV(lE C1Lvlhȡ^FպM&R]Xjd2Y-k kg[! ޷ϗxԫ/ gN}UHvV&D[+FSaf2Ӹ&7m* łZokUIuX,JPM&uԢ{ҿOAdӼu{łbW%*J?GDYh(guPSډB!.des-%Oo/@UieXPԴj,m 2d2qmjmVذy;;wFi4Zm H贘Di (CN6u#Wp*Ed1RS!qxxPUUX3ڙBaeX:׫9zooo?gB8"}<huJ @gJQg9Ykа Z#t:gnUR ?' Rs_[?Z9H[f`Q,dǧRvEوEQ@QܩեĺvB! %m\oΚ'%*}|FOoyJSg&j? 7mZo+-bKR/^PJUW(8l srV5mm|(Bp]]a-(~G4M=nE{AA[Mu&qtfZXȒC9eMk Єim\|___ԯėW+~dhRiҨ!=4QQyC x+:޴2}뤧ra &ڵr]#[`0Z͐Aq;,o~;;;wtymy@Bs-5 2i޴ ߜ'xdXBChbh=G6l۹]wƽ8͝|,DUۻW?Q}tu (mi+BrC\!5v*+j9}6~@HHmnmY9 z<<w5YFÿu_xxhiEdX,fޘ1Ճ̬L6nNFV^ypyv=uDТi]U i8 =F8}:3ZGi+E)pVmE(IdܶdQ#v !(27DhHusi;u-[2}xju~N·S'" =s66n' $zA9=pynY2ojϿ~ǎfe fܷh4|+V^ˑcDZX,D8Hg/RjŏX ^GύHLJo#澽mm ?dĝ uI7A>]UWkHw h%#E_9:*ޥs#u-nO(s]:u &6:/P?f͟Z73+h5Zk6k nyZOiѬ ̬lbrSL]Y.\벤mqc^lھP'"GOոS/jϗ.pIWg~.] @n؁;nHF1JۯH h6a/hKF+lsz|k-[\kWl{MUNqqQ[5oܷf-U@?/={}v3s̝6pSp7{ۺKaGm(c5Z9zC^߾#78ԕ$˂9mAA>Z}>]6kjh4pbV^Ll,1/y<ԓx#Z~m*Uu~sh^^R8_۷Q)q=z_~M菵Xn='O!0 [b̨ =K)QpI~E͟MppTZX,T*zvJn] _~#yՉ`W>qSQ rGjK 헷`bKuعg/C݊Z&r5lۑAa;z?Fݺ]mwmBpP.'ݏ+y{! Q~\oy׹V4£#FRgFq/b&~`u٘>+{+gbX4vd69x0N!=#!й!!5 Bl Ύ ):"Dk[" 3+E[IOFز~sIq2ʩMϜ7}xnSnݚ/շ,3V͛נ};ի;g2WY4]ׅtO//޸ZM&Q4[:s 9͚rl ?6;n-5SvD8ޥ3.c?PrlG-۷ad}N<ūoL#<,F 8|8K>rwyWlP\mbɇg74VztQd4FQCr3+X6D>5-\З4mbi(ҭ9»K>gǺMmݱ?z+WAk=oũʴ}W e@]ւ{W9矿<{ٴe?}zHmX8w]:wb;(ry-wWm +3ӃCƍ;wW'NvBPk5y.~c-xQd$Z^GȺ6b2Hp<7+Wq|L Q=#j7www{s~v;:;ï.\{9xuG{Boubڕp| ekB/m}1ڔYK`ⴷ: Ceu 0E.O#gm>jvnym= c||yg-3urum8޶qcF1n(EKq| ?.6T*jowgiCRR]^b߾$%'qQjbּ;׮MrJ mڵٸy Y'FWz)tR҈ba=Ğ;GVVtjߞ͚ hc}IHL֛ol6{^N`1i(])Ax\o6*ዋn8~$o̘_ER1y\brOU-28l,w&:~&()UC*Ksg/ظoذK)JXh(q/кeKj5]^nݺ,K}5~j9~~~,xw 99zlz7NO>㹧~Hٻ LDx8})N燯j'򿯯( ޞezJn!6vA qBذ7zٙ`k3`֥cJ=kݚ{v3wyp98w)oL ]8|(7oa}nij7omHNIy9]]VC^= lܲPh֤1n-tJCl\m-۷c4gP,3omھ5Ȩg3/D 1s6TƝNDg\qU^ʌer.Pi4V6ߞbDR,f"IIj]~=h٢3cdq揵㗟c1yt}j9v+"Q O~?4ʛ<#z'gsQb4qRRtF@@YEonW-BTw(|yPv|FVУ,}ҜRV~ܾEs,M&~LyR2%3JE&Mhڤ W$pqV[O=iݪ%9zN9+ dg)o*ZMF\9"JN(eտC &\{Ug5ywyb6g fNqm(SRb"W_ެY'O="cM6דr?݅?[NkՂNfV}{DF 烏J6sY,֭ZTX ͛_¨ຮ2-BQԷ1n[6[yJ; %_iSܩ{3v]*WV3AnW5lپHj>z^ysv`08z85"b<)4kBPIFlݾ hh4kӆwK݈Q -6UNue/+L 9ҼY35dsxqN> Dnh)R6rŹ:^9ܙv*.u""Ю|ZM{xOHJNђŨȽۋ+Һesa縢2Nf?w .qi|#sk !\(xEuYw9WlS\ߪ%\ߪ%:v z~:ÆA݈B 8t4, ѝMrSu;:zuR~bմiS;F ߩC{Z [ ##:m[~!H/VvkFF=ɉ ,xxx>mÏr A|"3FfW{fVkP f>Ω{.̞1 JlFF[d42{xjѠhM>CFLk Uf(HnBΕÊ?+,I)D8@jZ:ZtܩDi.h_`UKnԷ7BFzew}t[ԲbOqY:qGE׵oז>dtNStjx^mҾm[넇ĨNjݯRzkSW RvccWA4 IDATn~kRfT~ .r`;uZb!33LϓUqU弳uQm SԽ'D}\H:UYFlwnbXHzd=tjr.\t ?__i8BY?.A,MkuJuf6X.ZO?†Mٰisj55=] äqVt(I9ٶLk8aHJ;Z۵Ch4(d]+v !Dif32 q r5Z apАv%!ٌgQaԲE}7V~W)dҳyoܽK/P'ݺv!_.l髺q4IDa.Y1:FD*GQm$%l)_6oIRr2ݺtnDIw<=utܙ ~7BBINNAVӱ}b[٭ !\|}ң[ ߿&]{ѺE3j9s;qL`8uln'd"++݉N[~HҹC;4*VGZMBb"h4OzzCNBINJ)U]* !6w95FMDh(scFV6 2 BHRDfnN9r~ N9uS[!?|%Bζ׷&ߟظsw܎``ԯp7ma؝Qddf1_kԙl۱oLJ'Owlmތ7cֵPY-'X:k-_8w72Na6ZhCGvgdfQ;(NXVAo`دߛZ}UV`WЧs뾽Wai-ftH_z׊JA򺸜Y5dRu]-N бuB!п0>[v ]ۺ,~=>JիF-?@!a?@ Qd}=(\NHĢXؾkF1o2XY|}ڹFl޶";Go9 r8uBJ,Z-W'$&\ځBhHBBV^.Qy}ۻcJUDھ N ͝YԺv%( E!--@;*rw0fłVAQ{F]>u u:k}.VYF\Jb"!6Ö;:2׉t겴B6:]Θ-Bu*fs9íu-%HLI&$S$$|+II FJa!gd;鞢(beĝ'++wh4.'&b9 a̖;٥ *񥩣HJΝ#5չ%K[)*U* 9[۴fS8cqa4-9ժԍD;mYԺB+W  ,{tc]M|}߻'Tvd*:pVӋQ-Z6%55PYF#q.w~L ^\ײ6#~}oݒ-wRv !!e3zu{zwBPP~GuIغs7R0<uw!Էb2Ѻ5!4Lђ`3hUV8X,JߢRfX7lL&F#& h,tM^$yL&# Zg5v5q5ZjuݥAMkG-ΊD`P>>Rr(WVV6nĐI:UoϠ!-5Oooo;}BM@4uТr֏CfT._[[jm_XOZlǗ0쿿NEAUv9cͬkg[!k3ӥS!jX>@m 2λk(Jx//oE2}UNq̦j~EFhyy: Z;B*TժbCcܦ&ֵ-uZ6kJfM"}b^<*,o?ܺreu@!}Q !HRQ-.M`ˠRØl5w(guAĺvfB!;ݭr+P*+}Ui…!HR;i"eP]9Nfui[! {ޝϕ0Du\'}Je]U[lZWN;Ven!B }XOW/ VvjBZ!BH?NI{Z5 B!BQTHs1RB!B!p+qԬBJIJp 7ŁC;i۩TB!yܟSNB!B!D !B!B!j AB!BQ#H"B!BAB!B!BZ!B!( W.]jR"FZnNGPp(uRMw!B!p+.Φex<6 zΞ"RLXh(u"" Μ=˹ BCGgo4_}-!kӹSG|շa4\ؓ7+6 e A\eu6.-Ǯ={Xh1g`X 1+<999|2guËoҿOo[#A5l}v=6o/өC /ǥ˗H^=أ4"E>Z)ٳ|z S&N` zM'&66w?y#ZsD>8s6B>gV[7؟Q#ۻRk2{| D9, ]Ěu g[3hܨQB8'MN;̚>B9{?~ uDh4ʟ}jbb٣;/<3 ɏ~А`zz``̷ظy -[4gִX3<>r$ bokHLJ`Út6[CJUxYΜ=E!ȼp WHvfg㇟rzgRgKBh=zGc( -7?Y3X Y1}{bwyJUƌ{114$9_BNܸQT\||r%-_ ^~ )ccS^[уcO/yUf3a9;F'k2mkh///5iԉѣk*,۶+hT*^%6mySY]mCjHݙxSB+JjZ!!|ޒ\Οu˖\v<_G!Q "CkGjVeٽ;uDйcG^xv;vl6;|ͳ11|{?߿r3wrOxrVwzsΟˆ5@'y11D5lȒ\:tolRxég9z Z`ӬiRоw Uxyy{>z7fF̀o$00=d*r\W]O*j NHH6o݆-4|15l:9reSVBΟ;l懯$0 9k6lK_'ߟԴ4~_e2=1qx@&9[︓!{{m.hlߵ{+,WSShe{'ˬ#@<+`MRr2Fӷȷeԡ][.]Z,z}6oJBbaazt$fl6Yn9ۗx|׫``_c0߷/Ϗ}6u*|X,,|9^õT:m+/@pf̞U~~]KFfgez!Nԯ+/`sh-99z"4@]l63qƿ"gbk׬խS , k֭GVs7Uz]qF@ѺKHJBг{b7m™giҸ1]U&Q$; Ã@`@=?;B  7VYh a хv7mST*E#)+98h,5EAC~ #k*ۅ Z5r-/xhPXzBŋ\Xlgw @vEƍټuk )WW AhH2c.|6׵&A}}fc/8f_@Vf_~ zӦyg\ƥ~Į{?k&,|wO> ?~5^}___]K͉Byjjao3jHg4iҘ{ۜ*,4:ELl a¸dΝ[j_ *2*eedosbwڅ'AGFxAzz,nzԠ[o~"==;vpc߾:X;)Wپk7/= /EՐ]xf͚ZO/͛$((zV$z%?"))-O?+VwsYvDHP` HM-?~.0ꮢك-ciֹ6>K @, ;wiSxmd,KC(/2k4:C#[r Y=#Az=#MsSԴ4~֬Ic1uZC^߭ޣIpk7|0lA޽Q]e# z@4??\++:oWp=}n?׮SΝuΙ͕^k[9튾O5"đC(ҧT!G~FPP۵%#3]{X\7maK/:T h47߲۩G/<<\+VMt%t/pyRQuܑVocovuЈY?7ldSd>+[ 'NߟN:cisu.y]{X;u!!! 4%ѯ]ƚu9p0R}޼%/bXhټu}U>w<Ȩ&z}{B<ڝ׵nMlL H";p-cG/hP~F#ߜ„5Soătlߞ'o|}mwOn]1̜=ӹSGy#X +oEIo aA~eW9e2~~~.+3̩#Ȋ~tD<m-h'W^f3+YExhu(vi.^b#p _gʤVu v-5e/]۶L3jfN}-^vұ mN7maL6ᅬ9w_|=;AV3[*,uÙ;sLD>m }z1O2gtB\8JC$",ݻpM7Z1,ײ]F,++G~}管D6dI& bw䊟岏 ͹_ zfs+xh<=P֪ˆGiݪ%sfU2' osy%}( Q3zh4&^ ȽuYߩFq5fLyQdԣ#]aɻ:-O 5->oBoP/oZGTnټm;CnT.mP>p!kj69? G(.Vy5{=w -t߲ϗsqz_՗rGYתŕ+^4))SC*.ܩ0̞10k6\t/}xkf̞ \XM``z^ 9w'={izWePO3 IDAT!?y^DDDEҺ{Gd>y /njfC=3oc*Qp1lڲF_>rBrOY t׻Gz*rByMhHp+'\ߺ5Ƒorv7?:i,&YӦtr;w)o_ezz֬[WWfygbMiKn]7RMƕgM}ogxy̝1A.)W9@jժŢxg9u Ͻ2_}B^;jV& nBMm>d2Y[FFSO'Xtܙn] O 3wyWh4@6{t$^̞Ẉ=׵.< II 7wݗ;!V\vuǿ",Y󯼂b{.,?ߩm*!Dy]$$&2``C厞{jfe~~~0{.^[%Kh7 ˗yj-cWE6hk/ϽNǬiS+|wy8_ǡG`,p+F;U/Eʿ;kX0֛dh4b20 B߿|Tdż0nE;^~sx&6 8hs<<<0 tWx|E_Ӽ(_~7雨Ͼ{Kvf;|w3O=#>Pa[ff&~%}z^%ߟ6B|<-gR;6CMr'5 |ͷ쎎S{.{0_ATথɜiƼ<[;֫Wwߩz,M˝ZPNvVi%))m³/.UsU*7ϬSkInkD۹\>*}r$''g^|ٜDV0s}W{ѡCt:jxxxjh4֛ZT*UH ?gڛo\'A}'ub^vmr!7 o׶^ppqޘ6E^+v].pz/ A|}}N{s~.ٝT##'63w^2-gV7'ƛ3lLLijҸoNPe'OQ^] @"ϬӤ}*5///>\Jա[ 7-:ut|),\wѯ.-%\uV|x1ҫ[5`gqlެۼBߟ%Ԙmݪ+\^+6.sܡ=)),y~iB!D !H=ճSj4^yvyB!Du'}΄o"#B0Z!BTwm/>H*B!܈NѠCY`!_ P!B!#) }FAϹ*dtQ62D!B!˅թG¥x9rc@Yxt #,nBB!B!.R[20B!B!$B!B!D !B!B!j AB!BQ#H"B!BBxԬBM> B~*$ S56CZBQ .]NH!B#B!BAB!B!Bv\Buz}T߭1MنZF_˛%.\Jb޽ez|ӦMQTT*Ǝ[fhZT*'N"BQ &;wzZ1z̘J+KfyB8 |pmߪnz2#Fd21bĈm5.#FЬY3T*F*ޞX4BBBxѹ+VR#**J*C!B AZl x`|}}+_AcCg}(#+eyzax2?oJ O^5ޮm8{Ov Ֆ3vy){+Ɇy1GcS)RmӦMiӆ˗/ʔ)SXv-nnnFF#|'Y^m66mʅ XjӦMcǎ~!˖-cɒ%ر={pY93f Gaܹ̚5dJJJ0a}Z z=ݻwgԨQL0_~Yf1uTӅcvv6:ub9ros*֖5n8x ^}jiUʺW>55b< h4rߕ5m{MEM/B!å.!]ϯON0loF[=n~uX( v4~N"=&>NveVhJ F#G\a/r>waTdf1zY&gorgfwRT3?Mp1=g;.?haO[adflm$fQjЗ޻ Ee:>̝ی+4GmUwT((P*UJoZhg͛Gk@SY:t 88]vѮ];Ν;+'|Y'Ofܸq> bYf@6mصk]vСC5_~7nP\\̕+WgϞf < J۶mn5)o7]cjmOMţڶXB!B<\r']9I҈E[+3;w:b{нU=4G8+FK2_NUތEBaLUتhTyhJS~z2N`4Vg{mD)`4rypq=8lڵ@Fm߾mSQ2귙f59^!BK]h>\sYWfkonqۯRs-?pN -uVV؀3`h_ʃ"-FFG#+w\ P>k~aO9gT z NYAjfu:F񾔥T*+#=h5kSٹ2=o*իyyy̜9 T*> ioݫ}C.],ΎGo՘ZۮƢ6Jkj,j{!B!.ܝmOʦs\z~W]G(OǮ}6 KLK1MApAET<=r@.2u+Tք7t*6}SC 1][zþJ٩+hF*洦]\),7%3 KiN~3C0g@3jGRP6\4ڡCnao>^h4 *..&++/ruuۛ{ʕKe˖-_ [la̘1o???֭~gy#Ga:Zjų>KFF׷jLҮs?šc<5899 Em^!B?PD׳o>Gii)WٷoG}u-R5'oiBa)cH!/njhݸyi7wrB8۫H?8~;mJXq U_xvW L?d䆞f,|JhD'5ez^Cfͧ;Q+).#u0 I9GMuRk R 33Ji6lGe…[AYBZZ[nl24he˪53g֭رc$$$V4aϟ$##ٳgW,wäT͛1 hZFYe.5e988ФIGGG4ibOwӪ^sšc<5nݚ/c51{!B!@ABZFE2*ǏeTwy ÃjK s^COǮ|Ƽd齛0 mlwv|viST{㻩O9ғ"-b"&=iӤYEOvjˢħ3/W {.`*W9/OƌN=ͺ=.xF̮cטz%+[׎U#"iK0zY&}YԥC;J%,.(gx@_jT4Ո"""8vk֬!""Vxkرcu4,Lx o7tcƆիWcggʕ+k}}Z-;v`,Y .ǸqS/#?5?d?{1ydطo666ҹB!< ^oW_:1W_=RU;;#G2k,JJJh߾L!B!AŅ}r%.^hv`0eƌCnݺ-a-FV###9y$gϞgZ'''~'퍯/[lC߿,B!BQIn]߸qüJؼy3Vȑ#ϯvY!!!KYYzJٳ'ƲuVN:źu;wE֭[~z~rrr"&L`L>L222={6ƍȧܬB!BJ pk/+Wd߾}.+))++ B={dʼy󰵵%88+WJ!B!A,YBtxzy :?귉>3d2zBѫWj&55%KrUΝk:w }]6l=O<gɓthe0ydƏOii)i۷/b!>>Bbbb1b|AB!wUk ;vd_@^"33ΆY'sJd<;/-Z {{{ӹ{ Ǐ3n8hѢjuB7:t@RUN:,^FFcǎ\x "B!ZI@< IDATKMޣSNDGGtX~C:Չ; ߆"64?`JS\' ؂/3]TgJ(q[﹞tZєƣ&iZwm\vWXnJ12M؅WM_0o?%:z8[v{#N6j|9Ӄ(bxj[]Vri:$PĦJmƀ1{e˖=k׮P(P(1h 디| #GԩS4^?/G߾} _ڭ ws4Na  /;CzdܸqfizMNӧ0cƌ҇˖-#,, ;;;IJJ2 PXSgK_~x{{cooOdd$֭Hw+x$A!B!#F<<=J*Y-v><'aǨ‹O]y8hl/WeĢcqEy˞=\rNm8{Ov Ֆ3v4/vAMк\7?VZˏ2Y"\VxZ]VgH9g{.f шhݝO>F#ӧOqƦ48q"@wq9uVV/Fcq.,, Ƕmhڴ).\`ժUL6;vٴimڴˤ2e֮]{_p3#G0w\f͚Errr\RRBtt4X0fSmż,++B!B;R֊M8&M^{huҥW+#YEĶǻQ* ( ])eYznjv'NEaz7LGwLy ^jD\&l>FЗ޻ Ee:>̝ی+N;CAvMib+4j%u,;Ӣ+&t^e^/gͮK(>iBxk~R6߾jkɓ'c4 ATVOܹs*((`ҥxyyS:ojٵkڵ3 0iѢ7oݻw7noǐ!CU8uǏ7- ̦MRX`qqqf˗B!VA1e 6o&}J;9I҈kN1`G6ٰ2e2c)mZ^hHȊ;\2N`4µb-ν6Z|b^z &N8W y_qӗ1_N]h_4 ~Ne8OYgY'.c0 q4rYm->s.\ʕ+ eǎ 4uҥKINN&11;;;;bB~~{o^}KVVG6-ѱJu޻w/VGRRÆ cСl۶_x!B!DL4Ey&z}v ugpIhv״mGЯ!qC)5?Q-Ѫ)-owjhr2 grK3;țѾ<EZ-Cje˖-|P>#^Ziڐٳ'...JRZ͋/Ȝ9sx'iҤ ;w䫯Xa[7nܸ8//aÆϺu]}8aLѣeeeou}{|@ll,III4jԈCqҖB!BT zj yhe:MjK s^ĞiR̬"~̧W;`MpwJX]6IkOQ|Cn$ȔfQSL=~0g{b-K~EEy3%uX5"f eҧs໩O9ғ"-b"&O&:X<[Y]ֿ$&“df3ύP(_~mۖ@^J+MD^^۳hѢ*d^}Uy'6mǏޫ'111( 4h` T( ª\΋/Haa!;ɓ'[}ǢEXz5͛7cǎ]*t_Jfx:RY!B!Ea0TlpQ`:zthZt:hZ{%~РG*{N\z[+6JwyYn.#iqsTsko0$>u޽;NNN|ԗe˖0uJٳ3=&ݛ*=QQRR¨QHMMW]G/vٺtB!hΜ9DDD`kkZ6RPըT*lllLǭ*J lO̧ Oΰ҂- =bkTQ666^;;;V\Y?ydطo]۸3eO}?,99WWW6l̙3CB!w.K'TqSyʵ*.u嫯z?qD&NhUڱc2vX4U@BBtB!*yD\Y#WnQt%DB!Bq?r!B!B<$"B!BǂAB!BX ](b n&MZMzz~ѵkߝMdz ӝ67o?OB!BG] ̙3QQuwÃ=͛J]xD2Cj&O)--%::ĉF:vx4È#dB!>5AFÐDv-] xuqax@Vɜ%ą wt`#FCǎx"AY!B!Zyӧڵm۶|z%:Չ; ߆"64ο).AlA뿙.SwSX3ꍌ_q\Ohb:yhJw4f;MP6zi+,7٘q&«&ԯ}O Y-iq^h5{}Ai<5lW ʭ.+z9]ߍ}4NS(bVr+H`ccSi=u:qqq899ԩSܹN:F!<<˗W9e˖$%%U;q+#A!B!xL VTTĜ9s0DEE=:8۫xk˶gq&(l8z4K /~>uzS/O࠱׳_q[M#/{R2rIܶy\JL'Cj˂vӗJh;Rꠦ]h]rs+G,.lG+<\l.+ [si{ii8h4JyfIJJbʔ)Zt>;;N:~z9y7ٹsgIIIa3#G0w\f͚Errr戭mE_$!B!j՚Ç٢zuKVZ}ti?>9HVn@ :JsWJYImpSQX^|,{7S^ש!,.OQ0nBQ+s6PP]Ӻl ZhhvEm8ˎhʦ6WYY O}P?'ޚMyT,]///|||*kwwwR aÆ |pBRSSi۶L$۶^zχ~Ȗ-[AqU@%++ѣG3zh9::Vkİa:t(۶m}I!B!AFCfh׮-Z0#)}CЮ| 9-u#ב;.~(5?3=Z3pN ->_|Ng 8p\ڲe V2eQ^^ΩS:ooo|}}ٲeUA'''^&wr!t:B!Bу z^zJPRR9t'N|-o0cIfojz?2Е}g /Z|v.n8NJ`ÀCgŎ F+@VJG9Î8[@g룶QFLnߗ;]X-Cy<1x;M8]L<*On{GXUeֵK /~?ƽWT7nܨt>|8槟~⫯?@T͛޽;z#G_|&L_>=ztrssyjݺ5s_~~Z:'B!OQ*89;N/_z$QVXAZr{xBC>o1g0m!32Q*aw$=E =ûR#SEO1g0^R\b,>߸M}Αi~0{1wlo6AŢz $1\.('3n FQߺ3CWZRZhȑ#8q"ʕ+ٷoDttt󉋋cѢE^͛ӱcG֮]KddE^oߞh|||XdENRDT_$!B!C F0 CכNVEQ^^V5w^ z$RN{ n(OGMsg ZQͭ-6~s!)n)_^^^^^̞=8ӣee%%%5TN>-_v u;!Bќ9sZmSRVQTؘ[`V*( jɝ :&SIXv8٩ؼ Z^G|%K]5vXƎ蟄d!B!"AGĕ%/?`bbbdy󰵵%88+WJ!B!)&2aDԶf_.ezm{.B[̻;]xkcNN'Of񔖖m:պ kq86XW'#}i<<l8"6chxLGMc|),,$&&#F_P!B!#V- eҥj\H0[ Web'h\w;ڗѾlƮh#|i С*U`ԯggzT*jS/~uNܝmiӗJ/[׎zu48hld{g^e YyeGuMi5 ;v$99R)7 !B! ޞzt4mepg\TLD"6Ċe$KtwRoΘgI?U+khFƯ8V{'4173`~ JttdOR[$sWEJocT0ji&1' u$ ׭٭y$B!LϏWw.*Y-8jl*%;3?]Zx=ȅyʗgX5|<Ɔ^7(#YciiE4}_! gbcܕg۴iî]*=k.ڶm @XXFW шhݝO>zfi{rssٲe 6e4 IDATcڴiرF珵Rb"<5OW[l>5>70K#.|'[lm++++B!B TUTT~)i|'\tpCӐ.p,ÞZJ #0z)ݳMV}UZ˹+,KQ6,$ ?KqޔK兏ϝ jlO ӏTRsm=tdW|۶m駊g9믿NII eee߿Innn|G3tP6lx@Lu珵yq\1Lo3ܗן!u[iڴ)* jB!BQ՚=A^3O?M`,Y1c<:9I҈kN1`j@f.hkZ{Ynzb1\HNN&11;;;;{x{U pvVsZy \~5k_}v\]]Q(DEEx_sI~~C?[1~QN_*1{?TlZt3(_TVoVe+#))aÆ1tPmF/B!B AÆ 9qCЮ| 9j]{oLb۝, \lBB}a 0;BBCiu|O_#mj4Zp\\\駟ظq#GfÆ ӲeKj>0UYR?grK3;țѾ<EZ-iS3}xCg?owjH]^зo_,XŋiPGqSsX`$B/P*;:{`09xrY)}ƍꓖ0_8|`gfvO`m۶̘1>}ꊷ76l`/$$4z쉋 jOɹWi>|ՔOFLnߗV}_k O0w@36pbkA[~2˳l !B!ģlj05jxy{ӨQ^7/W[^hȧߞ#^ j 'Ǒzu{. SO12篔2;4SOs4|1_I3]cvil2_{!u%^Š6Z'= ~yQv\Kk׎^z%tBQQmڴ1APjBPf_RRyyycooϢE(,ձLQT÷FDҬ3#a;n{/Ӿ:hUTӴ?oPP*f{!B!Dm0*6[`0ztt:Z-:rZϽ{?h#xZmuڋWo8pkF}Bˋٳggz>G?%%%5TN>-EˮDn'!B;3gڢV~T*j5* q럵JBav@-aaSxiqwwgʔ)L>{{{o.,瞒quueÆ ̜9SV!BHQIXvP;v,cǎcd0B!$D!B!DyB!Bx;AB!BX B!B! A_xElm2i$|}}Qդg޼yʕ+e2 !B!P wŘԭKuyC x=xD"iaɌ?RܮσOaa!1111BB!B!,Ԛ ȡCxbrRSyEP<80[ +v\dN#7.\CT?LEбcG.^`oB!B30ӦM駟fy晇VIZ{i_`'+Ms4}='Ӣ+gfce>I+jg[bDiJD"6 W-L^ue۳?{wq̒=A%!b]U|)־QJڪ*{KJiRTZ[VVK"$BȞPK||<#s{ΝYFOiOdp ]  [ܖ'b63)+O⅖%h|I6. ZM 6} zC_XV\]5KDDDDDD3Ok׭qFtЁbԪ])SܷxymEq<6%<=>yII_מ8"ϦЪz! d3ӿu0=`6ҿu0[Ӧf<}&f#ig{ϔ򺹹uc͞8J[ozi-m?  .1=͖|c%i6c8q"~~~̞=S:ʍQȰ(Sԓ A@P8LbJ>͋gA6Figpuq!i HPPcǎW^ӓuS.""""""y'憏ʕs_T)k ltEGsL7V87B"L26 dƠ]ve)k歎em|L 0/ңGCffm_]k粽Sl>rt2,8̅ O{2DGG3dƍGrr2M6է\DDDDDD<4'H58rqxFdd$AAA\>ffħxY"Ӳyñ/ar70j6 DAݔ5if&\Q -KarmgϞ9s[ܔB7& Gb5O[dKaOݍw~d¬Mfs̷o>233ݻ7H b :ԩSYbl=Y WW\krB|ILɤ[4e߮>JRI#yޘ?wHr'>gw3דBFHIPyFoLt=۹7q}F]{̄(׫N{\Wv|y>ϰe ܙZ .Ðysց0\ʔ)]g4%ӧ ;]mgX7#/ v+sX,ۺܔg3ѩ fW~ h]&S. nU㊈H6.Vk 6aZbطL222$== ;wK/=o4r7&>R/a` +..ƏOXX}l6F:P|$''3tP.]JDD>""y؎-Q*BDDDnh„ T^ٌdri41LF }GqWWW\\\6C=An@U se>`ԨQxxxt~])>}?>_P WVYbuÊH6 "y i+..(WS*FD """OFOU"ܰF!""""""ÈSPDDDDDDDD """""""g &9V+ȿgV:!!;vT+ȿg UVux_KJ"""""""9Al6_MLhh(j%ddժU9r}B"""""""rG ȗ_}ţ>JٲeB"""""""rGZ"""XbsQ눈z|WOuDDDDDDDSAdON^0LjcTdΜ9$$$ЧOQy*ҧORS)QZFDDDDDDD(WU8ADDDDDDD)(""""""""NAAq S0 ,GO'voi]*DDDDDDD$_(s5.a{sb2X~M>L_O|嗘fʖ-ܹsU!""""""<IKK㍡C)U>TXqݗ$Zxn5w6ӧy1b)))4iDk4G?cZ~HLLUVk,D L6ɓ'~ ƛÆ1cƌ{^/w>Y9Oqtrjgb [_ԩS4k Qn=111XVU <<֬-[ gONϞ=yyf|SWi#4vgSOB|׿ MdXl7E{1<$7.@tzOv#'獙)]ē#_> e8pǪi8w6YNƥj9^W Cȴ3WW5/-3VJP!oo[VuJ:KHa]R3) OTQ@>d&~LG˩SWgϱsuCظ;ns02ڪ"ϵz~ܲ-XD FeѲ..KTQ?Vmjt{*4~oe[x+.O5,0iۖ/VZC >a#G2r\oPxӑD?~o dXl8¬Q2>SWax==W,ľm~|ܣ[3CzBB3g$ Ef;uܬRzv9pż5iU7KQ<ޏWbIvОgux$gj/B,AzUW1QBR2p) ohU$ zSbhQ7:]`Ao7.L{{bŊFNj*Hޕg|?gӧOgT(_M61` ?~Ko L lS11SYsDU@rs)922qcHN`([ԋ AY]),]>$'1%Ӟ6qD; ,6Hbr:i<߾pO{D&dʕρx' ,CQuo`4b6e q3<…t SOfO;Nc=XAo&o\AAA;W^yvZ6moAn^c/өcG*UĆ xԨ[ ۆ|(_y8<.Wp~f^hY"q|L$\P\;5V&0P^}UCTTC JNB׿Z]:Ǻ#{vk|9~iZ-׍ mstt4C aܸqo<,OA222tC&LNY Bn7c_`&,`x2͟};R|lT f+!$I^hY>$o9t=0\~*?LędB {bg]o___zԩSxo}Dy/|8x"aߡ._"? "&.醽A|:\jkm^םB<  e6i/#33޽{+"""""" HL&ZlI\ ˕chomkObYtq+fK8vK[b .{bxʃ7ЬrA6{O$n%jcpM~KP9؇;Q1d~2,6D] 8JbwY|4!tMWҲul?;DZ͒Xч;'Pt!Voq޵=OL_7o|ASߛc.r*]<"b.Rs=@BO۶2J|4^ ;|b}[\ؗ{iQ;owF+u#IOOwKQ$W:yp..@СC{̄(׫N0C㟯HIx۳=m-Ŝ X n^~U=/@t;G0>t8iW{&<{(-A X,zD|B*]]j6FeW"b |xW}*z7C3q.vIvWnV8Ꮤ'0xmt2 ^oH٠t~jAk0jVxs1U㊈< \o6j,}$##LpsNqF)yc(⚬RC+r_ >ˎ3h><Ϻݕk# f_Ur'99CtR"""T!""hǖԨH!"""74aWld294L&F#]C+...%rn@U sIB^\Sm>}?)z׮ߟ>QFuȹ4qDXbU!"""""" 5*vWP1/ݍV<,~ >Çaoр0`*BDDDDD Hd_|@Ŋ<|Gw&`ǖԨH!ԥKسgOfDGGSjU&L@…&''sq;΢El^Zٺu+GSN7h;FN8s] ӧի/_ŋE@@1;wF޽ʕ+KL<~gy%JPP! (f<3ŋ9wOfŬYʕ+{[±cLje„ ̟?J*1qD4ircOǎ)U kצrxzzj„ T^lZ^4LF }suuo...䑞 W,fa;۶mSˋȿMX`sΥaÆ4n8իW^c[oo^d>i޼9,^X'qww~|7D:baY8pgϪDDDDrss˞[cǎDGGCB009=<<5\ \ܬ˕F ܹs=:ȵAkw%==?๺2m4|||زe &Lilg&F:e nnn,Y/ooMFqu6""""r 4H=Ar >|'OҠA{mƍmۖ-Zpq{пFIHH*Y$ƍ77;x`FE|tCS3ҥKazϟxDk׬bBM#"""""J:uUE\Ã"E0=!!]v=?ҡCuORXOmےJhhh=q-ZDh֬ndqy7EdT+}T$""""`]q.\Hjj[L)PO=̟?{%Krܹ;voΜ9_|Gwi *,Ν;R gbcyw wj%RRR1cʅMWِ좣ykXj-[@i۶- ,`ڵ4nܘMޑgϳhѢZE 4a_"Eꫯܹ3~!mڴf͚ߟqqy&b4>|OOOZ4oΨѣQ+=uEۗmr={6O̙3*TȞ~%֯_ӧ9}4... >֭ɓ>}ƌh$::e˖q!iܸ1͛7/x;Ξ=kMOOjҮ];6lŋqwwb? 6J777V+6mڰc8@LL 1111>Djj*[la@ϟ0yhbh蟗ʎfŊ֭ ,`Μ94oޜ>}PÇ͙vO9j(ϟOdd$]vW^lٲ.]PF ~\bsdJ2exꩧAo`l6 4 44!vZƌCrr2 K.iӆ+Wb 6n܈fW^A~gvE۶mILL$22ݻw;AsI.]ٳJNNj: yy㧟~⫯#=)nu~#GҲe˛N>;i$֯_?υ Xd> ;~8#GnݺҾ[7nƍ,YyOs<_~ @Fشi֭#))aÆ4lؐv;zM޽0`&M>k׮0pqqa޼y̛7@s;TP~cJ(a6lZbʕt҅.]m6"##o)`~z.]ěoy%,YB&Mx֭[?|rz;|?};va3uTZn͜9s={V;_DDDD֜9s]6kצF-ZRJ~J.}!!!̚5+!-ZŅ ٳ'k֬1{7M/Y$=r6w^ɒ%KX~=Ö8s?5i҄ŋtVZY^pA_DDDDDV5j5BLL Ce0r^~rvڔ*U 2iҤl ݋7?>l-[FXXX[= 5jtff, ,YK.}F}ݻ1͔-[Ç3p@f͚/q: """""N ???RJ<;B 7L3Lwlyٮ]ryV^-СC<쳬Zl+V잶ͽYp!:t1`0ХKRRRXx=oϞ=m_oJOOW_e̜9ٳYp("""""r{잽W\~pؿ~*T@׮]tH߱c5jԸmpFVZEfrL۰a;wϐ_=۾Gys;׏… S^= dM{}ũ("yL$wUe}簒]=J*TP١?@Νiذ!ق$Ͽazٳټy39w<#ϟUV}fZsϣjժԫW/Xڷoo;PjUΝ;G߾} dt\Nݳ`<}ͧwIƥ/ kԈ"""2nܸڵ+ ,_ܾ/""\]]ܹ36lԩl6Ξ=K@@]yly~vIÆ y8K 0̈́BONfZoj! )Bs +K|ϬkmCHQ,"""rO4a \?$fΝT^ݞ޵kWV+zԯ_eܹy~WΦMHJJ"%%(ԩ'--|uVRRRHJJرc,[~%::͛7yf6n… ypr7`ĈfKR ` wJJr2 bȑ7xŊ gh([5jOso$/w>Y9Oqt5>$Omݺ|l~|޻"ڔ'ZDDD _x/r+WjժtR7o:uשS< .tFq'^ l2<==۷)SطoK.+WAӦMogȐ!<#$&&s=m"r+I|3ztWy8&M0|p*WW_~I|vпu0~F>^sPhH\)궂&=\2uGBs1uZF޿$$g_z/.+9@ƈ9 [GT~\瞸P޹=OnSEDDDrCb1}y]v%99hs!.\@] ]?)XӦMhѻe˖L6iӦ1c V\ѣG4h?ϧ~ʇ~x|3fA[ҰaCkH:ur|<6Y8r|ێ\ ߬:w'8q.똵{YR>|^&6`j*lO7GjDA&ĈNe02o%&DW5X}+4(yIn,"""!=={nRRRn;vLJgK5k-Zӓh"##III>p ?F8q/,Yurq:v-*2;ڵRSS9|01O׮]1̘1þ… fVt{ѣ9B, 7nK. <"E=6mDzzVo@sRSSoxGXn;w6+[:uرcYƼP+_6x{Sxq<<<_%mJ2f1Ft*KȮ肛1+fr͔5{1 gK^R4M"BR>ݳOTz8&j!y2ȝfuFBB___mFbȟ??EDŊcݺuݛ^z裏g6lHvx7HMML2-Z[RHT¡C0ҹsgF#_}=z`Ϟ=4i҄<<<ȠXbgϞ[znݺC…sL޽;۷oxGرcFڴi;v"88{Μ9HJضmq˽5kйsgΟ?oYt)sX '))lÞ'Hn'%% .ニ G?޽{1ͷ~y>V+xxx_`43fM'0b1DEEQR%F#{Qn0˗سg4hmڴz0?w_jp>_rO>}j)߅j&4Z2x廿XGW,@Jb]sH/k慖{c1ݗ,y"""r4k2Qv"22h .Lhh=}ܹ?~ (`G \0 Q+xs.:tm۶߿ 9y/Yf7t'\Xn~{{N:`[:СC:t DA{N:lذ:33={c_`&,`x2cD_bn`iU0 {RͼR/ɚ(5dyز"DDʬYxs=)i׮&Mz &Pzuf3&hd2a41 վ8lGȕ[W4 J|n Y Bxx8 ]vddd'H.UnDDDDDp]jr%pHSD)""""""r%{E*  8ADDDDDDD)(""""""""NA"Og| f^x򈈈ܮ{IIN`B9ҥKvuO ˗ggѣ{wn;Ҝ """"""" 8ADDDDDDD)(""""""""Nx/bw^RRR? wwwʕ+<""""""""AUÇY? 0dXl7E{1<$7.@ῳ@\pR2#[>v3s]83bA\HcBN$}[`(~r&dPCwE̤Yx7,WJJ գzӖe߻p,(.ͰgRt!VodRHO$l쯸 |طE xqd<'&RZ6V T1?X=ѤZcxuR gxL&]k3|^&6`j*lO7GjqSG9`gE 1 IDATD&EiȎOX9'!!3g@ѢEQ@JcXl6<U/Ez?^%H&i&._>4Y9,' RbVYU N"erRV%{x%Z-I=ZT獎uXЛb/cn]+VhdԩsJh< %geܷ21MI,:ƈNe wHf It_1IT .]&S2͚sr  e6yn~p'2p@Y`A@ӉOL㡠} xc$*6'vWD~D_<O`!{suuhplf6py i'ğv2z9^_=6=L$$V;v, fڵ4a^Q~yʖ- e6ϗEG!.}ͼвD|LxS٘= W_O>DEE9B\.G=׿fsw뜸=jʽ}l4vaO9՟ mitt4C aܸqo'gL2޽{SfM֭]' >ffħW.C%) -Karm”(됀".5CrKϞ=9s 111i&9q)%|8x"aߡ|D&s|"2imوt S('ܱ2\ɴ|՗}I޽q"$2Y ௿fZԬUS11=zjryZ??WkOՅ1^ ^{b[Gk&!mQ;B>&%6ͼ5W XҟqD\f !ևm[1}>Nx~_.*/Ds>1 KHOOwKqd8L޽:)):#=ԫqf͚̄(׫N0CV6*ey1g)n;žjV?{p5z}?] !9a97!0%[Z֕OHKvYhנ qSj_]L!ORW'cu7fHs&.[n")5¾Rͪ'd^&Bonn\w٫ݸ)Ώ>t[m5c Fo.&=Òjy\'brYVfX[ff&dffNFFϝ;w綾7LFdMZᾕ9..ƏOXX}WɝdҥKP';lFF &Pzuf3&hd2a41 ]]]qqqq .wR8}-?|FÃu֩qriĉb BDDDDDDQU{>|8ÇWܢ0`UROq SPDDDDDDDD """"""" 8ADDDDDDD)(""""""""NAAq SPDDDDDDDD """"""" 8ADDDDDDD)(""""""""NAAq SPDDDDDDDD """"""" 8ADDDDDDD)(""""""""NAAq SPDDDDDDDD """"""" 8ADDDDDDD)(""""""""NAAq SPDDDDDDDD """"""" 8ADDDDDDD)(""""""""NAAq SPDDDDDDDD """"""" 8ADDDDDDD)(""""""""NAAq SPDDDDDDDD """""""o㤪zYEP[cDljDMĸ*pWFIDtF$HёQ$. EV70 b/TRTCC7s?U}9nUU> @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$ZuXpaTVVVnl4jشiS+ 3{(--޼yr&iGiiiwyqWƢEg??zxw+L /ġEEE1`xcʔ)k֭[w; w#"W^ѻw8cܹQ\\Gʆ$ě4iRL4) ;;a֭ciӦشiS̟??.& @""^z8C~饗sﶨ*h3fL6?6mѣ=sE]T?< w}+@;ɂ6lgώt:/~QTT+/h̙1hРXdI:u;,{XfMDDL>=wr>3<ʆ$@ sov[qUWeҥK}|'n++++V… -[,-[?o.//ZJJKK{ԴyX`A^:zKJJ?lvG}TR_5֭[~WﶪЬje{.9䐌… klH!섭[<cǎo=~5Yٗ_~yM7|;6?ך uo'/bt-~ӟСCc}eAE޽O{.xgcqƣ>Z]޴iꫯXfM1z[bE7o^ <8zrJ-ӧOmҤI,&M/o|q9Dyyysk~x矏N;-{챬6sԿݻw\r%1A4ɓcժUqA W-Zx`+"/uܮ]t!"V@;ˆ$01*4REEE=:nݻwǹӧO{wСCL>=:묘5kV̚5+""׿cǎ=zԺϢEs\ a„ 1a„կ~$u 80Νo /={FiiiW <8yZǏ=:Wȑ#cԩԩSȑ#k{QGȑ#~iL]t8裫0,x$"Cm̙33 _~y};vn){ m믿^}u]+W)ɤ4:th˿KDlMT^^U߰aC BHSO=5ڶm[k_׮]i۶m 6,zXbE̟??o\kkƌ3cW#NǼyjo߾}ƕp:غuka1 ilyyyQYYY.]DD1SzNb۶mo׮]^v|`g92=xGܦM:Ħjڞ,5@ٳg<쳱qh߾Nr8߿?M6Ŕ)S?=zěoY}׺O* /l;wnNl]vX^n2dSՓcؙvzv-[O?mڴޟ;v5KMU};ˆ}a /ԩSB(((t:+Wܥo &d .)SĂ G0`@=z_*zO{MZwScؙv6zL6-cy]vO?4}s *a~_zKFld}ѧO]cɒ%u֬W -rGGVj-{{h?,'6yMchv /Z!G}rJvj>8#hٰ/@#|󟏷z+:vXkƍ7ވa_Jsm۶x޾pܹsy} . f͚q)ٙ3gƌ3j۴iSuyh߾}}ZhVVV֚{u77f1cƌzaOsOĉy嗫{` :4>o׾z`>F^^Nս;lٲ%-Zchv6"~;=zSO=58_6N{o <8ZnZuYXXZ(((󫷼ZDBH!@K;Bs@T i K/ٳO?'|2"@B|K/ŰaboFYYYr!NBHG A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$H!B  @"AD A$B(t:@[BcN3 d5՗`3H!B  KކfoKU#Zt:]+th*xHR~ޓmYgu4^ /5~R,a4sS170? ڵz;h=Lxa}<5sT>٥#Nqͻv*T*glKWVTĺK.qp!أ!mot:ˇqúDزycyے;tÏ ߚ;tNwM A~ѣSA|⼿o;}\s΋NoRfnK:ˋ>>^;/Fأ))%cEqWq[n'?ըr;%zce|))f{5&iu[.lٲ8#k׮q@.QXX$w_}uqU5kv]mKS6Ņ#~o/Υ19Adw;o^DD ;shr1櫝i1ǔK]3ݦn/^{P_-.} `"ì_>""zz\.>66mKGuzisB61'*wK|x,n!ґűI}?w9.ڴiqǴ~1Ѯ]Xv]5މkcuǒVKxɒ11qم0>(>hEuVqEII:P}?|x/ceG^^^,z/qPϞ1{ `"{t)""J|[bEvglw?.M K(buaO>^ѻ8VY?m۶/y4~Wu?i>s}>?wL=w%/^sCcۖκm| Ьx`Lx_.eq,z/ѳGxྟAY( ieӞm)Otak*P(/jGQ^t-[a8ê+*:*s֮]W\wC,^=\'F~mۃ-1Fhn [E6"ںuhӺ3ZdOms㎻Kޏm۶%ǝwfώ8K_jgfO1^ŽbEII()=zW_dumHhU*Z_ҹoW%ۇ?mt*T:&&J\vՍ*mTU[憌mlt[ ^&.p}D>}ebe5k @t5Ѷmۘ3w^tqoM7̉HRqĺuv-6+3gbo?ml|lY|w&wqqScBxwп뷛3()'*RTmt**(>XQRWsti,Y4~3wk04G_K?&NI'D>}KQW8A>Nl~O>T̙;/֮[;uA)'/]66n'9c['WEDA*+֭Z#uoAcn)Iʢl߁(++֭kСC|o=n7Y=j+T:[6ok%""NGZ=yq|o1a=q+2Ѯmm…q]8 ""&M".ZBݭE\qAn;KG߾A?9;cՆʘ>osT|)ED BvU┯r8KZ$F]}uTVVƉ'Əoz29?v;,NrM05-ulۦUL}mZE:BŘ3?)pr}^Ivb̵ďn˖/;+ssX=rtKwʡEEYyYIk:fР-㗟Lڴi7\{Mp5ojmL= :gREg:M7\ߤˀfg3ܧc;/.'Fkpo?:t|W˚38h0@۩eQJ^WCaSVܒn<+Rp wf;STh@b5e-A uw&Ȥ;] //֌ IQP:xFS[*UCط(wȖA4KRT͑=[Ƕt<`s\pb(1寶nm{]˖746+ ɴ5ϵO7V#mgnU*=J5=lthv&{hHac*v斟=W¡łbҢП62 uk@ioͭ26_%-ş:E~~}VLH.b2)A?wIIjT|:F[ǯ^v?Ĉbo4[ ++SѽA1Wѡc8F.]  Y6l(ɶ _8t?(U*T*Jt:}iw֬8ՆϏ] -Y1bV csElN:?ؗ?6&3rsԽa/U@SED R ܝm~ YCCCcvjNk~#$ST_k5l$i(6GȎ>7<_6svRw:{6nQw+((Lfih̓JTPwZjYjS,jؾDU^{*nw\DaaaV_yLp$SPR/Tt:̨p C2] C.ʯY_D{W);hUQ7vd ?j޿戕 )TR5˺EJV"ߎBlkdR76$f;&DdOU4&B{\BLAH^!;3!uiǚ@ 5L>///RTea0u~ީn)Sl01K֛N8RmiܺCZ25jBlHeeeuQ'Ȏ-䨙BlB2 ɥ'Hr sipDԛ @2 eUa]  3 BmN )ت#So)L#l=@ w+F!LAJ*l H!Ue AʬyY.`ﱣPnpVQ+; jSD\W4Df15i8L/dZ9fQՀi @ajK 5fmf՚H̀fk!}K.elr$[Y{z : L!uζndG k6nQsߎ=?"v>-ۈs Cjzu!nczA`P'׳"glZu$財]Լ#z"2 "}KEAǎVih$@P)744TP)z@.C$\] ;" 9M^ڈ-=f!HDり\~@2h4\i|FIENDB`Setzer-0.4.4/data/setzer.1.in000066400000000000000000000007411420322575300157140ustar00rootroot00000000000000.\" Generated with help2man. .TH SETZER "1" "" "@VERSION@" "User Commands" .SH NAME Setzer \- simple yet full-featured LaTeX editor .SH DESCRIPTION .SS "Usage:" .IP setzer [OPTIONS] .SS "Help Options:" .TP \fB\-h\fR, \fB\-\-help\fR Show help options .TP \fB\-\-help\-all\fR Show all help options .TP \fB\-\-help\-gapplication\fR Show GApplication options .TP \fB\-\-help\-gtk\fR Show GTK+ Options .SS "Application Options:" .TP \fB\-\-display\fR=\fI\,DISPLAY\/\fR X display to use Setzer-0.4.4/meson.build000066400000000000000000000026661420322575300151520ustar00rootroot00000000000000project( 'Setzer', version: '0.4.4', license: 'GPL-3.0-or-later', ) # configure folders prefix = get_option('prefix') bindir = get_option('bindir') datadir = get_option('datadir') pymdir = import('python').find_installation().get_install_dir() resourcesdir = join_paths(datadir, 'Setzer') localedir = get_option('localedir') mandir = get_option('mandir') config = configuration_data() config.set('setzer_version', meson.project_version()) config.set('localedir_path', join_paths(prefix, localedir)) config.set('resources_path', join_paths(prefix, resourcesdir, 'resources')) config.set('app_icons_path', join_paths(prefix, datadir, 'icons')) config_dev = config config_dev.set('localedir_path', '/tmp/usr/share/locale') # this is a workaround config_dev.set('resources_path', join_paths(meson.source_root(), 'data', 'resources')) config_dev.set('app_icons_path', join_paths(meson.source_root(), 'data')) # install translations subdir('po') # install python sources install_subdir( 'setzer', install_dir: pymdir, ) # install resources install_subdir( join_paths('data', 'resources'), install_dir: resourcesdir, ) # install program data subdir('data') # install binary configure_file( input: 'setzer.in', output: 'setzer', configuration: config, install: true, install_dir: bindir, ) # create devel binary configure_file( input: 'setzer.in', output: 'setzer_dev.py', configuration: config_dev, ) # run tests subdir('tests') Setzer-0.4.4/org.cvfosammmm.Setzer.json000066400000000000000000000210761420322575300201050ustar00rootroot00000000000000{ "app-id": "org.cvfosammmm.Setzer", "runtime": "org.gnome.Platform", "runtime-version": "3.38", "sdk": "org.gnome.Sdk", "sdk-extensions": ["org.freedesktop.Sdk.Extension.texlive"], "command": "setzer", "finish-args": [ "--share=ipc", "--socket=x11", "--socket=fallback-x11", "--socket=wayland", "--socket=pulseaudio", "--filesystem=host", "--filesystem=xdg-run/dconf", "--filesystem=~/.config/dconf:ro", "--env=PATH=/app/bin:/usr/bin:/app/bin/x86_64-linux", "--env=TEXMFCACHE=$XDG_CACHE_HOME", "--env=LC_ALL=C", "--env=TEXINPUTS=.:~/texmf/:", "--talk-name=ca.desrt.dconf", "--env=DCONF_USER_CONFIG_DIR=.config/dconf" ], "modules": [ { "name": "texlive", "buildsystem": "simple", "build-commands": [ "/usr/lib/sdk/texlive/install.sh" ] }, { "name": "gspell", "cleanup": [ "/bin" ], "sources": [ { "type": "archive", "url": "https://download.gnome.org/sources/gspell/1.8/gspell-1.8.4.tar.xz", "sha256": "cf4d16a716e813449bd631405dc1001ea89537b8cdae2b8abfb3999212bd43b4" } ] }, { "name": "boost", "buildsystem": "simple", "build-commands": [ "mkdir -p ${FLATPAK_DEST}/include", "mv boost ${FLATPAK_DEST}/include" ], "cleanup": [ "/include" ], "sources": [ { "type": "archive", "url": "https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.bz2", "sha256": "4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402" } ] }, { "name": "popplerdata", "no-autogen": true, "make-install-args": [ "prefix=/app" ], "sources": [ { "type": "archive", "url": "https://poppler.freedesktop.org/poppler-data-0.4.11.tar.gz", "sha256": "2cec05cd1bb03af98a8b06a1e22f6e6e1a65b1e2f3816cb3069bb0874825f08c" } ] }, { "name": "poppler", "buildsystem": "cmake-ninja", "config-opts": [ "-DCMAKE_BUILD_TYPE=release", "-DENABLE_QT5:BOOL=true", "-DCMAKE_INSTALL_LIBDIR:PATH=/app/lib" ], "sources": [ { "type": "archive", "url": "https://poppler.freedesktop.org/poppler-21.11.0.tar.xz", "sha256": "31b76b5cac0a48612fdd154c02d9eca01fd38fb8eaa77c1196840ecdeb53a584" } ] }, { "name": "perl", "no-autogen": true, "config-opts": ["-des", "-Duseshrplib"], "build-options": {"cflags": "-fPIC", "ldflags": "-fpic", "no-debuginfo": true}, "cleanup": ["/man", "*.pod", "*.h"], "sources": [ { "type": "archive", "url": "https://www.cpan.org/src/5.0/perl-5.32.0.tar.gz", "sha256": "efeb1ce1f10824190ad1cadbcccf6fdb8a5d37007d0100d2d9ae5f2b5900c0b4" }, { "type": "script", "dest-filename": "configure", "commands": ["exec ./configure.gnu $@"] } ] }, { "name": "python3-pdfminer.six", "buildsystem": "simple", "build-commands": [ "pip3 install --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pdfminer.six\"" ], "sources": [ { "type": "file", "url": "https://files.pythonhosted.org/packages/0f/86/e19659527668d70be91d0369aeaa055b4eb396b0f387a4f92293a20035bd/pycparser-2.20.tar.gz", "sha256": "2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0" }, { "type": "file", "url": "https://files.pythonhosted.org/packages/ee/2d/9cdc2b527e127b4c9db64b86647d567985940ac3698eeabc7ffaccb4ea61/chardet-4.0.0.tar.gz", "sha256": "0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa" }, { "type": "file", "url": "https://files.pythonhosted.org/packages/66/6a/98e023b3d11537a5521902ac6b50db470c826c682be6a8c661549cb7717a/cffi-1.14.4.tar.gz", "sha256": "1a465cbe98a7fd391d47dce4b8f7e5b921e6cd805ef421d04f5f66ba8f06086c" }, { "type": "file", "url": "https://files.pythonhosted.org/packages/d8/bb/45cb24e715d3058f92f703265e6ed396767b19fec6d19d1ea54e04b730b7/pdfminer.six-20201018.tar.gz", "sha256": "b9aac0ebeafb21c08bf65f2039f4b2c5f78a3449d0a41df711d72445649e952a" }, { "type": "file", "url": "https://files.pythonhosted.org/packages/14/10/6a9481890bae97da9edd6e737c9c3dec6aea3fc2fa53b0934037b35c89ea/sortedcontainers-2.3.0.tar.gz", "sha256": "59cc937650cf60d677c16775597c89a960658a09cf7c1a668f86e1e4464b10a1" }, { "type": "file", "url": "https://files.pythonhosted.org/packages/b7/82/f7a4ddc1af185936c1e4fa000942ffa8fb2d98cff26b75afa7b3c63391c4/cryptography-3.3.1.tar.gz", "sha256": "7e177e4bea2de937a584b13645cab32f25e3d96fc0bc4a4cf99c27dc77682be6" }, { "type": "file", "url": "https://files.pythonhosted.org/packages/82/2f/ef7afd98530d07c89deffec833b4b1a91a27a5db6d9f1a216599f5f0316e/setuptools-51.1.2.tar.gz", "sha256": "4fa149145ba5dcd4aaa89912ec92393a31170eaf17fe0268b1429538bad1f85a" }, { "type": "file", "url": "https://files.pythonhosted.org/packages/ed/46/e298a50dde405e1c202e316fa6a3015ff9288423661d7ea5e8f22f589071/wheel-0.36.2.tar.gz", "sha256": "e11eefd162658ea59a60a0f6c7d493a7190ea4b9a85e335b33489d9f17e0245e" } ] }, { "name": "python3-pycairo", "buildsystem": "simple", "build-commands": [ "pip3 install --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pycairo\"" ], "sources": [ { "type": "file", "url": "https://files.pythonhosted.org/packages/9d/6e/499d6a6db416eb3cdf0e57762a269908e4ab6638a75a90972afc34885b91/pycairo-1.20.0.tar.gz", "sha256": "5695a10cb7f9ae0d01f665b56602a845b0a8cb17e2123bfece10c2e58552468c" } ] }, { "name": "python3-pexpect", "buildsystem": "simple", "build-commands": [ "pip3 install --verbose --exists-action=i --no-index --find-links=\"file://${PWD}\" --prefix=${FLATPAK_DEST} \"pexpect\" --no-build-isolation" ], "sources": [ { "type": "file", "url": "https://files.pythonhosted.org/packages/39/7b/88dbb785881c28a102619d46423cb853b46dbccc70d3ac362d99773a78ce/pexpect-4.8.0-py2.py3-none-any.whl", "sha256": "0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937" }, { "type": "file", "url": "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", "sha256": "4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35" } ] }, { "name": "setzer", "buildsystem": "meson", "config-opts": [ "--buildtype=release" ], "sources": [ { "type": "dir", "path": "." } ] } ] } Setzer-0.4.4/po/000077500000000000000000000000001420322575300134145ustar00rootroot00000000000000Setzer-0.4.4/po/LINGUAS000066400000000000000000000000061420322575300144350ustar00rootroot00000000000000de it Setzer-0.4.4/po/POTFILES000066400000000000000000000254331420322575300145730ustar00rootroot00000000000000# generated on Mon 11 Jan 2021 01:35:19 PM UTC ./data/org.cvfosammmm.Setzer.appdata.xml.in ./setzer/app/autocomplete_provider/autocomplete_provider.py ./setzer/app/autocomplete_provider/__init__.py ./setzer/app/font_manager.py ./setzer/app/__init__.py ./setzer/app/service_locator.py ./setzer/app/settings.py ./setzer/dialogs/about/about.py ./setzer/dialogs/about/__init__.py ./setzer/dialogs/add_remove_packages/add_remove_packages.py ./setzer/dialogs/add_remove_packages/add_remove_packages_viewgtk.py ./setzer/dialogs/add_remove_packages/__init__.py ./setzer/dialogs/bibtex_wizard/bibtex_wizard.py ./setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py ./setzer/dialogs/bibtex_wizard/__init__.py ./setzer/dialogs/bibtex_wizard/pages/__init__.py ./setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py ./setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py ./setzer/dialogs/bibtex_wizard/pages/page.py ./setzer/dialogs/building_failed/building_failed.py ./setzer/dialogs/building_failed/__init__.py ./setzer/dialogs/build_save/build_save.py ./setzer/dialogs/build_save/__init__.py ./setzer/dialogs/close_confirmation/close_confirmation.py ./setzer/dialogs/close_confirmation/__init__.py ./setzer/dialogs/dialog_locator.py ./setzer/dialogs/dialog.py ./setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py ./setzer/dialogs/document_changed_on_disk/__init__.py ./setzer/dialogs/document_deleted_on_disk/document_deleted_on_disk.py ./setzer/dialogs/document_deleted_on_disk/__init__.py ./setzer/dialogs/document_wizard/document_wizard.py ./setzer/dialogs/document_wizard/document_wizard_viewgtk.py ./setzer/dialogs/document_wizard/__init__.py ./setzer/dialogs/document_wizard/pages/__init__.py ./setzer/dialogs/document_wizard/pages/page_article_settings.py ./setzer/dialogs/document_wizard/pages/page_beamer_settings.py ./setzer/dialogs/document_wizard/pages/page_book_settings.py ./setzer/dialogs/document_wizard/pages/page_document_class.py ./setzer/dialogs/document_wizard/pages/page_general_settings.py ./setzer/dialogs/document_wizard/pages/page_letter_settings.py ./setzer/dialogs/document_wizard/pages/page.py ./setzer/dialogs/document_wizard/pages/page_report_settings.py ./setzer/dialogs/include_bibtex_file/include_bibtex_file.py ./setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py ./setzer/dialogs/include_bibtex_file/__init__.py ./setzer/dialogs/include_latex_file/include_latex_file.py ./setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py ./setzer/dialogs/include_latex_file/__init__.py ./setzer/dialogs/__init__.py ./setzer/dialogs/interpreter_missing/__init__.py ./setzer/dialogs/interpreter_missing/interpreter_missing.py ./setzer/dialogs/keyboard_shortcuts/__init__.py ./setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py ./setzer/dialogs/open_document/__init__.py ./setzer/dialogs/open_document/open_document.py ./setzer/dialogs/open_session/__init__.py ./setzer/dialogs/open_session/open_session.py ./setzer/dialogs/preferences/__init__.py ./setzer/dialogs/preferences/pages/__init__.py ./setzer/dialogs/preferences/pages/page_build_system.py ./setzer/dialogs/preferences/pages/page_editor.py ./setzer/dialogs/preferences/pages/page_font_color.py ./setzer/dialogs/preferences/preferences.py ./setzer/dialogs/preferences/preferences_viewgtk.py ./setzer/dialogs/replace_confirmation/__init__.py ./setzer/dialogs/replace_confirmation/replace_confirmation.py ./setzer/dialogs/save_document/__init__.py ./setzer/dialogs/save_document/save_document.py ./setzer/dialogs/save_session/__init__.py ./setzer/dialogs/save_session/save_session.py ./setzer/dialogs/spellchecking/__init__.py ./setzer/dialogs/spellchecking_language/__init__.py ./setzer/dialogs/spellchecking_language/spellchecking_language.py ./setzer/dialogs/spellchecking/spellchecking.py ./setzer/document/bibtex/document_bibtex.py ./setzer/document/bibtex/__init__.py ./setzer/document/bibtex/parser/bibtex_parser.py ./setzer/document/bibtex/parser/__init__.py ./setzer/document/bibtex/state_manager/__init__.py ./setzer/document/bibtex/state_manager/state_manager_bibtex.py ./setzer/document/context_menu/context_menu_controller.py ./setzer/document/context_menu/context_menu_presenter.py ./setzer/document/context_menu/context_menu.py ./setzer/document/context_menu/context_menu_viewgtk.py ./setzer/document/context_menu/__init__.py ./setzer/document/document_controller.py ./setzer/document/document_presenter.py ./setzer/document/document.py ./setzer/document/document_switcher_item/document_switcher_item.py ./setzer/document/document_switcher_item/document_switcher_item_viewgtk.py ./setzer/document/document_switcher_item/__init__.py ./setzer/document/document_viewgtk.py ./setzer/document/gutter/gutter.py ./setzer/document/gutter/__init__.py ./setzer/document/__init__.py ./setzer/document/latex/autocomplete/autocomplete.py ./setzer/document/latex/autocomplete/autocomplete_viewgtk.py ./setzer/document/latex/autocomplete/__init__.py ./setzer/document/latex/autocomplete/session/__init__.py ./setzer/document/latex/autocomplete/session/session_begin_end.py ./setzer/document/latex/autocomplete/session/session_blank.py ./setzer/document/latex/autocomplete/session/session_default.py ./setzer/document/latex/build_system/builder/builder_backward_sync.py ./setzer/document/latex/build_system/builder/builder_build_biber.py ./setzer/document/latex/build_system/builder/builder_build_bibtex.py ./setzer/document/latex/build_system/builder/builder_build_glossaries.py ./setzer/document/latex/build_system/builder/builder_build_latex.py ./setzer/document/latex/build_system/builder/builder_build_makeindex.py ./setzer/document/latex/build_system/builder/builder_build.py ./setzer/document/latex/build_system/builder/builder_forward_sync.py ./setzer/document/latex/build_system/builder/__init__.py ./setzer/document/latex/build_system/build_system_controller.py ./setzer/document/latex/build_system/build_system_presenter.py ./setzer/document/latex/build_system/build_system.py ./setzer/document/latex/build_system/__init__.py ./setzer/document/latex/build_system/latex_log_parser/__init__.py ./setzer/document/latex/build_system/latex_log_parser/latex_log_parser.py ./setzer/document/latex/build_system/query/__init__.py ./setzer/document/latex/build_system/query/query.py ./setzer/document/latex/build_widget/build_widget.py ./setzer/document/latex/build_widget/build_widget_viewgtk.py ./setzer/document/latex/build_widget/__init__.py ./setzer/document/latex_cls/document_latex_cls.py ./setzer/document/latex_cls/__init__.py ./setzer/document/latex_cls/state_manager/__init__.py ./setzer/document/latex_cls/state_manager/state_manager_latex_cls.py ./setzer/document/latex/code_folding/code_folding_controller.py ./setzer/document/latex/code_folding/code_folding_gutter_object.py ./setzer/document/latex/code_folding/code_folding_presenter.py ./setzer/document/latex/code_folding/code_folding.py ./setzer/document/latex/code_folding/__init__.py ./setzer/document/latex/document_latex.py ./setzer/document/latex/__init__.py ./setzer/document/latex/parser/__init__.py ./setzer/document/latex/parser/latex_parser.py ./setzer/document/latex/preview/__init__.py ./setzer/document/latex/preview/paging_widget/__init__.py ./setzer/document/latex/preview/paging_widget/paging_widget.py ./setzer/document/latex/preview/preview_controller.py ./setzer/document/latex/preview/preview_layouter.py ./setzer/document/latex/preview/preview_page_renderer.py ./setzer/document/latex/preview/preview_presenter.py ./setzer/document/latex/preview/preview.py ./setzer/document/latex/preview/preview_viewgtk.py ./setzer/document/latex/preview/zoom_widget/__init__.py ./setzer/document/latex/preview/zoom_widget/zoom_widget.py ./setzer/document/latex/preview/zoom_widget/zoom_widget_viewgtk.py ./setzer/document/latex/state_manager/__init__.py ./setzer/document/latex/state_manager/state_manager_latex.py ./setzer/document/latex_sty/document_latex_sty.py ./setzer/document/latex_sty/__init__.py ./setzer/document/latex_sty/state_manager/__init__.py ./setzer/document/latex_sty/state_manager/state_manager_latex_sty.py ./setzer/document/line_numbers/__init__.py ./setzer/document/line_numbers/line_numbers.py ./setzer/document/search/__init__.py ./setzer/document/search/search.py ./setzer/document/search/search_viewgtk.py ./setzer/document/shortcutsbar/__init__.py ./setzer/document/shortcutsbar/shortcutsbar_presenter.py ./setzer/document/shortcutsbar/shortcutsbar_viewgtk.py ./setzer/document/source_buffer/source_buffer.py ./setzer/document/spellchecker/__init__.py ./setzer/document/spellchecker/spellchecker.py ./setzer/helpers/__init__.py ./setzer/helpers/observable.py ./setzer/helpers/popover_menu_builder.py ./setzer/helpers/timer.py ./setzer/workspace/actions/actions.py ./setzer/workspace/actions/__init__.py ./setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py ./setzer/workspace/bibtex_shortcutsbar/__init__.py ./setzer/workspace/build_log/build_log_controller.py ./setzer/workspace/build_log/build_log_presenter.py ./setzer/workspace/build_log/build_log.py ./setzer/workspace/build_log/build_log_viewgtk.py ./setzer/workspace/build_log/__init__.py ./setzer/workspace/document_chooser/document_chooser.py ./setzer/workspace/document_chooser/document_chooser_viewgtk.py ./setzer/workspace/document_chooser/__init__.py ./setzer/workspace/document_switcher/document_switcher_controller.py ./setzer/workspace/document_switcher/document_switcher_presenter.py ./setzer/workspace/document_switcher/document_switcher.py ./setzer/workspace/document_switcher/document_switcher_viewgtk.py ./setzer/workspace/document_switcher/__init__.py ./setzer/workspace/headerbar/headerbar_presenter.py ./setzer/workspace/headerbar/headerbar_viewgtk.py ./setzer/workspace/headerbar/__init__.py ./setzer/workspace/help_panel/help_panel_controller.py ./setzer/workspace/help_panel/help_panel_presenter.py ./setzer/workspace/help_panel/help_panel.py ./setzer/workspace/help_panel/help_panel_viewgtk.py ./setzer/workspace/help_panel/__init__.py ./setzer/workspace/__init__.py ./setzer/workspace/keyboard_shortcuts/__init__.py ./setzer/workspace/keyboard_shortcuts/shortcuts.py ./setzer/workspace/latex_shortcutsbar/__init__.py ./setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py ./setzer/workspace/others_shortcutsbar/__init__.py ./setzer/workspace/others_shortcutsbar/others_shortcutsbar_viewgtk.py ./setzer/workspace/preview_panel/__init__.py ./setzer/workspace/preview_panel/preview_panel_presenter.py ./setzer/workspace/preview_panel/preview_panel_viewgtk.py ./setzer/workspace/sidebar/__init__.py ./setzer/workspace/sidebar/sidebar.py ./setzer/workspace/sidebar/sidebar_viewgtk.py ./setzer/workspace/welcome_screen/__init__.py ./setzer/workspace/welcome_screen/welcome_screen.py ./setzer/workspace/welcome_screen/welcome_screen_viewgtk.py ./setzer/workspace/workspace_controller.py ./setzer/workspace/workspace_presenter.py ./setzer/workspace/workspace.py ./setzer/workspace/workspace_viewgtk.py Setzer-0.4.4/po/README.md000066400000000000000000000037601420322575300147010ustar00rootroot00000000000000# i18n ## Creating a new translation Run: (replace `lang` with the language code) ```bash rm -Rf builddir meson builddir --prefix=/tmp/usr ninja setzer-pot -C builddir cp po/setzer.pot po/lang.po ``` Now translate the strings in `lang.po` and add `lang` to the `LINGUAS` file. ## Updating a translation Run: ```bash rm -Rf builddir meson builddir --prefix=/tmp/usr ninja setzer-update-po -C builddir ``` Now translate the fuzzy strings in `lang.po` (remove the `#,fuzzy` lines). ## Testing a translation Currently it's not possible to test a translation without an installation in `usr`. Hopefully this will be fixed in a new version of meson (see [mesonbuild/meson#6973](https://github.com/mesonbuild/meson/issues/6973)). As a workaround, you can install Setzer with the prefix `/tmp/usr` and run the normal `setzer.dev` script. If you want to test Setzer in a certain language, you can set the `LANGUAGE=lang` environment variable. ## Before opening a PR - Please don't add any copyright in the first lines in the `.po` file (for copyright simplifications). - Check that the `POTFILES` file is up-to-date, you can check this by running `generate-potfiles.sh`. - Only commit files you actually translated, discard all other files. Don't commit the `setzer.pot` file. - Ensure that your translation has the correct format, you can check this by simply running the update command again, the only diff should be the date. - Ensure that the `.mo` file are generated without an error (`ninja setzer-gmo -C builddir`). - Please fill in the meta info in line 6+ according to this draft: ``` msgid "" msgstr "" "Project-Id-Version: setzer\n" "Report-Msgid-Bugs-To: https://github.com/cvfosammmm/Setzer/issues\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: lang\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" ``` Setzer-0.4.4/po/de.po000066400000000000000000002746261420322575300143650ustar00rootroot00000000000000# # Cvfosammmm , 2020. # Stephan Lachnit , 2020-2021. # msgid "" msgstr "" "Project-Id-Version: setzer\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-11 14:36+0100\n" "PO-Revision-Date: 2021-01-11 14:48+0100\n" "Last-Translator: Stephan Lachnit \n" "Language-Team: German <>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 3.38.0\n" #: data/org.cvfosammmm.Setzer.appdata.xml.in:8 msgid "Simple yet full-featured LaTeX editor" msgstr "LaTeX-Editor mit vielen nützlichen Funktionen" #: data/org.cvfosammmm.Setzer.appdata.xml.in:12 msgid "" "Setzer lets you Write LaTeX documents with an easy to use yet full-featured " "editor." msgstr "" "Schreiben Sie LaTeX-Dokumente in einem einfach zu bedienendem Editor, die " "viele nützliche Funktionen hat." #: data/org.cvfosammmm.Setzer.appdata.xml.in:13 msgid "Features include:" msgstr "Enthaltende Funktionen:" #: data/org.cvfosammmm.Setzer.appdata.xml.in:15 #: data/org.cvfosammmm.Setzer.appdata.xml.in:30 msgid "Buttons and shortcuts for many LaTeX elements and special characters" msgstr "Knöpfe und Tastenkürzel für viele LaTeX-Elemente und spezielle Zeichen" #: data/org.cvfosammmm.Setzer.appdata.xml.in:16 msgid "Comfortable document creation wizard" msgstr "Komfortabler Assistent zum Erstellen von Dokumenten" #: data/org.cvfosammmm.Setzer.appdata.xml.in:17 #: data/org.cvfosammmm.Setzer.appdata.xml.in:38 msgid "Dark mode" msgstr "Nachtmodus" #: data/org.cvfosammmm.Setzer.appdata.xml.in:18 #: data/org.cvfosammmm.Setzer.appdata.xml.in:42 msgid "Helpful error messages in the build log" msgstr "Hilfreiche Fehlermeldungen" #: data/org.cvfosammmm.Setzer.appdata.xml.in:19 msgid "Looks great on the Gnome desktop" msgstr "Sieht gut aus auf dem Gnome-Desktop" #: data/org.cvfosammmm.Setzer.appdata.xml.in:20 msgid "Good screen to content ratio" msgstr "Gutes Verhältnis von Fenstergröße zu Inhalt" #: data/org.cvfosammmm.Setzer.appdata.xml.in:21 msgid "Arguably the best .pdf viewer of any LaTeX editor" msgstr "Der vielleicht beste .pdf-Betrachter von allen LaTeX-Editoren" #: data/org.cvfosammmm.Setzer.appdata.xml.in:34 msgid "Document creation wizard" msgstr "Komfortabler Assistent zum Erstellen von Dokumenten" #: data/org.cvfosammmm.Setzer.appdata.xml.in:58 msgid "Support for links in .pdf preview, new welcome screen, ..." msgstr "Support for links in .pdf preview, new welcome screen, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:63 msgid "Build button now does save and build, performance improvements, ..." msgstr "Build button now does save and build, performance improvements, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:68 msgid "Performance improvements, ..." msgstr "Performance improvements, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:73 msgid "" "Save and build on F5, build in the directory of the LaTeX document being " "built, .cls and .sty file editing, ..." msgstr "" "Save and build on F5, build in the directory of the LaTeX document being " "built, .cls and .sty file editing, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:78 msgid "" "Zoom in editor view, show warning when document was deleted on disk, ..." msgstr "" "Zoom in editor view, show warning when document was deleted on disk, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:83 msgid "Set editor font, context menu in shortcuts bar, ..." msgstr "Set editor font, context menu in shortcuts bar, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:88 msgid "" "Add syntax themes from files, edit begin and end commands simultaneously, " "autocomplete improvements, ..." msgstr "" "Add syntax themes from files, edit begin and end commands simultaneously, " "autocomplete improvements, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:93 msgid "New syntax highlighting theme, full line indentation, ..." msgstr "New syntax highlighting theme, full line indentation, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:98 msgid "" "Tab autocomplete, dynamic citations autocomplete, more autocomplete " "improvements, ..." msgstr "" "Tab autocomplete, dynamic citations autocomplete, more autocomplete " "improvements, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:103 msgid "Biber support, Glossaries support, ..." msgstr "Biber support, Glossaries support, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:108 msgid "" "Use Latexmk with any LaTeX interpreter, invert colors in .pdf preview, ..." msgstr "" "Use Latexmk with any LaTeX interpreter, invert colors in .pdf preview, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:113 msgid "Redesigned help panel homepage, LaTeX package documentation links, ..." msgstr "Redesigned help panel homepage, LaTeX package documentation links, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:118 msgid "" "Italian translation, help panel with LaTeX documentation, open files from " "the file manager and command line, ..." msgstr "" "Italian translation, help panel with LaTeX documentation, open files from " "the file manager and command line, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:123 msgid "German translation, external .pdf viewer button, ..." msgstr "German translation, external .pdf viewer button, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:128 msgid "Bug fix" msgstr "Bug fix" #: data/org.cvfosammmm.Setzer.appdata.xml.in:133 msgid "" "Initial backward synctex support, improved synctex highlighting, search UI " "improvements, ..." msgstr "" "Initial backward synctex support, improved synctex highlighting, search UI " "improvements, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:138 msgid "Session management, highlight passages on build, ..." msgstr "Session management, highlight passages on build, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:143 msgid "" "Zoom level popover for the .pdf preview, preview should use far less memory " "now, ..." msgstr "" "Zoom level popover for the .pdf preview, preview should use far less memory " "now, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:148 msgid "Bug fixes" msgstr "Bug fixes" #: data/org.cvfosammmm.Setzer.appdata.xml.in:153 msgid "" "Enable embedded system commands, document modified on disk dialog, option to " "highlight current line, option to highlight matching brackets, ..." msgstr "" "Enable embedded system commands, document modified on disk dialog, option to " "highlight current line, option to highlight matching brackets, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:158 msgid "Add/remove packages dialog, improved HiDPI support, ..." msgstr "Add/remove packages dialog, improved HiDPI support, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:163 msgid "Keyboard shortcuts in popovers, more commands in shortcuts bar, ..." msgstr "Keyboard shortcuts in popovers, more commands in shortcuts bar, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:168 msgid "More commands in shortcuts bar, autocomplete now case insensitive, ..." msgstr "More commands in shortcuts bar, autocomplete now case insensitive, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:173 msgid "HiDPI support in .pdf preview, presistent code folding, ..." msgstr "HiDPI support in .pdf preview, presistent code folding, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:178 msgid "Initial code folding support, ..." msgstr "Initial code folding support, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:183 msgid "" "References to existing labels in autocomplete, persistent root document " "state, ..." msgstr "" "References to existing labels in autocomplete, persistent root document " "state, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:188 msgid "Initial spellchecking support, ..." msgstr "Initial spellchecking support, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:193 msgid "Simple BibTeX wizard, more bibliography features in LaTeX editor, ..." msgstr "Simple BibTeX wizard, more bibliography features in LaTeX editor, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:198 msgid "BibTeX support in the build system, edit BibTeX files, ..." msgstr "BibTeX support in the build system, edit BibTeX files, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:203 msgid "Editor settings in preferences dialog, ..." msgstr "Editor settings in preferences dialog, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:208 msgid "" "Build multiple times to resolve undefined references, show warnings in build " "log, ..." msgstr "" "Build multiple times to resolve undefined references, show warnings in build " "log, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:213 msgid "Indent multi-line inserts, ..." msgstr "Indent multi-line inserts, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:218 msgid "Multiple documents in build log, build in temporary folder, ..." msgstr "Multiple documents in build log, build in temporary folder, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:223 msgid "Root document function, ..." msgstr "Root document function, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:228 msgid "New app layout, animated wizard button, big code refactor, ..." msgstr "New app layout, animated wizard button, big code refactor, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:233 msgid "Set margins in wizard, improved icon, ..." msgstr "Set margins in wizard, improved icon, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:238 msgid "Initial release" msgstr "Initial release" #: setzer/app/autocomplete_provider/autocomplete_provider.py:47 #, python-brace-format msgid "Reference to '{label}'" msgstr "Verweis auf '{label}'" #: setzer/app/autocomplete_provider/autocomplete_provider.py:47 #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:63 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:276 msgid "Reference" msgstr "Verweis" #: setzer/app/autocomplete_provider/autocomplete_provider.py:48 #, python-brace-format msgid "Reference to page of '{label}'" msgstr "Verweis auf Seite von '{label}'" #: setzer/app/autocomplete_provider/autocomplete_provider.py:48 msgid "Page reference" msgstr "Verweis auf Seite" #: setzer/app/autocomplete_provider/autocomplete_provider.py:49 #, python-brace-format msgid "Reference to '{label}', with parantheses" msgstr "Verweis auf '{label}', mit Klammern" #: setzer/app/autocomplete_provider/autocomplete_provider.py:49 msgid "Reference with parantheses" msgstr "Verweis mit Klammern" #: setzer/app/autocomplete_provider/autocomplete_provider.py:51 #, python-brace-format msgid "Cite '{label}'" msgstr "Zitiere '{label}'" #: setzer/app/autocomplete_provider/autocomplete_provider.py:51 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:137 msgid "Citation" msgstr "Zitat" #: setzer/app/autocomplete_provider/autocomplete_provider.py:52 #, python-brace-format msgid "Cite '{label}' (abbreviated)" msgstr "Zitiere '{label}' (Kurzform)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:52 msgid "Citation (abbreviated)" msgstr "Zitat (Kurzform)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:53 #, python-brace-format msgid "Cite '{label}' (abbreviated with brackets)" msgstr "Zitiere '{label}' (Kurzform mit Klammern)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:53 msgid "Citation (abbreviated with brackets)" msgstr "Zitat (Kurzform mit Klammern)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:54 #, python-brace-format msgid "Cite '{label}' (detailed)" msgstr "Zitiere '{label}' (ausführlich)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:54 msgid "Citation (detailed)" msgstr "Zitat (ausführlich)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:55 #, python-brace-format msgid "Cite '{label}' (detailed with brackets)" msgstr "Zitiere '{label}' (ausführlich mit Klammern)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:55 msgid "Citation (detailed with brackets)" msgstr "Zitat (ausführlich mit Klammern)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:56 #, python-brace-format msgid "Cite '{label}' (alternative style 1)" msgstr "Zitiere '{label}' (Stilalternative 1)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:56 msgid "Citation (alternative style 1)" msgstr "Zitat (Stilalternative 1)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:57 #, python-brace-format msgid "Cite '{label}' (alternative style 2)" msgstr "Zitiere '{label}' (Stilalternative 2)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:57 msgid "Citation (alternative style 2)" msgstr "Zitat (Stilalternative 2)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:58 #, python-brace-format msgid "Cite '{label}' (author)" msgstr "Zitiere '{label}' (Autor)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:58 msgid "Citation (author)" msgstr "Zitat (Autor)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:59 #, python-brace-format msgid "Cite '{label}' (author detailed)" msgstr "Zitiere '{label}' (Autor, ausführlich)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:59 msgid "Citation (author detailed)" msgstr "Zitat (Autor, ausführlich)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:60 #, python-brace-format msgid "Cite '{label}' (year)" msgstr "Zitiere '{label}' (Jahr)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:60 msgid "Citation (year)" msgstr "Zitat (Jahr)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:61 #, python-brace-format msgid "Cite '{label}' (year with brackets)" msgstr "Zitiere '{label}' (Jahr mit Klammern)" #: setzer/app/autocomplete_provider/autocomplete_provider.py:61 msgid "Citation (year with brackets)" msgstr "Zitat (Jahr mit Klammern)" #: setzer/dialogs/about/about.py:44 msgid "Setzer is a LaTeX editor." msgstr "Setzer ist ein LaTeX-Editor." #: setzer/dialogs/add_remove_packages/add_remove_packages_viewgtk.py:51 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:95 msgid "Add / Remove Packages" msgstr "Pakete einbinden / entfernen" #: setzer/dialogs/add_remove_packages/add_remove_packages_viewgtk.py:77 msgid "Add Package" msgstr "Paket einbinden" #: setzer/dialogs/add_remove_packages/add_remove_packages_viewgtk.py:115 msgid "Remove Package" msgstr "Paket entfernen" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:42 msgid "Article in Journal" msgstr "Zeitschriftenartikel" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:42 msgid "" "An article in a journal, magazine, newspaper, or other periodical which " "forms a self-contained unit with its own title. The title of the periodical " "is given in the journaltitle field. If the issue has its own title " "in addition to the main title of the periodical, it goes in the " "issuetitle field. Note that editor and related fields " "refer to the journal while translator and related fields refer to " "the article." msgstr "" "Ein Artikel in einem Journal, einer Zeitung, oder einem anderwertigen " "Magazin, der eine abgeschlossene Einheit mit seinem eigenen Titel bildet. " "Der Titel der Zeitschrift ist im journaltitle Feld gegeben. Falls " "die Ausgabe einen eigenen Namen zusätlich zum Haupttitel des Magazins hat, " "gehört dieser in das issuetitle Feld. Beachte, dass editor " "und verwandte Felder sich auf das Magazin beziehen, während sich " "translator und verwandte Felder auf den Artikel beziehen." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:43 msgid "Book" msgstr "Buch" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:43 msgid "" "A single-volume book with one or more authors where the authors share credit " "for the work as a whole. This entry type also covers the function of the " "@inbook type of traditional BibTeX." msgstr "" "Ein einbandiges Buch mit einem oder mehreren Autoren, bei dem sich die " "Autoren die Annerkennung für das ganze Werk teilen. Dieser Dokumententyp " "schließt die Funktion vom @inbook type von traditionellem BibTeX mit ein." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:44 msgid "Multi-volume Book" msgstr "Mehrbändiges Buch" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:44 msgid "" "A multi-volume @book. For backwards compatibility, multi-volume books are " "also supported by the entry type @book. However, it is advisable to make use " "of the dedicated entry type @mvbook." msgstr "" "Ein mehrbändiges @book. Zur Abwärtskompatibilität sind mehrbändige Bücher " "auch unterstützt von Dokumententyp @book. Allerdings ist es empfehlenswert " "den dafür bestimmten Dokumententyp @mvbook zu verwenden." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:45 msgid "Part of a Book With Its Own Title" msgstr "Buchteil mit eigenem Titel" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:45 msgid "" "A part of a book which forms a self-contained unit with its own title. Note " "that the profile of this entry type is different from standard BibTeX." msgstr "" "Ein Teil eines Buches welches eine unabhängige Einheit mit seinem eigenen " "Titel formt. Beachte, dass das Profil dieses Dokumententypes verschieden zu " "standardmäßigem BibTeX ist." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:46 msgid "Book in Book" msgstr "Buch in Buch" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:46 msgid "" "This type is similar to @inbook but intended for works originally published " "as a stand-alone book. A typical example are books reprinted in the " "collected works of an author." msgstr "" "Dieser Typ ist ähnlich zu @inbook, allerdings stattdessen für Werke " "ursprünglich veröffentlicht als selbständiges Buch. Ein typisches Beispiel " "sind Bücher, die in einer Sammlung eines Autors veröffentlicht werden." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:47 msgid "Supplemental Material in a Book" msgstr "Ergänzungsmaterial in einem Buch" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:47 msgid "" "Supplemental material in a @book. This type is closely related to the " "@inbook entry type. While @inbook is primarily intended for a part of a book " "with its own title (e. g., a single essay in a collection of essays by the " "same author), this type is provided for elements such as prefaces, " "introductions, forewords, afterwords, etc. which often have a generic title " "only. Style guides may require such items to be formatted differently from " "other @inbook items. The standard styles will treat this entry type as an " "alias for @inbook." msgstr "" "Ergänzendes Material in einem @book. Dieser Typ is nahe verwandt mit dem " "@inbook Typ. Während @inbook hauptsächlich für einen Teil eines Buches mit " "einem eigenen Titel gedacht ist (z. B. ein einziger Essay in einer Sammlung " "von Essays vom selben Autor), ist dieser Typ vorgesehen für Elemente wie " "Vorworte, Einleitungen, Geleitworte, Nachworte, etc., welche oft nur einen " "generischen Namen haben. Stilistische Leitfäden können voraussetzen, dass " "solche Elemente anders als @inbook Elemente formatiert werden. Der " "gewöhnliche Stil wird diesen Typ wie ein Pseudonym für @inbook behandeln." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:48 msgid "Booklet" msgstr "Broschüre" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:48 msgid "" "A book-like work without a formal publisher or sponsoring institution. Use " "the field howpublished to supply publishing information in free " "format, if applicable. The field type may be useful as well." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:49 msgid "Single-volume Collection" msgstr "Einbändiger Sammelband" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:49 msgid "" "A single-volume collection with multiple, self-contained contributions by " "distinct authors which have their own title. The work as a whole has no " "overall author but it will usually have an editor." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:50 msgid "Multi-volume Collection" msgstr "Mehrbändiger Sammelband" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:50 msgid "" "A multi-volume @collection. For backwards compatibility, multi-volume " "collections are also supported by the entry type @collection. However, it is " "advisable to make use of the dedicated entry type @mvcollection." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:51 msgid "Article in a Collection" msgstr "Artikel in einer Sammlung" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:51 msgid "" "A contribution to a collection which forms a self-contained unit with a " "distinct author and title. The author refers to the title, " "the editor to the booktitle, i. e., the title of the " "collection." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:52 msgid "Supplemental Material in a Collection" msgstr "Ergänzungsmaterial in einem Sammelband" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:52 msgid "" "Supplemental material in a @collection. This type is similar to @suppbook " "but related to the @collection entry type. The standard styles will treat " "this entry type as an alias for @incollection." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:53 msgid "Data Set" msgstr "Datensatz" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:53 msgid "A data set or a similar collection of (mostly) raw data." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:54 msgid "Technical Manual" msgstr "Technisches Handbuch" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:54 msgid "" "Technical or other documentation, not necessarily in printed form. The " "author or editor is omissible under certain terms." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:55 msgid "Miscellaneous" msgstr "Sonstiges" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:55 msgid "" "A fallback type for entries which do not fit into any other category. Use " "the field howpublished to supply publishing information in free " "format, if applicable. The field type may be useful as well. author, editor, and year are omissible under certain terms." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:56 msgid "Online Resource" msgstr "Internetseite" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:56 msgid "" "An online resource. author, editor, and year are " "omissible under certain terms. This entry type is intended for sources such " "as web sites which are intrinsically online resources. Note that all entry " "types support the url field. For example, when adding an article " "from an online journal, it may be preferable to use the @article type and " "its url field." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:57 msgid "Patent" msgstr "Patent" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:57 msgid "" "A patent or patent request. The number or record token is given in the " "number field. Use the type field to specify the type and " "the location field to indicate the scope of the patent, if " "different from the scope implied by the type. Note that the " "location field is treated as a key list with this entry type." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:58 msgid "Complete Issue of a Periodical" msgstr "Vollständige Ausgabe einer Zeitschrift" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:58 msgid "" "An complete issue of a periodical, such as a special issue of a journal. The " "title of the periodical is given in the title field. If the issue " "has its own title in addition to the main title of the periodical, it goes " "in the issuetitle field. The editor is omissible under " "certain terms." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:59 msgid "Supplemental Material in a Periodical" msgstr "Ergänzungsmaterial in einer Zeitschrift" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:59 msgid "" "Supplemental material in a @periodical. This type is similar to @suppbook " "but related to the @periodical entry type. The role of this entry type may " "be more obvious if you bear in mind that the @article type could also be " "called @inperiodical. This type may be useful when referring to items such " "as regular columns, obituaries, letters to the editor, etc. which only have " "a generic title. Style guides may require such items to be formatted " "differently from articles in the strict sense of the word. The standard " "styles will treat this entry type as an alias for @article." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:60 msgid "Conference Proceedings" msgstr "Tagungsband einer Konferenz" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:60 msgid "" "A single-volume conference proceedings. This type is very similar to " "@collection. It supports an optional organization field which holds " "the sponsoring institution. The editor is omissible under certain " "terms." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:61 msgid "Multi-volume Proceedings Entry" msgstr "Mehrbändiger Tagungsband einer Konferenz" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:61 msgid "" "A multi-volume @proceedings entry. For backwards compatibility, multi-volume " "proceedings are also supported by the entry type @proceedings. However, it " "is advisable to make use of the dedicated entry type @mvproceedings." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:62 msgid "Article in Conference Proceedings" msgstr "Artikel in einem Tagungsband einer Konferenz" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:62 msgid "" "An article in a conference proceedings. This type is similar to " "@incollection. It supports an optional organization field." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:63 msgid "" "A single-volume work of reference such as an encyclopedia or a dictionary. " "This is a more specific variant of the generic @collection entry type. The " "standard styles will treat this entry type as an alias for @collection." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:64 msgid "Multi-volume Reference Entry" msgstr "Mehrbändiges Lexikon" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:64 msgid "" "A multi-volume @reference entry. The standard styles will treat this entry " "type as an alias for @mvcollection. For backwards compatibility, multi-" "volume references are also supported by the entry type @reference. However, " "it is advisable to make use of the dedicated entry type @mvreference." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:65 msgid "Article in a Reference" msgstr "Lexikonartikel" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:65 msgid "" "An article in a work of reference. This is a more specific variant of the " "generic @incollection entry type. The standard styles will treat this entry " "type as an alias for @incollection." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:66 msgid "Report" msgstr "Forschungsbericht" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:66 msgid "" "A technical report, research report, or white paper published by a " "university or some other institution. Use the type field to specify " "the type of report. The sponsoring institution goes in the institution field." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:67 msgid "Software" msgstr "Software" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:67 msgid "" "Computer software. The standard styles will treat this entry type as an " "alias for @misc." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:68 msgid "Thesis" msgstr "Studienarbeit" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:68 msgid "" "A thesis written for an educational institution to satisfy the requirements " "for a degree. Use the type field to specify the type of thesis." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:69 msgid "Unpublished" msgstr "Unveröffentlicht" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:69 msgid "" "A work with an author and a title which has not been formally published, " "such as a manuscript or the script of a talk. Use the fields " "howpublished and note to supply additional information in " "free format, if applicable." msgstr "" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:159 msgid "Create a new BibTeX Entry" msgstr "Neuen BibTeX Eintrag erstellen" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:159 msgid "Add BibTeX Entry" msgstr "BibTeX Eintrag hinzufügen" #: setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py:59 #: setzer/dialogs/building_failed/building_failed.py:49 #: setzer/dialogs/build_save/build_save.py:50 #: setzer/dialogs/close_confirmation/close_confirmation.py:119 #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:60 #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:109 #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:94 #: setzer/dialogs/interpreter_missing/interpreter_missing.py:53 #: setzer/dialogs/open_document/open_document.py:46 #: setzer/dialogs/open_session/open_session.py:46 #: setzer/dialogs/preferences/pages/page_font_color.py:339 #: setzer/dialogs/preferences/pages/page_font_color.py:384 #: setzer/dialogs/replace_confirmation/replace_confirmation.py:49 #: setzer/dialogs/save_document/save_document.py:57 #: setzer/dialogs/save_session/save_session.py:66 msgid "_Cancel" msgstr "_Abbrechen" #: setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py:61 #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:62 msgid "_Back" msgstr "_Zurück" #: setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py:64 #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:65 msgid "_Next" msgstr "_Weiter" #: setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py:67 #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:68 msgid "_Create" msgstr "_Erstellen" #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:62 #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:63 msgid "Choose a document type" msgstr "Dokumententyp wählen" #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:63 #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:102 #: setzer/dialogs/document_wizard/pages/page_article_settings.py:104 #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:122 #: setzer/dialogs/document_wizard/pages/page_book_settings.py:104 #: setzer/dialogs/document_wizard/pages/page_document_class.py:60 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:88 #: setzer/dialogs/document_wizard/pages/page_letter_settings.py:90 #: setzer/dialogs/document_wizard/pages/page.py:50 #: setzer/dialogs/document_wizard/pages/page_report_settings.py:104 msgid "Step" msgstr "Schritt" #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:90 #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:108 msgid "Required fields" msgstr "Notwendige Felder" #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:97 #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:121 msgid "Optional fields" msgstr "Optionale Felder" #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:102 msgid "Entry fields" msgstr "Felder ausfüllen" #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:123 msgid "Insert empty optional fields" msgstr "Leere optionale Felder einfügen" #: setzer/dialogs/building_failed/building_failed.py:44 msgid "Something went wrong." msgstr "Irgendetwas ist schief gelaufen." #: setzer/dialogs/building_failed/building_failed.py:45 #, python-brace-format msgid "" "The build process ended unexpectedly returning \"{error_message}\".\n" "\n" "To configure your build system go to Preferences." msgstr "" "Der Erstellungsprozess wurde unerwartet beendet, Ausgabe: " "\"{error_message}\".\n" "\n" "Sie können das Erstellungssystem in den Einstellungen konfigurieren." #: setzer/dialogs/building_failed/building_failed.py:49 #: setzer/dialogs/interpreter_missing/interpreter_missing.py:53 msgid "_Go to Preferences" msgstr "_Einstellungen" #: setzer/dialogs/build_save/build_save.py:47 #, python-brace-format msgid "Document »{document}« has no filename." msgstr "Dokument »{document}« hat keinen Dateinamen." #: setzer/dialogs/build_save/build_save.py:48 msgid "" "Please save your document to a file, so the build system knows where to put " "the .pdf (it will be in the same folder as your document)." msgstr "" "Bitte speichern Sie das Dokument in einer Datei, damit Setzer weißt wo die " "erstellte .pdf-Datei gespeichert werden soll (sie wird im gleichen Ordner " "wie das Dokument gespeichert)." #: setzer/dialogs/build_save/build_save.py:50 msgid "_Save document now" msgstr "_Speichern" #: setzer/dialogs/close_confirmation/close_confirmation.py:86 #, python-brace-format msgid "Document »{document}« has unsaved changes." msgstr "Dokument »{document}« hat ungespeicherte Änderungen." #: setzer/dialogs/close_confirmation/close_confirmation.py:87 msgid "If you close without saving, these changes will be lost." msgstr "Wenn Sie schließen ohne zu speichern, gehen alle Änderungen verloren." #: setzer/dialogs/close_confirmation/close_confirmation.py:90 #, python-brace-format msgid "" "There are {amount} documents with unsaved changes.\n" "Save changes before closing?" msgstr "" "Es gibt {amount} Dokumente mit ungespeicherten Änderungen.\n" "Änderungen vor dem Schließen speichern?" #: setzer/dialogs/close_confirmation/close_confirmation.py:91 msgid "Select the documents you want to save:" msgstr "Wählen Sie die Dokumente aus die Sie speichern wollen:" #: setzer/dialogs/close_confirmation/close_confirmation.py:113 msgid "If you close without saving, all changes will be lost." msgstr "" "Wenn Sie die Datei schließen ohne zu speichern, gehen alle ungespeicherten " "Änderungen verloren." #: setzer/dialogs/close_confirmation/close_confirmation.py:119 msgid "Close _without Saving" msgstr "Schließen _ohne Speichern" #: setzer/dialogs/close_confirmation/close_confirmation.py:119 #: setzer/dialogs/save_document/save_document.py:57 #: setzer/dialogs/save_document/save_document.py:65 #: setzer/dialogs/save_session/save_session.py:66 #: setzer/dialogs/save_session/save_session.py:74 msgid "_Save" msgstr "_Speichern" #: setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py:49 #, python-brace-format msgid "Document »{document}« has changed on disk." msgstr "Dokument »{document}« wurde auf der Festplatte geändert." #: setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py:50 msgid "Should Setzer reload it now?" msgstr "Soll Setzer es jetzt neu laden?" #: setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py:52 msgid "_Keep the current Version" msgstr "_Aktuelle Version behalten" #: setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py:52 msgid "_Reload from Disk" msgstr "_Neu laden" #: setzer/dialogs/document_deleted_on_disk/document_deleted_on_disk.py:43 #, python-brace-format msgid "Document »{document}« was deleted from disk or moved." msgstr "Dokument »{document}« wurde auf der Festplatte geändert." #: setzer/dialogs/document_deleted_on_disk/document_deleted_on_disk.py:44 msgid "" "If you close it or close Setzer without saving, this document will be lost." msgstr "Wenn Sie schließen ohne zu speichern, gehen alle Änderungen verloren." #: setzer/dialogs/document_deleted_on_disk/document_deleted_on_disk.py:46 msgid "Ok" msgstr "" #: setzer/dialogs/document_wizard/document_wizard.py:247 msgid "" "% NOTE: The content of your document has been commented out\n" "% by the wizard. Just do a CTRL+Z (undo) to put it back in\n" "% or remove the \"%\" before each line you want to keep.\n" "% You can remove this note as well.\n" "% \n" msgstr "" "% HINWEIS: Der Inhalt Ihres Dokuments wurde vom Assistenten\n" "% auskommentiert. Drücken Sie STRG+Z (rückgängig) um ihn\n" "% wieder einzufügen, oder entfernen Sie die \"%\" vor jeder\n" "% Zeile, die Sie behalten möchten.\n" "% Sie können diesen Hinweis ebenfalls entfernen.\n" "% \n" #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:57 #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:80 msgid "Create a template document" msgstr "Dokumentenvorlage erstellen" #: setzer/dialogs/document_wizard/pages/page_article_settings.py:103 #: setzer/dialogs/document_wizard/pages/page_article_settings.py:104 msgid "Article settings" msgstr "Article Einstellungen" #: setzer/dialogs/document_wizard/pages/page_article_settings.py:111 #: setzer/dialogs/document_wizard/pages/page_book_settings.py:111 #: setzer/dialogs/document_wizard/pages/page_report_settings.py:111 msgid "Two-column layout" msgstr "Zweispaltiges Seitenlayout" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:121 #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:122 msgid "Beamer settings" msgstr "Beamer Einstellungen" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:128 msgid "Themes" msgstr "Themes" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:150 #: setzer/dialogs/document_wizard/pages/page_book_settings.py:106 #: setzer/dialogs/document_wizard/pages/page_report_settings.py:106 #: setzer/dialogs/preferences/pages/page_build_system.py:142 msgid "Options" msgstr "Optionen" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:155 msgid "Show navigation buttons" msgstr "Navigationselemente einbinden" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:156 msgid "Align content to the top of pages" msgstr "Inhalt am oberen Seitenende ausrichten" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:158 msgid "(\"t\" option, it's centered by default)" msgstr "(\"t\" Option, der Inhalt ist sonst zentriert)" #: setzer/dialogs/document_wizard/pages/page_book_settings.py:103 #: setzer/dialogs/document_wizard/pages/page_book_settings.py:104 msgid "Book settings" msgstr "Book Einstellungen" #: setzer/dialogs/document_wizard/pages/page_document_class.py:59 #: setzer/dialogs/document_wizard/pages/page_document_class.py:60 msgid "Choose a document class" msgstr "Dokumentenklasse wählen" #: setzer/dialogs/document_wizard/pages/page_document_class.py:81 msgid "" "Article: For articles in scientific journals, term papers, handouts, " "short reports, ...\n" "\n" "This class on its own is pretty simplistic and is often used as a starting " "point for more custom layouts." msgstr "" "Article: Für Artikel in wissenschaftlichen Zeitschriften, " "Hausarbeiten, Handouts, kurze Berichte, ...\n" "\n" "Diese Klasse ist an sich ziemlich einfach und wird oft als Ausgangspunkt für " "kompliziertere Layouts benutzt." #: setzer/dialogs/document_wizard/pages/page_document_class.py:82 msgid "Book: For actual books containing many chapters and sections." msgstr "" "Book: Für eigentliche Bücher mit mehreren Kapiteln und Abschnitten." #: setzer/dialogs/document_wizard/pages/page_document_class.py:83 msgid "" "Report: For longer reports and articles containing more than one " "chapter, small books, thesis." msgstr "" "Report: Für längere Berichte und Artikel mit mehr als einem Kapitel, " "kurze Bücher, Abschlussarbeiten." #: setzer/dialogs/document_wizard/pages/page_document_class.py:84 msgid "Letter: For writing letters." msgstr "Letter: Zum Schreiben von Briefen." #: setzer/dialogs/document_wizard/pages/page_document_class.py:85 msgid "" "Beamer: A class for making presentation slides with LaTeX.\n" "\n" "There are many predefined presentation styles." msgstr "" "Beamer: Für Präsentationsfolien.\n" "\n" "Sie können aus vielen vordefinierten Stilen auswählen." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:87 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:88 msgid "General document settings" msgstr "Allgemeine Einstellungen" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:92 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:111 msgid "Title" msgstr "Titel" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:97 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:110 msgid "Author" msgstr "Autor" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:106 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:112 msgid "Date" msgstr "Datum" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:120 msgid "Packages" msgstr "Pakete" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:131 msgid "AMS math packages" msgstr "AMS Pakete" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:158 msgid "" "AMS packages: provide mathematical symbols, math-related " "environments, ..." msgstr "AMS Pakete: mathematische Symbole, Umgebungen, ..." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:158 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:159 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:160 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:161 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:162 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:163 #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:80 #: setzer/dialogs/preferences/pages/page_build_system.py:178 msgid "recommended" msgstr "empfohlen" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:159 msgid "contains symbols to be used in textmode." msgstr "enthält Symbole für den Textmodus." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:160 msgid "include graphics in your document." msgstr "Grafiken in das Dokument einfügen." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:161 msgid "foreground and background color." msgstr "Vorder- und Hintergrundfarbe." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:162 msgid "enables colored text." msgstr "ermöglicht farbigen Text." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:163 msgid "type urls with the \\url{..} command without escaping them." msgstr "URLs schreiben mit dem \\url{..} Befehl." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:164 msgid "create hyperlinks within your document." msgstr "Hyperlinks einfügen." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:165 msgid "" "define theorem environments (like \"definition\", \"lemma\", ...) with " "custom styling." msgstr "" "mathematische Satztypen definieren (wie \"Definition\", \"Lemma\", ...) und " "deren Aussehen festlegen." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:166 msgid "provides the \\listing environment for embedding programming code." msgstr "stellt die \\listings Umgebung für eingebetteten Code bereit." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:167 msgid "create a glossary for your document." msgstr "Glossar erstellen." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:168 msgid "paragraphs without indentation." msgstr "Paragraphen ohne Zeileneinzug." #: setzer/dialogs/document_wizard/pages/page_letter_settings.py:89 #: setzer/dialogs/document_wizard/pages/page_letter_settings.py:90 msgid "Letter settings" msgstr "Letter Einstellungen" #: setzer/dialogs/document_wizard/pages/page.py:56 msgid "Page format" msgstr "Ausrichtung" #: setzer/dialogs/document_wizard/pages/page.py:69 msgid "Portrait" msgstr "Hochformat" #: setzer/dialogs/document_wizard/pages/page.py:70 msgid "Landscape" msgstr "Querformat" #: setzer/dialogs/document_wizard/pages/page.py:75 msgid "Page margins" msgstr "Seitenränder" #: setzer/dialogs/document_wizard/pages/page.py:79 msgid "Use default margins" msgstr "vorgegebene Werte nutzen" #: setzer/dialogs/document_wizard/pages/page.py:107 msgid "All values are in cm (1 inch ≅ 2.54 cm)." msgstr "Alle Werte sind in cm (1 inch ≅ 2.54 cm)." #: setzer/dialogs/document_wizard/pages/page.py:112 msgid "Font size" msgstr "Schriftgröße" #: setzer/dialogs/document_wizard/pages/page_report_settings.py:103 #: setzer/dialogs/document_wizard/pages/page_report_settings.py:104 msgid "Report settings" msgstr "Report Einstellungen" #: setzer/dialogs/include_bibtex_file/include_bibtex_file.py:95 msgid "BibTeX Files" msgstr "BibTeX-Dateien" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:48 msgid "BibTeX file to include" msgstr "BibTeX-Datei" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:55 msgid "Select a BibTeX File" msgstr "BibTeX-Datei auswählen" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:58 msgid "Bibliography style" msgstr "Bibliographie-Stil" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:74 msgid "Show bibliography styles for the 'natbib' package" msgstr "Bibliographie-Stile für das 'natbib'-Paket anzeigen" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:107 msgid "Include BibTeX file" msgstr "BibTeX-Dokument einbinden" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:112 #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:97 msgid "_Include" msgstr "_Einbinden" #: setzer/dialogs/include_latex_file/include_latex_file.py:33 msgid "Relative Path" msgstr "Relativer Pfad" #: setzer/dialogs/include_latex_file/include_latex_file.py:33 msgid "Absolute Path" msgstr "Absoluter Pfad" #: setzer/dialogs/include_latex_file/include_latex_file.py:68 msgid "LaTeX Files" msgstr "LaTeX-Dateien" #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:48 msgid "LaTeX file to include" msgstr "LaTeX-Datei" #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:54 msgid "Select a LaTeX File" msgstr "LaTeX-Datei auswählen" #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:57 msgid "Type of path to included file" msgstr "Pfad-Typ" #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:80 msgid "" "Relative Path: Set the path relative to the main document. This is " "useful when the included file is in the same folder as the main document and " "you want to move around both of them together." msgstr "" "Relativer Pfad: setze den Pfad relativ zum Hauptdokument. Das ist " "nützlich wenn die eingebundene Datei im selben Ordner liegt wie das " "Hauptdokument und Sie ggf. beide Dateien zusammen verschieben möchten." #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:80 msgid "" "Absolute Path: Specify the absolute location of the included file in " "your filesystem." msgstr "Absoluter Pfad: absolute Position im Dateisystem." #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:92 msgid "Include LaTeX file" msgstr "LaTeX-Dokument einbinden" #: setzer/dialogs/interpreter_missing/interpreter_missing.py:46 msgid "LateX Interpreter is missing." msgstr "LaTeX-Interpreter ist nicht vorhanden." #: setzer/dialogs/interpreter_missing/interpreter_missing.py:47 #, python-brace-format msgid "" "Setzer is configured to use »{interpreter}« which seems to be missing on " "this system.\n" "\n" "To choose a different interpreter go to Preferences.\n" "\n" "For instructions on installing LaTeX see https://en.wikibooks.org/wiki/LaTeX/Installation" msgstr "" "Setzer ist konfiguriert »{interpreter}« zu verwenden, welches nicht auf dem " "System vorhanden zu sein scheint.\n" "\n" "Ein anderer LaTeX-Interpreter lässt sich in den Einstellungen auswählen.\n" "\n" "Hilfe zur Installation von LaTeX gibt es auf https://de.wikibooks.org/wiki/LaTeX/" "_Installation." #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:35 msgid "Documents" msgstr "Dokumente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:36 msgid "Create new document" msgstr "Neues Dokument anlegen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:37 #: setzer/workspace/headerbar/headerbar_viewgtk.py:52 #: setzer/workspace/headerbar/headerbar_viewgtk.py:60 msgid "Open a document" msgstr "Dokument öffnen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:38 msgid "Show recent documents" msgstr "Zuletzt geöffnete Dokumente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:39 #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:54 msgid "Show open documents" msgstr "Geöffnete Dokumente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:40 msgid "Switch to the next open document" msgstr "Zum nächsten geöffneten Dokument springen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:41 #: setzer/workspace/headerbar/headerbar_viewgtk.py:92 msgid "Save the current document" msgstr "Aktuelles Dokument speichern" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:42 msgid "Save the document with a new filename" msgstr "Dokument unter neuem Dateinamen speichern" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:43 msgid "Close the current document" msgstr "Aktuelles Dokument schließen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:46 #: setzer/workspace/headerbar/headerbar_viewgtk.py:131 #: setzer/workspace/headerbar/headerbar_viewgtk.py:174 msgid "Tools" msgstr "Werkzeuge" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:47 #: setzer/document/latex/build_widget/build_widget_viewgtk.py:37 msgid "Save and build .pdf-file from document" msgstr "" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:48 msgid "Build .pdf-file from document" msgstr ".pdf-Datei erstellen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:52 msgid "Show help panel" msgstr "Hilfe anzeigen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:53 msgid "Spellchecking dialog" msgstr "Rechtschreibung prüfen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:54 msgid "Show build log" msgstr "Fehler und Warnungen anzeigen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:55 msgid "Show side panel" msgstr "Seitenleiste anzeigen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:56 msgid "Show preview panel" msgstr "Vorschau anzeigen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:57 msgid "Close Application" msgstr "Anwendung beenden" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:60 #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:64 msgid "Find and Replace" msgstr "Suchen und Ersetzen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:61 #: setzer/workspace/help_panel/help_panel_viewgtk.py:60 msgid "Find" msgstr "Suchen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:62 msgid "Find the next match" msgstr "Nächster Treffer" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:63 msgid "Find the previous match" msgstr "Vorheriger Treffer" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:67 #: setzer/document/context_menu/context_menu_viewgtk.py:71 msgid "Zoom" msgstr "Zoom" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:68 #: setzer/document/latex/preview/zoom_widget/zoom_widget_viewgtk.py:34 msgid "Zoom in" msgstr "Vergrößern" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:69 #: setzer/document/latex/preview/zoom_widget/zoom_widget_viewgtk.py:30 msgid "Zoom out" msgstr "Verkleinern" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:70 msgid "Reset zoom" msgstr "Zurücksetzen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:74 msgid "Copy selected text to clipboard" msgstr "Markierten Text kopieren" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:75 msgid "Cut selected text to clipboard" msgstr "Markierten Text ausschneiden" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:76 msgid "Paste text from clipboard" msgstr "Text aus der Zwischenablage einfügen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:79 msgid "Undo and Redo" msgstr "Rückgängig und Wiederherstellen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:80 msgid "Undo previous text edit" msgstr "Letzten Befehl rückgängig machen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:81 msgid "Redo previous text edit" msgstr "Befehl wiederherstellen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:84 msgid "Selection" msgstr "Textauswahl" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:85 msgid "Select all text" msgstr "Alles auswählen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:88 msgid "Editing" msgstr "Bearbeiten" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:89 msgid "Toggle insert / overwrite" msgstr "Einfügen / Überschreiben umschalten" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:90 msgid "Move current line up" msgstr "Aktuelle Zeile nach oben verschieben" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:91 msgid "Move current line down" msgstr "Aktuelle Zeile nach unten verschieben" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:92 msgid "Move current word left" msgstr "Aktuelles Wort nach links verschieben" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:93 msgid "Move current word right" msgstr "Aktuelles Wort nach rechts verschieben" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:94 msgid "Increment number at cursor" msgstr "Zahl am Cursor erhöhen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:95 msgid "Decrement number at cursor" msgstr "Zahl am Cursor verringern" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:98 msgid "LaTeX Shortcuts" msgstr "LaTeX" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:99 msgid "Comment / Uncomment current line(s)" msgstr "Zeile aus- / entkommentieren" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:100 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:226 msgid "New Line" msgstr "Zeilenumbruch" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:101 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:74 msgid "Bold Text" msgstr "Fett" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:102 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:65 msgid "Italic Text" msgstr "Kursiv" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:103 msgid "Underlined Text" msgstr "Unterstrichen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:104 msgid "Typewriter Text" msgstr "Schreibmaschine" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:105 msgid "Emphasized Text" msgstr "Hervorgehoben" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:106 msgid "Quotation Marks" msgstr "Anführungszeichen" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:107 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:258 msgid "List Item" msgstr "Listeneintrag" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:108 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:181 msgid "Environment" msgstr "Umgebung" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:111 msgid "Math Shortcuts" msgstr "Mathematik" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:112 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:324 msgid "Inline Math Section" msgstr "Math. Umgebung (inline)" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:113 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:325 msgid "Display Math Section" msgstr "Math. Umgebung (display)" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:114 msgid "Equation" msgstr "Gleichung" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:115 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:328 msgid "Subscript" msgstr "Tiefgestellt" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:116 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:329 msgid "Superscript" msgstr "Hochgestellt" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:117 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:330 msgid "Fraction" msgstr "Bruchzahl (\\frac)" #: setzer/dialogs/open_document/open_document.py:46 #: setzer/dialogs/open_document/open_document.py:52 #: setzer/dialogs/open_session/open_session.py:46 #: setzer/dialogs/open_session/open_session.py:52 msgid "_Open" msgstr "Öffnen" #: setzer/dialogs/open_document/open_document.py:47 #: setzer/workspace/headerbar/headerbar_viewgtk.py:48 #: setzer/workspace/headerbar/headerbar_viewgtk.py:59 msgid "Open" msgstr "Öffnen" #: setzer/dialogs/open_document/open_document.py:62 msgid "LaTeX and BibTeX Files" msgstr "LaTeX- und BibTeX-Dateien" #: setzer/dialogs/open_session/open_session.py:47 msgid "Load Session" msgstr "Sitzung wiederherstellen" #: setzer/dialogs/open_session/open_session.py:59 msgid "Setzer Session" msgstr "Setzer Sitzung" #: setzer/dialogs/preferences/pages/page_build_system.py:115 msgid "LaTeX Interpreter" msgstr "LaTeX-Interpreter" #: setzer/dialogs/preferences/pages/page_build_system.py:122 msgid "" "No LaTeX interpreter found. For instructions on installing LaTeX see https://en.wikibooks." "org/wiki/LaTeX/Installation" msgstr "" "Kein LaTeX-Interpreter gefunden. Informationen zur Installation von LaTeX " "finden Sie auf https://en.wikibooks.org/wiki/LaTeX/Installation" #: setzer/dialogs/preferences/pages/page_build_system.py:147 msgid "" "Automatically remove helper files (.log, .dvi, ...) after building .pdf." msgstr "" "Hilfsdateien (.log, .dvi, ...) nach der .pdf-Erstellung automatisch " "entfernen." #: setzer/dialogs/preferences/pages/page_build_system.py:149 msgid "Use Latexmk" msgstr "Latexmk verwenden." #: setzer/dialogs/preferences/pages/page_build_system.py:153 msgid "Automatically show build log .." msgstr "Beim Erstellen automatisch Fehler und Warnungen anzeigen .." #: setzer/dialogs/preferences/pages/page_build_system.py:158 msgid ".. only when errors occurred." msgstr ".. nur wenn Fehler auftreten." #: setzer/dialogs/preferences/pages/page_build_system.py:159 msgid ".. on errors and warnings." msgstr ".. bei Fehlern und Warnungen." #: setzer/dialogs/preferences/pages/page_build_system.py:160 msgid ".. on errors, warnings and badboxes." msgstr ".. bei Fehlern, Warnungen und Badboxen." #: setzer/dialogs/preferences/pages/page_build_system.py:166 msgid "Embedded system commands" msgstr "Systembefehle einbetten" #: setzer/dialogs/preferences/pages/page_build_system.py:173 msgid "" "Warning: enable this only if you have to. It can cause security problems " "when building files from untrusted sources." msgstr "" "Vorsicht: nur aktivieren, wenn es sein muss. Es kann zu Sicherheitsproblemen " "mit Dateien aus nicht vertrauenswürdiger Quelle kommen." #: setzer/dialogs/preferences/pages/page_build_system.py:178 msgid "Disable" msgstr "Deaktiviert" #: setzer/dialogs/preferences/pages/page_build_system.py:179 msgid "Enable restricted \\write18{SHELL COMMAND}" msgstr "Eingeschränkt aktiviertes \\write18{SHELL COMMAND}" #: setzer/dialogs/preferences/pages/page_build_system.py:180 msgid "Fully enable \\write18{SHELL COMMAND}" msgstr "Vollständig aktiviertes \\write18{SHELL COMMAND}" #: setzer/dialogs/preferences/pages/page_editor.py:65 msgid "Tab Stops" msgstr "Tabulatoren" #: setzer/dialogs/preferences/pages/page_editor.py:70 msgid "Insert spaces instead of tabs" msgstr "Leerzeichen statt Tabulatoren einfügen" #: setzer/dialogs/preferences/pages/page_editor.py:74 msgid "Set Tab Width:" msgstr "Tabulatorenbreite" #: setzer/dialogs/preferences/pages/page_editor.py:85 msgid "Line Numbers" msgstr "Zeilennummern" #: setzer/dialogs/preferences/pages/page_editor.py:90 msgid "Show line numbers" msgstr "Zeilennummern anzeigen" #: setzer/dialogs/preferences/pages/page_editor.py:94 msgid "Line Wrapping" msgstr "Zeilenumbruch" #: setzer/dialogs/preferences/pages/page_editor.py:99 msgid "Enable line wrapping" msgstr "Zeilenumbruch aktivieren" #: setzer/dialogs/preferences/pages/page_editor.py:103 msgid "Code Folding" msgstr "Code-Folding" #: setzer/dialogs/preferences/pages/page_editor.py:108 msgid "Enable code folding" msgstr "Code-Folding aktivieren" #: setzer/dialogs/preferences/pages/page_editor.py:112 msgid "Highlighting" msgstr "Hervorhebung" #: setzer/dialogs/preferences/pages/page_editor.py:117 msgid "Highlight current line" msgstr "Aktuelle Zeile hervorheben" #: setzer/dialogs/preferences/pages/page_editor.py:119 msgid "Highlight matching brackets" msgstr "Übereinstimmende Klammern hervorheben" #: setzer/dialogs/preferences/pages/page_font_color.py:212 msgid "Font" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:219 msgid "Use the system fixed width font (" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:226 msgid "Set Editor Font:" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:240 msgid "Light Color Scheme" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:247 msgid "Dark Color Scheme" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:272 msgid "Manage Color Schemes" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:288 msgid "Preview" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:339 #: setzer/dialogs/preferences/pages/page_font_color.py:345 msgid "_Add Scheme" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:340 msgid "Add Scheme" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:352 msgid "Color Scheme Files" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:380 #, python-brace-format msgid "Removing syntax scheme »{name}«." msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:382 #: setzer/dialogs/replace_confirmation/replace_confirmation.py:47 msgid "Do you really want to do this?" msgstr "Wollen Sie das wirklich tun?" #: setzer/dialogs/preferences/pages/page_font_color.py:384 msgid "_Yes, remove it" msgstr "" #: setzer/dialogs/preferences/preferences.py:51 msgid "Build System" msgstr ".pdf-Erstellung" #: setzer/dialogs/preferences/preferences.py:52 msgid "Editor" msgstr "Editor" #: setzer/dialogs/preferences/preferences.py:53 msgid "Font & Colors" msgstr "" #: setzer/dialogs/preferences/preferences_viewgtk.py:40 #: setzer/workspace/headerbar/headerbar_viewgtk.py:133 msgid "Preferences" msgstr "Einstellungen" #: setzer/dialogs/replace_confirmation/replace_confirmation.py:45 #, python-brace-format msgid "Replacing {amount} occurence of »{original}« with »{replacement}«." msgid_plural "" "Replacing {amount} occurrences of »{original}« with »{replacement}«." msgstr[0] "Ersetze {amount} Vorkommen von »{original}« durch »{replacement}«." msgstr[1] "Ersetze {amount} Vorkommen von »{original}« durch »{replacement}«." #: setzer/dialogs/replace_confirmation/replace_confirmation.py:49 msgid "_Yes, replace all occurrences" msgstr "_Ja, alles ersetzen" #: setzer/dialogs/save_document/save_document.py:58 msgid "Save document" msgstr "Dokument speichern" #: setzer/dialogs/save_session/save_session.py:67 msgid "Save Session" msgstr "Sitzung speichern" #: setzer/dialogs/spellchecking_language/spellchecking_language.py:55 msgid "Spellchecking Language" msgstr "Sprache" #: setzer/document/context_menu/context_menu_presenter.py:67 #: setzer/document/context_menu/context_menu_viewgtk.py:35 msgid "Cut" msgstr "Ausschneiden" #: setzer/document/context_menu/context_menu_presenter.py:68 #: setzer/document/context_menu/context_menu_viewgtk.py:36 msgid "Copy" msgstr "Kopieren" #: setzer/document/context_menu/context_menu_presenter.py:69 #: setzer/document/context_menu/context_menu_viewgtk.py:37 msgid "Paste" msgstr "Einfügen" #: setzer/document/context_menu/context_menu_presenter.py:70 #: setzer/document/context_menu/context_menu_viewgtk.py:38 msgid "Delete" msgstr "Löschen" #: setzer/document/context_menu/context_menu_presenter.py:71 #: setzer/document/context_menu/context_menu_viewgtk.py:39 msgid "Select All" msgstr "Alles auswählen" #: setzer/document/context_menu/context_menu_presenter.py:92 #: setzer/document/context_menu/context_menu_viewgtk.py:60 msgid "Toggle Comment" msgstr "Aus- / Entkommentieren" #: setzer/document/context_menu/context_menu_presenter.py:94 #: setzer/document/context_menu/context_menu_viewgtk.py:61 msgid "Show in Preview" msgstr "In Vorschau anzeigen" #: setzer/document/context_menu/context_menu_viewgtk.py:33 msgid "Undo" msgstr "Rückgängig" #: setzer/document/context_menu/context_menu_viewgtk.py:33 #: setzer/document/context_menu/context_menu_viewgtk.py:34 #: setzer/document/context_menu/context_menu_viewgtk.py:35 #: setzer/document/context_menu/context_menu_viewgtk.py:36 #: setzer/document/context_menu/context_menu_viewgtk.py:37 #: setzer/document/context_menu/context_menu_viewgtk.py:39 #: setzer/document/context_menu/context_menu_viewgtk.py:60 #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:54 #: setzer/workspace/headerbar/headerbar_viewgtk.py:52 #: setzer/workspace/headerbar/headerbar_viewgtk.py:60 #: setzer/workspace/headerbar/headerbar_viewgtk.py:66 #: setzer/workspace/headerbar/headerbar_viewgtk.py:92 #: setzer/workspace/headerbar/headerbar_viewgtk.py:125 #: setzer/workspace/headerbar/headerbar_viewgtk.py:139 #: setzer/workspace/headerbar/headerbar_viewgtk.py:140 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:69 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:78 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:181 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:226 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:258 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:309 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:324 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:328 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:329 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:331 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:332 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:333 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:348 msgid "Ctrl" msgstr "Strg" #: setzer/document/context_menu/context_menu_viewgtk.py:34 msgid "Redo" msgstr "Wiederherstellen" #: setzer/document/context_menu/context_menu_viewgtk.py:34 #: setzer/workspace/headerbar/headerbar_viewgtk.py:52 #: setzer/workspace/headerbar/headerbar_viewgtk.py:125 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:258 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:324 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:325 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:328 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:329 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:330 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:331 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:332 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:333 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:348 msgid "Shift" msgstr "Umschalt" #: setzer/document/latex/build_system/build_system_presenter.py:86 #, python-brace-format msgid "Failed ({amount} error)!" msgid_plural "Failed ({amount} errors)!" msgstr[0] "Fehler ({amount})!" msgstr[1] "Fehler ({amount})!" #: setzer/document/latex/build_system/build_system_presenter.py:90 msgid "Success!" msgstr "Erfolg!" #: setzer/document/latex/build_widget/build_widget_viewgtk.py:42 msgid "Stop building" msgstr "Erstellung abbrechen" #: setzer/document/latex/build_widget/build_widget_viewgtk.py:46 msgid "Cleanup build files" msgstr "Hilfsdateien entfernen" #: setzer/document/latex/preview/paging_widget/paging_widget.py:66 msgid "Page " msgstr "Seite " #: setzer/document/latex/preview/paging_widget/paging_widget.py:69 msgid " of " msgstr " von " #: setzer/document/latex/preview/preview_viewgtk.py:35 msgid "External Viewer" msgstr "Externes Anzeigeprogramm" #: setzer/document/latex/preview/preview_viewgtk.py:46 msgid "Show Source" msgstr "Quellcode anzeigen" #: setzer/document/latex/preview/preview_viewgtk.py:47 msgid "Zoom In" msgstr "Vergrößern" #: setzer/document/latex/preview/preview_viewgtk.py:48 msgid "Zoom Out" msgstr "Verkleinern" #: setzer/document/latex/preview/preview_viewgtk.py:49 #: setzer/document/latex/preview/zoom_widget/zoom_widget.py:41 msgid "Fit to Width" msgstr "An Breite anpassen" #: setzer/document/latex/preview/preview_viewgtk.py:50 #: setzer/document/latex/preview/zoom_widget/zoom_widget.py:46 msgid "Fit to Text Width" msgstr "An Textbreite anpassen" #: setzer/document/latex/preview/preview_viewgtk.py:51 #: setzer/document/latex/preview/zoom_widget/zoom_widget.py:51 msgid "Fit to Height" msgstr "An Höhe anpassen" #: setzer/document/latex/preview/preview_viewgtk.py:87 msgid "No preview available" msgstr "Keine Vorschau verfügbar" #: setzer/document/latex/preview/preview_viewgtk.py:90 msgid "" "To show a .pdf preview of your document, click the build button in the " "headerbar." msgstr "" "Um eine .pdf-Vorschau Ihres Dokuments anzuzeigen, klicken Sie bitte den " "Erstellen-Button." #: setzer/document/latex/preview/zoom_widget/zoom_widget_viewgtk.py:54 msgid "Set zoom level" msgstr "Skalierung" #: setzer/document/search/search_viewgtk.py:55 msgid "Replace" msgstr "Ersetzen" #: setzer/document/search/search_viewgtk.py:57 msgid "Replace selected result" msgstr "Markiertes Ergebnis ersetzen" #: setzer/document/search/search_viewgtk.py:59 msgid "All" msgstr "Alle" #: setzer/document/search/search_viewgtk.py:61 msgid "Replace all results" msgstr "Alle Ergebnisse ersetzen" #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:38 msgid "More Actions" msgstr "" #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:47 msgid "Find and Replace (Ctrl+H)" msgstr "Suchen und Ersetzen (Strg+H)" #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:53 msgid "Find (Ctrl+F)" msgstr "Suchen (Strg+F)" #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:69 msgid "New Document Wizard" msgstr "Dokumenten-Assistent" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:49 msgid "Create New Entry" msgstr "Neuen Eintrag hinzufügen" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:60 msgid "Create a New BibTeX Entry" msgstr "Neuen BibTeX Eintrag hinzufügen" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:69 msgid "Previously Used Entries" msgstr "Zuvor verwendete Einträge" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:80 msgid "Add a Previously Used BibTeX Entry" msgstr "Zuvor verwendeten Eintrag hinzufügen" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:89 msgid "Search For Entries Online" msgstr "Online nach Einträgen suchen" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:100 msgid "Add a BibTeX Entry from an Online Database" msgstr "Einen BibTex Eintrag aus einer Online-Datenbank hinzufügen" #: setzer/workspace/build_log/build_log_presenter.py:108 #, python-brace-format msgid "Line {number}" msgstr "Zeile {number}" #: setzer/workspace/build_log/build_log_presenter.py:136 #, python-brace-format msgid "Building failed with {amount} error" msgid_plural "Building failed with {amount} errors" msgstr[0] "Erstellen fehlgeschlagen mit {amount} Fehler" msgstr[1] "Erstellen fehlgeschlagen mit {amount} Fehlern" #: setzer/workspace/build_log/build_log_presenter.py:137 #, python-brace-format msgid "{amount} warning or badbox" msgid_plural "{amount} warnings or badboxes" msgstr[0] "{amount} Warnung oder Badbox" msgstr[1] "{amount} Warnungen oder Badboxen" #: setzer/workspace/build_log/build_log_presenter.py:140 msgid "Building successful" msgstr "Erstellen erfolgreich" #: setzer/workspace/build_log/build_log_presenter.py:145 msgid "no warnings or badboxes" msgstr "keine Warnungen oder Badboxen" #: setzer/workspace/document_chooser/document_chooser_viewgtk.py:54 msgid "No results" msgstr "Keine Ergebnisse" #: setzer/workspace/document_chooser/document_chooser_viewgtk.py:59 msgid "Other Documents" msgstr "Weitere Dokumente" #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:107 msgid "Set one Document as Root" msgstr "Hauptdokument festlegen" #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:113 msgid "Unset Root Document" msgstr "Hauptdokument-Auswahl zurücksetzen" #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:119 msgid "Click on a document in the list below to set it as root." msgstr "Klicken Sie auf ein Dokument um es als Hauptdokument festzulegen." #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:123 msgid "" "The root document will get built, no matter which document\n" "you are currently editing, and it will always display in the .pdf\n" "preview. The build log will also refer to the root document.\n" "This is often useful for working on large projects where typically\n" "a top level document (the root) will contain multiple lower\n" "level files via include statements." msgstr "" "Das Hauptdokument wird erstellt, unabhängig davon welches Dokument\n" "gerade bearbeitet wird, und wird immer in der .pdf Vorschau angezeigt.\n" "Das Erstellungsprotokoll wird sich auf das Hauptdokument beziehen.\n" "Dies ist oft sinnvoll wenn an großen Projekten gearbeitet wird, wo ein\n" "Hauptdokument typischerweise mehrere Subdokumente einbindet." #: setzer/workspace/headerbar/headerbar_viewgtk.py:42 msgid "Toggle sidebar" msgstr "Seitenleiste anzeigen / verbergen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:66 msgid "Create a new LaTeX document" msgstr "Neues LaTeX-Dokument erstellen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:74 msgid "Create a new document" msgstr "Neues Dokument erstellen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:82 msgid "New LaTeX Document" msgstr "Neues LaTeX-Dokument" #: setzer/workspace/headerbar/headerbar_viewgtk.py:83 msgid "New BibTeX Document" msgstr "Neues BibTeX-Dokument" #: setzer/workspace/headerbar/headerbar_viewgtk.py:90 msgid "Save" msgstr "Speichern" #: setzer/workspace/headerbar/headerbar_viewgtk.py:101 msgid "Toggle preview" msgstr "Vorschau anzeigen / verbergen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:106 msgid "Toggle help" msgstr "Hilfe anzeigen / verbergen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:125 msgid "Save Document As" msgstr "Speichern unter" #: setzer/workspace/headerbar/headerbar_viewgtk.py:126 msgid "Save All Documents" msgstr "Alle speichern" #: setzer/workspace/headerbar/headerbar_viewgtk.py:128 #: setzer/workspace/headerbar/headerbar_viewgtk.py:156 msgid "Session" msgstr "Sitzung" #: setzer/workspace/headerbar/headerbar_viewgtk.py:130 #: setzer/workspace/headerbar/headerbar_viewgtk.py:147 msgid "View" msgstr "Ansicht" #: setzer/workspace/headerbar/headerbar_viewgtk.py:135 msgid "Keyboard Shortcuts" msgstr "Tastenkürzel" #: setzer/workspace/headerbar/headerbar_viewgtk.py:136 msgid "About" msgstr "Info" #: setzer/workspace/headerbar/headerbar_viewgtk.py:138 msgid "Close All Documents" msgstr "Alle schließen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:139 msgid "Close Document" msgstr "Schließen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:140 msgid "Quit" msgstr "Beenden" #: setzer/workspace/headerbar/headerbar_viewgtk.py:148 msgid "Dark Mode" msgstr "Nachtmodus" #: setzer/workspace/headerbar/headerbar_viewgtk.py:149 msgid "Invert Colors in .pdf-Preview" msgstr "Farben invertieren in .pdf-Vorschau" #: setzer/workspace/headerbar/headerbar_viewgtk.py:157 msgid "" "Save the list of open documents in a session file\n" "and restore it later, a convenient way to work\n" "on multiple projects." msgstr "" "Speichern Sie die Liste geöffneter Dokumente in\n" "einer Sitzungdatei und öffnen Sie sie später wieder,\n" "eine praktische Methode um an verschiedenen\n" "Projekten zu arbeiten." #: setzer/workspace/headerbar/headerbar_viewgtk.py:163 msgid "Restore Previous Session" msgstr "Sitzung wiederherstellen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:164 msgid "Save Current Session" msgstr "Sitzung speichern" #: setzer/workspace/headerbar/headerbar_viewgtk.py:175 msgid "Check Spelling" msgstr "Rechtschreibung prüfen" #: setzer/workspace/headerbar/headerbar_viewgtk.py:176 msgid "Automatic Spellchecking" msgstr "Rechtschreibfehler hervorheben" #: setzer/workspace/headerbar/headerbar_viewgtk.py:177 msgid "Set Spellchecking Language" msgstr "Sprache festlegen" #: setzer/workspace/help_panel/help_panel_viewgtk.py:35 msgid "Home" msgstr "Startseite" #: setzer/workspace/help_panel/help_panel_viewgtk.py:41 msgid "Top" msgstr "Seitenanfang" #: setzer/workspace/help_panel/help_panel_viewgtk.py:47 msgid "Back" msgstr "Zurück" #: setzer/workspace/help_panel/help_panel_viewgtk.py:53 msgid "Forward" msgstr "Vorwärts" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:58 msgid "Build log" msgstr "Fehler und Warnungen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:69 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Italic" msgstr "Kursiv" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:78 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Bold" msgstr "Fett" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:96 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:109 msgid "Document Info" msgstr "Informationen zum Dokument" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:98 msgid "Document Environment" msgstr "Document Umgebung" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:99 msgid "Show Title" msgstr "Titel anzeigen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:100 msgid "Table of Contents" msgstr "Inhaltsverzeichnis" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:102 msgid "Include LaTeX File" msgstr "LaTeX-Dokument einbinden" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:113 msgid "Date Today" msgstr "Datum heute" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:120 msgid "Document" msgstr "Dokument" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:134 msgid "Include BibTeX File" msgstr "BibTeX-Dokument einbinden" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:135 msgid "Include 'natbib' Package" msgstr "'natbib'-Paket einbinden" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:137 msgid "Citation with Page Number" msgstr "Zitat mit Seitenangabe" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:139 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:147 msgid "Natbib Citations" msgstr "Natbib-Zitate" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:140 msgid "Include non-cited BibTeX Entries with '\\nocite'" msgstr "Nicht-zitierte BibTeX-Einträge einbinden ('\\nocite')" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Abbreviated" msgstr "Kurzform" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Abbreviated with Brackets" msgstr "Kurzform mit Klammern" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Detailed" msgstr "Ausführlich" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Detailed with Brackets" msgstr "Ausführlich mit Klammern" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Alternative 1" msgstr "Alternativ 1" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Alternative 2" msgstr "Alternativ 2" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:151 msgid "Cite Author" msgstr "Autor" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:151 msgid "Cite Author Detailed" msgstr "Autor, detailliert" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:151 msgid "Cite Year" msgstr "Jahr" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:151 msgid "Cite Year with Brackets" msgstr "Jahr mit Klammern" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:159 msgid "Bibliography" msgstr "Bibliographie" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:173 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:194 msgid "Font Styles" msgstr "Schriftstil" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:174 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:204 msgid "Font Sizes" msgstr "Schriftgröße" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:175 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:213 msgid "Alignment" msgstr "Textausrichtung" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:176 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:222 msgid "Vertical Spacing" msgstr "Vertikale Abstände" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:177 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:233 msgid "International Accents" msgstr "Internationale Akzentzeichen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:179 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:242 msgid "Sectioning" msgstr "Abschnitte" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:182 msgid "Verbatim Environment" msgstr "Verbatim Umgebung" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:183 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:254 msgid "List Environments" msgstr "Listen-Umgebungen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:184 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:265 msgid "Quotations" msgstr "Zitat-Umgebungen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:186 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:275 msgid "Cross References" msgstr "Querverweise" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:187 msgid "Footnote" msgstr "Fußnote" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 msgid "Underline" msgstr "Unterstrichen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Sans Serif" msgstr "Serifenlos" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Typewriter" msgstr "Schreibmaschine" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 msgid "Small Caps" msgstr "Kapitälchen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 msgid "Slanted" msgstr "Geneigt" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 msgid "Emphasis" msgstr "Hervorgehoben" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:214 msgid "Centered" msgstr "Zentriert" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:214 msgid "Left-aligned" msgstr "Links" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:214 msgid "Right-aligned" msgstr "Rechts" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Part" msgstr "Part" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Chapter" msgstr "Chapter" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Section" msgstr "Section" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Subsection" msgstr "Subsection" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Subsubsection" msgstr "Subsubsection" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Paragraph" msgstr "Paragraph" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Subparagraph" msgstr "Subparagraph" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:255 msgid "Bulleted List" msgstr "Liste mit Aufzählungszeichen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:255 msgid "Numbered List" msgstr "Nummerierte Liste" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:255 msgid "List with Bold Labels" msgstr "Liste mit Labels" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:266 msgid "Short Quotation" msgstr "Kurzes Zitat" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:267 msgid "Longer Quotation" msgstr "Langes Zitat" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:268 msgid "Poetry Quotation" msgstr "Gedicht zitieren" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:276 msgid "Label" msgstr "Label" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:276 msgid "Equation Reference" msgstr "Referenz auf math. Gleichung" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:276 msgid "Page Reference" msgstr "Referenz auf Seite" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:284 msgid "Text" msgstr "Text" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "Primary Quotes" msgstr "Primär" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "Secondary Quotes" msgstr "Sekundär" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "German Quotes" msgstr "Deutsch" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "German Single Quotes" msgstr "Deutsch einfach" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "French Quotes" msgstr "Französisch" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "French Single Quotes" msgstr "Französisch einfach" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "German Alt Quotes" msgstr "Deutsch alternativ" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "German Alt Single Quotes" msgstr "Deutsch alternativ einfach" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:309 msgid "Quotes" msgstr "Anführungszeichen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:322 msgid "Include AMS Packages" msgstr "AMS Pakete einbinden" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:326 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:346 msgid "Math Environments" msgstr "Mathematische Umgebungen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:331 msgid "Square Root" msgstr "Quadratwurzel" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:335 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:355 msgid "Math Functions" msgstr "Mathematische Funktionen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:336 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:372 msgid "Math Font Styles" msgstr "Mathematische Schriftstile" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:337 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:381 msgid "Math Stacking Symbols" msgstr "Gestapelte Symbole" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:338 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:395 msgid "Math Accents" msgstr "Mathematische Akzentzeichen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:339 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:404 msgid "Math Spaces" msgstr "Mathematische Leerzeichen" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Roman" msgstr "Roman" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Calligraphic" msgstr "Kalligraphisch" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Blackboard Bold" msgstr "Blackboard Bold" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Fraktur" msgstr "Fraktur" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:413 msgid "Math" msgstr "Mathematik" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:428 msgid "Figure (image inside freestanding block)" msgstr "Figure (Bild in einem freistehendem Block)" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:429 msgid "Inline Image" msgstr "Bilddatei einbinden" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:430 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:437 msgid "Code Listing" msgstr "Programmcode" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:438 msgid "Include 'listings' Package" msgstr "'listings'-Paket einbinden" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:443 msgid "Other Language" msgstr "Andere Sprache" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:444 msgid "Plain Text" msgstr "Einfacher Text" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:454 msgid "Objects" msgstr "Objekte" #: setzer/workspace/sidebar/sidebar.py:41 msgid "Greek Letters" msgstr "Griechische Buchstaben" #: setzer/workspace/sidebar/sidebar.py:43 msgid "Arrows" msgstr "Pfeile" #: setzer/workspace/sidebar/sidebar.py:45 msgid "Relations" msgstr "Relationen" #: setzer/workspace/sidebar/sidebar.py:47 msgid "Operators" msgstr "Operatoren" #: setzer/workspace/sidebar/sidebar.py:49 msgid "Misc. Math" msgstr "Verschiedene math. Symbole" #: setzer/workspace/sidebar/sidebar.py:51 msgid "Misc. Symbols" msgstr "Verschiedene Symbole" #: setzer/workspace/sidebar/sidebar_viewgtk.py:106 msgid "Package" msgstr "Paket" #: setzer/workspace/workspace.py:104 #, python-brace-format msgid "Untitled Document {number}" msgstr "Unbenanntes Dokument {number}" #~ msgid "Badbox" #~ msgstr "Badbox" #~ msgid "Error" #~ msgstr "Fehler" #~ msgid "Warning" #~ msgstr "Warnung" #~ msgid "No open documents" #~ msgstr "Keine Dokumente geöffnet" #~ msgid "Setzer" #~ msgstr "Setzer" #~ msgid "Cvfosammmm" #~ msgstr "Cvfosammmm" #~ msgid "additional math fonts from AMS." #~ msgstr "zusätliche mathematischen Schriftarten von AMS." #~ msgid "mathematics package from AMS." #~ msgstr "Mathematikpaket von AMS." #~ msgid "mathematical symbols from AMS." #~ msgstr "mathematische Symbole von AMS." #~ msgid "math theorems setting package from AMS." #~ msgstr "AMS Paket für mathematische Sätze." #~ msgid "multilingual documents." #~ msgstr "mehrsprachige Dokumente." #~ msgid "dirac braket and set notations." #~ msgstr "Dirac bra-ket und Mengennotation." #~ msgid "simple arithmetic in LaTeX commands." #~ msgstr "einfache Arithmetik in LaTeX Befehlen." #~ msgid "colored tables." #~ msgstr "farbige Tabellen." #~ msgid "enumerate with redefinable labels." #~ msgstr "Aufzählungen mit redefinierbaren Beschriftungen." #~ msgid "interface to document dimensions." #~ msgstr "Formateinstellungen für das Dokument." #~ msgid "conditional commands." #~ msgstr "von Vorbedingungen abhängige Befehle." #~ msgid "provides a listing environment for embedding programming code." #~ msgstr "stellt die \\listings Umgebung für eingebetteten Code bereit." #~ msgid "provides additional bibliography and citation styles." #~ msgstr "sellt zusätzliche Bibliotheks- und Zitierstile bereit." #~ msgid "create plots in two and three dimensions." #~ msgstr "2- und 3-dimensionale Plots." #~ msgid "graphics and plotting." #~ msgstr "Plots und Grafiken." #~ msgid "set transparency for sections in your document." #~ msgstr "transparente Abschnitte." #~ msgid "Greek letter" #~ msgstr "Griechischer Buchstabe" #~ msgid "Verbatim environment, content won't be interpreted as LaTeX." #~ msgstr "Verbatim Umgebung, Inhalt wird nicht von LaTeX ausgewertet." #~ msgid "Include a non-cited item from the bibliography" #~ msgstr "Einen nicht-zitierten BibTeX-Eintrag einbinden" #~ msgid "Include all non-cited items from the bibliography" #~ msgstr "Alle nicht-zitierten BibTeX-Einträge einbinden" #~ msgid "Colored Text" #~ msgstr "Farbiger Text" #~ msgid "Monospaced Text" #~ msgstr "Monospace-Text" #~ msgid "Inline verbatim text that won't be interpreted as LaTeX." #~ msgstr "Verbatim Text, der nicht von LaTeX ausgewertet wird." #~ msgid "Make text 'tiny' within current scope" #~ msgstr "Schriftgröße 'tiny'" #~ msgid "Make text 'scriptsize' within current scope" #~ msgstr "Schriftgröße 'scriptsize'" #~ msgid "Make text 'footnotesize' within current scope" #~ msgstr "Schriftgröße 'footnotesize'" #~ msgid "Make text 'small' within current scope" #~ msgstr "Schriftgröße 'small'" #~ msgid "Make text 'normalsize' within current scope" #~ msgstr "Schriftgröße 'normalsize'" #~ msgid "Make text 'large' within current scope" #~ msgstr "Schriftgröße 'large'" #~ msgid "Make text 'Large' within current scope" #~ msgstr "Schriftgröße 'Large'" #~ msgid "Make text 'LARGE' within current scope" #~ msgstr "Schriftgröße 'LARGE'" #~ msgid "Make text 'huge' within current scope" #~ msgstr "Schriftgröße 'huge'" #~ msgid "Make text 'Huge' within current scope" #~ msgstr "Schriftgröße 'Huge'" #~ msgid "error" #~ msgid_plural "errors" #~ msgstr[0] "Fehler" #~ msgstr[1] "Fehler" #~ msgid "warning" #~ msgid_plural "warnings" #~ msgstr[0] "Warnung" #~ msgstr[1] "Warnungen" #~ msgid "badbox" #~ msgid_plural "badboxes" #~ msgstr[0] "Badbox" #~ msgstr[1] "Badboxen" #~ msgid "Failed" #~ msgstr "Fehlgeschlagen" #~ msgid "{amount} {str_errors}" #~ msgstr "{amount} {str_errors}" #~ msgid "occurrence" #~ msgid_plural "occurrences" #~ msgstr[0] "Treffer" #~ msgstr[1] "Treffer" Setzer-0.4.4/po/generate-potfiles.sh000077500000000000000000000004161420322575300173710ustar00rootroot00000000000000#!/bin/sh cd "$(dirname "$(realpath "$0")")/.." echo "# generated on $(date -u)" > ./po/POTFILES echo "" >> ./po/POTFILES echo "./data/org.cvfosammmm.Setzer.appdata.xml.in" >> ./po/POTFILES echo "" >> ./po/POTFILES find ./setzer -name '*.py' | sort >> ./po/POTFILES Setzer-0.4.4/po/it.po000066400000000000000000003032131420322575300143720ustar00rootroot00000000000000# # Cvfosammmm , 2020. # Kowalski7cc , 2020-2021. # msgid "" msgstr "" "Project-Id-Version: setzer\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-11 14:36+0100\n" "PO-Revision-Date: 2021-01-11 16:09+0100\n" "Last-Translator: Kowalski7cc \n" "Language-Team: \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Gtranslator 3.38.0\n" #: data/org.cvfosammmm.Setzer.appdata.xml.in:8 msgid "Simple yet full-featured LaTeX editor" msgstr "Editor LaTeX semplice ma completo" #: data/org.cvfosammmm.Setzer.appdata.xml.in:12 msgid "" "Setzer lets you Write LaTeX documents with an easy to use yet full-featured " "editor." msgstr "" "Setzer ti consente di scrivere documenti LaTeX con un editor facile da usare " "ma completo." #: data/org.cvfosammmm.Setzer.appdata.xml.in:13 msgid "Features include:" msgstr "Funzionalità incluse:" #: data/org.cvfosammmm.Setzer.appdata.xml.in:15 #: data/org.cvfosammmm.Setzer.appdata.xml.in:30 msgid "Buttons and shortcuts for many LaTeX elements and special characters" msgstr "Pulsanti e scorciatoie per molti elementi LaTeX e caratteri speciali" #: data/org.cvfosammmm.Setzer.appdata.xml.in:16 msgid "Comfortable document creation wizard" msgstr "Comoda procedura guidata per la creazione di documenti" #: data/org.cvfosammmm.Setzer.appdata.xml.in:17 #: data/org.cvfosammmm.Setzer.appdata.xml.in:38 msgid "Dark mode" msgstr "Modalità scura" #: data/org.cvfosammmm.Setzer.appdata.xml.in:18 #: data/org.cvfosammmm.Setzer.appdata.xml.in:42 msgid "Helpful error messages in the build log" msgstr "Messaggi di errore utili nel registro di compilazione" #: data/org.cvfosammmm.Setzer.appdata.xml.in:19 msgid "Looks great on the Gnome desktop" msgstr "Sembra fantastico sul desktop di Gnome" #: data/org.cvfosammmm.Setzer.appdata.xml.in:20 msgid "Good screen to content ratio" msgstr "Buon rapporto schermo / contenuto" #: data/org.cvfosammmm.Setzer.appdata.xml.in:21 msgid "Arguably the best .pdf viewer of any LaTeX editor" msgstr "Probabilmente il miglior visualizzatore .pdf di qualsiasi editor LaTeX" #: data/org.cvfosammmm.Setzer.appdata.xml.in:34 msgid "Document creation wizard" msgstr "Creazione guidata documento" #: data/org.cvfosammmm.Setzer.appdata.xml.in:58 msgid "Support for links in .pdf preview, new welcome screen, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:63 msgid "Build button now does save and build, performance improvements, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:68 msgid "Performance improvements, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:73 msgid "" "Save and build on F5, build in the directory of the LaTeX document being " "built, .cls and .sty file editing, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:78 msgid "" "Zoom in editor view, show warning when document was deleted on disk, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:83 msgid "Set editor font, context menu in shortcuts bar, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:88 msgid "" "Add syntax themes from files, edit begin and end commands simultaneously, " "autocomplete improvements, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:93 msgid "New syntax highlighting theme, full line indentation, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:98 msgid "" "Tab autocomplete, dynamic citations autocomplete, more autocomplete " "improvements, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:103 msgid "Biber support, Glossaries support, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:108 msgid "" "Use Latexmk with any LaTeX interpreter, invert colors in .pdf preview, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:113 msgid "Redesigned help panel homepage, LaTeX package documentation links, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:118 msgid "" "Italian translation, help panel with LaTeX documentation, open files from " "the file manager and command line, ..." msgstr "" #: data/org.cvfosammmm.Setzer.appdata.xml.in:123 msgid "German translation, external .pdf viewer button, ..." msgstr "Traduzione tedesca, pulsante visualizzatore .pdf esterno, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:128 msgid "Bug fix" msgstr "Bug fix" #: data/org.cvfosammmm.Setzer.appdata.xml.in:133 msgid "" "Initial backward synctex support, improved synctex highlighting, search UI " "improvements, ..." msgstr "" "Supporto iniziale per la sintassi all'indietro, evidenziazione della " "sintassi migliorata, miglioramenti dell'interfaccia utente di ricerca, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:138 msgid "Session management, highlight passages on build, ..." msgstr "Gestione della sessione, evidenziare i passaggi su compilazione, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:143 msgid "" "Zoom level popover for the .pdf preview, preview should use far less memory " "now, ..." msgstr "" "Popover di livello di zoom per l'anteprima .pdf, l'anteprima dovrebbe usare " "molta meno memoria ora, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:148 msgid "Bug fixes" msgstr "Bug fixes" #: data/org.cvfosammmm.Setzer.appdata.xml.in:153 msgid "" "Enable embedded system commands, document modified on disk dialog, option to " "highlight current line, option to highlight matching brackets, ..." msgstr "" "Abilita comandi di sistema integrati, documento modificato sulla finestra di " "dialogo del disco, opzione per evidenziare la riga corrente, opzione per " "evidenziare parentesi corrispondenti, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:158 msgid "Add/remove packages dialog, improved HiDPI support, ..." msgstr "" "Finestra di dialogo aggiungi / rimuovi pacchetti, supporto HiDPI " "migliorato, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:163 msgid "Keyboard shortcuts in popovers, more commands in shortcuts bar, ..." msgstr "" "Scorciatoie da tastiera in popover, più comandi nella barra delle " "scorciatoie, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:168 msgid "More commands in shortcuts bar, autocomplete now case insensitive, ..." msgstr "" "Più comandi nella barra delle scorciatoie, completamento automatico ora " "senza distinzione tra maiuscole e minuscole, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:173 msgid "HiDPI support in .pdf preview, presistent code folding, ..." msgstr "" "Supporto HiDPI in anteprima .pdf, compressione del codice presente nella " "vista, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:178 msgid "Initial code folding support, ..." msgstr "Supporto pieghevole codice iniziale, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:183 msgid "" "References to existing labels in autocomplete, persistent root document " "state, ..." msgstr "" "Riferimenti a etichette esistenti in stato di completamento automatico, " "documento principale persistente, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:188 msgid "Initial spellchecking support, ..." msgstr "Supporto per il controllo ortografico iniziale, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:193 msgid "Simple BibTeX wizard, more bibliography features in LaTeX editor, ..." msgstr "" "Semplice procedura guidata BibTeX, più funzioni bibliografiche nell'editor " "LaTeX, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:198 msgid "BibTeX support in the build system, edit BibTeX files, ..." msgstr "" "Supporto BibTeX nel sistema di compilazione, modifica di file BibTeX, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:203 msgid "Editor settings in preferences dialog, ..." msgstr "" "Impostazioni dell'editor nella finestra di dialogo delle preferenze, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:208 msgid "" "Build multiple times to resolve undefined references, show warnings in build " "log, ..." msgstr "" "Compila più volte per risolvere riferimenti indefiniti, mostra avvisi nel " "registro di compilazione, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:213 msgid "Indent multi-line inserts, ..." msgstr "Rientri per gli inserti multilinea, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:218 msgid "Multiple documents in build log, build in temporary folder, ..." msgstr "" "Più documenti nel registro di compilazione, compilazione nella cartella " "temporanea, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:223 msgid "Root document function, ..." msgstr "Funzione documento principale, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:228 msgid "New app layout, animated wizard button, big code refactor, ..." msgstr "" "Nuovo layout di app, pulsante della procedura guidata animato, refactor di " "grandi dimensioni, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:233 msgid "Set margins in wizard, improved icon, ..." msgstr "Imposta i margini nella procedura guidata, icona migliorata, ..." #: data/org.cvfosammmm.Setzer.appdata.xml.in:238 msgid "Initial release" msgstr "Rilascio iniziale" #: setzer/app/autocomplete_provider/autocomplete_provider.py:47 #, python-brace-format msgid "Reference to '{label}'" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:47 #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:63 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:276 msgid "Reference" msgstr "Riferimento" #: setzer/app/autocomplete_provider/autocomplete_provider.py:48 #, python-brace-format msgid "Reference to page of '{label}'" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:48 msgid "Page reference" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:49 #, python-brace-format msgid "Reference to '{label}', with parantheses" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:49 msgid "Reference with parantheses" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:51 #, python-brace-format msgid "Cite '{label}'" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:51 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:137 msgid "Citation" msgstr "Citazione" #: setzer/app/autocomplete_provider/autocomplete_provider.py:52 #, python-brace-format msgid "Cite '{label}' (abbreviated)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:52 msgid "Citation (abbreviated)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:53 #, python-brace-format msgid "Cite '{label}' (abbreviated with brackets)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:53 msgid "Citation (abbreviated with brackets)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:54 #, python-brace-format msgid "Cite '{label}' (detailed)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:54 msgid "Citation (detailed)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:55 #, python-brace-format msgid "Cite '{label}' (detailed with brackets)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:55 msgid "Citation (detailed with brackets)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:56 #, python-brace-format msgid "Cite '{label}' (alternative style 1)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:56 msgid "Citation (alternative style 1)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:57 #, python-brace-format msgid "Cite '{label}' (alternative style 2)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:57 msgid "Citation (alternative style 2)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:58 #, python-brace-format msgid "Cite '{label}' (author)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:58 msgid "Citation (author)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:59 #, python-brace-format msgid "Cite '{label}' (author detailed)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:59 msgid "Citation (author detailed)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:60 #, python-brace-format msgid "Cite '{label}' (year)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:60 msgid "Citation (year)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:61 #, python-brace-format msgid "Cite '{label}' (year with brackets)" msgstr "" #: setzer/app/autocomplete_provider/autocomplete_provider.py:61 msgid "Citation (year with brackets)" msgstr "" #: setzer/dialogs/about/about.py:44 msgid "Setzer is a LaTeX editor." msgstr "Setzer è un editor LaTeX." #: setzer/dialogs/add_remove_packages/add_remove_packages_viewgtk.py:51 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:95 msgid "Add / Remove Packages" msgstr "Aggiungi / rimuovi pacchetti" #: setzer/dialogs/add_remove_packages/add_remove_packages_viewgtk.py:77 msgid "Add Package" msgstr "Aggiungi pacchetto" #: setzer/dialogs/add_remove_packages/add_remove_packages_viewgtk.py:115 msgid "Remove Package" msgstr "Rimuovi pacchetto" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:42 msgid "Article in Journal" msgstr "Aricolo di un giornale" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:42 msgid "" "An article in a journal, magazine, newspaper, or other periodical which " "forms a self-contained unit with its own title. The title of the periodical " "is given in the journaltitle field. If the issue has its own title " "in addition to the main title of the periodical, it goes in the " "issuetitle field. Note that editor and related fields " "refer to the journal while translator and related fields refer to " "the article." msgstr "" "Un articolo di una rivista, rivista, giornale o altro periodico che " "costituisce un'unità autonoma con il proprio titolo. Il titolo del periodico " "è indicato nel campo journaltitle. Se il problema ha un proprio " "titolo in aggiunta al titolo principale del periodico, va nel campo " "issuetitle. Si noti che editor e i campi correlati si " "riferiscono al giornale mentre translator e i campi correlati fanno " "riferimento all'articolo." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:43 msgid "Book" msgstr "Book" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:43 msgid "" "A single-volume book with one or more authors where the authors share credit " "for the work as a whole. This entry type also covers the function of the " "@inbook type of traditional BibTeX." msgstr "" "Un libro a volume singolo con uno o più autori in cui gli autori condividono " "il merito dell'opera nel suo insieme. Questo tipo di voce copre anche la " "funzione del tipo @inbook di BibTeX tradizionale." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:44 msgid "Multi-volume Book" msgstr "Libro multi-volume" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:44 msgid "" "A multi-volume @book. For backwards compatibility, multi-volume books are " "also supported by the entry type @book. However, it is advisable to make use " "of the dedicated entry type @mvbook." msgstr "" "Un @book multi-volume. Per compatibilità con le versioni precedenti, i libri " "multi-volume sono supportati anche dal tipo di voce @book. Tuttavia, è " "consigliabile utilizzare il tipo di voce dedicato @mvbook." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:45 msgid "Part of a Book With Its Own Title" msgstr "Parte di un libro con il suo titolo" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:45 msgid "" "A part of a book which forms a self-contained unit with its own title. Note " "that the profile of this entry type is different from standard BibTeX." msgstr "" "Una parte di un libro che costituisce un'unità autonoma con il suo titolo. " "Si noti che il profilo di questo tipo di voce è diverso dallo standard " "BibTeX." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:46 msgid "Book in Book" msgstr "Libro in un libro" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:46 msgid "" "This type is similar to @inbook but intended for works originally published " "as a stand-alone book. A typical example are books reprinted in the " "collected works of an author." msgstr "" "Questo tipo è simile a @inbook ma destinato a lavori originariamente " "pubblicati come libro autonomo. Un esempio tipico sono i libri ristampati " "nelle opere raccolte di un autore." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:47 msgid "Supplemental Material in a Book" msgstr "Materiale supplementare in un libro" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:47 msgid "" "Supplemental material in a @book. This type is closely related to the " "@inbook entry type. While @inbook is primarily intended for a part of a book " "with its own title (e. g., a single essay in a collection of essays by the " "same author), this type is provided for elements such as prefaces, " "introductions, forewords, afterwords, etc. which often have a generic title " "only. Style guides may require such items to be formatted differently from " "other @inbook items. The standard styles will treat this entry type as an " "alias for @inbook." msgstr "" "Materiale supplementare in un @book. Questo tipo è strettamente correlato al " "tipo di voce @inbook. Mentre @inbook è principalmente destinato a una parte " "di un libro con il suo titolo (ad esempio, un singolo saggio in una raccolta " "di saggi dello stesso autore), questo tipo viene fornito per elementi come " "prefazioni, introduzioni, avvertenze, postfazioni, ecc. che spesso hanno " "solo un titolo generico. Le guide di stile potrebbero richiedere che tali " "elementi siano formattati diversamente dagli altri elementi @inbook. Gli " "stili standard considereranno questo tipo di voce come un alias per @inbook." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:48 msgid "Booklet" msgstr "Opuscolo" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:48 msgid "" "A book-like work without a formal publisher or sponsoring institution. Use " "the field howpublished to supply publishing information in free " "format, if applicable. The field type may be useful as well." msgstr "" "Un'opera simile a un libro senza un editore formale o un istituto di " "sponsorizzazione. Utilizzare il campo howpublished per fornire " "informazioni di pubblicazione in formato libero, se applicabile. Anche il " "campo type può essere utile." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:49 msgid "Single-volume Collection" msgstr "Collezione a singolo volume" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:49 msgid "" "A single-volume collection with multiple, self-contained contributions by " "distinct authors which have their own title. The work as a whole has no " "overall author but it will usually have an editor." msgstr "" "Una raccolta a volume singolo con contributi multipli e indipendenti di " "autori distinti che hanno il loro titolo. L'opera nel suo insieme non ha un " "autore generale ma di solito avrà un editore." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:50 msgid "Multi-volume Collection" msgstr "Collezione a volume multiplo" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:50 msgid "" "A multi-volume @collection. For backwards compatibility, multi-volume " "collections are also supported by the entry type @collection. However, it is " "advisable to make use of the dedicated entry type @mvcollection." msgstr "" "Una raccolta multi-volume. Per compatibilità con le versioni precedenti, le " "raccolte multi-volume sono supportate anche dal tipo di voce @collection. " "Tuttavia, è consigliabile utilizzare il tipo di voce dedicato @mvcollection." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:51 msgid "Article in a Collection" msgstr "Articolo in una collezione" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:51 msgid "" "A contribution to a collection which forms a self-contained unit with a " "distinct author and title. The author refers to the title, " "the editor to the booktitle, i. e., the title of the " "collection." msgstr "" "Un contributo a una collezione che costituisce un'unità autonoma con autore " "e titolo distinti. L 'autore si riferisce al titolo, l' " "editor al booktitle, esempio, il titolo della collezione." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:52 msgid "Supplemental Material in a Collection" msgstr "Materiale supplementare in una collezione" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:52 msgid "" "Supplemental material in a @collection. This type is similar to @suppbook " "but related to the @collection entry type. The standard styles will treat " "this entry type as an alias for @incollection." msgstr "" "Materiale supplementare in un @collection. Questo tipo è simile a @suppbook " "ma correlato al tipo di voce @collection. Gli stili standard considereranno " "questo tipo di voce come un alias per @incollection." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:53 msgid "Data Set" msgstr "Set di dati" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:53 msgid "A data set or a similar collection of (mostly) raw data." msgstr "" "Un set di dati o una raccolta simile di dati (principalmente) non elaborati." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:54 msgid "Technical Manual" msgstr "Manuale tecnico" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:54 msgid "" "Technical or other documentation, not necessarily in printed form. The " "author or editor is omissible under certain terms." msgstr "" "Documentazione tecnica o di altro tipo, non necessariamente in forma " "stampata. author o editor è impossibile in certi termini." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:55 msgid "Miscellaneous" msgstr "Miscellaneo" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:55 msgid "" "A fallback type for entries which do not fit into any other category. Use " "the field howpublished to supply publishing information in free " "format, if applicable. The field type may be useful as well. author, editor, and year are omissible under certain terms." msgstr "" "Un tipo di fallback per le voci che non rientrano in nessun'altra categoria. " "Utilizzare il campo howpublished per fornire informazioni di " "pubblicazione in formato libero, se applicabile. Anche il tipo di campo può " "essere utile. author, editor e year sono " "inammissibili in determinati termini." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:56 msgid "Online Resource" msgstr "Risorsa online" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:56 msgid "" "An online resource. author, editor, and year are " "omissible under certain terms. This entry type is intended for sources such " "as web sites which are intrinsically online resources. Note that all entry " "types support the url field. For example, when adding an article " "from an online journal, it may be preferable to use the @article type and " "its url field." msgstr "" "Una risorsa online author, editor e year sono " "inammissibili in determinati termini. Questo tipo di voce è destinato a " "fonti come siti Web che sono intrinsecamente risorse online. Tutti i tipi di " "voci supportano il campo url. Ad esempio, quando si aggiunge un " "articolo da un diario online, potrebbe essere preferibile utilizzare il tipo " "@article e il suo campo url." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:57 msgid "Patent" msgstr "Brevetto" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:57 msgid "" "A patent or patent request. The number or record token is given in the " "number field. Use the type field to specify the type and " "the location field to indicate the scope of the patent, if " "different from the scope implied by the type. Note that the " "location field is treated as a key list with this entry type." msgstr "" "Una richiesta di brevetto o brevetto. Il numero o il token del record è " "indicato nel campo number. Utilizzare il campo type per " "specificare il tipo e il campo location per indicare l'ambito del " "brevetto, se diverso dall'ambito implicito dal type . Si noti che " "il campo location viene trattato come un elenco di chiavi con " "questo tipo di voce." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:58 msgid "Complete Issue of a Periodical" msgstr "Emissione completa di un periodico" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:58 msgid "" "An complete issue of a periodical, such as a special issue of a journal. The " "title of the periodical is given in the title field. If the issue " "has its own title in addition to the main title of the periodical, it goes " "in the issuetitle field. The editor is omissible under " "certain terms." msgstr "" "Un numero completo di un periodico, come un numero speciale di un giornale. " "Il titolo del periodico è indicato nel campo title. Se il problema " "ha un proprio titolo in aggiunta al titolo principale del periodico, va nel " "campo issuetitle. L 'editor è impossibile in certi termini." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:59 msgid "Supplemental Material in a Periodical" msgstr "Materiale supplementare in un periodico" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:59 msgid "" "Supplemental material in a @periodical. This type is similar to @suppbook " "but related to the @periodical entry type. The role of this entry type may " "be more obvious if you bear in mind that the @article type could also be " "called @inperiodical. This type may be useful when referring to items such " "as regular columns, obituaries, letters to the editor, etc. which only have " "a generic title. Style guides may require such items to be formatted " "differently from articles in the strict sense of the word. The standard " "styles will treat this entry type as an alias for @article." msgstr "" "Materiale supplementare in un @periodical. Questo tipo è simile a @suppbook " "ma correlato al tipo di voce @periodical. Il ruolo di questo tipo di voce " "può essere più ovvio se si tiene presente che il tipo @article potrebbe " "anche essere chiamato @inperiodical. Questo tipo può essere utile quando si " "fa riferimento a elementi come colonne regolari, necrologi, lettere " "all'editore, ecc. Che hanno solo un titolo generico. Le guide di stile " "possono richiedere che tali elementi siano formattati in modo diverso dagli " "articoli nel senso stretto della parola. Gli stili standard considereranno " "questo tipo di voce come un alias per @article." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:60 msgid "Conference Proceedings" msgstr "Atti del convegno" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:60 msgid "" "A single-volume conference proceedings. This type is very similar to " "@collection. It supports an optional organization field which holds " "the sponsoring institution. The editor is omissible under certain " "terms." msgstr "" "Una conferenza a volume unico. Questo tipo è molto simile a @collection. " "Supporta un campo organization facoltativo che detiene " "l'istituzione sponsor. L 'editor è impossibile in certi termini." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:61 msgid "Multi-volume Proceedings Entry" msgstr "Registrazione degli atti multi-volume" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:61 msgid "" "A multi-volume @proceedings entry. For backwards compatibility, multi-volume " "proceedings are also supported by the entry type @proceedings. However, it " "is advisable to make use of the dedicated entry type @mvproceedings." msgstr "" "Una voce multi-volume @proceedings. Per compatibilità con le versioni " "precedenti, i procedimenti multi-volume sono supportati anche dal tipo di " "voce @procedure. Tuttavia, è consigliabile utilizzare il tipo di voce " "dedicato @mvproceedings." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:62 msgid "Article in Conference Proceedings" msgstr "Articolo in atti del convegno" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:62 msgid "" "An article in a conference proceedings. This type is similar to " "@incollection. It supports an optional organization field." msgstr "" "Un articolo in una conferenza. Questo tipo è simile a @incollection. " "Supporta un campo organization opzionale." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:63 msgid "" "A single-volume work of reference such as an encyclopedia or a dictionary. " "This is a more specific variant of the generic @collection entry type. The " "standard styles will treat this entry type as an alias for @collection." msgstr "" "Un'opera di riferimento a volume singolo come un'enciclopedia o un " "dizionario. Questa è una variante più specifica del tipo di voce @collection " "generico. Gli stili standard considereranno questo tipo di voce come un " "alias per @collection." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:64 msgid "Multi-volume Reference Entry" msgstr "Voce di riferimento multi-volume" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:64 msgid "" "A multi-volume @reference entry. The standard styles will treat this entry " "type as an alias for @mvcollection. For backwards compatibility, multi-" "volume references are also supported by the entry type @reference. However, " "it is advisable to make use of the dedicated entry type @mvreference." msgstr "" "Una voce @reference multi-volume. Gli stili standard considereranno questo " "tipo di voce come un alias per @mvcollection. Per compatibilità con le " "versioni precedenti, i riferimenti multi-volume sono supportati anche dal " "tipo di voce @reference. Tuttavia, è consigliabile utilizzare il tipo di " "voce dedicato @mvreference." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:65 msgid "Article in a Reference" msgstr "Articolo in un riferimento" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:65 msgid "" "An article in a work of reference. This is a more specific variant of the " "generic @incollection entry type. The standard styles will treat this entry " "type as an alias for @incollection." msgstr "" "Un articolo in un'opera di riferimento. Questa è una variante più specifica " "del tipo di voce @incollection generico. Gli stili standard considereranno " "questo tipo di voce come un alias per @incollection." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:66 msgid "Report" msgstr "Rapporto" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:66 msgid "" "A technical report, research report, or white paper published by a " "university or some other institution. Use the type field to specify " "the type of report. The sponsoring institution goes in the institution field." msgstr "" "Un rapporto tecnico, un rapporto di ricerca o un white paper pubblicato da " "un'università o da qualche altra istituzione. Utilizzare il campo type per specificare il tipo di report. L'istituzione promotrice entra nel " "campo institution." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:67 msgid "Software" msgstr "Software" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:67 msgid "" "Computer software. The standard styles will treat this entry type as an " "alias for @misc." msgstr "" "Software per il computer. Gli stili standard considereranno questo tipo di " "voce come un alias per @misc." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:68 msgid "Thesis" msgstr "Tesi" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:68 msgid "" "A thesis written for an educational institution to satisfy the requirements " "for a degree. Use the type field to specify the type of thesis." msgstr "" "Una tesi scritta per un istituto di istruzione per soddisfare i requisiti " "per una laurea. Utilizzare il campo type per specificare il tipo di " "tesi." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:69 msgid "Unpublished" msgstr "Non pubblicato" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:69 msgid "" "A work with an author and a title which has not been formally published, " "such as a manuscript or the script of a talk. Use the fields " "howpublished and note to supply additional information in " "free format, if applicable." msgstr "" "Un'opera con un autore e un titolo che non è stato pubblicato formalmente, " "come un manoscritto o la testo di un discorso. Usa i campi howpublished e note per fornire informazioni aggiuntive in formato libero, " "se applicabile." #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:159 msgid "Create a new BibTeX Entry" msgstr "Crea una nuova voce BibTeX" #: setzer/dialogs/bibtex_wizard/bibtex_wizard.py:159 msgid "Add BibTeX Entry" msgstr "Aggiungi voce BibTeX" #: setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py:59 #: setzer/dialogs/building_failed/building_failed.py:49 #: setzer/dialogs/build_save/build_save.py:50 #: setzer/dialogs/close_confirmation/close_confirmation.py:119 #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:60 #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:109 #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:94 #: setzer/dialogs/interpreter_missing/interpreter_missing.py:53 #: setzer/dialogs/open_document/open_document.py:46 #: setzer/dialogs/open_session/open_session.py:46 #: setzer/dialogs/preferences/pages/page_font_color.py:339 #: setzer/dialogs/preferences/pages/page_font_color.py:384 #: setzer/dialogs/replace_confirmation/replace_confirmation.py:49 #: setzer/dialogs/save_document/save_document.py:57 #: setzer/dialogs/save_session/save_session.py:66 msgid "_Cancel" msgstr "_Cancella" #: setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py:61 #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:62 msgid "_Back" msgstr "_Precedente" #: setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py:64 #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:65 msgid "_Next" msgstr "_Successivo" #: setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py:67 #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:68 msgid "_Create" msgstr "_Crea" #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:62 #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:63 msgid "Choose a document type" msgstr "Segli la tipologia del documento" #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:63 #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:102 #: setzer/dialogs/document_wizard/pages/page_article_settings.py:104 #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:122 #: setzer/dialogs/document_wizard/pages/page_book_settings.py:104 #: setzer/dialogs/document_wizard/pages/page_document_class.py:60 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:88 #: setzer/dialogs/document_wizard/pages/page_letter_settings.py:90 #: setzer/dialogs/document_wizard/pages/page.py:50 #: setzer/dialogs/document_wizard/pages/page_report_settings.py:104 msgid "Step" msgstr "Passo" #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:90 #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:108 msgid "Required fields" msgstr "Campo obbligatorio" #: setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py:97 #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:121 msgid "Optional fields" msgstr "Campo opzionale" #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:102 msgid "Entry fields" msgstr "Campo vuoto" #: setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py:123 msgid "Insert empty optional fields" msgstr "Inserisci campi opzionali vuoti" #: setzer/dialogs/building_failed/building_failed.py:44 msgid "Something went wrong." msgstr "Qualcosa è andato storto." #: setzer/dialogs/building_failed/building_failed.py:45 #, python-brace-format msgid "" "The build process ended unexpectedly returning \"{error_message}\".\n" "\n" "To configure your build system go to Preferences." msgstr "" "Il processo di compilazione è terminato inaspettatamente restituendo " "\"{error_message}\".\n" "\n" "Per configurare il tuo sistema di compilazione vai su impostazioni." #: setzer/dialogs/building_failed/building_failed.py:49 #: setzer/dialogs/interpreter_missing/interpreter_missing.py:53 msgid "_Go to Preferences" msgstr "_Vai a impostazioni" #: setzer/dialogs/build_save/build_save.py:47 #, python-brace-format msgid "Document »{document}« has no filename." msgstr "Il documento »{document}« non ha un nome." #: setzer/dialogs/build_save/build_save.py:48 msgid "" "Please save your document to a file, so the build system knows where to put " "the .pdf (it will be in the same folder as your document)." msgstr "" "Salvare il documento in un file, in modo che il sistema di compilazione " "sappia dove inserire il file .pdf (sarà nella stessa cartella del documento)." #: setzer/dialogs/build_save/build_save.py:50 msgid "_Save document now" msgstr "_Salva documento ora" #: setzer/dialogs/close_confirmation/close_confirmation.py:86 #, python-brace-format msgid "Document »{document}« has unsaved changes." msgstr "Il documento »{document}« ha modifiche non salvate." #: setzer/dialogs/close_confirmation/close_confirmation.py:87 msgid "If you close without saving, these changes will be lost." msgstr "Se chiudi senza salvare, queste modifiche andranno perse." #: setzer/dialogs/close_confirmation/close_confirmation.py:90 #, python-brace-format msgid "" "There are {amount} documents with unsaved changes.\n" "Save changes before closing?" msgstr "" "Ci sono {amount} socumenti con modifiche non salvate.\n" "Salvare le modifiche prima di chiudere?" #: setzer/dialogs/close_confirmation/close_confirmation.py:91 msgid "Select the documents you want to save:" msgstr "Seleziona i documenti che vuoi salvare:" #: setzer/dialogs/close_confirmation/close_confirmation.py:113 msgid "If you close without saving, all changes will be lost." msgstr "Se chiudi senza salvare, tutte le modifiche saranno perse." #: setzer/dialogs/close_confirmation/close_confirmation.py:119 msgid "Close _without Saving" msgstr "Chiudi _senza salvare" #: setzer/dialogs/close_confirmation/close_confirmation.py:119 #: setzer/dialogs/save_document/save_document.py:57 #: setzer/dialogs/save_document/save_document.py:65 #: setzer/dialogs/save_session/save_session.py:66 #: setzer/dialogs/save_session/save_session.py:74 msgid "_Save" msgstr "_Salva" #: setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py:49 #, python-brace-format msgid "Document »{document}« has changed on disk." msgstr "Il documento »{document}« è stato modificato sul disco" #: setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py:50 msgid "Should Setzer reload it now?" msgstr "Ricaricare ora Setzer?" #: setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py:52 msgid "_Keep the current Version" msgstr "_Mantieni documento corrente" #: setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py:52 msgid "_Reload from Disk" msgstr "_Ricarica dal disco" #: setzer/dialogs/document_deleted_on_disk/document_deleted_on_disk.py:43 #, python-brace-format msgid "Document »{document}« was deleted from disk or moved." msgstr "" #: setzer/dialogs/document_deleted_on_disk/document_deleted_on_disk.py:44 msgid "" "If you close it or close Setzer without saving, this document will be lost." msgstr "" #: setzer/dialogs/document_deleted_on_disk/document_deleted_on_disk.py:46 msgid "Ok" msgstr "" #: setzer/dialogs/document_wizard/document_wizard.py:247 msgid "" "% NOTE: The content of your document has been commented out\n" "% by the wizard. Just do a CTRL+Z (undo) to put it back in\n" "% or remove the \"%\" before each line you want to keep.\n" "% You can remove this note as well.\n" "% \n" msgstr "" "% NOTA: il contenuto del documento è stato commentato\n" "% dalla procedura guidata. Basta fare un CTRL + Z (annulla) per rimetterlo " "dentro\n" "% o rimuovi \"%\" prima di ogni riga che desideri mantenere.\n" "% È possibile rimuovere anche questa nota.\n" "%\n" #: setzer/dialogs/document_wizard/document_wizard_viewgtk.py:57 #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:80 msgid "Create a template document" msgstr "Crea un documento modello" #: setzer/dialogs/document_wizard/pages/page_article_settings.py:103 #: setzer/dialogs/document_wizard/pages/page_article_settings.py:104 msgid "Article settings" msgstr "Impostazioni articolo" #: setzer/dialogs/document_wizard/pages/page_article_settings.py:111 #: setzer/dialogs/document_wizard/pages/page_book_settings.py:111 #: setzer/dialogs/document_wizard/pages/page_report_settings.py:111 msgid "Two-column layout" msgstr "Layout a due colonne" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:121 #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:122 msgid "Beamer settings" msgstr "Impostazioni proiezione" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:128 msgid "Themes" msgstr "Temi" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:150 #: setzer/dialogs/document_wizard/pages/page_book_settings.py:106 #: setzer/dialogs/document_wizard/pages/page_report_settings.py:106 #: setzer/dialogs/preferences/pages/page_build_system.py:142 msgid "Options" msgstr "Opzioni" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:155 msgid "Show navigation buttons" msgstr "Mostra bottoni di navigazione" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:156 msgid "Align content to the top of pages" msgstr "Allinea il contenuto nella parte superiore delle pagine" #: setzer/dialogs/document_wizard/pages/page_beamer_settings.py:158 msgid "(\"t\" option, it's centered by default)" msgstr "(opzione \"t\", è centrata per impostazione predefinita)" #: setzer/dialogs/document_wizard/pages/page_book_settings.py:103 #: setzer/dialogs/document_wizard/pages/page_book_settings.py:104 msgid "Book settings" msgstr "Impostazioni libro" #: setzer/dialogs/document_wizard/pages/page_document_class.py:59 #: setzer/dialogs/document_wizard/pages/page_document_class.py:60 msgid "Choose a document class" msgstr "Scegli classe del documento" #: setzer/dialogs/document_wizard/pages/page_document_class.py:81 msgid "" "Article: For articles in scientific journals, term papers, handouts, " "short reports, ...\n" "\n" "This class on its own is pretty simplistic and is often used as a starting " "point for more custom layouts." msgstr "" "Article: Per articoli su riviste scientifiche, tesine, volantini, " "brevi relazioni, ...\n" "\n" "Questa classe da sola è piuttosto semplicistica e viene spesso utilizzato " "come punto di partenza per layout personalizzati." #: setzer/dialogs/document_wizard/pages/page_document_class.py:82 msgid "Book: For actual books containing many chapters and sections." msgstr "Book: Per libri reali contenenti molti capitoli e sezioni." #: setzer/dialogs/document_wizard/pages/page_document_class.py:83 msgid "" "Report: For longer reports and articles containing more than one " "chapter, small books, thesis." msgstr "" "Report: Per rapporti e articoli più lunghi contenenti più di un " "capitolo, piccoli libri, tesi." #: setzer/dialogs/document_wizard/pages/page_document_class.py:84 msgid "Letter: For writing letters." msgstr "Letter: Per scrivere lettere." #: setzer/dialogs/document_wizard/pages/page_document_class.py:85 msgid "" "Beamer: A class for making presentation slides with LaTeX.\n" "\n" "There are many predefined presentation styles." msgstr "" "Beamer: Una classe per creare diapositive di presentazione con " "LaTeX.\n" "\n" "Esistono molti stili di presentazione predefiniti." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:87 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:88 msgid "General document settings" msgstr "Impostazioni generali documento" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:92 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:111 msgid "Title" msgstr "Titolo" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:97 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:110 msgid "Author" msgstr "Autore" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:106 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:112 msgid "Date" msgstr "Data" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:120 msgid "Packages" msgstr "Pacchetti" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:131 msgid "AMS math packages" msgstr "Pacchetti matematici AMS" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:158 msgid "" "AMS packages: provide mathematical symbols, math-related " "environments, ..." msgstr "" "Pacchetti AMS: Forniscono simboli matematici, ambienti matematici, ..." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:158 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:159 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:160 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:161 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:162 #: setzer/dialogs/document_wizard/pages/page_general_settings.py:163 #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:80 #: setzer/dialogs/preferences/pages/page_build_system.py:178 msgid "recommended" msgstr "Raccomandato" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:159 msgid "contains symbols to be used in textmode." msgstr "contiene simboli da utilizzare in modalità testo." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:160 msgid "include graphics in your document." msgstr "Includi grafica nel tuo documento" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:161 msgid "foreground and background color." msgstr "" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:162 msgid "enables colored text." msgstr "Abilita testo colorato" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:163 msgid "type urls with the \\url{..} command without escaping them." msgstr "" "digitare gli indirizzi con il comando \\url {..} senza usare caratteri " "escape." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:164 msgid "create hyperlinks within your document." msgstr "Crea collegamenti ipertestuali nel tuo documento" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:165 msgid "" "define theorem environments (like \"definition\", \"lemma\", ...) with " "custom styling." msgstr "" "definire gli ambienti del teorema (come \"definizione\", \"lemma\", ...) con " "uno stile personalizzato." #: setzer/dialogs/document_wizard/pages/page_general_settings.py:166 msgid "provides the \\listing environment for embedding programming code." msgstr "Fornisce l'ambiente \\listing per incorporare codice sorgente" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:167 msgid "create a glossary for your document." msgstr "Crea un glossario per il tuo documento" #: setzer/dialogs/document_wizard/pages/page_general_settings.py:168 msgid "paragraphs without indentation." msgstr "Paragrafi senza indentazioni" #: setzer/dialogs/document_wizard/pages/page_letter_settings.py:89 #: setzer/dialogs/document_wizard/pages/page_letter_settings.py:90 msgid "Letter settings" msgstr "Impostazioni lettera" #: setzer/dialogs/document_wizard/pages/page.py:56 msgid "Page format" msgstr "Formato pagina" #: setzer/dialogs/document_wizard/pages/page.py:69 msgid "Portrait" msgstr "Verticale" #: setzer/dialogs/document_wizard/pages/page.py:70 msgid "Landscape" msgstr "Orizzontale" #: setzer/dialogs/document_wizard/pages/page.py:75 msgid "Page margins" msgstr "Margini pagina" #: setzer/dialogs/document_wizard/pages/page.py:79 msgid "Use default margins" msgstr "Usa margini predefiniti" #: setzer/dialogs/document_wizard/pages/page.py:107 msgid "All values are in cm (1 inch ≅ 2.54 cm)." msgstr "Tutti i valori sono in cm (1 inch ≅ 2.54 cm)." #: setzer/dialogs/document_wizard/pages/page.py:112 msgid "Font size" msgstr "Dimensione font" #: setzer/dialogs/document_wizard/pages/page_report_settings.py:103 #: setzer/dialogs/document_wizard/pages/page_report_settings.py:104 msgid "Report settings" msgstr "Impostazioni rapporto" #: setzer/dialogs/include_bibtex_file/include_bibtex_file.py:95 msgid "BibTeX Files" msgstr "Files BibTeX" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:48 msgid "BibTeX file to include" msgstr "File BibTeX da includere" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:55 msgid "Select a BibTeX File" msgstr "Seleziona un file BibTeX" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:58 msgid "Bibliography style" msgstr "Stile bibliografia" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:74 msgid "Show bibliography styles for the 'natbib' package" msgstr "Mostra stili di bibliografici per il pacchetto 'natbib'" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:107 msgid "Include BibTeX file" msgstr "Includi file BibTeX" #: setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py:112 #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:97 msgid "_Include" msgstr "_Includi" #: setzer/dialogs/include_latex_file/include_latex_file.py:33 msgid "Relative Path" msgstr "Percorso relativo" #: setzer/dialogs/include_latex_file/include_latex_file.py:33 msgid "Absolute Path" msgstr "Percorso assoluto" #: setzer/dialogs/include_latex_file/include_latex_file.py:68 msgid "LaTeX Files" msgstr "File LaTeX" #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:48 msgid "LaTeX file to include" msgstr "File LaTeX da includere" #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:54 msgid "Select a LaTeX File" msgstr "Seleziona un file LaTeX" #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:57 msgid "Type of path to included file" msgstr "Tipo di percorso da includere" #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:80 msgid "" "Relative Path: Set the path relative to the main document. This is " "useful when the included file is in the same folder as the main document and " "you want to move around both of them together." msgstr "" "Percorso relativo: Imposta il percorso relativo al documento " "principale. Ciò è utile quando il file incluso si trova nella stessa " "cartella di il documento principale e vuoi spostarli entrambi insieme." #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:80 msgid "" "Absolute Path: Specify the absolute location of the included file in " "your filesystem." msgstr "" "Percorso assoluto: Specifica la posizione assoluta del file incluso " "nel tuo filesystem." #: setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py:92 msgid "Include LaTeX file" msgstr "Includi file LaTeX" #: setzer/dialogs/interpreter_missing/interpreter_missing.py:46 msgid "LateX Interpreter is missing." msgstr "Interprete LaTeX mancante" #: setzer/dialogs/interpreter_missing/interpreter_missing.py:47 #, python-brace-format msgid "" "Setzer is configured to use »{interpreter}« which seems to be missing on " "this system.\n" "\n" "To choose a different interpreter go to Preferences.\n" "\n" "For instructions on installing LaTeX see https://en.wikibooks.org/wiki/LaTeX/Installation" msgstr "" "Setzer è configurato per usare »{interpreter}«, che sembra mancare su questo " "sistema.\n" "\n" "Per selezionare un altro interprete andare in impostazioni.\n" "\n" "Per ulteriori informazioni sull'installazione di LaTeX visitare https://en.wikibooks." "org/wiki/LaTeX/Installation" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:35 msgid "Documents" msgstr "Documenti" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:36 msgid "Create new document" msgstr "Crea un documento" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:37 #: setzer/workspace/headerbar/headerbar_viewgtk.py:52 #: setzer/workspace/headerbar/headerbar_viewgtk.py:60 msgid "Open a document" msgstr "Apri un documento" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:38 msgid "Show recent documents" msgstr "Mostra documenti recenti" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:39 #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:54 msgid "Show open documents" msgstr "Mostra documenti aperti" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:40 msgid "Switch to the next open document" msgstr "Passa al prossimo documento aperto" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:41 #: setzer/workspace/headerbar/headerbar_viewgtk.py:92 msgid "Save the current document" msgstr "Salva documento corrente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:42 msgid "Save the document with a new filename" msgstr "Salva documento con un nuovo nome" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:43 msgid "Close the current document" msgstr "Chiudi documento corrente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:46 #: setzer/workspace/headerbar/headerbar_viewgtk.py:131 #: setzer/workspace/headerbar/headerbar_viewgtk.py:174 msgid "Tools" msgstr "Strumenti" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:47 #: setzer/document/latex/build_widget/build_widget_viewgtk.py:37 msgid "Save and build .pdf-file from document" msgstr "" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:48 msgid "Build .pdf-file from document" msgstr "Compila file PDF dal documento" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:52 msgid "Show help panel" msgstr "Mostra pannello d'auito" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:53 msgid "Spellchecking dialog" msgstr "Finestra di dialogo controllo ortografico" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:54 msgid "Show build log" msgstr "Mostra il log di compilazione" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:55 msgid "Show side panel" msgstr "Mostra pannello laterale" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:56 msgid "Show preview panel" msgstr "Mostra pannello anteprima" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:57 msgid "Close Application" msgstr "Chiudi applicazione" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:60 #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:64 msgid "Find and Replace" msgstr "Trova e sostituisci" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:61 #: setzer/workspace/help_panel/help_panel_viewgtk.py:60 msgid "Find" msgstr "Trova" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:62 msgid "Find the next match" msgstr "Trova la corrispondenza successiva" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:63 msgid "Find the previous match" msgstr "Trova la corrispondenza precedente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:67 #: setzer/document/context_menu/context_menu_viewgtk.py:71 msgid "Zoom" msgstr "" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:68 #: setzer/document/latex/preview/zoom_widget/zoom_widget_viewgtk.py:34 msgid "Zoom in" msgstr "Zoom in" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:69 #: setzer/document/latex/preview/zoom_widget/zoom_widget_viewgtk.py:30 msgid "Zoom out" msgstr "Zoom out" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:70 msgid "Reset zoom" msgstr "" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:74 msgid "Copy selected text to clipboard" msgstr "Copia il testo dagli appunti" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:75 msgid "Cut selected text to clipboard" msgstr "Taglia il testo dagli appunti" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:76 msgid "Paste text from clipboard" msgstr "Incolla il testo dagli appunti" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:79 msgid "Undo and Redo" msgstr "Annulla e ripeti" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:80 msgid "Undo previous text edit" msgstr "Annulla precedente modifica del testo " #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:81 msgid "Redo previous text edit" msgstr "Ripeti precedente modifica del testo " #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:84 msgid "Selection" msgstr "Selezione" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:85 msgid "Select all text" msgstr "Seleziona tutto il testo" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:88 msgid "Editing" msgstr "Modidica" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:89 msgid "Toggle insert / overwrite" msgstr "Commuta inserimento / sovrascrittura" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:90 msgid "Move current line up" msgstr "Sposta su linea corrente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:91 msgid "Move current line down" msgstr "Sposta giù linea corrente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:92 msgid "Move current word left" msgstr "Muovi a sinistra la parola corrente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:93 msgid "Move current word right" msgstr "Muovi a destra la parola corrente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:94 msgid "Increment number at cursor" msgstr "Incrementa il numero sul cursore" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:95 msgid "Decrement number at cursor" msgstr "Decrementa il numero sul cursore" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:98 msgid "LaTeX Shortcuts" msgstr "Scorciatoie LaTeX" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:99 msgid "Comment / Uncomment current line(s)" msgstr "" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:100 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:226 msgid "New Line" msgstr "Nuova linea" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:101 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:74 msgid "Bold Text" msgstr "Testo rassetto" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:102 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:65 msgid "Italic Text" msgstr "Testo corsivo" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:103 msgid "Underlined Text" msgstr "Testo sottolineato" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:104 msgid "Typewriter Text" msgstr "Testo macchina da scrivere" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:105 msgid "Emphasized Text" msgstr "Testo enfatizzato" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:106 msgid "Quotation Marks" msgstr "Testo citato" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:107 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:258 msgid "List Item" msgstr "Elemento lista" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:108 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:181 msgid "Environment" msgstr "Ambiente" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:111 msgid "Math Shortcuts" msgstr "Scorciatoie" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:112 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:324 msgid "Inline Math Section" msgstr "Sezione matematica inline" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:113 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:325 msgid "Display Math Section" msgstr "Mostra sezione matematica" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:114 msgid "Equation" msgstr "Equazione" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:115 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:328 msgid "Subscript" msgstr "Subscript" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:116 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:329 msgid "Superscript" msgstr "Superscript" #: setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py:117 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:330 msgid "Fraction" msgstr "Frazione" #: setzer/dialogs/open_document/open_document.py:46 #: setzer/dialogs/open_document/open_document.py:52 #: setzer/dialogs/open_session/open_session.py:46 #: setzer/dialogs/open_session/open_session.py:52 msgid "_Open" msgstr "_Apri" #: setzer/dialogs/open_document/open_document.py:47 #: setzer/workspace/headerbar/headerbar_viewgtk.py:48 #: setzer/workspace/headerbar/headerbar_viewgtk.py:59 msgid "Open" msgstr "Apri" #: setzer/dialogs/open_document/open_document.py:62 msgid "LaTeX and BibTeX Files" msgstr "Files LaTeX e BibTeX" #: setzer/dialogs/open_session/open_session.py:47 msgid "Load Session" msgstr "Carica siessione" #: setzer/dialogs/open_session/open_session.py:59 msgid "Setzer Session" msgstr "Sessione Setzer" #: setzer/dialogs/preferences/pages/page_build_system.py:115 msgid "LaTeX Interpreter" msgstr "Interprete LaTeX" #: setzer/dialogs/preferences/pages/page_build_system.py:122 msgid "" "No LaTeX interpreter found. For instructions on installing LaTeX see https://en.wikibooks." "org/wiki/LaTeX/Installation" msgstr "" #: setzer/dialogs/preferences/pages/page_build_system.py:147 msgid "" "Automatically remove helper files (.log, .dvi, ...) after building .pdf." msgstr "" "Rimuovi automaticamente i file di supporto (.log, .dvi, ...) dopo aver " "creato il .pdf." #: setzer/dialogs/preferences/pages/page_build_system.py:149 msgid "Use Latexmk" msgstr "" #: setzer/dialogs/preferences/pages/page_build_system.py:153 msgid "Automatically show build log .." msgstr "Mostra automaticamente il registro di compilazione .." #: setzer/dialogs/preferences/pages/page_build_system.py:158 msgid ".. only when errors occurred." msgstr ".. solo quando si sono verificati errori." #: setzer/dialogs/preferences/pages/page_build_system.py:159 msgid ".. on errors and warnings." msgstr ".. su errori e avvisi." #: setzer/dialogs/preferences/pages/page_build_system.py:160 msgid ".. on errors, warnings and badboxes." msgstr ".. su errori, avvisi e badboxes." #: setzer/dialogs/preferences/pages/page_build_system.py:166 msgid "Embedded system commands" msgstr "Comandi di sistema integrati" #: setzer/dialogs/preferences/pages/page_build_system.py:173 msgid "" "Warning: enable this only if you have to. It can cause security problems " "when building files from untrusted sources." msgstr "" "Attenzione: abilitare questo solo se è necessario. Può causare problemi di " "sicurezza durante la compilazione di file da fonti non attendibili." #: setzer/dialogs/preferences/pages/page_build_system.py:178 msgid "Disable" msgstr "Disabilita" #: setzer/dialogs/preferences/pages/page_build_system.py:179 msgid "Enable restricted \\write18{SHELL COMMAND}" msgstr "Abilita \\write18{SHELL COMMAND} limitato" #: setzer/dialogs/preferences/pages/page_build_system.py:180 msgid "Fully enable \\write18{SHELL COMMAND}" msgstr "Abilita \\write18{SHELL COMMAND} completo" #: setzer/dialogs/preferences/pages/page_editor.py:65 msgid "Tab Stops" msgstr "Tab stops" #: setzer/dialogs/preferences/pages/page_editor.py:70 msgid "Insert spaces instead of tabs" msgstr "Inserisci spazi anziché tabs" #: setzer/dialogs/preferences/pages/page_editor.py:74 msgid "Set Tab Width:" msgstr "Imposta larghezza tab:" #: setzer/dialogs/preferences/pages/page_editor.py:85 msgid "Line Numbers" msgstr "Numero linee" #: setzer/dialogs/preferences/pages/page_editor.py:90 msgid "Show line numbers" msgstr "Mostra numero linee" #: setzer/dialogs/preferences/pages/page_editor.py:94 msgid "Line Wrapping" msgstr "Ritorno a capo automatico" #: setzer/dialogs/preferences/pages/page_editor.py:99 msgid "Enable line wrapping" msgstr "Abilita ritorno a capo automatico" #: setzer/dialogs/preferences/pages/page_editor.py:103 msgid "Code Folding" msgstr "Comprimi codice" #: setzer/dialogs/preferences/pages/page_editor.py:108 msgid "Enable code folding" msgstr "Attiva compressione codice" #: setzer/dialogs/preferences/pages/page_editor.py:112 msgid "Highlighting" msgstr "Evidenziazione" #: setzer/dialogs/preferences/pages/page_editor.py:117 msgid "Highlight current line" msgstr "Evidenzia linea corrente" #: setzer/dialogs/preferences/pages/page_editor.py:119 msgid "Highlight matching brackets" msgstr "Evidenzia parentesi abbinate" #: setzer/dialogs/preferences/pages/page_font_color.py:212 msgid "Font" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:219 msgid "Use the system fixed width font (" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:226 msgid "Set Editor Font:" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:240 msgid "Light Color Scheme" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:247 msgid "Dark Color Scheme" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:272 msgid "Manage Color Schemes" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:288 msgid "Preview" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:339 #: setzer/dialogs/preferences/pages/page_font_color.py:345 msgid "_Add Scheme" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:340 msgid "Add Scheme" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:352 msgid "Color Scheme Files" msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:380 #, python-brace-format msgid "Removing syntax scheme »{name}«." msgstr "" #: setzer/dialogs/preferences/pages/page_font_color.py:382 #: setzer/dialogs/replace_confirmation/replace_confirmation.py:47 msgid "Do you really want to do this?" msgstr "Vuoi davvero farlo?" #: setzer/dialogs/preferences/pages/page_font_color.py:384 msgid "_Yes, remove it" msgstr "" #: setzer/dialogs/preferences/preferences.py:51 msgid "Build System" msgstr "Sistema di compilazione" #: setzer/dialogs/preferences/preferences.py:52 msgid "Editor" msgstr "Editor" #: setzer/dialogs/preferences/preferences.py:53 msgid "Font & Colors" msgstr "" #: setzer/dialogs/preferences/preferences_viewgtk.py:40 #: setzer/workspace/headerbar/headerbar_viewgtk.py:133 msgid "Preferences" msgstr "Impostazioni" #: setzer/dialogs/replace_confirmation/replace_confirmation.py:45 #, python-brace-format msgid "Replacing {amount} occurence of »{original}« with »{replacement}«." msgid_plural "" "Replacing {amount} occurrences of »{original}« with »{replacement}«." msgstr[0] "" "Sostituzione di {amount} occorrenza di »{original}« con »{replacement}«." msgstr[1] "" "Sostituzione di {amount} occorrenze di »{original}« con »{replacement}«." #: setzer/dialogs/replace_confirmation/replace_confirmation.py:49 msgid "_Yes, replace all occurrences" msgstr "_Si, sostituisci tutte le occorrenze" #: setzer/dialogs/save_document/save_document.py:58 msgid "Save document" msgstr "Salva documento" #: setzer/dialogs/save_session/save_session.py:67 msgid "Save Session" msgstr "Salva sessione" #: setzer/dialogs/spellchecking_language/spellchecking_language.py:55 msgid "Spellchecking Language" msgstr "Lingua di controllo ortografico" #: setzer/document/context_menu/context_menu_presenter.py:67 #: setzer/document/context_menu/context_menu_viewgtk.py:35 msgid "Cut" msgstr "Taglia" #: setzer/document/context_menu/context_menu_presenter.py:68 #: setzer/document/context_menu/context_menu_viewgtk.py:36 msgid "Copy" msgstr "Copia" #: setzer/document/context_menu/context_menu_presenter.py:69 #: setzer/document/context_menu/context_menu_viewgtk.py:37 msgid "Paste" msgstr "Incolla" #: setzer/document/context_menu/context_menu_presenter.py:70 #: setzer/document/context_menu/context_menu_viewgtk.py:38 msgid "Delete" msgstr "Cancella" #: setzer/document/context_menu/context_menu_presenter.py:71 #: setzer/document/context_menu/context_menu_viewgtk.py:39 msgid "Select All" msgstr "Seleziona tutti" #: setzer/document/context_menu/context_menu_presenter.py:92 #: setzer/document/context_menu/context_menu_viewgtk.py:60 msgid "Toggle Comment" msgstr "" #: setzer/document/context_menu/context_menu_presenter.py:94 #: setzer/document/context_menu/context_menu_viewgtk.py:61 msgid "Show in Preview" msgstr "Mostra in anteprima" #: setzer/document/context_menu/context_menu_viewgtk.py:33 msgid "Undo" msgstr "Annulla" #: setzer/document/context_menu/context_menu_viewgtk.py:33 #: setzer/document/context_menu/context_menu_viewgtk.py:34 #: setzer/document/context_menu/context_menu_viewgtk.py:35 #: setzer/document/context_menu/context_menu_viewgtk.py:36 #: setzer/document/context_menu/context_menu_viewgtk.py:37 #: setzer/document/context_menu/context_menu_viewgtk.py:39 #: setzer/document/context_menu/context_menu_viewgtk.py:60 #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:54 #: setzer/workspace/headerbar/headerbar_viewgtk.py:52 #: setzer/workspace/headerbar/headerbar_viewgtk.py:60 #: setzer/workspace/headerbar/headerbar_viewgtk.py:66 #: setzer/workspace/headerbar/headerbar_viewgtk.py:92 #: setzer/workspace/headerbar/headerbar_viewgtk.py:125 #: setzer/workspace/headerbar/headerbar_viewgtk.py:139 #: setzer/workspace/headerbar/headerbar_viewgtk.py:140 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:69 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:78 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:181 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:226 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:258 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:309 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:324 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:328 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:329 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:331 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:332 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:333 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:348 msgid "Ctrl" msgstr "Ctrl" #: setzer/document/context_menu/context_menu_viewgtk.py:34 msgid "Redo" msgstr "Ripeti" #: setzer/document/context_menu/context_menu_viewgtk.py:34 #: setzer/workspace/headerbar/headerbar_viewgtk.py:52 #: setzer/workspace/headerbar/headerbar_viewgtk.py:125 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:258 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:324 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:325 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:328 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:329 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:330 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:331 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:332 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:333 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:348 msgid "Shift" msgstr "Shift" #: setzer/document/latex/build_system/build_system_presenter.py:86 #, python-brace-format msgid "Failed ({amount} error)!" msgid_plural "Failed ({amount} errors)!" msgstr[0] "Fallito ({amount} errore)!" msgstr[1] "Fallito ({amount} errori)!" #: setzer/document/latex/build_system/build_system_presenter.py:90 msgid "Success!" msgstr "Successo!" #: setzer/document/latex/build_widget/build_widget_viewgtk.py:42 msgid "Stop building" msgstr "Ferma compilazione" #: setzer/document/latex/build_widget/build_widget_viewgtk.py:46 msgid "Cleanup build files" msgstr "Pulisci dai file di compilazione" #: setzer/document/latex/preview/paging_widget/paging_widget.py:66 msgid "Page " msgstr "Pagina " #: setzer/document/latex/preview/paging_widget/paging_widget.py:69 msgid " of " msgstr " di " #: setzer/document/latex/preview/preview_viewgtk.py:35 msgid "External Viewer" msgstr "Visualizzatore esterno" #: setzer/document/latex/preview/preview_viewgtk.py:46 msgid "Show Source" msgstr "Mostra sorgente" #: setzer/document/latex/preview/preview_viewgtk.py:47 msgid "Zoom In" msgstr "Zoom In" #: setzer/document/latex/preview/preview_viewgtk.py:48 msgid "Zoom Out" msgstr "Zoom Out" #: setzer/document/latex/preview/preview_viewgtk.py:49 #: setzer/document/latex/preview/zoom_widget/zoom_widget.py:41 msgid "Fit to Width" msgstr "Adatta alla larghezza" #: setzer/document/latex/preview/preview_viewgtk.py:50 #: setzer/document/latex/preview/zoom_widget/zoom_widget.py:46 msgid "Fit to Text Width" msgstr "Adatta alla larghezza del testo" #: setzer/document/latex/preview/preview_viewgtk.py:51 #: setzer/document/latex/preview/zoom_widget/zoom_widget.py:51 msgid "Fit to Height" msgstr "Adatta all'altezza" #: setzer/document/latex/preview/preview_viewgtk.py:87 msgid "No preview available" msgstr "Anteprima non disponibile" #: setzer/document/latex/preview/preview_viewgtk.py:90 msgid "" "To show a .pdf preview of your document, click the build button in the " "headerbar." msgstr "" "Per mostrare una antemprima .pdf del tuo documento, clicca l'icona compila " "nella barra d'intestazione." #: setzer/document/latex/preview/zoom_widget/zoom_widget_viewgtk.py:54 msgid "Set zoom level" msgstr "Imposta livello zoom" #: setzer/document/search/search_viewgtk.py:55 msgid "Replace" msgstr "Sostituisci" #: setzer/document/search/search_viewgtk.py:57 msgid "Replace selected result" msgstr "Sostituisci risultato selezionato" #: setzer/document/search/search_viewgtk.py:59 msgid "All" msgstr "Tutti" #: setzer/document/search/search_viewgtk.py:61 msgid "Replace all results" msgstr "Sostituisci tutti i risultati" #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:38 msgid "More Actions" msgstr "" #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:47 msgid "Find and Replace (Ctrl+H)" msgstr "Trova e sostituisci (Ctrl+H)" #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:53 msgid "Find (Ctrl+F)" msgstr "Trova (Ctrl+F)" #: setzer/document/shortcutsbar/shortcutsbar_viewgtk.py:69 msgid "New Document Wizard" msgstr "Creazione guidata documento" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:49 msgid "Create New Entry" msgstr "Crea nuova voce" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:60 msgid "Create a New BibTeX Entry" msgstr "Crea nuova voce BibTeX" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:69 msgid "Previously Used Entries" msgstr "Voci utilizzate in precedenza" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:80 msgid "Add a Previously Used BibTeX Entry" msgstr "Aggiungi una voce BibTeX precedentemente utilizzata" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:89 msgid "Search For Entries Online" msgstr "Cerca voci online" #: setzer/workspace/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py:100 msgid "Add a BibTeX Entry from an Online Database" msgstr "Aggiungi una voce BibTeX da un database online" #: setzer/workspace/build_log/build_log_presenter.py:108 #, python-brace-format msgid "Line {number}" msgstr "Linea {number}" #: setzer/workspace/build_log/build_log_presenter.py:136 #, python-brace-format msgid "Building failed with {amount} error" msgid_plural "Building failed with {amount} errors" msgstr[0] "Compilazione fallita con {amount} errore" msgstr[1] "Compilazione fallita con {amount} errori" #: setzer/workspace/build_log/build_log_presenter.py:137 #, python-brace-format msgid "{amount} warning or badbox" msgid_plural "{amount} warnings or badboxes" msgstr[0] "{amount} avviso o badbox" msgstr[1] "{amount} avvisi o badbox" #: setzer/workspace/build_log/build_log_presenter.py:140 msgid "Building successful" msgstr "Compilazione riuscita" #: setzer/workspace/build_log/build_log_presenter.py:145 msgid "no warnings or badboxes" msgstr "nessun avviso o badbox" #: setzer/workspace/document_chooser/document_chooser_viewgtk.py:54 msgid "No results" msgstr "Nessun risultato" #: setzer/workspace/document_chooser/document_chooser_viewgtk.py:59 msgid "Other Documents" msgstr "Altri documenti" #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:107 msgid "Set one Document as Root" msgstr "Imposta un documento come principale" #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:113 msgid "Unset Root Document" msgstr "Rimuovi impostazione documento principale" #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:119 msgid "Click on a document in the list below to set it as root." msgstr "" "Fare clic su un documento nell'elenco seguente per impostarlo come " "principale." #: setzer/workspace/document_switcher/document_switcher_viewgtk.py:123 msgid "" "The root document will get built, no matter which document\n" "you are currently editing, and it will always display in the .pdf\n" "preview. The build log will also refer to the root document.\n" "This is often useful for working on large projects where typically\n" "a top level document (the root) will contain multiple lower\n" "level files via include statements." msgstr "" "Il documento principale verrà creato, indipendentemente dal\n" "documentoche stai modificando, e verrà sempre visualizzato\n" "nell'anteprima .pdf.Il registro di compilazione farà anche\n" "riferimento al documento principale. Ciò è spesso utile per\n" "lavorare su grandi progetti in cui un documentodi livello\n" "superiore (il root) conterrà più file di livelloinferiore\n" "tramite istruzioni include." #: setzer/workspace/headerbar/headerbar_viewgtk.py:42 msgid "Toggle sidebar" msgstr "Commuta barra laterale" #: setzer/workspace/headerbar/headerbar_viewgtk.py:66 msgid "Create a new LaTeX document" msgstr "Crea un nuovo documento" #: setzer/workspace/headerbar/headerbar_viewgtk.py:74 msgid "Create a new document" msgstr "Crea un nuovo documento" #: setzer/workspace/headerbar/headerbar_viewgtk.py:82 msgid "New LaTeX Document" msgstr "Nuovo documento LaTeX" #: setzer/workspace/headerbar/headerbar_viewgtk.py:83 msgid "New BibTeX Document" msgstr "Nuovo documento BibTeX" #: setzer/workspace/headerbar/headerbar_viewgtk.py:90 msgid "Save" msgstr "Salva" #: setzer/workspace/headerbar/headerbar_viewgtk.py:101 msgid "Toggle preview" msgstr "Commuta anteprima" #: setzer/workspace/headerbar/headerbar_viewgtk.py:106 msgid "Toggle help" msgstr "Commuta aiuto" #: setzer/workspace/headerbar/headerbar_viewgtk.py:125 msgid "Save Document As" msgstr "Salva documento come" #: setzer/workspace/headerbar/headerbar_viewgtk.py:126 msgid "Save All Documents" msgstr "Salva tutti i documenti" #: setzer/workspace/headerbar/headerbar_viewgtk.py:128 #: setzer/workspace/headerbar/headerbar_viewgtk.py:156 msgid "Session" msgstr "Sessione" #: setzer/workspace/headerbar/headerbar_viewgtk.py:130 #: setzer/workspace/headerbar/headerbar_viewgtk.py:147 msgid "View" msgstr "Visualizza" #: setzer/workspace/headerbar/headerbar_viewgtk.py:135 msgid "Keyboard Shortcuts" msgstr "Scorciatoie tastiera" #: setzer/workspace/headerbar/headerbar_viewgtk.py:136 msgid "About" msgstr "Informazioni su" #: setzer/workspace/headerbar/headerbar_viewgtk.py:138 msgid "Close All Documents" msgstr "Chiudi tutti i documenti" #: setzer/workspace/headerbar/headerbar_viewgtk.py:139 msgid "Close Document" msgstr "Chiudi documento" #: setzer/workspace/headerbar/headerbar_viewgtk.py:140 msgid "Quit" msgstr "Esci" #: setzer/workspace/headerbar/headerbar_viewgtk.py:148 msgid "Dark Mode" msgstr "Modalità scura" #: setzer/workspace/headerbar/headerbar_viewgtk.py:149 msgid "Invert Colors in .pdf-Preview" msgstr "" #: setzer/workspace/headerbar/headerbar_viewgtk.py:157 msgid "" "Save the list of open documents in a session file\n" "and restore it later, a convenient way to work\n" "on multiple projects." msgstr "" "Salva l'elenco di documenti aperti in un file di sessione\n" "e ripristinarlo in un secondo momento, un modo conveniente\n" "per lavorare su più progetti." #: setzer/workspace/headerbar/headerbar_viewgtk.py:163 msgid "Restore Previous Session" msgstr "Ripristina sessione precedente" #: setzer/workspace/headerbar/headerbar_viewgtk.py:164 msgid "Save Current Session" msgstr "Salva sessione corrente" #: setzer/workspace/headerbar/headerbar_viewgtk.py:175 msgid "Check Spelling" msgstr "Controllo ortografico" #: setzer/workspace/headerbar/headerbar_viewgtk.py:176 msgid "Automatic Spellchecking" msgstr "Controllo ortografico automatico" #: setzer/workspace/headerbar/headerbar_viewgtk.py:177 msgid "Set Spellchecking Language" msgstr "Imposta lingua di controllo ortografico" #: setzer/workspace/help_panel/help_panel_viewgtk.py:35 msgid "Home" msgstr "" #: setzer/workspace/help_panel/help_panel_viewgtk.py:41 msgid "Top" msgstr "" #: setzer/workspace/help_panel/help_panel_viewgtk.py:47 msgid "Back" msgstr "" #: setzer/workspace/help_panel/help_panel_viewgtk.py:53 msgid "Forward" msgstr "" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:58 msgid "Build log" msgstr "Log di compilazione" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:69 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Italic" msgstr "Corsivo" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:78 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Bold" msgstr "Grassetto" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:96 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:109 msgid "Document Info" msgstr "Informazioni documento" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:98 msgid "Document Environment" msgstr "Ambiente documento" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:99 msgid "Show Title" msgstr "Mostra titolo" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:100 msgid "Table of Contents" msgstr "Tabella dei contenuti" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:102 msgid "Include LaTeX File" msgstr "Includi file LaTeX" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:113 msgid "Date Today" msgstr "Data di oggi" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:120 msgid "Document" msgstr "Documento" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:134 msgid "Include BibTeX File" msgstr "Includi file BibTeX" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:135 msgid "Include 'natbib' Package" msgstr "Includi pacchetto 'natbib'" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:137 msgid "Citation with Page Number" msgstr "Citazione con numero di pagina" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:139 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:147 msgid "Natbib Citations" msgstr "Citazione Natbib" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:140 msgid "Include non-cited BibTeX Entries with '\\nocite'" msgstr "Includi voci BibTeX non citate con '\\nocite'" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Abbreviated" msgstr "Abbreviato" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Abbreviated with Brackets" msgstr "Abbreviato con graffe" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Detailed" msgstr "Dettagliato" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Detailed with Brackets" msgstr "Dettagliato con graffe" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Alternative 1" msgstr "Alternativa 1" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:148 msgid "Alternative 2" msgstr "Alternativa 2" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:151 msgid "Cite Author" msgstr "Cita autore" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:151 msgid "Cite Author Detailed" msgstr "Cita autore dettagliato" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:151 msgid "Cite Year" msgstr "Cita anno" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:151 msgid "Cite Year with Brackets" msgstr "Cita anno con parentesi" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:159 msgid "Bibliography" msgstr "Bibliografia" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:173 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:194 msgid "Font Styles" msgstr "Stili font" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:174 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:204 msgid "Font Sizes" msgstr "Dimensioni font" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:175 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:213 msgid "Alignment" msgstr "Allineamento" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:176 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:222 msgid "Vertical Spacing" msgstr "Spaziamento verticale" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:177 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:233 msgid "International Accents" msgstr "Accenti internazionali" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:179 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:242 msgid "Sectioning" msgstr "Sezionando" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:182 msgid "Verbatim Environment" msgstr "Ambiente letterale" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:183 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:254 msgid "List Environments" msgstr "Elenco ambienti" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:184 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:265 msgid "Quotations" msgstr "Citazioni" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:186 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:275 msgid "Cross References" msgstr "Riferimenti incrociati" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:187 msgid "Footnote" msgstr "Nate a piè pagina" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 msgid "Underline" msgstr "Sottolineato" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Sans Serif" msgstr "Sans Serif" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Typewriter" msgstr "Macchina da scrivere" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 msgid "Small Caps" msgstr "Maiuscoletto" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 msgid "Slanted" msgstr "Inclinato" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:195 msgid "Emphasis" msgstr "Enfasi" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:214 msgid "Centered" msgstr "Centrato" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:214 msgid "Left-aligned" msgstr "Allinea a sinistra" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:214 msgid "Right-aligned" msgstr "Allinea a destra" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Part" msgstr "Parte" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Chapter" msgstr "Capitolo" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Section" msgstr "Sezione" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Subsection" msgstr "Sottosezione" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Subsubsection" msgstr "Sotto sottosezione" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Paragraph" msgstr "Paragrafo" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:243 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:246 msgid "Subparagraph" msgstr "Sottoparagrafo" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:255 msgid "Bulleted List" msgstr "Lista puntata" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:255 msgid "Numbered List" msgstr "Lista numerata" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:255 msgid "List with Bold Labels" msgstr "Elenco con etichette in grassetto" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:266 msgid "Short Quotation" msgstr "Citazione breve" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:267 msgid "Longer Quotation" msgstr "citazione lunga" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:268 msgid "Poetry Quotation" msgstr "Citazione poetica" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:276 msgid "Label" msgstr "Etichetta" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:276 msgid "Equation Reference" msgstr "Riferimento equazione" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:276 msgid "Page Reference" msgstr "Riferimento pagina" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:284 msgid "Text" msgstr "Testo" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "Primary Quotes" msgstr "Citazioni primarie" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "Secondary Quotes" msgstr "Citazioni secondarie" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "German Quotes" msgstr "Citazioni tedesche" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "German Single Quotes" msgstr "Citazioni singole tedesche" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "French Quotes" msgstr "Citazioni francesi alternative" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "French Single Quotes" msgstr "Citazioni singoli francesi alternative" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "German Alt Quotes" msgstr "Citazioni tedesche alternative" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:298 msgid "German Alt Single Quotes" msgstr "Citazioni singole tedesche alternative" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:309 msgid "Quotes" msgstr "Citazioni" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:322 msgid "Include AMS Packages" msgstr "Includi pacchtto AMS" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:326 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:346 msgid "Math Environments" msgstr "Ambiente matematico" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:331 msgid "Square Root" msgstr "Radice quadrata" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:335 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:355 msgid "Math Functions" msgstr "Funzioni matematiche" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:336 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:372 msgid "Math Font Styles" msgstr "Stili di caratteri matematici" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:337 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:381 msgid "Math Stacking Symbols" msgstr "Simboli matematici impilabili" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:338 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:395 msgid "Math Accents" msgstr "Accenti matematici" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:339 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:404 msgid "Math Spaces" msgstr "Spazi matematici" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Roman" msgstr "Romano" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Calligraphic" msgstr "Calligrafico" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Blackboard Bold" msgstr "Lavagna grassetto" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:373 msgid "Fraktur" msgstr "" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:413 msgid "Math" msgstr "Matematica" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:428 msgid "Figure (image inside freestanding block)" msgstr "Figura (immagine all'interno del blocco autoportante)" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:429 msgid "Inline Image" msgstr "Immagine in linea" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:430 #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:437 msgid "Code Listing" msgstr "Elenco codice" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:438 msgid "Include 'listings' Package" msgstr "Includi pacchetto 'listings'" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:443 msgid "Other Language" msgstr "Altra lingua" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:444 msgid "Plain Text" msgstr "Testo semplice" #: setzer/workspace/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py:454 msgid "Objects" msgstr "Oggetti" #: setzer/workspace/sidebar/sidebar.py:41 msgid "Greek Letters" msgstr "Lettere greche" #: setzer/workspace/sidebar/sidebar.py:43 msgid "Arrows" msgstr "Frecce" #: setzer/workspace/sidebar/sidebar.py:45 msgid "Relations" msgstr "Relazioni" #: setzer/workspace/sidebar/sidebar.py:47 msgid "Operators" msgstr "Operatori" #: setzer/workspace/sidebar/sidebar.py:49 msgid "Misc. Math" msgstr "Matematica varia" #: setzer/workspace/sidebar/sidebar.py:51 msgid "Misc. Symbols" msgstr "Simboli vari" #: setzer/workspace/sidebar/sidebar_viewgtk.py:106 msgid "Package" msgstr "Pacchetto" #: setzer/workspace/workspace.py:104 #, python-brace-format msgid "Untitled Document {number}" msgstr "Documento senza nome {number}" #~ msgid "Error" #~ msgstr "Errore" #~ msgid "Warning" #~ msgstr "Avviso" #~ msgid "No open documents" #~ msgstr "Nessun documento aperto" #~ msgid "Setzer" #~ msgstr "Setzer" #~ msgid "Cvfosammmm" #~ msgstr "Cvfosammmm" #~ msgid "additional math fonts from AMS." #~ msgstr "Font aggiuntivi da AMS" #~ msgid "mathematics package from AMS." #~ msgstr "Pacchetto di matematica da AMS" #~ msgid "mathematical symbols from AMS." #~ msgstr "Simboli matematici da AMS" #~ msgid "math theorems setting package from AMS." #~ msgstr "Pacchetto di impostazioni per teoremi matematici da AMS" #~ msgid "provides additional bibliography and citation styles." #~ msgstr "fornisce ulteriori stili di bibliografia e citazione." #~ msgid "set transparency for sections in your document." #~ msgstr "imposta la trasparenza per le sezioni del documento." #~ msgid "Greek letter" #~ msgstr "Lettere greche" #~ msgid "Verbatim environment, content won't be interpreted as LaTeX." #~ msgstr "Ambiente letterale, il contenuto non verrà interpretato come LaTeX" #~ msgid "Include a non-cited item from the bibliography" #~ msgstr "Includi un elemento non citato dalla bibliografia" #~ msgid "Include all non-cited items from the bibliography" #~ msgstr "Includi tutti gli elementi non citati dalla bibliografia" #~ msgid "Colored Text" #~ msgstr "Testo colorato" #~ msgid "Monospaced Text" #~ msgstr "Carattere monospace" #~ msgid "Inline verbatim text that won't be interpreted as LaTeX." #~ msgstr "Testo letterale in linea che non verrà interpretato come LaTeX." #~ msgid "Make text 'tiny' within current scope" #~ msgstr "Rendi il testo 'minuscolo' nell'ambito attuale" #~ msgid "Make text 'scriptsize' within current scope" #~ msgstr "Rendi testo 'dimensione script' nell'ambito attuale" #~ msgid "Make text 'footnotesize' within current scope" #~ msgstr "Rendi testo 'dimensione pié di pagina' nell'ambito attuale" #~ msgid "Make text 'small' within current scope" #~ msgstr "Rendi il testo 'piccolo' nell'ambito attuale" #~ msgid "Make text 'normalsize' within current scope" #~ msgstr "Rendi il testo 'di grandezza normale' nell'ambito attuale" #~ msgid "Make text 'large' within current scope" #~ msgstr "Rendi il testo 'grande' nell'ambito attuale" #~ msgid "Make text 'Large' within current scope" #~ msgstr "Rendi il testo 'Grande' nell'ambito attuale" #~ msgid "Make text 'LARGE' within current scope" #~ msgstr "Rendi il testo 'GRANDE' nell'ambito attuale" #~ msgid "Make text 'huge' within current scope" #~ msgstr "Rendi il testo 'enorme' nell'ambito attuale" #~ msgid "Make text 'Huge' within current scope" #~ msgstr "Rendi il testo 'Enorme' nell'ambito attuale" #~ msgid "occurrence" #~ msgid_plural "occurrences" #~ msgstr[0] "occorrenza" #~ msgstr[1] "occorrenze" #~ msgid "{amount} {str_errors}" #~ msgstr "{amount} {str_errors}" Setzer-0.4.4/po/meson.build000066400000000000000000000001151420322575300155530ustar00rootroot00000000000000i18n = import('i18n') i18n.gettext( 'setzer', install_dir: localedir, ) Setzer-0.4.4/scripts/000077500000000000000000000000001420322575300144655ustar00rootroot00000000000000Setzer-0.4.4/scripts/generate_symbols.py000066400000000000000000000105531420322575300204050ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Poppler', '0.18') from gi.repository import Poppler import xml.etree.ElementTree as ET import subprocess, os, os.path import re width_regex = re.compile('exported to ([0-9]+) x ([0-9]+) pixels') folders = [ 'arrows', 'greek_letters', 'operators', 'misc_math', 'misc_text', 'relations' ] def generate_tex(border_h, border_v): tex_file = '''\\documentclass[12pt, border={ ''' + str(border_h) + 'pt ' + str(border_v) + '''pt }]{standalone}\n %\\usepackage[T1]{fontenc}\n ''' try: tex_file += '\\usepackage{' + attrib['package'] + '}\n' except KeyError: pass tex_file += '\\begin{document}\n' try: is_math = attrib['math'] except KeyError: is_math = '0' try: command = attrib['gencommand'] except KeyError: command = attrib['command'] if is_math == '1': tex_file += '\\ensuremath{' + command + '}\n' else: tex_file += command + '\n' tex_file += '\\end{document}\n' return tex_file for folder in folders: tree = ET.parse('../setzer/resources/symbols/' + folder + '.xml') root = tree.getroot() for child in root: attrib = child.attrib # make pdf tex_file = generate_tex(1, 1) with open('./temp.tex', 'w') as f: f.write(tex_file) arguments = ['xelatex', 'temp.tex'] process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE) process.wait() process.kill() # get pdf size document = Poppler.Document.new_from_file('file:' + os.path.dirname(os.path.realpath(__file__)) + '/temp.pdf') page = document.get_page(0) size = page.get_size() # compute borders to make the image square if size.width > size.height: border_h = 1 border_v = 1 + 1.004 * (size.width - size.height) / 2 else: border_h = 1 + (size.height - size.width) / 2 border_v = 1 # make pdf again with adapted borders tex_file = generate_tex(border_h, border_v) with open('./temp.tex', 'w') as f: f.write(tex_file) arguments = ['xelatex', 'temp.tex'] process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE) process.wait() process.kill() # make svg try: os.mkdir('../setzer/resources/symbols') except FileExistsError: pass try: os.mkdir('../setzer/resources/symbols/' + folder) except FileExistsError: pass arguments = ['pdf2svg', 'temp.pdf', '../setzer/resources/symbols/' + folder + '/sidebar-' + attrib['file'][:-4] + '-symbolic.svg'] process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE) process.wait() # get image size arguments = ['inkscape', '--export-png=temp.png', '../setzer/resources/symbols/' + folder + '/sidebar-' + attrib['file'][:-4] + '-symbolic.svg'] process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE) process.wait() output = process.communicate() output = output[0].decode('utf8') width_match = width_regex.search(output) process.kill() child.set('original_width', width_match.group(1)) child.set('original_height', width_match.group(2)) tree.write('../setzer/resources/symbols/' + folder + '.xml') # delete helper files os.remove('temp.tex') os.remove('temp.log') os.remove('temp.aux') os.remove('temp.pdf') os.remove('temp.png') Setzer-0.4.4/scripts/setzer.dev000077500000000000000000000020061420322575300165020ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2020 Robert Griesel # 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 import sys import os.path sys.dont_write_bytecode = True src_path = os.path.join(os.path.dirname(__file__), '..') bld_path = os.path.join(src_path, 'builddir') if os.path.isdir(bld_path): sys.path.insert(0, src_path) from builddir import setzer_dev else: print('Make sure to run `meson builddir` first.') Setzer-0.4.4/setzer.in000077500000000000000000000221761420322575300146550ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gio from gi.repository import GLib import sys import gettext import argparse import os.path from setzer.workspace.workspace import Workspace import setzer.workspace.workspace_viewgtk as view from setzer.app.service_locator import ServiceLocator from setzer.dialogs.dialog_locator import DialogLocator class MainApplicationController(Gtk.Application): def __init__(self): Gtk.Application.__init__(self, application_id='org.cvfosammmm.Setzer', flags=Gio.ApplicationFlags.HANDLES_OPEN) def do_startup(self): Gtk.Application.do_startup(self) self.is_active = False # setup gettext gettext.install('setzer', names=('ngettext',), localedir='@localedir_path@') # get settings self.settings = ServiceLocator.get_settings() dm_default = GLib.Variant.new_boolean(self.settings.get_value('preferences', 'prefer_dark_mode')) self.settings.gtksettings.set_property('gtk-application-prefer-dark-theme', dm_default) # init static variables ServiceLocator.init_setzer_version('@setzer_version@') ServiceLocator.init_resources_path('@resources_path@') ServiceLocator.init_app_icons_path('@app_icons_path@') resources_path = ServiceLocator.get_resources_path() app_icons_path = ServiceLocator.get_app_icons_path() Gtk.IconTheme.append_search_path(Gtk.IconTheme.get_default(), os.path.join(resources_path, 'icons')) for folder in ['arrows', 'greek_letters', 'misc_math', 'misc_text', 'operators', 'relations']: path = os.path.join(resources_path, 'symbols', folder) Gtk.IconTheme.append_search_path(Gtk.IconTheme.get_default(), path) Gtk.IconTheme.append_search_path(Gtk.IconTheme.get_default(), app_icons_path) # init main window, model, dialogs self.main_window = view.MainWindow(self) ServiceLocator.init_main_window(self.main_window) def do_open(self, files, number_of_files, hint=""): if not self.is_active: self.activate() self.is_active = True # open first session file if any for file in files: if file.get_path().endswith('.stzs'): filename = file.get_path() active_document = self.workspace.get_active_document() documents = self.workspace.get_all_documents() unsaved_documents = self.workspace.get_unsaved_documents() dialog = DialogLocator.get_dialog('close_confirmation') not_save_to_close_documents = dialog.run(unsaved_documents)['not_save_to_close_documents'] if len(not_save_to_close_documents) == 0: if documents != None: for document in documents: self.workspace.remove_document(document) self.workspace.load_documents_from_session_file(filename) # open latex and bibtex files for file in files: if file.get_path().endswith('.tex') or file.get_path().endswith('.bib') or file.get_path().endswith('.cls') or file.get_path().endswith('.sty'): document_candidate = self.workspace.get_document_by_filename(file.get_path()) if document_candidate != None: self.workspace.set_active_document(document_candidate) else: self.workspace.create_document_from_filename(file.get_path(), activate=True) def do_activate(self): if not self.is_active: self.activate() self.is_active = True def activate(self): self.workspace = Workspace() ServiceLocator.init_workspace(self.workspace) ServiceLocator.init_autocomplete_provider(self.workspace) DialogLocator.init_dialogs(self.main_window, self.workspace) # init view if self.settings.get_value('window_state', 'is_maximized'): self.main_window.maximize() else: self.main_window.unmaximize() self.main_window.set_default_size(self.settings.get_value('window_state', 'width'), self.settings.get_value('window_state', 'height')) self.main_window.current_width = self.settings.get_value('window_state', 'width') self.main_window.current_height = self.settings.get_value('window_state', 'height') self.first_window_state_event = True self.main_window.show_all() self.color_manager = ServiceLocator.get_color_manager() self.fg_color = self.color_manager.get_theme_color('theme_fg_color') self.bg_color = self.color_manager.get_theme_color('theme_bg_color') self.main_window.connect('size-allocate', self.on_window_size_allocate) self.main_window.connect('notify::is-maximized', self.on_window_maximize_event) self.main_window.connect('delete-event', self.on_window_close) self.main_window.connect('draw', self.on_window_draw) # init controller self.workspace.init_workspace_controller() self.workspace.actions.quit_action.connect('activate', self.on_quit_action) def on_window_size_allocate(self, main_window, window_size): ''' signal handler, update window size variables ''' if not main_window.ismaximized: main_window.current_width, main_window.current_height = main_window.get_size() def on_window_maximize_event(self, main_window, state_event): ''' signal handler, update window state variables ''' main_window.ismaximized = main_window.is_maximized() return False def on_window_draw(self, main_window, context): ''' check for theme changes, update sidebar, textviews ''' fg_color = self.color_manager.get_theme_color('theme_fg_color') bg_color = self.color_manager.get_theme_color('theme_bg_color') if self.fg_color.red != fg_color.red or self.bg_color.red != bg_color.red: self.fg_color = fg_color self.bg_color = bg_color try: documents = self.workspace.open_documents except AttributeError: pass else: is_dark_mode = ServiceLocator.get_is_dark_mode() for document in documents: document.set_dark_mode(is_dark_mode) return False def save_window_state(self): main_window = self.main_window self.settings.set_value('window_state', 'width', main_window.current_width) self.settings.set_value('window_state', 'height', main_window.current_height) self.settings.set_value('window_state', 'is_maximized', main_window.ismaximized) self.settings.set_value('window_state', 'show_sidebar', self.workspace.show_sidebar) self.settings.set_value('window_state', 'sidebar_paned_position', main_window.sidebar_paned.target_position) self.settings.set_value('window_state', 'show_help', self.workspace.show_help) self.settings.set_value('window_state', 'show_preview', self.workspace.show_preview) self.settings.set_value('window_state', 'preview_paned_position', main_window.preview_paned.target_position) self.settings.set_value('window_state', 'show_build_log', self.workspace.show_build_log) self.settings.set_value('window_state', 'build_log_paned_position', main_window.build_log_paned.target_position) self.settings.pickle() def on_window_close(self, window=None, parameter=None): self.save_quit() return True def on_quit_action(self, action=None, parameter=None): self.save_quit() def save_quit(self): for document in self.workspace.open_documents: document.state_manager.save_document_state() documents = self.workspace.get_unsaved_documents() active_document = self.workspace.get_active_document() if documents == None or active_document == None or DialogLocator.get_dialog('close_confirmation').run(documents)['all_save_to_close']: self.save_window_state() self.workspace.save_to_disk() self.quit() argparser = argparse.ArgumentParser(usage='%(prog)s [OPTION...] [FILE...]') argparser.add_argument('-V', '--version', action='version', version='@setzer_version@') argparser.add_argument('file', nargs='*', help=argparse.SUPPRESS) argparser.parse_args() main_controller = MainApplicationController() exit_status = main_controller.run(sys.argv) sys.exit(exit_status) Setzer-0.4.4/setzer/000077500000000000000000000000001420322575300143125ustar00rootroot00000000000000Setzer-0.4.4/setzer/app/000077500000000000000000000000001420322575300150725ustar00rootroot00000000000000Setzer-0.4.4/setzer/app/__init__.py000066400000000000000000000000001420322575300171710ustar00rootroot00000000000000Setzer-0.4.4/setzer/app/autocomplete_provider/000077500000000000000000000000001420322575300215055ustar00rootroot00000000000000Setzer-0.4.4/setzer/app/autocomplete_provider/__init__.py000066400000000000000000000000001420322575300236040ustar00rootroot00000000000000Setzer-0.4.4/setzer/app/autocomplete_provider/autocomplete_provider.py000066400000000000000000000473561420322575300265110ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import GObject import os.path import re import time import xml.etree.ElementTree as ET import setzer.helpers.timer as timer class AutocompleteProvider(object): def __init__(self, resources_path, workspace, latex_parser_regex, bibtex_parser_regex, packages_dict): self.workspace = workspace self.resources_path = resources_path self.latex_parser_regex = latex_parser_regex self.bibtex_parser_regex = bibtex_parser_regex self.packages_dict = packages_dict self.static_proposals = dict() self.static_begin_end_proposals = dict() self.dynamic_word_beginnings = list() self.begin_end_commands = dict() self.included_files_labels = dict() self.ref_types = dict() self.ref_types['references'] = list() self.ref_types['references'].append(('\\ref', _('Reference to \'{label}\''), _('Reference'))) self.ref_types['references'].append(('\\pageref', _('Reference to page of \'{label}\''), _('Page reference'))) self.ref_types['references'].append(('\\eqref', _('Reference to \'{label}\', with parantheses'), _('Reference with parantheses'))) self.ref_types['citations'] = list() self.ref_types['citations'].append(('\\cite', _('Cite \'{label}\''), _('Citation'))) self.ref_types['citations'].append(('\\citet', _('Cite \'{label}\' (abbreviated)'), _('Citation (abbreviated)'))) self.ref_types['citations'].append(('\\citep', _('Cite \'{label}\' (abbreviated with brackets)'), _('Citation (abbreviated with brackets)'))) self.ref_types['citations'].append(('\\citet*', _('Cite \'{label}\' (detailed)'), _('Citation (detailed)'))) self.ref_types['citations'].append(('\\citep*', _('Cite \'{label}\' (detailed with brackets)'), _('Citation (detailed with brackets)'))) self.ref_types['citations'].append(('\\citealt', _('Cite \'{label}\' (alternative style 1)'), _('Citation (alternative style 1)'))) self.ref_types['citations'].append(('\\citealp', _('Cite \'{label}\' (alternative style 2)'), _('Citation (alternative style 2)'))) self.ref_types['citations'].append(('\\citeauthor', _('Cite \'{label}\' (author)'), _('Citation (author)'))) self.ref_types['citations'].append(('\\citeauthor*', _('Cite \'{label}\' (author detailed)'), _('Citation (author detailed)'))) self.ref_types['citations'].append(('\\citeyear', _('Cite \'{label}\' (year)'), _('Citation (year)'))) self.ref_types['citations'].append(('\\citeyearpar', _('Cite \'{label}\' (year with brackets)'), _('Citation (year with brackets)'))) self.ref_types['citations'].append(('\\textcite', _('Cite \'{label}\' (BibLaTeX)'), _('BibLaTeX citation'))) self.ref_types['citations'].append(('\\parencite', _('Cite \'{label}\' (BibLaTeX, with brackets)'), _('BibLaTeX citation (with brackets)'))) self.ref_types['citations'].append(('\\autocite', _('Cite \'{label}\' (BibLaTeX)'), _('BibLaTeX citation'))) self.ref_types['usepackage'] = list() self.ref_types['usepackage'].append(('\\usepackage',)) self.last_command = None self.last_dynamic_proposals = list() self.generate_dynamic_word_beginnings() self.generate_static_proposals() self.generate_static_begin_end_proposals() self.parse_included_files() GObject.timeout_add(2000, self.parse_included_files) def get_items_for_completion_window(self, current_word, last_tabbed_command): items = list() items_all = self.get_items(current_word) if len(items_all) != 1 or current_word.lower() != items_all[0]['command']: count = 0 items_rest = list() for item in items_all: if last_tabbed_command != None and last_tabbed_command == item['command']: items.insert(0, item) count += 1 elif item['command'][:len(current_word)] == current_word: items.append(item) count += 1 else: items_rest.append(item) if count >= 20: items = items[:20] items = items + items_rest[:20 - count] return items def get_begin_end_items(self, word, last_tabbed_command): try: items_all = self.static_begin_end_proposals[word.lower()] except KeyError: items = list() else: items = list() for item in items_all: if last_tabbed_command != None and last_tabbed_command == item['command']: items.insert(0, item) else: items.append(item) return items #@timer.timer def get_items(self, word): items = list() try: static_items = self.static_proposals[word.lower()] except KeyError: static_items = list() dynamic_items = self.get_dynamic_items(word) add_dynamic = True for item in static_items: if add_dynamic and len(dynamic_items) > 0 and dynamic_items[0]['command'].lower() < item['command'].lower(): add_dynamic = False items += dynamic_items if not item['lowpriority']: items.append(item) if add_dynamic: items += dynamic_items for item in static_items: if item['lowpriority']: items.append(item) return items def get_dynamic_items(self, word): if word == self.last_command: return self.last_dynamic_proposals else: dynamic_items = list() offset = word.find('{') if offset > 1: word_beginning = word[:offset + 1] else: word_beginning = word if word_beginning in self.dynamic_word_beginnings['references']: dynamic_items += self.get_dynamic_reference_commands(word) elif word_beginning in self.dynamic_word_beginnings['citations']: dynamic_items += self.get_dynamic_bibliography_commands(word) elif word_beginning in self.dynamic_word_beginnings['usepackage']: dynamic_items += self.get_dynamic_usepackage_commands(word) self.last_command = word self.last_dynamic_proposals = dynamic_items return dynamic_items def get_dynamic_reference_commands(self, word): ref_types = self.ref_types['references'] dynamic_items = list() labels = self.get_labels_for_dynamic_items() for ref_type in ref_types: if len(dynamic_items) >= 20: break self.append_to_dynamic_items(word, dynamic_items, ref_type, labels, 'label') return dynamic_items def get_dynamic_bibliography_commands(self, word): ref_types = self.ref_types['citations'] dynamic_items = list() labels = self.get_bibitems_for_dynamic_items() for ref_type in ref_types: if len(dynamic_items) >= 20: break self.append_to_dynamic_items(word, dynamic_items, ref_type, labels, 'keylist') return dynamic_items def get_dynamic_usepackage_commands(self, word): dynamic_items = list() for package in self.packages_dict.values(): if len(dynamic_items) >= 20: break description = '' command = {'command': '\\usepackage' + '{' + package['command'] + '}', 'description': package['description'], 'dotlabels': ''} if command['command'][:len(word)] == word.lower(): if command['command'] not in [item['command'] for item in dynamic_items]: dynamic_items.append(command) return dynamic_items #@timer.timer def get_bibitems_for_dynamic_items(self): bibitems_first = set() bibitems_second = set() bibitems_rest = set() pathnames_done = set() if self.workspace.active_document != None: pathnames_done = pathnames_done | {self.workspace.active_document.get_filename()} bibitems_first = bibitems_first | self.workspace.active_document.content.get_bibitems() included_files = self.get_included_files(self.workspace.active_document) for pathname in included_files: if pathname not in pathnames_done: pathnames_done = pathnames_done | {pathname} if pathname in self.included_files_labels: labels_dict = self.included_files_labels[pathname]['labels'] if 'bibitems' in labels_dict: bibitems_second = bibitems_second | labels_dict['bibitems'] else: document_object = self.workspace.get_document_by_filename(pathname) if document_object: bibitems_second = bibitems_second | document_object.content.get_bibitems() for document in self.workspace.open_documents: pathnames = {document.get_filename()} | self.get_included_files(document) for pathname in pathnames: if pathname not in pathnames_done: pathnames_done = pathnames_done | {pathname} if pathname in self.included_files_labels: labels_dict = self.included_files_labels[pathname]['labels'] if 'bibitems' in labels_dict: bibitems_rest = bibitems_rest | labels_dict['bibitems'] else: document_object = self.workspace.get_document_by_filename(pathname) if document_object: bibitems_rest = bibitems_rest | document_object.content.get_bibitems() bibitems = ['•'] + list(bibitems_first) + list(bibitems_second) + list(bibitems_rest) return bibitems def get_labels_for_dynamic_items(self): labels_first = set() labels_second = set() labels_rest = set() pathnames_done = set() if self.workspace.active_document != None: pathnames_done = pathnames_done | {self.workspace.active_document.get_filename()} labels_first = labels_first | self.workspace.active_document.content.get_labels() included_files = self.get_included_files(self.workspace.active_document) for pathname in included_files: if pathname not in pathnames_done: pathnames_done = pathnames_done | {pathname} if pathname in self.included_files_labels: labels_dict = self.included_files_labels[pathname]['labels'] if 'labels' in labels_dict: labels_second = labels_second | labels_dict['labels'] else: document_object = self.workspace.get_document_by_filename(pathname) if document_object: labels_second = labels_second | document_object.content.get_labels() for document in self.workspace.open_documents: pathnames = {document.get_filename()} | self.get_included_files(document) for pathname in pathnames: if pathname not in pathnames_done: pathnames_done = pathnames_done | {pathname} if pathname in self.included_files_labels: labels_dict = self.included_files_labels[pathname]['labels'] if 'labels' in labels_dict: labels_rest = labels_rest | labels_dict['labels'] else: document_object = self.workspace.get_document_by_filename(pathname) if document_object: labels_rest = labels_rest | document_object.content.get_labels() labels = ['•'] + list(labels_first) + list(labels_second) + list(labels_rest) return labels def append_to_dynamic_items(self, word, items, ref_type, labels, parlabel): for label in iter(labels): if len(items) >= 20: break if label == '•': description = ref_type[2] dotlabels = parlabel else: description = ref_type[1].format(label=label) dotlabels = '' command = {'command': ref_type[0] + '{' + label + '}', 'description': description, 'dotlabels': dotlabels} if command['command'][:len(word)] == word.lower(): if command['command'] not in [item['command'] for item in items]: items.append(command) def parse_included_files(self): current_includes = set() open_docs_pathnames = self.workspace.get_open_documents_filenames() for document in self.workspace.open_latex_documents: current_includes = current_includes | self.get_included_files(document) for pathname in self.get_bibliography_files(document): if pathname not in open_docs_pathnames: if os.path.isfile(pathname): if pathname not in self.included_files_labels: self.included_files_labels[pathname] = self.parse_bibtex_file(pathname) else: last_parse_time = self.included_files_labels[pathname]['last_parse_time'] if last_parse_time < os.path.getmtime(pathname): self.included_files_labels[pathname] = self.parse_bibtex_file(pathname) for pathname in self.get_included_latex_files(document): if pathname not in open_docs_pathnames: if os.path.isfile(pathname): if pathname not in self.included_files_labels: self.included_files_labels[pathname] = self.parse_latex_file(pathname) else: last_parse_time = self.included_files_labels[pathname]['last_parse_time'] if last_parse_time < os.path.getmtime(pathname): self.included_files_labels[pathname] = self.parse_latex_file(pathname) for pathname in list(self.included_files_labels): if pathname not in current_includes or pathname in open_docs_pathnames: del(self.included_files_labels[pathname]) return True def get_included_files(self, document): return self.get_included_latex_files(document) | self.get_bibliography_files(document) def get_included_latex_files(self, document): dirname = document.get_dirname() filenames = set() for filename in document.content.get_included_latex_files(): filenames |= {os.path.normpath(os.path.join(dirname, filename))} return filenames def get_bibliography_files(self, document): dirname = document.get_dirname() filenames = set() for filename in document.content.get_bibliography_files(): filenames |= {os.path.normpath(os.path.join(dirname, filename))} return filenames def parse_latex_file(self, pathname): with open(pathname, 'r') as f: text = f.read() labels = set() bibitems = set() for match in self.latex_parser_regex.finditer(text): if match.group(1) == 'label': labels = labels | {match.group(2).strip()} elif match.group(5) == 'bibitem': bibitems = bibitems | {match.group(6).strip()} return {'last_parse_time': time.time(), 'labels': {'labels': labels, 'bibitems': bibitems}} def parse_bibtex_file(self, pathname): with open(pathname, 'r') as f: text = f.read() bibitems = set() for match in self.bibtex_parser_regex.finditer(text): bibitems = bibitems | {match.group(2).strip()} return {'last_parse_time': time.time(), 'labels': {'bibitems': bibitems}} def generate_dynamic_word_beginnings(self): self.dynamic_word_beginnings = dict() for ref_types_type in self.ref_types: self.dynamic_word_beginnings[ref_types_type] = list() for command in self.ref_types[ref_types_type]: command = command[0] + '{' for i in range(2, len(command) + 1): self.dynamic_word_beginnings[ref_types_type].append(command[:i]) def generate_static_begin_end_proposals(self): commands = self.begin_end_commands self.static_begin_end_proposals = dict() for command in commands.values(): for i in range(1, len(command['command']) + 1): try: if len(self.static_begin_end_proposals[command['command'][0:i].lower()]) < 20: self.static_begin_end_proposals[command['command'][0:i].lower()].append(command) except KeyError: self.static_begin_end_proposals[command['command'][0:i].lower()] = [command] #@timer.timer def generate_static_proposals(self): commands = self.get_commands() self.static_proposals = dict() for command in commands.values(): if not command['lowpriority']: for i in range(2, len(command['command']) + 1): try: if len(self.static_proposals[command['command'][0:i].lower()]) < 20: self.static_proposals[command['command'][0:i].lower()].append(command) except KeyError: self.static_proposals[command['command'][0:i].lower()] = [command] for command in commands.values(): if command['lowpriority']: for i in range(2, len(command['command']) + 1): try: if len(self.static_proposals[command['command'][0:i].lower()]) < 20: self.static_proposals[command['command'][0:i].lower()].append(command) except KeyError: self.static_proposals[command['command'][0:i].lower()] = [command] #@timer.timer def get_commands(self): commands = dict() for filename in ['additional.xml', 'latex-document.xml', 'tex.xml', 'textcomp.xml', 'graphicx.xml', 'latex-dev.xml', 'amsmath.xml', 'amsopn.xml', 'amsbsy.xml', 'amsfonts.xml', 'amssymb.xml', 'amsthm.xml', 'color.xml', 'url.xml', 'geometry.xml', 'glossaries.xml']: tree = ET.parse(os.path.join(self.resources_path, 'latexdb', 'commands', filename)) root = tree.getroot() for child in root: attrib = child.attrib commands[attrib['name']] = {'command': attrib['text'], 'description': attrib['description'], 'lowpriority': True if attrib['lowpriority'] == "True" else False, 'dotlabels': attrib['dotlabels']} match = re.match(r'\\begin\{([^\}]+)\}', attrib['name']) if match: name = match.group(1) self.begin_end_commands[name] = {'command': name, 'description': '', 'lowpriority': False, 'dotlabels': ''} return commands Setzer-0.4.4/setzer/app/color_manager.py000066400000000000000000000071021420322575300202540ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('GtkSource', '4') from gi.repository import Gdk from gi.repository import GtkSource class ColorManager(object): def __init__(self, main_window, settings, source_style_scheme_manager): self.main_window = main_window self.settings = settings self.style_context = main_window.get_style_context() self.source_style_scheme_manager = source_style_scheme_manager self.source_style_scheme = None self.syntax_scheme_name = None self.main_window.connect('style-updated', self.on_style_updated) self.string_cache = dict() self.rgba_cache = dict() self.mix_cache = dict() def on_style_updated(self, a, b=None): self.mix_cache = dict() def update_syntax_scheme(self): if self.settings.get_value('preferences', 'prefer_dark_mode'): name = self.settings.get_value('preferences', 'syntax_scheme_dark_mode') else: name = self.settings.get_value('preferences', 'syntax_scheme') if name == self.syntax_scheme_name: return self.syntax_scheme_name = name self.source_style_scheme = self.source_style_scheme_manager.get_scheme(name) def get_theme_color(self, name): return self.style_context.lookup_color(name)[1] def get_theme_color_mix(self, name1, name2, ratio): index = name1 + name2 + str(ratio) try: return self.mix_cache[index] except KeyError: color1 = self.get_theme_color(name1) color2 = self.get_theme_color(name2) mix_color = Gdk.RGBA(0, 0, 0, 0) mix_color.red = color1.red * ratio + color2.red * (1 - ratio) mix_color.green = color1.green * ratio + color2.green * (1 - ratio) mix_color.blue = color1.blue * ratio + color2.blue * (1 - ratio) mix_color.alpha = color1.alpha * ratio + color2.alpha * (1 - ratio) self.mix_cache[index] = mix_color return self.mix_cache[index] def get_syntax_scheme_color(self, style_id, property_name): self.update_syntax_scheme() style = self.source_style_scheme.get_style(style_id) if style == None: return None return style.get_property(property_name) def get_rgba(self, red, green, blue, alpha): index = int(red * 1000000000000) + int(green * 1000000000) + int(blue * 1000000) + int(alpha * 1000) try: return self.rgba_cache[index] except KeyError: self.rgba_cache[index] = Gdk.RGBA(red, green, blue, alpha) return self.rgba_cache[index] def get_rgba_from_string(self, color_string): if color_string not in self.string_cache: self.string_cache[color_string] = Gdk.RGBA(0, 0, 0, 0) self.string_cache[color_string].parse(color_string) return self.string_cache[color_string] Setzer-0.4.4/setzer/app/font_manager.py000066400000000000000000000113021420322575300201010ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Pango from gi.repository import Gtk from setzer.helpers.observable import Observable class FontManager(Observable): def __init__(self, main_window, settings): Observable.__init__(self) self.main_window = main_window self.settings = settings self.settings.connect('settings_changed', self.on_settings_changed) self.text_view = Gtk.TextView() self.text_view.set_monospace(True) self.system_font = self.text_view.get_pango_context().get_font_description().to_string() self.font_string = None self.update_font_string() def on_settings_changed(self, settings, parameter): section, item, value = parameter if (section, item) in [('preferences', 'font_string'), ('preferences', 'use_system_font')]: self.update_font_string() def update_font_string(self): self.set_font_string(self.get_normal_font_string()) def get_system_font(self): return self.system_font def get_line_height(self): char_width, line_height = self.get_char_dimensions() return line_height def get_char_width(self, char='A'): char_width, line_height = self.get_char_dimensions(char) return char_width def get_char_dimensions(self, char='A'): context = self.text_view.get_pango_context() font_desc = Pango.FontDescription.from_string(self.font_string) layout = Pango.Layout.new(context) layout.set_text(char, -1) layout.set_font_description(font_desc) return layout.get_pixel_size() def get_zoom_level(self): return self.get_font_size() / self.get_normal_font_size() def set_font_string(self, font_string): font_desc = Pango.FontDescription.from_string(font_string) font_size = font_desc.get_size() / Pango.SCALE self.font_string = font_string self.propagate_font_setting() self.add_change_code('font_string_changed') def zoom_in(self): font_desc = Pango.FontDescription.from_string(self.font_string) font_desc.set_size(min(self.get_font_size() * 1.1, 24 * Pango.SCALE)) self.set_font_string(font_desc.to_string()) def zoom_out(self): font_desc = Pango.FontDescription.from_string(self.font_string) font_desc.set_size(max(self.get_font_size() / 1.1, 6 * Pango.SCALE)) self.set_font_string(font_desc.to_string()) def reset_zoom(self): font_desc = Pango.FontDescription.from_string(self.get_normal_font_string()) self.set_font_string(font_desc.to_string()) def propagate_font_setting(self): font_size = self.get_font_size() / Pango.SCALE font_family = self.get_font_family() self.main_window.css_provider_font_size.load_from_data((''' textview { font-size: ''' + str(font_size) + '''pt; font-family: ''' + font_family + '''; } box.autocomplete list row { font-size: ''' + str(font_size) + '''pt; } box.autocomplete list row label { font-family: ''' + font_family + '''; } ''').encode('utf-8')) def get_font_desc(self): return Pango.FontDescription.from_string(self.font_string) def get_font_size(self): font_desc = Pango.FontDescription.from_string(self.font_string) return font_desc.get_size() def get_font_family(self): font_desc = Pango.FontDescription.from_string(self.font_string) return font_desc.get_family() def get_font_size_in_points(self): return self.get_font_size() / Pango.SCALE def get_normal_font_string(self): if self.settings.get_value('preferences', 'use_system_font'): return self.system_font else: return self.settings.get_value('preferences', 'font_string') def get_normal_font_size(self): font_desc = Pango.FontDescription.from_string(self.get_normal_font_string()) return font_desc.get_size() def get_normal_font_size_in_points(self): return self.get_normal_font_size() / Pango.SCALE Setzer-0.4.4/setzer/app/service_locator.py000066400000000000000000000145771420322575300206450ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('GtkSource', '4') from gi.repository import GtkSource from gi.repository import GLib import re import os, os.path import xml.etree.ElementTree as ET import setzer.app.settings as settingscontroller import setzer.app.autocomplete_provider.autocomplete_provider as autocomplete_provider import setzer.app.color_manager as color_manager import setzer.app.font_manager as font_manager import setzer.helpers.popover_menu_builder as popover_menu_builder class ServiceLocator(object): main_window = None workspace = None settings = None setzer_version = None resources_path = None app_icons_path = None regexes = dict() popover_menu_builder = None autocomplete_provider = None packages_dict = None source_language_manager = None source_style_scheme_manager = None color_manager = None font_manager = None def init_main_window(main_window): ServiceLocator.main_window = main_window def get_main_window(): return ServiceLocator.main_window def init_workspace(workspace): ServiceLocator.workspace = workspace def get_workspace(): return ServiceLocator.workspace def get_is_dark_mode(): fg_color = ServiceLocator.get_color_manager().get_theme_color('theme_fg_color') bg_color = ServiceLocator.get_color_manager().get_theme_color('theme_bg_color') return (fg_color.red + fg_color.green + fg_color.blue) * fg_color.alpha > (bg_color.red + bg_color.green + bg_color.blue) * bg_color.alpha def get_regex_object(pattern): try: regex = ServiceLocator.regexes[pattern] except KeyError: regex = re.compile(pattern) ServiceLocator.regexes[pattern] = regex return regex def get_settings(): if ServiceLocator.settings == None: ServiceLocator.settings = settingscontroller.Settings(ServiceLocator.get_config_folder()) return ServiceLocator.settings def get_source_language_manager(): if ServiceLocator.source_language_manager == None: ServiceLocator.source_language_manager = GtkSource.LanguageManager() path = os.path.join(ServiceLocator.get_resources_path(), 'gtksourceview', 'language-specs') ServiceLocator.source_language_manager.set_search_path((path,)) return ServiceLocator.source_language_manager def get_source_style_scheme_manager(): if ServiceLocator.source_style_scheme_manager == None: ServiceLocator.source_style_scheme_manager = GtkSource.StyleSchemeManager() path1 = os.path.join(ServiceLocator.get_resources_path(), 'gtksourceview', 'styles') if not os.path.isdir(os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes')): os.mkdir(os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes')) path2 = os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes') ServiceLocator.source_style_scheme_manager.set_search_path((path1, path2)) return ServiceLocator.source_style_scheme_manager def get_font_manager(): if ServiceLocator.font_manager == None: ServiceLocator.font_manager = font_manager.FontManager(ServiceLocator.get_main_window(), ServiceLocator.get_settings()) return ServiceLocator.font_manager def get_color_manager(): if ServiceLocator.color_manager == None: ServiceLocator.color_manager = color_manager.ColorManager(ServiceLocator.get_main_window(), ServiceLocator.get_settings(), ServiceLocator.get_source_style_scheme_manager()) return ServiceLocator.color_manager def get_popover_menu_builder(): if ServiceLocator.popover_menu_builder == None: ServiceLocator.popover_menu_builder = popover_menu_builder.PopoverMenuBuilder() return ServiceLocator.popover_menu_builder def init_autocomplete_provider(workspace): path = ServiceLocator.get_resources_path() latex_parser_regex = ServiceLocator.get_regex_object(r'\\(label|include|input|bibliography|addbibresource)\{((?:\s|\w|\:|\.|,)*)\}|\\(usepackage)(?:\[.*\]){0,1}\{((?:\s|\w|\:|,)*)\}|\\(bibitem)(?:\[.*\]){0,1}\{((?:\s|\w|\:)*)\}') bibtex_parser_regex = ServiceLocator.get_regex_object(r'@(\w+)\{(\w+)') ServiceLocator.autocomplete_provider = autocomplete_provider.AutocompleteProvider(path, workspace, latex_parser_regex, bibtex_parser_regex, ServiceLocator.get_packages_dict()) def get_autocomplete_provider(): return ServiceLocator.autocomplete_provider def get_packages_dict(): if ServiceLocator.packages_dict == None: ServiceLocator.packages_dict = dict() resources_path = ServiceLocator.get_resources_path() tree = ET.parse(os.path.join(resources_path, 'latexdb', 'packages', 'general.xml')) root = tree.getroot() for child in root: attrib = child.attrib ServiceLocator.packages_dict[attrib['name']] = {'command': attrib['text'], 'description': attrib['description']} return ServiceLocator.packages_dict def get_config_folder(): return os.path.join(GLib.get_user_config_dir(), 'setzer') def init_setzer_version(setzer_version): ServiceLocator.setzer_version = setzer_version def get_setzer_version(): return ServiceLocator.setzer_version def init_resources_path(resources_path): ServiceLocator.resources_path = resources_path def get_resources_path(): return ServiceLocator.resources_path def init_app_icons_path(app_icons_path): ServiceLocator.app_icons_path = app_icons_path def get_app_icons_path(): return ServiceLocator.app_icons_path Setzer-0.4.4/setzer/app/settings.py000066400000000000000000000137301420322575300173100ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('Gspell', '1') from gi.repository import Gtk from gi.repository import Pango from gi.repository import Gspell import os.path import pickle from setzer.helpers.observable import Observable class Settings(Observable): ''' Settings controller for saving application state. ''' def __init__(self, pathname): Observable.__init__(self) self.gtksettings = Gtk.Settings.get_default() self.pathname = pathname self.data = dict() self.defaults = dict() self.set_defaults() if not self.unpickle(): self.data = self.defaults self.pickle() def set_defaults(self): self.defaults['window_state'] = dict() self.defaults['window_state']['width'] = 1020 self.defaults['window_state']['height'] = 550 self.defaults['window_state']['is_maximized'] = False self.defaults['window_state']['show_sidebar'] = False self.defaults['window_state']['sidebar_paned_position'] = -1 self.defaults['window_state']['show_help'] = False self.defaults['window_state']['show_preview'] = False self.defaults['window_state']['show_build_log'] = False self.defaults['window_state']['preview_paned_position'] = -1 self.defaults['window_state']['notebook_paned_position'] = -1 self.defaults['window_state']['build_log_paned_position'] = -1 self.defaults['app_document_wizard'] = dict() self.defaults['app_document_wizard']['presets'] = None self.defaults['app_bibtex_wizard'] = dict() self.defaults['app_bibtex_wizard']['presets'] = None self.defaults['app_include_bibtex_file_dialog'] = dict() self.defaults['app_include_bibtex_file_dialog']['presets'] = None self.defaults['app_recent_symbols'] = {'symbols': []} self.defaults['preferences'] = dict() self.defaults['preferences']['cleanup_build_files'] = True self.defaults['preferences']['autoshow_build_log'] = 'errors_warnings' self.defaults['preferences']['latex_interpreter'] = 'xelatex' self.defaults['preferences']['use_latexmk'] = False self.defaults['preferences']['prefer_dark_mode'] = False self.defaults['preferences']['invert_pdf'] = False self.defaults['preferences']['spaces_instead_of_tabs'] = True self.defaults['preferences']['tab_width'] = 4 self.defaults['preferences']['show_line_numbers'] = True self.defaults['preferences']['enable_code_folding'] = True self.defaults['preferences']['enable_line_wrapping'] = True self.defaults['preferences']['highlight_current_line'] = False self.defaults['preferences']['highlight_matching_brackets'] = True self.defaults['preferences']['build_option_system_commands'] = 'disable' self.defaults['preferences']['syntax_scheme'] = 'default' self.defaults['preferences']['syntax_scheme_dark_mode'] = 'default-dark' self.defaults['preferences']['use_system_font'] = True textview = Gtk.TextView() textview.set_monospace(True) font_string = textview.get_pango_context().get_font_description().to_string() self.defaults['preferences']['font_string'] = font_string default_language = Gspell.Language.get_default() if default_language != None: self.defaults['preferences']['inline_spellchecking'] = False self.defaults['preferences']['spellchecking_language_code'] = Gspell.Language.get_default().get_code() else: self.defaults['preferences']['inline_spellchecking'] = False self.defaults['preferences']['spellchecking_language_code'] = None def get_value(self, section, item): try: value = self.data[section][item] except KeyError: value = self.defaults[section][item] self.set_value(section, item, value) return value def get_source_buffer_options(self): buffer_options = dict() buffer_options['tab_width'] = self.get_value('preferences', 'tab_width') buffer_options['spaces_instead_of_tabs'] = self.get_value('preferences', 'spaces_instead_of_tabs') return buffer_options def set_value(self, section, item, value): try: section_dict = self.data[section] except KeyError: section_dict = dict() self.data[section] = section_dict section_dict[item] = value self.add_change_code('settings_changed', (section, item, value)) def unpickle(self): ''' Load settings from home folder. ''' # create folder if it does not exist if not os.path.isdir(self.pathname): os.makedirs(self.pathname) try: filehandle = open(os.path.join(self.pathname, 'settings.pickle'), 'rb') except IOError: return False else: try: self.data = pickle.load(filehandle) except EOFError: False return True def pickle(self): ''' Save settings in home folder. ''' try: filehandle = open(os.path.join(self.pathname, 'settings.pickle'), 'wb') except IOError: return False else: pickle.dump(self.data, filehandle) Setzer-0.4.4/setzer/dialogs/000077500000000000000000000000001420322575300157345ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/__init__.py000066400000000000000000000000001420322575300200330ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/about/000077500000000000000000000000001420322575300170465ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/about/__init__.py000066400000000000000000000000001420322575300211450ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/about/about.py000066400000000000000000000033731420322575300205400ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog from setzer.app.service_locator import ServiceLocator class AboutDialog(Dialog): def __init__(self, main_window): self.main_window = main_window def run(self): self.setup() self.view.show_all() del(self.view) def setup(self): self.view = Gtk.AboutDialog() self.view.set_transient_for(self.main_window) self.view.set_modal(True) self.view.set_program_name('Setzer') self.view.set_version(ServiceLocator.get_setzer_version()) self.view.set_copyright('Copyright © 2018-2020') self.view.set_comments(_('Setzer is a LaTeX editor.')) self.view.set_license_type(Gtk.License.GPL_3_0) self.view.set_website('https://www.cvfosammmm.org/setzer/') self.view.set_website_label('https://www.cvfosammmm.org/setzer/') self.view.set_authors(('Robert Griesel',)) self.view.set_logo_icon_name('org.cvfosammmm.Setzer') Setzer-0.4.4/setzer/dialogs/add_remove_packages/000077500000000000000000000000001420322575300216775ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/add_remove_packages/__init__.py000066400000000000000000000000001420322575300237760ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/add_remove_packages/add_remove_packages.py000066400000000000000000000135021420322575300262150ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gio from gi.repository import GLib from setzer.dialogs.dialog import Dialog import setzer.dialogs.add_remove_packages.add_remove_packages_viewgtk as view from setzer.app.service_locator import ServiceLocator import pickle import os class AddRemovePackagesDialog(Dialog): def __init__(self, main_window, workspace): self.main_window = main_window self.workspace = workspace self.packages = ServiceLocator.get_packages_dict() self.current_values = dict() def run(self, document): self.document = document self.setup() self.view.run() self.view.dialog.hide() del(self.view) def setup(self): self.view = view.AddRemovePackagesDialogView(self.main_window) self.add_package_selection = None self.remove_package_selection = None def add_list_row_selected(box, row, user_data=None): if row != None: child_name = row.get_child().get_text() description = self.packages[child_name]['description'] command = self.packages[child_name]['command'] self.view.add_description.set_markup('' + child_name + ': ' + description) self.add_package_selection = command self.view.add_button.set_sensitive(True) self.view.add_button.show() else: self.view.add_description.set_markup('') self.view.add_button.set_sensitive(False) self.view.add_button.hide() def remove_list_row_selected(box, row, user_data=None): if row != None: child_name = row.get_child().get_text() description = self.packages[child_name]['description'] command = self.packages[child_name]['command'] self.view.remove_description.set_markup('' + child_name + ': ' + description) self.remove_package_selection = command self.view.remove_button.set_sensitive(True) self.view.remove_button.show() else: self.view.remove_description.set_markup('') self.view.remove_button.set_sensitive(False) self.view.remove_button.hide() def add_button_clicked(button): self.document.content.add_packages([self.add_package_selection]) self.document.content.scroll_cursor_onscreen() selected_row = self.view.add_list.get_selected_row() selected_row_index = selected_row.get_index() new_row = self.view.add_list.get_row_at_index(selected_row_index + 1) if new_row == None: new_row = self.view.add_list.get_row_at_index(selected_row_index - 1) self.view.add_list.remove(selected_row) self.add_to_list(self.view.remove_list, self.add_package_selection) for row in self.view.remove_list.get_children(): if row.get_child().get_text() == self.add_package_selection: self.view.remove_list.select_row(row) if new_row != None: self.view.add_list.select_row(new_row) def remove_button_clicked(button): self.document.content.remove_packages([self.remove_package_selection]) selected_row = self.view.remove_list.get_selected_row() selected_row_index = selected_row.get_index() new_row = self.view.remove_list.get_row_at_index(selected_row_index + 1) if new_row == None: new_row = self.view.remove_list.get_row_at_index(selected_row_index - 1) self.view.remove_list.remove(selected_row) self.add_to_list(self.view.add_list, self.remove_package_selection) for row in self.view.add_list.get_children(): if row.get_child().get_text() == self.remove_package_selection: self.view.add_list.select_row(row) if new_row != None: self.view.remove_list.select_row(new_row) self.view.topbox.show_all() self.view.add_button.set_sensitive(False) self.view.remove_button.set_sensitive(False) self.view.add_button.hide() self.view.remove_button.hide() self.view.add_list.connect('row-selected', add_list_row_selected) self.view.remove_list.connect('row-selected', remove_list_row_selected) self.view.add_button.connect('clicked', add_button_clicked) self.view.remove_button.connect('clicked', remove_button_clicked) for name, details in self.packages.items(): if details['command'] in self.document.content.get_packages(): self.add_to_list(self.view.remove_list, name) else: self.add_to_list(self.view.add_list, name) def add_to_list(self, listbox, label_text): label = Gtk.Label(label_text) label.set_xalign(0) label.show_all() listbox.prepend(label) if listbox.get_selected_row() == None: listbox.select_row(listbox.get_row_at_index(0)) Setzer-0.4.4/setzer/dialogs/add_remove_packages/add_remove_packages_viewgtk.py000066400000000000000000000130541420322575300277570ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GLib from gi.repository import Gdk, GdkPixbuf import os class AddRemovePackagesDialogView(object): ''' Create document templates for users to build on. ''' def __init__(self, main_window): builder = Gtk.Builder.new_from_string('1', -1) self.dialog = builder.get_object('dialog') self.dialog.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.dialog.set_modal(True) self.dialog.set_transient_for(main_window) self.dialog.set_destroy_with_parent(True) self.dialog.set_default_size(650, -1) self.dialog.set_can_focus(False) self.topbox = self.dialog.get_content_area() self.topbox.set_border_width(0) self.topbox.set_size_request(650, -1) self.create_headerbar() self.create_add_box() self.create_remove_box() self.topbox.show_all() def create_headerbar(self): self.headerbar = self.dialog.get_header_bar() self.headerbar.set_title(_('Add / Remove Packages')) self.headerbar.show_all() def create_add_box(self): self.add_box = Gtk.HBox() self.add_box.get_style_context().add_class('add-remove-packages-add-box') self.scrolled_window = Gtk.ScrolledWindow() self.scrolled_window.set_size_request(300, 146) self.scrolled_window.set_margin_right(18) self.add_list = Gtk.ListBox() self.add_list.set_can_focus(True) self.add_list.set_size_request(298, -1) self.add_list.set_vexpand(False) self.add_list.set_sort_func(self.sort_function) self.scrolled_window.add(self.add_list) self.add_details = Gtk.VBox() self.add_description = Gtk.Label('') self.add_description.set_yalign(0) self.add_description.set_xalign(0) self.add_description.set_size_request(300, 110) self.add_description.set_line_wrap(True) self.add_description.set_width_chars(30) self.add_details.pack_start(self.add_description, False, False, 0) self.add_button = Gtk.Button() self.add_button.set_label(_('Add Package')) add_button_wrapper = Gtk.HBox() add_button_wrapper.pack_start(self.add_button, False, False, 0) self.add_button.get_style_context().add_class('suggested-action') self.add_details.pack_start(add_button_wrapper, False, False, 0) self.add_box.pack_start(self.scrolled_window, False, False, 0) self.add_box.pack_start(self.add_details, False, False, 0) self.topbox.pack_start(self.add_box, False, False, 0) def create_remove_box(self): self.remove_box = Gtk.HBox() self.remove_box.set_margin_top(18) self.remove_box.set_margin_bottom(18) self.remove_box.set_margin_left(18) self.remove_box.set_margin_right(18) self.remove_box.get_style_context().add_class('add-remove-packages-remove-box') self.scrolled_window = Gtk.ScrolledWindow() self.scrolled_window.set_size_request(300, 146) self.scrolled_window.set_margin_right(18) self.remove_list = Gtk.ListBox() self.remove_list.set_can_focus(True) self.remove_list.set_size_request(298, -1) self.remove_list.set_vexpand(False) self.remove_list.set_sort_func(self.sort_function) self.scrolled_window.add(self.remove_list) self.remove_details = Gtk.VBox() self.remove_description = Gtk.Label('') self.remove_description.set_yalign(0) self.remove_description.set_xalign(0) self.remove_description.set_size_request(300, 110) self.remove_description.set_line_wrap(True) self.remove_description.set_width_chars(30) self.remove_details.pack_start(self.remove_description, False, False, 0) self.remove_button = Gtk.Button() self.remove_button.set_label(_('Remove Package')) remove_button_wrapper = Gtk.HBox() remove_button_wrapper.pack_start(self.remove_button, False, False, 0) self.remove_details.pack_start(remove_button_wrapper, False, False, 0) self.remove_box.pack_start(self.scrolled_window, False, False, 0) self.remove_box.pack_start(self.remove_details, False, False, 0) self.topbox.pack_start(self.remove_box, False, False, 0) def sort_function(self, row1, row2, user_data=None): val1 = row1.get_child().get_text().lower() val2 = row2.get_child().get_text().lower() if val1 > val2: return 1 elif val1 == val2: return 0 elif val1 < val2: return -1 def run(self): return self.dialog.run() def __del__(self): self.dialog.destroy() Setzer-0.4.4/setzer/dialogs/bibtex_wizard/000077500000000000000000000000001420322575300205715ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/bibtex_wizard/__init__.py000066400000000000000000000000001420322575300226700ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/bibtex_wizard/bibtex_wizard.py000066400000000000000000001021741420322575300240050ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gio from gi.repository import Gdk from setzer.dialogs.dialog import Dialog import setzer.dialogs.bibtex_wizard.bibtex_wizard_viewgtk as view from setzer.dialogs.bibtex_wizard.pages.page_create_new_entry import CreateNewEntryPage from setzer.dialogs.bibtex_wizard.pages.page_fields_entry import FieldsEntryPage from setzer.app.service_locator import ServiceLocator import pickle import os class BibTeXWizard(Dialog): def __init__(self, main_window, workspace): self.main_window = main_window self.workspace = workspace self.settings = ServiceLocator.get_settings() self.document_types = dict() self.document_types['article'] = {'title': _('Article in Journal'), 'description': _('An article in a journal, magazine, newspaper, or other periodical which forms a self-contained unit with its own title. The title of the periodical is given in the journaltitle field. If the issue has its own title in addition to the main title of the periodical, it goes in the issuetitle field. Note that editor and related fields refer to the journal while translator and related fields refer to the article.'), 'fields_required': ['author', 'title', 'journaltitle', 'date'], 'fields_optional': ['translator', 'annotator', 'commentator', 'subtitle', 'titleaddon', 'editor', 'editora', 'editorb', 'editorc', 'journalsubtitle', 'issuetitle', 'issuesubtitle', 'language', 'origlanguage', 'series', 'volume', 'number', 'eid', 'issue', 'month', 'pages', 'version', 'note', 'issn', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['book'] = {'title': _('Book'), 'description': _('A single-volume book with one or more authors where the authors share credit for the work as a whole. This entry type also covers the function of the @inbook type of traditional BibTeX.'), 'fields_required': ['author', 'title', 'date'], 'fields_optional': ['editor', 'editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['mvbook'] = {'title': _('Multi-volume Book'), 'description': _('A multi-volume @book. For backwards compatibility, multi-volume books are also supported by the entry type @book. However, it is advisable to make use of the dedicated entry type @mvbook.'), 'fields_required': ['author', 'title', 'date'], 'fields_optional': ['editor', 'editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'language', 'origlanguage', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['inbook'] = {'title': _('Part of a Book With Its Own Title'), 'description': _('A part of a book which forms a self-contained unit with its own title. Note that the profile of this entry type is different from standard BibTeX.'), 'fields_required': ['author', 'title', 'booktitle', 'date'], 'fields_optional': ['bookauthor', 'editor', 'editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'booksubtitle', 'booktitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['bookinbook'] = {'title': _('Book in Book'), 'description': _('This type is similar to @inbook but intended for works originally published as a stand-alone book. A typical example are books reprinted in the collected works of an author.'), 'fields_required': ['author', 'title', 'booktitle', 'date'], 'fields_optional': ['bookauthor', 'editor', 'editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'booksubtitle', 'booktitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['suppbook'] = {'title': _('Supplemental Material in a Book'), 'description': _('Supplemental material in a @book. This type is closely related to the @inbook entry type. While @inbook is primarily intended for a part of a book with its own title (e. g., a single essay in a collection of essays by the same author), this type is provided for elements such as prefaces, introductions, forewords, afterwords, etc. which often have a generic title only. Style guides may require such items to be formatted differently from other @inbook items. The standard styles will treat this entry type as an alias for @inbook.'), 'fields_required': ['author', 'title', 'booktitle', 'date'], 'fields_optional': ['bookauthor', 'editor', 'editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'booksubtitle', 'booktitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['booklet'] = {'title': _('Booklet'), 'description': _('A book-like work without a formal publisher or sponsoring institution. Use the field howpublished to supply publishing information in free format, if applicable. The field type may be useful as well.'), 'fields_required': ['author/editor', 'title', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'howpublished', 'type', 'note', 'location', 'chapter', 'pages', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['collection'] = {'title': _('Single-volume Collection'), 'description': _('A single-volume collection with multiple, self-contained contributions by distinct authors which have their own title. The work as a whole has no overall author but it will usually have an editor.'), 'fields_required': ['editor', 'title', 'date'], 'fields_optional': ['editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['mvcollection'] = {'title': _('Multi-volume Collection'), 'description': _('A multi-volume @collection. For backwards compatibility, multi-volume collections are also supported by the entry type @collection. However, it is advisable to make use of the dedicated entry type @mvcollection.'), 'fields_required': ['editor', 'title', 'date'], 'fields_optional': ['editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'language', 'origlanguage', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['incollection'] = {'title': _('Article in a Collection'), 'description': _('A contribution to a collection which forms a self-contained unit with a distinct author and title. The author refers to the title, the editor to the booktitle, i. e., the title of the collection.'), 'fields_required': ['author', 'editor', 'title', 'booktitle', 'date'], 'fields_optional': ['editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'booksubtitle', 'booktitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['suppcollection'] = {'title': _('Supplemental Material in a Collection'), 'description': _('Supplemental material in a @collection. This type is similar to @suppbook but related to the @collection entry type. The standard styles will treat this entry type as an alias for @incollection.'), 'fields_required': ['author', 'title', 'booktitle', 'date'], 'fields_optional': ['bookauthor', 'editor', 'editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'booksubtitle', 'booktitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['dataset'] = {'title': _('Data Set'), 'description': _('A data set or a similar collection of (mostly) raw data.'), 'fields_required': ['author/editor', 'title', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'edition', 'type', 'series', 'number', 'version', 'note', 'organization', 'publisher', 'location', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['manual'] = {'title': _('Technical Manual'), 'description': _('Technical or other documentation, not necessarily in printed form. The author or editor is omissible under certain terms.'), 'fields_required': ['author/editor', 'title', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'edition', 'type', 'series', 'number', 'version', 'note', 'organization', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['misc'] = {'title': _('Miscellaneous'), 'description': _('A fallback type for entries which do not fit into any other category. Use the field howpublished to supply publishing information in free format, if applicable. The field type may be useful as well. author, editor, and year are omissible under certain terms.'), 'fields_required': ['author/editor', 'title', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'howpublished', 'type', 'version', 'note', 'organization', 'location', 'date', 'month', 'year', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['online'] = {'title': _('Online Resource'), 'description': _('An online resource. author, editor, and year are omissible under certain terms. This entry type is intended for sources such as web sites which are intrinsically online resources. Note that all entry types support the url field. For example, when adding an article from an online journal, it may be preferable to use the @article type and its url field.'), 'fields_required': ['author/editor', 'title', 'date', 'url'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'version', 'note', 'organization', 'date', 'month', 'year', 'addendum', 'pubstate', 'urldate']} self.document_types['patent'] = {'title': _('Patent'), 'description': _('A patent or patent request. The number or record token is given in the number field. Use the type field to specify the type and the location field to indicate the scope of the patent, if different from the scope implied by the type. Note that the location field is treated as a key list with this entry type.'), 'fields_required': ['author', 'title', 'number', 'date'], 'fields_optional': ['holder', 'subtitle', 'titleaddon', 'type', 'version', 'location', 'note', 'date', 'month', 'year', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['periodical'] = {'title': _('Complete Issue of a Periodical'), 'description': _('An complete issue of a periodical, such as a special issue of a journal. The title of the periodical is given in the title field. If the issue has its own title in addition to the main title of the periodical, it goes in the issuetitle field. The editor is omissible under certain terms.'), 'fields_required': ['editor', 'title', 'date'], 'fields_optional': ['editora', 'editorb', 'editorc', 'subtitle', 'issuetitle', 'issuesubtitle', 'language', 'series', 'volume', 'number', 'issue', 'date', 'month', 'year', 'note', 'issn', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['suppperiodical'] = {'title': _('Supplemental Material in a Periodical'), 'description': _('Supplemental material in a @periodical. This type is similar to @suppbook but related to the @periodical entry type. The role of this entry type may be more obvious if you bear in mind that the @article type could also be called @inperiodical. This type may be useful when referring to items such as regular columns, obituaries, letters to the editor, etc. which only have a generic title. Style guides may require such items to be formatted differently from articles in the strict sense of the word. The standard styles will treat this entry type as an alias for @article.'), 'fields_required': ['author', 'title', 'booktitle', 'date'], 'fields_optional': ['bookauthor', 'editor', 'editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'booksubtitle', 'booktitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['proceedings'] = {'title': _('Conference Proceedings'), 'description': _('A single-volume conference proceedings. This type is very similar to @collection. It supports an optional organization field which holds the sponsoring institution. The editor is omissible under certain terms.'), 'fields_required': ['editor', 'title', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'eventtitle', 'eventdate', 'venue', 'language', 'volume', 'part', 'volumes', 'series', 'number', 'note', 'organization', 'publisher', 'location', 'month', 'isbn', 'chapter', 'pages', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['mvproceedings'] = {'title': _('Multi-volume Proceedings Entry'), 'description': _('A multi-volume @proceedings entry. For backwards compatibility, multi-volume proceedings are also supported by the entry type @proceedings. However, it is advisable to make use of the dedicated entry type @mvproceedings.'), 'fields_required': ['editor', 'title', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'eventtitle', 'eventdate', 'venue', 'language', 'volumes', 'series', 'number', 'note', 'organization', 'publisher', 'location', 'month', 'isbn', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['inproceedings'] = {'title': _('Article in Conference Proceedings'), 'description': _('An article in a conference proceedings. This type is similar to @incollection. It supports an optional organization field.'), 'fields_required': ['author', 'editor', 'title', 'booktitle', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'booksubtitle', 'booktitleaddon', 'eventtitle', 'eventdate', 'venue', 'language', 'volume', 'part', 'volumes', 'series', 'number', 'note', 'organization', 'publisher', 'location', 'month', 'isbn', 'chapter', 'pages', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['reference'] = {'title': _('Reference'), 'description': _('A single-volume work of reference such as an encyclopedia or a dictionary. This is a more specific variant of the generic @collection entry type. The standard styles will treat this entry type as an alias for @collection.'), 'fields_required': ['editor', 'title', 'date'], 'fields_optional': ['editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['mvreference'] = {'title': _('Multi-volume Reference Entry'), 'description': _('A multi-volume @reference entry. The standard styles will treat this entry type as an alias for @mvcollection. For backwards compatibility, multi-volume references are also supported by the entry type @reference. However, it is advisable to make use of the dedicated entry type @mvreference.'), 'fields_required': ['editor', 'title', 'date'], 'fields_optional': ['editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'language', 'origlanguage', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['inreference'] = {'title': _('Article in a Reference'), 'description': _('An article in a work of reference. This is a more specific variant of the generic @incollection entry type. The standard styles will treat this entry type as an alias for @incollection.'), 'fields_required': ['author', 'editor', 'title', 'booktitle', 'date'], 'fields_optional': ['editora', 'editorb', 'editorc', 'translator', 'annotator', 'commentator', 'introduction', 'foreword', 'afterword', 'subtitle', 'titleaddon', 'maintitle', 'mainsubtitle', 'maintitleaddon', 'booksubtitle', 'booktitleaddon', 'language', 'origlanguage', 'volume', 'part', 'edition', 'volumes', 'series', 'number', 'note', 'publisher', 'location', 'isbn', 'chapter', 'pages', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['report'] = {'title': _('Report'), 'description': _('A technical report, research report, or white paper published by a university or some other institution. Use the type field to specify the type of report. The sponsoring institution goes in the institution field.'), 'fields_required': ['author', 'title', 'type', 'institution', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'number', 'version', 'note', 'location', 'month', 'isrn', 'chapter', 'pages', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['software'] = {'title': _('Software'), 'description': _('Computer software. The standard styles will treat this entry type as an alias for @misc.'), 'fields_required': ['author/editor', 'title', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'howpublished', 'type', 'version', 'note', 'organization', 'location', 'date', 'month', 'year', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['thesis'] = {'title': _('Thesis'), 'description': _('A thesis written for an educational institution to satisfy the requirements for a degree. Use the type field to specify the type of thesis.'), 'fields_required': ['author', 'title', 'type', 'institution', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'note', 'location', 'month', 'isbn', 'chapter', 'pages', 'pagetotal', 'addendum', 'pubstate', 'doi', 'eprint', 'eprintclass', 'eprinttype', 'url', 'urldate']} self.document_types['unpublished'] = {'title': _('Unpublished'), 'description': _('A work with an author and a title which has not been formally published, such as a manuscript or the script of a talk. Use the fields howpublished and note to supply additional information in free format, if applicable.'), 'fields_required': ['author', 'title', 'date'], 'fields_optional': ['subtitle', 'titleaddon', 'language', 'howpublished', 'note', 'location', 'isbn', 'date', 'month', 'year', 'addendum', 'pubstate', 'url', 'urldate']} self.fields = dict() self.fields['author'] = {'type': '', 'description': ''} self.fields['title'] = {'type': '', 'description': ''} self.fields['journaltitle'] = {'type': '', 'description': ''} self.fields['date'] = {'type': '', 'description': ''} self.fields['editor'] = {'type': '', 'description': ''} self.fields['editora'] = {'type': '', 'description': ''} self.fields['editorb'] = {'type': '', 'description': ''} self.fields['editorc'] = {'type': '', 'description': ''} self.fields['translator'] = {'type': '', 'description': ''} self.fields['annotator'] = {'type': '', 'description': ''} self.fields['commentator'] = {'type': '', 'description': ''} self.fields['introduction'] = {'type': '', 'description': ''} self.fields['foreword'] = {'type': '', 'description': ''} self.fields['afterword'] = {'type': '', 'description': ''} self.fields['subtitle'] = {'type': '', 'description': ''} self.fields['titleaddon'] = {'type': '', 'description': ''} self.fields['maintitle'] = {'type': '', 'description': ''} self.fields['mainsubtitle'] = {'type': '', 'description': ''} self.fields['maintitleaddon'] = {'type': '', 'description': ''} self.fields['journalsubtitle'] = {'type': '', 'description': ''} self.fields['issuetitle'] = {'type': '', 'description': ''} self.fields['issuesubtitle'] = {'type': '', 'description': ''} self.fields['language'] = {'type': '', 'description': ''} self.fields['origlanguage'] = {'type': '', 'description': ''} self.fields['volume'] = {'type': '', 'description': ''} self.fields['part'] = {'type': '', 'description': ''} self.fields['edition'] = {'type': '', 'description': ''} self.fields['volumes'] = {'type': '', 'description': ''} self.fields['series'] = {'type': '', 'description': ''} self.fields['number'] = {'type': '', 'description': ''} self.fields['note'] = {'type': '', 'description': ''} self.fields['eid'] = {'type': '', 'description': ''} self.fields['issue'] = {'type': '', 'description': ''} self.fields['month'] = {'type': '', 'description': ''} self.fields['publisher'] = {'type': '', 'description': ''} self.fields['location'] = {'type': '', 'description': ''} self.fields['isbn'] = {'type': '', 'description': ''} self.fields['chapter'] = {'type': '', 'description': ''} self.fields['pages'] = {'type': '', 'description': ''} self.fields['version'] = {'type': '', 'description': ''} self.fields['issn'] = {'type': '', 'description': ''} self.fields['pagetotal'] = {'type': '', 'description': ''} self.fields['addendum'] = {'type': '', 'description': ''} self.fields['pubstate'] = {'type': '', 'description': ''} self.fields['doi'] = {'type': '', 'description': ''} self.fields['eprint'] = {'type': '', 'description': ''} self.fields['eprintclass'] = {'type': '', 'description': ''} self.fields['eprinttype'] = {'type': '', 'description': ''} self.fields['url'] = {'type': '', 'description': ''} self.fields['urldate'] = {'type': '', 'description': ''} self.fields['booktitle'] = {'type': '', 'description': ''} self.fields['bookauthor'] = {'type': '', 'description': ''} self.fields['booksubtitle'] = {'type': '', 'description': ''} self.fields['booktitleaddon'] = {'type': '', 'description': ''} self.fields['author/editor'] = {'type': '', 'description': ''} self.fields['howpublished'] = {'type': '', 'description': ''} self.fields['type'] = {'type': '', 'description': ''} self.fields['organization'] = {'type': '', 'description': ''} self.fields['year'] = {'type': '', 'description': ''} self.fields['holder'] = {'type': '', 'description': ''} self.fields['eventtitle'] = {'type': '', 'description': ''} self.fields['eventdate'] = {'type': '', 'description': ''} self.fields['venue'] = {'type': '', 'description': ''} self.fields['institution'] = {'type': '', 'description': ''} self.fields['isrn'] = {'type': '', 'description': ''} self.current_values = dict() self.view = view.BibTeXWizardView(self.main_window) self.is_not_setup = True self.document_type_set = False def run(self, dialog_type, document): self.document = document if self.is_not_setup: self.create_pages_and_add_them_to_view() self.init_current_values() self.setup() self.is_not_setup = False titles = {'new_entry': _('Create a new BibTeX Entry'), 'previous_entries': _('Add BibTeX Entry'), 'search_online': _('Add BibTeX Entry')} self.view.headerbar.set_title(titles[dialog_type]) self.view.create_button.set_sensitive(False) self.presets = None self.current_page = 0 self.load_presets() self.goto_page(0) response = self.view.run() if response == Gtk.ResponseType.APPLY: self.save_presets() self.insert_template() self.view.dialog.hide() def create_pages_and_add_them_to_view(self): self.pages = list() self.pages.append(CreateNewEntryPage(self, self.document_types, self.current_values)) self.fields_entry_page = FieldsEntryPage(self, self.current_values) self.pages.append(self.fields_entry_page) for page in self.pages: self.view.notebook.append_page(page.view) def init_current_values(self): self.current_values['document_type'] = 'article' self.current_values['identifier'] = '' self.current_values['fields'] = dict() for field in self.fields.keys(): self.current_values['fields'][field] = '' def setup(self): self.view.dialog.connect('key-press-event', self.on_keypress) for page in self.pages: page.observe_view() self.view.next_button.connect('clicked', self.goto_page_next) self.view.back_button.connect('clicked', self.goto_page_prev) def load_presets(self): if self.presets == None: presets = self.settings.get_value('app_bibtex_wizard', 'presets') if presets != None: self.presets = pickle.loads(presets) for page in self.pages: page.load_presets(self.presets) def save_presets(self): presets = dict() presets['document_type'] = self.current_values['document_type'] presets['identifier'] = self.current_values['identifier'] presets['include_empty_optional'] = self.fields_entry_page.view.option_include_empty.get_active() self.settings.set_value('app_bibtex_wizard', 'presets', pickle.dumps(presets)) def goto_page_next(self, button=None, data=None): self.goto_page(1) def goto_page_prev(self, button=None, data=None): self.goto_page(0) def goto_page(self, page_number): self.current_page = page_number self.view.notebook.set_current_page(page_number) self.view.headerbar.set_subtitle(self.pages[page_number].view.headerbar_subtitle) self.pages[page_number].on_activation() if page_number == 0: self.view.back_button.hide() self.view.create_button.hide() self.view.next_button.show_all() else: self.view.next_button.hide() self.view.back_button.show_all() self.view.create_button.show_all() def on_keypress(self, widget, event, data=None): modifiers = Gtk.accelerator_get_default_mod_mask() if event.keyval == Gdk.keyval_from_name('Return'): if event.state & modifiers == 0: if self.current_page in range(0, 1): self.view.next_button.clicked() return True elif self.current_page == 1: if self.view.create_button.get_sensitive(): self.view.create_button.clicked() return True return False def check_required_fields(self): if len(self.fields_entry_page.blank_required_fields) > 0: self.view.create_button.set_sensitive(False) else: self.view.create_button.set_sensitive(True) def set_document_type(self, document_type): if self.current_values['document_type'] != document_type or not self.document_type_set: self.document_type_set = True self.current_values['document_type'] = document_type attributes = self.document_types[document_type] for entry in self.fields_entry_page.view.required_fields_entries.get_children(): self.fields_entry_page.view.required_fields_entries.remove(entry) self.fields_entry_page.required_fields = list() view = self.fields_entry_page.view.identifier_entry self.fields_entry_page.view.required_fields_entries.pack_start(view, False, False, 0) view.show_all() for required_field in attributes['fields_required']: view = self.fields_entry_page.view.required_entry_views[required_field] self.fields_entry_page.view.required_fields_entries.pack_start(view, False, False, 0) view.show_all() self.fields_entry_page.required_fields.append(required_field) self.fields_entry_page.required_fields.append('identifier') self.fields_entry_page.blank_required_fields = self.fields_entry_page.required_fields.copy() for entry in self.fields_entry_page.view.optional_fields_entries.get_children(): self.fields_entry_page.view.optional_fields_entries.remove(entry) for optional_field in attributes['fields_optional']: view = self.fields_entry_page.view.optional_entry_views[optional_field] self.fields_entry_page.view.optional_fields_entries.pack_start(view, False, False, 0) view.show_all() def insert_template(self, data=None): document_type = self.current_values['document_type'] text = '@' + document_type + '{' + self.current_values['identifier'] + '' for field in self.document_types[document_type]['fields_required']: value = self.current_values['fields'][field] text += ',\n\t' + field + ' '*(16 - len(field)) + '= "' + value + '"' for field in self.document_types[document_type]['fields_optional']: value = self.current_values['fields'][field] if value != '': text += ',\n\t' + field + ' '*(16 - len(field)) + '= "' + value + '"' elif self.fields_entry_page.view.option_include_empty.get_active(): text += ',\n\t' + field + ' '*(16 - len(field)) + '= ""' text += '\n}\n\n' self.document.content.insert_text(0, 0, text, False) self.document.content.place_cursor(0) self.document.content.scroll_cursor_onscreen() Setzer-0.4.4/setzer/dialogs/bibtex_wizard/bibtex_wizard_viewgtk.py000066400000000000000000000061311420322575300255410ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GLib from gi.repository import Gdk, GdkPixbuf import os class BibTeXWizardView(object): ''' Create document templates for users to build on. ''' def __init__(self, main_window): builder = Gtk.Builder.new_from_string('1', -1) self.dialog = builder.get_object('dialog') self.dialog.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.dialog.set_modal(True) self.dialog.set_transient_for(main_window) self.dialog.set_destroy_with_parent(True) self.dialog.set_default_size(750, 500) self.dialog.set_can_focus(False) self.topbox = self.dialog.get_content_area() self.topbox.set_border_width(0) self.topbox.set_size_request(750, 450) self.center_box = Gtk.HBox() self.pages = list() self.create_headerbar() self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(False) self.notebook.set_show_border(False) self.center_box.set_center_widget(self.notebook) self.topbox.pack_start(self.center_box, True, True, 0) self.center_box.show_all() def create_headerbar(self): self.headerbar = self.dialog.get_header_bar() self.headerbar.set_show_close_button(False) self.headerbar.set_subtitle('') self.cancel_button = self.dialog.add_button(_('_Cancel'), Gtk.ResponseType.CANCEL) self.cancel_button.set_can_focus(False) self.back_button = Gtk.Button.new_with_mnemonic(_('_Back')) self.back_button.set_can_focus(False) self.next_button = Gtk.Button.new_with_mnemonic(_('_Next')) self.next_button.set_can_focus(False) self.next_button.get_style_context().add_class('suggested-action') self.create_button = self.dialog.add_button(_('_Create'), Gtk.ResponseType.APPLY) self.create_button.set_can_focus(False) self.create_button.get_style_context().add_class('suggested-action') self.headerbar.pack_start(self.back_button) self.headerbar.pack_end(self.next_button) self.headerbar.show_all() def run(self): return self.dialog.run() def __del__(self): self.dialog.destroy() Setzer-0.4.4/setzer/dialogs/bibtex_wizard/pages/000077500000000000000000000000001420322575300216705ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/bibtex_wizard/pages/__init__.py000066400000000000000000000000001420322575300237670ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/bibtex_wizard/pages/page.py000066400000000000000000000025561420322575300231660ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class Page(object): def load_presets(self, presets): pass def on_activation(self): pass class PageView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('bibtex-wizard-page') self.set_margin_start(18) self.set_margin_top(18) self.set_margin_bottom(18) self.header = Gtk.Label() self.header.set_xalign(0) self.header.set_margin_bottom(12) self.header.get_style_context().add_class('bibtex-wizard-header') self.headerbar_subtitle = '' Setzer-0.4.4/setzer/dialogs/bibtex_wizard/pages/page_create_new_entry.py000066400000000000000000000111771420322575300266020ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import GLib from gi.repository import Gtk from setzer.dialogs.bibtex_wizard.pages.page import Page, PageView import os class CreateNewEntryPage(Page): def __init__(self, wizard, document_types, current_values): self.wizard = wizard self.document_types = document_types self.current_values = current_values self.view = CreateNewEntryPageView(self.document_types) def observe_view(self): def row_selected(box, row, user_data=None): child_name = row.document_type self.view.preview_container.set_visible_child_name(child_name) self.wizard.set_document_type(child_name) self.view.list.connect('row-selected', row_selected) def load_presets(self, presets): if presets != None and 'document_type' in presets: document_type = presets['document_type'] else: document_type = self.current_values['document_type'] row = self.view.list_rows[document_type] self.view.list.select_row(row) def on_activation(self): GLib.idle_add(self.view.list.get_selected_row().grab_focus) class CreateNewEntryPageView(PageView): def __init__(self, document_types): PageView.__init__(self) self.document_types = document_types self.header.set_text(_('Choose a document type')) self.headerbar_subtitle = _('Step') + ' 1: ' + _('Choose a document type') self.content = Gtk.HBox() self.list_wrapper = Gtk.ScrolledWindow() self.list_wrapper.set_size_request(350, 350) self.list_wrapper.get_style_context().add_class('bibtex-wizard-list1') self.list = Gtk.ListBox() self.list.set_can_focus(True) self.list.set_size_request(348, -1) self.list_rows = dict() for document_type, attributes in self.document_types.items(): row = DocumentSelectionRowView(document_type, attributes['title']) self.list.add(row) self.list_rows[document_type] = row self.list.set_margin_right(0) self.list.set_vexpand(False) self.list_wrapper.add(self.list) self.preview_container = Gtk.Stack() self.preview_container.set_size_request(348, -1) self.preview_container.set_margin_right(18) for document_type, attributes in self.document_types.items(): box = Gtk.VBox() label = Gtk.Label() label.set_line_wrap(True) markup = '@' + document_type + '\n\n' markup += attributes['description'] + '\n\n' markup += _('Required fields') + ': ' is_first = True for attribute in attributes['fields_required']: if not is_first: markup += ', ' is_first = False markup += attribute markup += '\n\n' + _('Optional fields') + ': ' is_first = True for attribute in attributes['fields_optional']: if not is_first: markup += ', ' is_first = False markup += attribute label.set_markup(markup) label.set_xalign(0) label.set_margin_start(19) box.pack_start(label, False, False, 0) self.preview_container.add_named(box, document_type) self.pack_start(self.header, False, False, 0) self.content.pack_start(self.list_wrapper, False, False, 0) self.content.pack_start(self.preview_container, False, False, 0) self.pack_start(self.content, False, False, 0) self.show_all() class DocumentSelectionRowView(Gtk.ListBoxRow): def __init__(self, document_type, title): Gtk.ListBoxRow.__init__(self) self.document_type = document_type self.set_can_focus(True) label = Gtk.Label(title) label.set_xalign(0) self.add(label) Setzer-0.4.4/setzer/dialogs/bibtex_wizard/pages/page_fields_entry.py000066400000000000000000000141251420322575300257300ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.bibtex_wizard.pages.page import Page, PageView import os class FieldsEntryPage(Page): def __init__(self, wizard, current_values): self.wizard = wizard self.current_values = current_values self.view = FieldsEntryPageView(self.wizard.fields) self.required_fields = list() self.blank_required_fields = list() def observe_view(self): def text_deleted(buffer, position, n_chars, field_name): text = buffer.get_text() if field_name == 'identifier': self.current_values['identifier'] = text else: self.current_values['fields'][field_name] = text if text == '' and field_name in self.required_fields: self.blank_required_fields.append(field_name) self.wizard.check_required_fields() def text_inserted(buffer, position, chars, n_chars, field_name): text = buffer.get_text() if field_name == 'identifier': self.current_values['identifier'] = text else: self.current_values['fields'][field_name] = text if text != '': try: self.blank_required_fields.remove(field_name) except ValueError: pass self.wizard.check_required_fields() self.view.identifier_entry.text_entry.get_buffer().connect('deleted-text', text_deleted, 'identifier') self.view.identifier_entry.text_entry.get_buffer().connect('inserted-text', text_inserted, 'identifier') for entry_view in self.view.required_entry_views.values(): entry_view.text_entry.get_buffer().connect('deleted-text', text_deleted, entry_view.field_name) entry_view.text_entry.get_buffer().connect('inserted-text', text_inserted, entry_view.field_name) for entry_view in self.view.optional_entry_views.values(): entry_view.text_entry.get_buffer().connect('deleted-text', text_deleted, entry_view.field_name) entry_view.text_entry.get_buffer().connect('inserted-text', text_inserted, entry_view.field_name) def load_presets(self, presets): if presets != None and 'include_empty_optional' in presets: include_empty_optional = presets['include_empty_optional'] else: include_empty_optional = False self.view.option_include_empty.set_active(include_empty_optional) self.view.identifier_entry.text_entry.set_text('') self.view.identifier_entry.text_entry.grab_focus() for entry_view in self.view.required_entry_views.values(): entry_view.text_entry.set_text('') for entry_view in self.view.optional_entry_views.values(): entry_view.text_entry.set_text('') def on_activation(self): pass class FieldsEntryPageView(Gtk.Overlay): def __init__(self, fields): Gtk.Overlay.__init__(self) self.get_style_context().add_class('bibtex-wizard-page') self.scrolled_window = Gtk.ScrolledWindow() self.vbox = Gtk.VBox() self.vbox.set_margin_start(18) self.vbox.set_margin_top(18) self.vbox.set_margin_bottom(18) self.vbox.set_margin_right(382) self.scrolled_window.add(self.vbox) self.headerbar_subtitle = _('Step') + ' 2: ' + _('Entry fields') self.header1 = Gtk.Label() self.header1.set_xalign(0) self.header1.set_margin_bottom(12) self.header1.get_style_context().add_class('bibtex-wizard-header') self.header1.set_text(_('Required fields')) self.required_entry_views = dict() self.required_fields_entries = Gtk.VBox() self.identifier_entry = FieldsEntryView('identifier') for field_name, attributes in fields.items(): self.required_entry_views[field_name] = FieldsEntryView(field_name) self.header2 = Gtk.Label() self.header2.set_xalign(0) self.header2.set_margin_bottom(12) self.header2.set_margin_top(18) self.header2.get_style_context().add_class('bibtex-wizard-header') self.header2.set_text(_('Optional fields')) self.option_include_empty = Gtk.CheckButton.new_with_label(_('Insert empty optional fields')) self.option_include_empty.set_margin_bottom(18) self.optional_entry_views = dict() self.optional_fields_entries = Gtk.VBox() for field_name, attributes in fields.items(): self.optional_entry_views[field_name] = FieldsEntryView(field_name) self.vbox.pack_start(self.header1, False, False, 0) self.vbox.pack_start(self.required_fields_entries, False, False, 0) self.vbox.pack_start(self.header2, False, False, 0) self.vbox.pack_start(self.option_include_empty, False, False, 0) self.vbox.pack_start(self.optional_fields_entries, False, False, 0) self.add(self.scrolled_window) self.show_all() class FieldsEntryView(Gtk.HBox): def __init__(self, field_name): Gtk.HBox.__init__(self) self.field_name = field_name self.label = Gtk.Label(field_name + ':') self.label.set_xalign(0) self.label.set_margin_right(6) self.text_entry = Gtk.Entry() self.text_entry.set_size_request(230, -1) self.pack_start(self.label, True, True, 0) self.pack_start(self.text_entry, False, False, 0) Setzer-0.4.4/setzer/dialogs/build_save/000077500000000000000000000000001420322575300200515ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/build_save/__init__.py000066400000000000000000000000001420322575300221500ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/build_save/build_save.py000066400000000000000000000036031420322575300225420ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class BuildSaveDialog(Dialog): ''' This dialog is asking users to save never saved documents before building. ''' def __init__(self, main_window): self.main_window = main_window def run(self, document): self.setup(document) response = self.view.run() if response == Gtk.ResponseType.YES: return_value = True else: return_value = False self.close() return return_value def setup(self, document): self.view = Gtk.MessageDialog(self.main_window, 0, Gtk.MessageType.QUESTION) self.view.set_property('text', _('Document »{document}« has no filename.').format(document=document.get_displayname())) self.view.format_secondary_markup(_('Please save your document to a file, so the build system knows where to put the .pdf (it will be in the same folder as your document).')) self.view.add_buttons(_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Save document now'), Gtk.ResponseType.YES) self.view.set_default_response(Gtk.ResponseType.YES) Setzer-0.4.4/setzer/dialogs/building_failed/000077500000000000000000000000001420322575300210355ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/building_failed/__init__.py000066400000000000000000000000001420322575300231340ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/building_failed/building_failed.py000066400000000000000000000034171420322575300245150ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog class BuildingFailedDialog(Dialog): def __init__(self, main_window): self.main_window = main_window def run(self, error_message): self.setup(error_message) response = self.view.run() if response == Gtk.ResponseType.YES: return_value = True else: return_value = False self.close() return return_value def setup(self, error_message): self.view = Gtk.MessageDialog(self.main_window, 0, Gtk.MessageType.QUESTION) self.view.set_property('text', _('Something went wrong.')) self.view.format_secondary_markup(_('''The build process ended unexpectedly returning "{error_message}". To configure your build system go to Preferences.''').format(error_message=error_message)) self.view.add_buttons(_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Go to Preferences'), Gtk.ResponseType.YES) self.view.set_default_response(Gtk.ResponseType.YES) Setzer-0.4.4/setzer/dialogs/close_confirmation/000077500000000000000000000000001420322575300216115ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/close_confirmation/__init__.py000066400000000000000000000000001420322575300237100ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/close_confirmation/close_confirmation.py000066400000000000000000000123161420322575300260430ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class CloseConfirmationDialog(Dialog): ''' This dialog is asking users to save unsaved documents or discard their changes. ''' def __init__(self, main_window, workspace, save_document_dialog): self.main_window = main_window self.workspace = workspace self.save_document_dialog = save_document_dialog def run(self, documents): if documents == None: return {'all_save_to_close': True, 'not_save_to_close_documents': list()} self.setup(documents) documents_not_save_to_close = list() return_to_active_document = False response = self.view.run() if response == Gtk.ResponseType.NO: self.workspace.save_to_disk() all_save_to_close = True elif response == Gtk.ResponseType.YES: selected_documents = list() if len(documents) == 1: selected_documents.append(documents[0]) else: for child in self.chooser.get_children(): if child.get_child().get_active(): number = int(child.get_child().get_name()[29:]) selected_documents.append(documents[number]) for document in selected_documents: if document.get_filename() == None: self.workspace.set_active_document(document) return_to_active_document = True if not self.save_document_dialog.run(document): documents_not_save_to_close.append(document) else: document.save_to_disk() if return_to_active_document == True: self.workspace.set_active_document(document) self.workspace.save_to_disk() if len(documents_not_save_to_close) >= 1: self.workspace.set_active_document(documents_not_save_to_close[-1]) all_save_to_close = False else: all_save_to_close = True else: all_save_to_close = False documents_not_save_to_close = documents self.close() return {'all_save_to_close': all_save_to_close, 'not_save_to_close_documents': documents_not_save_to_close} def setup(self, documents): self.view = Gtk.MessageDialog(self.main_window, 0, Gtk.MessageType.QUESTION) if len(documents) == 1: self.view.set_property('text', _('Document »{document}« has unsaved changes.').format(document=documents[0].get_displayname())) self.view.format_secondary_markup(_('If you close without saving, these changes will be lost.')) if len(documents) >= 2: self.view.set_property('text', _('There are {amount} documents with unsaved changes.\nSave changes before closing?').format(amount=str(len(documents)))) self.view.format_secondary_markup(_('Select the documents you want to save:')) label = self.view.get_message_area().get_children()[1] label.set_xalign(0) label.set_halign(Gtk.Align.START) scrolled_window = Gtk.ScrolledWindow() scrolled_window.set_shadow_type(Gtk.ShadowType.IN) scrolled_window.set_size_request(446, 112) self.chooser = Gtk.ListBox() self.chooser.set_selection_mode(Gtk.SelectionMode.NONE) counter = 0 for document in documents: button = Gtk.CheckButton(document.get_displayname()) button.set_name('document_to_save_checkbutton_' + str(counter)) button.set_active(True) button.set_can_focus(False) self.chooser.add(button) counter += 1 for listboxrow in self.chooser.get_children(): listboxrow.set_can_focus(False) scrolled_window.add(self.chooser) secondary_text_label = Gtk.Label(_('If you close without saving, all changes will be lost.')) message_area = self.view.get_message_area() message_area.pack_start(scrolled_window, False, False, 0) message_area.pack_start(secondary_text_label, False, False, 0) message_area.show_all() self.view.add_buttons(_('Close _without Saving'), Gtk.ResponseType.NO, _('_Cancel'), Gtk.ResponseType.CANCEL, _('_Save'), Gtk.ResponseType.YES) self.view.set_default_response(Gtk.ResponseType.YES) Setzer-0.4.4/setzer/dialogs/dialog.py000066400000000000000000000015121420322575300175440ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 class Dialog(object): ''' Dialog superclass. ''' def close(self): self.view.hide() del(self.view) Setzer-0.4.4/setzer/dialogs/dialog_locator.py000066400000000000000000000112671420322575300212770ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import setzer.dialogs.about.about as about_dialog import setzer.dialogs.add_remove_packages.add_remove_packages as add_remove_packages_dialog import setzer.dialogs.bibtex_wizard.bibtex_wizard as bibtex_wizard import setzer.dialogs.build_save.build_save as build_save_dialog import setzer.dialogs.building_failed.building_failed as building_failed_dialog import setzer.dialogs.close_confirmation.close_confirmation as close_confirmation_dialog import setzer.dialogs.document_wizard.document_wizard as document_wizard import setzer.dialogs.document_changed_on_disk.document_changed_on_disk as document_changed_on_disk_dialog import setzer.dialogs.document_deleted_on_disk.document_deleted_on_disk as document_deleted_on_disk_dialog import setzer.dialogs.include_bibtex_file.include_bibtex_file as include_bibtex_file_dialog import setzer.dialogs.include_latex_file.include_latex_file as include_latex_file_dialog import setzer.dialogs.interpreter_missing.interpreter_missing as interpreter_missing_dialog import setzer.dialogs.preferences.preferences as preferences_dialog import setzer.dialogs.open_document.open_document as open_document_dialog import setzer.dialogs.open_session.open_session as open_session_dialog import setzer.dialogs.replace_confirmation.replace_confirmation as replace_confirmation_dialog import setzer.dialogs.save_document.save_document as save_document_dialog import setzer.dialogs.save_session.save_session as save_session_dialog import setzer.dialogs.keyboard_shortcuts.keyboard_shortcuts as keyboard_shortcuts_dialog import setzer.dialogs.spellchecking_language.spellchecking_language as spellchecking_language_dialog import setzer.dialogs.spellchecking.spellchecking as spellchecking_dialog class DialogLocator(object): dialogs = dict() def init_dialogs(main_window, workspace): dialogs = dict() dialogs['about'] = about_dialog.AboutDialog(main_window) dialogs['add_remove_packages'] = add_remove_packages_dialog.AddRemovePackagesDialog(main_window, workspace) dialogs['bibtex_wizard'] = bibtex_wizard.BibTeXWizard(main_window, workspace) dialogs['building_failed'] = building_failed_dialog.BuildingFailedDialog(main_window) dialogs['build_save'] = build_save_dialog.BuildSaveDialog(main_window) dialogs['document_wizard'] = document_wizard.DocumentWizard(main_window, workspace) dialogs['document_changed_on_disk'] = document_changed_on_disk_dialog.DocumentChangedOnDiskDialog(main_window) dialogs['document_deleted_on_disk'] = document_deleted_on_disk_dialog.DocumentDeletedOnDiskDialog(main_window) dialogs['include_bibtex_file'] = include_bibtex_file_dialog.IncludeBibTeXFile(main_window) dialogs['include_latex_file'] = include_latex_file_dialog.IncludeLaTeXFile(main_window) dialogs['interpreter_missing'] = interpreter_missing_dialog.InterpreterMissingDialog(main_window) dialogs['open_document'] = open_document_dialog.OpenDocumentDialog(main_window) dialogs['open_session'] = open_session_dialog.OpenSessionDialog(main_window) dialogs['preferences'] = preferences_dialog.PreferencesDialog(main_window) dialogs['replace_confirmation'] = replace_confirmation_dialog.ReplaceConfirmationDialog(main_window) dialogs['save_document'] = save_document_dialog.SaveDocumentDialog(main_window, workspace) dialogs['save_session'] = save_session_dialog.SaveSessionDialog(main_window, workspace) dialogs['keyboard_shortcuts'] = keyboard_shortcuts_dialog.KeyboardShortcutsDialog(main_window) dialogs['spellchecking'] = spellchecking_dialog.SpellcheckingDialog(main_window, workspace) dialogs['spellchecking_language'] = spellchecking_language_dialog.SpellcheckingLanguageDialog(main_window, workspace) dialogs['close_confirmation'] = close_confirmation_dialog.CloseConfirmationDialog(main_window, workspace, dialogs['save_document']) DialogLocator.dialogs = dialogs def get_dialog(dialog_type): return DialogLocator.dialogs[dialog_type] Setzer-0.4.4/setzer/dialogs/document_changed_on_disk/000077500000000000000000000000001420322575300227315ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/document_changed_on_disk/__init__.py000066400000000000000000000000001420322575300250300ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/document_changed_on_disk/document_changed_on_disk.py000066400000000000000000000034461420322575300303070ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class DocumentChangedOnDiskDialog(Dialog): ''' This dialog is asking whether a file that changed on disk should be reloaded. ''' def __init__(self, main_window): self.main_window = main_window def run(self, document): view = self.setup(document) response = view.run() if response == Gtk.ResponseType.YES: value = True else: value = False view.hide() return value def setup(self, document): view = Gtk.MessageDialog(self.main_window, 0, Gtk.MessageType.QUESTION) view.set_property('text', _('Document »{document}« has changed on disk.').format(document=document.get_displayname())) view.format_secondary_markup(_('Should Setzer reload it now?')) view.add_buttons(_('_Keep the current Version'), Gtk.ResponseType.CANCEL, _('_Reload from Disk'), Gtk.ResponseType.YES) view.set_default_response(Gtk.ResponseType.YES) return view Setzer-0.4.4/setzer/dialogs/document_deleted_on_disk/000077500000000000000000000000001420322575300227465ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/document_deleted_on_disk/__init__.py000066400000000000000000000000001420322575300250450ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/document_deleted_on_disk/document_deleted_on_disk.py000066400000000000000000000031631420322575300303350ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class DocumentDeletedOnDiskDialog(Dialog): ''' This dialog is warning the user that a file was deleted. ''' def __init__(self, main_window): self.main_window = main_window def run(self, document): view = self.setup(document) view.run() view.hide() def setup(self, document): view = Gtk.MessageDialog(self.main_window, 0, Gtk.MessageType.WARNING) view.set_property('text', _('Document »{document}« was deleted from disk or moved.').format(document=document.get_displayname())) view.format_secondary_markup(_('If you close it or close Setzer without saving, this document will be lost.')) view.add_buttons(_('Ok'), Gtk.ResponseType.YES) view.set_default_response(Gtk.ResponseType.YES) return view Setzer-0.4.4/setzer/dialogs/document_wizard/000077500000000000000000000000001420322575300211325ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/document_wizard/__init__.py000066400000000000000000000000001420322575300232310ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/document_wizard/document_wizard.py000066400000000000000000000374131420322575300247120ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gio from gi.repository import Gdk from setzer.dialogs.dialog import Dialog import setzer.dialogs.document_wizard.document_wizard_viewgtk as view from setzer.dialogs.document_wizard.pages.page_document_class import DocumentClassPage from setzer.dialogs.document_wizard.pages.page_article_settings import ArticleSettingsPage from setzer.dialogs.document_wizard.pages.page_report_settings import ReportSettingsPage from setzer.dialogs.document_wizard.pages.page_book_settings import BookSettingsPage from setzer.dialogs.document_wizard.pages.page_letter_settings import LetterSettingsPage from setzer.dialogs.document_wizard.pages.page_beamer_settings import BeamerSettingsPage from setzer.dialogs.document_wizard.pages.page_general_settings import GeneralSettingsPage from setzer.app.service_locator import ServiceLocator import pickle import os class DocumentWizard(Dialog): ''' Create document templates for users to build on. ''' def __init__(self, main_window, workspace): self.main_window = main_window self.workspace = workspace self.settings = ServiceLocator.get_settings() self.current_values = dict() self.page_formats = {'US Letter': 'letterpaper', 'US Legal': 'legalpaper', 'A4': 'a4paper', 'A5': 'a5paper', 'B5': 'b5paper'} self.view = view.DocumentWizardView(self.main_window) self.pages = list() self.pages.append(DocumentClassPage(self.current_values)) self.pages.append(ArticleSettingsPage(self.current_values)) self.pages.append(ReportSettingsPage(self.current_values)) self.pages.append(BookSettingsPage(self.current_values)) self.pages.append(LetterSettingsPage(self.current_values)) self.pages.append(BeamerSettingsPage(self.current_values)) self.pages.append(GeneralSettingsPage(self.current_values)) for page in self.pages: self.view.notebook.append_page(page.view) self.is_not_setup = True def run(self, document): self.document = document if self.is_not_setup: self.init_current_values() self.setup() self.is_not_setup = False self.presets = None self.current_page = 0 self.load_presets() self.goto_page(0) response = self.view.run() if response == Gtk.ResponseType.APPLY: self.save_presets() document_class = self.current_values['document_class'] template_start, template_end = eval('self.get_insert_text_' + document_class + '()') self.document.content.insert_template(template_start, template_end) self.view.dialog.hide() def init_current_values(self): self.current_values['document_class'] = 'article' self.current_values['title'] = '' self.current_values['author'] = '' self.current_values['date'] = '\\today' self.current_values['packages'] = dict() self.current_values['packages']['ams'] = True self.current_values['packages']['graphicx'] = True self.current_values['packages']['color'] = True self.current_values['packages']['xcolor'] = True self.current_values['packages']['url'] = True self.current_values['packages']['theorem'] = False self.current_values['packages']['textcomp'] = True self.current_values['packages']['listings'] = False self.current_values['packages']['hyperref'] = False self.current_values['packages']['glossaries'] = False self.current_values['packages']['parskip'] = True self.current_values['article'] = dict() self.current_values['article']['page_format'] = 'US Letter' self.current_values['article']['font_size'] = 11 self.current_values['article']['option_twocolumn'] = False self.current_values['article']['option_default_margins'] = True self.current_values['article']['margin_left'] = 3.5 self.current_values['article']['margin_right'] = 3.5 self.current_values['article']['margin_top'] = 3.5 self.current_values['article']['margin_bottom'] = 3.5 self.current_values['article']['is_landscape'] = False self.current_values['report'] = dict() self.current_values['report']['page_format'] = 'US Letter' self.current_values['report']['font_size'] = 11 self.current_values['report']['option_twocolumn'] = False self.current_values['report']['option_default_margins'] = True self.current_values['report']['margin_left'] = 3.5 self.current_values['report']['margin_right'] = 3.5 self.current_values['report']['margin_top'] = 3.5 self.current_values['report']['margin_bottom'] = 3.5 self.current_values['report']['is_landscape'] = False self.current_values['book'] = dict() self.current_values['book']['page_format'] = 'US Letter' self.current_values['book']['font_size'] = 11 self.current_values['book']['option_twocolumn'] = False self.current_values['book']['option_default_margins'] = True self.current_values['book']['margin_left'] = 3.5 self.current_values['book']['margin_right'] = 3.5 self.current_values['book']['margin_top'] = 3.5 self.current_values['book']['margin_bottom'] = 3.5 self.current_values['book']['is_landscape'] = False self.current_values['letter'] = dict() self.current_values['letter']['page_format'] = 'US Letter' self.current_values['letter']['font_size'] = 11 self.current_values['letter']['option_default_margins'] = True self.current_values['letter']['margin_left'] = 3.5 self.current_values['letter']['margin_right'] = 3.5 self.current_values['letter']['margin_top'] = 3.5 self.current_values['letter']['margin_bottom'] = 3.5 self.current_values['beamer'] = dict() self.current_values['beamer']['theme'] = 'default' self.current_values['beamer']['option_show_navigation'] = True self.current_values['beamer']['option_top_align'] = True def setup(self): self.view.dialog.connect('key-press-event', self.on_keypress) for page in self.pages: page.observe_view() self.view.next_button.connect('clicked', self.goto_page_next) self.view.back_button.connect('clicked', self.goto_page_prev) def load_presets(self): if self.presets == None: presets = self.settings.get_value('app_document_wizard', 'presets') if presets != None: self.presets = pickle.loads(presets) for page in self.pages: page.load_presets(self.presets) def save_presets(self): self.settings.set_value('app_document_wizard', 'presets', pickle.dumps(self.current_values)) def goto_page_next(self, button=None, data=None): if self.current_page == 0: if self.current_values['document_class'] == 'article': self.goto_page(1) elif self.current_values['document_class'] == 'report': self.goto_page(2) elif self.current_values['document_class'] == 'book': self.goto_page(3) elif self.current_values['document_class'] == 'letter': self.goto_page(4) elif self.current_values['document_class'] == 'beamer': self.goto_page(5) elif self.current_page in range(1, 6): self.goto_page(6) def goto_page_prev(self, button=None, data=None): if self.current_page == 6: if self.current_values['document_class'] == 'article': self.goto_page(1) elif self.current_values['document_class'] == 'report': self.goto_page(2) elif self.current_values['document_class'] == 'book': self.goto_page(3) elif self.current_values['document_class'] == 'letter': self.goto_page(4) elif self.current_values['document_class'] == 'beamer': self.goto_page(5) elif self.current_page in range(1, 6): self.goto_page(0) def goto_page(self, page_number): self.current_page = page_number self.view.notebook.set_current_page(page_number) self.view.headerbar.set_subtitle(self.pages[page_number].view.headerbar_subtitle) self.pages[page_number].on_activation() if page_number == 0: self.view.back_button.hide() self.view.create_button.hide() self.view.next_button.show_all() elif page_number < 6: self.view.create_button.hide() self.view.back_button.show_all() self.view.next_button.show_all() else: self.view.next_button.hide() self.view.back_button.show_all() self.view.create_button.show_all() def on_keypress(self, widget, event, data=None): modifiers = Gtk.accelerator_get_default_mod_mask() if event.keyval == Gdk.keyval_from_name('Return'): if event.state & modifiers == 0: if self.current_page in range(0, 6): self.view.next_button.clicked() return True elif self.current_page == 6: self.view.create_button.clicked() return True return False ''' *** templates ''' def get_insert_text_article(self): return ('''\\documentclass[''' + self.page_formats[self.current_values['article']['page_format']] + ''',''' + str(self.current_values['article']['font_size']) + '''pt''' + (',twocolumn' if self.current_values['article']['option_twocolumn'] else '') + (',landscape' if self.current_values['article']['is_landscape'] else '') + ''']{article} ''' + ('''\\usepackage[top=''' + str(self.current_values['article']['margin_top']) + '''cm, bottom=''' + str(self.current_values['article']['margin_bottom']) + '''cm, left=''' + str(self.current_values['article']['margin_left']) + '''cm, right=''' + str(self.current_values['article']['margin_right']) + '''cm]{geometry}''' if not self.current_values['article']['option_default_margins'] else '') + '''\\usepackage[T1]{fontenc} \\usepackage[utf8]{inputenc} \\usepackage{lmodern} ''' + self.get_insert_packages() + ''' \\title{''' + self.current_values['title'] + '''} \\author{''' + self.current_values['author'] + '''} \\date{''' + self.current_values['date'] + '''} \\begin{document} \\maketitle \\tableofcontents \\begin{abstract} \\end{abstract} \\section{} ''', ''' \\end{document}''') def get_insert_text_report(self): return ('''\\documentclass[''' + self.page_formats[self.current_values['report']['page_format']] + ''',''' + str(self.current_values['report']['font_size']) + '''pt''' + (',twocolumn' if self.current_values['report']['option_twocolumn'] else '') + (',landscape' if self.current_values['report']['is_landscape'] else '') + ''']{report} ''' + ('''\\usepackage[top=''' + str(self.current_values['report']['margin_top']) + '''cm, bottom=''' + str(self.current_values['report']['margin_bottom']) + '''cm, left=''' + str(self.current_values['report']['margin_left']) + '''cm, right=''' + str(self.current_values['report']['margin_right']) + '''cm]{geometry}''' if not self.current_values['report']['option_default_margins'] else '') + '''\\usepackage[T1]{fontenc} \\usepackage[utf8]{inputenc} \\usepackage{lmodern} ''' + self.get_insert_packages() + ''' \\title{''' + self.current_values['title'] + '''} \\author{''' + self.current_values['author'] + '''} \\date{''' + self.current_values['date'] + '''} \\begin{document} \\maketitle \\tableofcontents \\begin{abstract} \\end{abstract} \\chapter{} ''', ''' \\end{document}''') def get_insert_text_book(self): return ('''\\documentclass[''' + self.page_formats[self.current_values['book']['page_format']] + ''',''' + str(self.current_values['book']['font_size']) + '''pt''' + (',twocolumn' if self.current_values['book']['option_twocolumn'] else '') + (',landscape' if self.current_values['book']['is_landscape'] else '') + ''']{book} ''' + ('''\\usepackage[top=''' + str(self.current_values['book']['margin_top']) + '''cm, bottom=''' + str(self.current_values['book']['margin_bottom']) + '''cm, left=''' + str(self.current_values['book']['margin_left']) + '''cm, right=''' + str(self.current_values['book']['margin_right']) + '''cm]{geometry}''' if not self.current_values['book']['option_default_margins'] else '') + '''\\usepackage[T1]{fontenc} \\usepackage[utf8]{inputenc} \\usepackage{lmodern} ''' + self.get_insert_packages() + ''' \\title{''' + self.current_values['title'] + '''} \\author{''' + self.current_values['author'] + '''} \\date{''' + self.current_values['date'] + '''} \\begin{document} \\maketitle \\tableofcontents \\chapter{} ''', ''' \\end{document}''') def get_insert_text_letter(self): return ('''\\documentclass[''' + self.page_formats[self.current_values['letter']['page_format']] + ''',''' + str(self.current_values['letter']['font_size']) + '''pt]{letter} ''' + ('''\\usepackage[top=''' + str(self.current_values['letter']['margin_top']) + '''cm, bottom=''' + str(self.current_values['letter']['margin_bottom']) + '''cm, left=''' + str(self.current_values['letter']['margin_left']) + '''cm, right=''' + str(self.current_values['letter']['margin_right']) + '''cm]{geometry}''' if not self.current_values['letter']['option_default_margins'] else '') + '''\\usepackage[T1]{fontenc} \\usepackage[utf8]{inputenc} \\usepackage{lmodern} ''' + self.get_insert_packages() + ''' \\address{Your name\\\\Your address\\\\Your phone number} \\date{''' + self.current_values['date'] + '''} \\signature{''' + self.current_values['author'] + '''} \\begin{document} \\begin{letter}{Destination\\\\Address of the destination\\\\Phone number of the destination''' + ('''\\\\~\\\\\\textbf{''' + self.current_values['title'] + '''}''' if len(self.current_values['title']) > 0 else '') + '''} \\opening{Dear addressee,} ''', ''' \\closing{Yours sincerely,} %\\cc{Other destination} %\\ps{PS: PostScriptum} %\\encl{Enclosures} \\end{letter} \\end{document}''') def get_insert_text_beamer(self): theme = self.current_values['beamer']['theme'] top_align = '[t]' if self.current_values['beamer']['option_top_align'] else '' show_navigation = ''' \\beamertemplatenavigationsymbolsempty''' if not self.current_values['beamer']['option_show_navigation'] else '' return ('''\\documentclass''' + top_align + '''{beamer} \\usepackage[T1]{fontenc} \\usepackage[utf8]{inputenc} \\usepackage{lmodern} ''' + self.get_insert_packages() + '''\\usetheme{''' + theme + '''}''' + show_navigation + ''' \\title{''' + self.current_values['title'] + '''} \\author{''' + self.current_values['author'] + '''} \\date{''' + self.current_values['date'] + '''} \\begin{document} \\begin{frame} \\titlepage \\end{frame} ''', ''' \\end{document}''') def get_insert_packages(self): text = '' if self.current_values['packages']['ams']: text += '''\\usepackage{amsmath} \\usepackage{amsfonts} \\usepackage{amssymb} \\usepackage{amsthm} ''' for package_name, do_insert in self.current_values['packages'].items(): if package_name != 'ams' and do_insert: text += '\\usepackage{' + package_name + '}\n' return text Setzer-0.4.4/setzer/dialogs/document_wizard/document_wizard_viewgtk.py000066400000000000000000000062351420322575300264500ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GLib from gi.repository import Gdk, GdkPixbuf import os class DocumentWizardView(object): ''' Create document templates for users to build on. ''' def __init__(self, main_window): builder = Gtk.Builder.new_from_string('1', -1) self.dialog = builder.get_object('dialog') self.dialog.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.dialog.set_modal(True) self.dialog.set_transient_for(main_window) self.dialog.set_destroy_with_parent(True) self.dialog.set_default_size(750, 500) self.dialog.set_can_focus(False) self.topbox = self.dialog.get_content_area() self.topbox.set_border_width(0) self.topbox.set_size_request(750, 450) self.center_box = Gtk.HBox() self.pages = list() self.create_headerbar() self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(False) self.notebook.set_show_border(False) self.center_box.set_center_widget(self.notebook) self.topbox.pack_start(self.center_box, True, True, 0) self.center_box.show_all() def create_headerbar(self): self.headerbar = self.dialog.get_header_bar() self.headerbar.set_show_close_button(False) self.headerbar.set_title(_('Create a template document')) self.headerbar.set_subtitle('') self.cancel_button = self.dialog.add_button(_('_Cancel'), Gtk.ResponseType.CANCEL) self.cancel_button.set_can_focus(False) self.back_button = Gtk.Button.new_with_mnemonic(_('_Back')) self.back_button.set_can_focus(False) self.next_button = Gtk.Button.new_with_mnemonic(_('_Next')) self.next_button.set_can_focus(False) self.next_button.get_style_context().add_class('suggested-action') self.create_button = self.dialog.add_button(_('_Create'), Gtk.ResponseType.APPLY) self.create_button.set_can_focus(False) self.create_button.get_style_context().add_class('suggested-action') self.headerbar.pack_start(self.back_button) self.headerbar.pack_end(self.next_button) self.headerbar.show_all() def run(self): return self.dialog.run() def __del__(self): self.dialog.destroy() Setzer-0.4.4/setzer/dialogs/document_wizard/pages/000077500000000000000000000000001420322575300222315ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/document_wizard/pages/__init__.py000066400000000000000000000000001420322575300243300ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/document_wizard/pages/page.py000066400000000000000000000123151420322575300235210ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class Page(object): def load_presets(self, presets): pass def on_activation(self): pass class PageView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('document-wizard-page') self.set_margin_start(18) self.set_margin_top(18) self.set_margin_bottom(18) self.header = Gtk.Label() self.header.set_xalign(0) self.header.set_margin_bottom(12) self.header.get_style_context().add_class('document-wizard-header') self.headerbar_subtitle = '' def set_document_settings_page(self): self.headerbar_subtitle = _('Step') + ' 2' self.content = Gtk.HBox() self.left_content = Gtk.VBox() self.right_content = Gtk.VBox() self.right_content.set_margin_left(18) self.subheader_page_format = Gtk.Label(_('Page format')) self.subheader_page_format.get_style_context().add_class('document-wizard-subheader') self.subheader_page_format.set_xalign(0) self.page_format_list = Gtk.ComboBoxText() self.page_format_list.set_can_focus(True) for name in ['US Letter', 'US Legal', 'A4', 'A5', 'B5']: self.page_format_list.append(name, name) self.page_format_list.set_size_request(348, -1) self.page_format_list.set_margin_right(0) self.page_format_list.set_vexpand(False) self.orientation_box = Gtk.HBox() self.option_portrait = Gtk.RadioButton(_('Portrait')) self.option_landscape = Gtk.RadioButton.new_with_label_from_widget(self.option_portrait, _('Landscape')) self.orientation_box.pack_start(self.option_portrait, True, True, 0) self.orientation_box.pack_start(self.option_landscape, True, True, 0) self.orientation_box.set_margin_top(6) self.subheader_margins = Gtk.Label(_('Page margins')) self.subheader_margins.get_style_context().add_class('document-wizard-subheader') self.subheader_margins.set_xalign(0) self.subheader_margins.set_margin_top(18) self.option_default_margins = Gtk.CheckButton.new_with_label(_('Use default margins')) self.margins_box = Gtk.VBox() self.margins_button_left = Gtk.SpinButton.new_with_range(0.0, 5.0, 0.1) self.margins_button_left.get_style_context().add_class('left') self.margins_button_right = Gtk.SpinButton.new_with_range(0.0, 5.0, 0.1) self.margins_button_right.get_style_context().add_class('right') self.margins_button_top = Gtk.SpinButton.new_with_range(0.0, 5.0, 0.1) self.margins_button_top.get_style_context().add_class('top') self.margins_button_bottom = Gtk.SpinButton.new_with_range(0.0, 5.0, 0.1) self.margins_button_bottom.get_style_context().add_class('bottom') self.margins_hbox1 = Gtk.HBox() self.margins_hbox1.pack_start(Gtk.DrawingArea(), True, True, 0) self.margins_hbox1.pack_start(self.margins_button_top, False, False, 0) self.margins_hbox1.pack_start(Gtk.DrawingArea(), True, True, 0) self.margins_hbox2 = Gtk.HBox() self.margins_hbox2.pack_start(self.margins_button_left, False, False, 0) self.margins_hbox2.pack_end(self.margins_button_right, False, False, 0) self.margins_hbox3 = Gtk.HBox() self.margins_hbox3.pack_start(Gtk.DrawingArea(), True, True, 0) self.margins_hbox3.pack_start(self.margins_button_bottom, False, False, 0) self.margins_hbox3.pack_start(Gtk.DrawingArea(), True, True, 0) self.margins_box.pack_start(self.margins_hbox1, False, False, 0) self.margins_box.pack_start(self.margins_hbox2, False, False, 50) self.margins_box.pack_start(self.margins_hbox3, False, False, 0) self.margins_box.get_style_context().add_class('margins-box') self.margins_box.set_size_request(348, -1) self.margins_description = Gtk.Label(_('All values are in cm (1 inch ≅ 2.54 cm).')) self.margins_description.set_xalign(0) self.margins_description.set_margin_top(6) self.margins_description.get_style_context().add_class('document-wizard-desc') self.subheader_font_size = Gtk.Label(_('Font size')) self.subheader_font_size.get_style_context().add_class('document-wizard-subheader') self.subheader_font_size.set_xalign(0) self.subheader_font_size.set_size_request(348, -1) self.font_size_entry = Gtk.HScale.new_with_range(6, 18, 1) Setzer-0.4.4/setzer/dialogs/document_wizard/pages/page_article_settings.py000066400000000000000000000141141420322575300271430ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from setzer.dialogs.document_wizard.pages.page import Page, PageView import os class ArticleSettingsPage(Page): def __init__(self, current_values): self.current_values = current_values self.view = ArticleSettingsPageView() def observe_view(self): def format_changed(box, user_data=None): format_name = box.get_active_text() self.current_values['article']['page_format'] = format_name def scale_change_value(scale, scroll, value, user_data=None): self.current_values['article']['font_size'] = int(value) def option_toggled(button, option_name): self.current_values['article']['option_' + option_name] = button.get_active() def margin_changed(button, side): self.current_values['article']['margin_' + side] = button.get_value() def on_orientation_toggle(button, button_name): if button_name == 'portrait': self.current_values['article']['is_landscape'] = not button.get_active() elif button_name == 'landscape': self.current_values['article']['is_landscape'] = button.get_active() self.view.page_format_list.connect('changed', format_changed) self.view.font_size_entry.connect('change-value', scale_change_value) self.view.option_twocolumn.connect('toggled', option_toggled, 'twocolumn') self.view.option_default_margins.connect('toggled', self.option_default_margins_toggled, 'default_margins') self.view.margins_button_left.connect('value-changed', margin_changed, 'left') self.view.margins_button_right.connect('value-changed', margin_changed, 'right') self.view.margins_button_top.connect('value-changed', margin_changed, 'top') self.view.margins_button_bottom.connect('value-changed', margin_changed, 'bottom') self.view.option_portrait.connect('toggled', on_orientation_toggle, 'portrait') self.view.option_landscape.connect('toggled', on_orientation_toggle, 'landscape') def option_default_margins_toggled(self, button, option_name=None): for spinbutton in [self.view.margins_button_left, self.view.margins_button_right, self.view.margins_button_top, self.view.margins_button_bottom]: spinbutton.set_sensitive(not button.get_active()) if button.get_active(): spinbutton.set_value(3.5) if option_name != None: self.current_values['article']['option_' + option_name] = button.get_active() def load_presets(self, presets): for setter_function, value_name in [ (self.view.page_format_list.set_active_id, 'page_format'), (self.view.font_size_entry.set_value, 'font_size'), (self.view.margins_button_left.set_value, 'margin_left'), (self.view.margins_button_right.set_value, 'margin_right'), (self.view.margins_button_top.set_value, 'margin_top'), (self.view.margins_button_bottom.set_value, 'margin_bottom'), (self.view.option_twocolumn.set_active, 'option_twocolumn'), (self.view.option_default_margins.set_active, 'option_default_margins'), (self.view.option_landscape.set_active, 'is_landscape') ]: try: value = presets['article'][value_name] except TypeError: value = self.current_values['article'][value_name] setter_function(value) self.option_default_margins_toggled(self.view.option_default_margins) def on_activation(self): GLib.idle_add(self.view.page_format_list.grab_focus) class ArticleSettingsPageView(PageView): def __init__(self): PageView.__init__(self) self.set_document_settings_page() self.header.set_text(_('Article settings')) self.headerbar_subtitle = _('Step') + ' 2: ' + _('Article settings') self.subheader_options = Gtk.Label('Options') self.subheader_options.get_style_context().add_class('document-wizard-subheader') self.subheader_options.set_xalign(0) self.subheader_options.set_margin_top(18) self.option_twocolumn = Gtk.CheckButton.new_with_label(_('Two-column layout')) self.pack_start(self.header, False, False, 0) self.left_content.pack_start(self.subheader_page_format, False, False, 0) self.left_content.pack_start(self.page_format_list, False, False, 0) self.left_content.pack_start(self.orientation_box, False, False, 0) self.left_content.pack_start(self.subheader_margins, False, False, 0) self.left_content.pack_start(self.option_default_margins, False, False, 0) self.left_content.pack_start(self.margins_box, False, False, 0) self.left_content.pack_start(self.margins_description, False, False, 0) self.right_content.pack_start(self.subheader_font_size, False, False, 0) self.right_content.pack_start(self.font_size_entry, False, False, 0) self.right_content.pack_start(self.subheader_options, False, False, 0) self.right_content.pack_start(self.option_twocolumn, False, False, 0) self.content.pack_start(self.left_content, False, False, 0) self.content.pack_start(self.right_content, False, False, 0) self.pack_start(self.content, False, False, 0) self.show_all() Setzer-0.4.4/setzer/dialogs/document_wizard/pages/page_beamer_settings.py000066400000000000000000000243421420322575300267570ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from gi.repository import GdkPixbuf from setzer.dialogs.document_wizard.pages.page import Page, PageView from setzer.app.service_locator import ServiceLocator import os import _thread as thread class BeamerSettingsPage(Page): def __init__(self, current_values): self.current_values = current_values self.view = BeamerSettingsPageView() self.image_loading_lock = thread.allocate_lock() thread.start_new_thread(self.load_beamer_images, ()) def observe_view(self): self.image_loading_lock.acquire() self.image_loading_lock.release() def row_selected(box, row, user_data=None): child_name = row.get_child().get_text() self.current_values['beamer']['theme'] = child_name for i in range(0, 2): image_box = self.view.preview_image_boxes[child_name][i] if image_box.get_center_widget() == None: image_box.set_center_widget(self.view.preview_images[child_name][i]) image_box.show_all() self.view.preview_stack.set_transition_type(Gtk.StackTransitionType.NONE) self.view.preview_stack.set_visible_child_name(child_name + '_0') button = self.view.preview_buttons[child_name][0] button.set_image(self.view.preview_button_images[child_name][0]) button = self.view.preview_buttons[child_name][1] button.set_image(self.view.preview_button_images[child_name][1]) self.view.preview_button_stack.set_visible_child_name(child_name) def option_toggled(button, option_name): self.current_values['beamer']['option_' + option_name] = button.get_active() def preview_button_clicked(button, theme_name, number): stack = self.view.preview_stack if number == 0: stack.set_transition_type(Gtk.StackTransitionType.SLIDE_RIGHT) elif number == 1: stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT) stack.set_visible_child_name(theme_name + '_' + str(number)) self.view.themes_list.connect('row-selected', row_selected) self.view.option_show_navigation.connect('toggled', option_toggled, 'show_navigation') self.view.option_top_align.connect('toggled', option_toggled, 'top_align') for name in self.view.theme_names: for i in range(0, 2): button = self.view.preview_buttons[name][i] button.set_can_focus(False) button.connect('clicked', preview_button_clicked, name, i) def load_beamer_images(self): with self.image_loading_lock: for name in self.view.theme_names: for i in range(0, 2): pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(os.path.join(ServiceLocator.get_resources_path(), 'document_wizard', 'beamerpreview_' + name + '_page_' + str(i) + '.png'), 346, 260, False) image = Gtk.Image.new_from_pixbuf(pixbuf) self.view.preview_images[name].append(image) pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(os.path.join(ServiceLocator.get_resources_path(), 'document_wizard', 'beamerpreview_' + name + '_page_' + str(i) + '.png'), 100, 75, False) image = Gtk.Image.new_from_pixbuf(pixbuf) self.view.preview_button_images[name].append(image) self.view.preview_stack.show_all() def load_presets(self, presets): try: row = self.view.themes_list_rows[presets['beamer']['theme']] except TypeError: row = self.view.themes_list_rows[self.current_values['beamer']['theme']] except KeyError: row = self.view.themes_list_rows[self.current_values['beamer']['theme']] self.view.themes_list.select_row(row) for setter_function, value_name in [ (self.view.option_show_navigation.set_active, 'option_show_navigation'), (self.view.option_top_align.set_active, 'option_top_align') ]: try: value = presets['beamer'][value_name] except TypeError: value = self.current_values['beamer'][value_name] setter_function(value) def on_activation(self): GLib.idle_add(self.view.themes_list.get_selected_row().grab_focus) class BeamerSettingsPageView(PageView): def __init__(self): PageView.__init__(self) self.header.set_text(_('Beamer settings')) self.headerbar_subtitle = _('Step') + ' 2: ' + _('Beamer settings') self.content = Gtk.HBox() self.form = Gtk.VBox() self.theme_names = ['Warsaw', 'Malmoe', 'Luebeck', 'Copenhagen', 'Szeged', 'Singapore', 'Frankfurt', 'Darmstadt', 'Dresden', 'Ilmenau', 'Berlin', 'Hannover', 'Marburg', 'Goettingen', 'PaloAlto', 'Berkeley', 'Montpellier', 'JuanLesPins', 'Antibes', 'Rochester', 'Pittsburgh', 'EastLansing', 'CambridgeUS', 'AnnArbor', 'Madrid', 'Boadilla', 'Bergen', 'default'] self.subheader_themes = Gtk.Label(_('Themes')) self.subheader_themes.get_style_context().add_class('document-wizard-subheader') self.subheader_themes.set_xalign(0) self.themes_list_scrolled_window = Gtk.ScrolledWindow() self.themes_list_scrolled_window.set_size_request(348, 230) self.themes_list_scrolled_window.get_style_context().add_class('document-wizard-scrolledwindow') self.themes_list = Gtk.ListBox() self.themes_list.set_can_focus(True) self.themes_list.set_size_request(346, -1) self.themes_list_rows = dict() for name in self.theme_names: label = Gtk.Label(name) label.set_xalign(0) self.themes_list.prepend(label) for row in self.themes_list.get_children(): self.themes_list_rows[row.get_child().get_text()] = row self.themes_list.set_margin_right(0) self.themes_list.set_vexpand(False) self.themes_list.get_style_context().add_class('document-wizard-list2') self.themes_list_scrolled_window.add(self.themes_list) self.subheader_options = Gtk.Label(_('Options')) self.subheader_options.get_style_context().add_class('document-wizard-subheader') self.subheader_options.set_margin_top(18) self.subheader_options.set_xalign(0) self.option_show_navigation = Gtk.CheckButton.new_with_label(_('Show navigation buttons')) self.option_top_align = Gtk.CheckButton.new_with_label(_('Align content to the top of pages')) self.option_top_align.get_style_context().add_class('has-desc') self.option_top_align_desc = Gtk.Label(_('("t" option, it\'s centered by default)')) self.option_top_align_desc.get_style_context().add_class('document-wizard-option-desc') self.option_top_align_desc.set_xalign(0) self.preview = Gtk.VBox() self.preview_stack_wrapper = Gtk.VBox() self.preview_stack_wrapper.get_style_context().add_class('document-wizard-beamer-preview-stack-wrapper') self.preview_stack = Gtk.Stack() self.preview_button_stack = Gtk.Stack() self.preview_button_stack.set_transition_type(Gtk.StackTransitionType.NONE) self.preview_images = dict() self.preview_image_boxes = dict() self.preview_buttons = dict() self.preview_button_widgets = dict() self.preview_button_images = dict() for name in self.theme_names: self.preview_images[name] = list() self.preview_image_boxes[name] = list() self.preview_buttons[name] = list() button_box = Gtk.HBox() button_box.get_style_context().add_class('document-wizard-beamer-preview-buttons') self.preview_button_widgets[name] = button_box self.preview_button_stack.add_named(button_box, name) for i in range(0, 2): image_box = Gtk.HBox() self.preview_image_boxes[name].append(image_box) self.preview_stack.add_named(image_box, name + '_' + str(i)) button = Gtk.Button() button.set_margin_end(12) button.set_margin_top(12) button.set_relief(Gtk.ReliefStyle.NONE) self.preview_buttons[name].append(button) self.preview_button_images[name] = list() self.preview_button_widgets[name].pack_start(button, False, False, 0) self.preview_stack_wrapper.pack_start(self.preview_stack, False, False, 0) self.preview.pack_start(self.preview_stack_wrapper, False, False, 0) self.preview.pack_start(self.preview_button_stack, False, False, 0) self.preview.set_margin_top(30) self.preview.set_margin_start(18) self.preview.set_margin_end(18) self.pack_start(self.header, False, False, 0) self.form.pack_start(self.subheader_themes, False, False, 0) self.form.pack_start(self.themes_list_scrolled_window, False, False, 0) self.form.pack_start(self.subheader_options, False, False, 0) self.form.pack_start(self.option_show_navigation, False, False, 0) self.form.pack_start(self.option_top_align, False, False, 0) self.form.pack_start(self.option_top_align_desc, False, False, 0) self.content.pack_start(self.form, False, False, 0) self.content.pack_start(self.preview, False, False, 0) self.pack_start(self.content, False, False, 0) self.show_all() Setzer-0.4.4/setzer/dialogs/document_wizard/pages/page_book_settings.py000066400000000000000000000137111420322575300264540ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from setzer.dialogs.document_wizard.pages.page import Page, PageView import os class BookSettingsPage(Page): def __init__(self, current_values): self.current_values = current_values self.view = BookSettingsPageView() def observe_view(self): def format_changed(box, user_data=None): format_name = box.get_active_text() self.current_values['book']['page_format'] = format_name def scale_change_value(scale, scroll, value, user_data=None): self.current_values['book']['font_size'] = int(value) def option_toggled(button, option_name): self.current_values['book']['option_' + option_name] = button.get_active() def margin_changed(button, side): self.current_values['book']['margin_' + side] = button.get_value() def on_orientation_toggle(button, button_name): if button_name == 'portrait': self.current_values['book']['is_landscape'] = not button.get_active() elif button_name == 'landscape': self.current_values['book']['is_landscape'] = button.get_active() self.view.page_format_list.connect('changed', format_changed) self.view.font_size_entry.connect('change-value', scale_change_value) self.view.option_twocolumn.connect('toggled', option_toggled, 'twocolumn') self.view.option_default_margins.connect('toggled', self.option_default_margins_toggled, 'default_margins') self.view.margins_button_left.connect('value-changed', margin_changed, 'left') self.view.margins_button_right.connect('value-changed', margin_changed, 'right') self.view.margins_button_top.connect('value-changed', margin_changed, 'top') self.view.margins_button_bottom.connect('value-changed', margin_changed, 'bottom') self.view.option_portrait.connect('toggled', on_orientation_toggle, 'portrait') self.view.option_landscape.connect('toggled', on_orientation_toggle, 'landscape') def option_default_margins_toggled(self, button, option_name=None): for spinbutton in [self.view.margins_button_left, self.view.margins_button_right, self.view.margins_button_top, self.view.margins_button_bottom]: spinbutton.set_sensitive(not button.get_active()) if button.get_active(): spinbutton.set_value(3.5) if option_name != None: self.current_values['book']['option_' + option_name] = button.get_active() def load_presets(self, presets): for setter_function, value_name in [ (self.view.page_format_list.set_active_id, 'page_format'), (self.view.font_size_entry.set_value, 'font_size'), (self.view.option_twocolumn.set_active, 'option_twocolumn'), (self.view.margins_button_left.set_value, 'margin_left'), (self.view.margins_button_right.set_value, 'margin_right'), (self.view.margins_button_top.set_value, 'margin_top'), (self.view.margins_button_bottom.set_value, 'margin_bottom'), (self.view.option_default_margins.set_active, 'option_default_margins'), (self.view.option_landscape.set_active, 'is_landscape') ]: try: value = presets['book'][value_name] except TypeError: value = self.current_values['book'][value_name] setter_function(value) self.option_default_margins_toggled(self.view.option_default_margins) def on_activation(self): GLib.idle_add(self.view.page_format_list.grab_focus) class BookSettingsPageView(PageView): def __init__(self): PageView.__init__(self) self.set_document_settings_page() self.header.set_text(_('Book settings')) self.headerbar_subtitle = _('Step') + ' 2: ' + _('Book settings') self.subheader_options = Gtk.Label(_('Options')) self.subheader_options.get_style_context().add_class('document-wizard-subheader') self.subheader_options.set_xalign(0) self.subheader_options.set_margin_top(18) self.option_twocolumn = Gtk.CheckButton.new_with_label(_('Two-column layout')) self.pack_start(self.header, False, False, 0) self.left_content.pack_start(self.subheader_page_format, False, False, 0) self.left_content.pack_start(self.page_format_list, False, False, 0) self.left_content.pack_start(self.orientation_box, False, False, 0) self.left_content.pack_start(self.subheader_margins, False, False, 0) self.left_content.pack_start(self.option_default_margins, False, False, 0) self.left_content.pack_start(self.margins_box, False, False, 0) self.right_content.pack_start(self.subheader_font_size, False, False, 0) self.right_content.pack_start(self.font_size_entry, False, False, 0) self.right_content.pack_start(self.subheader_options, False, False, 0) self.right_content.pack_start(self.option_twocolumn, False, False, 0) self.content.pack_start(self.left_content, False, False, 0) self.content.pack_start(self.right_content, False, False, 0) self.pack_start(self.content, False, False, 0) self.show_all() Setzer-0.4.4/setzer/dialogs/document_wizard/pages/page_document_class.py000066400000000000000000000113671420322575300266120ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import GLib from gi.repository import Gtk from setzer.dialogs.document_wizard.pages.page import Page, PageView from setzer.app.service_locator import ServiceLocator import setzer.widgets.async_svg.async_svg as async_svg import os class DocumentClassPage(Page): def __init__(self, current_values): self.current_values = current_values self.view = DocumentClassPageView() def observe_view(self): def row_selected(box, row, user_data=None): child_name = row.get_child().get_text().lower() self.current_values['document_class'] = child_name self.view.preview_container.set_visible_child_name(child_name) self.view.list.connect('row-selected', row_selected) def load_presets(self, presets): try: row = self.view.list_rows[presets['document_class']] except TypeError: row = self.view.list_rows[self.current_values['document_class']] self.view.list.select_row(row) def on_activation(self): GLib.idle_add(self.view.list.get_selected_row().grab_focus) class DocumentClassPageView(PageView): def __init__(self): PageView.__init__(self) self.header.set_text(_('Choose a document class')) self.headerbar_subtitle = _('Step') + ' 1: ' + _('Choose a document class') self.content = Gtk.HBox() self.list = Gtk.ListBox() self.list.set_can_focus(True) self.list.set_size_request(348, -1) self.list_rows = dict() for document_class in ['beamer', 'letter', 'book', 'report', 'article']: label = Gtk.Label(document_class.title()) label.set_xalign(0) self.list.prepend(label) for row in self.list.get_children(): self.list_rows[row.get_child().get_text().lower()] = row row.set_can_focus(True) self.list.set_margin_right(0) self.list.set_vexpand(False) self.list.get_style_context().add_class('document-wizard-list1') self.preview_container = Gtk.Stack() self.preview_container.set_size_request(366, -1) self.preview_data = list() self.preview_data.append({'name': 'article', 'image': 'article1.svg', 'text': _('Article: For articles in scientific journals, term papers, handouts, short reports, ...\n\nThis class on its own is pretty simplistic and is often used as a starting point for more custom layouts.')}) self.preview_data.append({'name': 'book', 'image': 'book1.svg', 'text': _('Book: For actual books containing many chapters and sections.')}) self.preview_data.append({'name': 'report', 'image': 'report1.svg', 'text': _('Report: For longer reports and articles containing more than one chapter, small books, thesis.')}) self.preview_data.append({'name': 'letter', 'image': 'letter1.svg', 'text': _('Letter: For writing letters.')}) self.preview_data.append({'name': 'beamer', 'image': 'beamer1.svg', 'text': _('Beamer: A class for making presentation slides with LaTeX.\n\nThere are many predefined presentation styles.')}) for item in self.preview_data: box = Gtk.VBox() image = async_svg.AsyncSvg(os.path.join(ServiceLocator.get_resources_path(), 'document_wizard', item['image']), 374, 262) image.set_margin_bottom(6) label = Gtk.Label() label.set_markup(item['text']) label.set_xalign(0) label.set_line_wrap(True) label.set_margin_start(19) label.set_margin_right(18) box.pack_start(image, False, False, 0) box.pack_start(label, False, False, 0) self.preview_container.add_named(box, item['name']) self.pack_start(self.header, False, False, 0) self.content.pack_start(self.list, False, False, 0) self.content.pack_start(self.preview_container, False, False, 0) self.pack_start(self.content, False, False, 0) self.show_all() Setzer-0.4.4/setzer/dialogs/document_wizard/pages/page_general_settings.py000066400000000000000000000240741420322575300271430ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from setzer.dialogs.document_wizard.pages.page import Page, PageView import os class GeneralSettingsPage(Page): def __init__(self, current_values): self.current_values = current_values self.view = GeneralSettingsPageView() def observe_view(self): def text_deleted(buffer, position, n_chars, field_name): self.current_values[field_name] = buffer.get_text() def text_inserted(buffer, position, chars, n_chars, field_name): self.current_values[field_name] = buffer.get_text() def option_toggled(button, package_name): self.current_values['packages'][package_name] = button.get_active() def package_hover_start(button, event, package_name): markup = self.view.packages_tooltip_data[package_name] self.view.packages_tooltip.set_markup(markup) def package_hover_end(button, event, package_name): self.view.packages_tooltip.set_markup(' ') self.view.title_entry.get_buffer().connect('deleted-text', text_deleted, 'title') self.view.title_entry.get_buffer().connect('inserted-text', text_inserted, 'title') self.view.author_entry.get_buffer().connect('deleted-text', text_deleted, 'author') self.view.author_entry.get_buffer().connect('inserted-text', text_inserted, 'author') self.view.date_entry.get_buffer().connect('deleted-text', text_deleted, 'date') self.view.date_entry.get_buffer().connect('inserted-text', text_inserted, 'date') for name, checkbox in self.view.option_packages.items(): checkbox.connect('toggled', option_toggled, name) checkbox.connect('enter-notify-event', package_hover_start, name) checkbox.connect('leave-notify-event', package_hover_end, name) def load_presets(self, presets): try: text = presets['author'] except TypeError: text = self.current_values['author'] self.view.author_entry.set_text(text) self.view.title_entry.set_text('') self.view.date_entry.set_text('\\today') for name, option in self.view.option_packages.items(): try: is_active = presets['packages'][name] except (TypeError, KeyError): is_active = self.current_values['packages'][name] option.set_active(is_active) def on_activation(self): GLib.idle_add(self.view.title_entry.grab_focus) class GeneralSettingsPageView(PageView): def __init__(self): PageView.__init__(self) self.header.set_text(_('General document settings')) self.headerbar_subtitle = _('Step') + ' 3: ' + _('General document settings') self.content = Gtk.HBox() self.form = Gtk.VBox() self.subheader_title = Gtk.Label(_('Title')) self.subheader_title.get_style_context().add_class('document-wizard-subheader') self.subheader_title.set_xalign(0) self.title_entry = Gtk.Entry() self.title_entry.set_margin_right(280) self.subheader_author = Gtk.Label(_('Author')) self.subheader_author.get_style_context().add_class('document-wizard-subheader') self.subheader_author.set_xalign(0) self.author_entry = Gtk.Entry() self.author_entry.set_margin_right(100) self.author_box = Gtk.VBox() self.author_box.pack_start(self.subheader_author, False, False, 0) self.author_box.pack_start(self.author_entry, False, False, 0) self.author_box.set_size_request(348, -1) self.subheader_date = Gtk.Label(_('Date')) self.subheader_date.get_style_context().add_class('document-wizard-subheader') self.subheader_date.set_xalign(0) self.date_entry = Gtk.Entry() self.date_entry.set_margin_right(100) self.date_box = Gtk.VBox() self.date_box.pack_start(self.subheader_date, False, False, 0) self.date_box.pack_start(self.date_entry, False, False, 0) self.date_box.set_size_request(348, -1) self.document_properties_hbox = Gtk.HBox() self.document_properties_hbox.set_margin_top(18) self.document_properties_hbox.pack_start(self.author_box, False, False, 0) self.document_properties_hbox.pack_start(self.date_box, False, False, 0) self.subheader_packages = Gtk.Label(_('Packages')) self.subheader_packages.get_style_context().add_class('document-wizard-subheader') self.subheader_packages.set_margin_top(18) self.subheader_packages.set_xalign(0) self.packages_box = Gtk.HBox() self.packages_leftbox = Gtk.VBox() self.packages_leftbox.set_size_request(348, -1) self.packages_rightbox = Gtk.VBox() self.packages_rightbox.set_size_request(348, -1) self.option_packages = dict() self.option_packages['ams'] = Gtk.CheckButton.new_with_label(_('AMS math packages')) self.option_packages['textcomp'] = Gtk.CheckButton.new_with_label('textcomp') self.option_packages['graphicx'] = Gtk.CheckButton.new_with_label('graphicx') self.option_packages['color'] = Gtk.CheckButton.new_with_label('color') self.option_packages['xcolor'] = Gtk.CheckButton.new_with_label('xcolor') self.option_packages['url'] = Gtk.CheckButton.new_with_label('url') self.option_packages['hyperref'] = Gtk.CheckButton.new_with_label('hyperref') self.option_packages['theorem'] = Gtk.CheckButton.new_with_label('theorem') self.option_packages['listings'] = Gtk.CheckButton.new_with_label('listings') self.option_packages['glossaries'] = Gtk.CheckButton.new_with_label('glossaries') self.option_packages['parskip'] = Gtk.CheckButton.new_with_label('parskip') self.packages_leftbox.pack_start(self.option_packages['ams'], False, False, 0) self.packages_leftbox.pack_start(self.option_packages['textcomp'], False, False, 0) self.packages_leftbox.pack_start(self.option_packages['graphicx'], False, False, 0) self.packages_leftbox.pack_start(self.option_packages['color'], False, False, 0) self.packages_leftbox.pack_start(self.option_packages['xcolor'], False, False, 0) self.packages_leftbox.pack_start(self.option_packages['url'], False, False, 0) self.packages_rightbox.pack_start(self.option_packages['hyperref'], False, False, 0) self.packages_rightbox.pack_start(self.option_packages['theorem'], False, False, 0) self.packages_rightbox.pack_start(self.option_packages['listings'], False, False, 0) self.packages_rightbox.pack_start(self.option_packages['glossaries'], False, False, 0) self.packages_rightbox.pack_start(self.option_packages['parskip'], False, False, 0) self.packages_box.pack_start(self.packages_leftbox, False, False, 0) self.packages_box.pack_start(self.packages_rightbox, False, False, 0) self.packages_tooltip = Gtk.Label() self.packages_tooltip_data = dict() self.packages_tooltip_data['ams'] = _('AMS packages: provide mathematical symbols, math-related environments, ...') + ' (' + _('recommended') + ')' self.packages_tooltip_data['textcomp'] = 'textcomp: ' + _('contains symbols to be used in textmode.') + ' (' + _('recommended') + ')' self.packages_tooltip_data['graphicx'] = 'graphicx: ' + _('include graphics in your document.') + ' (' + _('recommended') + ')' self.packages_tooltip_data['color'] = 'color: ' + _('foreground and background color.') + ' (' + _('recommended') + ')' self.packages_tooltip_data['xcolor'] = 'xcolor: ' + _('enables colored text.') + ' (' + _('recommended') + ')' self.packages_tooltip_data['url'] = 'url: ' + _('type urls with the \\url{..} command without escaping them.') + ' (' + _('recommended') + ')' self.packages_tooltip_data['hyperref'] = 'hyperref: ' + _('create hyperlinks within your document.') self.packages_tooltip_data['theorem'] = 'theorem: ' + _('define theorem environments (like "definition", "lemma", ...) with custom styling.') self.packages_tooltip_data['listings'] = 'listings: ' + _('provides the \\listing environment for embedding programming code.') self.packages_tooltip_data['glossaries'] = 'glossaries: ' + _('create a glossary for your document.') self.packages_tooltip_data['parskip'] = 'parskip: ' + _('paragraphs without indentation.') self.packages_tooltip.set_markup(' ') self.packages_tooltip.set_xalign(0) self.packages_tooltip.set_line_wrap(True) self.packages_tooltip.set_margin_top(12) self.packages_tooltip.set_margin_right(18) self.packages_tooltip.set_size_request(714, -1) self.pack_start(self.header, False, False, 0) self.form.pack_start(self.subheader_title, False, False, 0) self.form.pack_start(self.title_entry, False, False, 0) self.form.pack_start(self.document_properties_hbox, False, False, 0) self.form.pack_start(self.subheader_packages, False, False, 0) self.form.pack_start(self.packages_box, False, False, 0) self.form.pack_start(self.packages_tooltip, False, False, 0) self.content.pack_start(self.form, False, False, 0) self.pack_start(self.content, False, False, 0) self.show_all() Setzer-0.4.4/setzer/dialogs/document_wizard/pages/page_letter_settings.py000066400000000000000000000111431420322575300270160ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from setzer.dialogs.document_wizard.pages.page import Page, PageView import os class LetterSettingsPage(Page): def __init__(self, current_values): self.current_values = current_values self.view = LetterSettingsPageView() def observe_view(self): def format_changed(box, user_data=None): format_name = box.get_active_text() self.current_values['letter']['page_format'] = format_name def scale_change_value(scale, scroll, value, user_data=None): self.current_values['letter']['font_size'] = int(value) def margin_changed(button, side): self.current_values['letter']['margin_' + side] = button.get_value() self.view.page_format_list.connect('changed', format_changed) self.view.font_size_entry.connect('change-value', scale_change_value) self.view.option_default_margins.connect('toggled', self.option_default_margins_toggled, 'default_margins') self.view.margins_button_left.connect('value-changed', margin_changed, 'left') self.view.margins_button_right.connect('value-changed', margin_changed, 'right') self.view.margins_button_top.connect('value-changed', margin_changed, 'top') self.view.margins_button_bottom.connect('value-changed', margin_changed, 'bottom') def option_default_margins_toggled(self, button, option_name=None): for spinbutton in [self.view.margins_button_left, self.view.margins_button_right, self.view.margins_button_top, self.view.margins_button_bottom]: spinbutton.set_sensitive(not button.get_active()) if button.get_active(): spinbutton.set_value(3.5) if option_name != None: self.current_values['letter']['option_' + option_name] = button.get_active() def load_presets(self, presets): for setter_function, value_name in [ (self.view.page_format_list.set_active_id, 'page_format'), (self.view.font_size_entry.set_value, 'font_size'), (self.view.margins_button_left.set_value, 'margin_left'), (self.view.margins_button_right.set_value, 'margin_right'), (self.view.margins_button_top.set_value, 'margin_top'), (self.view.margins_button_bottom.set_value, 'margin_bottom'), (self.view.option_default_margins.set_active, 'option_default_margins') ]: try: value = presets['letter'][value_name] except TypeError: value = self.current_values['letter'][value_name] setter_function(value) self.option_default_margins_toggled(self.view.option_default_margins) def on_activation(self): GLib.idle_add(self.view.page_format_list.grab_focus) class LetterSettingsPageView(PageView): def __init__(self): PageView.__init__(self) self.set_document_settings_page() self.header.set_text(_('Letter settings')) self.headerbar_subtitle = _('Step') + ' 2: ' + _('Letter settings') self.pack_start(self.header, False, False, 0) self.left_content.pack_start(self.subheader_page_format, False, False, 0) self.left_content.pack_start(self.page_format_list, False, False, 0) self.left_content.pack_start(self.subheader_margins, False, False, 0) self.left_content.pack_start(self.option_default_margins, False, False, 0) self.left_content.pack_start(self.margins_box, False, False, 0) self.right_content.pack_start(self.subheader_font_size, False, False, 0) self.right_content.pack_start(self.font_size_entry, False, False, 0) self.content.pack_start(self.left_content, False, False, 0) self.content.pack_start(self.right_content, False, False, 0) self.pack_start(self.content, False, False, 0) self.show_all() Setzer-0.4.4/setzer/dialogs/document_wizard/pages/page_report_settings.py000066400000000000000000000137451420322575300270440ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from setzer.dialogs.document_wizard.pages.page import Page, PageView import os class ReportSettingsPage(Page): def __init__(self, current_values): self.current_values = current_values self.view = ReportSettingsPageView() def observe_view(self): def format_changed(box, user_data=None): format_name = box.get_active_text() self.current_values['report']['page_format'] = format_name def scale_change_value(scale, scroll, value, user_data=None): self.current_values['report']['font_size'] = int(value) def option_toggled(button, option_name): self.current_values['report']['option_' + option_name] = button.get_active() def margin_changed(button, side): self.current_values['report']['margin_' + side] = button.get_value() def on_orientation_toggle(button, button_name): if button_name == 'portrait': self.current_values['report']['is_landscape'] = not button.get_active() elif button_name == 'landscape': self.current_values['report']['is_landscape'] = button.get_active() self.view.page_format_list.connect('changed', format_changed) self.view.font_size_entry.connect('change-value', scale_change_value) self.view.option_twocolumn.connect('toggled', option_toggled, 'twocolumn') self.view.option_default_margins.connect('toggled', self.option_default_margins_toggled, 'default_margins') self.view.margins_button_left.connect('value-changed', margin_changed, 'left') self.view.margins_button_right.connect('value-changed', margin_changed, 'right') self.view.margins_button_top.connect('value-changed', margin_changed, 'top') self.view.margins_button_bottom.connect('value-changed', margin_changed, 'bottom') self.view.option_portrait.connect('toggled', on_orientation_toggle, 'portrait') self.view.option_landscape.connect('toggled', on_orientation_toggle, 'landscape') def option_default_margins_toggled(self, button, option_name=None): for spinbutton in [self.view.margins_button_left, self.view.margins_button_right, self.view.margins_button_top, self.view.margins_button_bottom]: spinbutton.set_sensitive(not button.get_active()) if button.get_active(): spinbutton.set_value(3.5) if option_name != None: self.current_values['report']['option_' + option_name] = button.get_active() def load_presets(self, presets): for setter_function, value_name in [ (self.view.page_format_list.set_active_id, 'page_format'), (self.view.font_size_entry.set_value, 'font_size'), (self.view.option_twocolumn.set_active, 'option_twocolumn'), (self.view.margins_button_left.set_value, 'margin_left'), (self.view.margins_button_right.set_value, 'margin_right'), (self.view.margins_button_top.set_value, 'margin_top'), (self.view.margins_button_bottom.set_value, 'margin_bottom'), (self.view.option_default_margins.set_active, 'option_default_margins'), (self.view.option_landscape.set_active, 'is_landscape') ]: try: value = presets['report'][value_name] except TypeError: value = self.current_values['report'][value_name] setter_function(value) self.option_default_margins_toggled(self.view.option_default_margins) def on_activation(self): GLib.idle_add(self.view.page_format_list.grab_focus) class ReportSettingsPageView(PageView): def __init__(self): PageView.__init__(self) self.set_document_settings_page() self.header.set_text(_('Report settings')) self.headerbar_subtitle = _('Step') + ' 2: ' + _('Report settings') self.subheader_options = Gtk.Label(_('Options')) self.subheader_options.get_style_context().add_class('document-wizard-subheader') self.subheader_options.set_xalign(0) self.subheader_options.set_margin_top(18) self.option_twocolumn = Gtk.CheckButton.new_with_label(_('Two-column layout')) self.pack_start(self.header, False, False, 0) self.left_content.pack_start(self.subheader_page_format, False, False, 0) self.left_content.pack_start(self.page_format_list, False, False, 0) self.left_content.pack_start(self.orientation_box, False, False, 0) self.left_content.pack_start(self.subheader_margins, False, False, 0) self.left_content.pack_start(self.option_default_margins, False, False, 0) self.left_content.pack_start(self.margins_box, False, False, 0) self.right_content.pack_start(self.subheader_font_size, False, False, 0) self.right_content.pack_start(self.font_size_entry, False, False, 0) self.right_content.pack_start(self.subheader_options, False, False, 0) self.right_content.pack_start(self.option_twocolumn, False, False, 0) self.content.pack_start(self.left_content, False, False, 0) self.content.pack_start(self.right_content, False, False, 0) self.pack_start(self.content, False, False, 0) self.show_all() Setzer-0.4.4/setzer/dialogs/include_bibtex_file/000077500000000000000000000000001420322575300217135ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/include_bibtex_file/__init__.py000066400000000000000000000000001420322575300240120ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/include_bibtex_file/include_bibtex_file.py000066400000000000000000000203461420322575300262510ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import setzer.dialogs.include_bibtex_file.include_bibtex_file_viewgtk as view from setzer.app.service_locator import ServiceLocator import pickle import os class IncludeBibTeXFile(Dialog): def __init__(self, main_window): self.main_window = main_window self.settings = ServiceLocator.get_settings() self.styles = ['plain', 'abbrv', 'alpha', 'apalike', 'ieeetr'] self.style_names = ['Plain', 'Abbrv', 'Alpha', 'Apalike', 'iEEEtr'] self.natbib_styles = ['plainnat', 'abbrvnat', 'unsrtnat', 'achemso'] self.natbib_style_names = ['Plainnat', 'Abbrvnat', 'Unsrtnat', 'Achemso'] self.current_values = dict() self.view = view.IncludeBibTeXFileView(self.main_window) self.is_not_setup = True def run(self, document): self.document = document self.init_current_values() if self.is_not_setup: self.setup() self.is_not_setup = False self.view.style_buttons[self.current_values['style']].set_active(True) self.view.style_buttons[self.current_values['style']].toggled() self.view.natbib_style_buttons[self.current_values['natbib_style']].set_active(True) self.view.natbib_style_buttons[self.current_values['natbib_style']].toggled() self.view.create_button.set_sensitive(False) self.view.file_chooser_button.reset() self.view.natbib_option.set_active(self.current_values['natbib_toggle']) self.on_natbib_toggled(self.view.natbib_option) response = self.view.run() if response == Gtk.ResponseType.APPLY: self.insert_template() self.view.dialog.hide() def init_current_values(self): self.current_values['style'] = 'plain' self.current_values['natbib_style'] = 'plainnat' self.current_values['natbib_toggle'] = False self.current_values['filename'] = '' presets = self.settings.get_value('app_include_bibtex_file_dialog', 'presets') if presets != None: presets = pickle.loads(presets) try: style = presets['style'] if style in self.styles: self.current_values['style'] = style except KeyError: pass try: style = presets['natbib_style'] if style in self.styles: self.current_values['natbib_style'] = style except KeyError: pass try: self.current_values['natbib_toggle'] = presets['natbib_toggle'] except KeyError: pass def setup(self): file_filter1 = Gtk.FileFilter() file_filter1.add_pattern('*.bib') file_filter1.set_name(_('BibTeX Files')) self.view.file_chooser_button.add_filter(file_filter1) first_button = None for name in self.style_names: style = name.lower() self.view.style_buttons[style] = Gtk.RadioButton() if first_button == None: first_button = self.view.style_buttons[style] box = Gtk.HBox() box.pack_start(Gtk.Label(name), False, False, 0) box.set_margin_right(6) box.set_margin_left(4) self.view.style_buttons[style].add(box) self.view.style_buttons[style].set_mode(False) if first_button != None: self.view.style_buttons[style].join_group(first_button) self.view.style_switcher.pack_start(self.view.style_buttons[style], False, False, 0) self.view.style_buttons[style].connect('toggled', self.on_style_chosen, style) image = Gtk.Image.new_from_file(os.path.join(ServiceLocator.get_resources_path(), 'bibliography_styles', style + '.png')) self.view.preview_stack.add_named(image, style) first_button = None for name in self.natbib_style_names: style = name.lower() self.view.natbib_style_buttons[style] = Gtk.RadioButton() if first_button == None: first_button = self.view.natbib_style_buttons[style] box = Gtk.HBox() box.pack_start(Gtk.Label(name), False, False, 0) box.set_margin_right(6) box.set_margin_left(4) self.view.natbib_style_buttons[style].add(box) self.view.natbib_style_buttons[style].set_mode(False) if first_button != None: self.view.natbib_style_buttons[style].join_group(first_button) self.view.natbib_style_switcher.pack_start(self.view.natbib_style_buttons[style], False, False, 0) self.view.natbib_style_buttons[style].connect('toggled', self.on_natbib_style_chosen, style) image = Gtk.Image.new_from_file(os.path.join(ServiceLocator.get_resources_path(), 'bibliography_styles', style + '.png')) self.view.natbib_preview_stack.add_named(image, style) self.view.topbox.show_all() self.view.file_chooser_button.connect('file-set', self.on_file_chosen) self.view.natbib_option.connect('toggled', self.on_natbib_toggled) def on_file_chosen(self, widget=None): self.view.create_button.set_sensitive(True) self.current_values['filename'] = self.view.file_chooser_button.get_filename() def on_natbib_toggled(self, togglebutton): self.current_values['natbib_toggle'] = togglebutton.get_active() if togglebutton.get_active(): self.view.preview_stack_wrapper.hide() self.view.style_switcher.hide() self.view.natbib_preview_stack_wrapper.show_all() self.view.natbib_style_switcher.show_all() else: self.view.preview_stack_wrapper.show_all() self.view.style_switcher.show_all() self.view.natbib_preview_stack_wrapper.hide() self.view.natbib_style_switcher.hide() def on_natbib_style_chosen(self, button, style): if self.natbib_styles.index(style) > self.natbib_styles.index(self.current_values['natbib_style']): self.view.natbib_preview_stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT) else: self.view.natbib_preview_stack.set_transition_type(Gtk.StackTransitionType.SLIDE_RIGHT) self.view.natbib_preview_stack.set_visible_child_name(style) self.current_values['natbib_style'] = style def on_style_chosen(self, button, style): if self.styles.index(style) > self.styles.index(self.current_values['style']): self.view.preview_stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT) else: self.view.preview_stack.set_transition_type(Gtk.StackTransitionType.SLIDE_RIGHT) self.view.preview_stack.set_visible_child_name(style) self.current_values['style'] = style def get_display_filename(self): file_arr = self.current_values['filename'].rsplit('/', 1) if len(file_arr) > 1: return file_arr[1].rsplit('.', 1)[0] else: return '' def get_style(self): if self.current_values['natbib_toggle']: return self.current_values['natbib_style'] else: return self.current_values['style'] def insert_template(self): self.settings.set_value('app_include_bibtex_file_dialog', 'presets', pickle.dumps(self.current_values)) self.document.content.insert_before_document_end('''\\bibliographystyle{''' + self.get_style() + '''} \\bibliography{''' + self.get_display_filename() + '''}''') self.document.content.scroll_cursor_onscreen() Setzer-0.4.4/setzer/dialogs/include_bibtex_file/include_bibtex_file_viewgtk.py000066400000000000000000000127251420322575300300130ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GLib from gi.repository import Gdk, GdkPixbuf import os import setzer.widgets.filechooser_button.filechooser_button as filechooser_button class IncludeBibTeXFileView(object): def __init__(self, main_window): builder = Gtk.Builder.new_from_string('1', -1) self.dialog = builder.get_object('dialog') self.dialog.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.dialog.set_modal(True) self.dialog.set_transient_for(main_window) self.dialog.set_destroy_with_parent(True) self.dialog.set_default_size(400, 300) self.dialog.set_can_focus(False) self.dialog.get_style_context().add_class('include-bibtex-file-dialog') self.topbox = self.dialog.get_content_area() self.topbox.set_border_width(0) self.topbox.set_size_request(400, -1) self.create_headerbar() self.content = Gtk.VBox() self.content.set_margin_left(18) self.content.set_margin_right(18) label = Gtk.Label(_('BibTeX file to include')) label.set_xalign(0) label.set_margin_bottom(3) label.set_margin_top(18) self.content.pack_start(label, False, False, 0) self.file_chooser_button = filechooser_button.FilechooserButton(main_window) self.file_chooser_button.set_title(_('Select a BibTeX File')) self.content.pack_start(self.file_chooser_button.view, False, False, 0) label = Gtk.Label(_('Bibliography style')) label.set_xalign(0) label.set_margin_bottom(3) label.set_margin_top(18) self.content.pack_start(label, False, False, 0) self.style_switcher = Gtk.HBox() self.style_switcher.get_style_context().add_class('linked') self.style_buttons = dict() self.content.pack_start(self.style_switcher, False, False, 0) self.natbib_style_switcher = Gtk.HBox() self.natbib_style_switcher.get_style_context().add_class('linked') self.natbib_style_buttons = dict() self.content.pack_start(self.natbib_style_switcher, False, False, 0) self.natbib_option = Gtk.CheckButton(_('Show bibliography styles for the \'natbib\' package')) self.natbib_option.set_margin_top(18) self.natbib_option.set_can_focus(False) self.content.pack_start(self.natbib_option, False, False, 0) self.preview_stack_wrapper_wrapper = Gtk.HBox() self.preview_stack_wrapper = Gtk.HBox() self.preview_stack_wrapper.get_style_context().add_class('stack-wrapper') self.preview_stack_wrapper.set_margin_top(18) self.preview_stack_wrapper.set_margin_bottom(18) self.preview_stack = Gtk.Stack() self.preview_stack_wrapper.pack_start(self.preview_stack, False, False, 0) self.preview_stack_wrapper_wrapper.pack_start(self.preview_stack_wrapper, False, False, 0) self.preview_stack_wrapper_wrapper.pack_start(Gtk.DrawingArea(), True, True, 0) self.content.pack_start(self.preview_stack_wrapper_wrapper, False, False, 0) self.natbib_preview_stack_wrapper_wrapper = Gtk.HBox() self.natbib_preview_stack_wrapper = Gtk.HBox() self.natbib_preview_stack_wrapper.get_style_context().add_class('stack-wrapper') self.natbib_preview_stack_wrapper.set_margin_top(18) self.natbib_preview_stack_wrapper.set_margin_bottom(18) self.natbib_preview_stack = Gtk.Stack() self.natbib_preview_stack_wrapper.pack_start(self.natbib_preview_stack, False, False, 0) self.natbib_preview_stack_wrapper_wrapper.pack_start(self.natbib_preview_stack_wrapper, False, False, 0) self.natbib_preview_stack_wrapper_wrapper.pack_start(Gtk.DrawingArea(), True, True, 0) self.content.pack_start(self.natbib_preview_stack_wrapper_wrapper, False, False, 0) self.topbox.pack_start(self.content, True, True, 0) self.topbox.show_all() def create_headerbar(self): self.headerbar = self.dialog.get_header_bar() self.headerbar.set_show_close_button(False) self.headerbar.set_title(_('Include BibTeX file')) self.cancel_button = self.dialog.add_button(_('_Cancel'), Gtk.ResponseType.CANCEL) self.cancel_button.set_can_focus(False) self.create_button = self.dialog.add_button(_('_Include'), Gtk.ResponseType.APPLY) self.create_button.set_can_focus(False) self.create_button.get_style_context().add_class('suggested-action') self.headerbar.show_all() def run(self): return self.dialog.run() def __del__(self): self.dialog.destroy() Setzer-0.4.4/setzer/dialogs/include_latex_file/000077500000000000000000000000001420322575300215535ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/include_latex_file/__init__.py000066400000000000000000000000001420322575300236520ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/include_latex_file/include_latex_file.py000066400000000000000000000102201420322575300257370ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import setzer.dialogs.include_latex_file.include_latex_file_viewgtk as view import os.path class IncludeLaTeXFile(Dialog): def __init__(self, main_window): self.main_window = main_window self.pathtypes = {'rel' : _('Relative Path'), 'abs' : _('Absolute Path')} self.current_values = dict() self.view = view.IncludeLaTeXFileView(self.main_window) self.is_not_setup = True def run(self, document): self.document = document self.init_current_values() if self.is_not_setup: self.setup() self.is_not_setup = False self.view.pathtype_buttons[self.current_values['pathtype']].set_active(True) self.view.pathtype_buttons[self.current_values['pathtype']].toggled() self.view.pathtype_info_button.set_active(False) self.view.create_button.set_sensitive(False) self.view.file_chooser_button.reset() response = self.view.run() if response == Gtk.ResponseType.APPLY: self.insert_template() self.view.dialog.hide() def init_current_values(self): self.current_values['filename'] = '' self.current_values['pathtype'] = 'rel' def setup(self): file_filter1 = Gtk.FileFilter() file_filter1.add_pattern('*.tex') file_filter1.set_name(_('LaTeX Files')) self.view.file_chooser_button.add_filter(file_filter1) first_button = None for pathtype in self.pathtypes: self.view.pathtype_buttons[pathtype] = Gtk.RadioButton() if first_button == None: first_button = self.view.pathtype_buttons[pathtype] box = Gtk.HBox() box.pack_start(Gtk.Label(self.pathtypes[pathtype]), False, False, 0) box.set_margin_right(6) box.set_margin_left(4) self.view.pathtype_buttons[pathtype].add(box) self.view.pathtype_buttons[pathtype].set_mode(False) if first_button != None: self.view.pathtype_buttons[pathtype].join_group(first_button) self.view.pathtype_switcher.pack_start(self.view.pathtype_buttons[pathtype], False, False, 0) self.view.pathtype_buttons[pathtype].connect('toggled', self.on_pathtype_chosen, pathtype) self.view.pathtype_info_button.connect('toggled', self.on_info_button_toggled) self.view.topbox.show_all() self.view.file_chooser_button.connect('file-set', self.on_file_chosen) def on_file_chosen(self, widget=None): self.view.create_button.set_sensitive(True) self.current_values['filename'] = self.view.file_chooser_button.get_filename() def on_info_button_toggled(self, button): self.view.description_revealer.set_reveal_child(button.get_active()) def on_pathtype_chosen(self, button, pathtype): self.current_values['pathtype'] = pathtype def get_display_filename(self): if self.current_values['pathtype'] == 'rel': document_dir = self.document.get_dirname() return os.path.relpath(self.current_values['filename'], document_dir) else: return self.current_values['filename'] def insert_template(self): text = '\\input{' + self.get_display_filename() + '}' self.document.content.insert_text_at_cursor(text) self.document.content.scroll_cursor_onscreen() Setzer-0.4.4/setzer/dialogs/include_latex_file/include_latex_file_viewgtk.py000066400000000000000000000113511420322575300275050ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GLib from gi.repository import Gdk, GdkPixbuf import os import setzer.widgets.filechooser_button.filechooser_button as filechooser_button class IncludeLaTeXFileView(object): def __init__(self, main_window): builder = Gtk.Builder.new_from_string('1', -1) self.dialog = builder.get_object('dialog') self.dialog.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.dialog.set_modal(True) self.dialog.set_transient_for(main_window) self.dialog.set_destroy_with_parent(True) self.dialog.set_default_size(400, -1) self.dialog.set_can_focus(False) self.dialog.get_style_context().add_class('include-latex-file-dialog') self.topbox = self.dialog.get_content_area() self.topbox.set_border_width(0) self.topbox.set_size_request(400, -1) self.create_headerbar() self.content = Gtk.VBox() self.content.set_margin_left(18) self.content.set_margin_right(18) label = Gtk.Label(_('LaTeX file to include')) label.set_xalign(0) label.set_margin_bottom(3) label.set_margin_top(18) self.content.pack_start(label, False, False, 0) self.file_chooser_button = filechooser_button.FilechooserButton(main_window) self.file_chooser_button.set_title(_('Select a LaTeX File')) self.content.pack_start(self.file_chooser_button.view, False, False, 0) label = Gtk.Label(_('Type of path to included file')) label.set_xalign(0) label.set_margin_bottom(3) label.set_margin_top(18) self.content.pack_start(label, False, False, 0) box = Gtk.HBox() self.pathtype_switcher = Gtk.HBox() self.pathtype_switcher.get_style_context().add_class('linked') self.pathtype_buttons = dict() image = Gtk.Image.new_from_icon_name('dialog-information-symbolic', Gtk.IconSize.MENU) self.pathtype_info_button = Gtk.ToggleButton() self.pathtype_info_button.set_image(image) self.pathtype_info_button.get_style_context().add_class('circular') self.pathtype_info_button.get_style_context().add_class('flat') box.pack_start(self.pathtype_switcher, False, False, 0) box.pack_end(self.pathtype_info_button, False, False, 0) box.set_margin_bottom(18) self.content.pack_start(box, False, False, 0) self.description_revealer = Gtk.Revealer() description = Gtk.Label() description.set_line_wrap(True) description.set_markup(_('Relative Path: Set the path relative to the main document. This is useful when the included file is in the same folder as the main document and you want to move around both of them together.') + ' (' + _('recommended') + ')\n\n' + _('Absolute Path: Specify the absolute location of the included file in your filesystem.')) description.set_xalign(0) description.set_margin_bottom(18) self.description_revealer.add(description) self.content.pack_start(self.description_revealer, False, False, 0) self.topbox.pack_start(self.content, True, True, 0) self.topbox.show_all() def create_headerbar(self): self.headerbar = self.dialog.get_header_bar() self.headerbar.set_show_close_button(False) self.headerbar.set_title(_('Include LaTeX file')) self.cancel_button = self.dialog.add_button(_('_Cancel'), Gtk.ResponseType.CANCEL) self.cancel_button.set_can_focus(False) self.create_button = self.dialog.add_button(_('_Include'), Gtk.ResponseType.APPLY) self.create_button.set_can_focus(False) self.create_button.get_style_context().add_class('suggested-action') self.headerbar.show_all() def run(self): return self.dialog.run() def __del__(self): self.dialog.destroy() Setzer-0.4.4/setzer/dialogs/interpreter_missing/000077500000000000000000000000001420322575300220305ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/interpreter_missing/__init__.py000066400000000000000000000000001420322575300241270ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/interpreter_missing/interpreter_missing.py000066400000000000000000000037401420322575300265020ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class InterpreterMissingDialog(Dialog): def __init__(self, main_window): self.main_window = main_window def run(self, interpreter_name): self.setup(interpreter_name) response = self.view.run() if response == Gtk.ResponseType.YES: return_value = True else: return_value = False self.close() return return_value def setup(self, interpreter_name): self.view = Gtk.MessageDialog(self.main_window, 0, Gtk.MessageType.QUESTION) self.view.set_property('text', _('LateX Interpreter is missing.')) self.view.format_secondary_markup(_('''Setzer is configured to use »{interpreter}« which seems to be missing on this system. To choose a different interpreter go to Preferences. For instructions on installing LaTeX see https://en.wikibooks.org/wiki/LaTeX/Installation''').format(interpreter=interpreter_name)) self.view.add_buttons(_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Go to Preferences'), Gtk.ResponseType.YES) self.view.set_default_response(Gtk.ResponseType.YES) Setzer-0.4.4/setzer/dialogs/keyboard_shortcuts/000077500000000000000000000000001420322575300216525ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/keyboard_shortcuts/__init__.py000066400000000000000000000000001420322575300237510ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/keyboard_shortcuts/keyboard_shortcuts.py000066400000000000000000000220551420322575300261460ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class KeyboardShortcutsDialog(Dialog): def __init__(self, main_window): self.main_window = main_window data = list() section = {'title': _('Documents'), 'items': list()} section['items'].append({'title': _('Create new document'), 'shortcut': '<ctrl>N'}) section['items'].append({'title': _('Open a document'), 'shortcut': '<ctrl>O'}) section['items'].append({'title': _('Show recent documents'), 'shortcut': '<ctrl><shift>O'}) section['items'].append({'title': _('Show open documents'), 'shortcut': '<ctrl>T'}) section['items'].append({'title': _('Switch to the next open document'), 'shortcut': '<ctrl><shift>T'}) section['items'].append({'title': _('Save the current document'), 'shortcut': '<ctrl>S'}) section['items'].append({'title': _('Save the document with a new filename'), 'shortcut': '<ctrl><shift>S'}) section['items'].append({'title': _('Close the current document'), 'shortcut': '<ctrl>W'}) data.append(section) section = {'title': _('Tools'), 'items': list()} section['items'].append({'title': _('Save and build .pdf-file from document'), 'shortcut': 'F5'}) section['items'].append({'title': _('Build .pdf-file from document'), 'shortcut': 'F6'}) section['items'].append({'title': _('Show current position in preview'), 'shortcut': '<ctrl><Alt>J'}) data.append(section) section = {'title': 'Windows and Panels', 'items': list()} section['items'].append({'title': _('Show help panel'), 'shortcut': 'F1'}) section['items'].append({'title': _('Spellchecking dialog'), 'shortcut': 'F7'}) section['items'].append({'title': _('Show build log'), 'shortcut': 'F8'}) section['items'].append({'title': _('Show side panel'), 'shortcut': 'F9'}) section['items'].append({'title': _('Show preview panel'), 'shortcut': 'F10'}) section['items'].append({'title': _('Show keyboard shortcuts'), 'shortcut': '<ctrl>question'}) section['items'].append({'title': _('Close Application'), 'shortcut': '<ctrl>Q'}) data.append(section) section = {'title': _('Find and Replace'), 'items': list()} section['items'].append({'title': _('Find'), 'shortcut': '<ctrl>F'}) section['items'].append({'title': _('Find the next match'), 'shortcut': '<ctrl>G'}) section['items'].append({'title': _('Find the previous match'), 'shortcut': '<ctrl><shift>G'}) section['items'].append({'title': _('Find and Replace'), 'shortcut': '<ctrl>H'}) data.append(section) section = {'title': _('Zoom'), 'items': list()} section['items'].append({'title': _('Zoom in'), 'shortcut': '<ctrl>plus'}) section['items'].append({'title': _('Zoom out'), 'shortcut': '<ctrl>minus'}) section['items'].append({'title': _('Reset zoom'), 'shortcut': '<ctrl>0'}) data.append(section) section = {'title': 'Copy and Paste', 'items': list()} section['items'].append({'title': _('Copy selected text to clipboard'), 'shortcut': '<ctrl>C'}) section['items'].append({'title': _('Cut selected text to clipboard'), 'shortcut': '<ctrl>X'}) section['items'].append({'title': _('Paste text from clipboard'), 'shortcut': '<ctrl>V'}) data.append(section) section = {'title': _('Undo and Redo'), 'items': list()} section['items'].append({'title': _('Undo previous text edit'), 'shortcut': '<ctrl>Z'}) section['items'].append({'title': _('Redo previous text edit'), 'shortcut': '<ctrl><shift>Z'}) data.append(section) section = {'title': _('Selection'), 'items': list()} section['items'].append({'title': _('Select all text'), 'shortcut': '<ctrl>A'}) data.append(section) section = {'title': _('Editing'), 'items': list()} section['items'].append({'title': _('Toggle insert / overwrite'), 'shortcut': 'Insert'}) section['items'].append({'title': _('Move current line up'), 'shortcut': '<Alt>Up'}) section['items'].append({'title': _('Move current line down'), 'shortcut': '<Alt>Down'}) section['items'].append({'title': _('Move current word left'), 'shortcut': '<Alt>Left'}) section['items'].append({'title': _('Move current word right'), 'shortcut': '<Alt>Right'}) section['items'].append({'title': _('Increment number at cursor'), 'shortcut': '<ctrl><shift>A'}) section['items'].append({'title': _('Decrement number at cursor'), 'shortcut': '<ctrl><shift>X'}) data.append(section) section = {'title': _('LaTeX Shortcuts'), 'items': list()} section['items'].append({'title': _('Comment / Uncomment current line(s)'), 'shortcut': '<ctrl>K'}) section['items'].append({'title': _('New Line') + ' (\\\\)', 'shortcut': '<ctrl>Return'}) section['items'].append({'title': _('Bold Text'), 'shortcut': '<ctrl>B'}) section['items'].append({'title': _('Italic Text'), 'shortcut': '<ctrl>I'}) section['items'].append({'title': _('Underlined Text'), 'shortcut': '<ctrl>U'}) section['items'].append({'title': _('Typewriter Text'), 'shortcut': '<ctrl>M'}) section['items'].append({'title': _('Emphasized Text'), 'shortcut': '<ctrl><shift>E'}) section['items'].append({'title': _('Quotation Marks'), 'shortcut': '<ctrl>quotedbl'}) section['items'].append({'title': _('List Item'), 'shortcut': '<ctrl><shift>I'}) section['items'].append({'title': _('Environment'), 'shortcut': '<ctrl>E'}) data.append(section) section = {'title': _('Math Shortcuts'), 'items': list()} section['items'].append({'title': _('Inline Math Section'), 'shortcut': '<ctrl><shift>M'}) section['items'].append({'title': _('Display Math Section'), 'shortcut': '<alt><shift>M'}) section['items'].append({'title': _('Equation'), 'shortcut': '<ctrl><shift>N'}) section['items'].append({'title': _('Subscript'), 'shortcut': '<ctrl><shift>D'}) section['items'].append({'title': _('Superscript'), 'shortcut': '<ctrl><shift>U'}) section['items'].append({'title': _('Fraction'), 'shortcut': '<alt><shift>F'}) section['items'].append({'title': '\\left', 'shortcut': '<ctrl><shift>L'}) section['items'].append({'title': '\\right', 'shortcut': '<ctrl><shift>R'}) data.append(section) self.data = data def run(self): self.setup() self.view.show_all() del(self.view) def setup(self): builder_string = ''' 1 1 shortcuts 12 ''' for section in self.data: builder_string += ''' 1 ''' + section['title'] + ''' ''' for item in section['items']: builder_string += ''' 1 ''' + item['shortcut'] + ''' ''' + item['title'] + ''' ''' builder_string += ''' ''' builder_string += ''' ''' builder = Gtk.Builder.new_from_string(builder_string, -1) self.view = builder.get_object('shortcuts-window') self.view.set_transient_for(self.main_window) Setzer-0.4.4/setzer/dialogs/open_document/000077500000000000000000000000001420322575300205735ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/open_document/__init__.py000066400000000000000000000000001420322575300226720ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/open_document/open_document.py000066400000000000000000000044721420322575300240130ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class OpenDocumentDialog(Dialog): ''' File chooser for opening documents ''' def __init__(self, main_window): self.main_window = main_window def run(self): self.setup() response = self.view.run() if response == Gtk.ResponseType.OK: return_value = self.view.get_filename() else: return_value = None self.close() return return_value def setup(self): self.action = Gtk.FileChooserAction.OPEN self.buttons = (_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Open'), Gtk.ResponseType.OK) self.view = Gtk.FileChooserDialog(_('Open'), self.main_window, self.action, self.buttons) headerbar = self.view.get_header_bar() if headerbar != None: for widget in headerbar.get_children(): if isinstance(widget, Gtk.Button) and widget.get_label() == _('_Open'): widget.get_style_context().add_class(Gtk.STYLE_CLASS_SUGGESTED_ACTION) widget.set_can_default(True) widget.grab_default() file_filter1 = Gtk.FileFilter() file_filter1.add_pattern('*.tex') file_filter1.add_pattern('*.bib') file_filter1.add_pattern('*.cls') file_filter1.add_pattern('*.sty') file_filter1.set_name(_('LaTeX and BibTeX Files')) self.view.add_filter(file_filter1) self.view.set_select_multiple(False) self.main_window.headerbar.document_chooser.popdown() Setzer-0.4.4/setzer/dialogs/open_session/000077500000000000000000000000001420322575300204405ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/open_session/__init__.py000066400000000000000000000000001420322575300225370ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/open_session/open_session.py000066400000000000000000000042011420322575300235130ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class OpenSessionDialog(Dialog): ''' File chooser for opening session files ''' def __init__(self, main_window): self.main_window = main_window def run(self): self.setup() response = self.view.run() if response == Gtk.ResponseType.OK: return_value = self.view.get_filename() else: return_value = None self.close() return return_value def setup(self): self.action = Gtk.FileChooserAction.OPEN self.buttons = (_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Open'), Gtk.ResponseType.OK) self.view = Gtk.FileChooserDialog(_('Load Session'), self.main_window, self.action, self.buttons) headerbar = self.view.get_header_bar() if headerbar != None: for widget in headerbar.get_children(): if isinstance(widget, Gtk.Button) and widget.get_label() == _('_Open'): widget.get_style_context().add_class(Gtk.STYLE_CLASS_SUGGESTED_ACTION) widget.set_can_default(True) widget.grab_default() file_filter1 = Gtk.FileFilter() file_filter1.add_pattern('*.stzs') file_filter1.set_name(_('Setzer Session')) self.view.add_filter(file_filter1) self.view.set_select_multiple(False) Setzer-0.4.4/setzer/dialogs/preferences/000077500000000000000000000000001420322575300202355ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/preferences/__init__.py000066400000000000000000000000001420322575300223340ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/preferences/pages/000077500000000000000000000000001420322575300213345ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/preferences/pages/__init__.py000066400000000000000000000000001420322575300234330ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/preferences/pages/page_build_system.py000066400000000000000000000240671420322575300254160ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk import subprocess class PageBuildSystem(object): def __init__(self, preferences, settings): self.view = PageBuildSystemView() self.preferences = preferences self.settings = settings self.latex_interpreters = list() self.latexmk_available = False def init(self): self.view.option_cleanup_build_files.set_active(self.settings.get_value('preferences', 'cleanup_build_files')) self.view.option_cleanup_build_files.connect('toggled', self.preferences.on_check_button_toggle, 'cleanup_build_files') self.view.option_autoshow_build_log_errors.set_active(self.settings.get_value('preferences', 'autoshow_build_log') == 'errors') self.view.option_autoshow_build_log_errors_warnings.set_active(self.settings.get_value('preferences', 'autoshow_build_log') == 'errors_warnings') self.view.option_autoshow_build_log_all.set_active(self.settings.get_value('preferences', 'autoshow_build_log') == 'all') self.view.option_autoshow_build_log_errors.connect('toggled', self.preferences.on_radio_button_toggle, 'autoshow_build_log', 'errors') self.view.option_autoshow_build_log_errors_warnings.connect('toggled', self.preferences.on_radio_button_toggle, 'autoshow_build_log', 'errors_warnings') self.view.option_autoshow_build_log_all.connect('toggled', self.preferences.on_radio_button_toggle, 'autoshow_build_log', 'all') self.view.option_system_commands_disable.set_active(self.settings.get_value('preferences', 'build_option_system_commands') == 'disable') self.view.option_system_commands_restricted.set_active(self.settings.get_value('preferences', 'build_option_system_commands') == 'restricted') self.view.option_system_commands_full.set_active(self.settings.get_value('preferences', 'build_option_system_commands') == 'enable') self.view.option_system_commands_disable.connect('toggled', self.preferences.on_radio_button_toggle, 'build_option_system_commands', 'disable') self.view.option_system_commands_restricted.connect('toggled', self.preferences.on_radio_button_toggle, 'build_option_system_commands', 'restricted') self.view.option_system_commands_full.connect('toggled', self.preferences.on_radio_button_toggle, 'build_option_system_commands', 'enable') self.setup_latex_interpreters() def setup_latex_interpreters(self): self.latex_interpreters = list() for interpreter in ['xelatex', 'pdflatex', 'lualatex']: self.view.option_latex_interpreter[interpreter].hide() arguments = [interpreter, '--version'] try: process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE) except FileNotFoundError: pass else: process.wait() if process.returncode == 0: self.latex_interpreters.append(interpreter) self.latexmk_available = False arguments = ['latexmk', '--version'] try: process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE) except FileNotFoundError: pass else: process.wait() if process.returncode == 0: self.latexmk_available = True if len(self.latex_interpreters) == 0: self.view.no_interpreter_label.show_all() else: self.view.no_interpreter_label.hide() if self.settings.get_value('preferences', 'latex_interpreter') not in self.latex_interpreters: self.settings.set_value('preferences', 'latex_interpreter', self.latex_interpreters[0]) if self.latexmk_available: self.view.option_use_latexmk.show_all() else: self.view.option_use_latexmk.hide() self.settings.set_value('preferences', 'use_latexmk', False) self.view.option_use_latexmk.set_active(self.settings.get_value('preferences', 'use_latexmk')) self.view.option_use_latexmk.connect('toggled', self.preferences.on_check_button_toggle, 'use_latexmk') for interpreter in self.latex_interpreters: self.view.option_latex_interpreter[interpreter].show_all() self.view.option_latex_interpreter[interpreter].set_active(interpreter == self.settings.get_value('preferences', 'latex_interpreter')) for interpreter in self.latex_interpreters: self.view.option_latex_interpreter[interpreter].connect('toggled', self.preferences.on_interpreter_changed, 'latex_interpreter', interpreter) class PageBuildSystemView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.set_margin_start(18) self.set_margin_end(18) self.set_margin_top(18) self.set_margin_bottom(18) self.get_style_context().add_class('preferences-page') label = Gtk.Label() label.set_markup('' + _('LaTeX Interpreter') + '') label.set_xalign(0) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.no_interpreter_label = Gtk.Label() self.no_interpreter_label.set_line_wrap(True) self.no_interpreter_label.set_markup(_('No LaTeX interpreter found. For instructions on installing LaTeX see https://en.wikibooks.org/wiki/LaTeX/Installation')) self.no_interpreter_label.set_xalign(0) self.no_interpreter_label.set_margin_bottom(6) self.pack_start(self.no_interpreter_label, False, False, 0) self.option_latex_interpreter = dict() self.option_latex_interpreter['xelatex'] = Gtk.RadioButton('XeLaTeX') self.option_latex_interpreter['xelatex'].set_margin_right(12) self.option_latex_interpreter['pdflatex'] = Gtk.RadioButton.new_with_label_from_widget(self.option_latex_interpreter['xelatex'], 'PdfLaTeX') self.option_latex_interpreter['pdflatex'].set_margin_right(12) self.option_latex_interpreter['lualatex'] = Gtk.RadioButton.new_with_label_from_widget(self.option_latex_interpreter['xelatex'], 'LuaLaTeX') self.option_latex_interpreter['lualatex'].set_margin_right(12) self.hbox1 = Gtk.HBox() self.hbox1.pack_start(self.option_latex_interpreter['xelatex'], False, False, 0) self.hbox1.pack_start(self.option_latex_interpreter['pdflatex'], False, False, 0) self.hbox1.pack_start(self.option_latex_interpreter['lualatex'], False, False, 0) self.pack_start(self.hbox1, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Options') + '') label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.option_cleanup_build_files = Gtk.CheckButton(_('Automatically remove helper files (.log, .dvi, ...) after building .pdf.')) self.pack_start(self.option_cleanup_build_files, False, False, 0) self.option_use_latexmk = Gtk.CheckButton(_('Use Latexmk')) self.pack_start(self.option_use_latexmk, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Automatically show build log ..') + ' ') label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.option_autoshow_build_log_errors = Gtk.RadioButton(_('.. only when errors occurred.')) self.option_autoshow_build_log_errors_warnings = Gtk.RadioButton.new_with_label_from_widget(self.option_autoshow_build_log_errors, _('.. on errors and warnings.')) self.option_autoshow_build_log_all = Gtk.RadioButton.new_with_label_from_widget(self.option_autoshow_build_log_errors, _('.. on errors, warnings and badboxes.')) self.pack_start(self.option_autoshow_build_log_errors, False, False, 0) self.pack_start(self.option_autoshow_build_log_errors_warnings, False, False, 0) self.pack_start(self.option_autoshow_build_log_all, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Embedded system commands') + '') label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) label = Gtk.Label() label.set_line_wrap(True) label.set_markup(_('Warning: enable this only if you have to. It can cause security problems when building files from untrusted sources.')) label.set_xalign(0) label.set_margin_bottom(9) label.get_style_context().add_class('description') self.pack_start(label, False, False, 0) self.option_system_commands_disable = Gtk.RadioButton(_('Disable') + ' (' + _('recommended') + ')') self.option_system_commands_restricted = Gtk.RadioButton.new_with_label_from_widget(self.option_system_commands_disable, _('Enable restricted \\write18{SHELL COMMAND}')) self.option_system_commands_full = Gtk.RadioButton.new_with_label_from_widget(self.option_system_commands_disable, _('Fully enable \\write18{SHELL COMMAND}')) self.pack_start(self.option_system_commands_disable, False, False, 0) self.pack_start(self.option_system_commands_restricted, False, False, 0) self.pack_start(self.option_system_commands_full, False, False, 0) Setzer-0.4.4/setzer/dialogs/preferences/pages/page_editor.py000066400000000000000000000126541420322575300242000ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class PageEditor(object): def __init__(self, preferences, settings): self.view = PageEditorView() self.preferences = preferences self.settings = settings def init(self): self.view.option_spaces_instead_of_tabs.set_active(self.settings.get_value('preferences', 'spaces_instead_of_tabs')) self.view.option_spaces_instead_of_tabs.connect('toggled', self.preferences.on_check_button_toggle, 'spaces_instead_of_tabs') self.view.tab_width_spinbutton.set_value(self.settings.get_value('preferences', 'tab_width')) self.view.tab_width_spinbutton.connect('value-changed', self.preferences.spin_button_changed, 'tab_width') self.view.option_show_line_numbers.set_active(self.settings.get_value('preferences', 'show_line_numbers')) self.view.option_show_line_numbers.connect('toggled', self.preferences.on_check_button_toggle, 'show_line_numbers') self.view.option_line_wrapping.set_active(self.settings.get_value('preferences', 'enable_line_wrapping')) self.view.option_line_wrapping.connect('toggled', self.preferences.on_check_button_toggle, 'enable_line_wrapping') self.view.option_code_folding.set_active(self.settings.get_value('preferences', 'enable_code_folding')) self.view.option_code_folding.connect('toggled', self.preferences.on_check_button_toggle, 'enable_code_folding') self.view.option_highlight_current_line.set_active(self.settings.get_value('preferences', 'highlight_current_line')) self.view.option_highlight_current_line.connect('toggled', self.preferences.on_check_button_toggle, 'highlight_current_line') self.view.option_highlight_matching_brackets.set_active(self.settings.get_value('preferences', 'highlight_matching_brackets')) self.view.option_highlight_matching_brackets.connect('toggled', self.preferences.on_check_button_toggle, 'highlight_matching_brackets') class PageEditorView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.set_margin_start(18) self.set_margin_end(18) self.set_margin_top(18) self.set_margin_bottom(18) self.get_style_context().add_class('preferences-page') label = Gtk.Label() label.set_markup('' + _('Tab Stops') + '') label.set_xalign(0) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.option_spaces_instead_of_tabs = Gtk.CheckButton(_('Insert spaces instead of tabs')) self.pack_start(self.option_spaces_instead_of_tabs, False, False, 0) label = Gtk.Label() label.set_markup(_('Set Tab Width:')) label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) box = Gtk.HBox() self.tab_width_spinbutton = Gtk.SpinButton.new_with_range(1, 8, 1) box.pack_start(self.tab_width_spinbutton, False, False, 0) self.pack_start(box, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Line Numbers') + '') label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.option_show_line_numbers = Gtk.CheckButton(_('Show line numbers')) self.pack_start(self.option_show_line_numbers, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Line Wrapping') + '') label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.option_line_wrapping = Gtk.CheckButton(_('Enable line wrapping')) self.pack_start(self.option_line_wrapping, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Code Folding') + '') label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.option_code_folding = Gtk.CheckButton(_('Enable code folding')) self.pack_start(self.option_code_folding, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Highlighting') + '') label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.option_highlight_current_line = Gtk.CheckButton(_('Highlight current line')) self.pack_start(self.option_highlight_current_line, False, False, 0) self.option_highlight_matching_brackets = Gtk.CheckButton(_('Highlight matching brackets')) self.pack_start(self.option_highlight_matching_brackets, False, False, 0) Setzer-0.4.4/setzer/dialogs/preferences/pages/page_font_color.py000066400000000000000000000421021420322575300250450ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('GtkSource', '4') from gi.repository import Gtk from gi.repository import GLib from gi.repository import Pango from gi.repository import GtkSource import os, os.path import shutil import xml.etree.ElementTree as ET from setzer.app.service_locator import ServiceLocator class PageFontColor(object): def __init__(self, preferences, settings, main_window): self.view = PageFontColorView() self.preferences = preferences self.settings = settings self.main_window = main_window def init(self): self.update_switchers() self.view.style_switcher.set_active_id(self.settings.get_value('preferences', 'syntax_scheme')) self.view.style_switcher.connect('changed', self.on_style_switcher_changed, False) self.view.style_switcher_dark_mode.set_active_id(self.settings.get_value('preferences', 'syntax_scheme_dark_mode')) self.view.style_switcher_dark_mode.connect('changed', self.on_style_switcher_changed, True) dark_mode_state = self.settings.get_value('preferences', 'prefer_dark_mode') self.view.option_dark_mode.set_active(dark_mode_state) self.view.option_dark_mode.connect('toggled', self.on_dark_mode_toggle_toggled) self.view.style_switcher_stack.set_visible_child_name('dark' if dark_mode_state else 'light') self.update_font_color_preview() self.update_remove_button() ip_state = self.settings.get_value('preferences', 'invert_pdf') self.view.option_invert_preview.set_active(ip_state) self.view.option_invert_preview.connect('toggled', self.on_ip_toggle_toggled) source_language_manager = ServiceLocator.get_source_language_manager() source_language = source_language_manager.get_language('latex') self.view.source_buffer.set_language(source_language) self.update_font_color_preview() self.view.add_scheme_button.connect('clicked', self.on_add_scheme_button_clicked) self.view.remove_scheme_button.connect('clicked', self.on_remove_scheme_button_clicked) self.view.font_chooser_button.set_font(self.settings.get_value('preferences', 'font_string')) self.view.font_chooser_button.connect('font-set', self.on_font_set) self.view.option_use_system_font.set_active(self.settings.get_value('preferences', 'use_system_font')) self.view.font_chooser_revealer.set_reveal_child(not self.view.option_use_system_font.get_active()) self.view.option_use_system_font.connect('toggled', self.on_use_system_font_toggled) def on_use_system_font_toggled(self, button): self.view.font_chooser_revealer.set_reveal_child(not button.get_active()) self.settings.set_value('preferences', 'use_system_font', button.get_active()) def on_font_set(self, button): if button.get_font_size() < 6 * Pango.SCALE: font_desc = button.get_font_desc() font_desc.set_size(6 * Pango.SCALE) button.set_font_desc(font_desc) elif button.get_font_size() > 24 * Pango.SCALE: font_desc = button.get_font_desc() font_desc.set_size(24 * Pango.SCALE) button.set_font_desc(font_desc) self.settings.set_value('preferences', 'font_string', button.get_font()) def on_style_switcher_changed(self, switcher, is_dark_mode): if is_dark_mode: field = 'syntax_scheme_dark_mode' else: field = 'syntax_scheme' value = switcher.get_active_id() if value != None: self.settings.set_value('preferences', field, value) self.update_font_color_preview() self.update_remove_button() def update_remove_button(self): if self.view.style_switcher_stack.get_visible_child_name() == 'dark': scheme_id = self.view.style_switcher_dark_mode.get_active_id() else: scheme_id = self.view.style_switcher.get_active_id() if scheme_id in ['default', 'default-dark']: self.view.remove_scheme_button.set_sensitive(False) else: self.view.remove_scheme_button.set_sensitive(True) def on_add_scheme_button_clicked(self, button): dialog = AddSchemeDialog(self.main_window) pathname = dialog.run() if pathname != None: destination = os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes', os.path.basename(pathname)) shutil.copyfile(pathname, destination) ServiceLocator.get_source_style_scheme_manager().force_rescan() self.update_switchers() scheme_id = self.get_scheme_id_from_file(destination) if ServiceLocator.get_is_dark_mode(): self.view.style_switcher_dark_mode.set_active_id(scheme_id) else: self.view.style_switcher.set_active_id(scheme_id) def on_remove_scheme_button_clicked(self, button): if self.view.style_switcher_stack.get_visible_child_name() == 'dark': scheme_id = self.view.style_switcher_dark_mode.get_active_id() else: scheme_id = self.view.style_switcher.get_active_id() if not scheme_id in ['default', 'default-dark']: dialog = ReplaceConfirmationDialog(self.main_window) filename = self.get_scheme_filename_from_id(scheme_id) if dialog.run(scheme_id): os.remove(filename) self.update_switchers() def on_dark_mode_toggle_toggled(self, button): workspace = ServiceLocator.get_workspace() new_state = not workspace.actions.toggle_dark_mode_action.get_state().get_boolean() workspace.actions.toggle_dark_mode_action.set_state(GLib.Variant.new_boolean(new_state)) workspace.set_dark_mode(new_state) self.view.style_switcher_stack.set_visible_child_name('dark' if new_state else 'light') self.update_font_color_preview() self.update_remove_button() def on_ip_toggle_toggled(self, button): workspace = ServiceLocator.get_workspace() new_state = not workspace.actions.toggle_invert_pdf_action.get_state().get_boolean() workspace.actions.toggle_invert_pdf_action.set_state(GLib.Variant.new_boolean(new_state)) workspace.set_invert_pdf(new_state) def get_scheme_id_from_file(self, pathname): tree = ET.parse(pathname) root = tree.getroot() return root.attrib['id'] def get_scheme_filename_from_id(self, scheme_id): directory_pathname = os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes') for filename in os.listdir(directory_pathname): tree = ET.parse(os.path.join(directory_pathname, filename)) root = tree.getroot() if root.attrib['id'] == scheme_id: return os.path.join(directory_pathname, filename) def update_switchers(self): active_id = self.settings.get_value('preferences', 'syntax_scheme') active_id_dark_mode = self.settings.get_value('preferences', 'syntax_scheme_dark_mode') set_active_id = False set_active_id_dark_mode = False self.view.style_switcher.remove_all() for name in ['default']: self.view.style_switcher.append(name, name) self.view.style_switcher_dark_mode.remove_all() for name in ['default-dark']: self.view.style_switcher_dark_mode.append(name, name) directory_pathname = os.path.join(ServiceLocator.get_config_folder(), 'syntax_schemes') if os.path.isdir(directory_pathname): for filename in os.listdir(directory_pathname): name = self.get_scheme_id_from_file(os.path.join(directory_pathname, filename)) if name == active_id: set_active_id = True if name == active_id_dark_mode: set_active_id_dark_mode = True self.view.style_switcher.append(name, name) self.view.style_switcher_dark_mode.append(name, name) if set_active_id: self.view.style_switcher.set_active_id(active_id) else: self.view.style_switcher.set_active_id('default') if set_active_id_dark_mode: self.view.style_switcher_dark_mode.set_active_id(active_id_dark_mode) else: self.view.style_switcher_dark_mode.set_active_id('default-dark') self.update_remove_button() def update_font_color_preview(self): source_style_scheme_manager = ServiceLocator.get_source_style_scheme_manager() name = self.settings.get_value('preferences', 'syntax_scheme') source_style_scheme_light = source_style_scheme_manager.get_scheme(name) name = self.settings.get_value('preferences', 'syntax_scheme_dark_mode') source_style_scheme_dark = source_style_scheme_manager.get_scheme(name) if self.view.style_switcher_stack.get_visible_child_name() == 'light': self.view.source_buffer.set_style_scheme(source_style_scheme_light) self.view.preview_wrapper.get_style_context().remove_class('light-bg') self.view.preview_wrapper.get_style_context().remove_class('dark-bg') if ServiceLocator.get_is_dark_mode(): self.view.preview_wrapper.get_style_context().add_class('light-bg') else: self.view.source_buffer.set_style_scheme(source_style_scheme_dark) self.view.preview_wrapper.get_style_context().remove_class('light-bg') self.view.preview_wrapper.get_style_context().remove_class('dark-bg') if not ServiceLocator.get_is_dark_mode(): self.view.preview_wrapper.get_style_context().add_class('dark-bg') class PageFontColorView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.set_margin_start(18) self.set_margin_end(18) self.set_margin_top(18) self.set_margin_bottom(18) self.get_style_context().add_class('preferences-page') label = Gtk.Label() label.set_markup('' + _('Font') + '') label.set_xalign(0) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) font_manager = ServiceLocator.get_font_manager() font_string = font_manager.get_system_font() self.option_use_system_font = Gtk.CheckButton(_('Use the system fixed width font (' + font_string + ')')) self.option_use_system_font.set_margin_bottom(18) self.pack_start(self.option_use_system_font, False, False, 0) self.font_chooser_revealer = Gtk.Revealer() vbox = Gtk.VBox() label = Gtk.Label() label.set_markup(_('Set Editor Font:')) label.set_xalign(0) label.set_margin_bottom(6) vbox.pack_start(label, False, False, 0) self.font_chooser_button = Gtk.FontButton() self.font_chooser_button.set_margin_bottom(18) hbox = Gtk.HBox() hbox.pack_start(self.font_chooser_button, False, False, 0) vbox.pack_start(hbox, False, False, 0) self.font_chooser_revealer.add(vbox) self.pack_start(self.font_chooser_revealer, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Colors') + '') label.set_xalign(0) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.option_dark_mode = Gtk.CheckButton(_('Dark Mode')) self.pack_start(self.option_dark_mode, False, False, 0) self.option_invert_preview = Gtk.CheckButton(_('Invert Colors in .pdf-Preview')) self.pack_start(self.option_invert_preview, False, False, 0) label = Gtk.Label() label.set_markup(_('Editor Color Scheme:')) label.set_xalign(0) label.set_margin_top(18) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.style_switcher = Gtk.ComboBoxText() self.style_switcher_dark_mode = Gtk.ComboBoxText() self.style_switcher_stack = Gtk.Stack() self.style_switcher_stack.add_named(self.style_switcher, 'light') self.style_switcher_stack.add_named(self.style_switcher_dark_mode, 'dark') box = Gtk.HBox() box.set_margin_bottom(18) box.pack_start(self.style_switcher_stack, False, False, 0) self.pack_start(box, False, False, 0) box = Gtk.HBox() box.set_margin_bottom(18) self.remove_scheme_button = Gtk.Button() self.remove_scheme_button.set_label('Remove active scheme') box.pack_end(self.remove_scheme_button, False, False, 0) self.add_scheme_button = Gtk.Button() self.add_scheme_button.set_label('Add from file...') box.pack_start(self.add_scheme_button, False, False, 0) self.pack_start(box, False, False, 0) label = Gtk.Label() label.set_markup('' + _('Preview') + '') label.set_xalign(0) label.set_margin_bottom(6) self.pack_start(label, False, False, 0) self.preview_wrapper = Gtk.VBox() self.preview_wrapper.get_style_context().add_class('preview') scrolled_window = Gtk.ScrolledWindow() scrolled_window.set_min_content_height(162) self.source_view = GtkSource.View() self.source_view.set_editable(False) self.source_view.set_cursor_visible(False) self.source_view.set_monospace(True) self.source_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) self.source_view.set_show_line_numbers(False) self.source_view.set_highlight_current_line(False) scrolled_window.add(self.source_view) self.source_buffer = self.source_view.get_buffer() self.source_buffer.set_highlight_matching_brackets(False) self.source_buffer.set_text('''% Syntax highlighting preview \\documentclass[letterpaper,11pt]{article} \\usepackage{amsmath} \\usepackage{amssymb} \\begin{document} \\section{Preview} This is a \\textit{preview}, for $x, y \in \mathbb{R}: x \leq y$ or $x > y$. \\end{document}''') self.source_buffer.place_cursor(self.source_buffer.get_start_iter()) self.preview_wrapper.pack_start(scrolled_window, True, True, 0) self.pack_start(self.preview_wrapper, True, True, 0) class AddSchemeDialog(object): ''' File chooser for adding syntax schemes ''' def __init__(self, main_window): self.main_window = main_window def run(self): self.setup() response = self.view.run() if response == Gtk.ResponseType.OK: return_value = self.view.get_filename() else: return_value = None self.view.hide() del(self.view) return return_value def setup(self): self.action = Gtk.FileChooserAction.OPEN self.buttons = (_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Add Scheme'), Gtk.ResponseType.OK) self.view = Gtk.FileChooserDialog(_('Add Scheme'), self.main_window, self.action, self.buttons) headerbar = self.view.get_header_bar() if headerbar != None: for widget in headerbar.get_children(): if isinstance(widget, Gtk.Button) and widget.get_label() == _('_Add Scheme'): widget.get_style_context().add_class(Gtk.STYLE_CLASS_SUGGESTED_ACTION) widget.set_can_default(True) widget.grab_default() file_filter1 = Gtk.FileFilter() file_filter1.add_pattern('*.xml') file_filter1.set_name(_('Color Scheme Files')) self.view.add_filter(file_filter1) self.view.set_select_multiple(False) self.main_window.headerbar.document_chooser.popdown() class ReplaceConfirmationDialog(object): ''' This dialog shows a warning when users want to delete a syntax scheme. ''' def __init__(self, main_window): self.main_window = main_window def run(self, name): self.setup(name) response = self.view.run() if response == Gtk.ResponseType.YES: return_value = True else: return_value = False self.view.hide() del(self.view) return return_value def setup(self, name): self.view = Gtk.MessageDialog(self.main_window, 0, Gtk.MessageType.QUESTION) question = _('Removing syntax scheme »{name}«.') self.view.set_property('text', question.format(name=name)) self.view.format_secondary_markup(_('Do you really want to do this?')) self.view.add_buttons(_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Yes, remove it'), Gtk.ResponseType.YES) self.view.set_default_response(Gtk.ResponseType.YES) Setzer-0.4.4/setzer/dialogs/preferences/preferences.py000066400000000000000000000062001420322575300231060ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import setzer.dialogs.preferences.preferences_viewgtk as view import setzer.dialogs.preferences.pages.page_build_system as page_build_system import setzer.dialogs.preferences.pages.page_editor as page_editor import setzer.dialogs.preferences.pages.page_font_color as page_font_color from setzer.app.service_locator import ServiceLocator class PreferencesDialog(Dialog): def __init__(self, main_window): self.main_window = main_window self.settings = ServiceLocator.get_settings() def run(self): self.setup() self.view.run() del(self.view) del(self.page_build_system) del(self.page_editor) del(self.page_font_color) def setup(self): self.view = view.Preferences(self.main_window) self.page_build_system = page_build_system.PageBuildSystem(self, self.settings) self.page_editor = page_editor.PageEditor(self, self.settings) self.page_font_color = page_font_color.PageFontColor(self, self.settings, self.main_window) self.view.notebook.append_page(self.page_build_system.view, Gtk.Label(_('Build System'))) self.view.notebook.append_page(self.page_editor.view, Gtk.Label(_('Editor'))) self.view.notebook.append_page(self.page_font_color.view, Gtk.Label(_('Font & Colors'))) self.view.dialog.show_all() self.page_build_system.init() self.page_editor.init() self.page_font_color.init() def on_check_button_toggle(self, button, preference_name): self.settings.set_value('preferences', preference_name, button.get_active()) def on_radio_button_toggle(self, button, preference_name, value): self.settings.set_value('preferences', preference_name, value) def spin_button_changed(self, button, preference_name): self.settings.set_value('preferences', preference_name, button.get_value_as_int()) def text_deleted(self, buffer, position, n_chars, preference_name): self.settings.set_value('preferences', preference_name, buffer.get_text()) def text_inserted(self, buffer, position, chars, n_chars, preference_name): self.settings.set_value('preferences', preference_name, buffer.get_text()) def on_interpreter_changed(self, button, preference_name, value): self.settings.set_value('preferences', preference_name, value) Setzer-0.4.4/setzer/dialogs/preferences/preferences_viewgtk.py000066400000000000000000000040711420322575300246520ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gdk class Preferences(object): ''' Preferences dialog. ''' def __init__(self, main_window): builder = Gtk.Builder.new_from_string('1', -1) self.dialog = builder.get_object('dialog') self.dialog.set_destroy_with_parent(True) self.dialog.set_type_hint(Gdk.WindowTypeHint.DIALOG) self.dialog.set_modal(True) self.dialog.set_transient_for(main_window) self.dialog.set_can_focus(False) self.dialog.set_size_request(400, 250) self.dialog.set_default_size(400, 250) self.headerbar = self.dialog.get_header_bar() self.headerbar.set_title(_('Preferences')) self.topbox = self.dialog.get_content_area() self.topbox.set_border_width(0) self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(True) self.notebook.set_show_border(False) self.topbox.pack_start(self.notebook, True, True, 0) def run(self): return self.dialog.run() def response(self, args): self.dialog.response(args) def __del__(self): self.dialog.destroy() Setzer-0.4.4/setzer/dialogs/replace_confirmation/000077500000000000000000000000001420322575300221175ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/replace_confirmation/__init__.py000066400000000000000000000000001420322575300242160ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/replace_confirmation/replace_confirmation.py000066400000000000000000000041421420322575300266550ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog class ReplaceConfirmationDialog(Dialog): ''' This dialog is asking users if they really want to do a replace all. ''' def __init__(self, main_window): self.main_window = main_window def run(self, original, replacement, number_of_occurrences): self.setup(original, replacement, number_of_occurrences) response = self.view.run() if response == Gtk.ResponseType.YES: return_value = True else: return_value = False self.close() return return_value def setup(self, original, replacement, number_of_occurrences): self.view = Gtk.MessageDialog(self.main_window, 0, Gtk.MessageType.QUESTION) str_occurrences = ngettext('Replacing {amount} occurence of »{original}« with »{replacement}«.', 'Replacing {amount} occurrences of »{original}« with »{replacement}«.', number_of_occurrences) self.view.set_property('text', str_occurrences.format(amount=str(number_of_occurrences), original=original, replacement=replacement)) self.view.format_secondary_markup(_('Do you really want to do this?')) self.view.add_buttons(_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Yes, replace all occurrences'), Gtk.ResponseType.YES) self.view.set_default_response(Gtk.ResponseType.YES) Setzer-0.4.4/setzer/dialogs/save_document/000077500000000000000000000000001420322575300205705ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/save_document/__init__.py000066400000000000000000000000001420322575300226670ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/save_document/save_document.py000066400000000000000000000052611420322575300240020ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class SaveDocumentDialog(Dialog): ''' File chooser for saving documents ''' def __init__(self, main_window, workspace): self.main_window = main_window self.workspace = workspace def run(self, document): self.setup() pathname = document.get_filename() if pathname != None: self.view.set_current_name(os.path.basename(pathname)) self.view.set_current_folder(document.get_dirname()) else: if document.get_document_type() == 'latex': ending = '.tex' elif document.get_document_type() == 'bibtex': ending = '.bib' else: ending = '' self.view.set_current_name(ending) response = self.view.run() if response == Gtk.ResponseType.OK: filename = self.view.get_filename() document.set_filename(filename) document.save_to_disk() self.workspace.update_recently_opened_document(filename) return_value = True else: return_value = False self.close() return return_value def setup(self): self.action = Gtk.FileChooserAction.SAVE self.buttons = (_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Save'), Gtk.ResponseType.OK) self.view = Gtk.FileChooserDialog(_('Save document'), self.main_window, self.action, self.buttons) self.view.set_do_overwrite_confirmation(True) headerbar = self.view.get_header_bar() if headerbar != None: for widget in headerbar.get_children(): if isinstance(widget, Gtk.Button) and widget.get_label() == _('_Save'): widget.get_style_context().add_class(Gtk.STYLE_CLASS_SUGGESTED_ACTION) widget.set_can_default(True) widget.grab_default() Setzer-0.4.4/setzer/dialogs/save_session/000077500000000000000000000000001420322575300204355ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/save_session/__init__.py000066400000000000000000000000001420322575300225340ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/save_session/save_session.py000066400000000000000000000055451420322575300235210ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.dialogs.dialog import Dialog import os.path class SaveSessionDialog(Dialog): ''' File chooser for saving editing sessions ''' def __init__(self, main_window, workspace): self.main_window = main_window self.workspace = workspace def run(self): self.setup() if self.workspace.session_file_opened != None: self.view.set_current_folder(os.path.dirname(self.workspace.session_file_opened)) self.view.set_current_name(os.path.basename(self.workspace.session_file_opened)) else: if self.workspace.root_document != None: document = self.workspace.get_root_document() else: document = self.workspace.get_active_document() if document != None: pathname = document.get_filename() if pathname != None: self.view.set_current_folder(os.path.dirname(pathname)) self.view.set_current_name('.stzs') else: self.view.set_current_name('.stzs') response = self.view.run() if response == Gtk.ResponseType.OK: filename = self.view.get_filename() self.workspace.save_session(filename) return_value = True else: return_value = False self.close() return return_value def setup(self): self.action = Gtk.FileChooserAction.SAVE self.buttons = (_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Save'), Gtk.ResponseType.OK) self.view = Gtk.FileChooserDialog(_('Save Session'), self.main_window, self.action, self.buttons) self.view.set_do_overwrite_confirmation(True) headerbar = self.view.get_header_bar() if headerbar != None: for widget in headerbar.get_children(): if isinstance(widget, Gtk.Button) and widget.get_label() == _('_Save'): widget.get_style_context().add_class(Gtk.STYLE_CLASS_SUGGESTED_ACTION) widget.set_can_default(True) widget.grab_default() Setzer-0.4.4/setzer/dialogs/spellchecking/000077500000000000000000000000001420322575300205475ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/spellchecking/__init__.py000066400000000000000000000000001420322575300226460ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/spellchecking/spellchecking.py000066400000000000000000000026651420322575300237450ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gspell', '1') from gi.repository import Gspell from setzer.dialogs.dialog import Dialog class SpellcheckingDialog(Dialog): def __init__(self, main_window, workspace): self.main_window = main_window self.workspace = workspace self.current_values = dict() def run(self): try: navigator = self.workspace.get_active_document().spellchecker.spell_navigator except AttributeError: pass else: self.setup(navigator) response = self.view.run() self.view.hide() del(self.view) def setup(self, navigator): self.view = Gspell.CheckerDialog.new(self.main_window, navigator) Setzer-0.4.4/setzer/dialogs/spellchecking_language/000077500000000000000000000000001420322575300224125ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/spellchecking_language/__init__.py000066400000000000000000000000001420322575300245110ustar00rootroot00000000000000Setzer-0.4.4/setzer/dialogs/spellchecking_language/spellchecking_language.py000066400000000000000000000044061420322575300274460ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('Gspell', '1') from gi.repository import Gtk from gi.repository import Gspell from setzer.dialogs.dialog import Dialog import pickle import os class SpellcheckingLanguageDialog(Dialog): def __init__(self, main_window, workspace): self.main_window = main_window self.workspace = workspace self.current_values = dict() def run(self): self.setup() response = self.view.run() if response == Gtk.ResponseType.OK: self.set_language() self.view.hide() del(self.view) def setup(self): self.view = Gspell.LanguageChooserDialog() self.view.set_language_code(self.workspace.spellchecking_language_code) self.view.set_modal(True) self.view.set_transient_for(self.main_window) self.headerbar = Gtk.HeaderBar() self.headerbar.set_title(_('Spellchecking Language')) self.headerbar.show_all() action_area = self.view.get_action_area() cancel_button = action_area.get_children()[0] select_button = action_area.get_children()[1] action_area.remove(cancel_button) action_area.remove(select_button) self.headerbar.pack_start(cancel_button) self.headerbar.pack_end(select_button) select_button.get_style_context().add_class('suggested-action') action_area.hide() self.view.set_titlebar(self.headerbar) def set_language(self): self.workspace.set_spellchecking_language(self.view.get_language_code()) Setzer-0.4.4/setzer/document/000077500000000000000000000000001420322575300161305ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/__init__.py000066400000000000000000000000001420322575300202270ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/autocomplete/000077500000000000000000000000001420322575300206315ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/autocomplete/__init__.py000066400000000000000000000000001420322575300227300ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/autocomplete/autocomplete.py000066400000000000000000000252551420322575300237150ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk import setzer.document.autocomplete.autocomplete_viewgtk as view import setzer.document.autocomplete.session.session_blank as session_blank import setzer.document.autocomplete.session.session_default as session_default import setzer.document.autocomplete.session.session_begin_end as session_begin_end from setzer.app.service_locator import ServiceLocator import setzer.helpers.timer as timer class Autocomplete(object): def __init__(self, document, document_view): self.document = document self.document_view = document_view self.main_window = ServiceLocator.get_main_window() self.font_manager = ServiceLocator.get_font_manager() self.font_manager.connect('font_string_changed', self.on_font_string_changed) self.view = view.DocumentAutocompleteView() self.mark_start = Gtk.TextMark.new('ac_session_start', True) self.mark_end = Gtk.TextMark.new('ac_session_end', False) self.matching_mark_start = Gtk.TextMark.new('ac_session_second_start', True) self.matching_mark_end = Gtk.TextMark.new('ac_session_second_end', False) self.provider = ServiceLocator.get_autocomplete_provider() self.blank_session = session_blank.SessionBlank(self, self.document) self.session = self.blank_session self.shortcutsbar_height = 37 self.cursor_offset = None char_width, line_height = self.font_manager.get_char_dimensions() self.view.scrolled_window.set_max_content_height(5 * line_height) self.view.scrolled_window.set_min_content_width(35 * char_width) self.focus_hide = False self.items = list() self.view.list.connect('row-activated', self.on_row_activated) self.view.list.connect('row-selected', self.on_row_selected) self.document.content.connect('text_inserted', self.on_text_inserted) self.document.content.connect('text_deleted', self.on_text_deleted) self.document.content.connect('buffer_changed', self.on_buffer_changed) self.document.content.connect('insert_mark_set', self.on_insert_mark_set) self.document.content.connect('insert_mark_deleted', self.on_insert_mark_deleted) self.document.view.scrolled_window.get_vadjustment().connect('value-changed', self.on_adjustment_value_changed) self.document.view.scrolled_window.get_hadjustment().connect('value-changed', self.on_adjustment_value_changed) self.document.view.source_view.connect('focus-out-event', self.on_focus_out) self.document.view.source_view.connect('focus-in-event', self.on_focus_in) def on_text_inserted(self, content, parameter): buffer, location_iter, text, text_length = parameter self.session.on_insert_text(buffer, location_iter, text, text_length) def on_text_deleted(self, content, parameter): buffer, start_iter, end_iter = parameter self.session.on_delete_range(buffer, start_iter, end_iter) def on_buffer_changed(self, content, buffer): self.update(True) def on_insert_mark_set(self, content): self.update(False) def on_insert_mark_deleted(self, content): self.update(False) def on_font_string_changed(self, font_manager): char_width, line_height = self.font_manager.get_char_dimensions() self.view.scrolled_window.set_max_content_height(5 * line_height) self.view.scrolled_window.set_min_content_width(35 * char_width) def on_adjustment_value_changed(self, adjustment, user_data=None): self.update_visibility() return False def on_row_activated(self, box, row, user_data=None): self.document_view.source_view.grab_focus() self.submit() def on_row_selected(self, box, row, user_data=None): char_width, line_height = self.font_manager.get_char_dimensions() if row != None: command = row.get_child().command scroll_min = row.get_index() * line_height scroll_max = scroll_min - 4 * line_height current_offset = self.view.scrolled_window.get_vadjustment().get_value() if scroll_min < current_offset: self.view.scrolled_window.get_vadjustment().set_value(scroll_min) elif scroll_max > current_offset: self.view.scrolled_window.get_vadjustment().set_value(scroll_max) self.view.infobox.set_text(command['description']) def on_focus_out(self, widget, event, user_data=None): self.focus_hide = True self.update_visibility() def on_focus_in(self, widget, event, user_data=None): self.focus_hide = False self.update_visibility() def on_keypress(self, event): ''' returns whether the keypress has been handled. ''' return self.session.on_keypress(event) def submit(self): self.session.submit() def update(self, can_activate=False): if self.is_active(): self.session.update(can_activate) if not self.is_active(): line = self.document.content.get_line_at_cursor() offset = self.document.content.get_cursor_line_offset() line = line[:offset] + '%•%' + line[offset:] match = ServiceLocator.get_regex_object(r'.*\\(begin|end)\{((?:[^\{\[\(])*)%•%((?:[^\{\[\(])*)\}.*').match(line) if match: word_offset = self.document.content.get_cursor_offset() - len(match.group(2)) word_len = len(match.group(2)) + len(match.group(3)) self.start_session(session_begin_end.SessionBeginEnd(self, word_offset, word_len)) self.session.update(can_activate) return current_word = self.document.content.get_latex_command_at_cursor() if can_activate: items = self.provider.get_items(current_word) if not items: return for item in items: if item['command'] == current_word: return self.start_session(session_default.SessionDefault(self, self.document)) def update_visibility(self): if self.session.will_show and self.position_is_visible() and not self.focus_hide and len(self.items) > 0: self.view.show_all() else: self.view.hide() #@timer.timer def populate(self, offset): self.view.empty_list() for command in reversed(self.items): item = view.DocumentAutocompleteItem(command, offset) self.view.prepend(item) if len(self.items) > 0: self.view.select_first() def position_is_visible(self): line_height = self.font_manager.get_line_height() height = min(len(self.items), 5) * line_height + 20 insert_iter = self.document.content.source_buffer.get_iter_at_mark(self.document.content.source_buffer.get_insert()) iter_location = self.document_view.source_view.get_iter_location(insert_iter) start_iter = insert_iter.copy() start_iter.backward_chars(self.session.get_offset()) start_iter_location = self.document_view.source_view.get_iter_location(start_iter) gutter = self.document_view.source_view.get_window(Gtk.TextWindowType.LEFT) if gutter != None: gutter_width = gutter.get_width() else: gutter_width = 0 x_offset = - self.document_view.scrolled_window.get_hadjustment().get_value() y_offset = - self.document_view.scrolled_window.get_vadjustment().get_value() x_position = x_offset + start_iter_location.x - 2 + gutter_width y_position = y_offset + iter_location.y + line_height full_height = 5 * line_height + 20 if y_position >= line_height - 1 and y_position <= self.document_view.scrolled_window.get_allocated_height() - full_height - line_height: self.view.set_margin_top(y_position + self.shortcutsbar_height) else: self.view.set_margin_top(y_position + self.shortcutsbar_height - height - line_height) char_width, line_height = self.font_manager.get_char_dimensions() width = 25 * char_width max_width = 35 * char_width while x_position <= self.main_window.preview_paned.get_allocated_width() - width - char_width: width += char_width if width == max_width: break if x_position >= 0 and x_position <= self.main_window.preview_paned.get_allocated_width() - width: self.view.set_margin_left(x_position) else: self.view.set_margin_left(self.main_window.preview_paned.get_allocated_width() - width) self.view.scrolled_window.set_min_content_width(width) show_x = False show_y = False if y_position >= line_height - 1 and y_position <= self.document_view.scrolled_window.get_allocated_height() - full_height - line_height: show_y = True elif y_position >= line_height - 1 and y_position <= self.document_view.scrolled_window.get_allocated_height(): show_y = True else: show_y = False if x_position >= 0 and x_position <= self.main_window.preview_paned.get_allocated_width() - width: show_x = True elif x_position >= 0 and x_position <= self.main_window.preview_paned.get_allocated_width(): show_x = True else: show_x = False return (show_x and show_y) def cursor_moved(self): cursor_offset = self.document.content.get_cursor_offset() if self.cursor_offset != cursor_offset: self.cursor_offset = cursor_offset return True return False def start_session(self, session): self.session = session self.session.update() def end_session(self): self.session = self.blank_session self.session.update() def is_active(self): return self.session.is_active() def is_visible(self): return self.session.will_show and self.position_is_visible() and not self.focus_hide Setzer-0.4.4/setzer/document/autocomplete/autocomplete_viewgtk.py000066400000000000000000000076531420322575300254570ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk, Gio, GLib, Pango class DocumentAutocompleteView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('autocomplete') self.set_halign(Gtk.Align.START) self.set_valign(Gtk.Align.START) self.list = Gtk.ListBox() self.list.set_selection_mode(Gtk.SelectionMode.SINGLE) self.list.set_can_focus(False) self.items = list() self.selected_index = 0 self.scrolled_window = Gtk.ScrolledWindow() self.scrolled_window.set_propagate_natural_height(True) self.scrolled_window.add(self.list) self.infobox = Gtk.Label('') self.infobox.set_xalign(0) self.infobox.set_ellipsize(Pango.EllipsizeMode.END) self.infobox.set_max_width_chars(30) self.infobox.get_style_context().add_class('infobox') self.pack_start(self.scrolled_window, True, True, 0) self.pack_start(self.infobox, False, False, 0) self.list.show_all() self.infobox.show_all() def empty_list(self): self.items = list() self.list.foreach(self.list.remove) def prepend(self, item): self.items.insert(0, item) self.list.prepend(item) def select_next(self): if self.selected_index >= len(self.items) - 1: self.select_first() else: self.selected_index += 1 row = self.list.get_row_at_index(self.selected_index) self.list.select_row(row) def select_previous(self): if self.selected_index == 0: self.select_last() else: self.selected_index -= 1 row = self.list.get_row_at_index(self.selected_index) self.list.select_row(row) def select_first(self): row = self.list.get_row_at_index(0) self.list.select_row(row) self.selected_index = 0 def select_last(self): row = self.list.get_row_at_index(len(self.items) - 1) self.list.select_row(row) self.selected_index = len(self.items) - 1 def do_get_request_mode(self): return Gtk.SizeRequestMode.CONSTANT_SIZE class DocumentAutocompleteItem(Gtk.HBox): def __init__(self, command, offset=0): Gtk.HBox.__init__(self) self.set_halign(Gtk.Align.START) self.set_valign(Gtk.Align.START) self.command = command if offset != 0: command_text = '' + GLib.markup_escape_text(command['command'])[:offset] + '' command_text += GLib.markup_escape_text(command['command'])[offset:] else: command_text = GLib.markup_escape_text(command['command']) self.dotlabels = filter(None, command['dotlabels'].split('###')) for dotlabel in self.dotlabels: command_text = command_text.replace('•', '' + GLib.markup_escape_text(dotlabel) + '', 1) self.label = Gtk.Label() self.label.set_markup(command_text) self.label.get_style_context().add_class('monospace') self.pack_start(self.label, True, True, 0) self.show_all() def do_get_request_mode(self): return Gtk.SizeRequestMode.CONSTANT_SIZE Setzer-0.4.4/setzer/document/autocomplete/session/000077500000000000000000000000001420322575300223145ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/autocomplete/session/__init__.py000066400000000000000000000000001420322575300244130ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/autocomplete/session/session_begin_end.py000066400000000000000000000307651420322575300263560ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import GLib from gi.repository import Gdk from gi.repository import Gtk from setzer.app.service_locator import ServiceLocator class SessionBeginEnd(object): def __init__(self, autocomplete, word_offset, word_len): self.autocomplete = autocomplete self.will_show = False self.last_tabbed_command = None self.current_word = "" self.source_buffer = self.autocomplete.document.content.source_buffer self.delete_marks() start_iter = self.source_buffer.get_iter_at_offset(word_offset) end_iter = self.source_buffer.get_iter_at_offset(word_offset + word_len) self.source_buffer.add_mark(self.autocomplete.mark_start, start_iter) self.source_buffer.add_mark(self.autocomplete.mark_end, end_iter) matching_env_offset = self.get_matching_begin_end_offset(word_offset) if matching_env_offset != None: self.has_matching_block = True matching_start_iter = self.source_buffer.get_iter_at_offset(matching_env_offset) matching_end_iter = self.source_buffer.get_iter_at_offset(matching_env_offset + word_len) self.source_buffer.add_mark(self.autocomplete.matching_mark_start, matching_start_iter) self.source_buffer.add_mark(self.autocomplete.matching_mark_end, matching_end_iter) else: self.has_matching_block = False def get_matching_begin_end_offset(self, orig_offset): blocks = self.autocomplete.document.content.get_blocks() for block in blocks: if block[0] == orig_offset - 7: return None if block[1] == None else block[1] + 5 elif block[1] == orig_offset - 5: return None if block[0] == None else block[0] + 7 return None def on_insert_text(self, buffer, location_iter, text, text_length): location_offset = location_iter.get_offset() start_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_start).get_offset() end_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_end).get_offset() if location_offset >= start_offset and location_offset <= end_offset: self.source_buffer.begin_user_action() GLib.idle_add(self.update_matching_block) def on_delete_range(self, buffer, start_iter, end_iter): delete_start_offset = start_iter.get_offset() delete_end_offset = end_iter.get_offset() start_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_start).get_offset() end_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_end).get_offset() if delete_start_offset >= start_offset and delete_end_offset <= end_offset: self.source_buffer.begin_user_action() GLib.idle_add(self.update_matching_block) elif delete_start_offset >= start_offset and delete_start_offset <= end_offset: self.cancel() elif delete_end_offset >= start_offset and delete_end_offset <= end_offset: self.cancel() def on_keypress(self, event): ''' returns whether the keypress has been handled. ''' modifiers = Gtk.accelerator_get_default_mod_mask() tab_keyvals = [Gdk.keyval_from_name('Tab'), Gdk.keyval_from_name('ISO_Left_Tab')] if event.keyval in tab_keyvals: if event.state & modifiers == 0: return self.on_tab_press() if not self.autocomplete.is_visible(): return False if event.keyval == Gdk.keyval_from_name('Down'): if event.state & modifiers == 0: self.autocomplete.view.select_next() return True if event.keyval == Gdk.keyval_from_name('Up'): if event.state & modifiers == 0: self.autocomplete.view.select_previous() return True if event.keyval == Gdk.keyval_from_name('Escape'): if event.state & modifiers == 0: self.cancel() return True if event.keyval == Gdk.keyval_from_name('Return'): if event.state & modifiers == 0: self.submit() return True return False def update_matching_block(self): if not self.autocomplete.mark_start.get_deleted() and not self.autocomplete.mark_end.get_deleted() and not self.autocomplete.matching_mark_start.get_deleted() and not self.autocomplete.matching_mark_end.get_deleted(): start_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_start).get_offset() start_iter = self.source_buffer.get_iter_at_offset(start_offset) end_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_end).get_offset() end_iter = self.source_buffer.get_iter_at_offset(end_offset) full_word = self.source_buffer.get_text(start_iter, end_iter, False) start_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.matching_mark_start).get_offset() end_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.matching_mark_end).get_offset() start_iter = self.source_buffer.get_iter_at_offset(start_offset) end_iter = self.source_buffer.get_iter_at_offset(end_offset) matching_word = self.source_buffer.get_text(start_iter, end_iter, False) if matching_word != full_word: self.autocomplete.document.content.replace_range_no_user_action(start_iter, end_iter, full_word, indent_lines=False, select_dot=False) self.source_buffer.end_user_action() def on_tab_press(self): if not self.autocomplete.is_visible(): return False if len(self.autocomplete.items) == 0: return False elif len(self.autocomplete.items) == 1: self.submit() return True else: self.update_current_word() i = self.get_number_of_matching_letters_on_tabpress(self.current_word, 0) command = self.autocomplete.view.list.get_selected_row().get_child().command if len(command['command']) == len(self.current_word) + i: self.last_tabbed_command = None self.submit() return True else: if i >= 1: text = (command['command'])[len(self.current_word):len(self.current_word) + i] self.last_tabbed_command = command['command'][1:] self.autocomplete.document.content.insert_text_at_cursor(text, indent_lines=False, select_dot=False) self.autocomplete.document.content.scroll_cursor_onscreen() return True else: current_word = (command['command'])[:len(self.current_word) + 1] i = self.get_number_of_matching_letters_on_tabpress(current_word, 0) if len(command['command']) == len(current_word) + i: self.last_tabbed_command = None self.submit() return True else: text = (command['command'])[len(self.current_word):len(current_word) + i] self.last_tabbed_command = command['command'] self.autocomplete.document.content.insert_text_at_cursor(text, indent_lines=False, select_dot=False) self.autocomplete.document.content.scroll_cursor_onscreen() return True def get_number_of_matching_letters_on_tabpress(self, current_word, offset): items = self.get_items(current_word) i = offset letter_ok = True while letter_ok and i < 100: testletter = None for item in items: item['command'] = item['command'] letter = item['command'][len(current_word) + i:len(current_word) + i + 1].lower() if testletter == None: testletter = letter if testletter != letter or len(letter) == 0: letter_ok = False i -= 1 break i += 1 return i def update(self, can_activate=False): line = self.autocomplete.document.content.get_line_at_cursor() offset = self.autocomplete.document.content.get_cursor_line_offset() line = line[:offset] + '%•%' + line[offset:] match = ServiceLocator.get_regex_object(r'.*\\(begin|end)\{((?:[^\{\[\(])*)%•%((?:[^\{\[\(])*)\}.*').match(line) if not match: self.cancel() return if self.autocomplete.matching_mark_start.get_deleted() or self.autocomplete.matching_mark_end.get_deleted(): self.has_matching_block = False cursor_offset = self.autocomplete.document.content.get_cursor_offset() start_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_start).get_offset() end_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_end).get_offset() if cursor_offset < start_offset: self.cancel() return if cursor_offset > end_offset: self.cancel() return self.update_current_word() self.autocomplete.items = self.get_items() if len(self.autocomplete.items) == 1 and len(self.current_word) == len(self.autocomplete.items[0]['command']): self.will_show = False else: items_cond = len(self.autocomplete.items) > 0 and len(self.current_word) != len(self.autocomplete.items[0]['command']) self.will_show = self.will_show or (can_activate and items_cond) self.autocomplete.populate(len(self.current_word)) self.autocomplete.update_visibility() def get_items(self, word=None): if word == None: word = self.current_word return self.autocomplete.provider.get_begin_end_items(word, self.last_tabbed_command) def get_offset(self): self.update_current_word() return len(self.current_word) def update_current_word(self): cursor_offset = self.autocomplete.document.content.get_cursor_offset() start_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_start).get_offset() start_iter = self.source_buffer.get_iter_at_offset(start_offset) cursor_iter = self.source_buffer.get_iter_at_offset(cursor_offset) current_word = self.source_buffer.get_text(start_iter, cursor_iter, False) if current_word != self.current_word: self.current_word = current_word def submit(self): row = self.autocomplete.view.list.get_selected_row() text = row.get_child().command['command'] start_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_start).get_offset() end_offset = self.source_buffer.get_iter_at_mark(self.autocomplete.mark_end).get_offset() self.autocomplete.document.content.replace_range_by_offset_and_length(start_offset, end_offset - start_offset, text, indent_lines=False, select_dot=False) self.will_show = False self.update() def cancel(self): self.delete_marks() self.autocomplete.end_session() def delete_marks(self): if not self.autocomplete.mark_start.get_deleted(): self.source_buffer.delete_mark(self.autocomplete.mark_start) if not self.autocomplete.mark_end.get_deleted(): self.source_buffer.delete_mark(self.autocomplete.mark_end) if not self.autocomplete.matching_mark_start.get_deleted(): self.source_buffer.delete_mark(self.autocomplete.matching_mark_start) if not self.autocomplete.matching_mark_end.get_deleted(): self.source_buffer.delete_mark(self.autocomplete.matching_mark_end) def is_active(self): return True Setzer-0.4.4/setzer/document/autocomplete/session/session_blank.py000066400000000000000000000060421420322575300255220ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gdk from gi.repository import Gtk class SessionBlank(object): def __init__(self, autocomplete, document): self.autocomplete = autocomplete self.document = document self.will_show = False def on_insert_text(self, buffer, location_iter, text, text_length): pass def on_delete_range(self, buffer, start_iter, end_iter): pass def on_keypress(self, event): ''' returns whether the keypress has been handled. ''' modifiers = Gtk.accelerator_get_default_mod_mask() tab_keyvals = [Gdk.keyval_from_name('Tab'), Gdk.keyval_from_name('ISO_Left_Tab')] if event.keyval in tab_keyvals: if event.state & modifiers == 0: return self.on_tab_press() if event.keyval == Gdk.keyval_from_name('backslash') and event.state & modifiers == 0: char = self.document.content.get_char_at_cursor() if char.isalpha(): self.document.content.add_backslash_with_space() return True return False bracket_vals = [Gdk.keyval_from_name('parenleft'), Gdk.keyval_from_name('bracketleft'), Gdk.keyval_from_name('braceleft')] if event.keyval in bracket_vals and not self.document.autocomplete.is_active(): if event.keyval == Gdk.keyval_from_name('bracketleft'): self.document.content.autoadd_latex_brackets('[') if event.keyval == Gdk.keyval_from_name('braceleft'): self.document.content.autoadd_latex_brackets('{') if event.keyval == Gdk.keyval_from_name('parenleft'): self.document.content.autoadd_latex_brackets('(') return True return False def on_tab_press(self): if self.autocomplete.document.cursor_inside_latex_command_or_at_end(): self.autocomplete.update(True) if self.autocomplete.document.cursor_at_latex_command_end(): return self.autocomplete.is_active() else: return True return False def update(self, can_show=False): self.autocomplete.update_visibility() def get_offset(self): return 0 def submit(self): pass def cancel(self): pass def is_active(self): return False Setzer-0.4.4/setzer/document/autocomplete/session/session_default.py000066400000000000000000000352611420322575300260640ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gdk from gi.repository import Gtk from setzer.app.service_locator import ServiceLocator class SessionDefault(object): def __init__(self, autocomplete, document): self.autocomplete = autocomplete self.document = document self.will_show = True self.last_tabbed_command = None self.current_word = "" self.current_word_offset = self.document.content.get_latex_command_at_cursor_offset() def on_insert_text(self, buffer, location_iter, text, text_length): pass def on_delete_range(self, buffer, start_iter, end_iter): pass def on_keypress(self, event): ''' returns whether the keypress has been handled. ''' modifiers = Gtk.accelerator_get_default_mod_mask() tab_keyvals = [Gdk.keyval_from_name('Tab'), Gdk.keyval_from_name('ISO_Left_Tab')] if event.keyval in tab_keyvals: if event.state & modifiers == 0: return self.on_tab_press() if not self.autocomplete.is_visible(): return False if event.keyval == Gdk.keyval_from_name('Down'): if event.state & modifiers == 0: self.autocomplete.view.select_next() return True if event.keyval == Gdk.keyval_from_name('Up'): if event.state & modifiers == 0: self.autocomplete.view.select_previous() return True if event.keyval == Gdk.keyval_from_name('Escape'): if event.state & modifiers == 0: self.cancel() return True if event.keyval == Gdk.keyval_from_name('Return'): if event.state & modifiers == 0: self.submit() return True return False def on_tab_press(self): if not self.autocomplete.is_visible(): return False if len(self.autocomplete.items) == 1: self.submit() return True else: self.current_word = self.document.content.get_latex_command_at_cursor() i = self.get_number_of_matching_letters_on_tabpress(self.current_word, 0) command = self.autocomplete.view.list.get_selected_row().get_child().command if len(command['command']) == len(self.current_word) + i: self.last_tabbed_command = None self.submit() return True else: if i >= 1: text = (command['command'])[:len(self.current_word) + i] self.last_tabbed_command = command['command'][1:] self.document.content.replace_latex_command_at_cursor(text, command['dotlabels']) return True else: current_word = (command['command'])[:len(self.current_word) + 1] i = self.get_number_of_matching_letters_on_tabpress(current_word, 0) if len(command['command']) == len(current_word) + i: self.last_tabbed_command = None self.submit() return True else: text = (command['command'])[:len(current_word) + i] self.last_tabbed_command = command['command'] self.document.content.replace_latex_command_at_cursor(text, command['dotlabels']) return True def get_number_of_matching_letters_on_tabpress(self, current_word, offset): items = self.autocomplete.provider.get_items(current_word) i = offset letter_ok = True while letter_ok and i < 100: testletter = None for item in items: item['command'] = item['command'] letter = item['command'][len(current_word) + i:len(current_word) + i + 1].lower() if testletter == None: testletter = letter if testletter != letter or len(letter) == 0: letter_ok = False i -= 1 break i += 1 return i def update(self, can_show=False): if not self.current_word_changed_or_is_none(): self.current_word = self.document.content.get_latex_command_at_cursor() self.autocomplete.items = self.autocomplete.provider.get_items_for_completion_window(self.current_word, self.last_tabbed_command) if len(self.autocomplete.items) > 0: if self.autocomplete.cursor_moved(): for item in self.autocomplete.items: item['command'] = item['command'] self.autocomplete.populate(len(self.current_word)) self.autocomplete.update_visibility() else: self.cancel() else: self.cancel() def get_offset(self): self.current_word = self.document.content.get_latex_command_at_cursor() return len(self.current_word) def current_word_changed_or_is_none(self): current_word_offset = self.document.content.get_latex_command_at_cursor_offset() if current_word_offset != self.current_word_offset: return True return (current_word_offset == None) def submit(self): self.autocomplete.end_session() row = self.autocomplete.view.list.get_selected_row() command = row.get_child().command if command['command'].startswith('\\begin'): self.insert_begin_end(command) else: self.insert_normal_command(command) def insert_begin_end(self, command): text = command['command'] buffer = self.document.content.source_buffer insert_iter = buffer.get_iter_at_mark(buffer.get_insert()) current_word = self.document.content.get_latex_command_at_cursor() start_iter = insert_iter.copy() start_iter.backward_chars(len(current_word)) replace_previous_command_data = self.insert_begin_end_check_replace(insert_iter, text) if replace_previous_command_data[0]: self.insert_begin_end_replace(start_iter, insert_iter, replace_previous_command_data) else: self.document.content.replace_latex_command_at_cursor(text, command['dotlabels'], is_full_command=True) def insert_begin_end_check_replace(self, insert_iter, text): line_part = self.document.content.get_line(insert_iter.get_line())[insert_iter.get_line_offset():] line_regex = ServiceLocator.get_regex_object(r'(\w*(?:\*){0,1})\{([^\{\[\|\(]+)\}') line_match = line_regex.match(line_part) if line_match: document_text = self.document.content.get_text_after_offset(insert_iter.get_offset() + 1) if self.get_end_match_object(document_text, line_match.group(2)): return (line_match, text) return (None, text) def insert_begin_end_replace(self, start_iter_begin, insert_iter, replace_previous_command_data): text = replace_previous_command_data[1] match_object = replace_previous_command_data[0] self.document.content.source_buffer.begin_user_action() end_iter_begin = insert_iter.copy() end_iter_begin.forward_chars(match_object.end()) start_iter_offset = start_iter_begin.get_offset() self.document.content.replace_range_no_user_action(start_iter_begin, end_iter_begin, text, indent_lines=False, select_dot=True) end_iter_offset = start_iter_offset + len(text) document_text = self.document.content.get_text_after_offset(end_iter_offset) environment_name = ServiceLocator.get_regex_object(r'(\w*(?:\*){0,1})\{([^\{\[\|\(]+)\}').match(match_object.group(0)).group(2) end_match_object = self.get_end_match_object(document_text, environment_name) if end_match_object != None: start_iter_begin = self.document.content.source_buffer.get_iter_at_offset(end_iter_offset) start_iter_end = start_iter_begin.copy() start_iter_end.forward_chars(end_match_object.start()) end_iter_end = start_iter_begin.copy() end_iter_end.forward_chars(end_match_object.end()) end_command = text.replace('\\begin', '\\end') end_command_bracket_position = end_command.find('}') if end_command_bracket_position: end_command = end_command[:end_command_bracket_position + 1] self.document.content.replace_range_no_user_action(start_iter_end, end_iter_end, end_command, indent_lines=False, select_dot=False) self.document.content.source_buffer.end_user_action() def get_end_match_object(self, text, environment_name): count = 0 end_match_object = None for match in ServiceLocator.get_regex_object(r'\\(begin|end)\{' + environment_name + r'\}').finditer(text): if match.group(1) == 'begin': count += 1 elif match.group(1) == 'end': if count == 0: end_match_object = match break else: count -= 1 return end_match_object def insert_normal_command(self, command): text = command['command'] replacement_pattern = self.get_replacement_pattern(text) if replacement_pattern == None: self.document.content.replace_latex_command_at_cursor(text, command['dotlabels'], is_full_command=True) else: command_regex = ServiceLocator.get_regex_object(r'.*' + replacement_pattern[1]) if command_regex.match(text): self.insert_final_replace(text, replacement_pattern) else: self.document.content.replace_latex_command_at_cursor(text, command['dotlabels'], is_full_command=True) def get_replacement_pattern(self, command): buffer = self.document.content.source_buffer insert_iter = buffer.get_iter_at_mark(buffer.get_insert()) line_part = self.document.content.get_line(insert_iter.get_line())[insert_iter.get_line_offset():] command_bracket_count = self.get_command_bracket_count(command) matches_group = list() line_regex = ServiceLocator.get_regex_object(r'((?:\\){0,1}\w*(?:\*){0,1})(?:\{([^\{\[\|\(]+)\}|\[([^\{\[\|\(\\]+)\]|\|([^\{\[\|\(\\]+)\||\(([^\{\[\|\(\\]+)\))*') line_match = line_regex.match(line_part) if line_match == None: return None if not line_regex.fullmatch(command): return None line_part = line_part[:line_match.end()] line_regex = ServiceLocator.get_regex_object(r'(\w*)|\{([^\{\[\|\(]+)\}|\[([^\{\[\|\(\\]+)\]|\|([^\{\[\|\(\\]+)\||\(([^\{\[\|\(\\]+)\)') bracket_count = 0 command_regex_pattern = r'(\w*(?:\*){0,1})' for match in line_regex.finditer(line_part): if match.group(0).startswith('{') and bracket_count < command_bracket_count: command_regex_pattern += r'\{([^\{\[\|\(]+)\}' bracket_count += 1 if match.group(0).startswith('[') and bracket_count < command_bracket_count: command_regex_pattern += r'\[([^\{\[\|\(]+)\]' bracket_count += 1 if match.group(0).startswith('|') and bracket_count < command_bracket_count: command_regex_pattern += r'\|([^\{\[\|\(]+)\|' bracket_count += 1 if match.group(0).startswith('(') and bracket_count < command_bracket_count: command_regex_pattern += r'\(([^\{\[\|\(]+)\)' bracket_count += 1 line_match = ServiceLocator.get_regex_object(command_regex_pattern).match(line_part) if line_match == None: return None return (line_match, command_regex_pattern) def get_command_bracket_count(self, command): count = 0 line_regex = ServiceLocator.get_regex_object(r'\{([^\{\[\|\(]+)\}|\[([^\{\[\|\(]+)\]|\|([^\{\[\|\(]+)\||\(([^\{\[\|\(]+)\)') for match in line_regex.finditer(command): count += 1 return count def insert_final_replace(self, command, replacement_pattern): match_object = replacement_pattern[0] text = '' command_regex = ServiceLocator.get_regex_object(r'(?:^\\(\w+(?:\*){0,1}))|\{([^\{\[\|\(]+)\}|\[([^\{\[\|\(]+)\]|\|([^\{\[\|\(]+)\||\(([^\{\[\|\(]+)\)') comma_regex = ServiceLocator.get_regex_object(r'•(\,•)*') count = 1 for match in command_regex.finditer(command): if match.group(0).startswith('\\'): text += '\\' + match.group(1) else: if match.group(0).startswith('{'): inner_text = match.group(2) elif match.group(0).startswith('['): inner_text = match.group(3) elif match.group(0).startswith('|'): inner_text = match.group(4) elif match.group(0).startswith('('): inner_text = match.group(5) if comma_regex.fullmatch(inner_text) and len(match_object.groups()) >= count: for prev_text in match_object.group(count).split(','): inner_text = inner_text.replace('•', prev_text, 1) if match.group(0).startswith('{'): text += '{' + inner_text + '}' if match.group(0).startswith('['): text += '[' + inner_text + ']' if match.group(0).startswith('|'): text += '|' + inner_text + '|' if match.group(0).startswith('('): text += '(' + inner_text + ')' count += 1 current_word = self.document.content.get_latex_command_at_cursor() offset = self.document.content.get_cursor_offset() - len(current_word) length = len(current_word) + match_object.end() self.document.content.replace_range_by_offset_and_length(offset, length, text, indent_lines=True, select_dot=True) def cancel(self): self.autocomplete.end_session() def is_active(self): return True Setzer-0.4.4/setzer/document/build_system/000077500000000000000000000000001420322575300206335ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_system/__init__.py000066400000000000000000000000001420322575300227320ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_system/build_system.py000066400000000000000000000361251420322575300237170ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi from gi.repository import GObject import _thread as thread, queue import time from setzer.app.service_locator import ServiceLocator import setzer.document.build_system.builder.builder_build_latex as builder_build_latex import setzer.document.build_system.builder.builder_build_bibtex as builder_build_bibtex import setzer.document.build_system.builder.builder_build_biber as builder_build_biber import setzer.document.build_system.builder.builder_build_makeindex as builder_build_makeindex import setzer.document.build_system.builder.builder_build_glossaries as builder_build_glossaries import setzer.document.build_system.builder.builder_forward_sync as builder_forward_sync import setzer.document.build_system.builder.builder_backward_sync as builder_backward_sync import setzer.document.build_system.query.query as query from setzer.helpers.observable import Observable class BuildSystem(Observable): def __init__(self, document): Observable.__init__(self) self.document = document self.settings = ServiceLocator.get_settings() self.active_query = None # possible states: idle, ready_for_building # building_in_progress, building_to_stop self.build_state = 'idle' # possible values: build, forward_sync, build_and_forward_sync self.build_mode = 'build_and_forward_sync' self.document_has_been_built = False self.build_time = None self.last_build_start_time = None self.has_synctex_file = False self.backward_sync_data = None self.forward_sync_arguments = None self.can_sync = False self.update_can_sync() self.build_log_data = {'items': list(), 'error_count': 0, 'warning_count': 0, 'badbox_count': 0} self.builders = dict() self.builders['build_latex'] = builder_build_latex.BuilderBuildLaTeX() self.builders['build_bibtex'] = builder_build_bibtex.BuilderBuildBibTeX() self.builders['build_biber'] = builder_build_biber.BuilderBuildBiber() self.builders['build_makeindex'] = builder_build_makeindex.BuilderBuildMakeindex() self.builders['build_glossaries'] = builder_build_glossaries.BuilderBuildGlossaries() self.builders['forward_sync'] = builder_forward_sync.BuilderForwardSync() self.builders['backward_sync'] = builder_backward_sync.BuilderBackwardSync() GObject.timeout_add(50, self.results_loop) def change_build_state(self, state): self.build_state = state if self.build_mode in ['build', 'build_and_forward_sync']: if state == 'building_in_progress': self.last_build_start_time = time.time() elif state == 'building_to_stop': pass elif state == 'idle': pass self.add_change_code('build_state_change', self.build_state) def get_build_state(self): return self.build_state def show_build_state(self, message): self.add_change_code('build_state', message) def set_build_mode(self, mode): self.build_mode = mode def get_build_mode(self): return self.build_mode def set_has_synctex_file(self, has_synctex_file): self.has_synctex_file = has_synctex_file self.update_can_sync() def update_can_sync(self): if self.has_synctex_file and self.document.preview.pdf_loaded: self.can_sync = True else: self.can_sync = False self.add_change_code('can_sync_changed', self.can_sync) def forward_sync(self, active_document): self.forward_sync_arguments = dict() self.forward_sync_arguments['filename'] = active_document.get_filename() self.forward_sync_arguments['line'] = active_document.content.get_cursor_line_number() + 1 self.forward_sync_arguments['line_offset'] = active_document.content.get_cursor_line_offset() + 1 if self.can_sync: self.set_build_mode('forward_sync') self.start_building() def backward_sync(self, page, x, y, word, context): if self.can_sync: self.backward_sync_data = {'page': page, 'x': x, 'y': y, 'word': word, 'context': context} self.set_build_mode('backward_sync') self.start_building() def build_and_forward_sync(self, active_document): self.forward_sync_arguments = dict() self.forward_sync_arguments['filename'] = active_document.get_filename() self.forward_sync_arguments['line'] = active_document.content.get_cursor_line_number() + 1 self.forward_sync_arguments['line_offset'] = active_document.content.get_cursor_line_offset() + 1 self.set_build_mode('build_and_forward_sync') self.start_building() def set_build_log_items(self, log_items): build_log_items = list() error_count = 0 warning_count = 0 badbox_count = 0 def add_items(items_list, new_items, filename, item_type): for item in new_items[item_type.lower()]: items_list.append((item_type, item[0], filename, item[1], item[2])) for item_type in ['Error', 'Warning', 'Badbox']: if self.document.filename in log_items: add_items(build_log_items, log_items[self.document.filename], self.document.filename, item_type) for filename, items in log_items.items(): if item_type == 'Error': error_count += len(items['error']) if item_type == 'Warning': warning_count += len(items['warning']) if item_type == 'Badbox': badbox_count += len(items['badbox']) if filename != self.document.filename: add_items(build_log_items, log_items[filename], filename, item_type) self.build_log_data = {'items': build_log_items, 'error_count': error_count, 'warning_count': warning_count, 'badbox_count': badbox_count} def invalidate_build_log(self): self.add_change_code('build_log_update') def get_error_count(self): return self.build_log_data['error_count'] def get_warning_count(self): return self.build_log_data['warning_count'] def get_badbox_count(self): return self.build_log_data['badbox_count'] def results_loop(self): if self.active_query != None: if self.active_query.is_done(): build_result = self.active_query.get_build_result() forward_sync_result = self.active_query.get_forward_sync_result() backward_sync_result = self.active_query.get_backward_sync_result() if forward_sync_result != None or backward_sync_result != None or build_result != None: self.parse_result({'build': build_result, 'forward_sync': forward_sync_result, 'backward_sync': backward_sync_result}) self.active_query = None return True def parse_result(self, result_blob): if result_blob['build'] != None or result_blob['forward_sync'] != None: if result_blob['build'] != None: try: self.document.preview.set_pdf_filename(result_blob['build']['pdf_filename']) except KeyError: pass self.document.add_change_code('pdf_updated') if result_blob['forward_sync'] != None: self.document.preview.set_synctex_rectangles(result_blob['forward_sync']) self.show_build_state('') if result_blob['build'] != None: build_blob = result_blob['build'] if build_blob['error'] == 'interpreter_missing': self.show_build_state('') self.change_build_state('idle') if DialogLocator.get_dialog('interpreter_missing').run(build_blob['error_arg']): DialogLocator.get_dialog('preferences').run() return if build_blob['error'] == 'interpreter_not_working': self.show_build_state('') self.change_build_state('idle') if DialogLocator.get_dialog('building_failed').run(build_blob['error_arg']): DialogLocator.get_dialog('preferences').run() return build_blob['log_messages']['BibTeX'] = build_blob['bibtex_log_messages'] self.set_build_log_items(build_blob['log_messages']) self.build_time = time.time() - self.last_build_start_time error_count = self.get_error_count() if error_count > 0: error_color_rgba = ServiceLocator.get_color_manager().get_theme_color('error_color') error_color = '#' + format(int(error_color_rgba.red * 255), '02x') + format(int(error_color_rgba.green * 255), '02x') + format(int(error_color_rgba.blue * 255), '02x') str_errors = ngettext('Failed ({amount} error)!', 'Failed ({amount} errors)!', error_count) message = str_errors.format(color=error_color, amount=str(error_count)) self.show_build_state(message) else: self.show_build_state(_('Success!')) self.set_has_synctex_file(build_blob['has_synctex_file']) self.document_has_been_built = True elif result_blob['backward_sync'] != None: if not self.document.root_is_set: if result_blob['backward_sync']['filename'] == self.document.get_filename(): self.document.content.set_synctex_position(result_blob['backward_sync']) self.document.content.scroll_cursor_onscreen() elif self.document.is_root: workspace = ServiceLocator.get_workspace() document = workspace.open_document_by_filename(result_blob['backward_sync']['filename']) if document != None: document.content.set_synctex_position(result_blob['backward_sync']) document.content.scroll_cursor_onscreen() self.change_build_state('idle') if result_blob['build'] != None: self.invalidate_build_log() def add_query(self, query): self.stop_building(notify=False) self.active_query = query thread.start_new_thread(self.execute_query, (query,)) self.change_build_state('building_in_progress') def execute_query(self, query): while len(query.jobs) > 0: if not query.force_building_to_stop: self.builders[query.jobs.pop(0)].run(query) query.mark_done() def start_building(self): if self.build_mode == 'forward_sync' and not self.has_synctex_file: return if self.build_mode == 'backward_sync' and self.backward_sync_data == None: return if self.document.filename == None: return self.build_time = None mode = self.get_build_mode() query_obj = query.Query(self.document.get_filename()[:]) if mode in ['forward_sync', 'build_and_forward_sync']: synctex_arguments = self.forward_sync_arguments if mode in ['build', 'build_and_forward_sync']: interpreter = self.settings.get_value('preferences', 'latex_interpreter') use_latexmk = self.settings.get_value('preferences', 'use_latexmk') build_option_system_commands = self.settings.get_value('preferences', 'build_option_system_commands') additional_arguments = '' lualatex_prefix = ' -' if interpreter == 'lualatex' else ' ' if build_option_system_commands == 'disable': additional_arguments += lualatex_prefix + '-no-shell-escape' elif build_option_system_commands == 'restricted': additional_arguments += lualatex_prefix + '-shell-restricted' elif build_option_system_commands == 'enable': additional_arguments += lualatex_prefix + '-shell-escape' text = self.document.content.get_all_text() do_cleanup = self.settings.get_value('preferences', 'cleanup_build_files') if mode == 'build': query_obj.jobs = ['build_latex'] query_obj.build_data['text'] = text query_obj.build_data['latex_interpreter'] = interpreter query_obj.build_data['use_latexmk'] = use_latexmk query_obj.build_data['additional_arguments'] = additional_arguments query_obj.build_data['do_cleanup'] = do_cleanup elif mode == 'forward_sync': query_obj.jobs = ['forward_sync'] query_obj.can_sync = True query_obj.forward_sync_data['filename'] = synctex_arguments['filename'] query_obj.forward_sync_data['line'] = synctex_arguments['line'] query_obj.forward_sync_data['line_offset'] = synctex_arguments['line_offset'] elif mode == 'backward_sync' and self.backward_sync_data != None: query_obj.jobs = ['backward_sync'] query_obj.can_sync = True query_obj.backward_sync_data['page'] = self.backward_sync_data['page'] query_obj.backward_sync_data['x'] = self.backward_sync_data['x'] query_obj.backward_sync_data['y'] = self.backward_sync_data['y'] query_obj.backward_sync_data['word'] = self.backward_sync_data['word'] query_obj.backward_sync_data['context'] = self.backward_sync_data['context'] else: query_obj.jobs = ['build_latex', 'forward_sync'] query_obj.build_data['text'] = text query_obj.build_data['latex_interpreter'] = interpreter query_obj.build_data['use_latexmk'] = use_latexmk query_obj.build_data['additional_arguments'] = additional_arguments query_obj.build_data['do_cleanup'] = do_cleanup query_obj.can_sync = False query_obj.forward_sync_data['filename'] = synctex_arguments['filename'] query_obj.forward_sync_data['line'] = synctex_arguments['line'] query_obj.forward_sync_data['line_offset'] = synctex_arguments['line_offset'] self.add_query(query_obj) def stop_building(self, notify=True): if self.active_query != None: self.active_query.jobs = [] self.active_query = None for builder in self.builders.values(): builder.stop_running() if notify: self.show_build_state('') self.change_build_state('idle') Setzer-0.4.4/setzer/document/build_system/builder/000077500000000000000000000000001420322575300222615ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_system/builder/__init__.py000066400000000000000000000000001420322575300243600ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_system/builder/builder_backward_sync.py000066400000000000000000000056551420322575300271660ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import base64 import subprocess import setzer.document.build_system.builder.builder_build as builder_build from setzer.app.service_locator import ServiceLocator class BuilderBackwardSync(builder_build.BuilderBuild): def __init__(self): builder_build.BuilderBuild.__init__(self) self.config_folder = ServiceLocator.get_config_folder() self.backward_synctex_regex = ServiceLocator.get_regex_object(r'\nOutput:.*\nInput:(.*\.tex)\nLine:([0-9]+)\nColumn:(?:[0-9]|-)+\nOffset:(?:[0-9]|-)+\nContext:.*\n') self.process = None def run(self, query): tex_filename = query.tex_filename if not query.can_sync: query.backward_sync_result = None return synctex_folder = self.config_folder + '/' + base64.urlsafe_b64encode(str.encode(query.tex_filename)).decode() arguments = ['synctex', 'edit', '-o'] arguments.append(str(query.backward_sync_data['page']) + ':' + str(query.backward_sync_data['x']) + ':' + str(query.backward_sync_data['y']) + ':' + query.tex_filename[:-3] + 'pdf') arguments.append('-d') arguments.append(synctex_folder) try: self.process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE) except FileNotFoundError: self.cleanup_files(query) self.throw_build_error(query, 'interpreter_not_working', 'synctex missing') return self.process.wait() result = None if self.process != None: raw = self.process.communicate()[0].decode('utf-8') self.process = None match = self.backward_synctex_regex.search(raw) if match != None: result = dict() result['filename'] = match.group(1) result['line'] = max(int(match.group(2)) - 1, 0) result['word'] = query.backward_sync_data['word'] result['context'] = query.backward_sync_data['context'] if result != None: query.backward_sync_result = result else: query.backward_sync_result = None def stop_running(self): if self.process != None: self.process.kill() self.process = None Setzer-0.4.4/setzer/document/build_system/builder/builder_build.py000066400000000000000000000036171420322575300254470ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os import os.path import shutil class BuilderBuild(object): def __init__(self): self.process = None def throw_build_error(self, query, error, error_arg): with query.build_result_lock: query.build_result = {'error': error, 'error_arg': error_arg} def cleanup_files(self, query): if query.build_data['do_cleanup']: self.cleanup_build_files(query) self.cleanup_glossaries_files(query) def cleanup_build_files(self, query): file_endings = ['.aux', '.blg', '.bbl', '.dvi', '.xdv', '.fdb_latexmk', '.fls', '.idx' , '.ilg', '.ind', '.log', '.nav', '.out', '.snm', '.synctex.gz', '.toc', '.ist', '.glo', '.glg', '.acn', '.alg', '.bcf', '.run.xml', '.out.ps'] for ending in file_endings: try: os.remove(os.path.splitext(query.tex_filename)[0] + ending) except FileNotFoundError: pass def cleanup_glossaries_files(self, query): for ending in ['.gls', '.acr']: try: os.remove(os.path.splitext(query.tex_filename)[0] + ending) except FileNotFoundError: pass Setzer-0.4.4/setzer/document/build_system/builder/builder_build_biber.py000066400000000000000000000040731420322575300266070ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os import os.path import shutil import subprocess import setzer.document.build_system.builder.builder_build as builder_build from setzer.app.service_locator import ServiceLocator class BuilderBuildBiber(builder_build.BuilderBuild): def __init__(self): builder_build.BuilderBuild.__init__(self) def run(self, query): tex_filename = query.tex_filename filename = tex_filename.rsplit('/', 1)[1][:-4] arguments = ['biber'] arguments.append(filename) query.biber_data['ran_on_files'].append(filename) custom_env = os.environ.copy() custom_env['BIBINPUTS'] = os.path.dirname(query.tex_filename) + ':' + os.path.dirname(tex_filename) try: self.process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=os.path.dirname(tex_filename), env=custom_env) except FileNotFoundError: self.cleanup_files(query) self.throw_build_error(query, 'interpreter_not_working', 'biber missing') return self.process.wait() self.parse_biber_log(query, tex_filename[:-3] + 'blg') query.jobs.insert(0, 'build_latex') def stop_running(self): if self.process != None: self.process.kill() self.process = None def parse_biber_log(self, query, log_filename): pass Setzer-0.4.4/setzer/document/build_system/builder/builder_build_bibtex.py000066400000000000000000000065671420322575300270130ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os import os.path import shutil import subprocess from operator import itemgetter import setzer.document.build_system.builder.builder_build as builder_build from setzer.app.service_locator import ServiceLocator class BuilderBuildBibTeX(builder_build.BuilderBuild): def __init__(self): builder_build.BuilderBuild.__init__(self) self.bibtex_log_item_regex = ServiceLocator.get_regex_object(r'Warning--(.*)\n--line ([0-9]+) of file (.*)|I couldn' + "'" + r't open style file (.*)\n---line ([0-9]+) of file (.*)|Warning--(.*)') def run(self, query): tex_filename = query.tex_filename filename = tex_filename.rsplit('/', 1)[1][:-4] arguments = ['bibtex'] arguments.append(filename + '.aux') query.bibtex_data['ran_on_files'].append(filename) try: self.process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=os.path.dirname(tex_filename)) except FileNotFoundError: self.cleanup_files(query) self.throw_build_error(query, 'interpreter_not_working', 'bibtex missing') return self.process.wait() self.parse_bibtex_log(query, tex_filename[:-3] + 'blg') query.jobs.insert(0, 'build_latex') def stop_running(self): if self.process != None: self.process.kill() self.process = None def parse_bibtex_log(self, query, log_filename): try: file = open(log_filename, 'rb') except FileNotFoundError as e: pass else: text = file.read().decode('utf-8', errors='ignore') query.bibtex_log_messages = {'error': list(), 'warning': list(), 'badbox': list()} for item in self.bibtex_log_item_regex.finditer(text): line = item.group(0) if line.startswith('I couldn\'t open style file'): query.error_count += 1 text = 'I couldn\'t open style file ' + item.group(4) + '.bst' line_number = int(item.group(5).strip()) query.bibtex_log_messages['error'].append(('Error', -1, text)) elif line.startswith('Warning--'): if item.group(1) != None: text = item.group(1) line_number = int(item.group(2).strip()) else: text = item.group(7) line_number = -1 query.bibtex_log_messages['warning'].append(('Warning', line_number, text)) query.bibtex_log_messages['error'].sort(key=itemgetter(1)) query.bibtex_log_messages['warning'].sort(key=itemgetter(1)) Setzer-0.4.4/setzer/document/build_system/builder/builder_build_glossaries.py000066400000000000000000000037761420322575300277100ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os import os.path import shutil import subprocess import setzer.document.build_system.builder.builder_build as builder_build class BuilderBuildGlossaries(builder_build.BuilderBuild): def __init__(self): builder_build.BuilderBuild.__init__(self) def run(self, query): tex_filename = query.tex_filename basename = os.path.basename(tex_filename).rsplit('.', 1)[0] arguments = ['makeglossaries'] arguments.append(basename) try: self.process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=os.path.dirname(tex_filename)) except FileNotFoundError: self.cleanup_files(query) self.throw_build_error(query, 'interpreter_not_working', 'makeglossaries missing') return self.process.wait() for ending in ['.gls', '.acr']: move_from = os.path.join(os.path.dirname(tex_filename), basename + ending) move_to = os.path.join(os.path.dirname(query.tex_filename), basename + ending) try: shutil.move(move_from, move_to) except FileNotFoundError: pass query.jobs.insert(0, 'build_latex') def stop_running(self): if self.process != None: self.process.kill() self.process = None Setzer-0.4.4/setzer/document/build_system/builder/builder_build_latex.py000066400000000000000000000131701420322575300266370ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os import os.path import sys import base64 import shutil import pexpect from operator import itemgetter import setzer.document.build_system.builder.builder_build as builder_build import setzer.document.build_system.latex_log_parser.latex_log_parser as latex_log_parser from setzer.app.service_locator import ServiceLocator class BuilderBuildLaTeX(builder_build.BuilderBuild): def __init__(self): builder_build.BuilderBuild.__init__(self) self.config_folder = ServiceLocator.get_config_folder() self.latex_log_parser = latex_log_parser.LaTeXLogParser() def run(self, query): build_command_defaults = dict() build_command_defaults['pdflatex'] = 'pdflatex -synctex=1 -interaction=nonstopmode' build_command_defaults['xelatex'] = 'xelatex -synctex=1 -interaction=nonstopmode' build_command_defaults['lualatex'] = 'lualatex --synctex=1 --interaction=nonstopmode' if query.build_data['use_latexmk']: if query.build_data['latex_interpreter'] == 'pdflatex': interpreter_option = 'pdf' else: interpreter_option = query.build_data['latex_interpreter'] build_command = 'latexmk -' + interpreter_option + ' -synctex=1 -interaction=nonstopmode' + query.build_data['additional_arguments'] else: build_command = build_command_defaults[query.build_data['latex_interpreter']] + query.build_data['additional_arguments'] arguments = build_command.split() arguments.append('-output-directory=' + os.path.dirname(query.tex_filename)) arguments.append(query.tex_filename) try: self.process = pexpect.spawn(build_command + ' -output-directory="' + os.path.dirname(query.tex_filename) + '" "' + query.tex_filename + '"', cwd=os.path.dirname(query.tex_filename)) except FileNotFoundError: self.cleanup_files(query) self.throw_build_error(query, 'interpreter_missing', arguments[0]) return while True: try: out = self.process.expect(['\r\n\r\n', pexpect.TIMEOUT, pexpect.EOF], timeout=20) except AttributeError: break if out == 0: pass elif out == 1: for line in self.process.before.split(b'\n'): if line.startswith(b'!'): self.process.sendcontrol('c') self.process.sendline('x') else: break # parse results try: if self.parse_build_log(query): return except FileNotFoundError as e: self.cleanup_files(query) self.throw_build_error(query, 'interpreter_not_working', 'log file missing') return query.can_sync = self.copy_synctex_file(query) self.cleanup_files(query) pdf_filename = query.tex_filename.rsplit('.tex', 1)[0] + '.pdf' if query.error_count > 0: if os.path.isfile(pdf_filename): os.remove(pdf_filename) pdf_filename = None with query.build_result_lock: query.build_result = {'pdf_filename': pdf_filename, 'has_synctex_file': query.can_sync, 'log_messages': query.log_messages, 'bibtex_log_messages': query.bibtex_log_messages, 'error': None, 'error_arg': None} def stop_running(self): if self.process != None: self.process.sendcontrol('c') self.process.sendline('x') self.process.terminate(True) self.process = None def parse_build_log(self, query): query.log_messages = list() query.error_count = 0 log_items = self.latex_log_parser.parse_build_log(query.tex_filename) additional_jobs = self.latex_log_parser.get_additional_jobs(log_items, query) file_no = 0 for job in additional_jobs: query.jobs.insert(0, job) return True for filename, items in log_items.items(): query.error_count += len(items['error']) items['error'].sort(key=itemgetter(1)) items['warning'].sort(key=itemgetter(1)) items['badbox'].sort(key=itemgetter(1)) query.log_messages = log_items return False def copy_synctex_file(self, query): move_from = os.path.splitext(query.tex_filename)[0] + '.synctex.gz' folder = self.config_folder + '/' + base64.urlsafe_b64encode(str.encode(query.tex_filename)).decode() move_to = folder + '/' + os.path.splitext(os.path.basename(query.tex_filename))[0] + '.synctex.gz' if not os.path.exists(folder): os.makedirs(folder) try: shutil.copyfile(move_from, move_to) except FileNotFoundError: return False else: return True Setzer-0.4.4/setzer/document/build_system/builder/builder_build_makeindex.py000066400000000000000000000037571420322575300275010ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os import os.path import shutil import subprocess import setzer.document.build_system.builder.builder_build as builder_build from setzer.app.service_locator import ServiceLocator class BuilderBuildMakeindex(builder_build.BuilderBuild): def __init__(self): builder_build.BuilderBuild.__init__(self) self.bibtex_log_item_regex = ServiceLocator.get_regex_object(r'Warning--(.*)\n--line ([0-9]+) of file (.*)|I couldn' + "'" + r't open style file (.*)\n---line ([0-9]+) of file (.*)') def run(self, query): tex_filename = query.tex_filename filename = tex_filename.rsplit('/', 1)[1][:-4] arguments = ['makeindex'] arguments.append(filename + '.idx') query.makeindex_data['ran_on_files'].append(filename) try: self.process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=os.path.dirname(tex_filename)) except FileNotFoundError: self.cleanup_files(query) self.throw_build_error(query, 'interpreter_not_working', 'makeindex missing') return self.process.wait() query.jobs.insert(0, 'build_latex') def stop_running(self): if self.process != None: self.process.kill() self.process = None Setzer-0.4.4/setzer/document/build_system/builder/builder_forward_sync.py000066400000000000000000000061731420322575300270500ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import _thread as thread import base64 import subprocess import setzer.document.build_system.builder.builder_build as builder_build from setzer.app.service_locator import ServiceLocator class BuilderForwardSync(builder_build.BuilderBuild): def __init__(self): builder_build.BuilderBuild.__init__(self) self.config_folder = ServiceLocator.get_config_folder() self.forward_synctex_regex = ServiceLocator.get_regex_object(r'\nOutput:.*\nPage:([0-9]+)\nx:.*\ny:.*\nh:((?:[0-9]|\.)+)\nv:((?:[0-9]|\.)+)\nW:((?:[0-9]|\.)+)\nH:((?:[0-9]|\.)+)\nbefore:.*\noffset:.*\nmiddle:.*\nafter:.*') self.process = None def run(self, query): tex_filename = query.tex_filename if not query.can_sync: query.forward_sync_result = None return synctex_folder = self.config_folder + '/' + base64.urlsafe_b64encode(str.encode(query.tex_filename)).decode() arguments = ['synctex', 'view', '-i'] arguments.append(str(query.forward_sync_data['line']) + ':' + str(query.forward_sync_data['line_offset']) + ':' + query.forward_sync_data['filename']) arguments.append('-o') arguments.append(query.tex_filename[:-3] + 'pdf') arguments.append('-d') arguments.append(synctex_folder) try: self.process = subprocess.Popen(arguments, stdout=subprocess.PIPE, stderr=subprocess.PIPE) except FileNotFoundError: self.cleanup_files(query) self.throw_build_error(query, 'interpreter_not_working', 'synctex missing') return self.process.wait() rectangles = list() if self.process != None: raw = self.process.communicate()[0].decode('utf-8') self.process = None for match in self.forward_synctex_regex.finditer(raw): rectangle = dict() rectangle['page'] = int(match.group(1)) rectangle['h'] = float(match.group(2)) rectangle['v'] = float(match.group(3)) rectangle['width'] = float(match.group(4)) rectangle['height'] = float(match.group(5)) rectangles.append(rectangle) if len(rectangles) > 0: query.forward_sync_result = rectangles else: query.forward_sync_result = None def stop_running(self): if self.process != None: self.process.kill() self.process = None Setzer-0.4.4/setzer/document/build_system/latex_log_parser/000077500000000000000000000000001420322575300241655ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_system/latex_log_parser/__init__.py000066400000000000000000000000001420322575300262640ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_system/latex_log_parser/latex_log_parser.py000066400000000000000000000307261420322575300301010ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os.path from setzer.app.service_locator import ServiceLocator class LaTeXLogParser(): def __init__(self): self.doc_regex = ServiceLocator.get_regex_object(r'(\(([^\(\)]*\.(?:tex|gls)))') self.item_regex = ServiceLocator.get_regex_object(r'((?= 0 and item[2].find('.bbl.') >= 0: if not query.tex_filename.rsplit('/', 1)[1][:-4] in query.bibtex_data['ran_on_files']: jobs |= {'build_bibtex'} elif item[2].startswith('No file ') and item[2].find(query.tex_filename.rsplit('.', 1)[0].rsplit('/', 1)[1]) >= 0 and item[2].find('.ind.') >= 0: if not query.tex_filename.rsplit('/', 1)[1][:-4] in query.makeindex_data['ran_on_files']: jobs |= {'build_makeindex'} elif item[2] == 'Please (re)run Biber on the file:': line = item[3] if line.find(query.tex_filename.rsplit('.', 1)[0].rsplit('/', 1)[1]) >= 0: if not query.tex_filename.rsplit('/', 1)[1][:-4] in query.biber_data['ran_on_files']: jobs |= {'build_biber'} elif item[2] == 'File `' + query.tex_filename.rsplit('/', 1)[1][:-4] + '.out\' has changed.': jobs |= {'build_latex'} rerun_latex_reasons |= {1} elif item[2] == 'Please rerun LaTeX.': jobs |= {'build_latex'} rerun_latex_reasons |= {2} elif item[2] == 'Label(s) may have changed. Rerun to get cross-references right.': jobs |= {'build_latex'} rerun_latex_reasons |= {3} elif item[2] == 'Citation(s) may have changed.': jobs |= {'build_latex'} rerun_latex_reasons |= {4} elif item[2].startswith('No file ') and item[2].find(query.tex_filename.rsplit('.', 1)[0].rsplit('/', 1)[1]) >= 0 and (item[2].find('.toc.') >= 0 or item[2].find('.aux.') >= 0): jobs |= {'build_latex'} rerun_latex_reasons |= {5} elif item[2] == 'Rerun to get transparencies right.': jobs |= {'build_latex'} rerun_latex_reasons |= {6} elif item[2].startswith('No file ') and item[2].find(query.tex_filename.rsplit('.', 1)[0].rsplit('/', 1)[1]) >= 0 and (item[2].find('.gls.') >= 0 or item[2].find('.acr.') >= 0): jobs |= {'build_glossaries'} elif item[2].startswith('No file ') and item[2].find(query.tex_filename.rsplit('.', 1)[0].rsplit('/', 1)[1]) >= 0 and (item[2].find('.aux.') >= 0): jobs |= {'build_latex'} rerun_latex_reasons |= {7} if 'build_biber' in jobs: return {'build_biber'} if 'build_bibtex' in jobs: return {'build_bibtex'} if 'build_makeindex' in jobs: return {'build_makeindex'} if 'build_glossaries' in jobs: return {'build_glossaries'} if 'build_latex' in jobs: if len(rerun_latex_reasons - query.build_data['rerun_latex_reasons']) > 0: query.build_data['rerun_latex_reasons'] = rerun_latex_reasons return {'build_latex'} else: jobs -= {'build_latex'} return jobs def parse_log_text(self, filename, text): log_messages = {'error': list(), 'warning': list(), 'badbox': list()} matches = self.item_regex.split(text) buffer = '' for match in reversed(matches): if not self.item_regex.fullmatch(match): buffer += match else: match += buffer buffer = '' matchiter = iter(match.splitlines()) line = next(matchiter) if line.startswith('No file '): text = line.strip() line_number = -1 log_messages['error'].append((None, line_number, text)) elif line.startswith('Package biblatex Warning: Please (re)run Biber on the file:'): text = line[26:].strip() line = next(matchiter) log_messages['warning'].append((None, -1, text, line)) elif line.startswith('Package biblatex Warning: Please rerun LaTeX.'): text = line[26:].strip() log_messages['warning'].append((None, -1, text)) elif line.startswith('LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.'): text = line[15:].strip() log_messages['warning'].append((None, -1, text)) elif line.startswith('Package natbib Warning: Citation(s) may have changed.'): text = line[24:].strip() log_messages['warning'].append((None, -1, text)) elif line.startswith('Overfull \hbox'): line_number_match = self.badbox_line_number_regex.search(line) if line_number_match != None: line_number = int(line_number_match.group(1)) text = line.strip() log_messages['badbox'].append((None, line_number, text)) elif line.startswith('Underfull \hbox'): line_number_match = self.badbox_line_number_regex.search(line) if line_number_match != None: line_number = int(line_number_match.group(1)) text = line.strip() log_messages['badbox'].append((None, line_number, text)) elif line.startswith('LaTeX Warning: Reference '): text = line[15:].strip() line_number = self.bl_get_line_number(line, matchiter) log_messages['warning'].append(('Undefined Reference', line_number, text)) elif line.startswith('Package '): text = line.split(':')[1].strip() line_number = self.bl_get_line_number(line, matchiter) log_messages['warning'].append((None, line_number, text)) elif line.startswith('LaTeX Warning: '): text = line[15:].strip() line_number = self.bl_get_line_number(line, matchiter) log_messages['warning'].append((None, line_number, text)) elif line.startswith('! Undefined control sequence'): text = line.strip() line_number = self.bl_get_line_number(line, matchiter) log_messages['error'].append(('Undefined control sequence', line_number, text)) elif line.startswith('! LaTeX Error') or line.startswith('!pdfTeX error'): text = line[15:].strip() line_number = self.bl_get_line_number(line, matchiter) log_messages['error'].append((None, line_number, text)) elif line.startswith('! Package'): text = self.get_text(line[2:], matchiter, True) line_number = self.bl_get_line_number(line, matchiter) log_messages['error'].append(('Undefined control sequence', line_number, text)) elif line.startswith('File') and line.endswith(' does not exist.\n'): text = line.strip() line_number = -1 log_messages['error'].append((None, line_number, text)) elif line.startswith('! I can\'t find file\.'): text = line.strip() line_number = -1 log_messages['error'].append((None, line_number, text)) elif line.startswith('! File'): text = self.get_text(line[2:]) line_number = self.bl_get_line_number(line, matchiter) log_messages['error'].append((None, line_number, text)) elif line.startswith('! ') and not line.startswith('! ==> Fatal'): text = line[2:].strip() line_number = self.bl_get_line_number(line, matchiter) log_messages['error'].append((None, line_number, text)) return log_messages def get_text(self, line, matchiter=None, can_be_multiline=False): if can_be_multiline: text = line.strip() if not '.' in text and len(text) > 60: try: text += next(matchiter).strip() except StopIteration: pass return text else: return line.strip() def split_log_text_by_file(self, log_text, tex_filename): doc_texts = dict() matches = self.doc_regex.split(log_text) buffer = '' for match in reversed(matches): if not self.doc_regex.fullmatch(match): buffer += match else: match = match.strip() + buffer buffer = '' filename = self.doc_regex.match(match).group(2).strip() if not filename.startswith('/'): filename = os.path.normpath(os.path.dirname(tex_filename) + '/' + filename) if not filename == tex_filename: open_brackets = 0 char_count = 0 for char in match: if char == ')': open_brackets -= 1 if char == '(': open_brackets += 1 char_count += 1 if open_brackets == 0: break match = match[:char_count] doc_texts[filename] = match log_text = log_text.replace(match, '') buffer = '' doc_texts[tex_filename] = log_text return doc_texts def bl_get_line_number(self, line, matchiter): for i in range(10): line_number_match = self.other_line_number_regex.search(line) if line_number_match != None: return int(line_number_match.group(2)) else: try: line += next(matchiter) except StopIteration: return -1 return -1 Setzer-0.4.4/setzer/document/build_system/query/000077500000000000000000000000001420322575300220005ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_system/query/__init__.py000066400000000000000000000000001420322575300240770ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_system/query/query.py000066400000000000000000000053151420322575300235230ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import _thread as thread class Query(object): def __init__(self, tex_filename): self.build_result = None self.build_result_lock = thread.allocate_lock() self.forward_sync_result = None self.forward_sync_result_lock = thread.allocate_lock() self.backward_sync_result = None self.backward_sync_result_lock = thread.allocate_lock() self.done_executing = False self.done_executing_lock = thread.allocate_lock() self.synctex_file = None self.synctex_file_lock = thread.allocate_lock() self.build_data = {'rerun_latex_reasons': set()} self.biber_data = {'ran_on_files': []} self.bibtex_data = {'ran_on_files': []} self.makeindex_data = {'ran_on_files': []} self.can_sync = False self.forward_sync_data = dict() self.backward_sync_data = dict() self.tex_filename = tex_filename self.log_messages = dict() self.bibtex_log_messages = {'error': list(), 'warning': list(), 'badbox': list()} self.force_building_to_stop = False self.error_count = 0 def get_build_result(self): return_value = None with self.build_result_lock: if self.build_result != None: return_value = self.build_result return return_value def get_forward_sync_result(self): return_value = None with self.forward_sync_result_lock: if self.forward_sync_result != None: return_value = self.forward_sync_result return return_value def get_backward_sync_result(self): return_value = None with self.backward_sync_result_lock: if self.backward_sync_result != None: return_value = self.backward_sync_result return return_value def mark_done(self): with self.done_executing_lock: self.done_executing = True def is_done(self): with self.done_executing_lock: return self.done_executing Setzer-0.4.4/setzer/document/build_widget/000077500000000000000000000000001420322575300205725ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_widget/__init__.py000066400000000000000000000000001420322575300226710ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/build_widget/build_widget.py000066400000000000000000000150351420322575300236120ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import setzer.document.build_widget.build_widget_viewgtk as build_widget_view from setzer.helpers.observable import Observable from setzer.app.service_locator import ServiceLocator from setzer.dialogs.dialog_locator import DialogLocator import time import os.path class BuildWidget(Observable): def __init__(self, document): Observable.__init__(self) self.document = document self.settings = ServiceLocator.get_settings() self.items = list() self.view = build_widget_view.BuildWidgetView() self.view.stop_button.connect('clicked', self.on_stop_build_button_click) self.view.clean_button.connect('clicked', self.on_clean_button_click) self.view.build_button.show_all() self.view.stop_button.hide() self.build_button_state = ('idle', int(time.time()*1000)) self.set_clean_button_state() self.document.connect('filename_change', self.on_filename_change) self.document.build_system.connect('build_state_change', self.on_build_state_change) self.document.build_system.connect('build_state', self.on_build_state) self.settings.connect('settings_changed', self.on_settings_changed) self.view.build_timer.connect('notify::child-revealed', self.on_revealer_finished) def on_revealer_finished(self, revealer, params): if not revealer.get_child_revealed(): self.view.build_timer.hide() def on_filename_change(self, document, filename=None): self.set_clean_button_state() def on_build_state_change(self, build_system, build_state): document = self.document if document.build_system.build_mode in ['build', 'build_and_forward_sync']: state = document.build_system.get_build_state() selfstate = self.build_button_state if state == 'idle' or state == '': build_button_state = ('idle', int(time.time()*1000)) else: build_button_state = ('building', int(time.time()*1000)) if selfstate[0] != build_button_state[0]: self.build_button_state = build_button_state if build_button_state[0] == 'idle': self.view.stop_button.hide() self.view.build_button.set_sensitive(True) self.view.build_button.show_all() else: self.view.build_button.set_sensitive(False) self.view.build_button.hide() self.view.stop_button.show_all() self.view.reset_timer() self.view.label.set_text('0:00') self.view.show_timer() self.view.start_timer() else: self.build_button_state = ('idle', int(time.time()*1000)) self.view.hide_timer_now() self.view.build_button.set_sensitive(True) self.view.build_button.show_all() self.view.stop_button.hide() self.set_clean_button_state() def on_build_state(self, build_system, message): self.show_message(message) def on_settings_changed(self, settings, parameter): section, item, value = parameter if (section, item) == ('preferences', 'cleanup_build_files'): self.set_clean_button_state() def show_message(self, message=''): self.view.stop_timer() self.view.show_result(message) if self.view.get_parent() != None: self.view.hide_timer(1600) def build_document_request(self, button_object=None): if self.document.filename == None: if DialogLocator.get_dialog('build_save').run(self.document): DialogLocator.get_dialog('save_document').run(self.document) else: return False if self.document.filename != None: active_document = ServiceLocator.get_workspace().get_active_document() if active_document != None: self.document.build_system.build_and_forward_sync(active_document) def on_stop_build_button_click(self, button_object=None): document = self.document if document != None: if document.filename != None: self.document.build_system.stop_building() def set_clean_button_state(self): def get_clean_button_state(document): file_endings = ['.aux', '.blg', '.bbl', '.dvi', '.fdb_latexmk', '.fls', '.idx' ,'.ilg', '.ind', '.log', '.nav', '.out', '.snm', '.synctex.gz', '.toc', '.ist', '.glo', '.glg', '.acn', '.alg', '.gls', '.acr', '.bcf', '.run.xml'] if document != None: if document.filename != None: pathname = document.get_filename().rsplit('/', 1) for ending in file_endings: filename = pathname[0] + '/' + pathname[1].rsplit('.', 1)[0] + ending if os.path.exists(filename): return True return False if self.settings.get_value('preferences', 'cleanup_build_files') == True: self.view.clean_button.hide() else: self.view.clean_button.show_all() self.view.clean_button.set_sensitive(get_clean_button_state(self.document)) def on_clean_button_click(self, button_object=None): document = self.document if self.document == None: return if self.document.filename == None: return filename_base = os.path.splitext(document.get_filename())[0] file_endings = ['.aux', '.blg', '.bbl', '.dvi', '.xdv', '.fdb_latexmk', '.fls', '.idx' ,'.ilg', '.ind', '.log', '.nav', '.out', '.snm', '.synctex.gz', '.toc', '.ist', '.glo', '.glg', '.acn', '.alg', '.gls', '.acr', '.bcf', '.run.xml', '.out.ps'] for ending in file_endings: try: os.remove(filename_base + ending) except FileNotFoundError: pass self.set_clean_button_state() Setzer-0.4.4/setzer/document/build_widget/build_widget_viewgtk.py000066400000000000000000000112541420322575300253510ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GObject class BuildWidgetView(Gtk.HBox): ''' Shows how long the build process takes ''' def __init__(self): Gtk.HBox.__init__(self) self.get_style_context().add_class('build-widget') self.timer = 0 self.timer_active = False self.state_change_count = 0 self.build_button = Gtk.Button.new_from_icon_name('builder-build-symbolic', Gtk.IconSize.MENU) self.build_button.set_focus_on_click(False) self.build_button.set_tooltip_text(_('Save and build .pdf-file from document') + ' (F5)') self.build_button.set_action_name('win.save-and-build') self.stop_button = Gtk.Button.new_from_icon_name('process-stop-symbolic', Gtk.IconSize.MENU) self.stop_button.set_focus_on_click(False) self.stop_button.set_tooltip_text(_('Stop building')) self.clean_button = Gtk.Button.new_from_icon_name('brush-symbolic', Gtk.IconSize.MENU) self.clean_button.set_focus_on_click(False) self.clean_button.set_tooltip_text(_('Cleanup build files')) self.build_timer = Gtk.Revealer() self.build_timer.set_transition_type(Gtk.RevealerTransitionType.CROSSFADE) self.build_timer_wrapper = Gtk.VBox() self.build_timer_wrapper.pack_start(Gtk.DrawingArea(), True, True, 0) self.label = Gtk.Label('') self.label.get_style_context().add_class('build-timer') self.label.set_xalign(0) self.build_timer_wrapper.pack_start(self.label, False, False, 0) self.build_timer_wrapper.pack_start(Gtk.DrawingArea(), True, True, 0) self.build_timer.add(self.build_timer_wrapper) self.build_timer_wrapper.show_all() self.show() self.pack_start(self.build_timer, False, False, 0) self.pack_end(self.clean_button, False, False, 0) self.pack_end(self.build_button, False, False, 0) self.pack_end(self.stop_button, False, False, 0) def start_timer(self): self.timer_active = True GObject.timeout_add(50, self.increment_timer) def increment_timer(self): if self.timer_active: self.timer += 50 if self.timer // 1000 >= 1: self.label.set_text('{}:{:02}'.format(self.timer // 60000, (self.timer % 60000) // 1000)) self.set_size_request(max(self.label.get_allocated_width(), self.label.get_size_request()[0]), -1) return self.timer_active def stop_timer(self): self.timer_active = False def reset_timer(self): self.timer = 0 self.label.set_text('') self.build_timer.set_size_request(-1, -1) def show_timer(self): self.build_timer.show() self.state_change_count += 1 GObject.timeout_add(5, self.reveal, self.state_change_count) def show_result(self, text=''): self.label.set_markup(text) self.build_timer.set_size_request(max(self.label.get_allocated_width(), self.label.get_size_request()[0]), -1) def has_result(self): text = self.label.get_text() if text[:6] in ['Succes', 'Failed']: return True else: return False def hide_timer(self, duration): self.state_change_count += 1 GObject.timeout_add(duration, self.unreveal, self.state_change_count) def hide_timer_now(self): self.build_timer.set_transition_type(Gtk.RevealerTransitionType.NONE) self.build_timer.set_reveal_child(False) self.build_timer.set_transition_type(Gtk.RevealerTransitionType.CROSSFADE) def reveal(self, state_change_count): if self.state_change_count == state_change_count: self.build_timer.set_reveal_child(True) return False def unreveal(self, state_change_count): if self.state_change_count == state_change_count: self.build_timer.set_reveal_child(False) return False Setzer-0.4.4/setzer/document/code_folding/000077500000000000000000000000001420322575300205445ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/code_folding/__init__.py000066400000000000000000000000001420322575300226430ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/code_folding/code_folding.py000066400000000000000000000213211420322575300235310ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GObject import setzer.document.code_folding.code_folding_controller as code_folding_controller import setzer.document.code_folding.code_folding_presenter as code_folding_presenter import setzer.document.code_folding.code_folding_gutter_object as code_folding_gutter_object from setzer.helpers.observable import Observable from setzer.helpers.timer import timer class CodeFolding(Observable): def __init__(self, document): Observable.__init__(self) self.is_enabled = False self.blocks = list() self.marks_start = dict() self.folding_regions = dict() self.folding_regions_by_region_id = dict() self.maximum_region_id = 0 self.initial_folded_regions_set = False self.initial_folding_done = False self.initial_folding_regions_checked_count = 0 self.document = document self.gutter_object = code_folding_gutter_object.CodeFoldingGutterObject(self) document.gutter.add_widget(self.gutter_object) self.presenter = code_folding_presenter.CodeFoldingPresenter(self) self.controller = code_folding_controller.CodeFoldingController(self) self.document.content.connect('text_inserted', self.on_text_inserted) self.document.content.connect('text_deleted', self.on_text_deleted) self.document.content.connect('buffer_changed', self.on_buffer_changed) def on_text_inserted(self, content, parameter): buffer, location_iter, text, text_length = parameter length = len(text) offset = location_iter.get_offset() + length marks_start = dict() for index, region_id in self.marks_start.items(): if index < offset: marks_start[index] = region_id else: index2 = index + length region = self.folding_regions_by_region_id[region_id] region['offset_start'] = index2 marks_start[index2] = region_id self.marks_start = marks_start def on_text_deleted(self, content, parameter): buffer, start_iter, end_iter = parameter offset_start = start_iter.get_offset() offset_end = end_iter.get_offset() length = offset_end - offset_start marks_start = dict() for index, region_id in self.marks_start.items(): if index <= offset_start: marks_start[index] = region_id elif index >= offset_end: index2 = index - length region = self.folding_regions_by_region_id[region_id] region['offset_start'] = index2 marks_start[index2] = region_id self.marks_start = marks_start def on_buffer_changed(self, content, parameter): if self.is_enabled: self.update_folding_regions() def enable_code_folding(self): self.is_enabled = True self.update_folding_regions() self.gutter_object.show() def disable_code_folding(self): self.is_enabled = False for region in self.folding_regions.values(): self.toggle_folding_region(region, show_region_regardless_of_state=True) self.gutter_object.hide() def toggle_folding_region(self, region, show_region_regardless_of_state=False, hide_region_regardless_of_state=False): if show_region_regardless_of_state: is_folded = False elif hide_region_regardless_of_state: is_folded = True else: is_folded = not region['is_folded'] region['is_folded'] = is_folded if is_folded: self.presenter.hide_region(region) else: self.presenter.show_region(region) self.add_change_code('folding_state_changed', region) def get_folding_region_by_region_id(self, region_id): return self.folding_regions_by_region_id[region_id] #@timer def update_folding_regions(self): folding_regions = dict() folding_regions_by_region_id = dict() last_line = -1 try: blocks = self.document.content.get_blocks() except AttributeError: return if not self.blocks_changed(blocks): return self.blocks = blocks for block in blocks: if block[1] != None: if block[2] != last_line: region_id = self.get_mark_start_at_offset(block[0]) if region_id != None: region_dict = self.get_folding_region_by_region_id(region_id) region_dict['starting_line'] = block[2] region_dict['ending_line'] = block[3] region_dict['offset_end'] = block[1] folding_regions_by_region_id[region_id] = region_dict else: self.add_mark_start(self.maximum_region_id, block[0]) region_dict = {'offset_start': block[0], 'offset_end': block[1], 'is_folded': False, 'starting_line': block[2], 'ending_line': block[3], 'id': self.maximum_region_id} folding_regions_by_region_id[self.maximum_region_id] = region_dict self.maximum_region_id += 1 folding_regions[block[2]] = region_dict last_line = block[2] self.delete_invalid_regions(folding_regions_by_region_id) self.folding_regions = folding_regions self.folding_regions_by_region_id = folding_regions_by_region_id if not self.initial_folding_done: self.initial_folding() #@timer def delete_invalid_regions(self, folding_regions_by_region_id): regions_to_delete = [region_id for region_id in self.folding_regions_by_region_id if region_id not in folding_regions_by_region_id] for region_id in regions_to_delete: region = self.folding_regions_by_region_id[region_id] self.toggle_folding_region(region, show_region_regardless_of_state=True) self.delete_mark_start(region['offset_start']) def add_mark_start(self, region_id, offset): self.marks_start[offset] = region_id def delete_mark_start(self, offset): try: del(self.marks_start[offset]) except KeyError: pass def get_mark_start_at_offset(self, offset): if offset in self.marks_start: return self.marks_start[offset] return None #@timer def blocks_changed(self, blocks): blocks_old = self.blocks if len(blocks) != len(blocks_old): return True for block_old, block_new in zip(blocks_old, blocks): if block_old[0] != block_new[0] or block_old[1] != block_new[1]: return True return False def get_folded_regions(self): folded_regions = list() for region in self.folding_regions.values(): if region['is_folded']: folded_regions.append({'starting_line': region['starting_line'], 'ending_line': region['ending_line']}) return folded_regions def set_initial_folded_regions(self, folded_regions): self.initial_folded_regions = folded_regions self.initial_folded_regions_set = True self.initial_folding() def initial_folding(self): self.initial_folding_regions_checked_count += 1 if self.initial_folded_regions_set: if self.initial_folded_regions != None: for region in self.initial_folded_regions: if region['starting_line'] in self.folding_regions: if region['ending_line'] == self.folding_regions[region['starting_line']]['ending_line']: folding_region = self.folding_regions[region['starting_line']] self.toggle_folding_region(folding_region, hide_region_regardless_of_state=True) self.initial_folding_done = True if self.initial_folding_regions_checked_count >= 3: self.initial_folding_done = True Setzer-0.4.4/setzer/document/code_folding/code_folding_controller.py000066400000000000000000000031771420322575300260050ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gdk from setzer.app.service_locator import ServiceLocator class CodeFoldingController(object): def __init__(self, model): self.model = model self.source_view = self.model.document.view.source_view self.settings = ServiceLocator.get_settings() if self.settings.get_value('preferences', 'enable_code_folding'): self.model.enable_code_folding() else: self.model.disable_code_folding() self.settings.connect('settings_changed', self.on_settings_changed) def on_settings_changed(self, settings, parameter): section, item, value = parameter if (section, item) == ('preferences', 'enable_code_folding'): if value == True: self.model.enable_code_folding() else: self.model.disable_code_folding() Setzer-0.4.4/setzer/document/code_folding/code_folding_gutter_object.py000066400000000000000000000125651420322575300264630ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gdk from setzer.helpers.timer import timer class CodeFoldingGutterObject(object): def __init__(self, model): self.model = model self.source_view = self.model.document.view.source_view self.hovered_region = None self.size = 0 self.visible = False def set_font_desc(self, font_desc): pass def set_char_dimensions(self, line_height, char_width): self.size = line_height def update_colors(self): pass def on_click(self, event): x, y = self.source_view.window_to_buffer_coords(Gtk.TextWindowType.LEFT, event.x, event.y) line_iter, line_top = self.source_view.get_line_at_y(y) line_number = line_iter.get_line() if x >= -18 and line_number in self.model.folding_regions: if event.type == Gdk.EventType.BUTTON_PRESS: self.model.toggle_folding_region(self.model.folding_regions[line_number]) return True return False def on_pointer_movement(self, event): x, y = self.source_view.window_to_buffer_coords(Gtk.TextWindowType.LEFT, event.x, event.y) line_iter, line_top = self.source_view.get_line_at_y(y) line_number = line_iter.get_line() if x >= -18 and line_number in self.model.folding_regions and event.type != Gdk.EventType.LEAVE_NOTIFY: self.hovered_region = self.model.folding_regions[line_number] self.source_view.queue_draw() elif self.hovered_region != None: self.hovered_region = None self.source_view.queue_draw() #@timer def on_draw(self, gutter, drawing_area, ctx, lines, current_line, offset): ctx.set_line_width(0) xoff1 = offset + 3 * self.size / 6 xoff2 = offset + 5 * self.size / 6 xoff3 = offset + 1 * self.size / 11 xoff4 = offset + 5 * self.size / 11 xoff5 = offset + 9 * self.size / 11 xoff6 = offset + 3 * self.size / 8 xoff7 = offset + 5.5 * self.size / 8 xoff8 = offset + 8 * self.size / 8 yoff1 = 1.5 * self.size / 8 yoff2 = 4 * self.size / 8 yoff3 = 6.5 * self.size / 8 yoff4 = 2 * self.size / 6 yoff5 = 4 * self.size / 6 len1 = 2 * self.size / 11 line_countdown = 0 for line in lines: if line_countdown > 0: ctx.set_source_rgba(gutter.border_color.red, gutter.border_color.green, gutter.border_color.blue, gutter.border_color.alpha) ctx.rectangle(xoff6 - 1, line[1] + line[2], self.size, -line[2]) ctx.fill() ctx.set_source_rgba(gutter.fg_color.red, gutter.fg_color.green, gutter.fg_color.blue, gutter.fg_color.alpha) line_countdown -= 1 if (line[0] - 1) in self.model.folding_regions.keys(): if self.hovered_region == self.model.folding_regions[(line[0] - 1)]: ctx.set_source_rgba(gutter.border_color.red, gutter.border_color.green, gutter.border_color.blue, gutter.border_color.alpha) ctx.rectangle(xoff6 - 1, line[1] + line[2], self.size, -line[2]) ctx.fill() ctx.set_source_rgba(gutter.fg_color.red, gutter.fg_color.green, gutter.fg_color.blue, gutter.fg_color.alpha) if not self.model.folding_regions[line[0] - 1]['is_folded']: line_countdown = self.hovered_region['ending_line'] - self.hovered_region['starting_line'] if self.model.folding_regions[line[0] - 1]['is_folded']: ctx.move_to(xoff1, line[1] + yoff1) ctx.line_to(xoff2, line[1] + yoff2) ctx.line_to(xoff1, line[1] + yoff3) ctx.line_to(xoff1, line[1] + yoff1) ctx.fill() ctx.rectangle(xoff3, line[1] + self.size, len1, -1) ctx.rectangle(xoff4, line[1] + self.size, len1, -1) ctx.rectangle(xoff5, line[1] + self.size, len1, -1) ctx.fill() else: ctx.move_to(xoff6, line[1] + yoff4) ctx.line_to(xoff7, line[1] + yoff5) ctx.line_to(xoff8, line[1] + yoff4) ctx.line_to(xoff6, line[1] + yoff4) ctx.fill() def update_size(self): pass def get_size(self): return self.size def show(self): self.visible = True self.source_view.queue_draw() def hide(self): self.visible = False self.source_view.queue_draw() def is_visible(self): return self.visible Setzer-0.4.4/setzer/document/code_folding/code_folding_presenter.py000066400000000000000000000044511420322575300256250ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.helpers.timer import timer class CodeFoldingPresenter(object): def __init__(self, model): self.model = model self.source_buffer = self.model.document.content.source_buffer self.tag = self.source_buffer.create_tag('invisible_region', invisible=1) def show_region(self, region): offset_start = region['offset_start'] start_iter = self.source_buffer.get_iter_at_offset(offset_start) start_iter.forward_to_line_end() offset_end = region['offset_end'] end_iter = self.source_buffer.get_iter_at_offset(offset_end) if not end_iter.ends_line(): end_iter.forward_to_line_end() end_iter.forward_char() self.source_buffer.remove_tag(self.tag, start_iter, end_iter) for some_region in self.model.folding_regions.values(): if some_region['is_folded']: if some_region['starting_line'] >= region['starting_line'] and some_region['ending_line'] <= region['ending_line']: self.hide_region(some_region) def hide_region(self, region): offset_start = region['offset_start'] start_iter = self.source_buffer.get_iter_at_offset(offset_start) start_iter.forward_to_line_end() offset_end = region['offset_end'] end_iter = self.source_buffer.get_iter_at_offset(offset_end) if not end_iter.ends_line(): end_iter.forward_to_line_end() end_iter.forward_char() self.source_buffer.apply_tag(self.tag, start_iter, end_iter) Setzer-0.4.4/setzer/document/content/000077500000000000000000000000001420322575300176025ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/content/__init__.py000066400000000000000000000000001420322575300217010ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/content/content.py000066400000000000000000001073721420322575300216400ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('GtkSource', '4') from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from gi.repository import GtkSource import re import time import difflib import math import setzer.document.content.parser.parser_dummy as parser_dummy import setzer.document.content.parser.parser_bibtex as parser_bibtex import setzer.document.content.parser.parser_latex as parser_latex from setzer.app.service_locator import ServiceLocator from setzer.helpers.observable import Observable import setzer.helpers.timer as timer class Content(Observable): def __init__(self, language): Observable.__init__(self) self.settings = ServiceLocator.get_settings() self.source_buffer = GtkSource.Buffer() self.source_view = GtkSource.View.new_with_buffer(self.source_buffer) self.source_language_manager = ServiceLocator.get_source_language_manager() self.source_style_scheme_manager = ServiceLocator.get_source_style_scheme_manager() if language == 'bibtex': self.source_language = self.source_language_manager.get_language('bibtex') else: self.source_language = self.source_language_manager.get_language('latex') self.source_buffer.set_language(self.source_language) self.update_syntax_scheme() self.symbols = dict() self.symbols['bibitems'] = set() self.symbols['labels'] = set() self.symbols['included_latex_files'] = set() self.symbols['bibliographies'] = set() self.symbols['packages'] = set() self.symbols['packages_detailed'] = dict() self.symbols['blocks'] = list() if language == 'bibtex': self.parser = parser_bibtex.ParserBibTeX(self) elif language == 'latex': self.parser = parser_latex.ParserLaTeX(self) else: self.parser = parser_dummy.ParserDummy(self) self.color_manager = ServiceLocator.get_color_manager() self.font_manager = ServiceLocator.get_font_manager() options = self.settings.get_source_buffer_options() self.tab_width = options['tab_width'] self.spaces_instead_of_tabs = options['spaces_instead_of_tabs'] self.mover_mark = self.source_buffer.create_mark('mover', self.source_buffer.get_start_iter(), True) self.insert_position = 0 self.synctex_tag_count = 0 self.synctex_highlight_tags = dict() self.indentation_update = None self.indentation_tags = dict() self.placeholder_tag = self.source_buffer.create_tag('placeholder') self.placeholder_tag.set_property('background', '#fce94f') self.placeholder_tag.set_property('foreground', '#000') self.source_buffer.connect('mark-set', self.on_mark_set) self.source_buffer.connect('mark-deleted', self.on_mark_deleted) self.source_buffer.connect('insert-text', self.on_insert_text) self.source_buffer.connect('delete-range', self.on_delete_range) self.source_buffer.connect('changed', self.on_buffer_changed) self.source_buffer.connect('modified-changed', self.on_modified_changed) self.undo_manager = self.source_buffer.get_undo_manager() self.undo_manager.connect('can-undo-changed', self.on_can_undo_changed) self.undo_manager.connect('can-redo-changed', self.on_can_redo_changed) self.settings.connect('settings_changed', self.on_settings_changed) def on_settings_changed(self, settings, parameter): section, item, value = parameter if (section, item) == ('preferences', 'tab_width'): self.tab_width = self.settings.get_value('preferences', 'tab_width') if (section, item) == ('preferences', 'spaces_instead_of_tabs'): self.spaces_instead_of_tabs = self.settings.get_value('preferences', 'spaces_instead_of_tabs') if (section, item) in [('preferences', 'syntax_scheme'), ('preferences', 'syntax_scheme_dark_mode')]: self.update_syntax_scheme() def on_insert_text(self, buffer, location_iter, text, text_length): self.parser.on_text_inserted(buffer, location_iter, text, text_length) self.indentation_update = {'line_start': location_iter.get_line(), 'text_length': text_length} self.add_change_code('text_inserted', (buffer, location_iter, text, text_length)) def on_delete_range(self, buffer, start_iter, end_iter): self.parser.on_text_deleted(buffer, start_iter, end_iter) self.indentation_update = {'line_start': start_iter.get_line(), 'text_length': 0} self.add_change_code('text_deleted', (buffer, start_iter, end_iter)) def on_modified_changed(self, buffer): self.add_change_code('modified_changed') def on_can_undo_changed(self, undo_manager): self.add_change_code('can_undo_changed', self.undo_manager.can_undo()) def on_can_redo_changed(self, undo_manager): self.add_change_code('can_redo_changed', self.undo_manager.can_redo()) def on_buffer_changed(self, buffer): self.update_indentation_tags() self.update_placeholder_selection() self.add_change_code('buffer_changed', buffer) if self.is_empty(): self.add_change_code('document_not_empty') else: self.add_change_code('document_empty') def on_mark_set(self, buffer, insert, mark, user_data=None): if mark.get_name() == 'insert': self.update_placeholder_selection() self.add_change_code('insert_mark_set') self.update_selection_state() def on_mark_deleted(self, buffer, mark, user_data=None): if mark.get_name() == 'insert': self.add_change_code('insert_mark_deleted') self.update_selection_state() def initially_set_text(self, text): self.source_buffer.begin_not_undoable_action() self.source_buffer.set_text(text) self.source_buffer.end_not_undoable_action() self.source_buffer.set_modified(False) def update_selection_state(self): self.add_change_code('selection_might_have_changed', self.source_buffer.get_has_selection()) def update_syntax_scheme(self): name = self.settings.get_value('preferences', 'syntax_scheme') self.source_style_scheme_light = self.source_style_scheme_manager.get_scheme(name) name = self.settings.get_value('preferences', 'syntax_scheme_dark_mode') self.source_style_scheme_dark = self.source_style_scheme_manager.get_scheme(name) self.set_use_dark_scheme(ServiceLocator.get_is_dark_mode()) def set_use_dark_scheme(self, use_dark_scheme): if use_dark_scheme: self.source_buffer.set_style_scheme(self.source_style_scheme_dark) else: self.source_buffer.set_style_scheme(self.source_style_scheme_light) def get_style_scheme(self): return self.source_buffer.get_style_scheme() def get_can_undo(self): return self.undo_manager.can_undo() def get_can_redo(self): return self.undo_manager.can_redo() #@timer.timer def update_indentation_tags(self): if self.indentation_update != None: start_iter = self.source_buffer.get_iter_at_line(self.indentation_update['line_start']) end_iter = start_iter.copy() end_iter.forward_chars(self.indentation_update['text_length']) end_iter.forward_to_line_end() start_iter.set_line_offset(0) text = self.source_buffer.get_text(start_iter, end_iter, True) for count, line in enumerate(text.splitlines()): for tag in start_iter.get_tags(): self.source_buffer.remove_tag(tag, start_iter, end_iter) number_of_characters = len(line.replace('\t', ' ' * self.tab_width)) - len(line.lstrip()) if number_of_characters > 0: end_iter = start_iter.copy() end_iter.forward_chars(1) self.source_buffer.apply_tag(self.get_indentation_tag(number_of_characters), start_iter, end_iter) start_iter.forward_line() self.indentation_update = None def get_indentation_tag(self, number_of_characters): try: tag = self.indentation_tags[number_of_characters] except KeyError: tag = self.source_buffer.create_tag('indentation-' + str(number_of_characters)) tag.set_property('indent', -1 * number_of_characters * self.font_manager.get_char_width(' ')) self.indentation_tags[number_of_characters] = tag return tag def insert_before_document_end(self, text): end_iter = self.source_buffer.get_end_iter() result = end_iter.backward_search('\\end{document}', Gtk.TextSearchFlags.VISIBLE_ONLY, None) if result != None: self.insert_text_at_iter(result[0], ''' ''' + text + ''' ''', False) else: self.insert_text_at_cursor(text) def insert_text(self, line_number, offset, text, indent_lines=True): insert_iter = self.source_buffer.get_iter_at_line_offset(line_number, offset) self.insert_text_at_iter(insert_iter, text, indent_lines) def insert_text_at_iter(self, insert_iter, text, indent_lines=True): self.source_buffer.place_cursor(insert_iter) self.insert_text_at_cursor(text, indent_lines) def insert_text_at_cursor(self, text, indent_lines=True, select_dot=True): self.source_buffer.begin_user_action() # replace tabs with spaces, if set in preferences if self.spaces_instead_of_tabs: number_of_spaces = self.tab_width text = text.replace('\t', ' ' * number_of_spaces) dotcount = text.count('•') insert_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) bounds = self.source_buffer.get_selection_bounds() selection = '' if dotcount == 1: bounds = self.source_buffer.get_selection_bounds() if len(bounds) > 0: selection = self.source_buffer.get_text(bounds[0], bounds[1], True) if len(selection) > 0: text = text.replace('•', selection, 1) if indent_lines: line_iter = self.source_buffer.get_iter_at_line(insert_iter.get_line()) ws_line = self.source_buffer.get_text(line_iter, insert_iter, False) lines = text.split('\n') ws_number = len(ws_line) - len(ws_line.lstrip()) whitespace = ws_line[:ws_number] final_text = '' for no, line in enumerate(lines): if no != 0: final_text += '\n' + whitespace final_text += line else: final_text = text self.source_buffer.delete_selection(False, False) self.source_buffer.insert_at_cursor(final_text) if select_dot: dotindex = final_text.find('•') if dotcount > 0: selection_len = len(selection) if dotcount == 1 else 0 start = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) start.backward_chars(abs(dotindex + selection_len - len(final_text))) self.source_buffer.place_cursor(start) end = start.copy() end.forward_char() self.source_buffer.select_range(start, end) self.source_buffer.end_user_action() def insert_template(self, template_start, template_end): self.source_buffer.begin_user_action() bounds = self.source_buffer.get_bounds() text = self.source_buffer.get_text(bounds[0], bounds[1], True) line_count_before_insert = self.source_buffer.get_line_count() # replace tabs with spaces, if set in preferences if self.settings.get_value('preferences', 'spaces_instead_of_tabs'): number_of_spaces = self.settings.get_value('preferences', 'tab_width') template_start = template_start.replace('\t', ' ' * number_of_spaces) template_end = template_end.replace('\t', ' ' * number_of_spaces) bounds = self.source_buffer.get_bounds() self.source_buffer.insert(bounds[0], template_start) bounds = self.source_buffer.get_bounds() self.source_buffer.insert(bounds[1], template_end) bounds = self.source_buffer.get_bounds() bounds[0].forward_chars(len(template_start)) self.source_buffer.place_cursor(bounds[0]) self.source_buffer.end_user_action() self.source_buffer.begin_user_action() if len(text.strip()) > 0: note = _('''% NOTE: The content of your document has been commented out % by the wizard. Just do a CTRL+Z (undo) to put it back in % or remove the "%" before each line you want to keep. % You can remove this note as well. % ''') note_len = len(note) note_number_of_lines = note.count('\n') offset = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_line() self.source_buffer.insert(self.source_buffer.get_iter_at_line(offset), note) for line_number in range(offset + note_number_of_lines, line_count_before_insert + offset + note_number_of_lines): self.source_buffer.insert(self.source_buffer.get_iter_at_line(line_number), '% ') insert_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) insert_iter.backward_chars(note_len + 2) self.source_buffer.place_cursor(insert_iter) self.source_buffer.end_user_action() def replace_range_by_offset_and_length(self, offset, length, text, indent_lines=True, select_dot=True): start_iter = self.source_buffer.get_iter_at_offset(offset) end_iter = self.source_buffer.get_iter_at_offset(offset + length) self.replace_range(start_iter, end_iter, text, indent_lines, select_dot) def replace_range(self, start_iter, end_iter, text, indent_lines=True, select_dot=True): self.source_buffer.begin_user_action() self.replace_range_no_user_action(start_iter, end_iter, text, indent_lines, select_dot) self.source_buffer.end_user_action() def replace_range_no_user_action(self, start_iter, end_iter, text, indent_lines=True, select_dot=True): if indent_lines: line_iter = self.source_buffer.get_iter_at_line(start_iter.get_line()) ws_line = self.source_buffer.get_text(line_iter, start_iter, False) lines = text.split('\n') ws_number = len(ws_line) - len(ws_line.lstrip()) whitespace = ws_line[:ws_number] final_text = '' for no, line in enumerate(lines): if no != 0: final_text += '\n' + whitespace final_text += line else: final_text = text self.source_buffer.delete(start_iter, end_iter) self.source_buffer.insert(start_iter, final_text) if select_dot: dotindex = final_text.find('•') if dotindex > -1: start_iter.backward_chars(abs(dotindex - len(final_text))) bound = start_iter.copy() bound.forward_chars(1) self.source_buffer.select_range(start_iter, bound) def insert_before_after(self, before, after): bounds = self.source_buffer.get_selection_bounds() if len(bounds) > 1: text = before + self.source_buffer.get_text(*bounds, 0) + after self.replace_range(bounds[0], bounds[1], text) else: text = before + '•' + after self.insert_text_at_cursor(text) def comment_uncomment(self): self.source_buffer.begin_user_action() bounds = self.source_buffer.get_selection_bounds() if len(bounds) > 1: end = (bounds[1].get_line() + 1) if (bounds[1].get_line_index() > 0) else bounds[1].get_line() line_numbers = list(range(bounds[0].get_line(), end)) else: line_numbers = [self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_line()] do_comment = False for line_number in line_numbers: line = self.get_line(line_number) if not line.lstrip().startswith('%'): do_comment = True if do_comment: for line_number in line_numbers: self.source_buffer.insert(self.source_buffer.get_iter_at_line(line_number), '%') else: for line_number in line_numbers: line = self.get_line(line_number) offset = len(line) - len(line.lstrip()) start = self.source_buffer.get_iter_at_line(line_number) start.forward_chars(offset) end = start.copy() end.forward_char() self.source_buffer.delete(start, end) self.source_buffer.end_user_action() def add_backslash_with_space(self): self.source_buffer.insert_at_cursor('\\ ') insert_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) insert_iter.backward_char() self.source_buffer.place_cursor(insert_iter) def autoadd_latex_brackets(self, char): if self.get_char_before_cursor() == '\\': add_char = '\\' else: add_char = '' if char == '[': self.source_buffer.begin_user_action() self.source_buffer.delete_selection(True, True) self.source_buffer.insert_at_cursor('[' + add_char + ']') self.source_buffer.end_user_action() if char == '{': self.source_buffer.begin_user_action() self.source_buffer.delete_selection(True, True) self.source_buffer.insert_at_cursor('{' + add_char + '}') self.source_buffer.end_user_action() if char == '(': self.source_buffer.begin_user_action() self.source_buffer.delete_selection(True, True) self.source_buffer.insert_at_cursor('(' + add_char + ')') self.source_buffer.end_user_action() insert_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) insert_iter.backward_char() if add_char == '\\': insert_iter.backward_char() self.source_buffer.place_cursor(insert_iter) def get_char_at_cursor(self): start_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) end_iter = start_iter.copy() end_iter.forward_char() return self.source_buffer.get_text(start_iter, end_iter, False) def get_char_before_cursor(self): start_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) end_iter = start_iter.copy() end_iter.backward_char() return self.source_buffer.get_text(start_iter, end_iter, False) def get_latex_command_at_cursor(self): insert_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) limit_iter = insert_iter.copy() limit_iter.backward_chars(50) word_start_iter = insert_iter.copy() result = word_start_iter.backward_search('\\', Gtk.TextSearchFlags.TEXT_ONLY, limit_iter) if result != None: word_start_iter = result[0] word = word_start_iter.get_slice(insert_iter) return word def get_latex_command_at_cursor_offset(self): insert_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) limit_iter = insert_iter.copy() limit_iter.backward_chars(50) word_start_iter = insert_iter.copy() result = word_start_iter.backward_search('\\', Gtk.TextSearchFlags.TEXT_ONLY, limit_iter) if result != None: word_start_iter = result[0] return word_start_iter.get_offset() return None def replace_latex_command_at_cursor(self, text, dotlabels, is_full_command=False): insert_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) current_word = self.get_latex_command_at_cursor() start_iter = insert_iter.copy() start_iter.backward_chars(len(current_word)) if is_full_command and text.startswith('\\begin'): end_command = text.replace('\\begin', '\\end') end_command_bracket_position = end_command.find('}') if end_command_bracket_position: end_command = end_command[:end_command_bracket_position + 1] text += '\n\t•\n' + end_command if self.spaces_instead_of_tabs: number_of_spaces = self.tab_width text = text.replace('\t', ' ' * number_of_spaces) dotlabels += 'content###' if end_command.find('•') >= 0: dotlabels += 'environment###' line_iter = self.source_buffer.get_iter_at_line(start_iter.get_line()) ws_line = self.source_buffer.get_text(line_iter, start_iter, False) lines = text.split('\n') ws_number = len(ws_line) - len(ws_line.lstrip()) whitespace = ws_line[:ws_number] text = '' for no, line in enumerate(lines): if no != 0: text += '\n' + whitespace text += line parts = text.split('•') if len(parts) == 1: orig_text = self.source_buffer.get_text(start_iter, insert_iter, False) if parts[0].startswith(orig_text): self.source_buffer.insert_at_cursor(parts[0][len(orig_text):]) else: self.replace_range(start_iter, insert_iter, parts[0], indent_lines=True, select_dot=True) else: self.source_buffer.begin_user_action() self.source_buffer.delete(start_iter, insert_iter) insert_offset = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_offset() count = len(parts) select_dot_offset = -1 for part in parts: insert_iter = self.source_buffer.get_iter_at_offset(insert_offset) insert_offset += len(part) self.source_buffer.insert(insert_iter, part) if count > 1: insert_iter = self.source_buffer.get_iter_at_offset(insert_offset) self.source_buffer.insert_with_tags(insert_iter, '•', self.placeholder_tag) if select_dot_offset == -1: select_dot_offset = insert_offset insert_offset += 1 count -= 1 select_dot_iter = self.source_buffer.get_iter_at_offset(select_dot_offset) bound = select_dot_iter.copy() bound.forward_chars(1) self.source_buffer.select_range(select_dot_iter, bound) self.source_buffer.end_user_action() def get_line_at_cursor(self): return self.get_line(self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_line()) def get_line(self, line_number): start = self.source_buffer.get_iter_at_line(line_number) end = start.copy() if not end.ends_line(): end.forward_to_line_end() return self.source_buffer.get_slice(start, end, False) def get_all_text(self): return self.source_buffer.get_text(self.source_buffer.get_start_iter(), self.source_buffer.get_end_iter(), True) def get_text_after_offset(self, offset): return self.source_buffer.get_text(self.source_buffer.get_iter_at_offset(offset), self.source_buffer.get_end_iter(), True) def get_selected_text(self): bounds = self.source_buffer.get_selection_bounds() if len(bounds) == 2: return self.source_buffer.get_text(bounds[0], bounds[1], True) else: return None def get_current_line_number(self): return self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_line() def is_empty(self): return self.source_buffer.get_end_iter().get_offset() > 0 def update_placeholder_selection(self): if self.get_cursor_offset() != self.insert_position: if not self.source_buffer.get_selection_bounds(): start_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) prev_iter = start_iter.copy() prev_iter.backward_char() if start_iter.has_tag(self.placeholder_tag): while start_iter.has_tag(self.placeholder_tag): start_iter.backward_char() if not start_iter.has_tag(self.placeholder_tag): start_iter.forward_char() end_iter = start_iter.copy() tag_length = 0 while end_iter.has_tag(self.placeholder_tag): tag_length += 1 end_iter.forward_char() moved_backward_from_end = (self.insert_position == self.get_cursor_offset() + tag_length) if not moved_backward_from_end: self.source_buffer.select_range(start_iter, end_iter) elif prev_iter.has_tag(self.placeholder_tag): while prev_iter.has_tag(self.placeholder_tag): prev_iter.backward_char() if not prev_iter.has_tag(self.placeholder_tag): prev_iter.forward_char() end_iter = prev_iter.copy() tag_length = 0 while end_iter.has_tag(self.placeholder_tag): tag_length += 1 end_iter.forward_char() moved_forward_from_start = (self.insert_position == self.get_cursor_offset() - tag_length) if not moved_forward_from_start: self.source_buffer.select_range(prev_iter, end_iter) self.insert_position = self.get_cursor_offset() def set_synctex_position(self, position): start = self.source_buffer.get_iter_at_line(position['line']) end = start.copy() if not start.ends_line(): end.forward_to_line_end() text = self.source_buffer.get_text(start, end, False) matches = self.get_synctex_word_bounds(text, position['word'], position['context']) if matches != None: for word_bounds in matches: end = start.copy() new_start = start.copy() new_start.forward_chars(word_bounds[0]) end.forward_chars(word_bounds[1]) self.add_synctex_tag(new_start, end) else: ws_number = len(text) - len(text.lstrip()) start.forward_chars(ws_number) self.add_synctex_tag(start, end) def add_synctex_tag(self, start_iter, end_iter): self.source_buffer.place_cursor(start_iter) self.synctex_tag_count += 1 self.source_buffer.create_tag('synctex_highlight-' + str(self.synctex_tag_count), background_rgba=self.color_manager.get_rgba(0.976, 0.941, 0.420, 0.6), background_full_height=True) tag = self.source_buffer.get_tag_table().lookup('synctex_highlight-' + str(self.synctex_tag_count)) self.source_buffer.apply_tag(tag, start_iter, end_iter) if not self.synctex_highlight_tags: GObject.timeout_add(15, self.remove_or_color_synctex_tags) self.synctex_highlight_tags[self.synctex_tag_count] = {'tag': tag, 'time': time.time()} def get_synctex_word_bounds(self, text, word, context): if not word: return None word = word.split(' ') if len(word) > 2: word = word[:2] word = ' '.join(word) regex_pattern = re.escape(word) for c in regex_pattern: if ord(c) > 127: regex_pattern = regex_pattern.replace(c, '(?:\w)') matches = list() top_score = 0.1 regex = ServiceLocator.get_regex_object(r'(\W{0,1})' + regex_pattern.replace('\x1b', r'(?:\w{2,3})').replace('\x1c', r'(?:\w{2})').replace('\x1d', r'(?:\w{2,3})').replace('\-', r'(?:-{0,1})') + r'(\W{0,1})') for match in regex.finditer(text): offset1 = context.find(word) offset2 = len(context) - offset1 - len(word) match_text = text[max(match.start() - max(offset1, 0), 0):min(match.end() + max(offset2, 0), len(text))] score = difflib.SequenceMatcher(None, match_text, context).ratio() if bool(match.group(1)) or bool(match.group(2)): if score > top_score + 0.1: top_score = score matches = [[match.start() + len(match.group(1)), match.end() - len(match.group(2))]] elif score > top_score - 0.1: matches.append([match.start() + len(match.group(1)), match.end() - len(match.group(2))]) if len(matches) > 0: return matches else: return None def remove_or_color_synctex_tags(self): for tag_count in list(self.synctex_highlight_tags): item = self.synctex_highlight_tags[tag_count] time_factor = time.time() - item['time'] if time_factor > 1.5: if time_factor <= 1.75: opacity_factor = int(self.ease(1 - (time_factor - 1.5) * 4) * 20) item['tag'].set_property('background-rgba', self.color_manager.get_rgba(0.976, 0.941, 0.420, opacity_factor * 0.03)) else: start = self.source_buffer.get_start_iter() end = self.source_buffer.get_end_iter() self.source_buffer.remove_tag(item['tag'], start, end) self.source_buffer.get_tag_table().remove(item['tag']) del(self.synctex_highlight_tags[tag_count]) return bool(self.synctex_highlight_tags) def ease(self, factor): return (factor - 1)**3 + 1 def place_cursor(self, line_number, offset=0): text_iter = self.source_buffer.get_iter_at_line_offset(line_number, offset) self.source_buffer.place_cursor(text_iter) def get_cursor_offset(self): return self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_offset() def get_cursor_line_offset(self): return self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_line_offset() def get_cursor_line_number(self): return self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).get_line() def cursor_ends_word(self): return self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()).ends_word() def cut(self): self.copy() self.delete_selection() def copy(self): text = self.get_selected_text() if text != None: clipboard = self.source_view.get_clipboard(Gdk.SELECTION_CLIPBOARD) clipboard.set_text(text, -1) def paste(self): self.source_view.emit('paste-clipboard') def delete_selection(self): self.source_buffer.delete_selection(True, True) def select_all(self, widget=None): self.source_buffer.select_range(self.source_buffer.get_start_iter(), self.source_buffer.get_end_iter()) def get_modified(self): return self.source_buffer.get_modified() def set_modified(self, modified): self.source_buffer.set_modified(modified) def undo(self): self.source_buffer.undo() def redo(self): self.source_buffer.redo() def scroll_cursor_onscreen(self): text_iter = self.source_buffer.get_iter_at_mark(self.source_buffer.get_insert()) visible_lines = self.get_number_of_visible_lines() iter_position = self.source_view.get_iter_location(text_iter).y end_yrange = self.source_view.get_line_yrange(self.source_buffer.get_end_iter()) buffer_height = end_yrange.y + end_yrange.height line_height = self.font_manager.get_line_height() window_offset = self.source_view.get_visible_rect().y window_height = self.source_view.get_visible_rect().height gap = min(math.floor(max((visible_lines - 2), 0) / 2), 5) if iter_position < window_offset + gap * line_height: scroll_iter = self.source_view.get_iter_at_location(0, max(iter_position - gap * line_height, 0)).iter self.source_buffer.move_mark(self.mover_mark, scroll_iter) self.source_view.scroll_to_mark(self.mover_mark, 0, False, 0, 0) return gap = min(math.floor(max((visible_lines - 2), 0) / 2), 8) if iter_position > (window_offset + window_height - (gap + 1) * line_height): scroll_iter = self.source_view.get_iter_at_location(0, min(iter_position + gap * line_height, buffer_height)).iter self.source_buffer.move_mark(self.mover_mark, scroll_iter) self.source_view.scroll_to_mark(self.mover_mark, 0, False, 0, 0) def get_number_of_visible_lines(self): line_height = self.font_manager.get_line_height() return math.floor(self.source_view.get_visible_rect().height / line_height) def get_bibitems(self): return self.symbols['bibitems'] def add_packages(self, packages): first_package = True text = '' for packagename in packages: if not first_package: text += '\n' text += '\\usepackage{' + packagename + '}' first_package = False package_data = self.get_package_details() if package_data: max_end = 0 for package in package_data.items(): if package[1].end() > max_end: max_end = package[1].end() insert_iter = self.source_buffer.get_iter_at_offset(max_end) if not insert_iter.ends_line(): insert_iter.forward_to_line_end() self.insert_text_at_iter(insert_iter, '\n' + text) else: end_iter = self.source_buffer.get_end_iter() result = end_iter.backward_search('\\documentclass', Gtk.TextSearchFlags.VISIBLE_ONLY, None) if result != None: result[0].forward_to_line_end() self.insert_text_at_iter(result[0], '\n' + text) else: self.insert_text_at_cursor(text) def remove_packages(self, packages): packages_dict = self.get_package_details() for package in packages: try: match_obj = packages_dict[package] except KeyError: return start_iter = self.source_buffer.get_iter_at_offset(match_obj.start()) end_iter = self.source_buffer.get_iter_at_offset(match_obj.end()) text = self.source_buffer.get_text(start_iter, end_iter, False) if text == match_obj.group(0): if start_iter.get_line_offset() == 0: start_iter.backward_char() self.source_buffer.delete(start_iter, end_iter) def get_packages(self): return self.symbols['packages'] def get_package_details(self): return self.symbols['packages_detailed'] def get_blocks(self): return self.symbols['blocks'] def set_blocks(self, blocks): self.symbols['blocks'] = blocks def get_included_latex_files(self): return self.symbols['included_latex_files'] def get_bibliography_files(self): return self.symbols['bibliographies'] def get_labels(self): return self.symbols['labels'] Setzer-0.4.4/setzer/document/content/parser/000077500000000000000000000000001420322575300210765ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/content/parser/__init__.py000066400000000000000000000000001420322575300231750ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/content/parser/parser_bibtex.py000066400000000000000000000032551420322575300243060ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.app.service_locator import ServiceLocator from setzer.helpers.timer import timer class ParserBibTeX(object): def __init__(self, content): self.content = content self.text = '' #@timer def on_text_deleted(self, buffer, start_iter, end_iter): start_offset = start_iter.get_offset() end_offset = end_iter.get_offset() self.text = self.text[:start_offset] + self.text[end_offset:] self.parse_symbols(self.text) #@timer def on_text_inserted(self, buffer, location_iter, text, text_length): offset = location_iter.get_offset() self.text = self.text[:offset] + text + self.text[offset:] self.parse_symbols(self.text) #@timer def parse_symbols(self, text): bibitems = set() for match in ServiceLocator.get_regex_object(r'@(\w+)\{(\w+)').finditer(text): bibitems = bibitems | {match.group(2).strip()} self.content.symbols['bibitems'] = bibitems Setzer-0.4.4/setzer/document/content/parser/parser_dummy.py000066400000000000000000000017161420322575300241640ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 class ParserDummy(object): def __init__(self, content): self.content = content def on_text_deleted(self, buffer, start_iter, end_iter): pass def on_text_inserted(self, buffer, location_iter, text, text_length): pass Setzer-0.4.4/setzer/document/content/parser/parser_latex.py000066400000000000000000000300171420322575300241420ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.app.service_locator import ServiceLocator from setzer.helpers.timer import timer class ParserLaTeX(object): def __init__(self, content): self.content = content self.text_length = 0 self.number_of_lines = 0 self.block_symbol_matches = {'begin_or_end': list(), 'others': list()} self.other_symbols = list() #@timer def on_text_deleted(self, buffer, start_iter, end_iter): offset_start = start_iter.get_offset() offset_end = end_iter.get_offset() line_start = start_iter.get_line() line_end = end_iter.get_line() char_count = buffer.get_char_count() before_iter = buffer.get_iter_at_line(line_start) after_iter = buffer.get_iter_at_line(line_end + 1) if not after_iter.get_offset() == char_count: after_iter.backward_char() text_length = offset_end - offset_start text = buffer.get_text(start_iter, end_iter, True) deleted_line_count = text.count('\n') text_before = buffer.get_text(before_iter, start_iter, True) text_after = buffer.get_text(end_iter, after_iter, True) offset_line_start = before_iter.get_offset() self.text_length = char_count - offset_end + offset_start block_symbol_matches = {'begin_or_end': list(), 'others': list()} for match in self.block_symbol_matches['begin_or_end']: if match[1] < line_start: block_symbol_matches['begin_or_end'].append(match) for match in self.block_symbol_matches['others']: if match[1] < line_start: block_symbol_matches['others'].append(match) other_symbols = list() for match in self.other_symbols: if match[1] < offset_line_start: other_symbols.append((match[0], match[1])) offset_line_end = offset_end + len(text_after) text = text_before + text_after additional_matches = self.parse_for_blocks(text, line_start, offset_line_start) block_symbol_matches['begin_or_end'] += additional_matches['begin_or_end'] block_symbol_matches['others'] += additional_matches['others'] for match in ServiceLocator.get_regex_object(r'\\(label|include|input|bibliography|addbibresource)\{((?:\s|\w|\:|\.|,)*)\}|\\(usepackage)(?:\[[^\{\[]*\]){0,1}\{((?:\s|\w|\:|,)*)\}|\\(bibitem)(?:\[.*\]){0,1}\{((?:\s|\w|\:)*)\}').finditer(text): other_symbols.append((match, match.start() + offset_line_start)) for match in self.block_symbol_matches['begin_or_end']: if match[1] > line_end: block_symbol_matches['begin_or_end'].append((match[0], match[1] - deleted_line_count, match[2] - text_length)) for match in self.block_symbol_matches['others']: if match[1] > line_end: block_symbol_matches['others'].append((match[0], match[1] - deleted_line_count, match[2] - text_length)) for match in self.other_symbols: if match[1] > offset_line_end: other_symbols.append((match[0], match[1] - text_length)) self.block_symbol_matches = block_symbol_matches self.number_of_lines = self.number_of_lines - deleted_line_count self.parse_blocks() self.other_symbols = other_symbols self.parse_symbols() #@timer def on_text_inserted(self, buffer, location_iter, text, text_length): text_length = len(text) offset = location_iter.get_offset() new_line_count = text.count('\n') line_start = location_iter.get_line() char_count = buffer.get_char_count() before_iter = buffer.get_iter_at_line(line_start) after_iter = buffer.get_iter_at_line(line_start + 1) if not after_iter.get_offset() == char_count: after_iter.backward_char() text_before = buffer.get_text(before_iter, location_iter, True) offset_line_start = before_iter.get_offset() text_after = buffer.get_text(location_iter, after_iter, True) offset_line_end = offset + len(text_after) self.text_length = char_count + text_length text_parse = text_before + text + text_after block_symbol_matches = {'begin_or_end': list(), 'others': list()} for match in self.block_symbol_matches['begin_or_end']: if match[1] < line_start: block_symbol_matches['begin_or_end'].append(match) for match in self.block_symbol_matches['others']: if match[1] < line_start: block_symbol_matches['others'].append(match) other_symbols = list() for match in self.other_symbols: if match[1] < offset_line_start: other_symbols.append((match[0], match[1])) additional_matches = self.parse_for_blocks(text_parse, line_start, offset_line_start) block_symbol_matches['begin_or_end'] += additional_matches['begin_or_end'] block_symbol_matches['others'] += additional_matches['others'] for match in ServiceLocator.get_regex_object(r'\\(label|include|input|bibliography|addbibresource)\{((?:\s|\w|\:|\.|,)*)\}|\\(usepackage)(?:\[[^\{\[]*\]){0,1}\{((?:\s|\w|\:|,)*)\}|\\(bibitem)(?:\[.*\]){0,1}\{((?:\s|\w|\:)*)\}').finditer(text_parse): other_symbols.append((match, match.start() + offset_line_start)) for match in self.block_symbol_matches['begin_or_end']: if match[1] > line_start: block_symbol_matches['begin_or_end'].append((match[0], match[1] + new_line_count, match[2] + text_length)) for match in self.block_symbol_matches['others']: if match[1] > line_start: block_symbol_matches['others'].append((match[0], match[1] + new_line_count, match[2] + text_length)) for match in self.other_symbols: if match[1] > offset_line_end: other_symbols.append((match[0], match[1] - text_length)) self.block_symbol_matches = block_symbol_matches self.number_of_lines = self.number_of_lines + new_line_count self.parse_blocks() self.other_symbols = other_symbols self.parse_symbols() #@timer def parse_for_blocks(self, text, line_start, offset_line_start): block_symbol_matches = {'begin_or_end': list(), 'others': list()} counter = line_start for match in ServiceLocator.get_regex_object(r'\n|\\(begin|end)\{((?:\w|•|\*)+)\}|\\(part|chapter|section|subsection|subsubsection)(?:\*){0,1}\{').finditer(text): if match.group(1) != None: block_symbol_matches['begin_or_end'].append((match, counter, match.start() + offset_line_start)) elif match.group(3) != None: block_symbol_matches['others'].append((match, counter, match.start() + offset_line_start)) if match.group(0) == '\n': counter += 1 return block_symbol_matches #@timer def parse_blocks(self): blocks = dict() add_preamble_folding = True end_document_offset = None end_document_line = None begin_document_offset = None begin_document_line = None blocks_list = list() for (match, line_number, offset) in self.block_symbol_matches['begin_or_end']: if line_number == 0: add_preamble_folding = False if match.group(1) == 'begin': if match.group(2).strip() == 'document': begin_document_offset = offset begin_document_line = line_number try: blocks[match.group(2)].append([offset, None, line_number, None]) except KeyError: blocks[match.group(2)] = [[offset, None, line_number, None]] else: if match.group(2).strip() == 'document': end_document_offset = offset end_document_line = line_number try: blocks_begin = blocks[match.group(2)] except KeyError: pass else: try: block_begin = blocks_begin.pop() except IndexError: pass else: block_begin[1] = offset block_begin[3] = line_number blocks_list.append(block_begin) relevant_following_blocks = [list(), list(), list(), list(), list()] levels = {'part': 0, 'chapter': 1, 'section': 2, 'subsection': 3, 'subsubsection': 4} for (match, line_number, offset) in reversed(self.block_symbol_matches['others']): if line_number == 0: add_preamble_folding = False level = levels[match.group(3)] block = [offset, None, line_number, None] if len(relevant_following_blocks[level]) >= 1: # - 1 to go one line up block[1] = relevant_following_blocks[level][-1][0] - 1 block[3] = relevant_following_blocks[level][-1][2] - 1 else: if end_document_offset != None and block[0] < end_document_offset: # - 1 to go one line up block[1] = end_document_offset - 1 block[3] = end_document_line - 1 else: block[1] = self.text_length block[3] = self.number_of_lines blocks_list.append(block) for i in range(level, 5): relevant_following_blocks[i].append(block) if add_preamble_folding and begin_document_offset and begin_document_line: blocks_list.append([0, begin_document_offset - 1, 0, begin_document_line - 1]) self.content.set_blocks(sorted(blocks_list, key=lambda block: block[0])) #@timer def parse_symbols(self): labels = set() included_latex_files = set() bibliographies = set() bibitems = set() packages = set() packages_detailed = dict() for match in self.other_symbols: match = match[0] if match.group(1) == 'label': labels = labels | {match.group(2).strip()} elif match.group(1) == 'include' or match.group(1) == 'input': filename = match.group(2).strip() if not filename.endswith('.tex'): filename += '.tex' included_latex_files = included_latex_files | {filename} elif match.group(1) == 'bibliography': bibfiles = match.group(2).strip().split(',') for entry in bibfiles: bibliographies = bibliographies | {entry.strip() + '.bib'} elif match.group(1) == 'addbibresource': bibfiles = match.group(2).strip().split(',') for entry in bibfiles: bibliographies = bibliographies | {entry.strip()} elif match.group(3) == 'usepackage': packages = packages | {match.group(4).strip()} packages_detailed[match.group(4).strip()] = match elif match.group(5) == 'bibitem': bibitems = bibitems | {match.group(6).strip()} self.content.symbols['labels'] = labels self.content.symbols['included_latex_files'] = included_latex_files self.content.symbols['bibliographies'] = bibliographies self.content.symbols['bibitems'] = bibitems self.content.symbols['packages'] = packages self.content.symbols['packages_detailed'] = packages_detailed Setzer-0.4.4/setzer/document/context_menu/000077500000000000000000000000001420322575300206405ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/context_menu/__init__.py000066400000000000000000000000001420322575300227370ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/context_menu/context_menu.py000066400000000000000000000151461420322575300237310ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import setzer.document.context_menu.context_menu_viewgtk as context_menu_view from setzer.app.service_locator import ServiceLocator class ContextMenu(object): def __init__(self, document, document_view): self.document = document self.document_view = document_view self.scbar_view = context_menu_view.ContextMenuView(document) stack = document_view.shortcutsbar_bottom.more_actions_popover.get_child() stack.add_named(self.scbar_view, 'main') self.scbar_view.model_button_undo.connect('clicked', self.on_undo) self.scbar_view.model_button_redo.connect('clicked', self.on_redo) self.scbar_view.model_button_cut.connect('clicked', self.on_cut) self.scbar_view.model_button_copy.connect('clicked', self.on_copy) self.scbar_view.model_button_paste.connect('clicked', self.on_paste) self.scbar_view.model_button_delete.connect('clicked', self.on_delete) self.scbar_view.model_button_select_all.connect('clicked', self.on_select_all) self.scbar_view.model_button_zoom_out.connect('button-press-event', self.on_zoom_out) self.scbar_view.model_button_zoom_in.connect('button-press-event', self.on_zoom_in) self.scbar_view.model_button_reset_zoom.connect('button-press-event', self.on_reset_zoom) if self.document.is_latex_document(): self.scbar_view.model_button_toggle_comment.connect('clicked', self.on_toggle_comment) self.scbar_view.model_button_show_in_preview.connect('clicked', self.on_show_in_preview) self.document_view.source_view.connect('populate-popup', self.on_populate_popup) self.document.content.connect('selection_might_have_changed', self.on_has_selection_changed) self.document.content.connect('can_undo_changed', self.on_can_undo_changed) self.document.content.connect('can_redo_changed', self.on_can_redo_changed) self.scbar_view.model_button_undo.set_sensitive(self.document.content.get_can_undo()) self.scbar_view.model_button_redo.set_sensitive(self.document.content.get_can_redo()) self.can_sync = False self.has_selection = False self.workspace = ServiceLocator.get_workspace() if self.document.is_latex_document(): self.workspace.connect('update_sync_state', self.on_update_sync_state) self.font_manager = ServiceLocator.get_font_manager() self.font_manager.connect('font_string_changed', self.on_font_string_changed) def on_font_string_changed(self, font_manager): zoom_level = self.font_manager.get_zoom_level() self.scbar_view.model_button_reset_zoom.set_label("{:.0%}".format(zoom_level)) def on_update_sync_state(self, workspace): self.can_sync = self.workspace.can_sync self.scbar_view.model_button_show_in_preview.set_sensitive(self.can_sync) def on_has_selection_changed(self, document, has_selection): self.scbar_view.model_button_cut.set_sensitive(has_selection) self.scbar_view.model_button_copy.set_sensitive(has_selection) self.scbar_view.model_button_delete.set_sensitive(has_selection) self.has_selection = has_selection def on_can_undo_changed(self, content, can_undo): self.scbar_view.model_button_undo.set_sensitive(can_undo) def on_can_redo_changed(self, content, can_redo): self.scbar_view.model_button_redo.set_sensitive(can_redo) def on_undo(self, widget=None): self.document.content.undo() def on_redo(self, widget=None): self.document.content.redo() def on_cut(self, widget=None): self.document.content.cut() def on_copy(self, widget=None): self.document.content.copy() def on_paste(self, widget=None): self.document.content.paste() def on_delete(self, widget=None): self.document.content.delete_selection() def on_select_all(self, widget=None): self.document.content.select_all() def on_zoom_out(self, widget=None, event=None): ServiceLocator.get_font_manager().zoom_out() return True def on_zoom_in(self, widget=None, event=None): ServiceLocator.get_font_manager().zoom_in() return True def on_reset_zoom(self, widget=None, event=None): ServiceLocator.get_font_manager().reset_zoom() return True def on_show_in_preview(self, widget=None): self.workspace.forward_sync(self.document) def on_toggle_comment(self, menu_item): self.document.content.comment_uncomment() def on_populate_popup(self, view, menu): rc_view = context_menu_view.RCMenuView() for item in menu.get_children(): menu.remove(item) menu.append(rc_view.menu_item_cut) menu.append(rc_view.menu_item_copy) menu.append(rc_view.menu_item_paste) menu.append(rc_view.menu_item_delete) menu.append(rc_view.separator_menu_item1) menu.append(rc_view.menu_item_select_all) rc_view.menu_item_cut.connect('activate', self.on_cut) rc_view.menu_item_copy.connect('activate', self.on_copy) rc_view.menu_item_paste.connect('activate', self.on_paste) rc_view.menu_item_delete.connect('activate', self.on_delete) rc_view.menu_item_select_all.connect('activate', self.on_select_all) rc_view.menu_item_cut.set_sensitive(self.has_selection) rc_view.menu_item_copy.set_sensitive(self.has_selection) rc_view.menu_item_delete.set_sensitive(self.has_selection) if self.document.is_latex_document(): rc_view.menu_item_comment.connect('activate', self.on_toggle_comment) rc_view.menu_item_show_in_preview.set_sensitive(self.can_sync) rc_view.menu_item_show_in_preview.connect('activate', self.on_show_in_preview) menu.append(rc_view.separator_menu_item2) menu.append(rc_view.menu_item_comment) menu.append(rc_view.menu_item_show_in_preview) menu.show_all() Setzer-0.4.4/setzer/document/context_menu/context_menu_viewgtk.py000066400000000000000000000134351420322575300254700ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class ContextMenuView(Gtk.VBox): def __init__(self, document): Gtk.VBox.__init__(self) self.set_margin_top(10) self.set_margin_bottom(10) self.set_margin_left(0) self.set_margin_right(0) self.model_button_undo = self.get_button(_('Undo'), keyboard_shortcut=_('Ctrl') + '+Z') self.model_button_redo = self.get_button(_('Redo'), keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+Z') self.model_button_cut = self.get_button(_('Cut'), keyboard_shortcut=_('Ctrl') + '+X') self.model_button_copy = self.get_button(_('Copy'), keyboard_shortcut=_('Ctrl') + '+C') self.model_button_paste = self.get_button(_('Paste'), keyboard_shortcut=_('Ctrl') + '+V') self.model_button_delete = self.get_button(_('Delete'), keyboard_shortcut=None) self.model_button_select_all = self.get_button(_('Select All'), keyboard_shortcut=_('Ctrl') + '+A') box = Gtk.VBox() box.set_margin_left(10) box.set_margin_right(10) box.pack_start(self.model_button_undo, False, False, 0) box.pack_start(self.model_button_redo, False, False, 0) box.pack_start(Gtk.SeparatorMenuItem(), False, False, 0) box.pack_start(self.model_button_cut, False, False, 0) box.pack_start(self.model_button_copy, False, False, 0) box.pack_start(self.model_button_paste, False, False, 0) box.pack_start(self.model_button_delete, False, False, 0) box.pack_start(Gtk.SeparatorMenuItem(), False, False, 0) box.pack_start(self.model_button_select_all, False, False, 0) box.pack_start(Gtk.SeparatorMenuItem(), False, False, 0) self.pack_start(box, False, False, 0) if document.is_latex_document(): box = Gtk.VBox() box.set_margin_left(10) box.set_margin_right(10) self.model_button_toggle_comment = self.get_button(_('Toggle Comment'), keyboard_shortcut=_('Ctrl') + '+K') self.model_button_show_in_preview = self.get_button(_('Show in Preview'), keyboard_shortcut=None) box.pack_start(self.model_button_toggle_comment, False, False, 0) box.pack_start(self.model_button_show_in_preview, False, False, 0) box.pack_start(Gtk.SeparatorMenuItem(), False, False, 0) self.pack_start(box, False, False, 0) box = Gtk.HBox() box.set_margin_left(15) box.set_margin_right(7) zoom_label = Gtk.Label(_('Zoom')) zoom_label.set_xalign(0) zoom_label.set_margin_right(36) box.pack_start(zoom_label, True, True, 0) self.model_button_zoom_out = Gtk.ModelButton() self.model_button_zoom_out.set_image(Gtk.Image.new_from_icon_name('value-decrease-symbolic', Gtk.IconSize.MENU)) self.model_button_zoom_out.set_action_name('win.zoom-out') box.pack_start(self.model_button_zoom_out, False, False, 0) self.model_button_reset_zoom = self.get_button('', keyboard_shortcut=None) self.model_button_reset_zoom.set_label('100%') self.model_button_reset_zoom.set_action_name('win.reset-zoom') self.model_button_reset_zoom.set_size_request(53, -1) box.pack_start(self.model_button_reset_zoom, False, False, 0) self.model_button_zoom_in = Gtk.ModelButton() self.model_button_zoom_in.set_image(Gtk.Image.new_from_icon_name('value-increase-symbolic', Gtk.IconSize.MENU)) self.model_button_zoom_in.set_action_name('win.zoom-in') box.pack_start(self.model_button_zoom_in, False, False, 0) self.pack_start(box, False, False, 0) self.show_all() def get_button(self, label, keyboard_shortcut=None): model_button = Gtk.ModelButton() button_box = Gtk.HBox() if keyboard_shortcut != None: shortcut = Gtk.Label(keyboard_shortcut) shortcut.get_style_context().add_class('keyboard-shortcut') button_box.pack_end(shortcut, False, False, 0) description = Gtk.Label(label) description.set_halign(Gtk.Align.START) button_box.pack_start(description, True, True, 0) model_button.remove(model_button.get_child()) model_button.add(button_box) else: model_button.set_label(label) model_button.get_child().set_halign(Gtk.Align.START) return model_button class RCMenuView(object): def __init__(self): self.menu_item_cut = Gtk.MenuItem.new_with_label(_('Cut')) self.menu_item_copy = Gtk.MenuItem.new_with_label(_('Copy')) self.menu_item_paste = Gtk.MenuItem.new_with_label(_('Paste')) self.menu_item_delete = Gtk.MenuItem.new_with_label(_('Delete')) self.menu_item_select_all = Gtk.MenuItem.new_with_label(_('Select All')) self.menu_item_comment = Gtk.MenuItem.new_with_label(_('Toggle Comment')) self.menu_item_show_in_preview = Gtk.MenuItem.new_with_label(_('Show in Preview')) self.separator_menu_item1 = Gtk.SeparatorMenuItem() self.separator_menu_item2 = Gtk.SeparatorMenuItem() Setzer-0.4.4/setzer/document/document.py000066400000000000000000000160001420322575300203150ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os.path import setzer.document.content.content as content import setzer.document.state_manager.state_manager as state_manager import setzer.document.document_controller as document_controller import setzer.document.document_presenter as document_presenter import setzer.document.context_menu.context_menu as context_menu import setzer.document.document_switcher_item.document_switcher_item as document_switcher_item import setzer.document.document_viewgtk as document_view import setzer.document.search.search as search import setzer.document.shortcutsbar.shortcutsbar_presenter as shortcutsbar_presenter import setzer.document.spellchecker.spellchecker as spellchecker import setzer.document.gutter.gutter as gutter import setzer.document.line_numbers.line_numbers as line_numbers import setzer.document.preview.preview as preview import setzer.document.build_system.build_system as build_system import setzer.document.build_widget.build_widget as build_widget import setzer.document.autocomplete.autocomplete as autocomplete import setzer.document.code_folding.code_folding as code_folding import setzer.document.preview.preview as preview from setzer.helpers.observable import Observable from setzer.app.service_locator import ServiceLocator class Document(Observable): def __init__(self, document_type): Observable.__init__(self) self.font_manager = ServiceLocator.get_font_manager() self.document_type = document_type self.displayname = '' self.filename = None self.save_date = None self.deleted_on_disk_dialog_shown_after_last_save = False self.last_activated = 0 self.dark_mode = False self.is_root = False self.root_is_set = False self.content = content.Content(self.document_type) self.view = document_view.DocumentView(self) self.gutter = gutter.Gutter(self, self.view) self.search = search.Search(self, self.view, self.view.search_bar) self.spellchecker = spellchecker.Spellchecker(self.view.source_view) self.document_switcher_item = document_switcher_item.DocumentSwitcherItem(self) self.context_menu = context_menu.ContextMenu(self, self.view) self.shortcutsbar = shortcutsbar_presenter.ShortcutsbarPresenter(self, self.view) self.presenter = document_presenter.DocumentPresenter(self, self.view) self.controller = document_controller.DocumentController(self, self.view) self.line_numbers = line_numbers.LineNumbers(self, self.view) self.state_manager = state_manager.StateManager(self) def add_latex_only_modules(self): self.preview = preview.Preview(self) self.autocomplete = autocomplete.Autocomplete(self, self.view) self.build_system = build_system.BuildSystem(self) self.build_widget = build_widget.BuildWidget(self) self.code_folding = code_folding.CodeFolding(self) def set_dark_mode(self, dark_mode): self.dark_mode = dark_mode self.content.set_use_dark_scheme(dark_mode) def get_document_type(self): return self.document_type def set_filename(self, filename): if filename == None: self.filename = filename else: self.filename = os.path.realpath(filename) self.add_change_code('filename_change', filename) def get_filename(self): return self.filename def get_dirname(self): if self.filename != None: return os.path.dirname(self.filename) else: return '' def get_displayname(self): if self.filename != None: return self.get_filename() else: return self.displayname def set_displayname(self, displayname): self.displayname = displayname self.add_change_code('displayname_change') def get_basename(self): if self.filename != None: return os.path.basename(self.filename) else: return self.displayname def get_last_activated(self): return self.last_activated def set_last_activated(self, date): self.last_activated = date def populate_from_filename(self): if self.filename == None: return False if not os.path.isfile(self.filename): self.set_filename(None) return False if self.content == None: return False with open(self.filename) as f: text = f.read() self.content.initially_set_text(text) self.content.place_cursor(0, 0) self.content.scroll_cursor_onscreen() self.update_save_date() return True def save_to_disk(self): if self.filename == None: return False if self.content == None: return False text = self.content.get_all_text() if text == None: return False dirname = os.path.dirname(self.filename) if not os.path.exists(dirname): os.makedirs(dirname) with open(self.filename, 'w') as f: f.write(text) self.update_save_date() self.deleted_on_disk_dialog_shown_after_last_save = False self.content.set_modified(False) def update_save_date(self): self.save_date = os.path.getmtime(self.filename) def get_changed_on_disk(self): return self.save_date <= os.path.getmtime(self.filename) - 0.001 def get_deleted_on_disk(self): return not os.path.isfile(self.filename) def cursor_inside_latex_command_or_at_end(self): current_word = self.content.get_latex_command_at_cursor() if ServiceLocator.get_regex_object(r'\\(\w*(?:\*){0,1})').fullmatch(current_word): return True return False def cursor_at_latex_command_end(self): current_word = self.content.get_latex_command_at_cursor() if ServiceLocator.get_regex_object(r'\\(\w*(?:\*){0,1})').fullmatch(current_word): return self.content.cursor_ends_word() return False def set_root_state(self, is_root, root_is_set): self.is_root = is_root self.root_is_set = root_is_set self.add_change_code('is_root_changed', is_root) def is_latex_document(self): return self.document_type == 'latex' def is_bibtex_document(self): return self.document_type == 'bibtex' def get_is_root(self): return self.is_root Setzer-0.4.4/setzer/document/document_controller.py000066400000000000000000000137301420322575300225670ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os.path import gi gi.require_version('Gtk', '3.0') gi.require_version('Gdk', '3.0') from gi.repository import Gdk from gi.repository import GLib from gi.repository import Gtk from gi.repository import GObject from setzer.dialogs.dialog_locator import DialogLocator from setzer.app.service_locator import ServiceLocator class DocumentController(object): def __init__(self, document, document_view): self.document = document self.view = document_view self.workspace = ServiceLocator.get_workspace() self.view.source_view.connect('key-press-event', self.on_keypress) self.view.source_view.connect('button-press-event', self.on_buttonpress) self.continue_save_date_loop = True GObject.timeout_add(500, self.save_date_loop) ''' *** signal handlers: changes in documents ''' def on_buttonpress(self, widget, event, data=None): modifiers = Gtk.accelerator_get_default_mod_mask() if event.type == Gdk.EventType.BUTTON_PRESS: if event.state & modifiers == Gdk.ModifierType.CONTROL_MASK: if self.workspace.can_sync: GLib.idle_add(self.workspace.forward_sync, self.document) return False def on_keypress(self, widget, event, data=None): modifiers = Gtk.accelerator_get_default_mod_mask() tab_keyvals = [Gdk.keyval_from_name('Tab'), Gdk.keyval_from_name('ISO_Left_Tab')] keypress_handled = False try: autocomplete = self.document.autocomplete except AttributeError: pass else: if not keypress_handled: keypress_handled = self.document.autocomplete.on_keypress(event) if keypress_handled: return True if not keypress_handled and event.keyval == Gdk.keyval_from_name('c'): if event.state & modifiers == Gdk.ModifierType.CONTROL_MASK: self.document.content.copy() return True if not keypress_handled and event.keyval == Gdk.keyval_from_name('x'): if event.state & modifiers == Gdk.ModifierType.CONTROL_MASK: self.document.content.cut() return True if not keypress_handled and event.keyval == Gdk.keyval_from_name('v'): if event.state & modifiers == Gdk.ModifierType.CONTROL_MASK: self.document.content.paste() return True if not keypress_handled and event.keyval in tab_keyvals: if event.state & modifiers == 0: buffer = self.document.content.source_buffer insert = buffer.get_iter_at_mark(buffer.get_insert()) insert.forward_chars(1) limit_iter = insert.copy() limit_iter.forward_lines(3) limit_iter.backward_chars(1) result = insert.forward_search('•', Gtk.TextSearchFlags.VISIBLE_ONLY, limit_iter) if result != None: buffer.place_cursor(result[0]) buffer.select_range(result[0], result[1]) self.document.content.scroll_cursor_onscreen() return True insert.backward_chars(1) result = insert.forward_search('•', Gtk.TextSearchFlags.VISIBLE_ONLY, limit_iter) if result != None: buffer.select_range(result[0], result[1]) self.document.content.scroll_cursor_onscreen() return True elif event.state & modifiers == Gdk.ModifierType.SHIFT_MASK: buffer = self.document.content.source_buffer insert = buffer.get_iter_at_mark(buffer.get_insert()) limit_iter = insert.copy() limit_iter.backward_lines(3) result = insert.backward_search('•', Gtk.TextSearchFlags.VISIBLE_ONLY, limit_iter) if result != None: buffer.select_range(result[0], result[1]) self.document.content.scroll_cursor_onscreen() return True insert.forward_chars(1) result = insert.backward_search('•', Gtk.TextSearchFlags.VISIBLE_ONLY, limit_iter) if result != None: buffer.select_range(result[0], result[1]) self.document.content.scroll_cursor_onscreen() return True return False def save_date_loop(self): if self.document.filename == None: return True if self.document.deleted_on_disk_dialog_shown_after_last_save: return True if self.document.get_deleted_on_disk(): DialogLocator.get_dialog('document_deleted_on_disk').run(self.document) self.document.deleted_on_disk_dialog_shown_after_last_save = True self.document.content.set_modified(True) return True if self.document.get_changed_on_disk(): if DialogLocator.get_dialog('document_changed_on_disk').run(self.document): self.document.populate_from_filename() self.document.content.set_modified(False) else: self.document.content.set_modified(True) self.document.update_save_date() return self.continue_save_date_loop Setzer-0.4.4/setzer/document/document_presenter.py000066400000000000000000000063601420322575300224140ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.app.service_locator import ServiceLocator class DocumentPresenter(object): ''' Mediator between document and view. ''' def __init__(self, document, document_view): self.document = document self.view = document_view self.settings = ServiceLocator.get_settings() self.font_manager = ServiceLocator.get_font_manager() self.indentation_update = None self.view.source_view.set_show_line_numbers(False) self.view.source_view.set_insert_spaces_instead_of_tabs(self.settings.get_value('preferences', 'spaces_instead_of_tabs')) self.view.source_view.set_tab_width(self.settings.get_value('preferences', 'tab_width')) self.view.source_view.set_highlight_current_line(self.settings.get_value('preferences', 'highlight_current_line')) self.document.content.source_buffer.set_highlight_matching_brackets(self.settings.get_value('preferences', 'highlight_matching_brackets')) if self.settings.get_value('preferences', 'enable_line_wrapping'): self.view.source_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) else: self.view.source_view.set_wrap_mode(Gtk.WrapMode.NONE) self.view.source_view.set_left_margin(self.font_manager.get_char_width() - 1) self.settings.connect('settings_changed', self.on_settings_changed) self.font_manager.connect('font_string_changed', self.on_font_string_changed) def on_settings_changed(self, settings, parameter): section, item, value = parameter if (section, item) == ('preferences', 'spaces_instead_of_tabs'): self.view.source_view.set_insert_spaces_instead_of_tabs(value) if (section, item) == ('preferences', 'tab_width'): self.view.source_view.set_tab_width(value) if (section, item) == ('preferences', 'highlight_current_line'): self.view.source_view.set_highlight_current_line(value) if (section, item) == ('preferences', 'highlight_matching_brackets'): self.document.content.source_buffer.set_highlight_matching_brackets(value) if (section, item) == ('preferences', 'enable_line_wrapping'): if value == True: self.view.source_view.set_wrap_mode(Gtk.WrapMode.WORD_CHAR) else: self.view.source_view.set_wrap_mode(Gtk.WrapMode.NONE) def on_font_string_changed(self, font_manager): self.view.source_view.set_left_margin(self.font_manager.get_char_width() - 1) Setzer-0.4.4/setzer/document/document_switcher_item/000077500000000000000000000000001420322575300226745ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/document_switcher_item/__init__.py000066400000000000000000000000001420322575300247730ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/document_switcher_item/document_switcher_item.py000066400000000000000000000044671420322575300300250ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import setzer.document.document_switcher_item.document_switcher_item_viewgtk as document_switcher_item_view class DocumentSwitcherItem(): def __init__(self, document): self.document = document self.view = document_switcher_item_view.OpenDocsPopoverItem(document) self.modified_state = document.content.get_modified() self.set_is_root() self.document.connect('filename_change', self.on_filename_change) self.document.connect('displayname_change', self.on_displayname_change) self.document.connect('is_root_changed', self.on_is_root_changed) self.document.content.connect('modified_changed', self.on_modified_changed) def on_filename_change(self, document, filename=None): self.view.set_name(self.document.get_displayname(), self.modified_state) def on_modified_changed(self, content): if self.document.content.get_modified() != self.modified_state: self.modified_state = self.document.content.get_modified() self.view.set_name(self.document.get_displayname(), self.modified_state) def on_displayname_change(self, document): self.view.set_name(self.document.get_displayname(), self.modified_state) def on_is_root_changed(self, document, is_root): self.set_is_root() def set_is_root(self): if self.document.get_is_root() == True: self.view.icon.hide() self.view.root_icon.show_all() self.view.root_label.show_all() else: self.view.icon.show_all() self.view.root_icon.hide() self.view.root_label.hide() Setzer-0.4.4/setzer/document/document_switcher_item/document_switcher_item_viewgtk.py000066400000000000000000000102211420322575300315460ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Pango class OpenDocsPopoverItem(Gtk.ListBoxRow): ''' An item in OpenDocsPopover. ''' def __init__(self, document): Gtk.ListBoxRow.__init__(self) self.set_selectable(False) self.document = document self.box = Gtk.HBox() self.icon_box = Gtk.HBox() if document.is_latex_document(): self.icon = Gtk.Image.new_from_icon_name('text-x-generic-symbolic', Gtk.IconSize.MENU) else: self.icon = Gtk.Image.new_from_icon_name('text-x-generic-symbolic', Gtk.IconSize.MENU) self.icon.set_margin_bottom(2) self.icon.set_margin_right(6) self.icon.set_margin_left(1) self.icon.get_style_context().add_class('icon') self.root_icon = Gtk.Image.new_from_icon_name('object-select-symbolic', Gtk.IconSize.MENU) self.root_icon.set_margin_bottom(2) self.root_icon.set_margin_right(7) self.root_icon.get_style_context().add_class('icon') self.icon_box.pack_start(self.icon, False, False, 0) self.icon_box.pack_start(self.root_icon, False, False, 0) self.box.pack_start(self.icon_box, False, False, 0) self.radio_button_hover = Gtk.Image.new_from_icon_name('object-select-symbolic', Gtk.IconSize.MENU) self.radio_button_hover.set_margin_bottom(2) self.radio_button_hover.set_margin_right(7) self.radio_button_hover.set_margin_left(0) self.radio_button_hover.get_style_context().add_class('radio-hover') self.box.pack_start(self.radio_button_hover, False, False, 0) self.label = Gtk.Label('') self.label.set_ellipsize(Pango.EllipsizeMode.END) self.label.set_halign(Gtk.Align.START) self.root_label = Gtk.Label(' (root)') self.root_label.set_ellipsize(Pango.EllipsizeMode.END) self.root_label.set_halign(Gtk.Align.START) self.root_label.get_style_context().add_class('root-label') self.flabel = Gtk.Label('') self.mlabel = Gtk.Label('') self.box.pack_start(self.label, False, False, 0) self.box.pack_start(self.root_label, False, False, 0) self.document_close_button = Gtk.Button.new_from_icon_name('window-close-symbolic', Gtk.IconSize.MENU) self.document_close_button.get_style_context().add_class('flat') self.document_close_button.get_style_context().add_class('image-button') self.document_close_button.set_relief(Gtk.ReliefStyle.NONE) self.box.pack_end(self.document_close_button, False, False, 0) self.add(self.box) self.set_name(document.get_filename(), document.content.get_modified()) self.show_all() def set_name(self, filename, modified_state): self.title = '' self.folder = '' if modified_state == True: self.title += '*' if filename != None: fsplit = filename.rsplit('/', 1) if len(fsplit) > 1: self.title += fsplit[1] self.folder = fsplit[0] self.has_title = True else: self.title += self.document.get_displayname() self.has_title = False self.label.set_text(self.title) self.flabel.set_text(self.folder) self.mlabel.set_text(str(modified_state)) def get_has_title(self): return self.has_title def get_title(self): return self.title Setzer-0.4.4/setzer/document/document_viewgtk.py000066400000000000000000000042041420322575300220600ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('GtkSource', '4') from gi.repository import Gtk from gi.repository import GtkSource import setzer.document.shortcutsbar.shortcutsbar_viewgtk as shortcutsbar_view import setzer.document.search.search_viewgtk as search_view class DocumentView(Gtk.HBox): def __init__(self, document): Gtk.HBox.__init__(self) self.vbox = Gtk.VBox() self.overlay = Gtk.Overlay() self.scrolled_window = Gtk.ScrolledWindow() self.search_bar = search_view.SearchBar() self.shortcutsbar_bottom = shortcutsbar_view.ShortcutsbarBottom() self.wizard_button = shortcutsbar_view.WizardButton() self.source_view = document.content.source_view self.source_view.set_monospace(True) self.source_view.set_smart_home_end(True) self.source_view.set_auto_indent(True) self.source_view.set_bottom_margin(120) self.source_view.set_right_margin(12) self.scrolled_window.add(self.source_view) self.overlay.add(self.scrolled_window) self.vbox.pack_start(self.overlay, True, True, 0) self.vbox.pack_start(self.search_bar, False, False, 0) self.pack_start(self.vbox, True, True, 0) self.show_all() def do_get_request_mode(self): return Gtk.SizeRequestMode.CONSTANT_SIZE def do_get_preferred_width(self): return 200, 600 Setzer-0.4.4/setzer/document/gutter/000077500000000000000000000000001420322575300174425ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/gutter/__init__.py000066400000000000000000000000001420322575300215410ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/gutter/gutter.py000066400000000000000000000223571420322575300213370ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from setzer.helpers.timer import timer from setzer.app.service_locator import ServiceLocator class Gutter(object): def __init__(self, document, document_view): self.document = document self.source_view = document_view.source_view self.adjustment = document_view.scrolled_window.get_vadjustment() self.widgets = list() self.total_size = 0 self.lines = list() self.current_line = 0 self.font_manager = ServiceLocator.get_font_manager() self.font_manager.connect('font_string_changed', self.on_font_string_changed) self.view = Gtk.DrawingArea() self.view.set_valign(Gtk.Align.FILL) self.view.set_halign(Gtk.Align.START) self.view.connect('draw', self.on_draw) self.view.show_all() def on_realize(widget): widget.get_window().set_pass_through(True) self.view.connect('realize', on_realize) self.style_context = self.view.get_style_context() self.color_manager = ServiceLocator.get_color_manager() self.bg_color = None self.fg_color = None self.cl_color = None self.border_color = None self.update_colors() self.source_view.get_style_context().connect('changed', self.update_colors) document_view.overlay.add_overlay(self.view) document_view.overlay.set_overlay_pass_through(self.view, True) self.char_width, self.line_height = self.font_manager.get_char_dimensions() self.source_view.connect('button-press-event', self.on_click) self.source_view.connect('enter-notify-event', self.on_pointer_movement) self.source_view.connect('leave-notify-event', self.on_pointer_movement) self.source_view.connect('motion-notify-event', self.on_pointer_movement) self.highlight_current_line = False settings = ServiceLocator.get_settings() self.set_line_highlighting(settings.get_value('preferences', 'highlight_current_line')) settings.connect('settings_changed', self.on_settings_changed) def on_font_string_changed(self, font_manager): self.char_width, self.line_height = self.font_manager.get_char_dimensions() for widget in self.widgets: widget.set_font_desc(self.font_manager.get_font_desc()) widget.set_char_dimensions(self.line_height, self.char_width) def on_settings_changed(self, settings, parameter): section, item, value = parameter if (section, item) == ('preferences', 'highlight_current_line'): self.set_line_highlighting(value) #@timer def on_draw(self, drawing_area, ctx, data = None): self.update_sizes() if self.total_size != 0: self.update_lines() self.draw_background(drawing_area, ctx) ctx.set_source_rgba(self.fg_color.red, self.fg_color.green, self.fg_color.blue, self.fg_color.alpha) total_size = 3 for widget in self.widgets: if widget.is_visible(): widget.on_draw(self, drawing_area, ctx, self.lines, self.current_line, total_size) total_size += widget.get_size() #@timer def draw_background(self, drawing_area, ctx): if self.highlight_current_line and self.current_line != None: ctx.rectangle(0, self.current_line[1], self.total_size, self.current_line[2]) ctx.set_source_rgba(self.cl_color.red, self.cl_color.green, self.cl_color.blue, self.cl_color.alpha) ctx.fill() ctx.rectangle(self.total_size - 1, 0, self.total_size, drawing_area.get_allocated_height()) ctx.set_source_rgba(self.border_color.red, self.border_color.green, self.border_color.blue, self.border_color.alpha) ctx.fill() #@timer def update_colors(self, style_context=None): style_scheme = self.document.content.get_style_scheme() line_numbers_style = style_scheme.get_style('line-numbers') bg_color_string = line_numbers_style.get_property('background') if bg_color_string != None: self.bg_color = self.color_manager.get_rgba_from_string(bg_color_string) else: self.bg_color = self.color_manager.get_theme_color_mix('theme_base_color', 'theme_bg_color', 0.5) fg_color_string = line_numbers_style.get_property('foreground') if fg_color_string != None: self.fg_color = self.color_manager.get_rgba_from_string(fg_color_string) else: self.fg_color = self.color_manager.get_theme_color('theme_fg_color') current_line_style = style_scheme.get_style('current-line') cl_color_string = current_line_style.get_property('background') if cl_color_string != None: self.cl_color = self.color_manager.get_rgba_from_string(cl_color_string) else: self.cl_color = self.color_manager.get_theme_color('theme_base_color') self.border_color = self.color_manager.get_theme_color_mix('theme_base_color', 'borders', 0.5) for widget in self.widgets: widget.update_colors() self.view.queue_draw() #@timer def update_lines(self): lines = list() y_window = 0 allocated_height = self.source_view.get_allocated_height() last_line_top = None line = None current_line = None current_line_no = self.document.content.get_current_line_number() + 1 offset = self.adjustment.get_value() while y_window <= allocated_height: y = y_window + offset line_iter, line_top = self.source_view.get_line_at_y(y) if line_top != last_line_top: if len(lines): lines[-1][2] = line_top - last_line_top if lines[-1][0] == current_line_no: current_line[2] = line_top - last_line_top line = line_iter.get_line() + 1 lines.append([line, line_top - int(offset), None]) if line == current_line_no: current_line = [line, line_top - int(offset), None] last_line_top = line_top y_window += self.line_height - 1 if y_window > allocated_height and y_window < allocated_height + self.line_height - 1: y_window = allocated_height y2, height = self.source_view.get_line_yrange(line_iter) lines[-1][2] = height if lines[-1][0] == current_line_no: current_line[2] = height self.lines = lines self.current_line = current_line def on_click(self, widget, event): x, y = self.source_view.window_to_buffer_coords(Gtk.TextWindowType.LEFT, event.x, event.y) if event.window == self.source_view.get_window(Gtk.TextWindowType.LEFT): x += self.total_size total_size = 3 for widget in self.widgets: if widget.is_visible(): widget_size = widget.get_size() total_size += widget_size if x <= total_size and x > total_size - widget_size: return widget.on_click(event) return False def on_pointer_movement(self, widget, event): x, y = self.source_view.window_to_buffer_coords(Gtk.TextWindowType.LEFT, event.x, event.y) if event.window == self.source_view.get_window(Gtk.TextWindowType.LEFT): x += self.total_size total_size = 3 for widget in self.widgets: if widget.is_visible(): widget_size = widget.get_size() total_size += widget_size widget.on_pointer_movement(event) return False def add_widget(self, widget): self.widgets.append(widget) widget.set_font_desc(self.font_manager.get_font_desc()) widget.set_char_dimensions(self.line_height, self.char_width) widget.update_colors() self.update_sizes() def update_sizes(self): total_size = 0 for widget in self.widgets: if widget.is_visible(): widget.update_size() total_size += widget.get_size() if total_size != 0: total_size += 4 if total_size != self.total_size: self.total_size = total_size self.source_view.set_border_window_size(Gtk.TextWindowType.LEFT, self.total_size) self.view.set_size_request(self.total_size, 1000) def set_line_highlighting(self, value): self.highlight_current_line = value self.view.queue_draw() Setzer-0.4.4/setzer/document/line_numbers/000077500000000000000000000000001420322575300206125ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/line_numbers/__init__.py000066400000000000000000000000001420322575300227110ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/line_numbers/line_numbers.py000066400000000000000000000131021420322575300236430ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import cairo from gi.repository import Pango import math from setzer.helpers.timer import timer from setzer.app.service_locator import ServiceLocator class LineNumbers(object): def __init__(self, document, document_view): self.source_view = document_view.source_view self.line_height = 0 self.char_width = 0 self.font_desc = None self.font_size = None self.font_changed = True self.glyph_index = None self.extents = None self.size = 0 self.visible = False self.update_size() document.gutter.add_widget(self) settings = ServiceLocator.get_settings() self.set_visibility(settings.get_value('preferences', 'show_line_numbers')) settings.connect('settings_changed', self.on_settings_changed) def on_settings_changed(self, settings, parameter): section, item, value = parameter if (section, item) == ('preferences', 'show_line_numbers'): self.set_visibility(value) def set_font_desc(self, font_desc): self.font_desc = font_desc self.font_size = self.font_desc.get_size() * 4 / (3 * Pango.SCALE) self.font_changed = True def set_char_dimensions(self, line_height, char_width): self.line_height = line_height self.char_width = char_width self.font_changed = True def update_colors(self): self.font_changed = True def on_click(self, event): return False def on_pointer_movement(self, event): pass #@timer def on_draw(self, gutter, drawing_area, ctx, lines, current_line, offset): ctx.set_font_size(self.font_size) font_family = self.font_desc.get_family() ctx.select_font_face(font_family, cairo.FontSlant.NORMAL, cairo.FontWeight.NORMAL) if self.font_changed: scaled_font = ctx.get_scaled_font() self.font_changed = False glyph_index = {} glyph_index[0] = scaled_font.text_to_glyphs(0, 0, '0')[0][0][0] glyph_index[1] = scaled_font.text_to_glyphs(0, 0, '1')[0][0][0] glyph_index[2] = scaled_font.text_to_glyphs(0, 0, '2')[0][0][0] glyph_index[3] = scaled_font.text_to_glyphs(0, 0, '3')[0][0][0] glyph_index[4] = scaled_font.text_to_glyphs(0, 0, '4')[0][0][0] glyph_index[5] = scaled_font.text_to_glyphs(0, 0, '5')[0][0][0] glyph_index[6] = scaled_font.text_to_glyphs(0, 0, '6')[0][0][0] glyph_index[7] = scaled_font.text_to_glyphs(0, 0, '7')[0][0][0] glyph_index[8] = scaled_font.text_to_glyphs(0, 0, '8')[0][0][0] glyph_index[9] = scaled_font.text_to_glyphs(0, 0, '9')[0][0][0] extents = {} extents[0] = int(ctx.text_extents('0').x_advance) extents[1] = int(ctx.text_extents('1').x_advance) extents[2] = int(ctx.text_extents('2').x_advance) extents[3] = int(ctx.text_extents('3').x_advance) extents[4] = int(ctx.text_extents('4').x_advance) extents[5] = int(ctx.text_extents('5').x_advance) extents[6] = int(ctx.text_extents('6').x_advance) extents[7] = int(ctx.text_extents('7').x_advance) extents[8] = int(ctx.text_extents('8').x_advance) extents[9] = int(ctx.text_extents('9').x_advance) self.glyph_index = glyph_index self.extents = extents extra_y = (self.line_height + ctx.text_extents('0').height) / 2 glyphs_normal = list() glyphs_bold = list() for line in lines: yoffset = int(line[1] + extra_y) xoffset = offset + self.size - self.char_width cline = line[0] if current_line != None and cline == current_line[0]: while cline > 0: char = cline % 10 xoffset -= self.extents[char] glyphs_bold.append((self.glyph_index[char], xoffset, yoffset)) cline = cline // 10 else: while cline > 0: char = cline % 10 xoffset -= self.extents[char] glyphs_normal.append((self.glyph_index[char], xoffset, yoffset)) cline = cline // 10 ctx.show_glyphs(glyphs_normal, len(glyphs_normal)) if glyphs_bold: ctx.select_font_face(font_family, cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD) ctx.show_glyphs(glyphs_bold, len(glyphs_bold)) def update_size(self): self.size = (1 + math.ceil(math.log(self.source_view.get_buffer().get_line_count() + 1, 10))) * self.char_width def get_size(self): return self.size def set_visibility(self, value): self.visible = value self.source_view.queue_draw() def is_visible(self): return self.visible Setzer-0.4.4/setzer/document/preview/000077500000000000000000000000001420322575300176115ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/preview/__init__.py000066400000000000000000000000001420322575300217100ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/preview/paging_widget/000077500000000000000000000000001420322575300224215ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/preview/paging_widget/__init__.py000066400000000000000000000000001420322575300245200ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/preview/paging_widget/paging_widget.py000066400000000000000000000046431420322575300256120ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class PagingWidget(object): def __init__(self, preview, layouter): self.preview = preview self.layouter = layouter self.view = PagingWidgetView() self.preview.view.action_bar.pack_start(self.view, False, False, 0) self.update_number_of_pages() self.update_current_page() self.preview.connect('pdf_changed', self.on_pdf_changed) self.preview.connect('position_changed', self.on_position_changed) def on_pdf_changed(self, preview): self.update_number_of_pages() self.update_current_page() def on_position_changed(self, preview): self.update_current_page() def update_number_of_pages(self): if self.preview.pdf_filename != None: self.view.label_number_of_pages.set_text(str(self.preview.number_of_pages)) else: self.view.label_number_of_pages.set_text("0") def update_current_page(self): if self.preview.pdf_loaded and self.layouter.has_layout: self.view.label_current_page.set_text(str(self.layouter.get_current_page())) else: self.view.label_current_page.set_text("0") class PagingWidgetView(Gtk.HBox): def __init__(self): Gtk.HBox.__init__(self) self.set_margin_left(9) self.pack_start(Gtk.Label(_('Page ')), False, False, 0) self.label_current_page = Gtk.Label('') self.pack_start(self.label_current_page, False, False, 0) self.pack_start(Gtk.Label(_(' of ')), False, False, 0) self.label_number_of_pages = Gtk.Label('') self.pack_start(self.label_number_of_pages, False, False, 0) self.show_all() Setzer-0.4.4/setzer/document/preview/preview.py000066400000000000000000000424521420322575300216530ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Poppler', '0.18') gi.require_version('Gtk', '3.0') from gi.repository import Poppler from pdfminer.pdfpage import PDFPage from pdfminer.pdftypes import PDFObjRef from gi.repository import GLib from gi.repository import Gio import os.path import math import time import _thread as thread import setzer.document.preview.preview_viewgtk as preview_view import setzer.document.preview.preview_layouter as preview_layouter import setzer.document.preview.preview_presenter as preview_presenter import setzer.document.preview.preview_controller as preview_controller import setzer.document.preview.preview_page_renderer as preview_page_renderer import setzer.document.preview.zoom_widget.zoom_widget as zoom_widget import setzer.document.preview.paging_widget.paging_widget as paging_widget from setzer.helpers.observable import Observable from setzer.helpers.timer import timer class Preview(Observable): def __init__(self, document): Observable.__init__(self) self.document = document self.pdf_filename = None self.pdf_date = None self.invert_pdf = False self.poppler_document_lock = thread.allocate_lock() self.poppler_document = None self.links_lock = thread.allocate_lock() self.links_parsed = True with self.links_lock: self.links = dict() self.links_parser_lock = thread.allocate_lock() self.number_of_pages = 0 self.page_width = None self.page_height = None self.xoffset = 0 self.yoffset = 0 self.zoom_levels = [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 3.0, 4.0] self.zoom_level_fit_to_width = None self.zoom_set = False self.zoom_level_fit_to_text_width = None self.zoom_level_fit_to_height = None self.zoom_level = None self.visible_synctex_rectangles = list() self.visible_synctex_rectangles_time = None self.pdf_loaded = False self.is_visible = False self.first_show = True self.view = preview_view.PreviewView() self.layouter = preview_layouter.PreviewLayouter(self, self.view) self.controller = preview_controller.PreviewController(self, self.layouter, self.view) self.page_renderer = preview_page_renderer.PreviewPageRenderer(self, self.layouter) self.presenter = preview_presenter.PreviewPresenter(self, self.layouter, self.page_renderer, self.view) self.paging_widget = paging_widget.PagingWidget(self, self.layouter) self.zoom_widget = zoom_widget.ZoomWidget(self) self.document.connect('filename_change', self.on_filename_change) self.document.connect('pdf_updated', self.on_pdf_updated) def set_is_visible(self, is_visible): if is_visible != self.is_visible: self.is_visible = is_visible if self.is_visible: self.page_renderer.activate() else: self.page_renderer.deactivate() thread.start_new_thread(self.update_links, ()) def on_filename_change(self, document, filename=None): self.set_pdf_filename_from_tex_filename(filename) self.set_pdf_date() self.load_pdf() if self.pdf_loaded: self.document.build_system.update_can_sync() if self.zoom_level == None: self.set_zoom_fit_to_width() def on_pdf_updated(self, document): self.set_pdf_date() self.load_pdf() if self.pdf_loaded: self.document.build_system.update_can_sync() if self.zoom_level == None: self.set_zoom_fit_to_width() def get_pdf_filename(self): return self.pdf_filename def set_pdf_filename_from_tex_filename(self, tex_filename): if tex_filename != None: pdf_filename = os.path.splitext(self.document.filename)[0] + '.pdf' if os.path.exists(pdf_filename): self.set_pdf_filename(pdf_filename) def set_pdf_filename(self, pdf_filename): if pdf_filename != self.pdf_filename: self.pdf_filename = pdf_filename def set_invert_pdf(self, invert_pdf): self.invert_pdf = invert_pdf self.add_change_code('invert_pdf_changed') def reset_pdf_data(self): self.pdf_loaded = False self.pdf_filename = None self.pdf_date = None with self.poppler_document_lock: self.poppler_document = None self.number_of_pages = 0 self.page_width = None self.page_height = None self.links_parsed = True self.links = dict() self.xoffset = 0 self.yoffset = 0 self.zoom_level = None self.add_change_code('pdf_changed') self.document.build_system.update_can_sync() def set_position_from_offsets(self, xoffset=None, yoffset=None): value_changed = False if xoffset != None and xoffset != self.xoffset: self.xoffset = xoffset value_changed = True if yoffset != None and yoffset != self.yoffset: self.yoffset = yoffset value_changed = True if value_changed: self.add_change_code('position_changed') def get_position(self): if self.xoffset != None and self.yoffset != None: page = math.floor(self.yoffset / self.page_height) + 1 return {'page': page, 'x': self.xoffset, 'y': self.yoffset - (page - 1) * self.page_height} def get_position_by_screen_offset(self, xoffset, yoffset): if self.xoffset != None and self.yoffset != None: page = math.floor(self.yoffset / self.page_height) + 1 return {'page': page, 'x': self.xoffset + xoffset, 'y': self.yoffset - (page - 1) * self.page_height + yoffset} def scroll_to_position_from_offsets(self, xoffset=0, yoffset=0): if self.layouter.has_layout: page = math.floor(yoffset / self.page_height) + 1 self.presenter.scroll_to_position({'page': page, 'x': xoffset, 'y': yoffset - (page - 1) * self.page_height}) def scroll_dest_on_screen(self, dest): page_number = dest.page_num if self.xoffset > dest.left: x = dest.left else: x = self.xoffset self.presenter.scroll_to_position({'page': page_number, 'x': x, 'y': self.page_height - dest.top}) def set_synctex_rectangles(self, rectangles): if self.layouter.has_layout: self.visible_synctex_rectangles = rectangles self.layouter.update_synctex_rectangles() self.visible_synctex_rectangles_time = time.time() if len(rectangles) > 0: position = rectangles[0] self.presenter.scroll_to_position({'page': position['page'], 'x': max((self.layouter.page_width / 2 + self.layouter.horizontal_margin - self.view.stack.get_allocated_width() / 2) / self.layouter.scale_factor, 0), 'y': max(((position['v'] - position['height'] / 2) * self.layouter.scale_factor - self.view.stack.get_allocated_height() / 2) / self.layouter.scale_factor, 0)}) self.presenter.start_fade_loop() def set_pdf_date(self): if self.pdf_filename != None: self.pdf_date = os.path.getmtime(self.pdf_filename) def get_pdf_date(self): return self.pdf_date def load_pdf(self): try: with self.poppler_document_lock: self.poppler_document = Poppler.Document.new_from_file('file:' + self.pdf_filename) except TypeError: self.reset_pdf_data() except gi.repository.GLib.Error: self.reset_pdf_data() else: with self.poppler_document_lock: self.number_of_pages = self.poppler_document.get_n_pages() page_size = self.poppler_document.get_page(0).get_size() self.page_width = page_size.width self.page_height = page_size.height current_min = self.page_width for page_number in range(0, min(self.number_of_pages, 3)): page = self.poppler_document.get_page(page_number) layout = page.get_text_layout() for rect in layout[1]: if rect.x1 < current_min: current_min = rect.x1 current_min -= 20 self.vertical_margin = current_min self.pdf_loaded = True self.document.build_system.update_can_sync() self.add_change_code('pdf_changed') with self.links_lock: self.links = dict() self.links_parsed = False thread.start_new_thread(self.update_links, ()) def get_page_number_and_offsets_by_document_offsets(self, x, y): return self.layouter.get_page_number_and_offsets_by_document_offsets(x, y) def get_links_for_page(self, page_number): with self.links_lock: try: return self.links[page_number] except KeyError: return list() def update_links(self): with self.links_parser_lock: if self.links_parsed: return if not self.is_visible: return links = dict() with open(self.pdf_filename, 'rb') as file: for page_num, page in enumerate(PDFPage.get_pages(file)): links[page_num] = list() annots_final = self.resolve_annots(page.annots) for annot in annots_final: try: rect = annot['Rect'] except KeyError: pass else: try: data = annot['A'] except KeyError: pass else: try: named_dest = data['D'] except KeyError: pass else: dest = self.poppler_document.find_dest(named_dest.decode('utf-8')) links[page_num].append([rect, dest, 'goto']) try: uri = data['URI'] except KeyError: pass else: links[page_num].append([rect, uri.decode('utf-8'), 'uri']) with self.links_lock: self.links = links self.links_parsed = True def resolve_annots(self, annots): if annots == None: return [] if type(annots) is PDFObjRef: annots = annots.resolve() if type(annots) is dict: return [annots] else: return_value = list() for annot in annots: if type(annots) is dict: return_value.append(annot) else: return_value += self.resolve_annots(annot) return return_value def update_dynamic_zoom_levels(self): self.zoom_levels = [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 3.0, 4.0] try: zoom_level_fit_to_width = (self.view.get_allocated_width() - 2 * int(self.layouter.horizontal_margin_points * self.layouter.ppp)) / (self.page_width * self.layouter.ppp) except TypeError: return if zoom_level_fit_to_width != self.zoom_level_fit_to_width: self.zoom_level_fit_to_width = zoom_level_fit_to_width if not self.zoom_set: self.zoom_set = True self.set_zoom_fit_to_width() if zoom_level_fit_to_width != None: self.zoom_levels.append(zoom_level_fit_to_width) try: zoom_level_fit_to_height = (self.view.stack.get_allocated_height() + self.layouter.border_width) / (self.page_height * self.layouter.ppp) except TypeError: return if zoom_level_fit_to_height != self.zoom_level_fit_to_height: self.zoom_level_fit_to_height = zoom_level_fit_to_height if zoom_level_fit_to_height != None: self.zoom_levels.append(zoom_level_fit_to_height) try: zoom_level_fit_to_text_width = self.zoom_level_fit_to_width * (self.page_width / (self.page_width - 2 * self.vertical_margin)) except TypeError: return if zoom_level_fit_to_text_width != self.zoom_level_fit_to_text_width: self.zoom_level_fit_to_text_width = zoom_level_fit_to_text_width if zoom_level_fit_to_text_width != None: self.zoom_levels.append(zoom_level_fit_to_text_width) def set_zoom_fit_to_height(self): zoom_level = (self.view.stack.get_allocated_height() + self.layouter.border_width) / (self.page_height * self.layouter.ppp) if zoom_level == self.zoom_level: return xoffset = ((self.page_width * zoom_level * self.layouter.ppp - self.view.get_allocated_width()) / 2) / (zoom_level * self.layouter.ppp) - self.xoffset y = self.view.get_allocated_height() / 2 yoffset = (-y + y * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) self.zoom_level_fit_to_height = zoom_level self.set_zoom_level(zoom_level, xoffset, yoffset) def set_zoom_fit_to_text_width(self): zoom_level = self.zoom_level_fit_to_width * (self.page_width / (self.page_width - 2 * self.vertical_margin)) if zoom_level == self.zoom_level: return xoffset = ((self.page_width * zoom_level * self.layouter.ppp - self.view.get_allocated_width()) / 2) / (zoom_level * self.layouter.ppp) - self.xoffset y = self.view.get_allocated_height() / 2 yoffset = (-y + y * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) self.zoom_level_fit_to_text_width = zoom_level self.set_zoom_level(zoom_level, xoffset, yoffset) def set_zoom_fit_to_width(self): if self.zoom_level_fit_to_width != None: self.set_zoom_level(self.zoom_level_fit_to_width) else: self.set_zoom_level(1.0) self.zoom_set = False def set_zoom_fit_to_width_auto_offset(self): if self.zoom_level_fit_to_width != None: zoom_level = self.zoom_level_fit_to_width else: zoom_level = 1.0 self.zoom_set = False x = self.view.get_allocated_width() / 2 y = self.view.get_allocated_height() / 2 xoffset = (-x + x * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) yoffset = (-y + y * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) self.set_zoom_level(zoom_level, xoffset, yoffset) def zoom_in(self): try: zoom_level = min([level for level in self.zoom_levels if level > self.zoom_level]) except ValueError: zoom_level = max(self.zoom_levels) x = self.view.get_allocated_width() / 2 y = self.view.get_allocated_height() / 2 xoffset = (-x + x * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) yoffset = (-y + y * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) self.set_zoom_level(zoom_level, xoffset, yoffset) def zoom_out(self): try: zoom_level = max([level for level in self.zoom_levels if level < self.zoom_level]) except ValueError: zoom_level = min(self.zoom_levels) x = self.view.get_allocated_width() / 2 y = self.view.get_allocated_height() / 2 xoffset = (-x + x * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) yoffset = (-y + y * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) self.set_zoom_level(zoom_level, xoffset, yoffset) def set_zoom_level_auto_offset(self, zoom_level): x = self.view.get_allocated_width() / 2 y = self.view.get_allocated_height() / 2 xoffset = (-x + x * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) yoffset = (-y + y * zoom_level / self.zoom_level) / (zoom_level * self.layouter.ppp) self.set_zoom_level(zoom_level, xoffset, yoffset) def set_zoom_level(self, level, xoffset=0, yoffset=0): if level == None: return if level == self.zoom_level: return self.zoom_level = level position = self.get_position_by_screen_offset(xoffset, yoffset) self.presenter.scroll_to_position(position) self.add_change_code('zoom_level_changed') self.zoom_set = True def open_external_viewer(self): if self.pdf_filename != None: Gio.AppInfo.launch_default_for_uri('file:' + self.pdf_filename) Setzer-0.4.4/setzer/document/preview/preview_controller.py000066400000000000000000000220521420322575300241100ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Poppler', '0.18') gi.require_version('Gtk', '3.0') from gi.repository import Poppler from gi.repository import Gdk from gi.repository import Gtk import math import webbrowser import _thread as thread class PreviewController(object): def __init__(self, preview, layouter, view): self.preview = preview self.layouter = layouter self.view = view self.zoom_momentum = 0 self.context_menu_popup_button_event = None display = self.view.scrolled_window.get_display() self.cursor_default = Gdk.Cursor.new_from_name(display, 'default') self.cursor_pointer = Gdk.Cursor.new_from_name(display, 'pointer') self.view.connect('size-allocate', self.on_size_allocate) self.view.scrolled_window.get_hadjustment().connect('value-changed', self.on_hadjustment_changed) self.view.scrolled_window.get_vadjustment().connect('value-changed', self.on_vadjustment_changed) self.view.scrolled_window.connect('scroll-event', self.on_scroll) self.view.drawing_area.connect('button-press-event', self.on_button_press) self.view.scrolled_window.connect('enter-notify-event', self.on_enter) self.view.scrolled_window.connect('motion-notify-event', self.on_hover) self.view.scrolled_window.connect('leave-notify-event', self.on_leave) self.view.external_viewer_button.connect('clicked', self.on_external_viewer_button_clicked) def zoom_in(menu_item): self.preview.zoom_in() self.view.menu_item_zoom_in.connect('activate', zoom_in) def zoom_out(menu_item): self.preview.zoom_out() self.view.menu_item_zoom_out.connect('activate', zoom_out) def zoom_fit_to_width(menu_item): self.preview.set_zoom_fit_to_width_auto_offset() self.view.menu_item_zoom_fit_to_width.connect('activate', zoom_fit_to_width) def zoom_fit_to_text_width(menu_item): self.preview.set_zoom_fit_to_text_width() self.view.menu_item_zoom_fit_to_text_width.connect('activate', zoom_fit_to_text_width) def zoom_fit_to_height(menu_item): self.preview.set_zoom_fit_to_height() self.view.menu_item_zoom_fit_to_height.connect('activate', zoom_fit_to_height) def backward_sync(menu_item): event = self.context_menu_popup_button_event if event != None: self.init_backward_sync(event) self.view.menu_item_backward_sync.connect('activate', backward_sync) def on_scroll(self, widget, event): if event.state == Gdk.ModifierType.CONTROL_MASK: direction = False if event.delta_y - event.delta_x < 0: direction = 'in' elif event.delta_y - event.delta_x > 0: direction = 'out' if direction != False: self.zoom_momentum += event.delta_y - event.delta_x if(self.preview.presenter.scrolling_queue.empty()): zoom_level = min(max(self.preview.zoom_level * (1 - 0.1 * self.zoom_momentum), 0.25), 4) xoffset = (-event.x + event.x * zoom_level / self.preview.zoom_level) / (zoom_level * self.layouter.ppp) yoffset = (-event.y + event.y * zoom_level / self.preview.zoom_level) / (zoom_level * self.layouter.ppp) self.preview.set_zoom_level(zoom_level, xoffset, yoffset) self.zoom_momentum = 0 return True return False def on_enter(self, widget, event): self.update_cursor(event) def on_hover(self, widget, event): self.update_cursor(event) def on_leave(self, widget, event): self.update_cursor(event) def update_cursor(self, event): x_offset = event.x + self.view.scrolled_window.get_hadjustment().get_value() y_offset = event.y + self.view.scrolled_window.get_vadjustment().get_value() data = self.preview.get_page_number_and_offsets_by_document_offsets(x_offset, y_offset) if data == None: return True page_number, x_offset, y_offset = data cursor = self.cursor_default links = self.preview.get_links_for_page(page_number) y_offset = (self.preview.page_height - y_offset) for link in links: if x_offset > link[0][0] and x_offset < link[0][2] and y_offset > link[0][1] and y_offset < link[0][3]: cursor = self.cursor_pointer break window = self.view.scrolled_window.get_window() window.set_cursor(cursor) def on_size_allocate(self, view=None, allocation=None): self.layouter.update_zoom_levels() self.view.drawing_area.queue_draw() def on_hadjustment_changed(self, adjustment): if self.layouter.has_layout: xoffset = max((adjustment.get_value() - self.layouter.horizontal_margin) / self.layouter.scale_factor, 0) self.preview.set_position_from_offsets(xoffset, None) def on_vadjustment_changed(self, adjustment): if self.layouter.has_layout: self.layouter.compute_current_page() yoffset = max(self.layouter.current_page - 1, 0) * self.preview.page_height yoffset += min(max(adjustment.get_value() - self.layouter.vertical_margin - max(self.layouter.current_page - 1, 0) * (self.layouter.page_height + self.layouter.page_gap), 0), self.layouter.page_height) / self.layouter.scale_factor self.preview.set_position_from_offsets(None, yoffset) def on_button_press(self, widget, event): modifiers = Gtk.accelerator_get_default_mod_mask() if event.type == Gdk.EventType.BUTTON_PRESS and event.button == 3: self.view.context_menu.show_all() self.view.context_menu.popup_at_pointer(event) self.context_menu_popup_button_event = event return True elif event.type == Gdk.EventType.BUTTON_PRESS and event.button == 1 and event.state & modifiers == Gdk.ModifierType.CONTROL_MASK: self.init_backward_sync(event) return True elif event.type == Gdk.EventType.BUTTON_PRESS and event.button == 1 and event.state & modifiers == 0: x_offset = event.x y_offset = event.y data = self.preview.get_page_number_and_offsets_by_document_offsets(x_offset, y_offset) if data == None: return True page_number, x_offset, y_offset = data links = self.preview.get_links_for_page(page_number) y_offset = (self.preview.page_height - y_offset) for link in links: if x_offset > link[0][0] and x_offset < link[0][2] and y_offset > link[0][1] and y_offset < link[0][3]: if link[2] == 'goto': self.preview.scroll_dest_on_screen(link[1]) return True elif link[2] == 'uri': thread.start_new_thread(webbrowser.open_new_tab, (link[1],)) return True def on_external_viewer_button_clicked(self, button): self.preview.open_external_viewer() def init_backward_sync(self, event): if not self.layouter.has_layout: return False y_total_pixels = min(max(event.y - self.layouter.vertical_margin, 0), (self.layouter.page_height + self.layouter.page_gap) * self.preview.number_of_pages - self.layouter.page_gap) x_pixels = min(max(event.x - self.layouter.horizontal_margin, 0), self.layouter.page_width) page = math.floor(y_total_pixels / (self.layouter.page_height + self.layouter.page_gap)) y_pixels = min(max(y_total_pixels - page * (self.layouter.page_height + self.layouter.page_gap), 0), self.layouter.page_height) x = x_pixels / self.layouter.scale_factor y = y_pixels / self.layouter.scale_factor page += 1 with self.preview.poppler_document_lock: poppler_page = self.preview.poppler_document.get_page(page - 1) rect = Poppler.Rectangle() rect.x1 = max(min(x, self.preview.page_width), 0) rect.y1 = max(min(y, self.preview.page_height), 0) rect.x2 = max(min(x, self.preview.page_width), 0) rect.y2 = max(min(y, self.preview.page_height), 0) word = poppler_page.get_selected_text(Poppler.SelectionStyle.WORD, rect) context = poppler_page.get_selected_text(Poppler.SelectionStyle.LINE, rect) self.preview.document.build_system.backward_sync(page, x, y, word, context) Setzer-0.4.4/setzer/document/preview/preview_layouter.py000066400000000000000000000156221420322575300235760ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gdk from setzer.helpers.observable import Observable class PreviewLayouter(Observable): def __init__(self, preview, view): Observable.__init__(self) self.preview = preview self.view = view self.hidpi_factor = self.view.get_scale_factor() self.ppp = self.get_ppp() # pixels per point self.vertical_margin_points = 0 self.horizontal_margin_points = 0 self.vertical_margin = None self.horizontal_margin = None self.page_width = None self.page_height = None self.page_gap_points = 5 self.page_gap = None self.border_width = None self.canvas_width = None self.canvas_height = None self.scale_factor = None self.current_page = None self.visible_synctex_rectangles = dict() self.has_layout = False self.preview.connect('pdf_changed', self.on_pdf_or_zoom_level_changed) self.preview.connect('zoom_level_changed', self.on_pdf_or_zoom_level_changed) self.preview.connect('position_changed', self.on_position_changed) if self.preview.pdf_filename != None: self.update_layout() def on_pdf_or_zoom_level_changed(self, preview): if self.preview.pdf_loaded: self.update_layout() else: self.has_layout = False self.vertical_margin = None self.horizontal_margin = None self.page_width = None self.page_height = None self.page_gap = None self.border_width = None self.canvas_width = None self.canvas_height = None self.scale_factor = None self.add_change_code('layout_changed') self.compute_current_page() def on_position_changed(self, preview): self.compute_current_page() def update_layout(self): if self.preview.zoom_level == None: return if not self.preview.pdf_loaded: return self.vertical_margin = int(self.ppp * self.vertical_margin_points) self.page_width = int(round(self.preview.zoom_level * self.ppp * self.preview.page_width)) self.horizontal_margin = int(self.ppp * self.horizontal_margin_points) self.horizontal_margin = int(max((self.view.get_allocated_width() - self.page_width) / 2, self.horizontal_margin)) self.page_height = int(self.preview.zoom_level * self.ppp * self.preview.page_height) self.page_gap = int(self.ppp * self.page_gap_points) self.border_width = 1 self.scale_factor = self.preview.zoom_level * self.ppp self.canvas_width = self.page_width + 2 * self.horizontal_margin self.canvas_height = self.preview.number_of_pages * (self.page_height + self.page_gap) - self.page_gap + 2 * self.vertical_margin self.has_layout = True self.compute_current_page() self.update_zoom_levels() self.update_synctex_rectangles() self.add_change_code('layout_changed') def update_synctex_rectangles(self): if self.has_layout: self.visible_synctex_rectangles = dict() for rectangle in self.preview.visible_synctex_rectangles: new_rectangle = dict() new_rectangle['page'] = rectangle['page'] new_rectangle['x'] = rectangle['h'] * self.scale_factor new_rectangle['y'] = (rectangle['v'] - rectangle['height']) * self.scale_factor new_rectangle['width'] = rectangle['width'] * self.scale_factor new_rectangle['height'] = rectangle['height'] * self.scale_factor try: self.visible_synctex_rectangles[rectangle['page'] - 1].append(new_rectangle) except KeyError: self.visible_synctex_rectangles[rectangle['page'] - 1] = [new_rectangle] def update_zoom_levels(self): if not self.has_layout: return self.horizontal_margin = int(self.ppp * self.horizontal_margin_points) self.horizontal_margin = int(max((self.view.get_allocated_width() - self.page_width) / 2, self.horizontal_margin)) if self.view.get_allocated_width() < 300: return old_level = self.preview.zoom_level_fit_to_width self.preview.update_dynamic_zoom_levels() if old_level != None and self.preview.zoom_level == old_level: self.preview.set_zoom_fit_to_width() elif self.preview.zoom_level != None and self.preview.zoom_level_fit_to_text_width != None and self.preview.zoom_level_fit_to_text_width == self.preview.zoom_level: self.preview.set_zoom_fit_to_text_width() elif self.preview.zoom_level != None and self.preview.zoom_level_fit_to_height != None and self.preview.zoom_level_fit_to_height == self.preview.zoom_level: self.preview.set_zoom_fit_to_height() elif self.preview.first_show: self.preview.first_show = False def get_ppp(self): monitor = Gdk.Display.get_default().get_monitor_at_point(1, 1) width_inch = monitor.get_width_mm() / 25.4 width_pixels = monitor.get_geometry().width if width_inch > 0 and width_pixels > 0: ppi = int(width_pixels / width_inch) else: ppi = 96 return self.hidpi_factor * ppi / 72 def compute_current_page(self): if self.has_layout and self.preview.presenter.scrolling_queue.empty(): offset = self.view.scrolled_window.get_vadjustment().get_value() self.current_page = int(1 + offset // (self.page_height + self.page_gap)) def get_page_number_and_offsets_by_document_offsets(self, x, y): if self.has_layout: if y % (self.page_height + self.page_gap) > self.page_height: return None if x < self.horizontal_margin or x > (self.horizontal_margin + self.page_width): return None page_number = int(y // (self.page_height + self.page_gap)) y_offset = y % (self.page_height + self.page_gap) / self.scale_factor x_offset = (x - self.horizontal_margin) / self.scale_factor return (page_number, x_offset, y_offset) return None def get_current_page(self): return self.current_page Setzer-0.4.4/setzer/document/preview/preview_page_renderer.py000066400000000000000000000177151420322575300245410ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gdk from gi.repository import GObject import cairo import _thread as thread, queue import time import math from setzer.helpers.observable import Observable class PreviewPageRenderer(Observable): def __init__(self, preview, layouter): Observable.__init__(self) self.preview = preview self.layouter = layouter self.maximum_rendered_pixels = 20000000 self.visible_pages_lock = thread.allocate_lock() self.visible_pages = list() self.page_width = None self.pdf_date = None self.rendered_pages = dict() self.is_active_lock = thread.allocate_lock() self.is_active = False self.preview.connect('position_changed', self.on_layout_or_position_changed) self.layouter.connect('layout_changed', self.on_layout_or_position_changed) self.page_render_count_lock = thread.allocate_lock() self.page_render_count = dict() self.render_queue = queue.Queue() self.render_queue_low_priority = queue.Queue() self.rendered_pages_queue = queue.Queue() thread.start_new_thread(self.render_page_loop, ()) GObject.timeout_add(50, self.rendered_pages_loop) def on_layout_or_position_changed(self, notifying_object): if self.layouter.has_layout: self.update_rendered_pages() else: self.rendered_pages = dict() def activate(self): with self.is_active_lock: self.is_active = True self.update_rendered_pages() def deactivate(self): with self.is_active_lock: self.is_active = False self.rendered_pages = dict() with self.visible_pages_lock: self.visible_pages = list() self.page_width = None self.pdf_date = None def render_page_loop(self): while True: with self.is_active_lock: is_active = self.is_active if is_active: try: todo = self.render_queue.get(block=False) except queue.Empty: try: todo = self.render_queue_low_priority.get(block=False) except queue.Empty: todo = None time.sleep(0.05) if todo != None: with self.page_render_count_lock: render_count = self.page_render_count[todo['page_number']] with self.visible_pages_lock: is_visible = (todo['page_number'] >= self.visible_pages_additional[0] and todo['page_number'] <= self.visible_pages_additional[1]) if todo['render_count'] == render_count and is_visible: with self.preview.poppler_document_lock: surface = cairo.ImageSurface(cairo.Format.ARGB32, todo['page_width'] * todo['hidpi_factor'], todo['page_height'] * 2) ctx = cairo.Context(surface) ctx.scale(todo['scale_factor'] * todo['hidpi_factor'], todo['scale_factor'] * todo['hidpi_factor']) page = self.preview.poppler_document.get_page(todo['page_number']) page.render(ctx) self.rendered_pages_queue.put({'page_number': todo['page_number'], 'item': [surface, todo['page_width'], todo['pdf_date']]}) else: time.sleep(0.05) def rendered_pages_loop(self): with self.is_active_lock: is_active = self.is_active if not is_active: return True changed = False while self.rendered_pages_queue.empty() == False: try: todo = self.rendered_pages_queue.get(block=False) except queue.Empty: pass else: try: del(self.rendered_pages[todo['page_number']]) except KeyError: pass self.rendered_pages[todo['page_number']] = todo['item'] changed = True if changed: self.add_change_code('rendered_pages_changed') return True def update_rendered_pages(self): with self.is_active_lock: is_active = self.is_active if not is_active: return hidpi_factor = self.layouter.hidpi_factor page_width = self.layouter.page_width page_height = self.layouter.page_height current_page = self.layouter.get_current_page() if current_page == None: return else: current_page -= 1 visible_pages = [current_page, min(current_page + math.floor(self.preview.view.get_allocated_height() / page_height) + 1, self.preview.number_of_pages - 1)] max_additional_pages = max(math.floor(self.maximum_rendered_pixels / (page_width * page_height * hidpi_factor * hidpi_factor) - visible_pages[1] + visible_pages[0]), 0) visible_pages_additional = [max(int(visible_pages[0] - max_additional_pages / 2), 0), min(int(visible_pages[1] + max_additional_pages / 2), self.preview.number_of_pages - 1)] pdf_date = self.preview.pdf_date with self.visible_pages_lock: if pdf_date == self.pdf_date and visible_pages == self.visible_pages and visible_pages_additional == self.visible_pages_additional and page_width == self.page_width: do_return = True else: do_return = False if do_return: return with self.visible_pages_lock: self.visible_pages = visible_pages self.visible_pages_additional = visible_pages_additional self.page_width = page_width self.pdf_date = pdf_date changed = False for page_number in list(self.rendered_pages): if self.rendered_pages[page_number][2] != pdf_date or page_number < visible_pages_additional[0] or page_number > visible_pages_additional[1]: del(self.rendered_pages[page_number]) changed = True if changed: self.add_change_code('rendered_pages_changed') scale_factor = self.layouter.scale_factor for page_number in range(0, self.preview.number_of_pages): if page_number not in self.rendered_pages or self.rendered_pages[page_number][1] != page_width or self.rendered_pages[page_number][2] != pdf_date: with self.page_render_count_lock: try: self.page_render_count[page_number] += 1 except KeyError: self.page_render_count[page_number] = 1 if visible_pages != None and page_number >= visible_pages[0] and page_number <= visible_pages[1]: self.render_queue.put({'page_number': page_number, 'render_count': self.page_render_count[page_number], 'scale_factor': scale_factor, 'hidpi_factor': hidpi_factor, 'page_width': page_width, 'page_height': page_height, 'pdf_date': pdf_date}) elif page_number >= visible_pages_additional[0] and page_number <= visible_pages_additional[1]: self.render_queue_low_priority.put({'page_number': page_number, 'render_count': self.page_render_count[page_number], 'scale_factor': scale_factor, 'hidpi_factor': hidpi_factor, 'page_width': page_width, 'page_height': page_height, 'pdf_date': pdf_date}) Setzer-0.4.4/setzer/document/preview/preview_presenter.py000066400000000000000000000215551420322575300237430ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import GObject import cairo import os.path import math import time import queue from setzer.app.service_locator import ServiceLocator from setzer.helpers.timer import timer class PreviewPresenter(object): def __init__(self, preview, layouter, page_renderer, view): self.preview = preview self.layouter = layouter self.page_renderer = page_renderer self.view = view self.highlight_duration = 1.5 self.color_manager = ServiceLocator.get_color_manager() self.view.drawing_area.connect('draw', self.draw) self.scrolling_queue = queue.Queue() self.view.drawing_area.connect('size-allocate', self.scrolling_loop) GObject.timeout_add(50, self.scrolling_loop) self.preview.connect('pdf_changed', self.on_pdf_changed) self.preview.connect('invert_pdf_changed', self.on_invert_pdf_changed) self.layouter.connect('layout_changed', self.on_layout_changed) self.page_renderer.connect('rendered_pages_changed', self.on_rendered_pages_changed) self.show_blank_slate() def on_pdf_changed(self, preview): if self.preview.pdf_loaded: self.show_pdf() else: self.show_blank_slate() def on_invert_pdf_changed(self, preview): self.view.drawing_area.queue_draw() def on_layout_changed(self, layouter): self.set_canvas_size() def on_rendered_pages_changed(self, page_renderer): self.view.drawing_area.queue_draw() def show_blank_slate(self): self.view.stack.set_visible_child_name('blank_slate') self.view.blank_slate.show_all() self.view.external_viewer_button.set_sensitive(False) self.view.external_viewer_button_revealer.set_reveal_child(False) def show_pdf(self): self.view.stack.set_visible_child_name('pdf') self.view.scrolled_window.show_all() self.view.external_viewer_button.set_sensitive(True) self.view.external_viewer_button_revealer.set_reveal_child(True) def set_canvas_size(self): if self.layouter.has_layout: self.view.drawing_area.set_size_request(self.layouter.canvas_width, self.layouter.canvas_height) def start_fade_loop(self): def draw(): timer = (self.highlight_duration + 0.25 - time.time() + self.preview.visible_synctex_rectangles_time) if timer <= 0.4: self.view.drawing_area.queue_draw() return timer >= 0 self.view.drawing_area.queue_draw() GObject.timeout_add(15, draw) def scroll_to_position(self, position): if self.layouter.has_layout: self.scrolling_queue.put(position) def scrolling_loop(self, widget=None, allocation=None): allocated_height = int(self.view.drawing_area.get_allocated_height()) if self.layouter.has_layout and allocated_height == max(int(self.layouter.canvas_height), allocated_height): while self.scrolling_queue.empty() == False: todo = self.scrolling_queue.get(block=False) if self.scrolling_queue.empty(): self.scroll_now(todo) self.preview.add_change_code('position_changed') return True def scroll_now(self, position): yoffset = max((self.layouter.page_gap + self.layouter.page_height) * (position['page'] - 1) + self.layouter.vertical_margin + position['y'] * self.layouter.scale_factor, 0) xoffset = self.layouter.horizontal_margin + position['x'] * self.layouter.scale_factor self.view.scrolled_window.get_hadjustment().set_value(xoffset) self.view.scrolled_window.get_vadjustment().set_value(yoffset) #@timer def draw(self, drawing_area, ctx, data = None): if self.layouter.has_layout: bg_color = self.color_manager.get_theme_color('theme_bg_color') border_color = self.color_manager.get_theme_color('borders') self.draw_background(ctx, drawing_area, bg_color) ctx.transform(cairo.Matrix(1, 0, 0, 1, self.layouter.horizontal_margin, self.layouter.vertical_margin)) offset = self.view.scrolled_window.get_vadjustment().get_value() view_width = self.view.scrolled_window.get_allocated_width() view_height = self.view.scrolled_window.get_allocated_height() additional_height = ctx.get_target().get_height() - view_height additional_pages = additional_height // self.layouter.page_height + 2 first_page = max(int(offset // self.layouter.page_height) - additional_pages, 0) last_page = min(int((offset + view_height) // self.layouter.page_height) + additional_pages, self.preview.number_of_pages) ctx.transform(cairo.Matrix(1, 0, 0, 1, 0, first_page * (self.layouter.page_height + self.layouter.page_gap))) for page_number in range(first_page, last_page): self.draw_page_background_and_outline(ctx, border_color) self.draw_rendered_page(ctx, page_number) self.draw_synctex_rectangles(ctx, page_number) ctx.transform(cairo.Matrix(1, 0, 0, 1, 0, self.layouter.page_height + self.layouter.page_gap)) def draw_background(self, ctx, drawing_area, bg_color): ctx.rectangle(0, 0, drawing_area.get_allocated_width(), drawing_area.get_allocated_height()) ctx.set_source_rgba(bg_color.red, bg_color.green, bg_color.blue, bg_color.alpha) ctx.fill() #@timer def draw_page_background_and_outline(self, ctx, border_color): ctx.set_source_rgba(border_color.red, border_color.green, border_color.blue, border_color.alpha) ctx.rectangle(- self.layouter.border_width, - self.layouter.border_width, self.layouter.page_width + 2 * self.layouter.border_width, self.layouter.page_height + 2 * self.layouter.border_width) ctx.fill() ctx.set_source_rgba(1, 1, 1, 1) ctx.rectangle(0, 0, self.layouter.page_width, self.layouter.page_height) ctx.fill() def draw_rendered_page(self, ctx, page_number): if page_number in self.page_renderer.rendered_pages: rendered_page_data = self.page_renderer.rendered_pages[page_number] surface = rendered_page_data[0] page_width = rendered_page_data[1] * self.layouter.hidpi_factor if isinstance(surface, cairo.ImageSurface): if page_width == self.layouter.page_width: ctx.set_source_surface(surface, 0, 0) ctx.rectangle(0, 0, self.layouter.page_width, self.layouter.page_height) ctx.fill() else: matrix = ctx.get_matrix() factor = self.layouter.page_width / page_width ctx.scale(factor, factor) ctx.set_source_surface(surface, 0, 0) ctx.rectangle(0, 0, self.layouter.page_width, self.layouter.page_height) ctx.fill() ctx.set_matrix(matrix) if self.preview.invert_pdf: ctx.set_operator(cairo.Operator.DIFFERENCE) ctx.set_source_rgb(1, 1, 1) ctx.rectangle(0, 0, self.layouter.page_width, self.layouter.page_height) ctx.fill() ctx.set_operator(cairo.Operator.OVER) def draw_synctex_rectangles(self, ctx, page_number): try: rectangles = self.layouter.visible_synctex_rectangles[page_number] except KeyError: pass else: time_factor = self.ease(min(self.highlight_duration + 0.25 - (time.time() - self.preview.visible_synctex_rectangles_time), 0.25) * 4) if time_factor < 0: self.preview.set_synctex_rectangles(list()) else: ctx.set_source_rgba(0.976, 0.941, 0.420, 0.6 * time_factor) ctx.set_operator(cairo.Operator.MULTIPLY) for rectangle in rectangles: ctx.rectangle(rectangle['x'], rectangle['y'], rectangle['width'], rectangle['height']) ctx.fill() ctx.set_operator(cairo.Operator.OVER) def ease(self, factor): return (factor - 1)**3 + 1 Setzer-0.4.4/setzer/document/preview/preview_viewgtk.py000066400000000000000000000104051420322575300234040ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gdk from gi.repository import Gio class PreviewView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('preview') self.action_bar = Gtk.HBox() self.action_bar.set_size_request(-1, 37) self.external_viewer_button = Gtk.Button.new_from_icon_name('external-viewer-symbolic', Gtk.IconSize.MENU) self.external_viewer_button.set_tooltip_text(_('External Viewer')) self.external_viewer_button.get_style_context().add_class('flat') self.external_viewer_button.set_can_focus(False) self.external_viewer_button_revealer = Gtk.Revealer() self.external_viewer_button_revealer.set_transition_type(Gtk.RevealerTransitionType.NONE) box = Gtk.HBox() box.pack_start(self.external_viewer_button, False, False, 0) self.external_viewer_button_revealer.add(box) self.action_bar.pack_end(self.external_viewer_button_revealer, False, False, 0) self.pack_start(self.action_bar, False, False, 0) self.drawing_area = Gtk.DrawingArea() self.drawing_area.add_events(Gdk.EventMask.BUTTON_PRESS_MASK) self.drawing_area.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK) self.menu_item_backward_sync = Gtk.MenuItem.new_with_label(_('Show Source')) self.menu_item_zoom_in = Gtk.MenuItem.new_with_label(_('Zoom In')) self.menu_item_zoom_out = Gtk.MenuItem.new_with_label(_('Zoom Out')) self.menu_item_zoom_fit_to_width = Gtk.MenuItem.new_with_label(_('Fit to Width')) self.menu_item_zoom_fit_to_text_width = Gtk.MenuItem.new_with_label(_('Fit to Text Width')) self.menu_item_zoom_fit_to_height = Gtk.MenuItem.new_with_label(_('Fit to Height')) self.context_menu = Gtk.Menu() self.context_menu.append(self.menu_item_backward_sync) self.context_menu.append(Gtk.SeparatorMenuItem()) self.context_menu.append(self.menu_item_zoom_in) self.context_menu.append(self.menu_item_zoom_out) self.context_menu.append(self.menu_item_zoom_fit_to_width) self.context_menu.append(self.menu_item_zoom_fit_to_text_width) self.context_menu.append(self.menu_item_zoom_fit_to_height) self.scrolled_window = Gtk.ScrolledWindow() self.scrolled_window.add(self.drawing_area) self.blank_slate = BlankSlateView() self.stack = Gtk.Stack() self.stack.add_named(self.blank_slate, 'blank_slate') self.stack.add_named(self.scrolled_window, 'pdf') self.pack_start(self.stack, True, True, 0) self.show_all() def set_layout_data(self, layout_data): self.layout_data = layout_data class BlankSlateView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('preview_blank') self.pack_start(Gtk.DrawingArea(), True, True, 0) image = Gtk.Image.new_from_icon_name('own-no-preview-symbolic', Gtk.IconSize.DIALOG) image.set_pixel_size(150) self.pack_start(image, False, False, 0) header = Gtk.Label(_('No preview available')) header.get_style_context().add_class('header') self.pack_start(header, False, False, 0) body = Gtk.Label(_('To show a .pdf preview of your document, click the build button in the headerbar.')) body.get_style_context().add_class('body') body.set_line_wrap(True) self.pack_start(body, False, False, 0) self.pack_start(Gtk.DrawingArea(), True, True, 0) Setzer-0.4.4/setzer/document/preview/zoom_widget/000077500000000000000000000000001420322575300221405ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/preview/zoom_widget/__init__.py000066400000000000000000000000001420322575300242370ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/preview/zoom_widget/zoom_widget.py000066400000000000000000000076061420322575300250520ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk import setzer.document.preview.zoom_widget.zoom_widget_viewgtk as view class ZoomWidget(object): def __init__(self, preview): self.preview = preview self.view = view.PreviewZoomWidget() self.preview.view.action_bar.pack_end(self.view, False, False, 0) self.preview.connect('pdf_changed', self.on_pdf_changed) self.preview.connect('zoom_level_changed', self.on_zoom_level_changed) self.view.zoom_in_button.connect('clicked', self.on_zoom_button_clicked, 'in') self.view.zoom_out_button.connect('clicked', self.on_zoom_button_clicked, 'out') self.update_zoom_level() self.view.hide() model_button = Gtk.ModelButton() model_button.set_label(_('Fit to Width')) model_button.get_child().set_halign(Gtk.Align.START) model_button.connect('clicked', self.on_fit_to_width_button_clicked) self.view.zoom_button_box.pack_start(model_button, False, False, 0) model_button = Gtk.ModelButton() model_button.set_label(_('Fit to Text Width')) model_button.get_child().set_halign(Gtk.Align.START) model_button.connect('clicked', self.on_fit_to_text_width_button_clicked) self.view.zoom_button_box.pack_start(model_button, False, False, 0) model_button = Gtk.ModelButton() model_button.set_label(_('Fit to Height')) model_button.get_child().set_halign(Gtk.Align.START) model_button.connect('clicked', self.on_fit_to_height_button_clicked) self.view.zoom_button_box.pack_start(model_button, False, False, 0) separator = Gtk.SeparatorMenuItem() self.view.zoom_button_box.pack_start(separator, False, False, 0) for level in self.preview.zoom_levels: model_button = Gtk.ModelButton() model_button.set_label('{0:.0f}%'.format(level * 100)) model_button.get_child().set_halign(Gtk.Align.START) model_button.connect('clicked', self.on_set_zoom_button_clicked, level) self.view.zoom_button_box.pack_start(model_button, False, False, 0) self.view.zoom_button_box.show_all() def on_pdf_changed(self, preview): if self.preview.pdf_loaded: self.view.set_reveal_child(True) else: self.view.set_reveal_child(False) def on_zoom_level_changed(self, preview): self.update_zoom_level() def on_zoom_button_clicked(self, button, direction): if direction == 'in': self.preview.zoom_in() else: self.preview.zoom_out() def on_fit_to_width_button_clicked(self, button): self.preview.set_zoom_fit_to_width_auto_offset() def on_fit_to_text_width_button_clicked(self, button): self.preview.set_zoom_fit_to_text_width() def on_fit_to_height_button_clicked(self, button): self.preview.set_zoom_fit_to_height() def on_set_zoom_button_clicked(self, button, level): self.preview.set_zoom_level_auto_offset(level) def update_zoom_level(self): if self.preview.zoom_level != None: self.view.label.set_text('{0:.1f}%'.format(self.preview.zoom_level * 100)) Setzer-0.4.4/setzer/document/preview/zoom_widget/zoom_widget_viewgtk.py000066400000000000000000000054571420322575300266140ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class PreviewZoomWidget(Gtk.Revealer): def __init__(self): Gtk.Revealer.__init__(self) self.set_transition_type(Gtk.RevealerTransitionType.NONE) self.box = Gtk.HBox() self.box.get_style_context().add_class('zoom_widget') self.zoom_out_button = Gtk.Button.new_from_icon_name('zoom-out-symbolic', Gtk.IconSize.MENU) self.zoom_out_button.set_tooltip_text(_('Zoom out')) self.zoom_out_button.get_style_context().add_class('flat') self.zoom_out_button.set_can_focus(False) self.zoom_in_button = Gtk.Button.new_from_icon_name('zoom-in-symbolic', Gtk.IconSize.MENU) self.zoom_in_button.set_tooltip_text(_('Zoom in')) self.zoom_in_button.get_style_context().add_class('flat') self.zoom_in_button.set_can_focus(False) popover = Gtk.PopoverMenu() stack = popover.get_child() self.zoom_button_box = Gtk.VBox() self.zoom_button_box.set_margin_top(10) self.zoom_button_box.set_margin_bottom(10) self.zoom_button_box.set_margin_left(10) self.zoom_button_box.set_margin_right(10) stack.add_named(self.zoom_button_box, 'main') self.label = Gtk.Label('100.0%') self.label.set_xalign(0.5) self.zoom_level_button = Gtk.MenuButton() self.zoom_level_button.set_direction(Gtk.ArrowType.DOWN) self.zoom_level_button.set_focus_on_click(False) self.zoom_level_button.set_popover(popover) self.zoom_level_button.set_tooltip_text(_('Set zoom level')) self.zoom_level_button.get_style_context().add_class('flat') self.zoom_level_button.get_style_context().add_class('zoom_level_button') self.zoom_level_button.set_can_focus(False) self.zoom_level_button.add(self.label) self.box.pack_start(self.zoom_out_button, False, False, 0) self.box.pack_start(self.zoom_level_button, False, False, 0) self.box.pack_start(self.zoom_in_button, False, False, 0) self.add(self.box) self.show_all() Setzer-0.4.4/setzer/document/search/000077500000000000000000000000001420322575300173755ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/search/__init__.py000066400000000000000000000000001420322575300214740ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/search/search.py000066400000000000000000000343371420322575300212260ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('GtkSource', '4') from gi.repository import GLib from gi.repository import Gdk from gi.repository import Gtk from gi.repository import GtkSource from setzer.dialogs.dialog_locator import DialogLocator class Search(object): ''' Control find, find and replace. ''' def __init__(self, document, document_view, search_bar): self.search_bar = search_bar self.search_bar_mode = 'search' self.document_view = document_view self.document = document self.search_settings = GtkSource.SearchSettings() self.search_context = GtkSource.SearchContext.new(self.document.content.source_buffer, self.search_settings) self.search_context.set_highlight(True) self.observe_search_bar() self.observe_shortcutsbar() self.search_bar.connect('size-allocate', self.on_search_bar_size_allocate) self.search_bar.match_counter.connect('size-allocate', self.on_match_counter_size_allocate) self.document.content.connect('selection_might_have_changed', self.on_selection_might_have_changed) def observe_shortcutsbar(self): self.document_view.shortcutsbar_bottom.button_find.connect('toggled', self.on_find_button_clicked) self.document_view.shortcutsbar_bottom.button_find_and_replace.connect('toggled', self.on_find_replace_button_clicked) def observe_search_bar(self): self.search_bar.entry.connect('search-changed', self.on_search_entry_changed) self.search_bar.entry.connect('stop-search', self.on_search_stop) self.search_bar.entry.connect('next-match', self.on_search_next_match) self.search_bar.entry.connect('previous-match', self.on_search_previous_match) self.search_bar.entry.connect('activate', self.on_search_entry_activate) self.search_bar.replace_entry.connect('key-press-event', self.on_replace_entry_keypress) self.search_bar.close_button.connect('clicked', self.on_search_close_button_click) self.search_bar.next_button.connect('clicked', self.on_search_next_button_click) self.search_bar.prev_button.connect('clicked', self.on_search_prev_button_click) self.search_bar.replace_button.connect('clicked', self.on_replace_button_click) self.search_bar.replace_all_button.connect('clicked', self.on_replace_all_button_click) def on_selection_might_have_changed(self, document, has_selection): self.update_replace_button() def on_search_close_button_click(self, button_object=None): self.on_search_stop() def on_replace_entry_keypress(self, entry, event): modifiers = Gtk.accelerator_get_default_mod_mask() if event.keyval == Gdk.keyval_from_name('Escape'): if event.state & modifiers == 0: self.on_search_stop() return True return False def on_search_next_button_click(self, button_object=None): self.on_search_next_match() def on_search_prev_button_click(self, button_object=None): self.on_search_previous_match() def on_replace_button_click(self, button_object=None): replacement = self.search_bar.replace_entry.get_text() bounds = self.search_context.get_buffer().get_selection_bounds() if len(bounds) == 2: self.search_context.replace(*bounds, replacement, -1) self.on_search_next_match() def on_replace_all_button_click(self, button_object=None): original = self.search_bar.entry.get_text() replacement = self.search_bar.replace_entry.get_text() number_of_occurrences = self.search_context.get_occurrences_count() if number_of_occurrences > 0: dialog = DialogLocator.get_dialog('replace_confirmation') if dialog.run(original, replacement, number_of_occurrences): self.search_context.replace_all(replacement, -1) def on_search_entry_activate(self, entry=None): self.on_search_next_match(entry, True) self.document_view.source_view.grab_focus() def on_search_next_match(self, entry=None, include_current_highlight=False): buffer = self.search_context.get_buffer() insert_iter = buffer.get_iter_at_mark(buffer.get_insert()) bound_iter = buffer.get_iter_at_mark(buffer.get_selection_bound()) if include_current_highlight: if insert_iter.get_offset() < bound_iter.get_offset(): search_iter = insert_iter else: search_iter = bound_iter result = self.search_context.forward(search_iter) else: if insert_iter.get_offset() < bound_iter.get_offset(): search_iter = bound_iter else: search_iter = insert_iter result = self.search_context.forward(search_iter) if result[0] == True: buffer.select_range(result[2], result[1]) self.document.content.scroll_cursor_onscreen() self.set_match_counter(self.search_context.get_occurrence_position(result[1], result[2]), self.search_context.get_occurrences_count()) else: search_iter = buffer.get_start_iter() result = self.search_context.forward(search_iter) if result[0] == True: buffer.select_range(result[2], result[1]) self.document.content.scroll_cursor_onscreen() self.set_match_counter(self.search_context.get_occurrence_position(result[1], result[2]), self.search_context.get_occurrences_count()) def on_search_previous_match(self, entry=None): buffer = self.search_context.get_buffer() insert_iter = buffer.get_iter_at_mark(buffer.get_insert()) bound_iter = buffer.get_iter_at_mark(buffer.get_selection_bound()) if insert_iter.get_offset() > bound_iter.get_offset(): search_iter = bound_iter else: search_iter = insert_iter result = self.search_context.backward(search_iter) if result[0] == True: buffer.select_range(result[1], result[2]) self.document.content.scroll_cursor_onscreen() self.set_match_counter(self.search_context.get_occurrence_position(result[1], result[2]), self.search_context.get_occurrences_count()) else: search_iter = buffer.get_end_iter() result = self.search_context.backward(search_iter) if result[0] == True: buffer.select_range(result[1], result[2]) self.document.content.scroll_cursor_onscreen() self.set_match_counter(self.search_context.get_occurrence_position(result[1], result[2]), self.search_context.get_occurrences_count()) def on_search_entry_changed(self, entry): search_view = self.document_view.search_bar self.search_settings.set_search_text(entry.get_text()) search_view.replace_entry.set_text(entry.get_text()) # scan buffer, then highlight match if len(entry.get_text()) > 0: buffer = self.search_context.get_buffer() result = self.search_context.forward(buffer.get_start_iter()) if result[0] == False: self.set_match_counter(-1, -1) search_view.entry.get_style_context().add_class('error') search_view.entry.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, 'face-uncertain-symbolic') search_view.replace_all_button.set_sensitive(False) else: search_view.entry.get_style_context().remove_class('error') search_view.entry.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, search_view.icon_name) while self.search_context.get_occurrences_count() == -1 and result[0] == True: result = self.search_context.forward(result[2]) self.on_search_next_match(entry, include_current_highlight=True) search_view.replace_all_button.set_sensitive(True) else: self.set_match_counter(-1, -1) search_view.entry.get_style_context().remove_class('error') search_view.entry.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, search_view.icon_name) search_view.replace_all_button.set_sensitive(False) def update_replace_button(self): if self.result_selected(): self.search_bar.replace_button.set_sensitive(True) else: self.search_bar.replace_button.set_sensitive(False) def result_selected(self): selected_text = self.document.content.get_selected_text() if selected_text != None: if selected_text == self.search_bar.entry.get_text(): return True return False def on_search_stop(self, entry=None): self.document_view.shortcutsbar_bottom.button_find_and_replace.set_active(False) self.document_view.shortcutsbar_bottom.button_find.set_active(False) def on_find_button_clicked(self, button_object=None): if button_object.get_active() == True: self.document_view.shortcutsbar_bottom.button_find_and_replace.set_active(False) self.show_search_bar() self.set_mode_search() elif self.document_view.shortcutsbar_bottom.button_find_and_replace.get_active() == False: self.hide_search_bar() def on_find_replace_button_clicked(self, button_object=None): if button_object.get_active() == True: self.document_view.shortcutsbar_bottom.button_find.set_active(False) self.show_search_bar() self.set_mode_replace() elif self.document_view.shortcutsbar_bottom.button_find.get_active() == False: self.hide_search_bar() def on_search_bar_size_allocate(self, search_bar=None, allocation=None): allocated_width = self.search_bar.get_allocated_width() if allocated_width < 640: self.search_bar.entry.set_size_request(270, -1) self.search_bar.replace_entry.set_size_request(105, -1) if self.search_bar.replace_wrapper.get_parent() == self.search_bar.super_box: return self.search_bar.box.remove(self.search_bar.replace_wrapper) self.search_bar.super_box.pack_start(self.search_bar.replace_wrapper, False, False, 0) self.search_bar.arrow.set_margin_left(6) self.search_bar.replace_entry.set_margin_right(60) self.search_bar.replace_wrapper.set_margin_top(6) else: if self.search_bar_mode == 'replace': self.search_bar.entry.set_size_request(230, -1) else: self.search_bar.entry.set_size_request(270, -1) self.search_bar.replace_entry.set_size_request(105, -1) if self.search_bar.replace_wrapper.get_parent() == self.search_bar.box: return self.search_bar.super_box.remove(self.search_bar.replace_wrapper) self.search_bar.box.pack_start(self.search_bar.replace_wrapper, False, False, 0) self.search_bar.arrow.set_margin_left(0) self.search_bar.replace_entry.set_margin_right(0) self.search_bar.replace_wrapper.set_margin_top(0) self.document_view.queue_draw() ''' *** actions: search bar ''' def show_search_bar(self): search_bar = self.document_view.search_bar search_bar.set_reveal_child(True) self.on_search_bar_size_allocate() GLib.idle_add(self.search_entry_grab_focus, None) def hide_search_bar(self): self.on_search_next_match(None, True) self.document_view.source_view.grab_focus() search_bar = self.document_view.search_bar search_bar.set_reveal_child(False) search_bar.entry.set_text('') def search_entry_grab_focus(self, args=None): entry = self.document_view.search_bar.entry did_set_text = self.set_text_current_selection() entry.grab_focus_without_selecting() entry.set_position(entry.get_text_length()) if not did_set_text: entry.select_region(0, entry.get_text_length()) self.on_search_entry_changed(entry) def set_mode_search(self): self.search_bar_mode = 'search' self.search_bar.replace_wrapper.hide() def set_mode_replace(self): self.search_bar_mode = 'replace' self.search_bar.replace_wrapper.show_all() def set_text_current_selection(self): selection = self.document.content.get_selected_text() if selection != None: self.search_bar.entry.set_text(selection) return True return False ''' *** control match counter ''' def set_match_counter(self, match_no=-1, total=-1): search_bar = self.document_view.search_bar search_bar.match_counter.set_margin_end(6 + 2*search_bar.next_button.get_allocated_width()) if total == -1: search_bar.match_counter.set_text('') search_bar.prev_button.set_sensitive(False) search_bar.next_button.set_sensitive(False) else: search_bar.match_counter.set_text(str(match_no) + ' of ' + str(total)) search_bar.prev_button.set_sensitive(True) search_bar.next_button.set_sensitive(True) def on_match_counter_size_allocate(self, widget=None, allocation=None): search_bar = self.document_view.search_bar allocated_width = search_bar.match_counter.get_allocated_width() if allocated_width < 5: number = str(6) else: number = str(12 + allocated_width) search_bar.entry_css_provider.load_from_data(('entry { padding-right: ' + number + 'px; }').encode('utf-8')) Setzer-0.4.4/setzer/document/search/search_viewgtk.py000066400000000000000000000104331420322575300227550ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class SearchBar(Gtk.Revealer): ''' Find text in a document ''' def __init__(self): Gtk.Revealer.__init__(self) self.super_box = Gtk.VBox() self.box = Gtk.HBox() self.super_box.pack_start(self.box, False, False, 0) self.super_box.get_style_context().add_class('search_bar') self.left_box = Gtk.HBox() self.replace_wrapper = Gtk.HBox() self.entry = Gtk.SearchEntry() self.entry.get_style_context().add_class('search_entry') self.entry_css_provider = Gtk.CssProvider() self.entry.get_style_context().add_provider(self.entry_css_provider, 800) self.arrow = Gtk.Image.new_from_icon_name('own-searchandreplacearrow-symbolic', Gtk.IconSize.LARGE_TOOLBAR) self.replace_entry = Gtk.Entry() self.replace_entry.set_width_chars(4) self.replace_entry.get_style_context().add_class('replace_entry') self.replace_entry_css_provider = Gtk.CssProvider() self.replace_entry.get_style_context().add_provider(self.replace_entry_css_provider, 800) self.icon_name = self.entry.get_icon_name(Gtk.EntryIconPosition.PRIMARY) self.prev_button = Gtk.Button.new_from_icon_name('go-up-symbolic', Gtk.IconSize.MENU) self.prev_button.set_can_focus(False) self.prev_button.set_tooltip_text(_('Previous result') + ' (Ctrl+Shift+G)') self.next_button = Gtk.Button.new_from_icon_name('go-down-symbolic', Gtk.IconSize.MENU) self.next_button.set_can_focus(False) self.next_button.set_tooltip_text(_('Next result') + ' (Ctrl+G)') self.replace_button = Gtk.Button.new_with_label(_('Replace')) self.replace_button.set_can_focus(False) self.replace_button.set_tooltip_text(_('Replace selected result')) self.replace_button.set_sensitive(False) self.replace_all_button = Gtk.Button.new_with_label(_('All')) self.replace_all_button.set_can_focus(False) self.replace_all_button.set_tooltip_text(_('Replace all results')) self.replace_all_button.set_sensitive(False) self.left_box.pack_start(self.entry, False, False, 0) self.left_box.pack_start(self.prev_button, False, False, 0) self.left_box.pack_start(self.next_button, False, False, 0) self.left_box.get_style_context().add_class('linked') self.match_counter = Gtk.Label('') self.match_counter.set_halign(Gtk.Align.END) self.match_counter.get_style_context().add_class('search_match_counter') self.overlay_wrapper = Gtk.Overlay() self.overlay_wrapper.add(self.left_box) self.overlay_wrapper.add_overlay(self.match_counter) self.overlay_wrapper.set_overlay_pass_through(self.match_counter, True) self.close_button = Gtk.Button.new_from_icon_name('window-close-symbolic', Gtk.IconSize.MENU) self.close_button.get_style_context().add_class('flat') self.close_button.set_can_focus(False) self.replace_wrapper.pack_start(self.arrow, False, False, 6) self.replace_wrapper.pack_start(self.replace_entry, False, False, 6) self.replace_wrapper.pack_start(self.replace_button, False, False, 0) self.replace_wrapper.pack_start(self.replace_all_button, False, False, 6) self.box.pack_start(self.overlay_wrapper, False, False, 6) self.box.pack_end(self.close_button, False, False, 0) self.add(self.super_box) self.show_all() self.replace_wrapper.hide() self.set_reveal_child(False) Setzer-0.4.4/setzer/document/shortcutsbar/000077500000000000000000000000001420322575300206535ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/shortcutsbar/__init__.py000066400000000000000000000000001420322575300227520ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/shortcutsbar/shortcutsbar_presenter.py000066400000000000000000000034231420322575300260410ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.app.service_locator import ServiceLocator class ShortcutsbarPresenter(object): ''' Mediator between workspace and view. ''' def __init__(self, document, view): self.document = document self.view = view self.document.content.connect('document_empty', self.on_document_empty) self.document.content.connect('document_not_empty', self.on_document_not_empty) self.width = None self.view.connect('size-allocate', self.on_size_allocate) def on_document_empty(self, document): self.update_wizard_button_visibility() def on_document_not_empty(self, document): self.update_wizard_button_visibility() def on_size_allocate(self, widget, allocation): if allocation.width != self.width: self.width = allocation.width self.update_wizard_button_visibility() def update_wizard_button_visibility(self): is_visible = (not self.document.content.is_empty()) and self.width > 675 self.view.wizard_button.label_revealer.set_reveal_child(is_visible) Setzer-0.4.4/setzer/document/shortcutsbar/shortcutsbar_viewgtk.py000066400000000000000000000064331420322575300255160ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class ShortcutsbarBottom(Gtk.Toolbar): def __init__(self): Gtk.Toolbar.__init__(self) self.set_style(Gtk.ToolbarStyle.ICONS) self.set_orientation(Gtk.Orientation.HORIZONTAL) self.set_icon_size(Gtk.IconSize.SMALL_TOOLBAR) self.get_style_context().add_class('bottom') self.more_actions_popover = Gtk.PopoverMenu() button_wrapper = Gtk.ToolItem() self.button_more = Gtk.MenuButton() self.button_more.set_direction(Gtk.ArrowType.DOWN) self.button_more.set_image(Gtk.Image.new_from_icon_name('view-more-symbolic', Gtk.IconSize.MENU)) self.button_more.set_tooltip_text(_('More Actions')) self.button_more.set_can_focus(False) self.button_more.set_popover(self.more_actions_popover) self.button_more.get_style_context().add_class('flat') button_wrapper.add(self.button_more) self.insert(button_wrapper, 0) self.button_find_and_replace = Gtk.ToggleToolButton() self.button_find_and_replace.set_icon_name('edit-find-replace-symbolic') self.button_find_and_replace.set_tooltip_text(_('Find and Replace (Ctrl+H)')) self.button_find_and_replace.get_child().set_can_focus(False) self.insert(self.button_find_and_replace, 0) self.button_find = Gtk.ToggleToolButton() self.button_find.set_icon_name('edit-find-symbolic') self.button_find.set_tooltip_text(_('Find (Ctrl+F)')) self.button_find.get_child().set_can_focus(False) self.insert(self.button_find, 0) self.show_all() class WizardButton(Gtk.ToolButton): def __init__(self): Gtk.ToolButton.__init__(self) self.icon_widget = Gtk.HBox() icon = Gtk.Image.new_from_icon_name('own-wizard-symbolic', Gtk.IconSize.MENU) icon.set_margin_left(4) self.icon_widget.pack_start(icon, False, False, 0) self.label_revealer = Gtk.Revealer() label = Gtk.Label(_('New Document Wizard')) label.set_margin_left(6) label.set_margin_right(4) self.label_revealer.add(label) self.label_revealer.set_transition_type(Gtk.RevealerTransitionType.SLIDE_LEFT) self.label_revealer.set_reveal_child(True) self.icon_widget.pack_start(self.label_revealer, False, False, 0) self.set_icon_widget(self.icon_widget) self.set_action_name('win.show-document-wizard') self.get_child().set_can_focus(False) self.set_tooltip_text(_('Create a template document')) self.show_all() Setzer-0.4.4/setzer/document/spellchecker/000077500000000000000000000000001420322575300205745ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/spellchecker/__init__.py000066400000000000000000000000001420322575300226730ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/spellchecker/spellchecker.py000066400000000000000000000030561420322575300236160ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gspell', '1') from gi.repository import Gspell class Spellchecker(object): def __init__(self, source_view): self.checker = Gspell.Checker() self.spell_buffer = Gspell.TextBuffer.get_from_gtk_text_buffer(source_view.get_buffer()) self.spell_buffer.set_spell_checker(self.checker) self.spell_view = Gspell.TextView.get_from_gtk_text_view(source_view) self.spell_view.set_enable_language_menu(False) self.spell_navigator = Gspell.NavigatorTextView.new(source_view) def set_enabled(self, value): self.spell_view.set_inline_spell_checking(value) def set_language(self, language_code): if language_code != None: language = Gspell.Language.lookup(language_code) else: language = None self.checker.set_language(language) Setzer-0.4.4/setzer/document/state_manager/000077500000000000000000000000001420322575300207425ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/state_manager/__init__.py000066400000000000000000000000001420322575300230410ustar00rootroot00000000000000Setzer-0.4.4/setzer/document/state_manager/state_manager.py000066400000000000000000000130051420322575300241250ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import pickle import base64 import os.path from setzer.app.service_locator import ServiceLocator class StateManager(): def __init__(self, document): self.document = document self.data_pathname = ServiceLocator.get_config_folder() def load_document_state(self): if not self.document.is_latex_document(): return if self.document.filename == None: return try: filehandle = open(self.data_pathname + '/' + base64.urlsafe_b64encode(str.encode(self.document.filename)).decode() + '.pickle', 'rb') except IOError: pass else: try: document_data = pickle.load(filehandle) except EOFError: pass else: try: save_date = document_data['save_date'] except KeyError: pass else: if save_date > os.path.getmtime(self.document.filename) - 0.001: self.load_code_folding_state(document_data) self.load_build_log_state(document_data) self.load_preview_state(document_data) self.load_synctex_state(document_data) def load_code_folding_state(self, document_data): try: folded_regions = document_data['folded_regions'] except KeyError: folded_regions = [] try: self.document.code_folding.set_initial_folded_regions(folded_regions) except AttributeError: pass def load_build_log_state(self, document_data): try: self.document.build_system.build_log_data = document_data['build_log_data'] except KeyError: self.document.build_system.build_log_data = {'items': list(), 'error_count': 0, 'warning_count': 0, 'badbox_count': 0} try: self.document.build_system.document_has_been_built = document_data['has_been_built'] except KeyError: self.document.build_system.document_has_been_built = False try: self.document.build_system.build_time = document_data['build_time'] except KeyError: self.document.build_system.build_time = None def load_synctex_state(self, document_data): try: self.document.build_system.has_synctex_file = document_data['has_synctex_file'] except KeyError: self.document.build_system.has_synctex_file = False self.document.build_system.update_can_sync() def load_preview_state(self, document_data): try: pdf_filename = document_data['pdf_filename'] except KeyError: pdf_filename = None try: pdf_date = document_data['pdf_date'] except KeyError: pdf_date = None try: xoffset = document_data['xoffset'] except KeyError: xoffset = None try: yoffset = document_data['yoffset'] except KeyError: yoffset = None try: zoom_level = document_data['zoom_level'] except KeyError: zoom_level = None if pdf_filename == None: return if not os.path.isfile(pdf_filename): return if pdf_date == None: return if pdf_date <= os.path.getmtime(pdf_filename) - 10: return self.document.preview.set_pdf_filename(pdf_filename) self.document.preview.set_zoom_level(zoom_level) self.document.preview.scroll_to_position_from_offsets(xoffset, yoffset) def save_document_state(self): if not self.document.is_latex_document(): return document_data = dict() document_data['save_date'] = self.document.save_date try: folded_regions = self.document.code_folding.get_folded_regions() except AttributeError: folded_regions = list() document_data['folded_regions'] = folded_regions document_data['build_log_data'] = self.document.build_system.build_log_data document_data['has_been_built'] = self.document.build_system.document_has_been_built document_data['build_time'] = self.document.build_system.build_time document_data['has_synctex_file'] = self.document.build_system.has_synctex_file document_data['pdf_filename'] = self.document.preview.pdf_filename document_data['pdf_date'] = self.document.preview.pdf_date document_data['xoffset'] = self.document.preview.xoffset document_data['yoffset'] = self.document.preview.yoffset document_data['zoom_level'] = self.document.preview.zoom_level if self.document.filename != None: try: filehandle = open(self.data_pathname + '/' + base64.urlsafe_b64encode(str.encode(self.document.filename)).decode() + '.pickle', 'wb') except IOError: pass else: pickle.dump(document_data, filehandle) Setzer-0.4.4/setzer/helpers/000077500000000000000000000000001420322575300157545ustar00rootroot00000000000000Setzer-0.4.4/setzer/helpers/__init__.py000066400000000000000000000000001420322575300200530ustar00rootroot00000000000000Setzer-0.4.4/setzer/helpers/observable.py000066400000000000000000000037011420322575300204530ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 class Observable(object): ''' Can send observers messages if the inheriting class has changed. Observers can register with the classes and get change notifications pushed to them. ''' def __init__(self): self.observers = set() self.connected_functions = dict() def add_change_code(self, change_code, parameter=None): ''' Observables call this method to notify observers of changes in their states. ''' if change_code in self.connected_functions: for callback in self.connected_functions[change_code]: if parameter != None: callback(self, parameter) else: callback(self) def connect(self, change_code, callback): if change_code in self.connected_functions: self.connected_functions[change_code].add(callback) else: self.connected_functions[change_code] = {callback} def disconnect(self, change_code, callback): if change_code in self.connected_functions: self.connected_functions[change_code].discard(callback) if len(self.connected_functions[change_code]) == 0: del(self.connected_functions[change_code]) Setzer-0.4.4/setzer/helpers/popover_menu_builder.py000066400000000000000000000066571420322575300225700ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from gi.repository import Gio class PopoverMenuBuilder(object): def __init__(self): pass def set_box_margin(self, box): box.set_margin_top(10) box.set_margin_bottom(10) box.set_margin_left(10) box.set_margin_right(10) def add_action_button(self, box, label, action_name, action_parameter=None, icon_name=None, keyboard_shortcut=None): model_button = Gtk.ModelButton() if action_parameter: model_button.set_detailed_action_name(Gio.Action.print_detailed_name(action_name, GLib.Variant('as', action_parameter))) else: model_button.set_action_name(action_name) if keyboard_shortcut != None or icon_name != None: button_box = Gtk.HBox() if keyboard_shortcut != None: shortcut = Gtk.Label(keyboard_shortcut) shortcut.get_style_context().add_class('keyboard-shortcut') button_box.pack_end(shortcut, False, False, 0) if icon_name != None: if icon_name == 'placeholder': placeholder = Gtk.DrawingArea() placeholder.set_size_request(24, 16) button_box.pack_start(placeholder, False, False, 0) else: icon = Gtk.Image.new_from_icon_name(icon_name, Gtk.IconSize.MENU) icon.set_margin_right(8) button_box.pack_start(icon, False, False, 0) description = Gtk.Label(label) description.set_halign(Gtk.Align.START) button_box.pack_start(description, True, True, 0) model_button.remove(model_button.get_child()) model_button.add(button_box) else: model_button.set_label(label) model_button.get_child().set_halign(Gtk.Align.START) box.pack_start(model_button, False, False, 0) def add_menu_button(self, box, label, menu_name): model_button = Gtk.ModelButton() model_button.set_property('menu-name', menu_name) model_button.set_label(label) model_button.get_child().set_halign(Gtk.Align.START) box.pack_start(model_button, False, False, 0) def add_header_button(self, box, label): model_button = Gtk.ModelButton() model_button.set_property('centered', True) model_button.set_property('menu-name', 'main') model_button.set_label(label) model_button.set_property('inverted', True) box.pack_start(model_button, False, False, 0) def add_separator(self, box): separator = Gtk.SeparatorMenuItem() box.pack_start(separator, False, False, 0) Setzer-0.4.4/setzer/helpers/timer.py000066400000000000000000000020311420322575300174420ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import time def timer(original_function): def new_function(*args, **kwargs): start_time = time.time() return_value = original_function(*args, **kwargs) print(original_function.__name__ + ': ' + str(time.time() - start_time) + ' seconds') return return_value return new_function Setzer-0.4.4/setzer/widgets/000077500000000000000000000000001420322575300157605ustar00rootroot00000000000000Setzer-0.4.4/setzer/widgets/__init__.py000066400000000000000000000000001420322575300200570ustar00rootroot00000000000000Setzer-0.4.4/setzer/widgets/animated_paned/000077500000000000000000000000001420322575300207115ustar00rootroot00000000000000Setzer-0.4.4/setzer/widgets/animated_paned/__init__.py000066400000000000000000000000001420322575300230100ustar00rootroot00000000000000Setzer-0.4.4/setzer/widgets/animated_paned/animated_paned.py000066400000000000000000000145401420322575300242200ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class AnimatedPaned(object): def __init__(self, widget1, widget2, animate_first_widget=True): self.animate_first_widget = animate_first_widget if animate_first_widget: self.pack1(widget1, False, True) self.pack2(widget2, True, False) self.animated_widget = widget1 self.fixed_widget = widget2 else: self.pack1(widget1, True, False) self.pack2(widget2, False, True) self.animated_widget = widget2 self.fixed_widget = widget1 self.is_initialized = False self.animation_id = None self.is_visible = None self.show_widget = False self.animated_widget_extent = 0 self.target_position = None self.animated_widget.connect('size-allocate', self.on_size_allocate) self.connect('size-allocate', self.on_size_allocate) self.connect('draw', self.on_realize) def on_realize(self, view=None, cr=None, user_data=None): if not self.is_initialized: self.animate(False) self.is_initialized = True def on_size_allocate(self, widget, allocation): if not self.is_initialized: return if not self.show_widget: return if self.animation_id != None: return new_extent = self.get_animated_widget_extent() self.animated_widget_extent = new_extent if self.animate_first_widget: self.set_target_position(new_extent) else: self.set_target_position(self.get_paned_extent() - new_extent - 1) def set_target_position(self, position): self.target_position = position def set_show_widget(self, show_widget): self.show_widget = show_widget def set_is_visible(self, is_visible): self.is_visible = is_visible def animate(self, animate=False): if self.animation_id != None: self.remove_tick_callback(self.animation_id) elif self.is_visible == self.show_widget: return frame_clock = self.get_frame_clock() duration = 200 if self.show_widget: end = self.target_position else: if self.animate_first_widget: end = 0 else: end = self.get_paned_extent() if frame_clock != None and animate: if self.get_position() != end: if self.show_widget: self.animated_widget.show_all() start = self.get_position() start_time = frame_clock.get_frame_time() end_time = start_time + 1000 * duration self.child_set_property(self.animated_widget, 'shrink', True) self.fix_animated_widget_size() self.animation_id = self.add_tick_callback(self.set_position_on_tick, (self.show_widget, start_time, end_time, start, end)) else: if self.show_widget: self.child_set_property(self.animated_widget, 'shrink', False) self.animated_widget.show_all() self.set_is_visible(True) else: self.child_set_property(self.animated_widget, 'shrink', True) self.animated_widget.hide() self.set_is_visible(False) self.set_position(end) def set_position_on_tick(self, paned, frame_clock_cb, user_data): show_widget, start_time, end_time, start, end = user_data now = frame_clock_cb.get_frame_time() if now < end_time and paned.get_position() != end: t = self.ease((now - start_time) / (end_time - start_time)) paned.set_position(int(start + t * (end - start))) return True else: paned.set_position(end) self.reset_animated_widget_size_request() if not show_widget: self.animated_widget.hide() self.set_is_visible(False) else: self.child_set_property(self.animated_widget, 'shrink', False) self.set_is_visible(True) self.animation_id = None return False def ease(self, time): return (time - 1)**3 + 1; class AnimatedHPaned(Gtk.HPaned, AnimatedPaned): def __init__(self, widget1, widget2, animate_first_widget=True): Gtk.HPaned.__init__(self) AnimatedPaned.__init__(self, widget1, widget2, animate_first_widget) self.original_size_request = self.animated_widget.get_size_request()[0] def reset_animated_widget_size_request(self): self.animated_widget.set_size_request(self.original_size_request, -1) def fix_animated_widget_size(self): self.animated_widget.set_size_request(self.get_animated_widget_extent(), -1) def get_animated_widget_extent(self): return self.animated_widget.get_allocated_width() def get_paned_extent(self): return self.get_allocated_width() class AnimatedVPaned(Gtk.VPaned, AnimatedPaned): def __init__(self, widget1, widget2, animate_first_widget=True): Gtk.VPaned.__init__(self) AnimatedPaned.__init__(self, widget1, widget2, animate_first_widget) self.original_size_request = self.animated_widget.get_size_request()[1] def reset_animated_widget_size_request(self): self.animated_widget.set_size_request(-1, self.original_size_request) def fix_animated_widget_size(self): self.animated_widget.set_size_request(-1, self.get_animated_widget_extent()) def get_animated_widget_extent(self): return self.animated_widget.get_allocated_height() def get_paned_extent(self): return self.get_allocated_height() Setzer-0.4.4/setzer/widgets/async_svg/000077500000000000000000000000001420322575300177545ustar00rootroot00000000000000Setzer-0.4.4/setzer/widgets/async_svg/__init__.py000066400000000000000000000000001420322575300220530ustar00rootroot00000000000000Setzer-0.4.4/setzer/widgets/async_svg/async_svg.py000066400000000000000000000022531420322575300223240ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib class AsyncSvg(Gtk.Bin): def __init__(self, filename, width, height): Gtk.Bin.__init__(self) self.filename = filename self.set_size_request(width, height) GLib.idle_add(self.load_image) def load_image(self): self.image = Gtk.Image.new_from_file(self.filename) self.image.show_all() self.add(self.image) Setzer-0.4.4/setzer/widgets/filechooser_button/000077500000000000000000000000001420322575300216555ustar00rootroot00000000000000Setzer-0.4.4/setzer/widgets/filechooser_button/__init__.py000066400000000000000000000000001420322575300237540ustar00rootroot00000000000000Setzer-0.4.4/setzer/widgets/filechooser_button/filechooser_button.py000066400000000000000000000063011420322575300261240ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Pango import os.path from setzer.helpers.observable import Observable class FilechooserButtonView(Gtk.Button): def __init__(self): Gtk.Button.__init__(self) self.button_widget = Gtk.HBox() self.button_label = Gtk.Label(_('(None)')) self.button_label.set_ellipsize(Pango.EllipsizeMode.START) self.button_widget.pack_end(Gtk.Image.new_from_icon_name('document-open-symbolic', Gtk.IconSize.BUTTON), False, False, 0) self.button_widget.pack_start(self.button_label, False, False, 0) self.add(self.button_widget) class FilechooserButton(Observable): def __init__(self, main_window): Observable.__init__(self) self.main_window = main_window self.default_folder = None self.filename = None self.filters = list() self.title = _('Choose File') self.view = FilechooserButtonView() self.view.connect('clicked', self.on_button_clicked) def reset(self): self.default_folder = None self.filename = None self.view.button_label.set_text(_('(None)')) def set_default_folder(self, folder): self.default_folder = folder def set_title(self, title): self.title = title def get_filename(self): return self.filename def add_filter(self, file_filter): self.filters.append(file_filter) def on_button_clicked(self, button): action = Gtk.FileChooserAction.OPEN buttons = (_('_Cancel'), Gtk.ResponseType.CANCEL, _('_Select'), Gtk.ResponseType.APPLY) dialog = Gtk.FileChooserDialog(self.title, self.main_window, action, buttons) for file_filter in self.filters: dialog.add_filter(file_filter) for widget in dialog.get_header_bar().get_children(): if isinstance(widget, Gtk.Button) and widget.get_label() == _('_Select'): widget.get_style_context().add_class(Gtk.STYLE_CLASS_SUGGESTED_ACTION) widget.set_can_default(True) widget.grab_default() if self.default_folder != None: dialog.set_current_folder(self.default_folder) response = dialog.run() if response == Gtk.ResponseType.APPLY: self.filename = dialog.get_filename() self.view.button_label.set_text(os.path.basename(self.filename)) self.add_change_code('file-set') dialog.hide() del(dialog) Setzer-0.4.4/setzer/workspace/000077500000000000000000000000001420322575300163105ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/__init__.py000066400000000000000000000000001420322575300204070ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/actions/000077500000000000000000000000001420322575300177505ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/actions/__init__.py000066400000000000000000000000001420322575300220470ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/actions/actions.py000066400000000000000000000645131420322575300217730ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('Gspell', '1') from gi.repository import Gspell from gi.repository import GLib, Gio from setzer.app.service_locator import ServiceLocator from setzer.dialogs.dialog_locator import DialogLocator class Actions(object): def __init__(self, workspace): self.workspace = workspace main_window = ServiceLocator.get_main_window() settings = ServiceLocator.get_settings() self.new_latex_document_action = Gio.SimpleAction.new('new-latex-document', None) self.new_bibtex_document_action = Gio.SimpleAction.new('new-bibtex-document', None) self.open_document_dialog_action = Gio.SimpleAction.new('open-document-dialog', None) self.build_action = Gio.SimpleAction.new('build', None) self.save_and_build_action = Gio.SimpleAction.new('save-and-build', None) self.save_action = Gio.SimpleAction.new('save', None) self.save_as_action = Gio.SimpleAction.new('save-as', None) self.save_all_action = Gio.SimpleAction.new('save-all', None) self.save_session_action = Gio.SimpleAction.new('save-session', None) self.restore_session_action = Gio.SimpleAction.new('restore-session', GLib.VariantType('as')) self.find_action = Gio.SimpleAction.new('find', None) self.find_next_action = Gio.SimpleAction.new('find-next', None) self.find_prev_action = Gio.SimpleAction.new('find-prev', None) self.find_replace_action = Gio.SimpleAction.new('find-replace', None) self.close_all_action = Gio.SimpleAction.new('close-all-documents', None) self.close_document_action = Gio.SimpleAction.new('close-active-document', None) self.insert_before_after_action = Gio.SimpleAction.new('insert-before-after', GLib.VariantType('as')) self.insert_symbol_action = Gio.SimpleAction.new('insert-symbol', GLib.VariantType('as')) self.insert_before_document_end_action = Gio.SimpleAction.new('insert-before-document-end', GLib.VariantType('as')) self.document_wizard_action = Gio.SimpleAction.new('show-document-wizard', None) self.create_new_bibtex_entry_action = Gio.SimpleAction.new('create-new-bibtex-entry', None) self.show_previous_bibtex_entries_action = Gio.SimpleAction.new('show-previous-bibtex-entries', None) self.search_online_for_bibtex_entries_action = Gio.SimpleAction.new('search-online-for-bibtex-entries', None) self.include_bibtex_file_action = Gio.SimpleAction.new('include-bibtex-file', None) self.include_latex_file_action = Gio.SimpleAction.new('include-latex-file', None) self.add_remove_packages_dialog_action = Gio.SimpleAction.new('add-remove-packages-dialog', None) self.add_packages_action = Gio.SimpleAction.new('add-packages', GLib.VariantType('as')) self.comment_uncomment_action = Gio.SimpleAction.new('comment-uncomment', None) self.shortcuts_window_action = Gio.SimpleAction.new('show-shortcuts-window', None) self.show_preferences_action = Gio.SimpleAction.new('show-preferences-dialog', None) self.show_about_action = Gio.SimpleAction.new('show-about-dialog', None) self.quit_action = Gio.SimpleAction.new('quit', None) self.show_build_log_action = Gio.SimpleAction.new('show-build-log', None) self.close_build_log_action = Gio.SimpleAction.new('close-build-log', None) sc_default = GLib.Variant.new_boolean(settings.get_value('preferences', 'inline_spellchecking')) self.toggle_spellchecking_action = Gio.SimpleAction.new_stateful('toggle-spellchecking', None, sc_default) self.set_spellchecking_language_action = Gio.SimpleAction.new('set-spellchecking-language', None) self.spellchecking_action = Gio.SimpleAction.new('spellchecking', None) dm_default = GLib.Variant.new_boolean(settings.get_value('preferences', 'prefer_dark_mode')) self.toggle_dark_mode_action = Gio.SimpleAction.new_stateful('toggle-dark-mode', None, dm_default) ip_default = GLib.Variant.new_boolean(settings.get_value('preferences', 'invert_pdf')) self.toggle_invert_pdf_action = Gio.SimpleAction.new_stateful('toggle-invert-pdf', None, ip_default) self.zoom_out_action = Gio.SimpleAction.new('zoom-out', None) self.zoom_in_action = Gio.SimpleAction.new('zoom-in', None) self.reset_zoom_action = Gio.SimpleAction.new('reset-zoom', None) main_window.add_action(self.new_latex_document_action) main_window.add_action(self.new_bibtex_document_action) main_window.add_action(self.open_document_dialog_action) main_window.add_action(self.build_action) main_window.add_action(self.save_and_build_action) main_window.add_action(self.save_action) main_window.add_action(self.save_as_action) main_window.add_action(self.save_all_action) main_window.add_action(self.save_session_action) main_window.add_action(self.restore_session_action) main_window.add_action(self.find_action) main_window.add_action(self.find_next_action) main_window.add_action(self.find_prev_action) main_window.add_action(self.find_replace_action) main_window.add_action(self.close_all_action) main_window.add_action(self.close_document_action) main_window.add_action(self.insert_before_after_action) main_window.add_action(self.insert_symbol_action) main_window.add_action(self.insert_before_document_end_action) main_window.add_action(self.document_wizard_action) main_window.add_action(self.create_new_bibtex_entry_action) main_window.add_action(self.show_previous_bibtex_entries_action) main_window.add_action(self.search_online_for_bibtex_entries_action) main_window.add_action(self.include_bibtex_file_action) main_window.add_action(self.include_latex_file_action) main_window.add_action(self.add_remove_packages_dialog_action) main_window.add_action(self.add_packages_action) main_window.add_action(self.comment_uncomment_action) main_window.add_action(self.shortcuts_window_action) main_window.add_action(self.show_preferences_action) main_window.add_action(self.show_about_action) main_window.add_action(self.quit_action) main_window.add_action(self.show_build_log_action) main_window.add_action(self.close_build_log_action) main_window.add_action(self.toggle_spellchecking_action) main_window.add_action(self.set_spellchecking_language_action) main_window.add_action(self.spellchecking_action) main_window.add_action(self.toggle_dark_mode_action) main_window.add_action(self.toggle_invert_pdf_action) main_window.add_action(self.zoom_out_action) main_window.add_action(self.zoom_in_action) main_window.add_action(self.reset_zoom_action) self.new_latex_document_action.connect('activate', self.on_new_latex_document_action_activated) self.new_bibtex_document_action.connect('activate', self.on_new_bibtex_document_action_activated) self.open_document_dialog_action.connect('activate', self.on_open_document_dialog_action_activated) self.build_action.connect('activate', self.on_build_action_activated) self.save_and_build_action.connect('activate', self.on_save_and_build_action_activated) self.save_action.connect('activate', self.on_save_button_click) self.save_as_action.connect('activate', self.on_save_as_clicked) self.save_all_action.connect('activate', self.on_save_all_clicked) self.save_session_action.connect('activate', self.on_save_session_clicked) self.restore_session_action.connect('activate', self.on_restore_session_clicked) self.find_action.connect('activate', self.on_menu_find_clicked) self.find_next_action.connect('activate', self.find_next) self.find_prev_action.connect('activate', self.find_prev) self.find_replace_action.connect('activate', self.on_menu_find_replace_clicked) self.close_all_action.connect('activate', self.on_close_all_clicked) self.close_document_action.connect('activate', self.on_close_document_clicked) self.insert_before_after_action.connect('activate', self.insert_before_after) self.insert_symbol_action.connect('activate', self.insert_symbol) self.insert_before_document_end_action.connect('activate', self.insert_before_document_end) self.document_wizard_action.connect('activate', self.start_wizard) self.include_bibtex_file_action.connect('activate', self.start_include_bibtex_file_dialog) self.include_latex_file_action.connect('activate', self.start_include_latex_file_dialog) self.add_remove_packages_dialog_action.connect('activate', self.start_add_remove_packages_dialog) self.add_packages_action.connect('activate', self.add_packages) self.comment_uncomment_action.connect('activate', self.comment_uncomment) self.create_new_bibtex_entry_action.connect('activate', self.start_create_new_bibtex_entry_dialog) self.show_previous_bibtex_entries_action.connect('activate', self.start_show_previous_bibtex_entries_dialog) self.search_online_for_bibtex_entries_action.connect('activate', self.start_search_online_for_bibtex_entries_dialog) self.shortcuts_window_action.connect('activate', self.show_shortcuts_window) self.show_preferences_action.connect('activate', self.show_preferences_dialog) self.show_about_action.connect('activate', self.show_about_dialog) self.show_build_log_action.connect('activate', self.show_build_log) self.close_build_log_action.connect('activate', self.close_build_log) self.toggle_spellchecking_action.connect('activate', self.on_spellchecking_toggle_toggled) self.set_spellchecking_language_action.connect('activate', self.start_spellchecking_language_dialog) self.spellchecking_action.connect('activate', self.start_spellchecking_dialog) self.toggle_dark_mode_action.connect('activate', self.on_dark_mode_toggle_toggled) self.toggle_invert_pdf_action.connect('activate', self.on_invert_pdf_toggle_toggled) self.zoom_out_action.connect('activate', self.on_zoom_out) self.zoom_in_action.connect('activate', self.on_zoom_in) self.reset_zoom_action.connect('activate', self.on_reset_zoom) self.font_manager = ServiceLocator.get_font_manager() self.update_zoom_actions() self.workspace.connect('document_removed', self.on_document_removed) self.workspace.connect('new_inactive_document', self.on_new_inactive_document) self.workspace.connect('new_active_document', self.on_new_active_document) self.font_manager.connect('font_string_changed', self.on_font_string_changed) def _assert_has_active_document(original_function): def new_function(self, *args, **kwargs): if self.workspace.get_active_document() != None: return original_function(self, *args, **kwargs) return new_function def on_document_removed(self, workspace, document): if self.workspace.active_document == None: self.activate_welcome_screen_mode() self.update_document_actions(None) self.update_save_actions(None) def on_new_inactive_document(self, workspace, document): document.content.disconnect('modified_changed', self.on_modified_changed) def on_new_active_document(self, workspace, document): self.activate_document_mode() self.update_document_actions(document) self.update_save_actions(document) document.content.connect('modified_changed', self.on_modified_changed) def on_font_string_changed(self, font_manager): self.update_zoom_actions() def on_modified_changed(self, content): self.update_save_actions(self.workspace.active_document) def activate_welcome_screen_mode(self): self.save_all_action.set_enabled(False) self.spellchecking_action.set_enabled(False) self.add_remove_packages_dialog_action.set_enabled(False) def activate_document_mode(self): self.enable_spellchecking_action() active_document = self.workspace.get_active_document() if active_document.is_latex_document(): self.add_remove_packages_dialog_action.set_enabled(True) def enable_spellchecking_action(self): default_language = Gspell.Language.get_default() if default_language != None: self.spellchecking_action.set_enabled(True) def update_zoom_actions(self): normal_font_size = self.font_manager.get_normal_font_size_in_points() current_font_size = self.font_manager.get_font_size_in_points() self.zoom_out_action.set_enabled(current_font_size / 1.1 > 6) self.zoom_in_action.set_enabled(current_font_size * 1.1 < 24) self.reset_zoom_action.set_enabled(current_font_size != normal_font_size) def update_save_actions(self, document): if document == None: self.save_action.set_enabled(False) self.save_all_action.set_enabled(False) else: if document.content.get_modified(): self.save_action.set_enabled(True) elif document.get_filename() == None: self.save_action.set_enabled(True) else: self.save_action.set_enabled(False) if self.workspace.get_unsaved_documents() != None: self.save_all_action.set_enabled(True) else: self.save_all_action.set_enabled(False) def update_document_actions(self, document): if document != None: value = True else: value = False self.save_as_action.set_enabled(value) self.find_action.set_enabled(value) self.find_next_action.set_enabled(value) self.find_prev_action.set_enabled(value) self.find_replace_action.set_enabled(value) self.close_document_action.set_enabled(value) self.close_all_action.set_enabled(value) self.save_session_action.set_enabled(value) if document != None and document.is_latex_document(): value = True else: value = False self.insert_before_after_action.set_enabled(value) self.insert_symbol_action.set_enabled(value) self.insert_before_document_end_action.set_enabled(value) self.include_bibtex_file_action.set_enabled(value) self.include_latex_file_action.set_enabled(value) self.add_packages_action.set_enabled(value) self.comment_uncomment_action.set_enabled(value) self.document_wizard_action.set_enabled(value) self.show_build_log_action.set_enabled(value) self.close_build_log_action.set_enabled(value) def on_new_latex_document_action_activated(self, action=None, parameter=None): document = self.workspace.create_latex_document() self.workspace.add_document(document) self.workspace.set_active_document(document) def on_new_bibtex_document_action_activated(self, action=None, parameter=None): document = self.workspace.create_bibtex_document() self.workspace.add_document(document) self.workspace.set_active_document(document) def on_open_document_dialog_action_activated(self, action=None, parameter=None): filename = DialogLocator.get_dialog('open_document').run() self.workspace.open_document_by_filename(filename) @_assert_has_active_document def on_save_and_build_action_activated(self, action=None, parameter=None): self.on_save_button_click() self.on_build_action_activated() @_assert_has_active_document def on_build_action_activated(self, action=None, parameter=None): if self.workspace.root_document != None: document = self.workspace.root_document else: document = self.workspace.active_document try: document.build_widget.build_document_request() except AttributeError: pass @_assert_has_active_document def on_save_button_click(self, action=None, parameter=None): active_document = self.workspace.get_active_document() if active_document.filename == None: self.on_save_as_clicked() else: active_document.save_to_disk() @_assert_has_active_document def on_save_as_clicked(self, action=None, parameter=None): document = self.workspace.get_active_document() DialogLocator.get_dialog('save_document').run(document) @_assert_has_active_document def on_save_all_clicked(self, action=None, parameter=None): active_document = self.workspace.get_active_document() return_to_active_document = False documents = self.workspace.get_unsaved_documents() if documents != None: for document in documents: if document.get_filename() == None: self.workspace.set_active_document(document) return_to_active_document = True DialogLocator.get_dialog('save_document').run(document) else: document.save_to_disk() if return_to_active_document == True: self.workspace.set_active_document(document) @_assert_has_active_document def on_save_session_clicked(self, action=None, parameter=None): DialogLocator.get_dialog('save_session').run() def on_restore_session_clicked(self, action=None, parameter=None): parameter = parameter.unpack()[0] if parameter == '': filename = DialogLocator.get_dialog('open_session').run() if filename == None: return else: filename = parameter active_document = self.workspace.get_active_document() documents = self.workspace.get_all_documents() unsaved_documents = self.workspace.get_unsaved_documents() dialog = DialogLocator.get_dialog('close_confirmation') not_save_to_close_documents = dialog.run(unsaved_documents)['not_save_to_close_documents'] if len(not_save_to_close_documents) == 0: if documents != None: for document in documents: self.workspace.remove_document(document) self.workspace.load_documents_from_session_file(filename) @_assert_has_active_document def on_menu_find_clicked(self, action=None, parameter=None): active_document = self.workspace.get_active_document() if active_document.view.shortcutsbar_bottom.button_find.get_active(): GLib.idle_add(active_document.search.search_entry_grab_focus, None) else: active_document.view.shortcutsbar_bottom.button_find.set_active(True) @_assert_has_active_document def find_next(self, action=None, parameter=None): active_document = self.workspace.get_active_document() if active_document.view.source_view.has_focus() or active_document.view.search_bar.entry.has_focus() or active_document.view.search_bar.replace_entry.has_focus(): active_document.view.search_bar.entry.emit('next-match') @_assert_has_active_document def find_prev(self, action=None, parameter=None): active_document = self.workspace.get_active_document() if active_document.view.source_view.has_focus() or active_document.view.search_bar.entry.has_focus() or active_document.view.search_bar.replace_entry.has_focus(): active_document.view.search_bar.entry.emit('previous-match') @_assert_has_active_document def on_menu_find_replace_clicked(self, action=None, parameter=None): active_document = self.workspace.get_active_document() if active_document.view.shortcutsbar_bottom.button_find_and_replace.get_active(): GLib.idle_add(active_document.search.search_entry_grab_focus, None) else: active_document.view.shortcutsbar_bottom.button_find_and_replace.set_active(True) @_assert_has_active_document def on_close_all_clicked(self, action=None, parameter=None): active_document = self.workspace.get_active_document() documents = self.workspace.get_all_documents() unsaved_documents = self.workspace.get_unsaved_documents() dialog = DialogLocator.get_dialog('close_confirmation') not_save_to_close_documents = dialog.run(unsaved_documents)['not_save_to_close_documents'] for document in documents: if document not in not_save_to_close_documents: self.workspace.remove_document(document) def on_close_document_clicked(self, action=None, parameter=None): document = self.workspace.get_active_document() if document.content.get_modified(): dialog = DialogLocator.get_dialog('close_confirmation') not_save_to_close = dialog.run([document])['not_save_to_close_documents'] if document not in not_save_to_close: self.workspace.remove_document(document) else: self.workspace.remove_document(document) @_assert_has_active_document def insert_before_after(self, action, parameter): active_document = self.workspace.get_active_document() active_document.content.insert_before_after(parameter[0], parameter[1]) active_document.content.scroll_cursor_onscreen() @_assert_has_active_document def insert_symbol(self, action, parameter): self.workspace.get_active_document().content.insert_text_at_cursor(parameter[0]) self.workspace.get_active_document().content.scroll_cursor_onscreen() @_assert_has_active_document def insert_before_document_end(self, action, parameter): document = self.workspace.get_active_document() document.content.insert_before_document_end(parameter[0]) document.content.scroll_cursor_onscreen() @_assert_has_active_document def start_wizard(self, action, parameter=None): document = self.workspace.get_active_document() DialogLocator.get_dialog('document_wizard').run(document) @_assert_has_active_document def start_include_bibtex_file_dialog(self, action, parameter=None): document = self.workspace.get_active_document() DialogLocator.get_dialog('include_bibtex_file').run(document) @_assert_has_active_document def start_include_latex_file_dialog(self, action, parameter=None): document = self.workspace.get_active_document() DialogLocator.get_dialog('include_latex_file').run(document) @_assert_has_active_document def start_add_remove_packages_dialog(self, action, parameter=None): document = self.workspace.get_active_document() DialogLocator.get_dialog('add_remove_packages').run(document) @_assert_has_active_document def add_packages(self, action, parameter): if parameter == None: return document = self.workspace.get_active_document() if document.is_latex_document(): document.content.add_packages(parameter) document.content.scroll_cursor_onscreen() @_assert_has_active_document def comment_uncomment(self, action, parameter=None): document = self.workspace.get_active_document() document.content.comment_uncomment() @_assert_has_active_document def start_create_new_bibtex_entry_dialog(self, action, parameter=None): document = self.workspace.get_active_document() DialogLocator.get_dialog('bibtex_wizard').run('new_entry', document) @_assert_has_active_document def start_show_previous_bibtex_entries_dialog(self, action, parameter=None): document = self.workspace.get_active_document() DialogLocator.get_dialog('bibtex_wizard').run('previous_entries', document) @_assert_has_active_document def start_search_online_for_bibtex_entries_dialog(self, action, parameter=None): document = self.workspace.get_active_document() DialogLocator.get_dialog('bibtex_wizard').run('search_online', document) def show_shortcuts_window(self, action, parameter=''): DialogLocator.get_dialog('keyboard_shortcuts').run() def show_preferences_dialog(self, action=None, parameter=''): DialogLocator.get_dialog('preferences').run() def show_about_dialog(self, action, parameter=''): DialogLocator.get_dialog('about').run() def show_build_log(self, action, parameter=''): self.workspace.set_show_build_log(True) def close_build_log(self, action, parameter=''): self.workspace.set_show_build_log(False) def on_spellchecking_toggle_toggled(self, action, parameter=None): new_state = not action.get_state().get_boolean() action.set_state(GLib.Variant.new_boolean(new_state)) self.workspace.set_inline_spellchecking(new_state) def start_spellchecking_language_dialog(self, action, parameter=None): DialogLocator.get_dialog('spellchecking_language').run() def start_spellchecking_dialog(self, action, parameter=None): DialogLocator.get_dialog('spellchecking').run() def on_dark_mode_toggle_toggled(self, action, parameter=None): new_state = not action.get_state().get_boolean() action.set_state(GLib.Variant.new_boolean(new_state)) self.workspace.set_dark_mode(new_state) def on_invert_pdf_toggle_toggled(self, action, parameter=None): new_state = not action.get_state().get_boolean() action.set_state(GLib.Variant.new_boolean(new_state)) self.workspace.set_invert_pdf(new_state) def on_zoom_out(self, widget=None, event=None): ServiceLocator.get_font_manager().zoom_out() def on_zoom_in(self, widget=None, event=None): ServiceLocator.get_font_manager().zoom_in() def on_reset_zoom(self, widget=None, event=None): ServiceLocator.get_font_manager().reset_zoom() Setzer-0.4.4/setzer/workspace/build_log/000077500000000000000000000000001420322575300202505ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/build_log/__init__.py000066400000000000000000000000001420322575300223470ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/build_log/build_log.py000066400000000000000000000065551420322575300225750ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import setzer.workspace.build_log.build_log_presenter as build_log_presenter import setzer.workspace.build_log.build_log_controller as build_log_controller from setzer.helpers.observable import Observable from setzer.app.service_locator import ServiceLocator from setzer.helpers.timer import timer class BuildLog(Observable): def __init__(self, workspace): Observable.__init__(self) self.workspace = workspace self.settings = ServiceLocator.get_settings() self.document = None self.items = list() self.hover_item = None self.view = ServiceLocator.get_main_window().build_log self.presenter = build_log_presenter.BuildLogPresenter(self, self.view) self.controller = build_log_controller.BuildLogController(self, self.view) def on_build_log_update(self, build_system): if build_system.document == self.document: self.update_items(True) def set_document(self, document): if self.document != None: self.document.build_system.disconnect('build_log_update', self.on_build_log_update) self.document = document self.update_items() self.document.build_system.connect('build_log_update', self.on_build_log_update) #@timer def update_items(self, just_built=False): self.items = self.document.build_system.build_log_data['items'] self.signal_finish_adding() if just_built and self.has_items(self.settings.get_value('preferences', 'autoshow_build_log')): self.workspace.set_show_build_log(True) self.set_hover_item(None) def set_hover_item(self, item_num): if self.hover_item != item_num: self.hover_item = item_num self.add_change_code('hover_item_changed') def signal_finish_adding(self): self.add_change_code('build_log_finished_adding', self.document.build_system.document_has_been_built) def has_items(self, types='all'): return self.count_items(types) > 0 def count_items(self, types='all'): if types == 'errors': return self.document.build_system.get_error_count() elif types == 'errors_warnings': return self.document.build_system.get_error_count() + self.document.build_system.get_warning_count() elif types == 'all': return self.document.build_system.get_error_count() + self.document.build_system.get_warning_count() + self.document.build_system.get_badbox_count() elif types == 'warnings': return self.document.build_system.get_warning_count() elif types == 'badboxes': return self.document.build_system.get_badbox_count() return 0 Setzer-0.4.4/setzer/workspace/build_log/build_log_controller.py000066400000000000000000000052241420322575300250300ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gdk from gi.repository import Gtk class BuildLogController(object): def __init__(self, build_log, build_log_view): self.build_log = build_log self.view = build_log_view self.view.scrolled_window.connect('enter-notify-event', self.on_enter) self.view.scrolled_window.connect('motion-notify-event', self.on_hover) self.view.scrolled_window.connect('leave-notify-event', self.on_leave) self.view.list.connect('button-press-event', self.on_button_press) def on_enter(self, widget, event): self.update_hover_state(event) def on_hover(self, widget, event): self.update_hover_state(event) def on_leave(self, widget, event): self.build_log.set_hover_item(None) def update_hover_state(self, event): offset = self.view.scrolled_window.get_vadjustment().get_value() item_num = max(0, min(int((offset + event.y) // self.view.line_height), len(self.build_log.items) - 1)) self.build_log.set_hover_item(item_num) def on_button_press(self, drawing_area, event): if self.build_log.document == None: return modifiers = Gtk.accelerator_get_default_mod_mask() if event.type == Gdk.EventType.BUTTON_PRESS and event.button == 1 and event.state & modifiers == 0: item_num = max(0, min(int(event.y // self.view.line_height), len(self.build_log.items) - 1)) item = self.build_log.items[item_num] if item[2] != None: self.build_log.workspace.open_document_by_filename(item[2]) line_number = item[3] - 1 if line_number >= 0: self.build_log.workspace.active_document.content.place_cursor(item[3] - 1) self.build_log.workspace.active_document.content.scroll_cursor_onscreen() self.build_log.workspace.active_document.view.source_view.grab_focus() Setzer-0.4.4/setzer/workspace/build_log/build_log_presenter.py000066400000000000000000000157461420322575300246660ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import cairo from gi.repository import Pango import os.path import setzer.workspace.build_log.build_log_viewgtk as build_log_view from setzer.helpers.timer import timer class BuildLogPresenter(object): ''' Mediator between build log and view. ''' def __init__(self, build_log, build_log_view): self.build_log = build_log self.view = build_log_view self.set_header_data(0, 0, False) self.view.list.connect('draw', self.draw) self.build_log.connect('build_log_finished_adding', self.on_build_log_finished_adding) self.build_log.connect('hover_item_changed', self.on_hover_item_changed) self.max_width = -1 self.height = -1 def on_build_log_finished_adding(self, build_log, has_been_built): num_errors = self.build_log.count_items('errors') num_others = self.build_log.count_items('warnings') + self.build_log.count_items('badboxes') num_items = self.build_log.count_items('all') self.set_header_data(num_errors, num_others, has_been_built) self.max_width = -1 self.height = num_items * self.view.line_height + 6 self.view.list.set_size_request(self.max_width, self.height) self.view.scrolled_window.get_vadjustment().set_value(0) self.view.scrolled_window.get_hadjustment().set_value(0) self.view.list.queue_draw() def on_hover_item_changed(self, build_log): self.view.list.queue_draw() #@timer def draw(self, drawing_area, ctx): update_size = False style_context = drawing_area.get_style_context() ctx.set_font_size(self.view.font_size) ctx.select_font_face(self.view.font.get_family(), cairo.FontSlant.NORMAL, cairo.FontWeight.NORMAL) offset = self.view.scrolled_window.get_vadjustment().get_value() view_width = self.view.scrolled_window.get_allocated_width() view_height = self.view.scrolled_window.get_allocated_height() additional_height = ctx.get_target().get_height() - view_height additional_lines = additional_height // self.view.line_height + 2 bg_color = style_context.lookup_color('theme_base_color')[1] hover_color = self.view.list_color_hack_row.get_style_context().get_background_color(Gtk.StateFlags.PRELIGHT) fg_color = self.view.list_color_hack.get_style_context().get_color(style_context.get_state()) ctx.set_source_rgba(bg_color.red, bg_color.green, bg_color.blue, bg_color.alpha) ctx.rectangle(0, max(0, offset - additional_height), view_width, max(len(self.build_log.items) * self.view.line_height, view_height + 2 * additional_height)) ctx.fill() first_line = max(int(offset // self.view.line_height) - additional_lines, 0) last_line = min(int((offset + view_height) // self.view.line_height) + additional_lines, len(self.build_log.items)) items = self.build_log.items[first_line:last_line] count = first_line ctx.set_source_rgba(fg_color.red, fg_color.green, fg_color.blue, fg_color.alpha) glyphs = list() for item in items: if count == self.build_log.hover_item: ctx.set_source_rgba(hover_color.red, hover_color.green, hover_color.blue, hover_color.alpha) ctx.rectangle(0, count * self.view.line_height, view_width, self.view.line_height) ctx.fill() surface = self.view.icons[item[0]] surface.set_device_offset(-12 * self.view.get_scale_factor(), -(count * self.view.line_height + 4) * self.view.get_scale_factor()) ctx.set_source_surface(surface) ctx.rectangle(12, count * self.view.line_height + 4, 16, 16) ctx.fill() ctx.set_source_rgba(fg_color.red, fg_color.green, fg_color.blue, fg_color.alpha) ctx.move_to(40, (count + 1) * self.view.line_height - 7) ctx.show_text(item[0]) ctx.move_to(116, (count + 1) * self.view.line_height - 7) text = self.ellipsize_front(ctx, os.path.basename(item[2]), 120) ctx.show_text(text) ctx.move_to(254, (count + 1) * self.view.line_height - 7) ctx.show_text(_('Line {number}').format(number=str(item[3])) if item[3] >= 0 else '') ctx.move_to(330, (count + 1) * self.view.line_height - 7) ctx.show_text(item[4]) count += 1 if (342 + ctx.text_extents(item[4]).width) > self.max_width: self.max_width = (342 + ctx.text_extents(item[4]).width) update_size = True if update_size: drawing_area.set_size_request(self.max_width, self.height) def ellipsize_front(self, ctx, text, max_width): if ctx.text_extents(text).width <= max_width: return text dots_width = ctx.text_extents('...').width upper_bound = len(text) lower_bound = 0 while upper_bound > lower_bound + 1: new_bound = (upper_bound + lower_bound) // 2 if ctx.text_extents(text[new_bound:]).width > max_width - dots_width: lower_bound = new_bound else: upper_bound = new_bound return '...' + text[upper_bound:] def set_header_data(self, errors, warnings, tried_building=False): if tried_building: if self.build_log.document.build_system.build_time != None: time_string = '{:.2f}s, '.format(self.build_log.document.build_system.build_time) else: time_string = '' str_errors = ngettext('Building failed with {amount} error', 'Building failed with {amount} errors', errors) str_warnings = ngettext('{amount} warning or badbox', '{amount} warnings or badboxes', warnings) if errors == 0: markup = '' + _('Building successful') + ' (' + time_string else: markup = '' + str_errors.format(amount=str(errors)) + ' (' if warnings == 0: markup += _('no warnings or badboxes') else: markup += str_warnings.format(amount=str(warnings)) markup += ').' self.view.header_label.set_markup(markup) else: self.view.header_label.set_markup('') Setzer-0.4.4/setzer/workspace/build_log/build_log_viewgtk.py000066400000000000000000000062401420322575300243240ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gdk from gi.repository import Gtk from gi.repository import Pango import os.path class BuildLogView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('buildlog') self.scrolled_window = Gtk.ScrolledWindow() self.list = Gtk.DrawingArea() self.list.add_events(Gdk.EventMask.BUTTON_PRESS_MASK) self.list.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK) self.list_color_hack = Gtk.ListBox() self.list_color_hack_row = Gtk.ListBoxRow() self.scrolled_window.add(self.list) style_context = self.list.get_style_context() self.font = self.list_color_hack.get_style_context().get_font(style_context.get_state()) self.font_size = (self.font.get_size() * 4) / (3 * Pango.SCALE) self.line_height = int(self.font_size) + 11 self.header = Gtk.HBox() self.close_button = Gtk.Button.new_from_icon_name('window-close-symbolic', Gtk.IconSize.MENU) self.close_button.get_style_context().add_class('flat') self.close_button.set_can_focus(False) self.close_button.set_action_name('win.close-build-log') self.header_label = Gtk.Label() self.header_label.set_size_request(300, -1) self.header_label.set_xalign(0) self.header_label.set_margin_left(0) self.header.pack_start(self.header_label, True, True, 0) self.header.pack_start(self.close_button, False, False, 0) self.setup_icons() self.connect('style-updated', self.setup_icons) self.pack_start(self.header, False, False, 0) self.pack_start(self.scrolled_window, True, True, 0) self.set_size_request(200, 200) def setup_icons(self, widget=None): fg_color = self.get_style_context().lookup_color('theme_fg_color')[1] self.icons = dict() for icon_type, icon_name in [('Error', 'dialog-error-symbolic'), ('Warning', 'dialog-warning-symbolic'), ('Badbox', 'own-badbox-symbolic')]: icon_info = Gtk.IconTheme.get_default().lookup_icon(icon_name, 16 * self.get_scale_factor(), 0) pixbuf, was_symbolic = icon_info.load_symbolic(fg_color, fg_color, fg_color, fg_color) surface = Gdk.cairo_surface_create_from_pixbuf(pixbuf, self.get_scale_factor()) self.icons[icon_type] = surface def do_get_request_mode(self): return Gtk.SizeRequestMode.CONSTANT_SIZE Setzer-0.4.4/setzer/workspace/document_chooser/000077500000000000000000000000001420322575300216505ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/document_chooser/__init__.py000066400000000000000000000000001420322575300237470ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/document_chooser/document_chooser.py000066400000000000000000000043241420322575300255650ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os.path from setzer.app.service_locator import ServiceLocator class DocumentChooser(object): def __init__(self, workspace): self.workspace = workspace self.main_window = ServiceLocator.get_main_window() self.view = ServiceLocator.get_main_window().headerbar.document_chooser self.workspace.connect('update_recently_opened_documents', self.on_update_recently_opened_documents) self.view.connect('closed', self.on_document_chooser_closed) self.view.search_entry.connect('search-changed', self.on_document_chooser_search_changed) auto_suggest_box = self.view.auto_suggest_box auto_suggest_box.connect('row-activated', self.on_document_chooser_selection) def on_update_recently_opened_documents(self, workspace, recently_opened_documents): items = list() data = recently_opened_documents.values() for item in sorted(data, key=lambda val: -val['date']): items.append(os.path.split(item['filename'])) self.view.update_autosuggest(items) def on_document_chooser_closed(self, document_chooser, data=None): document_chooser.search_entry.set_text('') document_chooser.auto_suggest_box.unselect_all() def on_document_chooser_search_changed(self, search_entry): self.view.search_filter() def on_document_chooser_selection(self, box, row): self.view.popdown() filename = row.folder + '/' + row.filename self.workspace.open_document_by_filename(filename) Setzer-0.4.4/setzer/workspace/document_chooser/document_chooser_viewgtk.py000066400000000000000000000150031420322575300273210ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Pango import re class DocumentChooser(Gtk.Popover): ''' GEdit like document chooser widget ''' def __init__(self): Gtk.Popover.__init__(self) self.search_entry = Gtk.SearchEntry() self.icon_name = self.search_entry.get_icon_name(Gtk.EntryIconPosition.PRIMARY) self.auto_suggest_entries = list() self.auto_suggest_box = Gtk.ListBox() self.auto_suggest_box.set_size_request(398, -1) self.scrolled_window = Gtk.ScrolledWindow() self.scrolled_window.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.scrolled_window.add(self.auto_suggest_box) self.scrolled_window.get_style_context().add_class('frame') self.scrolled_window.set_min_content_height(295) self.scrolled_window.set_min_content_width(398) self.scrolled_window.set_max_content_height(295) self.scrolled_window.set_max_content_width(398) self.not_found_slate = Gtk.HBox() self.not_found_slate.get_style_context().add_class('not_found') self.not_found_slate.get_style_context().add_class('frame') box = Gtk.VBox() image = Gtk.Image.new_from_icon_name('system-search-symbolic', Gtk.IconSize.MENU) image.set_pixel_size(64) box.pack_start(image, True, True, 0) box.pack_start(Gtk.Label(_('No results')), False, False, 0) outer_box = Gtk.VBox() outer_box.set_center_widget(box) self.not_found_slate.set_center_widget(outer_box) self.other_documents_button = Gtk.Button.new_with_label(_('Other Documents') + '...') self.other_documents_button.set_action_name('win.open-document-dialog') self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(False) self.notebook.set_show_border(False) self.notebook.insert_page(self.scrolled_window, None, 0) self.notebook.insert_page(self.not_found_slate, None, 1) self.notebook.set_current_page(0) self.box = Gtk.VBox() self.box.pack_start(self.search_entry, False, False, 0) self.box.pack_start(self.notebook, True, True, 0) self.box.pack_start(self.other_documents_button, False, False, 0) self.box.show_all() self.add(self.box) self.get_style_context().add_class('documentchooser') def update_autosuggest(self, items): for entry in self.auto_suggest_box.get_children(): self.auto_suggest_box.remove(entry) for item in items: entry = DocumentChooserEntry(item[0], item[1]) self.auto_suggest_box.add(entry) return self.search_filter() def search_filter(self): query = self.search_entry.get_buffer().get_text() count = 0 for entry in self.auto_suggest_box.get_children(): if query == '': if count < 5: entry.highlight_search(query) entry.show_all() count += 1 elif query.lower() in entry.filename.lower() or query.lower() in entry.folder.lower(): entry.highlight_search(query) entry.show_all() count += 1 else: entry.hide() self.update_search_entry(count) def update_search_entry(self, results_count): if results_count == 0: self.search_entry.get_style_context().add_class('error') self.search_entry.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, 'face-uncertain-symbolic') self.notebook.set_current_page(1) else: self.search_entry.get_style_context().remove_class('error') self.search_entry.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, self.icon_name) self.notebook.set_current_page(0) class DocumentChooserEntry(Gtk.ListBoxRow): ''' an item in the document chooser ''' def __init__(self, folder, filename): Gtk.ListBoxRow.__init__(self) self.filename = filename self.filename_label = Gtk.Label() self.filename_label.set_ellipsize(Pango.EllipsizeMode.END) self.filename_label.set_use_markup(True) self.filename_label.set_markup(self.filename) self.filename_label.set_xalign(0) self.folder = folder self.folder_label = Gtk.Label() self.folder_label.set_ellipsize(Pango.EllipsizeMode.END) self.folder_label.set_use_markup(True) self.folder_label.set_markup(self.folder) self.folder_label.set_xalign(0) self.folder_label.get_style_context().add_class('folder') self.box = Gtk.VBox() self.add(self.box) self.box.pack_start(self.filename_label, False, False, 0) self.box.pack_start(self.folder_label, False, False, 0) def highlight_search(self, query): if query != '': markup = self.filename counter = 0 for pos in re.finditer(re.escape(query.lower()), self.filename.lower()): markup = markup[:pos.start()+counter] + '' + markup[pos.start()+counter:pos.end()+counter] + '' + markup[pos.end()+counter:] counter += 7 else: markup = self.filename self.filename_label.set_markup(markup) if query != '': markup = self.folder counter = 0 for pos in re.finditer(re.escape(query.lower()), self.folder.lower()): markup = markup[:pos.start()+counter] + '' + markup[pos.start()+counter:pos.end()+counter] + '' + markup[pos.end()+counter:] counter += 33 else: markup = self.folder self.folder_label.set_markup(markup) Setzer-0.4.4/setzer/workspace/document_switcher/000077500000000000000000000000001420322575300220365ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/document_switcher/__init__.py000066400000000000000000000000001420322575300241350ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/document_switcher/document_switcher.py000066400000000000000000000027411420322575300261420ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.helpers.observable import Observable import setzer.workspace.document_switcher.document_switcher_presenter as document_switcher_presenter import setzer.workspace.document_switcher.document_switcher_controller as document_switcher_controller class DocumentSwitcher(Observable): def __init__(self, workspace): Observable.__init__(self) self.workspace = workspace self.presenter = document_switcher_presenter.DocumentSwitcherPresenter(self, self.workspace) self.controller = document_switcher_controller.DocumentSwitcherController(self, self.workspace) # can be normal or selection self.mode = 'normal' def set_mode(self, mode): self.mode = mode self.add_change_code('docswitcher_mode_change', mode) Setzer-0.4.4/setzer/workspace/document_switcher/document_switcher_controller.py000066400000000000000000000074041420322575300304060ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.app.service_locator import ServiceLocator from setzer.dialogs.dialog_locator import DialogLocator class DocumentSwitcherController(object): ''' Mediator between workspace and view. ''' def __init__(self, document_switcher, workspace): self.document_switcher = document_switcher self.workspace = workspace self.button = ServiceLocator.get_main_window().headerbar.center_widget self.view = self.button.open_docs_popover self.observe_document_switcher_view() def observe_document_switcher_view(self): self.view.document_list.connect('add', self.on_doclist_row_added) self.view.document_list.connect('row-activated', self.on_doclist_row_activated) self.view.document_list.connect('button-release-event', self.on_doclist_row_button_release) self.view.connect('closed', self.on_doclist_row_popdown) self.view.set_root_document_button.connect('clicked', self.set_selection_mode) self.view.unset_root_document_button.connect('clicked', self.unset_root_document) def on_doclist_row_added(self, doclist, row, data=None): row.document_close_button.connect('clicked', self.on_doclist_close_clicked, row.document) row.document_close_button.connect('button-release-event', self.on_doclist_close_button_release, row.document) def on_doclist_row_activated(self, box, row, data=None): if self.view.in_selection_mode: self.document_switcher.set_mode('normal') self.workspace.set_one_document_root(row.document) else: self.view.popdown() self.workspace.set_active_document(row.document) def on_doclist_row_button_release(self, box, event, data=None): if event.button != 2: return False if self.view.in_selection_mode: return False row = box.get_row_at_y(event.y) if row.get_window() != event.window: return False row.document_close_button.clicked() return True def on_doclist_row_popdown(self, popover, data=None): self.document_switcher.set_mode('normal') self.view.document_list.unselect_all() def set_selection_mode(self, action, parameter=None): self.document_switcher.set_mode('selection') return True def unset_root_document(self, action, parameter=None): self.document_switcher.set_mode('normal') self.workspace.unset_root_document() def on_doclist_close_button_release(self, button_object, event, document): if event.button != 2: return False if self.view.in_selection_mode: return False button_object.clicked() return True def on_doclist_close_clicked(self, button_object, document): if document.content.get_modified(): dialog = DialogLocator.get_dialog('close_confirmation') not_save_to_close = dialog.run([document])['not_save_to_close_documents'] if document not in not_save_to_close: self.workspace.remove_document(document) else: self.workspace.remove_document(document) Setzer-0.4.4/setzer/workspace/document_switcher/document_switcher_presenter.py000066400000000000000000000136331420322575300302330ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os.path from setzer.app.service_locator import ServiceLocator class DocumentSwitcherPresenter(object): def __init__(self, document_switcher, workspace): self.document_switcher = document_switcher self.workspace = workspace self.button = ServiceLocator.get_main_window().headerbar.center_widget self.view = self.button.open_docs_popover self.workspace.connect('new_document', self.on_new_document) self.workspace.connect('document_removed', self.on_document_removed) self.workspace.connect('new_inactive_document', self.on_new_inactive_document) self.workspace.connect('new_active_document', self.on_new_active_document) self.workspace.connect('root_state_change', self.on_root_state_change) self.document_switcher.connect('docswitcher_mode_change', self.on_docswitcher_mode_change) self.show_welcome_title() def on_new_document(self, workspace, document): self.view.document_list.add(document.document_switcher_item.view) self.activate_mode(self.document_switcher.mode) def on_document_removed(self, workspace, document): self.view.document_list.remove(document.document_switcher_item.view) self.activate_mode(self.document_switcher.mode) if self.workspace.active_document == None: self.show_welcome_title() def on_new_inactive_document(self, workspace, document): document.disconnect('filename_change', self.on_filename_change) document.disconnect('displayname_change', self.on_displayname_change) document.content.disconnect('modified_changed', self.on_modified_changed) def on_new_active_document(self, workspace, document): self.show_document_name(document) self.view.document_list.invalidate_sort() document.connect('filename_change', self.on_filename_change) document.connect('displayname_change', self.on_displayname_change) document.content.connect('modified_changed', self.on_modified_changed) def on_root_state_change(self, workspace, state): self.activate_mode(self.document_switcher.mode) def on_docswitcher_mode_change(self, document_switcher, mode): self.activate_mode(mode) def on_filename_change(self, document, filename=None): self.show_document_name(document) def on_displayname_change(self, document): self.show_document_name(document) def on_modified_changed(self, content): document = self.workspace.get_active_document() self.show_document_name(document) def activate_mode(self, mode): if mode == 'normal': self.activate_normal_mode() elif mode == 'selection': self.activate_selection_mode() def activate_normal_mode(self): self.activate_set_root_document_button() if self.workspace.root_document != None: self.view.unset_root_document_button.set_sensitive(True) else: self.view.unset_root_document_button.set_sensitive(False) self.view.root_explaination_revealer.set_reveal_child(False) self.view.document_list.get_style_context().remove_class('selection-mode') self.view.document_list.get_style_context().add_class('normal-mode') for item in self.view.document_list.get_children(): item.show() item.document_close_button.show() item.icon_box.show() item.radio_button_hover.hide() self.view.in_selection_mode = False def activate_selection_mode(self): self.view.set_root_document_button.set_sensitive(False) self.view.unset_root_document_button.set_sensitive(True) self.view.root_explaination_revealer.set_reveal_child(True) self.view.set_can_focus(False) self.view.document_list.get_style_context().remove_class('normal-mode') self.view.document_list.get_style_context().add_class('selection-mode') for item in self.view.document_list.get_children(): item.document_close_button.hide() item.icon_box.hide() item.radio_button_hover.show() if not item.document.is_latex_document(): item.hide() self.view.in_selection_mode = True def activate_set_root_document_button(self): if len(self.workspace.open_latex_documents) > 0: self.view.set_root_document_button.set_sensitive(True) else: self.view.set_root_document_button.set_sensitive(False) def show_welcome_title(self): self.button.center_button.set_sensitive(False) self.button.set_visible_child_name('welcome') def show_document_name(self, document): mod_text = '*' if document.content.get_modified() else '' self.button.document_name_label.set_text(document.get_basename() + mod_text) dirname = document.get_dirname() if dirname != '': folder_text = dirname.replace(os.path.expanduser('~'), '~') self.button.document_folder_label.set_text(folder_text) self.button.document_folder_label.show_all() else: self.button.document_folder_label.hide() self.button.center_button.set_sensitive(True) self.button.set_visible_child_name('button') Setzer-0.4.4/setzer/workspace/document_switcher/document_switcher_viewgtk.py000066400000000000000000000157041420322575300277050ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gio from gi.repository import GLib from gi.repository import Gdk from gi.repository import GObject from gi.repository import Pango from setzer.app.service_locator import ServiceLocator class OpenDocsButton(Gtk.Stack): def __init__(self): Gtk.Stack.__init__(self) self.document_name_label = Gtk.Label() self.document_name_label.get_style_context().add_class('title') self.document_name_label.set_ellipsize(Pango.EllipsizeMode.END) self.document_folder_label = Gtk.Label() self.document_folder_label.get_style_context().add_class('subtitle') self.document_folder_label.set_ellipsize(Pango.EllipsizeMode.END) self.document_arrow = Gtk.Image.new_from_icon_name('pan-down-symbolic', Gtk.IconSize.MENU) vbox = Gtk.VBox() vbox.pack_start(self.document_name_label, False, False, 0) vbox.pack_start(self.document_folder_label, False, False, 0) hbox = Gtk.HBox() hbox.pack_start(vbox, False, False, 0) hbox.pack_start(self.document_arrow, False, False, 0) hbox.set_valign(Gtk.Align.CENTER) self.open_docs_popover = OpenDocsPopover() self.center_button = Gtk.MenuButton() self.center_button.get_style_context().add_class('flat') self.center_button.get_style_context().add_class('open-docs-popover-button') self.center_button.set_tooltip_text(_('Show open documents') + ' (' + _('Ctrl') + '+T)') self.center_button.set_can_focus(False) self.center_button.add(hbox) self.center_button.set_use_popover(True) self.center_button.set_popover(self.open_docs_popover) self.center_label_welcome = Gtk.Label('Welcome to Setzer') self.center_label_welcome.get_style_context().add_class('title') self.add_named(self.center_button, 'button') self.add_named(self.center_label_welcome, 'welcome') self.set_valign(Gtk.Align.FILL) self.center_button.set_valign(Gtk.Align.FILL) self.center_label_welcome.set_valign(Gtk.Align.FILL) self.set_size_request(-1, 46) self.show_all() class OpenDocsPopover(Gtk.PopoverMenu): ''' Shows open documents. ''' def __init__(self): Gtk.PopoverMenu.__init__(self) self.get_style_context().add_class('open-docs-popover') self.pmb = ServiceLocator.get_popover_menu_builder() self.stack = self.get_child() self.vbox = Gtk.VBox() self.vbox.set_margin_top(9) self.vbox.set_margin_bottom(10) self.vbox.set_margin_left(10) self.vbox.set_margin_right(10) self.document_list = Gtk.ListBox() self.document_list.set_sort_func(self.sort_function) self.document_list_selection = Gtk.ListBox() self.document_list_selection.set_sort_func(self.sort_function) self.in_selection_mode = False self.scrolled_window = Gtk.ScrolledWindow() self.scrolled_window.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) self.scrolled_window.add(self.document_list) self.scrolled_window.set_max_content_height(336) self.scrolled_window.set_max_content_width(398) self.scrolled_window.set_propagate_natural_height(True) self.scrolled_window.set_propagate_natural_width(True) self.scrolled_window.set_shadow_type(Gtk.ShadowType.NONE) self.set_root_document_button = Gtk.Button() self.set_root_document_button.set_label(_('Set one Document as Root')) self.set_root_document_button.get_style_context().add_class('flat') self.set_root_document_button.get_style_context().add_class('like-model') self.set_root_document_button.set_can_focus(False) self.set_root_document_button.get_child().set_xalign(0) self.unset_root_document_button = Gtk.Button() self.unset_root_document_button.set_label(_('Unset Root Document')) self.unset_root_document_button.get_style_context().add_class('flat') self.unset_root_document_button.get_style_context().add_class('like-model') self.unset_root_document_button.set_can_focus(False) self.unset_root_document_button.get_child().set_xalign(0) self.root_explaination1 = Gtk.Label(_('Click on a document in the list below to set it as root.')) self.root_explaination1.set_margin_top(6) self.root_explaination1.set_xalign(0) self.root_explaination1.get_style_context().add_class('explaination-header') self.root_explaination2 = Gtk.Label(_('The root document will get built, no matter which document\nyou are currently editing, and it will always display in the .pdf\npreview. The build log will also refer to the root document.\nThis is often useful for working on large projects where typically\na top level document (the root) will contain multiple lower\nlevel files via include statements.')) self.root_explaination2.set_xalign(0) self.root_explaination2.get_style_context().add_class('explaination') self.root_explaination2.set_margin_top(15) self.root_explaination2.set_margin_bottom(10) self.root_explaination_box = Gtk.VBox() self.root_explaination_box.pack_start(self.root_explaination1, False, False, 0) self.root_explaination_box.pack_start(self.root_explaination2, False, False, 0) self.root_explaination_revealer = Gtk.Revealer() self.root_explaination_revealer.add(self.root_explaination_box) self.root_explaination_revealer.set_reveal_child(False) self.vbox.pack_start(self.root_explaination_revealer, False, False, 0) self.vbox.pack_start(self.scrolled_window, False, False, 0) self.pmb.add_separator(self.vbox) self.vbox.pack_start(self.set_root_document_button, False, False, 0) self.vbox.pack_start(self.unset_root_document_button, False, False, 0) self.vbox.show_all() self.stack.add_named(self.vbox, 'main') def sort_function(self, row1, row2, user_data=None): date1 = row1.document.get_last_activated() date2 = row2.document.get_last_activated() if date1 < date2: return 1 elif date1 == date2: return 0 else: return -1 Setzer-0.4.4/setzer/workspace/headerbar/000077500000000000000000000000001420322575300202255ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/headerbar/__init__.py000066400000000000000000000000001420322575300223240ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/headerbar/headerbar_presenter.py000066400000000000000000000142401420322575300246040ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gio from gi.repository import GLib from setzer.app.service_locator import ServiceLocator class HeaderbarPresenter(object): ''' Mediator between workspace and view. ''' def __init__(self, workspace): self.workspace = workspace self.main_window = ServiceLocator.get_main_window() self.workspace.connect('new_document', self.on_new_document) self.workspace.connect('document_removed', self.on_document_removed) self.workspace.connect('new_active_document', self.on_new_active_document) self.workspace.connect('update_recently_opened_documents', self.on_update_recently_opened_documents) self.workspace.connect('update_recently_opened_session_files', self.on_update_recently_opened_session_files) self.workspace.connect('root_state_change', self.on_root_state_change) self.activate_welcome_screen_mode() def on_new_document(self, workspace, document): pass def on_document_removed(self, workspace, document): if self.workspace.active_document == None: self.activate_welcome_screen_mode() def on_new_active_document(self, workspace, document): self.set_build_button_state() self.main_window.headerbar.save_document_button.show_all() if document.is_latex_document(): self.activate_latex_document_mode() else: self.activate_other_document_mode() def on_update_recently_opened_documents(self, workspace, recently_opened_documents): data = recently_opened_documents.values() if len(data) > 0: self.main_window.headerbar.open_document_button.set_sensitive(True) self.main_window.headerbar.open_document_button.show_all() self.main_window.headerbar.open_document_blank_button.hide() else: self.main_window.headerbar.open_document_button.hide() self.main_window.headerbar.open_document_button.set_sensitive(False) self.main_window.headerbar.open_document_blank_button.show_all() def on_update_recently_opened_session_files(self, workspace, recently_opened_session_files): items = list() data = recently_opened_session_files.values() for item in sorted(data, key=lambda val: -val['date']): items.append(item['filename']) for button in self.main_window.headerbar.session_file_buttons: self.main_window.headerbar.session_box.remove(button) if len(self.main_window.headerbar.session_file_buttons) > 0: self.main_window.headerbar.session_box.remove(self.main_window.headerbar.session_box_separator) self.main_window.headerbar.session_file_buttons = list() if len(items) > 0: self.main_window.headerbar.session_box.pack_start(self.main_window.headerbar.session_box_separator, False, False, 0) for item in items: button = Gtk.ModelButton() button.set_label(item) button.get_child().set_halign(Gtk.Align.START) button.set_detailed_action_name(Gio.Action.print_detailed_name('win.restore-session', GLib.Variant('as', [item]))) button.show_all() self.main_window.headerbar.session_box.pack_start(button, False, False, 0) self.main_window.headerbar.session_file_buttons.append(button) def on_root_state_change(self, workspace, state): self.set_build_button_state() def activate_welcome_screen_mode(self): self.set_build_button_state() self.main_window.headerbar.save_document_button.hide() self.main_window.headerbar.preview_toggle.hide() self.main_window.headerbar.preview_toggle.set_sensitive(False) self.main_window.headerbar.help_toggle.hide() self.main_window.headerbar.help_toggle.set_sensitive(False) self.main_window.headerbar.sidebar_toggle.hide() self.main_window.headerbar.sidebar_toggle.set_sensitive(False) def activate_latex_document_mode(self): self.main_window.headerbar.preview_toggle.show_all() self.main_window.headerbar.preview_toggle.set_sensitive(True) self.main_window.headerbar.help_toggle.show_all() self.main_window.headerbar.help_toggle.set_sensitive(True) self.main_window.headerbar.sidebar_toggle.show_all() self.main_window.headerbar.sidebar_toggle.set_sensitive(True) def activate_other_document_mode(self): self.main_window.headerbar.preview_toggle.hide() self.main_window.headerbar.preview_toggle.set_sensitive(False) self.main_window.headerbar.help_toggle.hide() self.main_window.headerbar.help_toggle.set_sensitive(False) self.main_window.headerbar.sidebar_toggle.hide() self.main_window.headerbar.sidebar_toggle.set_sensitive(False) def set_build_button_state(self): if self.workspace.root_document != None: document = self.workspace.root_document else: document = self.workspace.active_document headerbar = self.main_window.headerbar prev_widget = headerbar.build_wrapper.get_center_widget() if prev_widget != None: headerbar.build_wrapper.remove(prev_widget) if document != None and document.is_latex_document(): headerbar.build_wrapper.set_center_widget(document.build_widget.view) if document.build_widget.view.has_result(): document.build_widget.view.hide_timer(1600) Setzer-0.4.4/setzer/workspace/headerbar/headerbar_viewgtk.py000066400000000000000000000231201420322575300242520ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from gi.repository import Gio import setzer.workspace.document_switcher.document_switcher_viewgtk as document_switcher_viewgtk import setzer.workspace.document_chooser.document_chooser_viewgtk as document_chooser_viewgtk from setzer.app.service_locator import ServiceLocator class HeaderBar(Gtk.HeaderBar): ''' Title bar of the app, contains global controls ''' def __init__(self): Gtk.HeaderBar.__init__(self) self.pmb = ServiceLocator.get_popover_menu_builder() self.set_show_close_button(True) # sidebar toggle self.sidebar_toggle_revealer = Gtk.Revealer() self.sidebar_toggle = Gtk.ToggleButton() self.sidebar_toggle.set_image(Gtk.Image.new_from_icon_name('builder-view-left-pane-symbolic', Gtk.IconSize.MENU)) self.sidebar_toggle.set_can_focus(False) self.sidebar_toggle.set_tooltip_text(_('Toggle sidebar') + ' (F9)') self.pack_start(self.sidebar_toggle) # open documents button self.document_chooser = document_chooser_viewgtk.DocumentChooser() self.open_document_button_label = Gtk.HBox() self.open_document_button_label.pack_start(Gtk.Label(_('Open')), False, False, 0) self.open_document_button_label.pack_start(Gtk.Image.new_from_icon_name('pan-down-symbolic', Gtk.IconSize.MENU), False, False, 0) self.open_document_button = Gtk.MenuButton() self.open_document_button.set_can_focus(False) self.open_document_button.set_tooltip_text(_('Open a document') + ' (' + _('Shift') + '+' + _('Ctrl') + '+O)') self.open_document_button.set_use_popover(True) self.open_document_button.add(self.open_document_button_label) self.open_document_button.get_style_context().add_class('text-button') self.open_document_button.get_style_context().add_class('image-button') self.open_document_button.set_popover(self.document_chooser) self.pack_start(self.open_document_button) self.open_document_blank_button = Gtk.Button.new_with_label(_('Open') + '...') self.open_document_blank_button.set_tooltip_text(_('Open a document') + ' (' + _('Ctrl') + '+O)') self.open_document_blank_button.set_action_name('win.open-document-dialog') self.pack_start(self.open_document_blank_button) popover = Gtk.PopoverMenu() stack = popover.get_child() box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_action_button(box, _('New LaTeX Document'), 'win.new-latex-document', keyboard_shortcut=_('Ctrl') + '+N') self.pmb.add_action_button(box, _('New BibTeX Document'), 'win.new-bibtex-document') stack.add_named(box, 'main') box.show_all() box = Gtk.HBox() box.pack_start(Gtk.Image.new_from_icon_name('document-new-symbolic', Gtk.IconSize.MENU), False, False, 0) box.pack_end(Gtk.Image.new_from_icon_name('pan-down-symbolic', Gtk.IconSize.MENU), False, False, 0) box.set_size_request(40, -1) self.new_document_button = Gtk.MenuButton() self.new_document_button.add(box) self.new_document_button.set_use_popover(True) self.new_document_button.set_can_focus(False) self.new_document_button.set_tooltip_text(_('Create a new document')) self.new_document_button.get_style_context().add_class('new-document-menu-button') self.new_document_button.set_popover(popover) self.pack_start(self.new_document_button) # workspace menu self.session_file_buttons = list() self.insert_workspace_menu() # save document button self.save_document_button = Gtk.Button.new_with_label(_('Save')) self.save_document_button.set_can_focus(False) self.save_document_button.set_tooltip_text(_('Save the current document') + ' (' + _('Ctrl') + '+S)') self.save_document_button.set_action_name('win.save') self.pack_end(self.save_document_button) # help and preview toggles box = Gtk.HBox() self.preview_toggle = Gtk.ToggleButton() self.preview_toggle.set_image(Gtk.Image.new_from_icon_name('view-paged-symbolic', Gtk.IconSize.MENU)) self.preview_toggle.set_can_focus(False) self.preview_toggle.set_tooltip_text(_('Toggle preview') + ' (F10)') box.pack_start(self.preview_toggle, False, False, 0) self.help_toggle = Gtk.ToggleButton() self.help_toggle.set_image(Gtk.Image.new_from_icon_name('help-browser-symbolic', Gtk.IconSize.MENU)) self.help_toggle.set_can_focus(False) self.help_toggle.set_tooltip_text(_('Toggle help') + ' (F1)') box.pack_start(self.help_toggle, False, False, 0) box.get_style_context().add_class('linked') self.pack_end(box) # build button wrapper self.build_wrapper = Gtk.VBox() self.pack_end(self.build_wrapper) # title / open documents popover self.center_widget = document_switcher_viewgtk.OpenDocsButton() self.set_custom_title(self.center_widget) def insert_workspace_menu(self): popover = Gtk.PopoverMenu() self.menu_button = Gtk.MenuButton() image = Gtk.Image.new_from_icon_name('open-menu-symbolic', Gtk.IconSize.BUTTON) self.menu_button.set_image(image) self.menu_button.set_can_focus(False) self.menu_button.set_popover(popover) self.pack_end(self.menu_button) # session submenu self.session_box = Gtk.VBox() self.pmb.set_box_margin(self.session_box) self.pmb.add_header_button(self.session_box, _('Session')) self.session_explaination = Gtk.Label(_('Save the list of open documents in a session file\nand restore it later, a convenient way to work\non multiple projects.')) self.session_explaination.set_xalign(0) self.session_explaination.get_style_context().add_class('explaination') self.session_explaination.set_margin_top(8) self.session_explaination.set_margin_bottom(11) self.session_box.pack_start(self.session_explaination, False, False, 0) self.pmb.add_action_button(self.session_box, _('Restore Previous Session') + '...', 'win.restore-session', ['']) self.pmb.add_action_button(self.session_box, _('Save Current Session') + '...', 'win.save-session') self.session_box_separator = Gtk.SeparatorMenuItem() self.session_box_separator.show_all() self.session_box.show_all() GLib.idle_add(self.populate_workspace_menu, priority=GLib.PRIORITY_LOW) def populate_workspace_menu(self): popover = self.menu_button.get_popover() stack = popover.get_child() box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_action_button(box, _('Save Document As') + '...', 'win.save-as', keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+S') self.pmb.add_action_button(box, _('Save All Documents'), 'win.save-all') self.pmb.add_separator(box) self.pmb.add_menu_button(box, _('Session'), 'session') self.pmb.add_separator(box) self.pmb.add_menu_button(box, _('View'), 'view') self.pmb.add_menu_button(box, _('Tools'), 'tools') self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Preferences'), 'win.show-preferences-dialog') self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Keyboard Shortcuts'), 'win.show-shortcuts-window', keyboard_shortcut=_('Ctrl') + '+?') self.pmb.add_action_button(box, _('About'), 'win.show-about-dialog') self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Close All Documents'), 'win.close-all-documents') self.pmb.add_action_button(box, _('Close Document'), 'win.close-active-document', keyboard_shortcut=_('Ctrl') + '+W') self.pmb.add_action_button(box, _('Quit'), 'win.quit', keyboard_shortcut=_('Ctrl') + '+Q') stack.add_named(box, 'main') box.show_all() # view submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('View')) self.pmb.add_action_button(box, _('Dark Mode'), 'win.toggle-dark-mode') self.pmb.add_action_button(box, _('Invert Colors in .pdf-Preview'), 'win.toggle-invert-pdf') stack.add_named(box, 'view') box.show_all() # session submenu stack.add_named(self.session_box, 'session') # tools submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Tools')) self.pmb.add_action_button(box, _('Check Spelling') + '...', 'win.spellchecking') self.pmb.add_action_button(box, _('Automatic Spellchecking'), 'win.toggle-spellchecking') self.pmb.add_action_button(box, _('Set Spellchecking Language') + '...', 'win.set-spellchecking-language') stack.add_named(box, 'tools') box.show_all() Setzer-0.4.4/setzer/workspace/help_panel/000077500000000000000000000000001420322575300204175ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/help_panel/__init__.py000066400000000000000000000000001420322575300225160ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/help_panel/help_panel.py000066400000000000000000000121451420322575300231030ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('WebKit2', '4.0') from gi.repository import WebKit2 from gi.repository import GLib import os.path import pickle from setzer.helpers.observable import Observable import setzer.workspace.help_panel.help_panel_controller as help_panel_controller import setzer.workspace.help_panel.help_panel_presenter as help_panel_presenter from setzer.app.service_locator import ServiceLocator class HelpPanel(Observable): def __init__(self, workspace): Observable.__init__(self) self.workspace = workspace self.view = ServiceLocator.get_main_window().help_panel self.path = 'file://' + os.path.join(ServiceLocator.get_resources_path(), 'help') self.home_uri = self.path + '/latex2e_0.html' self.current_uri = self.home_uri with open(os.path.join(ServiceLocator.get_resources_path(), 'help', 'search_index.pickle'), 'rb') as filehandle: self.search_index = pickle.load(filehandle) self.search_results_blank = list() self.search_results = self.search_results_blank self.query = '' GLib.idle_add(self.activate, priority=GLib.PRIORITY_LOW) def activate(self): self.view.settings = WebKit2.Settings() self.view.settings.set_enable_java(False) self.view.settings.set_enable_javascript(False) self.view.settings.set_enable_javascript_markup(False) self.view.settings.set_enable_plugins(False) self.view.settings.set_enable_developer_extras(False) self.view.settings.set_enable_page_cache(False) self.view.content = WebKit2.WebView.new_with_settings(self.view.settings) self.view.content.set_can_focus(False) self.view.stack.add_named(self.view.content, 'content') self.view.stack.add_named(self.view.search_widget, 'search') self.view.show_all() self.controller = help_panel_controller.HelpPanelController(self, self.view) self.presenter = help_panel_presenter.HelpPanelPresenter(self, self.view) self.add_change_code('search_query_changed') def set_uri(self, uri): self.current_uri = uri self.add_change_code('uri_changed', uri) def set_uri_by_search_item(self, uri_ending, text, location): self.current_uri = self.path + '/' + uri_ending self.search_results_blank = [item for item in self.search_results_blank if (item[0] != uri_ending or item[1] != text or item[2] != location)] self.search_results_blank.append([uri_ending, text, location]) if len(self.search_results_blank) > 8: self.search_results_blank.pop() self.add_change_code('uri_changed', self.current_uri) def set_search_query(self, query): self.query = query if query == '': self.search_results = self.search_results_blank else: words = query.split() self.search_results = list() for item in self.search_index: if len(self.search_results) == 8: break found = True for word in words: if item[0].find(word.lower()) == -1: found = False break if found: headline = item[2] headline = headline.replace('>', '>').replace('<', '<').replace('"', '"').replace('&', '&') location = item[3] location = location.replace('>', '>').replace('<', '<').replace('"', '"').replace('&', '&') for word in words: headline = headline.replace(word, '•' + word + '◆').replace(word.lower(), '•' + word.lower() + '◆').replace(word.title(), '•' + word.title() + '◆') location = location.replace(word, '•' + word + '◆').replace(word.lower(), '•' + word.lower() + '◆').replace(word.title(), '•' + word.title() + '◆') headline = headline.replace('&', '&').replace('"', '"').replace('<', '<').replace('>', '>').replace('•', '').replace('◆', '') location = location.replace('&', '&').replace('"', '"').replace('<', '<').replace('>', '>').replace('•', '').replace('◆', '') self.search_results.append([item[1], headline, location]) self.add_change_code('search_query_changed') Setzer-0.4.4/setzer/workspace/help_panel/help_panel_controller.py000066400000000000000000000107711420322575300253510ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('WebKit2', '4.0') from gi.repository import WebKit2 import webbrowser import _thread as thread class HelpPanelController(object): def __init__(self, help_panel, view): self.help_panel = help_panel self.view = view self.view.content.connect('decide-policy', self.on_policy_decision) self.view.content.connect('context-menu', self.on_context_menu) self.view.content.get_back_forward_list().connect('changed', self.on_back_forward_list_changed) self.view.back_button.connect('clicked', self.on_back_button_clicked) self.view.next_button.connect('clicked', self.on_next_button_clicked) self.view.up_button.connect('clicked', self.on_up_button_clicked) self.view.home_button.connect('clicked', self.on_home_button_clicked) self.view.search_button.connect('toggled', self.on_search_button_toggled) self.view.search_entry.connect('changed', self.on_search_entry_changed) self.view.search_entry.connect('stop-search', self.on_search_stopped) self.view.search_results.connect('row-activated', self.on_search_result_activated) def on_back_button_clicked(self, button): self.view.search_button.set_active(False) self.view.content.go_back() def on_next_button_clicked(self, button): self.view.search_button.set_active(False) self.view.content.go_forward() def on_up_button_clicked(self, button): self.view.search_button.set_active(False) if self.view.content.get_uri() != self.help_panel.current_uri.split('#')[0] + '#': self.view.content.load_uri(self.help_panel.current_uri.split('#')[0] + '#') else: self.view.content.load_uri(self.help_panel.current_uri.split('#')[0] + '#top') def on_home_button_clicked(self, button): self.view.search_button.set_active(False) self.view.content.load_uri(self.help_panel.home_uri) def on_search_button_toggled(self, button): if button.get_active(): self.view.stack.set_visible_child_name('search') self.view.search_entry.set_text('') self.view.search_entry.grab_focus() self.help_panel.set_search_query(self.view.search_entry.get_text()) else: self.view.stack.set_visible_child_name('content') self.help_panel.workspace.presenter.focus_active_document() def on_search_entry_changed(self, entry): self.help_panel.set_search_query(entry.get_text()) def on_search_stopped(self, entry): self.view.search_button.set_active(False) def on_search_result_activated(self, box, row): self.help_panel.set_uri_by_search_item(row.uri_ending, row.text_label.get_text(), row.location_label.get_text()) def on_back_forward_list_changed(self, back_forward_list, item_added=None, items_removed=None): self.view.back_button.set_sensitive(self.view.content.can_go_back()) self.view.next_button.set_sensitive(self.view.content.can_go_forward()) def on_policy_decision(self, view, decision, decision_type, user_data=None): na = WebKit2.PolicyDecisionType.NAVIGATION_ACTION nwa = WebKit2.PolicyDecisionType.NEW_WINDOW_ACTION ra = WebKit2.PolicyDecisionType.RESPONSE if decision_type == na or decision_type == nwa: uri = decision.get_navigation_action().get_request().get_uri() if uri.startswith(self.help_panel.path): self.help_panel.set_uri(uri) return True else: thread.start_new_thread(webbrowser.open_new_tab, (uri,)) decision.ignore() return True elif decision_type == ra: return False def on_context_menu(self, view, menu, event, hit_test_result, user_data=None): return True Setzer-0.4.4/setzer/workspace/help_panel/help_panel_presenter.py000066400000000000000000000050551420322575300251740ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk import setzer.workspace.help_panel.help_panel_viewgtk as help_panel_view class HelpPanelPresenter(object): def __init__(self, help_panel, view): self.help_panel = help_panel self.view = view self.help_panel.connect('search_query_changed', self.on_search_query_changed) self.help_panel.connect('uri_changed', self.on_uri_changed) self.view.content.load_uri(self.help_panel.current_uri) def on_search_query_changed(self, help_panel): results_list = self.help_panel.search_results for item in self.view.search_result_items: self.view.search_results.remove(item) self.view.search_result_items = list() if results_list: self.view.search_entry.get_style_context().remove_class('error') self.view.search_entry.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, 'edit-find-symbolic') for item in reversed(results_list): list_item = help_panel_view.SearchResultView(item) self.view.search_results.prepend(list_item) self.view.search_result_items.append(list_item) self.view.search_results.show_all() elif self.help_panel.query != '': self.view.search_entry.get_style_context().add_class('error') self.view.search_entry.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, 'face-uncertain-symbolic') else: self.view.search_entry.get_style_context().remove_class('error') self.view.search_entry.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, 'edit-find-symbolic') def on_uri_changed(self, help_panel, uri): if self.view.content.get_uri() != uri: self.view.content.load_uri(uri) self.view.search_button.set_active(False) Setzer-0.4.4/setzer/workspace/help_panel/help_panel_viewgtk.py000066400000000000000000000115011420322575300246360ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class HelpPanelView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('help') self.action_bar = Gtk.HBox() self.action_bar.set_size_request(-1, 37) self.home_button = Gtk.Button.new_from_icon_name('go-home-symbolic', Gtk.IconSize.MENU) self.home_button.set_tooltip_text(_('Home')) self.home_button.get_style_context().add_class('flat') self.home_button.set_can_focus(False) self.action_bar.pack_start(self.home_button, False, False, 0) self.up_button = Gtk.Button.new_from_icon_name('go-up-symbolic', Gtk.IconSize.MENU) self.up_button.set_tooltip_text(_('Top')) self.up_button.get_style_context().add_class('flat') self.up_button.set_can_focus(False) self.action_bar.pack_start(self.up_button, False, False, 0) self.back_button = Gtk.Button.new_from_icon_name('go-previous-symbolic', Gtk.IconSize.MENU) self.back_button.set_tooltip_text(_('Back')) self.back_button.get_style_context().add_class('flat') self.back_button.set_can_focus(False) self.action_bar.pack_start(self.back_button, False, False, 0) self.next_button = Gtk.Button.new_from_icon_name('go-next-symbolic', Gtk.IconSize.MENU) self.next_button.set_tooltip_text(_('Forward')) self.next_button.get_style_context().add_class('flat') self.next_button.set_can_focus(False) self.action_bar.pack_start(self.next_button, False, False, 0) self.search_button = Gtk.ToggleButton() self.search_button.set_image(Gtk.Image.new_from_icon_name('edit-find-symbolic', Gtk.IconSize.MENU)) self.search_button.set_tooltip_text(_('Find')) self.search_button.get_style_context().add_class('flat') self.search_button.set_can_focus(False) self.action_bar.pack_end(self.search_button, False, False, 0) self.pack_start(self.action_bar, False, False, 0) self.search_widget = Gtk.HBox() self.search_vbox = Gtk.VBox() self.search_vbox.set_margin_left(18) self.search_vbox.set_margin_right(18) self.search_entry = Gtk.SearchEntry() self.search_entry.set_size_request(360, -1) self.search_entry.set_margin_bottom(21) self.search_result_items = list() self.search_results = Gtk.ListBox() self.search_results.set_size_request(300, 359) self.search_results.set_can_focus(False) self.search_results.set_selection_mode(Gtk.SelectionMode.NONE) self.search_results.set_margin_left(26) self.search_results.set_margin_right(26) self.search_content_box = Gtk.VBox() self.search_content_box.pack_start(self.search_entry, False, False, 0) self.search_content_box.pack_start(self.search_results, False, False, 0) self.search_vbox.set_center_widget(self.search_content_box) self.search_widget.set_center_widget(self.search_vbox) self.settings = None self.content = None self.stack = Gtk.Stack() self.pack_start(self.stack, True, True, 0) self.show_all() def do_get_request_mode(self): return Gtk.SizeRequestMode.CONSTANT_SIZE def do_get_preferred_width(self): return 396, 500 class SearchResultView(Gtk.ListBoxRow): def __init__(self, data): Gtk.ListBoxRow.__init__(self) self.set_can_focus(False) self.uri_ending = data[0] self.box = Gtk.VBox() self.box.set_margin_left(3) self.box.set_margin_right(3) self.text_label = Gtk.Label() self.text_label.set_markup(data[1]) self.text_label.set_xalign(0) self.location_label = Gtk.Label() self.location_label.set_markup('' + data[2] + '') self.location_label.set_xalign(0) self.location_label.get_style_context().add_class('location-label') self.box.pack_start(self.text_label, False, False, 0) self.box.pack_start(self.location_label, False, False, 0) self.add(self.box) self.show_all() Setzer-0.4.4/setzer/workspace/keyboard_shortcuts/000077500000000000000000000000001420322575300222265ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/keyboard_shortcuts/__init__.py000066400000000000000000000000001420322575300243250ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/keyboard_shortcuts/shortcuts.py000066400000000000000000000256761420322575300246560ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') gi.require_version('Gdk', '3.0') from gi.repository import Gdk from gi.repository import GLib from gi.repository import Gio from gi.repository import Gtk from setzer.app.service_locator import ServiceLocator from setzer.dialogs.dialog_locator import DialogLocator class Shortcuts(object): ''' Handle Keyboard shortcuts. ''' def __init__(self, workspace): self.main_window = ServiceLocator.get_main_window() self.workspace = workspace self.setup_shortcuts() def set_accels_for_insert_before_after_action(self, parameter, accels): self.main_window.app.set_accels_for_action(Gio.Action.print_detailed_name('win.insert-before-after', GLib.Variant('as', parameter)), accels) def set_accels_for_insert_symbol_action(self, parameter, accels): self.main_window.app.set_accels_for_action(Gio.Action.print_detailed_name('win.insert-symbol', GLib.Variant('as', parameter)), accels) def setup_shortcuts(self): self.accel_group = Gtk.AccelGroup() self.main_window.add_accel_group(self.accel_group) c_mask = Gdk.ModifierType.CONTROL_MASK s_mask = Gdk.ModifierType.SHIFT_MASK a_mask = Gdk.ModifierType.MOD1_MASK m_mask = Gdk.ModifierType.META_MASK all_mask = Gdk.ModifierType.MODIFIER_MASK flags = Gtk.AccelFlags.MASK self.accel_group.connect(Gdk.keyval_from_name('o'), c_mask | s_mask, flags, self.shortcut_doc_chooser) self.accel_group.connect(Gdk.keyval_from_name('t'), c_mask, flags, self.shortcut_show_open_docs) self.accel_group.connect(Gdk.keyval_from_name('F1'), 0, flags, self.shortcut_help) self.accel_group.connect(Gdk.keyval_from_name('F8'), 0, flags, self.shortcut_build_log) self.accel_group.connect(Gdk.keyval_from_name('F9'), 0, flags, self.shortcut_sidebar) self.accel_group.connect(Gdk.keyval_from_name('F10'), 0, flags, self.shortcut_preview) self.accel_group.connect(Gdk.keyval_from_name('t'), c_mask | s_mask, flags, self.shortcut_switch_document) self.accel_group.connect(Gdk.keyval_from_name('j'), c_mask | a_mask, flags, self.shortcut_forward_sync) self.main_window.app.set_accels_for_action('win.new-latex-document', ['n']) # zoom self.main_window.app.set_accels_for_action('win.zoom-in', ['plus']) self.main_window.app.set_accels_for_action('win.zoom-out', ['minus']) self.main_window.app.set_accels_for_action('win.reset-zoom', ['0']) # text search self.main_window.app.set_accels_for_action('win.find', ['f']) self.main_window.app.set_accels_for_action('win.find-next', ['g']) self.main_window.app.set_accels_for_action('win.find-prev', ['g']) self.main_window.app.set_accels_for_action('win.find-replace', ['h']) self.main_window.app.set_accels_for_action('win.open-document-dialog', ['o']) self.main_window.app.set_accels_for_action('win.save-and-build', ['F5']) self.main_window.app.set_accels_for_action('win.build', ['F6']) self.main_window.app.set_accels_for_action('win.show-shortcuts-window', ['question']) self.main_window.app.set_accels_for_action('win.save', ['s']) self.main_window.app.set_accels_for_action('win.save-as', ['s']) self.main_window.app.set_accels_for_action('win.close-active-document', ['w']) self.main_window.app.set_accels_for_action('win.spellchecking', ['F7']) self.main_window.app.set_accels_for_action('win.quit', ['q']) # document edit shortcuts self.accel_group.connect(Gdk.keyval_from_name('quotedbl'), c_mask, flags, self.shortcut_quotes) def set_document_type(self, document_type): if document_type == 'latex': self.set_accels_for_insert_before_after_action(['\\textbf{', '}'], ['b']) self.set_accels_for_insert_before_after_action(['\\textit{', '}'], ['i']) self.set_accels_for_insert_before_after_action(['\\underline{', '}'], ['u']) self.set_accels_for_insert_before_after_action(['\\emph{', '}'], ['e']) self.set_accels_for_insert_before_after_action(['\\texttt{', '}'], ['m']) self.set_accels_for_insert_before_after_action(['$ ', ' $'], ['m']) self.set_accels_for_insert_before_after_action(['\\[ ', ' \\]'], ['m']) self.set_accels_for_insert_before_after_action(['\\begin{equation}\n\t', '\n\\end{equation}'], ['n']) self.set_accels_for_insert_before_after_action(['\\begin{•}\n\t', '\n\\end{•}'], ['e']) self.set_accels_for_insert_before_after_action(['_{', '}'], ['d']) self.set_accels_for_insert_before_after_action(['^{', '}'], ['u']) self.set_accels_for_insert_before_after_action(['\\sqrt{', '}'], ['q']) self.set_accels_for_insert_symbol_action(['\\frac{•}{•}'], ['f']) self.set_accels_for_insert_symbol_action(['\\left •'], ['l']) self.set_accels_for_insert_symbol_action(['\\right •'], ['r']) self.set_accels_for_insert_symbol_action(['\\item •'], ['i']) self.set_accels_for_insert_symbol_action(['\\\\\n'], ['Return']) self.main_window.app.set_accels_for_action('win.comment-uncomment', ['K']) elif document_type == 'bibtex': self.set_accels_for_insert_before_after_action(['\\textbf{', '}'], []) self.set_accels_for_insert_before_after_action(['\\textit{', '}'], []) self.set_accels_for_insert_before_after_action(['\\underline{', '}'], []) self.set_accels_for_insert_before_after_action(['\\emph{', '}'], []) self.set_accels_for_insert_before_after_action(['\\texttt{', '}'], []) self.set_accels_for_insert_before_after_action(['$ ', ' $'], []) self.set_accels_for_insert_before_after_action(['\\[ ', ' \\]'], []) self.set_accels_for_insert_before_after_action(['\\begin{equation}\n\t', '\n\\end{equation}'], []) self.set_accels_for_insert_before_after_action(['_{', '}'], []) self.set_accels_for_insert_before_after_action(['^{', '}'], []) self.set_accels_for_insert_before_after_action(['\\sqrt{', '}'], []) self.set_accels_for_insert_symbol_action(['\\frac{•}{•}'], []) self.set_accels_for_insert_symbol_action(['\\left •'], []) self.set_accels_for_insert_symbol_action(['\\right •'], []) self.set_accels_for_insert_symbol_action(['\\item •'], []) self.set_accels_for_insert_symbol_action(['\\\\\n'], []) self.main_window.app.set_accels_for_action('win.comment-uncomment', []) else: self.set_accels_for_insert_before_after_action(['\\textbf{', '}'], []) self.set_accels_for_insert_before_after_action(['\\textit{', '}'], []) self.set_accels_for_insert_before_after_action(['\\underline{', '}'], []) self.set_accels_for_insert_before_after_action(['\\emph{', '}'], []) self.set_accels_for_insert_before_after_action(['\\texttt{', '}'], []) self.set_accels_for_insert_before_after_action(['$ ', ' $'], []) self.set_accels_for_insert_before_after_action(['\\[ ', ' \\]'], []) self.set_accels_for_insert_before_after_action(['\\begin{equation}\n\t', '\n\\end{equation}'], []) self.set_accels_for_insert_before_after_action(['_{', '}'], []) self.set_accels_for_insert_before_after_action(['^{', '}'], []) self.set_accels_for_insert_before_after_action(['\\sqrt{', '}'], []) self.set_accels_for_insert_symbol_action(['\\frac{•}{•}'], []) self.set_accels_for_insert_symbol_action(['\\left •'], []) self.set_accels_for_insert_symbol_action(['\\right •'], []) self.set_accels_for_insert_symbol_action(['\\item •'], []) self.set_accels_for_insert_symbol_action(['\\\\\n'], []) self.main_window.app.set_accels_for_action('win.comment-uncomment', []) def shortcut_doc_chooser(self, accel_group=None, window=None, key=None, mask=None): if self.main_window.headerbar.open_document_button.get_sensitive(): self.main_window.headerbar.open_document_button.clicked() def shortcut_show_open_docs(self, accel_group=None, window=None, key=None, mask=None): if self.main_window.headerbar.center_widget.center_button.get_sensitive(): self.main_window.headerbar.center_widget.center_button.clicked() def shortcut_sidebar(self, accel_group=None, window=None, key=None, mask=None): toggle = self.main_window.headerbar.sidebar_toggle if toggle.get_sensitive(): toggle.clicked() return True def shortcut_build_log(self, accel_group=None, window=None, key=None, mask=None): show_build_log = not self.workspace.get_show_build_log() self.workspace.set_show_build_log(show_build_log) def shortcut_preview(self, accel_group=None, window=None, key=None, mask=None): toggle = self.main_window.headerbar.preview_toggle if toggle.get_sensitive(): toggle.clicked() return True def shortcut_help(self, accel_group=None, window=None, key=None, mask=None): toggle = self.main_window.headerbar.help_toggle if toggle.get_sensitive(): toggle.clicked() return True def shortcut_switch_document(self, accel_group=None, window=None, key=None, mask=None): self.workspace.switch_to_earliest_open_document() def shortcut_quotes(self, accel_group=None, window=None, key=None, mask=None): active_document = self.workspace.get_active_document() if active_document != None and active_document.is_latex_document(): self.main_window.latex_shortcutsbar.quotes_button.set_active(True) def shortcut_forward_sync(self, accel_group=None, window=None, key=None, mask=None): self.workspace.forward_sync(self.workspace.active_document) Setzer-0.4.4/setzer/workspace/preview_panel/000077500000000000000000000000001420322575300211505ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/preview_panel/__init__.py000066400000000000000000000000001420322575300232470ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/preview_panel/preview_panel_presenter.py000066400000000000000000000050141420322575300264510ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.app.service_locator import ServiceLocator class PreviewPanelPresenter(object): def __init__(self, workspace): self.workspace = workspace self.main_window = ServiceLocator.get_main_window() self.notebook = self.main_window.preview_panel.notebook self.workspace.connect('new_document', self.on_new_document) self.workspace.connect('document_removed', self.on_document_removed) self.workspace.connect('new_active_document', self.on_new_active_document) self.workspace.connect('root_state_change', self.on_root_state_change) self.activate_blank_page() def on_new_document(self, workspace, document): if document.is_latex_document(): self.notebook.append_page(document.preview.view, None) def on_document_removed(self, workspace, document): if document.is_latex_document(): self.notebook.remove(document.preview.view) def on_new_active_document(self, workspace, document): self.set_preview_document() def on_root_state_change(self, workspace, root_state): self.set_preview_document() def activate_blank_page(self): self.notebook.set_current_page(0) def set_preview_document(self): if self.workspace.get_active_document() == None: self.activate_blank_page() else: if self.workspace.root_document != None: document = self.workspace.root_document self.notebook.set_current_page(self.notebook.page_num(document.preview.view)) elif self.workspace.active_document.is_latex_document(): document = self.workspace.active_document self.notebook.set_current_page(self.notebook.page_num(document.preview.view)) else: self.activate_blank_page() Setzer-0.4.4/setzer/workspace/preview_panel/preview_panel_viewgtk.py000066400000000000000000000025501420322575300261240ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class PreviewPanelView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('preview') self.notebook = Gtk.Notebook() self.notebook.set_show_tabs(False) self.notebook.set_show_border(False) self.notebook.insert_page(Gtk.DrawingArea(), None, 0) self.pack_start(self.notebook, True, True, 0) self.show_all() def do_get_request_mode(self): return Gtk.SizeRequestMode.CONSTANT_SIZE def do_get_preferred_width(self): return 300, 500 Setzer-0.4.4/setzer/workspace/shortcutsbar/000077500000000000000000000000001420322575300210335ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/shortcutsbar/__init__.py000066400000000000000000000000001420322575300231320ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/shortcutsbar/bibtex_shortcutsbar/000077500000000000000000000000001420322575300251135ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/shortcutsbar/bibtex_shortcutsbar/__init__.py000066400000000000000000000000001420322575300272120ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/shortcutsbar/bibtex_shortcutsbar/bibtex_shortcutsbar_viewgtk.py000066400000000000000000000103561420322575300333120ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib class BibTeXShortcutsbar(Gtk.HBox): def __init__(self): Gtk.HBox.__init__(self) self.get_style_context().add_class('shortcutsbar') self.current_bottom = None self.create_top_toolbar() self.populate_top_toolbar() self.pack_start(self.top_icons, True, True, 0) def create_top_toolbar(self): self.top_icons = Gtk.Toolbar() self.top_icons.set_style(Gtk.ToolbarStyle.ICONS) self.top_icons.set_orientation(Gtk.Orientation.HORIZONTAL) self.top_icons.set_icon_size(Gtk.IconSize.SMALL_TOOLBAR) def populate_top_toolbar(self): self.entry_button = Gtk.ToolButton() icon_widget = Gtk.HBox() icon = Gtk.Image.new_from_icon_name('list-add-symbolic', Gtk.IconSize.MENU) icon.set_margin_left(4) icon_widget.pack_start(icon, False, False, 0) label_revealer = Gtk.Revealer() label = Gtk.Label(_('Create New Entry')) label.set_margin_left(5) label.set_margin_right(4) label_revealer.add(label) label_revealer.set_transition_type(Gtk.RevealerTransitionType.SLIDE_LEFT) label_revealer.set_reveal_child(True) icon_widget.pack_start(label_revealer, False, False, 0) self.entry_button.set_icon_widget(icon_widget) self.entry_button.set_action_name('win.create-new-bibtex-entry') self.entry_button.set_focus_on_click(False) self.entry_button.set_tooltip_text(_('Create a New BibTeX Entry')) self.top_icons.insert(self.entry_button, 0) self.entry_button = Gtk.ToolButton() icon_widget = Gtk.HBox() icon = Gtk.Image.new_from_icon_name('media-playlist-repeat-symbolic', Gtk.IconSize.MENU) icon.set_margin_left(4) icon_widget.pack_start(icon, False, False, 0) label_revealer = Gtk.Revealer() label = Gtk.Label(_('Previously Used Entries')) label.set_margin_left(6) label.set_margin_right(4) label_revealer.add(label) label_revealer.set_transition_type(Gtk.RevealerTransitionType.SLIDE_LEFT) label_revealer.set_reveal_child(True) icon_widget.pack_start(label_revealer, False, False, 0) self.entry_button.set_icon_widget(icon_widget) self.entry_button.set_action_name('win.show-previous-bibtex-entries') self.entry_button.set_focus_on_click(False) self.entry_button.set_tooltip_text(_('Add a Previously Used BibTeX Entry')) #self.top_icons.insert(self.entry_button, 0) self.entry_button = Gtk.ToolButton() icon_widget = Gtk.HBox() icon = Gtk.Image.new_from_icon_name('globe-alt-symbolic', Gtk.IconSize.MENU) icon.set_margin_left(4) icon_widget.pack_start(icon, False, False, 0) label_revealer = Gtk.Revealer() label = Gtk.Label(_('Search For Entries Online')) label.set_margin_left(6) label.set_margin_right(4) label_revealer.add(label) label_revealer.set_transition_type(Gtk.RevealerTransitionType.SLIDE_LEFT) label_revealer.set_reveal_child(True) icon_widget.pack_start(label_revealer, False, False, 0) self.entry_button.set_icon_widget(icon_widget) self.entry_button.set_action_name('win.search-online-for-bibtex-entries') self.entry_button.set_focus_on_click(False) self.entry_button.set_tooltip_text(_('Add a BibTeX Entry from an Online Database')) #self.top_icons.insert(self.entry_button, 0) Setzer-0.4.4/setzer/workspace/shortcutsbar/latex_shortcutsbar/000077500000000000000000000000001420322575300247535ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/shortcutsbar/latex_shortcutsbar/__init__.py000066400000000000000000000000001420322575300270520ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/shortcutsbar/latex_shortcutsbar/latex_shortcutsbar_viewgtk.py000066400000000000000000000711311420322575300330100ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib from gi.repository import Gio from setzer.app.service_locator import ServiceLocator class LaTeXShortcutsbar(Gtk.HBox): def __init__(self): Gtk.HBox.__init__(self) self.get_style_context().add_class('shortcutsbar') self.pmb = ServiceLocator.get_popover_menu_builder() self.current_bottom = None self.top_icons = self.create_toolbar() self.right_icons = self.create_toolbar() self.populate_top_toolbar() self.populate_right_toolbar() self.pack_start(self.top_icons, True, True, 0) self.pack_end(self.right_icons, False, False, 0) def create_toolbar(self): toolbar = Gtk.Toolbar() toolbar.set_style(Gtk.ToolbarStyle.ICONS) toolbar.set_orientation(Gtk.Orientation.HORIZONTAL) toolbar.set_icon_size(Gtk.IconSize.SMALL_TOOLBAR) return toolbar def populate_right_toolbar(self): self.button_build_log = Gtk.ToggleToolButton() self.button_build_log.set_icon_name('build-log-symbolic') self.button_build_log.set_tooltip_text(_('Build log') + ' (F8)') self.button_build_log.get_child().set_can_focus(False) self.right_icons.insert(self.button_build_log, 0) def populate_top_toolbar(self): self.italic_button = Gtk.ToolButton() self.italic_button.set_icon_name('format-text-italic-symbolic') self.italic_button.set_label(_('Italic Text')) self.italic_button.set_action_name('win.insert-before-after') self.italic_button.set_action_target_value(GLib.Variant('as', ['\\textit{', '}'])) self.italic_button.get_child().set_can_focus(False) self.italic_button.set_tooltip_text(_('Italic') + ' (' + _('Ctrl') + '+I)') self.top_icons.insert(self.italic_button, 0) self.bold_button = Gtk.ToolButton() self.bold_button.set_icon_name('format-text-bold-symbolic') self.bold_button.set_label(_('Bold Text')) self.bold_button.set_action_name('win.insert-before-after') self.bold_button.set_action_target_value(GLib.Variant('as', ['\\textbf{', '}'])) self.bold_button.get_child().set_can_focus(False) self.bold_button.set_tooltip_text(_('Bold') + ' (' + _('Ctrl') + '+B)') self.top_icons.insert(self.bold_button, 0) self.insert_quotes_button() self.insert_math_button() self.insert_text_button() self.insert_object_button() self.insert_bibliography_button() self.insert_document_button() def insert_document_button(self): popover = Gtk.PopoverMenu() self.document_button = Gtk.MenuButton() self.document_button.set_image(Gtk.Image.new_from_icon_name('application-x-addon-symbolic', Gtk.IconSize.MENU)) self.document_button.set_can_focus(False) self.document_button.set_tooltip_text(_('Document')) self.document_button.get_style_context().add_class('flat') self.document_button.set_popover(popover) button_wrapper = Gtk.ToolItem() button_wrapper.add(self.document_button) self.top_icons.insert(button_wrapper, 0) GLib.idle_add(self.populate_document_menu, priority=GLib.PRIORITY_LOW) def populate_document_menu(self): popover = self.document_button.get_popover() stack = popover.get_child() box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_action_button(box, '\\documentclass', 'win.insert-symbol', ['\\documentclass[•]{•}']) self.pmb.add_action_button(box, _('Add / Remove Packages') + '...', 'win.add-remove-packages-dialog') self.pmb.add_menu_button(box, _('Document Info'), 'document_info') self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Document Environment'), 'win.insert-before-after', ['\\begin{document}\n\t', '\n\\end{document}']) self.pmb.add_action_button(box, _('Show Title') + ' (\\maketitle)', 'win.insert-symbol', ['\\maketitle']) self.pmb.add_action_button(box, _('Table of Contents'), 'win.insert-symbol', ['\\tableofcontents']) self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Include LaTeX File') + ' (\\input)...', 'win.include-latex-file') stack.add_named(box, 'main') box.show_all() # document info submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Document Info')) self.pmb.add_action_button(box, _('Author'), 'win.insert-symbol', ['\\author{•}']) self.pmb.add_action_button(box, _('Title'), 'win.insert-symbol', ['\\title{•}']) self.pmb.add_action_button(box, _('Date'), 'win.insert-symbol', ['\\date{•}']) self.pmb.add_action_button(box, _('Date Today'), 'win.insert-symbol', ['\\date{\\today}']) stack.add_named(box, 'document_info') box.show_all() def insert_bibliography_button(self): popover = Gtk.PopoverMenu() self.bibliography_button = Gtk.MenuButton() self.bibliography_button.set_image(Gtk.Image.new_from_icon_name('view-dual-symbolic', Gtk.IconSize.MENU)) self.bibliography_button.set_can_focus(False) self.bibliography_button.set_tooltip_text(_('Bibliography')) self.bibliography_button.get_style_context().add_class('flat') self.bibliography_button.set_popover(popover) button_wrapper = Gtk.ToolItem() button_wrapper.add(self.bibliography_button) self.top_icons.insert(button_wrapper, 0) GLib.idle_add(self.populate_bibliography_menu, priority=GLib.PRIORITY_LOW) def populate_bibliography_menu(self): popover = self.bibliography_button.get_popover() stack = popover.get_child() box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_action_button(box, _('Include BibTeX File') + '...', 'win.include-bibtex-file') self.pmb.add_action_button(box, _('Include \'natbib\' Package'), 'win.add-packages', ['natbib']) self.pmb.add_separator(box) for citation_style in [(_('Citation'), '\\cite{•}'), (_('Citation with Page Number'), '\\cite[•]{•}')]: self.pmb.add_action_button(box, citation_style[0], 'win.insert-symbol', [citation_style[1]]) self.pmb.add_menu_button(box, _('Natbib Citations'), 'natbib_citations') self.pmb.add_action_button(box, _('Include non-cited BibTeX Entries with \'\\nocite\''), 'win.insert-before-document-end', ['\\nocite{*}']) stack.add_named(box, 'main') box.show_all() # natbib submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Natbib Citations')) for citation_style in [(_('Abbreviated'), '\\citet{•}'), (_('Abbreviated with Brackets'), '\\citep{•}'), (_('Detailed'), '\\citet*{•}'), (_('Detailed with Brackets'), '\\citep*{•}'), (_('Alternative 1'), '\\citealt{•}'), (_('Alternative 2'), '\\citealp{•}')]: self.pmb.add_action_button(box, citation_style[0], 'win.insert-symbol', [citation_style[1]]) self.pmb.add_separator(box) for citation_style in [(_('Cite Author'), '\\citeauthor{•}'), (_('Cite Author Detailed'), '\\citeauthor*{•}'), (_('Cite Year'), '\\citeyear{•}'), (_('Cite Year with Brackets'), '\\citeyearpar{•}')]: self.pmb.add_action_button(box, citation_style[0], 'win.insert-symbol', [citation_style[1]]) stack.add_named(box, 'natbib_citations') box.show_all() def insert_text_button(self): popover = Gtk.PopoverMenu() self.text_button = Gtk.MenuButton() self.text_button.set_image(Gtk.Image.new_from_icon_name('text-symbolic', Gtk.IconSize.MENU)) self.text_button.set_can_focus(False) self.text_button.set_tooltip_text(_('Text')) self.text_button.get_style_context().add_class('flat') self.text_button.set_popover(popover) button_wrapper = Gtk.ToolItem() button_wrapper.add(self.text_button) self.top_icons.insert(button_wrapper, 0) GLib.idle_add(self.populate_text_menu, priority=GLib.PRIORITY_LOW) def populate_text_menu(self): popover = self.text_button.get_popover() stack = popover.get_child() box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_menu_button(box, _('Font Styles'), 'font_styles') self.pmb.add_menu_button(box, _('Font Sizes'), 'font_sizes') self.pmb.add_menu_button(box, _('Alignment'), 'text_alignment') self.pmb.add_menu_button(box, _('Vertical Spacing'), 'vertical_spacing') self.pmb.add_menu_button(box, _('International Accents'), 'international_accents') self.pmb.add_separator(box) self.pmb.add_menu_button(box, _('Sectioning'), 'sectioning') self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Environment'), 'win.insert-before-after', ['\\begin{•}\n\t', '\n\\end{•}'], keyboard_shortcut=_('Ctrl') + '+E') self.pmb.add_action_button(box, _('Verbatim Environment'), 'win.insert-before-after', ['\\begin{verbatim}\n\t', '\n\\end{verbatim}']) self.pmb.add_menu_button(box, _('List Environments'), 'list_environments') self.pmb.add_menu_button(box, _('Quotations'), 'quotations') self.pmb.add_separator(box) self.pmb.add_menu_button(box, _('Cross References'), 'cross_references') self.pmb.add_action_button(box, _('Footnote'), 'win.insert-before-after', ['\\footnote{', '}']) stack.add_named(box, 'main') box.show_all() # font styles submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Font Styles')) for font_style in [(_('Bold') + ' (\\textbf)', 'textbf', 'format-text-bold-symbolic', _('Ctrl') + '+B'), (_('Italic') + ' (\\textit)', 'textit', 'format-text-italic-symbolic', _('Ctrl') + '+I'), (_('Underline') + ' (\\underline)', 'underline', 'format-text-underline-symbolic', _('Ctrl') + '+U'), (_('Sans Serif') + ' (\\textsf)', 'textsf', 'placeholder', None), (_('Typewriter') + ' (\\texttt)', 'texttt', 'placeholder', _('Ctrl') + '+M'), (_('Small Caps') + ' (\\textsc)', 'textsc', 'placeholder', None), (_('Slanted') + ' (\\textsl)', 'textsl', 'placeholder', None), (_('Emphasis') + ' (\\emph)', 'emph', 'placeholder', _('Shift') + '+' + _('Ctrl') + '+E')]: icon_name = font_style[2] self.pmb.add_action_button(box, font_style[0], 'win.insert-before-after', ['\\' + font_style[1] + '{', '}'], icon_name=icon_name, keyboard_shortcut=font_style[3]) stack.add_named(box, 'font_styles') box.show_all() # font sizes submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Font Sizes')) for font_size in ['tiny', 'scriptsize', 'footnotesize', 'small', 'normalsize', 'large', 'Large', 'LARGE', 'huge', 'Huge']: self.pmb.add_action_button(box, font_size, 'win.insert-before-after', ['{\\' + font_size + ' ', '}']) stack.add_named(box, 'font_sizes') box.show_all() # text alignment submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Alignment')) for command in [(_('Centered'), 'center', 'format-justify-center-symbolic'), (_('Left-aligned'), 'flushleft', 'format-justify-left-symbolic'), (_('Right-aligned'), 'flushright', 'format-justify-right-symbolic')]: self.pmb.add_action_button(box, command[0], 'win.insert-before-after', ['\\begin{' + command[1] + '}\n\t', '\n\\end{' + command[1] + '}'], icon_name=command[2]) stack.add_named(box, 'text_alignment') box.show_all() # vertical spacing submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Vertical Spacing')) for command in ['newpage', 'linebreak', 'pagebreak', 'bigskip', 'medskip', 'smallskip']: self.pmb.add_action_button(box, '\\' + command, 'win.insert-symbol', ['\\' + command]) self.pmb.add_action_button(box, '\\vspace', 'win.insert-symbol', ['\\vspace{•}']) self.pmb.add_action_button(box, _('New Line')+ ' (\\\\)', 'win.insert-symbol', ['\\\\\n'], keyboard_shortcut=_('Ctrl') + '+Return') stack.add_named(box, 'vertical_spacing') box.show_all() # international accents submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('International Accents')) for command in [('\'', 'menu-accents-1-symbolic'), ('`', 'menu-accents-2-symbolic'), ('^', 'menu-accents-3-symbolic'), ('"', 'menu-accents-4-symbolic'), ('~', 'menu-accents-5-symbolic'), ('=', 'menu-accents-6-symbolic'), ('.', 'menu-accents-7-symbolic'), ('v', 'menu-accents-8-symbolic'), ('u', 'menu-accents-9-symbolic'), ('H', 'menu-accents-10-symbolic')]: self.pmb.add_action_button(box, '\\' + command[0] + '{}', 'win.insert-before-after', ['\\' + command[0] + '{', '}'], icon_name=command[1]) stack.add_named(box, 'international_accents') box.show_all() # sectioning submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Sectioning')) for citation_style in [(_('Part'), '\\part{•}'), (_('Chapter'), '\\chapter{•}'), (_('Section'), '\\section{•}'), (_('Subsection'), '\\subsection{•}'), (_('Subsubsection'), '\\subsubsection{•}'), (_('Paragraph'), '\\paragraph{•}'), (_('Subparagraph'), '\\subparagraph{•}')]: self.pmb.add_action_button(box, citation_style[0], 'win.insert-symbol', [citation_style[1]]) self.pmb.add_separator(box) for citation_style in [(_('Part') + '*', '\\part*{•}'), (_('Chapter')+'*', '\\chapter*{•}'), (_('Section')+'*', '\\section*{•}'), (_('Subsection')+'*', '\\subsection*{•}'), (_('Subsubsection')+'*', '\\subsubsection*{•}'), (_('Paragraph')+'*', '\\paragraph*{•}'), (_('Subparagraph')+'*', '\\subparagraph*{•}')]: self.pmb.add_action_button(box, citation_style[0], 'win.insert-symbol', [citation_style[1]]) stack.add_named(box, 'sectioning') box.show_all() # list environments submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('List Environments')) for list_type in [[_('Bulleted List') + ' (itemize)', 'itemize'], [_('Numbered List') + ' (enumerate)', 'enumerate'], [_('List with Bold Labels') + ' (description)', 'description']]: self.pmb.add_action_button(box, list_type[0], 'win.insert-before-after', ['\\begin{' + list_type[1] + '}\n\t', '\n\\end{' + list_type[1] + '}']) self.pmb.add_separator(box) self.pmb.add_action_button(box, _('List Item'), 'win.insert-symbol', ['\\item •'], keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+I') stack.add_named(box, 'list_environments') box.show_all() # quotations submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Quotations')) self.pmb.add_action_button(box, _('Short Quotation') + ' (quote)', 'win.insert-before-after', ['\\begin{quote}\n\t', '\n\\end{quote}']) self.pmb.add_action_button(box, _('Longer Quotation') + ' (quotation)', 'win.insert-before-after', ['\\begin{quotation}\n\t', '\n\\end{quotation}']) self.pmb.add_action_button(box, _('Poetry Quotation') + ' (verse)', 'win.insert-before-after', ['\\begin{verse}\n\t', '\n\\end{verse}']) stack.add_named(box, 'quotations') box.show_all() # cross references submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Cross References')) for command in [(_('Label') + ' (\\label)', 'label'), (_('Reference') + ' (\\ref)', 'ref'), (_('Equation Reference') + ' (\\eqref)', 'eqref'), (_('Page Reference') + ' (\\pageref)', 'pageref')]: self.pmb.add_action_button(box, command[0], 'win.insert-symbol', ['\\' + command[1] + '{•}']) stack.add_named(box, 'cross_references') box.show_all() def insert_quotes_button(self): popover = Gtk.PopoverMenu() button_wrapper = Gtk.ToolItem() self.quotes_button = Gtk.MenuButton() self.quotes_button.set_direction(Gtk.ArrowType.DOWN) self.quotes_button.set_image(Gtk.Image.new_from_icon_name('own-quotes-symbolic', Gtk.IconSize.MENU)) self.quotes_button.set_popover(popover) self.quotes_button.set_can_focus(False) self.quotes_button.set_tooltip_text(_('Quotes') + ' (' + _('Ctrl') + '+")') self.quotes_button.get_style_context().add_class('flat') button_wrapper.add(self.quotes_button) self.quotes_button.get_popover().get_style_context().add_class('menu-own-quotes-symbolic') self.top_icons.insert(button_wrapper, 0) GLib.idle_add(self.populate_quotes_menu, priority=GLib.PRIORITY_LOW) def populate_quotes_menu(self): popover = self.quotes_button.get_popover() stack = popover.get_child() box = Gtk.VBox() self.pmb.set_box_margin(box) for item in [(_('Primary Quotes') + ' (`` ... \'\')', ['``', '\'\'']), (_('Secondary Quotes') + ' (` ... \')', ['`', '\'']), (_('German Quotes') + ' (\\glqq ... \\grqq{})', ['\\glqq ', '\\grqq{}']), (_('German Single Quotes') + ' (\\glq ... \\grq{})', ['\\glq ', '\\grq{}']), (_('French Quotes') + ' (\\flqq ... \\frqq{})', ['\\flqq ', '\\frqq{}']), (_('French Single Quotes') + ' (\\flq ... \\frq{})', ['\\flq ', '\\frq{}']), (_('German Alt Quotes') + ' (\\frqq ... \\flqq{})', ['\\frqq ', '\\flqq{}']), (_('German Alt Single Quotes') + ' (\\frq ... \\frq{})', ['\\frq ', '\\flq{}'])]: self.pmb.add_action_button(box, item[0], 'win.insert-before-after', item[1]) stack.add_named(box, 'main') box.show_all() def insert_math_button(self): popover = Gtk.PopoverMenu() self.math_button = Gtk.MenuButton() self.math_button.set_image(Gtk.Image.new_from_icon_name('own-math-menu-symbolic', Gtk.IconSize.MENU)) self.math_button.set_can_focus(False) self.math_button.set_tooltip_text(_('Math')) self.math_button.get_style_context().add_class('flat') self.math_button.set_popover(popover) button_wrapper = Gtk.ToolItem() button_wrapper.add(self.math_button) self.top_icons.insert(button_wrapper, 0) GLib.idle_add(self.populate_math_menu, priority=GLib.PRIORITY_LOW) def populate_math_menu(self): popover = self.math_button.get_popover() stack = popover.get_child() # main menu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_action_button(box, _('Include AMS Packages'), 'win.add-packages', ['amsmath', 'amssymb', 'amsfonts', 'amsthm']) self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Inline Math Section') + ' ($ ... $)', 'win.insert-before-after', ['$ ', ' $'], keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+M') self.pmb.add_action_button(box, _('Display Math Section') + ' (\\[ ... \\])', 'win.insert-before-after', ['\\[ ', ' \\]'], keyboard_shortcut=_('Shift') + '+Alt' + '+M') self.pmb.add_menu_button(box, _('Math Environments'), 'math_environments') self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Subscript') + ' (_{})', 'win.insert-before-after', ['_{', '}'], keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+D') self.pmb.add_action_button(box, _('Superscript') + ' (^{})', 'win.insert-before-after', ['^{', '}'], keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+U') self.pmb.add_action_button(box, _('Fraction') + ' (\\frac)', 'win.insert-symbol', ['\\frac{•}{•}'], keyboard_shortcut=_('Shift') + '+Alt' + '+F') self.pmb.add_action_button(box, _('Square Root') + ' (\\sqrt)', 'win.insert-before-after', ['\\sqrt{', '}'], keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+Q') self.pmb.add_action_button(box, '\\left', 'win.insert-symbol', ['\\left •'], keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+L') self.pmb.add_action_button(box, '\\right', 'win.insert-symbol', ['\\right •'], keyboard_shortcut=_('Shift') + '+' + _('Ctrl') + '+R') self.pmb.add_separator(box) self.pmb.add_menu_button(box, _('Math Functions'), 'math_functions') self.pmb.add_menu_button(box, _('Math Font Styles'), 'math_font_styles') self.pmb.add_menu_button(box, _('Math Stacking Symbols'), 'math_stacking_symbols') self.pmb.add_menu_button(box, _('Math Accents'), 'math_accents') self.pmb.add_menu_button(box, _('Math Spaces'), 'math_spaces') stack.add_named(box, 'main') box.show_all() # submenu: math environments box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Math Environments')) for environment in ['equation', 'equation*', 'align', 'align*', 'alignat', 'alignat*', 'flalign', 'flalign*', 'gather', 'gather*', 'multline', 'multline*']: self.pmb.add_action_button(box, environment, 'win.insert-before-after', ['\\begin{' + environment + '}\n\t', '\n\\end{' + environment + '}'], keyboard_shortcut=(_('Shift') + '+' + _('Ctrl') + '+N' if environment == 'equation' else None)) stack.add_named(box, 'math_environments') box.show_all() # submenu: math functions box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Math Functions')) hbox = Gtk.HBox() vbox = Gtk.VBox() for math_function in ['arccos', 'arcsin', 'arctan', 'cos', 'cosh', 'cot', 'coth', 'csc', 'deg', 'det', 'dim', 'exp', 'gcd', 'hom', 'inf']: self.pmb.add_action_button(vbox, '\\' + math_function, 'win.insert-symbol', ['\\' + math_function + ' ']) hbox.pack_start(vbox, True, True, 0) vbox = Gtk.VBox() for math_function in ['ker', 'lg', 'lim', 'liminf', 'limsup', 'ln', 'log', 'max', 'min', 'sec', 'sin', 'sinh', 'sup', 'tan', 'tanh']: self.pmb.add_action_button(vbox, '\\' + math_function, 'win.insert-symbol', ['\\' + math_function + ' ']) hbox.pack_start(vbox, True, True, 0) box.pack_start(hbox, False, False, 0) stack.add_named(box, 'math_functions') box.show_all() # submenu: math font styles box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Math Font Styles')) for command in [(_('Bold'), 'mathbf', 'menu-math-font-styles-1-symbolic'), (_('Italic'), 'mathit', 'menu-math-font-styles-2-symbolic'), (_('Roman'), 'mathrm', 'menu-math-font-styles-3-symbolic'), (_('Sans Serif'), 'mathsf', 'menu-math-font-styles-4-symbolic'), (_('Typewriter'), 'mathtt', 'menu-math-font-styles-5-symbolic'), (_('Calligraphic'), 'mathcal', 'menu-math-font-styles-6-symbolic'), (_('Blackboard Bold'), 'mathbb', 'menu-math-font-styles-7-symbolic'), (_('Fraktur'), 'mathfrak', 'menu-math-font-styles-8-symbolic')]: self.pmb.add_action_button(box, command[0] + ' (\\' + command[1] + ')', 'win.insert-before-after', ['\\' + command[1] + '{', '}'], icon_name=command[2]) stack.add_named(box, 'math_font_styles') box.show_all() # submenu: math stacking symbols box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Math Stacking Symbols')) for math_stacking_symbol in ['overline', 'underline', 'overbrace', 'underbrace', 'overleftarrow', 'overrightarrow']: self.pmb.add_action_button(box, '\\' + math_stacking_symbol + '{}', 'win.insert-before-after', ['\\' + math_stacking_symbol + '{', '}']) for math_stacking_symbol in ['stackrel', 'overset', 'underset']: self.pmb.add_action_button(box, '\\' + math_stacking_symbol + '{}{}', 'win.insert-before-after', ['\\' + math_stacking_symbol + '{•}{', '}']) self.pmb.add_separator(box) for environment in ['cases', 'split']: self.pmb.add_action_button(box, environment, 'win.insert-before-after', ['\\begin{' + environment + '}\n\t', '\n\\end{' + environment + '}']) stack.add_named(box, 'math_stacking_symbols') box.show_all() # submenu: math accents box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Math Accents')) for math_accent in [('dot', 'menu-math-accents-1-symbolic'), ('ddot', 'menu-math-accents-2-symbolic'), ('vec', 'menu-math-accents-3-symbolic'), ('bar', 'menu-math-accents-4-symbolic'), ('tilde', 'menu-math-accents-5-symbolic'), ('hat', 'menu-math-accents-6-symbolic'), ('check', 'menu-math-accents-7-symbolic'), ('breve', 'menu-math-accents-8-symbolic'), ('acute', 'menu-math-accents-9-symbolic'), ('grave', 'menu-math-accents-10-symbolic')]: self.pmb.add_action_button(box, '\\' + math_accent[0] + '{}', 'win.insert-before-after', ['\\' + math_accent[0] + '{', '}'], icon_name=math_accent[1]) stack.add_named(box, 'math_accents') box.show_all() # submenu: math spaces box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Math Spaces')) for math_space in [('\\!', 'Negative'), ('\\,', 'Thin'), ('\\:', 'Medium'), ('\\;', 'Thick'), ('\\ ', 'Interword'), ('\\enspace ', 'Enspace'), ('\\quad ', 'One Quad'), ('\\qquad ', 'Two Quads')]: self.pmb.add_action_button(box, math_space[1], 'win.insert-symbol', [math_space[0]]) stack.add_named(box, 'math_spaces') box.show_all() def insert_object_button(self): popover = Gtk.PopoverMenu() button_wrapper = Gtk.ToolItem() self.insert_object_button = Gtk.MenuButton() self.insert_object_button.set_direction(Gtk.ArrowType.DOWN) self.insert_object_button.set_image(Gtk.Image.new_from_icon_name('own-insert-object-symbolic', Gtk.IconSize.MENU)) self.insert_object_button.set_popover(popover) self.insert_object_button.set_can_focus(False) self.insert_object_button.set_tooltip_text(_('Objects')) self.insert_object_button.get_style_context().add_class('flat') button_wrapper.add(self.insert_object_button) self.insert_object_button.get_popover().get_style_context().add_class('menu-insert-object-symbolic') self.top_icons.insert(button_wrapper, 0) GLib.idle_add(self.populate_insert_object_menu, priority=GLib.PRIORITY_LOW) def populate_insert_object_menu(self): popover = self.insert_object_button.get_popover() stack = popover.get_child() # main menu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_action_button(box, _('Figure (image inside freestanding block)'), 'win.insert-symbol', ['\\begin{figure}\n\t\\begin{center}\n\t\t\\includegraphics[scale=1]{•}\n\t\t\\caption{•}\n\t\\end{center}\n\\end{figure}']) self.pmb.add_action_button(box, _('Inline Image'), 'win.insert-symbol', ['\\includegraphics[scale=1]{•}']) self.pmb.add_menu_button(box, _('Code Listing'), 'code_listing') stack.add_named(box, 'main') box.show_all() # code listing submenu box = Gtk.VBox() self.pmb.set_box_margin(box) self.pmb.add_header_button(box, _('Code Listing')) self.pmb.add_action_button(box, _('Include \'listings\' Package'), 'win.add-packages', ['listings']) self.pmb.add_separator(box) for language in ['Python', 'C', 'C++', 'Java', 'Perl', 'PHP', 'Ruby', 'TeX']: self.pmb.add_action_button(box, language, 'win.insert-before-after', ['\\lstset{language=' + language + '}\n\\begin{lstlisting}\n\t', '\n\\end{lstlisting}']) self.pmb.add_separator(box) self.pmb.add_action_button(box, _('Other Language'), 'win.insert-before-after', ['\\lstset{language=•}\n\\begin{lstlisting}\n\t', '\n\\end{lstlisting}']) self.pmb.add_action_button(box, _('Plain Text'), 'win.insert-before-after', ['\\begin{lstlisting}\n\t', '\n\\end{lstlisting}']) stack.add_named(box, 'code_listing') box.show_all() Setzer-0.4.4/setzer/workspace/shortcutsbar/others_shortcutsbar/000077500000000000000000000000001420322575300251425ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/shortcutsbar/others_shortcutsbar/__init__.py000066400000000000000000000000001420322575300272410ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/shortcutsbar/others_shortcutsbar/others_shortcutsbar_viewgtk.py000066400000000000000000000026631420322575300333720ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import GLib class OthersShortcutsbar(Gtk.HBox): def __init__(self): Gtk.HBox.__init__(self) self.get_style_context().add_class('shortcutsbar') self.current_bottom = None self.create_top_toolbar() self.populate_top_toolbar() self.pack_start(self.top_icons, True, True, 0) def create_top_toolbar(self): self.top_icons = Gtk.Toolbar() self.top_icons.set_style(Gtk.ToolbarStyle.ICONS) self.top_icons.set_orientation(Gtk.Orientation.HORIZONTAL) self.top_icons.set_icon_size(Gtk.IconSize.SMALL_TOOLBAR) def populate_top_toolbar(self): pass Setzer-0.4.4/setzer/workspace/shortcutsbar/shortcutsbar.py000066400000000000000000000065651420322575300241440ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.app.service_locator import ServiceLocator class Shortcutsbar(object): def __init__(self, workspace): self.workspace = workspace self.main_window = ServiceLocator.get_main_window() self.main_window.latex_shortcutsbar.button_build_log.set_active(self.workspace.get_show_build_log()) self.main_window.latex_shortcutsbar.button_build_log.connect('clicked', self.on_build_log_button_clicked) self.main_window.latex_shortcutsbar.button_build_log.get_child().set_sensitive(False) self.workspace.connect('document_removed', self.on_document_removed) self.workspace.connect('new_active_document', self.on_new_active_document) self.workspace.connect('new_inactive_document', self.on_new_inactive_document) self.workspace.connect('show_build_log_state_change', self.on_show_build_log_state_change) def on_document_removed(self, workspace, document): if self.workspace.active_document == None: self.main_window.latex_shortcutsbar.button_build_log.get_child().set_sensitive(False) def on_new_active_document(self, workspace, document): if document.is_latex_document(): self.update_shortcutsbar(self.main_window.latex_shortcutsbar) self.main_window.latex_shortcutsbar.top_icons.insert(document.view.wizard_button, 0) self.main_window.latex_shortcutsbar.button_build_log.get_child().set_sensitive(True) elif document.is_bibtex_document(): self.update_shortcutsbar(self.main_window.bibtex_shortcutsbar) self.main_window.latex_shortcutsbar.button_build_log.get_child().set_sensitive(False) else: self.update_shortcutsbar(self.main_window.others_shortcutsbar) self.main_window.latex_shortcutsbar.button_build_log.get_child().set_sensitive(False) def on_new_inactive_document(self, workspace, document): if document.is_latex_document(): self.main_window.latex_shortcutsbar.top_icons.remove(document.view.wizard_button) def on_show_build_log_state_change(self, workspace, show_build_log): self.main_window.latex_shortcutsbar.button_build_log.set_active(show_build_log) def update_shortcutsbar(self, shortcutsbar): document = self.workspace.active_document if shortcutsbar.current_bottom != None: shortcutsbar.remove(shortcutsbar.current_bottom) shortcutsbar.current_bottom = document.view.shortcutsbar_bottom shortcutsbar.pack_end(document.view.shortcutsbar_bottom, False, False, 0) def on_build_log_button_clicked(self, toggle_button, parameter=None): self.workspace.set_show_build_log(toggle_button.get_active()) Setzer-0.4.4/setzer/workspace/sidebar/000077500000000000000000000000001420322575300177215ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/sidebar/__init__.py000066400000000000000000000000001420322575300220200ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/sidebar/sidebar.py000066400000000000000000000023051420322575300217040ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk import setzer.workspace.sidebar.symbols_page.symbols_page as symbols_page from setzer.app.service_locator import ServiceLocator class Sidebar(object): def __init__(self, workspace): self.view = ServiceLocator.get_main_window().sidebar self.workspace = workspace self.symbols_page = symbols_page.SymbolsPage(workspace) self.view.append_page(self.symbols_page.view, Gtk.Label(_('Symbols'))) Setzer-0.4.4/setzer/workspace/sidebar/sidebar_viewgtk.py000066400000000000000000000017141420322575300234470ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class Sidebar(Gtk.Notebook): def __init__(self): Gtk.Notebook.__init__(self) self.get_style_context().add_class('sidebar') self.set_show_tabs(False) Setzer-0.4.4/setzer/workspace/sidebar/symbols_page/000077500000000000000000000000001420322575300224055ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/sidebar/symbols_page/__init__.py000066400000000000000000000000001420322575300245040ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/sidebar/symbols_page/symbols_page.py000066400000000000000000000327161420322575300254540ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk from gi.repository import Gdk from gi.repository import Gio from gi.repository import GLib from gi.repository import GObject import setzer.workspace.sidebar.symbols_page.symbols_page_viewgtk as symbols_page_view from setzer.app.service_locator import ServiceLocator import setzer.helpers.timer as timer import math import time import xml.etree.ElementTree as ET import os class SymbolsPage(object): def __init__(self, workspace): self.view = symbols_page_view.SymbolsPageView() self.workspace = workspace self.scroll_to = None self.recent = ServiceLocator.get_settings().get_value('app_recent_symbols', 'symbols') self.recent_details = list() self.recent_view_size = None self.update_recent_widget() self.view.show_all() for symbols_list_view in self.view.symbols_views: symbols_list_view.connect('size-allocate', self.on_symbols_view_size_allocate) symbols_list_view.connect('button-press-event', self.on_flowbox_clicked, symbols_list_view) self.view.vbox.connect('size-allocate', self.on_scroll_or_resize) self.view.scrolled_window.get_vadjustment().connect('value-changed', self.on_scroll_or_resize) self.view.next_button.connect('clicked', self.on_next_button_clicked) self.view.prev_button.connect('clicked', self.on_prev_button_clicked) self.view.search_button.connect('toggled', self.on_search_button_toggled) self.view.search_close_button.connect('clicked', self.on_search_close_button_clicked) self.view.search_entry.connect('stop-search', self.on_search_stopped) self.view.search_entry.connect('search-changed', self.on_search_changed) self.update_symbols() def update_recent_widget(self): for item in [item for item in self.recent]: self.add_recent_symbol_to_flowbox(item) self.view.symbols_view_recent.connect('button-press-event', self.on_recent_widget_clicked) self.view.symbols_view_recent.connect('size-allocate', self.on_recent_view_size_allocate) def on_recent_widget_clicked(self, flowbox, event): if event.button != 1: return child = flowbox.get_child_at_pos(event.x, event.y) if child != None and self.workspace.active_document != None: self.workspace.get_active_document().content.insert_text_at_cursor(self.recent_details[- child.get_index() - 1][1]) self.workspace.get_active_document().content.scroll_cursor_onscreen() self.add_recent_symbol(self.recent[- child.get_index() - 1]) return True def remove_recent_symbol(self, item): self.recent.remove(item) for symbol in [symbol for symbol in self.recent_details]: if item[1] == symbol[1]: self.view.symbols_view_recent.remove(symbol[5]) self.recent_details.remove(symbol) def add_recent_symbol(self, new_item): for item in [item for item in self.recent]: if item[1] == new_item[1]: self.remove_recent_symbol(item) if len(self.recent) >= 20: self.remove_recent_symbol(self.recent[0]) self.recent.append(new_item) self.add_recent_symbol_to_flowbox(new_item) def add_recent_symbol_to_flowbox(self, item): (category, command) = item xml_tree = ET.parse(os.path.join(ServiceLocator.get_resources_path(), 'symbols', category + '.xml')) xml_root = xml_tree.getroot() elements = xml_root.findall('./symbol[@command=\'' + command + '\']') if len(elements) == 0: self.remove_recent_symbol(item) else: attrib = elements[0].attrib symbol = [attrib['file'].rsplit('.')[0], attrib['command'], attrib.get('package', None), int(attrib.get('original_width', 10)), int(attrib.get('original_height', 10))] size = max(symbol[3], symbol[4]) image = Gtk.Image.new_from_icon_name('sidebar-' + symbol[0] + '-symbolic', 0) image.set_pixel_size(int(size * 1.5)) tooltip_text = symbol[1] if symbol[2] != None: tooltip_text += ' (' + _('Package') + ': ' + symbol[2] + ')' image.set_tooltip_text(tooltip_text) image.show_all() symbol.append(image) self.recent_details.append(symbol) self.view.symbols_view_recent.insert(image, 0) self.view.queue_draw() def on_scroll_or_resize(self, *args): scrolling_offset = self.view.scrolled_window.get_vadjustment().get_value() if scrolling_offset == 0: self.view.prev_button.set_sensitive(False) else: self.view.prev_button.set_sensitive(True) final_label_offset = self.view.vbox.get_allocated_height() - self.view.symbols_views[0].get_allocated_height() if scrolling_offset >= final_label_offset: self.view.next_button.set_sensitive(False) else: self.view.next_button.set_sensitive(True) self.update_labels() def update_labels(self): offset = self.view.symbols_view_recent.get_allocated_height() + self.view.label_recent.get_allocated_height() + 1 scrolling_offset = self.view.scrolled_window.get_vadjustment().get_value() self.view.tabs_box.get_style_context().remove_class('no-border') for key, symbols_view in enumerate(reversed(self.view.symbols_views)): label = self.view.labels[len(self.view.symbols_views) - key - 1] margin_top = max(0, offset - int(scrolling_offset)) label.set_margin_top(margin_top) if margin_top > 0 and margin_top <= label.get_allocated_height(): self.view.tabs_box.get_style_context().add_class('no-border') offset += symbols_view.get_allocated_height() + label.get_allocated_height() + 1 def on_next_button_clicked(self, button): offset = self.view.symbols_view_recent.get_allocated_height() + self.view.label_recent.get_allocated_height() + 1 scrolling_offset = self.view.scrolled_window.get_vadjustment().get_value() if scrolling_offset < offset: self.scroll_view(offset) return for key, symbols_view in enumerate(reversed(self.view.symbols_views)): label = self.view.labels[len(self.view.symbols_views) - key - 1] if offset >= scrolling_offset - (symbols_view.get_allocated_height() + label.get_allocated_height()): new_offset = offset + (symbols_view.get_allocated_height() + label.get_allocated_height()) + 1 if key < len(self.view.symbols_views) - 1: self.scroll_view(new_offset) break offset += symbols_view.get_allocated_height() + label.get_allocated_height() + 1 def on_prev_button_clicked(self, button): offset = self.view.symbols_view_recent.get_allocated_height() + self.view.label_recent.get_allocated_height() + 1 old_offset = offset scrolling_offset = self.view.scrolled_window.get_vadjustment().get_value() if scrolling_offset <= offset: self.scroll_view(0) return for key, symbols_view in enumerate(reversed(self.view.symbols_views)): label = self.view.labels[len(self.view.symbols_views) - key - 1] if offset >= scrolling_offset - (symbols_view.get_allocated_height() + label.get_allocated_height()): if offset == int(scrolling_offset): new_offset = old_offset else: new_offset = offset self.scroll_view(new_offset) break old_offset = offset offset += symbols_view.get_allocated_height() + label.get_allocated_height() + 1 def on_search_button_toggled(self, button): if button.get_active(): self.view.search_entry.set_text('') self.view.search_revealer.set_reveal_child(True) self.view.search_entry.grab_focus() else: self.view.search_entry.set_text('') self.view.search_revealer.set_reveal_child(False) document = self.workspace.get_active_document() if document != None: document.content.source_view.grab_focus() def on_search_close_button_clicked(self, button): self.view.search_button.set_active(False) def on_search_stopped(self, entry): self.view.search_button.set_active(False) def on_search_changed(self, entry): self.update_symbols() def update_symbols(self): search_words = self.view.search_entry.get_text().split() for symbols_view in reversed(self.view.symbols_views): for symbol in symbols_view.visible_symbols: symbols_view.remove(symbol[5]) symbols_view.visible_symbols = [] for symbol in symbols_view.symbols: image = symbol[5] symbol_found = True for word in search_words: if symbol[0].find(word) == -1: symbol_found = False if symbol_found: symbols_view.visible_symbols.append(symbol) symbols_view.insert(image, -1) symbols_view.show_all() self.update_borders(symbols_view, symbols_view.get_allocated_width()) def on_flowbox_clicked(self, flowbox, event, symbols_view): if event.button != 1: return child = flowbox.get_child_at_pos(event.x, event.y) if child != None and self.workspace.active_document != None: self.workspace.get_active_document().content.insert_text_at_cursor(symbols_view.visible_symbols[child.get_index()][1]) self.workspace.get_active_document().content.scroll_cursor_onscreen() self.add_recent_symbol((flowbox.symbol_folder, symbols_view.visible_symbols[child.get_index()][1])) return True ''' *** manage borders of images ''' def on_symbols_view_size_allocate(self, symbols_view, allocation, data=None): if symbols_view.size != (allocation.width, allocation.height): symbols_view.size = (allocation.width, allocation.height) self.update_borders(symbols_view, allocation.width) def update_borders(self, symbols_view, width_available): width_with_border = symbols_view.symbol_width + 11 symbols_per_line = int((width_available) / width_with_border) if symbols_per_line == 0 or len(symbols_view.visible_symbols) == 0: return for number, image in enumerate(symbols_view.visible_symbols): if (number % symbols_per_line) == symbols_per_line - 1: image[5].get_style_context().add_class('no_right_border') else: image[5].get_style_context().remove_class('no_right_border') def on_recent_view_size_allocate(self, recent_view, allocation, data=None): if self.recent_view_size != (allocation.width, allocation.height): self.recent_view_size = (allocation.width, allocation.height) for number, recent_symbol in enumerate(self.recent_details): image = recent_symbol[5] image.get_style_context().remove_class('no_right_border') for offset in range(max(0, allocation.height) // 20 + 1): widget = recent_view.get_child_at_pos(allocation.width - 1, offset * 20) if widget != None: widget.get_child().get_style_context().add_class('no_right_border') def scroll_view(self, position, duration=0.2): adjustment = self.view.scrolled_window.get_vadjustment() self.scroll_to = {'position_start': adjustment.get_value(), 'position_end': position, 'time_start': time.time(), 'duration': duration} self.view.scrolled_window.set_kinetic_scrolling(False) GObject.timeout_add(15, self.do_scroll) def do_scroll(self): if self.scroll_to != None: adjustment = self.view.scrolled_window.get_vadjustment() time_elapsed = time.time() - self.scroll_to['time_start'] if self.scroll_to['duration'] == 0: time_elapsed_percent = 1 else: time_elapsed_percent = time_elapsed / self.scroll_to['duration'] if time_elapsed_percent >= 1: adjustment.set_value(self.scroll_to['position_end']) self.scroll_to = None self.view.scrolled_window.set_kinetic_scrolling(True) return False else: adjustment.set_value(self.scroll_to['position_start'] * (1 - self.ease(time_elapsed_percent)) + self.scroll_to['position_end'] * self.ease(time_elapsed_percent)) return True return False def ease(self, time): return (time - 1)**3 + 1 Setzer-0.4.4/setzer/workspace/sidebar/symbols_page/symbols_page_viewgtk.py000066400000000000000000000176131420322575300272130ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gdk from gi.repository import Gtk from setzer.app.service_locator import ServiceLocator import xml.etree.ElementTree as ET import os class SymbolsPageView(Gtk.VBox): def __init__(self): Gtk.VBox.__init__(self) self.get_style_context().add_class('sidebar-symbols') self.overlay = Gtk.Overlay() self.vbox_top = Gtk.VBox() self.scrolled_window = Gtk.ScrolledWindow() self.vbox = Gtk.VBox() self.scrolled_window.add(self.vbox) self.tabs_box = Gtk.HBox() self.tabs_box.set_valign(Gtk.Align.START) self.tabs_box.set_halign(Gtk.Align.FILL) self.tabs_box.get_style_context().add_class('tabs-box') self.tabs = Gtk.Toolbar() self.tabs.set_style(Gtk.ToolbarStyle.ICONS) self.tabs.set_orientation(Gtk.Orientation.HORIZONTAL) self.tabs.set_icon_size(Gtk.IconSize.SMALL_TOOLBAR) self.prev_button = Gtk.ToolButton() self.prev_button.set_icon_name('go-up-symbolic') self.prev_button.set_focus_on_click(False) self.prev_button.set_tooltip_text(_('Back')) self.tabs.insert(self.prev_button, -1) self.next_button = Gtk.ToolButton() self.next_button.set_icon_name('go-down-symbolic') self.next_button.set_focus_on_click(False) self.next_button.set_tooltip_text(_('Forward')) self.tabs.insert(self.next_button, -1) self.search_button = Gtk.ToggleToolButton() self.search_button.set_icon_name('edit-find-symbolic') self.search_button.set_focus_on_click(False) self.search_button.set_tooltip_text(_('Find')) self.tabs.insert(self.search_button, -1) self.search_revealer = Gtk.Revealer() self.search_box = Gtk.HBox() self.search_box.get_style_context().add_class('search_bar') self.search_entry = Gtk.SearchEntry() self.search_box.pack_start(self.search_entry, True, True, 0) self.search_close_button = Gtk.Button.new_from_icon_name('window-close-symbolic', Gtk.IconSize.MENU) self.search_close_button.get_style_context().add_class('flat') self.search_close_button.set_can_focus(False) self.search_box.pack_start(self.search_close_button, False, False, 0) self.search_revealer.add(self.search_box) self.tabs_box.pack_end(self.tabs, False, False, 0) self.vbox_top.pack_start(self.tabs_box, False, False, 0) self.vbox_top.pack_start(self.scrolled_window, True, True, 0) self.overlay.add(self.vbox_top) self.pack_start(self.overlay, True, True, 0) self.pack_start(self.search_revealer, False, False, 0) self.labels = list() self.symbols_views = list() self.label_recent = Gtk.Label(_('Recent')) self.label_recent.set_xalign(0) self.label_recent.set_halign(Gtk.Align.START) self.label_recent.set_valign(Gtk.Align.START) self.label_recent.set_size_request(108, -1) self.label_recent.get_style_context().add_class('overlay') self.overlay.add_overlay(self.label_recent) self.overlay.reorder_overlay(self.label_recent, 0) self.overlay.set_overlay_pass_through(self.label_recent, True) self.symbols_view_recent = Gtk.FlowBox() self.symbols_view_recent.set_homogeneous(False) self.symbols_view_recent.set_valign(Gtk.Align.START) self.symbols_view_recent.set_max_children_per_line(20) self.vbox.pack_start(self.symbols_view_recent, False, False, 0) self.symbols_lists = list() self.symbols_lists.append(['greek_letters', 'own-symbols-greek-letters-symbolic', _('Greek Letters'), 'SidebarSymbolsList("greek_letters", 25)']) self.symbols_lists.append(['arrows', 'own-symbols-arrows-symbolic', _('Arrows'), 'SidebarSymbolsList("arrows", 48)']) self.symbols_lists.append(['relations', 'own-symbols-relations-symbolic', _('Relations'), 'SidebarSymbolsList("relations", 39)']) self.symbols_lists.append(['operators', 'own-symbols-operators-symbolic', _('Operators'), 'SidebarSymbolsList("operators", 47)']) self.symbols_lists.append(['misc_math', 'own-symbols-misc-math-symbolic', _('Misc. Math'), 'SidebarSymbolsList("misc_math", 42)']) self.symbols_lists.append(['misc_text', 'own-symbols-misc-text-symbolic', _('Misc. Symbols'), 'SidebarSymbolsList("misc_text", 38)']) self.init_symbols_lists() def init_symbols_lists(self): for symbols_list in reversed(self.symbols_lists): symbols_list_view = eval(symbols_list[3]) label = Gtk.Label(symbols_list[2]) label.set_xalign(0) label.set_halign(Gtk.Align.START) label.set_valign(Gtk.Align.START) label.set_size_request(108, -1) label.get_style_context().add_class('overlay') self.overlay.add_overlay(label) self.overlay.reorder_overlay(label, 1) self.overlay.set_overlay_pass_through(label, True) self.labels.append(label) self.symbols_views.append(symbols_list_view) self.vbox.pack_end(symbols_list_view, False, False, 0) placeholder = Gtk.Label(symbols_list[2]) placeholder.set_xalign(0) self.vbox.pack_end(placeholder, False, False, 0) def do_get_request_mode(self): return Gtk.SizeRequestMode.CONSTANT_SIZE def do_get_preferred_width(self): return 234, 300 class SidebarSymbolsList(Gtk.FlowBox): def __init__(self, symbol_folder, symbol_width): Gtk.FlowBox.__init__(self) self.symbol_folder = symbol_folder self.symbol_width = symbol_width self.size = None # symbols: icon name, latex code self.symbols = list() self.visible_symbols = list() self.set_homogeneous(False) self.set_valign(Gtk.Align.START) self.set_max_children_per_line(20) xml_tree = ET.parse(os.path.join(ServiceLocator.get_resources_path(), 'symbols', symbol_folder + '.xml')) xml_root = xml_tree.getroot() for symbol_tag in xml_root: self.symbols.append([symbol_tag.attrib['file'].rsplit('.')[0], symbol_tag.attrib['command'], symbol_tag.attrib.get('package', None), int(symbol_tag.attrib.get('original_width', 10)), int(symbol_tag.attrib.get('original_height', 10))]) self.init_symbols_list() def init_symbols_list(self): for symbol in self.symbols: size = max(symbol[3], symbol[4]) image = Gtk.Image.new_from_icon_name('sidebar-' + symbol[0] + '-symbolic', 0) image.set_pixel_size(int(size * 1.5)) tooltip_text = symbol[1] if symbol[2] != None: tooltip_text += ' (' + _('Package') + ': ' + symbol[2] + ')' image.set_tooltip_text(tooltip_text) image.set_size_request(self.symbol_width + 11, -1) symbol.append(image) self.visible_symbols.append(symbol) self.insert(image, -1) Setzer-0.4.4/setzer/workspace/welcome_screen/000077500000000000000000000000001420322575300213025ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/welcome_screen/__init__.py000066400000000000000000000000001420322575300234010ustar00rootroot00000000000000Setzer-0.4.4/setzer/workspace/welcome_screen/welcome_screen.py000066400000000000000000000276441420322575300246630ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import GObject from gi.repository import Pango import cairo import time from setzer.app.service_locator import ServiceLocator from setzer.helpers.timer import timer class WelcomeScreen(object): def __init__(self): self.view = ServiceLocator.get_main_window().welcome_screen self.text = list() self.text.append('Reiciendis libero nemo sint autem. Maxime et ea qui provident. Sunt nihil eaque quidem dolores sequi debitis. Temporibus quia ut fuga sint pariatur aut.') self.text.append('Autem dolore aut quo in qui. Aut dolor dignissimos laborum eum perspiciatis iusto et veniam. Voluptate ea pariatur omnis qui eum ab est. Sequi ut sint rerum et.') self.text.append('Dolore nulla sunt corporis voluptatum dolore reprehenderit. Molestiae est unde sint facere iusto ea impedit. Soluta temporibus mollitia totam id earum. At inventore amet omnis. Dignissimos itaque perspiciatis dolore.') self.text.append('Illum et molestias quia provident. Dolores aut quis molestiae cumque. Unde dignissimos placeat possimus. Sit et ullam quia deserunt illo inventore. Id modi quidem fugit fuga magni possimus praesentium.') self.text.append('Aliquid commodi qui tempore et. Tempora ullam quod nisi eum dolores voluptatem quia culpa. Provident et voluptate dignissimos aliquam qui aut ratione. Dolorum qui qui nostrum consequatur.') self.text.append('Saepe perspiciatis ducimus vitae suscipit eligendi mollitia. Delectus quo praesentium ut sit. Dolor non aliquid maiores enim minus. Exercitationem mollitia quia et atque itaque. Doloremque voluptas esse debitis similique. Repellendus qui doloribus aut ea quod perferendis libero autem.') self.text.append('Architecto qui sit quis voluptatem. Est nobis modi deleniti ullam sunt eum quia sed. Expedita asperiores odit dicta quam ut. Ratione qui qui hic quia eligendi sed qui.') self.text.append('Natus et eum velit eveniet assumenda delectus nihil. Non eligendi vitae voluptatum nihil omnis ex molestiae. Excepturi velit dignissimos ut quia quae nemo. Maxime laborum in ad repellendus dolore qui repudiandae et. Sed laudantium non nesciunt.') self.text.append('Consectetur qui sed autem expedita aut quae aut. Qui et sit sit aliquam consequatur sed esse est. Provident dolorem facere libero voluptas est voluptatem sed.') self.text.append('Ullam non esse et ex alias sunt aut. Eaque beatae et veritatis. Est consequatur exercitationem illo repudiandae magni. Qui aspernatur quasi placeat qui veritatis dolores. Assumenda et nobis hic.') self.text.append('Reiciendis libero nemo sint autem. Maxime et ea qui provident. Sunt nihil eaque quidem dolores sequi debitis. Temporibus quia ut fuga sint pariatur aut.') self.text.append('Autem dolore aut quo in qui. Aut dolor dignissimos laborum eum perspiciatis iusto et veniam. Voluptate ea pariatur omnis qui eum ab est. Sequi ut sint rerum et.') self.text.append('Dolore nulla sunt corporis voluptatum dolore reprehenderit. Molestiae est unde sint facere iusto ea impedit. Soluta temporibus mollitia totam id earum. At inventore amet omnis. Dignissimos itaque perspiciatis dolore.') self.text.append('Illum et molestias quia provident. Dolores aut quis molestiae cumque. Unde dignissimos placeat possimus. Sit et ullam quia deserunt illo inventore. Id modi quidem fugit fuga magni possimus praesentium.') self.text.append('Aliquid commodi qui tempore et. Tempora ullam quod nisi eum dolores voluptatem quia culpa. Provident et voluptate dignissimos aliquam qui aut ratione. Dolorum qui qui nostrum consequatur.') self.text.append('Saepe perspiciatis ducimus vitae suscipit eligendi mollitia. Delectus quo praesentium ut sit. Dolor non aliquid maiores enim minus. Exercitationem mollitia quia et atque itaque. Doloremque voluptas esse debitis similique. Repellendus qui doloribus aut ea quod perferendis libero autem.') self.text.append('Architecto qui sit quis voluptatem. Est nobis modi deleniti ullam sunt eum quia sed. Expedita asperiores odit dicta quam ut. Ratione qui qui hic quia eligendi sed qui.') self.text.append('Natus et eum velit eveniet assumenda delectus nihil. Non eligendi vitae voluptatum nihil omnis ex molestiae. Excepturi velit dignissimos ut quia quae nemo. Maxime laborum in ad repellendus dolore qui repudiandae et. Sed laudantium non nesciunt.') self.text.append('Consectetur qui sed autem expedita aut quae aut. Qui et sit sit aliquam consequatur sed esse est. Provident dolorem facere libero voluptas est voluptatem sed.') self.text.append('Ullam non esse et ex alias sunt aut. Eaque beatae et veritatis. Est consequatur exercitationem illo repudiandae magni. Qui aspernatur quasi placeat qui veritatis dolores. Assumenda et nobis hic.') self.text.append('Reiciendis libero nemo sint autem. Maxime et ea qui provident. Sunt nihil eaque quidem dolores sequi debitis. Temporibus quia ut fuga sint pariatur aut.') self.text.append('Autem dolore aut quo in qui. Aut dolor dignissimos laborum eum perspiciatis iusto et veniam. Voluptate ea pariatur omnis qui eum ab est. Sequi ut sint rerum et.') self.text.append('Dolore nulla sunt corporis voluptatum dolore reprehenderit. Molestiae est unde sint facere iusto ea impedit. Soluta temporibus mollitia totam id earum. At inventore amet omnis. Dignissimos itaque perspiciatis dolore.') self.text.append('Illum et molestias quia provident. Dolores aut quis molestiae cumque. Unde dignissimos placeat possimus. Sit et ullam quia deserunt illo inventore. Id modi quidem fugit fuga magni possimus praesentium.') self.text.append('Aliquid commodi qui tempore et. Tempora ullam quod nisi eum dolores voluptatem quia culpa. Provident et voluptate dignissimos aliquam qui aut ratione. Dolorum qui qui nostrum consequatur.') self.text.append('Saepe perspiciatis ducimus vitae suscipit eligendi mollitia. Delectus quo praesentium ut sit. Dolor non aliquid maiores enim minus. Exercitationem mollitia quia et atque itaque. Doloremque voluptas esse debitis similique. Repellendus qui doloribus aut ea quod perferendis libero autem.') self.text.append('Architecto qui sit quis voluptatem. Est nobis modi deleniti ullam sunt eum quia sed. Expedita asperiores odit dicta quam ut. Ratione qui qui hic quia eligendi sed qui.') self.text.append('Natus et eum velit eveniet assumenda delectus nihil. Non eligendi vitae voluptatum nihil omnis ex molestiae. Excepturi velit dignissimos ut quia quae nemo. Maxime laborum in ad repellendus dolore qui repudiandae et. Sed laudantium non nesciunt.') self.text.append('Consectetur qui sed autem expedita aut quae aut. Qui et sit sit aliquam consequatur sed esse est. Provident dolorem facere libero voluptas est voluptatem sed.') self.text.append('Ullam non esse et ex alias sunt aut. Eaque beatae et veritatis. Est consequatur exercitationem illo repudiandae magni. Qui aspernatur quasi placeat qui veritatis dolores. Assumenda et nobis hic.') self.font_desc = Pango.FontDescription.from_string('cmr10') self.angle = 0.18 self.alpha = 0.065 self.font_size = 40 self.line_height = 70 self.is_active = False self.lines_per_second = 0.25 self.animate = False self.fg_color = None self.bg_color = None self.color_manager = ServiceLocator.get_color_manager() self.update_colors() self.view.get_style_context().connect('changed', self.update_colors) self.view_height = 0 self.view_width = 0 self.gradient_size = None self.gradient_surface = None self.update_gradient() self.view.connect('size-allocate', self.update_gradient) self.view.drawing_area.connect('draw', self.draw) def activate(self): self.is_active = True self.do_draw() if self.animate: GObject.timeout_add(15, self.do_draw) def deactivate(self): self.is_active = False def do_draw(self): self.view.drawing_area.queue_draw() return self.is_active #@timer def draw(self, drawing_area, ctx): self.view_width = self.view.get_allocated_width() self.view_height = self.view.get_allocated_height() ctx.rotate(-self.angle) ctx.set_source_rgba(self.fg_color.red, self.fg_color.green, self.fg_color.blue, self.fg_color.alpha) ctx.set_font_size(self.font_size) font_family = self.font_desc.get_family() ctx.select_font_face(font_family, cairo.FontSlant.NORMAL, cairo.FontWeight.NORMAL) if self.animate: y = -self.line_height - int(time.time() * self.line_height * self.lines_per_second) % self.line_height line = int(int(time.time() * self.lines_per_second) % self.lines_per_second) + int(self.lines_per_second * (int(time.time()) % int(20 // self.lines_per_second))) else: y = 0 line = 0 text = self.text[line:] + self.text[:line] for paragraph in text: ctx.rotate(self.angle) y += self.line_height ctx.move_to(-50, y) ctx.rotate(-self.angle) ctx.show_text(paragraph) if y > (self.view_height + self.view_width / 3): break ctx.rotate(self.angle) self.draw_gradient(ctx) #@timer def draw_gradient(self, ctx): overlay_width = max(self.view.header.get_allocated_width(), self.view.description.get_allocated_width()) y = int(self.view_height / 2 - self.gradient_size / 2) - 25 x_start = int(self.view_width / 2 - overlay_width / 2 - self.gradient_size / 2.5) x_end = self.view_width - x_start - self.gradient_size ctx.set_source_surface(self.gradient_surface) for x in range(x_start, x_end, int((x_end - x_start) / 6)): self.gradient_surface.set_device_offset(-x, -y) ctx.rectangle(x, y, self.gradient_size, self.gradient_size) ctx.fill() #@timer def update_gradient(self, widget=None, allocation=None): self.gradient_size = int(self.view.overlay.get_allocated_height() * 2.5) self.gradient_surface = cairo.ImageSurface(cairo.Format.ARGB32, self.gradient_size, self.gradient_size) gradient_context = cairo.Context(self.gradient_surface) pattern = cairo.RadialGradient(self.gradient_size / 2, self.gradient_size / 2, 0, self.gradient_size / 2, self.gradient_size / 2, self.gradient_size / 2) pattern.add_color_stop_rgba(0, self.bg_color.red, self.bg_color.green, self.bg_color.blue, self.bg_color.alpha * 0.9) pattern.add_color_stop_rgba(1, self.bg_color.red, self.bg_color.green, self.bg_color.blue, 0) gradient_context.set_source(pattern) gradient_context.move_to(0, 0) gradient_context.line_to(self.gradient_size, 0) gradient_context.line_to(self.gradient_size, self.gradient_size) gradient_context.line_to(0, self.gradient_size) gradient_context.close_path() gradient_context.fill() def update_colors(self, style_context=None): self.fg_color = self.color_manager.get_theme_color_mix('theme_fg_color', 'theme_bg_color', self.alpha) self.bg_color = self.color_manager.get_theme_color('theme_bg_color') self.do_draw() Setzer-0.4.4/setzer/workspace/welcome_screen/welcome_screen_viewgtk.py000066400000000000000000000033771420322575300264200ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class WelcomeScreenView(Gtk.Overlay): def __init__(self): Gtk.Overlay.__init__(self) self.drawing_area = Gtk.DrawingArea() self.overlay = Gtk.VBox() self.overlay.get_style_context().add_class('welcome') self.header = Gtk.Label('Write beautiful LaTeX documents with ease!') self.header.set_line_wrap(True) self.header.get_style_context().add_class('welcome-header') self.description = Gtk.Label('Click the open or create buttons in the headerbar above to start editing.') self.description.set_line_wrap(True) self.description.get_style_context().add_class('welcome-description') self.overlay.pack_start(self.header, False, False, 0) self.overlay.pack_start(self.description, False, False, 0) self.overlay.set_valign(Gtk.Align.CENTER) self.hbox = Gtk.HBox() self.hbox.set_center_widget(self.overlay) self.add(self.drawing_area) self.add_overlay(self.hbox) Setzer-0.4.4/setzer/workspace/workspace.py000066400000000000000000000540031420322575300206620ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import os.path import time import pickle from setzer.document.document import Document from setzer.helpers.observable import Observable import setzer.workspace.workspace_presenter as workspace_presenter import setzer.workspace.workspace_controller as workspace_controller import setzer.workspace.preview_panel.preview_panel_presenter as preview_panel_presenter import setzer.workspace.help_panel.help_panel as help_panel import setzer.workspace.welcome_screen.welcome_screen as welcome_screen import setzer.workspace.sidebar.sidebar as sidebar import setzer.workspace.shortcutsbar.shortcutsbar as shortcutsbar import setzer.workspace.build_log.build_log as build_log import setzer.workspace.headerbar.headerbar_presenter as headerbar_presenter import setzer.workspace.document_chooser.document_chooser as document_chooser import setzer.workspace.keyboard_shortcuts.shortcuts as shortcuts import setzer.workspace.document_switcher.document_switcher as document_switcher import setzer.workspace.actions.actions as actions from setzer.app.service_locator import ServiceLocator class Workspace(Observable): ''' A workspace contains a user's open documents. ''' def __init__(self): Observable.__init__(self) self.pathname = ServiceLocator.get_config_folder() self.open_documents = list() self.open_latex_documents = list() self.root_document = None self.recently_opened_documents = dict() self.untitled_documents_no = 0 self.active_document = None self.can_sync = False self.sync_document = None self.update_sync_document() self.recently_opened_session_files = dict() self.session_file_opened = None self.settings = ServiceLocator.get_settings() self.inline_spellchecking = self.settings.get_value('preferences', 'inline_spellchecking') self.spellchecking_language_code = self.settings.get_value('preferences', 'spellchecking_language_code') self.dark_mode = self.settings.get_value('preferences', 'prefer_dark_mode') self.invert_pdf = self.settings.get_value('preferences', 'invert_pdf') self.sidebar = sidebar.Sidebar(self) self.welcome_screen = welcome_screen.WelcomeScreen() self.show_sidebar = self.settings.get_value('window_state', 'show_sidebar') self.sidebar_position = self.settings.get_value('window_state', 'sidebar_paned_position') self.show_help = self.settings.get_value('window_state', 'show_help') self.show_preview = self.settings.get_value('window_state', 'show_preview') self.preview_position = self.settings.get_value('window_state', 'preview_paned_position') self.build_log = build_log.BuildLog(self) self.show_build_log = self.settings.get_value('window_state', 'show_build_log') self.build_log_position = self.settings.get_value('window_state', 'build_log_paned_position') self.shortcutsbar = shortcutsbar.Shortcutsbar(self) self.shortcuts = shortcuts.Shortcuts(self) def init_workspace_controller(self): self.actions = actions.Actions(self) self.presenter = workspace_presenter.WorkspacePresenter(self) self.headerbar = headerbar_presenter.HeaderbarPresenter(self) self.document_chooser = document_chooser.DocumentChooser(self) self.preview_panel = preview_panel_presenter.PreviewPanelPresenter(self) self.help_panel = help_panel.HelpPanel(self) self.document_switcher = document_switcher.DocumentSwitcher(self) self.controller = workspace_controller.WorkspaceController(self) def open_document_by_filename(self, filename): if filename == None: return None document_candidate = self.get_document_by_filename(filename) if document_candidate != None: self.set_active_document(document_candidate) return document_candidate else: document = self.create_document_from_filename(filename) if document != None: self.set_active_document(document) return document def switch_to_earliest_open_document(self): document = self.get_earliest_active_document() if document != None: self.set_active_document(document) def add_document(self, document): if document in self.open_documents: return False if document.get_filename() == None: document.set_displayname(_('Untitled Document {number}').format(number=str(self.untitled_documents_no + 1))) self.untitled_documents_no += 1 self.open_documents.append(document) if document.is_latex_document(): self.open_latex_documents.append(document) document.preview.set_invert_pdf(self.invert_pdf) document.spellchecker.set_enabled(self.inline_spellchecking) document.spellchecker.set_language(self.spellchecking_language_code) document.state_manager.load_document_state() self.add_change_code('new_document', document) self.update_recently_opened_document(document.get_filename(), notify=True) def remove_document(self, document): if document == self.root_document: self.unset_root_document() document.state_manager.save_document_state() document.controller.continue_save_date_loop = False self.open_documents.remove(document) if document.is_latex_document(): self.open_latex_documents.remove(document) if self.active_document == document: candidate = self.get_last_active_document() if candidate == None: self.set_active_document(None) else: self.set_active_document(candidate) self.add_change_code('document_removed', document) def create_latex_document(self): document = Document('latex') document.add_latex_only_modules() return document def create_bibtex_document(self): return Document('bibtex') def create_latex_cls_document(self): return Document('latex_cls') def create_latex_sty_document(self): return Document('latex_sty') def create_document_from_filename(self, filename): if filename[-4:] == '.tex': document = self.create_latex_document() elif filename[-4:] == '.bib': document = self.create_bibtex_document() elif filename[-4:] == '.cls': document = self.create_latex_cls_document() elif filename[-4:] == '.sty': document = self.create_latex_sty_document() else: return None document.set_filename(filename) response = document.populate_from_filename() if response != False: self.add_document(document) return document else: return None def get_document_by_filename(self, filename): for document in self.open_documents: if filename == document.get_filename(): return document return None def get_active_document(self): return self.active_document def set_active_document(self, document): if self.active_document != None: self.add_change_code('new_inactive_document', self.active_document) self.update_sync_document() self.set_can_sync() previously_active_document = self.active_document self.active_document = document self.update_preview_visibility(previously_active_document) else: self.active_document = document if self.active_document != None: self.active_document.set_last_activated(time.time()) self.update_preview_visibility(self.active_document) self.add_change_code('new_active_document', document) self.update_sync_document() self.set_can_sync() self.shortcuts.set_document_type(self.active_document.get_document_type()) self.set_build_log() def set_build_log(self): if self.get_active_document() != None: if self.root_document != None: document = self.root_document else: document = self.active_document if document.is_latex_document(): self.build_log.set_document(document) def get_last_active_document(self): for document in sorted(self.open_documents, key=lambda val: -val.last_activated): return document return None def get_earliest_active_document(self): for document in sorted(self.open_documents, key=lambda val: val.last_activated): return document return None def get_open_documents_filenames(self): pathnames = list() for document in self.open_documents: pathnames.append(document.get_filename()) return pathnames def update_recently_opened_document(self, filename, date=None, notify=True): if not isinstance(filename, str) or not os.path.isfile(filename): self.remove_recently_opened_document(filename) else: if date == None: date = time.time() if len(self.recently_opened_documents) >= 1000: del(self.recently_opened_documents[sorted(self.recently_opened_documents.values(), key=lambda val: val['date'])[0]['filename']]) self.recently_opened_documents[filename] = {'filename': filename, 'date': date} if notify: self.add_change_code('update_recently_opened_documents', self.recently_opened_documents) def remove_recently_opened_document(self, filename): try: del(self.recently_opened_documents[filename]) except KeyError: pass def update_recently_opened_session_file(self, filename, date=None, notify=True): if not isinstance(filename, str) or not os.path.isfile(filename): self.remove_recently_opened_session_file(filename) else: if date == None: date = time.time() self.recently_opened_session_files[filename] = {'filename': filename, 'date': date} if len(self.recently_opened_session_files) > 5: del(self.recently_opened_session_files[sorted(self.recently_opened_session_files.values(), key=lambda val: val['date'])[0]['filename']]) if notify: self.add_change_code('update_recently_opened_session_files', self.recently_opened_session_files) def remove_recently_opened_session_file(self, filename): try: del(self.recently_opened_session_files[filename]) except KeyError: pass def populate_from_disk(self): try: filehandle = open(os.path.join(self.pathname, 'workspace.pickle'), 'rb') except IOError: pass else: try: data = pickle.load(filehandle) except EOFError: return else: try: root_document_filename = data['root_document_filename'] except KeyError: root_document_filename = None for item in sorted(data['open_documents'].values(), key=lambda val: val['last_activated']): document = self.create_document_from_filename(item['filename']) if document != None: document.set_last_activated(item['last_activated']) if item['filename'] == root_document_filename: self.set_one_document_root(document) for item in data['recently_opened_documents'].values(): self.update_recently_opened_document(item['filename'], item['date'], notify=False) try: self.help_panel.search_results_blank = data['recently_help_searches'] except KeyError: pass try: recently_opened_session_files = data['recently_opened_session_files'].values() except KeyError: recently_opened_session_files = [] for item in recently_opened_session_files: self.update_recently_opened_session_file(item['filename'], item['date'], notify=False) self.add_change_code('update_recently_opened_documents', self.recently_opened_documents) self.add_change_code('update_recently_opened_session_files', self.recently_opened_session_files) def load_documents_from_session_file(self, filename): try: filehandle = open(filename, 'rb') except IOError: pass else: try: data = pickle.load(filehandle) except EOFError: return else: try: root_document_filename = data['root_document_filename'] except KeyError: root_document_filename = None for item in sorted(data['open_documents'].values(), key=lambda val: val['last_activated']): document = self.create_document_from_filename(item['filename']) document.set_last_activated(item['last_activated']) if item['filename'] == root_document_filename and document != None: self.set_one_document_root(document) if len(self.open_documents) > 0: self.set_active_document(self.open_documents[-1]) self.session_file_opened = filename self.update_recently_opened_session_file(filename, notify=True) def save_to_disk(self): try: filehandle = open(os.path.join(self.pathname, 'workspace.pickle'), 'wb') except IOError: pass else: open_documents = dict() for document in self.open_documents: filename = document.get_filename() if filename != None: open_documents[filename] = { 'filename': filename, 'last_activated': document.get_last_activated() } data = { 'open_documents': open_documents, 'recently_opened_documents': self.recently_opened_documents, 'recently_opened_session_files': self.recently_opened_session_files, 'recently_help_searches': self.help_panel.search_results_blank } if self.root_document != None: data['root_document_filename'] = self.root_document.get_filename() pickle.dump(data, filehandle) def save_session(self, session_filename): try: filehandle = open(session_filename, 'wb') except IOError: pass else: open_documents = dict() for document in self.open_documents: filename = document.get_filename() if filename != None: open_documents[filename] = { 'filename': filename, 'last_activated': document.get_last_activated() } data = {'open_documents': open_documents} if self.root_document != None: data['root_document_filename'] = self.root_document.get_filename() pickle.dump(data, filehandle) self.session_file_opened = session_filename self.update_recently_opened_session_file(session_filename, notify=True) def get_unsaved_documents(self): unsaved_documents = list() for document in self.open_documents: if document.content.get_modified(): unsaved_documents.append(document) return unsaved_documents if len(unsaved_documents) >= 1 else None def get_all_documents(self): return self.open_documents.copy() if len(self.open_documents) >= 1 else None def set_one_document_root(self, root_document): if root_document.is_latex_document(): self.root_document = root_document for document in self.open_latex_documents: if document == root_document: document.set_root_state(True, True) else: document.set_root_state(False, True) self.update_preview_visibility(document) self.add_change_code('root_state_change', 'one_document') self.update_sync_document() self.set_can_sync() self.set_build_log() def unset_root_document(self): for document in self.open_latex_documents: document.set_root_state(False, False) self.update_preview_visibility(document) self.root_document = None self.update_preview_visibility(self.active_document) self.add_change_code('root_state_change', 'no_root_document') self.update_sync_document() self.set_can_sync() self.set_build_log() def get_root_document(self): return self.root_document def update_preview_visibility(self, document): if document != None and document.is_latex_document(): if document == self.root_document: document.preview.set_is_visible(True) elif document == self.active_document and self.root_document == None: document.preview.set_is_visible(True) else: document.preview.set_is_visible(False) def update_sync_document(self): if self.root_document != None: self.set_sync_document(self.root_document) elif self.active_document != None: self.set_sync_document(self.active_document) elif self.sync_document != None: self.sync_document.disconnect('is_root_changed', self.on_is_root_changed) if self.sync_document.is_latex_document(): self.sync_document.build_system.disconnect('can_sync_changed', self.on_can_sync_changed) self.sync_document = None def set_sync_document(self, document): if document != self.sync_document: if self.sync_document != None: self.sync_document.disconnect('is_root_changed', self.on_is_root_changed) if self.sync_document.is_latex_document(): self.sync_document.build_system.disconnect('can_sync_changed', self.on_can_sync_changed) self.sync_document = document self.sync_document.connect('is_root_changed', self.on_is_root_changed) if self.sync_document.is_latex_document(): self.sync_document.build_system.connect('can_sync_changed', self.on_can_sync_changed) def on_can_sync_changed(self, build_system, can_sync): self.set_can_sync() def on_is_root_changed(self, document, is_root): self.set_can_sync() def set_can_sync(self): can_sync = False if self.sync_document != None: if self.sync_document.is_latex_document(): if self.sync_document.build_system.can_sync: can_sync = True self.can_sync = can_sync self.add_change_code('update_sync_state') def forward_sync(self, active_document=None): if active_document == None: return if not self.sync_document.is_latex_document(): return if self.root_document != None: self.root_document.build_system.forward_sync(active_document) else: active_document.build_system.forward_sync(active_document) def set_show_sidebar(self, show_sidebar): if show_sidebar != self.show_sidebar: self.show_sidebar = show_sidebar self.add_change_code('set_show_sidebar', show_sidebar) def set_show_preview_or_help(self, show_preview, show_help): if show_preview != self.show_preview or show_help != self.show_help: self.show_preview = show_preview self.show_help = show_help self.add_change_code('set_show_preview_or_help') def set_show_build_log(self, show_build_log): if show_build_log != self.show_build_log: self.show_build_log = show_build_log self.add_change_code('show_build_log_state_change', show_build_log) def get_show_build_log(self): if self.show_build_log != None: return self.show_build_log else: return False def set_dark_mode(self, value): if self.dark_mode != value: self.dark_mode = value self.settings.set_value('preferences', 'prefer_dark_mode', self.dark_mode) self.add_change_code('set_dark_mode', value) def set_invert_pdf(self, value): if self.invert_pdf != value: self.invert_pdf = value self.settings.set_value('preferences', 'invert_pdf', self.invert_pdf) for document in self.open_latex_documents: document.preview.set_invert_pdf(self.invert_pdf) def set_inline_spellchecking(self, value): if self.inline_spellchecking != value: self.inline_spellchecking = value self.settings.set_value('preferences', 'inline_spellchecking', self.inline_spellchecking) for document in self.open_documents: document.spellchecker.set_enabled(value) def set_spellchecking_language(self, language_code): if self.spellchecking_language_code != language_code: self.spellchecking_language_code = language_code self.settings.set_value('preferences', 'spellchecking_language_code', self.spellchecking_language_code) for document in self.open_documents: document.spellchecker.set_language(language_code) Setzer-0.4.4/setzer/workspace/workspace_controller.py000066400000000000000000000047701420322575300231330ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.app.service_locator import ServiceLocator from setzer.dialogs.dialog_locator import DialogLocator import time class WorkspaceController(object): ''' Mediator between workspace and view. ''' def __init__(self, workspace): self.workspace = workspace self.main_window = ServiceLocator.get_main_window() self.main_window.headerbar.sidebar_toggle.connect('toggled', self.on_sidebar_toggle_toggled) self.main_window.headerbar.preview_toggle.connect('toggled', self.on_preview_toggle_toggled) self.main_window.headerbar.help_toggle.connect('toggled', self.on_help_toggle_toggled) # populate workspace self.workspace.populate_from_disk() open_documents = self.workspace.open_documents if len(open_documents) > 0: self.workspace.set_active_document(open_documents[-1]) def on_sidebar_toggle_toggled(self, toggle_button, parameter=None): self.workspace.set_show_sidebar(toggle_button.get_active()) def on_preview_toggle_toggled(self, toggle_button, parameter=None): show_preview = toggle_button.get_active() if show_preview: show_help = False else: show_help = self.workspace.show_help self.workspace.set_show_preview_or_help(show_preview, show_help) if show_preview: self.main_window.headerbar.help_toggle.set_active(False) def on_help_toggle_toggled(self, toggle_button, parameter=None): show_help = toggle_button.get_active() if show_help: show_preview = False else: show_preview = self.workspace.show_preview self.workspace.set_show_preview_or_help(show_preview, show_help) if show_help: self.main_window.headerbar.preview_toggle.set_active(False) Setzer-0.4.4/setzer/workspace/workspace_presenter.py000066400000000000000000000167041420322575300227570ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 from setzer.app.service_locator import ServiceLocator class WorkspacePresenter(object): def __init__(self, workspace): self.workspace = workspace self.main_window = ServiceLocator.get_main_window() self.workspace.connect('new_document', self.on_new_document) self.workspace.connect('document_removed', self.on_document_removed) self.workspace.connect('new_active_document', self.on_new_active_document) self.workspace.connect('new_inactive_document', self.on_new_inactive_document) self.workspace.connect('set_show_sidebar', self.on_set_show_sidebar) self.workspace.connect('set_show_preview_or_help', self.on_set_show_preview_or_help) self.workspace.connect('show_build_log_state_change', self.on_show_build_log_state_change) self.workspace.connect('set_dark_mode', self.on_set_dark_mode) self.activate_welcome_screen_mode() self.setup_paneds() def on_new_document(self, workspace, document): document.set_dark_mode(ServiceLocator.get_is_dark_mode()) if document.is_latex_document(): self.main_window.latex_notebook.append_page(document.view) elif document.is_bibtex_document(): self.main_window.bibtex_notebook.append_page(document.view) else: self.main_window.others_notebook.append_page(document.view) def on_document_removed(self, workspace, document): if document.is_latex_document(): self.main_window.latex_notebook.remove(document.view) elif document.is_bibtex_document(): self.main_window.bibtex_notebook.remove(document.view) else: self.main_window.others_notebook.remove(document.view) if self.workspace.active_document == None: self.activate_welcome_screen_mode() def on_new_active_document(self, workspace, document): if document.is_latex_document(): notebook = self.main_window.latex_notebook notebook.set_current_page(notebook.page_num(document.view)) document.view.source_view.grab_focus() try: self.main_window.preview_paned_overlay.add_overlay(document.autocomplete.view) document.autocomplete.update() except AttributeError: pass self.activate_latex_documents_mode() elif document.is_bibtex_document(): notebook = self.main_window.bibtex_notebook notebook.set_current_page(notebook.page_num(document.view)) document.view.source_view.grab_focus() self.activate_bibtex_documents_mode() else: notebook = self.main_window.others_notebook notebook.set_current_page(notebook.page_num(document.view)) document.view.source_view.grab_focus() self.activate_other_documents_mode() def on_new_inactive_document(self, workspace, document): if document.is_latex_document(): try: self.main_window.preview_paned_overlay.remove(document.autocomplete.view) except AttributeError: pass def on_set_show_sidebar(self, workspace, show_sidebar): self.main_window.sidebar_paned.set_show_widget(show_sidebar) self.main_window.sidebar_paned.animate(True) def on_set_show_preview_or_help(self, workspace): if self.workspace.show_preview: self.main_window.preview_help_stack.set_visible_child_name('preview') self.focus_active_document() elif self.workspace.show_help: self.main_window.preview_help_stack.set_visible_child_name('help') if self.main_window.help_panel.stack.get_visible_child_name() == 'search': self.main_window.help_panel.search_entry.set_text('') self.main_window.help_panel.search_entry.grab_focus() else: self.focus_active_document() else: self.focus_active_document() self.main_window.preview_paned.set_show_widget(self.workspace.show_preview or self.workspace.show_help) self.main_window.preview_paned.animate(True) def on_show_build_log_state_change(self, workspace, show_build_log): self.main_window.build_log_paned.set_show_widget(self.workspace.show_build_log) self.main_window.build_log_paned.animate(True) def on_set_dark_mode(self, workspace, darkmode_enabled): settings = ServiceLocator.get_settings() settings.gtksettings.get_default().set_property('gtk-application-prefer-dark-theme', darkmode_enabled) def activate_welcome_screen_mode(self): self.workspace.welcome_screen.activate() self.main_window.mode_stack.set_visible_child_name('welcome_screen') def activate_latex_documents_mode(self): self.workspace.welcome_screen.deactivate() self.main_window.mode_stack.set_visible_child_name('latex_documents') def activate_bibtex_documents_mode(self): self.workspace.welcome_screen.deactivate() self.main_window.mode_stack.set_visible_child_name('bibtex_documents') def activate_other_documents_mode(self): self.workspace.welcome_screen.deactivate() self.main_window.mode_stack.set_visible_child_name('other_documents') def focus_active_document(self): active_document = self.workspace.get_active_document() if active_document != None: active_document.view.source_view.grab_focus() def setup_paneds(self): if self.workspace.show_preview: self.main_window.preview_help_stack.set_visible_child_name('preview') elif self.workspace.show_help: self.main_window.preview_help_stack.set_visible_child_name('help') self.main_window.sidebar_paned.set_show_widget(self.workspace.show_sidebar) self.main_window.preview_paned.set_show_widget(self.workspace.show_preview or self.workspace.show_help) self.main_window.build_log_paned.set_show_widget(self.workspace.get_show_build_log()) preview_position = self.workspace.preview_position if self.workspace.show_preview or self.workspace.show_help: if self.workspace.show_sidebar == False: preview_position += - 217 else: preview_position += self.workspace.sidebar_position - 216 self.main_window.preview_paned.set_target_position(preview_position) self.main_window.sidebar_paned.set_target_position(self.workspace.sidebar_position) self.main_window.build_log_paned.set_target_position(self.workspace.build_log_position) self.main_window.headerbar.sidebar_toggle.set_active(self.workspace.show_sidebar) self.main_window.headerbar.preview_toggle.set_active(self.workspace.show_preview) self.main_window.headerbar.help_toggle.set_active(self.workspace.show_help) Setzer-0.4.4/setzer/workspace/workspace_viewgtk.py000066400000000000000000000140771420322575300224310ustar00rootroot00000000000000#!/usr/bin/env python3 # coding: utf-8 # Copyright (C) 2017, 2018 Robert Griesel # 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 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gdk from gi.repository import Gtk from gi.repository import Gio from gi.repository import GLib import setzer.workspace.build_log.build_log_viewgtk as build_log_view import setzer.workspace.headerbar.headerbar_viewgtk as headerbar_view import setzer.workspace.shortcutsbar.latex_shortcutsbar.latex_shortcutsbar_viewgtk as latex_shortcutsbar_view import setzer.workspace.shortcutsbar.bibtex_shortcutsbar.bibtex_shortcutsbar_viewgtk as bibtex_shortcutsbar_view import setzer.workspace.shortcutsbar.others_shortcutsbar.others_shortcutsbar_viewgtk as others_shortcutsbar_view import setzer.workspace.preview_panel.preview_panel_viewgtk as preview_panel_view import setzer.workspace.help_panel.help_panel_viewgtk as help_panel_view import setzer.workspace.sidebar.sidebar_viewgtk as sidebar_view import setzer.workspace.welcome_screen.welcome_screen_viewgtk as welcome_screen_view import setzer.widgets.animated_paned.animated_paned as animated_paned from setzer.app.service_locator import ServiceLocator import os.path class MainWindow(Gtk.ApplicationWindow): def __init__(self, app): Gtk.Window.__init__(self, application=app) self.app = app self.set_size_request(-1, 550) self.add_events(Gdk.EventMask.KEY_PRESS_MASK) # window state variables self.current_width = 0 self.current_height = 0 self.ismaximized = False # headerbar self.headerbar = headerbar_view.HeaderBar() self.set_titlebar(self.headerbar) # latex notebook self.latex_notebook = Gtk.Notebook() self.latex_notebook.set_show_tabs(False) self.latex_notebook.set_show_border(False) self.latex_notebook.set_scrollable(True) self.latex_notebook.set_size_request(550, -1) self.latex_shortcutsbar = latex_shortcutsbar_view.LaTeXShortcutsbar() self.latex_notebook_wrapper = Gtk.VBox() self.latex_notebook_wrapper.pack_start(self.latex_shortcutsbar, False, False, 0) self.latex_notebook_wrapper.pack_start(self.latex_notebook, True, True, 0) # bibtex notebook self.bibtex_notebook = Gtk.Notebook() self.bibtex_notebook.set_show_tabs(False) self.bibtex_notebook.set_show_border(False) self.bibtex_notebook.set_scrollable(True) self.bibtex_notebook.set_size_request(550, -1) self.bibtex_shortcutsbar = bibtex_shortcutsbar_view.BibTeXShortcutsbar() self.bibtex_notebook_wrapper = Gtk.VBox() self.bibtex_notebook_wrapper.pack_start(self.bibtex_shortcutsbar, False, False, 0) self.bibtex_notebook_wrapper.pack_start(self.bibtex_notebook, True, True, 0) # others notebook self.others_notebook = Gtk.Notebook() self.others_notebook.set_show_tabs(False) self.others_notebook.set_show_border(False) self.others_notebook.set_scrollable(True) self.others_notebook.set_size_request(550, -1) self.others_shortcutsbar = others_shortcutsbar_view.OthersShortcutsbar() self.others_notebook_wrapper = Gtk.VBox() self.others_notebook_wrapper.pack_start(self.others_shortcutsbar, False, False, 0) self.others_notebook_wrapper.pack_start(self.others_notebook, True, True, 0) # build log self.build_log = build_log_view.BuildLogView() self.build_log_paned = animated_paned.AnimatedVPaned(self.latex_notebook_wrapper, self.build_log, False) self.build_log_visible = None # preview self.preview_panel = preview_panel_view.PreviewPanelView() self.preview_visible = None # help self.help_panel = help_panel_view.HelpPanelView() self.help_visible = None # sidebar self.sidebar = sidebar_view.Sidebar() # paneds self.preview_paned_overlay = Gtk.Overlay() self.overlay_widget = None self.preview_help_stack = Gtk.Stack() self.preview_help_stack.add_named(self.preview_panel, 'preview') self.preview_help_stack.add_named(self.help_panel, 'help') self.preview_paned = animated_paned.AnimatedHPaned(self.build_log_paned, self.preview_help_stack, False) self.preview_paned_overlay.add(self.preview_paned) self.sidebar_paned = animated_paned.AnimatedHPaned(self.sidebar, self.preview_paned_overlay, True) self.sidebar_paned.get_style_context().add_class('sidebar_paned') # welcome screen self.welcome_screen = welcome_screen_view.WelcomeScreenView() # mode stack self.mode_stack = Gtk.Stack() self.mode_stack.add_named(self.welcome_screen, 'welcome_screen') self.mode_stack.add_named(self.sidebar_paned, 'latex_documents') self.mode_stack.add_named(self.bibtex_notebook_wrapper, 'bibtex_documents') self.mode_stack.add_named(self.others_notebook_wrapper, 'other_documents') self.add(self.mode_stack) self.css_provider = Gtk.CssProvider() resources_path = ServiceLocator.get_resources_path() self.css_provider.load_from_path(os.path.join(resources_path, 'style_gtk.css')) Gtk.StyleContext.add_provider_for_screen(self.get_screen(), self.css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER) self.css_provider_font_size = Gtk.CssProvider() Gtk.StyleContext.add_provider_for_screen(self.get_screen(), self.css_provider_font_size, Gtk.STYLE_PROVIDER_PRIORITY_USER) Setzer-0.4.4/tests/000077500000000000000000000000001420322575300141405ustar00rootroot00000000000000Setzer-0.4.4/tests/meson.build000066400000000000000000000007561420322575300163120ustar00rootroot00000000000000# Validate metainfo file appstreamcli = find_program( 'appstreamcli', required: false, ) if appstreamcli.found() test( 'validate metainfo file', appstreamcli, args: ['validate', '--no-net', '--pedantic', metainfo_file], ) endif # Validate .desktop file desktop_file_validate = find_program( 'desktop-file-validate', required: false, ) if desktop_file_validate.found() test( 'validate .desktop file', desktop_file_validate, args: [desktop_file] ) endif