Catalyst-Devel-1.42/000755 000000 000000 00000000000 13726667234 014400 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/README000644 000000 000000 00000001752 13726667234 015265 0ustar00rootwheel000000 000000 NAME Catalyst::Devel - Catalyst Development Tools DESCRIPTION The "Catalyst-Devel" distribution includes a variety of modules useful for the development of Catalyst applications, but not required to run them. This is intended to make it easier to deploy Catalyst apps. The runtime parts of Catalyst are now known as "Catalyst::Runtime". "Catalyst-Devel" includes the Catalyst::Helper system, which autogenerates scripts and tests; Module::Install::Catalyst, a Module::Install extension for Catalyst; and requirements for a variety of development-related modules. The documentation remains with Catalyst::Runtime. SEE ALSO Catalyst. AUTHOR Catalyst Contributors, see Catalyst.pm PROJECT FOUNDER sri: Sebastian Riedel COPYRIGHT Copyright (c) 2006 - 2009 the Catalyst::Devel "AUTHOR" as listed above. LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. Catalyst-Devel-1.42/Changes000644 000000 000000 00000034165 13726667016 015702 0ustar00rootwheel000000 000000 This file documents the revision history for Perl extension Catalyst-Devel. 1.42 - 2020-09-11 - stop using Module::Install for packaging, improving metadata and fixing Makefile.PL on perl 5.26+. Generating a Catalyst application still uses Module::Install::Catalyst for now. - fix generated_app.t test on Windows - whitespace and formatting tweaks - various internal test cleanups 1.41 2020-07-27 03:00:00 - avoid SHILY tar headers - fix warnings in Makefile.PL - clean up author prereqs - add perl version prereq metadata 1.40 2020-02-27 17:00:00 - Note: There may be some additional fixes not listed below. Its been a while since this has been released and I noted several commits in git. Did my best to list but apologies if I missed your patch. - Use absolute path for do $file in t/generated_app.t - Add . to @INC in Makefile.PL - Typo fixes. RT#87103 - Catalyst::Restarter::Forking: clear watcher in child process. RT#119830 1.39 2013-06-14 12:44:17 - Write =encoding utf8 into generated Pod files so that things work as expected for people with utf-8 characters in their unix username as returned by getpwuid (RT#84613) - Fix unbalanced parenthesis in comptest.tt (RT#85661) 1.38 2013-04-11 20:54:00 - Remove all PAR based deployment options, as they're unsupported and don't even pretend to work on 5.9 RT#83936 1.37 2012-05-19 11:19:00 - Add x_authority metadata to the distribution for PAUSE. - Fix restarter regex to apply to files being created/changed, not just those being deleted. - Use iomode => ":raw" to stop PNG files getting corrupted when being slurped on windows as noted on the mailing list. 1.36 2011-10-24 17:58:00 - New apps send an X-Catalyst header by default (this can be disabled by changing the config in the generated app) - Fix leaking temporary files in tests. RT#59166 - Fix generated Makefile.PL to always contain unix style paths, even on Win32. RT#65456 - Fix tests generated for controllers generated with --mechanize to work with newer versions of Test::WWW::Mechanize::Catalyst - bump Module::Install dep to 1.02 - Removed stderr hiding from 'make catalyst_par' to display errors from PAR::Packer 1.35 2011-09-05 13:05:00 - Stop requiring Starman and MooseX::Daemonize on Win32 as they're optional components in Catalyst::Runtime and won't install on Windows. - Fix test to work on Windows. 1.34 2011-08-16 09:02:00 - Bump required version of Catalyst to 5.9 - Merge psgi support. catalyst.pl will now generate a default myapp.psgi file with the default middlewares applied. - Fix scripts being generated mode 0700, rather than 0755 - Fix duplicate 'use Test::More' statement in generated components. - Fix Pod for catalyst_ignore function in Module::Install::Catalyst RT#68563 1.33 2011-03-24 15:10:00 - Fix a regression introduced in 1.32 that caused Catalyst::Restarter to not work at all. 1.32 2011-03-22 09:17:00 - Fix RT#65907: missing build require: Test::Exception - Fix RT#57019: Fix bundling of File::Copy::Recursive in inc/ by Module::Install::Catalyst 1.31 2011-01-20 01:08:00 - Fix for copying generated files into installed apps + tests to ensure it keeps working. abraxxa++ - Make Pod tests author only 1.30 2011-01-11 23:54:00 - Increased Catalyst::Plugin::ConfigLoader dependency to 0.30 - Include File::Copy::Recursive in inc/ when building a dist of an application. 1.29 2011-01-11 23:51:00 - Add documentation for the --proc_title option to the generated fastcgi scripts - Don't bother with the BEGIN { use_ok dance for created tests - the test will fail to compile (and ergo fail) using just use, and that's less typing (and less copy-pasting) - Split method for creating tests into multiple methods to allow subclasses to override the generation of some tests. - Allow the author to be defined in the call to ->new to help things which want to call Catalyst::Helper programatically. - Remove $VERSION = eval $VERSION handwave in generated code as: - Gives a perl critic violation. - If you're shipping a dev release, best practice is you should do it by renaming the tarball, rather than having a _ in the VERSION. - Allow catalyst.pl . to work for already created applications when in the application's directory. - Note that plugin order is important in the generated skeleton. - Don't pollute M::I plugin detector with GetOptions symbol from GetOpt::Long - Fix typo in share/script/myapp_server.pl.tt (RT #58475) 1.28 2010-06-16 02:43:00 - Fix generated Pod tests so that the first check is if the TEST_POD environment variable is set. (RT#58433) - Fix link in the Pod for Catalyst::Restarter (RT#57362) - Fix the pod-coverage version required by the generated app tests. - Fix the restarter to only act upon file events (and ergo ignore the creation of empty directories). 1.27 2010-02-23 10:44:20 - Add the catalyst_par_options option. - Change the version of Catalyst required to 5.80015 as retarded packaging systems consider 5.8001402 greater than 5.80015. 1.26 2010-01-12 03:55:50 - Depend on Catalyst::Plugin::Static::Simple 0.28 to avoid failures caused by a bug in 0.27. 1.25 2010-01-02 16:13:06 - Update repository metadata after moving from svn to git. 1.24 2009-12-07 23:23:36 - File name for .yml file generated is now correct. - Fixes for consistent spacing in generated application template. - Stop requiring generated test files to have a true return value. - Win32 compatibility fixes: 1) hardcoded 'make' replaced by: $Config{make}||'make' 2) testing executable flags skipped on Win32 - Fix pod to match option names on Catalyst::Script::Server 1.23 2009-12-06 12:22:12 - Fix generated app test to be multi-platform and fix issue with case for generated files. (Dave Rolsky) - Fix Test::More version dependency so that subtest works correctly. - Add a $VERSION to Catalyst::Helper as PAUSE used to pull $VERSION (i.e. 0.01) out of the app template section and use that, so we now can't not have a version number here or it makes pause unhappy. 1.22 2009-12-05 07:23:00 - Use MooseX::Emulate::Class::Accessor::Fast so that options supplied to ->new are put into the hash even if attributes do not exist for them. This fixes -force recreating application scripts. 1.21_01 2009-12-01 03:34:23 - Update generated scripts to use the new Catalyst::Script:: classes available from Catalyst 5.80014_02. Note: Any applications whos scripts are upgraded will need to depend on at least this version of Catalyst. - Change application templates from being inlined in Catalyst::Helper to being in a share dir making the templates much easier to maintain and patch. - Generate new applications with Moose and Moose style components. - Remove dependency on parent.pm as this has been removed from the generated application template. - Turn off deprecated regex component lookup in the config of new applications. - Test application generation and helper classes properly. - Change tests in generated application and components to use the new done_testing feature rather than having test plans. - Update required versions of dependencies to ensure the installed versions won't cause deprecation warnings with the latest Catalyst. - Exclude root/, t/ and hidden dirs from file change monitoring when using File::ChangeNotify 0.08+. (dew) - Updated POD of Module/Install/Catalyst.pm (Karsten Heymann) - Added debian package building temp files to the list of ignored files/directories and fix ignore for subversion checkouts. (Karsten Heymann) 1.21 2009-10-18 18:33:33 - The Restarter code caused stack traces for certain types of errors to grow longer and longer with every restart. (Dave Rolsky) - Fixed an issue with the Restarter in Win32 where @INC didn't get passed along when restarting. 1.20 2009-08-11 23:30:30 - Bump required File::ChangeNotify version to 0.07. Closes RT#48610. 1.19 2009-06-29 00:36:50 - Update Module::Install to a version that doesn't screw up auto_install anymore (Closes: RT#45784). - Generate Makefile.PLs with unix-paths, even on windows (Closes: RT#46059). 1.18 2009-06-10 17:43:12 - The forking restarter was not waiting for the child to exit, which could lead to a race condition. If the old child did not exit before the new child tried to bind to its socket, it would find the old child blocking the port it wanted. - More fixes for the Win32 restarter. It was effectively ignoring all command-line options except those related to the restarter itself. 1.17 2009-05-24 18:18:17 - Catalyst::Restarter::Forking loaded the threads and Thread::Cancel modules, even though it doesn't need them. 1.16 2009-05-23 17:29:29 - Catalyst prereq changed to 5.80. Thanks, kold! (jhannah) - Fixed the restarter to actually work on Win32. The fix means that the restarter is as slow as ever on Win32, but it works. Thanks to Rodrigo for the bug report and suggestion on how to fix it. (Dave Rolsky) - Actually fix -p option for port number, as I failed to do it right last time as I'm an idiot (t0m) 1.15 2009-05-13 20:02 - Remove -p option for pid file, and restore it to the port number, as it should be -port|-p (t0m) - Document -pidfile in myapp_server.pl POD (t0m) 1.14_02 2009-05-11 04:29 - Small changes to work with File::ChangeNotify 0.03. (Dave Rolsky) 1.14_01 2009-05-11 03:45 - This release moves the restarter functionality into a new module Catalyst::Restarter, that is not a Catalyst Engine subclass. The new restarter is simpler and more reliable, because it does not try to test if a changed piece of code can be compiled. It simply restarts the server whenever it detects changes. This also makes it much faster. However, this does mean that the server can simply die when a changed file cannot compile. This is different than the old behavior, where the server remained running without incorporating the change. Finally, the new restarter relies on File::ChangeNotify, which is designed to accomodate per-OS methods of detecting changed files. As of this writing, it currently ships with a file watcher that uses inotify on Linux systems, and a default fallback class that does everything in pure Perl. (Dave Rolsky) 1.13 2009-05-11 02:50 - add [-pidfile|-p] option for myapp_server.pl (caelum) - Bump dependency on Config::General (caelum) - On perls with c3 method dispatch, make sure Class::C3 is recent enough to not produce warnings if it is already installed (caelum) - add resources to META.yml (caelum) 1.12 2009-04-26 15:42 - Remove the deprecated BindLex from the _create.pl help message (rafl) 1.11 2009-04-22 19:02 - Add check for "Unknown error" bug (caelum) - Change generated scripts to use /usr/bin/env perl if /usr/bin/env exists, otherwise fall back to the current perl binary. (t0m) - Fix getopt spec in generated scripts to match docs (rjbs) - Additional documentation (ash) - Informational message after an application is created (kd) - Add a -background option to the dev server (duncs) 1.10 2009-02-05 15:04 - fix a bug in created helper scripts that prevened them working (rjbs) 1.09 2009-02-04 23:57 - Add Sebastian's PROJECT FOUNDER note to Devel.pm as requested - Fix warning when devel is not installed. 1.08 2008-07-13 18:00 - Revert to use Catalyst qw/@plugins/ - Require Config::General instead of YAML 1.07 2008-05-28 - helpers now create default :Path and index :Path :Args(0) - Moved Helper.pm to generate .conf rather than YAML - Made a warning in the generated Makefile.PL not to delete it. - Incorrect generated pod. 1.06 2008-04-09 08:19:00 - load plugins in setup, not plugins. (ema_zep@libero.it) 1.05 2008-04-07 11:55:00 - Add missing parent dependency to created projects. 1.04 2008-04-06 16:04:00 - Update default actions in Root.pm - Patch Helper.pm so Module::Pluggable::Object ignores emacs temp files appropriately for restarting server - Patched Helper.pm so the correct options for mulitple restart directories and symlink resolution will be set in myapp_server.pl (Sebastian Willert) - Change from use Catalyst to use parent and load plugins in setup call - Remove Catalyst::Manual dependency. 1.03 2007-08-10 08:10:00 - Changed default dependency to Catalyst::Runtime - Added BindLex example to create script - Don't change a manually-specified engine when using the -r switch with server.pl 1.02 2006-11-15 16:45:00 - Added dep to Catalyst::Manual - added option to send errors to STDOUT in fastcgi script 1.01 2006-09-17 23:49:00 - Upped M::I dependency - fix for warnings 1.00 2006-07-06 19:23:00 - Initial release Catalyst-Devel-1.42/MANIFEST000644 000000 000000 00000003476 13726667234 015543 0ustar00rootwheel000000 000000 Changes lib/Catalyst/Devel.pm lib/Catalyst/Helper.pm lib/Catalyst/Restarter.pm lib/Catalyst/Restarter/Forking.pm lib/Catalyst/Restarter/Win32.pm lib/Module/Install/Catalyst.pm maint/Makefile.PL.include Makefile.PL MANIFEST This list of files share/Changes.tt share/lib/Helper/compclass.pm.tt share/lib/MyApp.pm.tt share/lib/MyApp/Controller/Root.pm.tt share/Makefile.PL.tt share/myapp.conf.tt share/myapp.psgi.tt share/README.tt share/root/favicon.ico.bin share/root/static/images/btn_120x50_built.png.bin share/root/static/images/btn_120x50_built_shadow.png.bin share/root/static/images/btn_120x50_powered.png.bin share/root/static/images/btn_120x50_powered_shadow.png.bin share/root/static/images/btn_88x31_built.png.bin share/root/static/images/btn_88x31_built_shadow.png.bin share/root/static/images/btn_88x31_powered.png.bin share/root/static/images/btn_88x31_powered_shadow.png.bin share/root/static/images/catalyst_logo.png.bin share/script/myapp_cgi.pl.tt share/script/myapp_create.pl.tt share/script/myapp_fastcgi.pl.tt share/script/myapp_server.pl.tt share/script/myapp_test.pl.tt share/t/01app.t.tt share/t/02pod.t.tt share/t/03podcoverage.t.tt share/t/comptest.tt t/01use.t t/back_compat.t t/generated_app.t t/get_sharedir_file.t t/lib/MyTestHelper.pm t/lib/TestApp/Controller/Foo.pm t/lib/TestApp/Controller/Root.pm t/lib/TestApp/Controller/Subdir1/Foo.pm t/lib/TestApp/Controller/Subdir2/Foo.pm t/lib/UnknownError.pm t/optional_http-server-restart.t t/render_file_contents.t t/render_share_dir_file.t xt/pod.t xt/podcoverage.t META.yml Module YAML meta-data (added by MakeMaker) META.json Module JSON meta-data (added by MakeMaker) README README file (added by Distar) LICENSE LICENSE file (added by Distar) Catalyst-Devel-1.42/LICENSE000644 000000 000000 00000043441 13726667234 015413 0ustar00rootwheel000000 000000 Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2020 by sri - Sebastian Riedel . This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: 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 humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy 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 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2020 by sri - Sebastian Riedel . This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Catalyst-Devel-1.42/t/000755 000000 000000 00000000000 13726667227 014645 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/xt/000755 000000 000000 00000000000 13726667227 015035 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/META.yml000644 000000 000000 00000002564 13726667230 015654 0ustar00rootwheel000000 000000 --- abstract: 'Catalyst Development Tools' author: - 'sri - Sebastian Riedel ' build_requires: Test::Fatal: '0.003' Test::More: '0.94' configure_requires: ExtUtils::MakeMaker: '0' File::ShareDir::Install: '0' dynamic_config: 1 generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Catalyst-Devel no_index: directory: - t - xt requires: Catalyst: '5.90001' Catalyst::Action::RenderView: '0.10' Catalyst::Plugin::ConfigLoader: '0.30' Catalyst::Plugin::Static::Simple: '0.28' Config::General: '2.42' File::ChangeNotify: '0.07' File::Copy::Recursive: '0' File::ShareDir: '0' Module::Install: '1.02' Moose: '0' MooseX::Emulate::Class::Accessor::Fast: '0' Path::Class: '0.09' Template: '2.14' namespace::autoclean: '0' namespace::clean: '0' resources: IRC: irc://irc.perl.org/#catalyst MailingList: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Devel homepage: http://dev.catalyst.perl.org/ license: http://dev.perl.org/licenses/ repository: git://git.shadowcat.co.uk/catagits/Catalyst-Devel.git version: '1.42' x_authority: cpan:MSTROUT x_serialization_backend: 'CPAN::Meta::YAML version 0.018' Catalyst-Devel-1.42/META.json000644 000000 000000 00000004727 13726667233 016032 0ustar00rootwheel000000 000000 { "abstract" : "Catalyst Development Tools", "author" : [ "sri - Sebastian Riedel " ], "dynamic_config" : 1, "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Catalyst-Devel", "no_index" : { "directory" : [ "t", "xt" ] }, "prereqs" : { "build" : {}, "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0", "File::ShareDir::Install" : "0" } }, "develop" : { "requires" : { "Proc::Background" : "0", "Test::Pod" : "0", "Test::Pod::Coverage" : "0" } }, "runtime" : { "requires" : { "Catalyst" : "5.90001", "Catalyst::Action::RenderView" : "0.10", "Catalyst::Plugin::ConfigLoader" : "0.30", "Catalyst::Plugin::Static::Simple" : "0.28", "Config::General" : "2.42", "File::ChangeNotify" : "0.07", "File::Copy::Recursive" : "0", "File::ShareDir" : "0", "Module::Install" : "1.02", "Moose" : "0", "MooseX::Emulate::Class::Accessor::Fast" : "0", "Path::Class" : "0.09", "Template" : "2.14", "namespace::autoclean" : "0", "namespace::clean" : "0" } }, "test" : { "requires" : { "Test::Fatal" : "0.003", "Test::More" : "0.94" } } }, "release_status" : "stable", "resources" : { "bugtracker" : { "mailto" : "bug-Catalyst-Devel@rt.cpan.org", "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Devel" }, "homepage" : "http://dev.catalyst.perl.org/", "license" : [ "http://dev.perl.org/licenses/" ], "repository" : { "type" : "git", "url" : "git://git.shadowcat.co.uk/catagits/Catalyst-Devel.git", "web" : "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits/Catalyst-Devel.git" }, "x_IRC" : "irc://irc.perl.org/#catalyst", "x_MailingList" : "http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" }, "version" : "1.42", "x_authority" : "cpan:MSTROUT", "x_serialization_backend" : "JSON::PP version 4.04" } Catalyst-Devel-1.42/lib/000755 000000 000000 00000000000 13726667227 015150 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/maint/000755 000000 000000 00000000000 13726667227 015512 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/Makefile.PL000644 000000 000000 00000013631 13723720107 016340 0ustar00rootwheel000000 000000 use strict; use warnings FATAL => 'all'; use 5.006; my %META = ( name => 'Catalyst-Devel', license => 'perl_5', prereqs => { configure => { requires => { 'ExtUtils::MakeMaker' => 0, 'File::ShareDir::Install' => 0, } }, test => { requires => { 'Test::More' => '0.94', 'Test::Fatal' => '0.003', }, }, runtime => { requires => { 'Moose' => 0, 'MooseX::Emulate::Class::Accessor::Fast' => 0, 'File::ShareDir' => 0, 'namespace::clean' => 0, 'namespace::autoclean' => 0, 'Catalyst' => '5.90001', 'Catalyst::Action::RenderView' => '0.10', 'Catalyst::Plugin::Static::Simple' => '0.28', 'Catalyst::Plugin::ConfigLoader' => '0.30', 'Config::General' => '2.42', 'File::ChangeNotify' => '0.07', 'File::Copy::Recursive' => 0, 'Path::Class' => '0.09', 'Template' => '2.14', 'Module::Install' => '1.02', }, }, develop => { requires => { 'Proc::Background' => 0, 'Test::Pod' => 0, 'Test::Pod::Coverage' => 0, }, }, }, resources => { repository => { url => 'git://git.shadowcat.co.uk/catagits/Catalyst-Devel.git', web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits/Catalyst-Devel.git', type => 'git', }, x_IRC => 'irc://irc.perl.org/#catalyst', x_MailingList => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst', homepage => 'http://dev.catalyst.perl.org/', bugtracker => { web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Devel', mailto => 'bug-Catalyst-Devel@rt.cpan.org', }, license => [ 'http://dev.perl.org/licenses/' ], }, no_index => { directory => [ 't', 'xt' ] }, x_authority => 'cpan:MSTROUT', ); { package MY; use File::ShareDir::Install qw(install_share postamble); install_share 'share'; } my %MM_ARGS = ( PREREQ_PM => { # kill warning from older versions of Class::C3 ( ("$]" >= 5.009_005 && eval { require Class::C3 } && !eval { Class::C3->VERSION(0.20) }) ? ( 'Class::C3' => '0.20', ) : () ), }, ); if (!$ENV{CATALYST_DEVEL_NO_510_CHECK}) { require IPC::Open3; require File::Spec; open my $in, '<', File::Spec->devnull; my $pid = IPC::Open3::open3($in, my $out, undef, $^X, '-It/lib', '-MUnknownError', '-e1'); my $output = do { local $/; <$out> }; waitpid $pid, 0; if ($output =~ /^Unknown error/m) { warn <= 6.57_02; my $mymeta_broken = $mymeta && $eumm_version < 6.57_07; ($MM_ARGS{NAME} = $META{name}) =~ s/-/::/g; ($MM_ARGS{VERSION_FROM} = "lib/$MM_ARGS{NAME}.pm") =~ s{::}{/}g; $META{license} = [ $META{license} ] if $META{license} && !ref $META{license}; $MM_ARGS{LICENSE} = $META{license}[0] if $META{license} && $eumm_version >= 6.30; $MM_ARGS{NO_MYMETA} = 1 if $mymeta_broken; $MM_ARGS{META_ADD} = { 'meta-spec' => { version => 2 }, %META } unless -f 'META.yml'; $MM_ARGS{PL_FILES} ||= {}; $MM_ARGS{NORECURS} = 1 if not exists $MM_ARGS{NORECURS}; for (qw(configure build test runtime)) { my $key = $_ eq 'runtime' ? 'PREREQ_PM' : uc $_.'_REQUIRES'; my $r = $MM_ARGS{$key} = { %{$META{prereqs}{$_}{requires} || {}}, %{delete $MM_ARGS{$key} || {}}, }; defined $r->{$_} or delete $r->{$_} for keys %$r; } $MM_ARGS{MIN_PERL_VERSION} = delete $MM_ARGS{PREREQ_PM}{perl} || 0; delete $MM_ARGS{MIN_PERL_VERSION} if $eumm_version < 6.47_01; $MM_ARGS{BUILD_REQUIRES} = {%{$MM_ARGS{BUILD_REQUIRES}}, %{delete $MM_ARGS{TEST_REQUIRES}}} if $eumm_version < 6.63_03; $MM_ARGS{PREREQ_PM} = {%{$MM_ARGS{PREREQ_PM}}, %{delete $MM_ARGS{BUILD_REQUIRES}}} if $eumm_version < 6.55_01; delete $MM_ARGS{CONFIGURE_REQUIRES} if $eumm_version < 6.51_03; ExtUtils::MakeMaker::WriteMakefile(%MM_ARGS); ## END BOILERPLATE ########################################################### Catalyst-Devel-1.42/share/000755 000000 000000 00000000000 13726667227 015504 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/myapp.psgi.tt000644 000000 000000 00000000172 13722476343 020135 0ustar00rootwheel000000 000000 use strict; use warnings; use [% name %]; my $app = [% name %]->apply_default_middlewares([% name %]->psgi_app); $app; Catalyst-Devel-1.42/share/t/000755 000000 000000 00000000000 13726667227 015747 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/script/000755 000000 000000 00000000000 13726667227 017010 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/Changes.tt000644 000000 000000 00000000214 13722476343 017413 0ustar00rootwheel000000 000000 This file documents the revision history for Perl extension [% name %]. 0.01 [% time %] - initial revision, generated by Catalyst Catalyst-Devel-1.42/share/root/000755 000000 000000 00000000000 13726667227 016467 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/lib/000755 000000 000000 00000000000 13726667227 016252 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/README.tt000644 000000 000000 00000000076 13722476343 017006 0ustar00rootwheel000000 000000 Run script/[% appprefix %]_server.pl to test the application. Catalyst-Devel-1.42/share/Makefile.PL.tt000644 000000 000000 00000001642 13722476343 020100 0ustar00rootwheel000000 000000 [% startperl %] # IMPORTANT: if you delete this file your app will not work as # expected. You have been warned. use lib '.'; use inc::Module::Install 1.02; use Module::Install::Catalyst; # Complain loudly if you don't have # Catalyst::Devel installed or haven't said # 'make dist' to create a standalone tarball. name '[% dir %]'; all_from '[% path %]'; requires 'Catalyst::Runtime' => '[% catalyst_version %]'; requires 'Catalyst::Plugin::ConfigLoader'; requires 'Catalyst::Plugin::Static::Simple'; requires 'Catalyst::Action::RenderView'; requires 'Moose'; requires 'namespace::autoclean'; requires 'Config::General'; # This should reflect the config file format you've chosen # See Catalyst::Plugin::ConfigLoader for supported formats test_requires 'Test::More' => '0.88'; catalyst; install_script glob('script/*.pl'); auto_install; WriteAll; Catalyst-Devel-1.42/share/myapp.conf.tt000644 000000 000000 00000000222 13722476343 020114 0ustar00rootwheel000000 000000 # rename this file to [% name |lower %].yml and put a ':' after 'name' if # you want to use YAML like in old versions of Catalyst name [% name %] Catalyst-Devel-1.42/share/lib/Helper/000755 000000 000000 00000000000 13726667227 017471 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/lib/MyApp/000755 000000 000000 00000000000 13726667227 017300 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/lib/MyApp.pm.tt000644 000000 000000 00000003442 13722476343 020260 0ustar00rootwheel000000 000000 package [% name %]; use Moose; use namespace::autoclean; use Catalyst::Runtime 5.80; # Set flags and add plugins for the application. # # Note that ORDERING IS IMPORTANT here as plugins are initialized in order, # therefore you almost certainly want to keep ConfigLoader at the head of the # list if you're using it. # # -Debug: activates the debug mode for very useful log messages # ConfigLoader: will load the configuration from a Config::General file in the # application's home directory # Static::Simple: will serve static files from the application's root # directory use Catalyst qw/ -Debug ConfigLoader Static::Simple /; extends 'Catalyst'; our $VERSION = '0.01'; # Configure the application. # # Note that settings in [% appprefix %].conf (or other external # configuration file that you set up manually) take precedence # over this when using ConfigLoader. Thus configuration # details given here can function as a default configuration, # with an external configuration file acting as an override for # local deployment. __PACKAGE__->config( name => '[% name %]', # Disable deprecated behavior needed by old applications disable_component_resolution_regex_fallback => 1, enable_catalyst_header => 1, # Send X-Catalyst header encoding => 'UTF-8', # Setup request decoding and response encoding ); # Start the application __PACKAGE__->setup(); =encoding utf8 =head1 NAME [% name %] - Catalyst based application =head1 SYNOPSIS script/[% appprefix %]_server.pl =head1 DESCRIPTION [enter your description here] =head1 SEE ALSO L<[% rootname %]>, L =head1 AUTHOR [% author %] =head1 LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut 1; Catalyst-Devel-1.42/share/lib/MyApp/Controller/000755 000000 000000 00000000000 13726667227 021423 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/lib/MyApp/Controller/Root.pm.tt000644 000000 000000 00000002037 13722476343 023325 0ustar00rootwheel000000 000000 package [% rootname %]; use Moose; use namespace::autoclean; BEGIN { extends 'Catalyst::Controller' } # # Sets the actions in this controller to be registered with no prefix # so they function identically to actions created in MyApp.pm # __PACKAGE__->config(namespace => ''); =encoding utf-8 =head1 NAME [% rootname %] - Root Controller for [% name %] =head1 DESCRIPTION [enter your description here] =head1 METHODS =head2 index The root page (/) =cut sub index :Path :Args(0) { my ( $self, $c ) = @_; # Hello World $c->response->body( $c->welcome_message ); } =head2 default Standard 404 error page =cut sub default :Path { my ( $self, $c ) = @_; $c->response->body( 'Page not found' ); $c->response->status(404); } =head2 end Attempt to render a view, if needed. =cut sub end : ActionClass('RenderView') {} =head1 AUTHOR [% author %] =head1 LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut __PACKAGE__->meta->make_immutable; 1; Catalyst-Devel-1.42/share/lib/Helper/compclass.pm.tt000644 000000 000000 00000001311 13722476343 022426 0ustar00rootwheel000000 000000 package [% class %]; use Moose; use namespace::autoclean; [% IF long_type == 'Controller' %]BEGIN { [% END %]extends 'Catalyst::[% long_type %]';[% IF long_type == 'Controller' %] }[% END %] =head1 NAME [% class %] - Catalyst [% long_type %] =head1 DESCRIPTION Catalyst [% long_type %]. [% IF long_type == 'Controller' %] =head1 METHODS =cut =head2 index =cut sub index :Path :Args(0) { my ( $self, $c ) = @_; $c->response->body('Matched [% class %] in [%name%].'); } [% END %] =encoding utf8 =head1 AUTHOR [%author%] =head1 LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut __PACKAGE__->meta->make_immutable; 1; Catalyst-Devel-1.42/share/root/favicon.ico.bin000644 000000 000000 00000004767 13722476343 021366 0ustar00rootwheel000000 000000 h& hŽ( Ú††âRRÖÒÒú**Æ¢¢êjjÞZZÖ**öæ’’òJJæ**Ö²²îîîþ‚‚úzzöÞªªêRR掎î>>Î::ÖúúþŽŽâVVÖææú¦¦ò~~Þöººö~~úÒVVæↆæNNÞÚÚö**Φ¦êbbæ**þîššòNNâ**Þ²²öööþŠŠú~~ò®®ê>>Ò::Þþþþ~~âÞVVê5555555555555555555555555555705555555555555$55555555555#25751)++555$ ("**8/55552'2 " "-5555555555&$,4 555555555535555555555%55555555555555.55555555555555/555555555555555555555555555$!5555555555555  5555555555555555555(  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãÿßÿ‹‹úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿQQÔÿLLÜÿSSæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûþÿ¸¸õÿ††æÿ££èÿ¯¯ëÿÿÿÿÿãÿßÿ€€øÿûûþÿÿÿÿÿååûÿòÿ**öÿ**ÿÿúÿššòÿ˜˜ðÿøøþÿÿÿÿÿÿÿÿÿÿÿÿÿUUÕÿLLÜÿKKäÿ““ðÿ¦¦òÿ``äÿâÿïÿõÿïÿUUêÿ÷÷þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¯ëÿ¥¥éÿ¯¯ëÿïïýÿÒÒùÿÒÿØÿâÿæÿâÿ**Þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ**Íÿ99×ÿLLàÿLLâÿ99Ýÿ**ÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝÿ<<Ïÿ‡‡ãÿ‡‡äÿ<<ÓÿàÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿååøÿÝÿ**Çÿ))Çÿ88ÔÿÚÚ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹¹õÿ°°ôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõþÿïÿííüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿhhÝÿÝÿyy÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXXÖÿLLÜÿVVæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²²ìÿ©©êÿ²²ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ555555555555550555555555555p Catalyst-Devel-1.42/share/root/static/000755 000000 000000 00000000000 13726667227 017756 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/root/static/images/000755 000000 000000 00000000000 13726667227 021223 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/share/root/static/images/btn_120x50_built.png.bin000644 000000 000000 00000007362 13722476343 025402 0ustar00rootwheel000000 000000 ‰PNG  IHDRx2 yïêgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<PLTEÑÓÏ‹Š‰ôôó¤¢ÕÕÓÚÚÕ³‹þÞÞÜ¡¡ Ë0/ßàÞääâqqpÌŒŒûûûÚùùùuqlÉÿɦ¦ÎÏÎü87ùED>>>æçæ¶WVêêèÓÌËéæä®¯­ÍÎËœ™ê©¨áâàüôóþÉËǼ|{×ÙÕÿÿÿË““ôôôÝVUñëè丶ÙÚØ––•é[ZÓÓÓûýúWWW²²²×feÓuuëxwâäâ仹µâãâÕ×ÓÕ…„ìíë©©©Òº¸Ì³²ÊÆÅûûù‚}x```ññðÅÅÅäåã¾¾»êìéä<<õ××èèæÊÊÉʯ®SLFÞßܱ±°Î}|ÁÁÀ}~}ñó¸ØØ×ÈœõWVæèæôkkš™—ggg´µ´ý('ν¼ØÖÓÕ¬ª»¬«:2*ÊWVãÍÌNNNàààc]Wòìii«©¦ôwwÒÓÑîîîÛÞÛÏÐÌÚÜÙÐľfdÙCBíÍÌ­­©CCCíÜ܇‚}ÄÄÂàÝÝóóñäæâÞÛÚýûúéFFÝÞÛááÞ’‘Žîîìgb\jjjD=6¼¼¼ÞÞÚëÕÔëêêÚÚÚ|xtÏÊÊÄ”“ìììåÖÕµ´±åÄÃîñìÍb`¹·´ŠÐÒÐìÆÅýýû.&OIBÓÒϾ:9òòñ³°Øö ÑÑÏþ¯°¯Ì¸·®®­÷÷÷ËÌÉÛÜÚZTNÇÈÄsssææä»»º·¸¶¯¯­oke¬¬«²µ²ÊNM³²¯¦¦£ÄÿyuoÂÄÁäæärngÙÜØ××Ö˜–‘âàßõÄÄmgaMG@žŸ"ÚÛØÚÛÙÛÛÙÛÛØùù÷ñóñÚÚØÜÜÚÿÿýÜÜÛÜÜÙÜÝÛýÿýÝÝÛ÷ù÷ÚÚÙýýýô÷óóñðìîìÿýýÛÚØG?9ýÿÿùúùÿýÿÜÝÚÝÝÚ÷÷ùýýÿ½»¹ù÷÷±²±÷ôòæåäëãâ㄃àÜÛÛÚÙÓon÷áà嘘óå++òôòÑÉÈÕÚÆÂÝÜÛ÷ùùìîîÖÑÏçÈÆ·rqÿÿÿdŒ*ùtRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS÷% kIDATxÚìXkTSWNh¨Mškx¡bBZ. D(¢XÀ@A­¥ }@UQ *!mQÊô-T|L-Q(:Š¥-u”B¸„·¨(}ÚªÖ>œ5ãÔÙû$HèÃάeù5ß½gŸ½¿ýóÝGÂÊ‚uãwPœÌ~®M|㶃õ;}vás쀥 ÝÚ&Ö¸ÖM˜qÔÀYÄËXÇžPã¥UmÉ#>“2=¨lV¶ÍOðT^Ú¢Žn™î62qÆ…maSNl‰L(¨ÈËÛØ1aÆy…¼ÕžÃ~€È—«§Õÿ!Æl·_bafä3 hì7\q©Ííö¡0à¦1›ÝÖ|tˆÓ¦aQ”ðõ'?''§ëj$kǪ@ÁX#­Ì4›ÔŽ­IÊk^˜}ªE"¦ ´’Ã8e½¢S4-ÑBÿ#±8¢ö=ì,@p‡Dì›BŒy…Ó›Ršb|÷ÀS`U?ýôÌÐq˜ùÓÌjlA“•˪ÅMN=_µ§‰ÎÚ {ïÎeY÷TgÕìÞMÓ5 ¹,˜rYU4ý—Úê,º³¬S5H£q-KÒ„ÆŠuGvÆ$ÇKT*GÅáL9øîãc}<ôÝ=‚49c`“|†œf(a«"äœf•4]Eh•Ê·†Îâ€üYìûªTñ*t›ÑDsŒfþ4Uùb¤”bGiþÝÃzG)#…‘‘2Œ´Œ¦Ë¤ b@ö“ ;µ›É-U‘í³4ý ȧ!ɪ<kÀøI©”¢r“¬d% ý>á›ý“ö¿Þ«Ñ<ò`Ú’ÇöO‡õŸh¶Ã¡ÑlßqMo솒{x<¯{#w;ølán/ªýáZlÑ¡ÑpÐ4ûY:Ks¨¯°¦m;Yl‚Th¼”7ó±5Äáõû¿ÿnÝwqß7ž£Ëægët>|‚ ]¶Î^^ƒv:ÊÏ~˜¦u:þIx}º£`ÌçÁ÷ÑeŸ§΢'ëNdó?æü "÷ñáŸn㠔ǜ¾±ZÄÍ™·æ_—¬o¼æ} ~š„øŽ Èa'Aìw¬D€Q€Q[/”@ Ò’ |ò1°¦•tK¤ Ò¢$0nz}Þ<✮NOOw÷òг÷Kúmì¤{¥{y©áÆè‡ÏovÇ{À/Ö+éê*4PîYçñk£N‡^ºÚKÝßKíž à¨V'ÓÖü0nŒx1îåà0cí,ŠØŠØØµuvÆuóÂ+._};ÖãZ±›a;ú½Øãàšµ>-±‰`DÇöC¬©ÂVd …‹œë%ø‚ð»¸Ó£"$þË•¬KçÇ]Y;ËeÖÚ+®—õgõz½×«þ«FmWù_™4ëòÙm®/¿¦GœÍƒÐ¦ƒL6?OOèõdò懽–§? Âéõ(ÇÏðàO”º0Žþµ¼ôx|Ü’#]fù¿êÿ„ËŽèÎeÅÑ—]æî˜‹Ï`ÒŒ'6í;ã]·êß?Ì]å¿iÇÅg:—u"Š£á(&E4©‹ñ$Xvæ ËÎßϤì‡N —¦hXB–{иmaüüàmÛ\¯<à0$ É7-wõÞàõªÿ›††äC;\ê®îó^åêê:÷²ÜDC0ÉäX@‰aÒ¯`-VÐw€]†à•|€ TÛ ÿÊÂ%™ø'³,(³¶ÖSÕ)2כ͢Ï z»º.ŸûÔr—¹ÎfÑW+&­¨`Æ +Þ0›ÍëÍE"³ùâÅÏ` Ô˜ÿi€.ä"H 6çÔ°Qn¾X?€àˆd` ¯–ßP¸-}§¼Vååèìì¼Ë90j±÷]wy/F"*ï:×§fÔ-ÿ6p+»£¢wzkváPGíû!P K[ˆÚ×ÊÙ y¢3¦ˆrÞd`«3¤ËlÆ7n$5®ËMµœ;ÝwºÏÒ×g9m±XdZ.È ûüôiËbòÎ]î“]ÖòñiKß9Ð~Þ'#ê>qj¹B*æË>™ìci9E¶±@ë‚åc2[,},–s羄ûr3Ç~ÌN•Ý .äCþ·ßèÊå …¬\A)ÊyrU®¤xJE¹, B!v‘’'Sˆ#xõlJ!^òÙ™c?}nm¼uÕ-eĘ­X¤Q1¦”å`†°r…B!Æ”²ÿÉXö”íQÿ–1wR®xI¡ˆoJ¬°+ãÉd‹""°|)âçÆœ[ß·¢®Îu±ìö`ß8ãÙò[«¿½]¶2™ûìÌçFƒŠfO$2ÊF#‚xŠ CR@¡òæ}â+Nʲ÷Ÿ¨þo’Pl,fI]ÆoçuòÑhÌ»3òãf¤.d<®Ÿ"ŽÇˆàFìAã6Ñ’;òBŒ0se;œÜô‰‚&iç?`¦tÊ€S°û¥F³ç¾ªàqÃí"E W!ja—Xãxbýê°Õx[ªÇ׆§â8ŸàËÚ`{! Ãç¶Á¹ëRL]Ç™2jÔà_' rõ›g:¹5O $`¬BE&dÃ,^ 3šG+(8*E ²Ñ´¨l´|ë«éJ8(àH±þ~7Ÿ_°`ËüÏ-š‰‹-C´çÌZ­Öl†‰²…æ½ÚLó¦Ý‰vjͽ™§Ñi3ÃO#D³böœPkFȼÎíË‘b™á‰c€8¼zÈ7cÏU†2T® …[D§áôU«fVbÈc*é¼ÝË€ë¡Õ…VÂÑê§¥X;oÓ䯯Ér]‹N—6›fÌÐË“§Êwëtrè6¹-…éS4©]‚$rz¨Ð=Õf£ƒÜ¦[ŠbÊf[#A÷l:„vÛä6›ü<Ü<à§üý[ŠÔê_ÔÇnÍëí=tº¯ï Ë¾GÕ@ô½b´ÔbE»¬bd-££‰­»PºÚЬjõy„&©Õx$Ž¢‹Ôb),+SËãÄq $C 4_ÿwþ¾SPóÙˆ±þäâ—~"¡”Êu(:¥•éHL¦ˆÅ)(Lu ö“5‘bôÉ ’Ü/ œ‚è$d–µ•¢,tÓ[¨*™²+¨…úbÄôªìåPX‹¾ÍUUUUå (™Â®wØí‹C¦Ÿ‹¢e2Ê¡§(½žÒ+,z‡ÂN%1¯t©4 ÷!.½5ÔÛ{PîcÉ@+_xX èüusâ0n|¼ñòUÝø>ÒøÒÌÆÆ™¹=Äm<+IÓÍfÕ† {è«IšÅŸñ èU‚<θþ°°ê¤½J«ëøŸøG€VyȾ oFIEND®B`‚ Catalyst-Devel-1.42/share/root/static/images/btn_120x50_powered.png.bin000644 000000 000000 00000007426 13722476343 025731 0ustar00rootwheel000000 000000 ‰PNG  IHDRx2 yïêgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<PLTEääâÑÓÏôôóÓÖÑÚÚÕÞÞÜqqp²²²¶ŠˆþË0/ßàÞ££¡ÌŒŒÚûûûøøøÎÏÎæçæêêèÉÿʧ¦uqlü87ùED>>>¶WVœ™‹‹‹ÓÌËëæä®¯­ÍÎËꩨüôóôôô––•þÉËǺwv×ÙÕáâàÿÿÿË““ÝVUñëè丶¡ ŸÙÚØé[ZÓÓÓÕÖÓûýúWWW×feÓuuëxwz{zäñóîâä⻹µÕ…„âãâìíë©©©Òº¸Ì³²ÊÆÅ~zèèæ```ÊÊÉäåãÁÁÀ¾¾»êìéä<<õ××ʯ®ÅÅÅññðSLF±±¯Î}|ûûùØØ×Ëœ›õWVºº¹æèæôkkš™—ggg´µ´ý('ν¼ØÖÓÕ¬ªÞßÝ»¬«:2*ÊWVãÍÌNNNàààc]Wòìii«©¦ôwwóóñîîîÒÓÑÚÜÙÛÞÛÏÐÌÐÄÂííì¾fdÙCBíÍÌ­­©CCC÷÷÷íÜÜ…€{ÄÄÂàÝÝááÞÞÛÚýûúéFF’‘Žîîìgb\Š…jjjD=6¼¼¼ÞÞÚÝÞÛëÕÔëêêÚÚÚ}xsÏÊÊÄ”“åÖÕµ´±åÄÄ…„îñìÍb`òòò¹·´ŠÐÒÐìÆÅýýû.&OIBÛÜÚÓÒϾ:9³°Øö äæãÑÑÏþ̸·¯¯¯ËÌÉZTNÇÈÄsssèæä‰…€»»º·¸¶¯¯­oke¬¬«³³²ÊNM§¦¢ÄÿyuoÂÄÁrngÙÜØ××Ö˜–‘óôòâàßõÄÄmgaMG@žŸ"ÚÛØÚÛÙÛÛÙÛÛØùù÷ñóñÚÚØÿÿýÜÜÚÜÜÛÜÝÛÜÜÙ÷ù÷ýÿýÚÚÙÝÝÛýýýô÷óóññìîìG?9ÛÚØýÿÿÿýýÿýÿÜÝÚÝÝÚù÷÷÷÷ùõõõýýÿ½»¹ëãâùùùæåä㄃¿¿¼÷ôòÛÚÙàÜÛÓonå++÷áà嘘À¡ŸÑÉÈÖÑÏóìîîÕ÷ùùÚÆÂçÈÆÿÿÿHØä6tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS÷% IDATxÚìX}X“åï²&­A G l£`2PAppI8”…  ¡I¤PÆÇ© 4 *É« 1ñã$Ãz2Ì";Ê;ÆÜÆ·¨he”hu*Ës<çxîçÝч^續¿Îý¾Ïïùýîßý<÷û±é.X7ï€ÜxÏ—Ûx7ï:Xwè{¿ìé;ß½m|5îTú» ’ÄIé«=ÇÕ8Ö³-¾ð`ÌÁçS=BËÆÑØ÷ñ¶y“½¤W6ÉÇ=ܹãg\Ü9Yº)fQaU^Þzmô¸ç­ð b¢¢vy„–ü!Æžî¿ÆüŒ˜çã€Áª+mîwž·Œ=w´µ™†ƒqÚ4R”.Ú4Ù)ÀÉÉéºÌ%ÉÒ±(ˆ`4Ž’fšUjCÔLÔ2?~ĸxR¼óo æú Ø:d;ßMH“Z¨ãÕ-¬G\±LÖ‘ìŠ×AéøzY)‹Â:èpÖÕ®½ò蘾͖–Œôó£¿e¼^(eIY¬)Àb!DHIä´:­¸¾‰!À[IKnå"\.WጨPpÕ>\n Fµ‹5y ;bö‘G •ED°‚m³…¿‰ÉK„w@²V«e+ZµZ~²69ÈA«ÝÁÕjƒªI‚ÆW… |O”Ö”ìà»…ûlŒ§9r~5‡s}q¡5ûe熩a5L9;SÃ5|J[ê;¬5 ¤†q’ÄQ;̨¨á’°Ô'Scc|d¯£cf&†åd€i‰S¦£5·phg2J ²ó0EQ¥›¤¶0Ê7ÄŒ6…%! ÇLä¾ÕQÊQ†µ*ã$±²ÿóJeWW?Ž®®Ê.ä?ÏZZI8†ìB þ‹/¾@¿²Ÿ´úÉÖEÌ$T´åLˆaÊ1¬Ä’ #«ì2Px,Ÿ£ê‚ï}ãV³¹³Ó܉¸—$)ׯ§tî}u®9@:Ö`¶ÉŠN³2˜;‹(*¸È@Ç? ÏN$y€¢Â«Ìää1Z³YÏ·1>*é6w›ÍÝÝÝÝO,"ÿj8­ðšyðcÔÝÌS·3#ÅèŽ2¡,2¢ ¢ QU%ò(rr€3`”TaÈ®´”Líú¾¾Q…kqƒ”8[ãæ8¾*_"èÐw,Y\X0kæÌYN3zMÖuttèu:4HÐcBБØaåVGwt”mßNu´3\7ѹU-°5ÎÈ8~¼ôxâ=S#ý§>蟰víÃ^³–ˆ?‹ÌY€h4bˆÅL0Š Œ¤)¶H ŒÆ>t^š2¥Ï"ûXÜGZ}¤$ŠD>!lîX¶:ãp#AäÔûn<¹ÿ~7Þyççü`‘D"ÖuäruÀ ‘™F`4¦Ÿ¼sA|_bÁO+>xzáO‡àõ³dß`“LÖ‚­¾aⱦk¬„_-Eä/£ô“Hâ˜.IT Þ…ñ|¶ÿT^Ì«1±ÑÁÁè VÞ÷ô¬uøéŒ£QPFÓe#(‡c1{шtü÷˜[Ú®#´/Òôë{èdm?†50^#ÀnößÀ8žzò‡Eߘxà­.¥ò‰?/YüÔ‰c°ösåVJåÖ­ˆX»¾¥c<¶àu¯wÜ ŸMŽ[Kk±?®%v“„Réx˜¦ß{‘ÎRîÝE®°6h«2r=v’ÄÃ8v’ÿS+‡·þáêÿ‘ðÃXã™êlN¶Z-ä¨áKø°¨³…j!^^£;ád?FÓj5ç$>7ê#0æp@p„êìóôcYôõ§ÙœOÀlù”‘ …œO'=Î M}*à{‹EÂ̹+ÿý÷º•cWÖ±X8ñ»€¼ãrš>ÏŠÀ~Iu,Y$ "°u,«)¤uéäÉ/`±´2Ý:ÓE£²”7¿5w.ã0+M–––æÜÔ”`ë›ú é¤5¥55Épcôcç7:c§óä‹õz𬆤mÄ%G²Q–†^š¬IÖA~“Ì9 ð ”ÉâiËN#ŒµÑ¯&¼6ÓWÍt©’WÉå«êmŒëçU]¾V'wq©B«Jî²ÛÑÊÁ5 fkä.™0¢åýˆµ5¤U… Z¹é!w!%|÷bò]ÜéRãwcç%\]5Ãuƪ«n—ËÏ•——ÿéÀå#¶Ë¯NœqùÜ n¯½YNp.¡1R¬2aÀðÙ°ÔÍ{]àµkoo81´ÍµþZµ÷r77·Ù—}&@40“ÏR $aé·XK*ô'`—¼’ˆ‚¨­ðùvqˆâã›e¡—¤ºÇPb0 Ùƒèíæ¶tö³K]gs{z †o—M\VòȺuë–½ý€ÁÐÓs©ÄpÉ0l0\ºô%– FÚcø—R4Ðé!µ!§ö%ÈKÈ&DÓÃHzzò4ÌGÝÃÞ¯ÐH¸ÉÜü:ßÍ I^è}ï½Þ ‚Ê»ÞíÙéõK ÙŒbw799d7Ô›“I‡,¹úDˆ K[A$W·J6#ÏäXÉÜÝÉ CZ¹HçXoÞdkW秘.žé=Ókêí51™L"¤¦ "d_9cZȼsׇDÀš>;cê½íW½"FÝËK©` x`ؽ"Ñg‚ 1³ ­ ¦Ï˜Ùdê½`2]¼ÈÆŽ½Cù£?‚SD·ƒ+ó!ÿÛït‡Øl¶¨‚-fW ‰ÄRq”]!òfGóÀ&JƒDl^tЧ˜ÍK„<8cô§Ïí7/¿­±ˆ1öd'²Eb1c,–VÀŒ`‡Øl6´PúŠþ'cѳÖGý{ÆbÜI;ŠÍŽb¼Å<¶Õ¬(hÈW”Mʨè_Knküвúz·…¢»ƒê1ÆÁ>·Wÿx·lE"çàŒ—GŒCKƒÇée#ÆÑ¡“Øãßbé­¿úÄ…Í?”eßñ¨þoºwgIDATxÚ¬• PWÇ#B‚¨OƒŠZDPÖ#ADÖ È)ЦV‘R«VÅâÈ%­8j‰Ù6Ù$&˜ƒD¢xâ­ãÑP{X¥ÒÚj[Úé´Õb«µvzÐ÷6¡â˜;Èïû}ÿï½ÿ$ÙÍ>V¹/*b9±åOË—˜±'¢ï÷¹ñ˜ˆöœ×7¶Y}l<%bËï/ìØêWðÔÆ?Q¶Î|?88ø{ò.c¤EIÄÑ!Þém$±“ˆÓjãˆ8&ƒ)££…•)¢îOü}ÊúiÀêgJå>é#ÑD4Éö¶ 4 Æ>ÉÎj´±Iu‚M¢…Õoz;+BU¶ ÷÷÷ÿ°¾þµº²'ì]ìŠî&…iì6ÆžÎh•º ¯1ïxB_¥×O˜ðÛø·®Áê5D¯‡bU-ªëõJ6XN„+Ù0âÀª·8D)[©ìîH«­rßóǸu55juÍ®+Ž ¸R]ýE5Ã!µúP BPH)J¿’Â_áOéá ·¨õ”Bª@Ýu)£¹Ö{ÛBB’/5á7n÷c0]²‹a÷»%OO¾M¸­Gæ‰ö»ã]âÚ±sLÚìÎüäüüä_X^ú­ËÆ;:>Îìê*-Õhfº\®x籡nHazú¥ôÂÂtw¡Û=tærͼ )}­k·#Ï^%_øS~rrrçh¬ Ïj—Édrùy¿W½°n7jj’Ÿ2AÖL2“Iά1Éù‰P…±I&Kä'¢h\€.{äò•|´J.› çÌY¾y3ŽßÀ›7z¡›qͱ8Ž3ã» Ãæâ†uâkùk±æN!†à8ÆÇ:1,bËšay.äó±¹ßB¯v«:Œ3mÔ¨A¿Ž4øæwÏwssÁ<.—›ÉÍÌ„c )³ ΂K“à æ!LÊLIÜ2°  ,O€ÂîZ´närD¬ˆ;/.ZôÆüO–,™o Öœ7j4£^J@ÏxPSb¼\Ô4‚F‘w°ä(8jD1üixàti¸˜ÍÓ0†ûo±–%挆ü8èËáÎÁ£½Œ=_Ïà`¢Jï,H­R @¯¶Vu¢DÄ"Ûv.̦`õÞ?×+o]16ŠZÝàÑÏW·¤&<ª®¨< Qy0o RÁª!IÞ>CQGP‚NSá㦛ÓAÓfÔ fÚ!¶Ñ6’^ünè§#f|î°Ñ´•4[­f|7;švXiZLÚ V›Íl¶Š sAªXL[ 4m0ÐÒl°’6z#4«ïˆb? ¯¾3$((ôɇf1XùÒãj úKïú2.ÿ·<Ùxù¾côvóQ»:«¥eVo¯qØ ¥¢cӦŽôUnô¦XàÔ˜>ej`8cìŽØ.êS¶G¸cmúªœ>$gUºö_þc|§äA\IEND®B`‚ Catalyst-Devel-1.42/share/root/static/images/btn_120x50_built_shadow.png.bin000644 000000 000000 00000007141 13722476343 026742 0ustar00rootwheel000000 000000 ‰PNG  IHDRx2 yïêgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<PLTEºtr²²²‹Š‰ãä⮯­ÑÓÏÚÜÙôôó¤¢ÔÕÓqrqQQQÚÚÕ¡¡ ³‹þûûûË0/ßàÞÌŒŒÚæçæuqlÉÿÍÏÍɦ¦ü87ùED>>>¶WVÓÌËéæäÞßÜÍÎËꩨœ™áâàôôôöööüôóþÕÖÓÉËÇ×ÙÕË““ÝVUñëè丶ÙÚØé[ZÓÓÓééébbbûýúÏÏÏâãâ×feÓuuëxwâäâäññ𻹵Յ„ìíë©©©Òº¸Ì³²ÊÆÅÂÁÀ}}}ûûù‚}xÅÅÅÊÊÈäå㿽»êìéä<<õ××èèåʯ®SLFÞßݱ±¯––•È~}ØØ×ñóî¾¾¾¹º¸ÈœõWVæèæôkkš™—ý('ν¼ØÖÓÕ¬ªµµ´»¬«:2*ÊWVàààüüüãÍÌêêêNNNd_Yòìii«©¦ôwwîîîÒÓÑÏÐÌÞÞÞÐÄÂÙCBíÍ̬¬ªCCCíÜÜêê臂}ÄÄÂàÝÝóóñÞÛÚýûúéFFÛÞÛááÞ”‘Œlllîîìgb\ìììD=6ÞÞÚÚÚÚ[[[ÝÞÜëÕÔìêé|xtòòòÏÊÊÄ”“åÖÕ¶´±åÄÃîñìÈba¹·´‹ÑÑÑêÆÅýýû.&OIBÓÒϾ:9³°Øö þ̸·ËÌÉYSLÇÈÄææä»»º·¸¶¯¯­oke³´²ÊNM¦¦£ÄÿxuqÂÄÁäæãrng××Ö˜–‘âàßÝÝÝõÄÄmgaMG@žŸÿÿÿ"øøøùùùÚÛØÚÛÙÛÛÙÛÛØùù÷ñóñÚÚØÜÜÚÿÿýÜÜÙÜÜÛÜÝÛÝÝÛýÿý÷ù÷þþþÚÚÙùùø¼¼¼øùøô÷óóñðìîìÿýýÛÚØG?9ýÿÿùúùÿýÿÜÝÚÝÝÚù÷÷÷÷÷½»¹ýýýòôòÿþþ÷ôòæåä÷ùùàÜÛÛÚÙXVT`ZTÀÀÀÓonå++ÖÑÏ㄃óÑÉÈ÷áàëãâ¾¾»å˜˜ìîîÕÚÆÂO+¹ æIDATxÚ¼X}\“åÞ‡ƒ¶X¶Fø›€À™c¯ˆCÁB‚˜ˆh‘@0Q 5ƒ_R–¨'qr …ÈŽ²×1·|‹Š®’ðä)£´RçÜ÷»!Ї?<\ÏûÞÏ}_÷õ<×û±ùsд‚âÆk-ÒaíýíÞíFÁkŒ¤Åî-“k,uç¤ÕkÄÑÜ´,Ƥ/®jÉ;yè•U3ߪšDã´À–… ²«Ûãå3Ý­“g\Ð6ýøöÈ„¼Ìœœücÿ'ãž¡_#§€»ÎcÐY®žymè¾aœq1Ãý·<ùJû ¾}µÅýþ¡ é®1ƒÑÒP?â”)X%|;ÝÙÏÙÙùúܹ‰¶ŽM‚±8FÚ˜)vé8z´¦RnCàˆÝxVw‘Ëï òú:°uöËp¹Ÿ%6¼f7vÉj`.¥pÕ6-ý˜Ê<ž”¥€¯E5Ùöyé(Ù´´©ilíÕ¥úã¶´eØÏ´˲ò}dL“*0™BeùÍÎë®o§àí¤-·s¡”>T&·Z­r9uX© J åÅ¢±šê††2Ù£Æ=>Yù>¿‹é)>ÿx'"Šcâà°6CY”ÉãX¹I<LÑP7s¬vÿ]c~Öÿ7Pòù׬;nË~Ýù5tœcåè`Æ‘£ãXsø¢* ø'ÙjuXùüåê»Æ›²êͪM^Ë7©¼l`¹d)Î^›°R!³ RÕrШT›° ´Pêà–uw½ðô OlYÌIªƒ\Eµ:¯å*é8ãD¢¤óKUIgç™30ΜQüçuP— G‘g þ«¯¾‚¾ª[@«:}œ>68ö¹ØŒñT%L6§¡…ãù—”qDðä3n6›;:Ìfêè0'_¿žÜÑñÎäf$att؃yLhŸÍ§ànVåÔs8šSÌOqú(–½¨bèGYŸí0› ÂqÆGÄíæv³¹½½ÝÁ¡ý™üWÃyGð!¨íÔ€¦v3Ì”´Ý¦G:üìÙ³áüð¾³áá}÷A„&ÄØ¡Ìð³ápÚŽöv“f¼1»µU¯oímmmý.r…ß¡Ÿóòò’ýV nÕZ{ ƒzèôXZMp0±¨³·õ;œ 1EE8µz{ÇX  ˆ˜ñÆu1BE®XÒfhK ÉËó q~Òcº¾­­Í oÓCƒ&zŒmvŽbõx¢¸­mgE.jk¥:pݨE¹]-™`¼¡±±¨±ñ¡_Óf4®ˆÛ¼ùq„ŸGH á@&êÀÄd‚“ ¨`"LH†6‰ƒÉÔK˜Ó¦õÚdD/¶z±DE´‰äñÆ×"ÂfÊŒ‹äSéä4åñ þgÀ\þ{X@’ßÇÇ/"m øµ`̉x'îÝÙà0{ãÿ¹™±™±±kÆ×,ϼyûãØÂÂÌ·c¡[¸ ¶#Å×ômði‰-ô#2¶bu¶2!ml,\äÌØÂ·±M~ÿ9ì€ßÅ=…™¡1ô@wñ¸ç¸ÎÙxÃíféùÒÒRÏ÷ü׎ڮõ¿1uÎÍ󯺽û~)â|„Ú0%d¥a sJ©¥¥ldr†½ŸSz„ÿ.-E9~”¸€}J© —¾Ÿ“s$æâ¾(ÒuŽÿ{þ/ºî’Ÿ^Y|Z~ÓuÞ®yø ¦Î~qkå9ïšµ\™·Öë®'NŸ;½ò4¢X£˜*äT]Œ…•çÎA±ò\ñðLv^9 ôJÁ$‡%ÔòB —1k†¼úªÛ'D€ÑÖÕnÞ[üoßöÿ`ëÀÀ•Y»\knWz¯uss›wSä¢G˜DŽ", Ä0é7°+è;Â.ðJ>Eªí}ãˆá0–^qmƒTí!®ì6º¡nˆÞnn«ç½¼Úu¯»ÛØ÷Íš©kf=±eË–5ÆîîËCÆË}:£ñò塾!¬!í6þËØ ]Èu@mÌ®f Üxy¨;ÀuS’îîé†@Ú,—†ûâü~µ˜Å âñx{yAQ˼~Ø{ÙóAÈEy׸½<»fõ/{w@±7ˆ´Ô;¢° cnTå• xXÚ DTe³xä^<„]ÅÛdP3Ò•j0æÉ}Ô#Œ·²r“-†»†»,]]–a‹Å¢½Ðe±\ÒB6<yH*PÛg¹4>8y8öt™ýOº2"fäéÉÂ"!_n7~^äb`«' ìMeCvã«('sîd!S>ôüèØz†­ºS“o¸ç¿ ÌÑ„ÜÆî IEND®B`‚ Catalyst-Devel-1.42/share/root/static/images/btn_88x31_built.png.bin000644 000000 000000 00000004725 13722476343 025336 0ustar00rootwheel000000 000000 ‰PNG  IHDRXTúÒgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<PLTEÊÓOOœœ›¶ggøø÷ÔzzÎÏÎãßßÙ””‚‚‚û“““§KKmmmôÚÚý((ã³²¤¥¤å¬¬ý 80)–“êââúZZƇ†Ü..êêêññââ|}|¹º¹ZZZú¡¢ Ùƒƒö¶µgggáÃÃñïïÅÆÅÂÃÁŽŠ†vql²±®ôttßßßÍÍËÚÚÚÜÜÜݺºéééîêê§¥¢ÚÚÙýII6.'ЇƒæææŒˆø||SSS²²²rrrE=7àààRKEµ¶µgb]ŽŽÑÑЮ¬©ªª©àßßç\\™•“ãÚ½¼»ìììêßàÞþùùêÙÙØØÖÕê,,ËËÊÄÅÄÔÓÒ‚}y¹¸¶ÉÈǾ¿½ÅÄÂIB;ööõÑ¢£¡{vqc]XÖÔÔ®¯­žš—…}ÏÏÎÄÃÁììëlfa£ŸœÂÀ¿þÁÁããâââáÖ×ÕÚÒÒMF@ÇÈÇ»¼»½»¹ê ÿÿÿFFFþþþýýýüüüîîîúúúõõõøøøöööÔÕÔÕÕÔôôôùùùòòòóóòýüýäääðððóóóîîí\\\üýüûûûððïñññäåäüýýïï”íîîÔÔÔòóòüüýýýüîïîéêéêééýüü÷÷÷ö÷öXXXÕÔÔ“ZZYíîí^WQÕÖÕùùøÙÚÙèèçÕÕÕÚØØðñ𧨦ª§¤ù ZSM}xsÑÏÎêêéòóóóòòïïîääã   £¤¢YZYåääååäåååÀ¾¼ÿÅÅÓÔÓÌõöõÐÑÏîíîOHB¯°®ñòñÞÞÝüâãþžŸôóóßÛÛߢ¢ç??ÿêêõ66úúùà‚þëëëÿþþóððôõôÝÝÝóòñLLL¥¢ŸÙÚÚ××ר¨§á úûúåÒÑêàßãÌÌù§§êÏη¸¶ÜÜÛÆÆÅîrröííί®÷÷öñêéÆÇÆöè諬«ýþý_YSßÓÓß××ñðð¶³²Õ££Õ©¨÷ø÷Ø­­YZZáááøÇÇÿÿÿ³l"tRNSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS÷%NIDATxÚ¬– PWÇc„VÐèóWM‚舒ˆ´¢iE,<ªDiE”˜² HL ˆŠà…÷xöP´×´µ6Žô²­mµµÚÚ{j©ýÞ&T3µƒüÞõ}ÿï½ÿlŽÝYÖ=¿¹Â{ËŸ˜ø±„DÄu»±}øuÁËi3$ìn6ŽþÃ/=C·„.ylcn¨¼±¯‡„„|I&Ê»J(×kÌ‘°ÓGŽLOO?Áá\½³ª]=Œo¿³þÂÄ}Î ¨ÞùÿÁ–pãúU$µ©—Çôì9šÞÔU­sFÖ3Æò§ÕÊQ(ʯþPþ¬ìŒâ!üh°ÏRÁ‘{_+êà ‹ÅRtsðmÆÈ‚“N("$Åf_SJ6K¢,–(I“GAÊèxcñ>yÇßg—®vb¯[Pý@§Û¥~e„$BÉóµ"<@ãíã±{[xJ%îžo¬¸ê3Î,¾UÜ80 àÏÚÚ[Ô²âÎñ¶ðŠ:šÖ‚xbog´bS¢ÏXp¤c,5ÇŒùmt¯³W z¥0A,­Âu£Qw24HýThƒn»n{hî¤Ô³ÜÐÓ<(:fþ ´ªRÏŸq¤ÇT^^VV¾åÚ»£¯UT¼QÁ°·¬lo9¦ S¢¦(#|¤’€’Ê3)3R%êÜpW3Zó*Ÿñ…ÔÔÌä»=zMRmaØzìØV•ÊÛÀ›omè”y£žèæ3Q°ñÐÞ 321ç¾gùè±2…lk{3¹½=/Ï`ˆmnŽ®><Ôd%%-HÊÊJòdyÓÎ9ÇXű¾7ûºF£Ñj·i{¼èƒu·qwc£vw%ÈP«ÔTVj™=•ÚQ ¨Wj41¢mƒ xÙ¦Õ.á]ZÍ 0f˯[G’B²iÝg;Õ$$±CH ÄLr AOkVˆVM™2‚XC’„ˆÈ$!)#5Ay )‰ˆ™ŸÂ¹ër–¾ž;qȾ¿ŽîÛïÒçÏtpiú,>ŸŸÌON†±!$N·Yº`<ÌhVÐød1óóÑäéùhñdVóWàpÏ•³ž8øíssçnœýÞüù³!𲱟á”Õ`0X­°ä¢|u!×úûÄ64 ƒU°'÷ :hÅ1|5t /±S+BÖÓpîtœ•“: ø®ï7«û ó1âTM4Cõášhø‰pƒ¯r@5“åH!N¨Áq:ŸKäK¢«Š®£Õ/ÈYíë'´´LP™ZM¦¬AÁ˜aý/N˜¤Úa2© ;T2´þHŸ qí2$Sá¡EçµP‚ b‡i!J@Z‡c¥ w˜ÚáP9*0¾7<îÉððÖR½þ#ýÑÛSG÷ŸÖçbØ=P}-´·£v)²WáU€¤ö([oGv½þ„Æéõ„˜@ñ¥z) ªªôGsÁ8u󜊡ZXø×ß,®ûqЈpjYW?”PFÍj/FTM6’RRiʦ2 ¯£âÑ~ªN,E?¢¨ýRÀi,¾Aâ¦ÙÛhÚ†›ÙF»NÚ©¤ç½ÝçÃASÞr;iÚ¥´¹\63<›Ýn7M»]4­P:Í.§Ófs)Ì3Q¼BA»Ì4m6Óf¥ÍìR:é4æ–®•G>ÄåWû÷)|$9héó«‘!?'Þã–G/^îÇ÷?/Omi™ZØE|ÆÓÒt~ŠîµkçuÑW—61>46²[tÜû©—w+õÿ/…ÝÁ? ‘|À °M™IEND®B`‚ Catalyst-Devel-1.42/share/root/static/images/catalyst_logo.png.bin000644 000000 000000 00000032616 13722476424 025345 0ustar00rootwheel000000 000000 ‰PNG  IHDR«ôÓî& gAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<PLTE‰†ƒµ–”èèçÃîmmâkkßCCÞMMãÚÙ|zyârrÙÙÙß22ääãÝȺ¹ööö¼¼»ß++ææåÁ¿¾ââáÑÑÑllkäääß<<µ´³â¯¯®èçæÚ˜—Ü<;:œœš·„ƒÙ§¦Ù»¹ÖÖÖÞÞÝÚƒƒììëÞÕÔß ¸§¥ÎÎÍêêéÞYYààßèæå¥£¡Þccæåäß$$çáàßzztnkLLKÞÞÜÙØ×ððïàààÉÉÈ””“ÑÎÌÇÅÄâáàÑÏÏYYY§ žÝŽÜÜÛÜÂÀ˧¦ÔÔÔñîí° ŸÄXX¸´³áÉÈÉ|{ÔÔÒÜÛÚÛÍÌÖÖÔêèçÜÚÙÞ²±ãßßÝ ÉIHÈÈÆÇ‹ŠããâîîíîííÌ76èãâîëëôôóš•’ßÆhf²°¯ªª¨ÍÌËÚ Ÿª§¦×ÑÏ®ªªÎ•“ÓÀ¿ÜÇÆVPKÌÉÉѱ°•‘®¬«GB=b_\™™—Ì,+àÜÜååäÖ*)ççæÒ33¹¹¸Ô"!ÕééèÇÝÝÜ×;:ááàÙ/&ßßÞÛÛÚÔnmÿÿÿË@?ÕÕÔØ¦¦¤ÓÓÒÆÆÅ··¶êéé——•ÓÈÇrrqüüü"ýýýûûûóóóúúúùùùìììëëëòòòëëêííìñññôôôîîîòòñïïîññðøøøõõõóóòïïïõõôúùùýüüùøøôóóðððíííóòòïîîúúùùùøþþþýýüêêêñððõôôûúúëêêûûúüûû÷÷÷ýüýòññüüûööõøø÷òóòîïîVOIöõõíìëñòñúûúíîíüûüêëêóôóùøùüýüûúûëìëúùúúûûìíëôõôüýýûüûõôõ×××üüýïðïöõöø÷÷óòóûûüëêëòñòúúûñòò Ÿžßßß²²±ÐÐÏîíîËRPéééÞ77Ô//ññòòòóàøùøŽŽÝáÒѼqpôôõÜËËÊñðñÀ`^ÕÖÔçè縺C 2IDATxÚì} \WºoÛ\Á¦m»›EA1a 8±c .mƒ‰ÔÆÌ茂1jD!é¢C:‚3$ Æ–fiV‘EvQVãMb“’˽sgDnpîË3æÆ—ñ}ß9UÕÕ Î5o˜÷›¯ªN}çÛο¾:U]ÝÔ9~ûC‚b–ÊSï /I ’ãsÇ4VéÂÞKîŠDn;½ÝnŒQ¬-Ù‡÷¾{h!] –x/ƒX[2O‰’è­ÔÁL¿¾¨ðiX¹ëæ}¨eŒamiIöJ>ß”›{:—PÖà&&¹ÉZÆÖ½`ÉÂC‡¦©t¦TvÿÖ¡Cï[¿m3X[I‡’}2„ O<¹î?Ï'üG.ÉÉw÷,Ìm#X[ ‡““é‘&¬õš={Þ¼Ù³÷ú._€‚[É w.üªeL`mùRà–œlW¸®®ôšÇ£ÙË;ôúò÷’í Mfr¬-¹w—$'‡ç=‘@ z%øúú&@rçÝkCqÞÖä»Þ._¶üݱ¶äÞ~êPrjAAAíj„ç5ó‰ÚÚü¶ëÏÞóMhëÈEÿ­d›~äÌ ~j¨ú¤»É[œÑŽyó—­¬oû¬ ³ÙV[[ßÿY>;œœtè«¿;Ö¯’“’“å••ý÷!©¿¬,( õPœ$l~A%KòBow]Ëßk‹®È{a²  yοoÿÇ'OžY™°lÙ²µOö“ÎJÁ–ßJ>|÷ßsÿ®Xs?ß’”|«©««ÁËqž×ÙʂڟÃõåèèÛ²•”z»ººîûò®)±–XųefF¹.¹ë#0ËÛÏ+OÜc€’-áR-b­¬¥·|’v»ffò¼óFª¹ëýÔ#¥%>>jgç¼eŽŽ«»*k*¬—ó)¤.ggg™Ï]3Oï¤)-6°¶ô>œìóˆé`UUÕjÀu¶¿ò—O¾µxeu…vš…ãݧîšÞÇü‡¡¯½ï‚Íîi@»É¶›·gÅO÷»MÌ8f6íàñãÇ˼—÷tõ{9šÓ“]HU`£eb°Û-Ÿä§v›€åcÕÝrK¾u¿¨ì‘SélÇy¿tîú…TG¯~ÄêlÍ)l‹Oâ’Ïù`<¨ùOò±Ë#ô ó>ú(ocl$‚<²~ÔÐ@L>]Cui`ŠðÆ \ÚT™s×ZK¬Ž¿¤‰mÀ–˜ ¤)ØÔ>>; tV±æê‹¼}n=³jXUW–)°NÅyyÆ=-XS¡¬°j‚£ãÚ/œË–YÁ:/,gç*¶ ~ÔÛ>I]â%V`LkAŠ÷­[¥EEEÕ ¾êêjÆ‘…ÌÔ««D4*­¢€‘SËj"+;ÞSµÒqüò²žóÇ[,+«z]*ÛH›d޼º¨èϲ[nE•:kXõ]Rï[!¥¥¥G«1Ý1ÞqyCÕ†y–PǯüºO‘ÝJjtÖ[Ú_¥¬ÇŽ+=þˆé‹•ãÇÏÜx°ZÒ½<ë>EÇŽ]¼6•åçZbÍÍ/ÓÖF G}È›0~üÚæ²£Ë¬`]×lÝç(à¬×Ë ¬a-È ó¾õ^MMÍ‚˜òžw¿ìèÆ¢™–PŸÏ³îSZSóµÌÇÍ7 ÖÈkÍ‰ŠŠ¼GM'fÿ‹¼¢'-±ú~=ŒË±ŠŠ È«p¬E€õ½r jî*æ(Ûå±ãµÏ3f´y¦ž_{A'(*ú:Á² ”V[Æ\8«ax¬!ï555Å]¨.‚[Ü»Šª›/5]¨n.º@$ª«››aD ‹ ÍÕi†:h€.c0€H`yáØœñãgohnÎ6ƒ:óãÕIJº¹Z{ÒTkˆ,ÄmÈV^KJJšŽ>j*½¹l|èÚc¥q¯Ï 哯ãp.%%Ž”×B Gµ|uhè²GKV‡Ž7.3…”çR8 ¯­¶°~j0ø+-…•l¥ÇHIùRFpŒÇ-5cXZ?f´¢¾ нæV”[àeLjœœ8Ɖ2;öXœÁ¿Õn„¼~Zl0{ät&N:tsÁ±3OŽËf®Ýµv{LÊ?83¼G“ÁPz‚ËzAcãLëxå¡§0Ð?nÁ%­­×«­¼n l]ðSÑ/0­^q@5¶M ˆì=·ë¶°îÛ·o¨æ'¢Ÿ“´Î)¬…­pØÎë{[…C? Xš Œq±P(„¼Úº%%ÅSX^œ€âDù‰àR~â(?¨î”£J¨–PQ~ä Á l'À ù ¢‚ S^qÒ:ÇPŽÆà‹B@ê„„ECpþ Ø3%ed¬))ØŸÊËã(,)âXY"å±bbZN\ÊËyj¯ ´JKÊYwª¡fåü&a v#`•J¥)qàƒ6.nC\܇ÿa܇6ÄA Ò¦¸ À|ª¸¦ ¨Äذ߀+c,V@ š8tÁHq—‚ ¼ØÄXcœ¦ ðC}Cº|ØDØ î#åU£ÑHKþ&j‚…c­ÐHkP—‡ó6Ýï £Àª±Ùä°i½i8×öÄ:g¨Ä2z“!äL¶ÅÖ­[$î¿aáMÿBØù^.,ÄÝMÂ_¾Yÿ›X/A ŠýY%j‰ä²ÿåËÈàüIZ½¤øœ'¦4ÂF8¬ìã(p_Î ƒ¡j€Ôää´KìËÙGÓ&$ú@^<¬Ã‹OÂ@õ@zºl÷aß vOóK÷ &ðŒ4Ä+MåC–Š¡'&¬\>s-ÐÌ•÷ž¤²¹ËjÐûóû¬„dwêt¿t»Ý¶ò XÐ\¸ÏX!?0c"4J¥÷Ö. u0R£¯'XÌA~oš”qš†áb÷qûöɇÝyMKKóCW$~ÉmÈX㉅ÖŽw0§y¡Ðs/rï«ÑŽŒ¢6mak$Oóó“ÙÌë´Í*UšŸ™¯5Þ¼&L™³ŒÉå{Ÿ~z×ÓO¿òìP_@ƒâWæK…û†õ¶$­*Me7"VUšðáiÂ2{X‚öNŠwýkÔ,¥X¬TΊ xÿ9‰Pê…ª÷ÕžP«ReØM³‰õ6`Uy ð¼oÚ'S²Ò¹¾Aöö³eñQÊ´09ˆPSüÓ‹™³ú lkà7,ÖôeøYv^eèÏ&?ì²k¾z44 Ö–Ü? |Ô¿qrzqá-ò}öÀ¼½ÛûLÒkŠ·/ègM»ÒÔVnݣƪËz .)—Çó®ÓŒTWå¬íAÓÞ}Û+ ¾'àB ¥rUZºVÂËëÃcÏ*1žt‰š½„‰ Ïup°š=gµäV |d€uÊ ï:=³ùþš5¯¬׉¡wÞWš“X5?8R"Y7gå.‡‡Ç:)ÍäCÅÊG­¬2ó¼¶è½SëŠß¼ûÖ–ð¿®9àħ×ÞWŠñJ¥X)&H•Ê——Ïôšúöcýìo í*ËÀ]WÁjš×–Üüƒn2 )Ï@°Ëœõ É'³½½HÌÑË;¶û>kÿsß­ÿaú¯ñC,MÞÌ=Vð’©6û W[Ík‹®ëð{ˆõñß8½5ÅU¼ý'3zV)ŽA” Þž¾žëN¦€GK¶o®lF¬±2‘é÷ØÜüª§Rjê è­ÙʾoÌ¡:½³Ë+ôÍÞµ;­ÿÍK¬týߎñ³³ŒìÖøxE?³éüڙå5·@³G&³“¥þèäôx€øÕéN£ wÞúÝ¿ŒÛä³Ôç5¾ô»õï b›ËÓ1£º½¬×M°êºdIÕåö3NïD?'Þ5Êw_{á_Æ-õ¹µeZ´Ì.[ö¬¥ÅwëI’­ÒcMš/á?¨òŸ5˜G ÚeûbÍóª¯Ú|ذNùÓ[2¥òÅásùÚ33føø,Ý2%ÕEïš ÷‡ÁLJ5§Í1ÿz‘|„ïq̾o`5Íkþ‡ˆìììR§½äô—ˆ˜¨g­åò¥_Ï·éÖ{K»û®™ð F)Óåw#u—ïhõ®>þMJbùÕƒÕ`^³³ÍòZwK” X7¿äôF6`µr ½FÎxD|€kV_Œ*#•*æþ8§Q ~S–!Ç·)L“ÈÔf¥L0Íkåm¥y}ÁizDÆk'õY€ësÊUó(ÓæÓÊü5©¯9= gÕÏÏ/==X¦•kå¾ší¬«y^»Jo»V—Ýp˜#žôŽe /ø¥Í÷Kà ÿ\ë7ÛÂêüù¯®x¨¿KÍÇùà ®óI + ¨ ãÎÏ/ÀI`ú½ «1{ HeÓþïúÙ/Y6ñx”ŸruÌüt?ö!Þr‰ NJ'+"Àj°R6º{Á[ôYbö*zÀÁ«¼àãûuˆ4NÃbP?=xÒ—-º`‚õÏC²%p Ù.·àdú¦©b·ñ ¦sÉô{ùgNSÇÝO ¶J~™©£û¦ÏÒ7c¿šÀ N_4@·u0ÛJ^ ò ZìÙv·áéeýûóU±ÓfpO}Ï,•ýÕ/&ÈÉé%e°V«…ÆŽÝûe¥ÎxgÄ[ÀVx@~°?ÛNsèúø›P LÓ€Z†wE¬WÓÏ­²&÷dÈc]B «þjGzZ@ê–?~ó Ï|¿âv¬2=#;m€Ÿ–£`ëã—å²â ÛPÜ+î˾ý=íÚËÒÐ5ÆŽœÁ·w[‰ì‹XÍžœk¤boY6èúÀ kúöuóûâeSvoÛ¶95;+-xNÞÄ#2ä‘‘‘D)§Ö#ÓœœbÒ3e[_0¹;™ìœ¦Ï˜¯ÒFBV¼Eds‚µ‘ZqøíïÁæ‡åé.>àƒ!_¼ƒ `2Ë«®²thà®jì6'¿¡æÝ ö‹™•åêš)öÓΟù+7Î¥~¼0É2*üa/X{{ÜSxÌÆî¾{f«‹«ú¤gÁ1°í†zZÀÁq?€Í^?cD&8Ájž×Ü‚²BuFÒvZ2>‹|;oõëÄ+xŽïd|çò\°š ¥fwȨd㦒–ý\]¶¾ø´K@Nu2®ß¬Ø;+ºÁ1íþž¨¼0b:ôt ]ÅÏþ0ÃäµÕä>Ð e`Ë»ððpëóýzŒ4Ù>ôÀx‡;Ó§Bàß­p‰"?É™òd ~ÎeÜ‹ÖÏž? ŒO YñÍ· Ø©¤øîK§ÙeÍç~’§ 7MРí³Ûú TY¹ÖkYÂò{ë¨iV8â˜ߪÌ3È3KˆÒî`HÈSi[ØèT§7WL‹èÓûóCð,È ˜ÝY©U.’MÛºbÆ3oN_ßÂÞúݯW¬Ør0ö9ö×Fê™%Ûú6;y(´«b§}þßþж¹~rÐŽHk¸ÙóÀosó1±b‘[,A+K½½tÆ7Ó‰çú¿|?n›lqš\ÂþŽÇ> ±ßâ$’H¥ÝVrtA;´rÕs÷áérËÖ¥K—nݺ{Š,;@,çÿ|‹¿„)³·}Oq%„A¿ÅÑãÖséÁÕay¤$Šb½eöû$¶Ð]5Kä–Mô÷3Ã] =„¶ÌÌÐ÷æ]ªûSÆý…´‘0G­õgºÜ¿Õ—,\é8Smê¬ö ˜2î+4Fâ. ŽÂSóæ÷/Ž7nv¢©NãçÄ,Ó_0ý(WïÜ8¤G‰v†ßG’«2ã#ìdvvá®}érò×<|å\ãîNþFâNþhæî®q§–’„eʶ}?ÿv¼ïÊ €F‹T²îÞŽew {¬WtÇ¿´Ÿ°>ÙŠ—¦âáy¬–K4j¥Ý¶Ûð«‘ËÁi+f¼ rÿðÂJéooUå)aâ(oŠÿ*&דO°v„¿ò²¥Tgħný5t[lþ[ÐÙ^¾ Ëæ9üì;”L]¿Ú"ŒZœ½ûGªœ Jµjqø 2¾‰£ÂS·=»ž¤–o©qà1ùMzA“ÔOì‹êxòÒÀܹìkš¹äþô݇¹s5sÙ?ûkè[ ºk•÷£·Ž{aúTsúî_?¾Xm|«y‡B’¾(zÜ·ÄböëP•k%Ò''LX7W£Í€OŒéâxÄïs×8ð˜þþª¯,2¸§y‡Ç#ixïbðh®u1CîZñbÙæ­+~ý¸¹3´~ú 3Vì>ž¦±â©Ítyœœ‰©s@µnyècß®ÿÖÃk‚F®|õÕ‰Ôõ~<` ÷nâFŸ ˜cœK‡ä&XžÔi™ñvwo] å¸qxin½í;¨ÔJ¬›‹³·=CÀþjyäÊ;ìNŸ½N©u—J˜xÁ.±ìß6òËÊ5Þ÷)Vö6)³£¯£áûhLÁhSØfÙšF= ŽŒǯvÙáñ®}i‘îRæ6êÍDĽ&8 zhÏï6sh‹}K7¬Ÿý›‘¾x‡ 1èè Ü[t웄)žR+¯©I¥Œø OBà©.R-¡¯ô1¯²¯ òHåòø]|êÄ R´ #hî{—³‰p6,jõ¾O´))„”žR¤<ÀwSRP@I˜Bwžž'U<òB#}‰‘¨É’ø*¦'µð|€Ö–ñBtILĶo,Á†Ê1çsŽ› ›Xqèù§,Vᯪzroƒzòß-õdžÖLñ-O¾Ž2sÓn?k vyULàܺËΗÀÃj`°zr/?³¯R›¾Íûx÷¦°q·ÏÚ;Ô”¢ÎжÄj¯E/-“êÆÎ—`š×Á€€ÁòÊ4û²7ïuo##ä4B¡ùçTfùº÷R9ëH^Û}¶%Öé/£dp0`pÐn ûL`’×øA$ᾟ,ßÖ{Xbº\НÕ8±O5vÑk’WëÐPä€#›“C«”Áa”AujpA 9tä1Ý—C‡8ÐÁ9$Ž¢ØGâÐAP¾ü++XwI ‹µ†é°&y putB¨ÀÇ‚åPà5Œ*~ˆô’8D ©5å†8IÎñÎÁ=c…pñt+X}µ­99R×AWWר§þ³Jo™WÀ h÷¶c°v¦ÍÖÀV¬Ã†c‚pôŽ;jog‡®´ã £vê„<'&K+a[[™8­DÍD^øòd+X'E‚‘á¸Ú-iªÊ·šW òHF>Á¾ø: l¿Ž£¡ŠÉh'\¯ÃVÜZ\Œ :† ÇOQ`17ˆ¾ »ÞNqµ3¡(“‘Qí9Q¡–P×o×€…œÀIu+dn–yum5à3:ƬÝdÈY»«€Â`: ­Ý„#1Ž2€Î`bÊ8ˆŸ¶òÉ5˜ê4'D`«Á{0 •‘0ÙØÒÀ‚4ˆÌ@d¨2-©¿©XgÆ›*èÑ ÚI?X`}¥¯4ð½?++ëð4«yÌBjÿÔào0| ›áSò°ùŒäÿ)1  £ó7P', Œçõ)ãJÇY††2|ºÏõs¨wdrpp'h\÷ôYí¯®D[ìo› Ãð¦Uƒÿh)Xæ`Ö[£×<ò ‚ÆÅM^ní>@°Fßô'v/ãh\:^·øË…—qPnÉÍTÞ,¼|ó2Žïõ¿ ’ÿË—Küoâ0_tѼ—oBPŒƒz/MI!Ø–\!@eHyðŽÉW‰§_•€‡:+ ÑÞ"µzuÊŠŠŠò/)¡ƒ®!¤éèë›7Kˆˆ‘ò•<éMÆû&OlêDAU…Ò¨è¼ëêñpmqÉÍÀ(BñÞÂÿ²ö¹åJÔþfc³™±ÖMTÒd~Ýdeøx¯d$œ;«hâF‚3kÊ,—ÇCé·/Ç£ãµÐP¬wïj VŸ²ˆº° ‡Ù7Ñ…€l*Ù@ÅdO 2Ÿr !ú&cI¤°ž $^I¼O£ pk¦Ýw™4i×Ì]“dvJÈ$X½ûÜáÒ²òœ•E^̺Œs`ìé¤d2ºm s|¸Î1@vq´ ;`šhÙ6ð,ÙY 8îCÆ*©8\æâ"ËvloÂé ö(QI „]Öž_£ˆA õç¦q(/'Pâ6ÄÅ™Oã@çcØPnEAiµùOÓi!ŒSFl`£–Já›Ö]èOíÔÊn‘X]ÀÚ÷‚,òVVÓ‰òrvRˆdB‰òòqÜDÆ”dâ 2Ã3û5fœ¨NŽAf¦ˆš‚Ûó8Öž)ÁY7&Xÿ*Ò”W™þžÅåõ¯J|Ë­bÁœ,¡Ð¹jH…lŒÙ35¬ò '_@ÀhåŽD¡Å^äNËŠ¨DK^[¥|Ý¥kù­µ¼fƒŠ3gÎ4žY@6p†Æ8ƒÜÁÖØ¸€QÖu9Øž!®Ô‰xq#UÓàHc‚7•6ž¡Æ´ 1#É,ÑP‘éï¯Æ¼ö‘7ÜjŽs(pÁ)®È†5”S‰xŒŠŽQ;Μµ?ÆêÉz†uf#£³gQOžšJåŠhèÏVÞ×&yE^nk"ìÆ(ݸ1ï#Â4ÊG å5Ž]¤Þ}DT¬}ÎÐM­qʏiÑ Y¥‚´ÙÈ+U©TÕƒÙ´Y)iƒSb¥Á†”+5gô”¡‡Jm ×&òs ›yEÊÛ¸±¬¬ 6ºßHxÂ0<»£R225adÄô,“W*æÖ¬5 ¾ÑLLÂ1ÞRÅf^‘΂»áŽìÏ2õD2ˆC’ö ÎrVgÙQ¬¬3[œ=ËÞÈE?ûDˆÛþ‹eÆöÎ2X‡Ïky7õ£ãgÏ~ñßôxÙñ³8×5U ƒ aýEÀ4”~ñEžýÛ:N–K VäÏž=NCaŒ?P_gƒ—ÿb5=Kbÿ<¤мÒi˪Ht®ªêøèôÜUÀSAÕY_uœb½DÕäˆhûÇQOµ«ŽSÛªª?и€ÔÐã t‘6A ªRlc…¼’÷;˪HP–ŽË8ÖxY W¥™˜ØÊP8w 8®ËêH¨$ýiçó$—ä?ÂpÇ-ê7šräÜÕJ ˆ ‡ÍëÅÚeÄjôwV<h ªç8È9ïUÔ°öò-9ó›H½çy{è«Ø@<¬]«ÖF^ÃÈkÝ Vz \ÕÏzÓ»|—M†K"Çþç{ú»ö˜å•é©D“à ÙÉž!£)«ìo%Plå•ÁÚß+½ìÉ!þ !Õ6ÁÓtxwu3ÓߟsÄ,¯ým{Ê“ ¡<‰9/Ô{Q1yE$jyÅ·Ð呈žÕ#Þ™lSRo?Ó»úiÇÔ÷³l’@pŠ^HGõæÐÓ!ëïg°¨½½;Ùß^ôª¼‹úûÛ/ÒHõý2æ³Aðz?ê¡h'Plä5Œ¼†î\ÙÛ_Ù[yŠ÷qr¤½÷½¼™n–Ô_YÙ»ˆUWÖ3,{}Ëú{k)ÖÊ^$æ,ÙßÛ Ñ{I¹¼šK;ø14_ŒPÜm䕾†ÞÕ[I¨^Á»®++&úEbÄ^Í€{§é} ’qØYÉ=FQ=ñãENªGë-cÚ®4(fãâøy¥cºóÞSܵzdœ(¶M,†ÞþEû9¬1 îýÄlSee­ ÖzruQÑÈÆG‰¤v"Qí7£ë(òZÏ:Ô·oJ‚³ºg§`>¶€®·Û¢^ЦS•õ`§~'ÉÍóøÜ²SP¬Bµt2ïÕ3ÑvÒ$2µÛŠ‹ûìß)ZÀZ_ß.؉Tõ¤^Y?b^éà‰ÞzJ¢¾¶˜ZÂãÖÛODµ¬žlÿŠSõTH\jÙ}-+cNŠ ùS§ê9ª¬çS%»c°jl䕎è=…MŒÿuîãàN‘ø ( í€w(ø«ÄÍN}\OÌ) rb‘–ÄôÍú [POm* @¬ NÕC¼Où(6òJ‡Lôœ"ÿx‚\YJöÇ”ÿøc¬´Á8±;Àõ1áj™»Ãþ4ªÀ0{ð:Å,¬3Ý ‰ÔV^Ý‘* þ:eKÉ\åSN>^!Ž ØÊ+ƒµ–s©­%VPË+-¨ÖŠM-®môv÷ž‰a­¹_A-ß©‘¤Œ˜×z$lè^K‰E^K FK6Ö„±«åiˆÞùeTP`t0â­¥ óJ ŒW{ýI~Ûµ'éÆ Ožd FG”'Oš9œä*'kû½“BzùÞœ%ªMDlS%8KÝy•Iì HŒ“ù'É¿!…=¬µù¸}–_ûTO~†?CÖˆÑg'óA„ÆHàÿÙIbš‡‘_ŠüÓØZ”Ô261Ÿøì3ŒA˜ÿ B7‘ñ‚áÿCç·+ Næ3ht2ß(³¦ã™œ4³25ÇÃ0zÒ,>Ájë>àÎbýûSù¨ó:F°þƒåuØû»=žü÷ä|æŸüæ_EžV;XÖˆU¨™z¾Ñ‹+ŒQ8¡™¨gÍÈ â‰‘òJGíÔvt´}¨::n8WkÃí*Avã*H|ƒ¿ &¿£“úUÔ€øOùW¯^›ÏQÞ7È·åwä ,…†bhðê °ê¸ŠHÁþ"þwmwbp`ÁrU¯ïø\ßÖ¦ïÈoëÐwtàÿ(ÇDmú7:GÇç7n|Ø®¶ýé†ôŸw ]Õ_ý¼ }ntt|ÞòPê;Úmû*7ôWQ±?×ßÀ\\…&ô7ðÿ¶SƒHlÝ_éð›|b®· +"i‡Iµ£Ãš—õV´5Š`øß_5F¬£$e´þQQ´’_#Xݣʫ5RlÓës‰ GPÕ‰  ¿»©+“×k^z}„BÙT,¶†5D©Tæ2Zv*9Ñ(‹^Œ6zæ@"VP•=X#ý`ļεU©PÖ‰\²kŸŽѶDE$`UDL–)ÖhÁ]‘>Rᓨ ¨£Eˆ^¿N”¸M´­ÓG × ÍÛDpŽCtIEÖu"Aó¨óšbеÓ³“9M‘Š'}š²uŠˆ6½è½Îh…Ϲ¨Žë¯J@ÖP‡æ‚D}g¢hM§@Ñ'Â'± Ð5Ë99 Q„^Ò,Jîì”\ÖµÁ5 4t²Õaƒ6ò*Åy)múN åy(:qëLLté£E‹92Ebb¢(šéìlÃô¤¿VG+þ øŽX·é;w  ªÐßP eŽ"B&XêóKÅbèõ¿ïì„S­h8Ðök¿Çf±õh3¯d¨ZÇùkç;ÏŸÿýï;)ý«ºóç£EÉK;+BµÑŠh XÀ ªhŵ?í|bôï¯]ƒ Ø‚Z)H¼v-1´‰uJÅùóŠDtÉé„$îŽEˆÚ Kuê+º\½@äÓÙyþß¿vMßH †lä•`½¦CêÔéÎë®ÁÖy8`ÎC“¢X]µB±M§TÄ‚â‚:-Q¶×t‰ÑçÁ€ŸïLTŸ¬p'êÀ\—+HÄ8ÝŠÈf…(ä|»"ä|w„"R-SȰ!rþ<Áj+¯È@2=ZbvFR(rtpe,Æ"dwb¤ÎG$JNT,Ò£21ZG° —ŒH$:]‡ð¬ºÅXŸÝ×t‘ Ág:Å«çu»!†HÐM]tŠhFbŠJ yMa±G±2®{1`ên%&‹ˆhñYÌ(•X*A«¡rN4)cuºvàë”!‰>À뢇‰‰²ÆE­ÔåEDz-¬F“ׇ¡º:ÝO@ÿó¼þ¿£ó*cX‡l|ßzð”ס ¼ ÿÿËëÃ]øu?M^‡Z‘ôæáë,ynW§3ru¬¦ÎÌ¥Ž‘rj[·?²Õ•"’!ym¥XëêN×ÁöIi…ú„”D‡¢Ó:Q)±©O€ý„@Ãõ`‰yÝ'DKÃAÁ„ÖQÿOkrvç¿мžï>ýxäæž>MêÆör üÓuÝQ×€s¡/»Îil¤›4Ñ}캻ÉßÓ_Bå+ðEwÝ'ݘŒJ*hóU±‡ˆ:êNwãátynļþ­žŒÝudÍlÐPn.Fÿ›†@Ò]÷%4ž[‡Ðæ"×K±¢Øä4ëÆ@XBLØåv3`1#` žþCGœ>} _\¾¿ †?ë QŒ˜K¨› áY0—·A{p<Ä í4AÝÝMÝ»s!¨Æ9— Å OÜŠpøìu[y%lu¹c€Vƒß]rÆV[y½þ”WÚÊÇ”×?Æ ûþÀõ$máØ¢ò¤aóê³eŒaµ[Òdk~Y¡ŸwƘ‚š±3Äj^[ò«šÔ[¼e†±4,ìà‘{a™5¬8W¥*[à½ÄíïOIIK’–x'½§2Ž;7Áªë*Òfd ºL#à*Ha§I0Åš[PÖ$gâc€²²¢”ijþH^þÿÝÑw4a*±²o,Rœá§jtÎϵ‚µ%7ß¹´Iè. ¦U§« xi5b…›ß•רdhd(¬)r.ÐçZÇÚ¢ÓtU啎*Ê+s®Ì×ñ¡ò°b7Ðéó *Çäë)ª VÌ-<ŽéÆåP¤æXÇ6ýë?±þ#aý¿ û/Íx|SIEND®B`‚ Catalyst-Devel-1.42/share/root/static/images/btn_88x31_powered_shadow.png.bin000644 000000 000000 00000004400 13722476343 027217 0ustar00rootwheel000000 000000 ‰PNG  IHDRXTúÒgAMAÖØÔOX2tEXtSoftwareAdobe ImageReadyqÉe<PLTE¹º¹áááÊÓOO¶ggøø÷ÔzzãßßÙ””û§KKÊÊÊôÚÚrrrý((㳲嬬ý 80)êêêfff–“SSS|||ŽŽêââZZZúZZƇ†Ü..ñ”””ñââú¡¢ Ùƒƒö¶µáÃÃñï簾¥±±°ÅÆÅæææŽŠ†ÚÚÚvql³°®ôttßßßÍÍËÂÃÁݺºéééîêꥥ¢ÚÚÙýII6.'‰†„ÜÜ܉oooÏÏÏÑÑÑø||E=7½¾¼RKEµ¶µhb]ìì옘˜®¬©ªª©àßßç\\™•’ãÚœœ¼¼»ÙÙØêßàßþùøêØÖÕê,,ööõÿÅÅ‚}y¹¸·ÉÈÇÅÄÂIB;ÖÖÖÌÌÌÑ¢£¡{vqc]XÖÔÔ®¯­žš—…}ÏÐÎÅÅÄÄÃÂììëlfa£ŸœÂÀ¿þÁÁÆÆÆÖ×ÕÚÒÒMF@ÇÈÇ»»»½»¹KKKjjjê ÿÿÿFFFþþþýýýîîîüüüúúúöööøøøõõõÔÕÔÕÕÔùùùòòòôôôýüýäääûûûóóòîîíðððóóóüýüñññäåäððïïïïüýýÔÔÔœ˜”üüýíîîòóòýýüîïî÷÷÷ýüü\\\éêéêéé“ö÷öÕÔÔ^WQçççÙÙÙíîíùùøÕÖÕÕÕÕóòòÑÏΟœ™§§§ª§¤ååäúêêéZSMïïîÚØØòóóããâ÷÷ö£¤¢¢¢¢ðñðåääôôóååå}xsôóóÔÓÒί®À¿½îíîù§§ýþýPIC̨¨§êÏÎêàßÿþþ_YS¥¢Ÿüâãõ66þžŸßÓÓúúùØ­­ÛÛÛç??÷ø÷à‚þmmlëëëÝÝÝÞÞÝ·¸¶ÙÚÙ°°¯ôõôúûúá åÒÑãÌÌñòñóððóòñÆÆÅîrröíí´³²ÏÏÎñêéÿêêöè諬«ÐÑÏß××Õ££Õ©¨ß¢¢ñððßÛÛaaaÓÔÓøÇÇø÷÷Á%霅IDATxÚ¬• PWÇE¨€A}FÀxUD9‚Y9‚¦Ц…[­xP<¹´"„$,ä`r"ÈeP¼ñÂÛZi­ÕÞÚZCE{M[ÅŽm§¶Óïm‚âÈÔò{Ç÷½ÿûö?;ÙÍ>"¯' ‚‰à¼çƒèIŒßÂ÷á³ï÷¹ñXçÛÉo­›ÍJècãïMŸ pÕžx+ý¹‰[ânä½ïîîþ/î-·»ñiV‚¯¯oJJÊ©0ÿ+×8Nãooºó0þŠØ©ßÓxÛ÷ÿ“À:Í{­!©ün\›8`À:¿·HÚS¼cñÌBÙ#$‰ìûß óÞƒDbè¦þ'  XS&¶ÿ]ÐÅ7¦àÞ¨Œ›/ìHØ,oY"›ÉŠÜ)Æ:ˆ%Gdh`fIvZY3ñEþâ®;~Ìeõ´'a÷s¥rÏ#UÆfE˜8² –Œs“Pob³rehöˆ;ØË6p4¸ºôŠÃ¸³è1TQ›ë—/««OR‹»ÔNF0_ÁñçäBZ¨dó½q„ÁôíL¤pµ6Þar¢£/Ñë'NüsÂÀ»x÷n1 ×ƒXRuBÉQê« 6¿i1ÁWs”Jß$Ž=òÙÄI˜ A›ªÛC‡q M[V¦Ó•m¿úÇxWW׫¥¥?”2œÑéΔaŠ ‹uºsÕ”^§§ /v¡ŠŠ] a"U}N3¥Ûè¬kÆÑ›É×û3 œ.ÝÎ°ãØ±R©½?}½Y¸¹ÛÊží¶…ZÏG`ãacÿšÝ™–ýN?ýW7‘íí_‹œœZ[Õê «ÕZ{d˜ Ȉ‹»—‘g˰ن Gí֠óêV''¯=’lZ¡Hü5-::ºó>«|’är¹BѨèÿ¦ƒ~×›÷67+öV€ {òŠ SS¡¨h”ÃBQ!—G„GଠphT(–‡ã*…|6Ï™³tãF’¼AvlýJã;‚I’dÆ 28‰ËK¦s¹ÜN2}Uø*nG§ËM'In8·“Ë &…ܤØ^F Ãùs;À붘(õÊ6zôàß& róÛ—»¸)šÇãñD<‘ÆJ„P”(fÁÅÉ0£yXA“EQ(Š—ƒÂæå ¥a ¬å­Â•p!Þ?½¶`Á¶ù_,Z4;Û†¨ÏÕjµÑ!å„«³ß?ЍëQ½Úr<ûº`Ä9ü4!èhk,:ðjˆÚˆñ0\w8QL$E$~üÁˆÚ!cŒ;[ÊP{¤.N#ð]¯eVYÈcëpÞŽ.gAÈ‚õ²ÐZ„BëàÒÚ—ÄDÅÖMSZZ¦HµmZmÆH7̘¡ŸL™.Ý­ÕJ¡›¥B´^¤Ð$'!JñP ËŠÍ(V ¹Y»Å"…Ù¼Zˆ.›µí6KÍfé%1Am xÁϯ­D¥úQµïÁ¬qnnCg äéù¢ Sý¸-©œ\‰vU PeŽ!HP¹ eª*Q¥Ju ¡I*>>¶WVöööÓÌËœ™ëäâÍÎËꩨôôôÕÕÓÞßÜüôóþÉËÇ×ÙÕáâàË““ÝVUñëè丶ÙÚØé[ZÓÓÓz{zèèçbbbûýúÏÏÏ×feÓuuëxwäñóîâä⻹µâãâÕ…„ÂÁÀññðìíëÒº¸Ì³²ÊÆÅ©©©ÊÊÈ}yèèåäåã––•¿½»êìéä<<õ××ʯ®ÅÅÅSLF±±¯È~}ØØ×¾¾¾ûûùÈœõWVºº¹æèæôkkš™—ý('ν¼ØÖÓÕ¬ªÞàÞµµ´»¬«:2*êêêÊWVàààüüüãÍÌìììÞÞÞNNNîîîd_Yòìii«©¦ôwwóóñêêèÒÓÑÏÐÌÐÄÂÙCBíÍ̬¬ª……„CCCíÜÜ…€{ÄÄÂàÝÝááÞÞÛÚýûúéFFlll”‘Œîîìgb\Š…òòòD=6ÞÞÚÚÚÚ[[[ÛÞÛÝÞÜëÕÔìêé}xsÏÊÊÄ”“åÖÕµ´±åÄÃîñìÈba¹·´Ž‹ÑÑÑìÆÅýýû.&OIBÓÒϾ:9³°Øö äæãþ̸·ËÌÉYSLÇÈÄèæä‰…€»¼º·¸¶¯¯­oke³´²ÊNM¦¦£ÄÿxuqÂÄÁrng××Ö˜–‘óôòâàßÜÝÛõÄÄmgaMG@žŸÿÿÿ"øøøÚÛØùùùÚÛÙÛÛÙÛÛØùù÷ñóñÚÚØÿÿýÜÜÙýÿý÷ù÷þþþùùøÚÚÙ¼¼¼ô÷óøùøóññìîìÛÚØýÿÿÿýýG?9ÿýÿýýýõõõ÷÷÷½»¹ù÷÷ééé÷ùù嘘㄃ÿþþ÷ôòæåä÷áàÛÚÙàÜÛÚÆÂXVT`ZTÓonå++ÖÑÏóÀÀÀÑÉÈìîîúúù¾¾»ÕçÈÆ7ãÃ! ÞIDATxÚ¼X}\Såß¹ãÓÚhåEÑÁH6Š£¼ T˜n!/q‡ÈDóD£ Š(MËQÌüÔ-e‰z\x %|¹Êcn¼“¢ˮެ®•ÑÞû{ΆŽ^ôãûœç÷ü^¾Ïï{Îs†7Šþ(õz½M4¬Ø Ü¿ÜëUþºWRB¸oÛÄ ‹|±¬£:æ VVׄ 'Ô´–Ž=üjæœwj&P8+¼mYŠŸøÆö0IË_ûÄ —·ÅÌ8½=6¥4G¡(;÷' ÷Ú~ E9k­ßP0 6OªsÓöÐà"\äåû[„‹}5 ½{£Í÷á¡<é®°—W[óÑÉ0ÀNžŒ‚Š”ïgx{zzÞ û:ÕQq0áž½—td&;©.鱘tYÍá£NáÙ嬥œßAì­µ ëœËy˜§6¿îæ4Óž&qñ<]Gz~O‰3@×Ï™r0œë®ºº{{o<=®îÒÒá¡zI\¸SX\P&ÓÄ4Z´@£‰#Kiõ\{k;™€¼3éð¹h‰Ýn—pÀJ$vIe»Ý³²Øé´+ #¬9y#R›4:šÆî”å 32„€Ã0†¤ÃxvÌÎJƒa[ØƪDÌPžD(„DÒ©ŠÛ^±Pxà®0¥`²†ò¨(”[KÖžvx¿®Ü…3J0#Æá`ƆU$Ab6LÌîtò1#ÉÂŒ¶Ð̚آ½+œ_p”ªÉ Ì×8/àexVæ;|gNˆp4š|hŒðÄЮԶP,)[`¶I*hÁOªÌãcùaÐCä"œŠWŸ9£9 2¿D­ë’­v©k1j-%Ÿ¸5·a”0bù¡6‡cOs¦ƒcA\´…[æ"ÜJ‡´[·Ò¨Ô÷–˜¨B;ÖG¥Jã1Œ/mÇøKCmípí0$ ÍÏA,¬MáàRM<ácÌ.j•ÚÕÕåîÞõ\ úWÃs­_äawˆºÈ+,]TXI*Ì.éR¥}°€+³É¤}à÷Áp8_Ød°V…¬öXt®ÂüŽƒ¡£¿££ã»Ø•Á‡)--M ^i‚¸Ã`êè7  f2 ØÔaiBŽc"ÌþŽïÐjН¨@K‡©¿ÿÃ{a <ÞUøHgÑc‹H{çïf@¬qy\‘òd6A…¼½oÁBœkáq JÞ'hÉ.ãòDç‚§„úI.·¬òª$pÏ‘ÄI\nPæd$Ì*Ÿ“™yävÐ8:}ÛÊEã0ÍÍM‹J¨XB×¢&çÞª9p„ÈÞ½÷—ÐÂèÙµû÷DmC –’’7 âZm6QK¯û9W›…Ò€f-w 3 šöÞ^ÏcÂÉÀÙÌ8üÙK÷°è¥EŸùùA²·¡É_øÍB«ÛL>XðùÍ0wD ™f2ƒj‰l>Ð Q=ˆÉŒg2¡ÚŒD”·†SzùÍâÆ¾+À-ÀýÑ—Æa“‡À"€Á"°X; b§À)㟓‡½ÑbÆÞ§ä#í6 pß ˆõ@Ÿc'{÷qØÂÐ? ÂÏbÏÿ”òã¡é‡öœ©®~•/š>›ºª«`TWWUM ˆ2JL·àu—UUÎöªªŠZè÷’°½@o"ˆOß ²«Mtt‡µ“ªœ›««™H8”å¶g©ùÄO?ªÿ9ù§ñ‘ª\J®J%¤¨àÍTå UBxy *èt”’û A¨T”³ð¹Qa ¡*÷ ñL61Su:—r2WN“t¡rz¨%5œr³éÏÉ‘KÖýçûºuã…×ÕÑhpÁÿÐ;ÖÑÀ‡N´hè—ZGC–†¬ Z'ÐêÀj]:ùÛ°§•¬ÖѶ¡*4 ï¨F¸¨Ó£O³L¡&7¨ÕL”Q,‹ùP¡¾ÄÿªÕˆŽ>*´u’©Šaª?TÈã…S8¾Kc½ç‡|ò²÷.ÉùÅEç%s½îZˆÎ`ú¼—·V^ð¯_ó¿S ׄlÝõäù¢ çŸG(’À(" ¡‹Äâ  X|¡hœÉÎSç!½H°H` ¹½XÂy^á Ë¢^{Íçú“Sƒ[Wùøo¹v-䣭ƒƒ§Fvy×_«ô_ããã³pnÀ N%`J DfÜo`/Š >º Â+ù1Û‰€o¦ )„%šÐ©M"­³²Çl3›¶°þ>>«¾²Ê{!»§ÇÜ÷Íêé«g?¹yóæÕµ›Í==Wmæ«}F³ùêU[Ÿ Åàö˜ÿeî1ƒ-ÀØ\Xû&$À·õ  äzHJOB´>œ2›Ã÷ò -Ð2Ùé숈6›½‘¾Üÿ‘Gü—¿2vÿzŸWæÕ¯ú6b”öE°ÓÓ#ö{G:ªÂK¯<[[!‘^ÙÊÜ~ ÁÉHgïK‡dD+ÜÅZfK„¢Q¯w JÒ¬—‡»‡»­ÝÝÖa«Õª¿Ümµ^Òƒ7<run('[% name %]', 'FastCGI'); 1; =head1 NAME [% appprefix %]_fastcgi.pl - Catalyst FastCGI =head1 SYNOPSIS [% appprefix %]_fastcgi.pl [options] Options: -? --help display this help and exit -l --listen socket path to listen on (defaults to standard input) can be HOST:PORT, :PORT or a filesystem path -n --nproc specify number of processes to keep to serve requests (defaults to 1, requires --listen) -p --pidfile specify filename for pid file (requires --listen) -d --daemon daemonize (requires --listen) -M --manager specify alternate process manager (FCGI::ProcManager sub-class) or empty string to disable -e --keeperr send error messages to STDOUT, not to the webserver --proc_title Set the process title (if possible) =head1 DESCRIPTION Run a Catalyst application as FastCGI. =head1 AUTHORS Catalyst Contributors, see Catalyst.pm =head1 COPYRIGHT This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut Catalyst-Devel-1.42/share/script/myapp_test.pl.tt000644 000000 000000 00000001275 13722476343 022156 0ustar00rootwheel000000 000000 [% startperl %] use Catalyst::ScriptRunner; Catalyst::ScriptRunner->run('[% name %]', 'Test'); 1; =head1 NAME [% appprefix %]_test.pl - Catalyst Test =head1 SYNOPSIS [% appprefix %]_test.pl [options] uri Options: --help display this help and exits Examples: [% appprefix %]_test.pl http://localhost/some_action [% appprefix %]_test.pl /some_action See also: perldoc Catalyst::Manual perldoc Catalyst::Manual::Intro =head1 DESCRIPTION Run a Catalyst action from the command line. =head1 AUTHORS Catalyst Contributors, see Catalyst.pm =head1 COPYRIGHT This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut Catalyst-Devel-1.42/share/script/myapp_create.pl.tt000644 000000 000000 00000003316 13722476343 022440 0ustar00rootwheel000000 000000 [% startperl %] use strict; use warnings; use Catalyst::ScriptRunner; Catalyst::ScriptRunner->run('[% name %]', 'Create'); 1; =head1 NAME [% appprefix %]_create.pl - Create a new Catalyst Component =head1 SYNOPSIS [% appprefix %]_create.pl [options] model|view|controller name [helper] [options] Options: --force don't create a .new file where a file to be created exists --mechanize use Test::WWW::Mechanize::Catalyst for tests if available --help display this help and exits Examples: [% appprefix %]_create.pl controller My::Controller [% appprefix %]_create.pl --mechanize controller My::Controller [% appprefix %]_create.pl view My::View [% appprefix %]_create.pl view HTML TT [% appprefix %]_create.pl model My::Model [% appprefix %]_create.pl model SomeDB DBIC::Schema MyApp::Schema create=dynamic\ dbi:SQLite:/tmp/my.db [% appprefix %]_create.pl model AnotherDB DBIC::Schema MyApp::Schema create=static\ [Loader opts like db_schema, naming] dbi:Pg:dbname=foo root 4321 [connect_info opts like quote_char, name_sep] See also: perldoc Catalyst::Manual perldoc Catalyst::Manual::Intro perldoc Catalyst::Helper::Model::DBIC::Schema perldoc Catalyst::Model::DBIC::Schema perldoc Catalyst::View::TT =head1 DESCRIPTION Create a new Catalyst Component. Existing component files are not overwritten. If any of the component files to be created already exist the file will be written with a '.new' suffix. This behavior can be suppressed with the C<-force> option. =head1 AUTHORS Catalyst Contributors, see Catalyst.pm =head1 COPYRIGHT This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut Catalyst-Devel-1.42/share/script/myapp_server.pl.tt000644 000000 000000 00000003355 13722476504 022505 0ustar00rootwheel000000 000000 [% startperl %] BEGIN { $ENV{CATALYST_SCRIPT_GEN} = [% scriptgen %]; } use Catalyst::ScriptRunner; Catalyst::ScriptRunner->run('[% name %]', 'Server'); 1; =head1 NAME [% appprefix %]_server.pl - Catalyst Test Server =head1 SYNOPSIS [% appprefix %]_server.pl [options] -d --debug force debug mode -f --fork handle each request in a new process (defaults to false) -? --help display this help and exits -h --host host (defaults to all) -p --port port (defaults to 3000) -k --keepalive enable keep-alive connections -r --restart restart when files get modified (defaults to false) -rd --restart_delay delay between file checks (ignored if you have Linux::Inotify2 installed) -rr --restart_regex regex match files that trigger a restart when modified (defaults to '\.yml$|\.yaml$|\.conf|\.pm$') --restart_directory the directory to search for modified files, can be set multiple times (defaults to '[SCRIPT_DIR]/..') --follow_symlinks follow symlinks in search directories (defaults to false. this is a no-op on Win32) --background run the process in the background --pidfile specify filename for pid file See also: perldoc Catalyst::Manual perldoc Catalyst::Manual::Intro =head1 DESCRIPTION Run a Catalyst Testserver for this application. =head1 AUTHORS Catalyst Contributors, see Catalyst.pm =head1 COPYRIGHT This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut Catalyst-Devel-1.42/share/script/myapp_cgi.pl.tt000644 000000 000000 00000000701 13722476343 021732 0ustar00rootwheel000000 000000 [% startperl %] use Catalyst::ScriptRunner; Catalyst::ScriptRunner->run('[% name %]', 'CGI'); 1; =head1 NAME [% appprefix %]_cgi.pl - Catalyst CGI =head1 SYNOPSIS See L =head1 DESCRIPTION Run a Catalyst application as a CGI script. =head1 AUTHORS Catalyst Contributors, see Catalyst.pm =head1 COPYRIGHT This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut Catalyst-Devel-1.42/share/t/01app.t.tt000644 000000 000000 00000000250 13722476343 017471 0ustar00rootwheel000000 000000 [% startperl %] use strict; use warnings; use Test::More; use Catalyst::Test '[% name %]'; ok( request('/')->is_success, 'Request should succeed' ); done_testing(); Catalyst-Devel-1.42/share/t/comptest.tt000644 000000 000000 00000001135 13722476343 020147 0ustar00rootwheel000000 000000 use strict; use warnings; use Test::More; [% IF long_type == 'Controller' %][% IF mech %] unless (eval q{use Test::WWW::Mechanize::Catalyst 0.55; 1}) { plan skip_all => 'Test::WWW::Mechanize::Catalyst >= 0.55 required'; exit 0; } ok( my $mech = Test::WWW::Mechanize::Catalyst->new(catalyst_app => '[% app %]'), 'Created mech object' ); $mech->get_ok( 'http://localhost[% uri %]' ); [%- ELSE %] use Catalyst::Test '[% app %]'; use [% class %]; ok( request('[% uri %]')->is_success, 'Request should succeed' ); [%- END -%] [% ELSE %] BEGIN { use_ok '[% class %]' } [% END -%] done_testing(); Catalyst-Devel-1.42/share/t/03podcoverage.t.tt000644 000000 000000 00000000526 13722476343 021217 0ustar00rootwheel000000 000000 [% startperl %] use strict; use warnings; use Test::More; plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; eval "use Test::Pod::Coverage 1.04"; plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@; eval "use Pod::Coverage 0.20"; plan skip_all => 'Pod::Coverage 0.20 required' if $@; all_pod_coverage_ok(); Catalyst-Devel-1.42/share/t/02pod.t.tt000644 000000 000000 00000000350 13722476343 017475 0ustar00rootwheel000000 000000 [% startperl %] use strict; use warnings; use Test::More; plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; eval "use Test::Pod 1.14"; plan skip_all => 'Test::Pod 1.14 required' if $@; all_pod_files_ok(); Catalyst-Devel-1.42/maint/Makefile.PL.include000644 000000 000000 00000000315 13723720107 021065 0ustar00rootwheel000000 000000 BEGIN { -e 'Distar' or system("git clone https://github.com/p5sagit/Distar.git") } use lib 'Distar/lib'; use Distar; author 'sri - Sebastian Riedel '; manifest_include share => qr{.*}; 1; Catalyst-Devel-1.42/lib/Catalyst/000755 000000 000000 00000000000 13726667227 016734 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/lib/Module/000755 000000 000000 00000000000 13726667227 016375 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/lib/Module/Install/000755 000000 000000 00000000000 13726667227 020003 5ustar00rootwheel000000 000000 Catalyst-Devel-1.42/lib/Module/Install/Catalyst.pm000644 000000 000000 00000005135 13722476343 022122 0ustar00rootwheel000000 000000 package Module::Install::Catalyst; use strict; use base qw/ Module::Install::Base /; our @ISA; require Module::Install::Base; use File::Find; use FindBin; use File::Copy::Recursive; use File::Spec (); use Getopt::Long (); use Data::Dumper; my $SAFETY = 0; our @IGNORE = qw/Build Build.PL Changes MANIFEST META.yml Makefile.PL Makefile README _build blib lib script t inc .*\.svn \.git _darcs \.bzr \.hg debian build-stamp install-stamp configure-stamp/; =head1 NAME Module::Install::Catalyst - Module::Install extension for Catalyst =head1 SYNOPSIS use lib '.'; use inc::Module::Install; name 'MyApp'; all_from 'lib/MyApp.pm'; requires 'Catalyst::Runtime' => '5.7014'; catalyst_ignore('.*temp'); catalyst_ignore('.*tmp'); catalyst; WriteAll; =head1 DESCRIPTION L extension for Catalyst. =head1 METHODS =head2 catalyst Calls L. Should be the last catalyst* command called in C. =cut sub catalyst { my $self = shift; if($Module::Install::AUTHOR) { $self->include("File::Copy::Recursive"); } print <catalyst_files; print < and L). =cut sub catalyst_files { my $self = shift; chdir $FindBin::Bin; my @files; opendir CATDIR, '.'; CATFILES: for my $name ( readdir CATDIR ) { for my $ignore (@IGNORE) { next CATFILES if $name =~ /^$ignore$/; next CATFILES if $name !~ /\w/; } push @files, $name; } closedir CATDIR; my @path = split '-', $self->name; for my $orig (@files) { my $path = File::Spec->catdir( 'blib', 'lib', @path, $orig ); File::Copy::Recursive::rcopy( $orig, $path ); } } =head2 catalyst_ignore_all(\@ignore) This function replaces the built-in default ignore list with the given list. =cut sub catalyst_ignore_all { my ( $self, $ignore ) = @_; @IGNORE = @$ignore; } =head2 catalyst_ignore(@ignore) Add a regexp to the list of ignored patterns. Can be called multiple times. =cut sub catalyst_ignore { my ( $self, @ignore ) = @_; push @IGNORE, @ignore; } =head1 AUTHORS Catalyst Contributors, see Catalyst.pm =head1 LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut 1; Catalyst-Devel-1.42/lib/Catalyst/Helper.pm000644 000000 000000 00000051162 13726666775 020525 0ustar00rootwheel000000 000000 package Catalyst::Helper; use Moose; use Config; use File::Spec; use File::Spec::Unix; use File::Path; use FindBin; use IO::File; use POSIX 'strftime'; use Template; use Catalyst::Devel; use Catalyst::Utils; use Catalyst::Exception; use Path::Class qw/dir file/; use File::ShareDir qw/dist_dir/; use YAML::Tiny; use namespace::autoclean; with 'MooseX::Emulate::Class::Accessor::Fast'; our $VERSION = '1.42'; $VERSION =~ tr/_//d; my %cache; sub get_sharedir_file { my ($self, @filename) = @_; my $dist_dir; if (exists $ENV{CATALYST_DEVEL_SHAREDIR}) { $dist_dir = $ENV{CATALYST_DEVEL_SHAREDIR}; } elsif (-d "inc/.author" && -f "lib/Catalyst/Helper.pm" ) { # Can't use sharedir if we're in a checkout # this feels horrible, better ideas? $dist_dir = 'share'; } else { $dist_dir = dist_dir('Catalyst-Devel'); } my $file = file( $dist_dir, @filename); Carp::confess("Cannot find $file") unless -r $file; my $contents = $file->slurp(iomode => "<:raw"); return $contents; } # Do not touch this method, *EVER*, it is needed for back compat. sub get_file { my ( $self, $class, $file ) = @_; unless ( $cache{$class} ) { local $/; $cache{$class} = eval "package $class; "; } my $data = $cache{$class}; Carp::confess("Could not get data from __DATA__ segment for $class") unless $data; my @files = split /^__(.+)__\r?\n/m, $data; shift @files; while (@files) { my ( $name, $content ) = splice @files, 0, 2; return $content if $name eq $file; } return 0; } sub mk_app { my ( $self, $name ) = @_; # Needs to be here for PAR require Catalyst; if($name eq '.') { if(!-e 'META.yml') { system perl => 'Makefile.PL' and Catalyst::Exception->throw(message => q( Failed to run "perl Makefile.PL". )); } $name = YAML::Tiny->read('META.yml')->[0]->{'name'}; $name =~ s/-/::/g; $self->{dir} = '.'; } if ( $name =~ /[^\w:]/ || $name =~ /^\d/ || $name =~ /\b:\b|:{3,}/) { warn "Error: Invalid application name.\n"; return 0; } if(!defined $self->{'dir'}) { $self->{dir} = $name; $self->{dir} =~ s/\:\:/-/g; } $self->{name } = $name; $self->{script } = dir( $self->{dir}, 'script' ); $self->{appprefix } = Catalyst::Utils::appprefix($name); $self->{appenv } = Catalyst::Utils::class2env($name); $self->{startperl } = -r '/usr/bin/env' ? '#!/usr/bin/env perl' : "#!$Config{perlpath}"; $self->{scriptgen } = $Catalyst::Devel::CATALYST_SCRIPT_GEN; $self->{catalyst_version} = $Catalyst::VERSION; $self->{author } ||= $ENV{'AUTHOR'} || eval { @{ [ getpwuid($<) ] }[6] } || 'Catalyst developer'; my $gen_scripts = ( $self->{makefile} ) ? 0 : 1; my $gen_makefile = ( $self->{scripts} ) ? 0 : 1; my $gen_app = ( $self->{scripts} || $self->{makefile} ) ? 0 : 1; if ($gen_app) { for ( qw/ _mk_dirs _mk_config _mk_psgi _mk_appclass _mk_rootclass _mk_readme _mk_changes _mk_apptest _mk_podtest _mk_podcoveragetest _mk_images _mk_favicon/ ) { $self->$_; } } if ($gen_makefile) { $self->_mk_makefile; } if ($gen_scripts) { for ( qw/ _mk_cgi _mk_fastcgi _mk_server _mk_test _mk_create _mk_information / ) { $self->$_; } } return $self->{dir}; } ## not much of this can really be changed, mk_compclass must be left for ## backcompat sub mk_component { my $self = shift; my $app = shift; $self->{app} = $app; $self->{author} = $self->{author} = $ENV{'AUTHOR'} || eval { @{ [ getpwuid($<) ] }[6] } || 'A clever guy'; $self->{base} ||= dir( $FindBin::Bin, '..' ); unless ( $_[0] =~ /^(?:model|view|controller)$/i ) { my $helper = shift; my @args = @_; my $class = "Catalyst::Helper::$helper"; eval "require $class"; if ($@) { Catalyst::Exception->throw( message => qq/Couldn't load helper "$class", "$@"/ ); } if ( $class->can('mk_stuff') ) { return 1 unless $class->mk_stuff( $self, @args ); } } else { my $type = shift; my $name = shift || "Missing name for model/view/controller"; my $helper = shift; my @args = @_; return 0 if $name =~ /[^\w\:]/; $type = lc $type; $self->{long_type} = ucfirst $type; $type = 'M' if $type =~ /model/i; $type = 'V' if $type =~ /view/i; $type = 'C' if $type =~ /controller/i; my $appdir = dir( split /\:\:/, $app ); my $test_path = dir( $self->{base}, 'lib', $appdir, 'C' ); $type = $self->{long_type} unless -d $test_path; $self->{type} = $type; $self->{name} = $name; $self->{class} = "$app\::$type\::$name"; # Class my $path = dir( $self->{base}, 'lib', $appdir, $type ); my $file = $name; if ( $name =~ /\:/ ) { my @path = split /\:\:/, $name; $file = pop @path; $path = dir( $path, @path ); } $self->mk_dir($path); $file = file( $path, "$file.pm" ); $self->{file} = $file; # Test $self->{test_dir} = dir( $self->{base}, 't' ); $self->{test} = $self->next_test; # Helper if ($helper) { my $comp = $self->{long_type}; my $class = "Catalyst::Helper::$comp\::$helper"; eval "require $class"; if ($@) { Catalyst::Exception->throw( message => qq/Couldn't load helper "$class", "$@"/ ); } if ( $class->can('mk_compclass') ) { return 1 unless $class->mk_compclass( $self, @args ); } else { return 1 unless $self->_mk_compclass } if ( $class->can('mk_comptest') ) { $class->mk_comptest( $self, @args ); } else { $self->_mk_comptest } } # Fallback else { return 1 unless $self->_mk_compclass; $self->_mk_comptest; } } return 1; } sub mk_dir { my ( $self, $dir ) = @_; if ( -d $dir ) { print qq/ exists "$dir"\n/; return 0; } if ( mkpath [$dir] ) { print qq/created "$dir"\n/; return 1; } Catalyst::Exception->throw( message => qq/Couldn't create "$dir", "$!"/ ); } sub mk_file { my ( $self, $file, $content ) = @_; if ( -e $file && -s _ ) { print qq/ exists "$file"\n/; return 0 unless ( $self->{'.newfiles'} || $self->{scripts} || $self->{makefile} ); if ( $self->{'.newfiles'} ) { if ( my $f = IO::File->new("< $file") ) { my $oldcontent = join( '', (<$f>) ); return 0 if $content eq $oldcontent; } $file .= '.new'; } } if ( my $f = IO::File->new("> $file") ) { binmode $f; print $f $content; print qq/created "$file"\n/; return $file; } Catalyst::Exception->throw( message => qq/Couldn't create "$file", "$!"/ ); } sub next_test { my ( $self, $tname ) = @_; if ($tname) { $tname = "$tname.t" } else { my $name = $self->{name}; my $prefix = $name; $prefix =~ s/::/-/g; $prefix = $prefix; $tname = $prefix . '.t'; $self->{prefix} = $prefix; $prefix = lc $prefix; $prefix =~ s/-/\//g; $self->{uri} = "/$prefix"; } my $dir = $self->{test_dir}; my $type = lc $self->{type}; $self->mk_dir($dir); return file( $dir, "$type\_$tname" ); } # Do not touch this method, *EVER*, it is needed for back compat. ## addendum: we had to split this method so we could have backwards ## compatibility. otherwise, we'd have no way to pass stuff from __DATA__ sub render_file { my ( $self, $file, $path, $vars, $perms ) = @_; my $template = $self->get_file( ( caller(0) )[0], $file ); $self->render_file_contents($template, $path, $vars, $perms); } sub render_sharedir_file { my ( $self, $file, $path, $vars, $perms ) = @_; my $template = $self->get_sharedir_file( $file ); die("Cannot get template from $file for $self\n") unless $template; $self->render_file_contents($template, $path, $vars, $perms); } sub render_file_contents { my ( $self, $template, $path, $vars, $perms ) = @_; $vars ||= {}; my $t = Template->new; return 0 unless $template; my $output; $t->process( \$template, { %{$self}, %$vars }, \$output ) || Catalyst::Exception->throw( message => qq/Couldn't process "$template", / . $t->error() ); my $file = $self->mk_file( $path, $output ); chmod $perms, file($file) if defined $perms; return $file; } sub _mk_information { my $self = shift; print qq/Change to application directory and Run "perl Makefile.PL" to make sure your install is complete\n/; } sub _mk_dirs { my $self = shift; $self->mk_dir( $self->{dir} ); $self->mk_dir( $self->{script} ); $self->{lib} = dir( $self->{dir}, 'lib' ); $self->mk_dir( $self->{lib} ); $self->{root} = dir( $self->{dir}, 'root' ); $self->mk_dir( $self->{root} ); $self->{static} = dir( $self->{root}, 'static' ); $self->mk_dir( $self->{static} ); $self->{images} = dir( $self->{static}, 'images' ); $self->mk_dir( $self->{images} ); $self->{t} = dir( $self->{dir}, 't' ); $self->mk_dir( $self->{t} ); $self->{class} = dir( split( /\:\:/, $self->{name} ) ); $self->{mod} = dir( $self->{lib}, $self->{class} ); $self->mk_dir( $self->{mod} ); if ( $self->{short} ) { $self->{m} = dir( $self->{mod}, 'M' ); $self->mk_dir( $self->{m} ); $self->{v} = dir( $self->{mod}, 'V' ); $self->mk_dir( $self->{v} ); $self->{c} = dir( $self->{mod}, 'C' ); $self->mk_dir( $self->{c} ); } else { $self->{m} = dir( $self->{mod}, 'Model' ); $self->mk_dir( $self->{m} ); $self->{v} = dir( $self->{mod}, 'View' ); $self->mk_dir( $self->{v} ); $self->{c} = dir( $self->{mod}, 'Controller' ); $self->mk_dir( $self->{c} ); } my $name = $self->{name}; $self->{rootname} = $self->{short} ? "$name\::C::Root" : "$name\::Controller::Root"; $self->{base} = dir( $self->{dir} )->absolute; } sub _mk_appclass { my $self = shift; my $mod = $self->{mod}; $self->render_sharedir_file( file('lib', 'MyApp.pm.tt'), "$mod.pm" ); } sub _mk_rootclass { my $self = shift; $self->render_sharedir_file( file('lib', 'MyApp', 'Controller', 'Root.pm.tt'), file( $self->{c}, "Root.pm" ) ); } sub _mk_makefile { my $self = shift; $self->{path} = join('/', 'lib', split( '::', $self->{name} ) ); $self->{path} .= '.pm'; my $dir = $self->{dir}; $self->render_sharedir_file( 'Makefile.PL.tt', file($dir, "Makefile.PL") ); if ( $self->{makefile} ) { # deprecate the old Build.PL file when regenerating Makefile.PL $self->_deprecate_file( file( $self->{dir}, 'Build.PL' ) ); } } sub _mk_psgi { my $self = shift; my $dir = $self->{dir}; my $appprefix = $self->{appprefix}; $self->render_sharedir_file( 'myapp.psgi.tt', file( $dir, "$appprefix.psgi" ) ); } sub _mk_config { my $self = shift; my $dir = $self->{dir}; my $appprefix = $self->{appprefix}; $self->render_sharedir_file( 'myapp.conf.tt', file( $dir, "$appprefix.conf" ) ); } sub _mk_readme { my $self = shift; my $dir = $self->{dir}; $self->render_sharedir_file( 'README.tt', file($dir, "README") ); } sub _mk_changes { my $self = shift; my $dir = $self->{dir}; my $time = strftime('%Y-%m-%d %H:%M:%S', localtime time); $self->render_sharedir_file( 'Changes.tt', file($dir, "Changes"), { time => $time } ); } sub _mk_apptest { my $self = shift; my $t = $self->{t}; $self->render_sharedir_file( file('t', '01app.t.tt'), file($t, "01app.t") ); } sub _mk_podtest { my $self = shift; my $t = $self->{t}; $self->render_sharedir_file( file('t', '02pod.t.tt'), file($t, "02pod.t") ); } sub _mk_podcoveragetest { my $self = shift; my $t = $self->{t}; $self->render_sharedir_file( file('t', '03podcoverage.t.tt'), file($t, "03podcoverage.t") ); } sub _mk_cgi { my $self = shift; my $script = $self->{script}; my $appprefix = $self->{appprefix}; $self->render_sharedir_file( file('script', 'myapp_cgi.pl.tt'), file($script,"$appprefix\_cgi.pl"), undef, 0755 ); } sub _mk_fastcgi { my $self = shift; my $script = $self->{script}; my $appprefix = $self->{appprefix}; $self->render_sharedir_file( file('script', 'myapp_fastcgi.pl.tt'), file($script, "$appprefix\_fastcgi.pl"), undef, 0755 ); } sub _mk_server { my $self = shift; my $script = $self->{script}; my $appprefix = $self->{appprefix}; $self->render_sharedir_file( file('script', 'myapp_server.pl.tt'), file($script, "$appprefix\_server.pl"), undef, 0755 ); } sub _mk_test { my $self = shift; my $script = $self->{script}; my $appprefix = $self->{appprefix}; $self->render_sharedir_file( file('script', 'myapp_test.pl.tt'), file($script, "$appprefix\_test.pl"), undef, 0755 ); } sub _mk_create { my $self = shift; my $script = $self->{script}; my $appprefix = $self->{appprefix}; $self->render_sharedir_file( file('script', 'myapp_create.pl.tt'), file($script, "$appprefix\_create.pl"), undef, 0755 ); } sub _mk_compclass { my $self = shift; my $file = $self->{file}; return $self->render_sharedir_file( file('lib', 'Helper', 'compclass.pm.tt'), $file ); } sub _mk_comptest { my $self = shift; my $test = $self->{test}; $self->render_sharedir_file( file('t', 'comptest.tt'), $test ); ## wtf do i rename this to? } sub _mk_images { my $self = shift; my $images = $self->{images}; my @images = qw/catalyst_logo btn_120x50_built btn_120x50_built_shadow btn_120x50_powered btn_120x50_powered_shadow btn_88x31_built btn_88x31_built_shadow btn_88x31_powered btn_88x31_powered_shadow/; for my $name (@images) { my $image = $self->get_sharedir_file("root", "static", "images", "$name.png.bin"); $self->mk_file( file( $images, "$name.png" ), $image ); } } sub _mk_favicon { my $self = shift; my $root = $self->{root}; my $favicon = $self->get_sharedir_file( 'root', 'favicon.ico.bin' ); my $dest = dir( $root, "favicon.ico" ); $self->mk_file( $dest, $favicon ); } sub _deprecate_file { my ( $self, $file ) = @_; if ( -e $file ) { my ($f, $oldcontent); if ( $f = IO::File->new("< $file") ) { $oldcontent = join( '', (<$f>) ); } my $newfile = $file . '.deprecated'; if ( $f = IO::File->new("> $newfile") ) { binmode $f; print $f $oldcontent; print qq/created "$newfile"\n/; unlink $file; print qq/removed "$file"\n/; return 1; } Catalyst::Exception->throw( message => qq/Couldn't create "$file", "$!"/ ); } } 1; __END__ =head1 NAME Catalyst::Helper - Bootstrap a Catalyst application =head1 SYNOPSIS catalyst.pl =head1 DESCRIPTION This module is used by B to create a set of scripts for a new catalyst application. The scripts each contain documentation and will output help on how to use them if called incorrectly or in some cases, with no arguments. It also provides some useful methods for a Helper module to call when creating a component. See L. =head1 SCRIPTS =head2 _create.pl Used to create new components for a catalyst application at the development stage. =head2 _server.pl The catalyst test server, starts an HTTPD which outputs debugging to the terminal. =head2 _test.pl A script for running tests from the command-line. =head2 _cgi.pl Run your application as a CGI. =head2 _fastcgi.pl Run the application as a fastcgi app. Either by hand, or call this from FastCgiServer in your http server config. =head1 HELPERS The L script creates application components using Helper modules. The Catalyst team provides a good number of Helper modules for you to use. You can also add your own. Helpers are classes that provide two methods. * mk_compclass - creates the Component class * mk_comptest - creates the Component test So when you call C, create will try to execute Catalyst::Helper::View::TT->mk_compclass and Catalyst::Helper::View::TT->mk_comptest. See L and L for examples. All helper classes should be under one of the following namespaces. Catalyst::Helper::Model:: Catalyst::Helper::View:: Catalyst::Helper::Controller:: =head2 COMMON HELPERS =over =item * L - DBIx::Class models =item * L - Template Toolkit view =item * L =item * L - wrap any class into a Catalyst model =back =head3 NOTE The helpers will read author name from /etc/passwd by default. To override, please export the AUTHOR variable. =head1 METHODS =head2 mk_compclass This method in your Helper module is called with C<$helper> which is a L object, and whichever other arguments the user added to the command-line. You can use the $helper to call methods described below. If the Helper module does not contain a C method, it will fall back to calling L, with an argument of C. =head2 mk_comptest This method in your Helper module is called with C<$helper> which is a L object, and whichever other arguments the user added to the command-line. You can use the $helper to call methods described below. If the Helper module does not contain a C method, it will fall back to calling L, with an argument of C. =head2 mk_stuff This method is called if the user does not supply any of the usual component types C, C, C. It is passed the C<$helper> object (an instance of L), and any other arguments the user typed. There is no fallback for this method. =head1 INTERNAL METHODS These are the methods that the Helper classes can call on the <$helper> object passed to them. =head2 render_file ($file, $path, $vars, $perms) Render and create a file from a template in DATA using Template Toolkit. $file is the relevant chunk of the __DATA__ section, $path is the path to the file, $vars is the hashref as expected by L