From 7ba7719caf871751ce945e9e021a6b604b4dabd5 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Sat, 29 Nov 2014 17:24:39 -0500 Subject: [PATCH] Split `plt-web` from the main repository. Source for `plt-web` is now available at: https://github.com/racket/plt-web --- pkgs/plt-services/info.rkt | 1 - pkgs/plt-services/meta/drdr/pkgs.rktd | 5 +- pkgs/plt-services/meta/props | 1 - pkgs/plt-web-pkgs/plt-web-doc/COPYING.txt | 676 ------ .../plt-web-doc/COPYING_LESSER.txt | 165 -- pkgs/plt-web-pkgs/plt-web-doc/LICENSE.txt | 10 - pkgs/plt-web-pkgs/plt-web-doc/info.rkt | 16 - pkgs/plt-web-pkgs/plt-web-doc/plt-web.scrbl | 311 --- pkgs/plt-web-pkgs/plt-web-lib/COPYING.txt | 676 ------ .../plt-web-lib/COPYING_LESSER.txt | 165 -- pkgs/plt-web-pkgs/plt-web-lib/LICENSE.txt | 10 - pkgs/plt-web-pkgs/plt-web-lib/build.rkt | 89 - pkgs/plt-web-pkgs/plt-web-lib/extras.rkt | 132 -- pkgs/plt-web-pkgs/plt-web-lib/indexes.rkt | 74 - pkgs/plt-web-pkgs/plt-web-lib/info.rkt | 11 - pkgs/plt-web-pkgs/plt-web-lib/layout.rkt | 353 --- pkgs/plt-web-pkgs/plt-web-lib/links.rkt | 56 - pkgs/plt-web-pkgs/plt-web-lib/main.rkt | 35 - .../plt-web-lib/private/roots.rkt | 4 - pkgs/plt-web-pkgs/plt-web-lib/resources.rkt | 88 - .../plt-web-lib/resources/add-logo-text.rkt | 56 - .../plt-web-lib/resources/css/gumby-base.css | 131 -- .../plt-web-lib/resources/css/gumby-slice.css | 77 - .../plt-web-lib/resources/css/gumby-x.css | 1742 --------------- .../plt-web-lib/resources/css/gumby.css | 1886 ----------------- .../plt-web-lib/resources/css/style.css | 25 - .../plt-web-lib/resources/file-icons.rkt | 68 - .../plt-web-lib/resources/file.png | Bin 270 -> 0 bytes .../plt-web-lib/resources/folder.png | Bin 342 -> 0 bytes .../resources/fonts/icons/entypo.eot | Bin 76038 -> 0 bytes .../resources/fonts/icons/entypo.ttf | Bin 75800 -> 0 bytes .../resources/fonts/icons/entypo.woff | Bin 45152 -> 0 bytes .../resources/js/libs/gumby.init.js | 27 - .../plt-web-lib/resources/js/libs/gumby.js | 150 -- .../resources/js/libs/gumby.min.js | 1 - .../resources/js/libs/jquery-1.9.1.min.js | 5 - .../js/libs/jquery.mobile.custom.min.js | 3 - .../resources/js/libs/modernizr-2.6.2.min.js | 4 - .../resources/js/libs/ui/gumby.checkbox.js | 93 - .../resources/js/libs/ui/gumby.fittext.js | 83 - .../resources/js/libs/ui/gumby.fixed.js | 111 - .../resources/js/libs/ui/gumby.navbar.js | 69 - .../resources/js/libs/ui/gumby.radiobtn.js | 83 - .../resources/js/libs/ui/gumby.retina.js | 74 - .../resources/js/libs/ui/gumby.skiplink.js | 112 - .../resources/js/libs/ui/gumby.tabs.js | 70 - .../js/libs/ui/gumby.toggleswitch.js | 176 -- .../resources/js/libs/ui/jquery.validation.js | 138 -- .../plt-web-lib/resources/js/main.js | 24 - .../plt-web-lib/resources/js/plugins.js | 8 - .../plt-web-lib/resources/logo-and-text.png | Bin 18844 -> 0 bytes .../plt-web-lib/resources/logo.png | Bin 6717 -> 0 bytes .../plt-web-lib/resources/plticon.ico | Bin 7886 -> 0 bytes pkgs/plt-web-pkgs/plt-web-lib/style.rkt | 32 - pkgs/plt-web-pkgs/plt-web-lib/utils.rkt | 37 - pkgs/plt-web-pkgs/plt-web/COPYING.txt | 676 ------ pkgs/plt-web-pkgs/plt-web/COPYING_LESSER.txt | 165 -- pkgs/plt-web-pkgs/plt-web/LICENSE.txt | 10 - pkgs/plt-web-pkgs/plt-web/info.rkt | 10 - 59 files changed, 4 insertions(+), 9020 deletions(-) delete mode 100644 pkgs/plt-web-pkgs/plt-web-doc/COPYING.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web-doc/COPYING_LESSER.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web-doc/LICENSE.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web-doc/info.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-doc/plt-web.scrbl delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/COPYING.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/COPYING_LESSER.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/LICENSE.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/build.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/extras.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/indexes.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/info.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/layout.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/links.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/main.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/private/roots.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/add-logo-text.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/css/gumby-base.css delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/css/gumby-slice.css delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/css/gumby-x.css delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/css/gumby.css delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/css/style.css delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/file-icons.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/file.png delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/folder.png delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/fonts/icons/entypo.eot delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/fonts/icons/entypo.ttf delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/fonts/icons/entypo.woff delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.init.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.min.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/jquery-1.9.1.min.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/jquery.mobile.custom.min.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/modernizr-2.6.2.min.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.checkbox.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.fittext.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.fixed.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.navbar.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.radiobtn.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.retina.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.skiplink.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.tabs.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/gumby.toggleswitch.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/ui/jquery.validation.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/main.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/js/plugins.js delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/logo-and-text.png delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/logo.png delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/resources/plticon.ico delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/style.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web-lib/utils.rkt delete mode 100644 pkgs/plt-web-pkgs/plt-web/COPYING.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web/COPYING_LESSER.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web/LICENSE.txt delete mode 100644 pkgs/plt-web-pkgs/plt-web/info.rkt diff --git a/pkgs/plt-services/info.rkt b/pkgs/plt-services/info.rkt index 8e94505bbe..ca09361770 100644 --- a/pkgs/plt-services/info.rkt +++ b/pkgs/plt-services/info.rkt @@ -24,7 +24,6 @@ "scheme-lib" "scribble-lib" "compatibility-lib" - "plt-web" "web-server-lib" "rackunit-lib")) diff --git a/pkgs/plt-services/meta/drdr/pkgs.rktd b/pkgs/plt-services/meta/drdr/pkgs.rktd index c48e0c2b69..9ef2eb26e4 100644 --- a/pkgs/plt-services/meta/drdr/pkgs.rktd +++ b/pkgs/plt-services/meta/drdr/pkgs.rktd @@ -4,8 +4,11 @@ ("remote-shell-lib" "git://github.com/racket/remote-shell/?path=remote-shell-lib") ("remote-shell-doc" "git://github.com/racket/remote-shell/?path=remote-shell-doc") ("remote-shell" "git://github.com/racket/remote-shell/?path=remote-shell") - ("distro-build-server" "git://github.com/racket/distro-build/?path=distro-build-server") + ("plt-web-lib" "git://github.com/racket/plt-web/?path=plt-web-lib") + ("plt-web-doc" "git://github.com/racket/plt-web/?path=plt-web-doc") + ("plt-web" "git://github.com/racket/plt-web/?path=plt-web") ("distro-build-client" "git://github.com/racket/distro-build/?path=distro-build-client") + ("distro-build-server" "git://github.com/racket/distro-build/?path=distro-build-server") ("distro-build-lib" "git://github.com/racket/distro-build/?path=distro-build-lib") ("distro-build" "git://github.com/racket/distro-build/?path=distro-build") "sha" diff --git a/pkgs/plt-services/meta/props b/pkgs/plt-services/meta/props index 854d5da886..6374944900 100755 --- a/pkgs/plt-services/meta/props +++ b/pkgs/plt-services/meta/props @@ -867,7 +867,6 @@ path/s is either such a string or a list of them. "pkgs/plt-services/meta/images/taking-screenshots/racket-widget.scm" drdr:command-line #f "pkgs/plt-services/meta/pkg-index" responsible (jay) "pkgs/plt-services/meta/props" responsible (eli jay) drdr:command-line (racket "-um" * "verify") -"pkgs/plt-web-pkgs" responsible (mflatt samth) "pkgs/preprocessor" responsible (eli) "pkgs/profile-pkgs" responsible (eli samth stamourv) "pkgs/r5rs-pkgs" responsible (mflatt) diff --git a/pkgs/plt-web-pkgs/plt-web-doc/COPYING.txt b/pkgs/plt-web-pkgs/plt-web-doc/COPYING.txt deleted file mode 100644 index 4432540474..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-doc/COPYING.txt +++ /dev/null @@ -1,676 +0,0 @@ - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. - diff --git a/pkgs/plt-web-pkgs/plt-web-doc/COPYING_LESSER.txt b/pkgs/plt-web-pkgs/plt-web-doc/COPYING_LESSER.txt deleted file mode 100644 index fc8a5de7ed..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-doc/COPYING_LESSER.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/pkgs/plt-web-pkgs/plt-web-doc/LICENSE.txt b/pkgs/plt-web-pkgs/plt-web-doc/LICENSE.txt deleted file mode 100644 index 9300b4b571..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-doc/LICENSE.txt +++ /dev/null @@ -1,10 +0,0 @@ -plt-web-doc -Copyright (c) 2010-2014 PLT Design Inc. - -This package is distributed under the GNU Lesser General Public -License (LGPL). This means that you can link this package into proprietary -applications, provided you follow the rules stated in the LGPL. You -can also modify this package; if you distribute a modified version, -you must distribute it under the terms of the LGPL, which in -particular means that you must release the source code for the -modified software. See COPYING_LESSER.txt for more information. diff --git a/pkgs/plt-web-pkgs/plt-web-doc/info.rkt b/pkgs/plt-web-pkgs/plt-web-doc/info.rkt deleted file mode 100644 index c7a26183f7..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-doc/info.rkt +++ /dev/null @@ -1,16 +0,0 @@ -#lang info - -(define collection "plt-web") - -(define pkg-desc "documentation part of \"plt-web\"") - -(define pkg-authors '(eli mflatt samth)) - -(define deps '("base" - "plt-web-lib" - "racket-doc" - "scribble-doc" - "scribble-lib")) -(define update-implies '("plt-web-lib")) - -(define scribblings '(("plt-web.scrbl"))) diff --git a/pkgs/plt-web-pkgs/plt-web-doc/plt-web.scrbl b/pkgs/plt-web-pkgs/plt-web-doc/plt-web.scrbl deleted file mode 100644 index 12d1ed2310..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-doc/plt-web.scrbl +++ /dev/null @@ -1,311 +0,0 @@ -#lang scribble/manual -@(require scribble/bnf - (for-label (except-in racket/base #%top #%module-begin) - scribble/html - plt-web)) - -@(define (tag . s) @tt{<@|s|>}) - -@title{Creating PLT-Style Web Pages} - -@defmodulelang[plt-web]{The @racketmodname[plt-web] language builds on -@racketmodname[scribble/html] for generating pages in the same style -as @url["http://racket-lang.org/"].} - -Unlike @racketmodname[scribble/html], the values of expressions in a -@racketmodname[plt-web] module are not treated as HTML. Instead, -top-level expressions in @racketmodname[plt-web] are as in -@racket[racket/base]. - -Meanwhile, a @racket[main] submodule is added that runs -@racket[render-all] (after parsing command-line arguments) to render -all registered resources, including HTML pages. Pages are meant to be -registers through a @racket[page] form that is defined by a -@racket[define-context] or @racket[define+provide-context] declaration -that configures a particular site (i.e., collection of pages). - -@; ---------------------------------------- - -@section{Configuring a Site} - -A site is identifiers by a relative directory path, which determines -where the site's content is generated. For a non-local build, the -relative directory is mapped to a destination URL via -@racket[url-roots]. - -@defproc[(site [dir path-string?] - [#:url url (or/c string? #f) #f] - [#:always-abs-url? always-abs-url? any/c #t] - [#:generate? generate? any/c #t] - [#:share-from share-from (or/c site? #f) #f] - [#:page-style? page-style? any/c #t] - [#:page-headers page-headers outputable/c null] - [#:meta? meta? any/c page-style?] - [#:robots robots (or/c #f #t outputable/c) #t] - [#:htaccess htaccess (or/c #f #t outputable/c) #t] - [#:navigation navigation (listof outputable/c) null]) - site?]{ - -Creates a value that represents a site. - -If @racket[url] is not @racket[#f], then it will be registered to -@racket[url-roots] for a build in web mode (as opposed to local mode) -and recorded as the target for @racket[dir] in a @filepath{sites.rktd} -file when building in @tech{deployment mode}. - -If @racket[always-abs-url?] is true (the default), then @racket[url] -is registered with a @racket['abs] flag, so that (in @tech{deployment -mode}) references within a site are relative to the site root, as -opposed to relative to the referencing resource. - -If @racket[generate?] is @racket[#f], then resources for the site -(such as icons or CSS files) are not generated. - -If @racket[share-from] is a site, then resources generated for the -site (such as icons or CSS files) are used when as possible for the -new site. - -If @racket[page-style?] is true, HTML pages generated for the site -include content to set the style of the overall page. Otherwise, only -sufficient resources and content are included to specify the style of -the PLT web-page header (i.e., a bar with the Racket logo). - -The @racket[page-headers] argument provides content for the header of -any HTML page generated at the site via @racket[page] or @racket[page*]. - -If @racket[meta?] is true, then @filepath{.htaccess}, -@filepath{robots.txt}, and similar files are generated for the site. -The @racket[robots] and @racket[htaccess] arguments determine robot -and access information included by the default resource-mapping -function. A @racket[#t] value enables normal access, a @racket[#f] -value disables access, and any other value is used as the -corresponding specification. - -The @racket[navigation] argument determines content (usually links) to -be included in the PLT header. Currently, up to four such links are -supported.} - - -@defproc[(site? [v any/c]) boolean?]{ - -Returns @racket[#t] if @racket[v] represents a site, @racket[#f] otherwise.} - - -@defproc[(site-dir [s site?]) path-string?]{ - -Extracts the destination directory of @racket[s].} - - -@defproc[(site-css-path [s site?]) outputable/c]{ - -Extracts a reference to a CSS resource for HTML pages at site -@racket[s].} - -@defproc[(site-favicon-path [s site?]) outputable/c]{ - -Extracts a reference to a @filepath{favicon.ico} file for the -site @racket[s]. The result is @racket[#f] if meta-file resources are not -generated for the site.} - - -@defproc[(site-navbar [s site?]) outputable/c]{ - -Generates HTML for the banner on HTML pages at the site @racket[s].} - - -@defproc[(site-navbar-dynamic-js [s site?]) outputable/c]{ - -Generates a JavaScript definition of a @tt{AddNavbarToBody} function, -which adds a banner dynamically to the current page for a page at site -@racket[s].} - -@; ---------------------------------------- - -@section{Creating Site Content} - -@defform[(page keyword-arg ... form ...) - #:grammar ([keyword-arg (code:line keyword expr)])]{ - -Equivalent to @racket[(page* keyword-arg ... (lambda () (begin/text form ...)))].} - -@defproc[(page* [#:site s site?] - [#:html-only html-only? any/c #f] - [#:id id path-string? #f] - [#:file file (or/c path-string? #f) #f] - [#:title title string? (... id)] - [#:link-title link-title outputable/c title] - [#:window-title window-title string? (string-append "Racket: " label)] - [#:width width (or/c #f 'full outputable/c) #f] - [#:description description string? #f] - [#:extra-headers extra-headers outputable/c #f] - [#:extra-body-attrs body-attrs outputable/c #f] - [#:referrer referrer (string? outputable/c ... . -> . outputable/c) - (λ (url . content) - (a href: url (if (null? content) linktitle content)))] - [#:part-of part-of (or/c #f symbol?) #f] - [content outputable/c]) - outputable/c]{ - -Registers an HTML page as a resource (via @racket[resource]) and -returns a value that can be used to refer to the page within another -resource, assuming that @racket[html-only?] is @racket[#f]. If -@racket[html-only?] is true, then the result represents HTML for the -page, instead of a way to reference the page, and no resource is -registered. - -The page is generated as part of the site @racket[s], and either an -@racket[id] or @racket[file] must be provided to identify the page -within the site. Furthermore, either @racket[id] or @racket[title] -must be provided to determine the page's title. - -The @racket[link-title] and @racket[window-title] arguments control -separate the title of the page as used by references and for the page -as viewed. - -The @racket[width] argument determines the page wide: @racket[#f] is -the default, @racket['full] is full width, and any other value is used -as a CSS width. - -The @racket[description] argument provides a meta tag for the page. - -The @racket[part-of] argument determines where the page resides in a -larger site when the layout uses a global navigation bar (but the -current format does not use a navigation bar in that sense).} - -@defform[(plain keyword-arg ... form ...) - #:grammar ([keyword-arg (code:line keyword expr)])]{ - -Equivalent to @racket[(plain* keyword-arg ... (lambda () (begin/text form ...)))].} - -@defproc[(plain* [#:site s site?] - [#:id id path-string? #f] - [#:suffix suffix (or/c #f string?) #f] - [#:file file (or/c path-string? #f) #f] - [#:referrer referrer (string? outputable/c ... . -> . outputable/c) - (λ (url . content) - (a href: url (if (null? content) linktitle content)))] - [#:newline newline? any/c #t] - [content outputable/c]) - outputable/c]{ - -Like @racket[page*], but for a resource that is a plain file.} - -@deftogether[( -@defproc[(copyfile [#:site s site?] - [src path-string?] - [dest string? (basename src)]) - outputable/c] -@defproc[(symlink [#:site s site?] - [src path-string?] - [dest string? (basename src)]) - outputable/c] -)]{ - -Registers a resource that is either a copy of a file or a symbolic link, -returning a value that can be used to reference the resource.} - -@defproc[(make-indexes [s site?] - [dir (or/c 'same relative-path?)] - [#:depth depth (or/c #f exact-nonnegative-integer?) #f] - [#:use-dir? use-dir? ((or/c 'same relative-path?) . -> . any/c) (lambda (dir) #t)]) - void?]{ - -Uses @racket[index-site] and @racket[index-page] to register an -@filepath{index.html} file for every directory within -@racket[dir] (relative to the current directory) that does not have an -@filepath{index.html} file already. If @racket[depth] is not @racket[#f], -then subdirectories are explored at most @racket[depth] layers deep. -The @racket[use-dir?] predicate is called for each directory to determine -whether the directory's subdirectories are traversed. - -The generated index files are registered for the site @racket[s] at -destinations that correspond to treating the current directory as the -site root.} - -@deftogether[( -@defproc[(index-site? [v any/c]) boolean?] -@defproc[(index-site [site site?]) index-site?] -@defproc[(index-page [isite index-site?] - [path (or/c 'same relative-path?)] - [content (listof (cons/c path-string? (or/c exact-integer? 'dir)))] - [#:html-only? html-only? any/c #f]) - outputable/c] -)]{ - -The @racket[index-page] function registers an individual -@filepath{index.html} file (or returns its content if -@racket[html-only?] is true) for the given index site, where an index -site is created once for a given site (to register support -resources, such as icons). The @filepath{index.html} file is -generated for the subdirectory indicated by @racket[path]. The index -file lists the content specified by @racket[content], where -an integer corresponds to a file size and @racket['dir] indicates -a directory.} - -@defproc[(call-with-registered-roots [thunk (-> any)]) any]{ - -Calls @racket[thunk] with @racket[url-roots] set to a mapping for -registered sites.} - -@; ---------------------------------------- - -@section{Generating Site Content} - -To generate web pages from a @racket[plt-web] module, run the module, -typically with a @Flag{o} flag to specify the output directory. For -example, if @filepath{pages.rkt} is the module, then - -@commandline{racket pages.rkt -o /tmp/pages} - -builds the output to a @filepath{/tmp/pages} directory. - -The command-line flags are recognized by the @racket[main] submodule -that is introduced by @racketmodname[plt-web]: - -@itemlist[ - - @item{@Flag{w} or @DFlag{web} --- Build output in @deftech{deployment - mode}, where references within a top-level site use relative - paths or site-relative paths (that start with @litchar{/}), - while references across top-level sites use absolute URLs. This - mode is the default.} - - @item{@Flag{l} or @DFlag{local} --- Build output in local mode using - @filepath{file://} URLs between top-level sites and relative - paths within a site.} - - @item{@Flag{r} or @DFlag{relative} --- Build output in local-relative mode, where - all references use relative paths, exploiting the fact that - sites are rendered in adjacent directories within the output - directory. (You may need to deal with an occasional manual - selection of @filepath{index.html} when viewing relative output.)} - - @item{@Flag{o} @nonterm{dir} or @DFlag{output} @nonterm{dir} --- - Writes output to subdirectories of @nonterm{dir}, which - defaults to the current directory. All existing files and - directories within @nonterm{dir} will be deleted. As a safety - check, the destination directory must overlap with any - installed package directory.} - - @item{@Flag{f} or @DFlag{force} --- Overwrite files in the destination - directory.} - - @item{@PFlag{e} @nonterm{path} or @DPFlag{extra} @nonterm{path} --- - Require the module @nonterm{path} before running - @racket[build-all]. This flag can be used multiple times.} - -] - -@; ---------------------------------------- - -@section{Utilities} - -@defproc[(basename [p path-string?]) string?]{ - -Extracts a file name from a path.} - - -@defproc[(web-path [str string?] ...) string?]{ - -Joins @racket[str]s with a @racket["/"] separator to form a relative -URL path.} diff --git a/pkgs/plt-web-pkgs/plt-web-lib/COPYING.txt b/pkgs/plt-web-pkgs/plt-web-lib/COPYING.txt deleted file mode 100644 index 4432540474..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/COPYING.txt +++ /dev/null @@ -1,676 +0,0 @@ - - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. - diff --git a/pkgs/plt-web-pkgs/plt-web-lib/COPYING_LESSER.txt b/pkgs/plt-web-pkgs/plt-web-lib/COPYING_LESSER.txt deleted file mode 100644 index fc8a5de7ed..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/COPYING_LESSER.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/pkgs/plt-web-pkgs/plt-web-lib/LICENSE.txt b/pkgs/plt-web-pkgs/plt-web-lib/LICENSE.txt deleted file mode 100644 index d92501d4ea..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/LICENSE.txt +++ /dev/null @@ -1,10 +0,0 @@ -plt-web-lib -Copyright (c) 2010-2014 PLT Design Inc. - -This package is distributed under the GNU Lesser General Public -License (LGPL). This means that you can link this package into proprietary -applications, provided you follow the rules stated in the LGPL. You -can also modify this package; if you distribute a modified version, -you must distribute it under the terms of the LGPL, which in -particular means that you must release the source code for the -modified software. See COPYING_LESSER.txt for more information. diff --git a/pkgs/plt-web-pkgs/plt-web-lib/build.rkt b/pkgs/plt-web-pkgs/plt-web-lib/build.rkt deleted file mode 100644 index 61414a6d67..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/build.rkt +++ /dev/null @@ -1,89 +0,0 @@ -#lang racket/base - -(require racket/cmdline racket/runtime-path racket/file scribble/html - pkg/path net/url - "private/roots.rkt") - -(define build-mode 'web) -(define output-dir (current-directory)) -(define warn? #t) -(define extra-files '()) - -(command-line - #:once-any - [("-w" "--web") - "web mode: create content that is viewable via HTTP" - (set! build-mode 'web)] - [("-l" "--local") - "local mode: create content that is viewable in the build directory" - (set! build-mode 'local)] - [("-r" "--relative") - "local mode, but all links are relative" - (set! build-mode 'relative)] - #:once-each - [("-o" "--output") dir - "output directory" - " (defaults to the current directory)" - (unless (directory-exists? dir) - (printf "Creating \"~a\"\n" dir) (make-directory dir)) - (set! output-dir dir)] - [("-f" "--force") - "avoid warning about directory cleanup" - (set! warn? #f)] - #:multi - [("+e" "++extra") extra - "extra file to render more content" - (set! extra-files (cons extra extra-files))]) - -(let ([cache (make-hash)]) - (define (check-dest p) - (when (path->pkg p #:cache cache) - (raise-user-error - 'plt-web - "destination overlaps with package directories, refusing to build (use `-o')"))) - (check-dest output-dir) - (for ([p (in-directory output-dir)]) - (when (directory-exists? p) - (check-dest p)))) - -(parameterize ([current-directory output-dir]) - (define paths (sort (map path->string (directory-list)) stringstring (path->url (build-path output-dir (car s)))) - ;; Drop 'abs, if any, from (cddr s) - '(index))) - (registered-url-roots))] - [else (url-roots)])]) - (for ([extra (in-list extra-files)]) - (if (file-exists? extra) - (dynamic-require `(file ,extra) #f) - (printf " ignoring missing extra file: ~a\n" extra))) - (parameterize ([current-directory output-dir]) - (render-all))) - -(case build-mode - [(web) (call-with-output-file (build-path output-dir "sites.rktd") - #:exists 'truncate - (lambda (o) - (write (for/hash ([i (in-list (registered-url-roots))]) - (values (car i) (cadr i))) - o) - (newline o)))] - [else (void)]) - -(printf "Done.\n") - -(module test racket/base) diff --git a/pkgs/plt-web-pkgs/plt-web-lib/extras.rkt b/pkgs/plt-web-pkgs/plt-web-lib/extras.rkt deleted file mode 100644 index f5bc60b9e4..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/extras.rkt +++ /dev/null @@ -1,132 +0,0 @@ -#lang at-exp racket/base - -(require scribble/html) - -;; list of a header paragraphs and sub paragraphs (don't use `p' since it looks -;; like they should not be nested) -(provide parlist) -(define (parlist first . rest) - (list (div class: 'parlisttitle first) - (map (λ (p) (div class: 'parlistitem p)) rest))) - -;; a div that is centered, but the text is still left-justified -(provide center-div) -(define (center-div . text) - (let-values ([(attrs body) (split-attributes+body text)]) - (apply div align: 'center - (append attrs - (list (div align: 'left style: "display: inline-block;" - body)))))) - -;; a grayish tt text -(provide TT) -(define (TT . xs) - @tt[style: "background-color: #d8d8e8;"]{@xs}) -(provide PRE) -(define (PRE . xs) - @pre[style: "background-color: #d8d8e8;"]{@xs}) - -;; some tags with convenient separators -(provide make-separated-tag (rename-out [the-separator ~]) - p* ul* ol* dl*) -(struct separator ()) -(define the-separator (separator)) -(define (split-list-by-separator list) - ;; The idea is to drop all whitespace around the separator, and then drop the - ;; common leading all-space prefixes in each chunk, so the separators are - ;; effectively ignored for indentation in the output. This is too much for - ;; html output (leaving the whitespaces in what this is used for is - ;; harmless), but it might be useful for some future application. - (define (drop-ws list left?) - (if (and (pair? list) (string? (car list))) - (let ([str (regexp-replace (if left? #rx"^[ \t\r\n]+" #rx"[ \t\r\n]+$") - (car list) "")]) - (if (equal? "" str) (drop-ws (cdr list) left?) (cons str (cdr list)))) - list)) - (define (drop-indentation/reverse orig-text) - (define N #f) - (if (null? orig-text) - orig-text - (let loop ([text orig-text] [r '()]) - (cond [(null? (cdr text)) - (if N (cons (car text) r) (reverse orig-text))] - [(not (equal? "\n" (cadr text))) - (loop (cdr text) (cons (car text) r))] - [(not (and (string? (car text)) - (regexp-match? #rx"^ +$" (car text)))) - (reverse orig-text)] - [else (let ([len (string-length (cadr text))]) - (set! N (if N (min len N) len)) - (loop (cddr text) - (list* (λ () (make-string (- len N) #\space)) - "\n" r)))])))) - (let loop ([list (drop-ws list #t)] [cur '()] [r '()]) - (define (get-r) (cons (drop-indentation/reverse (drop-ws cur #f)) r)) - (cond [(null? list) (reverse (get-r))] - [(separator? (car list)) (loop (drop-ws (cdr list) #t) '() (get-r))] - [else (loop (cdr list) (cons (car list) cur) r)]))) -(define ((make-separated-tag wrapper #:newlines? [nls? #t] . tags) . body) - (let* ([chunks (split-list-by-separator body)] - [chunks (if (null? (car chunks)) (cdr chunks) chunks)] - [body (for/list ([text (in-list chunks)] - [tag (in-cycle (in-list tags))]) - (apply tag text))] - [body (if nls? (add-newlines body) body)]) - (wrapper body))) -(define p* (make-separated-tag values p)) -(define ul* (make-separated-tag ul li)) -(define ol* (make-separated-tag ol li)) -(define dl* (make-separated-tag dl dt dd)) - -;; conditional display on screen or print -(provide printonly screenonly) -(define (printonly . body) (apply div class: 'printonly body)) -(define (screenonly . body) (apply div class: 'screenonly body)) - -;; (sections) defines a `section' function and spits out a (delayed) table of -;; contents for all its future uses in the page. -(provide sections) -(require (for-syntax racket/base)) -(define (section->label title) - (regexp-replace* #rx"[^a-z0-9_]+" (string-downcase title) "_")) -(define (make-sectioner #:toc? [toc? #t] - #:newpages? [newpages? #f] - #:show-section-in-subtitle [sec-in-subsec? #t]) - (define sections '()) - (define cur-sec #f) - (define subsections '()) - (define (->li/reverse items [more-style #f]) - (ul style: more-style (add-newlines (map li (reverse items))))) - (define (collect-subs) - (when (pair? subsections) - (set! sections - (cons (list (car sections) - (->li/reverse subsections "font-size: small;")) - (cdr sections))) - (set! subsections '()))) - (define ((add-section sub?) #:newpage? [newpage? newpages?] . title) - (let* ([title* (if sub? (list cur-sec ": " title) title)] - [label (section->label (xml->string title*))]) - (unless sub? (collect-subs) (set! cur-sec title)) - (let ([title (a href: (list "#" label) style: "text-decoration: none;" - title)]) - (if sub? - (set! subsections (cons title subsections)) - (set! sections (cons title sections)))) - ((if sub? h2 h1) - (a name: label - style: (and newpage? (pair? (cdr sections)) - "page-break-before: always;") - (if sec-in-subsec? title* title))))) - (values (add-section #f) (add-section #t) - (and toc? (λ () (collect-subs) (->li/reverse sections))))) -(define-syntax (sections stx) - (define (make-it stx args) - (with-syntax ([sec (datum->syntax stx 'section)] - [sub (datum->syntax stx 'subsection)] - [(x ...) args]) - #'(begin (define-values [sec sub toc] (make-sectioner x ...)) - toc))) - (syntax-case stx () - [(s x ...) (make-it #'s #'(x ...))] - [_ (identifier? stx) (make-it stx #'())])) diff --git a/pkgs/plt-web-pkgs/plt-web-lib/indexes.rkt b/pkgs/plt-web-pkgs/plt-web-lib/indexes.rkt deleted file mode 100644 index 66862ef270..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/indexes.rkt +++ /dev/null @@ -1,74 +0,0 @@ -#lang at-exp racket/base -(require scribble/html - racket/format - racket/runtime-path - "layout.rkt" - "style.rkt") - -(provide make-indexes - (rename-out [mk-index-site index-site]) - index-site? - index-page) - -(define-runtime-path file-png "resources/file.png") -(define-runtime-path folder-png "resources/folder.png") - -(struct index-site (site file-icon folder-icon)) - -(define (index-page is dir content - #:html-only? [html-only? #f]) - (page #:site (index-site-site is) - #:file (if (eq? dir 'same) - "index.html" - (path->string (build-path dir "index.html"))) - #:title "Index" - #:html-only? html-only? - @columns[10 #:row? #t]{ - @table{@(for/list ([p+k (in-list content)]) - (define p (let ([p (car p+k)]) - (if (path? p) - (path->string p) - p))) - (define k (cdr p+k)) - @tr{@td{@a[href: p]{@; - @img[src: (if (number? k) - (index-site-file-icon is) - (index-site-folder-icon is)) - width: "16" height: "16"] @; - @nbsp @; - @p}} - @td{@(if (number? k) - (~a (ceiling (/ k 1024)) "k") - "")}})}})) - -(define mk-index-site - (let ([index-site - (lambda (site) - (define file-icon (copyfile #:site site file-png)) - (define folder-icon (copyfile #:site site folder-png)) - (index-site site file-icon folder-icon))]) - index-site)) - -(define (build is root-dir p) - (unless (file-exists? (build-path root-dir p "index.html")) - (index-page is p - (for/list ([i (in-list (directory-list (build-path root-dir p)))]) - (define f (build-path root-dir p i)) - (if (file-exists? f) - (cons i (file-size f)) - (cons i 'dir)))))) - -(define (make-indexes site [dir 'same] - #:depth [depth #f] - #:use-dir? [use-dir? (lambda (p) #t)]) - (define is (mk-index-site site)) - (let loop ([dir dir] [depth depth]) - (build is (current-directory) dir) - (when (and (or (not depth) (positive? depth)) - (use-dir? dir)) - (for ([d (in-list (directory-list (if (eq? dir 'same) - (current-directory) - dir)))]) - (define p (if (eq? dir 'same) d (build-path dir d))) - (when (directory-exists? p) - (loop p (and depth (sub1 depth)))))))) diff --git a/pkgs/plt-web-pkgs/plt-web-lib/info.rkt b/pkgs/plt-web-pkgs/plt-web-lib/info.rkt deleted file mode 100644 index 5922575dcf..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/info.rkt +++ /dev/null @@ -1,11 +0,0 @@ -#lang info - -(define collection "plt-web") - -(define pkg-desc "PLT web page style and generation") - -(define pkg-authors '(eli mflatt samth)) - -(define deps '("base" - "at-exp-lib" - "scribble-html-lib")) diff --git a/pkgs/plt-web-pkgs/plt-web-lib/layout.rkt b/pkgs/plt-web-pkgs/plt-web-lib/layout.rkt deleted file mode 100644 index 89c833c7f2..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/layout.rkt +++ /dev/null @@ -1,353 +0,0 @@ -#lang at-exp racket/base - -(require scribble/html racket/dict (for-syntax racket/base syntax/name syntax/parse) - "utils.rkt" "resources.rkt" "private/roots.rkt") - -(provide page page* - plain plain* - copyfile - symlink - (rename-out [mk-site site]) - site? - site-dir - site-css-path - site-favicon-path - site-navbar - site-navbar-dynamic-js - call-with-registered-roots) - -(define-for-syntax (process-contents who layouter stx xs) - (let loop ([xs xs] [kws '()] [id? #f]) - (syntax-case xs () - [(k v . xs) (keyword? (syntax-e #'k)) - (loop #'xs (list* #'v #'k kws) (or id? (eq? '#:id (syntax-e #'k))))] - [_ (with-syntax ([layouter layouter] - [(x ...) (reverse kws)] - [(id ...) - (if id? - '() - (let ([name (or (syntax-property stx 'inferred-name) - (syntax-local-name))]) - (if name (list '#:id `',name) '())))] - ;; delay body, allow definitions - [body #`(λ () (begin/text #,@xs))]) - #'(layouter id ... x ... body))]))) - -(define (get-path who id file sfx dir) - (define file* - (or file - (let ([f (and id (symbol->string (force id)))]) - (cond [(and f (regexp-match #rx"[.]" f)) f] - [(and f sfx) - (string-append f (regexp-replace #rx"^[.]?" sfx "."))] - [else (error who "missing `#:file', or `#:id'~a" - (if sfx "" " and `#:suffix'"))])))) - (if dir (web-path dir file*) file*)) - -;; The following are not intended for direct use, see -;; `define+provide-context' below (it could be used with #f for the -;; directory if this ever gets used for a flat single directory web -;; page.) - -;; for plain text files -(define-syntax (plain stx) - (syntax-case stx () [(_ . xs) (process-contents 'plain #'plain* stx #'xs)])) -(define (plain* #:site site - #:id [id #f] #:suffix [suffix #f] - #:file [file #f] - #:referrer [referrer values] - #:newline [newline? #t] - content) - (resource/referrer (get-path 'plain id file suffix (site-dir site)) - (file-writer output (list content (and newline? "\n"))) - referrer)) - -;; page layout function -(define-syntax (page stx) - (syntax-case stx () [(_ . xs) (process-contents 'page #'page* stx #'xs)])) -(define (page* #:site site - #:id [id #f] - #:file [file #f] - ;; if this is true, return only the html -- don't create - ;; a resource -- therefore no file is made, and no links - ;; to it can be made (useful only for stub templates) - #:html-only? [html-only? #f] - #:title [label (if id - (let* ([id (format "~a" (force id))] - [id (regexp-replace #rx"^.*/" id "")] - [id (regexp-replace #rx"-" id " ")]) - (string-titlecase id)) - (error 'page "missing `#:id' or `#:title'"))] - #:link-title [linktitle label] - #:window-title [wintitle @list{Racket: @label}] - ;; can be #f (default), 'full: full page (and no div), - ;; otherwise, a css width - #:width [width #f] - #:description [description #f] ; for a meta tag - #:extra-headers [extra-headers #f] - #:extra-body-attrs [body-attrs #f] - #:referrer [referrer - (λ (url . more) - (a href: url (if (null? more) linktitle more)))] - ;; will be used instead of `this' to determine navbar highlights - #:part-of [part-of #f] - content0) - (define dir (site-dir site)) - (define (page) - (define desc - (and description (meta name: 'description content: description))) - (define resources (site-resources site)) - (define header - (let ([headers (resources 'headers)] - [extras (if (and extra-headers desc) - (list desc "\n" extra-headers) - (or desc extra-headers))]) - (if extras (list headers "\n" extras) headers))) - (define navbar ((resources 'make-navbar) (or part-of this))) - (define content - (list navbar "\n" - (case width - [(full) content0] - [(#f) (div class: 'bodycontent content0)] - [else (div class: 'bodycontent style: @list{width: @|width|@";"} - content0)]) - (resources 'postamble))) - @list{@resources['preamble] - @html{@|| - @head{@|| - @title{@wintitle} - @header - @||} - @(if body-attrs - (apply body `(,@body-attrs ,content)) - (body content))} - @||}) - (define this (and (not html-only?) - (resource/referrer (get-path 'page id file "html" dir) - (file-writer output-xml page) - referrer))) - (when this (pages->part-of this (or part-of this))) - (or this page)) - -;; maps pages to their parts, so symbolic values can be used to determine it -(define pages->part-of - (let ([t (make-hasheq)]) - (case-lambda [(page) (hash-ref t page page)] - [(page part-of) (hash-set! t page part-of)]))) - -(define (list-ref* l n d) - (if ((length l) . > . n) - (list-ref l n) - d)) - -(define ((navbar-content logo columns page-style?)) - (define (icon name) @i[class: name]{}) - (define (row . content) (apply div class: "row" content)) - (define main-promise (resource "www/" #f)) - @row{ - @(if page-style? - @a[class: "toggle" gumby-trigger: "#nav1 > .row > ul" href: "#"]{ - @icon{icon-menu}} - '()) - @a[class: "four columns logo" href: (url-of main-promise)]{ - @img[class: "logo" src: logo width: "198" height: "60" alt: "Racket"]} - @span[class: "one colums"]{} @; just spacing - @ul[class: "five columns"]{ - @li{@(list-ref* columns 0 "")} - @li{@(list-ref* columns 1 "")} - @li{@(list-ref* columns 2 "")} - @li{@(list-ref* columns 3 "")}}}) - -(define ((navbar-maker logo columns page-style?) this) - (list - @div[class: "navbar gumby-content" - style: (if page-style? "position: fixed;" "") - gumby-fixed: "top" id: "nav1"]{ - @((navbar-content logo columns page-style?))} - (if page-style? @div[style: "height: 60px;"]{} null))) - -(define gumby-preamble - @list{ - @; paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ - @comment{[if lt IE 7]> Gupvy` zE&lnl3uQf=d@=sm!UuNld~xSa{<6dCb)l#Hm1BCE-J}7f?KbSMGOZvM3u~EjiN7$b=!*1ZUnJ(4 z*zbu&d<4=Ey}ocw8sa;m`6&L4XpMSYYcT|hU`YF=??P*UKH_mhPGO`D5Le90>-q?p zC5dD^l;VIt#yJd6SZvVJjog&kDhLVc-9R?kAvIIz0=xAAVgn0lA3HyLdKf5A8xnmb8n@-dC6HUb1T! z-lD&|@NClOUXa_tGn}ygF&?OG!VVYXA=Xc(5yk}$K;xm&i1CPVP1=)$GjQ)I8ouDt z7e*%ih&J}beqnGQU9$Va=%iCHvG)rTd#I^r;_f9F@Z<>V zKXz>8bI+}ug2QHd{oHdO!X3uOnGlwBjA?ijV^g@E$04(2y)5a=P;Lye-hi=TU)S9> zu#ibAG6Omo8>eQHrCyBIDMKtxMXQuOHgXLAE=H)@CoYnSB*r_5OB-}|=$RzZH5`)P zB?qZZCG8(zERnZ4RgF(M7 z9E!~B4~5qix+STnwRO6#r&V(N;TL=RHrIN6J<(*y4O9NchIGZDxLX?Y*>s_)qz?BM zTB}mea1}gJ$eMFI#o0Z*(45UA69KO?tb`qQqn;>xpo<&z4Zsup zE>Q5`GlK$Q)ai{S5Q+|R1_%Rv$)q<+Q2ua#@DM0}#B*s6Qllw<(0R$oBJ-w8O}^fM2>qXp$T6)k}YL&)*)tcRSbJa}VEgIFggHQ7N32 zvf=%qRr{C9YZX@}Z&N&;ls;s$>(|7?Z5C<&=l<^Sz4z7ghy9SB(`mzfMcr7tn~>GVnvztrBE&z%iEsdl+tzQW*&ed_zQ-u#kfA71+qBFHOiLB&}r;v3i@;YOdw8B#(t zI}5FTp(P%}Vq<173k*hDe2@Tk%XuH18B1<3N~BMkhzpbYfesWBT77ChZuL6_%^Uo3 z5hha()1RDo0B##>lhSXj_`Y;UZwoB+)T~IgTy}Q^oz~`t_DJuHiqh$~+0voj53jcR zuPur0U_(PBrgnxJ%E5GY?}|vYHIz*5TBYd`MfrN@jV@@6HkTp{AWVgLWrqV^FuS09 z*bXsbUX#3hiVI%wa(bOMOcjyk1lU%t3eGh_l5b*A+OFDOdPxdPVYsDV%lAI;(%ORu z*J439Q_ejv@03nMf9kC{f&tJL4Fkf>fKg=eT)hOZa#<*@U6T%G@+p(?37;~IPvLCw z8(KJA8X4R5^@%F5l}k1s2=9&p-ccgKKfXT^nv zR{~DHQ&ChJ)_K|YzgZGF9P?|+z$LZ5X&o(1!Y3<{^;BY@i7M%sRq`0Za4uuPX#)^b zsC&xjRz&TZpNwpXD(nGaEeQ7mkv(njJ`VoiCH8=&hY1Wd3~#}~-$`x?kOmwWZM=RF zFa3c}mD8C}vjblESgg5g!Qi^Chx5ZXH7QCuSzPpRNZQub^~hzH_Z1!CW=C=EBjIqv zjA+s2@j8;pV)u^9_Dm_1cQ}&ieAl`KgIy2jTFf~muf$>Da(p#yh?pd6d`aU;{zY`2KG^om=RS(R)^tu(x`8x|kwt>P5`nEwA4~{hR!BA%q z-wt`{+ugm2qo}$U%$Z%PTBh?;!Jt2cZ`arTDa39}$UsT6xi#qV$wV{~40zpET;q+j z@@?s`1RILHRC?lduq7qrergO(bg2)qE?C@!_zf+e(EllhLvau2+Yz2277y<4lOFQs zJ9?X{>TA=RdOM=tk(-X*q#i$3US8%u&-v8N9d5UxxZNH69)EUV&F0N(28M@+i@m)? zjGNX&i#es)B{cb;8MMNTFS z`hm4;^WHU^-`pf*FdKj^zY*461{q41)*O}2j`mDC8X>!n_Wrb1*mFQKb`Tfj7u_E@7*hx?&lAthQ+f*xJ17%6efY+{=^CRkq7!DcpVk%MYkTBB#|K@>j zPv6ky^-jBe`nS=&t>pD~te?*J&6-vFZjJtY!W6M4^*-I4;aRmdy`DqDNwUczZJd@J z9EgWv^X6x#P0P-`JQj-2o0nDZo;fr;6F@T5P2l(4)3p6!f`|TY~Bzz>Rnb_ zIM`8Ww0m8(h;+xYS;27Vk%&uuI-2AiUN}tVxUIfA> z`)xJ2Kj|O=O}7sC9CnKd+J{x>^w6}yf~6=FFfMfwwggF|GZj_mH(}1z3AL-UWSo3* z4`iGtHX8GcsW zm?hv7>#SL-l|pkWsl^VHaT*ss(?t@L3~qP?&=W$5n!5B95kiQZG`2a762E;Ckr2(m z=g%PA1v@R^hrG&V;S{1zl%$8M<<1#>tvl3{PTyd3u(Q*i37KP-4v#mN=js&>N3qjl zYbu5kiDV=ia(S?B^b%{ zo$kwK%}8J(8h8Zri^I27rPx%p(pJc%wfQBI9N{2*rV1WG^AV{5n4M4<>eH)Y%;z<0 z7sRYl7$T%%(>{R>lGP{i*M;~ut%oZa#ilA9#>YM+wdgS-ht-aJ_IriEJ? zc6QM3LxA0BMr;cw>`!1*K zHbKLacrXADuw8+MSR@>Rdq%Mn(~$UiJdpYw!%FKI(155d)Gs}+lGnkYZ$S};T=z79 zBfxoUKtot4e(blPzkT$V2nSpbb<&kW)cWI55r8{E_voR=q*s1BD)!2zch6xM>XW~T zi#3A3un=V8qtH38sJWqcg#BKGA8l}AKr1I(s~opN7zPlAkzkNA17;1W2qjd~SBU|V z0V+Ix=xNC@n7rn>7DBOwmrFS#q7QYs7pQLwKa399c;lr51DD=-X!U_7R(){Ut+&j# znWVwXZ(H{HK!cN?>YsCTPXD1d-#oNx?z~l!;$O31!7W$7;?c%!K|K9Q#Ewf8i`8P2 z8H^d^Y6Sm*ibNq>V#p#uNz4bYu{%j-XRtd{J~Q`evOC7*FD==8=a1D9L ztp>}k*47hzkk39`X&Jih)9qo6W}M6dd_4&i_~6?!xD+EKEOZ@@P{-lB@xsB)Vs1NJ z9KVo1OsZ!z0#AS*AAqJ!j@ilKeEm2L;mplfT%H{?>#n})s{83RUw33XjpUy0 z;Oayl=n|WDk z`N^G|mze$Wd{@`VO}kG_5qf1*OZyn^Sx0grWt zT~l);;(i1KvFqwq=&TgTC*6RsKVo8u3|_>OU_nGju<*(C3e6O;6w*wI6_aOAq>h07 zfHi1d4i7~bAa+u&M7c`-4sg{nrv>jMWfabivYwZnVLy-0N?7iewvQkb;r7I&Jzu|k z{?&1%mTca>fGss`THwumW!KVBd=3d=$Z8%lfb4ES;WF431UXdFy zCmSs5NKNPUP?nPmc|dA+63!9Bf-L_fWO)O!G>Yu$TC_1lLG~O1amje7 zwXx9P_qa9xhAi1huA3p(FAIxyIblQ zP?rrzX|vwtw>U>foff~#d{6jtXU>R5?dSdKGr%eFwIcQ=#WsU%ImIA+B0wUf zB2rTj6SP7zsMUhBEkVXHxZk7TX2=P^^6KG^G3ewHoV0ikiou6{{xD3SC$Y2{EU$_k z=}J`t*rI`I$%tgqL=Is>pX=48o|Oll7=au5%*Yc5R;s7AQb4wdmGn>3(g_EQ(&;dA0XgfRGkaF= z%-)%OGkUtGpHI*zv=@-0(bC+MPv_FPY=)G>a4d|p1qxkx15n5XI<#0r5_nir15=NO z5s!3Q5q8tUFO3chg8ad_D`tn zW+DBF;-gVBtOamn%n6DBI@HUN?4wyu3G*R8HAhMkCEM2HFIZ#>?@2?_GYHG?Yw8&t zMPPn;QxB~<*(h3$jR*QGGAC9*` z-z#sUxMXou-3MBImWWn;PFki7UD}Rm9H&0tAtoWi5AhATMfSlDQD(DPtY#=pYiuB% z?V8yIg_|dcsYBi7b-AJW_P~TmWC)i7j7H+z$nOES79PIyY?`j)TBWKf73fI!Myrj@ z7XOOt{_Jb_Yzuh$>|JK_s*qt?z@OYUyLQQ?k%-RN+;ZjOn{OVN>klBotaa&<;Uy0T zoRT9JpT44N@B#jK&7yCK&KS9&r`vAttE{j5{Vi)22f93vcT)fCiC>qqIji3aewxWn zDVgF&4A}lXWwbg5EQ*%UnK>y$`FqxjWSS;SN+gt$)KV&MHLTm98 zRNP8ZksWUL#C;=A@PfumXiYvVKP=BgrNkms_+43ZT(jir#fz?7c*S&tH)vcv?cjVS zWF{g=b=B`TM6wJren?ISN9KwFMxN-Sg+~b*Rt0un8%NtoNekqqZU@K5M@3d|47wJ% zqVZX1&14`MyaE0BNpABPgM)ztRHj&9NkfOZ&6ZS(sq$u@-&`?;{Hq&Go+V!I67i{& zWC#ZrM%t`xwzREiEi~MRoQ7U&V{m=Q=vm@+t1r|3eoILj;O1{!6!2RMHn(@kFL?($ z!UGOx!=nv3$)*b{3tSzp1>$3c(4t_#nzgvS3;mLRiO=a+Y`2FV52huX6mc$4ib`$O zUanKm!j78EE4sk1OYDwX9Ob>uWRFi~iIEaY!bjt_lvi{`oLfN?R(PPSx-!zIkWK_% zK>1;2W-=o94C;XB(QBedk5n;uFa^nAgOd=yDAk{Y(1-I3^a)oYqveKC_`bvgsm>C` z3z0StPJr|xGMFyp70L0lC*`=>cSij1Vci+S;>y9UrhxzApz+AW{?)_1_*D-N4EPJm z!j83TI~FS5m=S}X!p|B}1BCcTUI?E?c$CdXeLemGF(T;@6obJHCWYWWoZ<#@hvVz8 zeZW$&HHgV+&IoNwAV@>eUxa6Jpe{;30aqYrIHeg;`iUV0O#^Zl88ZLqZSx*bYM@XjLs9{Pll+GwU4{Zrm;pvEQB%(eAREMq9U>UCO z#YH%z>>X@OA9oq44hEpL0r}T%htc}VD{ke)D_}9oTW;l*6KE6|i+m^kJ&wQo9S*$U9EUhK4Z)n)w5D%J3zKdS^@56G)z3pl2i!CrHDm_rEq3bIwln#W45EE~Ll}>%OF3xsh+_IATfRX3`Fy3GS$w8b%LoH^ieWFh1lN zU(ie2@BiVkFYEx*4gTQh!dp3Cf7>H}w)R$u-+tRy{!G2o>}g08S{Gi~+beo4S6u&qXBe&ivNxQlSW)BrwW1x4@ zYeA2jJdws$f9E~vPJ#a;(qBs-0Q;Ch&6dr8RD52y*+h6r0SR!MVe(Btg`j3owV-b7 zN7|v9!h;+%nT#qCEkQ=72)h@tDJkNJqy#YaD9Uq|O>33s@ z%l^l6jleV#7nP2^OIrBFMPg@9O3zI61Cy?EYmj5S2vzKa|@YKL1FJeafYwPg8GSEFwB#MvGEz8$=> zO?`QRC3_^q7xR;r^u%$eQ@2)bRF-vE($a9+wpr(NzB@ee`f4eB_DTNsBK6Irt#jov z!VmWQuc7EvJwH%)mwDL9*vl4Rp zpheq6j;_EK?oPa2i^a-y`!CLJu7&hEN;jWOIka1J9=)4VSgjb@C1Gyn*xjILq}tb& z1~~eu2dXxMywQV7fvhCz>17nTfa3KO$c2}Q8Z9jw2G>Vv5Hd0{Tu5b0{E`RNUvXg; z)awJqu-D=uy%FRO4)eFCRt1hs^z#pf)J;R8mXi4KWNjnawqfK2)$;-`){e*~?+GHk zH9j>BP)nAf85p5PQ{@2Wf*7hc7i?qfUcCNjgVTfIQ$F4d`ZJYI^ZZfBC=HhLeHRm~ z`U(yH$nY>Ckz}J$9O;6dH))r5vOli1aYj`UFt|S~f2XEB*0nz$=678O`5a)p!_N!K zqcn08LrfPjD@@SB4R*1D4sLgHo8FE(`zANnd$^$7q8& zXn|Eg4t{(iS~*qjk$kBD(33+kMe3q-!J&!$(hyWZn9=w_1qH0@B3`TOs2XzQVq9UZ z@sT2o=ws^fV)0lJKa@vGc>5AeR;tfUg6x`6*IHskDvcSh{Z^V;lom6?f1OVs{BUaidPY>x2Wsmet(eP#qSFG{c&}@ z1T~{aJuJNef3uEIda8e6|5m`ngOaq@mXx+eZHi_0Zi`}zPHauu_Hw>b>exE*qWHtR z@kt)XA1HwoPu>Dv-VKZfYlemZ6l+iwe0y~xTNI*dS;tVAJ2865BE1+lBod@0ls}og z#{s?cH|_>!n@wF4%M@&Um)otkI`ww-PD{w(2tVA+pOqGwyb~`t{AtNzGrVH)dV_D^ z!U?}Yr!$Wm+=^stY-p_oepQz-TAhUhO6U3-;@hH%fG8id44ZTQ0Xt+f$QETGEzr?O z5HqO>a#@qa=umG`6r)}%kI$k;>%ab}h`AvV6cQwrNK#5eDFbI?9~Ws2eoEU9$UlsD zq-H4)IeVg{ZuXed8w2oNH~QA*w|OGTXgY}9 zhC#TI6aKHT2Q1*vEv%cpQVUtF)lQ8Ho13CxtHe>DdUT{YxX$XIu4qtIpYe%Ds zJFWJ)BXW`R!`xrcN$&i@h4A<-TsTsMMNXa)vc12AwJ>8Xf^1>UZ$*wiW#yy#)MIsn zQ<_nrhJ8`=0{8In0=Z;U64ylX9m&BakRM4+DpSH5p^60t0gx-SeDYW$YYBd8a_1$e zik@bhkUwp6pWWiN4M!l=n<8qQTrScnw{6oVym7KABDp6{MVfGw#|UVK#`(Hzlun@b zNP)(4buDZLn};3gL#DT4hNB2|RVLW{23aDBK8-R%ksO3=&}0EMP~IrIAO|@9Kn7GF zhWqA>aM4mnSePaxFDkigqU>kB6l}{fQlhnjqY}T2AKLiL_tf`J@Z!c(``5S6>0j1A zr(HUs&Q_0d^E2PubV_~UmB&tPRA1>|HhcE6e&Qm|b8pB&;I@UiYC4CFY)hbvi3B}f zf%UCrKOmC>*0wN)bnOz=y2HW|2~r>x*h2j0`wFHQLK3DXm)Fx~YijSPR8VX7T1POb zb664avMZPR8XH4qTVvr-o}^E^JgIaia1(3q*tzrJ(X}1HfZn6PFQ|Ac7P}SU4SZD7 zXSJODR@5dA!M5w_EVZ{K;@Eo_ZGXN20kr0ThYULxY!^vRz_S|B@fh5yB8c^08acwr zWiWzw2Jkm&%;sR}(O;xgR;sY{=x?zK|01S}zX%!&%brS>{U!Mtn}1+-#oN@<_N}&- zCU2#DmD96mk;gf&uj0)Y+8=K(IH8!HM#q`2ffOoMT+;z zYQ-BVcP^aUS&q2-s#p5#3m4jbgWY}Zrl#V&xocN1n1Ac7^B1hvY~9D@(=z2H&txlb zJ_vGMQgM{gdbR4F#C6E@;E5Y=7`TMOcZe-g(hE{Jz;{L3k%(nu*eSAD$#vH!GLA}Q z&1oT>YB4~C>zFE-0DTIJO*Q)llsv+o31keEftn-VEqQANO$Zv8BnMs%(5^STPv`oi-S-EPg@qK7<4nCKhpxF>+UfFi_!adAlWDHq zD21kdva7JDzaKSe2HRGfO=n4?yfW9Fm5}&nws7U_sJh^Nue&V};Ab2OE37ZOYk|&W zFhWPR>J5=VgWl*)4I|`V@ppB%bCbbTF`0B7!HLs;rP=P{ub6CoCQEuKWGf5~4&(=u z!LBZY+h7?$%~T}cr|SpHmYg?FeD8xLr@cy>8wC@zXEYtLz?RgMLQ5(UY4p0C$U)&E zkFqcAN2J$>+CjP53MM1N=Kyt_3eAWikr!52r*%mv*wqC|NDD-@gZ0G2a)vBR@TOuQ zLk>N3=sn1GNO>qH$guiy-w?v%l6tmf+Ki=3XH*e=mX^-I#TlJh^$f!HhIHlFH8cB$ zhWcc$yeE#T!RQ{zEA8L<-C2uUE#=N>?X4}@G=fU8#)g0& zu?m|dYK@w}l*qezC8Ce;UE<>wxH&CW%5Mf6qeumlksFSWp=;wt6jqYgP}nLsCxqU& zn$0Mw$}+1JLNCY6)QBJ(9LRM9kRD6U29cQpbq209qagtW7NQ?7p{LP%f_O{(#^u|V zUw8L)2lsBwzqIXZcZ&M6!A&dw#Ala2wRdCgAGbfc(d~8x8{CUF+_cMQtMKJ>KJke; zv#z^t)}}3cHi$a4MO&BkZrZeWqq~SKT6$6E>!jPlhYM?_jOf328cHXd@~OC%eS;Ga zMC7JNg#8(Kj==;^0(`n)^+NQ(-oxrk2;S7!937$kQ1}-AMDV6`VQsUSDSh~sFhwM) zK-rnWvl4JZj!=j!Qcl0#nU7WW_MeoFVuY0ch2JarPbl5%dGR3CI zIIXwbr?(pI3%uS1i}`}Z3*l&2Px*C^V9KBc<=l7W)et;h7KaCBan0}dUGQ`J;{Lc| z*Xl(p$hakqmmF$F1W;+h*a@-@u`3d0P~tIL2(ydaNBLw?Ocr z6cp~1TZW6*D6hW36rFe~Y+EkrLe;7($4};5*95}qVE0wtlxbP^;q0>Ze~=EZRl{qg z6%(6qh|8LAGSt$dD6_pGb>%?$6MfG-qrS!0ZP=jkPi-x=m}{EtuSJ3XDIR?6Dsl)o zpveY!Kt$k4lkJUjb4(}MWM($WtkufFeoV43wJ})~c)-IAKNH--dN?9Q2)&m*@H-&e8U#XiUOTPtL_e)?+g_gBTbSsFGvvL_MyqlQus7_~Te}Ej~$f9zcn=b<$=Rp>$-J34Hj?r0Y^f!rTa0 zdK8*#kR!1@0W}LXPtb6YCMUI$J&(i<=vyMRfgDQef!IM3T08@8R=6ES+MQ-8T=r4- zGeWWb{cl*C_wn~KNOJl28J(~Xr+7&LIbhVVuJ+}-Z{W|WeK&OH zN7O$4?6G4POlQQapBWuRb>|J6MmIfsg!b4)_-5w_-*nOdDzPc82uu|8cLCr1R0rI^ zbp|N`C$&-H$kqpHbOP7dVAy5?*Sb2c;r7vR4ZedaXE;PD#ZklcB_F;Q@ciGnS#98> z?}KCtf#ctGRFgQSq5ZNH~b;^Ae*2u^|9+~{+{kixm0XxZOSI%jX^g&e_AEioW4%U zWcI*H6+r^3NCvaVUez`^PLzUcLq}!*A76?s(jF8DPaUe(665_wz; zz+YUc7tA9!23#G^1rLl3h%zuh6nJdkcDL87?(%x?-nQKv_4aggOLq@C>g6e3NG11; zsmJj*nc~N{FWX_;=I!<3-!|KhW!t^p?X#!jXZCjQPeYMM9*Kkym_L3TO+zT6*(Z<5 zpF=Fhj%dD(I)`a$&8 zKsevt)Tf@l`^%%V;yz!km~%KS2ERL>&O_F^&OIpaM(w5#R!tZ3Xcn`kn$kVJwXk5` z^#1PtLRV`SSq?5L^X2d}Ve>#smb8ooQH!L_lcIPuH`IopORwtFtIuC1{E$j4wBw}E zjzx@HPXTk%+eH1UKfo8Seyy#&IWlwBwV$}@=ABkcE|<$jn)%l(gVQTpGdYXVV#%eu zXY|yl&)solc{&}7tx%qbM4gpTv&(9!IQUkJLs{WA1QI5LdxbA!kuGij`7O6JN3yt^ z#k%w6n?A9uHZ#(!<}zC=(+4fMX)aUinbDojQJ-&(d;Inl@pwADT-n&(xS|lWWPB?^ zJCH0{F=azuOT}Wvxt*lnvJv?q=^9wE{u=5g$R@NU4cdm}f2!8D?)g?_2k)KcAlBXno42^wKz$mBJ795(1n zw7u}GZmPJ4IfLCn&Qr4MC}2lU-+IK(K!OD8hGQHqirJAJXTm|Gai*B4oCo?MmGk&Z z9$&zib3s++4)wIUO+5{zYVk`ijehBt)yE%Bj}{*vkekoHv4uO%K7ah-(U(5?$sQ-*ZNP_SUWoQdJgQyQCza^={U^<9DP!HMzSd3Po4+R3Rp+JbBKWNhD zt%sMO`+|w|AtX+FkaFxq)?Efh8^s<;Q8s!+0R~DIs?es81{OsEM^sK_DWsXAD7B2^ zS;&YNSpu}91EPYE?pT(brM77|tXOjOiK~~axM5mbspE;`PpCGX>DteHZmA=>V)drQ zZ}`12mu;DJ)9IUZ!*WjcNJb~LAd?H3)J8YA#Ztq%zV80cM7(dNZkfK#;<8&MM^{T* zEV^uE+r}iQHkaJkwsKiC*4EP1S=bmK9E@))JZLm_7OftX?rqJ6Ls7-HELyBoit%Ax zTK32$kCodaNK~`Oxic0Yj?b2So{nTRnneAbSDqbRrf;>l8a$|*ARTtK^c>d90DER8 z{4s8$v9EVphcRl5x)q9t5ViF*C1XB2vNKTO1_Dc9Ehzbo)&gb>j?*MHR%q)aPc^k& z@O#a96iE0CIYX|BW21ymL>MGwILlZrWW5*-ek>Yc9{4S36*Kh(I>|!=a|Z?tm$bId zFc_~{vj5MQEVdfwTUrANYf!xhhxs8SV8lLXKvnEea8YoG2ZKDKGfT=FuPcUC%@S{V z^pbn0wcj&v$2CiqEZ)54CVO|h+)(M|??@RgB_*59V33l!ytHZA@{K&1l-iU`=m@kA z#5tgV{0K2HE248z5LyQ~C2H(&YU@&VOD)dX(xIytU%9YSrt<-s^5I6RyR{>pPT7>= zyc}k=;k;mS#o<64pqmO?MbH&x7RdP^1j4}fmVEa@&|HdgFV$CH6TGO({JZA&|%!#1NenoM``^<8PZ z!5&RM?V@*aqLR9NcKup52CX`#)8~{^snG z{+WH#yGq5@=IpdwMF`(33l_uxLj|@6T+DPG zX=sRVQqO`sH(Cda1*UfntB2-7g*|26Ktc$RNmO4gPJlG3hEn=HMBxWfW1s~1H-}hiCiZRbWU3ulA+t=^iyZ-iY z&&EeL_H;j{M(|b{3)gR0xNz@=^?TJ7Jy$K-xN*@{J>BnU?;%0PQ}o2>&qU^YSNdWy z6i%DMNj&VJ!$`|b#DV8accsHtqb+Q(r{VjtPt4YymJCCvUA(>tWbRC7mtb#w0wgxZ`R(4)b z&!WW}{^u8!V)j~|ksX;v0YoAa?9v*dMTvL_=UqUn26v=v%l23lCq_8n<>v{Zv{2a< zW!Th}7IY{&0pU(f-K($dI3`LE^*EqY(_8|=&kTjTB>goHKJfV;9#!A`!h_%E(!?8* zG_vhaZdtvWOS@iPG@)MqM{=L~t7G4P@C!V2^wkK>v1G|vKi)1lluF7%1QoyDk=Eu%__lUZVQrVFaUck^X zd-5aGnTr8L%v&J?ro-o&=1fcNr>c-bb1s7_{g7+&=t1&H`4!CPa#VnTi5p@58?3U` z(CXkexZ!MY!@;8KLOmH+J=hSYWo5F>N=gi6yOBFiqP9iyq5{7M$51IMm3>t)O)%A_&3ZK4vK4_yT$# z>9V84DyO)8M3R3%3-=H7N)Be%U)uGTIPK$#|s-0eojS2l>%I?J3u^v>{y!WQs`R1Ga z`8VZ7>cbP;_*!)*?nC=y(&qBO=DMyH)NC%C``|NqV0YOyy9<83+DznN!swdZDLAD< zD~^Hjg=3w-C#V>ZT)K5Wh7K4Qb_($^?GT%(##b&I7si*zM|Cpgi;b^E$5-E?o`Cgr zYTa|stvmP;*4HQTL*`fW3x^K9K(ugSF64)g!6)sAM(AWahaIWyoH%b^nCs<6uG5DQ z-j%fjD}gIGzeqL3j-wJhT663IOodAD@HQqujo9jG78g7?4i2L8$0-0Prh%Mw99Dy4 zNWY<(iTB>eH{W+J%tW5A&qT^Uf9TNjd&#ssbod_p9DevXj7Tw!;dReFzy9Dwb08Zy zOmjf&&gWLFW;(K5%pm~NG06401{{ziC&I!6#t4xYA()hiB+(qmol0}KC_S7kU^nIf z8`v}{L?}K&B{%^Tgp?_f9|o>A3%Rpy0*}5l@d^!J3QxWz3}mqa#~&VE|2)>{!)p-4 zV{qaVV_MEy(C=2jYpgg)8!IsbBy0$jH2+zPP*MEQ6-SgKJ!dAi;lQ&FTYZ{8>?HW;rtGWe%v{VZ`Z{t8q60XAiBc~ zOjkPzf&y7o#Hu})CST>;9%{hdzx!R>y+e6jQT~-n>v4Qf;mETE_}1Q5{6XbEz|?S~ z1ncED;F<6w zomLt`c4__FO3;tT;mOY)p(jt`@F>puH)%L@Is^_8`4d&6T4EB+2rUDh++;`~kmg)K z-&=UbTRb=we6bc>jhmM3o!O-L1 z;xC6n{?K8+|8U434DQ*3do;3b+$wcz_b|)2M+T_H4eI{70Jk&cDHhB*{91krTl3=({I6PYoKk^91;isF>fDS(XEpd}jP~1eU zOC#p;lgYWjqPMqH@l6auWK#e+mxqGE;E{&F5j3I4AAd6t2!;-Y@Glq$JVL=Z8pqx8 z$mBS1t||U+3Q^@u2f7eO0)u=#-#{Z!@mJkINRhhLJ$!`bqHgm0`F(^Kx>w`5XZTML z*AuuEc%cF$x((qNN5k`<5MIYB}x&~~J+sZXg-9p>J{kel1UAD659=su{I|98~O8|lmf(pYIvWl(p=cmlVGfnR~v z@v`n2qEcJDhfEz2#K(C76e{BPtM~BDe1*E#%jfZVht#(Y|CW2xe#L$1@Cxk|0J^t$ z1jH0QN!;5kiAV{*m2ZJJb01$W?bl}DKScMQI)55AL?F!{dz0=vMR}l7b5{y^NMAdw zzI~X6#~0G==(c#480RSeX9-ef3ZE2sth<5{^-u7BCd~r{nb3W;?`+~L)#A^4?QFClOuSar!wa(NaI%^5dU>o=;by|2W@-@`DmZbzS|w=T0LJ z>-SiH*$6CdJIptIX#LN#waoHq`yJ_Cy2Hi9_l= zhe2LjCdWDD{!{4dze@urv{`Jf)4&BB{7y6=8xO1ZiP8NA4V>G6GYjVa4*MxX718*W z1-s%T-CaQ-rs` zNNP6xZY3%8&5d{5vGJP^-8!)NhPw_Pylczwwfw=SpWedn-1L}qa?_pa6L)SJn%8@f zvxC=Mv*r2cAN%yDwY`4s2*&#XS?$KlN-{*C>2Y}9Xl`sp3|rPuxejd#`H zz^xDMf9IY3(gzzhJods1pSgO;!L4^4>|HSQ4qq(nLb8vJ$a64O1-3KJL&G^+Vt2;j zjPWQI8AcumAPKKStYMPtV~%a&kS|vT$43BD7y`vJ11PVCguyS;{P3GI%6x|U_Rt22 z-*Mv?bT?hPluJwa0`3)8u760nQCwLMR;vD7S+aTm{!KT!Rw{FcKJytIRbRj0S>?Kv zE^Odw4YxRdoz5t*v04rP8w17nQ6>zmwjnbH)+$us1ng7LD%m1HBAFSV?|9PWDS`U9&t=3-0v=g=YNJ$`z#)*N__e7-p5A} zjQ; zVnPx^Fd>CBq=9B=3KUYBp_Be0HYyV01pwf+O#l; zWaboT6)ZT0ClzTiz<3Ab2v3W_!_r{c5I~3#Xi<#>c*OZ-kSfa_MQ^D9k;#E67JrU$ z%pMA1$f27$yI@PT?`kq1F*mkde{6QP{l+HiLypAA+R4bJOY`Hiv-cekN-C{sHGj>e zOOelis?(%aPfSO6p*w0jV+*A=-q#ax{Dr$El|FRg!i?^|J*s}uXdSJ+ICJ5`p}8SD zuhmj=42??;SmqPZPlv1Kg-jnp8_8=dXN7f*^baIzTQD@lx=2_mbTAr=cy--Dg#m=B zL8Z+W5X{T5L9A^+6?^~^^qW^-y~OW1^#bpMU+PE9FBNL;BA(Stm+r&kVdzZ?3As@h zn167PW-4Y5VmUNZ^O!6^3s7cM5MSMdiOWPQ-e&eF{RI<eK z93HOqj6@RLOZiB*4qzvA}5qHxw8Ha;_gujdZZ zH`fO7&F|>-hX1=<|9bhmhn08nb7;3mfqZ1QO)nCE)Y5jTm%dObZ$Z=Ub2T=)#&Pn9 z)9-h3v(!GL=GR7xmwVf5K~)lZWwLp=w>>t~udnhw7AG)UR8w$C15|mGMp0CBz)um04Z#dS z-&cW3Pc#&e|GGBmDmA&>^qwwRwm?kpzKmbtTJ@gWa7`Q)!A+}fG< zos!r-{A}}9Y){Lc4-WU-E3Y6dy7c)dC-IsEd?R^4t~@3ALEGVdlXDX5Pl-fg#Iyn6 zUU0kp?$3$Gr0PW<@vM-?A9~zhzk=sQY+y-$5>_<;+%a~|tMg1yHc25soA> zL;YQL+MriPf-uv4-H%&<|z9>y?x^wW;Q=6ohUXnIVeR>e|5cF4W=DqiR zW!N-zc<}JlCc{fF8R;^7!uZlltUYGr_xwHT>yeHF4%I|F4BltEmG;JvlcTgnWLnU? zWzrufO!(s!Ju7LRjP@WNlTl=(qmT|StD+HCy%-Slbt=!7wVLL{wqCzh=WgKnP;kri zk-vCDufA^Er?}w1)Lv>zA=N*f4)8sPlW~(dyeiY!6bhR>(MT-%mk-`{a4tM?ww7t> zVV5ben`1sL*3JooWvUA`!4FikZNL>YusS+JgZCSEY38jy_fuxN}FGo-XO=wp)30HuxE8)K(*9@o^JmRZtFsAp4t;vUN4-#D%a&%eyA7i zsUPZp!`NSu9~65aRN>BQ!p-`vqu8EpNxM_-WFj67hXTmoZdlr96s;>tI=D%Z`~?ql zvq`HqAW4D(I@B%AM#jyG9>WQBBEoVo1?&BV7}R2$m$p9whLjJMM@0aC@!BA_ml|Jt zgNhV!=_}{TZ~32^IqUbIoq1~h;VW-*>4myQ3mr1^lpj~puPfa^{eWD&e?Y#N9-ih# zEW~{zN23vnQo4}K#i~Bk`PRl@>w(I~ZRdGaV}nV8Qfo6K`$ZsLQbNFy0*}m?MX*qP z5<&H+8ACY(Y$Yvd04z(3C5B+p0H+cMVwSSC;)J#q-< zKR+msJK|?w1eP=dFfgH`Hc)%ljaF9xuiFONwS?2I$Z#2wW2KS2&p`g_AojyL>pQQ3 zRO18@?L=eYI)a`rm$)IthFnRDdz`&)w=@#Gb`gLBp~gUdgg!-^yHG<6esoAWQC;LI z8wR)>fTJM%=rR?_yI4G|yxHiS$aGXjgTaAprnkCf`kqX7FxWI+>BvktjZbG^dO17R zsy-rS*ZuwMbuO#bb)9^e{~zks)^%C&2>-g>_?79lOe`M`=lawQ?m)!rEk*+F26bO9 z6zGU$+NQr^v~S-0X4j_2cXe=ikHaDvEe;QkM#^Xs)=m8AhZH_K}eJkdj|q`3`bU<54agRY+*W(DI9^}MnaS# z@l0l*`Q%_wV;3MEo&{M;I9x(3GmJ}J{=nq33?=&-!=Z_qbnL{5W8AwFp>Shga_GVP zVnHM)IUn|DH0IBxKue={pY&kyraXSXC+6|_JhArP%J(qhhl*fxZ)wILtz(PL^;O;ajz6sZp0e(oFJA3T;j#UGWuMI)69M~+^YoIL#c>*wa? zUU&_E`f0sQ=V13cAr*b75CURFB0@0e2&X{SP{srRAOeAI{0hJZ!!{u+eiXg@ZE6&S z!Z54|xYWxEaPU;K7<*Uz&B?ZvHR-y~MBa)c)-J21N+$yAZzcyd>6kBXOlt;{d@NC! zzk^TDzajf4=1})&2y+p10i^vAhJduGrPu+AT()~j`@=HD+>=)=mNK*`Oi3gS!{WvQ z#tB(=n2B^)T)|5*BDMuAqup7eC+Gf&ROZ?}l)3PNH3@F>27N!l!(bd zPronZhnVFyPjAej1O-T;c)gNelXjaW1(J!^uU%2h1J^RUvcI>>3KX&`h`vFh7R6>& zN|6fk5c^m=I7XBLLnvdqp~VC(gjbAN_n4P)yug9sl5I$nEwP+f%AF%Ii_N_kpB=x$dFcV99a^$`id;Xw|uX?xwLxI3Q_1O znhdT|x2-Q12LQ(3QJxq*v~PIIlknaq7$ZF%zvS7{Yy`1Fh>u#j+FEZHYaP=A(tt*4 zbUpO7@9=t|x7S_G&ggE~d#d)f!Nwam>@64f{u%f4j-fTFXp7mbHf1}6({ppXkL|s# zn)OH_ZX8wpdca*@J8LmG{mHCdv-`N-;eJC*i^hy#{Nje}Ol0_hdwApZ4cq?38@Gxb z!pVa+mo6#YTbtEs+`hH_N$K$ovK+XA$v~BKs^?}x1z}kuCJaD?U}G3Ynsh+z;4|oY zoREhOYn%=&YFvj~D3(mNWiX2ux;IT$DJOI}zGD9LR8MshX`r~1S#d=9E?>o}h${|O zky#!=T@Yf0wxcdBWYU`R60*ILP*;HMSMewY#vY7zGnhm8A%+>O13VTTsPJw|zL@H~ zeeBgNvke;`NpKe3Wl81rWI*sZw<86x&M4omeD?~6ye6S)GHlm7{k-6J`lkb8qW1c; zJLlinS?84pVdkJrB_Bwrn+#j^PN#pPUz^k&IG~xC0Ro76(enOJln?QLi?*i}tHECv z4K&t~V#TXhYLjB-~L16`_yxXk{@nOe&2RKqI(Z7vTYoVttCM@ts zJZp#W#@^fx5(}jNrU0c9G}?Bs*}%+X#m*4KAW@-SlEOgqLQV5R@2y_<$-V;q>h@3g z9c(s1cY>iw+L8iY9*eU?b_Co@%*T%e3DS{p?t;by#fgL!$sr_7AUKhMZ%# zyu~>T7yAfON#q}vW&sU@S#YQkq3pkJ5q$Zd?p}8%IHnB-OF(UKxg2nVgnE1?GpBRA zqLcGK(<#+PsWq!^2wFRn7DKyH7cz-CwXRX?GdWcU{xmMwokCdayA2%i4nwSA-Z;pc|5e}uQTsY!i*PRaB^0|9z zW0?WopKfk!wB++X3*|TnexuH!Zr56EqDyPknjW|TtJ z@K>WU_Xn<4)C&_}IeqYAIrEjJe=jI`IcGZ?GbF+K@0+l1+tlS6d5qzi?0r?;0 z_IRO<{+tk_uwTIEZnqk-BB+8Bc2c=ry&xXo!tnhRusDH3I;5U{C_xG&OgIoh*X@~!f(T}noIngia0tszcC;7!l zUeH)9J0kp9lz?D`A+8KW?SRE#mrUH8-6o)hcUl)SS|z7OX*wX;H9Gqas>1(KgqD6t6H`I&9F03;k8FUe7 z5G4_TuLH6UPe9$ldvCPch6<^p?<;B#A8l?r{KbcF{P~SveCX4j%+cDZ_Z3H*3xhWM zjSKg`7kYA@#e%KaUg0~C^L$BNBh4-E08ubBWndIhu0+kLJIJMittQ6&V6X)sMuA*} zDuC^VR+b!HQQ5%oRf@N}+Lhp0XZ-=`hT%1FL1mcp9=@=jxODbkI6U)X&MLX1T7838 zA4`N{wc3wo4uRt9si$TbZW#qx)kdQ|V8J2+l!EM)Un-yEe}HF>D1f9vLmCy0S4E=mj5yXIqYF0)PJ1Q~b(OyeB7-=D- zgOL_O2N|d}iwtG(a)>THHj&-#2HtTK5c z-ou~ff7P|3x2tDr=hn%mX8r!zjOrKFYd0S~y7}5_?~b0W+qZ4#>FQkpwsi1Lynm1{ zDo2r>7N$6jFJx9BenJ>N)+VZBMq&W25E4*5H0?0PaD|lkVq>Od>(*<=T)Um+;&!9Y zZ{4wO&FaRN8o`RB56@!QMesD5!qmtqy7JQAgvT}Vr7sKl&V2#fDXpaP>6$Eg8Q$v4(xlXZD*Vi(Y_yf?2^9i%r=#-R-WF; zMSMozBR=C`e0T#KgH7 zSwEHY9*EDY5vcy{6xoPILIJ8rNWL%RJD^X&>ZPT~Mo%M(f~dny0Q2)fuyt?&EC5(b z=(}b(PLSG0-VbzN{RMLpVK>B;3o1FG7g*s>6=TRJ{~^bae+BX(7RYQx;Q^M&kbCc$ zN+OqQ?&44HoBzSS?GJCS6go?#xA+sx!BFOZJ_Emk6#)Jd^H%=nvzg3npWEFh>q);* z{3B3ndWxw2jw?ELFFU``c6iFxZLapVWUAb2nQDJ3Q(gGZ z>Smm#`*2`$U-1j&lk9tmTDn9YD^G(1tk`nf$U&Qw|HcYU^X>uOPqZ1{pNYT?DaBq{fJp82y|BU2iUbw$vm9*7)% z>uujtQTy6dYh=O-8hx!Gc1=$3f8zPk+xsH}qA|3>BE1B; z6)yRil?M(C+|B*Lfdeb=P9*ML$vxG*zEC)@f6qiu_l7u5~=;+bKA66#>Za*KF@X-JBZw?f#2 zUPTf$mu-$=ol`t*aqPESFY|9XJ@X0^QsbQVJ`Jz?xyLzccXM~h>--Sb`2c)j5$HL? zRU`{!TT`faA4ZKhyxU;6!NbgIo+q_vC?)yR%ElUp1%qiwT|=kjoP;7u2ev>In0gDg zCegLg%en!tvOAfVJR~loQ@rJP|G>8ScedU;(7$c_@x&QW#B7`2v3B=b{P3p>bXZ&9 z2aa#w)<1CX)@=j*$F~oat9>}RoF5&{9A}x!lt+5isIe^$O;aqg z`rW)=7`V=FI zUC2%UYBe;_f8*?~neAJqH*K64T-iS|Fw)sk$hWt(q$6R9?wTr3|kWlSn&V z8^W+lyRkrmoLbT4;0@|koX&9F=BYlAG-`uz3*u_jGJ=yrDS?nu;w8ujP&_jhG%Py! ziMb+jGvRXp=8v>wgHC54h1h^l5)@(`9U>CO0CK_v>NC<^F%*=d1zk2ygMwY1x$@#- z7;*$JzzbYrD6taQn2PO15ZaQBLuOxC-GkAKQkh)`t2GiwJe8dk$zhvQw(B|NSHW3* zUYb0Na^lTfbbNppHdIrgYIsLiVMV2_m;bz)=DSL%Q9j0_M33%Ko#tohO2!u&=0FG5kK^S?5-ck2?uq?kLO<;6)s^L1XcU3cukp&|Z`td95ZT)krbmTkQ}l&8wYj`88< zR*kr-bE29v&j5vFH29UMP`5|a@S0hts`mew*5~>}QF@1e%{e_NTF=M6`rW{tpjbY4 zmKOvg@6ptrhnV~|(?gCczpc#SEDW?trK$@wA%)9?C5rJ&#zI;GmBypQcBNmKg$h1d%6O4rxBxZ{!MT< zjY#FB-9KzL^D$%EI4sp(=T6mXwOI&FGhIBMEK4K!3obT~*nP>0aRi^j#l{im{0Mgn zUWnbb8f(jLv}Ftkw*)x6R-z7gA)O5Poel~6Hp{pV8X%NgnyEG9ge0^uT!|#6A);tL zErX=fTDHo%25EtS5wbPvunX)>a{FF+FS_JhT>Q{4k6jnE7XWP$Rr+|r9^}=>u3PEP zp?BohHNJ7lYINQ-UznKOHQViFtD4MD&iz;v4$KGyF-un1%!XeDDtS zK>oKVda7V`0>Z?K%99w$G}S9;al&hlhT|0LN?9-1OCoGpf-XbiqopK|nSWeXfzf)@ z0LO45rwvPr;g8?}Bo{chH=91Ve*E(I`h)3gtAV!~N(clXBOswkm~7UNyPV{(A6`3K z`oo8ASwB9${+2I(sWf}TL5=2M?dK}3D3+zN3ouQ0XkhCjf`?$t*7tv=JcZnxkYZRd z2mS=(jkA+b)KbkJx7kQz*#@;3kuM~&Q>2AOB$07|h@=1s0l7@gVkdBd(Q6r_zTnfL zR89Jinnn_W0s#a90N$SD1?iXzZ$O!b6@XTf?y>NhQc;P|Q9peAr85l`C2wx?M+%jd ztEQ%V2Lh2oED(s@vHylo4Ysu>lP(|sejpa}`gWwQ`*i)CxVhO7h^1oLwhdi<0}F4) zVzGcxWm>$nkZ5suuYM`-bOxK8#-!D0wVTbkoKk6Xw)i87z`nt_!Duv?tzSw60uE<* z;bjmvP6Xl}my5Sp;`M8Sf!dD)F>}hWaHYX$vR(a3+AFlM0~Ts#$n^^4T7?BgAJ<$R zNv9JDpAXxXqOZ4#`h*o$pb)zT=+fo-go#uF1&e%f-;$C=Zm*jtPcR>^;4cH@MM=V8 zenXKnZ~+$>d-VoQi^t0A4Wd5fg`RaKEYE`tAKnwUP3sfX*a|^D#n=y>W@DpZa5P!` zCY7W#NJPvDY4BmZfzDgqb>(|R_*Uv)WB>}_-}js3Kn8O|FuyzFHUut!Xe2n`69V6 z_YLqWyqkMpL02sKxA;QViC;%u#GeCuPl%53s?~&u5BN>2MwiJ6>JC=ds{>oQia;GI zE`Zqqf_3yQxwh*0^+XhaA5x8ZvPI9zqtr~)PvJ8U5Jf_w z!pCe)wf%tcr9qx~qPgp_c}A_kZS~uK^BcP#;8R&P?nZrtacJ-!#bLr`$sQzFZj41! zVd2cs-(}AnVm2Hnrqn2n!r@UlV31`h0Max_apmLiDbbO_*hyTC>e;``#Wc7?mPmt& zN(7|w!={B#jmrJBt2a<7%L;d~LWM17YLBG%M9xI^Wln)W{?|TmS0;V)8lspdMpkN* z4YllVL@kX@U_Idb>|a}S)qS6kU9z8(2`pKyBzcDaj7suqEci8K(ax&jsv!#HYe)>% zMV<0SZPpizG)6x^?r=LGK5Ft8Ya&a~A7V1(_1&SY!-1ByKDf>CCYU?(5~ zs|EPnlK1Lwp>h+|vQ>)#b|tg|{;y_tec}Gu8?~y?e|+=BuyN-NUwmliE@SY!Km2Z3 zU3>Biv%7ZPSbOKjUAtz#@cPW^p6>4M;TavL?Wk5e>_43w$l%|=oZSwqr`^nT#N)-P zT*j$djKgN4vA4W`8JL7O(B=rTj&(tQgVPE$0`2wK;8{pWZX_gHeS;@+3qH8IKjH)E z1AL3xgflBX!sT_sBB5LCDFEGQ2@Hod@2a$#$`r1m0i)Yv5>-u?FPtI0TNnPshp&L4iD$QAoO0)mwKm9*$-mh_|96+Uq9~@sl zxGEgsglkV1e2M1TK(HLR0luvNbJb(1SSe!`y4SEPJ_zlrJnBydMKMEhjG9CS}c$m^!ELn&&-04sjyWotS%IMbJ#XHX{O2y@Tp{Py>rnHelk znz;kD2ThyGgG^3Y-k(!Clzs4^WfkzjwziOGLW{h$#o!xhlyMVJY^X4W;qAddq1+!- zESEE0#EV6V#1Iwyzh-y#uQ)h3YY2`2m1WjIy9Jmqv}$wvO;ek!_LF{lqOjj4XauiR z62Ze3uyOZakAkf)N$0#OqhK-Y@O!vp?JGNX4rR6W-roJUHMi|-jK&K(kHMyCR=G4j zhL5=yoWOaYehT0`T%-8IYK&8?86I5OTkYxY>;SGejW}I66rg%#sNDfOPm$tM7PRh0 zr-4`LW1N}{4ZWn2^iv%tdu4WR2iV2fvw)W;Ota3h?U!BMCl4 z1&VuMdm$m*cl3#z~1a{?6s8^1aqfw zi(VCMuJynCT`WZzy6NBg$4a5TTAR~bV z=tMvhsnhDdWCT0qj$)2vlIP%rBg#Ur6s^&oW@>$B$TivFe+VX$^KfnK7f%Lnca+S#cKl>A_B%zr4?;4(Kj z8dv$psLw`2+#L(O_nIGpb3--Jv^JNk_u2fadY|#x#m>WCK>nF~VfW@01L(VH#SMxB zieuHtfm`<8v}@Dyle}_Y z)0|_w<6>VI@<{85JFdJYm^C63SKdGj1|LERgF;@(s-m(9YpYLJbiM7$yRt)YVK^?( ze4W`)pSdG5sW2N3e`Y2uPv%s5*WaPZFHd(!0n_`>Dc;9?w?P1=D2E>Y zQy?W8y(mTuPX)!xicnk-*5@I?v1t?F1O30qIJ?}X%!C1a%rdNy#qrdZ#qOlJ4MsM$ z#HsHVPH6s4E=<^=e7!3M7JC2_bR<+ezR+SeGe0yF6L>npG05we+S3fI)R1C>;)bek z!^GI=@ak2NmKbxng@^@F3sEhh+FS0-wo)rKaLGV1LlhTobml4M1U=kLP`oKo2s4vr zAM%6{{G#=YDM?3$p}bmSm&^|SN@H0}@e_B;3-y_?qrQIs_!D;6{K178v9M$x{$0Bj zqish_XI2?vxR92ruDjCNk!_7dNXPRgoDN7%X-8 z+$s=?+tn6#-rX8qS-ow1!>>ukM#gV9+{r>kk_&pH}{9-Uhw=`;p|%Bpdg^^N|0 z_aqEWeocQ_zeePYD!AeDLw)Q0O_F`XH&%SMkCU94Y9cxE zX>TKr3G&0o?HKxQ5cYA{SMdvc1bBl~zh%B2rqn=tP@<#+0!xG;hg5;$CnL{^ADg*? zV-Pz&C3)*p@C38m81xT+=LMs*XK!Qf>1?bv$Uk)QKd%460^;jW{9uJ@a5YLj3zaNm9O zM=FQLtdZ0j!5}m_tiCVZuA9~{neeFc2g(5SIj}8? zE%sBLCQJpF7~$*3LxtL~EyGLgIPn*yuZ>*Kp3~x%0s$aW)(C;$JK~D>emRd>|AG?Mc^;n%f=E zJDtzl^X8FCYd91Nw^l}$Vv?ywb6&AlaZ}Z|c4YOcfxZgrG30Z^ppM+Rdd+5%BdZ2i zc9hz(k+2486f=Ef`a#sp)I;O z0Teq|fLS;Z4%vhD0Qrl7*)@{?2BKKSs@hP+!j%e63jy6iDTlBtP_;-vd8`!GYXZS2 zDY8%&FaasNhZ=PnQG}8Z!wC>i2+N3cpaO-fycb)YRIsvb`tO+#yu#WA^2=#`BLfxU7=hV3Vszwxw zku}4sSN2zXz)}M;+2%NyWc^;mxvh0BXUg2Yp|{LS`k}rqhoF?&qR6_7HDd1(f@Y~RVrBN;KaV0cV zxI?dWHzl$&DaGO!_)}E1tk)N}K(z}l<7HibiO=Ycpu6Y3+4iev^rmQkI%_ShJUW1C z*lBJEh4rZ8pKd=bI*0bJEVz@IYD6b?+^bpM@ijLp#&vX52C%3$?TK3w_G$m-WKTIZ zm(8m3L?%(KnFMzGQ`J~Bs!&j5pjc>YjV7XrrB%1=R(VBHpU3Ww#w_ENkuU&msm2n3U)Q9?SiyUQ z69_?-=<&uRdJtdE)Y(iGhJVdxj(K z;p15;GBepp6M6Ue;Er?l=YAZ5h+i^)eL$6UDE>>;-`Lnu%C)6a$Q5jkz$1z%3fQ`I ze0UmE1r=5Z$!o)9U_oI>zCdWp1Tj-loPd(`=98pOzt!554lpMF!o@wbI83R&-)_( zTQ&gxACB*zy4eufx;-Lo?*v$LMm!{yd&YJT52UZU8*o#%KD2XU>(YIw^GapcM9QDF0gasrp85+Gl(00jlF zk&p&KfRQAP4yYLbD5y#z;6x(yJ@hZMPV_HRS5WW@+)bduSSo}+u<7-3n`>v;{|B$$ z#v|iD8|O72*{Y>;%77(NK_}LyE+>iuU5qQ+f<*l)Tlz^W~TyM&3K1uPXvz0;q7FY9JW2+bUgz=?`XtEr}S*91Pegs}8-fxB^ES zEzkpK32J#QEkRhjsFMfZi-v1q+7VV3^&T(iq3APR|DzNwZM_!yAnu8!x_Hm4+)O2) z=I(F58`QSZWe#ByXZZ%^~MO@xWE5IY0Nr+<_;aI50Q&j9_)Yl=>3S^Jf2R>BQ6g zm5jU(sd-Drlvu1Iu*|B8|4utpLql~%xijA$%|+YNN!psRC<41KM>McOA$t-Mz`)h( zpWK_tzlYD1*mOp%JwNeib@89>{bvX-aJP6yMh%luSg(P9r5G<5~w=N9oe;a=N z)t-!_cy%nbx7?$bj$OLszv>`yuj|aSdW*(hJEOPE>da;xcUWtA znM;q>PQyGu@zFwxd{FY*vm(ChS5OW{k77^N8V>h#)BYFEhLKa_X&@_l97si~Q{>bz zaSX_UfRtG1bHJ->K?%tRgK#MXAdm?A1m;S>g|O_f_@F4r&M2HPUlh4tpdm169E%sC zYOp0ZTrj7RZvyK%?uZv$j&>k@o4{&U`fZz&vOO|bd-E7ScldDIMX#6`)1BnsdW$y> zjtsdcC%0a`zs8OJgLib?%V+N><{cw?-Wn3DJimEzn)mnv{@sy@2rqqPr_p}(L*#9} z1Jp*FVzpvIv8x&=<&4Qu#n>D9Sv$HU5jgE3x$?*#07w}l|Ku97y2jdy3I+UrI zBkN!VECQBYB!eiGFuB7qHLMC3CL$`AVO}!0&f=Zg`8$1)h|eF1++kj&-ZvOsJ{Bvn+1qORnq;qXRq?k3~aXA4$v57XeA5h)YwJR&I z5?A;2bfD+?Ak1s6lJ*6#moDEBNO@&ID2%{IZ3ra7uX;bIWxwAInScl(dO}1Faz+@l zGt_cKCFhcl(9f1j2pbS%R5U$~Y&v`t!9Ms?T(|?!&VAady{e75JgJtmEh&%dPpm#` z^$EMr8Zg-=mn?wv^D#lGG^Ph_EeUr%Yc!(LW9<1UZYOe~J)vHk-EQj*d90HbBs6C- z?6;5iEnNrmn=h79LNpu^GolzW^O0~=NR=*L6?ke*yuInlvpcm`-*lp*^T~xU0 zzv0(y^kTW5<-%UmUq#|#B;3SmS3u)pb%Q7ukUZcRb(!{oVlH@YJQAHPHCrg_V7c-n zyTfVUT^2T3rX+oRtWp`PaHx^WXps^h(1e~x@#yYuxiWNxj_3x=^Vd-a@-j3Ye^rbC zrA@h?fM}YOj8_>BYPh8-#fJtP!8cm(JSz@Q&S?5iMw`%Y7_Y?`K~dm}Q+}c8zWZl` zo%yKV_!+IYWRHk`UDL`{g>q8^Jg+{TUaiqJZ%7V}xNe&r9dq)T=f3vjpp6Tq-9GMX z27APq6T|v&u|qEv6Vpe`yL~>r{@lp+%w65ZOzT~EDu$U>aEBlob`A1&p*+*t`W>~^J-V+f1^QwdPzNp_(@yT2 zRgXeZ1TH;``t)*byam4v7X1Fyw(ZCoC-%Jud0Rc{R;7Gt^0ymj}#CuVx z0x(Ri1YaO|%gST40d*hrIwZ5R+;P6sv*>^O)a+Yzr|Qw`A@ zOf(<_m#wLn8v&a1ON~vwWW2G%i8YMmqE+oD$kvum`2@#BQ0M=OmIP<}(nfP$)Df&Q}l75+iPn`=;P_6?W zJq1UMFHjvxcmP0%6DX9}IUqZ5l;bgQiZ-HRI4hI|XA&i!I(X#+X8W_xKJ~~Ww{3cW zzb9zh`EYHJd+y=M&G#THY3V%IBcbYA%EUnk*|UIaG#TJ;gpElyc^BL)9Js2$*@W?d zr-4H;HKCOE)tpi1Ei>{-JO=5L4V3veO1*K7Mee;?=O z%0ubO$jIdMv~_5qcTtJ%RnA@e)@XlgdiX~_8qWLZ`Kcezf%lV#r)0DW5-%TncALcv z3UGij;q{1uE4i310GliP=9W@l^9rFyGr{vIX2A~kE?k%Eb`5`bi#7_Er9 zd$rxcg#)~CMeA^DXwAswQ7^)d1F_ufT>p9jdQaz2Ye%(x)1bBM20_?!cdS_u#(E+; zUBYVe1%ff1CYiMQxhGDY+KL~})6#78r{@aSy4nS&QM9jIv9lv)wzN)9-B%3pyvICo zXx!|}@Z%lD4k;9EFZOUh#sEu_2k*hGgMP3bO!0Aw@Ho z;t{XL=7bY$;@Gv}Ey1pB!0tr;-`hUfcbg36!oSa#lY`{utA4ox4PVya4}Ga#O9Tg4 zm7lE5654F||F6x}gI8^?meXkqR~_gNwfpxQX>6@*fdcM93zX0h%lBC&sooT!qc}EM zY3U&tNErA5KcpYS;&+`f_Q2!3j>_>(-}(iAN4nUIFN>@SLy#)beF zSZ2BPnf(LltP3^dLz%K&5G29mXlzaAUEZzDPOE`4)2&9zL9Z{w3yofX9Giu_*X%}F z@G;;x-BlqRBm}CoA}t}lwg^Ivq9JN@4Ev8Veq=NNStTT(;Bbi7aj5W3)UU(efEQpX zp4>WjsHqqAlhszgMeSCpCdxz2UKN~5g`r(`2hx?hr?)?t${1A^2X8wms%BezTk<4r`nz45;v1jzi*6b#Grras(0c6iKcVru&w-&Me^FcCa zV4BsfM;7uTZ5}2hzr>`GcYT|awV%W@%yj^x(G_yy6dkE^$cmT$2rYl9LhzIE&60ja z-&k)x&k4g?osKhHySXpx^9?p@)E09ziMm`WS#=-Zp#i{ zZ*f^HX8rbTwl6z#y+M;{fpunW&qv)|E8Nm#^beXy{((~mIdDlu0Q|8=;6zx`5Y^Ws zJEs81tg?wB?MV1jl7de;aDdLq!7Qc$kp{nvsgQu9D%!Hx1Sp`o3C$2pe=GvHqnOF+ z;8$FCb60zNQ&?}DxvAAH9{b@BHF`&5d|%WF+JCj1C<~wHE+j~n3lCeN-b39Ssa#=l+kq-&v4fT==Eou- z3o3Yt`}S2e7MI(Z3mCj1XJ^~O;LDYX=f{WLh~P?zgTn{YQJYQO_XK#8^%~f7EY5ir ze9In$B#rQ`JyCU%r^E|xX^P8}My`dg9s1*%^Crmp?x+c+-8gKlAX=ud3Sf(Dw}cjs zbbQi!MTG`=Vdy!$1t5zePLN_ciKxBRo@JlM2K>oxK>cN7>=g`~t!}r3xja#EK?uv~ z|ICdBu>Idv(#dk?bm`?6U*vMaIh{~Bw&%c$J61M|FY(VMi>2mNq3~blPjP2=%uLQa zct`CdH+g(WilBzyS#%52PZ#hD7RJKxdNpLTDuD4xBS$|JM2G^>NUPiCCY+BvzfdDy z)&ka|tPU5T1PeiI0m;6OSL>jID3O(eKrQg*NSq-@uL7AD^_)8F!RR9V#OO?kIfki5 z2Vx}}UA&)4ga_f@dczOTIwc|yO7dsr@+?vjQil-kT@HcoHyjr&w9B!b7hWyz)umWZdApZ)XQ;$^& zgO&4`G0lbwShgxeNy(|lD`BC5H&=-u5mM!7aih<%i9s~8l`T^AlvXwremK@4chTRh z5;2J=EImeNNz#cV75UiUh(QxD$q4tkzy_;Cx&_Q;B*m0mMF=wRd65W*M8ie6lbZWp zcG#vGyVdcnclC}x|GOEjknD~gD5z`ys1Z+bJ8pfbEw!%y^S!ky6|+UTI#i3jLbEq;Ki;sXQHVcy?O0Q^!+2`HN$lwi_gjV9 zUy36C?Bot<_Hbe2ym8@nC{*`L?!Mu#^Amyl|7gZ;u!;QVZ_>FExu9>~$>Z04L#c6F z&@)JrSn##$5PS7N`X_*z9Z;-SJXuYYO3la`@OrNq8yPMQl={27nv2Z^#I6&egg4*~ zAm81nQ8T`RRZWcmMX>rvYF?p*@z&t532NlcQ{62tfP{abd6cv;NM{4DDbvld z_K=N)Wdglg;M*bHAbx3_njtId#x^RSB0UE~hZ8V&W2vaDHWN+GH)VVW~e|0I) z14@JV%C_cPtdpVGwSO0EHTQ{r^PVM|+Kv+^c3j^-FwlQ}W_38(9!H`pFN)lD7);6X zpy2b3ru*O^dtg(iIXQN4b28QM?$eEDI@j^sua+rl#S`0ioLD({-L}D%oTsrRU)8`p zE$FOFMJE)O7{sD#Q+Yly*QIS(vGaSfvHJEXzLti8;fKkY6B#e#X`m#sBQwRie-) z`H$X;1^fEH)!(;s(C@Sd?zwo+)BMS&a2VVfv^fJ01ngXSb1(jFu7pArr@zTjdu8)I z_u$9=2>srCJPyXJ>wAU*?R*eVelVT9#eo)a%`NGwn&Qdyw$|ydYMbZffYo)3kfhNp0@=n19Ch!r~3I$kE#Enpp zaP`RTC7%!OhYA>^uF5{NDDwp}$L8NcPb~qoc>mT^lbN52)9V_YI%=`Mm=xn<4^yE_zL1Rdq+E zbwy?1M>F}=!=L`l*t(YVt#cE9{O3&vlM&*HLapj_w?^iT`NqiM%;F**VkD}G_UC_2CTkVD4mXl{F1fl&gGNj;juoeM&t2^#NmmGS)=m= zhRbD_E79EBwbqmK6{4v^Bv#%@^8|6}uOKd+Ktx6p2>~|+@)WRM!RvpI5$34F3*iA?a&e_ zCVozN7yPG2?9$D!QTxHC1!nvHzG_dU3-1~TI}S??#T*sA-AJluq5wlK0DKN1kG{dA zhvi0Aj!c9Hxd%lZLZ2)(GD~QmjL{ybXt!a|Dc;6nZuBmDMRNenCX0?7knHa+sv&@R zA4d}Xr#XK2#0~%XiG6!G#l_d3{*6ZzJ?}i~GMGI(Kl`}@O=`)1>;F6Mvs#n3;BDXd z)4gD;)yKCy_UH|v+5@*2`kQaLq3c?uvsU}o-1Ft9L~-BYa~CP&SHQJ}463?Uxs^7AzMgugp|fa_FoQFZ{iNSkcRwu~o}4YFS~5Nnd3c27!{dhnON(`Jd@wz4yLQjz^M?RweD!QPI7xvh zoK}#3nDcDzGs7S%`|f04770gq_aGD15DxUCL=rYu2i)`6L-9j2j2H*xYO>lxxS5H?-y~%9$c+5b4*t|Ybha5AC`^Yuw z96)BYA@*~r8bZ&&yH?0&Tav`q37?HK;tE^Lk`Cc22WMw?HF=uXRdPH+#z6q7HCnL+ z8jVV);&kvv0ox-YGYP92imwXh0Xehv3LQ^bk}~IrEagbM14a;=9kZ;*mfcZP_&48@ zW(Z>@X|F3pq@-aq#bg*humY^j&0j|&(^WA4sOclgr@cAZjZb6^^P&+=FyIm z`}Upe7(J&o;X-%qJTYGNZ`sn%_KQb=&j3ReR+n7gu(c}Ej!GC4sz9<3@iZY~$oORK ziY8bCGUGS{oq+R{D>+or0x5b_->E&vsiP%j)TIhWO8{KAyi|MVW&Y8*+NIj1gQBPt zPM;BwiJyL{_V&v!bN**)mushMm!IK$=asS37thYWG@5zgh0G`~+;fk>SI=HNJ^$-x z@4I;MzGqL8ye7T>F{Mr!z}_~c*oGVua1n2wo){k*>_Oc;7yt>%A8|Plq3!4Tf%vN4 zv;|hrwoSYqHX~|CVHH~`Rtx3;xC->h)KP2k(+-Oh0YAV!DPKf{tqF&OjxYzr6Mz{^ zIx?mR5E~HhM2dm=#WV>>6YvG#HR@|%po!lB8IVwa$W2GuFztrz;O{3D(6!*}j)O6l z{z(5JhnUo99HBZAywO&t#=r}5Fp$a(Hv_2gN}_}RT2m*iWTU8RjKm6GZuV%nNGKc< z%y2>o>B*Q*$gcFZ__TuLZrQrc4r8c1H_9hAHJRPK@S-N=^+W`f3cO%umBnaD>QrLQ z?R)UNz&{`HaptJ)`MY-CpKJHn_r>itevtP>0aUpg6%f^iyk*X0vWITHB^DBfG~2Y} zMs>($tex}afF}b$3VlG-@FJISK7FTG*4JbnBa@^L60}-5V?z2nGR3*sQD{G!(Ljh6d3F{|C)S%wd`8f{-yTS%a@pmW@yaJp&7#7b`&+e|E;79OrZwH6b;HEclY6u`T+nAur!|zK2s0Z;H4YMBgw=vyCIskUC<~*g1?*8pxs03Tz zzuPxfZ~8sHOu_4sz3|D~C+o6os@CU~3~-Fl+@EJ- z^B8xCVH)Fqx)A?kewV<_(w=~`#H|xGRN`4@PEN+-5y@&xgeoSLK|tDe#2L^@_`6%c>h4+M=bI}}n8gQox~-u^*9N=r;7myJ$2hygB^nyRZKTr~ z9St2utJ59uMxBxgt|t(4i#n4{r?Y}{-)=OTwKkJVlX3dsDwE*2GphN9WgbBL#;!2R zea=42J2!U4qo(le!vaDPv_GDLzMMep#sUv|V^uI<3{q7K5tEpWdYzyphUj{|5U8bO z%AsGuC`ztS8=3A924HUGzQBzP-??w!-mh`VT|d9!*<>>GwY~fH-2O+r@TE`R*?srd zo;rG0<9p{iIu1PZ4EG8bYP{>{Q(r$?{uRSdku7>&`9Hx)<-z>z1Z%}c#XVJP0`i9Z&LC)J&Tv(SKw=qXbAGoVr`DX+Wh z=wE#G@TX5+yKQR1r!tsP5-`&sIuF)fI-}8Vntpfe8olNM_lVgZK`mpa&khR{Oi3Y) zrZbAtmf_9~^Y3NHG`dD#d$>0&Hu!RH?Ap3*boAh7{%~_NJTPhGLo0i&Vzl=CV`F34 zth={&Y-~IKL%TV&apPg$Xtx`|y!>NR11|((9U65oqLC(R@9J9ONS4;99W50EPi6UL z#<=XpxHQ3!zs`)>Nb{FWvmA|-ZP9D+DN=enf-<$e3+&+!5C9*a#lrAz*J zO?x>KcG>sc^u2&Nz~=;q$v2tJRx6>TF2L_d-HtwNFg=!Ru(-XZ#}Z@f@9L;UOx^|y ze>|ZvI9%~qnO*Uw*&PX0ktTZr&0mO3sS($+V^)V1tHBHh&$``)eE>aHa)Pg%)I{`B z1A4&gq7Y|Lwm|WkSYhR8D1|^}zluWkt7yrQiq)r*3(GQ0R~V`XA`++t0zH!A4NunQ zr2F?8xns49E7r_R4^Hj(JTw3B&RYx8+x%$ZI|nBwEBtKjR5p9!haKkkxP&v2sJwE= zy4A_ewNqoqq}p#@*?vsYgL0qhP|NiM^a=;&K{Gsks}(1!{?)7cd!a=a!84tLeoBRK zT#SVsRVT5}Rrh4E#n~;qq^xqBRA`PgdB8t{${%_Kmq~^L4NlA+WY9yk*6K?Nt%^|? z!S(_{GtCaAM7nbfDOsqYha*&M%o>_Ml0+7{0f1>Z;pv>EW0&Ae26s2sr=y9pqZ$hQ zxF2;!SK8=Gn=8Zu6J$-($|eOR+NKi)qfrob=1I3Cxs6jkoz5ps2Q-?1ZnM?GiK5D2 z)l`jAv~}v3#^r5aJCd(G`m7)f4hh209*t(tIgRGrZk=Y&k94{p?bhjb|5&H{@vJ1x za=-+>ub4A(_vr-VZR>TzP+`cC4vyV>m6uT)!>s64Tu1oP-f9P{Rve2)P`Sa|fWMeX z)9VfS5GLi zoKEAkqR{SOM(b^g_ob&cH(G3t28T55bSCVy6$;bRUq1TOiO)B9c1_g&*V9K{vF>?` zvxhCV|F5`fkB_R#@Ar2nnLNoPnPd`X^0<@9i_9Z4XI^(gh}ldsA%Fq_Apswgkc5B; z2mu6Hmfdx&&8i>kwk*4~twmZbwd@VLu2O65*8QwYt+lResa2L*YptbfUDqPT(C@kT zoZzeN`d0&I&hMW4JKyvA{q8;YJbuTC?YJRFSxIx-@RKa+jTo@(as~ z&f{Uk<9KA$Fi?qAzI@5&z~I2(@++@^Z5}*~Bixn-KlcJB z<#{SutdwJPdxBJuo20yA)w>E~*&2pyuuZ}dSBeYr3X1cvtWGK8oBf*= z96XDo(NLZI>#hXb0U(7=>~DvFn*;w9Sl(Aq?7*sX?7}Wo=b>YUIbqm~%R}SxphB37 z!^T|h%`Nmh@Y&=s+lgaca~%ba+=5>{8;adw!{X)zUnmzPp6>sz@>@MNQ`a2aA{iEn z@SX+4*&On2$6OdDz%ea^m2H?V!;2H=qM_eag{M1S2zWy{@DecXd*XW+tmgNx11*ak z*tBxx^{sW)shT=!*5b+8W2Dztm6sMi@sPk*<>j=tHMhoAIW@a_+w5#(YjulFz59t) zR~4xb(bi;Ou&*wm!%}l;`Cyx$)b`fJi`-3P3+F$ec^wtZT}|CrUB%^BtXHVOIyb(5 zbrGJUH+MJ2qV?!v4R9NKT`4`fD26r6L4SQ?edGKpygQtQ`TS|Rtf`^a%|{cwuu@1c zu*2W3*c_r@%nAeXuw8+9ZhWV65?frw@yB?wd`@?WuTQYfc!2ivVFgpsq3WW`r8ktWn0mVGo7ZiIy^w`#$slKEn}1Pfz`yXmhUzMB zgR8oM_fzRmDypz6gDVq_(z8uI?Z?fTZ;v_$F1n}eFBB=;X^}1iN6>Q z?`jgdEs%HKfob8+y5!?SeCW@Mx;O1lTMTiln^P85edUcEvBwR z%tv?gUmCo+bwRebFZ$Bc6w03}ENQIYRpzNFu}{#W;JGI=HkMJhW=1~>wD}iiE7Ypx z;m%oZM~>UHowhv=JBA*Nho`#jfi}FAA%*_-Dr_tz!n}ATc9dzw*rN->XXv$>C+r6YOy`ru?@4IA>rVbvq+q+y^`?appj^!h_akjfV zs|zcfmF348U~5xztGCrfas!LEUUi_cV{={D-mvh>p~G$QfmlVMs?K+o+}BpFf$bxl zrve$mnfKpPr_q4e|A{`^GGUtLS8an> zP49y}P+e*6&Z&lVcYn7#9`L(O<5Y!(N_~=>(#W;e?($@sN(k-U;M5AT+;&^RYKoSlgAezq_-yInel+MiYh28S2d}SV$8MCma3CmiDgAT}Q`H z+Z*dV?Wy%OXW;4Axtq_-J_o9)H(uVDbGnhY9(OC>JGSt8N9Qk0 z?Wj^=I|6^7aCgDy?v&!l!TW+c+k2*8#%ZkAaF{rcD{gup_a@-FKI`*zY>z4qddu={ z+uGv~ELKugPQK0TcIlnr6B@k0vkAYqdq2*KLS*TB#R#w0Nwz z9H-QF7UjDi8y}E&?$mOD!^?XH*FT2ug3t4U)7MNM(EQrWE7BA99JXJ;5+P3?{Ibku z9%Op_-d?21ec{yK1$__PLrR&A)2I{mDigER#1;ACd9fwncszl}vFGX!@pxP_{wTtC z!tGGJyq@V@rG{E?0&xrcw-t}=ApCc5{f<&&JD_;f6G-p8aG*IR9T$$bkL&V%lSUo! z`s9w+7ncRo4Z=sBcw3s~MqbVO0*@&dVfei6c3aMrBghix`M5J>?LB3#{AOALOUj*; zA6{N)b}8DhjMtIG;rWLqI3V>7+YjJQ;XZiPUIk5P7Uh%hG>rHr?;+198lDiQQPD=)U6 zg9my4l^xG7=SQ8G{{6xi;bxog`}^RKuF2DC`DUI!9#_OM%Ybm{n{~$d&^~7T$CRLn z$HQviy5M9!;A5?wCEJ|lb(kaSMe^|a=lO+G@m#>8C#*~=FXBLOoxVn=Rb9PD{h`fm z%h>L*y_;j?vfKyl754k`)V$HW!+CGyhw=~PKU>gPkS#b`s24t4lqhG$Jy;X<~&z1R#{Rx>1uV2x}L7; zsk*DWyZY4p@ce!AUvZbX?{%N|9P+$e(_AxI^HOcB_W8Q~bRsqVB4gBD9{r)8aN#+4sH%!4BZ^Mw_R-? zYkxZ28eSc~JA5kqL8Lm;5xFLEAaXQvD)KIKu?{xL4zVZLOYALnG3ttTL^nqdN1u$I zjTOiA*t*z>cz!$^KOBEPF_w5F@jD1<&K_?`xbUD ze7du<^UR{rMbCC=UHh+?xZS>a_eN$gb0BlF zKfix<{}YQ_7w=#E1I?_Pdk#ng&tS5B=w zHP}4(@~VBS2UnlGdgAKW)?BmZ?Ap7AV#C_->2(L!cdb8mP1m)p*IvBt(Dj+Dmc1@} za-@3Xj!|_3+pv4XOJm`2ePi*)gOkeS(B%7@4sH%_zIek6TQXaoyK(Tw*S2uBe|-PhFR$TmFsfDd zDcISFKNTxnmSc`xQSQkbFhgJvT{%AYp5xtb{`Ta*cBMhkI2iyd#;kCDnpH^9=szhd z1gqLFZtAh@Y9oD;(XF60<2!b4+O}1TfNh~RH8nA^Yiir%rmaY3cQ~Xk z(1H_MupjA#wcrjdj^CZ*W;#k**`{n)_QEdsCS@aZbV}jtqtp1>(C|eV#(D+@Y7`tA zYJNo73chh=3$A()XP2@8SA7Vb0>^e>U5V>4@a)1`mkh4?9q#V{`nZW10;-19UD_w& zSs@Xm7lh-#GWCz6uK~smWhd}CvIag2Z6W9>{F^`ycfsF=l58^5=B3$<6hr7Q@-hX% z!+-nn%TwTa2?A5YH=0H7L>iaN!zIrAyYzMNf6gCdlMfi%AcYu|!9oo?cDLp8MdCQT zxfmNGxN(P44Cj=S6Fu2V%)eG)EA)JFlZR@k7RGGqNh2>ckdGRviJGZ}T4@2bVQ4u( zL0H6Sr!Yl`VUP=38L&euiKl3aI&l1QCoRGh`xVqpU!opLQ!n*VhWcTWae$W4Qd&k= z(p9vaR?tcsq*b(8p6If1PfnZ_sV@YjivPI!)6z z=?=P+?!rvW-SiuD4}FV%lYR?lvVEHl(|72*^xJeV{SGFae~<2?-=`yVKOLn%pg*Js z=t24;I!1p?57D2{arz#hJH?G z=^yDe`X_pw{+ZsOf1x+&U+FFSH#$fEPH)pY^e+7ey+^;G_vx4P0sSYPrw{1@{TE%N zk7$-IVd*)(urOYZi7=ePjyY}Ey2nBtj0MkAOH>CxN*6W*oG^b`sk+oEwOXC8x>b*T z2Ufl8$mY1|V-SSd-7D`z75#cl8M};2~eq8to;U|T!3t!+d zfyV?M6F5xZFcF`L_)NrSB7RiFkBazFk)No*i3*&k$WK(@MFn0|;6(*qOyI=?UQFP{ z1YS(w#ROhV;Kc-9OyI=?UR>bC1zud>#RXnm;Kc%~ zo-Xiofu{>RUEt{gPZxN)z)K0dl)y^~yp+I83A~iRO9{M`z)K0dR4QM{Z&(r$Nia!7 zB@vTEToMUMBqgCsLLx^bazr9WByvO|M+v9F@pXi5!*4QHdOt$T5i=lgKfN9Fxc~i5!#2 zF^L?L$T5i=lgM$29GA#(i5!>6afuw4$Z?4rm&kF69GA!miJXwg35lGL$O(y@kjM#% zjD2lZ)g>fyLLw(6a#A8EC2~?CCna)HA}1wsQX(fMa#AAe5?PnXx@9BGO2@1 z>L8Ok$fOQ3se?@FAd@=Cqz*EvgG}lmlRC(x4l=2OOzI$$I>@9BGO2@1>L8Ok$fOQ3 zse?@FAd@=Cqz*EvgG}lmlRC(x4l=2OOzI$$I*7HJqAjEjGO2@1>L8Ok$fOQ3se?@F zAd@=Cqz>Yo5P>XpkVze6QU{sTK_+#ONgZTT2bt7CCUuZW9b{4mG4CMKk~+ww4l=2O zOzI$$I>@9BGM%re#K`oeOXm2*<(@re_zWeWjTu^Y!e=NehQ^131|dK*o?2n#G_Nyq z`qmG5eO}M>kY=n{G2}J6hdr91b4ni`){OkVkujr{U*`8|2G;j`jWFkUYQ>N?p-oSZ zXxy+$79kqHSIDUZrxICD7N$5nhT1hr5Fzjt!9}N^ZsnhIwxo>GdO({;Y9u^m4go6vgT5H7IQ; zT_<2O3sn#_@&hwUZr|!5Mau&5;UX+O?3vEaD@S1fF^jTV8ac}H zY~cUOA)nTXOP^6bUgPn40aO$)3jIc5ThJ&DXj(t&L{_(NME7aaR}XzU(8Ht6li5R6 z7{zS{Rff%cm3%B;pStA;XmO++G)e=CVYAv4q9N1cq~dzSl-%AfpFV>_&5^6JfYyl| zNUkiZbVLst<$+LDXV7qd&RtaG25?jaW>m%1q=mG8Q_j?;f$8afU%zi;)F5Ba2`6Fy z6cVUJE4$E!_;21d$UiXJ>mhK9fmZ4Z3O8;DSep{ z-QxpJhPPXO+Qb5c1%(tK{El1RxXc=cu+;?1ki2xg$jCn-r>uLXtpX|91UsY zHjCo;I#J4MGuX)Y_26E{hYItf^@GNIv-HTBD(XgAJrvS9@vyMuNmj_^%Ck2iGXuCg zVo=`(->9XzK2e{@PS9|R#L}`tv;5hF0?0b|1bkYEmplVq>>Liw6k)Y}(5RUUM!jDS zuAK`uxn9J$S6bG*Z&XU8l;;loJKi#ya9uYNprxc^h@wh7%DJ$v!l)C;e zCTP5Rxq^54bdUFAjqV*58Sw?UJQxkgb`vkVY=%}|TrY1co+Xj*xe_+;6851Evi4lT|k<&YChQ&e{>c&qDEpGdkv;Zg@5=eN1^~aA=0;uHnb? lF;%%i!^5N(?*iZU6FIGUeS^J^(WP$~Id{(FVt`Rm{u|TLsu}z|m`YY0$?Z0(JHd~4}{{C?sC(5Q}&(YaFWQS8zut9Q|sb^0Kmclvj1;gFWTUvzjwU1cX6mO!_O}d z;t$id3B92qa5!Tv15+=c;MYI^I=wW1x&`zA5cuWycUr)g34XLbryUQ}?+F~YI+QIX;_Vv>VD z19tWLHGR#E06+q~j1nNt*ke;G-}v-aBzIp0=;*{ecMV<}sQL;@3h+V$5Ba6{R`*`@ z&gp*d2Fq%alO^J-C$5Ue@s@QB$$FeMV@;V+BVamt z(6Xzm@qBIBHEPnCgipX^qtEh|Q-jVJ23iIsoY0sGmB_K#EUR1!MP|A) z;lFdb2PL7Qjl#{s%R*;_$kHiBF_W}2l`g{^2pk1ja?_9{tC(jf96{3rWIJOH_E|V1 z4*t@;WA==hh9w~h2ZKhM6RqYpEg6?=muweSPs$z zUBlW|HT4yjhfftxNFH&Y;a#)dYxwsfQzEtIQrqo4uTeverXLiS-!oHTH{(Y66V@LeOm-VfR!jHh1UhI0_Gtr5JIfE6rWqh3I7 z6YOYl+K!Pm=m|5(AICf(kW)SIz|&Lk){k^EUy&JBTlC#&hEg*J6^vMk8sZAo;FKuE)XXz$J#9e?2EBjxpG9r%UIzV|yEgbp(CIhW(p+R%*I(={0i~~)AdndJ z(MOX|k4*b!JwV7OC?I&n98`a%tWmS9dJ7z5ZSh~2{d8-VgU%$XPPx-)iJYnRNH@&rBR_NrGRI|Ax=A&umZxn>H`K&`_G>VkD3oV6 zl*GT&DeY_*uQ81|fM-LDVaA$+Zx?ZZ$WQfpr*|cCv$^IRal~=svy0wyi)Mr1%9+dLD|`A!tYzMN{9p^> zN@~;wq%&Ip_Y#k1(5v#G3L?Fb1nw!Nf@vF^ZO9*(ZOM;vlHaaqW6(I`i+1x`1EhYc z2sbO7V&Q9Zf&~YWxm^j=UDRUcdwpWu?=|rJAPsi|@)->tS`cIIdtb{roFMMSUKw46 zm7A3&X^bu29Ro{2pZdcv!YpBB=cGq2C}o=J3IsbV^&fhW8B#DgpIscOM6 z*D{_O!&Opu6=Ng#P)T2pRn=&GGu@P#9DIM)e;@Wdqc3ulJ^dt@|MCYvurTaTGF}Dz zWGL6nB*jbnbzzhx;C_txVg_)szbcYz9#hkdZPFmhssvxP2g`HUo9Ul%kq@I( zNdFEQF>lWoiLxQn3n}bOl67t!7`T}JAp?>1ztl>e@SqAwZ)%ZZDvLg~`%8mm8EYpO zmyJZ{6f0SR+F)$YBevYK-wkd?&meDye`1Sp*rDCtya76k`|y4n8aR)cJI7^#ZI-X# z=%h$nWX@I2wxJjpaAhBi9OMOa60(hO@(r|9Q)syiQ$ko{D`O(sjPyXm@QYBm486fA zqbv7nAVp&DmyTC#g41@m)?u0Z8w>&$utbOZ$3nEkh+qMkUnuSD*Exr~!U(DvejE=K zSI^tMy+tZbPFG+Tq5J{cWGLF7-X?`Nx^dk&ry!%Ox3Adq2pP57s6GFtE3l~Do*)+% zPAl~LcFQ+|R=A&j^kc*FTV~pPZ1cdm0r}gQE2YkvV@kPAf=}muw`StxZVJZ7Zp^}7 zC&$;5up**?0N2HT;oCzG&!+N4KeFD$Z}O5t)YG8iF3+n7V)!^Zi-K8+%r9{-*2_h@ znE}4pV}c&l32LyC2xr1x9E+xG5_OxAuX++RO{aQ#Qe3mBiw*>ydiRTIaObN2t|mej zSqjD#)7qJ$@qLiClOl&5d9RaK#yVq>@VeP;ab2bWvj1dI)|cemZP+@}%!F`lNzZI} zE$K)(Q%8Vziv8J_DUQOFBsMOWi>0?`gz-QSW!V2U`Gj?btW~xt%)%Z7k z?rv@_ucv%#&-UGdqkZBK>=UUTd%Ji`DW0MPe00Kql0u?xmkam9_ieR+Mx?bu*BT)yqjPF2i`kctmY^8Pi;ns0 z;I*0QU41@~(*COH(_OYd5z>79UBg2Z7J^ImtjS}{XWaPI^Yz$+FA*5W{<|>=_cySd zsLYgfD4_(QCRC)jxdx2@WM)6h7@{x*5wR3TL7<^vtG|Ib_tJ{8<8W45J`-k1anASF zP94!g#y?BA50bpW?>X%!AD94Q!Nhb?p2g)OYr8i?A!(EOC4n;+ap{@NitjN`%R-AU z&XS5Tmv3Kh*y-z8O`vO#fQv)ig{EqT6u$Ybr7h*gSuH9@e9iZM+blZuHBjyt#1RpZ zwU|H*yI6Qe%?5?}?PV1Du|a`L_MGTt%Lsy6f+FCE2ml}QZj7!y@Ma!82avRAuq<~W zaVj>=OD8~|F-x%f-drQEQo(o_f83Zycuz7Vo*d--%vQ^zN{EA@Oq;kEjzw2f?U4#AYxf(F&9 zStPiO+DRxNeGS&tG1l7|d*d&6VNbE!ru39`Q!0vDAd9T7HU%LfX&>k={B#haFP{i; z*q$W@-i!F0e@T=(PZ&_TWa67?n8mQ4I`aR7u6DN z+Wj;Xm&A91q?~v+L^3q}WO-!1%h5G*_;57BmO0B;`e>q3!(_TCP#ow3`Pzst*Q;be8MYOA-}ZZ}E+o!)hr5UKOF1?W#J;FSwhj zKq?hLJB2|q_;xdNj@~{$%)LeVl0GYtFTF6?{sD{y4p}b^!|num_54eaQftJY@e*e7uV-2`?eGK9d!d?rebMQ8Rm~vSg5=} z(4G`Za7+fr$7C8+H&6m{v?^wnXP(AK|kThtnI#fIY3q*lXC=tjRAt~DhwkQ&8Dt!yR%A5R%FDB z3IygY8PG>cgW5fv2D1_b^&A8O4hl!2#~UkS97PG&2b&=_WDH(`n+v@-sBusS$AFFn z{!pfVNrZ2m4G#)eoQ;Q43-gUdq!dxvVV&)xJmQnFwyV*IBbj0_$b z1_83NBJpKkpZP%AC1g{lX~_47gYOe|+%37A-U-NiwS!ri)&iu9@oT?RY9uWlQQW(_b7kHEVui0Bu1;)U|ZtAqF;aEYTvjT-|9 zVF6+>Oye2Lf9bZi%M0-Qf#vyg#{Y7_3N70U1Bn+18bnit@}c-r|M#(`(VbS?vuvzw zzJ~Jzh^A%^#Ib*GMdzu_RLDmSW;T3B0Kq)H8}-&eWE&-x4R=uLqY#sw7Yf0WD60@s zzdB};Y~VoAO325DH%C0^&rhxzfC)i+n7Pj3W1n5&s)1;!fiMM?t-)-S>8(^*ksS{thvK9TS0#%u?!Z(uBRGm&CoHBH z)!~O38_Hm&%6#XZJVev79k@2K7T>CsbvW$})WYLknq7p%+Qhb)RS^F)6MsZS{~ zi3{ISeU3TH_QaCf3dC2hx1h9n=sHVIw-=nkcF0^^*MWGS!~0?b%}pR6~ZOD1Ko~`ACH~0|G*HGm!-K^ zI@#!}m?XZ$k)qd*JhJ?}aq7mkH93Q@aVm|Y9J5rurw7Ie&-zFyO(Z)zX_0WIkqCXcS^;L-7ghHtRlqU zX;1Gc98d=Apd6A^N;rkPU}oSu^qLTd(oha4TFD7gyxYJRYZNTa@K4 zp0^SfmvL|!&Q+cp$6=gR=c`-SJ2cYJn0-?y5UYdb$T-MDLRE7Ih3ufD6V|7uNnIQUq&pxS z{ou+L!5Lo_UU5XxZ$VQU?9lMA7a&rK>mNv(dx~4&;pTFR&sdLtzs0~VQr<4l;so1C zp}gd*HB{E=B^jC z&_bs2eRACfB7?fpzXS{-wH~-EF+MNSA*-2hTB0~{Uw*NAzA|>b+|~+V)yly{E%*!~ z1k~<;ORvH0%Lh)aNuRphc(GQd(CQ2yXT(7S>Hs0A_98_lI5Wm<{z*>Y8uL21KX7Og zWE2?lSJ$y=TU?8iAX`s(b%ibDU4;l2rCzjzP(|~}PRFb*4=eQ-6Us*q6$K^s$*=?i z^fFg=WCf=t%LN~f6R;Xt^Z4JE636O!4kdHs5QM22 z>wPF4xs+y#5!Jk))Czs_Vls0MaarRdPykeVJ-pMa1^aaUEcR@+=KiSsKKr_@YN>WL zeZSq`z;Cx%;{P6~c%Zov2HMW$6MOlD`sV%;cOfOrOT-a>EG!PGqUcbnFWTjbmscq! zd`e^~Tqma5)ZM=c1N{g#Y+t#aG|u`WLf&wZl*HMo`+QN=*$GeL+Ges|5MR`?6}dHP zH#$o6VnT#1T9gIOc37`o#d$$l1CKF|DgJ{tgcWZ^0kN5e$B35*S>|~epv%MqhISL3 z&a(*n)Ol2!*4qN2VLe7MF_^Bd@kDOOH64x5E%Wek+B|$r=p8QpL>6Y?vI!n`85@CX~94xE7xG9@7H^?pv zJsUz6Z%L1D9&aA!k5rA#5;vzM)2A|BZzV@=5TQZ z0zr-yB*Ob_Yiq^|UB_E(^K0{pQ}cLLryc>QoVjed@-$f#Lv-6nelA&Tx*QX6-?|mr zwjcJfA6L%WMu;5JW=I-Y^cq-r&Nm3U7r7L<_c2~B0A;QH%2_XQSmE87FI#L@j$-9@ ziwhnX>%*QCZ{}jFiw!xZq=$Rd`(o_9B&X>$LtQ|Bw}BiBsf1EfFT2*_F2 z%$cD`(?989poc-yIJb<^C+ePSn&Wx@0-C0VyQli~8{g3@+HPU*HzCuwX|p=w0|>;B7B1ZauvTq>HCXp-J3= zQ;RB@&E~XxarnNGAI9?JHT?^OQ`w_?c|(KJPs))+LnBtwrAlLkMHyTC+-43kg$VK* z^BZpvz9Ia=Yc&`&j!&LZA$))D!MeK4b?-V0%aiNn>u=8k+5I^B?&|`O z3*|h}r<5L2|Kh&6eQSb3wJGCO27)FzcZa^LJvn`5bJ^baETK0+5e<`$ql;VL5bHSN zCGPoY>m0WB6SNqz4bEos+dx_Ks^oS~v=}Mkt@^bjYpEt$*=~WET0aJAN6>cqDtF@nU7!Cf7N4i5O$<>f}LQ9V@Z?6x8FjF_m7gE+1Jb*+$ z0JE(hxNA`aWQ9`Rgd0105XqoBstI zG898>@xXNTaM0=Al)L$uRo|mAocyTPFFx@$BO~1QpENX11LBbgG&){$o8-9&T62@| zev)EmkBz?l*{hQaENpRn*I!(#3KeUU45JLIoq7`Zkg4sxMegk1pX?qib+eat=0pX3 zq+(~K`%eW4{qKK%aX-Hrg0!K#5kM^m&JaOoLR{rb=HAX&~{O2N?Zq7 zEh>`AkU3k9A0n+HvyLexJH-i1C>}RC`Fl)T2cr;KL37JPVgs4=`Z|#8PE3HM;xwp~*hX-p(G1r`A$Yjl}Mxx!R>jeP2%Sd9x+%D7yMr;zTmcmM3> z{S?(>6Bu~oNRzUBSAu+!a7@o9p|CYRfl+~~J9}HYeB4|}X{fsQ;hnc?>8P-#Vp(7* zQysbSXkwo{7mQ+N0R#W$)~nM?GZ1;3OG6a06_Zri+E; zyfa(Au7L=TDMPje)+9q0O#RcEkg*TSKNQL?c1JHx*a}Sv%?8kcfbA#{X*0?<7!dz;ShYfH zpw`{2mbr461sES&V?--j=Yfzn12R78GIJu;%b+ zSF$5HQ|iXjirNjFE+Jv+zjc_t&Gtw=b)JItG%fdr``h?nxY4+F>oZd`3RD5ri@PUg zN_4n9RgKyNv&$iix~l8`XXS}BW#X3^M^}#Oyo$idU!}XTH3?2x?fP$5_{Wv_x60b4AFM=HV%=Hf$tUuLX>xj!(tn^qNY;1vBqtIiH z#p-~1l?%zeIDo2T3@ysxA%bIf^7F+_sDzTPfB^p6tMMD+p zenA}lrqx|5E~^qF2v1|WESkJzlU-8CZ#i0^m(xdZa)!*77s(5J+Vg1NgWDywFRW!B z)9e1dj^Z8d9vjy^E$k=b7?VBrF1xj4qnm-~q}$rc$>3+}R*Sux?nf6my3G!~#uipk zvJ{E^eUg`6ox2r#v(7$|_udwoIC{*Qw*FnnHTvQzO75MYx~zDW{z`IJR>?~LobrcW z!aKueL9odnAe9D9o;s<>PS$a@u`I>-CCND*l<=$8n&~i%fIPe3Vi_(u+pH`M3{960 zS7mHv6IiAUYU$}Tr4nOS1GN`taeBYs&bx25>TYY#3Qh#86wRFy@AY<=i9bvYT$EWTR(MfOY-xvXT^&inQ z@C!4Y3$nodG^KjS)&mnwca$1VPPBO4KI+_54FghFVVQS(3qdr?(=V?v&W?-SL-iPpod1j&Z_h%qOrL$YuBI zp@PBqB*f{#r!LC3*B;IiCT61$3r&OZV&Kpy6}NH%IL{hRmXiuvy;lH)-8Hp=8NX8U z7jQ7d{ylqX&evcPH3z=WrkcI^`qyXr5p#8X_2;{eJu1@r-oVH9oWTdOZ4!BFG_KXl zO)yUZfb`AW*dI|@2*uSKc!48#D(;j<6awS*SPUQ>g#%!a2L!jy^Jkc$a%Lo!8n2r0 zzVQ2;1t65V8a~DiSVZHfIbcYG8gFVo`*mN9o(+WT(RlKB{{5AwtU=EgFL^%HE8j(iX#Q9?*S*(%j+P@nd)`o#C&EK z8g{DxX{ZR~mCgn_+fHMmMhuP$c>AZ&vaN(a^5q}Oe5;hwZAB$AFrqVJ$J_v6`!8u% zd9>w{Y=JSKGlen#YWT}}Q#7JnZQVq3I!Xb(^kf>($BuWS_P6imV^7yqqdTRp`{~I| zUx%yVyTs-Rfmix^yEuVKS$EK#fdyLZJ?s3jKs-wqgmSY85;`*~82L8BnlWp#~wwGq?g6@eV(=r6P<^<&-90x;EJiO{!o zv0dz>kvjWWZM0fzPY+YrruI^lJH1~IEp!|7w=-hZQeC$^tGNqw1z?fW-@v>_ikdxK`ywyygLZ)I$5Nb+5VPuhHiX<~=pXahdKAB%D zI%PqT1%*9W`FMS4H}0fEHm5CDg&iK%7bqE9|Ij{Q#qdu=)|O zQ1)6tKBT2k&X{tCVT})QYBu}a$sU~Bjx|~57%kq%24X5%U-j3rv&%YM7N*|zDlRWW zI*w>stputxc`I_}ay$yGWxRA=ev=b4mNeRyQtaNhGdsdYsW*i0Os1Ot1LNGK^Gl;9 zWa*O+8ypSCybyrBA^>+7eGIJ|zDz1d=yZ!>>X27t6atMW>1nx#(OG@%vf-w$x8E-) zk>P9ixPyOtJkHsX!ry*m_HbAkcxynoR%crFNsnJ>+39}&H&nv+{mR*S4A@2xKmzH+ zfPmO;Dussr4PPT-O!z1-W>|^^O6&}xZQiSqqH>^arxdahvs-j-$2K|t%Ak}!+pQ)F;k1+a^d=xq|)7L{&>n0lYOPre#Fy$$8#6v z_)1|hB)JF^cv_@0_dG9h0{+<=5+J`!d(tHr$L|fCzK2 z)^`NkfApv7Uz8fh*Ej-CJ_W%LT&C0em3Cw@6NE1)EzN@(#?9hn|2Ec!Z#I}lw}_xX zMsy?Q*)|)>j!dY7%p?;pJuf0W_N1=jq9Rcqwr}8QsArYiqkeXFeq}XL%&EbdpT}QM z!GKOi+bdS{PdA^GDeQOJQD(W8E~zcL?HNbK8tI}HocDMY91P1O+@J*NF*GIm@tfW8 z7l(k$^~f&67YC687&-ao!3A{o++$Q~r?>u7yPfx*dZQL{WlsB%aTeYVaJSojFsHCK zH{gNBi*N@+6NK=bYLsb|>mrKjZM%WLxMM78|J!C3-KO{Uw&5X;37igU+-5Mv-(GoV zB(DQXXFB@P>_uJ{R@8awP(qswj@KdbV2r!I`6!(t=j_51A}8Eq>fQj683mPqIyUoO zRu0*gx*X%*`_MsguGALy>C0 z5c{TCDEUDLQ76ja@Wl>!k(lyHCPh8oVHIX?{wn;*ldmq^pqGKbu*DWY0+Xb|6BpoG zgT%hoFeQYU(n((R*?w0s>FNC0r04l9lL5@+=vvwIqQ5hsYsw-481!Js+ru-w%^2PYtI>j^y#uLAx=hru9~*FY6nE3>d&EHDic#>4Gs^ z3l-sOzEpWy0c4SAEf zTP`j{`|@r;$#(`#l0}$5iI-J0kf1^pz>cWeyKuemsm==4#?F@p12j?+Mx`=fWxZp8 z5op{J(>=Yk8YLc6GZAWSiA9NrkNHfut<(FOj~~Re_xK(N9aq$^t`7 za`o3z5hC(=%gSLq`S^}3P$*46e?c_Pi@?Z@-?Mn<$d1`kF~IfbZyWsnFxsHBE$OHP z>Z(|JPFJ#OeN%?S(eSE+OfQ6x6peEa)JTQ+pVir@ZpWm z)ymEcif;E`8;K6CG&ha#CSR`#s}5bumgKaU^W9=8DJB$1UeOG5B|f+}-4*j&00xba zufu8R?SB)v$fGAS!zL~o5sj=%&H)bfJ+WTQxDZ#Z0R z$lx1vtySvkw*EJHIALO~%q91X&b+9D(UPWc9P=iTpL0T!>j(2TXECdn2)(2JIXdvI z#V6QO`8qJZe8wGN$-BAz1&&+t*M!Q-0`J4qq;!uj14w5E2)eTn!Sgr$_3hZDHIS9X z%@Q|Kt@EOh0RagS8yRHw_5J?-C)oZiobA^ElE3X?_Tj|*KB?W3Rf`u`&1tj4J7RoS zSJ2haj(4psaSj{7{tYZJcZZuMxMzcL%Typs28Pc+xsb>(U_U=x8X_k<`+}Y2pK5P` z5b=|`N{A3EYF6O0NR=4v{bm3IXO%PMajK<~wuJ^Mj{z%8(316&=5tDv7|rcm$~A1! zprA+JCO~BMk9Ex&!}p%O?yvRIO6}Od(~|T`w3{xqPB2=1sDd+CD#FObgi%RQSQ@|B_=cZkgtiuFT@rCW z6O1I3hZ@!MoxbJU75S#xJ@c+2mGCdrZu7~IZf9$b>vgcTmYhY%)A-zldfspt+#z`1 z{BG#{#nVN(C}NK-;*JQgAXoWfL%}vO?xlEJCQ9+qQ{nc-io;l%G+Mt`f`I{{(!eVU zb*VJrm=@z`CPPvLA-KBS^;y?64_T*wap^n9i?{Y*(Y z%JuUJ)kgy>m!d0vNI!^ER}!^-9g z;w#_$G(VIc^s{bZuj5|v+q$Jnva|Bnv#AtjveyfHIzqY={`O-Eku-;&5^HCy?I z$lmOk+{9f4$vom(#Z;y)oYkkuVHjv}fFd{vne#LL@U)Me!0k!V_cD#S2R3Y101)=3 zpes2MrspTUEL#!ESeDu9mKC1 z-c0%%WZ84W{zsd=FbAO76)3u(V|)%fyXKubOu}6P@j`5fNA!gngUIHN6@CEIgh66e z)hlpI4vuB=cjz%1w6akXuKuCg=egru*sgQEYoi~1!*HbiwdK7N{= zx#MC*?r#2;Mw9S)QGiwU}!c8iqk5NUD zj{~~XED4%sYavF8G^FViZGx2=hu*=9E0e_?e<4_rmr&eR7l|_?VMqT-K&E%c|1Br} zy}hu+pV;FgxAGK%LGlon>f zUGpzZsk^d@-X5@v)H!ka&kbV(mesFm*VkfuAwiMdMVBaQmHZj${7`$a^eNsLsT4lk zh(i~#)vcU4EtaR7(CcJ(_v1BS46bei!Mb{zb5234yK{V-r}cIFQ%9?f@%cT#=dB|H z;jH8K>xGrtIq{778Q!!9!&VxN*rk{>yfe9#BSwoMjXC_<6}EK7Bzdbr$Ofs|&gm{3 zyRqF*91xP)73Tjflm-3t(qCiu0Mlc?hB|Rx)6vMLy`q`^6fNQL3CC`_aDnOm%Uint zoXNREX1is^a#*J!B+7jfA}S)lIHo&Vd#!R}rOWc@@ox+?9~wAN4B{+TfMKI?mWq(X zq_q<9pk)~!ggJA#H`$RRSTJtBuYMfk&lk!@TBI}q;z@#d4qmW6P@e3`MQ|l`tlRn5 zMQOMZMZ1*(?^Fg9@NUw&Pn}mA^loRsqRj5~vyY4ccV&;{%qYnnx_QRcnnzrf3p>p66 z-S`fs#%%y1Q#;;~gU3#dt}g28vOvUAzE9u4!{7jFdMF$MU9}fULg7Q(qervV3Z3;% zvx!$lkAv2jk(OJ^*wOX@lZ~3127{;$9_CyCYi!Q88c@Yu{q0!B;YBN|GS4wV999YCFscR&B5`xjE2_!hVwZD{b}E?zTQ}^?eI=jD`#uv(JKx_ zy*`;MQd<#s+%;OFs@#J3oGE}Aq~ydY`^tincf(#Tpy()EfR#$^S>(1=0AqN~7r;wD z(B2%UedkVNTBj%>tXRc@4yCq<)?&<-LEPuBSq_v^Z9U;XY3@fN;TxZkVnRwHE|d^> zi<|&!IWfuI8et2PA?9Qv0Jfs`Pf-_12>C8|EO4n*a1bPYrp4#3xA@M6<4zq!W{DkR zUJt8gS*EL#861*7jEs>)S=xc&EGi|)9!Wbv8$q{OzS?`_S{J*wC>t;9j_U-GoeMw3 z(5>v(aJV~^whJ*NQ}t~KnpSnup~?T@``mq!(CpSP{7xATGX;NWGrm2;pVX}kn2 zt%WiL#8>NA6)Hx1epX=a1(0Nzpxs_DY)4#VEk8vD1*gfs& zoI~JdnJ0+bOtcpGgapF; zbG-|-$MRQ`-MJ-H=8LGvxU-kuI(TnY2V7V!eUOzGVnZw#BHA?1t}JaNN@ico!PTw> zYv}aDO8FH{A9tXwX;vR@?3hx&jU_Ni;SI^}51ZtQZyuZEgGv?U&Mhri&jzVU6TsY- z^cnWzGj4QOKUZ0X&~cBnn9J!Rg#|ArQucqc0QNJ}srz6Wx*Gba$qHZhSM|shre8ScfzI zR^Pdc@`c(;kHyMuR<-|;{oYXIXH4TRnVh-VNtbXJ@Cgs!V;WXm;2gbDA>?QQz=%<{ zgP1ZO6iE&ZbUB(6v4x_v<4@%k+zjI7x(Jr(}0H}7<6N$$3+y6+u1zLorhtq z5a%w(Xw4X#JH&t3UeYC7r7@s6cC_6gb=H+(;fy=3fAt!14{`}Yaaba;#*vMQmQ9Gn z9@j+Kv7r!{TDuS5>Hus#L%L0I88Ji=;L&`S{BSrSX7MIx;oEJ?8U}1|c}*?_-AQ#TQp#MWLqCekBZWsuQbLD>$k`)^;v>sm;RyAyj~zfaR6vl2Vk5jD2m zj%E}Q>Sx3V{2hu7%NJ{2_N9H2zOXNIIN6<4`FNdP5I;8;1)ie4t)KVG0^SyEGoJYD zU1_6s9T-{GEE(%7q*yD2P|Z;Ag{tW)Dve(fN^fz#pPOf?BgwhF4I93O7lGK9baw1f zAn$rnq-=N@S%{Fi&TnJsPYe;{4Hj758FT}^vP1M2SZWdJ6)-!7d$+4rz~$s}qvGM@ z>DF|G$A+iaE_dzVbxFOocA5rMHMCPabl)&5M`oU6^f3PJ4AZm+tZh?xVOv)L(B0&p zE23J1a)^6Nu1N3si%ZBE?ut!!4>g!*ZcWKgEK#)W)Pj{@CnO2#r;NeKb($g3+P0*t zfRQUJB`p`1_kE$#X>^(MG06Ov{L#`@M~OpMmQvG>z?a6k2hObomr))Rqjvp#o>15l zV?Tz$1^QcLhq8KXA9H9md&|msX)YIVzRKR>vU0rBrOuvvd`@2fUc)d{@_;7i)|>=I zVU$li@fE+$r;nVM;)Bohl<4HYK96Ruf>hi5>RiA%CCIQqED;tH@#uylLRdBU_iQd; zGOKDurE5}}lx`|nPcN*P)D)peKSr8|YnoL`+P{q(5U@M_S?@?_ZsV-&A7Xp_cW2=k?xEH z?abzc*+7Ph8SXC&tTa|uMWD#bv8@SHR7X(j4Sq@;U50iib>(bMrgx_G5`wnE2$`SD zl9qy<4O)Rb!Bs*lvtFV5{Xfd9gkc6}xrZgT1E3OYIBT*`txwGrs~KnAqzm~{lC z|F3o(<+S!SveWOg)+&19iRG3xp`C-!3(lmkf}XI?Xo7GVz9GT6Y5(#sLZwFp0oQik zw;CBzah-h1R*%n-~{%mak%UL`v1jZ!=!brA0dWDz13S=bd`f zsRRE#)$+{fq4^lgj`zK|D}9R!zCqsbqJ^ovD65=T{ZDD(i8cMxW=ECh^6tF7;VDN> z+y;s0w3y_E%k85KpTt+s+tQisv%5C#bY*f#|BV$qF(U&F5k}UIt>QLsI_wBHud!hx z9PsI3MuDCjj;yrdsnjoH>Z+zStenO*+^YXGNSKT@3a^U96o{hmpa)FHQo{SDn6v{Aw}tY>z*@g z-OaDs35hQ?HknfEY+IjIHrDMUc;6W--=t+HJDFe$mQj?>+LZ5xDv;*9+kt&!-!0k38Dk5f=Ygnes-0o z&U=e~g?_O8T^r2eR^sB3k(x!~X}OuAtGu2>$8#MfxHY4qemWfuuk|#f-_2mde1=<5 zGe@z<<)7r}7m5ec1(E!;`Y&(2GyBPt@W`nG`ZQnb=CLNrJL@M6;VVy z1?9F~CC>QK!=9_ng|%3|PuGd524@x@WBUoh-Kpb7oRFh~#b`m2b=+hY?ma%H=El|n zoDNUOgU`EoFDk4v7;s;%gtAxv~7>$N8?ynpK7B%{-8Hw-O%1}?woN`0U_}Neo#jKN$_s-62@+_bVNEY83(H)K*+z* z?fL=7+TM{VGN(RD0cvd~chv$am@Syu^LbUb>bBcvYw+j$aV6so3s+>akzH;WwD-Bs=%*Dbz#+5aDB#fOvcAE;m z7wU+?5S4^xDoQ~LK*yszW<&Y@oOGs)!3b27x}kDi*Ki8JN39$KMJxJZGt-cgxVK@^ zD}2`g^vnC`Bm2G#fYNMzCMa2q$j zQcji~28xYY2&LB!eG3-h$wRMAzmDLu(3~||`5Iq=OHWR2zX)q|{Tc+|F>A4VC&u@$ z3;0|b+_lIO-z7DK-cY;=X^9sG2qNxL1r`{?cAT46<12MP0x3zHSq2ZGjY*)P>@H*3 zfHz6Qja2}Ehxr^}GV?e&ZJk+zGy41NN5(Ap9M7J;*r*#g&2FQ(&&KS2MwU5yEn%lv zC*M;d%G>fi3S0P&EAM(o(^_)p&gEJ(jXwRR%k`#K(9-D_UreXrgpb=#Z)K0c>gH=Q z_)FZ{j=*34nwm2%8L<$^crLdLDYXTgVDuMWfYH0Ow>0gaDci1Tsr+I;_%$h!gJlEttPuP;0Snb*vf0HZmwi`rzYapLFGiF;0U022%hs6JT8@b;e}L6 zYYN)f_FrfLA3P48{L(pmas!9w*=mZ6Qk8!ddja1J8Je z2Ik`LO-*|f#to6n^b-9kc>K68GvCvy!YlGnUE+Gsr+mR+@SHDrE*K01Pkx{NG#K;+ z&-#34gT6rE=usG>nLJJ{tk)RBB)}LgKEA8Md}Ay>wKO#~`OgLdXZ>(;^yq0AA^1`t z_!18F{gZ^l@i?_M#*i#9hJmE0v7JM@8aj3i;PBxf2+--1-{*q_1AGvUqh^@PPa1QP zaSyC2ukOM@IC7Q+1A)M~CjU7&1W%s4?Dq$PXM*q(@cWM)BL*Cg2~!O?1Qqw^;+0|w z-%|ppbDVCcI}idLUiBS_6xORBrBeuozRTyM`w%f4o{wInKLI~(7B6T38~Y)`h$c#Z zf_Tw)1p;&*Vn#ngH+gVcbbkPT`G`;GU*~YaSeF`Oas2pA93IL+1N_iU`Vqts-4_S| z9B}GEP;oeYXD|T2vv_(;_-td2Dqk;N2ZvxGrZPeiAB)JMPc-@I6M;aJ|1lgN5k~jI zfRBI-@)>nZMqkJOPr1~&4!Ti#!q#9x5_;n_pY7MT@of}@IdHf^S}v)%C<$B>Q9|pu z+k^W%U_t~%Jh?%{-vF2Vagn5Q(VM&xwrSUe3)jLorC%zXKR>7crIG8s_2YBB#Q;L7 z&O!;+JXnFh6`TNO@#A5=auaYrJP+_n*TLHi`semq5M=gEYn3d#9u~Eyc@}CF%o>xz zervd^_22Tx!v1mK;|%KiYVm%sF!&A|Y8tA}fFEnezyjdj(rAnd;N!%7Dp)PJ@q-Xg z&5b!?ofue`McfBOmTvH&m?7R9b?S3E+PLfNur^7M`!XD-59@4%eY8JoZXYmxyU zV~C8CJINNZujabv?o}(tMh6GFJ23+3u%T_RH4#CLyKeIKLPsj(Gt0~(uqF9`W+k#r zZd*3LQj$bz^DPS(^toh3lt68Q{Xo!ukOY}~{sQ;>6+z@(4zmuIQn!c{TuucKJSgc- zoQ{;QYC~2vbE*lN`6)8RYMhn)$qvui?pm3A= z{Pj%&;Uj-r%vBe!oiB@n6^G4V9dHj7GVLmj^z^PA-?epYO)%U1dC{I43`VTMJ9BpH zahhN)&c5!>FUWe&kMr|PcEk&Q$KZ7o6lDW}aBY3=f;TlQMKflG2;ws(m3 zZ>{Q@N{xN}ac2K)(_O!6&bZ_r@!(Fk-`r~5r*Af^fzYyrt=8|XLORvRqrxv)jRXOa zJ8N1d&G+R7M)NpjLBXtybz)7eRTdc&B#E`pIy*p^q+ao1kRu*aQgf}%_%QBu{cAtX zQzFW&lU(851?VXAI7>@06IXDvuQ=Qkei;&z{;RM0lVV8CN>SSei!Z{&h%Yi3le79O z&uyB%wCOoT$^tt|3LQD(Zfy-OUFC7WTDdit;6Q&*JRAxrikwa|QOP90 zhmso3EuE?Qp)*xKw7#mezN*An)p}6i+SVD#Un%&jX(b^bLuO>J&o5=b994Wp-kHVs zW%2t8RevQ@%J3bHZ)l{^4-8iKRtImt=gvO}g*J82b`~7$-`zjB>fWhBZO`+2Y72hw zN1HoXesd^veMil`a1Y*^{-AIEg1*5uo7S&Bxj7Qq+#$VJyJOv+J?rkME!a4?e#2d> z2KyGw??c+~e6*8QgmK~{Nvz=yB{Yc{wk4kv_KO%MA_g3lL5%X&yF^$e+|j;%{jC%J zExz8$274&t+PHkl;_ypNA(N>qYP>!+v20l))Y39R_bl1d@?3ywMe1NM_*HCJiIja9kqpR9ks?YYwK$DgVDS6p734% zTrB&nqGk*>c|DrLm>Y6kRK`}mdI1UV>f^~Lfn5&(&M-A|Hm9(JgEF~*9$QyixOyQ1 zbR7<^KN4c>8E53zOguN(0(v`$`$#2Xp=QJCa60T(RVF5CLaSpi9Av7Jj54CKcm#lp z0b{5z1#B<_z|B&<7qotH?KI@MNi?U#E5UjFH_xY)fnAg`sxWWSut5q}pY6{U3b{UZ zZ0q!^TQ@wpp}#z@TKyT@-;NFEXyc;M@uwma^;>O8xOkv9*V@xM{WiShdUN!rAw0B(c8yGpj8)1D=&OmPg^`iM z(!}=hQM{+UG(Jl6xo{|(4Tb3fe#qsn{tG|AU5@7$0MCr%xoxzZtf~2ykB^NGFPslp z#vZ+J2zSrH9>v~VA|CMDWm(`Y_bL?y{@*UZXcf5mL+d4#^!k#@daIt-=+oobi3Z(Q z=isbjs8Zavy^fz`LUuJyz#N)A^%d#mjf=*t%izOH6P?NkqKo4!_nAs0+AfahPh|m1 zICbMdFNKWDkibR?6OmnoCcoC?4KIpJAkM}U^pOVkE=D3wtF4xeE-Mu3IGbKn#~JII zL0&!Yw@>&X(CIMXZj#(hwv)$dsqGIvaNj+frapVuoojEuZN>Pq#f#?mmx}pZG7)NW zyUajxNT;h8fTA{M!(bxzbY>!eSyd1)bzw0R3y)+2_Q0j)ip=b=GSy^8KGp0t!NjnL zAhU%#e-ndK?r8az<~g5I7O zH`ZqRxb-dM6s{Z4jv#V|(r0{IB&-Ay7OTgGcz zTWdNMi-w#1KCBbr`(9`cSrWMsWt0yah6MgA3!{#k(#AGD291ji8s{Qjab82){yDgt zi?G!Vf*mc@Q87H1K$j-;y^Tq7%DjORvvs@4;9s0ijtr1dvWnbY3$0o?F+R3<5lBl| zb7O{~0H2`^yXt!9b#>w_RmPKFpdBQUNJeL|h2q8}d{YEgkK^K*P>+HNpETJy)WK#a zoBFNLa;8oh8|(c0$G;)Mrgt_dqQSCHepv--?vGvUEf9_nrSe8?(z7cA1GPz{63ik(}{qxVI)~Kp$e%zr9r*{ABtkM(;1JR)s!KpPT;S@kcx^_NoYG#PlC3HjCUe)fC)zc?Et>-|E{aYNB}b@O1X# ziu*lwPd)D{EEIhFe~q-_|BOl{1Ad#;*g3o-m(3ugCKbe>6?Ye;*n8JQ>bsI$+rEi` zt`-S{k%@9U?o^)yQ@_j&aw7ompegbJnZs39TK(30nbxbm&P0xdRlWGe+a&gyR?(Olh(dlZ|$?fNj)4S4Cfc^I9?>##waDVX&~-`%JiRqA;Vtcb*H zB#7dWU>C668Ta4^mmd@&`<>Hv>-`Ue3*YZb>m%%&2mkxxfss_`Pd~SV;h$xknlQPa zF;Nz6UeVjk*o2r6=__xmvi_d_@8#7~s|Wr}%1i(9?W3;M;_vSHOG`v^D-O|aqknVc zpCqrUsa8c5ZDQ2x3jN*}%#$i#!z040U{|_GGbxbu7$0oUV>Z#}HJgZwx=>OMH@TU> zG?bCuS(^+}u`35cQp7}LeP%p~*rTAXnN_aH`p zT25e~UV{5AY4AN2?r(t`hFcsDd2xXNyHjGRw!E+joi{x?e0n?RZ-#T zje2U*Ol1qj|AT^(RmFXvW(y8(l8e9IAH7N274`64m1h3~1g9p+_#b^}j?R)8-#_%% zc42+5KkMpoM`P*vOBN5@-ZJP+_S2CzTd#9|ww6k#)BP(`{m$fIH2UisvgodfY$WOQ zEL%{U7>cD%WFygBIyF4MEe%&IlI>(JZY9uOanectsusilPt^$`BAM{SJ+bC`g|h|s zk&~!oYjl6yLZ}IpRy%H81m2cdCZei}ZCK-Nq6!-K7CN)Bo|&q$42Dx0PE;8KIWiuw zN_LSk4k^zah>2?PHyp{Rk}Uz${!-eosrY|8a}gu>#uJ7`XJJn2xk&$gczEcX+jh?8 z?s>9jga)4Y>VG@0U;f(H|MtY?&+X99?D*W}6U@GEUys%0vYvbA9hTRBe&KJw{xupr zf8mKIt{%R8;;HTM_0);WhRii^X#=Zf3Henmg6$l`Lj(PNy`=&+FGfQ4Hb)!04|Hlp zJURi7pB!4V_kvz#wTuq+c}2n6-NIxk9R}Sa#&N?VvxS;@^8>L87W9d2RIpQK5_pi% zq*6&XNk+V|F0e>_zZrtt%@AX|86$jsEye|~+LPttEV`3Ee`D{r4DY09k*>k|j0#lz zMQ`#Nl)uJ0%#Q-Pcl<^72hUm@EerEquIep&h7;COo{m!4iirPy@tEuz-F8bk(ArT; zndP2+>a~d11I)vEdisZfsn*_~ab`V}k#((uz3ClYC64wHOY@4rI#1s03iQm8NjBaE zJU|ZB(k(5702|G#l)F1yvMt%UJ?I|SEY3Igl!|sywG05Yw*s33>ikpyocl1RXQdXi zYPP6A=Elx{_Su!NQI#MI5SDY8V6CVi${=w*rWV9}1KQ~fzGrrVLR?E3#XFbEGsP&a z7L}s+8a(U!U6)Thc&hvGqdRx+wr;D?{1*Aqvl?J`>$8Ppl|4&4R_u9X>2+9rvNCw$ z^8G7^hws0CEEO2r+ht8nt)7R3yk*76#-}|myqRd!WEl7ifhE{Oeo~8s!#&kPcfKv$ z8qTE>!2sVe6t}_v57yS$TlH2I0|(%LnFTXx2hor9lx4nUlw2gT$s~iUSHU1t&Bkue z;40&e1t2C&3QFxXoR}1p&ZFlJr-Tv&~?2y05TL zPyp;-_HJAApe?n2L&~~gUU^=1O5SDd9h}%QHk`kyHlS-h_svZ!*RNl_YSArste)&D zjE%9CAFC8*X&L`VwU;EpiVLV}G7%2>eX3XWIBdo~Xhw8rkbueqUN3{PlLaQ1!9am) ziL?Jq8!d=sQEW8!iHHdi5B2}CiY4OZ__efoozh!C*Xd93-<>y~-y$ZN?jfCC|F_{N5kgTPcGH0NlZyP!D1ESYGX4LL&`BO z<*=6#w`BWRfv4O=#mrh@)futZ0;`{yE9e?x?i$7mq+=s?abU^ngYpqW&gpAtb5oo? zUl(mpF8I>gf$>nf7`{%K9Ez=!&8<5gi$#VF!S-S)-}>{H>Jn{eQ)MDl;ISzKPhhW; z80jGWG+2wp;~sZ^ALdo!9r5;TnrDwWJU#kP2tG#%=Ue@bny{y;9*v2fjV;cj;7{@r^I4(^bZgHqfC?zf-hSHRWQhywh zP#z8?`P?L>JuXf8D2IoW=A(Ub_|lw|HaQ%x_}>3J(%NfGZtZ!FFVaXFUFN;~@BiQL zjZMuT&I@LTWj8xdTM@P=BldiYT$d>)Ys^H zf5FgZ?;)%r@scp=`CB`7H!p$;g1^XU#%0iIg5%_XscLNX^q zkD5qhyBhCzL8OHu#Rz6I(`7{xB_qj*lq)<5YX?i~?KZRBegsttUt>|>%n_oCde`Pc8Ql;k4 z-Kw<9W=5>p)_lu7eg4?_^MNbNqSqvKm)Rz2&C_PvE=g4-bi`zP6=kQJk74)x#K%t* zzdTQN%7Z<}2$iP>sl5$*G&(o{`Y)P~cBfOG4)CI9339d@3uPjXDJ#W>f>17E#cELk zrt2_C)L_Gb#fl3rSuBkRdnVM5k^mitK2m9k63KF0aJulnDo|m9_ndSl%PwcJnydzq zP_F(W<-`3PA+r)H#+^jmMy%J|fTdwzb)mB(vV2^>7!`&l}FxKeUX znQ423wbS(G`AxJZ5DM&$&BbW>7wW4wm?!BU;=S8Lt)b?qosCenpkQ4*w|-{&s>#Mc zVNG>Sz$f)6-8>5!E$D+9N(Q|;)OUwt9W)c97(B5CxuVFMR*);w%bd)3q$B{MyNLGC z$_LVT$48O|qD(abbr~SKNlShJkqj@SFQO3!pB+sY@PhrQK(fKaHDCUuB7LVX7V`yS zvBT-9xogIX z@u{`nY`s5#0@d*<{@45l?YH)a=Dx6hhC4NEzD|}i9UUA$e2Sad|J`dnUeSb3n3zOv z@(9Gdk5o5eamSAv?_D7~pxPQxP^PKxHA0C5Pfbq^58*2)CJJ2{;!Sv5x<#fOyki-i zZ0)K#_TScw4EExYr^9%YniwL(>C0p|7_X?+LGg=3_!U17;AnoM58PKYnnqlM77@y<$h)TzzaW+$Z!N_@^V!lWxNY1+(a^CH%GvvIzAHfhKM9!CF zoQ;oZkM-B+m)G^z_QQj9bmI0iwf_FvndbkCZ*GSNEA1@cD;$M- z>R2>L>e{izMJz0+$4DB9Dx>0pC&_o(NP~Zb^k${;L@(z)SEQ0w7)ejf)ax^Kvoj z#FXpyUDGoUg@$re6mT@XNn8%E$=vL3DOS20pj%x_ff%58Aw#(eY zyJlsj;!C&-iMcIeC?Tl2*Ua$64!2v-%);L)tNqby)^9cD=to%AzfN^i8yiY05eYjT z04^el&}T5(m4N^e%lSOI9cw)^zCMB#z*VUh3j?S?#D08+cisJ!FMr1F`^?V9R-38A;~v@&%g=d!@4xdmubZvZ1|37y zGJT{s?LKzsle6pR=oxylm*p)x$7zkNEp~VRnP7KM@2kn7k%XvIm(6J(`qPGoqAH~I zxhoTo1p^(fcHG9?mbIHhx~5`3qz_+U0{f`BG>t8TFm}xFm6K>3o59`-!(}KQNKA_m zF>6;m36y9e`Ax6{3p9Vj&6xiZpHy)bbeEiXs>)cEQscV5LE$F{k z`)sus9XQ~V_sd9xx^k9*`6&ZgH!T`dk$hzZbbtZ6aHrnwsCV$v)8@T|5`(kh}T(^k{c>^6j@LOTJdm$cJZ`J=g$`Qqv7R z8upRj?y#wfflFY-N%DA^P_1k^#Ezf^je=s07Vv=3f-n|a5XRh!nyJ<=T>jCvb`^J+ z{xI7Z&OE+aQ`APJG_r#OJ$Z^+*f4+1-1^z8XVy)xUA<~xYH%uF@9D?q<&yDe*ltr~ zj&3fZ7?kc5U5lUbp_ zV>4mbjxzxqgB5Wq;>{cnSa*tI23%P)+{I*X;}gHqSD7fO`0xELViP9HRU;QhU@h^w zi3kC*e85O_5?tvdQHlu8C>r&Uz$KYOQ3m4DykP_kLUQ&}pnVh#(aKQwWOwAMsduNn z=A?ftQP_20bUlmhp1z6h-bQibxV`^ImficAL?_G648|lWWw-i5;e;fn)Aj&*{M4x} z_#g6gbt-}Ef%3JkBC9LBwrXfcZ$hrxB2cC@=2H4_`p{`Os%D^rGLMX^Lb?X+D&uo@lt@~!NltERb!(g^;&Nw zpUb2@!@gm;Lv}lCW)sI~?KN?r6PtA#kZPgB5GunqCjcy&c&W>bOprG#Do7SYK^DuD z#j3KFE<3td2ZlEZVTL3!)=Ffo4OuCbwW|2gf#o%LunBy?8sw007qfVc=+o`L-gjFq zYWY9r%OOB=^A*3G!e9Q2ztn63vMY-EHNRGFA^-dzy5`2gD}OJNOy&QbU%b)Ktw`qu z*r1RKx-6GeZ255T2)wjnWx!~=c0%-rcR{8OZ&q}XSPQ6D2ogdfiFb1m{b$jxOKCeV z%DxPiAQx5fKCv@gFL|^`j8#(yd=Yo3kmXs8KH<}2Xx~(R3jb?hA4M~jfSDRNFK_{EPJsjJ z*103WVF?JC12)0UadWkaPA`Yu$MVEZ%_*5P1Dm!zn8_)e%}F~>^4#L$Z#{9r?%90p zAGi{_<`Q2zvf=9dp>AJv+n)YZad=?C<-6+|dm)uDTW`AR>e*{D4W3`WX6X=acjhlcqw{RShNJGuptQ_ZIw|vIQX~2sv=<&of}Q(%|5< z(@rZo6_za^LZaLP34xm9C}{)2%O7t7t>v;h>7nay?k^UDQM0nRr`ydRd*cn!?DQwc z#%m?j;SJ!GfkuwSwv>nd>B0BbJ37o-?!n7^l`iUQz=;RZWFyyUR}DYK)Q%*NM6j)9 z#jY7v&)}aKWdbC%!UC{rCl5fG2K*kO$U`5Y$n!Qvuk;}RQub?n$`y?Ca%+SJ5MkaU zRmXUU+5@!0Fh3TH*c=wb@7vc9Z7#Q72wA)ly|3r8Si|h3TM{KXb#U@vHtui;BafGS z7PIJS<)ofqzQ}keiBhOI^>{;vNQu|uBJ&Lvxk+Sc2}aI}M{Xc)r5TZQ>4-EWE=Xez zB4`Yp!D7HuA_Ji=cnbOnl2B$12QX-ZE8Z`bf6WgdSfpC3Zm6IOMOze=fUcJ$FtO2Z zFvj46zprQ0wZ2W&S6_Y^71%QpTR*mU|I6D~`T1AqZ=@^L&P=)dcT1F5T{SxS`I+SYJvz2eq~X z66XNy!SY>{KufeBVco>g5>u3+A|GhSkpaF+3xszZ>);l!KO9{O0b%ksrk6jDKI@$2dA)5LPkqtG#S;gCuNjk;e!?H?%=j=y@O*1eLPS=Apjx}f6GRl=dIcBukwH4OD*P)bspCt) z!&|{^t|pRI7ewGnNuyK11t)>DN8id%I=GqJoX@{+cK)ZoUo^4lf%yKi z(ERTre+q5C?F&7bb)%mjZZ_Ir9nGH}eq%Fz({D{pyXz@w-=V0mAleI!86{V8f8NhU zcHM~Hxn{4QO+I+-OfcT7oVvxz5B5bz?QHWqJWoG2zg^ySq`YBCxfGZJ-8=adJr}y~ z_ZKybgQq{gM{=bKVc))!_gwo&jOeyet-e!Z-Ag0`6rxg8g&L#QQ%^Qh)oN#FB<%HG zJu@{~9jlHG^mkS|%lTY56-jwR-jG{Y6;UAAV5@_Eo5jpCV2&|s*U*#+J8vCM2P@Dl z8|TlfN*DE zgAwCn02QjPYP$>72yax3epMIgOHEc*#?$TXR$h>_5Gv7~B(7dAMX^P)lucAS@_VjR zBzH~@tf__uBYZTus;Bc-`+OvE?cayH)e%0R?!9D>Y(H^g`wgRGW1~0Z)P0t+MoX(88N2J+Y-#Qxo+Y0GjIk9c~iB;p*ZyjHS zJpQgyL!_}`D%pw7`vLPa`b{cG6{t-Odv{kn77hV_r^5zC$`Ipjq*GXkb1dCSNZkt1 zyNzW94b9t^KoqsTMCfjbm5U zs3RCaZzaMbqtB0y>=+N|TIl!-$G=9Od>Y@4?+82e(ET9|)iw{~Kbz~3NL>#Eoy~7= zK7Jhk(;kM~&G&>t_h_Mje*7bK6MfW84ZT{%Vz@INi-i3?r^Bk?rN%;xV_k>a#qdmD zPl~~kGF-^h(B#dqJj?K9yo`XFtSBO&o1h7m8$-mVsSPD$T1ntWuonR=#qh+bVu6B- zD}h9GwX3%Yxg;J0fV__4VVI(_Qqge zHJgrx13qACAw18G-cS&)Hbl(R7GE6%+bNz#2GmsRdW9Br64xU2CKzEx&0Cw1E{F)4 zVhcWHxhxkrA~b`0BgeMLQi*|rz7%Qf+B3CwX5CFU_f})E{3C~^r|+rtZ+Jo3FRY&( znLPF5&yKAM##o6nnZ?lR#`awIP<`y}#nPI|Pknl3U03$D11IYhyFGgQ#(3hSGCo*P z)!4Dq0mgfY>;>% z2;j9Qo`Kascn&0?odANPOA|o+N0tH89+4t6+Fmjq-Gs@ijSxgQ>snabFpeu$#PFf1 zL@3pTYW$WRBdOHjlv}fVeSOtb=T&``klmMvWV4A#K(+_(T)9Xdni;W+q9+jHC+F&_ zD0xDYwVKP7>KyK0>nZrk@k}|EsO=y&{2R>g(Lcm8yw(t75vxVup!Po0F+bDnZZEX3MzHj44*8sK& zqNGL_#>e2ebd}pXf#d~OiU4ofA**ZFW2HA3TV+v`!5DVgX7=~>ojyRXnBitk&FWkk zFVmBg9=jtL9ac2u7XHBOOs#fchS3-!UUr7Lo6!juO(*tIN2#?9m7+#R8iVzI{Hz5M z&e&5kA(k2*;24I80zBnx7qm9QHIg!;OPW_`qj|;f)WAR_fD8h;Tn9L&I=HG;!=@pR zTIh_#rB#sex(l!yh`x2vpF;HRxf}n>V?<7_JN1zJwJTJWl=ple(Q7lgMu8m z?f;wg+3jgZ`1U{g`y^Tp;*0;1sm z*FW+oN@!>EhhKJ<2Zw)3e!+MQ_b`%JY~|I|$*i?Dd_ zdTsCU+}58?IuiJc4cGixV@ z2Qv~L#xNejfPuUVOpFXv)Ikyh#2HO!86m?=-1hn}dpChY{g}7I$j1Yy)!WhnF~w3a zuD4)I4PX-peNznv<8{l-$jH|m9oHnVw_&G0d06FX`=-9sZQYi% z(_?Z7+1N|XyKFX*X8U{cb($7!who7E=iQ#9t0anY!Ikv5dAp>0&N=&HkA%bf>~arw z(mKtW)h`OMUd84N{PCauU+YA1?R8t%Pi;iEfAP5H&9vI--5^a{yWzd9lQbsNF&fAz-@rh#j-~ExWLRYaRPkd{z z2snrZ7qBszK@lg@!cr*c&flr7dxo7_yJz=gCybRYh1SA^;B*d#s z+{K0CRZc)%uQY%7D*ecT=K1FNgFG*>kDX>E9%Wx?{@~SDQQ(>8yUoX%?>>Wk&oYU} zUU*{ZmFe6|FXg6b_V{s@ZaneAV@p4O?%o$(xc9k}?Hc??8HovD-L^n&rM}PzAZqib zx!H;F!FsiX9e@<{kGPyx3pI*Hp@(hHb=d3Kx{)?xpHVQo@h-MQt~QM4O`yy|nG&Ej ztB5^L&Ljam5{>}yh#NurFo#x}CZ8xy=-QjJgxd){DifIEVr0O?VUG}9W@b%p>a zy5JZKfp)AriT#A-uxH6dz{!c}2<45A79=ZvK+t#!Mu%JmRe2}<)nFesN)(>+#}ef) zb$Ub;i$o)=syjF~JD-r){3>sk&&0~^t}R7h^u8#vL!-z5BjG(WC84Y7Tmw_QW}s`%J(j36_%WfYqu+Zo4%R zVJF0`rddUZIF#lYUm@dh@!*<6zbf`Da{AZq^cwbB8|yzreYK(ZU}7Ay*@R6_z8x1E zv0+UYlCUWCK*cmd4AeY8!7)_zavYnX42B01$^t?M5<@oBCC3;7eC*>tgcMHDP&o0+ zJ_fdFRj{d@2*K2p!D5eB$zx*T7OL3K`}4C%N8f0k<5`j2V&8&ZINSVDa{~1ufjs{H zS@amnHNV44M``s~<7{(#^RH2_@#y?=O!`S|Z}_R*)Xfcj=Z#yh+i=b3aBn5wjR(gj z@+7j_xLQLzBV!5U!=H?eGZVfZh610}2d8z$$kUN_KR$fr}99XxBIhZMYyKe327(;h4p zu((0{k(tI5hUJN5>cY!S;xZ6dU|2-F3Pct0)S1n67oK4=Zx*{Ozz$&&q*g~D!0&)& z5&0IOk5L{9cO=CMZKJz?@fR}1|G;l-?D-A8jH1ou-{jj2TlUg*CA0$x1gZ*~PGCJ5 z#co$vp!~)4d3k*-Nxd3Dy_Qqfa?150T}=5LHn+r!qGGW~YI;7IjLCLKDpI#{7FOW+ zm>!a3{JPn!Xgud|I^Ci9h+Wn6o>W+oj$abzJ5ZZb`3HBn?U7XfH5&WiVnhxkkmhvp z7Qc-XB}s91^eT4U9rDI?*^0#z&2hYBbx4w37I{rkRFlKXi8~f!e5?(?T2#d>v8GF~clj1T zU!@Arw3Vvvuo)P8IaEdupsC3__wBpst0=wm$2UHgPDj3a)4siT{65Y8&Zq7i_{>+I zK63O} zgm)c$BdXF)LSy^JD6l4w_rwfKCP*&6g@yrVR9X$~gwcn&{_dk+|AQl+I(hBZg*hK* zQ6~lmavi*Wu=&bq(Y$ff`!iRY#k1&PRg2xZaY6TK*u!LPmWU|!#Ur8+?Ym~_LViY+ z{JvszILdeU3a{_nvUPg;;HQ6gb38gWuh5ZI!*)L2{HtR#Gx@xGcz9-J8~ui+MmB6X zLMxi4Y#keY$J#-&p+v7Jgkz#S-+W){N+uI=QE+zEgHf{~-&8y=yYajPu{U)UwY8zG z86O_(t7JRl5wBabTV)Y)qK#1s>m5WqRtlP5IIL+n(a2izjKH@xGHYz)EAo+u%Yh=O zX15}^OAKK*r^WmUdl@MRo+T)Kg|~o zV<{bYb>F_FGjvGZYjd!tr1U#i6>G7mOWU{STOl<>7g(p&H=oZp>XEb*qPJ)6z+>29 zeKg%+b9=3ire@aP-P?>=y&X3Co|I^Dx{`?+Ipa;$9g8%&;K#&#s+8=h<)kng)mLC2ae3|+OjX?)=p&ofI8?YONh|A3w@|JlL0`8vI; zc`Bbj@kXzD0j2a*s{ZZ6>(-<?i#^)G_8~bPbDWCte4gR2gf# zla0Wd)uY4MimnuU@E%P-9Nq15*zr{f*xtlfxHpfLfM%m*rh$-L?u-RJPSq@N_;XM$ z9SwEpc=gZ}nARq9l`?Sz)(OySjb;@_rb(;2jA)sJ729DAN|wQ;wn*6e;b=HExXVfK z6!xbxh_pyKSuK6+5uE9OGaar7Nlbt@-ELux_eeaeC@e3j^KMyoD+@kJ^2wV*q8O4k z+ii&FIg4FvC~~}e;h5<17S~RdnvXokvf~phJF!<3_nr~OGrJ{m@7t2}_HIeq{f;EP zvrCqDAxcp`qz)+PUWrw1UoTB!69(Ks%KqVJnRl5yrBcJx^-w=L+~})ZCdZ{fMH zIUE)&7_BxX5ojKL&(Vno-lPBgy_j9+ky(^%=ARpQPn3?=;Zp?dFNt-;EVTi>&?u}~ zF|1F z14;tM${=f*l1+k17Rq)+*;oQ-V^a|;+6YB~NGXh{km@dMTyrK8_}7q?GRamG>6eyh zi$rq56m1b`<0;7kg3bbW%Y}Y-ee~;j2Ju*UT1{5Y^sE02inlUAb@glg3dQ?>?E06< z3pFg}VM#$8k{9rDCL!-`6m_~vNpcVAG94OH!`SX}6`&cdNSMzfq`swu{asg!lEjK< z7O0A^zItma;O_GUP$E>WHlIelL6=>X&ixwCbLt(2{@VHT9dioNaSB(mg{?!32M-Me( zrD719SZe@xaImkpI8Yks$#-Rfv0$vjh0k?JB1qGzc*O59_)D-|EV887(2Nx)YclFK zOcum*Cd1#85fDmU9%EWIZNy~?d7%xLL&A_nq_uiQc)%peL6eNp$c@izSvdwZXmYt@ zI1#1)=Jjn`?+brv``rs0Z<&>M?R=nFyJP(w)t$eqFTSSkouqI7uh-mu)zr>w$5*R& zKHD^<2M6W{1~TqYI2Vn$ne^+Y?*GIt^X&dj*WP)Ai)(V# ziccYw@;rt3@~`(fM!9wd2+67~rz2@R{0P#$aYETJb8JOAYLC@QJr;LfbDMiSkqkEEW& zu66l(Gu6UcKEZsQDN$Z*jr2A6Y#M82yb3ejE)!tAh6{NogMuMhVhG9O$B{*~D80Io zpt~Tv%>a@WPa3Z{9dB8@=n}00Mu=oV{R=jf9rV>=!|AV9OCHbUs?nK1xA2G%_IzW6 z=Z`O*Li@#t=d&5a9yt0i&kyRM?(1~5w(k0S;Is$pZb@@E?N3K^jSqR~djdUNc4FW3 zU9sBkK%S5EuU&XJU0zetB%1DUD5ul*5I$|`aGOgRI4v!J-D{DBUj@4tg>;+BheOGP zO|68{e?i(a&otj_{`1C#XOW!=J=^?o^Sx&_Y(N^aKTFmrRbakIpTLVm#(K;{O#!xl zhucL^tj#8DHM10tc(AE+9*wY*@FLV!LvodZ-j$YF$hA^BEV_smN61RUWgu#gl*6!U zuskdk0hxli-VtodgaYA0iaGAnn}g{63rA9jZN5&Q2x#X%Xg>ZyLHB)tvV{-MwfEF+ z`oA)>R0pHHsc}SRFXsms{p0J8MV7GByk1d`A#}`Y+_;I?r;f4 zdRNdHAW|Vy&XGHOngb4U_zn0ax~ucPxyIh!*G5MVedF+G$7{8{jjLRGy89FPu_N?g z-)65rm}^cL_l=`(;R9WW`3Kn}jrv$38+##yc1VeFG&bJZk9I`95z9NkSlJ$9--r>8`s2*cm|lW)mZatynrg*^n{Yd=0o5;? zDaBxg=ml#m#6tMepfSPW8Xcl=0AXc%D!?Z%ZMzj#_h{Sb3sRyCBcR8X-fxCQX zmy=eM6rACu($rpan0_jz>{vYVee9>`y1JBwTl&$7GsjMBrsrvXx^x<)63Wlb(dN6S zPHl3l&6MhPtLP2Y-K;-;x_N}Z6# z>PNSGHoMYUW;G|+oizO?_kZhL^Pld$_uRLU=YQ-;yTydX!pjI@aT1MW8YmhItQ*LN zZvEWx=1gvk4rDw1ep{*Jvsv(lWdn+26N)CggLjz}llA@^X@=9x*jf&hw2pZs&u!Ai zy39ybk%|F>FMQBsJ2L8qY#;s$^L6?hwqNuH>+=%c;)s>LSh?@0aC$47L2{hD(B^ss z!c4)a>;GTRqp?5qvi#Iuw=110f9_vLyXA2yGrwWupPr};KRGbIdE5Q!B7^Mi z9PO=^x&kh2wnB;yyNcB-Yby|+T?o)8+ld&`NPt~xViIB7Dj83dVDEA|0B>TO2vtC_ zRa;94E)xr44e_kV+e+@8s@rOFNrNSAbtqu_NiF6zp;+_%dcC>L?MA2Tb#&V8o^F26 zH5x-l?Hp@W#yLTd%y!OZjnm_w6_dJ8?9ik>(QM&jJ~5bxt$Du`V8sWuuYD|FQWxzKulD>nAopC?D7A8vb`&esJ>%O*=8thyRS6(Eirrf9x^8r-K$> ze;wa-c>IJn1Fw<)M!!V)s1#LdNU3Br9Pn#)h{Qy6L9;>H2TvLj&^ro6pr{r2%3rwmijhCD?E-ZmnIC(Z*lc(@2 z_+)iT^QG&`6n+;zS((z8rqC%wH+MIi1k-_H{(*iG4{e6Jy%9lJJcmPVL^-G3da;3* zrIIKCmB3eZ63)6bqBB_2LcGJ$wuWRxn-N1e2RbDLxS~8^5W@Dg0Mzcp&^AbC;I2*k zZ1l{w{~J2kXqIUI2Yp;k+L&+JT#Mw7TfJ~ZbsNVn8=Cvz1Nudmtxg`-LG!i_ZLX$# z>QwV}BX?)iDF|3vE|jIl2h~z? zR7=TGhLUSx%j+s1N~jeFtVI0dL1sClWmus2@<2G1i%$CH3m2M?Ubyi6J2x)KFTX4= zY`k;)QwtmAS6-1fE_`a7k;$uQ@xq0Fvus>AGJa%Xqve%X6gUmPLwV(umOXe9+sA1t zhlRsxY8`bA*sklQ8$(qRsY<7Gjmn`MTvK(bYYn zu&DVhq7;o5MuZM`DCYH6Vj*{jFj9zwdK0;xO~0pTn>WANzwygEdr`^bw8@Ii z>B0AkY;#U+?639i{BkRw`zX`R_^2@6m{<-~E7^23f=wEbLm`BMzZBi#;)ujZ;L<1` zqKytPJOp~Y0PQPS+D2P365`p@58$yI80>nm`Hs~&9hfeaEOC!1DCHemGKHG!6s1s- zTO$|<-e|;{8<`vD~rs}eKndxN}2`Zt zIl)D$P)wdov?`!rFrMu#l?Mm9PTv1uIFc&+!z(Wj{fVsPTbDP~o%%3N^L zg=Rg~sx67$N!m8Je9h_FdMzq$PCS&@-2LbD%ln$Xee|}aLxBLj*B9|*GO9YFd73-M z%hwIQ_+s-%=#~Qq+J5gh@tk#0xd!j^vc%I5g@d|-y_}|!GISzkK-$EKyIHEXcAUW) zJcNipU(l`C{5A|eBgIPp^Y<>yeeb$xM0c7Q&CV$-c6PhE-r3B{cFwLbg4-31Tz7P$ zuzPo5A`*=ZxICV2C&yJoJey0G`)da(3u2_oan5e9N3TaCQL^67V82br-pvAaprKII z#Oj_rew1};T)So@v-YZyp$-+`9Em)lu)}f*R5?W_q4EO`fDS8t+1a2*KjvicF*tJN z1_%~hK0s$x2!@_<^@J+8m0)(FO9yOuyg;5^GG48U3C0x&9Zq?8TDBlrVx8X4`uv1DpPeenubl%+^7AmU)dBjiWPP~wf1R}vcXRb?<&0QXew)cuK zDYIgr%PdP>IcHxm5@_cKchld&HYSfffFZ0A?1C^@@5u`RAz)V_1PNYqe`h4<1fPQk z+zlw1UdA(qEG$J(B&Zhq&Pw!n*c7g?6Z;X#Y6(PtwbIT*2w<%{5s&4bu0ixDz~HBg zhBO2p4qG+vAkX;3_&C3+t80K4Hq1Zuhx2o0;VP-i6*jw@_h1E!WKO^X*+Kj01^29b z0b%Rh&zflUhd)sHU1=J1KC$Yzd%Eu#zhlGv{M_NaH(F|;az~|(enQ6)9ie5J=jjNW zq7QA}au7u#bWV+XUVYUVo4c8Zm?3H!G8NR-4Fz%(fJ)KVYqvpVb$>UupG1MC7>K|F z9JJxp8vU=>9Wz)kjUK#@Vx-3*f~MdL*MUHl9OHW|E`i4sx+)O9hb9B;dJW>2N_9eGnuj;Mub`LI(rRYZ@zyF+x$ zYuY?HD@yY|_l!Sh&dD*kV9s`YR&$u@X0Lm{M{vyB?al9lUGyV0!s~p-JL}TTS=p{F z=(IMS_l+yojwd>jw9NX{DO=t)MNZ3lX5B7xLb7W!I<3z;t;(Fm;(6K~qh;D}ol*;G zW7lcKHZK@H4whXrSSF{ikF%#D1><=c=Bz68-YP!mO# zAVAS40b!}7gY1#zKtQqJY-O3*NIMpA@wxaV$Nch}etPWsuvSi*5zm>EWi3n#$F5%$ zCB`u3TLt;4lSc+=Zsb0(gz$u(E0Sa3(iwmi&wSm@`(KjvrHH)!*Sf{)ORZOswX*_g^^Qz@Sh zZ%%4txG^*c;O>3BRj9h?$!EK>-MOw*CY4Ed`jWn6f@J-`t#EtYAK^_6fnG>sy>Md% zSy0G@MBZ!>yF7N%d*FPa9thMo1`R07j zs-}GXr(&_C(}`4l=`fvLdfo85pU1ybq&x(}^reO;k5^eH z6_14j2C=QvVU?kTLvB}>uSp`48HJ^pUx_GmFNU8a2KaGW)X)?D4}`I_!$e zssq;riL!IhjUFc4#$aV|R0|Xf8x1T$MQAw?JX%pg1WM5XfKsmZ7C_K!83wTxhb3<9 z@1%40<5__=`e%6T6e>vVZ>Wg!dt4fkY6`OO?KOz^3Cm&&*C@rp(t>M;?6{TbD{Skg zAU#q26;5r57J(s5sgTAi#$91!DM4Fe7%wR1FZ>QVO}qRT-Yjxy+Tmw*OBbF~*pT)_ zDG~@)(VP}z(fdwsv+i{j(5qhOzSMDtKN5(!)m9DQqx5&NA9At3U}wX_v7t*k3oH`r z;Ox*^06m$je1M=O0VuFQvqqSNr-;-9E7C+_L=ea1NF0+Ca#O8BZptX+Hex~!kdRm4 zmS)1`unnpT{sFn0|AdZ%m}|;_xQX6x%IN)l_(^!djqcxs-m9gT#$XB2FLw4XE{&m| zFEkG=EL`NOgxn%rSCEQPPeCWbrECf<6{Xuz$I_T<52$f-hTy!(vPr_h{Z$Mfrkg-Eft1+#dO2S zERDg)Fm-N{o>LO$H&nth^n39*h!DT`yB$0Ly@ul&$3P|O#p*cP2xt;gS0P>@RU#0#k0+~Gws9sz z;I+>@5fne8Q}q9o1X=miSNX6a2muhUajj+Y-r<0>z^6U|dG z_oMCJ6NrU~lnu}N+J;*)A8e6x=U1+)v#Ftdf`>j7=)O*%miKKP)}#xC5A_uVZ1 zl^*IyD<4gkqY;UvY)Cb=*JFkR?lJ=2N`MA{eU%nf2esVDB(@rvz?X(xcJ)^}dAaKe zZ#^toTB{E0red||Dhk*5JJY^8dZ7-ycZ(9dnPwuD&xZnh7EQTJp61!CJCH(e7F4xfsWk1w2o(oE zGmL)X_H=YK)!AM5PORR#Z43Izj7J{NZi9F8Y{8^7D5!Mkg9RVg&>Q==or zs?>*m>~`xO{O;wsD&x75u_PG)+sWlrERsmc$PBhq63YeBHhcjuZe0&G_d^u2zxgu#!{*C~#b=%S@z~7R zQT%`DewsclN9dygS(P4nL{jCz($R=~8lfF@{^-(QlN(gSXQB|knK9=3hm0HB9~sKl zU=`9Q06=GCL!nAHYIm=ausn%Iv)yznW;2M|$kJ8x*5g?*2!PR@HqDWfJG=9h%BfS$ zxASf{tC$&vwy3L}Ua!X_d$UiV2%K$mL}MkV-4^W5pFH`{seO63i*u-0lB!xovY5?+ zginS2;rQ?|<`a1C`>1K)0UupkakY5BN#cOCn7fu!wyl_@!axYF{p;I*;hbf#xi($_ z{{74+OnF~8=8u1V!V@%kG*)wPmS|UB!0n3iKCgrKNxGuRDMdA#Lw9YMOGP?#M#$!$ zsMqGPId1V@o$~sD*h}tMpLP3%pB~a=tLpao1lH#s&PcK>Mr2KsO1)DSmi5vSw$TK^ z9SihyE2Z8_Pr8teOgS9Seg1P_;lhdfZyl_8yet<_4c~WjpTosct@^F!nSaH;3y*D$ z6AcXv4ZqKW<+^GyR^Kv`8I)24X($e^iqMl+1>#~TBj$MkS!STL6w)+CH4D!eb#H}_ zeHT~#m^Tq?f+M)PB;-U)$pl_DL#Qagk_iJ$X|m{|8N@#E(i!><)hYPcsO!RCyP~X5 zNE{G4g|aD;eeUV)ry22mDAH^`XG%LCad^FsNAm8y$Haa6#AACe9RnX8gZmqr z5fi}17Phqb^vjUXnXr8RK!{tJ#`|0xb;!2qI!ZwTY!a;hGi#~2Zq-=eoYzZb(!twLd;?NSRXU26Uc zS9ysGTZIS<`e))79fvD=$(u?0JlX7f&CTcuW}=q9@IHwn$({Wd=6t%#>reYn(GM-{ zB|gz>%s=3DX>L{Y?*rR29t#J39+wl40|kyUBQw~?Gx+Nmj&*A^&G|d5GL~Qt722!A zD~S4_bGOxaZBVd^Z39SLX#fcZeZ8{{1emMm{pEw>w>|NdgXg~oX@~EQKhxBn89&wE3FDBe-?FeUQLDZF&_m+~55E4| zYva#8JKpjE4gX!l@(4KRZ*IimaqtPChbGq*&&IQzsStMR?N(DviW2XD)P9db{0Cw@ z&{zfi<`8R;u>ozO=r&C!_TQk3*MbBF3Uw0rKrp1Q&<5cmTrWV-62IK1D-0pXHi9Ql zR{)br(_1Aigp`6A+OYBP#*OGN;rcGT1M_^yCkLben!`7;@7a?l|N7)f^nGY7i#e_6 zm4zb<_}{5ox;aQm2N*g?g;>v||(u*fMpP}*fhC8vp8tOnyFpGF>_KB$7XokH& z2pN$oL1ZBHVQ+({4eUN>OG{D!+1J|55x!M-kU?eOGBYSK`cc^>lsUYW3oi0`SY>Q zf3nXi2y>faG&>M?oOVPq8}1#9Ilu1i%483nJ-aB~yO$f~75jAa<;AmS4;`4$Xp?E7 zh1q4)4tuG|hT4{S5HT>aYz06j#^Q^C#vm%l)4&@Gr9srk0T5haa~l^M#p3%ixBi23 z=g!l6PrXF@@T|T~W;N2;zwhkXedo{L+x8=0Wk%_rQ!2K)a}C~Z!!8KPB!@f>Rbq@9 zyoiZL!45>K#tk+S;*8khRm1#hLDwQqFsiJQMnNWC!~@Ou77ozpjvMY{Z(O|*(er2u zY2=yfAE0j_&+Nw%tofEYfB31V4&7kep-wD(>QkHP`PLJTUAEQm!~qmD^bP*e-=$x~ z@<%6Czj?g+hDc@0Mruz38}Azzu9>@frcy5ScT-Pk$p*-Wh7B%gU1pt zWtK8{pIHH26h%lh)|+TD0pK7diY8chCb(0dO+-6bigqe8fZy!W*oHZvyC!ku6*G`TqV)y8izpf{XN&C1%0;F4ij~ zf`xqZUm`A7#PxV@OpYmmO|oDPL}I;Ye{amfTLO_6Z1AefhMHSO#x`F!I=r>{b7;S) zr!(tawp7aY6?~dCW{LDZOCC1=HJAtn6Q9N(CzyTcJNQF=`16`E{CP2pFM{49uLli% zzZ>uSS%TLdr+P>~%zEm2>SpSb)NKvyAtGwk80m>AbfptL$-KcC;;;!Uo&gDFV9h6y z1Y~$dt)kIv(W1bz@bU@@EQ*#m0_Px^&7?m`lFTpv8FY_$6miP&Wo+?ME72Xm$VMXHctHMHdi6o=9pIo^j{|d+Ywwr}y9L>p%F!L7*k_(Uq=W0+6; zHxLu&VgV&4`$P*T<0t58dn2$&IkO^`r676zK*Qgd!86^@^)eAp$(05K&BJN^&`pjvhcXp>cToTW6PIsXBUh}7^vC-k^ z_{4@%y{lWoCahicZVG5F3!?;sY6`zyp|#DYWA1PyzOD~x0k_UDtl8yDb$1Rne|qdo zr-nmLXQPl*tP-!=Q?V3YShf%EXC7hFloQ*kz0?>rM|C#TT3=UoYO-&vHkR$}>V?>h zjRjK#d;3NS6m1~l1W>!2wACyQf02Ru)V{pd^)oO&Lohy8yuhG28a6yWCap9^IVxoJ zU1)Ci+qv$ve`xsH>u%h6(kvyD$%H?Rz9LQcRgT7!k|0URSZ$!c0msN5Qn$on!QeLa z8Gpc9@uY2LsiL5xlA><2^RBSS+qXI661}?ntv!3v{sjIs$$WC>jn{2%4EfW|Wc+BQ zZ(711nv6I42Wqh-9HXNlhi=&x3dLeu)PvpLZCSSzcW(1MsK-qeG2zjqie$DK`XB4H zpJBb`!j}F3byY(h=7=Yyq zhH@*l>Zw4s8cWBzJi;(;aBG-^&|(gnkg-jqNBq&qTvI-F;>0oZ{#+#LA4yL%U0Y8OtnKwIKQ&z=Fk!Z-r%TrBj`n)OFt+O+BD-Pdo+HQk?m_O7wf zjSF{8M|`?p%>!LqMgJd zW%O3k**u)L+f~(W&!c6REF)> z1r{#@Rr~lSv&5qV`_K5zaCGIL%(s7YD`Aek_y|cNv=F-=aCG_|^4O77eU+nRA z5XnE(OS;;Y!^DhHdeWAIAml4V4i3@=8lj_&KiDcJbhRNPv9V~prBbDTJ5cqeC4Jl0 z-~Y-z$6by=ORvea%ft7$^vLm%#;VnRKP#j&SI_O-IX zdZ+J2Pd6kk6Bt?qv#GiR}$rE@RDfc9%Kl+wV=@G;D;2|NmD7LrYziqx zp62XXX0~t<59^`l@DFho$QjGP%!D}$hBHJAYW9CS_@=`_;vOPZ$2&}iLylBk*6%CWd7t!NHg zFqrP0n!cs?q12`uJ5@CnDa=0Pp^x|WKDK7Yo5_&H0{^ogc?{ygoYef^!yw^Q|d&x7AXbeHzwEAS{(E0q-inbvJg z{$cR+JNpBU$)2M)G;S>R^bP9KRn+F(AbAuu_FM2|%O{{?&DfQ&@If)2>FO~Yw zct8y6RRpEq5xlRP;Kf-UIAP z(LK?bm$fS{rpmdbsz|ZS6ulBxOzdNh70SnN(0&=fD$LL9$Cg% zT2<|owd_s5YFSHOHe&K5A=5?0Tr+bkHRpMwc}HQT&D_JLA3K?hlfl0>!tsb?BAySwhTPh%>OCv!)0>~RJ5}Jrwqx6|c<7?mt<3nz`Zmc5 zzex!gQqG69nQx;@SVk=~81PdNDeg`d>rNIopDYe6kgNY&bn+fB7vgfwP*dO^BUAt< zKOuZ{_^#b*0XR5nOs0FCMXQMM6hqi(x88SNwvPI*A5W$YhWQJt8++ma004NLV_;-p zU;yH6q9>E$`E9;3$TPnHiZGlxYP%Iq^Z(Cc{>dB!`DfkXjeAq;x}004NLV_;-p zU=I18#Sq29$p8e*KN%PqPynMW08(WGL;!f4jZ-^I13?g;+dW^6$;A-GL?o3W2!dc? zk;*!Pm9>H>2JIf}=3#J7UzL6+jl*KznW;$zp){sPP95f;6n`j@0GyP#);8R;7o z(-Dx(+zW`4doohroPcwP1gv+ZewW|4ra|1Nq@8-8am>eWP#secu>A`%{8lMZbEs${ zwp35>^1Ld{k+Rp2;T~Q=VDFH7JI>dEXMBP#(fTJKZCm&baqdDEzESSSy)jJz`Fpdf_YiHFF>}3XFaC>2WvH_C+s?b%)!8;x zU)8(vpID7?^BB*it+Ju=0oIw1^n%VNiaC6PvWC6Tx_uuq<2~te{ehdI8M05{?5WpJMkU+*I|zG;he(6Ul}BL zLz$QRZ}t*#qx-tae=cx)jPYsjLb4fYNq4)hOV54;c-5Lgh<5e5-d5u6e1 z5`Yro6EG8O6Pgpu6bck#6u1=T6$}+H6|@#q7K9eE7T6a27k(HL7?>Fz8HgF=8Xy{I z8l)Qz8@L=2984Up9XK7H9q1lP9@rmtAG#nIAY>q>A#5SWA~GVZBRC`QB%&nFB?2Wj zC6p#6CZZGq5ydH3T)>Hbge?H#|3vH}*JiIP^K9 zI!HS-JM27^JyJcsK2kqCKoCHxL0UpILUKaRLo7p}L>5IxMT$l0Mnp$UNgzp-N)$?L zO9)GpOhio(P3BHoPU25yPxeq$P~=g5QchDqQ~Xp`RV-DuR)$yRSSncdS&~`!TB=(- zT%27>UGiRRUY=g`Uus|0VE$o9Vbo$;Vz^@-W0Yh3WS(UXWqf7mW=3ZQXOw70XvS$Q zY9MNKYaVNMYrJeMY?^H-ZIo^3Zc=W(Zv<~pZ~SmhaME#9aoBP!a>#QebDVT2bi8#8 zb!2uVcNBMscqn+Rc>;M}dAfQMdXRdwdqjJNd**x?e0Y5HeO3Sg0003U0D1rp00000 z00IC+08aos0001z0-XQ=004NLb&$(S!$1^<|JVx%)s+u$&`rBYNFs&O?s`dAZr%4X zX#+J0(@7;DK7l*mLwo{X#D~#8$q3z;$(-|@;aq+WfNOlfLG#@rvh1LXXUiAlH_I*D z;oEW>UFXVj2lvj4wrFlkAPONW`=O?3Mumx4veO(DX?LLS(cYN+3k(=X9EfSAe40} z^HrLtgG_a?Va|f3hHY{V#3D6iPXEB_Ejt!?VxYE3K_4-r%B{SnC{;`GC`K^mJ@3@K z1U#;_f1(j(sfjYZQxbZA__WcwuL7Eiu68i*TS_(3J3Z)0 z2c7hyH+|?!Kf37800uIM!3<$2!x+v8Mly=gOvMh8VP1%gi*@7(@%Q&`TYqnuL+p-&!Jh2J-t5D^?8p8bz$6ajAP(jb4&^Wo=LnAED30bBj^#Lx=LAmVBu?fO zPUSRC=M2u|EY9W}&gDGL=K?O|A};0Rfy+fbSH}nf#p???<28Kala2OJXhGAiN7!gK>QDJn?vEwIB z7?-vO>zFcRNoRXDkA}%e-N+ivR5D683hiq0HlAs$96xK1MJ>ldTQeC#jXp*6Dcidn zMNlZXEZ0noQg~UMk#nM@s%|ImL(@jDk`7;Xx7stcsY@|{(Vlp(7 zrZTjYW-@e(@=4{B$|wELM}egZELMK1z)}Tfu^NPILN*~=tRW%C0xX163a1oKY?Mk% zRqRvYRKlq>Q^y%0H<3Ca*R^Pg)KxO#l6o;F*u=(F7>(#v%4TsUmr=;jS!x?oN15p? zwU$YvOd4g9FO#xaCS*06so6};W|C%;e4A9;q~oSmH?_LuLY9u3l-+V6=R%fbn3UEe z!X^nfDV#~Utq`)*-K6fOk}#EosU%D#VWp5uAxnBpVq~R|OCgs+Rz+DQ(r{5_LB+B8gTC@jYwW&u^4bcgQ@ROmBxLl6$k>&S-A)R2moUsumK}PAg}`?aIyp_2SrjuxB>r#ump{< J1pq_<003+=_cH(h diff --git a/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.init.js b/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.init.js deleted file mode 100644 index 6e0d7e9e2c..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.init.js +++ /dev/null @@ -1,27 +0,0 @@ -/** -* Gumby Init -*/ - -// test for touch event support -Modernizr.load({ - test: Modernizr.touch, - - // if present load custom jQuery mobile build and update Gumby.click - yep: Gumby.path+'/jquery.mobile.custom.min.js', - callback: function(url, result, key) { - // check jQuery mobile has successfully loaded before using tap events - if($.mobile) { - window.Gumby.click = 'tap'; - } - }, - - // either way initialize Gumby - complete: function() { - window.Gumby.init(); - - // if AMD return Gumby object to define - if(typeof define == "function" && define.amd) { - define(window.Gumby); - } - } -}); diff --git a/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.js b/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.js deleted file mode 100644 index 9477eeadad..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.js +++ /dev/null @@ -1,150 +0,0 @@ -/** -* Gumby Framework -* --------------- -* -* Follow @gumbycss on twitter and spread the love. -* We worked super hard on making this awesome and released it to the web. -* All we ask is you leave this intact. #gumbyisawesome -* -* Gumby Framework -* http://gumbyframework.com -* -* Built with love by your friends @digitalsurgeons -* http://www.digitalsurgeons.com -* -* Free to use under the MIT license. -* http://www.opensource.org/licenses/mit-license.php -*/ -!function() { - - 'use strict'; - - function Gumby() { - this.$dom = $(document); - this.isOldie = !!this.$dom.find('html').hasClass('oldie'); - this.click = 'click'; - this.onReady = this.onOldie = this.onTouch = false; - this.uiModules = {}; - this.inits = {}; - - // check and set path with js/libs default - this.path = $('script[gumby-path]').attr('gumby-path') || - $('script[data-path]').attr('data-path') || - $('script[path]').attr('path') || - 'js/libs'; - } - - // initialize Gumby - Gumby.prototype.init = function() { - // init UI modules - this.initUIModules(); - - var scope = this; - - // call ready() code when dom is ready - this.$dom.ready(function() { - if(scope.onReady) { - scope.onReady(); - } - - // call oldie() callback if applicable - if(scope.isOldie && scope.onOldie) { - scope.onOldie(); - } - - // call touch() callback if applicable - if(Modernizr.touch && scope.onTouch) { - scope.onTouch(); - } - }); - }; - - // public helper - set Gumby ready callback - Gumby.prototype.ready = function(code) { - if(code && typeof code === 'function') { - this.onReady = code; - } - }; - - // public helper - set oldie callback - Gumby.prototype.oldie = function(code) { - if(code && typeof code === 'function') { - this.onOldie = code; - } - }; - - // public helper - set touch callback - Gumby.prototype.touch = function(code) { - if(code && typeof code === 'function') { - this.onTouch = code; - } - }; - - // public helper - return debuggin object including uiModules object - Gumby.prototype.debug = function() { - return { - $dom: this.$dom, - isOldie: this.isOldie, - uiModules: this.uiModules, - click: this.click - }; - }; - - // grab attribute value, testing data- gumby- and no prefix - Gumby.prototype.selectAttr = function() { - var i = 0; - - // any number of attributes can be passed - for(; i < arguments.length; i++) { - // various formats - var attr = arguments[i], - dataAttr = 'data-'+arguments[i], - gumbyAttr = 'gumby-'+arguments[i]; - - // first test for data-attr - if(this.attr(dataAttr)) { - return this.attr(dataAttr); - - // next test for gumby-attr - } else if(this.attr(gumbyAttr)) { - return this.attr(gumbyAttr); - - // finally no prefix - } else if(this.attr(attr)) { - return this.attr(attr); - } - } - - // none found - return false; - }; - - // add an initialisation method - Gumby.prototype.addInitalisation = function(ref, code) { - this.inits[ref] = code; - }; - - // initialize a uiModule - Gumby.prototype.initialize = function(ref) { - if(this.inits[ref] && typeof this.inits[ref] === 'function') { - this.inits[ref](); - } - }; - - // store a UI module - Gumby.prototype.UIModule = function(data) { - var module = data.module; - this.uiModules[module] = data; - }; - - // loop round and init all UI modules - Gumby.prototype.initUIModules = function() { - var x; - for(x in this.uiModules) { - this.uiModules[x].init(); - } - }; - - window.Gumby = new Gumby(); - -}(); diff --git a/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.min.js b/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.min.js deleted file mode 100644 index 22c517df3f..0000000000 --- a/pkgs/plt-web-pkgs/plt-web-lib/resources/js/libs/gumby.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(){"use strict";function Gumby(){this.$dom=$(document);this.isOldie=!!this.$dom.find("html").hasClass("oldie");this.click="click";this.onReady=this.onOldie=this.onTouch=false;this.uiModules={};this.inits={};this.path=$("script[gumby-path]").attr("gumby-path")||$("script[data-path]").attr("data-path")||$("script[path]").attr("path")||"js/libs"}Gumby.prototype.init=function(){this.initUIModules();var scope=this;this.$dom.ready(function(){if(scope.onReady){scope.onReady()}if(scope.isOldie&&scope.onOldie){scope.onOldie()}if(Modernizr.touch&&scope.onTouch){scope.onTouch()}})};Gumby.prototype.ready=function(code){if(code&&typeof code==="function"){this.onReady=code}};Gumby.prototype.oldie=function(code){if(code&&typeof code==="function"){this.onOldie=code}};Gumby.prototype.touch=function(code){if(code&&typeof code==="function"){this.onTouch=code}};Gumby.prototype.debug=function(){return{$dom:this.$dom,isOldie:this.isOldie,uiModules:this.uiModules,click:this.click}};Gumby.prototype.selectAttr=function(){var i=0;for(;i');$input.prop("checked",true).end().addClass("checked").trigger("gumby.onCheck").trigger("gumby.onChange")}else{$input.prop("checked",false).end().find("i").remove().end().removeClass("checked").trigger("gumby.onUncheck").trigger("gumby.onChange")}};Gumby.addInitalisation("checkboxes",function(){$(".checkbox").each(function(){var $this=$(this);if($this.data("isCheckbox")){return true}$this.data("isCheckbox",true);new Checkbox($this)})});Gumby.UIModule({module:"checkbox",events:["onCheck","onUncheck","onChange","check","uncheck"],init:function(){Gumby.initialize("checkboxes")}})}();!function(){"use strict";function FitText($el){this.$el=$el;this.rate=Gumby.selectAttr.apply(this.$el,["rate"])||1;this.fontSizes=this.parseSizes(Gumby.selectAttr.apply(this.$el,["sizes"]));var scope=this;$(window).on("load resize orientationchange",function(){scope.resize()})}FitText.prototype.resize=function(){this.$el.css("font-size",this.calculateSize())};FitText.prototype.calculateSize=function(){return Math.max(Math.min(this.$el.width()/(this.rate*10),parseFloat(this.fontSizes.max)),parseFloat(this.fontSizes.min))};FitText.prototype.parseSizes=function(attrStr){var sizes={min:Number.NEGATIVE_INFINITY,max:Number.POSITIVE_INFINITY};if(!attrStr){return sizes}if(attrStr.indexOf("|")>-1){attrStr=attrStr.split("|");sizes.min=Number(attrStr[0])||sizes.min;sizes.max=Number(attrStr[1])||sizes.max}sizes.min=Number(attrStr)||sizes.min;return sizes};Gumby.addInitalisation("fittext",function(){$(".fittext").each(function(){var $this=$(this);if($this.data("isFittext")){return true}$this.data("isFittext",true);new FitText($this)})});Gumby.UIModule({module:"fittext",events:[],init:function(){Gumby.initialize("fittext")}})}();!function(){"use strict";function Fixed($el){this.$el=$el;this.$holder=Gumby.selectAttr.apply(this.$el,["holder"]);this.fixedPoint=Gumby.selectAttr.apply(this.$el,["fixed"]);this.unfixPoint=false;if(this.$holder){this.$holder=$(this.$holder)}else{this.$holder=$(window)}if(this.fixedPoint.indexOf("|")>-1){var points=this.fixedPoint.split("|");this.fixedPoint=points[0];this.unfixPoint=points[1]}this.fixedPoint=this.parseAttrValue(this.fixedPoint);if(this.unfixPoint){this.unfixPoint=this.parseAttrValue(this.unfixPoint)}var scope=this;this.$holder.scroll(function(){scope.scroll()})}Fixed.prototype.scroll=function(){var offset=this.$holder.scrollTop(),fixedPoint=this.fixedPoint,unfixPoint=this.unfixPoint,endPoint=this.endPoint;fixedPoint=fixedPoint instanceof jQuery?this.fixedPoint.offset().top:this.fixedPoint;unfixPoint=unfixPoint instanceof jQuery?this.unfixPoint.offset().top:this.unfixPoint;if(!unfixPoint){unfixPoint=offset*2}if(offset>=fixedPoint&&offset=unfixPoint&&this.$el.hasClass("fixed")){this.$el.removeClass("fixed").trigger("gumby.onUnfixed",1)}};Fixed.prototype.parseAttrValue=function(attr){if($.isNumeric(attr)){return Number(attr)}else if(attr==="top"){return this.$el.offset().top}else{var $el=$(attr);return $el.length?$el:false}};Gumby.addInitalisation("fixed",function(){$("[data-fixed],[gumby-fixed],[fixed]").each(function(){var $this=$(this);if($this.data("isFixed")){return true}$this.data("isFixed",true);new Fixed($this)})});Gumby.UIModule({module:"fixed",events:["onFixed","onUnfixed"],init:function(){Gumby.initialize("fixed")}})}();!function(){"use strict";if(!Modernizr.touch){return}function Navbar($el){this.$el=$el;var scope=this;this.$el.find("li").on(Gumby.click,function(e){var $this=$(this);e.stopPropagation();if(this.href==="#"){e.preventDefault()}scope.dropdown($this)})}Navbar.prototype.dropdown=function($this){if($this.children(".dropdown").length){if($this.hasClass("active")){$this.removeClass("active")}else{$this.addClass("active")}}else{this.$items.removeClass("active")}};Gumby.addInitalisation("navbars",function(){$(".navbar").each(function(){var $this=$(this);if($this.data("isNavbar")){return true}$this.data("isNavbar",true);new Navbar($this)})});Gumby.UIModule({module:"navbar",events:[],init:function(){Gumby.initialize("navbars")}})}();!function(){"use strict";function RadioBtn($el){this.$el=$el;var scope=this;this.$el.on(Gumby.click,function(e){scope.click(e)}).on("gumby.check",function(){scope.update()});if(scope.$el.hasClass("checked")){scope.update()}}RadioBtn.prototype.click=function(e){var $target=$(e.target);e.stopPropagation();e.preventDefault();this.update()};RadioBtn.prototype.update=function(){var $input=this.$el.find("input[type=radio]"),$span=this.$el.find("span"),group='input[name="'+$input.attr("name")+'"]';$(".radio").has(group).removeClass("checked").find("input").prop("checked",false).end().find("i").remove();$input.prop("checked",true);$span.append('');this.$el.addClass("checked").trigger("gumby.onChange")};Gumby.addInitalisation("radiobtns",function(){$(".radio").each(function(){var $this=$(this);if($this.data("isRadioBtn")){return true}$this.data("isRadioBtn",true);new RadioBtn($this)})});Gumby.UIModule({module:"radiobtn",events:["onChange","check"],init:function(){Gumby.initialize("radiobtns")}})}();!function(){"use strict";function Retina($el){this.$el=$el;this.imageSrc=this.$el.attr("src");this.retinaSrc=this.fetchRetinaImage();this.$retinaImg=$(new Image);var scope=this;if(!this.retinaSrc){return false}this.$retinaImg.attr("src",this.retinaSrc).load(function(){scope.retinaImageLoaded()})}Retina.prototype.fetchRetinaImage=function(){var imgSrc=this.imageSrc,index=this.imageSrc.search(/(\.|\/)(gif|jpe?g|png)$/i);if(index<0){return false}return imgSrc.substr(0,index)+"@2x"+imgSrc.substr(index,imgSrc.length)};Retina.prototype.retinaImageLoaded=function(){this.$el.attr("src",this.$retinaImg.attr("src")).trigger("gumby.onRetina")};Gumby.addInitalisation("retina",function(){if(!window.devicePixelRatio||window.devicePixelRatio<=1){return}$("img[data-retina],img[gumby-retina],img[retina]").each(function(){var $this=$(this);if($this.data("isRetina")){return true}$this.data("isRetina",true);new Retina($this)})});Gumby.UIModule({module:"retina",events:["onRetina"],init:function(){Gumby.initialize("retina")}})}();!function(){"use strict";function SkipLink($el){this.$el=$el;this.targetPos=0;this.duration=Number(Gumby.selectAttr.apply(this.$el,["duration"]))||200;this.offset=Gumby.selectAttr.apply(this.$el,["offset"])||false;this.easing=Gumby.selectAttr.apply(this.$el,["easing"])||"swing";var scope=this;this.$el.on(Gumby.click+" gumby.skip",function(e){e.preventDefault();scope.calculateTarget()})}SkipLink.prototype.calculateTarget=function(){var scope=this,target=Gumby.selectAttr.apply(this.$el,["goto"]),$target;if(target=="top"){this.targetPos=0}else if($.isNumeric(target)){this.targetPos=Number(target)}else{$target=$(target);if(!$target){return false}this.targetPos=$target.offset().top}this.skipTo()};SkipLink.prototype.skipTo=function(){var scope=this;$("html,body").animate({scrollTop:this.calculateOffset()},this.duration,this.easing).promise().done(function(){scope.$el.trigger("gumby.onComplete")})};SkipLink.prototype.calculateOffset=function(){if(!this.offset){return this.targetPos}var op=this.offset.substr(0,1),off=Number(this.offset.substr(1,this.offset.length));if(op==="-"){return this.targetPos-off}else if(op==="+"){return this.targetPos+off}};Gumby.addInitalisation("skiplinks",function(){$(".skiplink > a, .skip").each(function(){var $this=$(this);if($this.data("isSkipLink")){return true}$this.data("isSkipLink",true);new SkipLink($this)})});Gumby.UIModule({module:"skiplink",events:["onComplete","skip"],init:function(){Gumby.initialize("skiplinks")}})}();!function(){"use strict";function Tabs($el){this.$el=$el;this.$nav=this.$el.find("ul.tab-nav > li");this.$content=this.$el.find(".tab-content");var scope=this;this.$nav.children("a").on(Gumby.click,function(e){e.preventDefault();scope.click($(this))});this.$el.on("gumby.set",function(e,index){scope.set(e,index)})}Tabs.prototype.click=function($this){var index=$this.parent().index();this.$nav.add(this.$content).removeClass("active");this.$nav.eq(index).add(this.$content.eq(index)).addClass("active");this.$el.trigger("gumby.onChange",index)};Tabs.prototype.set=function(e,index){this.$nav.eq(index).find("a").trigger(Gumby.click)};Gumby.addInitalisation("tabs",function(){$(".tabs").each(function(){var $this=$(this);if($this.data("isTabs")){return true}$this.data("isTabs",true);new Tabs($this)})});Gumby.UIModule({module:"tabs",events:["onChange","set"],init:function(){Gumby.initialize("tabs")}})}();!function(){"use strict";function Toggle($el){this.$el=$($el);this.targets=[];this.on="";if(this.$el.length){this.init()}}function Switch($el){this.$el=$($el);this.targets=[];this.on="";if(this.$el.length){this.init()}}Toggle.prototype.init=function(){this.targets=this.parseTargets();this.on=Gumby.selectAttr.apply(this.$el,["on"])||Gumby.click;var scope=this;this.$el.on(this.on,function(e){if($(this).prop("tagName")==="A"){e.preventDefault()}e.stopPropagation();scope.trigger(scope.triggered)}).on("gumby.trigger",function(){scope.trigger(scope.triggered)})};Toggle.prototype.parseTargets=function(){var targetStr=Gumby.selectAttr.apply(this.$el,["trigger"]),secondaryTargets=0,targets=[];if(!targetStr){return false}secondaryTargets=targetStr.indexOf("|");if(secondaryTargets===-1){return[$(targetStr)]}targets=targetStr.split("|");return targets.length>1?[$(targets[0]),$(targets[1])]:[$(targets[0])]};Toggle.prototype.triggered=function(){this.$el.trigger("gumby.onTrigger",[this.$el.hasClass("active")])};Switch.prototype=new Toggle;Toggle.prototype.trigger=function(cb){if(!this.targets){this.$el.toggleClass("active")}else if(this.targets.length==1){this.$el.add(this.targets[0]).toggleClass("active")}else if(this.targets.length>1){if(this.targets[0].hasClass("active")){this.$el.add(this.targets[0]).removeClass("active");this.targets[1].addClass("active")}else{this.targets[1].removeClass("active");this.$el.add(this.targets[0]).addClass("active")}}if(cb&&typeof cb==="function"){cb.apply(this)}};Switch.prototype.trigger=function(cb){if(!this.targets){this.$el.addClass("active")}else if(this.targets.length==1){this.$el.add(this.targets[0]).addClass("active")}else if(this.targets.length>1){this.$el.add(this.targets[0]).addClass("active");this.targets[1].removeClass("active")}if(cb&&typeof cb==="function"){cb.apply(this)}};Gumby.addInitalisation("toggles",function(){$(".toggle").each(function(){var $this=$(this);if($this.data("isToggle")){return true}$this.data("isToggle",true);new Toggle($this)})});Gumby.addInitalisation("switches",function(){$(".switch").each(function(){var $this=$(this);if($this.data("isSwitch")){return true}$this.data("isSwitch",true);new Switch($this)})});Gumby.UIModule({module:"toggleswitch",events:["trigger","onTrigger"],init:function(){Gumby.initialize("switches");Gumby.initialize("toggles")}})}();!function($){"use strict";function Validation($this,req){this.$this=$this;this.$field=this.$this.parents(".field");this.req=req||function(){return!!this.$this.val().length};var scope=this;if(this.$this.is("[type=checkbox], [type=radio]")){this.$field=this.$this.parent("label");this.$field.on("gumby.onChange",function(){scope.validate()})}else if(this.$this.is("select")){this.$field=this.$this.parents(".picker");this.$field.on("change",function(){scope.validate()})}else{this.$this.on("blur",function(e){if(e.which!==9){scope.validate()}})}}Validation.prototype.validate=function(){var result=this.req(this.$this);if(!result){this.$field.removeClass("success").addClass("danger")}else{this.$field.removeClass("danger").addClass("success")}return result};$.fn.validation=function(options){var settings=$.extend({submit:false,fail:false,required:[]},options),validations=[];return this.each(function(){if(!settings.required.length){return false}var $this=$(this),reqLength=settings.required.length,i;for(i=0;i)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
a",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="
t
",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj; -return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="
",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l) -}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("