quilt-0.68/PaxHeaders/COPYING0000644000000000000000000000013112267170046012722 xustar0029 mtime=1390211110.64970531 30 atime=1706202714.653548917 30 ctime=1495037541.056440228 quilt-0.68/COPYING0000644000076500001440000004311012267170046014160 0ustar00khaliusers00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. quilt-0.68/PaxHeaders/AUTHORS0000644000000000000000000000013212267172422012740 xustar0030 mtime=1390212370.840412216 30 atime=1706202714.653548917 30 ctime=1495037540.796435664 quilt-0.68/AUTHORS0000644000076500001440000000212212267172422014173 0ustar00khaliusers00000000000000Quilt started as a series of scripts written by Andrew Morton (patch-scripts). Based on Andrew's ideas, Andreas Gruenbacher completely rewrote the scripts, with the help of several other contributors (see below). Please report bugs to the quilt-dev mailing list, . Quilt ===== Andreas Gruenbacher Clean up, reorganize, speedups, documentation. Package up as RPM. Gerd Knorr Contributed spec2series (which is inspect now). Martin Quinson (martin.quinson#debian.org) Several little patches and improvements. Internationalization. Debian packaging. Peter Braam Tom Wang Fix pop logic if series file changes. Pre-quilt (patch-scripts) ========================= Andrew Morton Collection of scripts for patch management (patch-scripts). Stephen Cameron Contributed pstatus. Matt Reppert Jeremy Fitzhardinge Contributions to Andrew's scripts. quilt-0.68/PaxHeaders/TODO0000644000000000000000000000013212267172422012360 xustar0030 mtime=1390212370.840412216 30 atime=1706202714.653548917 30 ctime=1495037540.808435874 quilt-0.68/TODO0000644000076500001440000000671712267172422013631 0ustar00khaliusers00000000000000General: - Abstract backup operations to/from the .pc/ directory, so that optionally something like rcs can be used instead of scripts/backup-files? - Add something similar to cvs diff, which scans all files for changes that have not been folded back into their patches, similar to: `for p in $(quilt series); do quilt diff -z $p; done'? - Allow to add a directory? Then we could detect also new files in the directory, without having to add them individually. - Support different diff/patch options for different patches. (By specifying them in the series file?) - Add command that generates a summary (patch names + descriptions). - Add more long-form options, and add some nagative options so that defaults from .quiltrc can easily be overruled. - series.conf: Allow to specify options like -R, -u, -Unum, -c, -Cnum per patch. - Whenever the contents of the QUILT_PATCHES directory change, optionally call a trigger so that another tool can keep track of the patches directory history (e.g., CVS, RCS). Also call the trigger when the series file changes? - Check if we can somehow support -p0 style patches that are applied in subdirectories (patch -d option): There are problems with relative $QUILT_PATCHES, and likely with several commands. - wrapper scripts: check with [ -ef ] if the wrapper is the same as the default binary found to avoid wrappers like awk -> gawk. - Add some more colors. - Add the same kind of (optional) pager handling that git has. Documentation: - How to import a complete directory before doing wild changes? - Describe how to work with hard-linked trees - /etc/quilt.quiltrc and ~/.quiltrc - diff/refresh: C -c -N -n options - Subdirectory support quilt new: - Prevent spaces in patch names. quilt push: - Add option to print the reject to stdout - If push fails, check if patch can be reversed. - Add -l option to ignore whitespace changes. - Check if there are any .orig or .rej files and barf if so. quilt pop: - The timestamp comparison logic is broken; need to track last-known timestamps per file. quilt diff: - Error message when a file is specified that isn't in the patch(es). - When a directory is specified, diff all files below it. quilt refresh: - Add an -m option similar to `cvs commit -m "..."' to simplify keeping a change log in the patch documentation? - Add option to log the updates of each patch (e.g., append the output of ``quilt diff -zR'' to patch.log on each update). - Remove existing diffstat if --diffstat is not specified? - Improve whitespace stripping quilt import: - Add option to replace the currently applied patch with a new one, by backing out the topmost patch first. quilt setup: - Also recognize other uses of tar and patch (with options in the command line), etc. quit edit: - Check for actual changes, and remove files again that haven't been changed. quilt files: - Print filenames relative to the working directory. quilt mail: - Improve recipient handling (quote special characters automatically; encode 8-bit characters). - Character set handling is missing, too. - Too many passes of edmail make it a bit slow. - If someone adds a References header to the intro, the References header added to patch messages for threading do not append to that header. They probably should; not sure if duplicate References headers are valid. quilt fold: - Add an -R option for reverse-applying a patch. quilt-0.68/PaxHeaders/Makefile.in0000644000000000000000000000013213455027424013736 xustar0030 mtime=1555312404.209577168 30 atime=1711552104.592326824 30 ctime=1555312404.241577556 quilt-0.68/Makefile.in0000644000076500001440000003244413455027424015203 0ustar00khaliusers00000000000000PACKAGE := @PACKAGE_NAME@ VERSION := @PACKAGE_VERSION@ RELEASE := @PACKAGE_RELEASE@ PACKAGE_TARNAME := @PACKAGE_TARNAME@ PACKAGE_BUGREPORT := @PACKAGE_BUGREPORT@ prefix := @prefix@ exec_prefix := @exec_prefix@ bindir := @bindir@ datarootdir := @datarootdir@ datadir := @datadir@ docdir := @docdir@ mandir := @mandir@ localedir := $(datadir)/locale emacsdir := $(datadir)/emacs/site-lisp etcdir := @sysconfdir@ INSTALL := @INSTALL@ POD2MAN := @POD2MAN@ COLUMN := @COLUMN@ GETOPT := @GETOPT@ CP := @CP@ DATE := @DATE@ PERL := @PERL@ BASH := @BASH@ SHELL:= @BASH@ # It does not work if dash is used as a shell, for example GREP := @GREP@ TAIL := @TAIL@ TR := @TR@ STAT := @STAT@ SED := @SED@ AWK := @AWK@ FIND := @FIND@ XARGS := @XARGS@ DIFF := @DIFF@ PATCH := @PATCH@ MKTEMP := @MKTEMP@ MSGMERGE := @MSGMERGE@ MSGFMT := @MSGFMT@ XGETTEXT := @XGETTEXT@ MSGUNIQ := @MSGUNIQ@ MSGCAT := @MSGCAT@ DIFFSTAT := @DIFFSTAT@ RPMBUILD := @RPMBUILD@ SENDMAIL := @SENDMAIL@ MD5SUM := @MD5SUM@ 7Z := @P7ZIP@ USE_NLS := @USE_NLS@ STAT_HARDLINK := @STAT_HARDLINK@ PATCH_WRAPPER := @PATCH_WRAPPER@ COMPAT_SYMLINKS := @COMPAT_SYMLINKS@ COMPAT_PROGRAMS := @COMPAT_PROGRAMS@ default: all #----------------------------------------------------------------------- DIRT += $(shell $(FIND) . -name '*~') DIRT += $(shell $(FIND) . -name '.\#*') SRC += COPYING AUTHORS TODO Makefile.in configure.ac \ config/install-sh quilt.spec.in NEWS \ bash_completion quilt.quiltrc aclocal.m4 git-desc DIRT += quilt.spec DIRT += $(PACKAGE)-*.tar.gz DIRT += $(PACKAGE)-*.tar.gz.sig DIRT += $(PACKAGE)-*.tar.bz2 BIN_IN := quilt guards BIN_SRC := $(BIN_IN:%=%.in) BIN := $(BIN_IN) SRC += $(BIN_SRC:%=bin/%) bin/patch-wrapper.in DIRT += $(BIN_IN:%=bin/%) bin/patch-wrapper QUILT_IN := $(patsubst quilt/%.in,%,$(wildcard quilt/*.in)) QUILT_SRC := $(QUILT_IN:%=%.in) QUILT := $(QUILT_IN) SRC += $(QUILT_SRC:%=quilt/%) DIRT += $(QUILT_IN:%=quilt/%) SCRIPTS_IN := patchfns inspect-wrapper dependency-graph edmail \ remove-trailing-ws backup-files SCRIPTS_SRC := $(SCRIPTS_IN:%=%.in) SCRIPTS := $(SCRIPTS_IN) SRC += $(SCRIPTS_SRC:%=quilt/scripts/%) SRC += quilt/scripts/utilfns DIRT += $(SCRIPTS_IN:%=quilt/scripts/%) COMPAT := $(COMPAT_PROGRAMS:%=compat/%) $(COMPAT_SYMLINKS:%=compat/%) SRC += $(wildcard compat/*.in) $(wildcard compat/*.sh) DIRT += $(patsubst %.in,%,$(wildcard compat/*.in)) $(COMPAT_SYMLINKS:%=compat/%) LIB_SRC := quilt.el SRC += $(LIB_SRC:%=lib/%) DOC_IN := README quilt.1 DOC_SRC := $(DOC_IN:%=doc/%.in) DOC := $(DOC_IN) SRC += $(DOC_SRC) SRC += doc/main.tex doc/quilt.pdf doc/Makefile \ doc/README.MAIL doc/README.EMACS DIRT += $(DOC_IN:%=doc/%) doc/reference MAN1 := doc/quilt.1 ifneq ($(POD2MAN),) MAN1 += doc/guards.1 DIRT += doc/guards.1 endif LINGUAS := fr de ja ru PO := quilt.pot $(LINGUAS:%=%.po) SRC += $(PO:%=po/%) DIRT += po/*.mo po/*~ SRC += $(wildcard test/*.test) test/run test/test.quiltrc NON_EXEC_IN := doc/quilt.1 doc/README quilt/scripts/patchfns quilt/scripts/utilfns GIT_DESC := $(shell ./git-desc | sed -e 's:^v::') # Tests are sorted to make it easier to compare the results between runs TESTS := $(sort $(wildcard test/*.test)) ifeq ($(PATCH_WRAPPER),) TESTS := $(filter-out test/patch-wrapper.test,$(TESTS)) endif DIRT += test/.depend $(wildcard test/.*.ok) # Settings for running the uninstalled version of quilt in the source tree: PATH := $(CURDIR)/bin:$(CURDIR)/compat:$(PATH) QUILT_DIR := $(CURDIR)/quilt QUILTRC := $(CURDIR)/test/test.quiltrc export QUILT_DIR QUILTRC #----------------------------------------------------------------------- all : configure scripts compat $(DOC:%=doc/%) $(MAN1) mofiles ifeq ($(USE_NLS),yes) mofiles : $(LINGUAS:%=po/%.mo) else mofiles : endif %.mo : %.po $(MSGFMT) --statistics -o $@ $< %.po : po/quilt.pot $(MSGMERGE) -o $@ $@ $^ updatepo : $(PO:%=po/%) scripts : $(BIN:%=bin/%) $(QUILT:%=quilt/%) \ $(SCRIPTS:%=quilt/scripts/%) \ $(if $(PATCH_WRAPPER),bin/patch-wrapper) dist : clean $(PACKAGE)-$(VERSION).tar.gz publish : dist gpg --detach-sign --use-agent $(PACKAGE)-$(VERSION).tar.gz scp $(PACKAGE)-$(VERSION).tar.gz{,.sig} \ dl.sv.nongnu.org:/releases/quilt/ snapshot : $(PACKAGE)-$(GIT_DESC).tar.bz2 rpm rpmbuild : $(PACKAGE)-$(VERSION).tar.gz $(RPMBUILD) -ta $< po/quilt.pot: $(filter-out doc/quilt.1.in doc/README.in, \ $(wildcard */*.in) $(wildcard */*/*.in)) rm -f po/quilt.pot; touch po/quilt.pot for file in $+ ; do \ if test -n "`$(SED) -ne '1{ /@BASH''@/p }' $$file`" \ -o "$$file" = quilt/scripts/patchfns.in; then \ $(BASH) --dump-po-strings $$file ; \ elif test -n "`$(SED) -ne '1{ /@PERL''@/p }' $$file`"; then \ $(XGETTEXT) --from-code=UTF-8 --omit-header --language=Perl \ --keyword=_ -o - $$file; \ else \ echo "Don't know how to handle $$file" >&2 ; \ exit 1; \ fi \ done \ |$(MSGUNIQ) \ |$(MSGCAT) --force-po -F - $@ -o $@ doc/README : doc/README.in doc/reference @echo "README.in -> README" @while read line; do \ case "$$line" in \ '@REFERENCE''@') \ cat doc/reference \ ;; \ *) \ echo $$line \ ;; \ esac ; \ done 2>&1 < $< > $@ doc/quilt.1: doc/quilt.1.in doc/reference $(COMPAT) @echo "quilt.1.in -> quilt.1" @while read line; do \ case "$$line" in \ '@REFERENCE''@') \ $(SED) -e 's/^quilt \([^ ]*\)\(.*\)/.IP "\\fB\1\\fP\2 " 4/' \ -e $$'s/^ \\(-[^\t]*\\)\t\\?/.IP " \\1" 8\\\n/' \ -e $$'s/^ \t\\?//' \ < doc/reference \ ;; \ *@DOCSUBDIR@*) \ echo "$$line" | \ $(SED) -e 's:@DOCSUBDIR''@:$(docdir):g' \ ;; \ *) \ echo "$$line" \ ;; \ esac; \ done < $< 2>&1 > $@ doc/reference : bin/quilt $(QUILT:%=quilt/%) quilt/scripts/patchfns quilt/scripts/utilfns $(COMPAT) @unset LANG LC_MESSAGES LC_CTYPE LC_ALL; \ for i in $(sort $(QUILT)); \ do \ echo; \ QUILT_PC=.fake_pc quilt $$i -h; \ echo; \ done | \ $(SED) -e 's/\$$EDITOR ([^)]*)/$$EDITOR/' \ -e '/^$$/!s/^/ /' \ -e 's/^ Usage: *//' > $@ doc/guards.1 : bin/guards $(POD2MAN) $< > $@ $(PACKAGE)-$(VERSION).tar.gz : $(SRC) configure $(PACKAGE).spec rm -f $(PACKAGE)-$(VERSION) $@ ln -s . $(PACKAGE)-$(VERSION) tar chf - $(+:%=$(PACKAGE)-$(VERSION)/%) | gzip -9 > $@ rm -f $(PACKAGE)-$(VERSION) @echo "File $@ created." $(PACKAGE)-$(GIT_DESC).tar.bz2 : $(SRC) configure $(PACKAGE).spec rm -f $(PACKAGE)-$(GIT_DESC) $@ ln -s . $(PACKAGE)-$(GIT_DESC) tar chf - $(+:%=$(PACKAGE)-$(GIT_DESC)/%) | bzip2 -9 > $@ rm -f $(PACKAGE)-$(GIT_DESC) @echo "File $@ created." $(PACKAGE).spec : $(PACKAGE).spec.in NEWS Makefile @echo "Generating spec file" ; \ set -e ; \ changelog="`sed \ -e 's/^Version \([0-9.]*\) (\(.*\))/* \2 - upstream\n- Update to version \1/' \ -e 's/^ -/ +/' < NEWS`" ; \ $(AWK) '{ gsub(/@VERSION''@/, "$(VERSION)") ; \ gsub(/@RELEASE''@/, "$(RELEASE)") ; \ gsub(/@CHANGELOG''@/, changelog) ; \ print }' changelog="$$changelog" $< > $@ $(patsubst %.in,%,$(wildcard bin/*.in quilt/*.in quilt/scripts/*.in)) :: Makefile % :: %.in @echo "$< -> $@" >&2 @$(SED) -e 's:@QUILT_DIR''@:$(datadir)/$(PACKAGE):g' \ -e 's:@PERL''@:$(PERL):g' \ -e 's:@BASH''@:$(BASH):g' \ -e 's:@PATCH''@:$(PATCH):g' \ -e 's:@STAT_HARDLINK''@:$(STAT_HARDLINK):g' \ -e 's:@VERSION''@:$(VERSION):g' \ -e 's:@ETCDIR''@:$(etcdir):g' \ -e 's:@LOCALEDIR''@:$(localedir):g' \ -e 's:@DOCSUBDIR''@:$(docdir):g' \ -e '/^### Local Variables:/Q' \ $< > $@ @$(if $(filter $@,$(NON_EXEC_IN)),,chmod +x $@) configure : configure.ac aclocal.m4 autoconf @echo "Please run ./configure" @false Makefile : Makefile.in configure @echo "Please run ./configure" @false compat_leftover := $(filter-out $(COMPAT),$(shell $(FIND) compat -type f -perm -0100)) .PHONY :: compat compat :: $(COMPAT) $(if $(compat_leftover),rm -f $(compat_leftover)) # VIRTUAL_SYMLINKS creates a shell script that operates similar to # a symbolic link. It is used to workaround the way make treats # symlinks as targets. # Usage: $(call VIRTUAL_SYMLINK, source, target) define VIRTUAL_SYMLINK @echo "Generating $(strip $(1)) wrapper" >&2; @printf "#!%s\nexec %s "'"$$@"'"\n" $(BASH) $(strip $(1)) > $(2); endef # Rule to create compat/ for each binary in $(COMPAT_SYMLINKS) $(COMPAT_SYMLINKS:%=compat/%) :: Makefile $(call VIRTUAL_SYMLINK, \ $($(shell echo $@ | $(AWK) '{split($$1, ar, "/"); print toupper(ar[2])}')), \ $(strip $@)) @chmod +x $(strip $@) install-main :: scripts $(INSTALL) -d $(BUILD_ROOT)$(bindir) $(INSTALL) -m 755 $(BIN:%=bin/%) $(BUILD_ROOT)$(bindir)/ $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE) $(INSTALL) -m 755 $(QUILT:%=quilt/%) $(BUILD_ROOT)$(datadir)/$(PACKAGE)/ $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts $(INSTALL) -m 755 $(patsubst %,quilt/scripts/%, \ $(filter-out patchfns,$(SCRIPTS))) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts $(INSTALL) -m 644 quilt/scripts/patchfns quilt/scripts/utilfns \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/scripts ifneq ($(PATCH_WRAPPER),) $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/wrapper $(INSTALL) -m 755 bin/patch-wrapper \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/wrapper/patch endif $(INSTALL) -d $(BUILD_ROOT)$(docdir)/ $(INSTALL) -m 644 doc/README \ $(BUILD_ROOT)$(docdir)/ $(INSTALL) -m 644 doc/quilt.pdf doc/README.MAIL \ $(BUILD_ROOT)$(docdir)/ $(INSTALL) -d $(BUILD_ROOT)$(mandir)/man1 $(INSTALL) -m 644 $(MAN1) $(BUILD_ROOT)$(mandir)/man1/ $(INSTALL) -d $(BUILD_ROOT)$(etcdir) $(INSTALL) -d $(BUILD_ROOT)$(etcdir)/bash_completion.d $(INSTALL) -m 644 bash_completion \ $(BUILD_ROOT)$(etcdir)/bash_completion.d/quilt $(INSTALL) -m 644 quilt.quiltrc $(BUILD_ROOT)$(etcdir)/ $(INSTALL) -d $(BUILD_ROOT)$(emacsdir)/ $(INSTALL) -m 644 lib/quilt.el $(BUILD_ROOT)$(emacsdir)/ install-compat: install-compat1 $(COMPAT_SYMLINKS:%=install-compat-symlink-%) install-compat-symlink-% :: install-compat1 ln -sf $($(shell echo $* | $(AWK) '{print toupper($$1)}')) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat/$* install-compat1: rm -rf $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat ifneq ($(COMPAT_PROGRAMS)$(COMPAT_SYMLINKS),) $(INSTALL) -d $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat ifneq ($(COMPAT_PROGRAMS),) $(INSTALL) -m 755 $(COMPAT_PROGRAMS:%=compat/%) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE)/compat endif endif install: install-main install-compat uninstall :: rm -rf $(BIN:%=$(BUILD_ROOT)$(bindir)/%) \ $(BUILD_ROOT)$(datadir)/$(PACKAGE) \ $(patsubst %,$(BUILD_ROOT)$(mandir)/man1/%, \ $(notdir $(MAN1))) \ $(BUILD_ROOT)$(etcdir)/bash_completion.d/quilt \ $(BUILD_ROOT)$(etcdir)/quilt.quiltrc \ $(BUILD_ROOT)$(docdir)/ \ $(BUILD_ROOT)$(emacsdir)/quilt.el check: $(TESTS:test/%.test=test/.%.ok) check-all: $(TESTS:test/%.test=check-%) check-% : test/.%.ok @/bin/true # Only include the test suite dependencies when required ifneq ($(findstring test,$(MAKECMDGOALS))$(findstring check,$(MAKECMDGOALS)),) -include test/.depend endif # (test|check) test/.patch-wrapper.ok : bin/patch-wrapper # Include a run-time generated list of dependencies for each test case test/.depend : Makefile $(TESTS) @( printf "%s : bin/quilt quilt/scripts/patchfns quilt/scripts/utilfns quilt/scripts/backup-files $(COMPAT)\n" $(TESTS); \ $(AWK) 'sub(/.*\$$ *quilt /, "") \ { print FILENAME, ":", "quilt/"$$1}' $(TESTS); \ $(AWK) 'sub(/.*\ $@ ifneq ($(shell . $(QUILTRC) ; echo $$QUILT_PATCHES_PREFIX),) CHECK_ENV := P=patches/; _P=../patches/; export P _P; endif CHECK_ENV += QUILT_PC=.pc; export QUILT_PC; # Each tests dependencies are stored in test/.depend ifneq ($(findstring check-,$(MAKECMDGOALS)),) test/.%.ok : test/%.test test/run test/test.quiltrc FORCE else test/.%.ok : test/%.test test/run test/test.quiltrc endif @LANG=C; LC_ALL=C; \ export LANG LC_ALL; \ unset POSIXLY_CORRECT; \ $(CHECK_ENV) \ cd $(@D); \ ./run -q $(/dev/null` = "1"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ You have a version of `bash' which suffers from a quoting bug. This is a known bug of bash 3.1, which was fixed by patch bash31-011. You can get this patch at ftp://ftp.gnu.org/gnu/bash/ ]) fi QUILT_COMPAT_PROG_PATH(CP, cp, [gcp cp]) QUILT_COMPAT_PROG_PATH(DATE, date, [gdate date]) if test -z "$INTERNAL_DATE"; then AC_MSG_CHECKING([whether $DATE --rfc-822 works]) if $DATE --rfc-822 >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) else AC_MSG_ERROR([no If you don't have a version of `date' that supports --rfc-822, you can specify '--without-date' and $PACKAGE_NAME will use its own internal date. ]) fi fi QUILT_COMPAT_PROG_PATH(PERL, perl, [perl perl5]) QUILT_COMPAT_PROG_PATH(GREP, grep) AC_MSG_CHECKING([whether $GREP -q works]) if echo first | $GREP -q first 2>/dev/null; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of grep which doesn't understand -q. $PACKAGE_NAME needs it. If you have access to a version of grep which does understand -q, you can supply its path with the '--with-grep=' option. ]) fi AC_MSG_CHECKING([whether $GREP understands (foo|bar)]) if echo first | $GREP '^\(fir\|las\)' >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of grep which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of grep which does understand such constructs, you can supply its path with the '--with-grep=' option. ]) fi QUILT_COMPAT_PROG_PATH(TAIL, tail) # Solaris' /usr/bin/tail doesn't understand -n. AC_MSG_CHECKING([whether $TAIL -n works]) if test "`(echo first; echo second) | $TAIL -n 1 2>/dev/null`" = "second"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of tail which doesn't understand -n. $PACKAGE_NAME needs it. If you have access to a version of tail which does understand -n, you can supply its path with the '--with-tail=' option. Solaris users can use /usr/xpg4/bin/tail. ]) fi QUILT_COMPAT_PROG_PATH(TR, tr) AC_MSG_CHECKING([whether $TR understands a-z ]) if test "`echo first | $TR a-z A-Z 2>/dev/null`" = "FIRST"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of tr which doesn't understand constructs of the form a-z. $PACKAGE_NAME needs it. If you have access to a version of tr which does understand such constructs, you can supply its path with the '--with-tr=' option. Solaris users can use /usr/xpg4/bin/tr. ]) fi QUILT_COMPAT_PROG_PATH(STAT, stat) AC_MSG_CHECKING([whether $STAT -c '%h' works]) if $STAT -c '%h' /dev/null >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) STAT_HARDLINK="-c '%h'" else AC_MSG_RESULT(no) AC_MSG_CHECKING([whether $STAT -f '%l' works]) if $STAT -f '%l' /dev/null >/dev/null 2>/dev/null; then AC_MSG_RESULT(yes) STAT_HARDLINK="-f '%l'" else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of stat which understands neither -c nor -f. $PACKAGE_NAME needs it. If you have access to a version of stat which does understand -c or -f, you can supply its path with the '--with-stat=' option. ]) fi fi AC_SUBST(STAT_HARDLINK) QUILT_COMPAT_PROG_PATH(SED, sed) AC_MSG_CHECKING([whether $SED understands (foo|bar)]) if test "`echo first | $SED -e 's/\(fir\|lo\)/la/' 2>/dev/null`" = "last"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of sed which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of sed which does understand such constructs, you can supply its path with the '--with-sed=' option. ]) fi QUILT_COMPAT_PROG_PATH(AWK, awk, [gawk awk]) AC_MSG_CHECKING([whether $AWK supports sub]) if test "`echo first | $AWK 'sub(/first/, "last")' 2>/dev/null`" = "last"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of awk which doesn't understand sub( ). $PACKAGE_NAME needs it. If you have access to a version of awk which does understand such constructs, you can supply its path with the '--with-awk=' option. Solaris users can use /usr/xpg4/bin/awk. ]) fi AC_ARG_WITH(pod2man, AC_HELP_STRING( [--with-pod2man], [name of the pod2man executable to use (use --without-pod2man to disable)]), [ if test x"$withval" = xno; then POD2MAN= else POD2MAN=$withval fi],[ AC_PATH_PROG(POD2MAN, pod2man) ] ) AC_SUBST(POD2MAN) QUILT_COMPAT_PROG_PATH(COLUMN, column) QUILT_COMPAT_PROG_PATH(GETOPT, getopt) if test -z "$INTERNAL_GETOPT"; then AC_MSG_CHECKING(for getopt --long syntax) dnl check GNU syntax $GETOPT -o t --long test -- --test | grep 'illegal option' >/dev/null getopt_long_errors=$? $GETOPT -o t --long test -- --test | grep '^ *--test *--' >/dev/null getopt_long_works=$? if test $getopt_long_errors -eq 1 -a $getopt_long_works -eq 0; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ $GETOPT does not support the --long option. If you don't have a version of getopt that supports long options, you can specify '--without-getopt' and $PACKAGE_NAME will use its own internal getopt. ]) fi fi QUILT_COMPAT_PROG_PATH(MKTEMP, mktemp) if test -z "$INTERNAL_MKTEMP" ; then AC_MSG_CHECKING(whether $MKTEMP -d works) if tempdir=`$MKTEMP -d ${TMPDIR:-/tmp}/$PACKAGE_NAME.XXXXXX 2>/dev/null` && \ rmdir "$tempdir" ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ '$MKTEMP -d' does not create temporary directories. If you don't have a version of mktemp that can create directories, you can specify '--without-mktemp' and $PACKAGE_NAME will use its own internal tempfile generation mechanism. ]) fi fi QUILT_COMPAT_PROG_PATH(DIFF, diff) QUILT_COMPAT_PROG_PATH(PATCH, patch) # Sun diff and others will not work because GNU patch options are used. AC_MSG_CHECKING([the version of $DIFF]) if $DIFF --version 2>/dev/null | grep GNU >/dev/null; then set -- `$DIFF --version 2>/dev/null | $AWK '{ print $NF; exit }'` diff_version=$1 AC_MSG_RESULT($diff_version) saved_IFS=$IFS; IFS='.' set -- $diff_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 7 ; then diff_version= fi else AC_MSG_RESULT(no GNU diff) fi if test -z "$diff_version" ; then AC_MSG_ERROR([ $PACKAGE_NAME requires at least version 2.7 of GNU diffutils. You can download a current version of patch from ftp.gnu.org, or if you already have GNU diff then you can supply its path with the '--with-diff=' option. ]) fi # Sun's patch, and others, do not work because GNU patch options are used. AC_MSG_CHECKING([the version of $PATCH]) if $PATCH --version 2> /dev/null | grep GNU >/dev/null; then set -- `$PATCH --version 2> /dev/null` if test x$1 = xGNU ; then patch_version=$3 else patch_version=$2 fi AC_MSG_RESULT($patch_version) saved_IFS=$IFS; IFS='.' set -- $patch_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 5 ; then patch_version= fi else AC_MSG_RESULT(no GNU patch) fi if test -z "$patch_version" ; then AC_MSG_ERROR([ $PACKAGE_NAME requires at least version 2.5 of GNU patch. You can download a current version of patch from ftp.gnu.org, or if you already have GNU patch then you can supply its path with the '--with-patch=' option. ]) fi QUILT_COMPAT_PROG_PATH(FIND, find) AC_MSG_CHECKING([whether $FIND -path works]) if $FIND . -path '*' >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of find which doesn't understand -path. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -path, you can supply its path with the '--with-find=' option. ]) fi AC_MSG_CHECKING([whether $FIND -print0 works]) if $FIND . -path '*' -print0 >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of find which doesn't understand -print0. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -print0, you can supply its path with the '--with-find=' option. ]) fi QUILT_COMPAT_PROG_PATH(XARGS, xargs) AC_MSG_CHECKING([whether $XARGS -0 works]) if echo | $XARGS -0 echo >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR([ Sorry, you have a version of xargs which doesn't understand -0. $PACKAGE_NAME needs it. If you have access to a version of xargs which does understand -0, you can supply its path with the '--with-xargs=' option. ]) fi QUILT_COMPAT_PROG_PATH_OPT(DIFFSTAT, diffstat) if test "$DIFFSTAT" != "diffstat"; then # We need diffstat version 1.32 or better, else quilt refresh --diffstat # will show progress data we don't want to see. This is only a warning # and we continue even if version is older, as this is only a minor # annoyance. AC_MSG_CHECKING([for diffstat version]) diffstat_version=`$DIFFSTAT -V 2>/dev/null | \ sed 's/^[[^0-9]]*\([[0-9]]*\)\.\([[0-9]]*\).*/\1 \2/'` eval set -- "$diffstat_version" diffstat_major_version="$1" diffstat_minor_version="$2" if test -z "$diffstat_major_version" -o -z "$diffstat_minor_version"; then AC_MSG_RESULT(unknown) AC_MSG_WARN([ diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. ]) else AC_MSG_RESULT($diffstat_major_version.$diffstat_minor_version) if test "$diffstat_major_version" -lt 1 \ -o \( "$diffstat_major_version" -eq 1 -a "$diffstat_minor_version" -lt 32 \); then AC_MSG_WARN([ diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. ]) fi fi fi QUILT_COMPAT_PROG_PATH(SENDMAIL, sendmail, [], [/usr/sbin]) AC_PATH_PROG(MSGMERGE, [msgmerge]) AC_PATH_PROG(MSGFMT, [msgfmt]) AC_PATH_PROG(XGETTEXT, [xgettext]) AC_PATH_PROG(MSGUNIQ, [msguniq]) AC_PATH_PROG(MSGCAT, [msgcat]) if test -n "$MSGFMT" -a -n "$MSGMERGE" -a -n "$XGETTEXT" -a -n "$MSGUNIQ" -a -n "$MSGCAT" ; then HAVE_NLS=yes else HAVE_NLS=no fi USE_NLS=no AC_ARG_ENABLE(nls, AC_HELP_STRING( [--disable-nls], [exclude natural language support]), [USE_NLS=$enableval],[USE_NLS=$HAVE_NLS]) if test $USE_NLS = yes -a $HAVE_NLS = no ; then AC_MSG_ERROR([ You do not appear to have msgfmt, which is part of the GNU Gettext package. It is a required package as you chose the '--enable-nls' option to configure. You can download GNU Gettext from ftp.gnu.org ]) fi PATCH_WRAPPER= AC_ARG_WITH(patch-wrapper, AC_HELP_STRING( [--with-patch-wrapper], [include GNU patch wrapper]), [ if test "$withval" = yes ; then PATCH_WRAPPER=$withval fi ]) AC_SUBST(PATCH_WRAPPER) if test $USE_NLS = no ; then AC_MSG_NOTICE([Building without natural language support]) fi AC_SUBST(USE_NLS) AC_SUBST(docdir) dnl Check for rpmbuild (v4) vs. rpm (v3) QUILT_COMPAT_PROG_PATH_OPT(RPMBUILD, rpmbuild, [rpmbuild rpm]) QUILT_COMPAT_PROG_PATH_OPT(MD5SUM, md5sum, [gmd5sum md5sum]) QUILT_COMPAT_PROG_PATH_OPT(P7ZIP, 7z, [7zr 7za 7z]) AC_SUBST(COMPAT_SYMLINKS) AC_SUBST(COMPAT_PROGRAMS) AC_CONFIG_FILES(Makefile) AC_OUTPUT dnl Print results AC_MSG_RESULT([]) AC_MSG_RESULT([$PACKAGE_NAME version $PACKAGE_VERSION configured.]) AC_MSG_RESULT([]) AC_MSG_RESULT([Using '$prefix' for installation prefix.]) AC_MSG_RESULT([]) AC_MSG_RESULT([Report bugs to $PACKAGE_BUGREPORT]) quilt-0.68/config/PaxHeaders/install-sh0000644000000000000000000000013014465123341015132 xustar0030 mtime=1691657953.115740641 30 atime=1706202714.653548917 28 ctime=1691657966.5730638 quilt-0.68/config/install-sh0000755000076500001440000003452414465123341016405 0ustar00khaliusers00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2016-01-11.22; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: quilt-0.68/PaxHeaders/quilt.spec.in0000644000000000000000000000013212320276576014314 xustar0030 mtime=1396800894.732636629 30 atime=1711552520.357923058 30 ctime=1495037541.040439947 quilt-0.68/quilt.spec.in0000644000076500001440000000267412320276576015563 0ustar00khaliusers00000000000000# # spec file for quilt - patch management scripts # Name: quilt Summary: Scripts for working with series of patches License: GPL Group: Productivity/Text/Utilities Version: @VERSION@ Release: @RELEASE@ Requires: coreutils diffutils findutils patch gzip bzip2 perl mktemp gettext Autoreqprov: off Source: quilt-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build %description The scripts allow to manage a series of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, etc. The scripts are heavily based on Andrew Morton's patch scripts found at http://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz. Authors: -------- Andrew Morton Andreas Gruenbacher %prep %setup %build CFLAGS="$RPM_OPT_FLAGS" \ ./configure --prefix=/usr \ --mandir=%_mandir \ --docdir=%_docdir/%{name}-%{version} make RELEASE=%release %install rm -rf $RPM_BUILD_ROOT make install prefix=/usr BUILD_ROOT=$RPM_BUILD_ROOT %{find_lang} %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(-, root, root) /usr/bin/guards /usr/bin/quilt /usr/share/quilt/ /usr/share/emacs/ /etc/bash_completion.d/quilt %config(noreplace) /etc/quilt.quiltrc %doc %{_mandir}/man1/guards.1* %doc %{_mandir}/man1/quilt.1* %doc %{_docdir}/%{name}-%{version}/README %doc %{_docdir}/%{name}-%{version}/README.MAIL %doc %{_docdir}/%{name}-%{version}/quilt.pdf %changelog @CHANGELOG@ quilt-0.68/PaxHeaders/NEWS0000644000000000000000000000013114601033022012350 xustar0030 mtime=1711552018.991255595 30 atime=1711552259.747268465 29 ctime=1711552018.99725567 quilt-0.68/NEWS0000644000076500001440000002222214601033022013607 0ustar00khaliusers00000000000000Version 0.68 (Wed Mar 27 2024) - Add support for zstd archives - Documentation: Massive formatting update of the manual page - Documentation: Reword some sections of the manual page - Fix compatibility with BSD awk - Fix compatibility with GNU awk version 5.0.0 and later - Fix compatibility with GNU grep version 3.8 and later - Fix compatibility with Solaris ln (#63451) - Installation: Fix multiple issues in install-sh (#64430) - Test suite: Fix various race conditions (#63651) - patches: Find file name with a space in unapplied patches (#41708) - pop: Hint at diff -z on failure - setup: Document the limitation of spec file support Version 0.67 (Tue Feb 15 2022) - Call pager with original LANG environment variable - Consistently complain early if no series file is found - Fix handling of symbolic links by several commands - Tighten the patch format parsing - Reuse the shell (performance) - Document the series file format further - Document that quilt loads /etc/quilt.quiltrc - configure: Make stat configurable - series: Minor optimizations - setup: Don't obey the settings of any englobing .pc - setup: Default to fast mode - quilt.el: Fix documentation of quilt-pc-directory - quilt.el: Load /etc/quilt.quiltrc if ~/.quiltrc doesn't exist - quilt.el: Fix quilt-editable when QUILT_PATCHES_PREFIX is set Version 0.66 (Thu Mar 28 2019) - Add support for lzip archives and patches (#54570) - Document QUILT_PC as user-settable - configure: Don't require md5sum - Test suite: Allow keeping the working directory on failure - Test suite: Fix regex for recent versions of perl - Test suite: Fix /bin/sh filtering - Test suite: Run tests again if test.quiltrc changes - Test suite: Handle alternative QUILT_PATCHES values - Test suite: Increase code path coverage - Test suite: Be verbose on directory error - Test suite: Clean up when interrupted - Test suite: Prevent test cases from escaping - fold: Fix German translation - diff: Add missing quotes in basename call (#50862) - header: Fix corruption when trailing newline is missing (#50841) - mail: Fix patch set threading (#50775) - mail: Fix French translation - mail: Remove Content-Disposition headers - mail: Complain when a patch doesn't exist - new: Fix corruption when trailing newline is missing (#54295) - refresh: Add missing quotes in basename call (#50862) - setup: Add basic support for p7zip (.7z) archives (#49754) - setup: Align --fast on --slow for series files - quilt.el: Define quilt-edit-top-only before it's used - quilt.el: Stop using deprecated toggle-read-only - quilt.el: Don't strip directory in quilt-top-patch - quilt.el: Fix emacs compatibility issue (#51977) - quilt.el: Read QUILT_PC from config file - quiltrc: Support all patch formats by default - guards: Mention it in quilt manual page - compat/getopt: Handle a second separator (#54772) - compat/getopt: Allow non-digit parameter embedded in short option (#54772) Version 0.65 (Wed Oct 09 2016) - Translation fixes - Project settings have priority - Reject binary files in patches - Fix a race condition in diff_file - Performance: Optimizations to the setup command - Performance: Optimizations to the bash completion script - Test suite: Improve the edit test case - Test suite: Make the symlink test more robust - Test suite: Test backup failure - Test suite: Test the header command with hard links - diff: Report diff failures - edit: Fix a corner case bug - mail: Fix the help text - push: Fix the synopsis - refresh: Do not remove symlinks - refresh: Break links to read-only patch files - refresh: Always preserve modification time - setup: Report failed look-ups in inspect-wrapper - quilt.el: Fix quilt-editable when patches are stored in subdirs - bash_completion: Handle spaces in file names - bash_completion: Update the list of commands - bash_completion: Add new command options - bash_completion: Fix handling of mail, new, push options - guards: Simplify the help text - guards: Include the file name also in the "Not found" case - guards: Add support for an external filelist in --check mode - guards: Report which config file has problem in --check mode - guards: Documentation update - guards: Clarify a user message Version 0.64 (Mon Feb 09 2015) - Check for series file consistency - Performance: Several optimizations - Test suite: Several fixes and coverage improvements - Test suite: Run the tests in predictable order - files: Add support for unapplied patches - graph: Check for graphviz availability - mail: Remove procmail dependency - mail: Don't include the release number in User-Agent - pop: Add --refresh option - push: Add --refresh option - push: Do not use interactive mode with -f - setup: Skip version check - setup: Check for rpmbuild availability - setup: Handle long options passed to tar - setup: Several cleanups and minor fixes - setup: Major performance optimizations - setup: Fix path to extra patches in series file - setup: Trace calls earlier - setup: Add --fast option - setup: Fix link creation - quilt.el: Fix tramp support - quilt.el: Fix patch select completion Version 0.63 (Sun May 25 2014) - New NEWS file, containing a human-readable changelog - Option -E is no longer passed to patch by default - Huge performance improvement (e.g., for commands series, applied and unapplied) - configure: Add compat symlinks for md5sum - Return 2 when there is nothing to do, contrasting with errors (ret=1) - Exit with an error when diff's retcode=2 (error) on patch refresh - bash_completion: cleanups and performance improvement (Savannah's #27111) - test/run: Use perl module Text::ParseWords (+ performance improvement) - Add some tests to our testsuite, for a better coverage - Fix heuristic for unapplied patches with timestamps - Bug fix: Patches emptying files should work now - Bug fix: Check for duplicate patch in series (Savannah's #20628) - Portability fixes for older Bash and GNU patch Version 0.62 (Wed May 07 2014) - Was a buggy release, with an incomplete tarfile Version 0.61 (Sun Dec 08 2013) - Almost two years of fixes and minor improvements - Fix support for ./configure --with-xargs - Parameter quoting fixes to many commands - Various fixes to the pop, push, refresh and patches commands - Translation fixes - setup: Many fixes and improvements - remove-trailing-ws: Several fixes and improvements - remove-trailing-ws: Add a dedicated test case - quilt.el: Many fixes and improvements (emacs integration) Version 0.60 (Wed Feb 29 2012) - BSD compatibility improvements - grep: Support file names which include spaces - import: Fix import of relative patches - mail: Several fixes - setup: Support directory and archive names which include spaces - backup-files: rewritten from C to bash - backup-files: Add a dedicated test case Version 0.51 (Sat Jan 28 2012) - Fix support for ./configure --docdir - Various $TMPDIR fixes - mail: Fix delivery address checking - mail: CC people in more common patch headers - push: Fix bash completion - inspect: Complain if wrapper script can't be executed Version 0.50 (Mon Dec 5 2011) - 34 months of fixes and improvements, too many to list them all - Fix detection of the patch version - Avoid error messages when building due to missing git-desc file - Add support for lzma and xz compression formats - import: Fix confusing French translation - mail: Stop using =~ for older versions of bash - mail: Fix a temporary directory leak - revert: Stop using cp -l - revert: Add bash completion support - setup: Add --fuzz parameter - setup: Add support for reverse patches - inspect: Fix shell syntax errors - Fix error in test case create-delete Version 0.48 (Thu Jan 29 2009) - fold: Fix bash completion - mail: Don't use GNU awk extensions - mail: Check for formail - setup: Fix for rpm 4.6 - Fix error in test case import Version 0.47 (Thu Aug 21 2008) - Change summary not available Version 0.46 (Thu Oct 19 2006) - Change summary not available Version 0.45 (Mon Apr 24 2006) - Change summary not available Version 0.44 (Tue Feb 14 2006) - Change summary not available Version 0.43 (Wed Feb 01 2006) - Change summary not available Version 0.42 (Tue Jul 26 2005) - Change summary not available Version 0.40 (Fri Apr 29 2005) - Change summary not available Version 0.39 (Thu Feb 10 2005) - Change summary not available Version 0.37 (Sun Oct 17 2004) - Change summary not available Version 0.36 (Wed Sep 22 2004) - Change summary not available Version 0.35 (Thu Jul 15 2004) - Change summary not available Version 0.34 (Thu Jun 10 2004) - Change summary not available Version 0.33 (Sun Jun 06 2004) - Change summary not available Version 0.32 (Sat Mar 13 2004) - Change summary not available Version 0.30 (Wed Jan 28 2004) - Change summary not available Version 0.29 (Wed Nov 12 2003) - Change summary not available Version 0.28 (Fri Oct 31 2003) - Change summary not available Version 0.27 (Tue Oct 28 2003) - Change summary not available Version 0.26 (Tue Oct 21 2003) - Change summary not available quilt-0.68/PaxHeaders/bash_completion0000644000000000000000000000013213002424304014744 xustar0030 mtime=1477060804.623524147 30 atime=1711108486.072450349 30 ctime=1495037540.792435593 quilt-0.68/bash_completion0000644000076500001440000001571513002424304016213 0ustar00khaliusers00000000000000#-*- mode: shell-script;-*- # Programmed completion for bash to use quilt # Copyright 2003-2004 Martin Quinson (martin quinson#debian org) # This file is part of the distribution of quilt, and is distributed under # the same licence than quilt itself # WARNING: This script doesn't read user or system quiltrc files, and assumes # that QUILT_PC is left unchanged. If you have changed QUILT_PC and want # completion to work then you must set QUILT_PC in your global environment # (for example in ~/.profile) and not just in your quiltrc file. # Complete on files (by default) or directories (with -d) # _quilt_comfile() { local IFS=$'\t\n' COMPREPLY=( "${COMPREPLY[@]}" $( compgen ${1:--f} -- "$cur" ) ) } _quilt_completion() { local cur prev cmds command_matches COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} # quilt sub commands cmds='add annotate applied delete diff edit files fold fork graph \ grep header import mail new next patches pop previous push refresh \ remove rename revert series setup snapshot top unapplied upgrade' # if no command were given, complete on commands if [[ $COMP_CWORD -eq 1 ]] ; then COMPREPLY=( $( compgen -W "$cmds -h" -- $cur ) ) return 0 fi # if we're completing for 'quilt -h', then just # complete on any valid command if [ ${COMP_WORDS[1]} == -h ] ; then COMPREPLY=( $( compgen -W "$cmds" -- $cur ) ) return 0 fi # Accept a partial command if it's unique, because quilt will accept it. command_matches=( $(compgen -W "$cmds" -- ${COMP_WORDS[1]}) ) if [ ${#command_matches[@]} -ne 1 ] ; then return 0 fi # Complete depending on options case ${command_matches[0]} in add) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; annotate) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; applied) COMPREPLY=( $( compgen -W "-h $(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; delete) COMPREPLY=( $( compgen -W "-n -r -h --backup $(quilt --quiltrc - series)" -- $cur ) ) ;; diff) case $prev in -p) COMPREPLY=( $( compgen -W "0 1 ab" -- $cur ) ) ;; -P|--combine) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; --diff|-U|-C) ;; *) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-p -P -u -U -c -C -R -z -h --snapshot --diff --no-timestamps --no-index --combine --color --sort" -- $cur ) ) ;; esac ;; edit) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-h" -- $cur ) ) ;; files) case $prev in --combine) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-a -l -v -h --combine $(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; esac ;; fold) case $prev in -p) COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6 7 8 9 10" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-R -q -f -p -h" -- $cur ) ) ;; esac ;; graph) case $prev in -T) COMPREPLY=( $( compgen -W "ps" -- $cur ) ) ;; --edge-labels) COMPREPLY=( $( compgen -W "files" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-T -h --all --reduce --lines --edge-labels $(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; esac ;; grep) type _longopt &> /dev/null && _longopt grep COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-h" -- $cur ) ) ;; header) COMPREPLY=( $( compgen -W "-a -e -h -r --backup --strip-diffstat --strip-trailing-whitespace $(quilt --quiltrc - series)" -- $cur ) ) ;; import) case $prev in -p) COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6 7 8 9 10" -- $cur ) ) ;; -P) ;; -d) COMPREPLY=( $( compgen -W "o a n" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-p -R -P -f -d -h" -- $cur ) ) ;; esac ;; mail) case $prev in --mbox|-M) _quilt_comfile ;; --signature) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" - ) ;; --prefix|--sender|--from|--subject|--to|--cc|--bcc|--charset|--reply-to) ;; *) COMPREPLY=( $( compgen -W "-m -M --prefix --mbox --send --sender --from --subject --to --cc --bcc --charset --signature --reply-to -h" -- $cur ) ) ;; esac ;; new) case $prev in -p) COMPREPLY=( $( compgen -W "0 1 ap" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-p -h" -- $cur ) ) ;; esac ;; next|previous) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - series) -h" -- $cur ) ) ;; patches) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-v --color -h" -- $cur ) ) ;; pop) COMPREPLY=( $( compgen -W "-a -f -R -q -v --refresh -h $(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; push) case $prev in --fuzz) ;; *) COMPREPLY=( $( compgen -W "-a -f -q -v -h --fuzz -m --merge --leave-rejects --color --refresh $(quilt --quiltrc - unapplied 2>/dev/null)" -- $cur ) ) ;; esac ;; refresh) case $prev in -p) COMPREPLY=( $( compgen -W "0 1 ap" -- $cur ) ) ;; -U|-C) ;; *) COMPREPLY=( $( compgen -W "-p -u -U -c -C -z -f -h $(quilt --quiltrc - applied 2>/dev/null) --no-timestamps --no-index --diffstat --sort --backup --strip-trailing-whitespace" -- $cur ) ) ;; esac ;; remove|revert) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - applied 2>/dev/null)" -- $cur ) ) ;; *) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; rename) case $prev in -P) COMPREPLY=( $( compgen -W "$(quilt --quiltrc - series)" -- $cur ) ) ;; *) COMPREPLY=( $( compgen -W "-P -h" -- $cur ) ) ;; esac ;; series) COMPREPLY=( $( compgen -W "-v -h --color" -- $cur ) ) ;; setup) case $prev in -d|--sourcedir) _quilt_comfile -d ;; --fuzz) ;; *) _quilt_comfile COMPREPLY=( "${COMPREPLY[@]}" $( compgen -W "-d -v -h --sourcedir --fuzz --slow --fast" -- $cur ) ) ;; esac ;; snapshot) COMPREPLY=( $( compgen -W "-d -h" -- $cur ) ) ;; unapplied) COMPREPLY=( $( compgen -W "-h $(quilt --quiltrc - series)" -- $cur ) ) ;; fork|top|upgrade) ;; esac return 0 } # With option "filenames", directories are shown in completion with their # trailing / so that the user can go in them. # [ ${BASH_VERSINFO[0]} '>' 2 -o \ ${BASH_VERSINFO[0]} = 2 -a ${BASH_VERSINFO[1]} '>' 04 ] \ && _quilt_complete_opt="-o filenames" complete -F _quilt_completion $_quilt_complete_opt quilt unset -v _quilt_complete_opt quilt-0.68/PaxHeaders/quilt.quiltrc0000644000000000000000000000013213272526464014441 xustar0030 mtime=1525329204.417699111 30 atime=1711108486.074450378 30 ctime=1525329204.417699111 quilt-0.68/quilt.quiltrc0000644000076500001440000000232413272526464015700 0ustar00khaliusers00000000000000# Example /etc/quilt.quiltrc # Options passed to GNU diff when generating patches QUILT_DIFF_OPTS="--show-c-function" # Options passed to GNU patch when applying patches #QUILT_PATCH_OPTS="--ignore-whitespace" # Options passed to diffstat when generating patch statistics #QUILT_DIFFSTAT_OPTS="-f0" # Options to pass to commands (QUILT_${COMMAND}_ARGS) QUILT_PUSH_ARGS="--color=auto" QUILT_DIFF_ARGS="--no-timestamps --color=auto" QUILT_REFRESH_ARGS="--no-timestamps --backup" QUILT_SERIES_ARGS="--color=auto" QUILT_PATCHES_ARGS="--color=auto" # When non-default less options are used, add the -R option so that less outputs # ANSI color escape codes "raw". [ -n "$LESS" -a -z "${QUILT_PAGER+x}" ] && QUILT_PAGER="less -FRX" # (Add "-p ab" to QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS to get # -p1 style diffs with a/file and b/file filenams in headers # instead of dir.orig/file and dir/file.) # The directory in which patches are found (defaults to "patches"). #QUILT_PATCHES=patches # Prefix all patch names with the relative path to the patch? QUILT_PATCHES_PREFIX=yes # Use a specific editor for quilt (defaults to the value of $EDITOR before # sourcing this configuration file, or vi if $EDITOR wasn't set). #EDITOR=nedit quilt-0.68/PaxHeaders/aclocal.m40000644000000000000000000000007411251662327013535 xustar0030 atime=1711550962.188045642 30 ctime=1495037540.792435593 quilt-0.68/aclocal.m40000644000076500001440000000645011251662327014773 0ustar00khaliusers00000000000000dnl Allow configure to specify a specific binary dnl 1: Environment variable dnl 2: binary name dnl 3: optional list of alternative binary names dnl 4: optional list of additional search directories AC_DEFUN([QUILT_COMPAT_PROG_PATH],[ m4_define([internal_$2_cmd],[esyscmd(ls compat/$2.in 2>/dev/null)]) AC_ARG_WITH($2, AC_HELP_STRING( [--with-$2], [name of the $2 executable to use] m4_if(internal_$2_cmd,[],[],[ (use --without-$2 to use an internal mechanism)])), [ if test x"$withval" = xnone; then AC_MSG_ERROR([Invalid configure argument. use --without-$2]) fi if test x"$withval" != xno; then AC_MSG_CHECKING(for $2) $1="$withval" if test -e "$$1"; then if test ! -f "$$1" -a ! -h "$$1" || test ! -x "$$1"; then AC_MSG_ERROR([$$1 is not an executable file]) fi fi AC_MSG_RESULT([$$1]) if test ! -e "$$1"; then AC_MSG_WARN([$$1 does not exist]) fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ],[ m4_if([$3],[],[ AC_PATH_PROG($1,$2,,$PATH:$4) ],[ AC_PATH_PROGS($1,$3,,$PATH:$4) if test -n "$$1" -a "`expr "$$1" : '.*/\([[^/]]*\)$'`" != "$2"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ]) m4_if([$4],[],[],[ if test -n "$$1"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "$4"; do if test "`dirname $$1`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" break fi done IFS="$as_save_IFS" fi ]) ]) if test -z "$$1"; then m4_if(internal_$2_cmd,[],[ AC_MSG_ERROR([Please specify the location of $2 with the option '--with-$2']) ],[ AC_MSG_WARN([Using internal $2 mechanism. Use option '--with-$2' to override]) COMPAT_PROGRAMS="$COMPAT_PROGRAMS $2" $1=$2 INTERNAL_$1=1 ]) fi AC_SUBST($1) ]) dnl Allow configure to specify a specific binary dnl This variant is for optional binaries. dnl 1: Environment variable dnl 2: binary name dnl 3: optional list of alternative binary names dnl 4: optional list of additional search directories AC_DEFUN([QUILT_COMPAT_PROG_PATH_OPT],[ AC_ARG_WITH($2, AC_HELP_STRING( [--with-$2], [name of the $2 executable to use]), [ if test x"$withval" != xno; then AC_MSG_CHECKING(for $2) $1="$withval" if test -e "$$1"; then if test ! -f "$$1" -a ! -h "$$1" || test ! -x "$$1"; then AC_MSG_ERROR([$$1 is not an executable file]) fi fi AC_MSG_RESULT([$$1]) if test ! -e "$$1"; then AC_MSG_WARN([$$1 does not exist]) fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ],[ m4_if([$3],[],[ AC_PATH_PROG($1,$2,,$PATH:$4) ],[ AC_PATH_PROGS($1,$3,,$PATH:$4) if test -n "$$1" -a "`expr "$$1" : '.*/\([[^/]]*\)$'`" != "$2"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" fi ]) m4_if([$4],[],[],[ if test -n "$$1"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "$4"; do if test "`dirname $$1`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS $2" break fi done IFS="$as_save_IFS" fi ]) if test -z "$$1"; then AC_MSG_WARN([$2 not found, some optional functionalities will be missing]) fi ]) if test -z "$$1"; then $1=$2 fi AC_SUBST($1) ]) quilt-0.68/PaxHeaders/git-desc0000644000000000000000000000013212061327175013311 xustar0030 mtime=1355132541.980821997 30 atime=1711552108.042369999 30 ctime=1495037540.792435593 quilt-0.68/git-desc0000755000076500001440000000047412061327175014557 0ustar00khaliusers00000000000000#! /bin/sh if git rev-parse --show-cdup > /dev/null 2> /dev/null; then tag=$(git describe --tags HEAD 2> /dev/null || \ git rev-parse --short HEAD) dirty=$(git update-index --refresh --unmerged > /dev/null if git diff-index --name-only HEAD | read dummy; then echo -dirty fi) echo $tag$dirty fi quilt-0.68/bin/PaxHeaders/quilt.in0000644000000000000000000000013214554455146014136 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.065370287 30 ctime=1706187366.764458342 quilt-0.68/bin/quilt.in0000644000076500001440000000624214554455146015400 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # unset posix strict conformance variable since patch cannot be run # non-interactively when it's set. unset POSIXLY_CORRECT # unset GREP_OPTIONS as it's quite easy to break quilt with uncommon options # see http://bugs.debian.org/715563 unset GREP_OPTIONS export TEXTDOMAIN=quilt export TEXTDOMAINDIR=@LOCALEDIR@ : ${QUILT_DIR=@QUILT_DIR@} export QUILT_DIR if [ -z "$QUILTRC" ] then for QUILTRC in $HOME/.quiltrc @ETCDIR@/quilt.quiltrc; do [ -e $QUILTRC ] && break done export QUILTRC fi # Support compatibility layer if [ -d $QUILT_DIR/compat ] then export PATH="$QUILT_DIR/compat:$PATH" fi usage() { echo $"Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." echo $" quilt --version" echo $"Commands are:" quilt_commands \ | sort \ | column | column -t \ | sed -e $'s/^/\t/' printf $" Global options: --trace Runs the command in bash trace mode (-x). For internal debugging. --quiltrc file Use the specified configuration file instead of ~/.quiltrc (or %s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf documentation for details about its possible contents. The special value \"-\" causes quilt not to read any configuration file. --version Print the version number and exit immediately.\n" "@ETCDIR@" exit 1 } quilt_commands() { local command for command in $QUILT_DIR/* do if [ -f "$command" -a -x "$command" ] then echo ${command##$QUILT_DIR/} fi done } if [ $# -eq 1 -a "$1" == "--version" ] then echo '@VERSION@' exit fi BASH_OPTS= while [ $# -ne 0 ] do case $1 in [^-]*) if [ -z "$command" ] then command=$1 else args[${#args[@]}]=$1 fi ;; # Use a resource file other than ~/.quiltrc --quiltrc=*) QUILTRC=${1#--quiltrc=} [ "$QUILTRC" = - ] && unset QUILTRC ;; --quiltrc) QUILTRC=$2 [ "$QUILTRC" = - ] && unset QUILTRC shift ;; # Trace execution of commands --trace*) BASH_OPTS="${BASH_OPTS:+$BASH_OPTS }-x" case "${1:7}" in '') ;; =verbose) BASH_OPTS="${BASH_OPTS:+$BASH_OPTS }-v" ;; *) command= break ;; esac ;; *) args[${#args[@]}]=$1 ;; esac shift done if ! [ -f "$QUILT_DIR/$command" -a -x "$QUILT_DIR/$command" ] then if [ -n "$command" ] then for arg in $(quilt_commands) do case "$arg" in $command*) commands[${#commands[@]}]=$arg ;; esac done unset arg fi if [ ${#commands[@]} -eq 0 ] then usage elif [ ${#commands[@]} -eq 1 ] then command=${commands[0]} unset commands else echo "$command :" "${commands[@]}" >&2 exit 1 fi fi set -- "${args[@]}" unset args export QUILT_COMMAND="${command##*/}" if [ -e "$QUILTRC" ] then source "$QUILTRC" fi # Add default arguments for this command if [ -n "$QUILT_COMMAND" ]; then args="QUILT_$(echo $QUILT_COMMAND | tr a-z A-Z)_ARGS" eval set -- ${!args} \"\$@\" unset args fi if [ -n "$BASH_OPTS" ]; then set $BASH_OPTS fi . "$QUILT_DIR/$command" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/bin/PaxHeaders/guards.in0000644000000000000000000000013214554455146014265 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.070370349 30 ctime=1706187366.764458342 quilt-0.68/bin/guards.in0000644000076500001440000001613314554455146015527 0ustar00khaliusers00000000000000#!@PERL@ -w # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # # Guards: # # +xxx include if xxx is defined # -xxx exclude if xxx is defined # +!xxx include if xxx is not defined # -!xxx exclude if xxx is not defined # use FileHandle; use Getopt::Long; use strict; # Prototypes sub files_in($$); sub parse($$); sub help(); sub slashme($) { my ($dir) = @_; $dir =~ s#([^/])$#$&/#; # append a slash if necessary if ($dir eq './') { return ''; } else { return $dir; } } # Generate a list of files in a directory # sub files_in($$) { my ($dir, $path) = @_; my $dh = new FileHandle; my (@files, $file); # @ syntax if ($path =~ s/^@//) { my $fh; open($fh, '<', $path) or die "$path: $!\n"; @files = <$fh>; close($fh); chomp(@files); s:^$dir:: for @files; return @files; } $path = slashme($path); opendir $dh, length("$dir$path") ? "$dir$path" : '.' or die "$dir$path: $!\n"; while ($file = readdir($dh)) { next if $file =~ /^(\.|\.\.|\.#.*|CVS|.*~)$/; if (-d "$dir$path$file") { @files = (@files, files_in($dir, "$path$file/")); } else { #print "[$path$file]\n"; push @files, "$path$file"; } } closedir $dh; return @files; } # Parse a configuration file # Callback called with ($patch, @guards) arguments # sub parse($$) { my ($fh, $callback) = @_; my $line = ""; while (<$fh>) { chomp; s/(^|\s+)#.*//; if (s/\\$/ /) { $line .= $_; next; } $line .= $_; my @guards = (); foreach my $token (split /[\s\t\n]+/, $line) { next if $token eq ""; if ($token =~ /^[-+]/) { push @guards, $token; } else { #print "[" . join(",", @guards) . "] $token\n"; &$callback($token, @guards); } } $line = ""; } } # Command line options # my ($dir, $config, $default, $check, $list, $invert_match, $with_guards) = ( '', '-', 1, 0, 0, 0, 0); my @path; # Help text # sub help() { print "$0 - select from a list of files guarded by conditions\n"; print "SYNOPSIS: $0 [--prefix=dir] [--path=dir1:dir2:...]\n" . " [--default=0|1] [--check|--list] [--invert-match]\n" . " [--with-guards] [--config=file] symbol ...\n\n" . " Defaults: --default=$default\n" . " Use --path=\@ to read the list of entries from \n"; exit 0; } # Parse command line options # Getopt::Long::Configure ("bundling"); eval { unless (GetOptions ( 'd|prefix=s' => \$dir, 'c|config=s' => \$config, 'C|check' => \$check, 'l|list' => \$list, 'w|with-guards' => \$with_guards, 'p|path=s' => \@path, 'D|default=i' => \$default, 'v|invert-match' => \$invert_match, 'h|help' => sub { help(); exit 0; })) { help(); exit 1; } }; if ($@) { print "$@"; help(); exit 1; } @path = ('.') unless (@path); @path = split(/:/, join(':', @path)); my $fh = ($config eq '-') ? \*STDIN : new FileHandle($config) or die "$config: $!\n"; $dir = slashme($dir); if ($check) { # Check for duplicate files, or for files that are not referenced by # the specification. my $problems = 0; my @files; foreach (@path) { @files = (@files, files_in($dir, $_)); } my %files = map { $_ => 0 } @files; parse($fh, sub { my ($patch, @guards) = @_; if (exists $files{$patch}) { $files{$patch}++; } else { if ($config eq '-') { print "Not found: $dir$patch\n"; } else { print "In $config but not found: $dir$patch\n"; } $problems++; }}); $fh->close(); my ($file, $ref); while (($file, $ref) = each %files) { next if $ref == 1; if ($ref == 0) { if ($config eq '-') { print "Unused: $file\n"; } else { print "Not in $config: $file\n"; } $problems++; } if ($ref > 1) { print "Warning: multiple uses"; print " in $config" if $config ne '-'; print ": $file\n"; # This is not an error if the entries are mutually exclusive... } } exit $problems ? 1 : 0; } elsif ($list) { parse($fh, sub { my ($patch, @guards) = @_; print join(' ', @guards), ' ' if (@guards && $with_guards); print "$dir$patch\n"; }); } else { # Generate a list of patches to apply. my %symbols = map { $_ => 1 } @ARGV; parse($fh, sub { my ($patch, @guards) = @_; my $selected; if (@guards) { # If the first guard is -xxx, the patch is included by default; # if it is +xxx, the patch is excluded by default. $selected = ($guards[0] =~ /^-/); foreach (@guards) { /^([-+])(!?)(.*)?/ or die "Bad guard '$_'\n"; # Check if the guard matches if (($2 eq '!' && !exists $symbols{$3}) || ($2 eq '' && ( $3 eq '' || exists $symbols{$3}))) { # Include or exclude $selected = ($1 eq '+'); } } } else { # If there are no guards, use the specified default result. $selected = $default; } print "$dir$patch\n" if $selected ^ $invert_match; }); $fh->close(); exit 0; } __END__ =head1 NAME guards - select from a list of files guarded by conditions =head1 SYNOPSIS F [--prefix=F] [--path=F] [--default=<0|1>] [--check|--list] [--invert-match] [--with-guards] [--config=] I ... =head1 DESCRIPTION The script reads a configuration file that may contain so-called guards, file names, and comments, and writes those file names that satisfy all guards to standard output. The script takes a list of symbols as its arguments. Each line in the configuration file is processed separately. Lines may start with a number of guards. The following guards are defined: =over +I Include the file(s) on this line if the symbol I is defined. -I Exclude the file(s) on this line if the symbol I is defined. +!I Include the file(s) on this line if the symbol I is not defined. -!I Exclude the file(s) on this line if the symbol I is not defined. - Exclude this file. Used to avoid spurious I<--check> messages. =back The guards are processed left to right. The last guard that matches determines if the file is included. If no guard is specified, the I<--default> setting determines if the file is included. If no configuration file is specified, the script reads from standard input. The I<--check> option is used to compare the specification file against the file system. If files are referenced in the specification that do not exist, or if files are not enlisted in the specification file warnings are printed. The I<--path> option can be used to specify which directory or directories to scan. Multiple directories are separated by a colon (C<:>) character. The I<--prefix> option specifies the location of the files. Alternatively, the I<--path=@EfileE> syntax can be used to specify a file from which the file names will be read. Use I<--list> to list all files independent of any rules. Use I<--invert-match> to list only the excluded patches. Use I<--with-guards> to also include all inclusion and exclusion rules. =head1 AUTHOR Andreas Gruenbacher , SUSE Labs quilt-0.68/bin/PaxHeaders/patch-wrapper.in0000644000000000000000000000013214554455146015555 xustar0030 mtime=1706187366.764458342 30 atime=1707474719.277387367 30 ctime=1706187366.764458342 quilt-0.68/bin/patch-wrapper.in0000755000076500001440000001310314554455146017014 0ustar00khaliusers00000000000000#! @BASH@ # This is a wrapper to GNU patch that recognizes the most common # options and mimics GNU patch's behavior and output, and creates the # quilt metadata as if quilt push was used to apply the patches. When # options are used that this wrapper does not recognize, GNU patch is # used directly, and no quilt metadata will get created. PATCH=@PATCH@ original_options=("$@") # GNU patch recognizes these environment variables if [ -n "$SIMPLE_BACKUP_SUFFIX" ] then set -- --suffix "$SIMPLE_BACKUP_SUFFIX" "$@" fi if [ -n "$PATCH_VERSION_CONTROL" ] then set -- --version-control "$PATCH_VERSION_CONTROL" "$@" elif [ -n "$VERSION_CONTROL" ] then set -- --version-control "$VERSION_CONTROL" "$@" fi if [ -n "$POSIXLY_CORRECT" ] then set -- --posix "$@" fi backup_files() { declare dir=${QUILT_PC:-.pc}/$name if [ "$backup_mode" = --backup-if-mismatch ] then awk ' /^patching file / \ { file=$0 sub(/^patching file /, "", file) } /^Hunk #[0-9]* / \ { if (!(file in backup)) { backup[file] = 1 #print "ln -f "dir"/"file" "prefix file suffix > "/dev/stderr" system("ln -f "dir"/"file" "prefix file suffix) } } { if (!silent) print } ' dir="${dir//\\/\\\\}" \ prefix="${opt_prefix//\\/\\\\}" \ suffix="${opt_suffix//\\/\\\\}" \ silent="${opt_silent:+1}" elif [ -n "$opt_silent" ]; then cat > /dev/null fi if [ "$backup_mode" = --backup -a -d "$dir" ] then for file in $(find "$dir" -type f -a ! -path "$path/.timestamp") do dest=$opt_prefix${file#$dir/}$opt_suffix mkdir -p $(dirname "$dest") ln -f $file $dest done fi } find_pipe_patch() { declare patch=$1 patch=${patch//\[/\\[} patch=${patch//\]/\\]} set -- $(stat -c $'%a %N\n' /proc/*/fd/* 2>/dev/null \ | sed -nre "s,^300 \`(/proc/.*/fd)/.*' -> \`$patch'$,\\1,p") set -- $(stat -c $'%a %N\n' $1/* 2>/dev/null \ | sed -nre "s,^500 \`.*' -> \`(.*)',\\1,p") [ $# -eq 1 ] || set -- "$patch" echo "$1" } options=`getopt -q -o bsB:z:i:p:d: \ --long quiet,silent,backup,backup-if-mismatch \ --long no-backup-if-mismatch,prefix: \ --long suffix:,posix,input:,strip:,directory: -- "$@"` if [ $? -ne 0 ] then cannot_handle=1 else case "${LC_ALL:-${LC_MESSAGES:-${LANG}}}" in ''|C|POSIX|en*) ;; *) cannot_handle=1 ;; esac fi if [ -z "$cannot_handle" ]; then eval set -- "$options" backup_mode=--backup-if-mismatch opt_prefix= opt_suffix= opt_silent= opt_input= opt_strip= opt_directory=$PWD while : do case "$1" in -b|--backup) backup_mode=--backup ;; --backup-if-mismatch) backup_mode=--backup-if-mismatch ;; -d|--directory) cd "$2" || exit 1 shift ;; -i|--input) opt_input=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; --no-backup-if-mismatch) backup_mode=--no-backup-if-mismatch ;; -B|--prefix) opt_prefix=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; -s|--silent|--quiet) opt_silent=--silent ;; -p|--strip) opt_strip=-p$2 new_options[${#new_options[@]}]=-p$2 shift ;; -z|--suffix) opt_suffix=$2 new_options[${#new_options[@]}]=$1 new_options[${#new_options[@]}]=$2 shift ;; --posix) backup_mode=--no-backup-if-mismatch new_options[${#new_options[@]}]=$1 ;; --) shift break ;; *) new_options[${#new_options[@]}]=$1 ;; esac shift done [ -n "$opt_prefix$opt_suffix" ] || opt_suffix=.orig if [ -z "$opt_strip" -o $# -ne 0 ] then cannot_handle=1 fi fi if [ -z "$cannot_handle" ] then if [ -n "$opt_input" ] then patch=$opt_input elif [ ! -e /proc/self ] then echo "patch-wrapper: /proc not mounted!" >&2 exit 1 elif [ -e /proc/self/fd/0 ] then patch=$(readlink /proc/self/fd/0) case "$patch" in pipe:*) patch=$(find_pipe_patch "$patch") ;; esac fi patch=${patch#$PWD/} if [ ! -e "$patch" ] then cannot_handle=1 fi fi if [ -n "$cannot_handle" ] then $PATCH "${original_options[@]}" exit fi quilt_patches=${QUILT_PATCHES:-patches} if [ "${patch#$RPM_SOURCE_DIR}" != "$patch" ] then name=SOURCES/${patch#$RPM_SOURCE_DIR/} if [ ! -e "$quilt_patches/SOURCES" ] then mkdir -p "$quilt_patches" ln -s $RPM_SOURCE_DIR "$quilt_patches/SOURCES" fi elif [ "${patch#$RPM_BUILD_DIR}" != "$patch" ] then name=BUILD/${patch#$RPM_BUILD_DIR/} if [ ! -e "$quilt_patches/BUILD" ] then mkdir -p "$quilt_patches" ln -s $RPM_BUILD_DIR "$quilt_patches/BUILD" fi else name=${patch#/} dir=$(dirname "$quilt_patches/$name") mkdir -p "$dir" if [ "${patch:0:1}" = / ] then ln -s "$patch" "$quilt_patches/${name#/}" else while ! [ "$dir/$updir$name" -ef "$patch" ] do updir=$updir../ [ ${#updir} -gt 96 ] && break done if [ "$dir/$updir$name" -ef "$patch" ] then ln -s "$updir$patch" "$quilt_patches/$name" fi fi fi if [ "$opt_strip" = -p1 ]; then echo "$name" else echo "$name $opt_strip" fi >> $quilt_patches/series $PATCH "${new_options[@]}" --backup --prefix "${QUILT_PC:-.pc}/$name/" \ | backup_files status=${PIPESTATUS[0]} if [ $status -eq 0 ] then dir=${QUILT_PC:-.pc}/$name if [ ! -e "$dir" ] then mkdir -p "$dir" fi echo -n "" > $dir/.timestamp if [ ! -e ${QUILT_PC:-.pc}/.version ] then echo 2 > ${QUILT_PC:-.pc}/.version fi echo "$name" >> "${QUILT_PC:-.pc}/applied-patches" fi exit $status quilt-0.68/quilt/PaxHeaders/upgrade.in0000644000000000000000000000013214554455146015015 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.076370424 30 ctime=1706187366.764458342 quilt-0.68/quilt/upgrade.in0000644000076500001440000000465614554455146016266 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # Don't abort in version or series check. skip_version_check=1 skip_series_check=1 usage() { printf $"Usage: quilt upgrade\n" if [ x$1 = x-h ] then printf $" Upgrade the meta-data in a working tree from an old version of quilt to the current version. This command is only needed when the quilt meta-data format has changed, and the working tree still contains old-format meta-data. In that case, quilt will request to run \`quilt upgrade'. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if version_check then printf $"The quilt meta-data in %s are already in the version %s format; nothing to do\n" "$QUILT_PC/" "$DB_VERSION" exit 0 fi printf $"Converting meta-data to version %s\n" "$DB_VERSION" # Previously we have stripped standard patch extensions (.dif .diff # .patch .gz .bz2) of patch names; we have used the mangled names in # .pc/applied-patches, .pc/$patch/, but not in the series file. for patch in $(applied_patches) do proper_name="$(grep "^$(quote_grep_re $patch)"'\(\|\.patch\|\.diff?\)\(\|\.gz\|\.bz2\)\([ \t]\|$\)' $SERIES)" proper_name=${proper_name#$QUILT_PATCHES/} proper_name=${proper_name%% *} if [ -z "$proper_name" ] then failed=1 break fi if [ "$patch" != "$proper_name" -a -d $QUILT_PC/$patch ] \ && grep -q "^$(quote_grep_re $patch)\$" \ $QUILT_PC/applied-patches then mv $QUILT_PC/$patch $QUILT_PC/$proper_name \ || failed=1 rename_in_db $patch $proper_name \ || failed=1 [ -z "$failed" ] || break fi done if [ -n "$failed" ] then printf $"Conversion failed\n" >&2 printf $" Please remove all patches using \`quilt pop -a' from the quilt version used to create this working tree, or remove the %s directory and apply the patches from scratch.\n" "$QUILT_PC" >&2 exit 1 fi echo $DB_VERSION > $QUILT_PC/.version ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/unapplied.in0000644000000000000000000000013214554455146015347 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.081370487 30 ctime=1706187366.764458342 quilt-0.68/quilt/unapplied.in0000644000076500001440000000226314554455146016610 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt unapplied [patch]\n" if [ x$1 = x-h ] then printf $" Print a list of patches that are not applied, or all patches that follow the specified patch in the series file. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ $# -eq 1 ] then start=$(find_patch_in_series "$1") || exit 1 patch=$(patch_after "$start") [ -n "$start" -a -z "$patch" ] && exit else patch=$(find_unapplied_patch) || exit 1 fi setup_pager printf "$(patch_format)\n" "$patch" $(patches_after "$patch") ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/top.in0000644000000000000000000000013214554455146014170 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.087370562 30 ctime=1706187366.764458342 quilt-0.68/quilt/top.in0000644000076500001440000000165214554455146015432 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt top\n" if [ x$1 = x-h ] then printf $" Print the name of the topmost patch on the current stack of applied patches. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns top=$(find_top_patch) || exit 2 print_patch $top ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/snapshot.in0000644000000000000000000000013214554455146015225 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.092370624 30 ctime=1706187366.764458342 quilt-0.68/quilt/snapshot.in0000644000076500001440000000305214554455146016463 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt snapshot [-d]\n" if [ x$1 = x-h ] then printf $" Take a snapshot of the current working state. After taking the snapshot, the tree can be modified in the usual ways, including pushing and popping patches. A diff against the tree at the moment of the snapshot can be generated with \`quilt diff --snapshot'. -d Only remove current snapshot. " exit 0 else exit 1 fi } options=`getopt -o dh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -d) opt_remove=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns snap_subdir=.snap # Clean up from previous snapshot rm -rf $QUILT_PC/$snap_subdir if [ -n "$opt_remove" ] then exit 0 fi # Save current working state create_db mkdir -p $QUILT_PC/$snap_subdir for patch in $(applied_patches); do files_in_patch $patch done \ | awk ' # filter out duplicates { if (seen[$0]) next seen[$0] = 1 } { print } ' \ | $QUILT_DIR/scripts/backup-files -c -s -f - -B "$QUILT_PC/$snap_subdir/" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/setup.in0000644000000000000000000000013214561377435014530 xustar0030 mtime=1707474717.908370545 30 atime=1711552108.097370687 30 ctime=1707475528.119326205 quilt-0.68/quilt/setup.in0000644000076500001440000003052314561377435015771 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # Version and series checks are irrelevant to this command. skip_version_check=1 skip_series_check=1 check_for_existing_directories() { local tag dir last_dir arg status=0 while read tag dir arg do [ "$dir" != "." -a "$dir" != "$last_dir" ] || continue if [ -e "$prefix$dir" ] then printf $"Directory %s exists\n" \ "$prefix$dir" >&2 status=1 fi last_dir=$dir done < $tmpfile return $status } check_for_existing_files() { local tag dir last_dir arg status=0 while read tag dir arg do [ "$tag" = "patch" -a "$dir" != "$last_dir" ] || continue if [ -e "$prefix$dir/$QUILT_PATCHES" ] then printf $"Directory %s exists\n" \ "$prefix$dir/$QUILT_PATCHES" >&2 status=1 fi if [ -e "$prefix$dir/$QUILT_SERIES" ] then printf $"File %s exists\n" \ "$prefix$dir/$QUILT_SERIES" >&2 status=1 fi last_dir=$dir done < $tmpfile return $status } # Resolve ".." in path and clean up double slashes and "." normalize_path() { echo "$1" | sed -r -e 's://:/:g' \ -e 's:/\.(/\.)*(/|$):\2:g' \ -e ':again' \ -e 's:/[^/]+/\.\.(/|$):\1:g' \ -e 'tagain' } create_symlink() { local target=$1 link=$2 up if [ "${target:0:1}" = / -o "${link:0:1}" = / ] then [ "${target:0:1}" = / ] || target=$PWD/$target ln -s "$target" "$link" return fi set -- "$(normalize_path "$PWD/$target")" \ "$(normalize_path "$PWD/$link")" while [ "${1%%/*}" = "${2%%/*}" ] do set -- "${1#*/}" "${2#*/}" done up=$(echo "$2" | sed -r -e 's:(^|/)[^/]*$::' -e 's:[^/]+:..:g') set -- "${up:+$up/}$1" set -- "${1%/}" ln -s "${1:-.}" "$link" } dir_to_dir() { local from=$1 to=$2 [ "${from:0:1}" = / ] || from=$PWD/$from from=$(normalize_path "$from") [ "${to:0:1}" = / ] || to=$PWD/$to to=$(normalize_path "$to") # If the target is a subdirectory of the origin, we can express the path # in a relative way. Otherwise, return the absolute path. if [ "${to:0:${#from}}" = "$from" ] then to=${to:${#from}} to=${to#/} fi echo "$to" } # create md5 sums, also for uncompressed files create_md5sums() { local sourcedir=$1 output=$2 local file basename filetype echo -n "### md5sum: " >&4 shopt -s nullglob for file in "$sourcedir"* do basename=${file##*/} case "$basename" in ready|bigpack|_constraints|_service|baselibs.conf|MD5SUMS|MD5SUMS.meta|*.spec|*.changes|*.sig|*.sign|*rpmlintrc) continue ;; # In fast mode, we are only interested in patches, so filter out # archives *.tar|*.tar.Z|*.tar.gz|*.tgz|*.tar.bz2|*.tar.xz|*.tar.lz|*.tar.zst|*.zip|*.7z) [ -n "$QUILT_SETUP_FAST" ] && continue ;; esac [ -f "$file" ] || continue echo -n "." >&4 echo "md5sum < $file" >&5 set -- $(md5sum < "$file") echo "$1 $basename" case "$file" in *.lzma) # file doesn't reliably recognize lzma-compressed files filetype="lzma" ;; *.xz) # old versions of file don't know about xz-compressed # files filetype="xz" ;; *) filetype=$(file -b "$file") ;; esac case "$filetype" in compress*|gzip*) echo -n "g" >&4 echo "gzip -cd $file | md5sum" >&5 set -- $(gzip -cd "$file" | md5sum) echo "$1 $basename" ;; bzip2*) echo -n "b" >&4 echo "bzip2 -cd $file | md5sum" >&5 set -- $(bzip2 -cd "$file" | md5sum) echo "$1 $basename" ;; xz*|XZ*) echo -n "x" >&4 echo "xz -cd $file | md5sum" >&5 set -- $(xz -cd "$file" | md5sum) echo "$1 $basename" ;; lzma*) echo -n "l" >&4 echo "lzma -cd $file | md5sum" >&5 set -- $(lzma -cd "$file" | md5sum) echo "$1 $basename" ;; lzip*) echo -n "l" >&4 echo "lzip -cd $file | md5sum" >&5 set -- $(lzip -cd "$file" | md5sum) echo "$1 $basename" ;; "Zstandard compressed data"*) echo -n "z" >&4 echo "zstd -cd $file | md5sum" >&5 set -- $(zstd -cd "$file" | md5sum) echo "$1 $basename" ;; esac done > $output echo >&4 shopt -u nullglob } # Uses global variables: verbose, sourcedir, targetdir inspect() { local specfile=$1 specdir local abs_sourcedir=$sourcedir tmpdir [ "${abs_sourcedir:0:1}" = / ] || abs_sourcedir=$PWD/$abs_sourcedir if [ "${specfile:0:1}" = / ] then specdir=$(dirname "$specfile") specfile=${spec_file##*/} else specdir=$PWD fi tmpdir=$(gen_tempfile -d ${VARTMPDIR:-/var/tmp}/${0##*/}) mkdir -p $tmpdir || exit 1 add_exit_handler "rm -rf $tmpdir" mkdir -p $tmpdir/bin ln -s $QUILT_DIR/scripts/inspect-wrapper $tmpdir/bin/patch ln -s $QUILT_DIR/scripts/inspect-wrapper $tmpdir/bin/tar ln -s $QUILT_DIR/scripts/inspect-wrapper $tmpdir/bin/unzip ln -s $QUILT_DIR/scripts/inspect-wrapper $tmpdir/bin/7z # Redirect file descriptors # 5 is used in verbose mode, 4 in non-verbose mode, and 2 for both (real errors) if [ -n "$verbose" ] then exec 3>&1 5>&2 4>/dev/null else exec 3>&1 4>&2 5>/dev/null fi if [ -n "$QUILT_SETUP_FAST" ] then # Fast mode [ -d "$targetdir" ] || mkdir -p "$targetdir" || exit 1 ln -s "$targetdir" $tmpdir/build export -f create_md5sums else # Legacy mode mkdir -p $tmpdir/build create_md5sums "$sourcedir" $tmpdir/md5sums fi export -f normalize_path dir_to_dir # let rpm do all the dirty specfile stuff ... echo -n "### rpmbuild: " >&4 PATH="$tmpdir/bin:$PATH" \ rpmbuild --eval "%define _sourcedir $abs_sourcedir" \ --eval "%define _specdir $specdir" \ --eval "%define _builddir $tmpdir/build" \ --eval "%define __patch $tmpdir/bin/patch" \ --eval "%define __tar $tmpdir/bin/tar" \ --eval "%define __unzip $tmpdir/bin/unzip" \ --eval "%define __7zip $tmpdir/bin/7z" \ --eval "$DEFINE_FUZZ" \ --nodeps \ -bp "$specdir/$specfile" < /dev/null >&5 2>&5 status=$? echo >&4 return $status } usage() { printf $"Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--slow|--fast] {specfile|seriesfile}\n" if [ x$1 = x-h ] then printf $" Initializes a source tree from an rpm spec file or a quilt series file. -d Optional path prefix for the resulting source tree. --sourcedir Directory that contains the package sources. Defaults to \`.'. -v Verbose debug output. --fuzz=N Set the maximum fuzz factor (needs rpm 4.6 or later). --slow Use the original, slow method to process the spec file. In this mode, rpmbuild generates a working tree in a temporary directory while all its actions are recorded, and then everything is replayed from scratch in the target directory. --fast Use the new, faster method to process the spec file. In this mode, rpmbuild is told to generate a working tree directly in the target directory. This is the default (since quilt version 0.67). The setup command is only guaranteed to work properly on spec files where applying all the patches is the last thing done in the %%prep section. This is a design limitation due to the fact that quilt can only operate on patches. If other commands in the %%prep section modify the patched files, they must come first, otherwise you won't be able to push the patch series. For example, a %%prep section where you first unpack a tarball, then apply patches, and lastly perform a tree-wide string substitution, is not OK. For \"quilt setup\" to work, it would have to be changed to unpacking the tarball, then performing the tree-wide string substitution, and lastly applying the patches. " exit 0 else exit 1 fi } options=`getopt -o d:vh --long sourcedir:,fuzz:,slow,fast -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" export QUILT_SETUP_FAST=1 prefix= sourcedir= while true do case "$1" in -d) prefix=${2%/}/ shift 2 ;; -h) usage -h ;; -v) verbose=1 shift ;; --sourcedir) sourcedir=${2%/}/ shift 2 ;; --fuzz) # Only works with rpm 4.6 and later DEFINE_FUZZ="%define _default_patch_fuzz $2" shift 2 ;; --slow) QUILT_SETUP_FAST= shift ;; --fast) QUILT_SETUP_FAST=1 shift ;; --) shift break ;; esac done if [ $# -ne 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ -n "$SUBDIR" ] then # Damn, found an enclosing quilt directory; don't follow its settings cd $SUBDIR unset SUBDIR unset QUILT_PC QUILT_PATCHES QUILT_SERIES : ${QUILT_PC:=.pc} : ${QUILT_PATCHES:=patches} : ${QUILT_SERIES:=series} fi tmpfile=$(gen_tempfile) add_exit_handler "rm -f $tmpfile" # The patches link will point to the source directory, while extra patches # may be available under $prefix. If the latter is a subdirectory of the former, # a prefix can be added to fix up the path to the extra patches. export QUILT_SETUP_PREFIX=$(dir_to_dir "$sourcedir" "$prefix") case "$1" in *.spec) spec_file=$1 # check if rpmbuild is installed before running inspect check_external_tool rpmbuild rpm-build if [ -n "$QUILT_SETUP_FAST" ] then if [ "${prefix:0:1}" = / ] then targetdir=$prefix else targetdir=$PWD/$prefix fi fi if ! inspect "$spec_file" 2>&1 > $tmpfile then printf $"The %%prep section of %s failed; results may be incomplete\n" "$spec_file" if [ -z "$verbose" ] then printf $"The -v option will show rpm's output\n" fi fi ;; *) series_file=$1 # parse series file while read line; do set -- $line case "$@" in "# Sourcedir: "*) shift 2 tar_dir="$@" tar_dir=${tar_dir// /\\ } ;; "# Source: "*) shift 2 source="$@" filetype=$(file -b "$source") case "$filetype" in Zip*) echo "unzip ${tar_dir:-.} ${source// /\\ }" ;; 7z*) echo "7z ${tar_dir:-.} ${source// /\\ }" ;; *) echo "tar ${tar_dir:-.} ${source// /\\ }" ;; esac ;; "# Patchdir: "*) shift 2 patch_dir="$@" patch_dir=${patch_dir// /\\ } ;; ''|'#'*) ;; *) echo "patch ${patch_dir:-.} $@" ;; esac done < "$series_file" > $tmpfile ;; esac # If running on a spec file in fast mode, the source tree is already unpacked; # in all other cases, we must prepare the source tree now if [ -z "$QUILT_SETUP_FAST" -o -n "$series_file" ] then # Make sure that unpacking will not overwrite anything check_for_existing_directories || exit 1 while read tag dir arg1 arg2 do [ "${arg1:0:1}" != '#' ] || continue case "$tag" in tar) tarball=$sourcedir$arg1 if [ ! -e "$tarball" ] then printf $"File %s not found\n" "$tarball" >&2 exit 1 fi printf $"Unpacking archive %s\n" "$tarball" mkdir -p "${prefix:-.}" "$prefix$dir" cat_file "$tarball" \ | tar xf - -C "$prefix$dir" ;; unzip) tarball=$sourcedir$arg1 if [ ! -e "$tarball" ] then printf $"File %s not found\n" "$tarball" >&2 exit 1 fi printf $"Unpacking archive %s\n" "$tarball" mkdir -p "${prefix:-.}" "$prefix$dir" unzip -qqo "$tarball" -d "$prefix$dir" ;; 7z) tarball=$sourcedir$arg1 if [ ! -e "$tarball" ] then printf $"File %s not found\n" "$tarball" >&2 exit 1 fi printf $"Unpacking archive %s\n" "$tarball" mkdir -p "${prefix:-.}" "$prefix$dir" 7z x -bd "$tarball" -o"$prefix$dir" ;; esac done < $tmpfile fi if ! check_for_existing_files then echo $"Trying alternative patches and series names..." >&2 QUILT_PATCHES=quilt_patches QUILT_SERIES=quilt_series check_for_existing_files || exit 1 fi series_header() { local tar_dir=$1 tar_file=$2 dir=$3 echo "# Patch series file for quilt, created by ${0##*/}" [ -n "$tar_dir" ] && echo "# Sourcedir: $tar_dir" [ -n "$tar_file" ] && echo "# Source: $tar_file" echo "# Patchdir: $dir" echo "#" } while read tag dir arg1 arg2 do case "$tag" in tar|unzip|7z) tar_dir=$dir [ "$tar_dir" = . ] && tar_dir= tar_file=$arg1 ;; patch) if [ ! -e "$prefix$dir/$QUILT_PATCHES" ] then create_symlink "$sourcedir" "$prefix$dir/$QUILT_PATCHES" (cd "$prefix$dir" && create_db) fi if [ -n "$series_file" ] then [ -e "$prefix$dir/$QUILT_SERIES" ] \ || create_symlink "$series_file" \ "$prefix$dir/$QUILT_SERIES" else if ! [ -e "$prefix$dir/$QUILT_SERIES" ] then series_header "$tar_dir" "$tar_file" "$dir" \ > "$prefix$dir/$QUILT_SERIES" fi echo "$arg1" $arg2 >> "$prefix$dir/$QUILT_SERIES" fi ;; esac done < $tmpfile ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/series.in0000644000000000000000000000013114554455146014657 xustar0030 mtime=1706187366.764458342 29 atime=1711552108.10237075 30 ctime=1706187366.764458342 quilt-0.68/quilt/series.in0000644000076500001440000000342614554455146016123 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt series [--color[=always|auto|never]] [-v]\n" if [ x$1 = x-h ] then printf $" Print the names of all patches in the series file. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). -v Verbose, more user friendly output. " exit 0 else exit 1 fi } cat_patches() { local color=$1 prefix=$2 shift 2 if [ $# -ge 1 ] then printf "$color$prefix$(patch_format)$color_clear\n" "$@" fi } options=`getopt -o vh --long color:: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns setup_pager if [ -n "$opt_verbose$opt_color" ] then [ -n "$opt_color" ] && setup_colors top=$(top_patch) if [ -n "$top" ] then cat_patches "$color_series_app" \ "${opt_verbose:++ }" $(applied_before $top) cat_patches "$color_series_top" \ "${opt_verbose:+= }" $top fi cat_patches "$color_series_una" \ "${opt_verbose:+ }" $(patches_after $top) else cat_patches "" "" $(cat_series) fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/revert.in0000644000000000000000000000013214554455146014675 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.108370825 30 ctime=1706187366.764458342 quilt-0.68/quilt/revert.in0000644000076500001440000000462414554455146016141 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt revert [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" Revert uncommitted changes to the topmost or named patch for the specified file(s): after the revert, 'quilt diff -z' will show no differences for those files. Changes to files that are modified by patches on top of the specified patch cannot be reverted. -P patch Revert changes in the named patch. " exit 0 else exit 1 fi } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch="$2" shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns patch=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "${@/#/$SUBDIR}" do if ! file_in_patch "$file" $patch then printf $"File %s is not in patch %s\n" \ "$file" "$(print_patch $patch)" >&2 status=1 continue fi next_patch=$(next_patch_for_file $patch "$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$file" "$(print_patch $next_patch)" status=1 continue fi done [ $status -eq 0 ] || exit $status workdir=$(gen_tempfile -d "$PWD") add_exit_handler "rm -rf \"$workdir\"" apply_patch_temporarily "$workdir" $patch "${@/#/$SUBDIR}" || exit 1 for file in ${*/#/$SUBDIR} do if [ -s "$workdir/$file" ] then if [ -e "$file" ] && diff -q "$workdir/$file" "$file" > /dev/null then printf $"File %s is unchanged\n" "$file" continue fi mkdir -p "$(dirname "$file")" cp -p "$workdir/$file" "$file" else if [ ! -e "$file" ] then printf $"File %s is unchanged\n" "$file" continue fi rm -f "$file" fi if [ $? -ne 0 ] then printf $"Failed to revert changes to %s in patch %s\n" \ "$file" "$(print_patch $patch)" >&2 status=1 else printf $"Changes to %s in patch %s reverted\n" \ "$file" "$(print_patch $patch)" fi done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/rename.in0000644000000000000000000000013214554455146014635 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.113370887 30 ctime=1706187366.764458342 quilt-0.68/quilt/rename.in0000644000076500001440000000401314554455146016071 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt rename [-P patch] new_name\n" if [ x$1 = x-h ] then printf $" Rename the topmost or named patch. -P patch Patch to rename. " exit 0 else exit 1 fi } move_file() { local old=$1 new=$2 newdir=$(dirname "$2") [ -d "$newdir" ] || mkdir -p "$newdir" || return 1 mv "$old" "$new" || return 1 rmdir -p "$(dirname "$old")" 2> /dev/null return 0 } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns patch=$(find_patch_in_series "$opt_patch") || exit 1 new_patch=${1#$QUILT_PATCHES/} if patch_in_series "$new_patch" || \ [ -d "$QUILT_PC/$new_patch" ] || \ [ -e "$(patch_file_name "$new_patch")" ] then printf $"Patch %s exists already, please choose a different name\n" \ "$(print_patch "$new_patch")" >&2 exit 1 fi if ( is_applied "$patch" && \ ( ! rename_in_db "$patch" "$new_patch" || \ ! move_file "$QUILT_PC/$patch" \ "$QUILT_PC/$new_patch" ) ) || \ ! rename_in_series "$patch" "$new_patch" || \ ( [ -e "$(patch_file_name "$patch")" ] && \ ! move_file "$(patch_file_name "$patch")" \ "$(patch_file_name "$new_patch")" ) then printf $"Renaming of patch %s to %s failed\n" \ "$(print_patch "$patch")" \ "$(print_patch "$new_patch")" >&2 exit 1 fi printf $"Patch %s renamed to %s\n" \ "$(print_patch "$patch")" \ "$(print_patch "$new_patch")" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/remove.in0000644000000000000000000000013214554455146014663 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.119370962 30 ctime=1706187366.764458342 quilt-0.68/quilt/remove.in0000644000076500001440000000411714554455146016124 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt remove [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" Remove one or more files from the topmost or named patch. Files that are modified by patches on top of the specified patch cannot be removed. -P patch Remove named files from the named patch. " exit 0 else exit 1 fi } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns patch=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "$@" do if ! file_in_patch "$SUBDIR$file" "$patch" then printf $"File %s is not in patch %s\n" \ "$SUBDIR$file" "$(print_patch "$patch")" >&2 status=1 continue fi next_patch=$(next_patch_for_file "$patch" "$SUBDIR$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$SUBDIR$file" "$(print_patch "$next_patch")" status=1 continue fi # Restore file from backup if ! $QUILT_DIR/scripts/backup-files -r -t -s -B "$QUILT_PC/$patch/" "$SUBDIR$file" then printf $"Failed to remove file %s from patch %s\n" \ "$SUBDIR$file" "$(print_patch "$patch")" >&2 status=1 continue fi if [ -e "$(dirname "$QUILT_PC/$patch~refresh")" -a \ -e "$(patch_file_name "$patch")" ] then # The patch must be refreshed in order to get rid of the # patch permanently. touch "$QUILT_PC/$patch~refresh" fi printf $"File %s removed from patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/refresh.in0000644000000000000000000000013214554505105015013 xustar0030 mtime=1706199621.113445331 30 atime=1711552108.124371025 30 ctime=1706199621.117445382 quilt-0.68/quilt/refresh.in0000644000076500001440000001770614554505105016264 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-trailing-whitespace] [patch]\n" if [ x$1 = x-h ] then printf $" Refreshes the specified patch, or the topmost patch by default. Documentation that comes before the actual patch in the patch file is retained. It is possible to refresh patches that are not on top. If any patches on top of the patch to refresh modify the same files, the script aborts by default. Patches can still be refreshed with -f. In that case this script will print a warning for each shadowed file, changes by more recent patches will be ignored, and only changes in files that have not been modified by any more recent patches will end up in the specified patch. -p n Create a -p n style patch (-p0 or -p1 supported). -p ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. -u, -U num, -c, -C num Create a unified diff (-u, -U) with num lines of context. Create a context diff (-c, -C) with num lines of context. The number of context lines defaults to 3. -z[new_name] Create a new patch containing the changes instead of refreshing the topmost patch. If no new name is specified, \`-2' is added to the original patch name, etc. (See the fork command.) --no-timestamps Do not include file timestamps in patch headers. --no-index Do not output Index: lines. --diffstat Add a diffstat section to the patch header, or replace the existing diffstat section. -f Enforce refreshing of a patch that is not on top. --backup Create a backup copy of the old version of a patch as patch~. --sort Sort files by their name instead of preserving the original order. --strip-trailing-whitespace Strip trailing whitespace at the end of lines. " exit 0 else exit 1 fi } die() { local status=$1 [ -n "$tmp_patch" ] && rm -f $tmp_patch [ -n "$tmp_result" ] && rm -f $tmp_result [ -n "$workdir" ] && rm -rf "$workdir" exit $status } options=`getopt -o p:uU:cC:fz::h --long no-timestamps,diffstat,backup,sort \ --long no-index \ --long strip-trailing-whitespace -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_format=-u while true do case "$1" in -p) opt_strip_level=$2 shift 2 ;; -f) opt_force=1 shift ;; -u|-c) opt_format=$1 shift ;; -U|-C) opt_format="$1 $2" shift 2 ;; -z) opt_fork=1 opt_new_name=$2 shift 2 ;; -h) usage -h ;; --no-timestamps) QUILT_NO_DIFF_TIMESTAMPS=1 shift ;; --no-index) QUILT_NO_DIFF_INDEX=1 shift ;; --diffstat) opt_diffstat=1 shift ;; --backup) QUILT_BACKUP=1 shift ;; --sort) opt_sort=1 shift ;; --strip-trailing-whitespace) opt_strip_whitespace=1 shift ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns QUILT_DIFF_OPTS="$QUILT_DIFF_OPTS $opt_format" patch=$(find_applied_patch "$1") || exit 1 # Properly handle spaces in file names saved_IFS=$IFS IFS=$'\n' if [ -z "$opt_sort" ] then files=( $(files_in_patch_ordered $patch) ) else files=( $(files_in_patch $patch | sort) ) fi IFS=$saved_IFS if [ -n "$opt_fork" -a $# -ne 0 ] then printf $"Can only refresh the topmost patch with -z currently\n" >&2 exit 1 fi if [ -n "$opt_fork" ]; then old_patch=$patch old_patch_args=$(patch_args "$old_patch") if [ -n "$opt_new_name" ] then patch=$opt_new_name else patch=$(next_filename "$patch") fi if [ -e "$(patch_file_name "$patch")" ]; then printf $"Patch %s exists already\n" "$(print_patch "$patch")" >&2 exit 1 fi fi if [ -z "$opt_strip_level" ] then opt_strip_level=$(patch_strip_level "$patch") fi case "$opt_strip_level" in 0 | 1) num_strip_level=$opt_strip_level ;; ab) num_strip_level=1 ;; *) printf $"Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\n" \ "$opt_strip_level" >&2 exit 1 ;; esac trap "die 1" SIGTERM if [ -n "$opt_fork" ]; then workdir=$(gen_tempfile -d "$PWD/quilt") apply_patch_temporarily "$workdir" "$old_patch" || exit 1 fi tmp_patch=$(gen_tempfile) for file in "${files[@]}" do if [ -n "$opt_fork" ]; then old_file=$workdir/$file new_file=$file else old_file=$(backup_file_name "$patch" "$file") next_patch=$(next_patch_for_file "$patch" "$file") if [ -z "$next_patch" ] then new_file=$file else new_file=$(backup_file_name "$next_patch" "$file") files_were_shadowed=1 fi fi if ! diff_file "$file" "$old_file" "$new_file" then die 1 fi if [ -n "$files_were_shadowed" -a -z "$opt_force" ] then printf $"More recent patches modify files in patch %s. Enforce refresh with -f.\n" "$(print_patch "$patch")" >&2 die 1 fi if [ -n "$files_were_shadowed" -a -n "$opt_strip_whitespace" ] then printf $"Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\n" >&2 fi done >> $tmp_patch if [ -n "$opt_fork" -a ! -s $tmp_patch ] then printf $"Nothing in patch %s\n" "$(print_patch "$patch")" >&2 die 1 fi # Check for trailing whitespace if [ -z "$opt_strip_whitespace" ] then $QUILT_DIR/scripts/remove-trailing-ws -n -p$num_strip_level \ < $tmp_patch else tmp_patch2=$(gen_tempfile) if $QUILT_DIR/scripts/remove-trailing-ws -p$num_strip_level \ < $tmp_patch > $tmp_patch2 then rm -f $tmp_patch tmp_patch=$tmp_patch2 fi fi # FIXME: no stripping of non-topmost patch !!! patch_file=$(patch_file_name "$patch") trap "" SIGINT tmp_result=$(gen_tempfile) || die 1 prev_patch_file=$patch_file [ -e "$prev_patch_file" ] || prev_patch_file=/dev/null if [ -n "$opt_diffstat" ] then cat_file "$prev_patch_file" | patch_header \ | awk ' function print_diffstat(arr, i) { if (system("diffstat '"$QUILT_DIFFSTAT_OPTS \ -p$num_strip_level \ $tmp_patch | sed -e s:^:"'" prefix ":")) exit 1 } { prefix="" if (index($0, "#") == 1) prefix="#" } /^#? .* \| *[1-9][0-9]* / { eat = eat $0 "\n" next } /^#? .* files? changed(, .* insertions?\(\+\))?(, .* deletions?\(-\))?/ \ { print_diffstat() diffstat_printed=1 eat = "" next } { print eat $0 eat = "" } END { printf "%s", eat if (!diffstat_printed) { print "---" print_diffstat() print prefix } } ' > $tmp_result else cat_file "$prev_patch_file" | patch_header \ > $tmp_result fi cat $tmp_patch >> $tmp_result mkdir -p $(dirname "$patch_file") if [ -e "$patch_file" ] && \ diff -q "$patch_file" $tmp_result > /dev/null then printf $"Patch %s is unchanged\n" "$(print_patch "$patch")" elif cat_to_new_file "$patch_file" $QUILT_BACKUP < $tmp_result then if [ -n "$opt_fork" ] then if ! insert_in_series "$patch" "$old_patch_args" then printf $"Failed to insert patch %s into file series\n" \ "$(print_patch "$patch")" >&2 rm -f "$patch_file" exit 1 fi if ! rm -rf "$QUILT_PC/$patch" || \ ! mv "$workdir" "$QUILT_PC/$patch" || \ ! echo "$patch" >> $QUILT_PC/applied-patches then printf $"Failed to create patch %s\n" \ "$(print_patch "$patch")" >&2 exit 1 fi printf $"Fork of patch %s created as %s\n" \ "$(print_patch "$old_patch")" \ "$(print_patch "$patch")" else if [ -s $tmp_patch ] then printf $"Refreshed patch %s\n" "$(print_patch "$patch")" else printf $"Nothing in patch %s\n" "$(print_patch "$patch")" fi fi touch "$QUILT_PC/$patch/.timestamp" else die 1 fi rm -f "$QUILT_PC/$patch~refresh" if ! change_db_strip_level -p$num_strip_level "$patch" then die 1 fi die 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/push.in0000644000000000000000000000013214554455146014345 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.129371087 30 ctime=1706187366.764458342 quilt-0.68/quilt/push.in0000644000076500001440000002116114554455146015604 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\n" if [ x$1 = x-h ] then printf $" Apply patch(es) from the series file. Without options, the next patch in the series file is applied. When a number is specified, apply the specified number of patches. When a patch name is specified, apply all patches up to and including the specified patch. Patch names may include the patches/ prefix, which means that filename completion can be used. -a Apply all patches in the series file. -q Quiet operation. -f Force apply, even if the patch has rejects. -v Verbose operation. --fuzz=N Set the maximum fuzz factor (default: 2). -m, --merge[=merge|diff3] Merge the patch file into the original files (see patch(1)). --leave-rejects Leave around the reject files patch produced, even if the patch is not actually applied. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). --refresh Automatically refresh every patch after it was successfully applied. " exit 0 else exit 1 fi } interrupt() { local patch=$1 rollback_patch "$patch" printf $"Interrupted by user; patch %s was not applied.\n" \ "$(print_patch "$patch")" >&2 exit 1 } colorize() { if [ -n "$opt_color" ]; then awk ' { if (/FAILED|hunks? ignored|can'\''t find file|file .* already exists|NOT MERGED/) print "'$color_patch_fail'" $0 "'$color_clear'" else if (/already applied$/) print "'$color_patch_fuzz'" $0 "'$color_clear'" else if (/^Hunk/) { sub(/^Hunk .* with fuzz [0-9]*/, "'$color_patch_fuzz'&'$color_clear'") sub(/offset -?[0-9]* lines?/, "'$color_patch_offs'&'$color_clear'") print } else print }' else cat fi } push_patch_args() { local patch=$1 if [ -z "$opt_reverse" ] then patch_args "$patch" else set -- $(patch_args "$patch") if [ "${*#-R}" != "$*" ] then echo "${*#-R}" else echo "$*" -R fi fi } apply_patch() { local patch=$1 patch_file=$2 local output [ -s "$patch_file" ] || return 0 set -- patch $QUILT_PATCH_OPTS $(push_patch_args "$patch") \ --backup --prefix="$QUILT_PC/$patch/" -f \ $no_reject_files $more_patch_args if [ "${patch_file:(-3)}" = ".gz" ] then gzip -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-4)}" = ".bz2" ] then bzip2 -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-3)}" = ".xz" ] then xz -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-5)}" = ".lzma" ] then lzma -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-3)}" = ".lz" ] then lzip -cd "$patch_file" | "$@" 2>&1 elif [ "${patch_file:(-4)}" = ".zst" ] then zstd -cd "$patch_file" | "$@" 2>&1 else "$@" -i "$patch_file" 2>&1 fi } rollback_patch() { local patch=$1 $QUILT_DIR/scripts/backup-files $silent_unless_verbose -r -B "$QUILT_PC/$patch/" - } cleanup_patch_output() { if [ -z "$opt_leave_rejects" ] then if [ -n "$opt_quiet" ]; then # In this case, patch does not allow us to find out # which file contains the rejects; it only tells us # which reject file is used. We use a single temporary # reject file, so this does not help us. awk ' { gsub(/ -- saving rejects to (file )?.*/, "") } { print } ' else awk ' /^patching file / { filename = substr($0, 15) } { gsub(/ -- saving rejects to (file )?.*/, " -- rejects in file " filename) } { print } ' fi else cat fi } add_patch() { local patch=$1 local patch_file=$(patch_file_name "$patch") local file status tmp printf $"Applying patch %s\n" "$(print_patch "$patch")" trap "interrupt $patch" SIGINT no_reject_files= if [ -z "$opt_leave_rejects" ]; then tmp=$(gen_tempfile) no_reject_files="-r $tmp" fi apply_patch "$patch" "$patch_file" status=$? trap "" SIGINT [ -n "$tmp" ] && rm -f $tmp if [ $status -eq 0 -o -n "$opt_force" ] then add_to_db "$patch" if [ $status -eq 0 ] then rm -f "$QUILT_PC/$patch~refresh" else touch "$QUILT_PC/$patch~refresh" fi if [ -e "$QUILT_PC/$patch" ] then touch "$QUILT_PC/$patch/.timestamp" else mkdir "$QUILT_PC/$patch" fi if ! [ -e "$patch_file" ] then printf $"Patch %s does not exist; applied empty patch\n" \ "$(print_patch "$patch")" elif [ -z "$(shopt -s nullglob ; echo "$QUILT_PC/$patch/"*)" ] then printf $"Patch %s appears to be empty; applied\n" \ "$(print_patch "$patch")" elif [ $status -ne 0 ] then printf $"Applied patch %s (forced; needs refresh)\n" \ "$(print_patch "$patch")" fi else rollback_patch "$patch" tmp=$(gen_tempfile) no_reject_files="-r $tmp" opt_reverse=1 if apply_patch "$patch" "$patch_file" > /dev/null 2> /dev/null then printf $"Patch %s can be reverse-applied\n" \ "$(print_patch "$patch")" else printf $"Patch %s does not apply (enforce with -f)\n" \ "$(print_patch "$patch")" fi rollback_patch "$patch" rm -f $tmp status=1 fi trap - SIGINT return $status } list_patches() { local top=$(top_patch) n=0 patch if [ -n "$top" ] then patches_after "$top" else cat_series fi \ | if [ -n "$opt_all" ] then cat else while read patch do if [ -n "$number" ] then if [ $n -eq $number ] then break fi n=$[$n+1] fi echo "$patch" if [ -z "$number" -a "$patch" = "$stop_at_patch" ] then break fi done fi } check_duplicate_patches() { local IFS=$'\n' local -a duplicates local patch duplicates=($((applied_patches ; printf $'%s\n' "${patches[@]}") \ | awk '{ if (lines[$0]++ == 1) print }')) [ ${#duplicates[@]} -ge 1 ] || return 0 for patch in "${duplicates[@]}" do printf $"Patch %s is already applied; check your series file\n" \ "$(print_patch "$patch")" done return 1 } options=`getopt -o fqvam::h --long fuzz:,merge::,leave-rejects,color::,refresh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -f) opt_force=1 shift ;; -q) opt_quiet=1 shift ;; -v) opt_verbose=1 shift ;; -a) opt_all=1 shift ;; -h) usage -h ;; --fuzz) opt_fuzz=$2 shift 2 ;; -m | --merge) case "$2" in "" | merge) opt_merge=1 opt_merge_arg= ;; diff3) opt_merge=1 opt_merge_arg="=diff3" ;; *) usage ;; esac shift 2 ;; --leave-rejects) opt_leave_rejects=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; --refresh) opt_refresh=1 shift ;; --) shift break ;; esac done if [ $# -gt 1 -o \( -n "$opt_all" -a $# -ne 0 \) ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns setup_colors if [ -n "$opt_force" -a -n "$opt_refresh" ] then printf $"Options %s and %s are mutually exclusive\n" "-f" "--refresh" exit 1 fi if [ $# -eq 1 ] then if is_numeric "$1" then number=$1 else stop_at_patch=$1 fi else [ -z "$opt_all" ] && number=1 fi stop_at_patch=$(find_unapplied_patch "$stop_at_patch") || exit [ -z "$opt_verbose" ] && silent_unless_verbose=-s [ -n "$opt_force" ] && opt_leave_rejects=1 more_patch_args= [ -n "$opt_quiet" ] && more_patch_args="$more_patch_args -s" if [ -n "$opt_merge" ] then more_patch_args="$more_patch_args --merge$opt_merge_arg" fi [ -n "$opt_fuzz" ] && more_patch_args="$more_patch_args -F$opt_fuzz" top=$(top_patch) if [ -n "$top" -a -e "$QUILT_PC/$top~refresh" ] then printf $"The topmost patch %s needs to be refreshed first.\n" \ "$(print_patch "$top")" exit 1 fi patches=$(list_patches) if [ -z "$patches" ] then printf $"No patch applied\n" >&2 exit 2 fi # In theory, these patches can't be already applied. However in the case # of a generated or manually tweaked series file, this could happen and # cause havoc, so play it safe and check. check_duplicate_patches || exit 1 create_db for patch in $patches do if ! add_patch "$patch" then exit 1 fi [ -z "$opt_refresh" ] || quilt_command refresh $QUILT_REFRESH_ARGS [ -n "$opt_quiet" ] || echo done \ | cleanup_patch_output \ | colorize if [ ${PIPESTATUS[0]} -eq 0 ]; then set -- $patches printf $"Now at patch %s\n" "$(print_patch ${!#})" else exit 1 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/previous.in0000644000000000000000000000013114554455146015241 xustar0030 mtime=1706187366.764458342 29 atime=1711552108.13437115 30 ctime=1706187366.764458342 quilt-0.68/quilt/previous.in0000644000076500001440000000207014554455146016477 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt previous [patch]\n" if [ x$1 = x-h ] then printf $" Print the name of the previous patch before the specified or topmost patch in the series file. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns patch=$(find_patch_in_series "$1") || exit 1 previous=$(applied_before "$patch" | tail -n 1) if [ -n "$previous" ] then print_patch $previous else exit 2 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/pop.in0000644000000000000000000000013214554455146014164 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.140371225 30 ctime=1706187366.764458342 quilt-0.68/quilt/pop.in0000644000076500001440000001364314554455146015431 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt pop [-afRqv] [--refresh] [num|patch]\n" if [ x$1 = x-h ] then printf $" Remove patch(es) from the stack of applied patches. Without options, the topmost patch is removed. When a number is specified, remove the specified number of patches. When a patch name is specified, remove patches until the specified patch end up on top of the stack. Patch names may include the patches/ prefix, which means that filename completion can be used. -a Remove all applied patches. -f Force remove. The state before the patch(es) were applied will be restored from backup files. -R Always verify if the patch removes cleanly; don't rely on timestamp checks. -q Quiet operation. -v Verbose operation. --refresh Automatically refresh every patch before it gets unapplied. " exit 0 else exit 1 fi } list_patches() { local n patches patches=( $(applied_patches) ) for ((n=${#patches[@]}-1; n>=0; n--)) do if [ -n "$number" ] then (( number-- > 0 )) || break fi [ "${patches[n]}" = "$stop_at_patch" ] && break echo "${patches[n]}" done } files_may_have_changed() { local patch=$1 file local patch_file=$(patch_file_name "$patch") if [ $? -ne 0 -o ! -e "$patch_file" \ -o ! -e "$QUILT_PC/$patch/.timestamp" \ -o ! "$QUILT_PC/$patch/.timestamp" -nt "$patch_file" ] then return 0 fi for file in $(files_in_patch "$patch") do [ ! "$QUILT_PC/$patch/.timestamp" -nt "$file" ] && return 0 done return 1 } # Check if all changes have been folded back into the patch (quilt refresh), # and report any pending changes. check_for_pending_changes() { local patch=$1 local patch_file=$(patch_file_name "$patch") local workdir=$(gen_tempfile -d quilt) status=0 if [ -d "$QUILT_PC/$patch" ] then local prefix=$QUILT_PC/$patch/ [ ${prefix:0:1} == / ] || prefix=$PWD/$prefix if ! ( cd $workdir && \ $QUILT_DIR/scripts/backup-files -B "$prefix" -r -k -s - ) then printf $"Failed to copy files to temporary directory\n" >&2 rm -rf $workdir return 1 fi fi if [ -s "$patch_file" ] then cat_file "$patch_file" \ | patch -d $workdir $QUILT_PATCH_OPTS \ $(patch_args "$patch") --no-backup-if-mismatch \ -f >/dev/null 2>/dev/null fi local file file2 failed for file2 in $(files_in_patch "$patch") do file=$workdir/$file2 [ -e "$file" ] || file=/dev/null [ -e "$file2" ] || file2=/dev/null diff -q "$file" "$file2" > /dev/null || failed=1 done if [ -n "$failed" ] then printf $"Patch %s does not remove cleanly (refresh it or enforce with -f)\n" \ "$(print_patch "$patch")" >&2 printf $"Hint: \`quilt diff -z' will show the pending changes.\n" >&2 status=1 fi rm -rf $workdir return $status } remove_patch() { local patch=$1 status=0 trap "status=1" SIGINT if [ -z "$opt_force" ] && \ ( [ -n "$opt_remove" ] || files_may_have_changed "$patch" ) then check_for_pending_changes "$patch" || status=1 fi if [ $status -eq 0 ] then rm -f "$QUILT_PC/$patch/.timestamp" if [ -z "$(shopt -s nullglob ; echo "$QUILT_PC/$patch/"*)" ] then printf $"Patch %s appears to be empty, removing\n" \ "$(print_patch "$patch")" rmdir "$QUILT_PC/$patch" status=$? else printf $"Removing patch %s\n" "$(print_patch "$patch")" $QUILT_DIR/scripts/backup-files $silent -r -t -B "$QUILT_PC/$patch/" - status=$? fi remove_from_db "$patch" rm -f "$QUILT_PC/$patch~refresh" fi trap - SIGINT return $status } options=`getopt -o fRqvah --long refresh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -f) opt_force=1 unset opt_remove shift ;; -R) opt_remove=1 unset opt_force shift ;; -q) opt_quiet=1 shift ;; -v) opt_verbose=1 shift ;; -a) opt_all=1 shift ;; -h) usage -h ;; --refresh) opt_refresh=1 shift ;; --) shift break ;; esac done if [ $# -gt 1 -o \( -n "$opt_all" -a $# -ne 0 \) ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ -n "$opt_force" -a -n "$opt_refresh" ] then printf $"Options %s and %s are mutually exclusive\n" "-f" "--refresh" exit 1 fi if [ $# -eq 1 ] then if is_numeric "$1" then number=$1 else stop_at_patch=$(find_applied_patch "$1") || exit 1 fi else [ -n "$opt_all" ] || number=1 fi [ -n "$opt_quiet" ] && silent=-s [ -z "$opt_verbose" ] && silent_unless_verbose=-s top=$(top_patch) if [ -n "$top" -a -e "$QUILT_PC/$top~refresh" -a -z "$opt_force" ] then printf $"Patch %s needs to be refreshed first.\n" \ "$(print_patch "$top")" >&2 exit 1 fi if ! patches=$(list_patches) 2>&1 then exit 1 elif [ -z "$patches" ] then printf $"No patch removed\n" >&2 exit 2 fi # We will update the list of applied patches, which in turn will disable the # consistency check. Enable it again if needed. if [ -z "$opt_all" -a ! "$DB" -nt "$SERIES" ] && ! consistency_check then rearm_check=1 fi for patch in $patches do [ -z "$opt_refresh" ] || quilt_command refresh $QUILT_REFRESH_ARGS if ! remove_patch "$patch" then exit 1 fi [ -z "$opt_quiet" ] && echo done patch="$(top_patch)" if [ -z "$patch" ] then printf $"No patches applied\n" else # Ensure that the files in the topmost patch have a link count # of one: This will automatically be the case in the usual # situations, but we don't want to risk file corruption in weird # corner cases such as files added to a patch but not modified. $QUILT_DIR/scripts/backup-files -L -s -B "$QUILT_PC/$patch/" - printf $"Now at patch %s\n" "$(print_patch "$patch")" [ -z "$rearm_check" ] || touch "$SERIES" fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/patches.in0000644000000000000000000000013214554455146015015 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.145371288 30 ctime=1706187366.764458342 quilt-0.68/quilt/patches.in0000644000076500001440000000531314554455146016255 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. declare -a opt_files=() usage() { printf $"Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\n" if [ x$1 = x-h ] then printf $" Print the list of patches that modify any of the specified files. (Uses a heuristic to determine which files are modified by unapplied patches. Note that this heuristic is much slower than scanning applied patches.) -v Verbose, more user friendly output. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). " exit 0 else exit 1 fi } # Uses global variable opt_files scan_applied() { local color=$1 prefix=$2 shift 2 local patch file for patch in "$@" do for file in "${opt_files[@]}" do if file_in_patch "$file" $patch then echo "$color$prefix$(print_patch $patch)$color_clear" break fi done done } # Uses global variable opt_files scan_unapplied() { local color=$1 prefix=$2 shift 2 local patch file local -a files_bre # Quote each file name only once for file in "${opt_files[@]}" do files_bre[${#files_bre[@]}]=$(quote_grep_re "$file") done # "Or" all files in a single pattern file=\\\($(array_join \\\| "${files_bre[@]}")\\\) for patch in "$@" do if filenames_in_patch "$patch" \ | grep -q "^$file\$" then echo "$color$prefix$(print_patch $patch)$color_clear" fi done } options=`getopt -o vh --long color:: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns while [ $# -ge 1 ] do opt_files[${#opt_files[@]}]="$SUBDIR$1" shift done top=$(top_patch) if [ -n "$opt_verbose" ] then applied="+ " current="= " unapplied=" " else applied="" current="" unapplied="" fi [ -n "$opt_color" ] && setup_colors setup_pager scan_applied "$color_series_app" "$applied" \ $(patches_before $top) [ -n "$top" ] && \ scan_applied "$color_series_top" "$current" \ $top scan_unapplied "$color_series_una" "$unapplied" \ $(patches_after $top) ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/next.in0000644000000000000000000000013114554455146014343 xustar0030 mtime=1706187366.764458342 29 atime=1711552108.15037135 30 ctime=1706187366.764458342 quilt-0.68/quilt/next.in0000644000076500001440000000176414554455146015612 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt next [patch]\n" if [ x$1 = x-h ] then printf $" Print the name of the next patch after the specified or topmost patch in the series file. " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns next=$(find_unapplied_patch "$1") || exit if [ -n "$next" ] then print_patch $next else exit 2 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/new.in0000644000000000000000000000013214554455146014157 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.156371425 30 ctime=1706187366.764458342 quilt-0.68/quilt/new.in0000644000076500001440000000466414554455146015427 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # One of the few commands which does not need a series file skip_series_check=1 usage() { printf $"Usage: quilt new [-p n|-p ab] {patchname}\n" if [ x$1 = x-h ] then printf $" Create a new patch with the specified file name, and insert it after the topmost patch. The name can be prefixed with a sub-directory name, allowing for grouping related patches together. -p n Create a -p n style patch (-p0 or -p1 are supported). -p ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. Quilt can be used in sub-directories of a source tree. It determines the root of a source tree by searching for a %s directory above the current working directory. Create a %s directory in the intended root directory if quilt chooses a top-level directory that is too high up in the directory tree. " "$QUILT_PATCHES" "$QUILT_PATCHES" exit 0 else exit 1 fi } options=`getopt -o p:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -p) opt_strip_level=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done case "$opt_strip_level" in '' | 1) opt_strip_level= ;; 0 | ab) ;; *) printf $"Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\n" \ "$opt_strip_level" >&2 exit 1 ;; esac if [ $# -ne 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ "$QUILT_PATCHES" = "$QUILT_PC" ] then printf $"QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\n" "$QUILT_PATCHES" "$QUILT_PC" exit 1 fi patch=${1#$QUILT_PATCHES/} if patch_in_series $patch then printf $"Patch %s exists already\n" "$(print_patch $patch)" >&2 exit 1 fi create_db rm -rf "$QUILT_PC/$patch" mkdir -p "$QUILT_PC/$patch" if insert_in_series $patch ${opt_strip_level:+-p$opt_strip_level} && \ add_to_db $patch then printf $"Patch %s is now on top\n" "$(print_patch $patch)" else printf $"Failed to create patch %s\n" "$(print_patch $patch)" >&2 exit 1 fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/mail.in0000644000000000000000000000013214554455146014310 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.161371488 30 ctime=1706187366.764458342 quilt-0.68/quilt/mail.in0000644000076500001440000003670414554455146015560 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. : ${EDITOR:=vi} usage() { printf $"Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--subject ...] [--reply-to message] [--charset ...] [--signature file] [first_patch [last_patch]]\n" if [ x$1 = x-h ] then printf $" Create mail messages from a specified range of patches, or all patches in the series file, and either store them in a mailbox file, or send them immediately. The editor is opened with a template for the introduction. Please see %s for details. When specifying a range of patches, a first patch name of \`-' denotes the first, and a last patch name of \`-' denotes the last patch in the series. -m text Text to use as the text in the introduction. When this option is used, the editor will not be invoked, and the patches will be processed immediately. -M file Like the -m option, but read the introduction from file. --prefix prefix Use an alternate prefix in the bracketed part of the subjects generated. Defaults to \`patch'. --mbox file Store all messages in the specified file in mbox format. The mbox can later be sent using formail, for example. --send Send the messages directly. --sender The envelope sender address to use. The address must be of the form \`user@domain.name'. No display name is allowed. --from, --subject The values for the From and Subject headers to use. If no --from option is given, the value of the --sender option is used. --to, --cc, --bcc Append a recipient to the To, Cc, or Bcc header. --charset Specify a particular message encoding on systems which don't use UTF-8 or ISO-8859-15. This character encoding must match the one used in the patches. --signature file Append the specified signature to messages (defaults to ~/.signature if found; use \`-' for no signature). --reply-to message Add the appropriate headers to reply to the specified message. " "@DOCSUBDIR@/README.MAIL" exit 0 else exit 1 fi } msgid() { local timestamp=$(date --utc "+%Y%m%d%H%M%S.%N") echo "$timestamp@${opt_sender_address#*@}" } # Extract RFC 2822 compliant header values, including Long Header Fields, # from messages extract_header_value() { local header=$1 # Long Header Fields may span multiple lines, in which case CRLF # is followed by space or tab (RFC 2822) sed -ne "/^${header}/I,/^[^[:blank:]]/ { /^${header}/I { s/^${header}//I; p; n; }; /^[^[:blank:]]/q; /^$/q; p; }" } # See RFC 2822 Internet Message Format for how the In-Reply-To and # References headers are generated... in_reply_to_header() { local message=$1 message_id message_id=$(extract_header_value Message-ID: < "$message") message_id=${message_id# } [ -n "$message_id" ] && echo "In-Reply-To: $message_id" } references_header() { local message=$1 message_id references in_reply_to message_id=$(extract_header_value Message-ID: < "$message") message_id=${message_id# } references=$(extract_header_value References: < "$message") references=${references# } if [ -z "$references" ] then in_reply_to=$(extract_header_value In-Reply-To: < "$message") in_reply_to=${in_reply_to# } if [ -n "$in_reply_to" ] then case "$in_reply_to" in *@*@*) ;; *) references=$in_reply_to ;; esac fi fi if [ -z "$references" ] then references=$message_id elif [ -n "$message_id" ] then references="$references"$'\n '"$message_id" fi [ -n "$references" ] && echo "References: $references" } process_mail() { local tmpfile=$(gen_tempfile) cat > $tmpfile set -- $($QUILT_DIR/scripts/edmail --charset $opt_charset \ --extract-recipients To \ --extract-recipients Cc \ --extract-recipients Bcc \ < $tmpfile) if [ -n "$opt_send" ] then echo ${QUILT_SENDMAIL:-sendmail} \ ${QUILT_SENDMAIL_ARGS--f "$opt_sender"} "$@" $QUILT_DIR/scripts/edmail --charset $opt_charset \ --remove-header Bcc < $tmpfile \ | ${QUILT_SENDMAIL:-sendmail} \ ${QUILT_SENDMAIL_ARGS--f "$opt_sender"} "$@" else local from_date=$(LC_ALL=POSIX date "+%a %b %e %H:%M:%S %Y") echo "From $opt_sender_address $from_date" sed -e 's/^From />From /' $tmpfile echo fi rm -f $tmpfile } join_lines() { awk ' BEGIN { RS="\n\n" } { gsub(/[ \t\n]+/, " ") sub(/ $/, "") sub(/^ /, "") print } ' } options=`getopt -o m:M:h \ --long from:,to:,cc:,bcc:,subject: \ --long send,mbox:,charset:,sender: \ --long prefix:,reply-to:,signature: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_prefix=patch if [ -r $HOME/.signature ] then opt_signature="$(< $HOME/.signature)" fi while true do case "$1" in -m) if [ -n "$opt_message" ] then echo $"Introduction message already specified" >&2 exit 1 fi opt_message=$2 shift 2 ;; -M) if [ -n "$opt_message" ] then echo $"Introduction message already specified" >&2 exit 1 fi opt_message=$(< "$2") shift 2 ;; --sender) opt_sender=$2 shift 2 ;; --from) opt_from=$2 shift 2 ;; --to) opt_to[${#opt_to[@]}]=$2 shift 2 ;; --cc) opt_cc[${#opt_cc[@]}]=$2 shift 2 ;; --bcc) opt_bcc[${#opt_bcc[@]}]=$2 shift 2 ;; --subject) opt_subject=$2 shift 2 ;; --prefix) opt_prefix=$2 shift 2 ;; --send) opt_send=1 shift ;; --mbox) opt_mbox=$2 shift 2 ;; --charset) opt_charset=$2 shift 2 ;; --reply-to) opt_reply_to=$2 shift 2 ;; --signature) if [ "$2" = - ] then opt_signature= else opt_signature=$(< "$2") fi shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 2 -o \( -z "$opt_send" -a -z "$opt_mbox" \) ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ $# -ge 1 ] then if [ "$1" = - ] then first_patch="$(find_first_patch)" || exit 1 else first_patch="$(find_patch "$1")" || exit 1 fi if [ $# -ge 2 ] then if [ "$2" = - ] then last_patch="$(find_last_patch)" || exit 1 else last_patch="$(find_patch "$2")" || exit 1 fi else last_patch=$first_patch fi fi if [ -z "$opt_sender" ] then if [ -e /etc/mailname ] then hostname=$(< /etc/mailname) else hostname=$(hostname -f 2>/dev/null) fi if [ "$hostname" = "${hostname/.}" ] then hostname=$(hostname) fi opt_sender="${LOGNAME:-$(whoami)}@$hostname" case "$opt_sender" in *@*.*) ;; *) echo $"\ Could not determine the envelope sender address. Please use --sender." >&2 exit 1 ;; esac fi opt_sender_address=$(echo "$opt_sender" | sed -re 's:.*<([^<>]+)>.*:\1:') if [ -z "$opt_charset" ] then case "${LC_ALL:-$ORIGINAL_LANG}" in *.UTF-8) opt_charset=UTF-8 ;; *) opt_charset=ISO-8859-15 ;; esac fi if [ "$(type -t quilt_mail_patch_filter 2> /dev/null)" != function ] then quilt_mail_patch_filter() { local tmpdir=$(gen_tempfile -d) cat > $tmpdir/patch patch_header < $tmpdir/patch > $tmpdir/header local subject local -a mh # Does this patch have a Subject: line? subject=$(extract_header_value Subject: < $tmpdir/header) if [ -n "$subject" ] then awk ' in_body { print } /^$/ { in_body = 1 } ' $tmpdir/patch > $tmpdir/body fi # Does this patch have DESC // subject // EDESC? if [ -z "$subject" ] then local desc=$(awk ' /^EDESC/ { desc = 0 } desc { print } /^DESC/ { desc = 1 } ' $tmpdir/header) if [ -n "$desc" ] then subject=$(echo "$desc" | join_lines) awk ' /^DESC/ { desc = 1 } ! desc { print } /^EDESC/ { desc = 0 } ' $tmpdir/patch > $tmpdir/body fi fi # Is the first paragraph short enough to be used as the subject? if [ -z "$subject" ] then local para=$(sed -e $'/^[ \t]*$/q' $tmpdir/header) if [ ${#para} -gt 0 -a ${#para} -lt 150 ] then subject=$(echo "$para" | join_lines) awk ' in_body { print } /^[ \t]*$/ { in_body = 1 } ' $tmpdir/patch > $tmpdir/body fi fi if [ -z "$subject" ] then rm -rf $tmpdir return 1 fi subject=$(echo "$subject" \ | sed -e $'s/^\\(\\(\\[[^]]*\\]\\|fwd:\\|fw:\\|re:\\|aw:\\|tr:\\)[ \t]*\\)*//i') echo "Replace-Subject: $subject" # Add recipients defined by some recognized keywords # In Signed-off-by: and Acked-by: lines, try to recognize email # addresses that contain commas and add quotes, e.g., # Last, First => "Last, First" set -- Signed-off-by Acked-by Suggested-by Reviewed-by Requested-by Reported-by Tested-by Cc set -- "$*" set -- ${*// /\\|} sed -n -e "/\<${LOGNAME:-$(whoami)}@/d" \ -e 's/^\(\(To\|'"$*"'\):[ '$'\t'']*\)\([^"]*\(,[^"]*\)\+[^" '$'\t'']\)\([ '$'\t'']*<.*>\)/\1"\3"\5/I' \ -e 's/^To:\(.*@.*\)/Recipient-To:\1/Ip' \ -e 's/^\('"$*"'\):\(.*@.*\)/Recipient-Cc:\2/Ip' \ $tmpdir/header echo cat $tmpdir/body rm -rf $tmpdir } fi if [ -n "$first_patch" ] then if [ -n "$last_patch" ] then set -- $(patches_before "$last_patch") "$last_patch" while [ $# -ne 0 ] do [ "$1" = "$first_patch" ] && break shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch $first_patch)" \ "$(print_patch $last_patch)" >&2 exit 1 fi patches=( "$@" ) else patches=( "$first_patch" $(patches_after "$first_patch") ) fi else patches=( $(cat_series) ) fi total=${#patches[@]} tmpdir=$(gen_tempfile -d) add_exit_handler "rm -rf $tmpdir" for patch in "${patches[@]}" do patch_file="$(patch_file_name "$patch")" mkdir -p "$tmpdir/$(dirname "$patch")" cat_file "$patch_file" \ | quilt_mail_patch_filter "$patch" > "$tmpdir/$patch" status=${PIPESTATUS[1]} subject=$(extract_header_value Replace-Subject: < "$tmpdir/$patch" | join_lines) if [ $status -ne 0 -o -z "$subject" ] then if [ ! -r "$patch_file" ] then printf \ $"Patch %s does not exist\n" "$(print_patch "$patch")" >&2 else printf \ $"Unable to extract a subject header from %s\n" "$(print_patch "$patch")" >&2 fi rm -rf $tmpdir exit 1 fi subjects[${#subjects[@]}]="$patch"$'\t'"$subject" done dup_subjects=( $( printf "%s\n" "${subjects[@]}" \ | sort -k2 \ | awk '{ patch = $1 ; sub(/^[^\t]+\t/, ""); if ($0 in subjects) { if (subjects[$0] != "") print subjects[$0]; print patch; subjects[$0] = ""; } else subjects[$0] = patch }' \ | while read patch; do print_patch $patch done ) ) if [ ${#dup_subjects[@]} -ne 0 ] then printf $"Patches %s have duplicate subject headers.\n" \ "$(array_join ", " "${dup_subjects[@]}")" exit 1 fi if [ -n "$opt_reply_to" ] then if [ ! -e "$opt_reply_to" ] then printf $"File %s does not exist\n" "$opt_reply_to" exit 1 fi if [ -z "$opt_subject" ] then opt_subject="Re: $(extract_header_value Subject: < "$opt_reply_to" \ | sed -e 's/^ *\([rR][eE]: *\)*//')" fi fi introduction="$(gen_tempfile)" ( cat <<-EOF Message-ID: <$(msgid)> User-Agent: quilt/@VERSION@ Date: $(date --rfc-822) From: ${opt_from:-$opt_sender} To: $(IFS=,; echo "${opt_to[*]}") Cc: $(IFS=,; echo "${opt_cc[*]}") Bcc: $(IFS=,; echo "${opt_bcc[*]}") EOF if [ -n "$opt_reply_to" ] then in_reply_to_header "$opt_reply_to" references_header "$opt_reply_to" fi cat <<-EOF Subject-Prefix: [$opt_prefix @num@/@total@] Subject: $opt_subject EOF if [ -n "$opt_message" ] then echo "$opt_message" echo fi if [ -n "$opt_signature" ] then echo "-- " echo "$opt_signature" fi ) | $QUILT_DIR/scripts/edmail --charset $opt_charset > $introduction if [ -z "$opt_message" ] then if ! LANG=$ORIGINAL_LANG $EDITOR $introduction then rm -f $introduction exit 1 fi fi subject=$(extract_header_value Subject: < $introduction | join_lines) if [ -z "$subject" ] then if [ -z "$opt_message" ] then printf $"Introduction has no subject header (saved as %s)\n" \ "$introduction" >&2 else printf $"Introduction has no subject header\n" rm -f $introduction fi exit 1 fi if [ -n "$opt_mbox" ] then exec 1> $opt_mbox fi subject_prefix=$(extract_header_value Subject-Prefix: < $introduction | join_lines) [ -n "$subject_prefix" ] && subject_prefix="$subject_prefix " subject_prefix=${subject_prefix//\'/\'\'} subject_prefix=${subject_prefix//\//\\\/} p=${subject_prefix//@num@/$(printf %0*d ${#total} 0)} p=${p//@total@/$total} sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ -e '/^Subject-Prefix:/d' \ $introduction \ | $QUILT_DIR/scripts/edmail --charset $opt_charset \ --remove-empty-headers To Cc Bcc \ | process_mail if [ -n "$opt_mbox" ] then exec 1>> $opt_mbox fi # Remember the timestamp of the last message sent. For each message, # increment the timestamp by one second and wait with sending until # that time has arrived. This allows MUAs to show the messages in the # correct order. last_ts=$(date '+%s' -d "$(sed -ne $'s/^Date:[ \t]*//p' $introduction)") num=1 for patch in "${patches[@]}"; do body=$tmpdir/$patch #echo -n '.' >&2 # Timestamps that are a few seconds in the future don't hurt usually #while [ $(date '+%s') -le $last_ts ]; do # sleep 1 #done ((last_ts++)) new_date="$(date --rfc-822 -d "1970/01/01 UTC $last_ts seconds")" modify="$(awk ' in_header { if (/^[ \t]/) { headers[n] = headers[n] "\n" $0 next } in_header = 0 } sub(/^Recipient-/, "") { headers[++n] = $0 options[n] = "--add-good-recipient" in_header = 1 next } sub(/^Replace-/, "") { headers[++n] = $0 options[n] = "--replace-header" in_header = 1 next } END { for(n = 1; n in headers; n++) { r = headers[n] sub(/:.*/, "", r) s = headers[n] sub(/^[^:]*:[ \t]*/, "", s) gsub(/'\''/, "'\'\''", s) print options[n] " " r "='\''" s "'\'' \\" } } ' $body)" # echo "$modify" | sed -e 's/^/>> /' >&2 p=${subject_prefix//@num@/$(printf %0*d ${#total} $num)} p=${p//@total@/$total} # Make pipes fail if any of their commands fail (requires bash 3): set -o pipefail ( ( echo "Message-ID: <$(msgid)>" awk ' /^$/ { exit } tolower($0) !~ /^(message-id|references|in-reply-to):/ \ { print } ' $introduction references_header $introduction echo "MIME-Version: 1.0" echo "Content-Type: text/plain; charset=$opt_charset" awk ' kill_header { if (/^[ \t]/) next ; kill_header = 0 } !in_body && tolower($0) ~ /^(recipient|replace)-.*:/ \ { kill_header = 1 ; next } /^$/ { in_body = 1 } { print } ' $body echo #if [ -n "$opt_signature" ] #then # echo '-- ' # echo "$opt_signature" #fi ) | eval $QUILT_DIR/scripts/edmail --charset $opt_charset \ --replace-header Date="\"$new_date\"" \ To Cc Bcc \ "$modify" \ | sed -e $'s/^\\(Subject:[ \t]\\)/\\1'"$p"'/' \ -e '/^Subject-Prefix:/d' \ | $QUILT_DIR/scripts/edmail --remove-empty-headers \ | process_mail ) 2> $tmpdir/err status=$? if [ -s $tmpdir/err ] then sed -e "s/^/${patch//\//\\/}: /" < $tmpdir/err >&2 fi if [ $status -ne 0 ] then printf $"Introduction saved as %s\n" "$introduction" >&2 exit 1 fi # If the character set is UTF-8, check for invalid byte # sequences. #content_length=${#body} #if [ -n "$(echo "$body" | tr -d '\0-\177')" ] #then # charset=UTF-8 #fi # Content-Transfer-Encoding: 7bit # Content-Transfer-Encoding: 8bit # Content-Type: text/plain; charset=ISO-8859-1 # Content-Type: text/plain; charset=UTF-8 ((num++)) done rm -f $introduction ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/import.in0000644000000000000000000000013114554455146014677 xustar0030 mtime=1706187366.764458342 29 atime=1711552108.16637155 30 ctime=1706187366.764458342 quilt-0.68/quilt/import.in0000644000076500001440000001220714554455146016140 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # One of the few commands which does not need a series file skip_series_check=1 usage() { printf $"Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ...\n" if [ x$1 = x-h ] then printf $" Import external patches. The patches will be inserted following the current top patch, and must be pushed after import to apply them. -p num Number of directory levels to strip when applying (default=1) -R Apply patch in reverse. -P patch Patch filename to use inside quilt. This option can only be used when importing a single patch. -f Overwrite/update existing patches. -d {o|a|n} When overwriting in existing patch, keep the old (o), all (a), or new (n) patch header. If both patches include headers, this option must be specified. This option is only effective when -f is used. " exit 0 else exit 1 fi } find_patch_file() { local name="$1" if [ ${name:0:1} = / ] then # Patch has absolute path if [ -r "$name" ] then echo "$name" return fi else # Patch has a relative path if [ -r "$SUBDIR$name" ] then echo "$SUBDIR$name" return fi fi printf $"Patch %s does not exist\n" "$name" >&2 return 1 } merge_patches() { local old="$1" new="$2" local old_desc=$(gen_tempfile) new_desc=$(gen_tempfile) cat_file "$old" | patch_header | strip_diffstat > $old_desc cat_file "$new" | patch_header | strip_diffstat > $new_desc if [ -z "$opt_desc" ] then [ -s $old_desc ] || opt_desc=n [ -z "$opt_desc" -a ! -s $new_desc ] && opt_desc=o if [ -z "$opt_desc" ] then local diff=$(diff -u $old_desc $new_desc \ | sed -e '1,2d') if [ -n "$diff" ] then printf $"Patch headers differ:\n" >&2 echo "$diff" >&2 printf \ $"Please use -d {o|a|n} to specify which patch header(s) to keep.\n" >&2 rm -f $old_desc $new_desc return 1 fi fi fi [ "$opt_desc" = n ] || cat "$old_desc" [ "$opt_desc" = a ] && echo '---' if [ "$opt_desc" = o ] then cat_file "$new" | patch_body else cat_file "$new" fi rm -f $old_desc $new_desc } die() { local status=$1 [ "$merged_patch_file" != "$patch_file" ] && rm -f "$merged_patch_file" exit $status } options=`getopt -o P:d:fp:Rh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch=$2 shift 2 ;; -p) opt_strip=$2 shift 2 ;; -R) opt_reverse=1 shift ;; -d) case "$2" in o|n|a) opt_desc=$2 ;; *) usage ;; esac shift 2 ;; -f) opt_force=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 -a -n "$opt_patch" ] then printf $"Option \`-P' can only be used when importing a single patch\n" >&2 exit 1 fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns [ -n "$opt_patch" ] && opt_patch=${opt_patch#$QUILT_PATCHES/} [ -n "$opt_strip" ] && patch_args="-p$opt_strip" if [ -n "$opt_reverse" ] then if [ -n "$patch_args" ] then patch_args="$patch_args -R" else patch_args="-R" fi fi before=$(patch_after "$(top_patch)") for orig_patch_file in "$@" do if [ -n "$opt_patch" ] then patch=$opt_patch else patch=${orig_patch_file##*/} fi patch_file=$(find_patch_file "$orig_patch_file") || exit 1 merged_patch_file="$patch_file" if is_applied $patch then printf $"Patch %s is applied\n" "$(print_patch $patch)" >&2 exit 1 fi dest=$(patch_file_name $patch) if patch_in_series "$patch" then if [ "$patch_file" = "$dest" ] then printf $"Patch %s already exists in series.\n" \ "$(print_patch $patch)" >&2 exit 1 fi if [ -z "$opt_force" ] then printf $"Patch %s exists. Replace with -f.\n" \ "$(print_patch $patch)" >&2 exit 1 fi if [ "$opt_desc" != n ] then merged_patch_file=$(gen_tempfile) merge_patches "$dest" "$patch_file" \ > $merged_patch_file \ || die 1 fi printf $"Replacing patch %s with new version\n" \ "$(print_patch $patch)" >&2 elif [ -e "$dest" ] then printf $"Importing patch %s\n" "$(print_patch $patch)" else printf $"Importing patch %s (stored as %s)\n" \ "$orig_patch_file" \ "$(print_patch $patch)" mkdir -p "${dest%/*}" fi if [ "$merged_patch_file" != "$dest" ] && \ (( [ "$merged_patch_file" != "$patch_file" ] && \ ! cat_to_new_file "$dest" < "$merged_patch_file" ) || \ ( [ "$merged_patch_file" = "$patch_file" ] && \ ! cp "$merged_patch_file" "$dest" )) then printf $"Failed to import patch %s\n" "$(print_patch $patch)" >&2 die 1 fi [ "$merged_patch_file" != "$patch_file" ] && rm -f "$merged_patch_file" if ! patch_in_series $patch && ! insert_in_series $patch "$patch_args" "$before" then printf $"Failed to insert patch %s into file series\n" \ "$(print_patch $patch)" >&2 exit 1 fi rm -rf $QUILT_PC/$patch done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/header.in0000644000000000000000000000013214554455146014616 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.171371613 30 ctime=1706187366.764458342 quilt-0.68/quilt/header.in0000644000076500001440000000626114554455146016061 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. : ${EDITOR:=vi} usage() { printf $"Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-trailing-whitespace] [patch]\n" if [ x$1 = x-h ] then printf $" Print or change the header of the topmost or specified patch. -a, -r, -e Append to (-a) or replace (-r) the exiting patch header, or edit (-e) the header in \$EDITOR (%s). If none of these options is given, print the patch header. --strip-diffstat Strip diffstat output from the header. --strip-trailing-whitespace Strip trailing whitespace at the end of lines of the header. --backup Create a backup copy of the old version of a patch as patch~. " "$EDITOR" exit 0 else exit 1 fi } maybe_strip_trailing_whitespace() { if [ -n "$opt_strip_trailing_whitespace" ] then sed -e 's:[ '$'\t'']*$::' else cat fi } maybe_strip_diffstat() { if [ -n "$opt_strip_diffstat" ] then strip_diffstat else cat fi } options=`getopt -o areh --long backup,strip-trailing-whitespace,strip-diffstat -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -a) opt_append=1 shift ;; -r) opt_replace=1 shift ;; -e) opt_edit=1 shift ;; --backup) QUILT_BACKUP=1 shift ;; --strip-diffstat) opt_strip_diffstat=1 shift ;; --strip-trailing-whitespace) opt_strip_trailing_whitespace=1 shift ;; -h) usage -h ;; --) shift break ;; esac done case "$opt_append$opt_replace$opt_edit" in ''|1) ;; *) usage ;; esac if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns patch=$(find_patch_in_series "$1") || exit 1 patch_file=$(patch_file_name $patch) if [ -z "$opt_replace" -a -z "$opt_append" -a -z "$opt_edit" ] then [ -e "$patch_file" ] || exit 0 setup_pager cat_file "$patch_file" \ | patch_header \ | maybe_strip_diffstat \ | maybe_strip_trailing_whitespace else patch_file_or_null=/dev/null [ -e "$patch_file" ] && patch_file_or_null=$patch_file tmp=$(gen_tempfile) || exit 1 tmp2=$(gen_tempfile) || exit 1 add_exit_handler "rm -f $tmp $tmp2" ( if [ -z "$opt_replace" ] then cat_file $patch_file_or_null | patch_header fi if [ -n "$opt_append" -o -n "$opt_replace" ] then cat fi ) > $tmp if [ -n "$opt_edit" ] then LANG=$ORIGINAL_LANG $EDITOR "$tmp" || exit 1 fi # Ensure there is a trailing newline before we append the rest ensure_trailing_newline $tmp maybe_strip_diffstat < $tmp \ | maybe_strip_trailing_whitespace > $tmp2 cat_file "$patch_file_or_null" | patch_body >> $tmp2 || exit 1 if cat_to_new_file $patch_file $QUILT_BACKUP < $tmp2 then if [ -z "$opt_append" ] then printf \ $"Replaced header of patch %s\n" "$(print_patch $patch)" else printf \ $"Appended text to header of patch %s\n" "$(print_patch $patch)" fi else exit 1 fi fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/grep.in0000644000000000000000000000013214554455146014323 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.177371688 30 ctime=1706187366.764458342 quilt-0.68/quilt/grep.in0000644000076500001440000000613414554455146015565 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt grep [-h|options] {pattern}\n" if [ x$1 = x-h ] then printf $" Grep through the source files, recursively, skipping patches and quilt meta-information. If no filename argument is given, the whole source tree is searched. Please see the grep(1) manual page for options. -h Print this help. The grep -h option can be passed after a double-dash (--). Search expressions that start with a dash can be passed after a second double-dash (-- --). " exit 0 else exit 1 fi } get_options() { getopt -o EFGPe:f:iwxzsvVm:bHnhqoaId:D:RrlLcB:ZA:C:Uu \ --long extended-regexp,fixed-strings,basic-regexp,perl-regexp \ --long regexp:,file:,ignore-case,word-regexp \ --long line-regexp,null-data,no-messages,invert-match,version \ --long help,mmap,max-count:,byte-offset,line-number \ --long line-buffered,with-filename,no-filename,label: \ --long only-matching,quiet,silent,binary-files:,text, \ --long directories:,devices:,recursive,include:,exclude: \ --long exclude-from:,files-without-match,files-with-matches \ --long count,null,before-context:,after-context:,context: \ --long color::,colour::,binary,unix-byte-offsets \ -- "$@" } shift_myargs() { set -- "${myargs[@]}" shift myargs=( "$@" ) } shift_args() { while true do case "${myargs[0]}" in --) shift_myargs return ;; -h) opt_h=1 ;; -e|-f|--regexp|--file) has_pattern=1 args=( "${args[@]}" "${myargs[0]}" ) shift_myargs ;; -m|-d|-D|-B|-A|-C|\ --max-count|--label|--binary-files|\ --directories|--devices|--include|--exclude|--exclude-from|\ --before-context|--after-context|--context|--color|--colour) args=( "${args[@]}" "${myargs[0]}" ) shift_myargs ;; esac args=( "${args[@]}" "${myargs[0]}" ) shift_myargs done } options=$(get_options "$@") [ $? -ne 0 ] && usage eval set -- "$options" myargs=( "$@" ) args=() opt_h= has_pattern= shift_args [ -n "$opt_h" ] && usage -h case "${myargs[0]}" in -*) options=$(get_options "${myargs[@]}") [ $? -ne 0 ] && usage eval set -- "$options" myargs=( "$@" ) shift_args ;; esac if [ -z "$has_pattern" ] then [ ${#myargs[@]} -eq 0 ] && usage args=( "${args[@]}" -- "${myargs[0]}" ) shift_myargs fi # Print the filename for each match, unless -h is given. Otherwise, xargs # may pass a single filename to grep and cause it to omit the file name. [ -z "$opt_h" ] && opt_H=-H # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns find "${myargs[@]:-.}" \( \ -path "./$QUILT_PATCHES/*" -o \ -path "./$QUILT_PC/*" \) -prune -o \ -type f -print0 \ | xargs -0 grep $opt_H "${args[@]}" \ | if [ ${#myargs[@]} -eq 0 ]; then sed -e 's,^./,,' else cat fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/graph.in0000644000000000000000000000013114554455146014466 xustar0030 mtime=1706187366.764458342 29 atime=1711552108.18237175 30 ctime=1706187366.764458342 quilt-0.68/quilt/graph.in0000644000076500001440000000542414554455146015732 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] [-T ps] [patch]\n" if [ x$1 = x-h ] then printf $" Generate a dot(1) directed graph showing the dependencies between applied patches. A patch depends on another patch if both touch the same file or, with the --lines option, if their modifications overlap. Unless otherwise specified, the graph includes all patches that the topmost patch depends on. When a patch name is specified, instead of the topmost patch, create a graph for the specified patch. The graph will include all other patches that this patch depends on, as well as all patches that depend on this patch. --all Generate a graph including all applied patches and their dependencies. (Unapplied patches are not included.) --reduce Eliminate transitive edges from the graph. --lines[=num] Compute dependencies by looking at the lines the patches modify. Unless a different num is specified, two lines of context are included. --edge-labels=files Label graph edges with the file names that the adjacent patches modify. -T ps Directly produce a PostScript output file. " exit 0 else exit 1 fi } options=`getopt -o T:h --long all,reduce,lines::,edge-labels: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -T) if [ "$2" != ps ]; then usage fi opt_format=ps shift 2 ;; --all) opt_all=1 shift ;; --reduce) opt_reduce=1 shift ;; --lines) opt_lines=${2:-2} shift 2 ;; --edge-labels) if [ "$2" != files ] then usage fi opt_edge_labels=$2 shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 -o \( $# -ne 0 -a -n "$opt_all" \) ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns [ "$opt_format" = "ps" ] && check_external_tool dot graphviz -T [ -n "$opt_reduce" ] && check_external_tool tred graphviz --reduce if [ -z "$opt_all" ] then patch=$(find_applied_patch "$1") || exit 1 fi options= [ -n "$patch" ] && options="--select-patch $patch" [ -n "$opt_reduce" ] && options="$options --reduce" [ "$opt_edge_labels" = files ] && options="$options --edge-files" [ -n "$opt_lines" ] && options="$options --lines=$opt_lines" pipe= [ -n "$opt_format" ] && pipe="| dot -T$opt_format" export QUILT_PC applied_patches \ | eval $QUILT_DIR/scripts/dependency-graph $options - $pipe ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/fork.in0000644000000000000000000000013214554455146014327 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.187371813 30 ctime=1706187366.764458342 quilt-0.68/quilt/fork.in0000644000076500001440000000457214554455146015575 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt fork [new_name]\n" if [ x$1 = x-h ] then printf $" Fork the topmost patch. Forking a patch means creating a verbatim copy of it under a new name, and use that new name instead of the original one in the current series. This is useful when a patch has to be modified, but the original version of it should be preserved, e.g. because it is used in another series, or for the history. A typical sequence of commands would be: fork, edit, refresh. If new_name is missing, the name of the forked patch will be the current patch name, followed by \`-2'. If the patch name already ends in a dash-and-number, the number is further incremented (e.g., patch.diff, patch-2.diff, patch-3.diff). " exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns top_patch=$(find_top_patch) || exit 1 if [ $# -eq 1 ] then new_patch="$1" else new_patch="$(next_filename "$top_patch")" fi new_patch=${new_patch#$QUILT_PATCHES/} if patch_in_series $new_patch || \ [ -d "$QUILT_PC/$new_patch" ] || \ [ -e "$(patch_file_name $new_patch)" ] then printf $"Patch %s exists already, please choose a new name\n" \ "$(print_patch $new_patch)" >&2 exit 1 fi if ! rename_in_db "$top_patch" "$new_patch" || \ ! rename_in_series "$top_patch" "$new_patch" || \ ! mv "$QUILT_PC/$top_patch" "$QUILT_PC/$new_patch" || \ ( [ -e "$(patch_file_name $top_patch)" ] && \ ! cp -p "$(patch_file_name $top_patch)" \ "$(patch_file_name $new_patch)" ) then printf $"Fork of patch %s to patch %s failed\n" \ "$(print_patch $top_patch)" \ "$(print_patch $new_patch)" >&2 exit 1 fi printf $"Fork of patch %s created as %s\n" \ "$(print_patch $top_patch)" \ "$(print_patch $new_patch)" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/fold.in0000644000000000000000000000013214554455146014312 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.193371888 30 ctime=1706187366.764458342 quilt-0.68/quilt/fold.in0000644000076500001440000000534314554455146015555 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\n" if [ x$1 = x-h ] then printf $" Integrate the patch read from standard input into the topmost patch: After making sure that all files modified are part of the topmost patch, the patch is applied with the specified strip level (which defaults to 1). -R Apply patch in reverse. -q Quiet operation. -f Force apply, even if the patch has rejects. Unless in quiet mode, apply the patch interactively: the patch utility may ask questions. -p strip-level The number of pathname components to strip from file names when applying patchfile. " exit 0 else exit 1 fi } options=`getopt -o Rp:qfh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -R) opt_reverse=1 shift ;; -f) opt_force=1 shift ;; -p) opt_strip_level=$2 shift 2 ;; -q) opt_quiet=1 shift ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 0 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns : ${opt_strip_level:=1} [ -n "$opt_quiet" ] && patch_args="$patch_args -s" [ -z "$opt_force" -o -n "$opt_quiet" ] && patch_args="$patch_args -f" [ -n "$opt_reverse" ] && patch_args="$patch_args -R" top=$(find_top_patch) || exit 1 trap "failed=1" SIGINT workdir=$(gen_tempfile -d "$PWD") patch -d ${SUBDIR:-.} $QUILT_PATCH_OPTS -p$opt_strip_level \ --backup --prefix="$workdir/$SUBDIR" $patch_args \ || failed=1 [ -n "$opt_force" ] && failed= saved_IFS=$IFS IFS=$'\n' if [ -z "$failed" ] then # Copy additional files from workdir to the backup directory # For this patch for file in $(find "$workdir" -type f -a ! -path "$workdir/.timestamp") do file="${file:${#workdir}+1}" backup_file="$(backup_file_name $top "$file")" if ! [ -e "$backup_file" ] then if ! mkdir -p "$(dirname "$backup_file")" || ! ln -P "$workdir/$file" "$backup_file" then failed=1 break fi fi done fi if [ -n "$failed" ] then # Restore all files to the state from before applying the patch for file in $(find "$workdir" -type f -a ! -path "$workdir/.timestamp") do file="${file:${#workdir}+1}" if ! mv -f "$workdir/$file" "$file" then printf $"File %s may be corrupted\n" "$file" >&2 fi done rm -rf "$workdir" exit 1 fi IFS=$saved_IFS rm -rf "$workdir" exit 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/files.in0000644000000000000000000000013214554455146014470 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.198371951 30 ctime=1706187366.764458342 quilt-0.68/quilt/files.in0000644000076500001440000000567614554455146015744 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\n" if [ x$1 = x-h ] then printf $" Print the list of files that the topmost or specified patch changes. -a List all files in all applied patches. -l Add patch name to output. -v Verbose, more user friendly output. --combine patch Create a listing for all patches between this patch and the topmost or specified patch. A patch name of \`-' is equivalent to specifying the first applied patch. " exit 0 else exit 1 fi } options=`getopt -o vhal --long combine: -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -v) opt_verbose=1 shift ;; -a) opt_all=1 shift ;; -l) opt_labels=1 shift ;; -h) usage -h ;; --combine) opt_all=1 if [ "$2" = - ] then : else first_patch=$2 fi shift 2 ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ -n "$first_patch" ] then first_patch=$(find_patch_in_series "$first_patch") || exit 1 fi last_patch=$(find_patch_in_series "$1") || exit 1 if [ -n "$opt_all" -a -z "$first_patch" ] then first_patch=$(applied_patches | head -n 1) fi if [ -n "$opt_all" ] then set -- $(patches_before "$last_patch") "$last_patch" while [ $# -ge 1 -a "$1" != "$first_patch" ] do shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch "$first_patch")" \ "$(print_patch "$last_patch")" >&2 exit 1 fi patches=( "$@" ) else patches=( "$last_patch" ) fi list_files_in_patch() { local patch=$1 local status local saved_IFS=$IFS if [ -n "$opt_all" ] && [ -n "$opt_verbose" ] && [ -z "$opt_labels" ] then echo "$patch" fi if [ -n "$opt_verbose" ] && [ -z "$opt_labels" ] then use_status=yes fi # Note: If opt_labels is set, then use_status is not set. IFS= if is_applied "$patch" then files_in_patch "$patch" else filenames_in_patch "$patch" fi | sort | while read file do if [ -n "$opt_labels" ] then if [ -n "$opt_verbose" ] then echo -n "[$patch] " else echo -n "$patch " fi fi if [ -z "$use_status" ] then echo "$file" else status=" " if [ -s $(backup_file_name "$patch" "$file") ] then if ! [ -s "$file" ] then status="-" fi else if [ -s "$file" ] then status="+" fi fi echo "$status $file" fi done IFS=$saved_IFS } setup_pager for patch in "${patches[@]}" do list_files_in_patch "$patch" done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/edit.in0000644000000000000000000000013214554455146014313 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.203372013 30 ctime=1706187366.764458342 quilt-0.68/quilt/edit.in0000644000076500001440000000235214554455146015553 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. : ${EDITOR:=vi} usage() { printf $"Usage: quilt edit file ...\n" if [ x$1 = x-h ] then printf $" Edit the specified file(s) in \$EDITOR (%s) after adding it (them) to the topmost patch. " "$EDITOR" exit 0 else exit 1 fi } options=`getopt -o h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -eq 0 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns quilt_command add "$@" status=$? if [ $status -ne 0 -a $status -ne 2 ] then exit $status fi LANG=$ORIGINAL_LANG $EDITOR "${@/#/$SUBDIR}" status=$? patch=$(top_patch) for file in "$@" do if [ ! -e "$SUBDIR$file" -a ! -s "$QUILT_PC/$patch/$file" ] then quilt_command remove "$file" status=1 fi done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/diff.in0000644000000000000000000000013214554455146014276 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.208372076 30 ctime=1706187366.764458342 quilt-0.68/quilt/diff.in0000644000076500001440000001740314554455146015541 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] [--sort] [--color[=always|auto|never]] [file ...]\n" if [ x$1 = x-h ] then printf $" Produces a diff of the specified file(s) in the topmost or specified patch. If no files are specified, all files that are modified are included. -p n Create a -p n style patch (-p0 or -p1 are supported). -p ab Create a -p1 style patch, but use a/file and b/file as the original and new filenames instead of the default dir.orig/file and dir/file names. -u, -U num, -c, -C num Create a unified diff (-u, -U) with num lines of context. Create a context diff (-c, -C) with num lines of context. The number of context lines defaults to 3. --no-timestamps Do not include file timestamps in patch headers. --no-index Do not output Index: lines. -z Write to standard output the changes that have been made relative to the topmost or specified patch. -R Create a reverse diff. -P patch Create a diff for the specified patch. (Defaults to the topmost patch.) --combine patch Create a combined diff for all patches between this patch and the patch specified with -P. A patch name of \`-' is equivalent to specifying the first applied patch. --snapshot Diff against snapshot (see \`quilt snapshot -h'). --diff=utility Use the specified utility for generating the diff. The utility is invoked with the original and new file name as arguments. --color[=always|auto|never] Use syntax coloring (auto activates it only if the output is a tty). --sort Sort files by their name instead of preserving the original order. " exit 0 else exit 1 fi } colorize() { if [ -n "$opt_color" ] then sed -e ' s/^\(Index:\|---\|+++\|\*\*\*\) .*/'$color_diff_hdr'&'$color_clear'/ t ; s/^+.*/'$color_diff_add'&'$color_clear'/ t ; s/^-.*/'$color_diff_rem'&'$color_clear'/ t ; s/^!.*/'$color_diff_mod'&'$color_clear'/ t ; s/^\(@@ \-[0-9]\+\(,[0-9]\+\)\? +[0-9]\+\(,[0-9]\+\)\? @@\)\([ \t]*\)\(.*\)/'$color_diff_hunk'\1'$color_clear'\4'$color_diff_ctx'\5'$color_clear'/ t ; s/^\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*.*/'$color_diff_cctx'&'$color_clear'/ ' else cat fi } do_diff() { local file=$1 old_file=$2 new_file=$3 status if [ -n "$opt_reverse" ] then local f=$new_file new_file=$old_file old_file=$f fi if [ -n "$opt_diff" ] then [ -s "$old_file" ] || old_file=/dev/null [ -s "$new_file" ] || new_file=/dev/null if ! diff -q "$old_file" "$new_file" >/dev/null then LANG=$ORIGINAL_LANG $opt_diff "$old_file" "$new_file" true fi else diff_file "$file" "$old_file" "$new_file" | colorize # Test the return value of diff, and propagate the error if any status=${PIPESTATUS[0]} if [ $status != 0 ] then die $status fi fi } die() { local status=$1 [ -e "$tmp_files" ] && rm -f $tmp_files [ -n "$workdir" ] && rm -rf "$workdir" exit $status } options=`getopt -o p:P:RuU:cC:zh --long diff:,snapshot,no-timestamps \ --long no-index,combine:,color:: \ --long sort -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" opt_format=-u while true do case "$1" in -p) opt_strip_level=$2 shift 2 ;; -P) last_patch=$2 shift 2 ;; --combine) opt_combine=1 first_patch=$2 shift 2 ;; -R) opt_reverse=1 shift ;; -z) opt_relative=1 shift ;; -u|-c) opt_format=$1 shift ;; -U|-C) opt_format="$1 $2" shift 2 ;; -h) usage -h ;; --snapshot) opt_snapshot=1 snap_subdir=.snap shift ;; --diff) opt_diff=$2 shift 2 ;; --no-timestamps) QUILT_NO_DIFF_TIMESTAMPS=1 shift ;; --no-index) QUILT_NO_DIFF_INDEX=1 shift ;; --sort) opt_sort=1 shift ;; --color) case "$2" in "" | always) opt_color=1 ;; auto | tty) opt_color= [ -t 1 ] && opt_color=1 ;; never) opt_color= ;; *) usage ;; esac shift 2 ;; --) shift break ;; esac done # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns setup_colors if [ -n "$first_patch" -a "$first_patch" != - ] then first_patch=$(find_applied_patch "$first_patch") || exit 1 fi QUILT_DIFF_OPTS="$QUILT_DIFF_OPTS $opt_format" opt_files=( $(for file in "$@"; do echo "$SUBDIR${file#./}" ; done) ) if [ $[0$opt_combine + 0$opt_snapshot + 0$opt_relative] -gt 1 ] then printf $"Options \`--combine', \`--snapshot', and \`-z' cannot be combined.\n" >&2 die 1 fi last_patch=$(find_applied_patch "$last_patch") || exit 1 if [ -z "$opt_strip_level" ] then opt_strip_level=$(patch_strip_level "$last_patch") fi case "$opt_strip_level" in 0 | 1 | ab) ;; *) printf $"Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\n" \ "$opt_strip_level" >&2 die 1 ;; esac # If diffing against snapshot, ensure that snapshot is actually present if [ -n "$opt_snapshot" ] && [ ! -d "$QUILT_PC/$snap_subdir" ] then printf $"No snapshot to diff against\n" >&2 die 1 fi trap "die 1" SIGTERM tmp_files=$(gen_tempfile) exec 4> $tmp_files # open $tmp_files if [ -n "$opt_snapshot" -a ${#opt_files[@]} -eq 0 ] then # Add all files in the snapshot into the file list (they may all # have changed). files=( $(find $QUILT_PC/$snap_subdir -type f \ | sed -e "s/^$(quote_sed_re $QUILT_PC/$snap_subdir/)//" \ | sort) ) printf "%s\n" "${files[@]}" >&4 unset files # Also look at all patches that are currently applied. opt_combine=1 first_patch=$(applied_patches | head -n 1) fi if [ -n "$opt_combine" ] then set -- $(patches_before "$last_patch") "$last_patch" if [ "$first_patch" != "-" ] then while [ $# -ge 1 -a "$1" != "$first_patch" ] do shift done if [ $# -eq 0 ] then printf $"Patch %s not applied before patch %s\n" \ "$(print_patch "$first_patch")" \ "$(print_patch "$last_patch")" >&2 die 1 fi fi patches=( "$@" ) else patches=( "$last_patch" ) fi # Properly handle spaces in file names saved_IFS=$IFS IFS=$'\n' for patch in ${patches[@]} do for file in $(files_in_patch_ordered "$patch") do if [ ${#opt_files[@]} -gt 0 ] && \ ! in_array "$file" "${opt_files[@]}" then continue fi echo "$file" >&4 done done exec 4>&- # close $tmp_files if [ -z "$opt_sort" ] then files=( $( awk ' { if ($0 in seen) next seen[$0]=1 print } ' $tmp_files) ) else files=( $(sort -u $tmp_files) ) fi IFS=$saved_IFS if [ -n "$opt_relative" ] then workdir=$(gen_tempfile -d "$PWD/quilt") apply_patch_temporarily "$workdir" "$last_patch" "${files[@]}" \ || die 1 fi setup_pager for file in "${files[@]}" do if [ -n "$opt_snapshot" -a -e "$QUILT_PC/$snap_subdir/$file" ] then old_file="$QUILT_PC/$snap_subdir/$file" elif [ -n "$opt_relative" ] then old_file="$workdir/$file" else patch=$(first_modified_by "$file" "${patches[@]}") if [ -z "$patch" ] then [ -z "$opt_snapshot" ] \ && printf $"File %s is not being modified\n" "$file" >&2 continue fi old_file=$(backup_file_name "$patch" "$file") fi next_patch=$(next_patch_for_file "$last_patch" "$file") if [ -z "$next_patch" ] then new_file=$file else new_file=$(backup_file_name "$next_patch" "$file") files_were_shadowed=1 fi do_diff "$file" "$old_file" "$new_file" if [ $? -ne 0 ] then printf $"Diff failed, aborting\n" >&2 die 1 fi done if [ -n "$files_were_shadowed" ] then printf $"Warning: more recent patches modify files in patch %s\n" \ "$(print_patch "$last_patch")" >&2 fi die 0 ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/delete.in0000644000000000000000000000013214554455146014630 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.213372139 30 ctime=1706187366.764458342 quilt-0.68/quilt/delete.in0000644000076500001440000000474514554455146016100 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt delete [-r] [--backup] [patch|-n]\n" if [ x$1 = x-h ] then printf $" Remove the specified or topmost patch from the series file. If the patch is applied, quilt will attempt to remove it first. (Only the topmost patch can be removed right now.) -n Delete the next patch after topmost, rather than the specified or topmost patch. -r Remove the deleted patch file from the patches directory as well. --backup Rename the patch file to patch~ rather than deleting it. Ignored if not used with \`-r'. " exit 0 else exit 1 fi } options=`getopt -o nrh --long backup -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -n) opt_next=1 shift ;; -r) opt_remove=1 shift ;; -h) usage -h ;; --backup) QUILT_BACKUP=1 shift ;; --) shift break ;; esac done if [ $# -gt 1 -o \( -n "$opt_next" -a $# -gt 0 \) ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns if [ -n "$1" ]; then patch=$(find_patch "$1") || exit 1 else patch=$(top_patch) fi if [ -n "$opt_next" ] then if ! patch=$(patch_after "$patch") then printf $"No next patch\n" >&2 exit 1 fi fi if [ -z "$patch" ] then # find_top_patch will display the proper error message for us find_top_patch > /dev/null exit 1 fi if is_applied "$patch"; then if [ "$patch" != "$(top_patch)" ] then printf $"Patch %s is currently applied\n" \ "$(print_patch "$patch")" >&2 exit 1 fi if ! quilt_command pop -fq then exit 1 fi fi if remove_from_series "$patch" then printf $"Removed patch %s\n" "$(print_patch "$patch")" else printf $"Failed to remove patch %s\n" "$(print_patch "$patch")" >&2 exit 1 fi patch_file=$(patch_file_name "$patch") if [ "$opt_remove" -a -e "$patch_file" ] then if [ "$QUILT_BACKUP" ] then if ! mv -f "$patch_file" "$patch_file~" then printf $"Failed to backup patch file %s\n" \ "$patch_file" >&2 exit 1 fi else if ! rm -f "$patch_file" then printf $"Failed to remove patch file %s\n" \ "$patch_file" >&2 exit 1 fi fi fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/applied.in0000644000000000000000000000013214554455146015004 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.218372201 30 ctime=1706187366.764458342 quilt-0.68/quilt/applied.in0000644000076500001440000000203514554455146016242 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt applied [patch]\n" if [ x$1 = x-h ] then printf $" Print a list of applied patches, or all patches up to and including the specified patch in the file series. " exit 0 else exit 1 fi } options=`getopt -o nh -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -h) usage -h ;; --) shift break ;; esac done if [ $# -gt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns patch=$(find_applied_patch "$1") || exit 1 setup_pager printf "$(patch_format)\n" $(applied_before "$patch") "$patch" ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/annotate.in0000644000000000000000000000013214554455146015177 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.224372276 30 ctime=1706187366.764458342 quilt-0.68/quilt/annotate.in0000644000076500001440000000660114554455146016440 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt annotate [-P patch] {file}\n" if [ x$1 = x-h ] then printf $" Print an annotated listing of the specified file showing which patches modify which lines. Only applied patches are included. -P patch Stop checking for changes at the specified rather than the topmost patch. " exit 0 else exit 1 fi } empty_file() { local file=$1 [ -s "$file" ] \ && sed -e 's:.*::' "$file" } annotation_for() { local old_file=$1 new_file=$2 annotation=$3 [ -s "$old_file" ] || old_file=/dev/null [ -s "$new_file" ] || new_file=/dev/null diff -e "$old_file" "$new_file" \ | perl -e ' while (<>) { if (/^\d+(?:,\d+)?[ac]$/) { print; while (<>) { last if /^\.$/; print "'"$annotation"'\n"; } print; next; } print; } ' } merge_files() { local a b saved_IFS="$IFS" local template=$1 file=$2 [ -e "$file" ] || file=/dev/null exec 3< "$template" exec 4< "$file" IFS= while read -r a <&3 do read -r b <&4 echo "$a"$'\t'"$b" done IFS="$saved_IFS" exec 3<&- exec 4<&- } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch="$2" shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -ne 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns opt_file="$SUBDIR$1" opt_patch=$(find_applied_patch "$opt_patch") || exit 1 for patch in $(applied_patches); do old_file="$(backup_file_name "$patch" "$opt_file")" if [ -f "$old_file" ] then patches[${#patches[@]}]="$patch" files[${#files[@]}]="$old_file" fi if [ "$opt_patch" = "$patch" ] then # We also need to know the next patch, if any next_patch="$(next_patch_for_file "$opt_patch" "$opt_file")" break fi done if [ -z "$next_patch" ] then files[${#files[@]}]="$opt_file" else files[${#files[@]}]="$(backup_file_name "$next_patch" "$opt_file")" fi if [ ${#patches[@]} = 0 ] then sed -e 's:^:'$'\t'':' "${files[${#files[@]}-1]}" exit 0 fi template=$(gen_tempfile) add_exit_handler "rm -f $template" # The annotated listing is generated as follows: A file of annotations # is created based on a file that contains the same number of lines as # the source file, but all lines are empty. # # Then, for each patch that modifies the source file, an ed-style diff # (which has no context, and removes lines that are removed without # caring for the line's contents) is generated. In that diff, all line # additions are replaced with the identifier of the patch (1, 2, ...). # These patches are then applied to the empty file. # # Finally, the annotations listing is merged with the source file line # by line. setup_pager empty_file ${files[0]} > $template for ((n = 0; n < ${#patches[@]}; n++)) do annotation_for "${files[n]}" "${files[n+1]}" $((n+1)) done \ | patch $template merge_files $template "${files[${#files[@]}-1]}" echo for ((n = 0; n < ${#patches[@]}; n++)) do echo "$((n+1))"$'\t'"$(print_patch ${patches[n]})" done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/PaxHeaders/add.in0000644000000000000000000000013214554455146014116 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.229372339 30 ctime=1706187366.764458342 quilt-0.68/quilt/add.in0000644000076500001440000000500214554455146015351 0ustar00khaliusers00000000000000#! @BASH@ # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. usage() { printf $"Usage: quilt add [-P patch] {file} ...\n" if [ x$1 = x-h ] then printf $" Add one or more files to the topmost or named patch. Files must be added to the patch before being modified. Files that are modified by patches already applied on top of the specified patch cannot be added. -P patch Patch to add files to. " exit 0 else exit 1 fi } in_valid_dir() { local p=$1 path path=${p%/*} while [ "$p" != "$path" ] do if [ "$path" -ef "$QUILT_PATCHES" ] then printf $"File %s is located below %s\n" \ "$1" "$QUILT_PATCHES/" return 1 fi if [ "$path" -ef "$QUILT_PC" ] then printf $"File %s is located below %s\n" \ "$1" "$QUILT_PC/" return 1 fi p=$path path=${path%/*} done } options=`getopt -o P:h -- "$@"` if [ $? -ne 0 ] then usage fi eval set -- "$options" while true do case "$1" in -P) opt_patch="$2" shift 2 ;; -h) usage -h ;; --) shift break ;; esac done if [ $# -lt 1 ] then usage fi # Read in library functions if ! [ -r $QUILT_DIR/scripts/patchfns ] then echo "Cannot read library $QUILT_DIR/scripts/patchfns" >&2 exit 1 fi . $QUILT_DIR/scripts/patchfns patch=$(find_applied_patch "$opt_patch") || exit 1 status=0 for file in "$@" do if ! in_valid_dir "$SUBDIR$file" then status=1 continue fi if file_in_patch "$SUBDIR$file" $patch then printf $"File %s is already in patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" >&2 [ $status -ne 1 ] && status=2 continue fi next_patch=$(next_patch_for_file $patch "$SUBDIR$file") if [ -n "$next_patch" ] then printf $"File %s modified by patch %s\n" \ "$SUBDIR$file" "$(print_patch $next_patch)" >&2 status=1 continue fi if [ -L "$SUBDIR$file" ] then printf $"Cannot add symbolic link %s\n" "$SUBDIR$file" >&2 status=1 continue fi if ! $QUILT_DIR/scripts/backup-files -b -s -L -B $QUILT_PC/$patch/ "$SUBDIR$file" then printf $"Failed to back up file %s\n" "$SUBDIR$file" >&2 status=1 continue fi if [ -e "$SUBDIR$file" ] then # The original tree may be read-only. chmod u+w "$SUBDIR$file" fi printf $"File %s added to patch %s\n" \ "$SUBDIR$file" "$(print_patch $patch)" done exit $status ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/scripts/PaxHeaders/patchfns.in0000644000000000000000000000013214556437421016661 xustar0030 mtime=1706704657.992282146 30 atime=1711552108.234372401 30 ctime=1706704657.992282146 quilt-0.68/quilt/scripts/patchfns.in0000644000076500001440000005523314556437421020127 0ustar00khaliusers00000000000000# This file contains the common functions used in all quilt script # It is meant to be sourced by bash scripts. # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. export TEXTDOMAIN=quilt export TEXTDOMAINDIR=@LOCALEDIR@ : ${LC_CTYPE:=$LANG} : ${LC_MESSAGES:=$LANG} ORIGINAL_LANG=$LANG export LANG=POSIX DB_VERSION=2 : ${QUILT_PC:=.pc} # Support compatibility layer if [ -d $QUILT_DIR/compat ] then export PATH="$QUILT_DIR/compat:$PATH" fi unset CDPATH shopt -s dotglob . $QUILT_DIR/scripts/utilfns # ======================================================== declare -a exit_handlers add_exit_handler() { exit_handlers[${#exit_handlers[@]}]=$1 } remove_exit_handler() { declare -a handlers local h for h in "${exit_handlers[@]}" do [ "$h" = "$1" ] && continue handlers[${#handlers[@]}]=$h done exit_handlers=( "${handlers[@]}" ) } run_exit_handlers() { local h for h in "${exit_handlers[@]}" do eval $h done } trap run_exit_handlers EXIT # ======================================================== # Join multiple stings using the given separator. array_join() { local sep=$1 str=$2 shift 2 printf %s "$str" for str in "$@" do printf %s%s "$sep" "$str" done } # Quote a string for use in a regular expression for a grep pattern. quote_grep_re() { echo "$1" | sed -e 's:\([][^$.*\\]\):\\\1:g' } # Quote a string for use in a regular expression for a sed s/// command. quote_sed_re() { echo "$1" | sed -e 's:\([][^$/.*\\]\):\\\1:g' } # Quote a string for use in a regular expression for an awk pattern. quote_awk_re() { echo "$1" | sed -e 's:\([][?{(|)}^$/.+*\\]\):\\\1:g' } # Quote a string for use in a globing pattern. quote_glob() { echo "$1" | sed -e 's:\([][*?\\]\):\\\1:g' } # Ensure there is a trailing newline at the end of a file ensure_trailing_newline() { local last_char last_char=$(tail -c 1 "$1") if ! [ -z "$last_char" -o "$last_char" = $'\n' -o "$last_char" = $'\r' ] then echo "" >> "$1" fi } patch_file_name() { echo "$QUILT_PATCHES/$1" } # The -pN option and possibly others that should be passed to patch. patch_args() { local patch=$1 if [ -e "$SERIES" ] then awk ' {sub(/(^|[ \t]+)#.*/, "") } $1 == "'"$patch"'" \ { p_printed=0 for (i=2; i<=NF; i++) { print $i if ($i ~ /^-p/) p_printed=1 } if (!p_printed) print "-p1" ; exit } ' "$SERIES" fi } patch_strip_level() { local patch=$1 i for i in $(patch_args $patch) do case $i in -p*) echo ${i:2} return ;; esac done echo "1" } # Also remove -R if present. change_db_strip_level() { local level=$1 patch=$2 if [ x$level != x-p1 ] then level="$level" else level="" fi if [ -e "$SERIES" ] then local tmpfile=$(gen_tempfile) awk ' function remove_arg(nr, j) { for (j=nr; j=nr; j--) $(j+1)=$j $nr=value } /^'"$(quote_awk_re $patch)"'([ \t]|$)/ \ { p_printed=0 for (i=2; i<=NF && $i !~ /^#/; i++) { if ($i ~ /^-p/) { if ("'"$level"'" == "") remove_arg(i--) else $i="'"$level"'" p_printed=1 continue } if ($i == "-R") { remove_arg(i--) continue } } if (!p_printed && "'"$level"'" != "") insert_arg(2, "'"$level"'") } { print } ' "$SERIES" > $tmpfile if ! cmp "$SERIES" $tmpfile >/dev/null 2>/dev/null then cat $tmpfile > "$SERIES" fi rm -f $tmpfile else return 1 fi } patch_in_series() { local patch=$1 if [ -e "$SERIES" ] then grep -q "^$(quote_grep_re $patch)\([ \t]\|$\)" "$SERIES" else return 1 fi } # Insert new patch after topmost patch insert_in_series() { local patch=$1 patch_args=$2 local before tmpfile if [ -e "$SERIES" -a ! -f "$SERIES" ]; then printf $"%s is not a regular file\n" "$SERIES" >&2 return 1 fi before=${3-$(patch_after "$(top_patch)")} if [ -n "$patch_args" ] then patch_args=" $patch_args" fi tmpfile=$(gen_tempfile) || return 1 mkdir -p "$(dirname "$SERIES")" if [ -n "$before" ] then awk ' /^'"$(quote_awk_re $before)"'([ \t]|$)/ \ { print "'"$patch$patch_args"'" } { print } ' "$SERIES" > $tmpfile status=$? if [ $status -ne 0 ] then rm -f $tmpfile return 1 fi else if [ -e "$SERIES" ] then cat "$SERIES" > $tmpfile # Ensure there is a trailing newline before we append the rest ensure_trailing_newline $tmpfile fi echo "$patch$patch_args" >> $tmpfile fi cat $tmpfile > "$SERIES" rm -f $tmpfile } remove_from_series() { local patch=$1 tmpfile=$(gen_tempfile) || return 1 awk ' ! /^'"$(quote_awk_re $patch)"'([ \t]|$)/ \ { print } ' "$SERIES" > $tmpfile if [ $? -ne 0 ] then rm -f $tmpfile return 1 fi cat $tmpfile > "$SERIES" rm -f $tmpfile } rename_in_series() { local from=$1 to=$2 tmpfile=$(gen_tempfile) || return 1 awk ' /^'"$(quote_awk_re $from)"'([ \t]|$)/ \ { sub(/'"$(quote_awk_re $from)"'/, "'"${to//\"/\\\"}"'") good=1 } { print } END { exit(! good) } ' "$SERIES" > $tmpfile if [ $? -ne 0 ] then rm -f $tmpfile return 1 fi cat $tmpfile > "$SERIES" rm -f $tmpfile } rename_in_db() { local from=$1 to=$2 local tmpfile tmpfile=$(gen_tempfile) || return 1 awk ' /^'"$(quote_awk_re $from)"'$/ \ { sub(/'"$(quote_awk_re $from)"'/, "'"${to//\"/\\\"}"'") good=1 } { print } END { exit(! good) } ' $DB > $tmpfile if [ $? -eq 0 ] then cat $tmpfile > $DB rm -f $tmpfile else rm -f $tmpfile return 1 fi } backup_file_name() { local patch=$1 while [ $# -gt 1 ] do echo "$QUILT_PC/$patch/$2" shift done } cat_series() { if [ -e "$SERIES" ] then sed -e '/^#/d' -e 's/^[ '$'\t'']*//' \ -e 's/[ '$'\t''].*//' -e '/^$/d' "$SERIES" else return 1 fi } top_patch() { local patch=$(tail -n 1 $DB 2>/dev/null) [ -n "$patch" ] && echo "$patch" } is_numeric() { [[ "$1" =~ ^[0-9]+$ ]] } is_applied() { local patch=$1 [ -e $DB ] || return 1 grep -q "^$(quote_grep_re $patch)\$" $DB } applied_patches() { [ -e $DB ] || return 1 cat $DB } applied_before() { local patch=$1 if [ -n "$patch" ] then awk ' $0 == "'"$patch"'" { exit } { print } ' $DB fi } patches_before() { local patch=$1 if [ -n "$patch" ] then cat_series \ | awk ' $0 == "'"$patch"'" { exit } { print } ' fi } patches_after() { local patch=$1 if [ -n "$patch" ] then cat_series \ | awk ' seen == 1 { print } $0 == "'"$patch"'" { seen=1 } ' else cat_series fi } patch_after() { local patch="$1" patch=$(patches_after "$patch" | head -n 1) [ -n "$patch" ] && echo "$patch" } # List all patches that have been applied on top of patch $1 patches_on_top_of() { local patch=$1 [ -e $DB ] || return awk ' $0 == "'"$patch"'" { seen=1 ; next } seen == 1 { print } ' $DB } # Print the name of the patch that modified the file $2 next after # patch $1, or print nothing if patch $1 is on top. next_patch_for_file() { local patch=$1 file=$2 local patches_on_top=$(patches_on_top_of $patch) if [ -n "$patches_on_top" ] then for patch in $patches_on_top do if file_in_patch "$file" $patch then echo $patch break fi done fi } add_to_db() { echo $1 >> $DB } remove_from_db() { local patch=$1 local tmpfile if tmpfile=$(gen_tempfile) then grep -v "^$(quote_grep_re $patch)\$" $DB > $tmpfile cat $tmpfile > $DB rm -f $tmpfile [ -s $DB ] || rm -f $DB fi } find_first_patch() { local patch=$(cat_series | head -n 1) if [ -z "$patch" ] then printf $"No patches in series\n" >&2 return 1 fi echo "$patch" } find_last_patch() { local patch=$(cat_series | tail -n 1) if [ -z "$patch" ] then printf $"No patches in series\n" >&2 return 1 fi echo "$patch" } find_top_patch() { if ! top_patch then if find_first_patch > /dev/null then printf $"No patches applied\n" >&2 fi return 1 fi } find_patch() { local name="$1" if [ -e "$SERIES" ] then if ! [ -f "$SERIES" ] then printf $"%s is not a regular file\n" "$SERIES" >&2 return 1 fi local patch=${1#$SUBDIR_DOWN$QUILT_PATCHES/} local bre=$(quote_sed_re "$patch") set -- $(sed -e "/^$bre\(\|\.patch\|\.diff\?\)\(\|\.gz\|\.bz2\|\.xz\|\.lzma\|\.lz\|\.zst\)\([ "$'\t'"]\|$\)/!d" \ -e 's/[ '$'\t''].*//' "$SERIES") if [ $# -eq 1 ] then echo $1 return 0 else # We may have an exact match, which overrides # extension expansion while [ $# -gt 0 ] do if [ $1 = "$patch" ] then echo $1 return 0 fi shift done fi fi # Finding the first patch will error when the series is empty if [ -n "$(find_first_patch)" ] then printf $"Patch %s is not in series\n" "$name" >&2 fi return 1 } find_patch_in_series() { local name="$1" if [ -n "$name" ] then find_patch "$name" else find_top_patch fi } find_applied_patch() { local name="$1" if [ -n "$name" ] then local patch patch=$(find_patch "$name") || return 1 if ! is_applied "$patch" then printf $"Patch %s is not applied\n" \ "$(print_patch $patch)" >&2 return 1 fi echo "$patch" else find_top_patch fi } find_unapplied_patch() { local name="$1" if [ -n "$name" ] then local patch patch=$(find_patch "$name") || return 1 if is_applied "$patch" then printf $"Patch %s is currently applied\n" \ "$(print_patch $patch)" >&2 return 2 fi echo "$patch" else local start if start=$(top_patch) then patch_after "$start" else find_first_patch || return 2 fi if [ $? -ne 0 ] then printf $"File series fully applied, ends at patch %s\n" \ "$(print_patch $start)" >&2 return 2 fi fi } file_in_patch() { local file=$1 patch=$2 [ -f "$QUILT_PC/$patch/$file" ] } files_in_patch() { local patch="$1" local path="$QUILT_PC/$patch" if [ -d "$path" ] then find "$path" -type f \ -a ! -path "$(quote_glob "$path")/.timestamp" | sed -e "s/$(quote_sed_re "$path")\///" fi } # Note that we can only guess which files a patch touches because of the # complicated heuristics that patch uses (see "Multiple Patches in a File" # in the diff info pages). filenames_in_patch() { local patch=$1 local patch_file=$(patch_file_name $patch) if [ -e "$patch_file" ] then local strip=$(patch_strip_level $patch) [ "$strip" = ab ] && strip=1 awk ' $1 == "+++" || $1 == "---" && $3 != "----" || \ $1 == "***" && $3 != "****" \ { if (sub(/^... /, "") == 0) next # File name may be quoted if (sub(/^"/, "")) sub(/"(\t.*|$)/, "") else sub(/\t.*/, "") if ($0 == "" || $0 == "/dev/null") next for (n=0 ; n<'$strip'; n++) sub(/^[^\/]+\//, "") if (!printed[$0]++) print $0 }' $patch_file fi } files_in_patch_ordered() { local patch=$1 ( files_in_patch $patch | sort echo "-" filenames_in_patch $patch ) | awk ' $1 == "-" { out=1 ; next } !out { files[$0]=1 new_files[++n]=$0 } out { if ($0 in files) { print $0 printed[$0]=1 } } END { for (i=1; i<=n; i++) if (!(new_files[i] in printed)) print new_files[i] } ' } diff_file() { local file=$1 old_file=$2 new_file=$3 local index old_hdr old_date new_hdr new_date line regexp : ${opt_strip_level:=1} if [ $opt_strip_level = ab ] then old_hdr=a/$file new_hdr=b/$file elif [ $opt_strip_level -eq 0 ] then old_hdr=$file.orig new_hdr=$file else local dir=$(basename "$PWD") old_hdr=$dir.orig/$file new_hdr=$dir/$file fi index=$new_hdr if [ -s "$old_file" ] then [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || old_date=$'\t'$(date +'%Y-%m-%d %H:%M:%S.%N %z' \ -r "$old_file") else old_file=/dev/null old_hdr=/dev/null [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || old_date=$'\t'"1970-01-01 00:00:00.000000000 +0000" fi if [ -e "$new_file" ] then [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || new_date=$'\t'$(date +'%Y-%m-%d %H:%M:%S.%N %z' \ -r "$new_file") else [ $opt_strip_level = 0 ] \ && old_hdr=$new_hdr new_file=/dev/null new_hdr=/dev/null [ -n "$QUILT_NO_DIFF_TIMESTAMPS" ] \ || new_date=$'\t'"1970-01-01 00:00:00.000000000 +0000" fi # If a header contains a space character, it must be quoted regexp="[[:space:]]" [[ "$old_hdr" =~ $regexp ]] && old_hdr=\"$old_hdr\" [[ "$new_hdr" =~ $regexp ]] && new_hdr=\"$new_hdr\" diff $QUILT_DIFF_OPTS \ --label "$old_hdr$old_date" --label "$new_hdr$new_date" \ "$old_file" "$new_file" \ | if read line then local status=0 if [[ "$line" =~ ^Binary\ files\ .*\ differ$ ]] then status=1 elif [ -z "$QUILT_NO_DIFF_INDEX" ] then echo "Index: $index" echo "===================================================================" fi echo "$line" cat return $status fi # Test the return value of diff, and propagate the error retcode if any if [ ${PIPESTATUS[0]} == 2 -o ${PIPESTATUS[1]} == 1 ] then printf $"Diff failed on file '%s', aborting\n" "$new_file" >&2 return 1 fi } cat_file() { local filename for filename in "$@" do if [ -e "$filename" ] then case "$filename" in *.gz|*.tgz) gzip -cd "$filename" ;; *.bz2) bzip2 -cd "$filename" ;; *.xz) xz -cd "$filename" ;; *.lzma) lzma -cd "$filename" ;; *.lz) lzip -cd "$filename" ;; *.zst) zstd -cd "$filename" ;; *) cat "$filename" ;; esac fi done } cat_to_new_file() { local filename=$1 backup=$2 # If the file exists, back it up if requested. Return immediately upon # failure. if [ -e "$filename" -a -n "$backup" ] then if [ -L "$filename" ] then cp -p "$filename" "$filename~" else mv "$filename" "$filename~" fi || return fi # If the destination file is a symbolic link, preserve it unless its # target is read-only. In other cases, delete the patch file first in # case it has hard links. if [ -e "$filename" -a ! \( -L "$filename" -a -w "$filename" \) ] then rm -f "$filename" fi case "$filename" in *.gz) gzip -c ;; *.bz2) bzip2 -c ;; *.xz) xz -c ;; *.lzma) lzma -c ;; *.lz) lzip -c ;; *.zst) zstd -c ;; *) cat ;; esac \ > "$filename" } patch_header() { awk ' !(MAYBE_CONTEXT || MAYBE_UNIFIED) { if (/^\*\*\*[ \t][^ \t]/) { eaten=$0 MAYBE_CONTEXT=1 next } if (/^---[ \t][^ \t]/) { eaten=$0 MAYBE_UNIFIED=1 next } } MAYBE_CONTEXT { if (/^---[ \t][^ \t]/) exit print eaten MAYBE_CONTEXT=0 } MAYBE_UNIFIED { if (/^\+\+\+[ \t][^ \t]/) exit print eaten MAYBE_UNIFIED=0 } /^Index:[ \t][^ \t]|^diff -/ { exit } { print } ' } patch_body() { awk ' !(body || MAYBE_CONTEXT || MAYBE_UNIFIED) { if (/^\*\*\*[ \t][^ \t]/) { eaten=$0 MAYBE_CONTEXT=1 next } if (/^---[ \t][^ \t]/) { eaten=$0 MAYBE_UNIFIED=1 next } } MAYBE_CONTEXT { if (/^---[ \t][^ \t]/) { print eaten body=1 } MAYBE_CONTEXT=0 } MAYBE_UNIFIED { if (/^\+\+\+[ \t][^ \t]/) { print eaten body=1 } MAYBE_UNIFIED=0 } !body && /^Index:[ \t][^ \t]|^diff -/ { body=1 } body { print } ' } strip_diffstat() { awk ' /#? .* \| / \ { eat = eat $0 "\n" next } /^#? .* files? changed(, .* insertions?\(\+\))?(, .* deletions?\(-\))?/ \ { eat = "" next } { print eat $0 eat = "" } ' } in_array() { local a=$1 while [ $# -gt 1 ] do shift [ "$a" = "$1" ] && return 0 done return 1 } first_modified_by() { local file=$1 patch local -a patches if [ $# -eq 0 ] then patches=( $(applied_patches) ) else shift patches=( "$@" ) fi for patch in ${patches[@]} do if [ -f "$QUILT_PC/$patch/$file" ] then echo $patch return 0 fi done return 1 } apply_patch_temporarily() { local workdir=$1 patch=$2 patch_file patch_args patch_file=$(patch_file_name "$patch") patch_args=$(patch_args "$patch") shift 2 local prefix=$QUILT_PC/$patch/ [ ${prefix:0:1} == / ] || prefix=$PWD/$prefix if ! ( cd "$workdir" && \ $QUILT_DIR/scripts/backup-files -B "$prefix" -r -k -s "${@:--}" ) then printf $"Failed to copy files to temporary directory\n" >&2 return 1 fi if [ -s $patch_file ] then if ! cat_file $patch_file \ | patch -d "$workdir" $QUILT_PATCH_OPTS $patch_args \ --no-backup-if-mismatch -f \ >/dev/null 2>/dev/null then # Generating a relative diff for a subset of files in # the patch will fail. Also, if a patch was force # applied, we know that it won't apply cleanly. In # all other cases, print a warning. if [ ! -e $QUILT_PC/$patch~refresh -a $# -eq 0 ] then printf $"Failed to patch temporary files\n" >&2 return 1 fi fi fi } next_filename() { local patch=$1 base num base=$(echo "$patch" \ | sed -r -e 's:(\.gz|\.bz2|\.xz|\.lzma|\.lz|\.zst)$::' -e 's:(\.diff?|\.patch)$::') num=$(echo "$base" | sed -nre 's:.*-([0-9]+)$:\1:'p) [ -n "$num" ] || num=1 echo "${base%-$num}-$((num+1))${patch#$base}" } create_db() { if ! [ -e $QUILT_PC ] then mkdir -p $QUILT_PC echo $DB_VERSION > $QUILT_PC/.version fi if ! [ -e $QUILT_PC/.quilt_patches ] then echo "$QUILT_PATCHES" > $QUILT_PC/.quilt_patches fi if ! [ -e $QUILT_PC/.quilt_series ] then echo "$QUILT_SERIES" > $QUILT_PC/.quilt_series fi } version_check() { [ -e $QUILT_PC ] || return 0 if [ -e $QUILT_PC/.version ] then version="$(< $QUILT_PC/.version)" if [ "$version" -gt $DB_VERSION ] then printf $"The quilt meta-data in this tree has version %s, but this version of quilt can only handle meta-data formats up to and including version %s. Please pop all the patches using the version of quilt used to push them before downgrading.\n" "$version" "$DB_VERSION" >&2 exit 1 elif [ "$version" = $DB_VERSION ] then return 0 fi fi return 1 } consistency_check() { local top applied patches top=$(top_patch) applied=$(applied_before "$top") patches=$(patches_before "$top") if [ "$applied" != "$patches" ] then return 1 else # Skip check until series file is modified again touch "$DB" return 0 fi } print_patch() { echo "${QUILT_PATCHES_PREFIX:+$SUBDIR_DOWN$QUILT_PATCHES/}$1" } # Generate a format suitable to print patch names with printf patch_format() { local prefix=${QUILT_PATCHES_PREFIX:+$SUBDIR_DOWN$QUILT_PATCHES/} echo -n "${prefix/\%/%%}%s" } setup_colors() { local C=diff_hdr=32:diff_add=36:diff_mod=35:diff_rem=35:diff_hunk=33:diff_ctx=35:diff_cctx=33:patch_offs=33:patch_fuzz=35:patch_fail=31:series_app=32:series_top=33:series_una=00:clear=00 [ -n "$QUILT_COLORS" ] && C="$C:$QUILT_COLORS" C=${C//=/=\'$'\e'[} C=color_${C//:/m\'; color_}m\' eval $C } quilt_command() { local command=$1 shift # Refreshing here must produce the same output as "quilt refresh" on # the command line export QUILT_NO_DIFF_INDEX export QUILT_NO_DIFF_TIMESTAMPS # Propagate tracing options in case we are called recursively export BASH_OPTS QUILT_COMMAND="" bash $BASH_OPTS -c "${SUBDIR:+cd $SUBDIR;} [ ! -e \"$QUILTRC\" ] || source \"$QUILTRC\"; . $QUILT_DIR/$command" "quilt $command" "$@" } check_external_tool() { local tool=$1 package=$2 options=$3 local command=$QUILT_COMMAND [ -n "$options" ] && command="$command $options" if ! type "$tool" &> /dev/null then printf $"You have to install '%s' (from package %s) to use 'quilt %s'\n" \ "$tool" "$package" "$command" >&2 exit 1 fi } declare pager_fifo pager_fifo_dir pager_pid wait_for_pager() { exec >&- wait $pager_pid rm $pager_fifo 2>/dev/null rmdir $pager_fifo_dir 2>/dev/null } wait_for_pager_signal() { remove_exit_handler wait_for_pager wait_for_pager trap - INT HUP TERM QUIT } # Spawn pager process and redirect the rest of our output to it setup_pager() { test -t 1 || return 0 # QUILT_PAGER = QUILT_PAGER | GIT_PAGER | PAGER | less -R # NOTE: QUILT_PAGER='' is significant QUILT_PAGER=${QUILT_PAGER-${GIT_PAGER-${PAGER-less -R}}} [ -z "$QUILT_PAGER" -o "$QUILT_PAGER" = "cat" ] && return 0 export LESS="${LESS:-FRSX}" # NOTE: with "exec > >($pager)" there is no way to get the pid of the # pager so we can't wait for it to complete. Otherwise we wouldn't # need temporary files here. Alternatively, in recent versions of # bash, a coprocess could be used instead. pager_fifo_dir="$(gen_tempfile -d)" pager_fifo="$pager_fifo_dir/0" mkfifo -m 600 "$pager_fifo" LANG=$ORIGINAL_LANG $QUILT_PAGER < "$pager_fifo" & pager_pid=$! exec > "$pager_fifo" trap wait_for_pager_signal INT HUP TERM QUIT add_exit_handler wait_for_pager } # # If the working directory does not contain a $QUILT_PATCHES directory, # quilt searches for its base directory up the directory tree. If no # $QUILT_PATCHES directory exists, the quilt operations that create # patches will create $QUILT_PATCHES in the current working directory. # # When quilt is invoked from a directory below the base directory, it # changes into the base directory, and sets $SUBDIR to the relative # path from the base directory to the directory in which it was # invoked. (e.g., if quilt is invoked in /usr/src/linux/drivers/net # and the base direcory is /usr/src/linux, $SUBDIR is set to # drivers/net/. unset SUBDIR SUBDIR_DOWN if ! [ -d "$QUILT_PC" -o -d "${QUILT_PATCHES:-patches}" ] then basedir=$PWD while [ -n "$basedir" ] do basedir=${basedir%/*} down=$down../ if [ -d "$basedir/$QUILT_PC" -o -d "$basedir/${QUILT_PATCHES:-patches}" ] then SUBDIR="${PWD#$basedir/}/" SUBDIR_DOWN=$down if ! cd "$basedir/" then printf $"Cannot change into parent directory %s/\n" "$basedir" >&2 exit 1 fi break fi done unset basedir down fi if [ -r $QUILT_PC/.quilt_patches ] then QUILT_PATCHES=$(< $QUILT_PC/.quilt_patches) else : ${QUILT_PATCHES:=patches} fi if [ -r $QUILT_PC/.quilt_series ] then QUILT_SERIES=$(< $QUILT_PC/.quilt_series) else : ${QUILT_SERIES:=series} fi if [ "${QUILT_SERIES:0:1}" = / ] then SERIES=$QUILT_SERIES elif [ -f "$QUILT_PC/$QUILT_SERIES" ] then SERIES=$QUILT_PC/$QUILT_SERIES # We know the file exists, no need to re-check later skip_series_check=1 elif [ -f "$QUILT_SERIES" ] then SERIES=$QUILT_SERIES # We know the file exists, no need to re-check later skip_series_check=1 else SERIES=$QUILT_PATCHES/$QUILT_SERIES fi DB="$QUILT_PC/applied-patches" if [ -z "$skip_version_check" ] then if ! version_check then printf $"The working tree was created by an older version of quilt. Please run 'quilt upgrade'.\n" >&2 exit 1 fi # Check if series file was modified manually, and if this is the case, # make sure it is still consistent with the applied patches if [ -s "$DB" -a ! "$DB" -nt "$SERIES" ] && [ "$QUILT_COMMAND" != pop ] && ! consistency_check then printf $"The series file no longer matches the applied patches. Please run 'quilt pop -a'.\n" >&2 exit 1 fi fi if [ -z "$skip_series_check" ] then if [ ! -f "$SERIES" ] then printf $"No series file found\n" >&2 exit 1 fi fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/scripts/PaxHeaders/inspect-wrapper.in0000644000000000000000000000013214554455146020200 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.239372464 30 ctime=1706187366.764458342 quilt-0.68/quilt/scripts/inspect-wrapper.in0000644000076500001440000001251514554455146021442 0ustar00khaliusers00000000000000#! @BASH@ # find original data file by md5sum original_file() { local md5sum=$1 if ! [ -e $tmpdir/md5sums ] then echo >&4 create_md5sums "$RPM_SOURCE_DIR" $tmpdir/md5sums echo -n "### rpmbuild: " >&4 fi while read md5sum_ file_ do if [ "$md5sum" = "$md5sum_" ] then echo ${file_#\*} return 0 fi done < $tmpdir/md5sums # Try harder if ! [ -e $tmpdir/more-md5sums ] then ( cd $RPM_BUILD_DIR find . -type f \ | sed -e 's:^.\/::' \ | xargs md5sum \ ) > $tmpdir/more-md5sums fi while read md5sum_ file_ do if [ "$md5sum" = "$md5sum_" ] then echo $QUILT_SETUP_PREFIX${file_#\*} return 0 fi done < $tmpdir/more-md5sums # Return md5sum and error if we can't match the file echo $md5sum return 1 } # Extract a command line option with or without argument cmdline_option() { local letter=$1 no_arg=$2 shift while [ $# -ne 0 ] do if [ "${1:0:2}" = -$letter ] then if [ -z "$no_arg" ] then [ "$1" = -$letter ] && set -- "$1$2" fi echo $1 break fi shift done } # Extract the -p option from the command line strip_option() { set -- $(cmdline_option p "$@") [ "$1" != -p1 ] && echo $1 } # Extract the -R option from the command line reverse_option() { set -- $(cmdline_option R no_arg "$@") echo $1 } patch_opt_d() { local subdir=$(cmdline_option d "$@") [ -z "$subdir" ] || echo "${subdir:2}" } patch_input_file() { while [ $# -gt 0 ] do case "$1" in -i|--input) if [ $# -ge 2 ] then echo "$2" return fi ;; -i*) echo "${1#-i}" return ;; --input=*) echo "${1#--input=}" return ;; esac shift done return 1 } tar_input_file() { case "$1" in # Modern option format -*) while [ $# -gt 0 ] do case "$1" in # Extract the file name (long option) --file) echo "$2" return ;; --file=*) echo "${1#--file=}" return ;; # Skip other long options --*) shift ;; # Extract the file name (short option) -*f) echo "$2" return ;; -f*) echo "${1#-f}" return ;; # Skip other short options and parameters *) shift ;; esac done ;; # Legacy option format (must always come first) *C*f*) echo "$3" return ;; *f*) echo "$2" return ;; ?*) # Eat legacy options and try again until [ $# -eq 0 -o "${1:0:1}" = "-" ] do shift done tar_input_file "$@" return ;; esac return 1 } unzip_input_file() { while [ $# -gt 0 ] do case "$1" in -*) shift ;; *) echo "$1" return ;; esac done return 1 } _7z_input_file() { while [ $# -gt 0 ] do case "$1" in -*|e|x) shift ;; *) echo "$1" return ;; esac done return 1 } tar_opt_C() { case "$1" in *C*f*) echo "$2" return ;; esac } pwd_to_dir() { local subdir=$1 dir if [ -n "$subdir" ] then dir=$(cd "$subdir" && echo $PWD) else dir=$PWD fi dir=${dir/$RPM_BUILD_DIR} dir=${dir##/} dir=${dir// /\\ } echo "$dir" } # Who were we called as? command=${0##*/} PATH=${PATH#*:} # If we are called too early, pass through without processing [ -n "$RPM_BUILD_DIR" ] || exec $command "$@" tmpdir=${RPM_BUILD_DIR%/*} case $command in patch) echo -n p >&4 inputfile=$(patch_input_file "$@") ;; tar) echo -n t >&4 [ -n "$QUILT_SETUP_FAST" ] && exec tar "$@" inputfile=$(tar_input_file "$@") # For tar, file - means read from stdin [ "$inputfile" = "-" ] && inputfile= ;; unzip) echo -n Z >&4 [ -n "$QUILT_SETUP_FAST" ] && exec unzip "$@" inputfile=$(unzip_input_file "$@") ;; 7z) echo -n 7 >&4 [ -n "$QUILT_SETUP_FAST" ] && exec 7z "$@" inputfile=$(_7z_input_file "$@") ;; esac # If the file was not passed as a parameter, try to identify stdin if [ -n "$QUILT_SETUP_FAST" -a -z "$inputfile" ] then inputfile=$(readlink /proc/self/fd/0) if [ "${inputfile:0:1}" = / -a -f "$inputfile" ] then # procfs resolved the symlinks, so do the same, otherwise the # path prefix won't match RPM_SOURCE_DIR=$(cd -P "$RPM_SOURCE_DIR" && echo "$PWD")/ else # Didn't work, so fall back to the slow method inputfile= fi fi if [ -n "$inputfile" ] then if [ "${inputfile:0:1}" = / ] then unpackfile=${inputfile/$RPM_SOURCE_DIR} else unpackfile=$QUILT_SETUP_PREFIX$(dir_to_dir "$RPM_BUILD_DIR" "$inputfile") fi else if [ -n "$QUILT_SETUP_FAST" ] then # In fast mode we can read from stdin directly, we won't let # patch apply the patch anyway md5sum=$(md5sum) else # put data from stdin into tmpfile cat > $tmpdir/data md5sum=$(md5sum < $tmpdir/data) fi unpackfile=$(original_file $md5sum) if [ $? -ne 0 ] then # Report problem to the caller echo -n "?" >&4 printf "Warning: no match for file with md5sum %s\n" \ $unpackfile >&2 unpackfile="#$unpackfile" fi fi case $command in patch) subdir=$(patch_opt_d "$@") dir=$(pwd_to_dir $subdir) echo "patch ${dir:-.} $unpackfile" \ $(strip_option "$@") $(reverse_option "$@") >&3 ;; tar) subdir=$(tar_opt_C "$@") dir=$(pwd_to_dir $subdir) echo "tar ${dir:-.} $unpackfile" >&3 ;; unzip) dir=$(pwd_to_dir) echo "unzip ${dir:-.} $unpackfile" >&3 ;; 7z) dir=$(pwd_to_dir) echo "7z ${dir:-.} $unpackfile" >&3 ;; esac # In fast mode, we don't actually apply patches [ -n "$QUILT_SETUP_FAST" ] && exit 0 if [ -n "$inputfile" ] then exec $command "$@" else exec $command "$@" < $tmpdir/data fi ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/scripts/PaxHeaders/dependency-graph.in0000644000000000000000000000013214554455146020272 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.244372527 30 ctime=1706187366.764458342 quilt-0.68/quilt/scripts/dependency-graph.in0000644000076500001440000003145714554455146021542 0ustar00khaliusers00000000000000#!@PERL@ -w # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. # Generate a dot-style graph of dependencies between patches. use Getopt::Long; use FileHandle; use strict; # Constants my $short_edge_style = "color=grey"; my $close_node_style = "color=grey"; my $highlighted_node_style = "style=bold"; # Command line arguments my $help = 0; my $use_patcher = 0; # Assume patcher format for metadata my $short_edge_thresh = 0; # threshold for coloring as "short", 0 = disable my $long_edge_thresh = 0; # threshold for coloring as "long",0 = disable my $edge_labels; # label all edges with filenames my $short_edge_labels; # label short edges with filenames my $long_edge_labels; # label long edges with filenames my $edge_length_labels; # distance between patches as edge labels my $node_numbers; # include sequence numbers my $show_isolated_nodes; # also include isolated nodes my $reduce; # remove transitive edges my $filter_patchnames; # filter for compacting filenames my $selected_patch; # only include patches related on this patch my $selected_distance = -1; # infinity my @highlight_patches; # a list of patches to highlight my $lines; # check ranges with this number of context # lines. unless (GetOptions( "h|help" => \$help, "patcher" => \$use_patcher, "short-edge=i" => \$short_edge_thresh, "long-edge=i" => \$long_edge_thresh, "edge-files" => \$edge_labels, "short-edge-files" => \$short_edge_labels, "long-edge-files" => \$long_edge_labels, "edge-length" => \$edge_length_labels, "node-numbers" => \$node_numbers, "isolated" => \$show_isolated_nodes, "reduce" => \$reduce, "filter-patchnames=s" => \$filter_patchnames, "select-patch=s" => \$selected_patch, "select-distance=i" => \$selected_distance, "highlight=s" => \@highlight_patches, "lines=i" => \$lines) && !$help) { my $basename = $0; $basename =~ s:.*/::; my $fd = $help ? *STDOUT : *STDERR; print $fd <) { if (/^\@\@ -(\d+)(?:,(\d+)?) \+(\d+)(?:,(\d+)?) \@\@/) { push @left, ($3, $3 + $4); push @right, ($1, $1 + $2); } } return [ [ @left ], [ @right ] ]; } sub backup_file_name($$) { my ($patch, $file) = @_; if ($use_patcher) { return $file . "~" . $patch; } else { return $ENV{QUILT_PC} . "/" . $patch . "/" . $file; } } # Compute the lists of lines that a patch changes in a file. sub compute_ranges($$) { my ($n, $file) = @_; my $file1 = backup_file_name($nodes[$n]{file}, $file); my $file2; my $n2 = next_patch_for_file($n, $file); if (defined $n2) { $file2 = backup_file_name($nodes[$n2]{file}, $file); } else { $file2 = $file; } #print STDERR "diff -U$lines \"$file1\" \"$file2\"\n"; if (-z $file1) { $file1="/dev/null"; return [[], []] if (-z $file2); } else { $file2="/dev/null" if (-z $file2); } my $fd = new FileHandle("diff -U$lines \"$file1\" \"$file2\" |"); my $ranges = ranges($fd); $fd->close(); return $ranges; } sub is_a_conflict($$$) { my ($from, $to, $filename) = @_; $nodes[$from]{files}{$filename} = compute_ranges($from, $filename) unless @{$nodes[$from]{files}{$filename}}; $nodes[$to]{files}{$filename} = compute_ranges($to, $filename) unless @{$nodes[$to]{files}{$filename}}; my @a = @{$nodes[$from]{files}{$filename}[1]}; my @b = @{$nodes[$to ]{files}{$filename}[0]}; while (@a && @b) { if ($a[0] < $b[0]) { return 1 if @b % 2; shift @a; } elsif ($a[0] > $b[0]) { return 1 if @a % 2; shift @b; } else { return 1 if (@a % 2) == (@b % 2); shift @a; shift @b; } } return 0; } # Fetch the list of patches (all of them must be applied) my @patches; if (@ARGV) { if (@ARGV == 1 && $ARGV[0] eq "-") { @patches = map { chomp ; $_ } ; } else { @patches = @ARGV; } } elsif ($use_patcher) { my $fh = new FileHandle("< .patches/applied") or die ".patches/applied: $!\n"; @patches = map { chomp; $_ } <$fh>; $fh->close(); } else { my $fh = new FileHandle("< $ENV{QUILT_PC}/applied-patches") or die ".$ENV{QUILT_PC}/applied-patches: $!\n"; @patches = map { chomp; $_ } <$fh>; $fh->close(); } # Fetch the list of files my $n = 0; foreach my $patch (@patches) { my @files; if ($use_patcher) { my $fh = new FileHandle("< .patches/$patch.files") or die ".patches/$patch.files: $!\n"; @files = map { chomp; $_ } <$fh>; $fh->close(); } else { if (! -d "$ENV{QUILT_PC}/$patch") { print STDERR "$ENV{QUILT_PC}/$patch does not exist; skipping\n"; next; } @files = split(/\n/, `cd $ENV{QUILT_PC}/$patch ; find . -type f ! -name .timestamp`); @files = map { s:\./::; $_ } @files; } push @nodes, {number=>$n++, name=>$patch, file=>$patch, files=>{ map {$_ => []} @files } }; } my %used_nodes; # nodes to which at least one edge is attached # If a patch is selected, limit the graph to nodes that depend on this patch, # and nodes that are dependent on this patch. if ($selected_patch) { for ($n = 0; $n < @nodes; $n++) { last if $nodes[$n]{file} eq $selected_patch; } die "Patch $selected_patch not included\n" if ($n == @nodes); $used_nodes{$n} = 1; my $selected_node = $nodes[$n]; push @{$selected_node->{attrs}}, $highlighted_node_style; my %sel; map { $sel{$_} = 1 } keys %{$selected_node->{files}}; foreach my $node (@nodes) { foreach my $file (keys %{$node->{files}}) { unless (exists $sel{$file}) { delete $node->{files}{$file}; } } } } # Optionally highlight a list of patches foreach my $patch (@highlight_patches) { for ($n = 0; $n < @nodes; $n++) { last if $nodes[$n]{file} eq $patch; } die "Patch $patch not included\n" if ($n == @nodes); my $node = $nodes[$n]; push @{$node->{attrs}}, $highlighted_node_style; $node->{colorized} = 1; } # If a patchname filter is selected, pipe all patchnames through # it. if ($filter_patchnames) { local *PIPE; my $pid = open(PIPE, "- |"); # fork a child to read from die "fork: $!\n" unless defined $pid; unless ($pid) { # child # open a second pipe to the actual filter open(PIPE, "| $filter_patchnames") or die "$filter_patchnames: $!\n"; map { print PIPE "$_\n" } @patches; close(PIPE); exit; } else { # parent $n = 0; foreach my $name () { last unless $n < @nodes; chomp $name; if ($name eq "") { delete $nodes[$n++]{name}; } else { $nodes[$n++]{name} = $name; } } close(PIPE) or die "patchname filter failed.\n"; die "patchname filter returned too few lines\n" if $n != @nodes; } } my %files_seen; # remember the last patch that touched each file my %edges; foreach my $node (@nodes) { my $number = $node->{number}; foreach my $file (keys %{$node->{files}}) { if (exists $files_seen{$file}) { my $patches = $files_seen{$file}; my $patch; # Optionally look at the line ranges the patches touch if (defined $lines) { for (my $n = $#$patches; $n >= 0; $n--) { if (is_a_conflict($number, $patches->[$n], $file)) { $patch = $patches->[$n]; last; } } } else { $patch = $patches->[$#$patches]; } if (defined $patch) { push @{$edges{"$number:$patch"}{names}}, $file; $used_nodes{$number} = 1; $used_nodes{$patch} = 1; } } push @{$files_seen{$file}}, $number; } } # Create adjacency lists foreach my $node (@nodes) { @{$node->{to}} = (); @{$node->{from}} = (); } foreach my $key (keys %edges) { my ($from, $to) = split /:/, $key; push @{$nodes[$from]{to}}, $to; push @{$nodes[$to]{from}}, $from; } # Colorize nodes that are close to each other foreach my $node (@nodes) { if (!exists $node->{colorized} && !exists $used_nodes{$node->{number}}) { $node->{colorized} = 1; push @{$node->{attrs}}, $close_node_style; } } # Colorize short and long edges foreach my $node (@nodes) { my $close = 1; foreach my $node2 (map {$nodes[$_]} @{$node->{to}}) { if (abs($node2->{number} - $node->{number}) > $short_edge_thresh) { $close = 0 } } foreach my $node2 (map {$nodes[$_]} @{$node->{from}}) { if (abs($node2->{number} - $node->{number}) > $short_edge_thresh) { $close = 0 } } if (!exists $node->{colorized} && $close) { $node->{colorized} = 1; push @{$node->{attrs}}, $close_node_style; } } # Add node labels foreach my $node (@nodes) { my @label = (); push @label, $node->{number} + 1 if ($node_numbers); push @label, $node->{name} if exists $node->{name}; push @{$node->{attrs}}, "label=\"" . join(": ", @label) . "\""; } # Add edge labels foreach my $key (keys %edges) { my ($from, $to) = split /:/, $key; if ($edge_length_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . abs($to - $from) . "\"" if abs($to - $from) > 1; } elsif (abs($to - $from) < $short_edge_thresh) { push @{$edges{$key}->{attrs}}, $short_edge_style; if ($edge_labels || $short_edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } else { if ($long_edge_thresh && abs($to - $from) > $long_edge_thresh) { push @{$edges{$key}->{attrs}}, "style=bold"; if ($edge_labels || $long_edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } else { if ($edge_labels) { push @{$edges{$key}->{attrs}}, "label=\"" . join("\\n", @{$edges{$key}{names}}) . "\""; } } } # Compute a pseudo edge length so that neato works acceptably. push @{$edges{$key}{attrs}}, "len=\"" . sprintf("%.2f", log(abs($to - $from) + 3)) . "\""; } #foreach my $node (@nodes) { # push @{$node->{attrs}}, "shape=box"; #} # Open output file / pipe my $out; if ($reduce) { $out = new FileHandle("| tred") or die "tred: $!\n"; } else { $out = new FileHandle("> /dev/stdout") or die "$!\n"; } # Write graph print $out "digraph dependencies {\n"; #print "\tsize=\"11,8\"\n"; foreach my $node (@nodes) { next unless $show_isolated_nodes || exists $used_nodes{$node->{number}}; print $out "\tn$node->{number}"; if (exists $node->{attrs}) { print $out " [" . join(",", @{$node->{attrs}}) . "]"; } print $out ";\n"; } sub w($) { my @n = split /:/, shift; return $n[0] * 10000 + $n[1]; } foreach my $key (sort { w($a) <=> w($b) } keys %edges) { my ($from, $to) = split /:/, $key; print $out "\tn$to -> n$from"; if (exists $edges{$key}{attrs}) { print $out " [" . join(",", @{$edges{$key}{attrs}}) . "]"; } print $out ";\n"; } print $out "}\n"; quilt-0.68/quilt/scripts/PaxHeaders/edmail.in0000644000000000000000000000013214554455146016310 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.250372602 30 ctime=1706187366.764458342 quilt-0.68/quilt/scripts/edmail.in0000644000076500001440000001427714554455146017561 0ustar00khaliusers00000000000000#! @PERL@ -w # RFCs important for this script: # # RFC 2822 - Internet Message Format # RFC 2047 - MIME (Multipurpose Internet Mail Extensions) Part Three: # Message Header Extensions for Non-ASCII Text use Getopt::Long; use strict; # This ugly trick lets the script work even if gettext support is missing. # We did so because Locale::gettext doesn't ship with the standard perl # distribution. BEGIN { if (eval { require Locale::gettext }) { import Locale::gettext; require POSIX; import POSIX, qw(setlocale); } else { eval ' use constant LC_MESSAGES => 0; sub setlocale($$) { } sub bindtextdomain($$) { } sub textdomain($) { } sub gettext($) { shift } ' } } setlocale(LC_MESSAGES, ""); bindtextdomain("quilt", "@LOCALEDIR@"); textdomain("quilt"); sub _($) { return gettext(shift); } my $special = '()<>\[\]:;@\\,"'; # special characters my $special_dot = "$special."; # special characters + dot sub check_recipient($); my (%append_name, %append_value, $remove_empty_headers, %remove_header, %extract_recipients_from, %replace_name, %replace_value, $charset); GetOptions('add-recipient=s%' => sub { $append_name{lc $_[1]} = $_[1]; $append_value{lc $_[1]} .= ",\n " . $_[2]; }, 'add-good-recipient=s%' => sub { eval { check_recipient($_[2]) }; if ($@) { chomp $@; print STDERR "$@; skipping\n"; } else { $append_name{lc $_[1]} = $_[1]; $append_value{lc $_[1]} .= ",\n " . $_[2]; } }, 'remove-header=s' => sub { $remove_header{lc $_[1]}++ }, 'remove-empty-headers' => \$remove_empty_headers, 'replace-header=s%' => sub { $replace_name{lc $_[1]} = $_[1]; $replace_value{lc $_[1]} = $_[2]; }, 'extract-recipients=s' => sub { $extract_recipients_from{lc $_[1]} = 1 }, 'charset=s' => \$charset) or exit 1; my %recipient_headers = map {lc $_ => 1} (@ARGV, keys %append_name); sub encode_header($) { my ($word) = @_; $word =~ s{[^\t\41-\76\100-\176]}{sprintf "=%02X", ord($&)}ge; return "=?$charset?q?$word?="; } # Check for a valid display name sub check_display_name($) { my ($display) = @_; if ($display =~ /^"((?:[^"\\]|\\[^\n\r])*)"/) { my $quoted = $1; if ($quoted =~ /[^\t\40-\176]/) { $display = $quoted; $display =~ s/\\//; return encode_header($display); } } else { local $_ = $display; # The value is not (properly) quoted. Check for invalid characters. while (/\(/ or /\)/) { die sprintf( _("Display name `%s' contains unpaired parentheses\n"), $display) unless s/\(([^()]*)\)/$1/; } if ($display =~ /[^\t\40-\176]/ || $display =~ /[$special_dot]/) { if ($display =~ /[^\1-\10\13\14\16-\37\40\41\43-\133\135-\177]/) { return encode_header($display); } elsif ($display =~ /[$special_dot]/) { return "\"$display\""; } } } return $display; } # Check for a valid delivery address sub check_delivery_address($) { my ($deliver) = @_; die sprintf(_("Delivery address `%s' is invalid\n"), $deliver) if $deliver =~ /[ \t]/ or $deliver =~ /[^ \t\40-\176]/ or $deliver !~ /^[^$special]+@(\[?)[^$special_dot]+(?:\.[^$special_dot]+)*(\]?)$/ or (!$1) != (!$2); return $deliver; } sub check_recipient($) { my ($recipient) = @_; if ($recipient =~ /^(.*?)\s*<(.+)>$/) { my $deliver = check_delivery_address($2); return ( check_display_name($1) . " <" . $deliver . ">", $deliver ); } elsif ($recipient =~ /^(\S*)\s*\((.*)\)$/) { my $deliver = check_delivery_address($1); return ( $deliver . " (" . check_display_name($2) . ")", $deliver ); } else { my $deliver = check_delivery_address($recipient); return ( $deliver, $deliver ); } } sub split_recipients($) { my ($recipients) = @_; my @list = (); while ($recipients !~ /^\s*$/) { my $recipient; if ($recipients =~ s/^\s*,?\s*((?:"(?:[^"]+)"|[^",])*)//) { $recipient = $1; } else { $recipient = $recipients; $recipients = ""; } $recipient =~ s/\s*$//; push @list, $recipient; } return @list; } my %recipients; sub process_header($) { local ($_) = @_; my ($name, $value); return unless defined $_; unless (($name, $value) = /^([\41-\176]+):\s*(.*)/s) { print; return } if (%extract_recipients_from) { if (exists $extract_recipients_from{lc $name}) { $value =~ s/^\s*//; $value =~ s/\s*$//; foreach my $recipient (split_recipients($value)) { my $deliver; ($recipient, $deliver) = check_recipient($recipient); print "$deliver\n"; } } return; } return if exists $remove_header{lc $name}; if (exists $replace_name{lc $name}) { if (exists $replace_value{lc $name}) { print "$replace_name{lc $name}: $replace_value{lc $name}\n"; delete $replace_value{lc $name}; } return; } if (exists $recipient_headers{lc $1}) { if (exists $append_name{lc $name}) { $value .= $append_value{lc $name}; delete $append_name{lc $name}; } my @recipients; # This is a recipients field. Split out all the recipients and # check the addresses. Suppress duplicate recipients. foreach my $recipient (split_recipients($value)) { my $deliver; ($recipient, $deliver) = check_recipient($recipient); unless (exists $recipients{$deliver}) { push @recipients, $recipient; $recipients{$deliver} = $deliver; } } print "$name: ", join(",\n ", @recipients), "\n" if @recipients || !$remove_empty_headers; } else { print if $value ne "" || !$remove_empty_headers; } } my $header; while () { last if (/^$/); if (/^\S/) { process_header $header; undef $header; } $header .= $_; } process_header $header; foreach my $name (keys %append_name) { process_header $append_name{$name} . ': ' . $append_value{$name}; } unless (%extract_recipients_from) { # Copy the message body to standard output # FIXME check for 7-bit clean, else assume $charset # FIXME if UTF-8, check for invalid characters! # FIXME must make sure that all messages are written in # either 7-bit or $charset => mbox !!! # Content-Transfer-Encoding: 7bit # Content-Transfer-Encoding: 8bit # Content-Type: text/plain; charset=ISO-8859-15 # Content-Type: text/plain; charset=UTF-8 undef $/; print "\n", ; } quilt-0.68/quilt/scripts/PaxHeaders/remove-trailing-ws.in0000644000000000000000000000013214554455146020610 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.255372664 30 ctime=1706187366.764458342 quilt-0.68/quilt/scripts/remove-trailing-ws.in0000644000076500001440000000660314554455146022053 0ustar00khaliusers00000000000000#! @PERL@ -w # Remove trailing whitespace from modified lines in working files. # # Input: diff between original and working files (unified or context # format). use strict; use FileHandle; use File::Temp qw( :mktemp ); use Getopt::Std; use vars qw($opt_p $opt_n); # This ugly trick lets the script work even if gettext support is missing. # We did so because Locale::gettext doesn't ship with the standard perl # distribution. BEGIN { if (eval { require Locale::gettext }) { import Locale::gettext; require POSIX; import POSIX, qw(setlocale); } else { eval ' use constant LC_MESSAGES => 0; sub setlocale($$) { } sub bindtextdomain($$) { } sub textdomain($) { } sub gettext($) { shift } ' } } setlocale(LC_MESSAGES, ""); bindtextdomain("quilt", "@LOCALEDIR@"); textdomain("quilt"); sub _($) { return gettext(shift); } $opt_p = 0; getopts('np:') or die sprintf(_("SYNOPSIS: %s [-p num] [-n] [patch]\n"), $0); my %files; my $file; while (<>) { print unless $opt_n; if (/^--- ./) { # unified diff $file = undef; while (<>) { print unless $opt_n; if (/^\+\+\+ (.+?)(?:[ \t][^\t]*)?$/) { $file = $1; $file =~ s<^([^/]+/+){$opt_p}><>; #print STDERR "[$file]\n"; } elsif ($file && /^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/) { my $removed = defined $2 ? $2 : 1; my $added = defined $4 ? $4 : 1; my $line_number = $3; while ($removed || $added) { $_ = <>; defined $_ or die sprintf(_("%s: I'm confused.\n"), $0); if (/^\+/) { push @{$files{$file}}, $line_number if s/(^\+.*?)[ \t]+$/$1/; $added--; $line_number++; } elsif (/^-/) { $removed--; } elsif (/^ / || /^$/) { $removed--; $added--; $line_number++; } print unless $opt_n; } } } } elsif (/^\*\*\* ./) { # context diff $file = undef; while (<>) { print unless $opt_n; if ($file && /^--- (\d+)(?:,(\d+))? ----$/) { my $line_number = $1; my $last_line = defined $2 ? $2 : $1; while ($line_number <= $last_line) { $_ = <>; defined $_ or last; if (s/(^[+!] .*?)[ \t]+$/$1/) { push @{$files{$file}}, $line_number; } $line_number++; print unless $opt_n; last if (/^\*\*\*[* ]/); } } elsif (/^--- (.+?)(?:[ \t][^\t]*)?$/) { $file = $1; $file =~ s<^([^/]+/+){$opt_p}><>; #print STDERR "[$file]\n"; } } } } foreach my $file (sort keys %files) { my @lines = @{$files{$file}}; if ($opt_n) { print STDERR sprintf( _("Warning: trailing whitespace in line %s of %s\n"), $lines[0], $file) if @lines == 1; print STDERR sprintf( _("Warning: trailing whitespace in lines %s of %s\n"), join(',', @lines), $file) if @lines > 1; } else { print STDERR sprintf( _("Removing trailing whitespace from line %s of %s\n"), $lines[0], $file) if @lines == 1; print STDERR sprintf( _("Removing trailing whitespace from lines %s of %s\n"), join(',', @lines), $file) if @lines > 1; } unless ($opt_n) { my $fh = new FileHandle("< $file") or die "$file: $!\n"; my ($tmp, $tmpname) = mkstemp("$file.XXXXXX") or die "$file.*: $!\n"; while (<$fh>) { if (@lines && $lines[0] == $.) { s/[ \t]+$//; shift @lines; } print $tmp $_; } $fh->close; $tmp->close or die "$tmpname: $!\n"; rename $tmpname, $file or die sprintf(_("Renaming %s to %s: %s\n"), $tmpname, $file, $!); } } quilt-0.68/quilt/scripts/PaxHeaders/backup-files.in0000644000000000000000000000013214554455146017422 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.260372727 30 ctime=1706187366.764458342 quilt-0.68/quilt/scripts/backup-files.in0000644000076500001440000001752714554455146020674 0ustar00khaliusers00000000000000#! @BASH@ set -e # Keep /dev/null opened as we will need it repeatedly exec 4> /dev/null # Copyright (C) 2006 Steve Langasek # Copyright (C) 2011 Jean Delvare # Loosely based on C implementation by Andreas Gruenbacher # 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; version 2 dated June, 1991. # 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 St, Fifth Floor, Boston, # MA 02110-1301, USA. usage () { echo "Usage: $0 -B prefix {-b|-r|-c|-L} [-s] [-k] [-t] [-L] {-f {file|-}|-|file ...} Create or restore backup copies of a list of files. Mandatory parameters: -B Path name prefix for backup files Action parameters: -b Create backup (preserve links) -r Restore the backup -c Create simple copy -L Ensure that source files have a link count of 1 Common options: -s Silent operation; only print error messages Restore options: -k Keep backup files -t Touch original files after restore (update their mtimes) Backup options: -L Ensure that source files have a link count of 1 File list parameters: -f Read the filenames to process from file (- = standard input) - Read the filenames to process from backup " } : ${QUILT_DIR=@QUILT_DIR@} . $QUILT_DIR/scripts/utilfns ensure_nolinks() { local filename=$1 local link_count tmpname link_count=$(stat @STAT_HARDLINK@ "$filename") if [ $link_count -gt 1 ]; then tmpname=$(mktemp "$filename.XXXXXX") cp -p "$filename" "$tmpname" mv "$tmpname" "$filename" fi } notify_action() { [ $ECHO != : ] || return 0 local action=$1 filename=$2 while read -d $'\0' -r do $ECHO "$action ${REPLY#./}" done < "$filename" } backup() { local file=$1 local backup=$OPT_PREFIX$file local dir dir=$(dirname "$backup") [ -d "$dir" ] || mkdir -p "$dir" if [ -L "$file" -o -e "$file" ]; then $ECHO "Copying $file" if [ -n "$OPT_NOLINKS" -a "$(stat @STAT_HARDLINK@ "$file")" = 1 ]; then cp -p "$file" "$backup" else ln -P "$file" "$backup" 2>&4 || cp -p "$file" "$backup" if [ -n "$OPT_NOLINKS" ]; then ensure_nolinks "$file" fi fi else $ECHO "New file $file" : > "$backup" fi } restore() { local file=$1 local backup=$OPT_PREFIX$file if [ ! -L "$backup" -a ! -e "$backup" ]; then return 1 fi if [ -L "$backup" -o -s "$backup" ]; then $ECHO "Restoring $file" if [ -L "$file" -o -e "$file" ]; then rm "$file" else mkdir -p "$(dirname "$file")" fi if [ -L "$backup" ]; then ln -s "$(readlink "$backup")" "$file" else ln -P "$backup" "$file" 2>&4 || cp -p "$backup" "$file" fi if [ -n "$OPT_TOUCH" -a ! -L "$file" ]; then touch "$file" fi else $ECHO "Removing $file" if [ -L "$file" -o -e "$file" ]; then rm "$file" fi fi if [ -z "$OPT_KEEP_BACKUP" ]; then rm "$backup" rmdir -p "${backup%/*}" 2>&4 || true fi } restore_all() { local EMPTY_FILES NONEMPTY_FILES # Store the list of files to process EMPTY_FILES=$(gen_tempfile) NONEMPTY_FILES=$(gen_tempfile) LINK_FILES=$(gen_tempfile) trap "rm -f \"$EMPTY_FILES\" \"$NONEMPTY_FILES\" \"$LINK_FILES\"" EXIT cd "$OPT_PREFIX" find . -type f -size 0 -print0 > "$EMPTY_FILES" find . -type f -size +0 -print0 > "$NONEMPTY_FILES" find . -type l -print0 > "$LINK_FILES" cd "$OLDPWD" if [ -s "$EMPTY_FILES" ]; then xargs -0 rm -f < "$EMPTY_FILES" notify_action Removing "$EMPTY_FILES" fi if [ -s "$NONEMPTY_FILES" ]; then # Try a mass link (or copy) first, as it is much faster. # It is however not portable and may thus fail. If it fails, # fallback to per-file processing, which always works. local target_dir=$PWD if (cd "$OPT_PREFIX" && \ xargs -0 cp -l --parents --remove-destination \ --target-directory="$target_dir" \ < "$NONEMPTY_FILES" 2>&4); then notify_action Restoring "$NONEMPTY_FILES" else (cd "$OPT_PREFIX" && find . -type d -print0) \ | xargs -0 mkdir -p xargs -0 rm -f < "$NONEMPTY_FILES" while read -d $'\0' -r do local file=${REPLY#./} local backup=$OPT_PREFIX$file $ECHO "Restoring $file" ln -P "$backup" "$file" 2>&4 || cp -p "$backup" "$file" done < "$NONEMPTY_FILES" fi if [ -n "$OPT_TOUCH" ]; then xargs -0 touch -c < "$NONEMPTY_FILES" fi fi if [ -s "$LINK_FILES" ]; then (cd "$OPT_PREFIX" && find . -type d -print0) \ | xargs -0 mkdir -p while read -d $'\0' -r do local file=${REPLY#./} local backup=$OPT_PREFIX$file $ECHO "Restoring $file" ln -sf "$(readlink "$backup")" "$file" done < "$LINK_FILES" fi if [ -z "$OPT_KEEP_BACKUP" ]; then rm -rf "$OPT_PREFIX" fi } noop_nolinks() { local file=$1 if [ -e "$file" ]; then ensure_nolinks "$file" fi } copy() { local file=$1 local backup=$OPT_PREFIX$file local dir dir=$(dirname "$backup") [ -d "$dir" ] || mkdir -p "$dir" if [ -L "$file" -o -e "$file" ]; then $ECHO "Copying $file" cp -p "$file" "$backup" else $ECHO "New file $file" : > "$backup" fi } copy_many() { local NONEMPTY_FILES # Store the list of non-empty files to process NONEMPTY_FILES=$(gen_tempfile) trap "rm -f \"$NONEMPTY_FILES\"" EXIT # Keep the temporary file opened to speed up the loop exec 3> "$NONEMPTY_FILES" cat "$OPT_FILE" \ | while read do if [ -L "$REPLY" -o -e "$REPLY" ]; then printf '%s\0' "$REPLY" >&3 else # This is a rare case, not worth optimizing copy "$REPLY" fi done exec 3>&- if [ -s "$NONEMPTY_FILES" ]; then # Try a mass copy first, as it is much faster. # It is however not portable and may thus fail. If it fails, # fallback to per-file processing, which always works. if xargs -0 cp -p --parents --target-directory="$OPT_PREFIX" \ < "$NONEMPTY_FILES" 2>&4; then notify_action Copying "$NONEMPTY_FILES" else while read -d $'\0' -r do copy "$REPLY" done < "$NONEMPTY_FILES" fi fi } # Test if some backed up files have a link count greater than 1 some_files_have_links() { (cd "$OPT_PREFIX" && find . -type f -print0) \ | xargs -0 stat @STAT_HARDLINK@ 2>&4 | grep -qv '^1$' } ECHO=echo while [ $# -gt 0 ]; do case $1 in -b) OPT_WHAT=backup ;; -r) OPT_WHAT=restore ;; -c) OPT_WHAT=copy ;; -B) OPT_PREFIX=$2 shift ;; -f) OPT_FILE=$2 shift ;; -s) ECHO=: ;; -k) OPT_KEEP_BACKUP=1 ;; -L) OPT_NOLINKS=1 ;; -t) OPT_TOUCH=1 ;; -?*) usage exit 0 ;; *) break ;; esac shift done if [ -z "$OPT_PREFIX" ]; then usage exit 1 fi if [ "${OPT_PREFIX:(-1)}" != / ]; then echo "Prefix must be a directory" >&2 exit 1 fi if [ -z "$OPT_WHAT" ]; then if [ -n "$OPT_NOLINKS" ]; then OPT_WHAT=noop_nolinks else echo "Please specify an action" >&2 exit 1 fi fi if [ -n "$OPT_FILE" ]; then if [ "$OPT_WHAT" = copy ]; then copy_many exit fi cat "$OPT_FILE" \ | while read nextfile; do $OPT_WHAT "$nextfile" done exit fi if [ "$1" = - ]; then # No backup directory? We're done [ -d "$OPT_PREFIX" ] || exit 0 if [ "$OPT_WHAT" = restore ]; then restore_all exit fi # We typically expect the link count of backed up files to be 1 # already, so check quickly that this is the case, and only if not, # take the slow path and walk the file list in search of files to fix. if [ "$OPT_WHAT" = noop_nolinks ] && ! some_files_have_links; then exit fi find "$OPT_PREFIX" -type f -print \ | while read do $OPT_WHAT "${REPLY#$OPT_PREFIX}" done if [ ${PIPESTATUS[0]} != 0 ]; then exit 1 fi exit fi while [ $# -gt 0 ]; do $OPT_WHAT "$1" shift done ### Local Variables: ### mode: shell-script ### End: # vim:filetype=sh quilt-0.68/quilt/scripts/PaxHeaders/utilfns0000644000000000000000000000013213736607051016127 xustar0030 mtime=1601900073.129030978 30 atime=1711552114.595452005 30 ctime=1601900073.129030978 quilt-0.68/quilt/scripts/utilfns0000644000076500001440000000170013736607051017363 0ustar00khaliusers00000000000000# This file contains the common functions used by patchfns and backup-files. # It is meant to be sourced by bash scripts. # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. basename() { local path=$1 while [ "${path:(-1)}" = "/" ] do path=${path%/} done echo "${path##*/}" } dirname() { local path=$1 while [ "${path:(-1)}" = "/" ] do path=${path%/} done local basename="${path##*/}" path="${path:0:${#path}-${#basename}}" while [ "${path:(-1)}" = "/" ] do path=${path%/} done if [ -n "$path" ] then echo "$path" else if [ ${1:0:1} = "/" ] then echo "/" else echo "." fi fi } gen_tempfile() { if [ "$1" = -d ] then mktemp -d "${2:-${TMPDIR:-/tmp}/quilt.}XXXXXX" else mktemp "${1:-${TMPDIR:-/tmp}/quilt.}XXXXXX" fi } quilt-0.68/compat/PaxHeaders/sendmail.in0000644000000000000000000000013214554455146015307 xustar0030 mtime=1706187366.764458342 30 atime=1707474719.251387047 30 ctime=1706187366.764458342 quilt-0.68/compat/sendmail.in0000644000076500001440000000012114554455146016537 0ustar00khaliusers00000000000000#! @BASH@ echo "No mail transfer agent configured for \`quilt mail'" >&2 exit 1 quilt-0.68/compat/PaxHeaders/mktemp.in0000644000000000000000000000013214554455146015010 xustar0030 mtime=1706187366.764458342 30 atime=1707474719.254387084 30 ctime=1706187366.764458342 quilt-0.68/compat/mktemp.in0000644000076500001440000000061314554455146016246 0ustar00khaliusers00000000000000#! @BASH@ if [ x"$1" = x"-d" ] then for ((n=0 ; $n<100 ; n++)) do try=${2%XXXXXX}$RANDOM mkdir -m 700 "$try" 2>/dev/null && break done else user_mask=$(umask) umask 077 set -o noclobber for ((n=0 ; $n<100 ; n++)) do try=${1%XXXXXX}$RANDOM echo -n "" 2> /dev/null > "$try" && break done set +o noclobber umask $user_mask fi if [ $n -lt 100 ] then echo "$try" else exit 1 fi quilt-0.68/compat/PaxHeaders/getopt.in0000644000000000000000000000013214554455146015015 xustar0030 mtime=1706187366.764458342 30 atime=1707474719.257387121 30 ctime=1706187366.764458342 quilt-0.68/compat/getopt.in0000644000076500001440000000613514554455146016260 0ustar00khaliusers00000000000000#! @PERL@ -w # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. use strict; my $opts = ''; my @words; my $found_sep = 0; foreach my $arg (@ARGV) { if (!$found_sep && $arg eq '--') { $found_sep = 1; } else { if (!$found_sep) { $opts .= ' ' . $arg; } else { push @words, $arg; } } } # there is no reason to parse # the opts if there are no args. if (!@words) { print " --\n"; exit; } my $short_opts = ''; my @long_opts; # nothing fancy to see here; this script provides minimal compatibility # with the getopt from util-linux until a cross platform binary exists. # We silently ignore option -q. if ($opts =~ /^\s*(?:-q\s+)?-o ([a-zA-Z:]*)?(\s+--long .*)*/) { $short_opts = $1; if ($2) { my $long_opts = $2; $long_opts =~ s/^\s*--long //g; $long_opts =~ s/ --long /,/g; @long_opts = split(/,/,$long_opts); } } my @barewords = ('--'); my @options; # set the previous option name when a param is required my $need_param; sub quote_word { my $word = shift; $word =~ s/'/'\\''/; return "'$word'"; } # there can be a second separator, to inhibit processing following arguments # as options $found_sep = 0; foreach my $word (@words) { if ($word eq '--') { $found_sep = 1; next; } # allow '-' to be an option value if ($found_sep || (!$need_param && $word !~ /^-./)) { push @barewords, quote_word($word); next; } if ($need_param) { die "expecting param for $need_param" if $word =~ /^-./; push @options, quote_word($word); $need_param = undef; next; } # process short options if ($word =~ s/^-([^-])/$1/) { my @letters = reverse(split(//,$word)); while (@letters) { my $letter = pop @letters; my $found = grep(/$letter/, $short_opts); push @options, '-'.$letter; die "illegal option: $letter" if !$found; # handle options with optional parameters if (grep(/${letter}::/, $short_opts)) { if (scalar(@letters) == 0) { push @options, quote_word(''); } else { # what looked like more short options # are in fact the optional parameters push @options, quote_word(join('', reverse @letters)); } last; } # handle options with mandatory parameters if (grep(/$letter:/, $short_opts)) { if (scalar(@letters) == 0) { $need_param = $letter; } else { # short options can have args # embedded in the short option list push @options, quote_word(join('', reverse @letters)); @letters = (); } } } } # process long options if ($word =~ s/^--//) { my $param = ''; if ($word =~ /(.*)=(.*)/) { $word = $1; $param = $2; } my ($found) = grep(/^$word:{0,2}$/,@long_opts); die "illegal option: $word" if !$found; die "$word: unexpected paramater $param" if $found !~ /:$/ && $param ne ''; $need_param = $word if $found =~ /[^:]:$/ && $param eq ''; push @options, "--$word"; push @options, quote_word($param) if $param || $found =~ /::$/; } } print " @options @barewords\n" quilt-0.68/compat/PaxHeaders/date.in0000644000000000000000000000013214554455146014430 xustar0030 mtime=1706187366.764458342 30 atime=1707474719.266387232 30 ctime=1706187366.764458342 quilt-0.68/compat/date.in0000644000076500001440000000326114554455146015670 0ustar00khaliusers00000000000000#! @PERL@ -w # This script is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # See the COPYING and AUTHORS files for more details. use strict; use POSIX qw(strftime); use Getopt::Long qw(:config gnu_getopt prefix_pattern=(--|-)); use Date::Parse; my $spec = '%a %b %e %H:%M:%S %Z %Y'; my $now = time(); my $utc = 0; sub usage() { print "Usage: date [OPTION]... [+FORMAT] Display the current time in the given FORMAT. -d, --date=STRING display time described by STRING, not `now' -f, --file=DATEFILE like --date once for each line of DATEFILE -R, --rfc-822 output RFC-822 compliant date string -u, --utc, --universal print or set Coordinated Universal Time --help display this help and exit "; exit 1; } sub parse_utc_secs($) { my ($now) = @_; if ($now =~ / UTC ([0-9]+) seconds$/) { # This is an heuristic specifically for quilts mail.in invocation: # date --rfc-822 -d "1970/01/01 UTC nnnnnnnn seconds" return $1; } else { return str2time($now); } } GetOptions('rfc-822|R' => sub() { $spec = '%a, %d %b %Y %H:%M:%S %z' }, 'utc|universal|u' => \$utc, 'date|d=s' => sub() { $now = parse_utc_secs($_[1]) }, 'reference|r=s' => sub() { my @filestats = stat($_[1]); $now = parse_utc_secs('1970/01/01 UTC ' . $filestats[9] . ' seconds') }, 'help|h' => sub() { usage }) or usage; if (@ARGV == 1 && $ARGV[0] =~ /^\+/) { $spec = substr($ARGV[0], 1); } elsif (@ARGV > 1) { usage; } my @now = $utc ? gmtime($now) : localtime($now); print strftime($spec, @now) . "\n"; quilt-0.68/compat/PaxHeaders/column.in0000644000000000000000000000013214554455146015010 xustar0030 mtime=1706187366.764458342 30 atime=1707474719.271387293 30 ctime=1706187366.764458342 quilt-0.68/compat/column.in0000644000076500001440000000001714554455146016244 0ustar00khaliusers00000000000000#! @BASH@ cat quilt-0.68/lib/PaxHeaders/quilt.el0000644000000000000000000000013113667713522014124 xustar0030 mtime=1591711570.659619057 29 atime=1711108486.07945045 30 ctime=1591711570.659619057 quilt-0.68/lib/quilt.el0000644000076500001440000004610313667713522015367 0ustar00khaliusers00000000000000;;; quilt.el --- a minor mode for working with files in quilt ;; Copyright 2005-2007 Matt Mackall ;; Satoru Takeuchi took over this package ;; from Matt Mackall. ;; Author: Saotru takeuchi ;; ;; This software may be used and distributed according to the terms ;; of the GNU General Public License, incorporated herein by reference. ;;; Commentary: ;; ;; Add (load "~/quilt.el") to your .emacs file ;;; History: ;; ;;; Code: (defun quilt-buffer-file-name-safe () "Return buffer file name. If buffer is not associated with any file, return nil." (let ((fn buffer-file-name)) (if (and fn (file-exists-p fn)) fn))) (defun quilt-bottom-p () "Return t if there is on the bottom of patch stack, return nil if otherwise." (if (> (call-process "quilt" nil nil nil "applied") 0) 1)) (defun quilt--get-config-variable (var) "Return the value of a configuration variable. Return nil if it is unset." (or (with-current-buffer (generate-new-buffer " *cmd") (shell-command (concat "if [ -f ~/.quiltrc ]; then" " . ~/.quiltrc ;" "elif [ -f /etc/quilt.quiltrc ]; then" " . /etc/quilt.quiltrc ;" "fi ;" "echo -n $" var) t) (unwind-protect (let ((v (buffer-string))) (if (string= "" (buffer-string)) nil v)) (kill-buffer (current-buffer)))) (getenv var))) (defun quilt--per-project-patches-directory () (let ((qd (quilt-dir))) (if qd (let ((project-config (concat qd "/" (quilt-pc-directory) "/.quilt_patches"))) (if (file-readable-p project-config) (with-temp-buffer (insert-file-contents-literally project-config) (substring (buffer-string) 0 -1))))))) (defun quilt-patches-directory () "Return the location of patch files." (or (quilt--per-project-patches-directory) (quilt--get-config-variable "QUILT_PATCHES") "patches")) (defun quilt-pc-directory () "Return the location of the quilt working state directory." (or (quilt--get-config-variable "QUILT_PC") ".pc")) (defun quilt-patches-prefix () "Return the value of the QUILT_PATCHES_PREFIX config variable. Return nil if it is unset." (quilt--get-config-variable "QUILT_PATCHES_PREFIX")) (defun quilt-find-dir (fn &optional prefn) "Return the top level dir of quilt from FN." (if (or (not fn) (equal fn "/") (equal fn prefn)) nil (let ((d (file-name-directory fn))) (if (file-accessible-directory-p (concat d "/" (quilt-pc-directory))) d (quilt-find-dir (directory-file-name d) d))))) (defun quilt-dir (&optional fn) "Return the top level dir of quilt from FN. FN is just a hint and find from other way if FN is nil." (quilt-find-dir (if fn fn (let ((fn2 (quilt-buffer-file-name-safe))) (if fn2 fn2 (if default-directory (expand-file-name default-directory))))))) (defun quilt-drop-dir (fn) "Return the relative path of FN based on quilt top directory." (let ((d (quilt-find-dir fn))) (substring fn (length d) (length fn)))) (defun quilt-p (&optional fn) "Check if FN is in a quilt tree." (if (quilt-dir fn) 't nil)) (defun quilt-save () "Save all buffers associated with current quilt tree." (save-some-buffers nil 'quilt-p)) (defun quilt-owned-p (fn) "Check if FN is a file which quilt handles." (if (not fn) nil (let ((pd (file-name-nondirectory (directory-file-name (file-name-directory fn))))) (and (not (string-match "\\(~$\\|\\.rej$\\)" fn)) (not (equal pd (quilt-patches-directory))) (not (equal pd (quilt-pc-directory))) (quilt-p fn))))) (defun quilt-cmd (cmd &optional buf) "Execute CMD, a quilt subcommand, at the top of quilt tree associated with BUF." (let ((d default-directory) (qd (quilt-dir))) (if (not qd) (shell-command (concat "quilt " cmd) buf) (cd qd) (unwind-protect ; make sure to cd back even if an erro occurs. (shell-command (concat "quilt " cmd) buf) (cd d))))) (defun quilt-cmd-to-string (cmd) "Execute CMD, a quilt subcommand, at the top of quilt tree associated with BUF and return its output string." (let ((d default-directory) (qd (quilt-dir))) (if (not qd) nil (cd qd) (unwind-protect ; make sure to cd back even if an error occurs. (shell-command-to-string (concat "quilt " cmd)) (cd d))))) (defun quilt-cmd-to-list (cmd) "Execute CMD, a quilt sumcommand at the top of quilt tree associated with BUF.." "Return the lines of the command output as elements of a list." (let ((s (quilt-cmd-to-string cmd))) (if s (split-string s "\n" t)))) (defun quilt-applied-list () "Return the list of the applied patch names." (quilt-cmd-to-list "applied")) (defun quilt-file-list () "Return the list of the file names associated with current patch." (quilt-cmd-to-list "files")) (defun quilt-patch-list () "Return the list of the name of patches." (quilt-cmd-to-list "series")) (defun quilt-files-affected (&optional first last) "Return the file names which modified from FIRST to LAST." "Omitted args are considered as current patch." (let ((qd (quilt-dir)) files fp) (when qd (setq files (quilt-cmd-to-list (if last (if (equal first last) (concat "files " first) (concat "files --combine " first last)) (if first (concat "files --combine " first) "files")))) (setq fp files) (while fp (setcar fp (concat qd (car fp))) (setq fp (cdr fp))) files))) (defun quilt-top-patch () "Return the top patch name. return nil if there is the bottom of patch stack." (if (quilt-bottom-p) nil (substring (quilt-cmd-to-string "top") 0 -1))) (defun quilt-complete-list (p l) "Call 'completing-read' with prompt P and list L." "Convert L to an alist using indices as keys. Note that this function modifies L." (let ((list l) (n 0)) (while list (setcar list (cons (car list) n)) (setq list (cdr list)) (setq n (1+ n)))) (completing-read p l nil t)) (defun quilt--strip-patchname (pn) "Return the name of patch PN sans the path to the patches directory." (let ((patches-path (concat (quilt-patches-directory) "/"))) (substring pn (length patches-path)))) (defvar quilt-edit-top-only 't) (defun quilt-editable (f) "Return t if F is editable in terms of current patch. Return nil if otherwise." (let ((qd (quilt-dir)) (fn (quilt-drop-dir f)) dirs result) (if qd (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (setq dirs (if quilt-edit-top-only (list (let ((patch (substring (quilt-cmd-to-string "top") 0 -1))) (if (quilt-patches-prefix) (quilt--strip-patchname patch) patch))) (cdr (cdr (directory-files (concat qd (quilt-pc-directory) "/")))))) (while (and (not result) dirs) (if (file-exists-p (concat qd (quilt-pc-directory) "/" (car dirs) "/" fn)) (setq result t) (setq dirs (cdr dirs)))) result)))) (defun quilt-short-patchname () "Return shortened name of top patch. Return \"none\" when on the bottom patch stack." (let ((p (quilt-top-patch))) (if (not p) "none" (let ((p2 (file-name-sans-extension (file-name-nondirectory p)))) (if (< (length p2) 10) p2 (concat (substring p2 0 8) "..")))))) (defvar quilt-mode-line nil) (make-variable-buffer-local 'quilt-mode-line) (defun quilt-update-modeline () "Update mode line." (interactive) (setq quilt-mode-line (concat " Q:" (quilt-short-patchname))) (force-mode-line-update)) (defun quilt-revert (filelist) "Refresh contents, editability and modeline of FILELIST. FILELIST won't be touched unless their file is a child of the current quilt directory. Each elements in FILELIST should be the absolute file names of those files affected by the latest quilt operation. Associated buffers get reverted to update their contents. Other buffers will only get their modeline and editability adjusted." (let ((qd (quilt-dir)) fn) (dolist (buf (buffer-list)) (if (not (string-match "^ " (buffer-name buf))) (with-current-buffer buf (setq fn (quilt-buffer-file-name-safe)) (when (string-equal qd (quilt-dir)) (quilt-update-modeline) (when (and (not (buffer-modified-p)) (quilt-owned-p fn)) ;; If the file doesn't exist on disk it can't be reverted, but we ;; need the revert hooks to run anyway so that the buffer's ;; editability will update. Files not affected by the latest change ;; (as listed in filelist) don't need to get reverted either. (if (and (file-exists-p buffer-file-name) (member fn filelist)) (progn (revert-buffer t t t)) (run-hooks 'after-revert-hook))))))))) (defun quilt-push (arg) "Push next patch. It is forced if ARG is specified." (interactive "P") (quilt-save) (if arg (quilt-cmd "push -f" "*quilt*") (quilt-cmd "push -q")) (quilt-revert (quilt-files-affected))) (defun quilt-pop (arg) "Pop top patch. It is forced if ARG is specified." (interactive "P") (quilt-save) (if arg (quilt-cmd "pop -f") (quilt-cmd "pop -q")) (quilt-revert (quilt-files-affected))) (defun quilt-push-all (arg) "Push all remaining patches. It is forced if ARG is specified." (interactive "P") (quilt-save) (let ((next (car (quilt-cmd-to-list "next")))) (if arg (quilt-cmd "push -f" "*quilt*") (quilt-cmd "push -qa")) (quilt-revert (quilt-files-affected next)))) (defun quilt-pop-all (arg) "Pop all applied patches. It is forced if ARG is specified." (interactive "P") (quilt-save) (let ((fa (quilt-files-affected "-"))) (if arg (quilt-cmd "pop -af") (quilt-cmd "pop -qa")) (quilt-revert fa))) (defun quilt-goto () "Go to a specified patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((arg (quilt-complete-list "Goto patch: " (quilt-patch-list)))) (if (string-equal arg "") (message "no patch name is supplied") (quilt-save) (let (cmd first last) (if (file-exists-p (concat qd (quilt-pc-directory) "/" arg)) (progn (setq cmd "pop") (setq first (car (quilt-cmd-to-list (concat "next " arg)))) (setq last (quilt-top-patch))) (setq cmd "push") (setq last arg) (setq first (if (quilt-bottom-p) "-" (car (quilt-cmd-to-list "next"))))) (quilt-cmd (concat cmd " -q " arg) "*quilt*") (quilt-revert (quilt-files-affected first last)))))))) (defun quilt-top () "Display topmost patch." (interactive) (quilt-cmd "top")) (defun quilt-find-file () "Find a file in the topmost patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (let ((l (quilt-file-list))) (if (not l) (message "no file is existed in this patch") (let ((f (quilt-complete-list "File: " l))) (if (string-equal f "") (message "file name is not specified") (find-file (concat qd f)))))))))) (defun quilt-files () "Display files in topmost patch." (interactive) (quilt-cmd "files")) (defun quilt-import (fn pn) "Import external patch FN as PN.patch." (interactive "fPatch to import: \nsPatch name: ") (if (not pn) (message "no patch name supplied") (quilt-cmd (concat "import -p " pn ".patch " (if fn fn pn))))) (defun quilt-diff () "Display the diff of current change." (interactive) (quilt-save) (quilt-cmd "diff" "*diff*")) (defun quilt-new (f) "Create a new patch F.patch." (interactive "sPatch name: ") (if (string-equal f "") (message "no patch name is supplied") (quilt-save) (quilt-cmd (concat "new " f ".patch")) (quilt-revert nil))) (defun quilt-applied () "Show applied patches." (interactive) (quilt-cmd "applied" "*quilt*")) (defun quilt-add (arg) "Add ARG to the current patch." (interactive "b") (with-current-buffer arg (let ((fn (quilt-buffer-file-name-safe))) (cond ((not fn) (message "buffer %s is not associated with any buffer" (buffer-name))) ((not (quilt-dir)) (quilt-cmd (concat "push"))) ; to print error message (t (quilt-cmd (concat "add " (quilt-drop-dir fn))) (quilt-revert (list fn))))))) (defun quilt-edit-patch () "Edit the topmost patch." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((patch (quilt-top-patch))) (if (not patch) (quilt-cmd "applied") ; to print error message (quilt-save) (let ((pf (concat qd (format "/%s/" (quilt-patches-directory)) patch))) (if (file-exists-p pf) (progn (find-file pf) (read-only-mode 0)) (message (format "%s doesn't exist yet." pf))))))))) (defun quilt-patches () "Show which patches modify the current buffer." (interactive) (let ((fn (quilt-buffer-file-name-safe))) (cond ((not fn) (message "buffer %s is not associated with any buffer" (buffer-name))) ((not (quilt-dir)) (quilt-cmd "push")) ; to print error message (t (quilt-cmd (concat "patches " (quilt-drop-dir fn))))))) (defun quilt-unapplied () "Display unapplied patch list." (interactive) (quilt-cmd "unapplied" "*quilt*")) (defun quilt-refresh () "Refresh the current patch." (interactive) (quilt-save) (quilt-cmd "refresh")) (defun quilt-remove () "Remove a file from the current patch and revert it." (interactive) (let ((f (quilt-buffer-file-name-safe))) (cond ((not f) (message "buffer %s is not associated with any patch" (buffer-name))) ((not (quilt-dir)) (quilt-cmd "push")) ; to print error message (t (if (quilt-bottom-p) (quilt-cmd "applied") ; to print error message (let ((dropped (quilt-drop-dir f))) (if (y-or-n-p (format "Really drop %s? " dropped)) (progn (quilt-cmd (concat "remove " dropped)) (quilt-revert (list f)))))))))) (defun quilt-edit-series () "Edit the patch series file." (interactive) (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((series (concat qd (format "/%s/series" (quilt-patches-directory))))) (if (file-exists-p series) (find-file series) (message (quilt-top-patch))))))) (defun quilt-header (arg) "Print the header of ARG." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (if (not arg) (quilt-cmd "header") (let ((p (quilt-complete-list "Patch: " (quilt-patch-list)))) (if (string-equal p "") (message "no patch name is supplied") (quilt-cmd (concat "header " p)))))))) (defun quilt-delete (arg) "Delete ARG from the series file." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((p (if arg (quilt-complete-list "Delete patch: " (quilt-patch-list)) (quilt-top-patch)))) (if (string-equal p "") (message "no patch name is supplied") (if (not p) (quilt-cmd "applied") ; to print error message (if (y-or-n-p (format "Really delete %s? " p)) (let ((fa (quilt-files-affected p p))) (quilt-save) (quilt-cmd (concat "delete " p)) (quilt-revert fa))))))))) (defvar quilt-header-directory nil) (defun quilt-header-commit () "Commit to change patch header." (interactive) (let ((tmp (make-temp-file "quilt-header-"))) (set-visited-file-name tmp) (basic-save-buffer) (cd quilt-header-directory) (shell-command (concat "EDITOR=cat quilt -r header <" tmp)) (kill-buffer (current-buffer)) (delete-file tmp))) (defvar quilt-header-mode-map (make-keymap)) (define-key quilt-header-mode-map "\C-c\C-c" 'quilt-header-commit) (defun quilt-edit-header (arg) "Edit the header of ARG." (interactive "P") (let ((qd (quilt-dir))) (if (not qd) (quilt-cmd "push") ; to print error message (let ((p (if arg (quilt-complete-list "Edit patch: " (quilt-patch-list)) (quilt-top-patch)))) (if (string-equal p "") (message "no patch name is supplied") (if (not p) (quilt-cmd "applied") ; to print error message (let ((qb (get-buffer-create (format " *quilt-header(%s)*" p)))) (switch-to-buffer-other-window qb) (erase-buffer) (kill-all-local-variables) (make-local-variable 'quilt-header-directory) (setq quilt-header-directory default-directory) (use-local-map quilt-header-mode-map) (setq major-mode 'quilt-header-mode) (call-process "quilt" nil qb nil "header" p) (goto-char 0)))))))) (defun quilt-series (arg) "Show patche series. It can be verbose mode if ARG is specified." (interactive "P") (if arg (quilt-cmd "series -v") (quilt-cmd "series"))) (defvar quilt-mode-map (make-sparse-keymap)) (define-key quilt-mode-map "\C-c.t" 'quilt-top) (define-key quilt-mode-map "\C-c.f" 'quilt-find-file) (define-key quilt-mode-map "\C-c.F" 'quilt-files) (define-key quilt-mode-map "\C-c.d" 'quilt-diff) (define-key quilt-mode-map "\C-c.p" 'quilt-push) (define-key quilt-mode-map "\C-c.o" 'quilt-pop) (define-key quilt-mode-map "\C-c.P" 'quilt-push-all) (define-key quilt-mode-map "\C-c.O" 'quilt-pop-all) (define-key quilt-mode-map "\C-c.g" 'quilt-goto) (define-key quilt-mode-map "\C-c.A" 'quilt-applied) (define-key quilt-mode-map "\C-c.n" 'quilt-new) (define-key quilt-mode-map "\C-c.i" 'quilt-import) (define-key quilt-mode-map "\C-c.a" 'quilt-add) (define-key quilt-mode-map "\C-c.e" 'quilt-edit-patch) (define-key quilt-mode-map "\C-c.m" 'quilt-patches) (define-key quilt-mode-map "\C-c.u" 'quilt-unapplied) (define-key quilt-mode-map "\C-c.r" 'quilt-refresh) (define-key quilt-mode-map "\C-c.R" 'quilt-remove) (define-key quilt-mode-map "\C-c.s" 'quilt-series) (define-key quilt-mode-map "\C-c.S" 'quilt-edit-series) (define-key quilt-mode-map "\C-c.h" 'quilt-header) (define-key quilt-mode-map "\C-c.H" 'quilt-edit-header) (define-key quilt-mode-map "\C-c.D" 'quilt-delete) (defvar quilt-mode nil) (make-variable-buffer-local 'quilt-mode) (defun quilt-mode (&optional arg) "Toggle 'quilt-mode'. Enable 'quilt-mode' if ARG is positive. \\{quilt-mode-map}" (interactive "P") (setq quilt-mode (if (null arg) (not quilt-mode) (> (prefix-numeric-value arg) 0))) (if quilt-mode (let ((f (quilt-buffer-file-name-safe))) (if (quilt-owned-p f) (if (not (quilt-editable f)) (read-only-mode 1) (read-only-mode 0))) (quilt-update-modeline)))) (defun quilt-hook () "Enable quilt mode for quilt-controlled files." (if (quilt-p) (quilt-mode 1))) (add-hook 'find-file-hooks 'quilt-hook) (add-hook 'after-revert-hook 'quilt-hook) (or (assq 'quilt-mode minor-mode-alist) (setq minor-mode-alist (cons '(quilt-mode quilt-mode-line) minor-mode-alist))) (or (assq 'quilt-mode-map minor-mode-map-alist) (setq minor-mode-map-alist (cons (cons 'quilt-mode quilt-mode-map) minor-mode-map-alist))) (provide 'quilt) ;;; quilt.el ends here quilt-0.68/doc/PaxHeaders/README.in0000644000000000000000000000013214554455146013732 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.415374666 30 ctime=1706187366.764458342 quilt-0.68/doc/README.in0000644000076500001440000000617214554455146015176 0ustar00khaliusers00000000000000The scripts in this package simplify working with a series of patches. The usual tasks like applying, refreshing and reversing are supported. Please see the paper "How To Survive With Many Patches /or/ Introduction to Quilt" for an introduction. Command reference ================= @REFERENCE@ Typical Usages: New patches; Importing patches; Patch management ====================================================================== Add new patches: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. create a new patch: quilt new {patchname, e.g., sysctl_fix.patch} 2. add/edit file(s): quilt edit filepath or: 2a. add file(s) to patch: quilt add {filepath} 2b. manual edit file(s) use your $editor 3. update the patch: quilt refresh 3b. list the patch description: quilt header [patch] 3c. update the patch description: quilt header -e [patch] 4. list files in the patch: quilt files 5. show current patch contents: quilt diff 6. apply current, ready for next: quilt push 7. remove file(s) from patch: quilt remove {filepath} Importing patches: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. import a patch: quilt import patchfile 2. apply it: quilt push 3. update the patch: quilt refresh 3b. list the patch description: quilt header [patch] 3c. update the patch description: quilt header -e [patch] 4. list files in the patch: quilt files 5. show current patch contents: quilt diff Import/Apply a series file + patches to a tree: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. cp(1) the patches directory ('series' file + all patch files) to the expected patches location (as specified in your .quiltrc file) 2. apply all of series: quilt push -a Other patch management: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. remove files from a patch: quilt remove {filepath} 2. remove unapplied patch: quilt delete {patchname} 3. list all patch names: quilt series 4. list all applied/unapplied: quilt applied | unapplied 5. list top/previous/next patch name: quilt top | previous | next 6. list patches modifying file: quilt patches {filepath} 7. rename a patch: quilt rename {patchname} 8. duplicate a patch: quilt fork {patchname} 9. prepare or send mails: quilt mail ... 10. search in source files: quilt grep ... 11. create snapshot: quilt snapshot 12. init from RPM spec or series file: quilt setup 13. distribution of patches: quilt diff --combine and distribute the combined diff file, or distribute the patches/ directory content Helper files/scripts ==================== backup-files A simple utility that creates / restores / removes backup files. dependency-graph A utility to compute patch dependencies from the QUILT_PC metadata. edmail A utility to manipulate the headers of an Internet mail message. guards Convert a series file with conditional statements into a series file as expected; see the guards(1) manual page. inspect A script to create a series file from an rpm spec file (including a list of tar files). patchfns utilfns Collections of functions. remove-trailing-ws A utility to report trailing whitespace, and remove trailing whitespace from files. quilt-0.68/doc/PaxHeaders/quilt.1.in0000644000000000000000000000013214554455146014272 xustar0030 mtime=1706187366.764458342 30 atime=1711552108.420374729 30 ctime=1706187366.764458342 quilt-0.68/doc/quilt.1.in0000644000076500001440000003722114554455146015535 0ustar00khaliusers00000000000000'\\" t .\\" Created by Martin Quinson from the tex documentation .\\" .TH quilt 1 "Dec 17, 2013" "quilt" . .SH NAME quilt \\- manage a series of patches . .SH SYNOPSIS .SY quilt .RB [ \\-\\-quiltrc .IR file ] .OP \\-\\-trace .I command .RI [ options ] .YS .SY quilt .RI [ command ] \\-h .SY "quilt \\-\\-version" .YS . .SH DESCRIPTION .I Quilt is a tool to manage large sets of patches by keeping track of the changes each patch makes. Patches can be applied, unapplied, refreshed, and so forth. The key philosophical concept is that your primary working material is patches. .PP With .IR quilt , all work occurs within a single directory tree. Commands can be invoked from anywhere within the source tree. Like .IR CVS , .IR Subversion , or .IR Git , .I quilt takes commands of the form \\[lq]quilt .IR command \\[rq]. A command can be truncated (abbreviated) as long as the specified part of the command is unambiguous. If .I command is ambiguously short, .I quilt lists all commands matching that prefix and exits. All commands print a brief contextual help message and exit if given the \\[lq]\\-h\\[rq] option. .PP .I Quilt manages a stack of patches. Patches are applied incrementally on top of the base tree plus all preceding patches. They can be pushed onto the stack (\\[lq]quilt push\\[rq]), and popped off the stack (\\[lq]quilt pop\\[rq]). Commands are available for querying the contents of the stack (\\[lq]quilt applied\\[rq], \\[lq]quilt previous\\[rq], \\[lq]quilt top\\[rq]) and the patches that are not applied at a particular moment (\\[lq]quilt next\\[rq], \\[lq]quilt unapplied\\[rq]). By default, most commands apply to the topmost patch on the stack. .PP Patch files are located in the .I patches subdirectory of the source tree (see .BR "Example of working tree" , under .BR FILES , below). The .I QUILT_PATCHES environment variable overrides this default location. When not found in the current directory, that subdirectory is searched recursively in the parent directories (this is similar to the way .I Git searches for its configuration files). The .I patches directory may contain subdirectories. It may also be a symbolic link instead of a directory. .PP .I Quilt creates and maintains a file called .IR series , which defines the order in which patches are applied. The .I QUILT_SERIES environment variable overrides this default name. You can query the contents of the series file at any time with \\[lq]quilt series\\[rq]. In this file, each patch file name is on a separate line. Patch files are identified by path names that are relative to the .I patches directory; patches may be in subdirectories below this directory. Lines in the series file that start with a hash character (#) are ignored. Patch options, such as the strip level or whether the patch is reversed, can be added after each patch file name. Options are introduced by a space, separated by spaces, and follow the syntax of the patch(1) options (e.g., \\[lq]\\-p2\\[rq]). Quilt records patch options automatically when a command supporting them is used. Without options, strip level 1 is assumed. You can also add a comment after each patch file name and options, introduced by a space followed by a hash character. When .I quilt adds, removes, or renames patches, it automatically updates the series file. Users of .I quilt can modify series files while some patches are applied, as long as the applied patches remain in their original order. Unless there are means by which a series file can be generated automatically, you should provide it along with any set of .IR quilt -managed patches you distribute. Different series files can be used to assemble patches in different ways, corresponding (for example) to different development branches. .PP Before a patch is applied, copies of all files the patch modifies are saved to the .IR .pc/ patch-name directory, where .I patch-name is the name of the patch (for example, .IR fix\\-buffer\\-overflow.patch ). The patch is added to the list of currently applied patches .RI ( .pc/applied\\-patches ). Later, when a patch is regenerated (\\[lq]quilt refresh\\[rq]), the backup copies in .IR .pc/ patch-name are compared with the current versions of the files in the source tree using GNU .BR diff (1). .PP A similar process occurs when starting a new patch (\\[lq]quilt new\\[rq]); the new patch file name is added to the series file. A file to be changed by the patch is backed up and opened for editing (\\[lq]quilt edit\\[rq]). After editing, inspect the impact of your changes (\\[lq]quilt diff\\[rq]); the changes stay local to your working tree until you call \\[lq]quilt refresh\\[rq] to write them to the patch file. .PP Documentation related to a patch can be put at the beginning of its patch file (\\[lq]quilt header\\[rq]). .I Quilt is careful to preserve all text that precedes the actual patch when doing a refresh. (This is limited to patches in unified format; see the GNU .I Diffutils manual.) .PP The series file is looked up in the .I .pc directory, in the root of the source tree, and in the patches directory. The first series file that is found is used. This may also be a symbolic link, or a file with multiple hard links. Usually, only one series file is used for a set of patches, making the patches subdirectory a convenient location. .PP The .I .pc directory cannot be relocated, but it can be a symbolic link. Its subdirectories must not be renamed or restructured. While patches are applied to the source tree, this directory is essential for many operations, including popping patches off the stack and refreshing them. Files in the .I .pc directory are automatically removed when they are no longer needed, so there is no need to clean up manually. . .SS Quilt commands reference @REFERENCE@ . .SH OPTIONS These options are common to all .I quilt commands. .TP .B \\-h Print a usage message (for the given .IR command , if one is specified, otherwise for .I quilt itself) and exit. .TP .BI "\\-\\-quiltrc " file Use .I file as the configuration file instead of .I \\[ti]/.quiltrc (or .I /etc/quilt.quiltrc if .I \\[ti]/.quiltrc does not exist). The special value \\[lq]\\-\\[rq] causes .I quilt not to read any configuration file. .TP .B \\-\\-trace Run the command in the shell's trace mode (\\-x) for debugging of internal operations. .TP .B \\-\\-version Print the version number and exit. . .SH "EXIT STATUS" The exit status is 0 if the requested operation completed successfully, or 1 in case of error. .PP An exit status of 2 indicates that .I quilt did not do anything to complete the command. This happens in particular when asking .I quilt to push when the whole stack is already pushed, or to pop when the whole stack is already popped. This behavior is intended to ease scripting with .IR quilt . . .SH ENVIRONMENT .I Quilt recognizes the following variables: .TP 4 .I EDITOR Specify the program to run to edit files; for instance, with \\[lq]quilt edit\\[rq] or \\[lq]quilt header \\-e\\[rq]. .TP 4 .I LESS Specify the arguments used to invoke the .BR less (1) pager. Defaults to \\[lq]\\-FRSX\\[rq]. . .SH FILES .SS "Example of working tree" .\\" Many roff output devices do not have font support for Unicode's .\\" box-drawing characters (U+2500 to U+257F). .schar \\[u2500] \\- .schar \\[u2502] | .schar \\[u2514] + .schar \\[u251C] + .EX project\\-1.2.3/ \\[u251C]\\[u2500]\\[u2500] patches/ \\[u2502] \\[u251C]\\[u2500]\\[u2500] series (list of patches to apply) \\[u2502] \\[u251C]\\[u2500]\\[u2500] patch1.diff (one particular patch) \\[u2502] \\[u251C]\\[u2500]\\[u2500] patch2.diff \\[u2502] \\[u2514]\\[u2500]\\[u2500] ... \\[u251C]\\[u2500]\\[u2500] .pc/ \\[u2502] \\[u251C]\\[u2500]\\[u2500] .quilt_patches (content of QUILT_PATCHES) \\[u2502] \\[u251C]\\[u2500]\\[u2500] .quilt_series (content of QUILT_SERIES) \\[u2502] \\[u251C]\\[u2500]\\[u2500] patch1.diff/ (copy of patched files) \\[u2502] \\[u2502] \\[u2514]\\[u2500]\\[u2500] ... \\[u2502] \\[u251C]\\[u2500]\\[u2500] patch2.diff/ \\[u2502] \\[u2502] \\[u2514]\\[u2500]\\[u2500] ... \\[u2502] \\[u2514]\\[u2500]\\[u2500] ... \\[u2514]\\[u2500]\\[u2500] ... .EE .PP The .I patches directory is precious as it contains all your patches as well as the order in which they should be applied. .PP The .I .pc directory contains metadata about the current state of your patch series. Changing its content is not advised. This directory can usually be regenerated from the initial files and the content of the .I patches directory (provided that all patches were regenerated before the removal). . .SS "Configuration file" Upon startup, .I quilt evaluates the file specified with the \\[lq]\\-\\-quiltrc\\[rq] option; if that option is not given, the file .I .quiltrc in the user's home directory is used, and if that does not exist, .I /etc/quilt.quiltrc is read. This file is a .BR bash (1) script. .I EDITOR and .I LESS can be overridden here if desired; see .BR ENVIRONMENT , above. .PP Define a variable of the form .IR QUILT_ COMMAND _ARGS to specify default options to be passed to any .I quilt command (in uppercase). For example, .EX .RS QUILT_DIFF_ARGS="\\-\\-color=auto" .RE .EE causes the output of \\[lq]quilt diff\\[rq] to be syntax-colored when writing to a terminal. .TP 4 .I QUILT_DIFF_OPTS Additional options that .I quilt shall pass to GNU .I diff when generating patches. A useful setting for C source code is \\[lq]\\-p\\[rq], which causes GNU .I diff to show in the resulting patch which function a change is in. .TP 4 .I QUILT_PATCH_OPTS Additional options that .I quilt shall pass to GNU .I patch when applying patches. For example, recent versions of GNU .I patch support the \\[lq]\\-\\-reject\\-format=unified\\[rq] option for generating reject files in \\[lq]unified diff\\[rq] style (older .I patch versions used \\[lq]\\-\\-unified\\-reject\\-files\\[rq] for that). .IP You may also want to add the \\[lq]\\-E\\[rq] option if you have issues with .I quilt not deleting empty files when you think it should. The documentation of GNU .I patch says that \\[lq]normally this option is unnecessary\\[rq], but when .I patch is in POSIX mode or if the patch format doesn't distinguish empty files from deleted files, .I patch deletes empty files only if the \\[lq]\\-E\\[rq] option is given. Beware that when passing \\[lq]\\-E\\[rq] to .IR patch , .I quilt will no longer be able to deal with empty files, which is why using \\[lq]\\-E\\[rq] is no longer the default. .TP 4 .I QUILT_DIFFSTAT_OPTS indicates additional options that .I quilt shall pass to .BR diffstat (1) when generating patch statistics. For example, \\[lq]\\-f0\\[rq] can be used for an alternative output format. Recent versions of .I diffstat also support alternative rounding methods (\\[lq]\\-r1\\[rq], \\[lq]\\-r2\\[rq]). .TP 4 .I QUILT_PC The location of backup files and any other data relating to the current state of the working directory from .IR quilt 's perspective. Defaults to \\[lq].pc\\[rq]. .TP 4 .I QUILT_PATCHES The location of patch files, defaulting to .IR patches . .TP 4 .I QUILT_SERIES The name of the series file, defaulting to .IR series . Unless an absolute path is used, the search algorithm described above applies. .TP 4 .I QUILT_PATCHES_PREFIX Boolean flag; if set to anything, .I quilt will prefix any patch name it prints with its directory .RI ( QUILT_PATCHES ). .TP 4 .I QUILT_NO_DIFF_INDEX Boolean flag; if set to anything, no \\[lq]Index:\\[rq] line is prepended to patches generated by .IR quilt . This is shorthand for adding \\[lq]\\-\\-no\\-index\\[rq] to both .I QUILT_DIFF_ARGS and .IR QUILT_REFRESH_ARGS . .TP 4 .I QUILT_NO_DIFF_TIMESTAMPS Boolean flag; if set to anything, no timestamps are included in headers when generating patches. This is shorthand for adding \\[lq]\\-\\-no\\-timestamps\\[rq] to both .I QUILT_DIFF_ARGS and .IR QUILT_REFRESH_ARGS . .TP 4 .I QUILT_PAGER The pager .I quilt shall use for commands which produce paginated output. If unset, the value of .I GIT_PAGER or, failing that, .I PAGER is used. If none of these variables is set, \\[lq]less \\-R\\[rq] is used. An empty value indicates that no pager should be used. .TP 4 .I QUILT_COLORS A sequence of definitions that directs .I quilt which ANSI escape sequences to associate with an output context, overriding the defaults. The most common use is to set colors (thus the name of this variable), but other attributes exist, such as bold or reverse. .IP To override one or more settings, set .I QUILT_COLORS to a colon-separated list of elements, each of the form .RI \\[lq] format-name\\c .BI = digit-sequence\\c .RB [ ; ...]\\[rq]. .IP Each .I digit-sequence should be a SGR (Select Graphic Rendition) value supported by your terminal. The standardized SGR values were specified by ANSI and incorporated into ISO-6429 and ECMA-48 (\\[sc]8.3.117). The colors have standard names but their values were not defined within a color space; their precise appearance will vary and may be customizable in your terminal (emulator). .IP Recognized .IR format-name s, along with the .I quilt commands that use them, their use contexts, and default values, follow. .TS box; lI l l l. format-name command context default _ .T& lB l l l. diff_add diff added lines 36 (cyan) diff_cctx diff asterisk sequences 33 (yellow) diff_ctx diff text after hunk 35 (magenta) diff_hdr diff index line 32 (green) diff_hunk diff hunk header 33 (yellow) diff_mod diff modified lines 35 (magenta) diff_rem diff removed lines 35 (magenta) patch_fail push failure message 31 (red) patch_fuzz push fuzz information 35 (magenta) patch_offs push offset information 33 (yellow) series_app series applied patch names 32 (green) series_top series top patch name 33 (yellow) series_una series unapplied patch names 0 (none) .TE .IP All .IR format-name s used by the series command are also used by the patches command. .IP The special .I format-name \\[lq]clear\\[rq] is used to turn off special graphic renditions and return to the terminal defaults. Changing its definition should not be necessary for any terminal that claims to support ANSI escape sequences. If your terminal is corrupted despite your best efforts, try the command \\[lq]tput sgr0\\[rq] to restore the default graphic rendition. .IP As an example, one can put the following in .I \\[ti]/.quiltrc (or .IR /etc/quilt.quiltrc ): .RS 12 .EX QUILT_DIFF_ARGS="\\-\\-color" # Render diff file headers in bold blue over yellow. # Render diff hunk headers in "negative image" yellow. # Render failed patches with a red background. QUILT_COLORS="diff_hdr=1;34;43:diff_hunk=7;33:patch_fail=41" .EE .RE . .SH AUTHORS .fchar \\[:u] ue .I Quilt started as a series of scripts written by Andrew Morton .RI ( patch\\-scripts ). Based on Andrew's ideas, Andreas Gr\\[:u]nbacher completely rewrote the scripts, with the help of several other contributors (see the file .I AUTHORS in the distribution). .PP This man page was written by Martin Quinson, based on information found in the PDF documentation, and in the help message of each command. . .SH EXAMPLES Please refer to the PDF documentation for a full example of use (under .B "SEE ALSO" below). . .SH "SEE ALSO" .I "How to Survive with Many Patches, or: Introduction to Quilt" is installed at .IR "@DOCSUBDIR@/\\:quilt.pdf" . Note that some distributors compress this file. .BR zxpdf (1) can be used to display compressed PDF files. .PP The GNU .I Diffutils manual, .UR https://\\:www.gnu.org/\\:software/\\:diffutils/\\:manual/ .I "Comparing and Merging Files" .UE , documents .I diff and .I patch in detail. .PP .UR https://\\:www.ecma\\-international.org/\\:publications/\\:standards/\\:Ecma\\-048.htm .I Control Functions for Coded Character Sets (ECMA-48) .UE specifies the ANSI escape sequences used by .IR QUILT_COLORS ; section 8.3.117 will be of the most interest. See .BR console_codes (4) for a more convenient, if less canonical, resource. .PP .BR diff (1), .BR diffstat (1), .BR guards (1), .BR patch (1) quilt-0.68/doc/PaxHeaders/main.tex0000644000000000000000000000013013667652742014116 xustar0029 mtime=1591694818.65534094 30 atime=1706202714.653548917 29 ctime=1591694818.65534094 quilt-0.68/doc/main.tex0000644000076500001440000010142613667652742015362 0ustar00khaliusers00000000000000%\documentclass[a4paper]{article} \documentclass{article} \usepackage{graphicx} \usepackage{subfigure} \usepackage{fancyvrb} %\usepackage{times} \usepackage[latin1]{inputenc} \usepackage{url} %\usepackage{lineno} %\linenumbers %\renewcommand{\baselinestretch}{1.5} % Change url font to textsf (and check what breaks in PDF/HTML/...) \fvset{xleftmargin=3em,commandchars=\\\{\}} \newcommand{\quilt}[1]{\textsf{quilt #1}} \newcommand{\sh}[1]{\textsl{#1}} \newcommand{\prog}[1]{\textit{#1}} \title{How To Survive With Many Patches\\ {\Large or}\\ Introduction to Quilt\footnote{ Quilt is a GPL licensed project hosted on GNU Savannah. Some ideas for this document were taken from \textit{docco.txt} in Andrew Morton's patch management scripts package~\cite{akpm02}. The text in the examples was taken from \textit{A Midsummer Night's Dream} by William Shakespeare. }} \author{Andreas Grünbacher, SuSE Labs \\ %\em{SUSE Labs, SUSE LINUX AG} \\ {\normalsize agruen@suse.de} } %\date{} \begin{document} \maketitle \thispagestyle{empty} \begin{abstract} After looking at different strategies for dealing with software packages that consist of a base software package on top of which a number of patches are applied, this document introduces the script collection \textit{quilt,} which was specifically written to help deal with multiple patches and common patch management tasks. \end{abstract} \section{Introduction} % Prerequisites: UNIX, patches, using GNU diff and GNU patch. % Why patches in the first place? In the old days, vendor specific software packages in the open source world consisted of a file with the official version of the software, plus a patch file with the additional changes needed to adapt the package to specific needs. The official software package was usually contained in a \textsf{package.tar.gz} file, while the patch was found in \textsf{package.diff.} Instead of modifying the official package sources, local changes were kept separate. When building the software package, the tar archive was extracted, and the patch was applied. Over time, the patch file ended up containing several independent changes. Of those changes, some were integrated into later versions of the software, while other add-ons or adaptations remain external. Whenever a new official version was integrated, the patch needed to be revised: changes that were already integrated in the official version needed to be split from changes that were not. A big improvement was to allow multiple patches in a vendor package, and this is also how patches are handled today: a number of patches is applied on top of each other. Each patch usually consists of a logically related set of changes. When some patches get integrated upstream, those patches can simply be removed from the vendor specific package. The remaining patches frequently continue to apply cleanly. Some of the remaining patches may have to be maintained across a range of upstream versions because they are too specific for the upstream software package, etc. These patches often get out of sync, and need to be updated. For the majority of packages, the number of patches remains relatively low, so maintaining those patches without tools is feasible. A number of packages have dozens of patches, however. At the extreme end is the kernel source package (kernel-source-\textit{2.4.x}) with more than 1\,000 patches. The difficulty of managing such a vast number of patches without tools can easily be imagined. This document discusses different strategies of dealing with large sets of patches. Patches are usually generated by the \prog{diff} utility, and applied with the \prog{patch} utility. Different patch file formats are defined as part of the specification of the \prog{diff} utility in POSIX.1~\cite{posix-2001-diff}. The most commonly used format today, \textit{unified diff,} is not covered by POSIX.1, however. A good description of patch file formats is found in the \prog{GNU diff} info pages~\cite{info-diff}. The question we try to answer in this document is how patches are best kept up to date in face of changes both to the upstream software package, and to the patches that precede them. After looking at some existing approaches, a collection of patch management scripts known as \textit{quilt} is described~\cite{quilt}, starting with basic concepts, and progressing towards more advanced tasks. % - quilt % (wet people's mouths about the features) % How exactly does this relate to many patches? \section{Existing Approaches} \label{sec:existing} The minimal solution for updating a patch is to apply all preceding patches. %\footnote{ In the kernel CVS, we have a a script called %\textit{sequence-patch} that simply applies all patches up to a %specified patch. } Then, a copy of the resulting source tree is created.\footnote{ The two copies can also be hard-linked with each other, which significantly speeds up both the copying and the final ``diffing''. If hard links are used, care must be taken that the tools used to update one copy of the source tree will create new files, and will not overwrite shared files. Editors like \prog{emacs} and \prog{vi}, and utilities like \prog{patch}, support this. } The next patch in the sequence of patches (which is the one to be updated) is applied to only one of these source trees. This source tree is then modified until it reflects the desired result. The new version of the patch is distilled by comparing the two source trees with \prog{diff}, and writing the result into a file. This simple approach is rather error prone, and leaves much to be desired. Several people have independently written scripts that automate and improve upon this process. A version control system like \prog{CVS} or \prog{RCS} may be a reasonable alternative in some cases. The version control system is brought in the state of the working tree with a number of patches applied. Then the next patch is applied. After the working tree is updated as required, a diff between the repository copy and the working tree is created (with \prog{cvs diff}, etc). In this scenario the version control system is used to store and compare against the old repository version only. The full version control overhead is paid, while only a small fraction of its functionality is needed. Switching between different patches is not simplified. % TODO: Mention some approaches here; RCS and CVS ... One of the most advanced approaches is Andrew Morton's patch management scripts~\cite{akpm02}. The author of this document found that none of the available solutions would scale up to the specific requirements of the SUSE kernel-source package, and started to improve Andrew Morton's scripts until they became what they are now~\cite{quilt}. % - Re and Rd scripts (Czech scripts using RCS, replaces the % now-obsolete rpmpatch that supports one .dif only). % - Werner's scripts % What couldn't be done: % - Patches in sub-directories % - Many patches % - Retaining documentation (akpm's scripts do part of this) % Actually merging rejects is not handled; use tools like: % - wiggle % - Other merge tools (e.g., graphical ones) \section{Quilt: Basic Concepts and Operation} \label{sec:basic} The remainder of this document discusses the script collection \textit{quilt.} With quilt, all work occurs within a single directory tree. Since version 0.30, commands can be invoked from anywhere within the source tree (the directory tree is scanned upwards until either the \textsf{.pc} or the \textsf{patches} directory is found). Commands are of the form ``\quilt{cmd}'', similar to CVS commands. They can be abbreviated as long as the specified part of the command is unique. All commands print some help text with ``\quilt{cmd -h}''. Quilt manages a stack of patches. Patches are applied incrementally on top of the base tree plus all preceding patches. They can be pushed on top of the stack (\quilt{push}), and popped off the stack (\quilt{pop}). Commands are available for querying the contents of the series file (\quilt{series}, see below), the contents of the stack (\quilt{applied}, \quilt{previous}, \quilt{top}), and the patches that are not applied at a particular moment (\quilt{next}, \quilt{unapplied}). By default, most commands apply to the topmost patch on the stack. When files in the working directory are changed, those changes become part of the working state of the topmost patch, provided that those files are part of the patch. Files that are not part of a patch must be added before modifying them so that quilt is aware of the original versions of the files. The \quilt{refresh} command regenerates a patch. After the refresh, the patch and the working state are the same. Patch files are located in the \textsf{patches} sub-directory of the source tree (see Figure~\ref{fig:dir-layout}). The \textsf{QUILT\_PATCHES} environment variable can be used to override this location and quilt will remember this location by storing its value in the \textsf{.pc/.quilt\_patches} file. The \textsf{patches} directory may contain sub-directories, which is useful for grouping related patches together. \textsf{patches} may also be a symbolic link instead of a directory. A file called \textsf{series} contains a list of patch file names that defines the order in which patches are applied. Unless there are means by which series files can be generated automatically (see Section~\ref{sec:rpm}), they are usually provided along with a set of patches. In \textsf{series}, each patch file name is on a separate line. Patch files are identified by pathnames that are relative to the \textsf{patches} directory; patches may be in sub-directories below the \textsf{patches} directory. Lines in the series file that start with a hash character (\texttt{\#}) are ignored. When quilt adds, removes, or renames patches, it automatically updates the series file. Users of quilt can modify series files while some patches are applied, as long as the applied patches remain in their original order. Different series files can be used to assemble patches in different ways, corresponding for example to different development branches. \begin{figure} \begin{center} \begin{minipage}{6cm} \begin{small} \begin{Verbatim} work/ -+- ... |- patches/ -+- series | |- patch2.diff | |- patch1.diff | +- ... +- .pc/ -+- applied-patches |- patch1.diff/ -+- ... |- patch2.diff/ -+- ... +- ... \end{Verbatim} \end{small} \end{minipage} \caption{Quilt files in a source tree.} \label{fig:dir-layout} \end{center} \end{figure} Before a patch is applied (or ``pushed on the stack''), copies of all files the patch modifies are saved to the \textsf{.pc/\textit{patch}} directory.\footnote{ The patch name with extensions stripped is used as the name of the sub-directory below the \textsf{.pc} directory. \prog{GNU patch}, which quilt uses internally to apply patches, creates backup files and applies the patch in one step. } The patch is added to the list of currently applied patches (\textsf{.pc/applied-patches}). Later when a patch is regenerated (\quilt{refresh}), the backup copies in \textsf{.pc/\textit{patch}} are compared with the current versions of the files in the source tree using \prog{GNU diff}. Documentation related to a patch can be put at the beginning of a patch file. Quilt is careful to preserve all text that precedes the actual patch when doing a refresh. The series file is looked up in the root of the source tree, in the patches directory, and in the \textsf{.pc} directory. The first series file that is found is used. This may also be a symbolic link, or a file with multiple hard links. Usually, only one series file is used for a set of patches, so the \textsf{patches} sub-directory is a convenient location. While patches are applied to the source tree, the \textsf{.pc} directory is essential for many operations, including taking patches off the stack (\quilt{pop}), and refreshing patches (\quilt{refresh}). Files in the \textsf{.pc} directory are automatically removed when they are no longer needed, so usually there is no need to clean up manually. The \textsf{QUILT\_PC} environment variable can be used to override the location of the \textsf{.pc} directory. \section{An Example} This section demonstrates how new patches are created and updated, and how conflicts are resolved. Let's start with a short text file: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. \end{Verbatim} \end{small} New patches are created with \quilt{new}. A new patch automatically becomes the topmost patch on the stack. Files must be added with \quilt{add} before they are modified. Note that this is slightly different from the CVS style of interaction: with CVS, files are in the repository, and adding them before committing (but after modifying them) is enough. Files are usually added and immediately modified. The command \quilt{edit} adds a file and loads it into the default editor. (The environment variable \textsf{EDITOR} specifies which is the default editor. If \textsf{EDITOR} is not set, \prog{vi} is used.) \begin{small} \begin{Verbatim} \sh{$ quilt new flower.diff} Patch flower.diff is now on top \sh{$ quilt edit Oberon.txt} File Oberon.txt added to patch flower.diff \end{Verbatim} \end{small} Let's assume that the following lines were added to \textsf{Oberon.txt} during editing: \begin{small} \begin{Verbatim} The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} The actual patch file is created (and later updated) with \quilt{refresh}. The result is as follows:\footnote{ Timestamps in patches are omitted from the output in the examples. } \begin{small} \begin{Verbatim} \sh{$ quilt refresh} \sh{$ cat patches/flower.diff} Index: example1/Oberon.txt =================================================================== --- example1.orig/Oberon.txt +++ example1/Oberon.txt @@ -2,3 +2,6 @@ It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. +The juice of it on sleeping eye-lids laid +Will make a man or woman madly dote +Upon the next live creature that it sees. \end{Verbatim} \end{small} Now let's assume that a line in the text has been overlooked, and must be inserted. The file \textsf{Oberon.txt} is already part of the patch \textsf{flower.diff}, so it can immediately be modified in an editor. Alternatively, \quilt{edit} can be used; it simply opens up the default editor if the file is already part of the patch. After the line is added, we use \quilt{diff -z} to see a diff of the changes we made: \begin{small} \begin{Verbatim} \sh{$ quilt diff -z} Index: example1/Oberon.txt =================================================================== --- example1.orig/Oberon.txt +++ example1/Oberon.txt @@ -2,6 +2,7 @@ It fell upon a little western flower, Before milk-white, now purple with love's wound, And girls call it love-in-idleness. +Fetch me that flower; the herb I shew'd thee once: The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} A diff of the topmost patch can be generated with \quilt{diff} without arguments. This does not modify the actual patch file. The changes are only added to the patch file by updating it with \quilt{refresh}. Then we remove the patch from the stack with \quilt{pop}: \begin{small} \begin{Verbatim} \sh{$ quilt refresh} Refreshed patch flower.diff \sh{$ quilt pop} Removing flower.diff Restoring Oberon.txt No patches applied \end{Verbatim} \end{small} Next, let's assume that \textsf{Oberon.txt} was modified ``upstream'': The word \textit{girl} did not fit very well, and so it was replaced with \textit{maiden.} \textsf{Oberon.txt} now contains: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And maidens call it love-in-idleness. \end{Verbatim} \end{small} This causes \textsf{flower.diff} to no longer apply cleanly. When we try to push \textsf{flower.diff} on the stack with \quilt{push}, we get the following result: \begin{small} \begin{Verbatim} \sh{$ quilt push} Applying flower.diff patching file Oberon.txt Hunk #1 FAILED at 2. 1 out of 1 hunk FAILED -- rejects in file Oberon.txt Patch flower.diff does not apply (enforce with -f) \end{Verbatim} \end{small} Quilt does not automatically apply patches that have rejects. Patches that do not apply cleanly can be ``force-applied'' with \quilt{push -f}, which leaves reject files in the source tree for each file that has conflicts. Those conflicts must be resolved manually, after which the patch can be updated (\quilt{refresh}). Quilt remembers when a patch has been force-applied. It refuses to push further patches on top of such patches, and it does not remove them from the stack. A force-applied patch may be ``force-removed'' from the stack with \quilt{pop -f}, however. Here is what happens when force-applying \textsf{flower.diff}: \begin{small} \begin{Verbatim} \sh{$ quilt push -f} Applying flower.diff patching file Oberon.txt Hunk #1 FAILED at 2. 1 out of 1 hunk FAILED -- saving rejects to file Oberon.txt.rej Applied flower.diff (forced; needs refresh) \end{Verbatim} \end{small} After re-adding the lines of verse from \textsf{flower.diff} to \textsf{Oberon.txt}, we update the patch with \quilt{refresh}. \begin{small} \begin{Verbatim} \sh{$ quilt edit Oberon.txt} \sh{$ quilt refresh} Refreshed patch flower.diff \end{Verbatim} \end{small} Our final version of \textsf{Oberon.txt} contains: \begin{small} \begin{Verbatim} Yet mark'd I where the bolt of Cupid fell: It fell upon a little western flower, Before milk-white, now purple with love's wound, And maidens call it love-in-idleness. Fetch me that flower; the herb I shew'd thee once: The juice of it on sleeping eye-lids laid Will make a man or woman madly dote Upon the next live creature that it sees. \end{Verbatim} \end{small} \section{Further Commands and Concepts} This section introduces a few more basic commands, and then describes additional concepts that may not be immediately obvious. We do not describe all of the features of quilt here since many quilt commands are quite intuitive; furthermore, help text that describes the available options for each command is available via \quilt{\textit{cmd} -h}. The \quilt{top} command shows the name of the topmost patch. The \quilt{files} command shows which files a patch contains. The \quilt{patches} command shows which patches modify a specified file. With our previous example, we get the following results: \begin{small} \begin{Verbatim} \sh{$ quilt top} flower.diff \sh{$ quilt files} Oberon.txt \sh{$ quilt patches Oberon.txt} flower.diff \end{Verbatim} \end{small} The \quilt{push} and \quilt{pop} commands optionally take a number or a patch name as argument. If a number is given, the specified number of patches is added (\quilt{push}) or removed (\quilt{pop}). If a patch name is given, patches are added (\quilt{push}) or removed (\quilt{pop}) until the specified patch is on top of the stack. With the \textsf{-a} option, all patches in the series file are added (\quilt{push}), or all applied patches are removed from the stack (\quilt{pop}). \subsection{Patch Strip Levels} Quilt assumes that patches are applied with a strip level of one (the \textsf{-p1} option of \prog{GNU patch}) by default: the topmost directory level of file names in patches is stripped off. Quilt remembers the strip level of each patch in the \textsf{series} file. When generating a diff (\quilt{diff}) or updating a patch (\quilt{refresh}), a different strip level can be specified, and the series file will be updated accordingly. Quilt can apply patches with an arbitrary strip level, and produces patches with a strip level of zero or one. With a strip level of one, the name of the directory that contains the working tree is used as the additional path component. (So in our example, \textsf{Oberon.txt} is contained in directory \textsf{example1}.) \subsection{Importing Patches} The \quilt{import} command automates the importing of patches into the quilt system. The command copies a patch into the \textsf{patches} directory and adds it to the \textsf{series} file. For patch strip levels other than one, the strip level is added after the patch file name. (An entry for \textsf{a.diff} with strip level zero might read ``{\small \verb|a.diff -p0|}''.) Another common operation is to incorporate a fix or similar that comes as a patch into the topmost patch. This can be done by hand by first adding all the files contained in the additional patch to the topmost patch with \quilt{add},\footnote{ The \prog{lsdiff} utility, which is part of the \textit{patchutils} package, generates a list of files affected by a patch. } and then applying the patch to the working tree. The \quilt{fold} command combines these steps. \subsection{Sharing patches with others} For sharing a set of patches with someone else, the series file which contains the list of patches and how they are applied, and the patches themselves are all that's needed. The \textsl{.pc} directory only contains quilt's working state, and should not be distributed. Make sure that all the patches are up-to-date, and refresh patches when necessary. The \textsf{-{}-combine} option of \quilt{diff} can be used for generating a single patch out of all the patches in the series file. \subsection{Merging with upstream} The concept of merging your patches with upstream is identical to applying your patches on a more recent version of the software. Before merging, make sure to pop all your patches using \quilt{pop -a}. Then, update your codebase. Finally, remove obsoleted patches from the series file and \quilt{push} the remaining ones, resolve conflicts and refresh patches as needed. \subsection{Forking} \label{sec:forking} There are situations in which updating a patch in-place is not ideal: the same patch may be used in more than one series file. It may also serve as convenient documentation to retain old versions of patches, and create new ones under different names. This can be done by hand by creating a copy of a patch (which must not be applied), and updating the patch name in the series file. The \quilt{fork} command simplifies this: it creates a copy of the topmost patch in the series, and updates the series file. Unless a patch name is explicitly specified, \quilt{fork} will generate the following sequence of patch names: \textsf{patch.diff}, \textsf{patch-2.diff}, \textsf{patch-3.diff},\dots \subsection{Dependencies} \label{sec:dependencies} When the number of patches in a project grows large, it becomes increasingly difficult to find the right place for adding a new patch in the patch series. At a certain point, patches will get inserted at the end of the patch series, because finding the right place has become too complicated. In the long run, a mess accumulates. To help avoid this by keeping the big picture, the \quilt{graph} command generates \textit{dot} graphs showing the dependencies between patches.\footnote{ The \quilt{graph} command computes dependencies based on which patches modify which files, and optionally will also check for overlapping changes in the files. While the former approach will often result in false positives, the latter approach may result in false negatives (that is, \quilt{graph} may overlook dependencies). } The output of this command can be visualized using the tools from AT\&T Research's Graph Visualization Project (GraphViz, \url{http://www.graphviz.org/}). The \quilt{graph} command supports different kinds of graphs. \subsection{Advanced Diffing} Quilt allows us to diff and refresh patches that are applied, but are not on top of the stack (\quilt{diff -P \textit{patch}} and \quilt{refresh \textit{patch}}). This is useful in several cases, for example, when %\begin{itemize} % %\item When the topmost patch has been modified but the changes are not %yet completed, refreshing the patch would leave a patch file that is in %an inconsistent state. Without that, the patch cannot be removed from %the stack, or else the changes would be lost. % %\item Popping patches and then pushing them again results in modified %time stamps. This may trigger time consuming recompiles. % %\item It is simply convenient to be able to fix small bugs in patches %further down in the stack without much ado. % %\end{itemize} % patches applied higher on the stack modify some of the files that this patch modifies. We can picture this as a shadow which the patches higher on the stack throw on the files they modify. When refreshing a patch, changes to files that are not shadowed (and thus were last modified by the patch that is being refreshed) are taken into account. The modifications that the patch contains for shadowed files will not be updated. The \quilt{diff} command allows us to merge multiple patches into one by optionally specifying the range of patches to include (see \quilt{diff -h}). The combined patch will only modify each file contained in these patches once. The result of applying the combined patch is the same as applying all the patches in the specified range in sequence. Sometimes it is convenient to use a tool other than \prog{GNU diff} for comparing files (for example, a graphical diff replacement like \prog{tkdiff}). Quilt will not use tools other than \prog{GNU diff} when updating patches (\quilt{refresh}), but \quilt{diff} can be passed the \textsf{-{}-diff=\textit{utility}} argument. With this argument, the specified utility is invoked for each file that is being modified with the original file and new file as arguments. For new files, the first argument will be \textsf{/dev/null}. For removed files, the second argument will be \textsf{/dev/null}. When \quilt{diff} is passed a list of file names, the diff will be limited to those files. With the \textsf{-R} parameter, the original and new files are swapped, which results in a reverse diff. Sometimes it is useful to create a diff between an arbitrary state of the working tree and the current version. This can be used to create a diff between different versions of a patch (see Section~\ref{sec:forking}), etc. To this end, quilt allows us to take a snapshot of the working directory (\quilt{snapshot}). Later, a diff against this state of the working tree can be created with \quilt{diff -{}-snapshot}. Currently, only a single snapshot is supported. It is stored in the \textsf{.pc/.snap} directory. To recover the disk space the snapshot occupies, it can be removed with \quilt{snapshot -d}, or by removing the \textsf{.pc/.snap} directory manually. \subsection{Working with RPM Packages} \label{sec:rpm} Several Linux distributions are based on the RPM Package Manager~\cite{max-rpm}. RPM packages consist of a spec that defines how packages are built, and a number of additional files like tar archives, patches, etc. Most RPM packages contain an official software package plus a number of patches. Before these patches can be manipulated with quilt, a series file must be created that lists the patches along with their strip levels. The \quilt{setup} command automates this for most RPM packages. When given a spec file as its argument, it performs the \textsf{\%prep} section of the spec file, which is supposed to extract the official software package, and apply the patches. In this run, quilt remembers the tar archives and the patches that are applied, and creates a series file. Based on that series file, \quilt{setup} extracts the archives, and copies the patches into the \textsf{patches} sub-directory. Some meta-information like the archive names are stored as comments in the series file. \quilt{setup} also accepts a series file as argument (which must contain some meta-information), and sets up the working tree from the series file in this case. \section{Customizing Quilt} Upon startup, quilt evaluates the file \textsf{.quiltrc} in the user's home directory, \textsf{/etc/quilt.quiltrc} if the former file does not exist, or the file specified with the \textsf{-{}-quiltrc} option. This file is a regular bash script. Default options can be passed to any command by defining a \textsf{QUILT\_\textit{COMMAND}\_ARGS} variable (for example, \textsf{QUILT\_DIFF\_ARGS="-{}-color=auto"} causes the output of \quilt{diff} to be syntax colored when writing to a terminal). In addition to that, quilt recognizes the following variables: \begin{description} \item[\textsf{QUILT\_DIFF\_OPTS}] Additional options that quilt shall pass to \prog{GNU diff} when generating patches. A useful setting for C source code is ``\textsf{-p}'', which causes \prog{GNU diff} to show in the resulting patch which function a change is in. \item[\textsf{QUILT\_PATCH\_OPTS}] Additional options that quilt shall pass to \prog{GNU patch} when applying patches. (For example, recent versions of \prog{GNU patch} support the ``\textsf{-{}-reject-format=unified}'' option for generating reject files in unified diff style (older versions used ``\textsf{-{}-unified-reject-files}'' for that). \item[\textsf{QUILT\_PATCHES}] The location of patch files (see Section~\ref{sec:basic}). This setting defaults to ``\textsf{patches}''. \end{description} \section{Pitfalls and Known Problems} As mentioned earlier, files must be added to patches before they can be modified. If this step is overlooked, one of the following problems will occur: If the file is included in a patch further below on the stack, the changes will appear in that patch when it is refreshed, and for that patch the \quilt{pop} command will fail before it is refreshed. If the file is not included in any applied patch, the original file in the working tree is modified. Patch files may modify the same file more than once. \prog{GNU patch} has a bug that corrupts backup files in this case. A fix is available, and will be integrated in a later version of \textit{GNU patch}. The fix has already been integrated into the SUSE version of \textit{GNU patch}. There are some packages that assume that it's a good idea to remove all empty files throughout a working tree, including the \textsf{.pc} directory. The \textit{make clean} target in the linux kernel sources is an example. Quilt uses zero-length files in \textsf{.pc} to mark files added by patches, so such packages may corrupt the \textsf{.pc} directory. A workaround is to create a symbolic link \textsf{.pc} in the working tree that points to a directory outside. It may happen that the files in the \textsf{patches} directory gets out of sync with the working tree (e.g., they may accidentally get updated by CVS or similar). Files in the \textsf{.pc} directory may also become inconsistent, particularly if files are not added before modifying them (\quilt{add} / \quilt{edit}). If this happens, it may be possible to repair the source tree, but often the best solution is to start over with a scratch working directory and the \textsf{patches} sub-directory. There is no need to keep any files from the \textsf{.pc} directory in this case. % - Patches cannot automatically be reverse applied (?) % - Does not auto-detect is a patch has been cleanly integrated % - Speed % - Push a patch that is not in the series file (after changing % applied-patches to include the full patch name)? % - Other back-ends (RCS etc.) % - Pop and push modify file timestamps, which causes recompiles. % Ccache ameliorates this. % - patchutils: Very useful: lsdiff, filterdiff, etc. \section{Summary} We have shown how the script collection \textit{quilt} solves various problems that occur when dealing with patches to software packages. Quilt is an obvious improvement over directly using the underlying tools (\prog{GNU patch}, \prog{GNU diff}, etc.), and offers many features not available with competing solutions. Join the club! The quilt project homepage is \url{http://savannah.nongnu.org/projects/quilt/}. There is a development mailing list at \url{http://mail.nongnu.org/mailman/listinfo/quilt-dev}. Additional features that fit into quilt's mode of operation are always welcome, of course. \begin{thebibliography}{XX} \bibitem{akpm02} Andrew Morton: Patch Management Scripts, \url{http://lwn.net/Articles/13518/} and \url{http://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz}. \bibitem{quilt} Andreas Grünbacher et al.: Patchwork Quilt, \url{http://savannah.nongnu.org/projects/quilt}. \bibitem{posix-2001-diff} IEEE Std. 1003.1-2001: Standard for Information Technology, Portable Operating System Interface (POSIX), Shell and Utilities, diff command, pp.~317. Online version available from the The Austin Common Standards Revision Group, \url{http://www.opengroup.org/austin/}. \bibitem{info-diff} \textit{GNU diff} info pages (\textsf{info Diff}), section \textit{Output Formats.} \bibitem{max-rpm} Edward C. Bailey: Maximum RPM: Taking the Red Hat Package Manager to the Limit, \url{http://www.rpm.org/max-rpm/}. \end{thebibliography} % Add a "quick-reference card"? \end{document} quilt-0.68/doc/PaxHeaders/quilt.pdf0000644000000000000000000000012613657243336014300 xustar0028 mtime=1589462750.1211776 30 atime=1711108486.061450191 28 ctime=1589462750.1211776 quilt-0.68/doc/quilt.pdf0000644000076500001440000107042013657243336015537 0ustar00khaliusers00000000000000%PDF-1.5 %ÐÔÅØ 3 0 obj << /Length 2243 /Filter /FlateDecode >> stream xÚuXI—Û¸¾÷¯à-Ô{B,$Èœâyq&“7žÌ¼î<<> EHbš‹†¤,w.ùë©\¤–/PXªPËWþðôðç¿Ë4’V(™šèiÝ\ØÄD™L….TôTFŸãt•Å—ÍV'*~ÚØ"î¸ÿxî¿V_qÒ3áS5¹÷ѵHåѯØw㛣6_žþ œ³H¡M¦ˆ³JDfm´UR2gÎ]–^ ¹Í2QäYXjyéOÄoìA4hËón¬º–¹AÜßÎU=òJF6§)ó6™0ieB™pÜïI¢1—¥[™Z‘š<ÚêTH]ðê÷mÙ{7àýc"Øø›TfñÄÊãgW·põþ¯y~à‰ñÎv}uù]Wמ#ŒH®¼Bi)¤JA8ꌺww¼G)‘ÉbZ¶Öˆ™” §R-¬1×—N$ªßáåÀ™ÌÎÕ5ú¹LâK_£oy@áíÑ×'î¡;……ìKÐkH÷õXjÏ”µ²‰àÚ’;»®iºöfÕ=ƒ4®_h'7:Ýð2ˆ 7µ†@¸¸(ˆz Q• ’Œ²ñMK6´¾½Ž„P1|›Pqk¬f+b§«Kî”­ÿ:€¤IÅ‘oKŒ8œ&íeǪ ÄÅó-;R—xËÐó¦Vo8‡Ûé¬s¿ SÜßõ Ú¤CÂ4¾BˆKOr§ Æf28DéjÏ}6&öSX óH.‚&Gß´(=,'Λ®<Çk¢Š¤ŒOõyà•7›>¼-ˆrç b úveY¡Éa‚ría¾Ö{»DüâÐ-Ýi¼9óÆLœ6¼1h`R‚/n `ËÓñ®ì¬AÖ^fî¹Pßp6YÔ7ðŠópæðĘ” ÇU-™Hä.кzåÓ€|ÂèP€Ù }ðb$/îÅá¿oC!3 í´‹­¦4…E° –5$"µ*\:›²j¯°kë" ·x°ïΡç[±e‚bß“š“Ÿ¸“ösƒù¢?µàö.°@/E® ãwYí_9#mwe,–þÚ,œA/Ö¦×VæhD0@Ÿ©CŽ`çT·Î©Ø´¾UÝ˳;ªxð'‡iœÜJÇŸŽ>”aÏÊÅÕäµ2x”£©'®˜&ÑßÝsM>B#¤b Á{zµâ çÙÅh0ðߨ˜¡ÜˆcÆtØ:¶69Ðg/¦ÕœWÉrˆÜ%¥•Hÿ è‚PˆR5»È r³0WÀà à  cH ù|âv-¬=  tn`Ffb{'-çìNG,Á î UFŽªè¨Öîj#à62%GÀ€Gþ€ö/¯hjGµ!½Âá)ÝÌ?p¿Ī0«è½Å*ØIªO_·t0¨ŒÔƒ¦«y¢÷CäÁ>x†ïú­_Y3AÔǦõ>ml@Ÿ\NÆ=`6©©‚N‡öJÚ2 >©)ŸU‡ÇÈ‘Š<8Œ¥LÃ;¹ɨd<+ÔŽ<èý×jðå_6[ú˜O ‘ŒÓTb ŒƒÅš8‚‹Á]ˆCV¯÷T~-7>.RÂrlÙß•aMá9A[Ьoç,ŒLEÓ”³ /‚ ½‘éû¾k¸wLÄÓ…E+Œ‚QÛßÚ÷\™=W]ŒšÔYjªŠšU,­‹¹Ž[Èmƒ ©„_ŠI£ ú°“ÝN³W™«ú‹×OÐ2þ:À£­ýÝÕÀÉ—[ØQSŽ“€8˜ÈOëúµA™eÍY9 aKŽÆÏHt#¬^xšÔrû^ÁC¨¤Ê²·l&ñÞ â–Ë)z3kçŠÏ»9`D±±š[pKfo˲¥ò€¹PLáŒ=SëîPí–µ½¯](;¡&ô㽦R} °Û…PÞùÐÒ¤êÚ pð#¯¹ #¤Oðö®Áš%W*ã̵Z‘½kï©rG¦ÛÈ5(H…fåß%9ª°Ç¸«WŒß¾ €xãª]DR99ñš2¯^d‘><=üñ Aò$’‘ÔðÐËrR+ÒÂF»æáó—$*a.'t‘GZÚÀR+@-Я£Ç‡ß~ÀŸYÊF©(¬åúË‘Zx‘éí¥" k‰ká&ñߓȧßü³€žVó+‡?þú3wêjçÛ@ àÓ,-âÿÀØçÁ`Œ‰áOmþåß¼üÑm4& ØáÚÖÈ#9 .¨Jþ£¤³ðÿ#«@*©¬ÏxèŒR¡ æÜ¢lN3Eu '¸\N¾)-ۜՑ¯Ô%bJ u(ðJj§O'Æoã%jÐ}1ïª ú7vaî»~ìÚ? > stream xÚ…YK“Û¸¾Ï¯PåDUh‚/€GïÆN9‡d73I¥Êö¦ ‰>d‚òxòëÓ/”†“= hMt£_·~y¼{÷ÑlаÈã|óxب$ un6y¦Ã8É6ûÍçà0ØïÛmcŒÍËv—dQPõ<¯éçb™:öð›Ay>O01inwi‘}+Ûûƒ;Y>7ض¬»º;2ý\޲?YÇ„¶Äé o>ÁD?b·_ÿº‰6;¥Â"“kãeR£ƒoÛmI <6¯Ý3­¬†Þ9Þ\òÏPvGËC¼$þ^ÎnlÙò™ÈÄ®î;ÇùLU^œœ±^„ëàI=íê×îëΡþ©´B!óàÐ8Ð^Gùâ8sýaÄ«<£è3H=—Ÿ¶Hw´÷¬=;Vø& A£–ù^ëÎCxkZ;ÚQh—‘) Œµ›¿t~#I‚²Ûã :k÷L"£€ßépraa÷åh÷!ñTiX¤é5ã[¸,i ÎE XÁûÏVÁZMâ¿ð2¨X³üåÏP~‡—CkeyÀFÛâI¼¾$œ,µ¶LÇÇÛ”cÍ–Gvš§Ï÷$ËîJ˜\´„z(®MM½@ázz‘"—oëàòIŽéÏ5l¢‡ÀýbH,Öô«ƒƒ-]ý­±ðÐ9¨ù=S'y…‘¼°á ߺ¶·öÐ'ò?q¹]œDÁ¾ÿ¯Eµà™áïBy ø8SÁ‰•CçÄsУ.ˆšàs£HŒcûŒ¼õ4*ÔÎ'b9t¶á¹ë/Ceý5¼@kò|‰²hf±ãÓ;Üùîc’.âbŽaQÁq:‡iø“w-ƒg‡Jå~ðVh늎G->gO^ ³ñTv<‚*×AE<_hõ”¦è±¼´ÇèW—fô¡0‰ù‘Ù•G´)2B“…FëW½0cvÒ’ñ©È⹫ÆÛø+)‹Ø(ù¬ÍÆ)?'¨XÎ$@ã$‡¹ u‹÷þ¡àñ„Ÿjˆè÷t¸º´¶JµݸêâœõQU‰$uñžs޵ßDáÏÚ²!oD"¿’›r DDgGÇD‰‚»µ{Þ<]R¿Qh^Æ•I¨†ÁeK®hP6¤ mgñ¢{ž~ó c4þ×Gq˜¨Ô[ËþÚFUfQæw]ƺ©Å Òb˜TFb8^Òxí¯ V¬Ò7.°‹cU\½ó6#c9­¸K&EñÆUHwIðçÛ'Œ‹bV1NM€Ù²±¼é²-ñ™pB:Æ{‹{(ßÝy>ÃÈ(r…ã (C˜ªðe(ÃëÐ?Ú_Ç 2\Y[Ô[jJT˜ÌðÖ3*£B­é†XC¡ßßþþðéß¡âÉçä+hÍä9 $µ½yTõmÛ#£@”=ìL*¶žJ:19ñ¾\˜ÇÊ«g`vE~­KG*³øöh=¦A?É Ÿ¸-p–„y‘x)›A@ìú‘U?'ž,2׳SÀX4¬³9ßhÊ7†óM–f”aû±§÷™¶·®êóŽ ïòà7—«Þ$¶AŒe“ bè«'^:ÁCµÃuûPà¡*Ñ^ùÛ?¼™7-%ÍB­gÅuA[gÊát‡Ïé×Ð,<˜ßFV4zkòK³gŸåa</8Ø„²s¼>ð¼–C#EiíYâñÉ'ÿÕŒUp‹%š¬¡ÜÌN¬'ïFžrÚ>oGb„˜©Š¹Pа&SÈ}à÷PV–×ÈgÂïŒàß1¿ÚS:€}Ì+æ@ƒEU $÷èS7 ·Þà‘{Œp1[a½D(?ùCQqHÓÁ,y*. ¶²{ÙZ: Þ’xs#ù‰SìãÃÕ¨CŠýYÃóOëçóЗ —ÆX­€¨ªo[‰ÛL <[†i$6±íÉ‘Æ'¨ú©c{èøxéÖ²œ‚€›NYîû¥nƕ虄Ñu,öìÞ÷÷Lû½gøîFHrŠ“"Lô=yÐ`L%Цï*°Bw]þ€û ýq°Î1À‡ã Ëa/Q¡,HlÏ ¸I5–îÉ…¢ƒ1Tb1ŠúOb°w1‘ŒNÂ>Lï‡!𽼠“u¯uL0_ÇjRÅ%mÙðÄõÍ…gT‹â`.ÞØ\×Íj*ajH÷Hf·Ñ¾/@ÃF¾ÁÖ;1ºÂO+Öíîã7cðÙþìScÌPÙq`¯`™ùÃÔW´g°2¢‹"/ðe_‘¾û¨7yXèİMÅ¡1jÁ_ÉUÔ ¼Raï²[ìzôé ¦áÑRK±„#¹2›_š†àn7Èš0•åtÀ­sÛ"1TÒ<ŸêÉó2~…$ó-<ÜÉ€JóÌ,°x¦¯Js)b&&Ÿ›À  îo5 Fé=¨BÂ%_z’$ŽèI¸æ‰òÓFy4¿ƒ©~8v¼Öú„. ý<@ÂͪFŽLf»fF<€XQ#ÌX¹>›FØ(‘ªÌP±Ï8È=Dq DCã•oò«°h¤p7T»Àýº1u“ÛÀ˜pgß\E¹ÈÁ— Ç)°ô¼"ÚZË&¨Ý¹`[ °if:ÿÃ*" ãlÂ(·­Ÿç¡Æ¾  |è; 2bÝM((ÖSoH Q†QVÙS¬UIž®nÏ„¸ò”râØRmð¡Š:Q cë‘î@M%8 A²£þäKˆ]ô9„ 5‹æâ9—¾V¾,da"–¾ K<"Å ›˜(¶_Ïâ᪱I”ºÛ[Ù£E'ÖPÛܱƒ‰«¼„’W €«åeì[BA4#q‘{ Zõz/UbB?AWkñ$•âëÞ.ÞuÇÅsÁw‘‡¾á{q£my±©Ÿ¦Þî-HŽ‹0Ž'3ýõ_+ óÀ{¯± ÕlÆÿØBýT·Î,žÊ±¹ ·œ_3;Ó ‰¸¾+¿ÑƒÂ¼lˆuSËP‚|”…ê¦EH0=˜=Þò¬*ÇD`Å`ݘk]"áJ—ÄDt‰‹¹±>ô—ãÉ÷ÜŒž¾8z¾„FRU<¯i.¨úáÉã¤ÛÈΑAi¹CxNmËî y‘‹ç>&ãa‹8©dÖ#<ºçÿ0©p€3'>âê#wòð»ø· o¸pö_Ûß;fQ‘3 ã4ÙìŠ0ÍS–îZ wQøàpP+‚©Z=†œ·¤ ;‚J@ý¢’”ÿ鎈\?x eçQ’;>MñD8¡ëÒƒ\É.­ ÖÁÍé¯È=ei,Yܾ’[•ã|?1~”sñ—3 êŸÀñç$èh©–tÁ¤–¸h«‰JxÆyqJwf®„(ùÿ¯ WGu¦rQD†ÕÔ£0©×q12â,x ”ø^À,¯„”Çt i¢©çŒî¬ãàÃCãˆðÔÇæoæ_ÄàG>Cض¬ÜŠÄ9ä‘éïIx7ŒTך`àz… Ô3Y±¬T2¯pc½¶|å\‡zÎjgúcyúWãêƒ T•™›/º ”ÍdÃÈÌ}áëì¹ËŠ0+ 6¤&ÔJù„­ÿ1îºG endstream endobj 26 0 obj << /Length 3067 /Filter /FlateDecode >> stream xÚ¥YIoÜȾëW4&‡P€›f±X\’“mØÈÌ’3ÛªY­&Ì&Û\¬Ñ¿ÏÛŠ›(Û@N¬½^½å{ _ß^½|—î2?‹Ãxw{Ü©(õîb“ø¡6»Ûb÷Ñû½¶×{%^säo’sÓõÜÊ‹o×&öòú` ¹\Ú&?\‡©w²•ò}U­}àöš¶oê¿ËÌ%ïy‹\×ù½Ý_¾ý÷n¯"?‹"ø*?3BÛÙÖ¸©Ð±×ÚòÒãQÚxÕgÿzåݽ0Ÿý©iyšcý‰¨‚Vq­¼æzÇ:7áswl†ºàfÊ岺!¾àQ×{åݼ» éb¦”U~WYzD°$¿kª¡/›)PÚ{À=ÍPÜíye¹9\øÛ7ò¥kTèu¢ØÊOŠ<ÛÚ¯CÙZÇ9^<íÕÞ͇›·Üú‚ël[Ûjß5C{Ø$öÂÒürmŒRyÌ#9PéÔëú¼í­tÎHg^y-`Nà <éÄíIü¸| N L}YÉ‘'ûÈ­;yr~Þ¤óAD¤e‹Ö@eky¨&jxôc*'¼|§CÐ}_Gqˆfê”-æ5ÈW…Æ{?”Uÿë½ ïuÞ•ÈíÄxoÐzV;è?°ñ;‰ ¸š£„ùš¹­Á%¡òÓPñ%¢¤(¼s^Ö…m™FÖS=ê©öŠ…’ŠòG^Qv‡¡ël7¾j'òÔ[–šª²‡‰,Íè ã‡*úˆ®¯øhÿ)ùû0|X»äýŸeBêÞ:fÊË« •(xû…—È;CÛÉ4ì.kžÌùÓ•õ=N Ó‡¾iyªo­E ;½)A<ú íÖ¶>Ž_/žGCs”)ˆkÀ§¼æêXâY¨0` ›JÁǶ9c È%¼x|8YÖ´u v"ÓéM¸\d¢<12„gpëS`‚q ¢¾O7Cïq¡ì¢›²;6 ®ðÔ¨k"¬pƒÔhË[z$2¶¡aa××IÛb†/V =w Iê«Äi„Ïsxª*öC£Ýºæ»g†ÐLS·qÝÄ“#u4_6Ó€éÉã3pOù,çÐd¾Î²¥ ßL‚Ž3T/å!W‘{IÀfãÌ86홇>)m1%L|¥ ;á ‡s±ñ l=t«y·h–gð-_Iàûßü÷†œn‚–"D<ÊD^‹Flj¯“åCÑ÷^Þݵö[™32ã@Çߪ©ï—#ôtl,}ŠÛxÉ[Fì »{h 6.2’ N uùu@;M2ã½ Ø@ì¹ jïÒ–“óüj΂d'[]Àzû—Ì>à`ë91Å)\´–¬G)ÑaûÓSi*Í4ù§W@£YéÕ{92Œ$\鸓óÜ¢¸Mê’žÁw t,J7Š”÷i?‹˜Bç·°q¹T%Y5tí&ïàú(g×üí›ËóxÇŠ‹¢Cã.ï¤å°$ö.ÕÐq‹ ›†ÀòlQ¢ÒPwA¿‰´ÓN˜cÅ£&ÒŽ¡;1,ÅL)ÞÈ!—ò.lÐsâ6ÀnÆË0N /·bX¯$Žë‘‚§¢ŽߤÊ-GyÁî†T9ŒÍ¡¹ˆY|ZÆ¡yñÇ~Ž@~?“- Éë°øVðûiΩ$×§g°†”¾àI.ü4‹ðsh¥*^ªÄ‘D†Ú>²ˆ#A@ƒ|PÃÚ6 )# )§¥ í¶-­L"xTÖµ·9‘¦~¯e…ä §ÒÂ(m NE#ˆû­\# Wq'²ÄÓ[Öï`¶híÊlXJÉÞ`iÊyîM:¡Z?)˜Lx l‚lö¦3ýÔ˜#É»#¾7ïŒÐ'þѹñƹý¦ ? Ò•¡hHÈ;çÔec4“;.¢ûê¦æ+°ÀhÅü ï2¡^¾.Ilûò0°ß„ás3‹„aþ9e‹À†ÂõkaÞd tœ|{h’z㼡~VÔqèCÖ¶2ã¼ÑëG¦½°Ç| À9‚ìŽl ibpôá÷ü&^*éEó$*ɺŽI6Ì㦓„Cz¦êìùŽDÀøÏ“Å›ø†Þq§”AÆDh¸˜Ÿpæa|æ t€§¼¾·Å §5M7M¦<)÷¸$¢ƒP´ânO»ø ²4æ¯iC ÄÝ'f,Ì&¾@p$YnYpj…‚̽9…ã’“fL9µàÒðHbR5ÝJaê½+ù°$dáÑÐá“aÚ˜ìl¥Eï‚o>?2!]€î:Y;ùoÜPðÛ¦qð2wæT®(ä>¶ß€á´>7Ü&AË™âȇrI]Ryʤ„‘º ´å}Yçs‘r¿nsÃ(йJº·R“2à'–­j­Ý "önÏ–}bÕ"€½÷¶Æj€íx GžMÀÌñÕ±Çl WptM{é^DMÃ’¹“6Þ6®™ëùVÊi¼vúÍJùÙ>hF(A¼õ;t6*Iô% Q”PÓÌ3é&zãHÿ87‡dF„ý ZðxÊRT8"¶]êMãð2á&À(‚ñ#Õ~´wåý@ ŠŒ§\ü•>§Bt9ÒÞøõ·ëBd\yõööêëÁNíB ™äÖ:Ð~’f»Ãùêãç`WÀ$È ²Øt÷@KÏ»2aŒªÝÍÕû«×X»]ª-äÊ!ø{<ÊÀJÜûê:¼Û7ÿz{³áæb?JÆp…ýè·²mê™O…'s(Ù–JÒGùИP:CG -òAVG]íĶ-à£ÃèØÏ‚l \!Îf*CubÕ‚ÉÓˆ—”ž@ ó¡3^"…›–×~÷Ä;¤ì‘v 5ì `¢ìe¿º¬ŒËÆmµ]Y–+“¼ô™à'¢W‰öuïÂ$ƒ@"ýD¯Œ 'Ùk*ÚÌ2´YÔf0ýmmÖМ’ŸÇ£K)”e¯:\:°I½ö ·«¤ c„÷0Cá<»Ð4•Ìxjðt²²—²/®åFàmNQˆQ#ÐàðêÒ1a†©):4® £NU6œ· ( þ”}s|;HIH©Ñ¯ÑüÔüiR¿1…‹ÝŸåè‡ÕC7LçP|›€c.ã}\CÄy*ÃmPˆš@Ìg{npN­Ë_:ö~­7Ô-}•¥?Ô70$×”öl>²y~“1–& šÅ-‚XL, Ò‰xˆž9J‚˜ž’§(Y,U¤à[WÅæo Τ;VYqtT•+®¸0Êë\…:—:óx[é~±Ñ¢f*go@™æ¥ëïX~ èÿ„³Óda/ŒT±ñM²‚ª£ •¦‘Ý5W؃™sã©Ý/|&ZŒµ?Õ[¾,†O}!ã>ŽSï·²v—;Ê8ˆ&p”ºÃÎR?Ö«?2$ŸH¥+›«LªÕ%74pÊ;ì·Íþ«EùÐÌlBú9/oùÛFáæç5¾Kâq`ü} ™âX‘çñÑ”ƒÑÚ¢@'Œ9DV³?¸û•f?Š×3t»&-ר™9Y4Í|VÏ3k¼‚¡+ gIÚ¸Ì ¦&¤L¦˜Åv}€'x¯ ¡é~•¬€i–±âc¡U®˜M~—q½!Y¹ àBF¢\íŠÊÈš~¯à(ƒ%ÍËû«iv‚EP²A8ÿvÎLØÊVŠ9SBL½B‚0“Ì×(0¬‚™ÐýÙ–¨ôÌOо endstream endobj 30 0 obj << /Length 2425 /Filter /FlateDecode >> stream xÚ­YKÛȾϯ rY 1Ûì_¾­w×#ˆ‘1‚`w’3"†"µ$ey€üøÔ‹)QÈeÔ¬®®îz}UÝóþþîíy‰J£Èy÷žq‰2V{Q¨4ÖÞ}áýº9µÝóÛ­špãÿÙçRjûûý_=kTjÏ×À¦Ìÿoá9dC¾+ûË¥}ÙUeO«Y˜È­Ù X 0ª¨ìé+ìú¿²_ªpÁ6MòË“g‡C]•…/ŠÑjg”ÂW Àºe¿à••æYy1ýöCâ¥àV¡[ý4VQh`E¬’8檧cWn}kíF¿ÛúÎ…›ÏǪ˜ô[ ] JÒGÕà¯ÛdüÙ·Ç.—¥CW–|"?Ž•N¬ç;­âD|ús‚lÙ•ÍÖ$”Ú1h|Þ'4›™’ÞLEÕ•ùÐv/[°‡d_ìE 6AnHϪH‹¶æZd¢yþŒé~'ê^ئÍQ7´÷|Àp%bâˆåÕUqæŒ!?áo~ì(2ãÍP¿0iŠü˜6F ƒgͼ.£]›w//”†S¦“1ªÔÖµÞ|ʆ²ã=O;8"Ÿ QŽÔª?«l/ö©lÊd¡B:¼uþ0QΆã1þ` Dþ®|„¤_ €0P.ZÒÁÙˆ“—>H®øMy‚sK+F "…ó‹ÑXµF&ÊÜ;o÷ø(øT§j؉ù âG‘^Si)L`ëúªm¤DPò#ôkV È4{YBxúØ#°²Æn®Œ³Êž#å/ûÂ€Íøz­¼ ”¸Õ¨a¢ât©àÏŒ3ùqâl¨÷ô ]YKäš2 ‰Îc¨T¶Že+F%¦ã ‹BÁ©nOUÓP!A%%0eüyÞá&f²!c¢(+· büÍÁÏÇ?Q Þ  ËŽÝÇ3„Ö85”ßaÞeÃÄž—E)EX“ÇL–MU—?)_Çe?E;ÕÌŒ-Ùu»Ä:ç¦~Ǭ5޹Â!­f7¶Ï¤VÁDÊ<Ç¡‡ßÃ(­kÉKíÀŸdøùüš¸CS;6"ÇžùæðxÓI‹âð†%d,‰4úFÕJ#eŒ¹„ë`×ÔŽôF5òc¨ lHØ×e`²ªLU.Þj%¸ÿØùÈgöd’XZ[8}é;ªSi´Ùg/ü‘Õ}Ë£s‡‡dþé_öÈËYÔÖUŽä*W½É3ZOCõê˜*kÆ“ã˜àŒ7E9ØÚÔCÅ]¬Øe]ÁÓ ñ¹ÇÌhüÒC(CýKøg¸¢IÛ`q´&…QɃ©…ñ´¿‘Ò ¿Ò°ÂˆÛCdãÊAd!\‚f=+vT6Ø sjÈ®ãÂX«\¸ÄÿµêjŠì?ýñÁ?ÇÆâ¸Ù ƒä¢†æm#ÍVÂÝ!º¢ZÔɾœ°s%›þ¹«Øé²±@·v8˜zÕTÚš4‘¢„©hà¤d¦Ž^±”1*H¿+ƒÂÔ^gmTÉ˾—"Qô±ÅBè×L¼´¹ÜÅ!>±¿ðWË»c;‚EŽê ¯|›@¦!{–±[ÞfHÕ:šc ÷äñæ™é7C7𦗬— Ía%z•Úè¢ÅÁ##z‘öV‡À^ö\ê¬Åuio1»cl/O^ëÁBkWšÇU=6¬U3BÚZx@¼'‰þ>€5áJxPWÚ lfǡ݃ssBŽ™ªÍ¥…àv³¸¿Ä‘t¹8‚£¾ðˆ“ æA 8Øbò=Qv2UBu.è.3rñ(ˆ6Êåð…0¦‘¸^ødq^—Y³†ƒXO-”= k×4FRB5fÅ­ÐáCï*¦ûüåã',K÷Èy÷ËýÝwhþÀÓÐá9hßMÁ½%òòýݯ¿^SphýïDŒ{Ϩ4ÁH®½Ü}¾{OOX‹Xw±2À¢\"oÿiÕ«:š¼Ï©ýµêÚfv)w!¸)DWT?3…)Àç†íc>Ì“%±±Xg×!r"ä|6pyJ.bd©óþÚÞ ePV'ßʲ¯^\¡`x[z8JŒ‚>rÌîÈh£M¸ù‘"6Üü"/W›A ©£-Å'À|T,ÜM?à5M¦w-؉?šRË¢Îä]É:QÙN½¹˜wX s(x€³a•ru‘m°_íÛšýY(n?•Ã=ÏwR¥ 9wºý®ç¸É>ßÞ‰Ù¯°p¿cû¡©•þ6øÀ·Ïºç 䟧8©0àà¡­eþþtuÙAϾ;áK&ñ$€*¸®{~ª\4{Gà0OfZ£v‹W#’¯˜IÉ j¥#j™¹\¸üCóx+phÉmA<½•,€07µÊtM×'¸€€õè¡É{’í×ó 84&W\¤ÑU`/+¤É‹Ôåã1«gNz,Jé±HnT›XRzfšÝöÉ]N€,tÒ/5=å–Aãä<”ûKˆXUÔZELùŸ€öAœŽh/9òmé©C endstream endobj 36 0 obj << /Length 1969 /Filter /FlateDecode >> stream xÚíXKÜ6¾Ï¯Ðah0#Y$E=,;;»™Ý’ä{š±‰švç×§ŠEª»Õr¼Á"Èeû"ªºX¬*~õÒˇ›g¯Š ŒËŒgÁÃ6`i猙Ìc.dðP?„oÔá6âYî+³¹åE¸S#ªAáB†›AUFÕD=h³»ýéáëg¯„8—ÍË8aeÔ_&ÝÚÝÁ–ÿ\‘ÇYÁµé Eäl‰_ÉC8Î\8e1ç¹gMGâ®è º9G²º±é+ϦpM8ëénµÚV) PÈ¥ÉcY (õƒuhnï‡Le,TOzè»–Ö(ŽñðéV¢Ãuõ\q„(bžÍ–}õ×oÿµÀrŽßqï2¹}$ ;í¾jG6^Ó‘¨n­O†¼Þ®(±< ðù…õ¿£_^p¯ =[ˆ°ëñ8‘†£2÷îŒôüV³8Iç$ö¤¯åâÙyº”;€5 w’YìÈR«wžÄL– v—ÂáôoL.=Ìpië.¶MPC Ñä½IC¼'`~Ir¾…l¿»Þg ¨œ•Ü;ÉX ð õbEÏ…äk m ØÕÛw `›æÓb”_í²ï.¼I#zî×͹º…ˆñ8O8b|*è¤o”ù ‹¼€Ç©U´¦@+GÚöMÓcàl¾BR£;å6´jp¼NK»¿_«{¨‚,<"Þºœz់đDz˜Ã«ž†Yô/¼<_ñiÄ!ò‹T\‚ÈÆ:úêçIoܲ÷—o.ï|l”ÚÛ£ìUUÔèÚ¤©t='Ó³«û^7 q´Õ{'¿ò'·èyègR[Õ˜ÁqYc%^‘üïýŒEoC§<.ýäh¶E›åY+siܨÔÿ—è Ä˜Á…n Ô\³ó^ ÿš³væÒÐæ6‰˜a)Ã?MEè%À9]ÕêG;%a›¹E© ƒÚjÜ­€–¼8k,%/­E¶,VÄ’-z$DÉU¸~²^åÒ•Ã?ô£C[®rQàaY&P’9Yb-­É…´Æ“XJþ±¤qfÒ ‚â‚yãoÕ¿Ÿý¡øº«Õ‡çÕªvß(öì2?-·üýÿ­‰¢èR¸ôã't¹»»ûCºñ±Gü^ÐêŽßg´‚ÿpG Ø/NrÞ*ÐÓ€•:c|¢>¨Ýçáû5e^ºÎѽnÞGPñº_Tý4ìgÉt^ÿ¤>}zõ„+zhFo„O(+Ò]¤ëFA§”D+ޏûÓR¦ÃôÝŸ—3ïþ‚¤ù†²f§8þ]åĹš©»=ô 볚žF›÷öµÆ¹&÷s °ž¬p²Y©Y†Áq92ënTƒ±sAµECšÌ‰ÿ:WÃÜ-Oý§‹{óSqÇ´›&"¬¸’úHGí«Áq‡Oãµ8îk_"²¸3?Š1éîB¯0BÆ4¿®(IšÍ»ïñËDŽ=)  ¿A1€H7xà ³Æùô‰"õ7G/‹á‹ˆ^=çF_–yø¢ÁDSýdÍhÜìºR3tæe¶¬™NÞêxVÌÜö…¶Ø³†³$$ `sžŸ}lp]Ö¨!1©pönÐé|ß¿§ÂJÂi¦™JzK´™sî5Îë³  (öÔí┹m¡L·†ô4ž§ F CÑšb3u#yš¸.Ü"Á„ÿƒ{Ö`ˆs¯Xö.È_ã' >ûýz})’Åy6ƒÐôÄ ùÈiây)Ò…HæC’›ª{TN}§2]_×g›ä3G@fUÏWúžC–}j*;MSÞ ÿ7#kÍH67#ùy3róÕÃÍ/7˜?“€L@O„צ½ùá§$¨áO‹²–µ–> stream xÚÕËŽÜ6잯¤2‹ÆŠ-ù¹=%m‚¤(’4Ø"(šœ±fÇY?¦¶¼Óýû’"å±g¼IÚKÑ“)Š”HŠO?»zðä…ŠW©Èâ8\]mWA‹@ÊU%BªhuU¬~_¿2^$£õVWAþmÊéS•ÆTšàƒîîx[µÝ=¾øãê§•¿ò_dQFÇ>ÓÛ¶cžº¬n¼Ã®4ú1!šö@À~èöãÉ¥Ùñ}í­~Ô3¶šb~CJ7ôŠ>ýN#“µÍF_Ú‹î½r‡}ÊcØÎµpÒWZïËæšVúN{UY°îU^K/ñ¾t6©ó={Ø:çsÛÎY{DÕyQÝX´F/üëè(£Aý—3|y˸M§s3tg&uÊõZÓ³=/ }ô¸‰ðDQ™„ëAMðôVXÒ­ð€¿#ü°'-€17ÖÑ‹ž‚”÷¼ æ5ÉÓ—†No;ÝïΟ&ò…”‰ãíãÀjßðEè3Ú¦™n'82ìL-zË a’ÍͱíÚ¨•b6®{“[¶ÂߣW ©;HNÕz2R»?×K%"ˆY.ùÐlR¼,I†9(†¸Jˆð[ŠD¾Á™åfUä$ ¼#BÍI ²›¦L¹]ãä˜s öN¿Ïß^··cB<¹ñ´b¼ƒÚÕv#õ›ºka c1±„W ˜øu;QHsŽÍ÷ûª$§?MV2»œg«× ¡â)®+m°¢))×yßX_”T” ÚWðFÊ=ãÎViOM*Ât$? gå|Û˜0âl†ä‡@…þ7˜ë‡—ÓЇMËÞv¬¤ g&Eà‰…wÁJfBÉd'/LÓu¡9 a”‰ÁÛ «á®Ž¿ª²ýd˦ |ßui&t¨*.:½¯òæ{&15UA* ¶ œ 5M݈…7•ˆã¯H(É›1””„ô”œØcÓR‚Ï˦¿\ðs™ˆ8ŒçQú›6®6w7®ËàÆã­ˆ>)Æ[K®Ÿøaؗű߻\ªêÿ¿†0;iéQÿYKø¹p–®QÃÆxæÐCJ8wš(‚2¶àÞ;‚õqo£‰TlX>Ã8D'²·U-”áŽp˜€îXˆJçX‹ÓëWªÒõ{[¿p.$Ó1ƒ;w?ôKÕÜ3q&ç~:Õ!±:@üÞ§FÅgìwÐgþEÑK2!}µTô†¥B0ÊŒ¦{ÌG»R ðµ6'rlÛª"•¨Á€=¨`CeËe%UÙ—êåĨŸ)WOñù¾X®˜ØVž#qéââ¼nM¹^Í Ñ}Ð÷ÅÓW??ÿ‘˜Å•b‰—l—:MŒßGOô<×1|ÒÃQW6_)5WÛ·Ëm®üÚf×ÕaN>ø‘¯È-›³´áma3øÊbý {Z˜ÙîsÒe†ºlòö ös¶A…ÅÆ‚•mŠÃÔI†´coH§¤<úàÖ.玒fÀ°õ°Ïüõ[[×–ØmE B‘…áIE‰#I¢"À’ èR-¬À -°¬ÙP‘‘²m5¤Ç}ÎC"ºo ò3Ðâ“PE ò¶ ! íÁ1Â!de ±¸+Ý †| ðÑB=ᬉPx¶‚Œ “ \³ù  ´XœY/„ ŒC};X?±ÈN3v‹ã/¢´5Í8§ÄéqN2~¾#¾ª8&È’^.Š|(m¯Ï6‰­F‡žq#èÂ騭HwìØ’ØNê°¬£¥Ê&:#·+RIpXpM«5ÀÓÙ –4'ñññqá&/žƒƒ‘µôì`ö88›ƒásÓ–gDzh­$à £.ɇc¡‰=1D­kݵ_X€ï@• œ>qiæsÔ3ïÆª%¶ßÁ=ÞVu»°µϵžlY‡ܨ[z®Y ‡¾O¥/ËðWö'|ûá8gÇŸº‡÷ ƒˆ]8&ÞŒ¢:!Çì E¹(˦ƒ){àkÚå©¥ a5㜬oÄ’OiR™™ˆ¦”©ÿE»Ç)rš@H¶„eÃD‚û,°‘LrÞÈ{›™)‘ÉÓTƒü{kkgX-¦›DøAzL7äm¡žBw“fí–Û0k®_Úæ›û[ JíÀVd„fܳÿÔÔ˜wX+ –/è¦|¥K=ãû-è}ŽÓØb÷"¡' ì_´/w/\3ÿ“.f®HL™]"å!F²ϯü Dué¹ endstream endobj 43 0 obj << /Length 1948 /Filter /FlateDecode >> stream xÚ•Ù®Û¶ò=_aਠD¬¸hKžÒÞ7EÅ)Š¢íƒŽDÇìÑâ«å8ùûÎpHÙ²é“öE"‡ÃÙ93ä·¯¾y/ÓMΊ4U›‡ý†§œ)žlÒ$cB&›‡zóûös÷´‹‘lÿÃéÿþ݇¿ÿ/ˉþ‚íþ|øao"³")h¯ÛÐÏ«ßÓßÁ éK’QDÿ±|6ÝGú/]M#M¦žþ{Óhýô¨‡¾cÓ§‰æJ’œ$yw<6F×ncÓŸôÀj³wòü'ñ¾*]¿%@§u=zÖûA@áHø›÷ù¦‹‰-qÁ²XÂ?c…”Ž×~ÒÃ.’¹‚ÍQY×V ™ƒäMðÆtz$ÚAÏ;‘oõ0j%~@öÌg*Pϲú#æIO;‘m­N;ŽPy+«JX,3¿Œ .Xš§å§Ç]de"Ó)Š,ñè¯Að"CI`)1-…ºœ´uJ$ ÎR•‚½8øÆEYEÊí±œ*Ôã@Ó“™!SN•{®ÿŸM3¾óT@Θ.š3G³¸ˆü(/€hr¥àÇŒ¿¢pp¨k3]G\(îow®d[º«­?¢U4Éá6jï¢p(œç,¡º²ÁÉ9ÐLßÑj¿X9ÏYÊå?…œ%Å ô©4Ýø& 3H«X§k{ÿ¦±ÚrxúÚàýN=¸ÃnÃ}s•W¾›ÆŸqÝ4oB¾ù0h4Ñ6›Ñ¯1ÓäSËIpš»K¼‘ýVCq{ZÓí¨Vã¬$${Šç¿þÎáv+¼óñ·C^Dû®b—Ÿ’° » 'kø8·šj#6‰Ú~Ø»% òÇãH|tÕ´ÃÔ Ê¥ˆp{\_¤×;¾Ë¥W;WÅÏÕé²®-I €¯oIŸ*®¼…øw@0ž]<$$œ°ÑÎ ä4ä%øÓuñeÖ)$È" ±¾(‹fzÉýÈÖ‚ÚNqég;u.αþÈ?Èâ–.LJÑ‘ÇLåÉU;aÛ&èòœiqxG?|@×%ñ3.еiÛ†°Î´ùÙ´/°NKRbM¦Åô2oÆ”à·"ÌT%MCSêÜ`¨5B^§hr«Gçv“cÁ¬EÌ2%×ö¥‡-ß ç|;NÔñ=§(=¾xq_{®ÓO 9*[ì•·j"?¿NéžB בé«jk;ã…§Œz0´È]q¥q‰]¿»ô;~qÁâü¦ßÄ;]Ââäª Ç ä[‘®œöڽРôtCZ ôÏ™çg3¯"¢ ÚWê%в­G·/‹väÞÔÙ3þ¹(¬"^OÓÀýòõá0LÄÕ)§ˆr%s(l:²ÜÝL3\{õý뿹ÍV endstream endobj 47 0 obj << /Length 2631 /Filter /FlateDecode >> stream xÚYK“㶾ϯPåb©jO’¹y«²©¤â8®”^84b-%Ê$•ÙɯO?ð1œŠ/# F÷×_c>>>|ÿI«”¢´VmO©µÈ]±q6JÛÍãqóëÖ ¹ÛK©ìö_;-·ÕpÀŸón¯s»ý¨ÍTR¨ÄÝöÄß·WÏ‚/™Í†³g}µž(¬ÊÔU 8)¼¿É·‡’N8kã”ö6Ôígmö†2áɶaÂ)ìc¦kHalÚæ¯ÿü7(æ 8¾¥óŸßîjJá2¿€Àíhc¶OxÒWný©º7ßw{ãÜOb½ÚÛ¥cÊíÀ‚cÝùÃÐvá32WÎæ‚Q2ˆ¿dÒ4žÛ׊/ šõ•otOÝÞI‘Á¡g‡¯ñ£<ãËÛÁ[9²¨…õµØí­uÉ1@Üù‹¿àºO<» +ðir™îdÓ{†RľbŸw‹þÄ]R?¬÷öþu¦„2y4sï»Ú¯øµ²ÐÌÇË@C‰àªJš`Ç3~9{ØV•vû쯾«†úúŒ}ƒÎ‹âcÖà6zçŠj2³¢p&nú;›lòñ-µN–s—ÁùmÇ{ßùBŽIË꘩ͰûŽF+åŠ>?u¾_÷aåÔT¡p™š[Áw`,Ðk`ƒª2R/ü*8*²©÷b÷P¡¥ IþbîôÁ÷¸ƒñǸ!„ÚõÈ_‘wa£÷'ÀPM­žÅ1°ýR7͸E± âÑš>,ZmwÛ6¯»BoÁ× h¾«7|ºl~,RÞHCP÷ÊÍÛQÀÈG³h6ÜêûT]Õ½²$Ø'¥ 3mùÌ´pײÆðñýO;nY¼ÝdEí’z’Kà÷¿7#I~¯ƒßéí/Œä «ø'-‡HŽj­.  +·4ŒNT¨ˆšÀj>7 È·rŒ†àb-{`U_{–ð ÐxÁ¶ûJ!C#Cu˜{ï ã U-¿®ŽÇóEÕp,}Ž[^nä±`˜+Þ÷€æ)r ¾Ïíš¾eNyG›j³õߪ˭ñVb5—B¦œõSÄÖö*†oÃJ –.N§sÁ>d•œ¬BQTaf×7Àa_¤Íƒ’+‰UÂ¥Má¯6#+{åráJ \‘ZX¡[ùÚ˜JÛ1¬!G™1ÿÿ‰Êã:9pŽ%cxÔŽý}£[±§5B«•pÕ—…Õ}h/€!ÒÈS0Ðêèá8ˆî¼ 5»k;[à EsÌz¶¯ýà/àfyféÈ€OÙD;êÜjÚÚÿ$pàîdkõ^VUè —Î+¬Þ$,;f” K¡í£NCA£:¦H,&+æ9UÒ6O¥Rò¤ùBÛešß[é¶ŸÑ Ë`‹‰I°ñ š 1„,xhÓE½¾±æ"N­/H×°ˆ~Áˆd ÷kI²: ´K^Ø•3UAž8 !lâéLI˜óÕÅ!Y„/Npè•ÏKaÇØ¨Ä{œLªl ò@âaÙx`ØpšB`$¤¸ÔÏg&4Ðù*^eFf~ø/R› ¨Û°?P'D6QŽôÕ@€ŠÍ M½ÀÔ\*ÉšÍ營>â¿§”ÞX`½9ƒ:´p[000%¾Jß-óLri'-¾ ÿÓ‹gULæA’62Ñ즟BølA¥„ÉSÖ¿uSCì•àQEIŽÖA–Ú ûÌ]®Ì‘vK(‚A2¬ë’Á&EÇm3ñu7ëWTÂ'²Q¥[E{ÝÙr[=û RH>¨R±”y X#7M4‹^ÞCÌH²tBAÆÛ—¸à‘O|x˜Ï9È×À㋵ÿ“•B÷ûê–@¥‹è+ÿŸTm endstream endobj 51 0 obj << /Length 2951 /Filter /FlateDecode >> stream xÚ•M—£6ò޿§]üÞ˜ABHÛäe'/{Ø—l:™C’chÃ6Ýéùõ[_ÂØ¦;»'¤’T*ÕwßÞß½ÿëRa–$zsÿ°Qq:›nlâB'›ûbó[„Év§”N‚ÛÌ]ÿX·‡í÷ÿ|ÿ1ÝdafµÅ³Ñf§Ò0N3>u_•}¹Ýʼn r?êqÊǺkž×-~Ó๪÷[ƒ§Óv³¶¶[xS΋§|\î­ÛÝ©É÷rA-ˆÛn@QæÍ7ÛÉt0V%còc‰ôÉôx&y‰Z«à˜ãä…'Ÿ‰$D £`Ê‚ÁôÜÛÑa4VyË»ºV@CÙ×åÀãß#eš2ŠLü0®Ü”7C7Ÿ{Úú[aa`¼û®ÝjðR[—-ƵQ½ŸŽ²‰˜w'Y0vøM¤¨Îkà´,uMÁ¾¢Xb´ôÀß™Uåð¹y+‡ö}™%Ûò™o^†©-Êþ‚X+ÄÖÀ›”FÞ”Û Q È-F!/ì‘Ë8˜£ÓÜ–ÌÅqE´áúJt¢&Ó,ç û}á¾v^´Á ®Ï‰[0Øã¾Š÷ý%ë0‚VqÄ{§ÅÑÎ8^(LòÓ©©Ëp©wA²q°4ˆƒX™ÙRiŽ ãRÍóÎø¬†°èÕiU&ÌŒ¹$¬—-<Ž&®²0Ixíù2Õ ŠÉÄÁC‡Oïo½B Gtêì»ã‘…a xƒ#¼)AªÍXÕkµ`fmøD.0” Še l ·¦ît솑¡gásw΄Qâ.ßKÌŠA™¥F”‰0`‹*ÃHÆ3ð9kÎŒŽÌÂÞë¿´M9ÈBΟ¥ø`*âƒQ-XË?Iûzl^9__îwkŠÆì,Þ­O›ÐÅ׋­!ᥫÂ3€Y;ä¹n>q(Û²§ÇãŒßMˆš†p=³šZdÅ—©l÷²Å„ßå£-?ä¾Brœ„‘µU!û‰UMÓÊø½kØÅ&ºUuºӯâ5.L”{ ¯ £ô’È]ü6:;£ÍPÖô±A(Ø/‚òNE*TZmvÚ…©¯Ih%*W‚JÄ bA¬FÍû«Øü©*Qßá^‘8ZòPG4côJÜ>ï`™¹¥Çg™Œ%çHë=”$ þSîG†zVÙßäý¡Dcr Y7Âä*6è#c¶€­~%¥_ kÈZ»ŸH¢P;M¶FVŠ0z úúPá«d¯O`øÐõ|./ VXGþ?¸pm©ªNâ½ÓgôëZL?DNdÁ‡ÛÀ,±oQ&Ø—=^D©’àD¼èj î#2J¥W\‡#b„°ÿPŽ ª[¸u¤ŒfùÈËL!ÊVVH’Ë•%í mÅЃ_«Ù­ K!å‡`ж5ɰˆ™FY¸i‹iÌr ÀŽS‘+LlŒJ|8„ !+#ç//]!øl!£û¡åzh:u?µ˜˜Ä¤Ÿ¸çHDÃÙù~?qˆn0ؼ·iŒäh“€Hš({{Ú’ô a$ãÑœrÀøQ²9 ääS[m¬[°¹>ðàTïÇ©GsÑ–#ËŠwTQh“ì&ƒjôù©Zu=QdWbqÂ# [‡6Ê®X4z¿›% QÅ3Ê¢ooUPJÌ;ˆ2Já ÄVì”}R*æƒ8l(J‰u³c#°¨ÉȇqX¶|ra-âI8çÌÅ)ó+ “ÌlâÐ*_ÚÜ’›B”W»Øtïéé¦ñ42~ðÄÖƒ°ÍšÐ¢—^²mfrì 笱[æ}}ª‡)oê¯dÀ°8 âŒ|duñlÍÀ }w䕨‘÷»gø¿Ë¡Ì{æÁßeï÷¤ ´ù×z·æø~© bç‚É—[ïË‚.!úµþêC`²2Dß(š³‹jOß¼ÿüü’ÄŸê¯a×Þ¯h‡N– "f¿è=}%…5¾Îaœ{Mãw:ƒ ^ fÅÓ‰µ¬ëÇAËJ„¡è-d)¤sx)èm5¬†íHâuê㵓xý¡xÚZˆ:¿£€öFQ-qû'y°Ó>Õx>É—b!|%ý€1Ö@eÁãž=2D?pí7T|ä2Ö ®*÷·Qu‹.R02@býyº^çÒ¤JDÏiÍ㠵ϙa0Œ9]þÈSÔ·é'<¥7ò×ñù¹0Þý('Ýò¤ c}™¤Ýr[Û0‰´ß„*²ZiëVHèˇ¾ªµ»uè¬ú«»ãPŸk+±c–½ßà¿ÓP>LÀ¨Ù %&KÁž7â’â(t€þRûó‹v8E)ª¢ü3‡àZXÏ)FW¨@X/ën%àIq½,œàxŒÅ ÷¼dtdWVÔ¨€/‹mõ#ÊSV4†5%uRQ!+RëU4uqqDeúèësÜ5ßÉÅ&fpÏ't‚”]3Öøx¯qær_ÎÓ¡Ê ¼p¾l`¥ÎÇëWûKD}¢gÞʼnbƒIæ.•º°‚÷ó‰ØW¢ÎÛÏla$/ >³ûŸ‹:•e¾H”×Z9 æ¿oŽv]âmÞè>p`œ›dÙÀˆÝ Ø=À`Á@ÔXñƒhõ-ñ87MxÆû<ž&Ñü¾-³À£’´k%Ú±rê‹Ôm’U¤'(wsnûqF«gvq›†Aô8Œ9çw-OkîcuŒRÌnbÈÀE)§F«KíÜKtÕòñíæu±ÍW·ÒçáÃÜ-Ã㥼`‹”ØDê¤S%©?On8ü{HZ….K¯ü§ªïÕ‚PÚø&kÅ#Ë ˆóI¾Ät ÊQBÉÉ IïǼC.¬ÑPÙ9 fÔIÄÁB“v²CÈr.CÙ %¤¼p«snЀɱÞ`·•„íV´še/õªÆ;·f3NŠ©ìj`4r­d(Wyku¨Œ½fn’ÎñÏïÖJƒ Rc{}Ry!BB ovFßdRHùçºåòS];_Í+6Ä©‰#*Æ:R.òL$•ÊÏi$êÉcézS½,)LÁ+\@GÈãA6_„,¾zÏM87¿èʺÀ¬¹¡jÎNRlÉn±cÀbD€!}ýðTŸ¯ä)}>1pg±Ê†Qšº‹ñ…^¬ø±«þ®t}¡~áaQôøƒ¾7÷ºÿ 1y¬¹/aº6‘ž[“ân–?"8]Ž$(Wa@.MR_É0´9RÒ1x¥ÂÄÄ蜹}ÿ¯_úèuw‘„*Û€ìÿˆÖã)ï¥èæä(…R"±· vˆ™"Cc0YdH礲£Þç Oç,4ÃHA-Žãü;M--€µw¦¡Éæäs||íÚ@ª¯LÕªt®à±9±+‡ pÝýãþîË&£ÑFÍÿû”u!\¶Ùï~û#Ú°úuGºy¦­GØêB“â½Íæç»Ÿî¾Å¿‡:Þ$P_;ÎŒ S ¸à S¶Öû"E U‚ÍÌ0…¯"EºØ§\hcuiƒ…,нKÄ*L]r)Ä^¡t/Åò¨±:´h, øs>xk¦ô ¾œØeÞªÙ$3ñ+ Øy'vqÀÿkp&Ûì²ÐXs¡bôÛLþñP¼Y†ˆ],BŽrƒÄ3¹{¿Úy‘3xXëø„ʾסg>$ÉÐþ)JRL²‰§=>¨ö§ªö!rÞ·Ïíð1¾-t:õ]NUܼõ àEc)=âÙ¹r˜…/à„wIó™¥Ñ õX?!*âNl³s{ºÉÇ‘;Òh{à”ùZ‘ Æ÷¾üO×µå!Ç›WÃòQ³„’H’­ļ[QÎXC©xÝ{Ãío(§Ñó3¹É•èX¡ºGÆv£©lï7N!K»ƒ(…Òoȼµÿb&7· endstream endobj 54 0 obj << /Length 3115 /Filter /FlateDecode >> stream xÚ­Z[Û6~Ÿ_aX¬ˆ‰¤Dj>4í¦È¢iÓfŠ>¤yàØš±ÙrE)“ô×ﹺYݾ )ÞÏí;Ï‹»›ç/ͦˆ‹\ä›»‡M*e¬s³É3 ™mîö›wQ×Ün…‰šÚÝnežFMw([îv{º}÷Ÿç/¥š£U,T¶Ixÿ÷?þ «ŒöÕïI*yýôV•Ç2IÃò§CyâÓû3]¼·]uzÄ¡$:Ûnw+tt(ýc~O²Ä¿@N ILl’"œùG_Õohˇ¶t‡•W@WȰÎMŸáÝ÷ÝÊ .PùÊרÜJxS*Ôf›¦q‘yæî€[%etO´–üq¶Î•{îw·)»ò£â|$q»å‹¿ö+õô­:Öe}WÕUw —}¾|¤(â´DaÛÇþÒ€µ]|»ÕJF¿UÝÁ¿ëP9îM—ÏTíÁSâX†å§€&¸8 Ò8“sNLßê""<žZ:ù#þi>à_ä N<4-wJ»ÃñáEu‰}RÐn~šç3k¬8²vïÃûhÑQÉ”<Ô´Õcu²õòÙS•Ìé9•O¨z\ ºdMY怵™ÒÑË[£"" ž@ê°'f‡8TIûWùáÖu—‡ò)OU]ó\P¯5ENc™ óçûòãóSû.”C‚r˜AåéÕ9¾Zâ«I®R$q¡*Þ–Àc– fÙ^Lè!]Bz¤Š\¹kN~É‚ñäÀ:$G¯’“çBÿrˆ‘ŠØä…§ ç¹ß’Ö! È–ê« M\ƒÅ’FÂê`ìØ·ÜÔ•óG5ÜJý“=2çDâ97ÞI}ϧt»?õXuá&Duj+™v¤K3ž—ZžëW|ï%G´ˆ“õÛ_.9ª8•ζRº²EÔȵG 8}46üB£™vü«ütK»ÒÈ=¡®Ø³‡œ=šƒC©Øgx*óX$ÅRE]_w޵¬:±ŽYþlK‚ž²u^G™Ó¬/@Ï…¾¿m€¦êHÏÓ&Lƒ¶ qãwïʇ¾æ> Û][Ú®ä¾ååAž8ä¥HàH4–è"iqhÛûªkmû™?"G7‰JD×Ê€¿—Ϧƒ›ö#cª¢®-Iq2 ±¶©h×·íhš0xT5§‘ßDwVðŒ}. VK£½WzåUQ \À¾åfÔê,ìîP–V€—÷”ãû„–Ó÷9A¦`k±cdÁŸW8¤—¼-wlä,Î|p LÏÙ!½BEw„¼›}#®.O{¿ÒãNÛºnˆ Çß½_ Œ˜Òãѧ³ìõÈ1¢ w²gwh|ÌA(‘‹àÒ…0af_µ@Dƒ ò¥°Édq1Zð$ªî»0é ðv5d zQD?X¶lò{³Øˆ y´ÕÉuv3ù\ÌE´AǺŒÖG¤Ž.C"©z$gXo¡ÇŠ'§Š'ƒšíƒKékО±ÔbÉ)Gà¤íö:[Ы ±ô.>i6§òÛÑ”êϨCȲ TéT£°²„˜§ŠÈ…ä`h"~ÅÐB£½Ç>ðÇ`ÿ?졇ZÈèUÇËh9H(AkýR>íÄí:Ä SĪÂ…˜/Ü=ñI«Q¯Š•K Úô¢ºä£ýH˜»k† ’ ÀG£Üݕ‹Ù k4$ôd'ﯔóðˆ½}´<O[¡Éî÷ò•„ˆ?„høQW£ ¾ZŸäØ–ó¶ŠÈÙö®Ø`’ïóð²(?J9Lôºq>¿aÁäšIÕHjH…ià(áª%HË)\Zq° ¼5ßUôò`±y‘–Ü*&Ì̽Ø!ú>×½ãiËͦ^žÅ”¶˜Ã×%ä±þÐ8WN†J ø(ª˜¦rK!€­Vç¾f÷&ŠÔÛöŽ 9re[áéØù…(DDÏï‘Ç83€#~ ¾?X qæ+. ú¥Jy‘­0ýkpœzåAÏumuæÑÚxí®ÝwëÎ*åE†¦Œ\ÙõçÕÈUX¿kŽGÎ=`‡í»æ´c/òPý€ ªB`çHj‰=RKì,ÕÓ(P›OB2’Aس(„Œ7\'âÙ‚w^¨ånTÚáQT™ÞèhãU)¡-?A´ëü )#t&&NûÉÄ}A&Ž£ ¼Ä¸=+qKŒÈfçÎÌyZ^'Š!”-¢Q÷„RQh” Á~ª<–G|–W[6—¾CÀ %púQ®œ ÌDÈ¥Ù.áE²*L–×@hE©9R°Ü[ 0ß,QD¶¤ˆ^°KÅqJž õä.v=[Ó„cйÓÍôš¸fÈY,Ì`È^'ßÌÂC.¸˜FA3 H W¸!5 `s¦·K 0zw8ÀQ%·:½beX¹ "Ýî°òÈ,NÔ°Ìõ÷Û‹ +|Û±ìì¶:¡•[²GNûuËt‘eM|³i•3æpêƒTyâ…¬?0æà9á ã1DÎ’ÂÆÎžžäƒAkV䯋ØHµŒ©i?ËMø:éûÚÚ5¡:©cHOBÝíÊsç3"Ê´Ìø6€§Ïøª©ü¡ åÓ¬ÂÅ£ůy(‚ÉË ö.eÅÕ…kÖHùDÉH¯è'’õlQ&dCBüÐ6Ç‹Š«§u(Êò8WÁä$ ß9O"@k• K.Ùc^îþoøæXý9ü?“ôÖÂyðÓF¤¼ýWìTn1˜ú· e*¢cö#átݳS¾¾EOÈŠ½åÈ1/¢ó@Ó/ Nĉô®:-.èmÿ¤[ ˆ¹~tb“ “8Q$”ĉYí­±ÌÓµ2+Æwæò'õARzÍ_Y¬ò±öº½NY‹1KmÎ](ÙCÉÎÌÞÆ,7mùfëëËÖü«w¯uþ ïÊÛ×¾¶“Ê4Öù"ä>û YD‘-Jwj&CY'ȹX ö©0m áo'|NDz‡sv Xä,ãþù×W? ÞáÒ›ßÝüqƒ!M²I7Ri£Sªi³ÙoÞ½O6{˜…ðÒlžhåq6`ðÄzóöæç›øãêìg8Ec“ÓA™ñÚþíO¯_óãw—×*ŒE¥ù‹×Ê™/1äæó{¿ùåû·kÕH¬U¶øùã#…¯meïCù áŽ}$+?ÙãyÝ}&6#ÉìRŸOµ$Èþr!€K0tT.¼}}÷êåË•[ øCý-·š¬ZÍoE&ýÕv»kj*Ú´_cñÕ%ß õøcòμ¸±G,oúîÜ{gÂøâ³@ľ¬´]V.×~“bH’(^™þMç3;;ûÉ» ¨J¨üƒ=øŒ§¶êÆ2¬?Èz'T¶GüI‡ Ä>⇀„¯¼Û 忹 ÎÈv¾86! «…§êÏÒ1vwMÍŒªeS]vÿbf¨Cv >©HÍDs!…]ÑÜ4àß•bõ«Ð_Ò!)™ëš;'kÀ$> stream xÚ­YK“Û¸¾Ï¯Pr‰T5¢ |¥*¯ËNÖ›JìšqrXïCA3¤¨åÃãɯO¿À‡Äñ:U{"âÑhtýuó‡û›Wï’Uê¥Q­î÷+&^‡«(Œ½@‡«ûÝêçõÁžl“uÅé°ÙZ¯ÏY—o‚d}´­·Ù¥Ö¯ùCßÚ}_â{°nm7ÎØ× ¿¼áG[÷Mnù=¯á¯wÒ,Z~~VÚl~¹ÿêÖzZ›•Ï¢mÏã-úƒãapòXÍ5 ¦­ öÕMÓŸ)ô@ë!#¥<ögnOÔ’ð¨&Ò“g­%>êc é&|åanP††ðe`eö U‰Ã©ÄÙ9nϾ>l‡a¢2 y ½ï–‘ =%¦Óㄱ ¿N˜/w,ßÔ‡ :×~úMÚkRòC™J㈹îáÔÇr1(ZÙØl÷Ì qY+2¹³€†üŽ}5·p˜qÆJÏ÷éîí@#鸨©bãPØ,Ÿ:Öýý‹,ù[Çf‚ñØ,df‘¾%БH¹—¶®äí,†¶xŸîc/›%MiÛÞ{‹îO22ãÇ]^\Tí¬|EÝá³±UÍFÈqž(Q—ÂVçÎA@:!:Eäoêþp¬ûŽ?fÜý„ ø”2>¥?¿,Çy(˜S-§Jùõ¨È æ¾+ ÓëêæSA°BHŽÉ ¯ï¨3x›WebOÐééËT4(C8]oD^ä9G—5KšˆØáɘ‚² ÷_¹ÿ‘MódKþÌU¤V&Ë3“E0E>åÁ“”€ ß©þCoÿµM½-íéÐ]Œ$ b OÁåZÿÈ€Óä»ÔédZ*Â%«¬yÄ73ßI(*¾>ˆAá˜I:& g𨶲ç¼$r^âOÂNüæÆ²em«"Íò†àâÉKftÂX?šî\*…¢‹auð†I¶õÞ­#㘷ᇊ5 vä¨Ö0Ÿ¯`]†1,ÁKÏÜ{'‘z& ¼Áùÿºã1ÐP•f(\²wkÜ)‚ç²Æ£¥:ø.Pñ³¤qXz4 hd%B¾ …È)¦Š(H»·ô)CÄì´ÍÜr óœ5]‘÷pºRV,öü ·iÄ1¢®ï;(30E:xÓ‘£nœƒ˜i"½¦ÛÅ>PRÅ3ñv_°P5AI d«6Ø õÕ‚©§GƒŸ,gwE·`ø „ÖẤ–‡>%L|ªéÀ×$ ˆÉI2—:›åCÅ’¶mñPº|¡ægcÏYÑ,¤òÿ…ú™gÀ1ó#äpw½ï4”+ȶpGdq]öRUR¹öÇŠ%XË’¸ÒF°†"&!{=½eühóf’6㈙¿CÇÔÔWdJ@Ñp’eš\S%ú{0L™xÛ?l¯¨’ï;’Š[KEn/ðtÍÑù$P²\ÁŸI —~̘s×9ÖV›ºSÚ%ËWÞw±¿b‡ZBŠYÖ<¦Œ$i‹Õ¿(ÿQóê_"Õ¿»¾RóürY‡ÿµI¥PLu¦fa’„ÿ %T+Äæ‘J®\" ÝQf’IæMqfƱy]–RZ]øç’*Qs¿¾fªÆ‹FU¥³d-¯ÏiSÔ}Ë2œ]!“>õ%8lèE‰š„Žó¾ÁáÔ™°Ø ÙGÉ€‡Ýä³z2ï0sÄâ0x*鈊„ž4ü’ù!yØ&©r$G²V&{×D2¿Ð™–’ä Î8^QE¾ëþ?™U,¹‡ ¬|æD¦oùd~"W‡}kvÀÕíáK'ÉYÙò” æÏÿ9i°|5ËB ˆðíä{̽o—[Ï«_üû Æ$³õVX}YH »Üð@€ë \ù€¶¸0eÝÚ—úÏгÜÓÿbMñ»¯J#Ü-8 #!¸K”‘¿SþÙô'"ÑûšÜÞ‡™Ìõ`âE^Ùð7_,¦¬”ûgó?ë*. endstream endobj 61 0 obj << /Length 1199 /Filter /FlateDecode >> stream xÚ…VKsÛ6¾ûWèVp&‚ˆ¾9©ºÓÄn¬ÌtÆñ!‰5_A+î¡ýëÝ([¯L"—‹Å¾ðí½ŸŸÍ®²INó„'“ùrÂdFSÆ'‰J)j2/&÷d¾6ÑT*NþÊÊ¡ÈHgÛhªò§Y¸°¸nkÓé• ëe=Ì]]ï1•©šÄÁïÚ¹î|6ëõ³n½¦MÛ¬š¶v5÷蹟¡—É”)E%ËA`4WcZ>›Y³[ƒ`Td|„FÓœI2¦Œ¬#F 62÷‰Â;&:¼ óñŒ˜ªíjÓ èÂB­ËªlVá£*ûQ­Ý©:sNcÁêD»5†Ò8PšÜ/ MkÝÌ0NÙ,Û™¯u ÕÌDBe–îÄŠ\EéʶÑU4YB–F»Áš¿RâÖ¼—¾ÅLº`RBͰԆ/ö§Ñ¾%ô£0㙌!÷o—`+i;ok¬ÆøA§­AA]m°±/}ÐmB×¢w£‹eXY´ƒí ÛÌDTÈ„cÕñd*8Íe‚1KcM³0ýqƒPÐmF3΂ù={À†Æä¢)¬ÙNN>µÖµÍ9€$9¹õyºöd=è@þ† ÔÝ-lÙ¹þÝ (p@.ÏŪMCã¶9Mód¿“Ö•‹Êô3&ËNÀ<Áøcº)NEϨ‚îìzc7æ‘>Û˜ê Šˆæ…„ýŽüT ØäM«ŸºzÖ»a¹ÜÄÀÙ~ôm Û‡þP§-]ý}½±¢ð{CoisÀ’g|ÏwM÷3F>Zx§äßHÁsðGó¨øZLŒÃ7 lEát%ËðpÓp¸`†ÁÖ>… ¿#öO)ƒ‰UìXl¬!O¡#Ó½GpSOWR&ÓÃŽÄ9M¤;2z»cG®///¡2.È+(Jœ°8”My3¨:áÖ*ÚÁrÙÚ \7(2R#=ŽC‹æQ&ˆ =jÚª]½ FTJÆF?VÐt~@ 7;T€ü)RHð¥w¦FYBd?IÆ.õ„åo±Šooî®ÿ½·¬MU…ˆu¯ûꀓ]iz´É$) €ÈL;  ÑŸ!rÅ:;èO$,¥›Þù±alïû€ OVÏÜx@;^¯^Ú¶FI›ŽªùV¸¼ƒüRÙºÚž@¿—×+‡=—ý+e~´íÐÂ` ðÈ!¸ÙlhÛ™f…»ü\kŸÂ ò`IJEÊðÅáÖe~€/ù0& w„“÷üüVp9„öœЦé+ â• Ä? ã €‡>;;@žïüù‘„Ü¥Å-€`Cã†=®E Êùk-7ƒëʹŠÒ^k ¯ãPЦ¦4;è—çñ²×Î1ù€8Œ¼™G‘ ¸N¾—5š u°úrûé<ØÁèîžüÐàw@š˜"h~Á 5ážòSú)Eüß0\·•ýápº±›Þ7žÂoe]žd=•S‘œBœíjµZlŠSˆ“Ìßûˆ¯I„&€S35^ÌŒãâÙåüì?ß6Âq endstream endobj 84 0 obj << /Length1 2125 /Length2 15160 /Length3 0 /Length 16432 /Filter /FlateDecode >> stream xÚ÷tÜk÷ 'Æl&¶Ælì¤1'¶m4¶Û¶mÛjÔØNÞœó çùßZï»f­™¹¶¯}ï}ÿfH åi ­õ¢ÖV´Œt \!iÁïŒLf:&XRR%S àä°¤*@;{Sk+®XÙõ>dÂz†ÒÖV G #3€‘‹‘‹ÀÄÀÀùCk;.€°ž“©!@š am´‡%²¶qµ356qøÈóŸ¯ J#'';ÍßîK ©ž@ZÏÁhù‘Ñ@Ï hm` tpýŸÜ&6\ôôÎÎÎtz–ötÖvƼ”4gS€Ðhç4üE £g ü75:XR€’‰©ý¿ŠÖFÎzv@À‡ÀÂÔheÿáâhe´|d(ŠKdm€Vÿ2–ú— àßÍ0Ò1þ7Ü¿½ÿ djõ·³žµ¥ž•«©•1ÀÈÔ•¢spq èYþe¨gaoýá¯ç¤gj¡§ÿaðwézQy€ÞÃó³7°3µq°§³7µø‹#ý_a>Ú,be(dmi ´r°‡ý«>aS; ÁGß]éÿ}¸æVÖÎVîÿAF¦V†FÑ0t´¡W¶2µuŠ ÿÛæCûGf t°200°³q€¶ ‹ ý_ ”\m€+ÿpðt·±¶}Ðzš?>`Ýíõœ€;G §û?ÿ‹`†¦} ±©ìŸèb Ñ¿ðÇùÛ™º4>ÆÀð×ë¿ß´>&ÌÐÚÊÂõùßGL/£.!,%HýoÊÿU Z»ÜiY™´L¬ŒFFfN;+ÀóãÈé™þ»†?¾âVFÖΕûѧÿ”ìôï ø÷‚Pþ7–ŒõÇä]“•Áàãñÿó¸ÿíòÿoÊÿŠòÿ:èÿ·"QG ‹¿õÿ2øÿÑëYšZ¸þÛâcr>¶@Úúc¬þ¯©*ð_«+hmaøuâz» `elñß6šÚ‹šº åL Lþ5.ÿ’+ÿµh¦V@9k{Ó¿®-#ÃÿÑ}l—ùÇõaÿ1“«€Ëó¿)E¬ ¬ ÿÚ2&V6€žž+,ÃÇ(1±²Ü?ÖÑèò÷è鬬>\ä<FÖv°(+€^à/Ñ¿€^ðbÐ ýAzá?ˆ@/ò_ÄΠýƒ˜ôâÐGÉ?è#ƒÔô‘Aúúˆ)û_ÄñSîbÐËÿALz…?è#ŸâôSõ¿ˆóéýAôÿ |ÿE¬:k‹ƒøä¯ó 7üü¨øÇþƒÉ¿FáÁGYF Ë22ýãðQ¦‘©Ó?"üeníh÷&Æÿ€Lþ?:iúøAÍüð£~‹Àr– ã•0û¸ƒè­ÿ Y>l?žRÿPTfóGýÁÔæcU­ÿÑ‹¿Èý£pÆÒìÿû €²~˜ÛÜh>bþéÜǽ@ï`büGo>êup¶þ‡Ã[ÇÀ¶Nÿ€ œÿ@¦ï$cúïúøÁÎíoø?«dàhg÷ñ@ùû²ûسÿ࿟^@  ÐvyÁÚàk€YM@ÛC•®3íÞÏ,éžj2%­û²]»ã"TeåO¿M»;„áäµ]Š[þ‚W÷ãæ:¨à–8ùÖg…é½VØ¥)ŒÉ¼cÚ~|1—Úþ’Õ± …=ùýJ6I¸—’ÚåpMßÂ9Òlýôy,"HZ|h*” ¤¹Û»Y”ÌÉw‰jXÏ“æ|wõ-¦ÈÇy·õ2%&û.llu,|°[”±i2wÁÃD ÌE÷¢‚(‰ °#|í…FÞv$=[–jÂÎeî’ÑÉíQ¬#_¡¤Ýé (ùRÁá# ÅÌ,”¬Zö™WF\X{ùŽƒW ·°ò¹Ÿvþ|æ§rLÁ)½±_n)ø ;ƒÙ–°sú9½fÈëbß½ùc–˜ô³4ºÝõ\N;>±?\zNNŠYAghÜ(©ò*Mà ë0šf~…Ô=ÍP¨@y7çÅ-Ž˜þ$i6V½)Ñ醸Þ+“qlàÏ·¢Í½ÿÈÿikÑViÏ1`ɰD8™jÆ%Ñm>*ùJ̤˜S¥ÜŸ.¨Â7V& êgPÃ^Y¤§——’CŽÓl|Sx/‡Ï5Q7]<óîȰRÐ0ÖcZ¼dê,ð›¶ói¤ŠÒI ±°ð9cz)³j\nWÝØÔu§ÛbÅ>w²¶ôð Q=o€v™Œß zF"üŽ?qo£ºY÷IÎp=u²ò›såûå.ìKIô¯Þ©ÍmU:¡| •Ís™ý}¼¬öž&æÏˆs|W:ÈöÝÅÒAr÷%p‘®FŠ®EÛ ú[ŸÇ{u9ñm"îäv†¢«dí(¥xMŠ#çýf†„'–³[ºåæÂ´ =±› ººæ`ÑM¸)S¯~a.;ðºÛý–ïŒéï¶'Ïõi~ª•qa{œ.~ÝÀ¥¥#× +©‡"Õ…[;”m)•Uru.µt–Úíå³X{6(e—·ZY\(×b%Ú°A(† Bq6»¸Ê¼ï+ÄÂ^–ê{sš‚BýOÎ>uõ4|KLë€àêhßa?qMË  /«”øß{§ðwYØ šØ¯FRðivàK à m¾²}ï^Ð+ëã§‘iå]H `_A(FÈWö |“ºªý^èó T“ü…“_±‹8@ýGž(4‘ŠZ&PsÀû–g:S_Hl.P㧈ð×®9kÃ<ìêWžÅ?×¢µ¨Ý€X*P)#08–õ´T›»][,h$Ëñ*Âê´•‰Ý)sª+’‰6õ•ðg9M Ù^JŽ÷ù ²ÇµŒè1e„¾x^zidì,yþáGk3ýP4<-Ô£%*¢˜ûÌýÌU£Øƒæýp&':§­èVÐÑ›z©{õ~w2]ƒs\Ù…)$㙆\S¦è )f¯BÏÒL¿tÇXí*¤¢®¹r±~Õæ =m•wŒ{m½d¡,JëÂm… qêðÊý®ô„Í+¾+ç…XÚOFMhH†Úƒf‰kÃçp~R†¦–À:…xÄ6ÿŒ ÏÍKóÍ«B»tT™·Òë3ʆ%8'f¢X&-šNõä\0dÓC[´eªéþãD:#ˆ]uBñÉM?¯zéÙØßdä8ÇŽœ:¨åa4$±%PXîf:µè[ nLü#g‰H—ÎwŠ×è ™‡d( NœÂLCÖîœï,%­¬¨„Qðß…Ò «D¾HÜE–v4"k.Íi}ÏFÃjIüRW‘ö²lAÕ47†Ë¥†WOË‹g3Ì~—Ð$Õò\7¸¤ž1(äU;hqûx[ŠÒj˜Â˜7ÎEïû0&¤A„m_óŒÈF”Ÿ ¾€âdVqt$ÈGX,‹UÔ7ì °ƒ~%øêjK½½_z‰0#Q—à-p  ³ïtoFo75¿òÓ__™’¥ÊhZÖæ»Î/k¢F”‚: ·I–Іsr;Áå3‹œj¼³‰~§÷·GfSÏ¿z ¤|Ë·ûôüÙ0 ‘,wÔÀ>7zÕÇ#DZ˜Vß"=qˆýú8K“¸ Ñy[“φmZc!4]ú‚ƒ#žrÎ=þI;YÉÞ*À4Œ3-5K-ÉF>ïLs^2q_’JõS›HH¥¸Î0­D{ü œ>þDnpaÔE±IpbtMXT¯‹ÌiqΆÍn”=XAz³˜”ϲl¾ ïuæ¬uÄÍìqVQ:NÈŠÄ× jMKØ < ìg6¬‘slÔÈK_N"Hx€®ðL·FûàЄÍÙ]É€›g£ÂÉ3m ID(z†*ÔÃ^`1éÄHr€ú¦œ‘з<¢0NÑê1¯׋8Â[ç3U~F½¦é!ú£Ä¸éÏÛÑdK €d-À¨=ë‡+•â#(¢ç]ˆ©˜ ›³^#(æ6‰eM7²›º<®¶ÔüƒÌoÛÔ;ÂU*öaG)Ù¶ }ïq¯³u ˜W!?q>nÖË|8%x7ûºSOG)ÝDé%Ÿ’"ö ÉŽY8°³ûƒÖ«_A뮲€0÷««è<,']Ê/=tÂAxxÌÙËû ’$ Øh¹‡0)mfïšÔÄ™uûÞtaÌÖ­Y…÷¸ü%„Ÿ1ƒj¨R¦“RßWaMéºÏŠœß–.ä#ÚæÓíŒnÄ µ_4YYƒˆw—Ð5Õ&ë(Ñ0$)ækãÕyY5§”Kã|¦á Ëe×C0$yKZO€Óv WEñ]rìôîìÃ*„¾.ci’—t§\æ Tn3ämµÆþ^QO³YNÀ1  "ñËÅJ½ëGy”ÝÛ@±uJF JÈ}ÝtÓG,ÈT2˜¹÷|÷=¥$Å”Z’4’eBZ¯ðÝÙPÈÌÕ)GWÒÖßÛí¼3ïáJ›]ÕÌ-0x[È·j¾ÎÂopNûÑÆS>v>;VÃv9R£YÔÞþb©?jr+6²ŽÃxP’€Ôà‚(sšÀy ÜçS ‘y“F§jA¨’0=?“2º6£/äƒË‹·FžÓÑ'ÌZCØüí uëæ§ÙŽ™Q¶¯@ŸbÇ’w|xŒ!ýT”ˆ1’¶(êì=td%Ôºò®Sï’ÿb3¹¸ØP`WÉ7$­0Œ4!GN †Û;i€þ¹$lížYÌ3_ û€ÓpEµªÏ†4µ¥dc@óÀ  Ñ=³Wn_å×ç»DözöîržQkÚRŸÐý-«D< Á<~«}Ðw6†£“.4QΪL¥x÷hŠ²ä ’ÍÀho®Ñ“Nœû÷Û(éw³®¨¢Lø%ÜÒhÑO˜*ï+?Äv†œý ùt¹¶Ž¹$€6 c ÃHÞ;œi¥ áY£ëÜj÷VCI å7ƒŸ"¡Ñf·:¶ü9~“·e¯u牃rë6ŸEÒòÝj}¥½>Æ€óT$ù¢ç¿m ¿Ø`îH~üZ™äê "ú;9`æ·Žé Zs\Ÿ§8ÕF¦ Ð$¯+_ª¬Î0(DKÊ ×NBµ¾ÈA–ŠVcÃŒÊÅ£>?Q°¤µ(ƒ¡~´NË öûX憋˜öX™y,…ûAï8×,tJýÛ†-P¢qI'aÔÀwž½:óeÌdøÞže"Ç;ôi@§Þ>-c@±3ýŸFÏ¡ÈÕ´úrzÌî­™´îJ”ûÅ9?3#Œ,GÚsiµhˆ9SØ|ÈD7B3ÓÎÑwóòë½i³®NÇY:¬µ¨ÎtŠù­LÚ\Ø•nΓÓ"ú<%SjÂjJì/âS¶Çi÷·sè—ÒƒŠMQ§[åU|¸N‹3XR ãº9äÓ@36¯|!¸9ô5¢ØXms ¡šsW¤–5R¼7Ê)R«ÕyÑŸ²ô hÒÈ)®åÞÃhs^×ê¶í§Å+¦â9¾$™B£JiT.þ%ýZÏ%‰”7¦™  ,êi‰* sZ–{!¾*³ 1+²Ïq¾>·m”Æ ¦oͰW¤´Ÿ$”²4Œª”¾³ÏÑÓác„ùB+ƒÿ ¹7a?çÎa™üãvÈɵ;V»möfiçt›&wIŒÀ›­ïãrÕº«sßZ0*ÕÛÔ— çZTç_u3ÉŠ4­ÀOïnt,/téYj8Ò=´xçµ´kW{DX ÆÒúš9}Ûn$—kÝxêÓ)=K­MN“ŒxƦC¿ªên²4>|>L2ú{Ìì VÑsæíT"Ø nÚ>(t¾áWèö‚&LÑF­—[š”»­€&ˆÂŒ e—›Œ¢„Ôº+ž™vF_ü`,~=hôÞÊ¥)¯)Iu0ô'9ˆ(?H 9 / ^/βÞü §îíw"hˆÊöàטּ<&`23~z2ÈK5ŤŒ; NŒkÆN|>,lµì¾ßîb0Ž ß®ëen^»ÍrvdYð‹ÚÑ–;ô×ß÷òš#@²E¯\¯ök÷n/ÉÎݯå5¨ÕC%bsl›`©›·ùáÎw-­h6ͤ­DŒÄá-áŠÄð+•ÁËëÔ+9zRd1‹rßÓ%‘C¹pµúò Kú1eø|$ÐCÏÈèî̻ܹå†z’øöHèõsvI ê|ƒ¶­ÚÁ©üw¯R³9ÑÐ8B Ödu”Ò§26ÀQAód´É Å=n¨ßŠë‰à¸à@£ 1¡.ÊK{Ø*”oe‰DŸ½ñ§.®ŽyD£z¹²¦5ˆ]Ð@>ï¾Â¥Üª»»ûEôÞlÐ`ÁŸrŒ’7¨ÃÔuëè‘"xµzGëïJªÎ•+g¹]Þå„ȤåÜш¦€g¦0Ÿ,x^Ê· vsƒº ¨é-³¦½ÐÀÜïi÷³à:d ~ª¢£ª´ÚEM¡†`†óy÷¨Ðú€j’|-(sÀSRè"E“æè>ñnš’Ê´Ws®#f{ðv×+Ö4ûÚHb•l8’I>>.)ŸHn·¯7ûånMGè3&(ã‚!"âËÈ‹žˆâ Qg·Æïá2OvvÒ¥–”sz&ñóòòBg0}î1Á”;Á¯j;1p]¢îK%4èw?÷ó9aQÉixý-ŽñrÕmmù«t1B°Ð„ªÎhÙ°W<®”±k4˜‹ÝšÆööÝotjñB?†Û"½M£‹â6yM¤l70ú'Y$!ƒÃeY~4²ÑÅíüÜ5{d¤Å´Uª´óÞwîŸpÃÙMÎXLÄ­#\£SmlÙ‹,ß«òçÌí.½Ä@D"ó-oæ.SÊC*õiz4R]Jü|·‡Õù“·ìð¤0»ÈŸ˜G¹tóØ…¢¼¾Sëì'w(‹ýPésÐ Þ0Dè¨#„Y`ðÙ¡òuÜ„Xu»Ñÿ…Yå—\…{\j§6}ZP#Z•Ù@z=m r5„£üÌdü[ô’lÇÁõÓÖœêSµö ÖC4(¢›Xåé ÀT&kf¢ôõÕÕ¨]Gñh™÷™ÎX÷GMìöuèX0áËËá÷³èz´ÛÈæï"ž Õ?O÷ª(­:‡™òŨl¯¦ÖE¾±¢ÜµÑ8Ìs)/ê`oë;2¤òÚÎXëþa½îid"åá\9æ<¤#ÜËT<Á¢êFqüØL¯ù•´J#ÉbSs—|@Ô™[·e}n–ùi¹ÖËòÔV!—6ß»q×®õ[õ±}âJÈÊ‹zá^Y ¸Ö[·f7aº å ×#ÍHãz‰ÅZóªïˆÆf°Ûb?=²ðÜ_íµ°5‘æÐp:Xóº“Í:"ù´rn©ë°G¤‡Dl^yѨ®Ð•߇ý»FþN®Uû )œ¤÷Ú¨KòŽ£«ž ñ¥¼&Ç”Õ#I¢†N_OyË›sPˆ²F·´áÁé±|GÊÛ†Q]ÔT½3×ú:ñ("™Ö¡tË×4ªF¶˜Û—méž×g1Ãæ[)¼B6ÂÒ/’6[14©»V6Ý_¤¼T…©=ìG UÅØ*j\¡ôKÑ ¾³@HŠå×÷±O0ÏÓÚa #ǰY!L$J\/£àB&l ¥ó–œ]³öS/˜úšë¬ïrÝvŒáOøУJo™Ð3Ò9€›$²ÕÆèpŽ&„é¤Ë&=A­Ív¿4yo’ÑßAX§è-¾%¥ÔT€é÷ÄäêGk U2WIW þCK¿ÂÉîkû6kÈMõN‹[T4nˑ쯟õÍ–ÈmSÇÌ™¶Ô²øLpE7á)‹7”ÇiZhÏ!ö‰a¬Éà H”Rú¾©ÒÚèM>ã±½z¿0:À sû<é÷W¿cB ;?ZìÒ †TxBÀQÄ7(:9ì'\õk«X–êí‘VœkU6ÓÒjÉ¡-œ7D#¨rÚ÷jYJe‘½–Õ‚äOûüÖÍÕÎdW&O ± óõº4ñffü=º={A¦àHöµû}ßcšà²Ð‘ Ï-J½œD@Æ·pÆ ÛN=ú˜ôfù]]å“ÖZX¾_6É÷,ÒDé0£ MúT¬ØrªZ…Hï@üƒdÄ¢¦»0Úœi Üqá ÎÓP@êlÚB‹ÆvÁlßiN¨ç¼¿‹¡¢™l¶¿hab\c™-ê T&׬LíÍýßX QËùünÊu­3rQ¦c¤´ç!)Ÿƒàdý§–õ*>IìBÉ_‹ÛkXÜÜþp÷ûAàö2¹áÒ·,W&«Ž±+#¢†éøhŒ)ð¾å¤…7€Ž¯Æët~AÄÓ\VÕö5à§”€÷c%Ã¥a;”‘ßz›/–‘UM"î =¶©ÊÌY–ÚJžäåŒÎbƒ[Wþ°ÀL.V¬Û¼Å®ù«ØPËHve¨÷—¥k™–!Ø»ôì6û·‡kld«õ_gÇ6…¯Ý<¥Äóâ¸o;Gàa ém³§JÒ.ûo0 }™&‘ÑdÓófÔ#Ú>®mÿ& ¡σ3ì½Â§ŠàUßæ"ÜOFý/u~M{eÉч_‰„6ˆ“âÛÃë\Òì¶hš~¦È[ß¶ý@‹` b6wcaWW+?‘ùá˜vüjÖg7w¼Ë£Ô€7I( Vo¦,MÕ~ ì^ð[ÂÍ¥9Ò±/ëRh ;é R˜Ó ‹Åc“ó#mïS¡ÖÁ¡øp`UËÒŠøHéÁÉkd¨iÈíò¹ž©P,øý[ÒI¤;³mõ½¶E¹ï„z`¤¿H¡i"7[÷Šg´©SUVÞW½ÊÔdͲ¤/MT¿fÎÀ=ý|Ãã{ðkeÉ/ ´Þ‡W‹Óø¾TÙ&mvcо§aj‰ýöEÜP˜o TüÅÁ\‚Špµ&2{ùê(ÞYêTÓºê3ÞØÏÀ¨†9º++ûxÌoT1î掴àQ§ËÞ` ÜÃÎøÕ\ÿ=²Ô¦·,‹æ÷ñ±¼ŽR÷‘ìêE¶8_&m¼[ÜrP’îa)2—Öž°d†ÒPåç UeZ5®£lù²7 ü)Óõåùß~ Ûr¯®eÉÖNìÎh±Öo¤‹Š:æ±HföiÍçб¥ò~ªŠÂù?΀ôéù\nM÷z£#øö_6ö3WÓ}´Ú.²e^?%X3®¬\”= W¢*¸æ<±¢Ž= û:ì{Oû4ë9Þ¤WÝΪë¡Ê/rûV<ô²'ë,ÿœÁk(ÒG±*c,ªL?~ÒøùfŒ[DÍ Õƒ¥T :jït6±<}03,'õ"”c˜¿IðŒÐ•A8姈7eRe=Þùø4 ýr…>_w¥xA^ñÅ.Ã;A#n2óöS²ˆr"d˜›W¾4­FãÛénÞ£¿dùÝY˜:ñ'Fg/2šÕKˆûÏ+ýE©¯,ö£b5¦wn#Ñ·r5~š«§ß%ÕêýPm¯!¤z:D Vm.KŸ£Að£n`„iб a%ÀeBu„“”!ÔEŒv” Lå0زy£=ÛHÈ•/xÓXbûB¡8™npZ,¾ÅÜe ËWñ#|º¨™+c±bŸ>‘Q‰¢"þdB¼~²àÆJÐð;1†¬¶ßçñIRÊPŒ€3·ÑLu@ÔK©}4úÈ Ú:qÓòº/¶Dݯ eàêQüv("‰&~Ð-éSQóU«bSæPÇýëgž¯#ÆZNi*½‹·9Nºñég¼+©ò!%p• TW‡EÛ*¿$å7w6'flqsOèÔXÏ|À)0²Y#`öm™4à †#uÁª|¡2Ë­ãf´¥ð•!ΰÃw™à[(ôcùm`Þm±‘æX<ýKóÏ¡~Å›™à­Ù>µF½twôz°™ÊÞ|‰×®˜páòF~Ó£{âO@yâ_`âdËþärÉsh¹FÓ‡š1Qa—«$¬G•=è€A4o¶lÍÀK«ž‘=‹«šê=9P… á_Oç¨þí(9ΗËqQìÌÖŠŸ» sÝ$óGøe¦;kð±71ÿ÷ùäOò&÷ºSòÞD›×vR–ý? Ä»µ2Uú%‚`™À#-® -Ñ=@,‘¢¥Ôþ°mTçXß[.—§&ˆlž˜Fþœšu~öÔ iʶˆüw¥-²( ŒàDÏÂ(óOuõŸ0>ˆf‹~ßYÒKc¨<@S ˆ¿Õ]ÂÁ|}l7<»$(–GlËsö•ï™×DMGƒMù!îë…ü=H‰Aåì’Á†¥HpšHìBAKžÎâ@ÙìV®ÓVuD¢ ŽÜNâMÀ*ŽÄ¡/YpÂås °8âfW¾DÐYÓgé¹u™]ÌÿKÆüöðºÅ”ö™ ê3ROÚY¢ÈœuðüPI·ªKN¨¿14¨kàÖ.…Ø#œ)w¼`ö€ìVÀÜæPDý)s¬mr®´R­!e.xG4½ËçŠ|×uÂöÀ!^ünÅ ýIÓ<þœ:¹t–Ì!ÅÀ¿lÉ”¶)Ó‡KL‡_õݤ%gcï~Yó“•³ƒé5fI¯ŸL2šÕªRœJ åuKÃ4pËíÀÍ3 s76¾)J%òŽ’9g˜Ž…m[éžÚ~UÖhõëVAÒ&冿cÔýb2+¯OVÔ„hÛʇ½#bïã0ܪð2˜s_Ð=Ã*¦¡£ÒçÅï—o?óRÃú¢´z) 4€VjäPª*¾šƒ‡~ÌÌ#üµ4yDŸÀ¦FA~L¾:ÕÅ Á2¥ÈE ‡uJÂÅa›D%ý^¥ôú"uRìT-¾‰¿¾ Nƒ]Ï#ó^[Øu-<ц!•ÕÆÍEhè8 iì€B‹Kq–Ýíö@ÎrϰSlg&Ç·²OÍ 3<ÒÐ÷¤¯0W"I4*?)ï¿¢]? ºâÄÞ·G‘¨èÝî’¢µW`®í¿_3»ì=Q›Ôø3œ,JÀ,K¾AoòxŸF¯O™¦3*ô1(l=Ö¸èÔë^ Žï:åñ÷ÜâÈ糘¡S4Jñ´íè”ЈHhë»–„]‰!¤Y¾©9IJé NÄY¤ bXù>qªœjãòD‘!´7çñƒ›!‚ ú[°ëHîþ9ù²š©nr¡\¾V+6 Å$G½Ò‹èÇFÄaÈ’÷q‘´¼dšÛÒ.Æöî?Ë!Ìܸ;FîÀË¿mÜÛS’«‡àXb¹5ƒˆi¯êLi~Iœ›Jtj'(ÆÖfp}º<Õ@Nʼ’£:žXé£+SýÚ*ôšbE´á‚°ƒ·èË0&aÃöºO¶µÝúí¤ö¬ÑHkö’ö˜!®x]ÙÑ~ègbÜí´^i([7´ezòãݾm³<­Òrnà~`µ¹d?ï\Œ™B1DõãyÚâ¼Gu¨_OµöA±¶·‚ÇþûÙÎZE÷æÄ–_ŒJ¥ í댱w–êê”!Bõ­ÆQÂDr'Ï $½”ã[îLÅod”¥[*._ÇRJ÷0³R¦{Zj­Ÿ‚нlGš÷¡9SË,P©Oõï+ûþ(7ø“fþ9IEÒô8[< Æ%¯ 4Û1y0’%:ë¹™ ÝŸÛÝ©„ ²\dÂÍ+Ò”èg~YÒØf’øµî. ókò0À¤:’„§Db v–Œ´k7nÁp¤IFQÉPX@ 4QÄ—tÛI¥×5ü,Ûe…bØ`¿Œ˜n•¡ÔF£\Öv ®²eZÙê |Fôx ÷oÛ>÷´¾Q´ø|13=`ðÆ™Ã[ÁÆidB<=’MßLQ›zQe‰óI¹w[¢›£÷à¾6·õä¡ ½h¬~¢ý)„‚À;øíÌw8Ös²×óFŠ9ç4¥Íõ€ÿVÞJ/§ÌÏÜÝÏå©éýó%ýq‚¤3ÄŒ%×Ãä]!]g̰r~ÍçôÐŒ¥µH8|òtèãohQ®jÛÒ/$-?¡Á/W[ÙfÝRÑ ƒcÕ›äö>£®5Iï ©þVïmŸœn‡D&¤Éµ†Ù=õÝú¶#!IWúø½FËšƒý•¹ù1v8ßùm2.ð™¾Gf¾Î0*Ä•; D§r:Òšù†=à ?ØOó[Ff]µ+& ܱżðÕd>±;½^5UOG|oÖHWoÚˆõÄ\hOŽÕ³½îÒƒäHt¨8à¢/¸ƒÅµqe3%×:aÈfš/Xϰp^X c eˆ€Ö9TRÕrßÕæ®bÕGàÃ1± öL8Ó£d WvíKîc+íÀ~–`ÄMhQÞ^MºÙàannQߨ‹Ó?šŒ}ÅàýyËä¬ ÄAOšå‡ä~t:®·Ð?¹3ÜÓR‹Jr ë•ÃÓ°û\_ñ0½U}ã$¥'Œ@>^ÿµ˜ ½)dkÛ³¤9!$ì,žJ’Å<à!f&㔽K‘ÿ $åWþˆ=ÂÆ x(ûÍXZÀ%ùmöò[y5ÉúþH–ðMè³±-!ô|hÊá°ìÇ/ÿZ'ÿ äF‡×:Æù¥É¯ß{ª°çvO159#ñª6G€t(kÝ‘:Ô%€ÛòåJû©Ö¥ Ú šU²"óÀ ô‰%äÒÒ¨nŸëg:ñ-¯Ú£ —óº«êÏÝIµÏ0=ÎçÚÕ‘åææÈ8¡ŠH¾¤¥P~þ¤×0[tº0s{:©2aq»`¡çÌ*/³AŽT.t‡íRúÍ)8ÿB”r%¯ÇQ;+¬:ÃÜûÊ ç¦"ɓ֡ˆ·ÐÚ‡ޝ 7^„IPºW(]98É áò¸×]Ë»f{¥d»²1T²¾iSðÂr®å .)ürÜn3èG>ùÝLÙ/ƒ1×|ox2óHÛ.ÉŸ-Ú5X‘è»)ÊÙ ^.£æS€(~˜^}|¯®UDÄlõtÙb÷ÙŇï¤<¢„Cr Ûðp¯ó«ïx:è0U_+:Ç´®Ò}1ÂNÅ€PèÇý?ÝW;¹HÜL¨éôbf¯è˜u84o…¢&:@¯ÞJÅç–Æ—Û öaý>+˜{Û^iœ.S-ÍÙ2Ðxhs1Ü(£ø_ûÒ©ŒÀ(›6gÒE,mÙà°eЧ•½ÙToñmÙèÿòxB‡];Hu•q*g­m{Ï¥TÜsÌH÷·DzJ€LðSX/Ô¥–¤þœÉ¬~ß æ‰h@CAG5±WÖŠã®'†S4ØYX¨”Åu´\ep"Ä'Sÿr&°•’!´„ßœ¸‡ö’ª<Ó…•Sz‹¿˃XA<$~1[{Óã~Q3È®¡cŒReŽpüAY”TÆ¿ý'’’ëBˆÁð0¸CØ!ê«ìªrìÉ™.vÛI¥L€NÌYí¾pGkJ}I^>ÁŒ ºiûkL¥âçZgp¿AF(ˆÒ7W‚mÃoœB­Z]çÞHù#PvÐíÖ¤ÊI6q™µŽYç8ÂãRó0¾´ÔÇõZ`þAVóP°:Î?º¯©F„¦¿Hð,š¢"‚& ÷q¼£Ám­$»7®ºãŠÑÖ”œuG5P&m<_T0#]M+Mª6ù戊£¤Ä½µÙJ¼V›ˆÄtHUÃ#C–ä³1Ò{i¢úæaOÓ@võ¹ /rŽñ¦º\”\v$·Šú9 õ`Ò…(½yIð’:3 ²ì› <¹;M$I?5iÙMT&¼#¶IcĬf40 ÙÉØ ¡Rüüó}:Â^3Êñ©>çêv¼Y»j¦ê@ý8OÝΖº™ç9æ”o‰ü÷à˜ºøétLÃJ·uEÚÒ„9•Î`ñë{€ØiQí6k‰hQdÈø”AÏb\’¤¯¸›.Ü…Ìö€˜'}yé`¡O½Ôd O Œö~;žW0Ã¥yîî—èÚé”dùEY¨«ú/ášÍº!åÜêÔì'AD!FíïšÑÉÕÊd¡á ^C*0yÙˆ¾³Ë9ĬÚñ•H%ÈÈuEù5#Fø¯v\áìvcñ€Šû?|¾aýq9vr̵îÎr+€l&Ý‹í.£¦?Gr†´ÿÈË sÊ”ÀTHt—ºŒp˜‡qƒuОvuäŽø»Q׋È%ÅJ]n ,© Iá‰xUV¶~~IfG@œ—»¹²4»‘>ˆSª¤JQíù»\€N‚ñ^‚áa–Ô»zGJ €ýéy6•Â%g…\î—e¤¢îQ¦¹¾#X)ƒ… ø%—rR˜®î/‹ü÷;•#YæpYꜫ؉¤½›‚ØŽ1ç¡D¹AÎð\¯VYJ«56i)( “¢¥'Lãw°î.ÑɯøHÁ¢Yû¿æsšk¤åá|îÜcOí²^DH’“Å ã[©‡¿0tY!#NÚñ驪ÝãÂÞLÃc@~™qÓ¼ÌFêãˆõ U²t1dŽk[çYûÖ,Pãñ-‰¤(V8T•"ÑéDèŸe⥟]Eá M’dTœ½aÉx]|1¶ÒcÅëj«ñLŸút@·sm^½QÖ„õ2ððkìšÖ@ª­[áÀ8ÉþAê¨UoÀB°² 7L]Úl9˜É¢p/¢)JdP„{v6`EÁ”(©oI‰ œFê‡ýyþ{ß$»-“òDo¢g4?r[äo8N„3©ø÷@ÝŠ5féB {•ÁÄö:ù/ÓJY~¹–ûú8vוڑ?Âð’œs¥¸ @9¤aÕIè2ªØ44VÅ‚6f§þìcó…㿉Žò[aûjܹh²À-Ÿ³÷ëžm(ƒ4µ¼†¾j8kÏIhˆÌ¼™¶­M숴Ð/š1˜(³_ •¿ÛÀ³y"øöœéÊݵ2=Ü\Z±/¶0›³ÅúÓ€œÆ½õø‰ç˜ò=ý9zFsȨRÅMôâÛC6¤*‡moÊÜ33¼õöFy×Âf˓ڨºy± “!iÔ®BŠÖû4®>Ox`WàD¥K? ‰S¼iÅêÕÄå®ñ{T”çQ§˜È~ÿ0!05Iï%ühÌ{GŸ…êr¼}Çßc«•õI®DÎý'[õ‰,i†(n#¡ô ßø »“ ïN`Ø WÔ¾*Ñ=™¢'ÁøÖ&Û¬¶ó—8MMú¸˜Ó€Œ$Í®ï+MÍC4ø–\DVœÏ'ÑùB–Y4 kÃVHÁ¤[g¶ÚÊþ›kpf^´‘Ë:sžbÛðgÍÈϨ§p!'«åŒ…›v_*º‹i–¸ô>Wá^|×+­Óчt“2z¹ÒVˆó¾Ë#·a Öq½Bù‹>*Œ·¯âˆ«ïžXõ= +h?õåu/U~î, gÚ4êZ#;àaP3”bÞ²øñœ†i´ç…³}{AS2žŸdßÏÁæ ¾×ÇdQñÅ~7Wol~ÆÃ†x¥ ½$hpó4šò¦LU•édõ¼*™DFŒP”?dlÑ’Œ÷JK*ƒ¤õmú͈85ÞCp¢¡Jï,o¤·.F.tR¹J”~•wˤÒñ[ÜTo-ÓÊ'QFPã%ú_ÍYËÃwYZúßÔ x³Y`å“.â=óoùza¸a Þ¸méXó¬eÕ0ÁÀU6 &Õ•xÈÕ‡ ï#IÉ*š~ή}¢ð)@ñådI›l=Ô‚É_°05B„U¡8ÖßÍîXàÓp€ói ãd(Õ饧ʡ3ôéîtŽõcl†ÄåÕ¡ùPU;Œ¥É:·ù•ó\õÌ)l„¦g°š EÒX_ÚUà»!€iÔï@í£hâÇGß¶ 9óžÒÉù(Úrõ‚! "âB·^£Áδ^Øu²¸÷ë¦ \vçErW{½—ß° ¸aMØýêý–ÁžäpJl5Ád˜<*g|»wÄ?Zµ“:ÚÈëª{T­©nÀQm*êëˆ:xc"2Û”¹Åc·1ÛÈNÑ»7|ZJ"o“ûˆ¼¤¹zKÍÚ›élq¹0¥ 3”vn¤¦lzõI/†Ax ¸&£*ô‹žëM䱜?½9ÚŠàÝ\¡ÿIX6žKsA[CXíóÕ§ù\.]Oÿn”„;$hÁ÷Yò’Ï?"ÍݾfÛ‡òDQеˆÖé,Yt§s°g/ƒ» Ê–µ à\(W€i¿Å`­çß¹À‚UD­“”d\'Õ‹p×»Ûç’ŽOYœ6–Å«C¥ÝÕç¦:Ñ’º0îÊšiãj“T¼¾ÀŒ¥D-›3qu&$ è!lãÿÚ"eJ®7»_çø'-ZÔ%-™Û„V1ï“>á7 ¿]TºcL•ìo¯YI Ë#­yëÀ ÒɲIñv$²#J6Œ×É¢8Õ=ÎF×i^Š#«DŸ‘¨’Uĵã™Q‰§Õ*{ˆ-4ñ%¨þìÏPx„ºÛÿÝo¨8+“JÀÈ#]£-è̾ÊZ@ .µÂ•%+cVoU¬¡ *Ý’Óo.¿Í)¾ l¡dã&·â6°+2#ždò€R >ü§6§“ŽÔ¯± %ùÝûÛ¹&IÞ ÷áŸÝ-´àA) 8x›ôöô+ì6‡¸‹+Œ¸ ‘h³(Ö´þuCëÌw"¯‡·ôÄ×yç!Y} @zfø ¦XL×[öeCCžèKÜ-F|hFÐ/ñZ Ô^ȃXëuX:* –DdÂô_y7ù-ZÌ@ù=â cTƒŠãà+ƒŸ'ÜК‘-ÑÌùºŽ>·»|?Ù§ šHó…Ö3¾‰OXM¬äæŠ?6Fx¶³w˜ó>ÊÞó kÿÖ%‚áîÄAé?sŠcεÓTY_þj‹ÆÍå-_¾é9Ü1˜êùø)A>1m“<ƒ^åTkÏJó(ý]x7^ý²â8؈ò@.mgdEN²C&Y.&ÒB£Ü}É÷}—îå‚ÔT/( )|¡33kº8ÚÓ•³<‘ú³p/ }›É ÖÄÛwÖL5a\‰Fœèß&•°ms®ñôÆœI Û@+p˜qì¾FM}U'jÁ¹”Öåž‚cj:Œù佊Eüz%ÏoK\+½ôrT“XpnŠ£7!ªvjUS¿RÇàWÕ&N„3)ÐóQIóIœ0pÛêæ㫘î¡ìß(nü›ѪjÚÍõ­¦îƒÖëG…jÊÄåÛ€}0Œ°Ž;BŠ“©[Ùò}½dWƸÌÖãÃM¯“AªZö …rŽœ|¼æ)¸QzÓИáÒ¬A?ú½³åÒWÅî#5ªë´Æ?®c—Uœ ºcÂÔÉï~vˆ‡òûÍ^ÓvŽÉ‡ùˆB/äRhÊ=¦ð2í_Z•c`ð3 '6Kç~Ï(o |èaVÁ›çîí1 éié`UI–ì‚ï1|ÓÕ‹»±7,4¢âõ,Û±5Ü"Äú¤Ö;6 TD ×êküâµ4rK¾‘‹ïr~¸Ø~¼§¢õ|É~wj}‡¾ð¥’ÌÑÆO1Èå÷]«Ò”‹ ¹0£â$µ@æ¹]‘Áõ8$¤YFD8-"•GçEòºJû=®‰.{W›Îê‹XÆþssž¯‰.—íôkz/ž Úá1Â5‡Cj•™‰³Öbù°Â#µà`Lfƒ©‹-üLÙ¼+•ôvBÆöÙë<Š’Å3±9ÙÆ,ƒY¹Ÿˆwz!y>ŒÁÌlª‚ú4Fá–_}sê²†Ž”|ÝÆOÓâvW¤ïˆZøM7Ð6ua }¨Á;VD©rS“iÚ}Îw°êé,yqyÔ?n”ùUg™Ì)Ww·ë£áìMø5K“Âp¬}‡&%¦¡êÃJ†¤ ²ên#ï 3ÌZ²{~)`¦O½³ç =þ°Ÿ@Áƒ®ŒYxI® = ¸˜¼£C«ËgpOQùåᡨ)bæoÐTÏŽ.ºª1îJQ´‡%Öt?öUÙÍ…¿EFËþð!–)òè&mVëÚT¬I ü” œ íLÜáqè¤âdšäª£±²RXפ9¤[˪;rGù®bê¼å›Ä†ö%:ö“V j yS𨃙g$S$ÔÉA•{ §À¦lUJz‚¥ë7ø^æDÈcˆ‹ËxªëŠ0 #BøIòcÉ ‰×#¦éæØ'$‡Ý˜ ]Û• ¸®F ´Ê#¬%(¹Cy¿îžl°‹àæA³›iÅe@TV ÍÎ+ñž‰jÈ)½¥ä—ŸL§ï%WMø}¢]«}ÄÎD4JŸØêˆÄO/ŠÃ³pœ¸-êjM–0Á®ô¨}£9÷1Fg³XY^ X°ªçNœ(´¦ÈL6k‹MÁNJ[ÓZŒ2Å}ºÿŸº#¬ endstream endobj 86 0 obj << /Length1 1448 /Length2 6897 /Length3 0 /Length 7874 /Filter /FlateDecode >> stream xÚw4œ]×6Ñ‚D¯ÑF”eFï½E] 3Æ £w¢·Ñ;ÑE'z z¢†D ¢¾Iò¼ïó>ïÿ¯õ}ë^kîsívöÞçÚgÝÃÆ¬­Ç#AZA•‘W>^8@ASÞH  ð‚@üllú0W8ô/1Û(ʆDˆÿ‡ vEËÁ®h;M$ æð ø„ÅùDÄA ?$ö/C$J v‡Aš¼5$êBÀ¦€tòBÁlí\ÑÛük à°æð‰‰‰pÿvÈ9BQ0k0  vµƒ:¢w´ÃzHkÔÕë!8$í\]Ä@^°£ /e+ÍÉ ð€¹Út¡.P”;øU0@ ìýS/@ßæòG®‡´qõ£ ´³†"\Ðn@oÐSÕ|Ì` Bsúõü{eަ‰€{ýmþû|J†54¸þTüo¼<ÒàÃ#$ àáøøÄ„"è…ß?Ãhƒa¥úÛWaƒˆýÉݦeìþ8þNÀ?ci!Ѭ…8þ&¹Hdþáû?Sý·Ëÿá¿¢üo$ÿï„”ÝàðßjŽßúÿG v„Á½þ2@“ÖÍ=šHô þÛÔúghå‘pÈëT]Áè1CØÂÿÝD˜‹2Ì ц¹ZÛýáʹÁ¯ƒÃPm¤ ì×¥àáþK‡,kôÅá‚&äo=7ÿÜR a„ü0~!a…{ „>|èI„@=SäE ]Ñ.tq~$Šà×y €r¿D¿‘˜þ‰€V#1Ðú߈ODýDÇqù( ºþ†ÿÈÖÚ …Bëo6¡Kùþ}7@¡žPk‚¹¤µDˆý›·gÕrt<_F¥&Ù¾¦ròøÌ¡ÚÜ.ˆð^rVe<[BȽ|×M²°¦Äq,û‰é§Ïvs^xK¢Në¥ïÕÓºã_Z fǨú?lËÕö1àÓóèËnøþtö}ä€ÕŒÙ¡Æ–ãì&J¤G~æÑ«âYÛW:?6óEg£JXðªt‚'Ö Æ,¨xŠ-×*sšæ>®+Ãí‡dûžÄSÇ'“dÙn˜Ô^pøíÄ ú˜,ó??Ÿö^,×çwé¤e¥5¡aÀ:&g÷‘ÿš¬Fýѧ¤(N-,ºÈ†Áb¦Qºì,XÃÜ1'YúþÃÊ{šoOƒJ‰×ÆÃâ¬uVÙäß}ƒëe·ÓåÔŠOüä{šOà¢Ó¾ù“Ê;ºxOHº"ªP†êÕ¼éÆDœ¨ò{¿V L_õn¿•M, ZìÊ0áäUÝ} >GŠØÚ‰À±ü¨“*JÈ{çÝÆWËE¦P"¤ÿºr‹óëtŒ8̉Ho5:!ÒåÖ¹{ DªC%ªž«ŸÛÚ—3F¤ûÓzuîÞ¬¥¤9$3 šƒgoMä:iŠEš…ÃM³ÎšvkMˆ8Ýú“ôÍ@uР³€¯V4ª5rS@k|’Uµò™ˆ³Ì/«S*§¶:;# ãôªzŠrå=/¶ÅîÚEìaË,a‘&‘QP[ ©Q-z{à'?_ì§·OvR“e20ö²Ì){`¸È¶ VRqU“õœ,Œ‘G&?|ëË×…ˆ³í2ù;Î…(U½§¼G$'HoØ “îÛ·4I<º¬­Pˆ;pî™Êtï 0©|,žKÀ®Ô`ò@ ë Ò9ƒ‚|2²ýkï1[<ÔvûÃÖ—böáNR=$–(êž„hE–!œÉý~1ʲ­À³èÆaQã|\*ä“TY¥ÿ“Ö{FõùC–XîÄz7Ï<$Dé’/h<*==å®°ðïq.3cZaLª2탳‹*ùUJXn“˜|*ãdxUKܘøÈ„ô{+Ñ (°CõÎX„€Ýil+ž=Ð;¤ehÁý”‘1ë-ӭ«¬ÿÍf9‘˜‡Õy§ÆëÈ:];,b+u<úØœ8š"PöÑóIR”jÚ†„q€bº Û"x–ÓÜÙÇ·O:ø>y±_SJi}WRÂæE¶"¿¶}&:g‰{Ñ QÏÇ(ÿmâßÒ¾l-§~•¥üÒ™ [#ûäCq¸Eǹ5ÆÂ,ɉ¼¸¿ˆ&‘ç°ƒ¦#Ÿ¿Úqê†ã“øšA¨"ÞiÛ¤¾äP5H¨"Ô’q*H»ÿÕ×{® l‡Jå|ãÈ,@Hùì;Q§ŒrѨ:Ñpe=`Èò´ ʈOé‘”ôÒ¸rÚ[]È`#âÒæõFŸ-v‘R¿·§À¥§-uÿN§j%còOlÍZFéYIoäöÎr›e ut¾’Ýíl7º¹aEÝ…ˆÜŠ4(rÌóÀTæêà'*¬¥›OõîýÈy¹Fº\M“Çh{bUt*'žð™SPô$çƒ÷ó÷ÒªÙ Žâ«ÙF ¸sáÊÍC-±KEDQØÏŽlØdò‚>ßšô–q† È”®dñ°ó=Q¯ƒÓ¥«oqŒïQíL^ Eã8uEpoઽYŽZD [F5:%3îN¥ LwŒB>ÆlN/âÅ^5Y@>?˜“(-+ºu Ëœ!ieaÚQ>(²n¸adè¾bå‹¶&Š£únœ¢~X\!Y66O,%å«Wχ^®d’r’z <Á_˜Æ86Ÿ†X?ê®×¨ê뙨äa÷B "?]-;¿}L·D;òZ4üü‰è1søÔëò93EZÜ2&(ÕÄ|M=MŠwkpBB¿¿´umŽÑèÕ .Ù‘c)F§=UøÂ|!‚ôãxs™ýy2;oB‡r¬/†¶¹Ec”ˆ2Rç(Ò]à³x0ÿ­ ò­ETê#½h"Jæ½,Æ ¡¾FÕ¬ôúÌ=w„åœM`\Ðʾ'ùDsçAÆ®ð8Ÿ ^:rÿ!´JÁ,<è`b_‡tËa ôýÊùÓ¦ô!Sû'ìBn% ¢Óú^ð×3Z:îµ» ‰•1±k„yár¹vI×ýO¯VéKãêtᶘC'Æ·ìbÓ¨Á“ýñ)ä5moaläøÔW'œùÍŽ–º£gŠ[“áä%ÚÃI^ß«"•í¤X­µîY´Søž]Ä;*¸®lí«”ÂÓõólM¨äÎc¹{œº‘§ yÉZte>ÈÊ>KRz°±JÞ%6‡‡KÈe!ÆöÆäƒ1׋5C‰×@µûnoG÷Ó%޾d cMô)Úªzн¾O‡òx×GmG^¦KS9E•׸ä¯n—©»e1´Û#(Ø>²â)¢™M1“ðÜaFcl÷kÿqtGjöú>S?Ûœûcç9}®dJì­w8’ÄŒë¸Õ©síˆÚÑlÜÖc®8m2G,·=¯íi²h<,kù„‰ßûºª¦”ö‹ÂíPMB»5QF§šÜø¬CƒÛ÷=Èy qn=§ÊÈX lM›…&=a‘”m;pÃb©üâÅ'¹RzñÇ¥c8áã`põ+Ée"a/»SÖV›î}·7…YÎÁ'AlOgQ„f3}ƒ¥WNË,¥îgš™ÕÓ¥Ú‰OüÄów©ûlïÝ¡{ýÒ^w΄Û3£¡w 5ª,ª#É¡|dù¹ËoÀ°cÙjT@Ì ¤¸¦ŽjŸÐÑwö„Ö¶ÙŒÜ_§-{€ÐˆQ€⪠‰±{E͇@©/,Òß?^¿®§›ºlUm™e7-ݳÐ.i<.£R_Ž»žR)€ü¨•å*y•3s•Kþ#¦&<Þ4CÔ©þÄñhœÅ=(ÅÒŒ­Q~€w|½n)Ìó6¬’+ÖZeèúqÉgÁGšèvÚKNÖ«oÙÒæK_}ÞVáŸ=US;3õͯþþO¤¶9Vª éx×È.Q<Á·ÜÇ œíL\?ŒùšÙê!BæuwåJu9–¦x±"/8Ú·ñÒ¥GÒï6¹ ³awpžš‚¢Ø§’zçu¯q°…Òë›75«Öê“ÍþxžÌ#>t¦ÃªÔyÜýõÃÖԷ鬀1Z‘íŸT.s{ÄÝÆ˜u„ÓDšd"9•>ÿ8$âNŨÿbâ4.×Ѷf[ô´c¢$ÿ‰ÏäÉÄf^ú®|¸š>Õ¨>ñþìó–omÄí–´¯C ½#.ßF¡JLæ‚êËoºûdõúŽ)p53’á Â«ÄB ª­xM9EqïDòî'WüO»+”*HûÉ…&ðU¼5¨¬a± oWŠ7UvXÂ}IíÀ‰¬@â¾Yߊ•¸¯O¹V“dGþ=ûôú©”ÝU͵÷Tß1£ÑŸäÑ>58àõ÷'öŒÕ—ùªm“A_È1ôéj¼â'™ù+±*Íõãµ%HTnG÷¸¼W¸cöQ„™ª×ô¨µiãt¹dx“3g<|[z×Ða4ÏVÃeù.Ð &“é-Àƒ±ßci%z[›èñKø0d›qØu¼7µ¨íPö²(?_êQðQ‰ÉÙ‰q;é-cõ!6ÃËÆ¥‚k¸öª%îùvÒ™–Ût|P¾»®K»¬-í3ƒ~*šo•LìœHìYvÈô.:ÎeŸ’ ³_^„öÞ÷¸{N™MÈ' t“±–D´í¿°j‘|X.”Øo¶åº¥­p¢¿>6„äÒðŒTMJ>=§¿Æ`hšÇ3ˆ¾]B†ŸÓdß 3lâÅ˲ì. _¥Î3§³2†Ó<8Ÿ,N›½´Ü½´‚º"Éð‰w™ò1O%À?ì],È»ŸŸ%wâ8ùŠíoÞ£ÛÈIÏXaBzÒI´÷æµ$p¦ö†d¿jM§wOóÉ›J¨ÒÊ %«Ÿ}Ÿ{Yz4(êM0«(×Ò&=ä¶îÌϪ>:Äù¹¥GîXþÞu'†’€Ìd¬†ü«zÍY±eªàD­áœÆ]§—I~5¤ßÌqxFÞÙP,îL½¯S£˜ð€Æ;˜“ªk)¹<,ÈE M4~Q§Âb×C£5ç·YËH»HËÜôM+¡À4Ť@{ôÞ—µ»y•Þ(EŸ¡Í>• ³ôÖǯ¨Í ÄSvµ†iâÉØÅQônÕeUŒ£!›óEðÄzåCšòB™S7. 8q$ªµ­µ.Hª'¯l‘ñ#[¹UßV¹.(•–û;t§Dàûpn,–UÁ*ÉÇ휟¼¸GI¦¥$°‡ƒíJZ#>0kSºCDÒóØûÖ9-{’àáFƒÝGë-¡g3ªo©ˆù²&z:GG ×dáÖºP¶?»©91p!Ûe„šœK|7Û3ŽšxÈ8Tw Ù»SgúhtmÇFÅ óri øäu V®—K…'ž©psw±`×pã475U^/¸Ku†G1{D*ƒcw-BÉɤÃÚȳìŒ_J#øáüeÇÜÄó}†ÿɽÁæ+9Šv6‡­èæÐb3ôö'Î &'ª‡éŠO¿ÔHªEשUS½=Q°Šm~0ß .qœìܺ¦ÿl™k¬´7"QÐ Ð+ó$<Ÿ×çÈ0õÍ{2Ñ2¾CM›¾|ããÏfÝzÔª‡ñ,’÷K´dTÓÔÌ.ÍBZøaæ6¶Ù1ŶkŋȻvçõϘ•Ô©*ÈB*í£}s¸ö‹F«§WžŸª™l¦JŸùìbZ0¸1)'ÚsÐtil bxóLàˆQ޳eí Ãþ2⬰ð8LþåT¹Á–E°áZ÷×ÙðÜã4Iþf…]LxÀãç=è´ '^1D,Šö/ï> Óq*´øª×ˆšÄ=Û‡> L1((§ê|^<Éé8ŽuyŠZ²Å´ŒÞp+¹~™Å»ÆÙi|'€€‚:t"¢slï»\ž>†±ZC—úX 9©9ªö4¹ ‹ôËÀÕKŸÂ9#ÄH{±õqß|[áLâî9õ÷Ô(*³¾šqòùýg“R8ÃâNâ›õB<ƒ¢¹cóÐýÇü=°Ÿ7]î*¦Cv2øóŒ+¸jæ2cÁç£=›qs,u¼ðGƒv‰7¯oõj‚çïp‘YôÆ8¯”MŽy/T€XÅ€c£qÍ„œ¡OLˆGòÕZ—’³ìÄÁyyÒl¥ë [ëˆLr¤ø9 ã鯧dJ{8%ôdf‚4¼mqBÁ¿½>ÔûúšfUAæÊöbX]Èâ:ê_“+OSµ6¸¾·Ç\žé—8¹•|o‹±"+ÙI•ä­Êý]ƒÉáÃíÎÙz5ÙÊÏÓ7n-caß^¬[fcG(-¹­pJ醥öý…ÁWGÑWECr񴌱 \ø’ eGrHŒ±rp.Úñà†ë†^š.ï4I› 75±/ï`÷9]0) «äöç×.DÚ,°kU~–šÉÔëçÑ9Eiß19‰ nçözÓð}³:/#~<€SÈ vÒª‹rÍïþ~šM™’!¤×Þ5ûéA‰h8þuKØ”¯ÙáUp]Pšq¼Öø 4$yªbfBh'°¼q<šB (h}¨ÀB§ö¼L5c§¿5{]ÃÕè>6nôÓÇL˜³‡³å¤nu`£sz©MÖÁTù~¬N(|Ç®Æò¼ÚÀÔ˜‘l½O­ïa‹ ¾Æiû£¬_¬¶ð¸ÝCšYZApMÆ‘¸ÍëÌ84@4»Ù©îÛD&z¤ËÇ|,ÝËx40X3"ŽÉ¾‘°‹‡ßШ~^äPþyù­3þ•]ö óPh¦Buz}í3Á!ÉÙ®ˆåž ˆóËðÔ(•}ÜDBO·GÓ%˜éð5ý¶t´ä-‹Í,^±¹œ „Pft,CÜð!—1†½Î1]+œàã'á£2í¨Wl4Éy!yžïÆ“Úö€lê4pªìá~-e)ç{F…¯áâ+}Š §=Û¼Õ‚oˆÃ/:=:x¬™1¦=5cV^¤š³s(T\Q3ÙGKäÜÔ³»š“öõDØ;ÓÎ_š(¤†‘v“ŠH÷Ðí&s(Q›Ó“èÜUª›QÄ“(¦Œ»ÏN>MS– eþ€¢ã0¤í8+ž¥äg~Ybýì1†.wDZaöÏ/PùIF•Ô˜Ù¶»Íx˜)dM/oüäç䲕ž™Pâ‡Óöó ;;ˆ§N:”ÚúJ¡’P‚<ÔU”cKó÷Þ€<þŽÄ춦Fìn–:‰Éë7 ½t—Â5‚D¬øtqäõFRÃ>?c@§žðÇþ˜3…‘ŸJµœ’$ eMúËÀ5ØðU§·“/ÝʤIªˆ›[é˜Ö% kL0Åe™ôv8fÆ='†EÈR‡È2-‡â°j~ãV ñ&qaª.E`ÃÕJ+¬àɉmìgis ÙÈd\ò‘óÉí¼ eºA!ó£o8Z,|Êf4ºr¤ÝIâö–gMÁ³EM¬„x;l3 8ýQ»pMN©N¯‘ŠC*í Û‰Í/\Ò³¯î¯ HZñ±ø2ŒèÊœºYÝ!fM¬?©Òê4ÉhKú¡ð`ýZ»qG¹ëÎÀé‹]ò®Ê»ïÝî#K¢½Ò^F=³['L#] ˆóW+¦7(–}‹™œí1sƒ9ˆEÍ“WŒùˆdÿ™¥w@.ysõaøzŸ‡NÔ¤:ÑwI²5­öòî7¼\äð]vú†S19` ÒC£¨³·‹r³6¼KÕ\~˜ï;O¿\Qº!*²¡©|á·¼Uò=;W3@ŽV¼†m<`È…L€£0³ÃÝê¨ß$ç@ùûÝa@VËÌ^©t4uÙØ*/¹¯b<¹}y ³àÜP£Ä¨°y$½ÿÌß=)¾Òw‘k…ºÏz™;™cUæó""ÞIXÍ\èá3Z¾©iz¾i÷ºçÇ.~¶x÷ÏNY6-,¶¾…ãï›a¶ü‹çvŒßFnGêMùòd÷ÐI¿qShö¦«ÐÂØ:Ù¨¸Ht`Ø®?K{Æ8fO¿ðc@¥Í@v&À"Æ“]ÜtDÊÓ”Rá ¾ãRm\!_M½Oö‘Ó¸fÇáì¥òv<âÛö…òqUn´/cIòj_¾Ì<ëM¡Bt¹8Ë`_rQ›žâLÞNO‰(”…?äeÜåƒç:¸^yàJ¢Öî€EÕßõw5|’5òý–«z¿ü ²–N:ñÈâxêusG!Ð0Î( d2¶s…§z,oõé¤^²y×FÝ?,ìduФ+úx‹–ÈnOéêÙî56ç>Ì÷Ÿý(Äñ0ñ¾ä=© #kÒ…îæc‘Ÿ‚Çb=´Jä*[ãªÿ8%Î endstream endobj 88 0 obj << /Length1 2649 /Length2 23149 /Length3 0 /Length 24650 /Filter /FlateDecode >> stream xÚŒ·P]Y´-Š»»sp îÜÝ=øÁÝÝ! <¸»‚»»; Ü5À;éîÛIßÿ«Þ+ª`)cÊšsí ™²£ˆ™ƒ PÒÁÞ•‘•‰… ¦ ÊÊ`aagbaaC ¢R·rµþ#F Ò:»X9Øóýa æ 4vÉÄ]Av öY7[+;€•‹•›…ÀÆÂÂû?†Î|qcw+3€@ÖÁè‚@%æàèåleaé ó?ZS:+//7Ã_î; ³•©±=@ÁØÕhŠhjl Ps0µºzý‡‚VÀÒÕÕ‘™ÙÃÃƒÉØÎ…ÉÁÙBŽàaåj PºÝf€_í€WÆ„@P·´rù[®æ`îêaì €¶V¦@{‡›½Ð P“‘(9íÿ6–ÿÛ€ðOo¬L¬ÿÒýãý‹ÈÊþ/gcSS;Gc{/+{ €¹•- $)ÏäêéÊ0¶7ûehlëâò7v7¶²56ü•¹1@RD` *ðŸò\L­]]˜\¬l•Èü‹Ôe {31;; ½« ¯üÄ­œ¦ ¶{1ÿ}²6öö>ÿs+{3ó_E˜¹92kØ[9¹eÄÿ1‰~Ë,€®Nn^vÐ ô4µdþE¯îåüKÉúK ªÀÏÇÑÁ`*ègeýAðq1v\Ý€~>*þ‹XYfV¦® …•=Âovhþ7¾³•'@4{¬–_?ÿ>½—™ƒ½­×oó¿Î—YKLCQMãÍßÿ«uðø0r°Ù8Y¬¿†Œôà÷_ec«ÒøÃWÆÞÜÀûw¶ 6ýOÆîÿ í?ËAø/—¢hjÚßC®ÏÂÉb úÅúÿ<ê¹üÿMø/–ÿÛÿï„$ÝlmÿRÓþ¥ÿÿ¨í¬l½þ1 ­›+h@k`ÿ¿Mµ€/­ÐÌÊÍîke\A‹ boaûo­\$­ þšÿ† ó? Ç/hõG\þ 9ÙA÷ß!Y lë™;¸9ÿ d`ññ[þ.t€–^Ž–@û?,@²?â³€j²þ‚Ú`óuÒöjó•‚îTæßÌœ W{Іþ¡Õîð;³ÃÔ b«AdŽ ¯ýNœƒõéÏ›”5h¢¬þ8Á_­rú= r'7W ™‰íÙ9~+þKÊÎûæ¿bÖ_göGÇYA ü="œ ' Õçó— Ðý¾s‚H\@ï¯+uËÅÖØÅòbPQ¿Ã‚^ Ì®–ÎÀ?ÆÔ!W‡?@n@Ða¹ÿA™yü1h oÏ? ˆÞëj—÷ïä@LÞ@ç¿Cýçr5us†ë_¯?ÐÍû?ø¯ Ðhа¼à`Êj]Úv_#BèÁ¸;ñv–jW+•ŽÑgÙ¹Ýí6‰®úsð†ó­HÒpÚÚw ÚáÒgŸ£æzØ÷-‰*­O¾? ãU§w[–¦p& ŽD¾ôÃ1ª ïù>;ùjÙ@6ƒwÊRå8¹ñ (çaÞ{ôIy~é/[ _ØUÙ«æ’CüY6ã­T%¾.1ä ÆØ4µèA²,î¢OIáÚÀ’g³@!i62CÊ#Ó[Fµ•j”}co­ûØrëNN ”†ps'±¶´ËЙ\ »ºÕ0 Óµ–ÝH|Ða.ºÞv«ÙmnB´Â;óå0‡¬cyØÔíóTï´><2ÀxžÒr?Ü8ò½ÛO«X¨_ˆÈƒ•^ÂR/rm•/ƒ8ºÌu¢K (ƒ…ưâžÄóÚ8LÀ'øBô‘€u»€…E—º|Œè”3Ç÷â£_eùbÇæú¢­Æ»×.ÅW“Δóó|Kv £Ïá´¹Ýr¿ÅÒ¨ð׿BʘÏ7+q˜ÄK½Hå¶9—.) 9d¤zw«†#õƒ½¬xó™N5+5Zã8óUÈvŽ£Ç‚†DCÂúxoͶoËËE °8h>œWzDˆÜRçÍýС˜Ý墔&%Qt÷}¾Þ„âD]ÔÌ®1UKýíã÷ñ®¢Ÿ e2âT4…Ë ýr?Þû.¿[/ìů ÆùpÓÈV×®tO †ômý#Õç½UH ÃöáFÍ‹QB5õû< ïM°ÞÅ™ñïd£Óß)}l+õ‹9úšüœÑi¶ñÔd‹ßÓ¯6ÞÒFG¾˜G6}Óð©_!ªÍ˜nA‰RÀ¶³³` NK Ji>“/|ƒõº˜e½í)üHÛô¶ÊE¿îÖ@Xù[ý.pÊ q¡Cø©½Ÿ\IÙ3žR¹*öƒå„鑸;VÕT Ÿ²È§äÙÀpkõ²Òѯ¿БE›‡iÙ GÁ}˜§Áª‹M¾PÅTf—È% eä«E§Aß|™A‘E­f‚^î«““u-£îõᆉãªE Òœêê:š_ž'L¼Šb.A‘\´ð —äüëq¡Aé[ýä "0±?‘‚ˆ8mäÿU “„•¥Ô.íU õ‡ÝY}ãÃÒçoÖçßrB7*Â54ÔÔd ã ]q'á Žå@ë%u\ñx* p°Î_½u¼—[AEæçJknòs–scýÁþ”®!m•ŽS/íZY7=ëwë…G²ðâoJB¥¿át¨ßҲǡÄáN¦—ax'Ó’Wsö¥ú'öÀžiËqù¥‚ìƒB¶KÅX¬»×Þ§ýû^„s¶Óp:9;þÛ;ÈO™ê3:rLkrx‡ÃtÝ ¸R#r>Æbº¢RYí$Ä^«´(‘r4á½lJ,³š)U\2Ê””¶O?+šq7õºðŽæ€ãÃQ÷ƒpørc‹ÔlTŸLª½ßßÉŽá§1¸9ø+T°õáysKHËy?ÇEŸÞJ_„Ü߃\>ýÊÛ9Q²!Ô—/÷ Ç”otònKÿÜ"Ûµ’Z¨ôûÇɾë'{õ#öĽ6Ê3E}±¦Œ‚‰¥Û…IáB-6OÒ'2y³™ªï„Gþ;¬šÌÑC¢o…k¯OÈXºur¼(O¦î©ú*;§‡±=¶¾m±½s(ëÝT> ÉXŽ¢ºäŠÚJÂàò5°¢À-%›Á•yqÝw­|K"—„âÉÛsª]zP—2ÍÖTgIyß—ðâ½¢IØ¡{n“ùi©øX¿à³£„@Ie…”w7·Ã†¶j(ê¢"W8>´ënÔš¯Ä+¨´[3¡bYN…¦4J?‚íËMÜHd6¿éÍ´m§R–`Ëå#Ñ¡S•gÞ(Ã9åÄ,ËÉ߸˴å¯òíB¤¥hYÒ†¶—„I ‡‹K åñQ]rH@ïîSÇ¥Ý1Ô:‡0y óuP@4Ä\˜MÑBßx!ŠoGöÚQ8xå ,Ï©5h¿3vÍ"…Vb=ÊeΓ¼ ýô•Ý‹„"í»)ª‚Ââ”T¿îóº¤]Åk‹÷d´d <†mÙC9y¬`jIS4VK”Èo_“.jMmhÕ Ÿ!÷,è[ñ™*NNa{«dÌ dY»r&ÓA»<Ôt ç=Tž¡Þ„¶f:îàÕµJN5²ºòë{HÎp„!Áñe… Ä9À2ñ±)Ñ ç".4Úè­ÜPån!ÎPØ—‹@zCÙØ}Ú_cÛ°&{k@·œ•„¾lg0£:VáÍ ‰c`8¿ÏzÙ|P¥ ;Φ&ÿRnÛxÄ, 2F•“RÖ¦COùIÈqox˜Eö[ý·›Âä’›r’÷ê¹&O©ñšAmim-ªº3WLf*cÖÉšÊæ“çGõ·žŒ9TXqkÆüå¼ÛNš…MÅc…€›“<³ö(ÞñÝp°•ùû| DòYÞøï>¢Ÿ—9#Fæ•…¸+ŠwD)HqóRÊÈ[½P'Š,YnÙÛry¿—…•Tj¸ƒß=R/Pú("‚7âžðmÆ6z¿á^gw±žfyLkej7„º+%Hð‚Îloµ<ão’EÐ#†À3Øç-"]8ŸÍŽàÅt©—ãÙ¼½îÊ*âVY–‰ä(2ɤǑ¯¶Äfâñé)Àµ´àTH€gI$>V·ŽØOžFFâ¿SÎÿ†ÛQ¿ÀÃCg[ Á`S¢j|í ƒ(Ûp­9YªánëüG -‰’m#æô)«ÑÓ•Û›ÓïËäW‚üç ÞÃõÓT­Õ9žC,©.Áè CøZ¬’ž“§s)‹»ø˜OM¯›†ôéLòwÞþx)ÅŽî—ÝÈ™Äáñi·Ký%L΢¼(±í›tÄ*ÅXû\ËÌ„)îJxÀ¦lßÏEÉÕ€çÌòçwÎ%ÚI>Ò .E+^Eóonš½Tô<€'T¢ýÜ o‹(ÊMúÞŠYéÒUÄ+Ð ‹,&a¦ù#Ïr³}¸ [%qB²ÐA¹½o{=$€²,®|š½íN™w‘÷X7Æ…÷=8Ñ÷Jäcç­>ÅO…ÇC.³7ƒŸI…aÌC>k­‡Q³qx`”Úz#îQαiaÖy¬‡ +ñš¼æï’+ecŽŒkõÒKb¼[g.2ò*‹V©…þ¤¯’ÔC(I_¶f¥Žss` ¸53ÌW0 )W£Rÿ¢Ø"Ç[ ÷F5máXϹ0ãçÎM?扎Я­v‰©0ênIç½òã5„$¸†DÞñÕKôù¬\H×<ªt4M]ƒ ¸®ŠðªÌò¦+UþÎkòç.½:î>ꎟ9–ö™Hµø?thæV{¾ª÷^Ðh;Ìm¤1ÛÚ'AÊÊçâ ÂÑ& #ÔíçŒN¥#T6(ûÈI6l¬žØd˜|ë±?ôÇ91’¯Î·j\ ‘ ÞÜïó3Ã}ûL~c­e/#ñš5•2ÓÙNäõÔ% «gàêÒ^w’>­õmé݈Ë͹C–‰°O¼×"™˜i”®)“V€î×ã3’=\{ÄMÇ0 åT3JÆiýÛꉹ jyÇN(Œ&T[L$ßfÿŒzžƒG¦á¾ä¯oÌ'½½JÜCH· ëD½«FÞg‡_³ ¹ÏµÁÁ@^µÝ,¾ïÕ7Î'ãÁŸ/°CH^}gá±L‹wϽ+ ¯#ì¥öÎÿ","­òÁÖAtáGE"ÂðI\ÐÏæÍžy™¯%%ñcI?ø;á3…£%ƒ™f)¹[~Îr˜Á£V¨g§3‘vs‘à t+·ŠÀžõÞËöé³ã g´Äâ7·|±1+f$°ª…ë€DWt¤#Ʋ8,ºí㲂áËíI^½¹b·W8µ}<^¹üPô>u¹RcmÊ‹áįJ!zÛžQ„Nƒ!ù^P2´É¯mÖhœòÅe2]¦ ~¾–$]”ñÞâÛ˜“=q­:1oÚŸ+tù&Îöû& ú?³v^6Ø,»ÁÜî…!|¡*ŽI±Ö"êÓ V¸O™³¼¦ŸŒŒÏs1І#õª'"ÑŒf:Æ$²ò{<º¡I‘r½÷¬.åCq1ü¬Gjö‡…Ÿò#wýú{áYed«DÑÄ<ìÍj[Ç·Ð,rø˜åb ø6ïé+‹C‹qãqnõ’9Ói½˜Ú^ëMeSômC·¯BÚlïzâ8J¤ÓÇó2/Ó º§œäuŸS5N®ü‘î ¦¸é ®Ò¤íã² ZJ*E¸Éøˆ‡« 0³¹>+ô^?¸ì>ÙðÊh_'˜ç—~ž†Ü~|~zƒ¹\¤-q\œŒ6Ät¸EÖ5ÕKN/»ªÆÒµ¢CR Gt}f½ŠLL=³,r ‹ô¦|/¢³¹cãíM²bî.%—{ºúŠU¼*ù”WމâÓ}¡ °IšÛã»Þ‡I\3M)ù†7û8.ØR/›ÌM¥Nõ½P÷à–Ñý¨º$ޡ⥮ÂHìw@ŒôŒì…%aAk:-K£…¶Á׿áWÿ-àæ‰¦¸ì¼oJK‹6ªßt±˜säî€úÈТ9Þ3Dj~Â'e?~èHòÙ6¹ÛYЉxõœFÉ»Gý}‚ç;ƒ¹DHbHDþ4ø.ßCU€¸~_0²´Û׫JÿóT*M¦ û ¿'EÓGRö+Rµ1¾2kô“Uª&WÙxXfÁ‘\¥×ÓÏÄΚ߂zð=ßÕ4ô ÒmŸew7¼ ´Í|€ätè@ÓÛÏ’äGcP¤.¡Á´*Ô¯UTé–¹”ž¿ž"íRç;^’<ÃÝW|E„UÓî^g©¨ kµÜÔZ€ jç0o–o´Œ]eZú¢Ag =ÍHfïá÷Ì€¡«Ø$=%~]}‡¨ƒ£ lðî™»=go›ÑGøºäzòò¢³Åi‹+éo˜áÙ©‘åE£Ð0ø>TJUcKQŸ4-tíVð'ß°¦áİà|/½ ‹Îlƒ>¹Ï6ܻƊ÷ÀŰێägsȱ傰å’:‰¸ÔàŸ…Ÿ=èªÎ-0#G±æø6ͬ) ›«×°#,a ?·¹8 36 ' ÈAJqÇ~'¯ôU™z±Wö¸ нôvñ öË¯WÃŒ,ä 4/›·k+îa?‹]8WCdë{‹¿ ÷Ŭq)ñ§ìgýµ/8$•D—8¦Ç+x?P}aF];¬Y§2Dö_"±«º¦«^ðÇdÝ{äH}Áá/ëÃ&“4¿ÅÅ}FHý™¡Z¯·öM@£[›*xeUÈôÍ-Õf-ü‰b뚨'oø}H÷ð˜²,òÞ…¾Ï_,Ô´­ï˜”jõÃÁ¬ÒÖÑS¢=`*îè°#£¿‡`)’9Wöêx †Sã:§ð‹˜Éˆ1Gù!0ZÀ¹¼õGm/QÇž#?ËqÐÉ1â/®kªí*GW‰”IÑ„ôáô­=â~™š“8c[š’VæîÆ­&9ÑÙÑf¬“ÆPˆ_|—>$úa;›ìÝ•€JóÞ¶ÿ¤¥ÁÉ÷cÇ5ùƒ+ƒ>fEŽÓ¡Ä`VV‡¤p¼Î‰ã>öÞ£~\jï®Þ*~?Á úРhSQwT)TTÕ+޼Sr(xÖRâ*c2ت$&Û_L91 ¨ÂÝ—C¬Zkä§r][ke†ÞS{Ӥլׄ™ @>B²™¥0™eA õ—z@”àÿXF2”¥˜2#Ù†Ýu½cæpÿ`Ù/¾ä.Ö(Í®b¿½‹0¸Ã0†b©‡#F ÿµ?Ì*Û÷åå ø£Þu#äcEUÄIuÄvÙ‚hŒáégÙÖÄ ±âähJ"ië³¼óÓ†ù±é[ÔÙ•^˜dÂ(õïÂÖMŒF¶*ÑÊ>CÄÁNè–WÄä‰(s¸Ëaþ|f/+]Gªú! Y†ñ”iLè†g"KÔÎó¹ŒeMˆ¿¾þl-“”˜ÝÇk¡ÀŠòZz×p‚±%Ÿ-†u++Q«ÒȈù³#4FÿÇk¢,R:W˜8Tgú÷Ÿo'<ݵ‚( Æ'¿<vÒ¥@e—Ç~E]ÊL¤úúR6 \âš,KÔÅ(£²M¿¾'‘E:݃Ê×dùCÞ÷m‹v#_,{V¸S\„@óÅJ?ï.y^û¤¶àÓÖ+fn˜ÿŽ¥l^Z¡û5·;…øÊˆì7”ÐÏNïØz¾ÉÐ((…Ÿ?Ù„|Ãã7—zúÒ}‚]tÞwÿŠ0 ÚÐ(s ûKFâll»·ÐiÒ{ÑC\ƒêÔ!’ê•€§T¸tXµ'ëJ60y6p¾.mø­92 mÈOÿ-º Ä€õ 7V·D³ù!*u©2VsçಌMpPÛͽÈT³¨¦è­ë/Àu¬ž¤Oºo@¨ä…¡ØðÌžûç*;à]¿q‡„gDënsO_)|t[D·•}¿Âà–_CŽËo˨3îd¨ù¹¢Ó¡¡Øÿí…ÊËé×4¨0 Y•‰õ"8s€•ÿ]KšŠæ±Ó¾¶2ËÃð¥ðsØNHNN‡‚„ˆyË™²!¥Y%ǪRÍÉpÉ…:Ä3¹õ2«i÷Ä’Ëd[¢Åû{Y¢XE0'‚q ¹@¬!òV¶õˆÉ­]â3´„°-–Uòˆ…+Ï #–ÊLïüœìÃ|¨&}IIÙböÊÕ°¾`¿K׉x ñ`C“}ª_öc÷5bà§"Ø»è1»Ÿ÷}çxǧ Kà„b³OP‡VÕÄ@¶žÿ ­jIXõ]·Âô 3ÌJÐÆ­³ëmëÏRƒª‘!’p½éE,²êjZµq[9ös³èY=È`W‡¯d¡ûÍïQà?€caÍu£µäµK¢d^­ˆ —žÑZJÕ°ËÚO€Å”›ñ€e§'P%’À¡~J åÇeØ}ß9ùºPÛD˜¥ÁÏáhŸï€¶> |ìH£»v«ÅËë÷;à,× Ì_xÄín@ËÒ£#4iÖ™ðNg®¼G¸-&{bl*ïˆA0$”ÒÈÞû´ŒùÒòýœü°¢® ¶(Ô5…=ú;Rå'GÓL±µBÜrU"64,Ùc}¨caÂÔs«#w‚\ɉ™W¹<„„ÕLE;£¿ÈZAsC6´žÈôåc[‚^Lœ Á’TÇR‚— ä"FÄúi›#ïtW 4N¾3Ñc™ò'e ý IM‹"Mk¿Š{ï)‘Ö8'‘,Fíç9Ðá×Û¾x?ÿU2U_=N±³ËüF6(Ã#WÁÖ¦ÕâŠÑëŒìޝ ƒø røa·8¤6þYÖ£º]'×™óe©|2¢µ7’ZNëe&¤ C¬øn9 _qúL-”SØ&_×QºÞ+à£0~Òé¶á‡Á¤D\ߤÍ%ufÀ€v©™~än=þºe¢¯ZšãYÝ´@جýÎ}ÍÔ©àŠÔ‡c° w1¡ñåŽyîÞ¡9T0œg£ö¡—º-:IM 'Z¶É›ãhK(D›noÄ[B.’x„»4×ýíë-¹lêFX®—àzÇáäJtúÌ#ý+¸“¿ 'HþhܲÝ4õÉÈg¶ ,-µ›kz}æ¥ô^Ä 3uîÇ–y«A}öóé¿7‡Þ€‘¨=HòÀwŸÉ=§®Ž·%š+/GØG×g©.>Ó>\ º£¾OKÉ<-ÅûÆád7ßÒ®Mrl"/Ôæ¦Íç%f¾ޱpGïô5›Î±àkjœí°™ûE&ýÝhª?ü¦ëgÔØÛŽqOÿJ,Òf„•¥ðè}L¿Ë¯`4Ÿû&xg\› ΚãÝg<†§EK¾²R»ºãŒëôà»àÁ,Q ‘MùE¹¾y?Iò£ÊüæÒ/•$+À±Äæ¦Ôà麮ú°uN™ˆB)?,¦·>ü¥ŽCa×`L/¯8¿Ÿe¦÷Ö¼ðÐ |ŽvW<0´­\›#«)*ÅÛô“ nÈ­ü(×€É`«AÀ øŠj8°dÆŽdµyLqEòÅDžë†åÁë”.ËÎáÒ£·”ñ}B‚—›"ÄY)FèO•du Ö»qö¯Ü·ÈêÄ‚¤Åç«ÃÉþ¶f‰ß#Òy¦ *£+å'T#Dl ì1Ii©·N‘µ—Ç'U Hæ]Dî6ËîFDz+-—œDÒ-’º gøD癜”a€‹ã0–䡈ù[Ɠڔ_í¤ZW¥YbŒyäæžX„N›gWûfìOäÛsRqHƒ5?·LçU×Ý}ÎÏ4æD^˜4³Ö€µ?´ Ü]61 Ãì<…Õ„ß6éöE̬ÐlTÌ´—H¨ÊIw$$ÏPˆ‹Ä¶‰³»„¶RýrV†ÄüÁ–§ ¬èWð‚µõÀž™¡gº¢v©ˆrh½æpØn»”<,G¿i|éþ±Î¶¥ƒ"pkRH) Ä`*H½òÅMâμc9ºÒÂ×Ö§ƒ2BêHcüNÄWÖp+’ÅÃéI‰õÔT qIËyR良ç3ÁF³Òá1P£«IÃãžÌ¥x)š{íC²èõ»…£xRT0ú¢·ŸeѰœà)¢>]šdw¹ŸI›z·û*Rœ[–gð=dÔ­áG­GL0ò ã,i˜erÝ@Õð¡8ì¢ÙT'™ïEb޾ü¶mÉaF?È]hä-˜ì‹Y±W3mpÛ¿â@õìâê„"©ŒFŸšÖÉÔ¸I%##ËHtgÛ2Äè~1”z—3æ´.¹¦+™‡…Ò3RZùÓî«+¥·]pÜÏJ‚X4XÕÝú²ŸŸX…äJÄДolé]’ÁÉd»÷T Ef;f6±ðæ8l–ÝŠ°ø¢–ö`€ÞÙí„[(óïÅV»¼ðk­‰¢ôfÞI|>f6I¶ìte:o?…j¾e§•¢‰®Gn9–n ,a5ììŽ<°ÛÓ0XøWp¥ÆL@ßõÿPl‘ù™ÚÙçj¸¨r×ÂК‚íZKÐ0C tlœñð†Àkx®z¼QN*«H`,ùú»ž_SÉâÕV¿É‡{¢óÇøXª8‹ïµù,†o&±à/"ÇÈ(ŸêôŒYöÕÒ»ŸõrÖ¯Ì.Å—HÈ·,Y[žBYá{¥Ã·ÞNw´Ïk­páPÖŸ¡­¥) gi¹>Ñ¥Ô|ÞïêÊåA=u'idMÙ´a[žNËtˆëÑ!"à{•תiùÑw"©ÙÚ`T?~Ù ÆoUh©‰»ÕÄ…û)§ýÉkŠ›ŠQUµí²"ÆzùÁÉ»öùZMü¬Ù6L= 1pÕhðÔÞcãð"J¼èêhÃM©´Î'ïOóå8Êr$Ó[¬š½ºãÚ;·~Â¡Îæ“v–å&é`¤+ÃQ¹×êÞå!äR鎃G˜da¥ôäëcr]K3ôòÀ0%.¤µ¢ý†M"3ǸqpÌõ¦[\ƒ[HV/w<€li ¢*°Sä¾u­d3Ô*unŠ’¶ŒaÕc¨€£4—zNmRzñ‡ôCºÖW2?•‹¶*µµCW 2J¨¡ÔC¦‰:ê±27ïúpüíßINÑ­ØêihÃÉðÖÎ’apð˜K¦¿:¬ÀpZâe«8à–~mÌ/ä`ìØÅW>¢MâÈó÷X'¢£í¡µËÝÖoÅ $×WX3ò+…zÓôÏŽ ªLiÍõñ(å®'>4‚-j·ôìJkx†Usï_ÒG<#áS©@"GzÎþñ›¥Y±&ÖÓÇÔ©-Í ÷»°'½°ãÝ·óûLÔ¤TÎëÉFoœ€(–öc§!Eûq§s ÄX¶ŸØ”{ÆfGz z”Ü'SÈ4•¤§oÜÎ…ˆ!ŠFáEø¹×”{ÍŸŠ÷Z›¼ƒ'%õ-£6«"=PϤˆRÔôï7­µGûéY¥WÜv¤£j(ƒ:éõ^3h‹hXz3 ÅY'-Oc‰#Ó£Ïø¹l…å"=R™ZD?  ½’ð,²ÚÛ8¾S‘ÔEA‡ïmÀ46æb NYí'ñ¯èv;X°j>W²}_&º't9µºÖ&>[ÅCƒ®/ŽJÈ:>œŒùdAGÈÖå娦Yg~¢Æ!és‘2oS1í'eï‡ÿ¹õíéÐ%6%A¸ŠÊ‚X¯†?` %É;Öiõ©…® þr˜ïÕ•Á ë›Ø\ÀÞ* …ônÜðú§týP÷üƒ€˜6óÕ£y:8*ó锪»-€xƒP°–Ë“YȣÇ”Ûèܮ̰:ÌÈS×gðuŸàȵȄNNƒîÞEéÅ<}ãÊ£h¨Œ¿]3Ó"hM("þ8‘˜_®,cÜ%CHfu³Ÿkx‹ª—ætíJv®dx³žôìZ0›û*4ò *ÁZoRLšž’½½°Y"nÙ.B=8Z¥Š®B?-º(·®—¶³p¦avÞ8BHCd"غ†‚ìv ÎöªÆ´¹=êMÜ ¥ìàÉàJà¦! |Ô·#u§ÄúÜf´"‘Hæ«EFëÈ"T!‘ñ1ó/znÛ‰šb!1P“ ºk{rˆFg‘—쪤md«&¥ƒzý¨; –œŒ²á´²Ñ¬4Tõ å›/U³cÌð­9¬ñY’_  ~j.øÁ•ÉàvJêZò®û1O=µzš|Õ;²-#l‘ÙÛ÷j’k¼_L9å$2|åýqÂõ:cŸÓ*ºô¹ÒlÏ燪=¯éQòH ðŽTXbq’ÚN{B(¯ïÏüÒWª5Fä¿X»èÝ Ñæ›|ãbákr2÷€Y ¯š‘cGJ–õCep9 ¿ÕåÛ§ó>²Ýz3óÒõXÀ ‹˜Fƒ~âȜիÔbJ"^Ùi8ÆÔ–•ÿ2B’Eà•4ΑUºRã¿iѾàÿlf.Îøi½J»%¾G¥^Kº‡&fiÈpÚ5C|‰a>W×½¨'(‰Jð8l”ž;o+Ê,È@uí‚C"þúÔ†¼Ö¹eQj{;-rÛã›'öØ™ð(öM· H¦…d’ gåvH±†š}#ŸâlÜ‹GܲyŠìù>É‘mò ;£uÌorÌi9yAÓ"mÑ–${Rrë#ñéòÙìØ…ÉÌ M`Ÿ@n8)%~ËG¯-ŒQµ/ ãP¢5„¼È‹'^.OxëXÙ°ÔA,d]£sÁô w"ª°ÜÌŽÝMT ·=Pî0YŒHHÚ`<âP Ac9ÞŒ÷0uw·éUÑEÜNǾ-뿉ž¬°¡6e(!½Öõ5Ü*ú9N_V07¤a‰û­< Ý, BU #ô½"U!±?1ÞL¥%ÑÑø ¼V|¢¤Ò¸fì“-1v^ä£cBÿ­ŒA Rá ³2¤¥úèÖõd¬­ f̧áq¡Wøa¹¯*O›œÍ¸kZ Eœ$£‚Û\)ÇCMT½^L7 ܹ\gÄ%ŽêÊHY`¶…p×lBk T¿ÄyWJÜPí सfÀ,¯ úHÖB&ûÊw‡Þ9ãz÷k~=šúò"5.¬Š¸d ~tºï« ü± TP’QZƒ‘B]YÕDK3«ÝS³ÈwDÓ7´ñæãY—d -Dרùdÿ„uÙ»÷šÅ•¨ÐÎË—)Š ¥ÙÁº-.»«¡‹¢Ff…®30vkšwßÙo¦,kXöÂ@üT“ë5pP?Bצòô¦‹aYÅÿíÉÙ–ú×Ä»RÒä¶zµ³ ÄøV¥œcDi¥¡¡î[A½dA\]¯†ö"„ÕF©´aÇsDG'+¼T±%Bˆ]nƒOäà‹âó†;¦˜«øY‰M¦§+‡ÞÌV“R¡«Í®žó¤Eí;HÄê¡<ÕG¥0©½ž0¾TÒ¢Û’ÀðNÐ@¬§láBQû`¥Ó—gÆA–s¢ÐƘXôÈò‚—ÞYL®æ"8|Ç„Õó9&ú‹r9k7¼ÆugvGÈ ºgT³ÐîUž¶ŸneEáwŠ€R㢖!Õ­œC ŠV嵫œVl-­Ø>6¤÷\FÓw ú£v )ˆ˜¹‹Äëè8%nLÂ+vâ ÌÎ马?_*PˆRi{C\VÅQ뇲^ˆ¿ òÆf éêZ 6©ÔºÙòx%¡Œ¿[[,{²]+Ã~ÕA%¼62 3æÙð{³Ö‰PŒÀèö,kâè†Ô«œt˜’íO5i†ó¨yº*ªH2×Ði¦ä…ö83~ËñµÆÄ eÞ<f|:Tã~ä!¿±Pj[µ¼ t`$ù½;fç‚ ù3—³ÂP‹;$¶ùõ‡¥K%ëTýþËSWø>²½ÇèÜ'‡ª!Ëò\–(­bŽ—´N93r:ƒäs7G úï3äüEµaÍi; K+ãã”÷ºre lÎÔгÑŒÆFCñ?`à«LÉ+Òࣻê¬úy=¶–[*uH†3ä×-¦”¾^NîS,ׂ¹š+lÖ$V—3•# ~éÇ:¹ šŸzw} G€1l…vˆ%çäÈÛòXv? Žý–&fÔ;“d>èôÐÈ7q÷í§/wëÀÚ=—ß®ý9IÇп2VJ"®Q,×⽃Ù@T©Â5³t3ÃÇîC1±iŸVÇÑ™â¼a³"Ã>yø‰E*@KJKXyb¢3ÖZÒb8‰BØ5˜O–F?Ù<'4Yø`mi#µ·r2Œ¡p¿—öjõÃ÷Œ¯© 0ó‰=è¨\¯Ÿ3ÃÖñ‚htctH‡-8-}aý§‰C„/PÌÐ3òß‚»1ÙÆæT½Ý8ü cTÌî¥ô <ûu?ŽrµáÏ6Ñrµîaíñ©ZúÒUMþ̨8wiNø7${Ž$¤]/äõH›•Oæ~y>ÎX‰X¼ùÍ{ç©âD¯±lõTɇàœÙ µdÚ5t´´CÕ.¦µrØs©ñïVܘQ& ?L ~Óî²gc$½ƒÓ>·Û採yX9~YB= ¨RH‹.˜Ñ‚¾2;¬ÌŒv…bÚ–ò¯™"žYÛuV6×Ó¼òF•õÃ%¨w\Dˆ•ýíèv÷ñ¾éƒ<ûJù£å÷I|?’’VÌÍXõŒ÷fd8.4Þÿ4‹XÅ W]“yËoCZ?Tß0œ²áJ/ò‹´‚›`pQƒh×-ò.6@æ´^鋹©Fxº]_ïDc»ßÜç¤ü7‹ÌFhdtOr¡UqŸ‰ÍŒ zâòY~Ê™2? "¿WÞ13þÂÓÈ/Oü.â‚ß½Ôf2á5¬¹em°d2/Ä,ÊÊì3j[ºN gþ©A1öüÔ!©"Íòtj¹™p›÷I€«ö·cn"âøg»£³ ÕtDzZ›Ì wh‚Öú¢´— i°¸Ë[êë œžÌªjãÜÁ/Ë9䘮 qÝû!ͯw}0,&qøáé¬}¾Øl±æ*|P,ûd´ NŸ°õãZÈjÐ>Z/&xliB…æ-ì’À¾­üÙ-›ÝㆳY€[“Jr(˜eä–?ËÑã´h(ÎëR ¨9Y"|y“õžq9üHÂ[¦ýâÓ‘ÄOÚëˆ/‡¹"{ØÞÖŒ}Œ*îõÑ}ìïíº •”%Œ.I¸2r±Ü•µO$޵bTËë¦nyeF1i/×üˆäƒhŽ£ÔÀÞ”ieØC7ñéñ±7£W¬Íkxôª÷ñ±Ÿeí>•%í~D=¢;eÁº„† "õg[§Þ1…8WA5ÏOxéÒ £·5Ÿ;Õ %-^¿mWG²hú4°´É­~e½7Ä\}É)=Ó xÌñÃÏ©½·(v«Åìí_#n9‡6Ë•p¶„ïsc¶qcþa±öÒ3½(l u%C /úÐäÝ».n,1Ö# @]ãÍ^FM>ÐNL²…à÷…ÒÚºoq ~9ËGëã9Ueb™¬Tçº9ƒ–Z™ë,E˜¾aÆêÓ'#Äxî0&çý^L?Àáxyx[\ªSdròXQ`ÕhXîr¢Fо§ˆ›1Î÷:ûÞ->o£Ì$Ü©ÃWÊâ3æN¶k&ÍOr ‹#òpQI ¯õ —g°ï̹ëÇŠÝ 1üÆC GøÛ—kÖa-ÙVû!ž@å÷º¾‡Lbâ@šÈ¢†.µGp7ÆueQH5LY'äa_íÈÜ=ŠF.ƒ¶Å |€Í¥¥è\”ÛFjœj¶ËÂÞ*#¯Ýjf'–ÓÃCɆ K> —-1ÔŠ„,™_žÁ›Røè+cóöÅ…ÏÖzq þ‰¨éÖ¹/x³ÈÛ×ì‘^÷œûò¯Jã{nvÍ*ÉüCVáØ²³§„Ÿ³Þ¸Ïñ힣c^i[dÍU~jSõ®áíX z ŠnÍoqö[¬h;@‚Ñråxòݳý‘|Õ Ÿu%I¼K~õN˜ ^4Uzò K€ÑýÀYœ Cº¦úT·x–J3?wož?óZÙ)e´pxæ;e¡^GËD‹óãÕÑ«ÑÞhä8 ÏìñÅŠGß4ÌÅ€•·7ç+T_—oöñ4T2Èà6já=ܧbŠð›­•®}=an)-Lk]>ý&ßèÇ3ˆ–>qÆ‘ø2ƒ!‡ÖÝ;{J-hËwÃÞklæ HécckÞ§¹FŽë+D”i<ÎVW´ÑèÀr¼d’&4ês‘ç/vJ§‚ק̶3àu–ù:Üi/¦8qJÊÆ¦ÙâÂÅåMö‚9Ã}¨Î *Ò¼ú³”ÊãƒÐ J¶OÉQz=/á5&¹)PðtòDÕŠ,©,Þ+_oë¶Ü;JS~6j ·–ÃîTÔ“O8ísSÂÝ]Û‚ëaη™š4ð{‡6µ;r)—†iuŽ9&[×y@×Kñuß§V¸…åí°õ蚃„Ó"ý »±f“ áékc‡©†àZ]‡SÍ þù›ßcqžû$À4 º«­Âkrêa_ƒ¥Îžh†Vì§=ÌNL%¹ÕqhÏ¥Yîó€ÁêÑâ²–>\ýòYý,E>{d†Þšà–.i×Áx:rC¡–P÷š^iDËMbÛrt´q+®æÝs±aµ×”ÈuÎ{Uv?F] êZÏÙ/5£¤‹¸ª ¤ÉŒ¾I¶¾LXpµ·ôT%˪—£Ï¡€&aQÂBõ„U™Î4‹¾ù:‘pøyšFw))|>µžäÙ†÷oê[í;+è³µ½Áýõ8Юө¢žïÑÀpÒZ…÷Ö0“")±7±åf÷$ÇŒ¸>åñ…ôlÓe£¥²™"h¡ËÉ9Ć<¤x—;“=QfW¼nx3¹„_[§DAŸ•TT9±ïîòÕ ž[C˜¹îM+›§gìÒ'ƒuRÙ`› ƒ÷oQ•Ó×&F‚D0‰Y?rà¦;Ôí_ËF±~jüIƒ¶HVØæ°bSyö V“D‘\O3œ,â6p?Ù:#€+²óå>ááäžÞ‰™§0¯èÐ ÙõþH›íŒe$öZ—¥¾M'ÉýGtàÊÂl<ÐK÷2eµ@ê@ó¸™ÑÿŒÕë¾ š* …½N®RŸ8ª?Ír8¾ öEÑu±i…è°:Ú<¼å¾ËJ9˜çÉ7#,¶„ì!ªM|aÉåf{w£gyÓ_¡ÃùËNî¥T†ÏKï³õkðâì¼wö„ þ1éØš“jQ!rË"ÊTÃØ;“ ²d6)T4C{”Roðxª·¶›Ü÷´*¤N§_øg¬vçcu’V+°rr=â{ F±È2•ë+™ÚD;WO® Ìʸ0CÄ(5ñOp<Ê 2›(éŽÇ½h áÑ©ëÙÞ×nKy>Œ2S ÜásišÜŠûR‰‘‘ joR ~û¨À®]R¿¾£½ì݆ô#pit˜ÉÊO¼Á’~Žàîê´R*t«BÖè¾](߂ؤ=#çcÿBJ×8ļâÉŽ·é€åÏì`SˆyñÂúqºÆÚ8è+ëÃ2\ÁÔCú mÉÏ@¨Wt¤9¢¼Þ†U9Mܯ9åÞˆšçžÜ~‹ÞvŠOP|4£*Söoè®}Õl2ܺ9<ôÞ8¯vöêàQÇÌš'*D!¢a¡ë¿­íÖ–cýxØÇYêæð­ÀêÂà˜ø§Ýü˜ú¦9kg7c4§lH½y›®wеÆH_"®JݪFé^V·ôÎÐkßf¡ôζÎó“ì—…ÒÈrÌÿsŒá{êæˆçkqLÌÊ@`‹š÷ïß™ÁåùÍÔÛ–ï.ÁÌ‹­õT«úÑø—¨ò(qŒcVZ± ûð¼;SÛ& Êh· òv+úc>EF¹Ã°,kº7kàԉϘ`„åÿ‹Ÿ2”"a )»b_eÇlâá®2ÂQ³ÆD¤õ½ ÕÁf}‘//¼vÆý»e®ÚKã÷æøtnq”œ’˜"¨"â&ÀS ;;åJ/Ø…/e¿Ôÿÿ»Ë§±H2~d$ù.S]*}%;õ*yþçÙ¢IF¼Ž%©ê[²d çɶ!þtûÁÐb6ä‰Å-7õVDˆáØÅð:fÚ¡T`¿ÑÅo:ntµ˜CY}’6GÄ·[íÊÆ ®Äêyni[]ð5ÌtºðÔRèzl¶ÑaXŒjt¦ wÂ&À¦ôT!gB¼ËØ& _¯¶nÇÁ‰‘2Ý9›¿…Ç›³¹Òôrñ·Ø°¶Ní« ú8 ú›SÎ8àc£”âÙ<LßqÑÖóI óއ÷æ4üüTíõˆ4SWÜfæ¢ÙŸã%#ë_aKJÏ,WöOߕΓh¥üÜyMcs®Ñd¸-¶•Â7°Ïï—‚åá\.A°œÙä 6ÂtÓ©Uª˜w¼Fä”bäèá뛺ÕR]'²å5¿8ÅwQ"ùîÇwÙ4½®½ŽÁpÒ´úB¿7B^Ð&”Mý†P•­†0Ü›)»í‡zVÐ[¤sPÛ¯ÅqÜGÌO™ °ÿxü>ݼ.[ðÇ{Éô¢dÕs.(!ñ¹C2Îñ º^~¶5a®Á´~>YÅ›­¥üxJÏà)‹žœ{šv½>MŽ(7‡“­«4¤æ½TRÕ´ÖË®k$ºQç±ãdKÉáUÌCx3èµû(r{ƒYµü½¿7Hö_xò]'&> ¡•ÎRx%ëÐa[L,Åã­Ò™!gà þWh9P©: p‘ø÷UŸïãÂ}mË*—NÍÓäçSÖÝȾò´þ[FEZ,?d rF/iÒ3$TíÚ²áODZ¥}^ÔÄÝ;­>©-AªÌ„Ö)gû÷xlŸ¦s!gú–3ØìI¨˜÷„ÞŽö¯±Ê!1ºã¢Í‡®%œ·¹s&Æ9 Í¡†Ágù݉ïD5¿$]M-éÎ ½tdòÚF¾Ø…OYmýè(é4e‹5/ι1= ¡Äëé¹ÍÁ´ò{Úú*Œ˜[àÜOú’&íc­‚RcÔâèý´³á®(Ia¸-9n£ûé Ôf\¿{ÁëNJ§ «³?‡¬™ªÇf% ¿]öOœâŽ NYìo„=…ÔºN67ЉSÁcCT¿Ã¹SA›ßqï§ßOÎ:µF"ˆ:uÓðç7´˜Ш÷ÔÓc.%„*-wQv#)k«Ú›Øì¦K_£\öY)x¸Ù ‘¶ =F®¥¡ø?¿ 2àßœzVìAÏé5=)—ïË+ ªV@0N}ÊÒd¥·dò„`©wVqT¯©þÊ5„þµ)I4º(¼,wP'úÛ7Ü,Bxœñ³Gw=m ›Ó)eGØ”GÔG½iïTÒ$]*2¬£¿JÊ´ƒch^Z˜¶·»¶­A:Ýœ÷BÅ;w0è·€Ñ~ÀT ƒ‹¼uõÝ·x"ɼ¤ö”ÏMÕ_"WÒÏ8BýEZÇcÄ;õ1-I†Q Ï?ã ¾¥°´?&;dµ·Îx"-¬Q£xÂ{ªzG痽£:]^Ý4!ð´Àâ´GA/=.Ö YZ8ã¨h?ˆqWÇÇX…›W<‡e¹ý;˜‹ÛíÞZRX ÒjãÒ}z¢]36ÁYåô…Z) °ÍA?_ëwû¥ÿQ±4UͦúùÀÎ`ž.ðK%Ù²Ó7>)EOaņ<*?„½U Dá÷ÿó]VdöWxõýTz€†mŽãåõßø¢u?Âí¢i/$*†’‹™½-,±öEV›@øÊ!rÄo8ó‡ÿ.ŠÔÌ™VÎ]!¸f¾|¸L¾éÿÕR.· Á«›ª¯Ð Z¼‡µ0øUÞ—^“l)#ð§‹Ûú‚½š Çy¬]˜Kð-ëup“g ¥.ñCDøXs$¯Y0Ô·«?=Ç™š¨–÷™œ³lîÓŸs¼ªB•íìbícáÉú`þºÀã,ÙßCº¶­ôg-¯½V€ñ¾1$àa¹c›aýF†‚£µ®„O´µ±òGâu^¨Á§Æ*_¦?p|GJÈ.4z\ý|{…Eá}ˆ…òœ°ee–óüsì GºŠ¨[†pP% UÁéºýGYJÎË>þ—ÒRœ^ØR“^š­6.;˜èÛý¤-Ü2ëŠ â%ÔR܉Ù·&;CÇ~zƒÌ‰xu,‰õ<_Ö‘hų3IC /’:óÇx޲nÖ=2|4\ëmH=€ÅM(í-Ó á=ÔGi†êæÖed%ÑÝÌ / †3.f®ßðjØE-G.lfüÖ&–h‘Ií˜F•wÇ&Í´ÜÞE0Hˆ|á&Û0$yÖ3£ }Y±¸ç {÷S^o#û…Ôß)ý W 1sûŽÐf¢X¤É¬R̾Rí’á5úÁ7)Œƒ£Ý a€68ªO*­åy*{çr˜> á ëSî sÛ *S‹TºmP5d¨ÑÎÖÍŽ"•Ë×¾PCE˜d…‚ ž=•€ÆŸRùÆbîK†!†‘óÞ¹Ø÷f­XH^­µ·EͣƖçM÷Ý gŸ—Ùãá/P‰_É_“³‹ '+•óNPo|—5 ‰>ö*‰ RêÞ´Åmx¹DØO:–ˆéÉ›h$ÜöÝ(GÒ“žv §«|Å‚\¨^Øhçbó¢wý?߈ #·? ExYí¯Öâé26}%ØNfhCŸÁº{½±šIÕŽÁJ!ÊWî@Œ%C?Íç4òº‹Ç]0âldª›¦ƒÑåpžš.•˸ÕC`ø]ÜCÞ1!È£ÕÑ.-h° öjÖú-¬Q ýbô¶Jo/Áet¦N€€ÙW8+‰w‘Ò›„eA¥~¬±§Rß>Y—¼Û/›B'—!H¢Nœí3(MÕ¤»"ÖˆNÉsO—Ö‚³3 ~¦;ƒ/‘uèЃ QLšbtfÕ©Ó=2ñ–²>‡öpºí™…ÈÞ^Ê©8‰ñ#€£N{ö嘔DôÉ&í'¬LrˆD=¸êˆš†~ë Àø©Ü.4+øT7§cćdBd¥x1”ÝAµÈÖöªEˆÆ˜}¢²Ët·u»€AÊZÔ°^¬ýí¡‹ÓŸ9ÙK:Ê£Ó+o\lL‘ë‚MrÁ‡î¢ßš9˜1ÒoäÔxÑ{_i4æ$¹ÅÈØàà–3XµýVx],(T«1@Œ”Ë«–î@ñ—‰€ôÅØ ;rïZ»§iV’)¶L&ug­V]§dŸuuÑȺóVíô`õ¤ã•ªb€šjÝ`À [ÙØ„{9zìyFWhîVù±“_¼;«6qŠâÇ^¥Ü°‘BƒR?€”-੤Þ0?2Zô`®ÙcoHdÊžÿ´Èœ.ÔN±OT™HÞ¹9†:¸¾ô «:!ñÈæ'§Wì2„ÒK_÷‹²gÄÓ½ìSC}Îü­g¡Ó<RlZÌ“™ålq&þjü®y»\£V¹S· øÕ ý.©÷"ïþ‡dH´Q,ʾ8ÑéˆcŽ.tIW˜þ£¸ÃÎ$ ˜,.…øâã/†¥ê'b ælËsBþãlš¡EàK0ú)º Ýy]„æ¯1û‡–ä…Œ¿9ƒ³\˜ûÙ7â^5c4q(tÕø9ñ—ªæuOÒŽ>¶[ÑrT!Íèø/yDµG˜xÿX€$š® ¡HÚ¦i¿èš]ãº}5 zÔ¹Cyp#\,no–wÅe sæÐ¾7vǼ˜ ñ˜ÎÛGÌ8’ÕKÓ)†ŸþI·]¿Ð/²kz,• äßK€ÕQq ¨a=9·rN¹Ã,é•!höŒ×®›[¼Á57w|Y+ØÈ÷碇FZ^rö}CEêî`©¿b@>µ"3 ÄƜ0ϯ¤YòÀK¯>ÕÚ +Y¥ÊôF9¾°ÏèÙþ:9®"ÉrÚ.Ì•òb@2ëk$og¨ŠœÐ¡:#i­Æè}GXÊ›³&è~A‡Uª!haœ!Q°RY…_7½28ü†ò¯+\ü©¾Â®ú†p>ù{‚Füû*¥ÔS†­<óféë õV·0Ìb‚[A€}9KðUÜçÞ€,ÓoÓÇf7è-± ÜÊwg ÀA]N¿€ eè­&BpÐ5ÔÏ#¢‡ãUWkV§öbËEK™ªPàH1ûÑn·@ð¹ùÆêeŠŽd,!ÇOkg|•ôïïÜ,~ŽIÍiŽÅ,í,÷Öe«/æƒ^Æl9—VmpôÕ+?4€ÖiÜ]>$Wÿ•XgLÝrDcªb¥ö¸1ZùfÓGèÝÑ_ï•™ÌÿãôO [ŽÈ~)d%®ù`ÏxFׯìãjj'4ž‰Í-¦ÜFTîz¿¢«¢G«òr[ŒwøûÑz•í²ÖÃеÝ0Uç±"P´#Þ6PZT‘ΰƒ™“tuÀp _h 刅ߘˆê!ޤ2?°3¸Â±.ÏU}Æ=µ5äw”ÉT#Q÷ãZÖg;’| .Ä+h¸Ö}#H×Á[-r˜¿7IE]tª²¡b·&Ň~[—E?¹?²§ú8ÄÄʵ® ÙÒZà¨InV eép ÓS8æt%Ò®)WÙ‘É\™2™ Ò‡±k`Y¨Õyz!²8|Ÿ/Ü‹ð é§­ÅAØ3ŽÁËŸlõ%qªûŠ0F^ýwåQÍÊÜ´!â+`ý.Û‡íiÇ\kàŸ›h¶ ¦Ã(/Ä®¡KçA,Ì,Ë_‰Ôç¿;,ÓG†Q¯š‘‘U¹&ª6I2/×½ùÑ;CÍzBÅ®*ï¹¢êþdïõF-aÌô/y‡à/í`ï‹­"Ñk†0FþBLjO14´Êt³†NâT~€ø–`ÀØj"†ik2'îJvRHf[HÈzÆh€#¶™.u½ü§ÂùA–,¾—UgÍ=øhf}Ô¨Ñû{`È N±œWmÈbîsÛBòÎk+$†öÆ+h·õýcÙžtAC !SSeclÄ'4ŽñA‡'Gp “'a>.óGF…%;?MyUú FX;Û‘sø¥Ù=ë©ÈN†€´$¿ùÏÍ÷‰Î=m]„IGdð‘“.—š1†oÐ\1ãV€{Ô´ü?׬·c°!`ºÂɃezôO™» Kä ô‰$åðåY«Â÷ Ó ýå1±ÒÁT%­o>è’€kÇC_¢°,ëó꙼ ±v‰·ËÖ›ˆÞM"P$†qíe}þx}虾¬ätKº¿0¡’u}’0<“Üd0NSË3¿š³k Á®“Óôa·V'{¥åûà$‹ÞB…\·Ã3²@§q~¶nõÙÐv~F`"RÓ:ãïì¸k$Be¯Þ 7ìøöf%~9óña}¾Z”¤ýõÕ®Œe^ï (¢tŒ®È ¢7åÑokãÔq6!ܦDeÂþÇ6fF>j¿#'»*tOï4®£Õž®c§Ýi›p!{¢È×3ŸÒ,«Ì¹wí]7¹"ýûm„r@ÎLtSï8°±9 ânÎÍè0W!]ºO›6»ìà«Êf9˺WègÈ?Rˆtž1z“³úùÁS".â¨1'Á*»”°a²£ì‘e2 Üoaí—âÐæðP¦…Ï™çâp»ñK/ì2Ä_¦ªµB2×ÎÜ•KäBÎzO· ¥xÛÈç`KË•süË,E\dR8Q‰A†g‰€£Ü_'¦­1ŸiÞ0¿ >|.±ˆFþr–¥x`ôèŒ÷§'}Nɯ…EŽ‘ÌZã“eÝ=,¤t½Ù‘Íx]‘kk¯Í,ʼnêEÄ 6(ò8&>öJ™$]ñ—÷‚à¿Ù÷î¹|>ÔV'/"óœ…4Ýä~ÊÆöMf%æ5îCG²Üe ºèü! ñMDJí 3ާÚÔ\Žôô ùŒÎr ³» ÐÖ)·f¥¹ çJ/2¢˜Úx-§Úšp æ{4ØcÎéÅ-KÚ×$RF¶rÉù-Õ¢ZJ"oq˜ì ê4^&¶Ä<ˆdÑòSÓîÞßöH² sÕ)&ÃzýX´+T5¬÷:ëŠÏQòåÃMo‡ÆÁš‰ *AÏn;:Ñ¥À0]òM߸çØÑMÃúø{̳[’>£ÌrÛ¿Cõæ^Ç>¥Ã~ê‹Ñå8ílå'Ïà[;3÷ÍSµ¤&REnœ±ÀcwRÂ1¹ñíØæLÿ_ øÿ&`–’~E°MN7úÀ}—úš IBˆ¶»vNÄçSÖ~ƒ Xìö,Å]°¢ê÷Ëh—hC#sd"ã¸óèV–o϶0Ý׃ËX6êà h´4Üãšµ‰XͺpÔeÅì>Ú„¾y¸Œòw»’\Áıµj¢š¹çÒÁD¹Ñé†7¶ïÁU@Ì/R¦ò²2Bš¨Ö{_i$tØìº5Ÿ<~Gw¸Vµa\©4©Tõt’í·f¼ç*±mó ;Šx&‡ãrx×>Sg%AËV¼éOõo h»~+²_eò¿)¼Ûl0Ð…Õº²FÞ…7[™dl$V!M†ýBäÜþ¢B<çúäÝ(„,ãš­ -ÿŸÛÊêkçŸÖK %4Zúnêøº836à¶iI©Rw¡2犦|÷uâØ Àد˜{í®J¶^úÖ¥o™*fkïº Ìµûk3°[ãîe^¢5õ©Õ"D’ñØ“EÂè?¡v|‡ß= $jƒXáU"1g¢+r·S-h WO † Bê‚LÇ)wL§#Zã¬Ñß+§< ¶Âhùn©BßžBˆ·`#þ‚YCN•øßº±`ÓÛK­µÂ.Ä7 Æ¨U¥¯0d|×Sá—4渿Úè~÷ÑÄ_añf»˜,]Õ¤»”'/б¾›¦Ž9 ³?%­Ÿ5„ízÕx^P(®þœçæ÷K´Z¸“ö$ÿÉ]1SoT» ô÷ØNP£þ•Y¨ÜCŽhΆ,qÂË-.÷ýÖ쉈þ_EOÌ—úÏâè)·GÂhŸ¶<^¬j›ŸÚ„ÃOûë3ëc½¡üAC8&½Ù—’CXÌ9Èidl r à§ðK‚·zva°ÙöI•|=ÜDqܬÀ½Êöö-¯ZX‘Í Ÿõ…n8;vû5™szàã`n``ä딞à9½ô%¸@êŒì¨Ûy¬œ-.Ê-É•3\´ÖP í×D<]yÜ\ÔàÁ· ªÍǬý,Œ|^Âl‘ÇHž'~lèÅ¡—kÖë¹NãQñTíX¹mék¯ü‘aJ9XåÇ”¤ÿiü ‰ä࿘бâ-Êí0=Làëiñ"?#Àì=èBÕ’ùG@ŽÏéÛ(t-÷Ê-œTj) ;º’_a¦Äî^vóƒ‚Þ2RlZÐ:8e”uÇËDº$ø_‘îídö…>tÖ‰»ÃXí 7DÈY½š¦Ž= ¬ù½#zk¸çájÌí ´AÎT· 1ˆRµnñ‹^E§|Î?ðôº†µÖHk¯ÈàÕ2³³DåóNË¡m ãªà€Áå¥Ix»B´ø´Ü …þE2R€­ÂòqÊݯ·ÛtiëªÆú²FýøXó‘[6¿´Tp†á–d$m@vèë¨}BÑou2´ó×Û é£1.,üW„“í(Ïvt翱þñ^cÁ>­mî87êU¹¨=^EâñW“Ž A;­š «EÈ¿I.+YÞ[c,¾Êygóß!N‡,1×ý¦$ù›+‡ÍÉÿ UùÏÓ›ûøLw¬Ï¤qx^" ?r "AhTã~é+ =4¢ô"ÓOü¨¿¸ßd yoKéÿ˜í%cáô†aÏ+0ëÙýq¤Ü@U®j¹jLÃ|‰èFtÚTØúÅÍúEÐoGM™èíÌAË\›Ý¯Ö` ¯¹>ë&À9µJ¶×‘ĘMÂã†ÓJiTŤ—iòq£Ž™>J[ÖŽ !ÃTÞw¡Å‡%ï_¯ð¾-v倷+F ”=m* ¸zò²¥èRA}B—ónp±œ7b@ß|Ê endstream endobj 90 0 obj << /Length1 1715 /Length2 9808 /Length3 0 /Length 10917 /Filter /FlateDecode >> stream xÚ·PØ.Œ»»3÷ÁÝ‚ÜIÐÀƒ 0 îNðàÁ݃Cð nÁƒÁÙÝ»»÷þÕ{5UÌ|Ý_§ût÷©‚‘NS‡SÆÊé5HÁ ãäáŠdÕ´yx@ È‹ÁȨ †9€þ2c0ꃠ®`'ˆè¿²PìÉ&g{â©9A*n> ((àEþCt‚Šä,ÜÁV5.€ŠäŠÁ(ëäìÛØÂžŽùÏO‹%+€GDDˆãp€Œ# ¶´€Ô,`¶ ǧ--:N–`Ìë¿$XÄma0gQnn. GW.'¨$+À ³hƒ\APwàwÁu GП•qa0tmÁ®Úuœ¬aPàÉà¶A\Ÿ"Ü V (àép€Ž²*@Ãù“¬ú'ð×Ýx¸xþ–û+ú·òG°…¥¥“£³Ä ±Xƒ@ U.˜'Œ`±úM´ppuzŠ·p·;X¼~"ü‘¹@AF `ñTà_å¹ZBÁÎ0W.W°Ãï¹Ë<ݲ<ÄJÖÉѹbüÎO Y>]»÷Ÿµ‡8y@|þÖ`ˆ•õï"¬Üœ¹õ `7²Ü_”'Æ?6 …Dø ÈÓÒ–û·¼®—3è'ÏoóS~>ÎNÎë§"@~`kÐÓ†«…;ƒºü|þíøo„Áð[¯A6`Æ?êOfõŸø©ùP°'àðiöxÀߟ¿™<—•ÄÁëúýåÖVÐÕQÔ`ÿ³â¿}ÏŸ;y|8ùøœ¼<aa€à÷ß*š࿲þª ±vˆü™ìÓ-ý'a÷¿úÏò×n°þ[KÝéihA–fÜ(´|úÃóÿ<é„üÿ øo•ÿÛŒÿoB n¸YþðÿÜŽ`¯¿O3ë{š5§§-€ü/ÕôçΪ¬ÀnŽÿëU†Y<í ÄÆáïk»*€=AVš`˜¥íŸÃò§]ï÷’9€! M'WðïWÀÉþïi³,íŸ^×§‰üÃzZœÿ>Rbédõ{ÃxP¨…ðix>·ÎßHäÉgñp¿þ=`ù7âçBO;üû÷p[ýyŸ´¬À (Èõé½ø‡ô”èo(À à¶vrƒþËÿ¤kûäyÒ„ü >E;ý“ÃSFO¯ó¿ÜOÁÿÒâyº¡Ž~ê7ÌÃé_î§Ýþ•ï“¶×?ÚOµ{ƒ Òÿ«o–nPèÓËõÇf=5õ?øgòYb,Ì:YŠ…ØÕ…´_ÕÈPzpnIL1n¤±rú,@;ÜnpP“Y«ß¯B/d’‡?á}Û”g9—^¤½÷Ùoi@ oMÒj»õ½3KОØjØÿJ20þa_¦¾ŸŠSWzÛ÷ÞÅW?ȱ¾K…1×ÅMG3ŸðÊ£Oѳ¾¿li$lvKk»Zðæ]Ù$gŒ^´qPñ4cÞ묲g(0Nj46‚_ž¸ÓçS9ã´* ì~1|…>/×xc¯g¼—+ty]»ÉÈ_’Q#žŒL0ù<ßMQ!ó))\…ޤÎtŒ®;¾ãqØeñÞR×¾‚î˜21Ž‹²“q#)¿^mUJt,¦KDáÏúõMeÕSùD¨åµ+‡F"øQÃA¨^@Sd«ç&§Þ{•…¸Î-\Û–8¹žÒ+N ŸSÏ„Q°e3xCºb"mæ#H>ÖÎsÞ¡á Òѯ÷‹-ê^)³8µÚöÍùˆ;¢ÌðzŽä¤Ü„‡Ú ø#§ Áa\¿¡¢Q ¶ Œö?¿ÀêIÇÝKúöIJ+‰$“¡ïeß4kêÃvŠHG­>fBÁõye!”| á-f¹÷Ïh ÇŸ?f\³ÿ·Z6y¾—B4‰-5˜hSláÕt$ST7aú½¹Ì%î\„$C€kœÌþ&ºSÙ³K´§`ûÛø‘‘ŸöθÍà–ˆõ×=ØžƒÞ ±7]™ s8TêVŠÍšvõÊ7~æb‚%_þL±g K¹ bŸéï½ :\Œê/иì]ÙTÉŽ®—ÉaÍK+Õ‡ŽÒVA”A­Ù+qìuC&pNìüî×Gí½Ë'„LƒÀöÖÂø`æεÌÒ:aÂä ˜ò£Œ'ÛHÃ:Ý7ZmD2¥@8ªr1í}¸C½µÀ):‡¢µ…Š ^BÝ%.¢PÝ>¡$²›&ñ¤V©ÄBY´ÕÜý×DB¦ö™Ù¥ç*b–ØêÝïØN±b©º‹>¬-øf&N÷ÒDè}x´­ZÍßÅ.q˜XOœ´ÍD~…λ°Úø5'ž†öåš»ÞYƆC»¦/#«þàGÇ_­såYÔLí;$g*±½®i!fÔ#u‰éÈ^± ¾>ÚÁù1‚} ÙŸSŸ§Æ Ù)_R ‘†¥ñ¦RÜ×[EÞ3b=¦I ñcJ?ÂÿàgI¤jç’€ÿ ¥5Ïž´ev®˜Üd÷Lv5ô «“z;‚¯8ˇ/G-šlÚט7•ÏÆÔÂì<ÝðŒ¹[!Ò䯙ÚâfÚKë˜ÄnÑÊ:˜š¢Œø-6qºˆH·N¬‚WÐ¥kÛŠPs›}£<Ô¢ I–D"«šÄ,ß³Åí…ÛP«Å’Ë„•¸“ šùSµ•ÈÚ:+§Qf·ô‰ç8¨|GÙ¾½‰A$¬ˆ² ÝrŽÄ!{£®ƒõõS%2a<ÕV?C€ïÌ¥##‚¤nǸ}Í:ÚÔ-´ÆHZ Õì6f`Î(E«%L}æ¡ÈgCø ÖŽiUˆòñ›Ãg'ôQŠÞ{¬$½õÓs·nÁ4ÙÙ·ŒýFºçÌÚgуv“p9N³<Ôje?Õ‡8v¸_I¢Ü#æ—Òov¦r¦b·ˆáˆ‡ù?Æ6”«`à„<Çz;2ÄPnd1S£DŒ.“`$QÖzG~*¾"†’zëî+~(ˆ:­¸ð]ãb-¹>ç¬LZÉXÃBcxæžüy[ȧAÞ¡\¦úÅbU <­`!>ZJŠIR{ÆÍZ­C™™ ñ)s ùþW¾oæölºXM,U¥&Ù½¸‚Úóœ¯zXä+dTèø\E‘Al2ù?¾Œ`!¿|(’wmPŸˆvl°üZvÌŵt-‰þ)bê佤VW8S eÊ gÕÖþH‹7$ §+"Ì^¶¤ÆÚÅ€s!ùþ K¤*[š3;×…ÃË\(-Œ2nLŠO”·¶p¼àÅD©Nç!~áB{„sXÓ¦À¥6…ãCVº.–!„ܼN¬’rï#4RcWIج&ìdÊe8ȼÇô"øAïŒ{9^ƒ¡xsfWÃ¥û=î<œl—©?\xk:Ç»¶?KÑ)B¤{dú™)iåu 6ÞBÏpß—t¦ý¸òsÖµ“?‡›ÁŽïcøù)¹_W©?0S¤_ ¾XúÄ·Õ|²WT®a;®"3˜žQß.iZL âž3ïÅF‰Ê¬ìû8U%j¥N”\ðNuŠrÛBÛ3·—.ôΊ®Cþ]f@DF#Ûq.JP×w‘í\Rª~9+Bûù^ŠÄ× 57úǃae¦°~?[PŠ’z´O©R¹C£Uy­|}ß!¿ž6,#ä1L]ãÙ"½§úg Ýl4ý-Î6–f:•Ææ—^†«è%t&ÕÞsߤ縚K¯‰±#áÆ9ã’äTÌ  J[{•.6ÁÅÕÜ4Ðâ`¼]›ÑjMƤ·ž€ «])Ýž¹Ó2÷–ûýiŸ[Çóò–YBØD³¯œb¬Ì#òóeÔn4_‡D‡qB>$„ïUÃMè #l˜†§@%©•¸»)¯¬'Ø4äÑâ±kõtmoÈ—Ü»DÚ(ÍXᯧÉGœe33ö©ñØGX>ªÅ¢Ï´/jÞê¿MÔpÎû<³”5oÉÝfÆöÕV Tɰô3ï%Fð¨d`²bQT¾›’ø ‘’wŽ]·pÁÏ2®¾þÁÌúÅŒºÓï…Q^5{£Õ¬¤©åŠþ[Á üËÇÐ=!9køР­¯œÊ€àQ‚…Ÿ <°m„¤z®A:¤i{äoä4%[sA DÊçK¦! ݘFe’ÄWyùöôkUR=Î½ë £I½÷ë°Æ,ê¥n:3@ûTŸ´Î§ðÎ +q“#iRúÄ„}¾)¡#Jv ×»å‚Ô>ЫêzqMÅÁ4´¸GI[cL1Pÿíû×|Õç5åãô*ßëàuŸ>ô¤v&%ˆàÆ CUð^½T•{fQ|f½­ÌSB%5mëeåf‰VÎVÌËYDEûÜ(5ˆDž†-þ†=¯®z¸zï™=oôE"¢! ºM¤kË»W¹“©h  ŠRTï2Tw–‰LáGÑs5y-f“Oé*º}ÉM\±X5âLh1Ÿ‚†+ºù•ÇózðÝÉÐwóýîäc&yy„œ ©&K<2œÙ+",Ù¥ÔÁt!¡:NóÁ¤êJ5÷UÔÔ?H|ëC™\û¢Ç°ª éúlè!Vãᯒ<ð¿‡AXB¬bS¦h/‹ÍBÞ9ñâlŠ/·•¡#DÔR b÷à"Є{ªÅ+w™btœU¾b°’Óýñrïk²×®¯y-8 ì«Áµ#/âñZ¡Õµÿ9ªwüúlÆP]c¯Í/„³wD‚%xkK£¯Q-¡i´-'K <82ÏV!†ù#Ç<ðmü¡„ Ô=²œ$ê2¥ë"¤6‡¦ž£#,ÈžA }‹Ùò45=‹0aRAù,H€ƒûýt4Ö‰ƒ»ÈmQ:ï™ ˆ}ô)gáªP–̱ËpÖúйSÓ ,1‚°·x’ær¼„ë)¹±ZgQô[7«‹ÏŠ[zO‚‚³ðØLü(h饰4)·c?r¢Üù§P8öúÛýz÷>MÁJ@ùâ×<ª1³QþÅ@ìÙËà¨ÂêȈYßm&Ô÷ý8+ÖP!Üõ¦@­vH3'@U R‹`ëûUBÙ«¤à@ m7P1éä–bß8f¡7ÜMµæ—j;ƒ w$Ú‹UnB .ØmWvŽaQ|9tß~‘‹@Cö)bÀè{xæn}Âtu õ–H%×zzéwŸÅüý–Jp?â_YI†D Q }ÆI¹Æ¦µiíDE†wлsr/¼Êaǯ¦Åè-ÑÇP¢ï&ÞL¬"¨­˜zñ¹áÛH¸»ãÊ÷zRÆóëÞ¶œúI"“ MY¿»of¼ß§íïω™ö0÷Ä@µŠBs‰È…Ê)WÑ@-ëîÖ„ ô¨[ZòÕ£ÌlΆ/ol’ÂW±˜Ùxq Ÿè¹¢]|ø%«¿}rÆÈ‚³ÌÛâ%mIYªÖU5S¿“0+ÕçnY<Ò†ú™3Š*l¸GÓ:1@_¢]Yϧ®B°ztà iué´è}¢´Këê¾ïË×oxWj>|ÏBó„&éò =£&Fù …Þ i> ¬ ʰ÷Ÿ}èÈ’óp~V.fw\#ƒtS‰>f®£mÜd„„SË5顾Fz/[›`¿åEXî¿â¦D¿Ç"Œ3®.TpÇ]åV&¥Á´ÛMªYSøÌ'Þ*ðQ£'żÑñP‚8ûÉÕQoöϼο[XxXò^†OJþ"–K/ç9ü*òVP*²å¸ž¯ÆI {‹5CtBb!<2¾Šß°#`>’\À±¶Î=ýË*& E!òyþ®¤Ö{õ9Å—`Ô7«—ïlRÜ%|¦Ìp‡ÒÓJ£’,_Ü :¦ ½}3uG6õ•Õ6«­ÙV B?£ŽXîT-šŠ§¾×uçô¨bÛR˸>Má ÖÏ/‡K}ÏVynšKžµO­]„€ öù®DßÀo‹É ŸKiÓïߎ!ÜÉ9;÷#´c”HúŠÅï “ì.r›D÷=Š.¦ZêûÍÊÚ`ó#ç鈔K7äÈí3Ò×ÁEl¯ã¤²'*p¹¬AL«ÝŽj‘Œ”H›¹#]¨ÆH2]=_GN„œe+r T‹ Už·Ï/ðÏ3µý¯ ÅÞÄV¢»kn°*Vßmni’1âÖY›0ÆiÀ‚âZ¶6ɬÛeìQ7ò$‡gsB×iýš¤#ÌÆ›ë6‘KO ˆ˜vJX‘é¯Çæk2¢goÙóH†ãy·Áfé¥Ï³¼Ý‘ŽÌ©Ld÷M,Ùwƒ&¢[CÙÞ|¾n¬ÚR£¶´‡]æÍ= 8 Ð.Æž:¶êc”rê¾j?E)X˜µ9bî‡Æ.v.4I°çríÁÌ'9˜‹>i².ž~-Ά²Má¯ó„:Ï1äbRéùPsF7•L?¤<äD‡Q¸,æ¦çcX˜kŒøºlFZ¥!ç­¬ñíQ Nõ¶2¬ÿà>õTÓ¾iæ4¦\«Æ*ÜV»ñíÏéµñ? ¼4¸•½ªu8aqj_xD™²¡HwÇ=ðHjþØ3Âà|fµXoè@'gèFK”Ÿ­ˆÙBóšW T‰½Éš›»Zk/z ·Èì¦ÊCt’µ‰óPr½Rå§Öqƒ2?!¦zCi7~§+ÂCv¤™T ­nZ83Ñõí›p¦{¯¨EéìHÔÄ'!žB(á—)ÞLÚg^g>ôÅ ¦c8vcúf®he f²æí¸_ŸoîÖ¹+/_n#4c"æi¬œfÁËÕNÿ8½µ¿rMÉ·•lÊ0Mȱˆ)Õ¬añ·cÔ¬ û84,‰‹Ñ¨hà¬4!…žþ½ñ×uÑÒrB)SO”­Û9S |^tpÌ4ãM¬ˆ¥±&Ö3E–g+Xýe×÷çaëÈÃÝ=DÉ“xpÞ¡HTÑ9©ìÏ’¾R~$Züø¦LC)*=ñ|‘¼1†Gq1çRÉ3j÷}O·nt²|Þ5ž³×Y'¥¼G¶¾.×E#QDÄd‰b¢=åã-[‹Þ*å¥Ñª3˵;¦Ko~gþl„>`ŸðÞžW&Sr‹‰êiÝò.¹¶÷„„5~ä^ ë•Ìr³gøëçšVâÕ›…¦“±St¸½yî3[Žó˜*t µlâUµÜ:uCŸ$ÔFDü ©_-ió­ßÈ𲫿±Ú¶á§ ˆ.žøêˆ 7olꥺz°%õæ§Z[2âè_Z‚_/v$&ßr °¼X¿!ž’dG {ÃÎßæ5#]B¼‚œûõùÌÏWF´ÛߣWPsšßáG'G¾K8M +,æô-=×ÖWƒ ¢[1àÛÅ\–{T(rZ+cY¹Ì¹.N°aÝIædÇCÙ» qž-[.Ä{b ¤µH¹vüN´¢Qƒð°FæñÉCÃM}ð ÇÎÓ2*+ýQ¿`ºG¤Bé“‹p ïð‡q|¾ãü±““¹€™Ì³ü7\A:(ìC¤ÒL¸Q Æ}&ÝY¯ VóèòÕW ˆ-z­ãÚâ–!mSòr1X Ψ»²PÑãšSjü­é-<$‰‚ïp »D#Y”ˆ$Â>4 ޲zóÍbÍZ°ÊͬWUQ/WËðí2|µøi‡¶eʼn_‚Æç’:}ߺ‘ ¤a`ÏL,É ’AiPèjŸÅ(9¯ëŒ¦›«eYCÇ:x»éÓÿ ÌQ(ÞÊlàS&ØzŽKÿ±ÿ0Ó1x…‘¤9³ä #€†»<1(aΨ0äoÚ€ø¯*·ÏeîüÆZo}Où5,=*šD¤² vFá2òÏ”[Kˆå6ŸçõЧh 5M]¢ðò9R¼|…ôj³!BÔÒÞ´öàL¤J+O3Skþh#Lh]ÅhÉûzaøÝXŒ­çÝV»áig挕í5W줈HÝ r:¬hÛ”wçë8Ö²G‹ ÷FQ'žÖ S´ÏÍÞ†ý ¯ßá¶ãJè#õ’¤EÉÝCÒˆÂÖŽ‹„#¥>Ñà6›'`{E_F±hüâÓPJ¼ˆ¦Ðm¼À [öJˆôŸËÄ7Ú¯¬TqæÌ)K-ò‰_üµ91ÞrÑ—kzªfJÊË3ƒÍÓžÊûX³âÛPØØ&£KÊJñ`YÝG¼)²²O;6ÊäÜ!£ƒE¤ë‹S_~e Õ³ Mt|#<?0m Þ?_êÇC¬.:{ T š Â_ô)G‡Å?[|76i¼0vüÓî=Þ:&¾QÅâ¶iqn;Í%‹¸É¦… ES›×\žH2éìÊïˆè[ͦÁ»E.‘^\¡¼4ÌœË^ŸPÅfo…÷Šn¥²”±T!¬sÍù_ ÇçÒ:†½G?({=ïu}n¿m¼`dj`ê=×Ï.¼B#´Ûÿ•eiÒQ*Aå™àß <®± “‘u ŒiŽðmìíd 1þ+#âkØ%ûQHÒç«ÕªÜN_íänˆרŽÁ.Hc$Vó…Fµeûãðnq¡€õl¹7ìÜ?®$« y¢Û’> ”™FŸuKÔc–ÃPåäÊåßêÃ1 ­Kîd´He²+f7Múr˜†õ ‡nÇaߢËÈís¹ KQ¨ø–ÚÖË5÷Û² Fq̉2q¥]/Oºã»¦,íhÃ,OzÍ›y¹[×È5è¶ ÉÞö.ö~³+)MÛ†JV²¼w™E} ™Íà"uTKÁ=û ±ÙPÀ×wxòãDvujƒ5ºmèb¤‹~‰äÌ6Áâm×f.Á²ž±€ã;E‘n iLõW0ö.%ÓPå|T¢wô¦çJ¬Œè)\Aø Ê|â«Å"«›7k¯eé ùvºŸy··8YüÜL"L©CWÜšZ§œíè™ ?ÉÀ•ÂVþ™BŠ_á«ãaSrwÚ˜o£u%ü2¬oýù™øÀµŸ¿¥…)ó´Ÿþ®uЉ`Èà€šSöƒ-ù5k.ÎÊž Î%dTª…ç;°¸¿söh¾`X~ÝÛÿ9<þ£[Ñ<]°³ W{óKO†Éá“ÓÒ„V’¹¨‚mÖàsZ?/잺‰Q•†²°CzŒ¥©Ÿ€›|e¦ñÝê̬ËÙòS½+”MLDü”¬<ð×"Cû•3§|{>\ÑÅn3¸ðdšye¬8êEr×®O@é™›Ôw­ö¸lYŽ8„­Ad'k‰¹†ÜðŠÞö„-)DDëV´ '*øYTœÆ/å‹Ð˜:©3_ ‚“(Õîñ‚YV>bÜ WHr-ò#>ì¬÷عwD«ü²ä)Î78E[R¬{Œ\1›õjpÏñ[µßSÒýµQ=Ð È s¤×Ç'á7=Ú@TÙ‹ÉF!±Öq¸nÏNŒèª‰Ù9Zóû±T߸ö>,I1ø·%ŸÏc—YÚã à—ˆ¼ÅM"Vy«ÕžNÿl¦æeÅ;Ç —‰ÁUëC7c‰ôÙ%Ó|£Xù‹¶‹UÔ,fœÉvžkAû½â‘‘G„aq&1n#ë#¸‹>yaoê­1ïþrv¿µóRÓ¥Ö6Zi…1#<ý¶¡/Ê›õ•™¸G[üvć*t<%º”ê‚,þ[Ž~b‘FF§®±zØ`ðgwbFé¯|Ê4ýD±ßA·ÛÂõ¶ûú? çÓ™ 1a…!íèN6C§#\mqg;yÒ¹gËÞA³öVîmÎú¯g•Ÿvßß÷5¨sP¸?vÒ«tBÃxÙ§gßûβb’7‘½ôÀÙ„s·2yß3v=ÁÖm˜7Jv;£.ïDƒ´eÆHÊ€œGsÜp$·©Œ‹ةɑW2uc®Àpɦ›Õf×[øÕJpµ Ñ‘ý¼‰ú^Ï6Þ0W¹D K³õúÇ„ªÒ'ÅECœ®eŠå1Ù[¹ÐE‚XøÂ"ã3V¾oöH;>놅lØ`ݤ¸ÏL:Ûw#Õ$œX„=ë‡WÖ…Í›)š01OÓ!½Ü©ŸÓ*cRºË:2«ôÏNˆBÂP2ïS20k_abÍóÍÜLΚWÀù·§uÖÅ¥ ¯ Çó®°Ìì°¶ÕëÏB4›ûXåX†Œ·õ"îmí&x ª#%à#Hå’6ïb9ª`‚fda• u@âCn»×e.6›éâÛœmõ 2©·˜UÇwïnªØÔ“޾nÝìbÕç²½Z\ç‚×§–Ìé”#Þ“ýq$Á'sد9`@4öÓ{3ŸKžÝÄ:ØyMïvß\%n|D>lŽj Áa‰H^ Ã-碭ì(æRf°½ëY$¡#ÖK7c ng˜UèÛßù¯FÎî〲²!¾Y †(_yW°< ƒ¤ðÓ×ò©wú@ÊÉš~*@eð4ã<œmÐ0~Y×ç(pâ`š Fã78$í«xËÞÄM©í\¡´?f¾åkdÉNáå‹>ܼûú‡lc¬ A<1)îhvëA± ³ã^„ÓgtÛGfПdG3WõüH+®ìfÎd¶{H¹ÆþåY9hnðï(•Ró¬ë…žq‘ùó-"p¡a$Ý&¦ îH7°þp,-Qƒ_ã››3¡fèƒ%ñô»˜-oíј¯ÚŸ¡îU›¦éãçu̧Æ)¯tÏq°ÎKŠƒµ¬.õ@úá0Z«ÍoA‡P>¬ÂEJ¦W */³³ª¡OÿÄ‘ºÚñW79*BsTéL tz±M0?ðÖ§vdºMÐѰëYˆîÖ*„öO7LÉf=Lý [CzAá—šU1?4ù†åÈýJ ˜K½ì쥦ùï×y3UâFB¸Beo¹ÔŸ .:žžÌýªp¹ÛeÄOêí+2W Î7ž³œIó;›áG{]z‚‰ÌŸH+âàLb©6§iÂ_,¶C€È÷AfÃt·­•¢|Ž_-[v}}UØ/Oö9t§ctšªùp!£ÅEtסäU«ÈòŒG§M/,²ô’+B]lB,>Òg0RNî`2'4&»´nJJë Jp4µ'Ö àÞº#e†^Ù|R8þòËЂCS’à„¤1„Íøµ§Ÿ¹½4.[tä6lvû-ú0iÖFåÜ¢vðb”>ÇZÂ@$¡ãÙ“ÛŲî á)µ÷ $~vw„—Cºí÷²ÉÛ»/Ïá;ÓR'[?„ù`Ü‹JWvòó—ôµ­; 4_Ðe?4dû…Ì›«YƦ%07ZÙ‘ £³ 9/§y”X¯(Hç{å{MsÎêu^?ÞÝZË9ÃÕdôÆ`x“o¡f¬ 5Ȭ+”Š=´ã~Z”ôéG†Z€ÚlÓ®„óÄFù}«[æ»éö|—s’|\¦0upBý³ß®Ê„CF*³d®å›ZÄy™žÙý”Û4b]t¢·Ÿ=EÉ#æÐHLæáïºÑÿú©F¿É÷µ“Id }e7ü½º*ÍÀþÖ„’zhÏ Z⤉ÌéMèÃŒó>¬YѬ=¬êÜa%/ÊCež„1GÎÛæBVê ± ”Z-¹Œ@} ÄJQ¸þa! zARÓª?ôaO&üªºF¿GÿYIP‡±OˆH€¡þ%©.æy¢x[ÄÖwÄY3U2M?\&Ç4RŠm³Ô}1‡ º<àoüW4ºÅ†Òi*E&hIÕ˜·ö`Ó¬)ƒ°LÜxÙ­ÈÞ „”Šïò\ÔHÈóÒ$¸YŒÈ™»ÕM?9e)ùu©j1àÈI:£ 1<:R¢)ß1âB¤½ï ¯öKí|ê‹)7TáK7ÖYä¤H‚hiṯ¸MÑ-3*@ø7 ­ø™¼ü\SºÇÙÒ :DÍ¢ þ^øF¿¦ãoýU$8ðgˆ~ÊÔ±de¯Góm?p?Ž*í6{ºÍ½¬7?ç 0æL_ÄŽfšIÑÒ&øIð‹&UyLèË4 sóƒ7¸Õº"=i5â¨e¥ûÂ%Ó'nŠ}†‡•Y¬:wö»UCö ¦1³™¹ácFS£ªL~V]ÒG õ«!6åAvDô4*ÍtˆFLWŸÎÎ;Ô+Òp pydÞã©æ¥Y¾~˜5³™ŽD½vdŸÈð“Þ<ô¼ì 8{M¯‰—™3à„ã8œ¯ÒÊ#\?¬}|éû°™‡†¨~ê"}*}€ T-¼T#ip$FßıÌckKÿ9V !@>OÍc³¹H¥ôr¨2 qgz‚6B… Яv+i¸ÈK†:“n:FØ"ñ–Õšë`ôe†vîó½Â^~¯Eô ex¹v‚h΄¡š;ÍŒ5n}i˜³ý–•4CR(ÐiŽ(·CÆ{X7%\œºUÆÆò¿:¦tîÆZû:½ã÷.}ì"×ä=^š ð[Ë¥ÙŽU½Ä§Bõu?à[3<çÏ\ËGâGi¼jý„÷e Bó•2ÁKý]¾X-–Oº·pù¢x¦þ\KWòmRî+—VJ"OPoÎ…“„Æ cKTl…¹¤åþÍ=¹ú÷óö3•:o9Ë—Ú:³ÐŒÞ„嶦Ro56`;ûú±¬ˆ)|Ðý’òMôÜdÁ 3BçÅŽt{‘4Še*JŸ¾÷>7–˜\Æù*ªBC@åÜIÿìK,q¢¿#BËÑy°cšÔAdÊ+¸ó±P™²ØRð×çŒüCGÓ Kù:öß¶s ³Ç1ÐVmûV ŸÝ‡K£nÒ ?ë|Ý×-š "v«+Ê×=ëÄ‘V8éCïJJÊ£MÏ)ùþYñN Ñ|m1Ù.’2§ÌßýF_Í%fŽ£ŠO¢À‹kûZ Xù¬5V/oe¶ç œê*Y¬•V­°MA— Z²êüY}DûcSÓ_i@—M` 'åš }ªCg§ªó6Ú±Ií©J›|íÊÅÒã0%EÛIا_ö˜~ªÒK„ ²_£ø¬‘QàSÂ}(ڪÉK=ŒÐv ÔY¤ôØäb0ŽMZ Í[ÅPEš±¡ðïAk9J*†[±bèý?l?Ž endstream endobj 92 0 obj << /Length1 1698 /Length2 10419 /Length3 0 /Length 11502 /Filter /FlateDecode >> stream xÚ·PÊÖ® Á]ƒËàîîîœ@p`°ÁÝÝBpw îî. \‚K ¸»\¶|gïóýÕ½E̳äí^Ýku Td*êLbf` 4ØÎ™‰™• ¡¤ÆÆ`eå`feeG¤¢Ò9Ûÿ6#Ri@`;þH8ßl’ÆÎoqJ`;€¼‹ €ÀÆÍÏÆÃÏÊ `geåûŸ@°#?@ÒØdPbȃí€NˆT`{G…¥óÛ2ÿó@kJ`ãããaü3 f t™Û”Œ-¶o+šÛÔÁ¦  ³ÇIÐ Z:;Ûó³°¸¹¹1Û:1ƒ-„én gK€Ð èè 4üQ0@ÙØøWëT KÓ_vu°¹³›±#ðf°™íœÞ2\ìÌ€Ž€·ÅêrŠ€ö@»¿‚ÿ `ü}66f¶ÿÈýý‡ÈîÏdcSS°­½±ÈÎ`²>H+2;»;3ŒíÌþ4¶q¿å»ƒlŒMÞþܹ1@ZL`üVàßå9™:‚ì˜@6”Èò‡ÌÛ)KÙ™I€mmvÎNˆìOä4};v–¿nÖÚìfçõ7˜ƒìÌÌÿ(ÂÌÅžEÓäà”“ü;äÍ„øÍè àbeeåáã@wSK–?ä5<ì:Ùþ0¿Uàãe¶˜¿ô™ßþ z9»ÎŽ.@¯;þ›ÙØf Sg€ Ðd‡øú›hþ¿]¾#Èð‰õ­÷جüüç“þ[{™íl<þ ÿó~YÔäåÄÅþªø?>qq°;À‹‰ƒÀÄÎÅ àãäðpò|þ[EÅô÷.XÿI•³3øþÚìÛ)ýφ]ÿ¾Ú¿gƒðßZÊà·¦hÿéq=V.VÓ·_lÿÏþgÊÿ_ƒÿ¡òëñÿ½!i›?Ý´úÿ?nc[Çßo=ëâüÖÿJà·)°ûß¡ÚÀ¿fV hr±ýß^9gã·9³³°ùÏ1‚œ¤Aî@3³©å_Íò—]ó!³ÙUÀN ?^+ëÿò½M–©õÛËáôÖ‘º€oƒóßKJÙ™‚Íþ˜0v.n€±££±"ë[#±sq¼ØÞFÑ èþgX˜íÀÎo)€·ò|æ`GÄ?n”‡À"û‡é/â°ÈýC<¥ÿ/+€Eåb°¨þCoyêÿ'€EãzSÑþñ½‘ñ?Ä`1ýýQ?‹Ù¿ðm à¿ðMÖò_È`ý y,6ÿ Û›”Ý¿ðM ü/|“rü¾I9ý ¹,Îÿ·-»ü ßrý¾•àö²¿-äñ'þ×5™º8:¾=TÒÛþÿù*î@SÄ¥y°©@°U]pÇ]¡Óî„Ð Õ®v*“×’c§Ë*\]ufàºãXÒ·>ô•m)ÚkÑeÒg¯ÃÖ¸°¶ÕöGï'Ã8µ©ÝvÄÅ8C“…‡bõƒÄDL¢¿¼Ÿ¼µ¬¡Z!»å©r\xQUò±îÜdÜëË~Ž…ÎïªþªæV@z*›fú¬­PŒ.îê‹…½]gùRƒŽý¼â::¨ë*3"I2Ëù¹è0?UÒxºÐV3z¥EÂ_t´ãc~@µ ¼‹ž—ÖPÚzœÔ**Q’}·I±³0å¡+Ó™hzM¦Qóq3åÖÇÂÚ/K÷'îÚ«ò™EÌ+üNø.T-äø;¹z[{îàš3`ÿ†Þ}Ërºc3¬‘XÎ-Ùå{¼`¶$ïü™‡î¾kúðTÕ³ óSÈøÇj¸f¾’tãÓúÁp›vWtÐ9£Fý©É0¼Ñów sXBî Z³"95>QAº²ù§‚Æ`¢õè„[ÿ† ã‰eµòÁ3[ÿ,:?¢™Íz4‚Š>C18¬A÷j)±³”ÅÑÅtÃÉ^Æ÷§=([‹ÚêŽÌ¡“ew)õ/i‰W=>ù”±¢æ­Êv‹¨[Æ_ñ­Œ:}™ìàšªƒÞ J¹-ŸÚ‘\Í*ìüww¿,öH:UލÁN“Q-¾‘Bž¥ú¤•P«s6—qzCHÏE q^‘2#·ß#ïÑ„\—˜„¿¡ðac?aúжÀE™¢§éëˬãÆt6!p"æž/ºÎHdQНÓÙq”{ÃŒ¯¥ÌÌOâ"óð²æ$×à±Ð'™¼< ’TÛ°·m‰ÐHýÝbeP¥ü6ù;÷³½ ø{ VÞ_K{ʹå~_4÷}üµáïWùD%˜òE»ZºS?T®fòjðžc*jÂÉl2Qó=ŸÒ÷iòwµy®âXÑ×Uƒ›ÂtæÅÉvú>fS_"Ä—ë @/v9‰óX²V‰ÑÎ.DbÊÁê>ïwBüJóñ !Û1½xSŒ©&+ j —8Äàa $2õ· >„ã [çÇhÖ{ ]æ ¿ ¯ºxzž’Á-vâ£neóçøuŽÅc°Py’læÈ8õv– !˜&úá¬mÝ«)šÍcÎa¯§$y:)EúéÕ:­¬–IwÂöPB–M”Púƒ0Ò¥~móÉ4kòèòr#ŸÚ<ò–áBoTÜœŒXçÍ *Z\AÑ·ö¤·bm¾µ¡ mÿg² ïÙ Ë8zÆ©çE>´–\å~¦TE–éÇ„kÚ•­ Íi‡…™u8à4À0ÍFW,ãn¡¹xgTø&|÷g$ ‰.‘«!>©î“¶@¾U#æš_–­Ø×óŽ=CßÃÝ÷ûïÒçig²*ŒJ†j¤•#Õ/Ëü½\ј :MÙ±¾ƒåYèŸeÊûúÒõÒøÁB#–xímäxˆ8–¾=…eû*,êA÷–‚ázØu·ÒÕÍ’·¦däZZù\ýø1ýàÒYï´Š»mWv#ÉÁûÍ(ÞI–ß5ðßótª‹³¸`#»Ý}d¸õÕþ®U h 2¸µ”\4ôv3I5J>í°u‘Ìm‹Éu)a©²×·ÝËͳ“©å5Iª€>nB B­{‹ã1÷Z—æ· ôgÕŒÁƒÐW<¥úL3D“±´Î^¾ZÈ—„' 'K¹‚ ?Û}³Õ>Á*dNlL¬Ê×e×_¢„^ Zo²]Z?N©/gŠáöÖ²ª´î犌(±X„=›Lx–²Ÿi¬öäða#(A»à}ÎÇ©í¾.æå™1öB:QíÊeÍòí*ï‘—Ëñ! ¬BRteôt*)KŸ ,„lèçÕW!.ï‡Ý:2uâqâmTµg=èŸt€ vÐ#[†"”¯Ñ¹¢ü£^'ØWÂJÁòxÕ7­-s:vÃ×þ»ôœÊ•‘òPìRtEÛ¿Xê3²¯ØkËà¤RJ O߀M®MZpfuYŒNÔ\^$3Ý9*l¼ÿHÜÉÆ"x×éÞ´‹öñU"=§Eé$ì£â6ypiêj‹4hl¤ NÉËPg*С0±“ôÞŒ»ÖbeÒ¦6Õ>i”›RN>á£KŠé^Ø£N³Äî‘sŠ}¶@5`·Ì¾ëÜaã¡Z¬>|ÜpN5q*_+1Û¿z!ç£Øó%BýSW僥Búú~B '­âñIâAeT Vsq9.kŽMŠ•ÖdxÛtPî‘Ñý{¯2_ÿO­T÷ßh«-‰±!ó#Ž«ÊhµV`kh±ð¦¶Æ4Òi€È·IÁ{5VŸO«<3yD~Õ›z­ nÀâ¤K7Ž)ÜMÍMv,è¿Ñ¹=Ò×:AIK•+F!Hw¨Sé6™i}L‰ ý&窚†É”oиÇÜCב ¤g¡’YX‘Ø|îAwÔˆŽ‹ÐD.ò©Ë¢›êGÂÏ(òˆ À²/r¤ÍÄÏJOE¬Ô þG§bÓÎS)ØÝ¡ADoÝ×ø Uc;ôÀütCŠlaŸTh¾>ËÍR>ÕTÌì·7ü7žëOÍ0ÌÀãÜ”û$æÝÞwè³æZs°-lňPùKT›$9Úqöá˜^¬öˆfs”¢éä1üôƒ¾°þ–.—$4öõ*g©Zo”„~Ì÷·i»ÑñÉÚ(]êR*{ÂÆweÚ^6¨–M3ÂA4§ˆˆ4h!¶)—ùDž5.!@Ùã—W[æ sDÛ¨:]„‰?ÍÕº¦Q~Ùc>yßr•n:&Æ'×-?“û‰E"îÖ óƒ%Y«±ºÚÁ‹ñe5ۦɣGò‡kx/e{O¾9ûtÔîûe]2V¹aí4µ–ÏhC³\èQ·A†7só][ìIÂcÏAg˘ÜõY;×%ï0¼ÆYC®Û³ô©ëñ“µ‚}+&¦{tÌVð•e›ý\QR]…i'+5±©ò0ˆ{wû> vòFIÆ2íÚi²É4å("GNŽ”J¯<+‹ £1!6„jú4çŠroê¦!0îi5þ1¼ dA/ƒCzô¾yß.ª 6ÔÖq–j]©Ù ªÛ@ =Œ JDoco‹?Ž©¶oon¶o\©H›5ʈ#Yª<‚žRØÞlǼŒ¯´ƒåS˜ù•~Rd†0?Àmpd‚³ ÜÿXSâÁwO‘ 9µoKXW!¥4¬+Ε¨ôç0UÓBøÑˆ¯¬Å`€³t?'»PÌó8=9+ô0@¤ÜÑIÓñÃ<&g‹.E¢»×'Q¥~t³'Þ«C{_ºŽ™X–h ]UÙ{/Ö <0—‚¨ö>?(Ýw„¯óK¨„z»ROmÛõ_ð2ê> Œ¼,v öÈ” ÌMN+³ÊŽz3Þo’D»z*› ÞærŽ-þ•¦”å<ž”Ûwìåeƒ•ju\µ6Ém¤×ѧÁ"s³ ³›ï¼ÀÓ›$[/ðü­+¶aÔ‹©!?\ªPÈì E²{M]?ú3"ŒûZE€ÖrI‹†¿†Ïc1âêŸkz§] ‹W¡«K¹­ ý„¡´z]Ó<¡aõxñß‘„éϳù ke”§OŒƒúÑ]£ q¬ýÖæ©òUWtƒóVYˆvÒ-Ó "šmæÊø«Î× P…/×A’b,¥wï=ÇãV²‡ÐúÕHç—¼¹'WÝ©P°mß,6!åð~£™Gÿ¾ü8žUÅâÀ×dݰQw$¤5s«¥Q5 -—lñ7¦¹ÜêEVG Çe½RÎ,™‚•ilÝPöE •"Žj4“RŠÛÜ¿öî@âÑpùnn¢]ifº]ü:Y|ü3òE¥…9ñûìmõªŒDîŽMA"j+£ «’VØb„Ê( .:íBãsê¶Ó Ù* $òVOªâåŒÙ‚d+ [¤BOf%Þýç;lMø ˜FpCŒr DÖ!-àÜ[KŒ¼áPò’‘âj.RQmƒåkq¢UójãiðÃ<’}Æ÷õ-÷rõ϶nhVÇ%ÛÔ~Œsè–àÄaæ}Ý;”"ãzS)2Ú¸u˜RBíbÀ ô“ª5F²ŸbÊ·§_b19Í¢£7ò®×Œ€'ÉžúiJÃ9÷ÖuO–¡J·Á©Ïe‘Ø:›¨62C‡wùi)¾[–ŸÉ£öâ뺵ª‚>Íij \—©p³!l·Dâ»îm|oæL„#í²'wQ …³³ô ¢_§c™ÈåæIûçoßåg%cn«ß\–qÑ”àLœ¥úH³ÒµÒ9VìRg¬kÆÏá-Œ®¬œÊO&,w©?¨:ÇÂã«é ݤþ´kl€&Ê*Üp!²€UáÔSKT¢( òÝ¢ø=ÿîðÃÙq`xi¿.A[LºÁðUÏ'$£u‰ørÜ øt›'2ˆDƒ¤d(~ý ¥ÃˆòÐ4ì#c6‰€ñ Í5>^to—ݨmvT[3ý·×ßÛˆ¶kø$×+–q0&OiÝÖê‡Ì;žr¯,BÉíÆŽžM…F¨É$ÏܹåÜqD³v§ë=8†}‰C DõB·jÏp¶¸9èu—ñl‘ ÀÊ “ª ŸœD»véÐ/rNÏ¿„]*jŠPv£Úó*8«Ê®ëY…6ÎâüxÊ_D­mRìŠGô0|Â/ò/‚Ýo«oíÛ<õ|²·¿äø´Óp!ý}~®U›®³IPÄÿ þþê ì„_¨~¼f)£)ëN8CΠäû¡ˆõ+ü¼tß÷Õi‚ ño»î’F ªnæ%öÉÒe?[îË(hå?‹Ò@ùüè:'!3z:§;.è2 øÀ¶ýêq‰fÑPgÇÿø;»hÆvù¤²é!GðLD€DFõªÇn”é:êT3‚¿ºt/è°PÖjRëó ImÝÅC¾t)CŸ–5ÿÓ8OzKbo®€NÖð;ñ#ºðŒæ;#ÛÍW!Bcû´›áb)¤zP­€2 ¶-WœòãqT¬ï ¢’ –z°ØÉm”4/óÝj45›©H(E.Y䊸líÕËÐÖ’>îóBÿw^»‡I‡Ä­CØ'¥¬²YÕ#yô‰ô*Œ™Fä~+ó‹À5ÊëâN¶E €>D~s†M¢XYÓÍLÄxvÖô÷=â@÷¼G\Ù.F˜Ê>¼HºÂ&ÚƒœOªÚr%Ýb¶ ,õÆì³’ñöF¯@úÓ×ÜŸtF*Îç\¼šgkâ—8¡µ:l|ýh9s®~hÞÞ¶åku÷“–fW¢ke7|·7º€ÀY$ êðÜ”RþèÐb¾à¸Ã&¯´í(±Xu[íú_)þú\äQÏŽR®K»á´DË–çy™=6èò›ÚøÒ:‰å#|S8ÅÃÏFJR=¬ ÌñG–é}³«ÈTߟ:;ðª´÷¸œ#]˯zŒTÇÓŽ¦™KOž@Æýe3b‘B‡³( Ysyv¼ªU¼*0½ãçh”ö;0H–mC. ' ÍYžôø |t¥Ùµ0ý%ÙXÊV›!ÉšíD¤¡l 8l`Æf·÷xÁgI¼{IÒf{…BÜ”*z`DƒfXµæt ÜØ¸ãÓŸxÞ=XZ@n¥>Õ©£xè·'nŽcñ4‰]‘*Š–S0OÁ´ågš’CvCç±–-P¥¸óÆád¥’Ø_>Å+‘?C©Ëc9à]Ø&jפfŠRL-ƽè†xª`‹•ÁC‡æìé75øú„[@ê"N¨Pä¯^u‡'LÚ¹ -Rh°·¶ŸH> ·OS=… ªé›“ÉŠ;ÉOvK Üt“vAsý|IpÉ»—šu¹–›"Yœ_~Oªú‚xz<_ŽÚŽ3ÜWâB‰¿Rsþ9ÍòçGƒ&Äkú/vMNøU¯n†Ã ÿŸ_+“È kpL~™Ñ ?!J9îI[‹öj*d©¤%#‘6’j•I· ˜¿¼Jô¤¾[¹Ñ EN2P@¸ÚPÏVHÄÂU,ß•~ÝR^ îSÖŽRµuEï(žÑ~  Ì—±ÏÀµR³=%²¤þöKIZb,Iu–vP-£þŠJé¬g8Ùéô5²…Çn6Ýt„9¶êîÜjf/:²­gÝã}ûQª“çY–P:ÛëÆ•¹ÞÀ@¶Ïå¥6½«–ì¸%‰sƒö³ta‡8eQRzqâ•Î~=ß³=[ˇ6`{R˜°,VÓ±@x#‰2¡I¦ >ôæªïŽaÑ1feúö®ª8„.ëQÏò!ðGد;k¿Ó»á ê…²ÙóGuÔhÎuøÉ–ë‘U!ƒZŽq‡êiÂÑå/˜ÊBw÷ÖÄÞzƒ¤æüG,ë ‹©ú ×Só^ cb;JIhŒ£¸øÚ‰3=äFáoh ³41Áïû‚d"§ ¥-xv¬›ÃDZ ðõ+®€è%`‡ÆµVüžD%T:¥'öÙŠñ‹M‰û¢îs…ŸMu ¡WöÌN휈ñ&9Úor:æÇ´ |˜taŸ}½!wÑçàŽÆðáÙ©Íh‰ƒP–v—4ˆ(ÛžÔO écóRe–ˆÆýÙ³"w¼"ãP"Ë•Å×)ï–Oèqk=pXÃq²[S8T:·‹„0:×N{SY* ¤\úsn"¼ž!­ûHzn.tÑsY­¾ó^W3?ÁH]ÉJš›VT°¦Ñd&q­ˆ“/â㉒”˜F'ºÉ¹© ’¶OF³EŽrz! 3¦å†š)POéÎm‹A¦6mÁ¸b³t™h¶Ö©•†¬Â€TŠ.|Âô *Qäu¢1 É~ËDo¼ót'.+Âø ®†´®rC2ÊDP‚iˆU5®_Öိå³;!Ç ¼ðRBe PëÓ3UÞLPo„§ÍÜGc-ýŸ:ø‘¨C* &eÀÆ9´„mUNh¨Ç|û³&a"]¿AvKÀd<* \†]ü|¬úyoèÑVöDÝ»ôr8Ë?šÒ¿Ÿ\åA~ïXw˜DÊ4™]#–9aÒ3'³j-âöµ¸Q?`5cVRØÒ²Ãß«¼`§ýâ™di‡uMí ú)qPV…6LÕ—1N"ÿë:b©;l+îK©íùÒŽ1VžÀWdÝkŠCb÷Ó¤a)$²ÔÕºÎ~æ{ädá}&+¹¨EÓ:å·ÿ †oQö‚ ν›0œ\£'vÕϼCˆÔÓUÏ´ÀJw†R!™íFû ”ä{† ¹{¶ŽB1ððXÌ3ÙíŒÎ2í×7i\êa)tPÖX¢˜ÞÄì}G׻ψ‚õù­¤'«=)Ú¬ì&óY!ÂûÕáU9b:ó»Í¦ÞP8§ŒºÁÐñÆG²|ôáËýWÿG"\Ø!ÆœK§8ý;!‹ZYÔ)[>¾]wíî!íÐÕÉÔå#—VìʃÏóì0z aÚ4V‘24±¨ÏÔ8IbÜÅy€LËv¦øoj2pgüñ, S¯Iô²­2|b@d&u‘ÔNm‹æî®¨íå–uþÏY!›Ö3‰äù{ÏdYázy¾DÑ,©a}î÷ü…²ͧ ‰ñL¤‘5qÊn›ÍˆµB;É5”è tê¥{´.ºa­÷èUäºÐ(©B.x©¬DjAÛú\aüuÛÃês?ååê7WÈ|#ËÇaÒ¢¾2"¬ÜÑ<­3JÀWu·-}•H³$ËozêØß-û=’2ãÆÌÕTxÂ}Úfv¯6‰e 0b[ù`wM„'µøôU=¢iRµÑ ²Ú3M¶*ƒt‹ä.x§‡ï•@GäàÑÖ÷Í—d€ùð äû>½N-Öq›©£1Æ8ë.†E9@Æúõ1ÂfD DË ú-ä)Kf§êº*ï"¾¥« §4kfP†]ÓÜåÀÂWfùÖOVØo„^¾N$yé+iá&´¼®¶]¢? ìÇzOœ†ãSJAÉû@f7!Ãç röˆ!ŽxïÈ1ÛýÓ¹þž¶Z‰ñ—ù®›ÔeÞ(Ÿˆüƒz *÷šÞLõù¹þ›¼cZ´IºhòcÝ&7Ìd~ÞUNWyßaÈ–ªÖŠJüq኱ñ|>®kW§Üã"ÏM$(a# ï‡Ýö&7Ê–h¼e®îÓ ¶wÝzâ5 ÉÞYk¾CãœÞÑRÒ×&´Xýp‰‡O«´à)%&»òÙ† {,¢~*w²‚"˜m£c¹îA7#5­ ¯.ÏÞͪÉ÷ý¨`þužb÷½¹j=mª7ô(rî,q•d&Š\¸¢Wà'Þlq?¼˜]q¿2š§ò†Ç•níß\0 © ¿iRƒ†G†1‰‚fo—òÊ;Z)®L²­¸¤§¿H³6ëÍ„®h­þÈþ˜¼~ÁhI(¸+ÝJnÞÛÛÑC¢l³Ç4kV·9S<Ì£Ž1¯Rº'‰§™í2NL/+÷Kì?Ì"Ã<*èÛ°ùÞþ%xK†ËòL%/®rz£,<†'¯¤t¯ßµˆ…_sn²êz,=%ðB–Ÿ«¤"t¡½—†oÒ²ˆ&½uøóìjN*J OÇí:j,C£ê{£•1ô° ¶Aæ|}BNg†ÃŒ*Ó­X(Ð÷_ÙÊ`KÊ0.cúù§~ ãJŽ(°i\;Tó–mJ·8R™²ÚìZÄ‹ª×c㑃£Ü9É&ü Ã…pBûN¿Ì&í»^¨[„ðÉí ?(@ì(UߨûC®ëh4n&Œ._H®PØ5¤ØtÖ‚@VÆûÖЈuAµ°@,ý‰+Åjƒ_‹ZG:±HCRÅù‡î†GÈkBöú&;Ì dªSU.Ù•ì*¶ìALþqáßðË*52* ß¾žå=ËW½;‘ÓDŒcî…Îs2¿¨%Ý£Ìèw R¼{6>U>t¸€Ét ÆâŒ DWÍÕ$Ž[hî@r³+í3 å¬FIelÓØ:8-¹o ¡Ÿ‹v¨›r@HaìçgF^!y;[­) ßr¾¦?ÐÚq3<‚¤&’$w4€ø¬I£ˆH=ùþ…lG ?„3û*õ>™vð²ë¨Éðµ®¼ëTÛ8®œ¬ƒÑ5Œ= Œè—1t9Ÿ×ußòÞená)t_~$oá—ŽrŸÛ\P)öÚµ<};ã6ˆÕÿi‹1 :,¹R¤¡Egé 'ÚÇr/ñ(ã7;®ès Ø£¦½ŽŠù“†T¾Á<<‰§ž@ IEŒ'-]¬0í´ë}ž,íñC{O,éÍ¥|)ÓUÅ&l÷cŸ}¬…0 æ„îUIïßÅΩÜ`˜p²Í°©æÕ&½˜‘X æ‘Zn‡v‹›õnó]Ú—hmÒ)8jùS>Òµ,¿;îM޵ž„w>Rà/=®ÂÙÖØ°sqOšBRª%oE6´SË‘?§˜°­V“‹… OÏU+÷X`•ªžIOhž]Bezeö®X1˜-›Íüzm{béÝCojŸ6ýƒ}+¨ BȪ ¤tÐå³ì&²V¸ÇÕ“+²Õ “«ê ë,í¥ U-F%“Ö±d6j–é4’‘8à—½r'©Bý/Pß#)ÚøÑïv"`\êàx#sñ{EaÌÓ–%A"#$ôŠ·áèxxÝC—Öè†ãéG“‡ÛqÊ-™ñl­¾¥Çð¨"Õ/$O@ž³ô=¯Á@î™)fv† W"34ë3éƒoûO7·zÝÎ/f凩º¥<6ê’V¸v_i/&­CiÝ/Gý’‡Ÿ±’Uð0Æ%¶¸SÅvdBÒ 7„gÆobÓ™—Œú.š–k$·7ê¶?ÞþÙª’«ñt´ˆÂé¶vòô‹× Ù<ëñ…€ I„N ƒB™–…™#IË¡¤}~¯<“_4K…¹ý”%ƒ-OR›.bÃòŶß6¿KáwªP´­•¢ãOâërQ¥çÚ)ìŽõKüñvˆ¯‡æ{¦ç&2e}÷gÛKÍL=ãëWÛ-«Ë³|‰Ç}è‰×Ð’ÁkƒˆÈΆ¢Ì²÷ûÑZ4Ñ,sq ëÒŸuÇôrIA&¡sR°Y7•IU$‰MùË,(™Ù˜ UeÔŸ&4evmÙr¾¯g¢­úX?‰âÒPÆ]æ&ë¼ÜáÇ7²Cô¼Äl9dÙ ¢EdÍo)ûH”á”÷åähÌqã}oIðO®®Ê”ïÔvt.Im#×:ü)ÌQÙ0f–œ ó{U†…¬}CÓõ)_ea3áûާ{Ê^÷`×öú“XùvÎ9RyhO¡Ûáë³è¢a˜ÄhØ’ŸT¸_ö ¢"/.QgÔ,.*»ÖöVñ­kûuÓ¦mPvi12mÙá£uíœÐ°¥ “ã=UĨ`ñŒ‰;”»ñ¶PÑqr =ë'‹1È‹mTæ‚ó~ˆ0m4Ä?(b\‡Àô߆骭Ìtî»5Ë,¼~Ìí5~%ÊÀ(<ï‹ûº/ŒËL-[qT£š®g:j·‹ÜO΋è {ïïŒ0UŽó•…˜‰UéÆýù“L’›õfyëšÿÇNóaKäß™›:¡ ?™ìÄß?m;*ÖÌÄLì)u'ïxx­–¥ð®Ò9–L}ÛtSul %åá”!·ÅÇ˹–q“übჹ@޽ Ͼ#ÀÔ{yw^^)ä>ÖšæªLî\ U¼QIoWS!„\®À®xÿ"€\=™k{²EAÿpeÕ[O=,‚Eý.“­:ÅøÉ§ÐžçÀ´Ù¶üÆ…ë^XÂAJúÞ\ó®ñ(î„.ù§êÝ€ŒÍôµp8'ÉÜ®-¸A ±»HíhnÊö Ãi(ÂDÓÇä/`ɪiV…zDü¸ð˜çJŠï|4÷ÐöU*t9Ï$}Oj´î!êØ½¥óß…ÉyŸAXzcœ5UÅþj¿p?îõª?çŠñ†¾é䪶 PIà}6yTC¿LÁ©-ÉpÔ~m5³ÜŒš!F ÌÈ\ Ê?Æ´â,ÀæüÑ‚(ëOñÙ•zé]Ì‘•!EL]U›Ì/^ƒ$s<ümŸvîE0^‰¸nH¯žäîÑ]ä"ÈÕJ@¨•ι¤v(ñÀƒW¤M±"t>È›CuˆÁÙvE¿ìèÚAÛ·f¾á¶Ò®p¿pú‚S—7ˆÉ¢×eîf¨jí|2C+B)×å÷8kzÍ}W¢É2Dêæ G[Múj[yø) Œp/š†(ókºqÙ‚y<›X.P“Çr{ï:³uíÓGn-”„¤ ‚Ý‚MQ«äér“¤Ó&3lSiP=ŸúSšWFê)bÛ· W]u)ÎguJj½ËYùÒ¢ Ä1Áî8Þo Á8YºÃø‹^OGïW†¬² *cñŠå— ¿ún²Ã¤¸·(…Á/ÿHóíà`÷äA¡a¦†»|¥~úòèzÌñJ'î0"NG}¾I$Xò¥,L¼(4þ´y9Šênê¡îÂPã¡<éÛˆ0‰;èMÐYTbŽòciÞæòÄ1E™Kö") ÷:¸ Hƒ™’ƒ« o*ÿ˜£~oùNªX&\óœT殫ƒ¤0¦[µç‚#íôÛíƒ÷|¥+oO™ñaF+R,«ÃNų®¤ÜF Ð6³ôƒ*bQ¬g‰7y ÓÊw'ôÁZ]NA½(âñÑ0¼Ý ‘²‚{äo:Cùæ‡èšèýáÉÔ %\°Á €°>\]¯ÄM£bÅFˆÒÅoÃé)fhŽeûç'‹ýDÏÒ=Eô·0´ËëésœgçŒ'÷ij_—'=ôê9NW”Œ*®ì`vâŽvÎuÙpjm’©ã5uP;ÊÇÂ,á»+~–ÅÕ„LtþªÏViûŽ™^j7¹ êüLCeÂ3Dì~æ6x:Ð6üÿ«˜x8 endstream endobj 94 0 obj << /Length1 1425 /Length2 6648 /Length3 0 /Length 7625 /Filter /FlateDecode >> stream xÚwT”ÝÚ6€”„€ C 9À ÝHK7H Ã0ÀÌà0ÀÐ HIHIHH§”H("ÝA#! €Ä7ê{Î{Þóÿk}ßzÖzž½¯;ö×½×z€ìÆ‚J({¸: ‰„e*ºF0XT !MWø”hG{ PH™ÿ« áP S…bpjº($@ËÓ@$d ’2`0@ –þ—" -P…z!ºB-îATA¹û NÎÜ)ÿZxa|ˆ´´$è·9@É ŽFÀ H€.ã wúŒQ0ãó¼rÎŒ»Œ°°···ÔÍC…vRà¼g€ÜŽö‚;~¥ ЃºÁ'&D˜8#<þÀÆ(GŒ7 àW ŽôÀx"àhîl€±¦@ߎü£¬óGø«4ˆäßîþ²þåüm …ÁPnîP¤épD¸Âúê:B,€"~)B]=P8{¨á µÇ)ü PW2@qùý• pÇxy \e(üË ®ÈjH”›‰ñ ÿŸ* ‡áªî#ü»­.H”7ÒïÏÚtpü•‚ƒ§»°)ñÀ®©ú—"ÿs‚câ`0XRJ€caοœ›ø¸Ã !¿`\ü~î(w€#.xÂŽûûy@½à Úà÷Ÿ‚îÈ!€†ØÃHò¿½ã`¸ãŸ=®óh`Æÿzþ½²ÁqË…tõù[ýws…MµŒ ”5~'üo‘²2 ðEÄÁDZ ‰[üÓ‹ñWà¿m5‘Ž(€ôŸ`qUúWÀ^uŸ÷¯ÁàüÓ— ÇX8€÷o‚[ƒÅÁ0Ü ò¦ùo“ÿ»yù_þßñ¨{ººþ–òþÿ?R¨ÂÕç/9ޝž÷uQ¸ @þ·ª9üϸêžnÿ-ÕÄ@q3 „trýwê,ÜÁ9ÿ¡ÊÜô×€¹"p”â×…„€Áÿ%ÃMÌwixàøø[Ç Í?TCÂP¿¦KD\E£¡>ä¸ãvâ?n àØß  !Qœ —^À…&ÿÕOqQ€°#GYúÁ(Oô¿1i€0îâú[Æ8£áÿ€qˆ7ê÷þÁÁ<ÑhÜhþ&.òíßp8#Ÿ™DÁdÃï׆·W+Ýð\”®˜?åô›A¿ö<¥"Má«Ê ]BWJé{C3ÿY÷èö,Û¹ßVs=éÖ'†¯~úŸÙ&¬¼"Ÿfì*ØRª{w‹ì¦ ÉíUÿóþf!.„ÍøíZÀÜžRTùtÇÞ]غw¥s"'W W«$´)ÎJG›ÆZ‡óì³'˜8H0‚·®ð_ÛÃR}»–3tɦ•(@°ýX´ÐÏrY$îdÂw¡ÜDÄ£ƒ™‹Ù’éáѵ#Ü~Êë©Z×§ü^.¡?¤M0¾øè– q]çõ]Ñ3:Fo|»Ç ’áef&¤×Œ‰]j¹“äVÌžD"–½7¯µ„Õü&ÙlïÒOB\ê»JÖ•±¯ÚÓßÜa¼·µ´:R?(¸©¦@%ZŒ‘Õ •[‘uÝ—yKv\¨oœB“ÿј__ñ­tkîÐÒÌÇå´Ãêk9DZl#7/ÿ,!9öø81IáéxX`&›Ô’)Ü©v(ô?¤êY!_=XÞœ{ÔœLý ¡:’ž¬ÜÖRÕFò}K³¾‹ †í‚õ'ã~ºj¬#g‡çÉ‘ z,R§N™Û"†$2o hVýOU„/sssê?°üïKt½:ò¤ë±ÊÞ‚ˆ]GpœŽ§èÀõò+FÕAâ+üÔ*=%⬯GÒW<ÆGtÂL™]˜Üî”]U0gâøÞ’kýp¯bÔ?}~µIäÖu¶Rÿ¡ç¶-ÉIc]ØŸDf›[´Ç¥Õ§f¸ºës¶¶&vy0®PâîÃó…UôiØå}Ä‚ÐÜÙKOÑ]¢~éÀGŸìÁž«Ùö²ê¥R¼êþSôªÆÀ$ù‹H'$»aˆeêÃá§ÏªKõ/¢"¿¯V¼H¸Š\ƒJÚ¥>^µµ”Û§sÊÞ·l?߸V_úN²”“4‘ú %J8ä>•dìFŸ·¨W»"8ù å6© +U/[.6®Ö84M.­|SFÆ{…X:zí`à‡Q( äµõ/†ú3£«o¼9og¨®Þ‡Ä‰Ù@þ)5ÙÉöËa•næü*è=Èñâ…vçfGòZšY!©¡jñÊ‚VƒK¼ß ¼«mâzAè~6u{FÁ†ùÒñÓ ùèZøœ¤a¼†ÙVòr9²€&°?GÞ†xÃ2Á.–6çI$ÿ*A $Å:Ç3êÜ+ñ³±°ÕéÞ·ÀMyÅÎMý,²‘Bïm±ší¹ÅE†6,v/Kˆºuõ؇Iž0u~¼ë½!³·Zg$‰©È˜fÊz"`ã”X½Ig9NßqAyŽòð.}²nh—Õ(SÙ }ôIé´ÇKÛý¸«ÿNh«-òýL ^HzLó.Ûå|PŒ1&ã½Fö#Éò«£Ú­L’Q"mŽÙ*Ϧ` 7ˆ§bhØõ ±hîT›­µÙ§U—êÁóîn›t¤M¦×ª¨›rÇjs:™¹¼ ­«´H¥:ŒsÕä‹;îF_"ûÍcsŠ£U“9ï­ÄÂbߪñÍ}'I Ø “{ü’oè~™  |€vA} ¿ËËM’ØÖÓ#zÄ wo¼E?LV]“° ¯ÑH%}MûTÀñè~ëÑNÚ¼ï 髯¼‘aÖy@ÖÖö™óçXeþ'̦‚YUlKÔÖ]ç¼7;åU­ønŸ-‰0ÁG©|œ/f’¢ugÒ”äOÄõ¸^0A Ó\*¨ËV»®ù߬ zÍgÙ Ûg˜j‘HH’è¸GðÁ»€î9îH|§ŠÒ+tØAÊáÁ~2iüÂ}ºÖKïJošTJàw`Ƴ‡ÃŒô¶_ÝÆU¥zš¢ÐÕ}uÎ1Þæž¶Ÿ'$ÞX16$É7Ç™õØÜ´(kQ¶’W´¼Ûä{$¬m”Üä—ß™ .%Ì‹¶Ç· ¿l¯‡¿Ooy! ™nwëî*¤^xZ¯Ÿ}JËPÝÁz—ÝêsèÌt.QœÝIŸ‘ã7ÿ€F§ db1Œ$|´$ž _½®.©q™–¥·YǼ4—ÝŠ}Æ2ª ®¸*ñŠk²°x5&¡ÂÀEñÝ€Ï+ŸË(±ˆ:9âï ‹{ýIäU4¸{×S›n;ÌtÖ7ô)A ¥B•ý—¢í!v¾5÷ñõ ©sEg–Ö4ùB=èÝ’«¹_z<ÚÓ9^Úo^·1òIOOçF÷ª‚iœu2Œ'ø6Ë}%tWå?¥Ñ]pð4ë믧^tãêOæ'"ÂE3vP-7µü*éÛ{s»ïµ'ãoÉú µò<{ Y Éç’·ßÂ\ºãg¶TÕ²BÄOÕm Çø¤"ýo~p¸r”dX˜·=ûb­Ã ºPYú¥Ê%68Všüdq“,ÈôñH:‡ŸvHÿŠööØW¦§óD^7éï€béFã"co‚$ê“ 8T»›ÐÎ:r6¤J«Zo´^J¯­Ìµ'ì0‰ü¸/Ç.ì*Rö<íÍ—Ívq–§K3ü¤²ë+üdô‹YRšÏ´‡`Ö‡YÛúlgÙÅ‘c &©›?~ÒIgßTåÝ臌Iïæ=õ€O1Gd{5z(%¹À^;XJôHjf²Ç$_ TÎ×+0`;îÜ»sשw€”S¹8ÈÀš(uY‚ø”“Üœ¼}xæT8G©‘œœ(‘,yAI“3â˜|Ì㈬É2ó5ö¬>W2ïö•ûaz–Òp¢jî]4,¾4Û™ŸÖXVfPÈßb)¿ÐìèÉs9U9ûº+Uz[Á0€Õ>B=ÏŠh“î Ä÷€Ç=—Ûø5¿i=kÝt*ës¼¸P¨Ñˆ¦üÄ3‡¯^ɶlÓÖ¬sæÙ%?”—[Žjlé^‹7¿CZ¥ï/q3Ý“mÑî^¬.Å&³¦LŒ€ï$ñvή°ÕγG×Ì29׫Sœ4—ñ² :bDtþ öÀêÏçiùÛzܘn&5ý÷ZZ»ZÄ—I–qOJ7.•ï²ãú´Ž2»O|x4ZŽÿ97èÍ‘f´Òô{jpªÆ&Neä ãæÝ)eü>ž/õʦ­ÝÏÍ‘ÝóÛ=Ǽ² µÙçÀÍswhKóEàÆØmUüP)Öçe7PÛéëýæ^ul4®g\!i÷F‚Ì öré+}3 Rc³d'Œ¢0fw÷?ËPXzµ(§¾ûz`Ê«âÕMè­xgŠì>æ2O5§€ ‹ùz:ÖrúHÍ ÉªKW6&ü¸6â®Æ1û›~úµõRX¾d3Œ¦Œmg¿t8r1wÔI°/Ìqÿñ“ÙÇzΗ„×ɨXâÊ2|·g°£\ûñË ëEòÒ¦" Å«ÃëšUªÏ‹X&îP|êD¹Ç¡yNf‰Ô·ú(M_÷õÏs7ô ¶Ð1S4;ËÎ kâç’† ¦„ʰ¢T{M_W0©•¨7ù dÁ³Á·öçFçÜ †X8ú9{RºO«)éãLĵØùYŽƒV®Ÿ_¿]¬»*É)Å=¹-XT|’ë‚<í’Î\<QꄌÝÖ串w*ž‘bo¼¹4ã!M*âó¨>•]î÷_²%Ñ7É™xFzwkTÚŽUƒ8üê—ùLÜb7lnDÞQ 8^ ÏÂçî Z¸àvèÛK\2Ùeó±™!²öåd!±oÇCíd"¬&ƒ™ ¹7iÌá¡n i®ÛÈ”XÿY©…YgÞɧ–¦Œfݳü=›¢cþžü©çÒŸi£ˆ0'Lâœh·ÙOsìzñâù1N 1‘옌¨õÇ­´À5Ï 5»Ê¯xcÊëØ ïWxªú"3¸ë©îe „f‡ÒÇè™ ­×Ì=+RêU¦tà&xs»ghäi¤Ç›°È–H[ÙÒôòFúGŽxmKΛ²e¾¶ ÍÈðí„2²Z±(Ù_`Þ éí‘øwŒ̸u¼éŽò¬Zæ”Tâ0-{Ë×nb=e‰ÝºC‰F DæîæŒtõC…O¼ö_‡¨Šº˜¦ZuŒN °€¶Êj'ß²21ú ¯èS|.=ä"¦»Ãsö®F…„VøZýECL"ÑÕØ³üÎ P¾—|ónÀFd›JTiV–„•Óêa<áôb‡)Þ%K†¬¶èï+7°;(‘^‘ت°1:uÀVLr¿e-æ4”8]*èF‰t6ßÓ»´CÕi¥7q;%—ßòå÷[«²œÎÎóÚ’kœ"²U* ù¡?kD(½U®ÅWÅ%rŒ±u[Õû¨–iõ‚8ìƒÞD[†G™ñK°´KOµ¿È>‹‰Nöé÷ N‘–ÐäÓä ãbOìš~qòRªí•Äkïc´ÙYOfjüÜŽŠZŽí„žÝùQ¶FÑp'¼U 4l•W%´ÎS©úÍ"æa×u˜§U*ÅqÊýIùxµ ’ý‰f‘c1`ÿA}Py5ƒˆ€Úp§e”1Ÿ^X¶317a6ñ$@å÷Oèí ÿKnXø»öÝÇŸš½7õZðÅ?îpS†²Ë¡umŸTﻪŒÌd®Q³ô3LéQsõ$ÄÕ‰Q%+xt÷!›kîîѶŸ«â¶+À{ƒà‹””ÝØÐÖòý‡ MN…m–¨x™àˆÀUo’kì£Ïò.*¡Uå{Bê/YÓ‹<2²|“‹6bl{ -‰ëžXؚΌR 4læ{É¡^mtG®'ã3¶ÌOä}Yò…C*âáVm!ˆÔ9þü}Í“SýiCJrðK¶gÉ>ó¼…j ü?ÚËy–.…‰GQ²:S…›§-ØÖ¼Ð¢&·âLÆü–._‹2è·ÍïfÛ6<Ž“Û SÝ +¾Ä_tfXd‰®e¥{J'÷q!´¹ç}‡E¦zl«õŠˆ*oHãy‘|YÅNÙ«6ª<Û…+»÷Zq;¿l´ÞðÀ§¹:7 =KÉÎÑŸuë´L„b©ò}Ñ–Š}×û88aûG¹×ö‡2Ùz+ÄЕդX÷1n‡¾‰/·µyk™Ôà‡ÀHÇão‡/ÿ4­¶ì«%ð‡OèÎôQ*o‚wÏ@`CL+6`2”ßéK?S³’\¸æ¡\z­šA)?ÛÔ÷ª¯óêsêÆ ÕV­¨¡„ïïÃ`Ì,ª=–ûŸÈÛ/-4ƒ›5?–ž¼sÎø™k%ÇjÒ ¯õ„Ï>6áä!VÚ|=ýbί±ì¡0ûjÍj“ó<%¿­PñU¶îÍehÍ ë±çÊ}ψJéhæÙÜ/geß.Ö¥F6uyߟû>—¿sÑM”©Pàn|DcÆù¤ÓSFᵣ݇­r6 ™Ìî­×–F1ä#¬"þ|m¯8‹/ùsðösE3ñ˜ Ö¡­Ó•yäʱ-ï¿EY¼ÝÔu¯B<ÙÒЈÍ+']¿÷I†Pï}GýÓÂKð¤ÒУ¥btâDq€šXnŸ¯RÅú"•y<úàÝäwË–îò}~9¨ ·B~kœ<¥Gužº´ëq&5ËßÞ¦¼#² u:Ðô{ë £¤—ÔD`Ox¾)¬®H©Ôdcï™=éÕ×RVð`áI‚•¨Ü˜®²Iƒ;´q­÷Úª±t¦L'f=W@°^©Œênúð9C½œ"þ^öùÜžBR?Ï;R‡J$¶U/-A“ëb«´˜Ù0QVïÁ)Û:ëÝû} _¤p¼Ng‹ôlôé°Zvè™j$• :2ÿ’¤DþÊdÍͦnÓbN“O ~ÖŸ®½'fd~ÌNyO¥§ Åý+fS‰¨õÆ‘·‚r1B¦“_^×ô¢‹¹•'^ ÕÖ±Í'óèü¬5%Wdp`äc’ÉË0÷·×ïܪ§Áßâ  ³ïe±±7-Ü¢9¶bW6t6™Ñrõã °}=ƒ[…_âÈh6›±7o»ÀXã[×Ü9N…iŒ9»ϧÓâ5Ÿç®µÝ¹{}H~½<ØA‰§õÐ$ŽÛn¥¨EwÜæ ]O*‘ÿçwN•bík)ö”‚Z‰bO‰,êS¶†Ã6quñõy˜çíF_ ‰>í· ázW™$ý ƒyÖ–´•lÌMO¡v>ý¼'ª‚™ vØŸÁJ+^Ù³DÜ—®zôúâ'ÀR¸÷mÅTôkÐZ]4geþÃØ þœ'_FbAÝ/>EÁ ¯ªÅÚÏ¿0ø¦»é7ÔšÔÀ¾l«®ûÄ•çijÿö¢k$ÀYø-"“îF\½Ÿ¦ïÿY`šr endstream endobj 96 0 obj << /Length1 1425 /Length2 6643 /Length3 0 /Length 7613 /Filter /FlateDecode >> stream xÚvTÚ²6MJ@:Ò%R”NBéUz¯ÒBJB¨¤(M&¢T¥‹(Ò{iR¤÷¦T¥HçE=÷ž{îÿ¯õÞÊZÉÞß73{fÏ7{…熡‰²Ò¦D`„À Y ªž±D<<¦pŒì à1‡¡½áH„ìðªhƒÃÔ œ™Ôöñ‚Å€`IY°”,dþeˆDËÕ ¾p' ž0P‰€yxT‘¨4ÜŃ;å_K /”–‘‘üíTö„¡áP¨Á¸Â'ˆ;h¢¥ 4@ÁŒuÿÿº Xüïpyÿ Güv†@¡HOG¸á0 †®0Æ#„ œ~B<¼‘8ˆ/îqÄüNÔP6BpõýU7 Ga¼…½á¿*ùwÉê'U¤§' ñüÊO ކAq· ò»­î¤ûgí G89ÿ*ÁÉ%b†€{ùÀ´Ôþ²ÀA€¿1(¤d@@˜æuùÜ4ûM‚Á¸üƒ±($ èŒ+ w†á~Xoˆ/ ˆAûÀ‚±ÿIüsƒNp(ès#GÇÁ0ç?{\çÑpà]Nx` è×çß+[œ¶œ€¿Í7WÄR_ÍÀ\MàwÁÿ¦TTþ@¬¨PHTƒEER¸Eð?£BàeúÛW áŒÊüIwKÿJØ÷¯îóþ5|ÀÆÒGâ òþ-pŠûÿŸeþÛåÿ§î_Qþÿw>>¿YÞ_ôÿÃB<áñ8½ú`pÚ×Câ&ñߦ°?ãªs‚ûxþ7«…àf@áâñïK„{kÀýaN†p ÔõTþàf¿ÌŽ€"½á¿ ú/7UPwÜ£áÓão †š©Ž€"~M—¨„$‚FC¸ãv@,7†N0ÿß Š#œ W^0Љüê§„PÄŽ“,ýˆâ¤ú߀¸ P÷pýmŠ`\Ѱÿ@@8Äù{ÿä >h4n4‹—ù¿ö¿ßÌLŒ!¡·ï»½»ßpT®Ìê'´Ò/?̳bñ”O;nô9¡$Iá{ó<|}¨œÒÓF=½¤Î{ 4ÉqŽÝ¨}OU—dTtfŸh<´R¼öaàå†rE';›©ÒjйWy˜;a-~³6O¶—4¥a.Ý‘_‡¦Egñԧȱ£Õ7’:ägÅŸ…™ÅÙ„Œðä8¾eâ$Ʊ“òÓîúSÓf \rh' ‚7‰½ÂZÏ‹>> œ)5õnaæf¶fb'< ý4t«²žªÍø[øj6oÄÆ'?FlºÏV3dl‘LJ.ž(ýV±›ðƪËÂÏÍfòš^„ ftÙdêËÕsÁ’{e(‰Õµ3ÐAV÷=êmì{1mÕ;Îæ³—RªGïÓ%cBµ¹n°ÈËÜJæØE?œôåP˜äÐÜgN-»)r•Ã誥ÞûNgÏë¬ü9ð‡¼™œ7àE­YP :ŠÎ¼32§$Am»’ʬÌD‚»¶áv¹€À5FF–Ïü¬d?*¢Ý]‹† Ü üÖ§½6 ÈvÝo &­Ú+†¦ºè‰†^çLB(æ÷ZD'ñe&¥Ž>ä kaég'Ì'{äÞžº›â°õÈúuur»È~¼ íUòTþ>Å”Jâ{Ð ’åä‹NdSâvâù(ËDzwŽ­piW˜÷QS¹üä~O8ŸFNâ1oÍÇÃg¡†æÛ+…ׯZPp÷Ä·ÑÝe‡–ŒÊVõ3>$éö·J‹]r7}燭S-5†=¦qãÄuùŸ!öÜ;_©__íñQs¢{lDz˜¦Âlmâà#N±žYèß6Ÿ_·07¤,w‘gý¼˜c¹àž"Å8¬•Q«ÀÃz¶<|0~kjÅ4ý’¯(„[‹§ÿÒkþ‰¡W…mÒÀº¹¿{?e›ç¦ÒlÃÈÔs:ë9mI×Ð׋“ò®Ê“åsýŸˆe©›¹Žc¾u³ô X“Í9Ç>UÎ~[N';(©gýÊÔðJ ¶“%×O~î¨Ê ûmFóÙ-l;øK‹’S¿ZH€%º)E­ÌÀ:¡P½Gx aZ~#‰—Ç®°QDÔ¼¥†‘¯¦‰åÅ·Ï]˼s»[ž;uÌÎuÌ$WhÙŒ‹‚˜fcªMu=÷Eð—èë>ùÈ~5Pg\Ýó-Gß«·¯žïž“ Ø}­óU®h Õ{/4ý9Š}Ù6·,«µü• zö,Þg½$é>UðŸTm+nÞ"ŠHÞß¹á—3l÷5‰â˜~¼ãÕ¸o2/áþ¸ P^8¬í{Ãp}©¢ˆqÌÒfšâcµ /˜WkjÍ‹G%l¤B9Ù…¤þê[Û@îƒé§®%äò‹!Êž†[€°úÂ'ç•¡ ÑÑ·ä³Ãª»´´OÙÚζŸ¢T9½QˆðòlÑp0VìD^ýlÒ­lƒ@ü`ÄZÿ£(ïÍN¿_Xâþþµ—ëÛ\©ï³#‰dŠYnïÞ)_á{f@I.àgÙKNõWÒTšÔG9«ËÕM*Ñn”k ±í&Olì¨X.Ÿ ¼²Íä†tZÞ2TuKžÔ$Q† d¬¸™O‹«¾ô¦<Ý¡¤Êú²ÁvgÕå‹óU»€|1MÀÎef¥÷ÓsÛ$±¯äéfÁƒÈÓ¥8²½»”š3¶þyÝ2ïžUÃQ}’Óì£ÎÍÀI:§N2{ÛÌ!X 6×4Å>zʹŸÅ¾71_òf‹¥Ëz)æmÊ‘Âr ‡øMRÍNEô+› ÉŒBÊôn]>˜_[>SâtûSôˆJtm*3[ìA«/ #mþÆûRYÖ‡Yp½=wPù:É”[0ÖKÌÂN¯èÖ‹Þs:&«WxÝ®ИE‡ñz¼É‚"ží1ÞdÅ9Áfšu'GyUJt<<ñ~iô£üDcÍdv×S¾$l¥÷ùuO›ð°ð”f;MWýnŽqb¥Óy^¶´ï«þDõ'’ Ilo‰Oô¢ÂnÑò#­ºEXœß)¹¢¸¼²hVήÅ>Ï,Oç¬OGc3Ô£7…ÇŒý=õÅ™ëÜçVyéñüè2j=Ä@zÇÔÅ„ÍYS« 6êx±ÌhÀå:Áû9ÒôÔùVf+`†Œe¹E¥p ÀÇ\@ìÓÞT›¶´—§nc†´hž2©7nã÷’ÇØ†=rîÚÐëi”:Y+»Ï\“ùúÛz$KPl­ñs¢·R«›ãnÛHïHø„l¯Ü•åÐT •ݧ!À©O f¹·eýÔ“9M£d2´y8å9% _^lÞAw‡Ø"Ûpp^ìGÐ)A6Ê3ÄYÿªÉÌIj­êKs÷]sËÌá|LãMÁèѪ€Z«ì¼÷LΓ•ƒ£< ÝG4õæBFäöî¨ xà-ïëÒ˜¢º¬> ´—)˜£í¡³F/d·çðÜ’¾.ÎÉŽžûK2³c¨×{m$de,͆€n±Æs.\¶;^•Ïw¬k —êCŸµö"†‡³U _¬ïpfÆn¼sãèZìê¶IÃ&õ%ß HY+N±l¤28Êg™òS‡=A‘šŸîßiÙZ;•®=UV"›V̵¹•Ê‚v^oŒdŒ#çÿVÈÒ”à·{휚†B'‹jàÆÜQJPÙú†Ø¡—/Qš°F™=»¥rjŽFðáC •;êà8 …‘aÑ@ƒ¯U¢‚‚{^åyq¬œ™Àh­žžiîïU’Ù­ƒ<â+ r+¥ÂãºîB‰“¢uêj¬VããqºOWÖÂß!UßÏlFp(‹Ê·¨+nç5´rGÓ”Z]ì{CªNz «ÈOi¦’·áŠ–±ŽŸÄ#föƒ1?a™-„L#“—Õºà›IºNÖ}Áû¢‘{4Ââ#„·ëíxúø_ ²W\ëU›Ú±V¬Øº/uÿ±xÿ5ÿU59Ã%p¯›íqÌbä\ñ—*ÛºúŒ}ßH=¤RwÄ ï\­³– —g9PhÏ8N#Ißí{N”ÇÅPïjBk¬\±© Ú1KAj0ªèAÅé5ËK5¤öÍ 2êÀÇý€PÜ>˜cª+“«ˆ~sô H¿„$œºÞ^u¥tBEnQ¾ÄeCÇ€,ri¼±u#j$‰×A»÷õfá¨.ã¼ÞÂ0‰IþwDšnÅO‡çãk¡ÅáL¯ÇBúŠ}êcµßºù© 0ev»uì,¤t/ñy+?7»ßY—FwÞcÜT‰»ÖElOú äëÐÒ :ŠÆû‘`—v`õgÇïWª|RɪNͦµö%êÜ‘‘À!Z]kÕ0Ço”óÔýñ L|\>°¼õ™y’u~¹\jOâÎ`VâËëÁ1åîY¿¯S–î¥ØJU¥-!Öœ§¬6SÊSKÆn@C®s9¼&Bê9ÔhÍ/?ÑTe†vÎk=2nãu¦ÁO¦R\Lùª @b¥CªjMÿ€§8Ù›žõyàç¬ÿîáåF5ã/®÷uO b⢦h‹Š‚ß•¦ªžuµ{-òøSÒUZÌû¬}Ð%h1MËN–‚d÷IV†˜»/bå‘GC¯ÕB=\VцV^UÕìtmά Yãbf°üL#I·'$>ÔÛ17*¯&æcî­Xé r©»ðè;¯‘V ¥R”ûJsé©X´Ó~ÿÙb[Íùp³Õvc‹Ô¨(ªë»žCÓ„¥àDÏ!’ 0ÿÅ”¾mdáÅô)1¥ªÉn.Êq¬w¸¹ûÒ¦{}ÜÉ$*žË3½©m¼£ês“ì\DíW9¬©?)¨÷4øºöéý¯‹ÃBÈLýV¦©ª¶«ð‘.‘“ßN:Ìv•ùQFÄnÕëðlñmü…—E´$÷ ¢¶n”*,TgzºÇˆZÝ™§NNÐäÞОè8IJ3¨TлÊ& 1µ'LΣ3½•{ùÅb’Šrò묅õŠ(›uîé¨ñcúü„5Ó—àÌÊ—À…ôzÄaFêVlÜmÁëšcßo7±Ë¾ë,Êsbؼf5€Òj8°í+Ìó÷Yc“FÕyÃóõ¹Q©¡ŸQÕrfŽ ®žÄ¢;»Ç·º¦ñ­ãßt ôæäu\ûÞfšKº¾•òÒèR ‚&Ó!O¬|N$C:rkLÕÑZ„D&ÿ"q“Û½³L7ë=ôh-)rÁŸoü: о 2zÃf«…cе ¿v¿/ÍMO8À¼JFæc=¥×Dä«úÎ>÷BÄ49xMÈB {ÿ2u¡¨J¾³uÌïPx0λ³ÍxA(•=:Ü2X>;ã,×Ë'î[àTÈ‘0ÛܪA7‘¶¹{wk·Éa0/6êÛrw;›ºÉÊ™¾ù9Ýècºãî²ðôû”¼Hï‚ÚU¤#û¦·¿ýããõ ‘‡®S63×v¸=oZ»ê‡‘Ü&©¨âz¯¬)©¢XÅÑÙ%B{ ³»A3Ÿðl_ ƾhs rB¹¿õN~ë¶é=ª@ê ‡áu)e(à$ŠŽòú#™jŒ ¤:U@2þ$u´4wÒÍo pv]˜æt¢Ob•üf!׳orÓ£wÍǬŠ¡méìU‘ð&gLí« _aE6´c®1GžK(á±Å2 ” ,@Ô(º“ÀÝ„ó‡;ŠªÊ»Ž• dþ–·À°O’‹¯B‡eŒt×r®x@ 5ÔÛF“g2,ZÿL|ÇW/ Ï¿Eé÷µ¦Ÿ·„³þîÍŸ\Ù~Âèg>ÛB}d±òO +9Ѫ*o—QÖÃû»Ïû\†Õ'åßõ—@È÷'¢Yhßáþã\¼™ÑOJXߎ”¯•,E¾-,eüqür”²ŒÝy¤Ï>)Áj£dy§ˆG¼\@oê!Æo‹ 8×úp””7øØ#t¯c²¢’wnçMC` ±OöR@í…ÏÊ ‘ñZtàe·ü%›kÔ´„®µdfCnd¯îà÷vÅ'ké†=Êqå[¿§ßß_8um©XGT‰É·_ºÊï`P@*+Ñ@£·™ùl)81èhÅZ¿Þ¬ëçã\sW>7R©–§fj5jCV‘¬?ÉA™D±‹Ü:`:DW¿Ìóºè­Q™— $?°ÄJÇ+Œ:Œ"Î4žCÄL‚ xÅ3gT¡§t‚d µY7“ Á7ê§ÂkšN¹ë”C9X”µ×xÄÉä¦C =†ÇèìE{·’-*ÝŠëô Ú›9–ñbWL¦'S£ÖJWÆO_âP'ôL*ð–°õGZÆS™[çà§©;?ö,06q?·? þÐlÑŽpö`Þ\iÚPNÿá¼ï¬‘PS¥æ.’¬]ôpIh:O©âßÉá§{ʶĭ7ÏZ’á¹èÄMR‘TÈM Š#‚­ŽyHA ÓgeÑWyY·ýÄ¢m¾¦ÛXf.)w7gÜÏpødûf+5(É7r)bRÜÌOžyþ Ë©Q’HXJ£Î]uUd<®-á”±Ê{®Ùþ6æ„%Â+¼,µ6”cÏ7Ü”u®e.S¿k`=Hɦ‘‡ðI$LÕ~S¡ŽÛò@ªò£æ–3–âU"Ëèú;kýh2ãŠxDV~°qcx–D%ðêê×tFûÁçq_ž­µ­ Q “ªç¸»­lL{"Ü9Ÿ°~‘(p; )]r| ^ö@f/š«U#ÕÓjªh-$H_ õ:Í”ÍTÒšçûéà2(õY'Æ­øG XÖóI 2u…¨Ží•Œ1ûÝŒ¹bí£"óЯâcÅ[‰x:³goì*î‘/ˆ9îð¨°(që9UmrKónx'=4ühÍ·ºÜ•MÒ¿ùˆ¨oZüéAw ÐÜÊ·¢íÃ*âZF`8³&š\@1¾¤H²gYaÑ»{³º¬Héªe Åòé;®eÚ;wÔxâ|­C, )š“ŠuŠê“k<{.3ˆO’ ¸ËIÁY_‰ö,…=NÛxÚ‹¹Óå`‘Š_syþ¢«"­aØÈÁHGú-‡ÍÑîödJ¨3Èõ û-0T®ìRš>çÁÕ€ˆñ™è^›ùãMµÈZ»×]`ÝYð§û6¸ñ¨ËU›4wö<ôŒð sÔõ.æìjM½Á+—®qö¥(šèŸ'à™Ì|e6¬bjþ„ˆñNÑ”£@ J;Ø0×óÎÕ¤Í,YØcõà’ëM1“ÕFTÉobd¥[§bh7üŽ‘ m‡‘‹ó*Ða·‰-„•¦ðñæ]ÿOS„ñ"D¨%@¢o6œ¼F!#Ùÿ#íx׊Ï`/Ê®£I)ËÇoPN|É‘ZðŠ'p1êuÛýDl½ó~¶zh´’³~ö¼ eŽ0»ƒgge-Sa)š|q…fœÅ]'.Ág"ÔnFßCÍhïÿŒ`þÒá“åÜJs¶/^Îl¶Ðì•7ì?Ç ò­NûÐT>¯»CyèÉÛjÏÂrÙ£¥Pç9ìãä…>1I¡(:’Eư݉ÛG£øï÷nÆFƒ÷jû´„MôÒm aow=É‘É,Ë[ë\?>Og'ß;)B ß]Þ6{ËåÂE¥(bÅ+Kh;6:'Á}2ÃÕ»Ý á–<‚2µäy =Ú<²äȃê‡?=—Tã½%=§Œ…E1× GºõurðQ„sk9BíDã…xH`”>0A/fätñnX°Êu6$8HéÑÎNTŒË»Ä54ÈʹÓ>`ØQjêbUàÍdÓ¸V—w2=nw¸*Âb|€EÑ™Îí·,uÝUVôjålÎ}q­]ÑuWSæpdd3ï;qÐd¶‚¶·;+ÞkѸ’øv™ûV o"è&Ý™Âõ½éf©‹;œÏ4iÔ´eÎßyWÅÛÍ50e0®= s˲*>¶ªÕT?5œ·ß I+ ʲ5=Ôe9¥Xºç¸ºu}$uæ5 &4¡®7<>f€JšðŸ8°¨Ç}ïwäW]ºÿc(¦Õ7FMqZ÷›É”ÐZn&´])Á„ªÉKðªv@;›§”B?˜MzLÒÔ¶ó8ƒ\>ÞЧ‹zCvû¦Œú§à–´g¦é€Ù.pKûh¥±tpãõ$þÀÜKd`*1Ö|Fp!6²›×ŽI®-!5÷y %»8Wj>¢fH¨Ž¹¢yo¶ò“·¼)ý"ÜaÅnóÕ}˜ƒf(5߉ ÿ²µzooèF#ÛtolåFKI¶s—˜EAÛíìh“÷Û—9·µÅ$†æ¬÷œzÕèéXr‹¯öÒw©JœÜšix`ö¢Ñ8iÒ`ûwö“Ϙ~¦Í7òåri/Ó§ECM››š»¥?3ºIå(Ü—›ß9†¸—ŠV¦«¢ ZÚÝ †â·ŽP­gÏñ3E,Z±)?úý Ý"Ú«JF*§/”›s*7-§?]-~ôYÞߘ¦ý)þ5Y×’Š\§’ì¹,l°_MRHÊZ¥ÿqŒÉ|¤×gÃñ6ž:[6Y\…ßDfö÷ó/㊅;4ç®kÝœcµ¯Ç>*Te½#Iåí?ÔØ‡*ú¨Eº· Gø/]¼Ú<øÊh`ðøa‰v5t°„÷ÜäÖ8I«GÚí`G2Zïáôð™€f¢ªyRu™º´ VÔ:b‹² J6ô´dõèòÉă1Çr^RA’C¼$žÇ½Í\{5GÝiþk*¢KoYÅ2 ¡ •ýÉ‹€â¶±©¾D’ÀxÍ8Uü»Ê@¦$†¡»ÕhØë†I¾¹äA•Ío*rÚ°#KW¾žñ³ ø€Tüþ›-ìrÈI­C|/wWÙIr•O1¶Â„œT¯ë[pÑæøÅ®JŽMè­”C“CÔù^ÐK¨z]—’üÔEI¶÷Š2ZÈ2ˆæÎ\1¾¸Û‹Çwp[ŠÿÈé¯s endstream endobj 98 0 obj << /Length1 2181 /Length2 15389 /Length3 0 /Length 16676 /Filter /FlateDecode >> stream xÚ¶tÚÞ7Ûv&¶mÛlì‰m£ilÛÆll'í¤McçÍ9÷>·ç>ß·Öû®YkfÿþæÞCA¢¬Æ bæ`”t°we`adæˆ)¨r˜™Ù™™Yá((Ô­\mÿ¢ÂQh]¬ìyÿÁs»~ÐÄ]?Äì²n¶6 '/ /33€•™™çœyâÆîVfF€¬ƒ=ÐŽBÌÁÑËÙÊÂÒõÃËÿÔ¦4.ú¿Õ"v@g+Sc{€‚±«%Ðî㩱-@ÍÁÔ èêõ_&¨ù-]]y™˜<<<í\œ-ièV®–U  ÐÙhø+]€¢±ðïÄá(ê–V.ÿ"«9˜»z;[+S ½Ë‡‚›½Ððá &#PrÚÿKXþ_ô€—ÀÂÈòsÿÖþË•ýßÊÆ¦¦vŽÆö^Vös+[ @IRžÑÕÓ•`loö— ±­‹Ã‡¾±»±•­±É‡Àß$ETÆùý;;Sg+GWF+Û¿2dúËÌG‘%ìÍÄìì€ö®.pÅ'nå 4ý¨ºÓßmµ±wð°÷ù×ÙÜÊÞÌü¯ÌÜ™4쭜܀2âÿ–ø Áý¡Y]ÌÌÌ\<, èijÉô—qu/GàßÌ¿Éñûù8:8Ì?RúY™?~à|\ŒÝWg7 ŸÏ?ÿàXXfV¦® …•=Üëd ù¿ðGç­<ºÌƒÇ`þëóŸ“þÇl™9ØÛzýÿ»¹L""’Šªbt'ü–¨¨ƒ'À‡ÀÀÊÁ `aæbp}üþÛŠ²±Õ¿£`þ£+coîàùW°UúŸ€ÝÿÝ}ê/ à¿m):|L,@ýgÀõ˜9˜M?¾XþŸÇüo•ÿ¿éþËÊÿeÀÿw<’n¶¶s©ÿbÿ¸ÆvV¶^ÿæÌ«›ëÇì+8|l€ýÿýü׺*ͬÜìþ7WÆÕøcDì-lÿSD+I+O ™²•«©å¿Få_t¿ÌÖʨìàbõ×…``afþ_¼­2µù¸4\>æñoðciþÛ¥„½©ƒÙ_ÛÅÊÁ 0vv6ö‚ûhñâø°|¬¡Ðóï 01Ú;¸~¨>Òó˜;8ÃýÕONŽ¡ù‹ô/Ä`’øâb0IýAl&™?ˆÀ$ÿq˜þ n“â73€Iùú°©ò}ØTûƒØLêÐGdЇ‡OÿA<Èøúðgò}x0q66µ~\äæ®èlÿ¡ÿk"ÿÃøHÚô?ˆý#ˆ;Ëîù¿ÚÂdöøáøÈ `2ÿ?˜æÿ€ìA«?ø/á@æ ,þ?Ä-ÿ„òQK/GË»÷ÄíŸúm°þü¨‹Í?àGalÿ?µûG¤iýÃò_‘;üñý!ûñ\ýƒý¹ãö‡®ãÇ›aÿ_%fgù7õ¿ Ìþ¤ãÇ¢;ü£ˆ&“ÓŸ|wrspš™Øþ—E6ö?Œÿ6ÊÆóoΓYþª¸ó?àG½\þ?Bù§ðG½Üþ?êåþøáÂã­ûÈÙóð#Y¯¿á-¤©›óG\ÿ¾0?¶õðßoè 4…[Yr0åûbÝð¥ó¡N߃á`J`žâàS: ƒÏŠs—Ût Mmöç-ç;‘”Ñï(ë{Է«į>gmMÐaíI*Ͼ/† ª³p?f°†¦¿ž‰4Â0¨ ú¾:ùjÙ€·öÈRä;¹q#)¢?x Hy6V¬M„.¨ÖrÊÁ¿TÌ1ÄhDë•.P˜ä,âB¹2ÂТ]z"/ÜÞÍ£åM¿Ë&ÐÁùǰûèl³Æ>.zoT©³ºôâ’ãêà‚ߢMÌRúˆ§Êb/û”o9O¤-buMîØ%³ØS{(ª>8Ÿ\PRLóRãâ0cÈDEoµK'Ú•’$B±ç\®ËnyÊ\qµ™¸Ð+%Z½+Ùr5 \[Ì6¦w¹pò¦|WN ÌIkj­ösEól¢ï•q—dÐÉ=«Ô‡º‚{X¿ð¯h&ÎÀ<Ê‘Þu¶å“†å öLPfR}N~—ÏÀ¿žŒQ{¡r1ÙÄï(ZöHÇòUîwLÁR4UÂl­©™,½½­­ÓÚë'¥Q·L(™6CEöKÅ¡VÝóJ¡ïu¡¡“ÞŠâÛ³ùN‹-t$(ÝE6A¡ÓÁÇMer½ #…£ÓŸÒ›d2l¶h`uN^ÝzÙ~o…gŒ¼KvÉoØÜ –¤±åõ#z¯eÛׂK€D$Tp/£R¼ì^ĦŸ+ébò7š‰¸'Í:—…D‰Wbeã^·‚D3èËH}6Ýï2çÚ_,™¸b]žÄKX-òS ½ !–÷ _ÃRzbbbm5¢q[Â}Á\ñ±0nâ Ø’^ô ò‡Pj»‘Ç1µxPÞ­?uOà©—Ïò~¤@ù\ñ€úèû®”Æ4oò3¸7¬ûÇóé©&leân¢A[ë@(÷BX?BuoHtè? ˜ÝDLßÄQjA"rµŸ’‹¾ŽÚÆ‘r°ù${ÝB; aºŸBD–rÉè±ëLƒ-‹EÌÄ®äíÔI&Ò¯ÍBGÄ4M¿«hŸæR~]TL+Y%í ÁÉEp4­H4n‚@òó»MŽÄ_\ Ûþm8ÐÇ:¹ `å«)Ó%È_4BÄûfí„ÀئšÎË¿PÁœ?â†wµí–¡k¢LÓ©®àH½:æz‰cHO»{ú8¢™ÊcAÞ³xtïÞ˜CÃÀŒ€m•}-” ÞaŸÇEð+âãxGwBû\-·u·7®ÌüÚ‰X…CÇüKel¦’=7þ•ªY*Ÿxgê8~î kµ,]ðøµïÊlŒTvRéñâEöƶ ÏjÃR0Æ5ЫõµŒi„‡ŽžÁ„Í£çSü˜_Îòé õâÌ{q§¨ µømr¾OÃëUÝñ©×uù¹56â·áK +{Ù‘1çœKYbØ Ô‚R€lÂj9š|³Qo[äÚÑ™<Þƒ#¹LyÜÑ6H[Õó}÷«À(öhCÏ´ÎcC"r<(MÝ_ÏPIÒ:¯¹÷rµÏÎz·‰n? 2% àÛÁŠöAŽ1RrFBÅBÍ»Ò)–×ZzU;w#UÀÁ¦]…oƇøÛÂÄœ›^p¶zî'‰Ï†¤S£ßýjOyq`$¦A„$Cºo-°P¯ûV Mî˜ICfêœÔ•@õå¡ô»á0D&²f« æ&“nbSB*‰ó<åÛ»£"æüÝF‰ôƒ; ggWA1xfG+„ç[ˆ2ñ£†™@‡reÈñu ×µé¥C#ÑŠ»eVY3WhÎò_ÚËk°{Š›ý½£<£9{Jì’B° µî$5#“ïÄ$” J}…zt_³mB÷?ù9´^§Ëá,æç£~éng-¶tPi¢0€Æk‘»sÑ×v; ©t†a5ux”´ZLTMæ;ëewÏÀ>É@?þ;Þ‘q‡Ï̇fqÇFÔ†Ž½ê8ÎMž¶¡òl‡÷É.©˜ŸÂås= \ñî(·VÖ$#%ûuæ>nó’A'K}±º£{ŒxˆAZ<ÆÀ4qtæâ'yú· :sÛ›}ÏÄÜ‚C®¾Z]\5NAüKgÌ'ü0oûö³þ;bZѤVFˆXÉæø:1úi,+näP»¡Ë;‡›x•Á•ÐÞì«5Ð ëáºïé¶¡®“¦ëq>iEEÂÍœÂóû1µ) (¨(<µ‰³“¶®¨þT¥4¡ÅðÊÎWG®ü¤ÂjÞzÅL3Ð΋ÐÅEí”ßA¿Tl¨}1g¾Þ¨1Œßs'i>ŽPP9¬º“j°Æ’T—ÚZr¨Å]TÐF¦XPÊÿ$.Å@ \§ß^³VÓǤc9—tš™ 9¥]Õʤ³ª° »R3WLFOóqÒ!€­¥Þ6ƒx°·%lõy%•¿)}Ì„]bw]S׎CÆæÉ|×òc·ª Øör '£êh ”w3‹˜¶ÓΠƒ”‹ôé±ò)Îû4A³¿_¼@pÜVí÷Ê×ö­hr0Âwçø9ƒÊí<b;}ÞW˧¥R}ÈE äíu•5ô RÒdÀù‰¸‚òš)™ ð{7–V'¯#æËf_~$Š”C4ðN"vYœ^„ü0}¾ðxzüÑšþAÜ]äïý™HÁ02<ë¼Äùµ’Ó-xLFôvX•V¹ç(‡jÛ»., i ‚¶×“‡ñEO:»‹yXP熮²9•˜NÃ}в7¹É6n#¢^ dtuå,ÒçòÆg&cò±€äƒˆŒÌßÁ·CðŸLˆëôiTbP—­Íí¡ãÆ-ƒP\«3ø¦ôâ×£ï¸yOé}Â^Áe‘%‚Yu?Õˆ·ûˆr­wòôÝáSÉnæÞÏ<“±ÜL³X§ñÎÚÓÝBJÒ/NÓ§` غ¼±un|–”yW—ÞŽ“&1J¹ËtÏîN9+? ˜g4>ô• ‹¨öR}´'éRs³ñr'å¨_÷†[*]ǧbǽߚù¢â‹H¹TÖ>Ò;ßÒ®ŠcÊfC9ß¹"›ŸÀn7…x­û£W7iÄÒwJŸ0ckŽG¶y$¦hävqi޹iq/Ïâj·ÏŽÀÃ~§Çç¤SE¤Ò¼´¼MÊ"IF:5ZZñ±é:Á!`P3ç½å °“—: f\oOý«61´ Oc~ëvj¿b›Ð6œBÞÂâ Uݘa3C¦:%„˜ž»ãáCGsm†á® "ê;£›ˆâ8ö÷8öšYWá—ãb·ÌÂC#í­¬‘Ž1‘÷Àkû¢§ªÞ¸©‰__¹¦é«ìÀö$JO[9ySæ_ʸ¤CñDÒqº€³7Õ>{35ù1BšóãŠEôŽÊwêI›¶Syðæ¹|2o][})B…¤k¢óKóâ^3 òç ‚pôƒì¦%K}¾'px~ HáHOGuÍ“ž˜&r?Y_~‚uF>ü4øt¡!¢ÉUã©âÄ$û)!;aÎĪÊZŠ`µ9ŒÔ´`/ &‰¼)C‰iæÛžB÷q¡™„޶+–Qç¨VmPo3`ð/ãF~ F¬ lÏT9Í2A¢´`%n² -Ç eú÷@C.¡£Åw‰¯ËˆS ðÓÌæ¢K|FzºrŸ†áÞÛ°ÙY/ÿM2Òƒ“7váç àÒ¹ò FÎn:ÉÕ7M-9#Y²ö¯ˆò£Ä@1ÑúšÞê´l%ņ Žî™`÷:÷ø¬Ã¹X"qÃUØ(v@Ç+—°p‘T¿ó¸á/i¡hQÁ#5Õ~Hqž2¹T–üí|mzsp-˜Åk·{óª#|"È£KÌòâ°¢ª>w‰E²OÅ<Ÿb{°#*…G/åשð÷ά#b°ÕêÁp‚fƒèL Bˆ™ÆWŠÖzjsY="ø¬&ª”ưËDU@ëd\¨ñ—N¬áàŸÚhHK¡:­7¯:Áó³!fý°<óL{¾7óšÓ]ê†hX”xä†YUX!,ÏÞèSRËR;žÃÇL`¤ Í%µ’÷·eüô´ 1µØ?îWÈ–µ;,ónSÆ[‹màÔ»]àÜÊuUÔ»}…\€3Ýe»=yK¸ÆävÈlIý>_ÇWÂï¼æ¶F¿„Xÿ ÍÇ*¥¢ªZ0 Ç0Yb”ñÅXB); ý¨2­Cž¾ô|¢&¾´êʼnô€oÅ|TœhuÛMùxG¤þó&^  ´Ó ™‘þö•¼*úR— Ñ<~êbé<õIX×eÉ$àžÝF¶ãR˜©FM©bÚ^[VÔnïà§·KA#$~Lò·7ÈìZpÈpÙ¹Ÿ+‰¾ÔÝ…öÝbèK­€öQJ0kÃî.©*ÔMÆZíØêÝË6ÙCîÒœK.ZRJÀ©©œ*´‡Jòß>R?Kℌl»Pòú+h‚£ù(}ÝCpÚ¡zûsõîr‘ÔÔ`$Šä.mŽ_Ãfsñc(…@QæÔ2£ynEã·M©¿ëBGf§£°ÒšSL³³6¬ºrá‡ín"A»A»»~’ÒÞ¾•{cP+RçNõ?W€gý̤F…ꨘ³N‹Lc¡Í,Û’Aˉ‡Á0q}v³3MûäÔ}ï(¤+cEÌïd¶3_¤íñó%³©i“e(˜N¸b?ØÈ¯dΞÎf  ö|^. q†îť݅ŽúT¢:e„….T!鿎â€Ê¡2n‚ÑgH5‘vŽB¼—~ª±[ãtmEy¨/ ¿Ä*Y’w¢q#ÞV׿—Qð§ñ—åöD|NcÊé(l¬s×7wRI,eî_¾‰tàÞþŠAÝkt¢ X¨÷æ7Ð÷‚Ï;oaÑœ„[•"«™2²QTq> "¶ ä–|¿ìȪUZ‰8ˆÍ̘ñÜØè*ˆ—ÄLƒ*nuæ‘f£|YzDôù‘›wòÕÉêÚgýº£6‚:O¯}hoâóšI • F9NùJz9·†dÆ¢3ì†<…¯Áæ×Æâ\æt{XA:#`£ âÄVLRÓ銬:² éF£*WíQÝü¶sò¢k.£ZÛvb$'‹5Ï…ñ‹Xi[§e‰dÚå)u昻¬MâWóú¦g¢1ª ~n¥Ü=¤Ó«ÌéÛ¢–?'}tlµÕõ•ùƳÆ7^ýnwžljd-zEeŒ VÈà&[²'vUÒÊiwitÅá: Œ{B׋Ã'iî©»ï|»é„U ~ÇÄU²­ ?0ù*£4R‹>³AóÃhmÃ,Â…gû …ˇié ü AJ´}öº2ÿRŸmaõM©ÚñkŒœG˜û£ŸÌæÜŠ@ó—~<0 T™ßòÀlðʹñœ|ê4%šPBð8ƒ+‚Âþk6#Tuz! ÏÖÜñb7cG”<„F2 ⸧Z·±ºëX€Cp_o¬¸>tT´ð b‹•}”ô—$Ù×M¹ìjùw ZÑ»r‚uøÂ SúÑ:Kú<~2óOŠ7:¢-yöü¯ç“U˜²Ø´k5—ÖØºèë Š®¡‘¥çåã~g§ƒ<Ùºœ žø†ÏuÈ}AûHc÷¸Ð÷Òçi5AFëP¨j¾)·TƘ$\ºwK:”Œ¢îr<Áì>þ“µTÉØ¶ûw%[¢<œß#íÕ)ý.&$å³8œYü´Žs:„ø¦¥‡k·••h%Ø) ç'!‚T¼"ÐAt,] Á—c~›A·|“Szjé¶rÂUcØPƒ_UH ÷7¯/(4ůË#ª¢bÛ³0CçÛ¼.HÂù˜±J­ˉ[RN©yÖw_Ì`IJ“™ùââR™tA¢®ÉœvÍbõs”{¡¼h*ß+›ÍJ,>ÙúÚÂÈ/6ÀþÞ“Œ“žËÒó·¥ÂGšû’8ŽÑ¶óû×ÔA¼Ûó§F9°dð%à§Th·}KÜw9…‰ˆœ%ÂçèLàÍËdnà|PÂY¿¦¥ƒ*‡×¡ ÷üV7aª¦Ÿt½v^éûÂD¼Ž¹s˜ƒ—'0NF^“p¬Û0oþ¸”“MŠ®|ÁÑùoàSuð—q«·g}=ÚtrCkYAq‘’ýƒ®!ÞL-Þª6úÞô¹¶ýwë{RO¦ Øä¥·sH¼”Q!¼xÇJÚ¥=eèWG\®Û©÷ûL¶Ì` ЉLH§"ªE{uÏvUêÅ#â-°™)ÄÁÍbpÀ½ìS~÷_(D¨<®Ï³åÛºßhÜxg1j¼ñ’ÎŒŒ%1¿l‘½)•à,ZFåž¢ÛØóÈÎÏd2 *¦ÓR¼Õœ’?éU—Ò9ÌÆu³á$rÞ¶(k7NƒÅruxD9R¨}zr;b÷·ä2¶–z/÷]J ý:^´˜Q÷jÂý×ë¤?àøÔ=mTäjø«‹ ð…ó›XJrûƒ…©0|ûê•£gŒ¨éN39qEó|âÚýNæ¡@v²JΤÛFvž­š‰ù·ÛÉm´=-©%wµZÍ`žò\ªLJÉh²KéaÍè›®>gˆG "ͦkiæ˜VÅäÊMnˆ¡ÉNÌí¡}#aÎüÐvòD˱/’É«Á´ì5º#yEËë.o8kªŸƒ V¦óIè(ðþ«x€í4(¼=‡LïÛ>(.졾#KéüLÕË¤Ž”3È•M’@kïÌ6ýÊrüÐ(bíVìCÇ/¤@ÀMÿùòŒÀeàÁŒðöƬ·iзXÇèÞV6M(Ä¢äãÕº]!KvÆ&5.¬»Ìb "˜©äìý^”(_ex´_vË mÛ>Ûz¡)€DN~JmÎWL ÛÛ ¿ºýN°–’¡¤¹”ccÈÓ‚ ¯’i÷ëûÒ/µéj+ìûD¶¸/BeìyæT êÚL_%×f œÉ-ךœ¹.‰ºÅ¡hå7IºªÓcU¤FÑvË-I*W&àN¹y†tÛOÈÕ•}Ú›Œz:RÚ\0ž—®”í°`qV†} !Ug?%L¤Ø›;U—[§†'À' ­ñTsL቟#KLÛ¦ˆ$ÇjåXö0« «+Dck’'e.ŸXƒÜœÊ'éwF?“ü 𜠖¢Ë-g¬Ù­ÉHsjÁ{lD¦E5¡‹º&VÚ©cgBþÚÅ ä–ÏbôA/7– _j½¬Uê»1°ÄH#ðÄ?Ò mP0*ÙÐÆ@,Ay4 '( ç˜5Æ×µ¾"YsJvsó™Ó¢Z«•mölùjТÑ5#§Dµ2ðÚFz+IÒ‰eò!-÷±çCçsUùƒs‡Œ ZŽb€Å-wÖ«Á¾8¿# Ñ¹;øçàa…÷}NlQ(ý†ú"ÿ ºŠ“ ÕdÞŽL¡9¯:?Ϭ÷¥mC½†±JÏůSïڋǼÓïs‹‘OºÇWç<©UŽæšÈó…Šw¿>l”ãŽÆ ~ðŒÊÔã}]ªÐÕsØ4y˜Wp”b?‹©¡â03ä,¼—%p¤HÛþí.Oó0ö sMáºðÿ†™X(êÆp¿¡ùJ²â—AÜÜ&ÇwØ…ºqŸO†$Ô/<Ç\‚ìI'J!hˆ1“ñ¹„[ùÎï˜f¸ÖÀЯ =Gö ÕÃá°¨Îq,wHp¢YSU‰—ôý÷ý¶çáú;ª—t‰d;í·| ŽÈcŒr¡átÜÊ…ùÚ&މ—ÕÔ©=ñEfáÈ㔨QPhÝ€™³àÛÓ~O¯mm'Ù"Œ<þy^#£×ÐX{1…d³]Z™Jñö•%çùh,Á¡?ï¥ÃE·¶#å2Ãí'4åª6òÜ„ŠdµXT¨¬wñ1oJ+¸Ã}pcKp††[ì%ëÌ_oFs ¶Å•âAU\5_¤Q´zÙ…©6J>»È;[+ ·9|öï ­àëR‡Ø©.Å2~ÅÖ½¥ÇË\ˆ’¹‚ÊH¦gÜ <“å^_ì <Û‘·ï|g>"£ ios;7ð2Æ}fJ&¿ø¿F&n7f­Ž‰Ÿ‚=Z>½À¡;‚FuÊ»öTù$¿›qºgž•‡åÐûvνz;=Î"hÛ…ˆ¢¸KyßëÊ#NlºÿQ “²¶KmLRÖäÛˆ1F4?Dr£=«—)3®öžlTà@@â•tnôc¥¢PEâªï¦E’CØI°cf] ¥Ø&õJ°5 ˉ&ÃÏp”/6™í8tëëB2¸Þu% »gju.'LÓB” ›P¯âW<)Pw6%k 6XñÛ½’å²|ÁœÇx.á·=j~Bûü03à\žÞ—X—§ðÉU­ÇÑzËW†ÒùB Jƒ2ZÐAÛÛâ1Wœv7MTˤ‡ìaR‰.ó\Kôx0Tÿ~·…\¤G6·/BJjÌ\ï*#$Y¼KþÉ¥´Æö¯FeC9 É™ƒ›·ÃëûÞ›¯†{ô—÷༰;¨TƳHÔÁË/Zì&ì½Õ´bh7UG¹0¡¢B+þÆè›Ž<\Wl·Ôyg)!x©Êêd“7Ñç =l”xþ¬ì0¨/]–•p'‘› Q0n…N‰|uý¤“¿²aÈ`ʶÊ}ù0°÷Þ¶u\3¦¬>+NçAM¨)¥–õV /¾j”bFD¨þfñçÁÌaèÉ-ׄ‡˜}ø‰PÐó)¯¤¸ü5'’Ò©×a\¸LCwàÇI8!Ö¡ñYK‚Hª`&íd$ZÌÔøÞöæ…îÐÆº§ˆÑJoÒŸ^Õ[ß ÝÅç.ب…v‰Œ $Úº³»Ö“¨Wìü!°Ãû}R©×®n Uá¹S’›/»Ö Pí%ã·×;nÊ’½†UÏäUPîꯗ ®Ã~$`5_0µ&ˆ&ê/0:e×}¡> ûõ¸£ïy•/TÞõ`´n€¼(½tÓW |¿¨K\-Ô‘kRÂgS”f‘ÌZ… Ø3·s>Ëñê\äaL¯Š]vÚtZá;ryo³J¯xû%L—¬|„BQòÚuRg‚h3BngÑ|†³¤ó<½‚ RŸÞŸèÍø¦‡=³+îbëŒjJC—•øvÎÀ÷þݸ‚ùè†J e1OUÔ53c+±•SûDþý; ‹DÎÞ¯‰[Ë ¿_\ä¶9Jç! oóZýa±ýÚ÷½ÙLÚæÄG„#¼Q~H?U“l®87zwxeýA¯D@Å,jCŽçQ&µøþUŠ_”Ÿ†ºMG÷Éñ:ðá4áµH|3 ´Üñók«h˜1ñ÷w1qïó>-¾‘e‹ùÂÕR‘º&Ý>ð¨2ñqq‡¹v¬ßˆ$þmWã$ò¸@×´ÁcAÿ† ›µ­‡ŽX¼õÙËšÁûFΪ¥íæf{Wݼ 2µ×Í>^ù³ö‚Ľ0€°åCjì5‰-­§<Á~’€ê”Ÿ×‚:P¦ŠÑ´H ƒüÝ(ãkÍEoË…(ŒºçæUÀ.FHDñ¥‡µZ $ñâY·‚ëÂ/Šj5Ó“õdÖ° åL=¥ilbEÆ~2”t0zƒÓ=[RÿÓ_2¡ ŠàeN}*xò9æú[?®§ T‘_70B¾Ò¡>×Iùª„ä[»h•m‘f•ãhi ]"ý6±4½z×Ýk×ê«kÉ—P0IY'®0*´ÆåOβ”§®{!­UOs.dä[:ä »dž è?#óä6DRÃQcíûX¹nêž @ÓòÎt%¨c®–^kPa]d©C=·E÷pq-¸Ê}×7ïÞWs›®Ç«¹kþJ¾4$WOhÏÒ®ÂϹ·_ãá%‘í˜už8œ¤3¢'7pÁ€•‹}&—€Ät”4…›,È. ß/ŸB¼mÇù~ˆZä[¡ u,³hŠ[^W¸µ…ବYÁÓz›|¯H‡õ«[êvÙVÿ@¥ê :1%Ö‹;º¥n8k˜äÛóÆè>•ý+ :9ÕêP@Ãñª—ÙˆÈ<ŒbJ¿ts+Qíè‡ › )+±Áœ¿Ž×dô¾Ýj\è¹'ÚU»®?ƒ‰]ÉKÓŠÎÄjë0²!€W°ï!¶ûœÃãÍûç]ú1n“’ø¦÷\qB[æÙðĹ …ãäjÛD:®çÅûóÓx¬cÈÕá4 y/šœí}n Ù¥¤›aÅ„´±t•EýîÁ“ŽZ)­ùˆ~ßb‘«gY»g~Òë. wDàðÐú…xL!¹#ý½&Ä—EøxˆºÌúFÙïæYBg´leÖmn¤0¹Þ°²•E^®ê<°*.ÏHÐϹ(a¼XHB"ˆŸƒzfâóèáGÊó¦q5Óq€²ÙpaÖ¤qäZ¯â}+5!Æþ·âØ­xžÆû‰6n|5× n:J(øVZ»ì­ ïÔ‘%çÌ3|€Õ²þqSžH³Ž’E¨r7l=¤ÄAƒŠžž6‰ñûïàŒHë™[c}·ìƒ¶Ðz‡×é~COœ¼Ëú/~J¦DÌVIžÈ¸N—Án$¼Õ³$xVàÕ‡Ò¶N:X?²ÌùþJh%Eˈ¼pL;Ÿïñ.1œ·=T­8;Gù>B† ™•f\#AÆÛµn0éǤ1±‰m@Iƒ7rʵ†+S„ÊÔaM\‹‘ÏÝ£¦yðhÛ‰9¼ õ$ÐÝžõ¹íy#AåÛÒÅ(½ñ²»4;ªû• {ޱGŒ ÍÐr]œo®3ÑixxGÄïJÿríÖÅà¾4辺€ž»Oï¬o¤Áþäì.û3ü޳z0ïæGsÅm|Ë‹ÁyL1—ÿÄϘy3Ì9+9 ³m%qÄ#µRÇ@S¿Ô “„ØÑìÜLÖ.¢ÆÃò"e"Pm®ç½l*ÝÞÜ(¢ ·ùƒd\‰“À¦!¬|É„åû/œ “ÏàÃ%"þ3‹Mù1?o3ÕÝooü‰~—Iaö º(Œf*+þÆ•-—ŒÙì·ì_*2þ²°µtè¹Ìe=cS¹y²£*E,Óå‰À‰-%]X‰ßÈ‘ÍË*ýÝOn›ß 3’5¶»ßzžñâÁeêÙÆ{@¾Wñ"¤v•®;}AE=‘ ÓŸUºRK¼?o¢,j⣈ þì:Î —öi€±4¯ †c ÖAß=–@—a 2da8ä¾äåÌêY²O§guÖ›óú)¹V)\n‰9cÄÉ•aõ[z¨<-ÆìüŽôAOF‘dmwT†«ˆšf—®ÿqëeÚê0LŠƒÄºñ5ÿÜ€òTCš;Ó·U›š‚‚&ÿ':ëVùÙ81¬_âDSñˆ€Ø1‡";z³þ¡ >Ûª°òàXý¬‡ŠçP/ ;Ì4—ÜBÚFV ºï JTn›bFU†¼D“4`ÃrÉkÇ>yRkêÑPCád óÍQ€ 9),Àu¯zG°ÿ>[2 E»y¥-ª†µÿ>Ú—=$8%.” 4óLz‹D»@$3èeëA # ï%QÅß50muV$û¾íóæôKèš?òH˜ó­M‘?=¯Œ`˜!ŒÒ0áÆÐ|cØÿtøsÉ]`›—à%KJAèºê áFÿ3»µŽ¤Åïû±”BTì÷×bO:9ÜÌ'ßò¦ß»t¿ºúè “o‹FfTå7¸e´)·¦ j ‰{-Šº…*‘¤2Î¥oê·îYÎ\CÍ ×¸‹6â”é¯3<`+êž”E‚oT¿q}¥UÒRI\=ª0{¿,]:"F¼¾ÍYñ)d‡ÕÁ³ö[¡œè¬QÀˆ»zW–»\&Feƒ­ìö]`ï§™ˆ)ü:”TÐ3#ôñYÝåZ^æ­ÈÓ%_Íüé/Üésídp3 •V¨xî uP‹¶Ù<~ƒ¤é‰WXDœüNjü7²soþý/y¦­šŸÁlqÎ÷m »~a¾BKáçZ žÒnvf½÷?o9®sƒÉõÆT“+&×õ$ ä"Âq×727ýA‡Zå%rß‘´ÁeSf©¨ºÍ›Åë-Û1dtN~Ê=c—1Q¼SÄO~4•Éáî7£¯œí¡½1®å[2ÖåCö4ë;Ó·*GeM\ÃÑø†±ÔÒðæ9ê ô …e¯ËÓˆ0f¡ ›£Ï‡"S?Âð~ö\ …¯VçÔiþz`ôW5v‰¥7KÂndÍÙ˜yðN%ñĦ@MJ%Ðި㫒´Ë8ä†ó1éhMa˜QCoõö+†Q+!2ñÇ …=guBdoÔOÕØåÉiüÅŒ‘¯(±’šb×ËðòÝìÐ2HÍIžÁW¹‹®'”´)'À`U i‰TtÙ K¾“Vëýó½ãÄïñISŒ„(Wx¤5Ò&¹¢ò7%n"úTßõ‡âl&*ðKÖù^žmà [;-öP.¯’³50 ¬{ö2[èJ|òÙ‡Çh†t ³Â9ì™/õYî®Ä«^ÕX†”ìO—^éÌÒžà"ÑCÊgáÇŸõ›—%Fd‡8?{¤÷Ü¥4õ£Q»A©C)B‡ÂV¢®? 3“êå`s4ñìÈžiiÅ >-¥ûç°KsæÃÎOçm–‹4p#>íµß9@‹äÝbq¡áàôج2(«Îà .ÆJ±^‰97Zd¤MW&؇¼[%Y–›D¾\²ò¼~Âu;}­ Ë{ú <½3 !*×Åx„‘ÇÆ É„xÉDbåÖ±ˆG•ä}ðHuKïÞ&ÆxóbH»X"›ÔA¥è8JÓ4ñ˜žÏGáawHÐülq[œ(SáèïdÉrý“^¹•Bð¸sxûë|CÚýí\¿Ù$ÚWŒ8*óƒY ŽÇLúKûË\HCŽo* 4„›(ýµ©Œµ¯‹Æþ‡ ÕÍp¾Sµ¡×¥¬ø±él–4>J·ºÐ&áëóWßHnžÂù’E¡ÁªæŸ$?…1ÃæP ^-‘# “,˜ý[¤qቚJ;‰^ûÞøñ_Õ§Œùøù©ÉSx´÷šclAs,fÆ7Xëm–$¡i)±$ ýX[c6+>j ŽúNûa‡G<Ó–;ߺáð2Ïø»¾7r=!uÔºÌÂüÆ#&~ë3vÙ²9ÿ¦Iq™þmÇ-êÓ”>äÊ,_®»9wé]oÏ0f;ÇJQ…”¥Z©W[MF«˜øªO8ù¼ÁVf¯F7Ù–SQÜ+i_©|MÈ q[›:µâüóënBZ‡é%RI?hÇ©-U.ʸ$ü¤éÈ,[5è—K6#…Iƒ®g }ÕllëÓi„zËóvC¢ûÚ‹ðS¸v¬~'zÆ2) ’‹±ƒàއ…Ða‡m$ g²o·ü2JdÚõ\¥U£m'‡…¦Úîî!’¹Ê°•]f‘¶+œ£ßˆóƒ,—·H¼¦eòfØxþìT¶=çǶûûˆtÑEB!~N¾Ã°¬™ýÉXeÜÒœ§.ðËDß­·— _DÚA—PënN|éÎìÄ#o¦Ol±éB›a(縦i#ÈÔ¹ÑWÓl´i sqÁô#ÖØ½ô8•NÑ럯·Yï&âœ%€”ï<Ó`ùhiªÙÛ,¦ôNN–Ï5±_¸5ÚêwÝ£ÿN?âoz²oàz¸HF!'…ÀO.&a‡ïˆ- BJ· `Ø$¼xCŒ`~€µŒ@ñ€ýW”-²I³ÇtêUŸÍË–ÅN…-º Vb´›»ú´Â}ÝÓ½yÝí$!q9T,¯i8C쬒õÏ“›©™€¢FILc5biøÕ&JR¡Q«ä‰8œpíO0öØîs÷Ƭ°2\ØO7 ¯Þ…/ qÞ’ËÎ/–€Fޏ7ŒùþÑ0çEàÂ5PuÄÏ«£ü:A>_ŸyJÝ©žAî2µä^ÃÈÞÉÁG7ïÛå³»ˆ£•_^=r{]Ùúcïû[·ÌÓ¤÷KîÉ]kÄ‘ÔRY¨Üu§97úÆË'¶ DP*C«ôðÙWÈeÂRù´d5Êø"…ý—|¤ûpjkž×aª‹+E!ÕmúD½oVñe‘ȆõHšÓ~‰Þ:9jë/‘ÕÚŸÖÚ7q›d’§¤fM%Wq”S6ÆÛ‹»¶Z7&Óa?•Úîè‰ÔEÊ_¾A-‘ïÔ‚ñ XêsuxÊ•ß:§.ˆEÖ|—º,>‡9ñåjÔV<¸ º)p±ž´ÜË=ñzüõpí>®÷ùìH„¹°ä;½`·êÑ!´õŠ(#A,ÙïùìEvƒJ ©Jן°ª.Ò{DÉþHãF¿LÜ®àSÒ"‡V¨øó2 û9 =•4ÄRäÙ§FÜŠú×LûMùµ]º+Î2ðóPÉ7¯ìÜç÷ÒÔ%1 9JDWS=¨"•ôe †Ãb™!ñB¬ÜŸ]Íàô•ú"šÇ1«ôRµzZçÕѸ”¨Ò®ìÐ á2ü†0Ï¥j~’ ¦Ô³Å-J¹Ý3öÖF´ä˜C5`K+{j½‘Æè–¬{†)\¿<ýK¬ò®_ævš’Õ!ƒÖ‚Ø¢ZÏ(ÀժЫ…a;}‰‡ÍÁKÁv=¶Qš7ÆDa ©¶ñ6T+°˜ÈèÁºHѼ,>™ZÖ:ó“¥ÓÔDªÅš}zÑkZš7å¤zäùJà w£Õ/cÖøÎVœÖMe–Q’XË Œ G;¥š%ÍLˆ’KD¢QsaX3Lr4áêÁçD)<× vœ…Ñƃ/ôdf4“[sñUµtDSv1OÛàþj`Á0¸A˜‹ÄÎGí*kr…hÿö•ÑEéË^c:=…îŠáqJl}ÅrÕ&&¬rë<Ãos.ý-˾aPæÜY˜¶è8I:Ãt¨V=S¶ã1нЄ#­yþ·w~òI™<Ú9E°¶Q+üpaû,lÏyµ´… LhrÀ$M„¿\Ob²î¨Íà*ôÊïiº³ÌÁ{‘óùLA”¥N üÝ;0Æ‚5´Mìn—oçÍðö—Ž;DýÛߌ„]8†ã•sÁF2ÞGÚVÞGBKvE–ÇÍø4º)¾50[œø$Ä“ø",XQ´žè¾ÅŸG~ƯbÖ½a<ƒÛ‹—É[ôÚ©æj-žž3~o€µ³ªî)^sX—\‚ˆ‹/¥"µbná®Xg—D¸„2=«±ë¶BÂ'®¶X…aYK•xCO[ÄÑ›M8”>µ7ñXƒ«Ÿ" ‘¦Ñöß’@ÿ{Â0T+±Ø´ÛU2X ýCjQ–sßÂ&]øÔ¢X®“CbŒkÒ3†âuc¾„sg9ì™Â#!:ŵÌ(5€³iÁìÞv“ö¥J×j¦ïÓ§î++VÅ‘„˜#De‘øi™Ue [àrkØWœ©„˜²ÔÜ[ðÂ,ý]MQö:L2ã ÛFÑèB{/œßÜ‹"dä5lYñ; {UI ^à%çsD.RI}ÉôbÒ  RéV³š\zÖ…ã->t†ÊF­~¿•Û¨êó÷k¥ËbÃê^Û(öS…›7ãÑQG­f…y®JÐVúP'1”F8Ò‡•E@³ïwBÔÈè8p1ZYˆù”|ph%uZ|¯ŽÏÀ2¨Ô[¡4@ʳúÊ-€»l¯bˆJŸÔݬ'ð˱F.I…M¿ØG¬¨šKXø&TfÁìâÙEÛ$¨¡A?"ø¯÷`·b&™Z1êD­sf 4ÉÅÍ×™?øE—ÊØQ¯3Òp5•*:Ü; ¾öÅU1:Mjó/Š;ŒÇykÊØ)ßá0¸cBzà CIcÇasýšÆÇÄPx’Ùz`¾ú*õãk»’¢(‰H{ÀÙÏß6ÛNöm[³óÐMŒíÊÝ9¿>×BãÀôÕ]Wâ‡õ‹î¦a)á^8ó6tÀ—'lDê…Û_ðZDƒ™=Ã/coöÐ&õÛqtѤ âeÂßm*½Å6ÈŠަ®’/+@ïL ݯì9Õ\ár¿ `Nœ‘¶ëéI ímpÓJÞ>nm–™{R¥ôrÚ—>¼)‰ÊF¡(’qŒ5e§ô¨„sA$X÷ë«8ùá†: ù”pû‹ÀIµ> …0é\2ì33ÝTü5/§µé %Jÿ*þn`‰q€t{ÝodÜÍ—Å«D½2j¥7AÂè¶o½ó1#Ml˜EêåaZÙþrö`BTü¨lˆ ¯>¾ˆj_[³hJY^£x»Š»ŸóË~¤lX³‚Efb®ñ*´l%fØZ°á-:ÁÑú{£#i'WÖ÷á‘Ñ¥6_ Ãδ¬l§J 8î”Ì“dBÍß_Za1QŽù~d˜;¡(Ô¹”ÄÓºï6å•Ý™£½Ò}mFT8Ô:ws)|Õ´…Þ^½›t‰Î³—¨š‚{Ì·ÊÅBã fs¿§gR÷¹lá&mP=ÀÞx×çO¸LY Í#¯…>éa,b_“jbÐÔ1•tЀҿ‘r/uGS\oʲ»s³)brdW¤A¹%9ÓA1Y. ùÊàMñôí2"·ÿ{aÃ"Οþ‘LðD ‚d2 Ï±[ý«LÉ‹¢×úd¥²€c°¦âD&›Éœ0äݱè§3.Î66”³ù!纮‚£ÍáÎY¶~¾÷+¼²6 `jÄÉ’GGywtƳPx$~7Ìs´ÜŒ0§Í—n‚žÕÜȲ° ˆ™”t²«X³‚4æ’e»£Ÿnoohî3ne\ó2\O·ö¢ÐH¤ÐüÁö°yv! ¡£Z¾‘/¡C度 ¶ÖUggè%ý°Špêo¸_´â#ôl[¤T…kÔÚ›ØÓ׬ʹڻ´"+¿|¼7½ö"Òv’4«aâ”"õÔæÂ·o5ƒÕÔPGni‘…ð!Fèf²PJLfcÆM{™~ƒJø2€¤sxôb¬•g:r\AÉcáûº&[j ÜÔöƒJ„!åñØÄ,ð?+ön3€¶”NK:»Î˜Ò ÷ ÂZ Œd{%%7É4èѨC/¬ü!_3·šO†½Ô–uá&›U)ÿ@ôc°Ý=CDeÀ}WV©!6†xZºxXïçe€™i)G®¤ÀÍ=’‹åª³bÞË*\@nfnàAok»ø4¹fªþ>dúó…ÇëùÄ3¾¸ÿ” ð;=-X !¦h­Õ®ÆáÔÞF&u}Ø•Öþx°Q"¾µg·ÃÖ~âbRêÂSÔëEýËËÂ\µ„bªsH´#ÈâóØÈèhÍtÿWœ¢Š¯°JQ (ôL»emu§S^žÃØðøkÍkÚ±pQSëÄ\|ÊY0ü“niÅ&¸ ¦iƒÂ'|¨'ñ‚1³9"êy4g¦”»ìôPÇèM&Ϫ¤í{1·È‘B®®ØËŸI‘gQ–Ÿt=_°w©áÃtÐáŠogU^ó6±™Åù@X!Gû@<»Ø_zÜe“½ÅNaªƒ„æh5†Ø±o>ÙòŠôÔ©|ëbi)½x\ý¶™©¢¼uŒuµ¯íÑ„Ÿ5‹ìÞyíW›©.%«`ù™ ¼å †=ÈZ&תҔŸMÃøøI#WSËò×·Ù¨Ûš8òUol„‚zi+…0#É{62+eÙn;.·ko#2¹­þ˜ú¨j9£>y#‰Ð|>¼HËÑ”'FN,¡üªM «¹´%(azU¿7°éy24}ì[¡Gvô`ˆ«À5®Ð«[ŒÆ[?lâÅ7D~m¨¯™bmæ8î(ÁØ4V¨$%]ï{@/HÒolS»é¥ §)(ÍÝεæ_ã,R¶Ø –ýZ×oxÁ{£Y yPG•ÔG>•|ܰCk¸íÂyƒ¶-:"1/#jA’° N¿7 ç'81žn5^A†)#×F"ynã'<ÈI1ÞÑÀ»µhã+ÿ?¾•¨ endstream endobj 100 0 obj << /Length1 1734 /Length2 11872 /Length3 0 /Length 12964 /Filter /FlateDecode >> stream xÚµPZ.ŒkàÎàîîîîî 0Øà.ÁÝ$¸[,hÐ Á!¸{pw‡GîÝÝ›Ýÿ¯z¯¦jæ|­_Ÿî>CE¦ªÁ$f 6JƒݘؘYùJê|VVfVVv$**M›=ðo)•6ÐÅväÿC/á4s{•Iš¹½š)òîö67??++€••ï߆`~€¤™È Ä ;]‘¨$ÀNÞ. k·×,ÿ>h-èl||<Œ¹Ä€. 3G€’™› Ðá5£…™=@lºyÿWZA77'~OOOf3Wf°‹µ0#ÀäfPº]<€–€ßå”̀ƌDд¹þ-Ö[¹yš¹¯{ÐÑõÕÁÝÑèxÍ ÐS¨8ÿ6Vüۀ𯫰1³ý'Ü¿¼9þålfavp2sô9Z¬@ö@€Š´"³›—#ÀÌÑò·¡™½+øÕßÌà dofþjðq3€´˜Àìµ¾UçjárrsevÙÿ®åw˜×K–r´”;8Ý\‘~ó“¹-^oݛ寶Ú9‚=}ÿ>[-­~—`éîÄ¢årvÊIþËâU„ôÌèàbeeåác@/ –ßÁ5½€)Ù~‹_ùûû:V¯%ýAVÀ×$_W3 ÀÍÅèïû§â¿Àdá0Zƒ‘þ‰þ*Zý_;ïò°¾€õ÷ç?'£×Ù²;Ú{ÿcþWsYä”t•UÄþ*ø?*qq°À—‰ƒÀÄÎÅ `cåàð¼üÿ;Šªè_,Xÿñ•s´øþ&ûzKÿ&ìñ¯îÓþk1èÿKü:±@í?nÈÊÅjñúÅöÿ<æ¹üÿM÷ï(ÿ—ÿ_>Òîööii«ÿ?Z3½÷¿ô¯óêîö:ûJà× pü_Sàß몴¹;ü¯VÎÍìuÄ­íÿs‰ WiÐRäfaó÷¨ü-×ú½`ö G *ØôûA0±±²þîu«,ì^ ××yüK|]šÿN)åh¶ü½]ì\Ü33o¤×¿".€/ÛëZ½þš` ³#ØíÕðZž?À ì‚ô»ŸÜ\±ß¢¿€ÅìÄ `1ÿñX,þƒ89_Ñëæýcý›=‹å Àü²X¬þ¯J«?ào%èc‹õð5™Íð•óŸÆ¯¤íþ€¯¬íÿ€¯´þÈûJÒñøÊü|åáôOܯèu@ÁTÅöJÅåøJÅõøêáö|eæþ|¥âùGͯ¹½ÿ‚ÿÕQ w—×÷ì¯{m÷¿ñ_'è´@šŸ[„ÚÖ†¶ÞV‹z2m MRmé| còwis¿G…O¥«Ê ^u¹KèB_Ú”¢½] }ò=h®ƒø–¢Öòà÷h’¤>¾Õ‚4÷çÇXÑØ×^bD"&MÑm¿'g?í ;èfÈyªËŸ5Ù];ñ)ñõñˆ¡¯0†Ç©}ÅwÓäqg}ËŠ—~Ìy5 “æ¢0¦/1¡3ï²gVÔc»k<†çÛÙ~å¥Bi`þJ©)oÄ2q!WÁ®j1‰Át«á°ï¶[‰/·^k·²M'Zà›øú˜æ!K©AɉòYÖåï|ÑŸ[$ïy2Rt”ôANÇvýÁ _ç÷IŽàÙÎCbhXÇd™«&®ÔzQGÿ*]çZå1`ɈLÜ«¿»o.jÜÅýP~ª8VDzdûàN>×9 BºèLܸpÜ •F½=É<éW2‘Æ8œla–f»Õm³¶vÕ/ä¶g]AÉKxnkþ ØéNÛI[&h&ÈðGg˜¢{zðGóX×dÍ®?ߎ’º,ͰDò*I%Ø|“f¼ðÐ(éëýŠ–Âí貫%ïûÞpHLD¿ÖJkÃ$‚“ôº;ÝKaIìNNþ\Èíþ^ƒýåÒ£ey4èðM@ä¶·Ûõ‚%ùà–™~öX˜ó~C__ññð•¦C}ø“ý¶ìeVÞ”–A¨¾tpm¹©Ú¥7éÊ8îÒ­µ%_Z.½ØE‹é‡|À aŒ×•õg¸‚îñ”ßïóŸ¿Þ¤d¤¢„nóìQ>×m}PUz¨(1Ì‚£%TÄŠ‚Ù(Ï@ð¡Ê…™&PP–L1íùT4á?£ÃÝTГ‡'†§JˆÎ­¼›IÍcÚÒº”â>­ŒT¨q¬+zNšìa|ö’[Ì¢Wa!OëDnDrc ´î~¡BéÄçÏ<8Qä‹3øÏ.¼ky¸Å¦ùQS[¢®aœWŒ3©:TÿÑ,Búj¯ž¶= »¯î•µ¹³<4tëóbGhÅœ8í¸5¼h×ÛÜíÍ‘_¤þQLëø}·¼Å (›øoa‚£hýK&K1m ÷_z¾ oº>íÓú­{×}`É—ê—YÞ»Ÿ61Aò5¸û'“êå¼aÇœ&\)‰ã-wˆûg•ÕX~Nò}$ÊE0=ùŽbbúÑA`Ó=ÑÌÆËå YÇ2‚¢ø‰ÎÖDwrÔˆ·x ’ûñªèà´ñV‹;A;MûŽ8ü¬u#²‡å³‹ÂÍ+›Ï}$qs ¡Ö¡ï 'Ãl…„‰ØjßË9ðÝ“™>èSçkå¿ÅÖÐËRßnõ×"Îvì¾a•)<ÕdŠð2Ÿmö”-ä¥awÜj%sU}ª:.⟀™f*'\žò!!åFKÊÆƒ±^ VÛ¬Ö—3¨ÔI5i ì.`:ýRí…=8’ ¹CM÷x^ê#ßþuµÑó}§¹f¸,ˆ[y×]_¿A$MQÝIíè¼µÐæ¶2ˆpÐV`ëÀâÒH»T?†¿U‰ø…n¾ŒfÖ‚À 9\¡ô4o,@½àèn­½V¶\x -äšK_UÄmXX°R•Cwaõ°ú1­5ï»ÃÀ®º¡§¼☺ÓuõÙm@ø ÀŽ9?2N mßÐX]»Á¿2²žœŸnî´&5Ïp„Åúö ¤˜…¥î3dö§LEL+…K…†£ã¹§xyfHû¸8ÿã.oò‡ÊN2Š…R/ó‰'.eƒgzuo×ô÷”üæ,G_EzÅîa0}­ÊæW>ðTN’Þ Þ!¬ gÑ}/§ƒ~ƒ‡¥Ö‹ÕiÌMÜ,#>Ö@'g•õÃ>ªÓºIègáDìÓמÀÏÅßúœ(0¥òÂâ¾%¤©@ çÔ6M^"„.F*j_î9r9rUwa-û7%Ž™þ'9{¹}›…ûð³îû»¶°ùKÞ9h²ÆÆÁ9™‰"ïÈãxÅjºÃ!ãcÛWž1lLêªu¦–œ·Gº–huÊ÷AMœ¹°® &+íÙŸÈ?³ì˜3nŽ/áTÀmîúdälm·kwYÚ×ßâ/òš4ÃÊ”ÙÚŽyIHk~î)Ô!oeó ʦNOÑÆõç}¯SZZðmÀ-–Ï ÁÚúîfeÞuqYØ8ÙßËઌY_ÂzY,÷nñ3éðô¥ ŸÇ‰$í¸¥ ß#I Xaœóç;‘] 1ÖT`IÔI§pÔû8Ú$ÞpŽâKYV&ÉãRÔÀEŒít:»ð!}\P! A4Õnt¾rÐ\Ô"¨©'á·(ç:.˜lðmÈʾŠóü ÕÂÝOÅ ÐÝ#iiWMüZñC×ðt6çC‚¥Ën sPŶloÔr*™8ü?¦’.i"ai¸3áÁПb˜ú2ÖÒj7ülÙÉ#]-a\ð¨ëè%%c˜šÑ7*¹¤="×uŒuQU…¼/Õë»P’ônæ0UÄu‡‹æ ˜mz\h¹ŠÞ©²˜ãç ÐmLSÓv!Óê1³à^éwhûÅÄ0ðˆûsVÀ7¼CzXÝk~³VíÝÚŒ¹8ÁqGM7·É5G®¢å”á7àð5_¾ö•þ…Ú{‰EKA>ã1D£zì§¥DøÜÞiÿ‰ãý˜O7EmÎEMîjѹ±ó.,¶Šcg­±LbÕ+_DDCG3œG¯ªoµÛzi÷Ì® (>ñz¯irÊÒiwËÝ'ó6ØÕ %ôŒ¨?\ù \ŽúÀ1ÈfäÈ@7ìâÃ<~yŒÐ&?æÖ%³Þ31+Å:Î{$)2"dcÌPô§ k(ù›cÝLã”(ß)U\M›}n{˜UØÙ@ƒ ºƒY-¹P]‡nx¹ÃðPe5” ZiuÄ È?f½Ê ¨å¤ÙžXî”iê´B‚(Æã|ñ}ú¬kþÔ–A0Æ©:Yë3¥Ïös^÷xsôÆú®vÀ³º¯[9Nä3ÔДùwÙ/½ PŒÊÛ&¨al~]Ña®µ5Á‹¬Ìš+}ë< lÕ¶Ëó„È4»—çÂ,ÐÐvædú3î¬ô§yS cŒP¿å•]' “Šw¬1G~®r°1Xªñ;ÚC¹ºñ‚ÏGp›ˆ{¨ØÏÖL~xóÁ"çJùœ'ûðóî>RíȈè_ Oueë(Ø);#'\6X““0y”zè GkA2³P!W‡IÌâJ– ùÆ¥X¥^¯,†^êu¢ KÍwÌùI6Ù?âíŠ|Þ,{ö43ä!¦"¡òÁ{p}tjÙö VÖh¦Ö.yl&‘€£Š| ¯_Àú1yìÉØqót_·J-Øš¶§ÅkwCbÕúè} §¿* lߊǚ ꛋ ½´ÿ±ŒŠ`›#$àuûÜóå2s°‹m‹nžLæÂ­¶eÎJÞ?ŒájÝw‰äÂÇË’f™¥×Û¯Ç&f-¨u7û~ØfOëÙÿrÓ¥©Ú˜IÉŽ!ztÂ|ó«S€ýb’'3jG ŸºfB‚è ]ѧnŒ<²vtK>ÄéZ<3Ã@ž !~©¨Þ²/5/Â}ÎͲ!³4]}G‰IÉC9êÛÊn´Ž‰ÂHhä¨o‘TÐ^¾™bˆ¥Ç€ßz™œH¡\NddªÐÊÇ/7]Öº Àˤ†öÙ˜Y˜3. =ë4øÆŒ2hE(Û`(F>ŸÞBðŒ,†cJNÛ02Rd@¦5­˜=ÔZ<ǵH‰%­ ENáqþCv¸Å“I#¡>ö¦–?܉ÄöÂEF»Ff°Þ†c$¤´ -Õ$d/ÿ)bºc2ô²_-ÊÕÜ£É0r¼»µ‡RØûXè€iÃo'ú³dé’¬ø§çoÃ$C,,]¿–·‚a­Çfî`D4zp¥ïTÑ¥¾;òLö®j­ÆGk¥ì[Í/̶J¡¢ýôzúâPÜÒݾ0eò1¶T²HÝì€hövÕÿû(ý´Ð-ÔF•Çjê*ûSòaßîÚUɬÛ>ñÈ~;¡uU×/ÁÝ6(À5ú¾Ñ7%ýÌÍ«±Í{æû„=T µöL1€¬W­d/ö̧öG˜Œî£—AVáÊ2õfç3±!…(ªY©u"ô#%×(¥ |ȘÀ ©Ã;-¯r:¿½[ê%NVˆôzÒC©²˜˜®¨L!H¤ôÁ;í½BŒï)9a}¶PíBÍíN‰è¥#ià›òe¡§/|-r…‚Aqz¹µì,›‘šº4ªº»ÎØBÜêÀÉxï“Á©å%¯#,s›à“ºÕÀ£ëǘèÿåÅ6[ß³ÚE¨Š‘¤N7!|¦Eá¹zÉTNS¤ùF5iÂöС ½^ÉÍíí$ÝtÞ#¼†~j¸J#á ¨ÜB7Ñ{¢½ ›°òþêë ‰ ë2ùCu~ÆeÔ$¾À0µ·ü-°¿Ç3ãydÏûÊG™œ#%$)ŸÁLïDŽœÑ ª\«Ý“S¦k6"vt}=çë\Þ'”¥ N ¨ÎÉ6œëhãü€ê…ËÔìùæópÕ’Ùåé¥0œËBø fÅB©Yæ9}$*–:ƒån'£gj^߆v©C^]B@ë…ØøóÝÑ­ŸÜ/ï¬âÀÆ BQ\¤‚Ä1ª¸ VG[ BDƒ`<‡$¡Z*aŒ±ÂéT…¾?8h‹ÂûÆFžúÀnÝ}fß5ðÙzNv™@Ê€T×C`Š®÷^SZo5h4ä;«;#2®b$¼fúÊPüaü q7™=·ôím¢º<5gÔDéÖh„$í /Pç*q/UªIwÔLk.«Ìw´_„!1zÇî< ”C)ãtC¸ú£4œÐ¥8ëÅwÀF‹lêëe¬*Šp5{25¡»l­AOt$«›vcÞ¤Ž. S|a£o¢R¶U¤­F‘³//Ðó¿b’Ý™{NA7Hͪ|pñqH ½L°æþÃãšj“åÏ›mtùp¢¶àh W¾AT,OQ† Àßš‡Ë·ê^ós×QŒ]ìñ¾pRWIò7ZªPCvJ ª±™8EØõ~ý!(ñƒzMb!IÉóùSëÖVU¾µ€émœC=2p8ÑoSXœ5A •(úÌ0.–Ë\ÒÞ`E§ ½%ËvOX~ËýŒ6A}©lígzoD·ÒÃq–@ˆ–tõÏ£Õúò¹n ·Ú‹Î!’ίpj{þt6ˆ-˜u{˜ßÚ@ l.kËŽÉP¤tYj9'Qoçê::¿Ž¶x²¼÷Ýo¹(Jz\«ÁŽ”ã㌷^¿te¬ù¹½…—ýýã÷Å#K5×7Û­v‘ća& !Þ1ÉÕ%ag¾s„§¤’ÅX нLD>˜4a‰G‘ŒIædD娲VzŠbãOÎ!;3¸¬G‹ÌVñìŽW`ƘJëe®*—Šð¦k¿½P‡*V®ø¡­ °ü¥Slì™D]#ØÝùˆ£èY•Íg„G­‰b÷½€ìÔNØ:<èŠf½{wÁfæàˆ:gŸÑLƒÆ¾VwúœDÔ[ª—‰‘Üâ ïŸ^-‡£(Y%3¦AO'ªÌÅE'ñc‘1Ïóê¶~"ƒS¨mŠ›\ÉÇ->ÇhQLžÎH1% Î%0–^Î1­*WÂxGL® £GM;9«úôcôV¬~í#†E4ûÂt¢zxÑ´À(‚xlzª´ù™ôtUjïe .Œ£nn}ºq2Œ˜"À8ö*‰¾+83̼—fx¯q¼~M°5“ 'ç~è§ëúE™d˜-‡¸³ãâg‘ l¥eÕŽ3dÙ¥2¥¼uì½£¢ë/_qg½A#[üÔz«g=ñ—ƒøè£Ð«sP;ÞÐW­“F,ܧï_kóœù‘‚¡ùø¼€pF꓾>5ÐßD¼U¾iÌ0o3¬iR˜>ÊÓ×Ó—Uª¸ŒÌò#³1նʘ¡“K뚷³èU‘fl«&8aõiÒéAКk¿( ‘@×´è'çÇ=ˆFF.·«ðg×þr©1ŽßæW*ás­xó–;î,J/™|¯÷Á=pRBÎ\Xâ hpß,ú³Ôˆ*˜¸¤ÿ!…O iöÔþýn¿ºmR–»X¦ð5Qˆqíò.¾ºÏ¸ÕÛ¨½4º[k[±å¯sqUKÁªÍbã‰xÆI2´î|é-‡9dy²¤zÁÊZ¨þ.(!¥a>]bƒEuŽõ{1våËò inD©«dƒf´üÑI}eå`IBâÍ®R<ìØB?RŒS…a®‰f.Z…õ{ìIaøðÎïiÑ2ìØìøŸâÓÇz¤M­ï¯?3™>¾MzŸt6’DV\ÊäW~¥®­äÂhIùÖ6îæ“g% ÷Û—¸#Z*fSæës·Î$S¼³þÀÈœÝëºG¶-š£Ïø"P={í…ãÃ/¬•j¨çùp<Ï.Owzå¾[T;/‹èì/Ú…Sßù>Ëv9óV³½å8+=?Ÿ œÎ¼,aÒÈ€cèÇ¥Fk‹N2ì7êÌ6×YÍ'+P^)všÇ6ë>fM¶JhµOXvl™D’’Œ{Sç¿+áÂV}AüvkêP F¨ðDÒ.ÖÆp¶N=!4¯/I’ƒ„Ö\£@£šÛ3áf¶Ae´þjÆ[Ûu~zÐjœ¤ýÛ‚ØúÀ±¹c\ð¯­{É á¸ÃðØ mQ˜rìï¨êÜ7%ùðrË ½¶ Øb¥6¬Ù8æxÜUuˆ™ lÖ²qVN•{çÕ"ïÚ,É-§_÷vШ.Ú0qZ3¨ö]çÒIÏBcÝëy XÇŒK È?C¿B¹ìžÉbÊÂ8<\~V?’Ÿýí«q:Ù!Pg9Éoì· 3öhvå”ǹ®+‡í”¤HhùFmŠÕ+d.”ht®Ïk<²=œSxðÔÛ®y¾£–9:8é¢ÇÕ¤¸Ü—~‹â .µƒ$Î]¶êRÔ•¯˜ŸŸ9Z;`›xv ib/—ö—a>Nç¤Ùrï„:Çàéwû/ìšyŸoEïÂØ¸3â;v³2pM¬Û/?uI'•†BÎJqÉEä¢|?d©&´5‰^„ù¦®t¸)íÚæÁ!ÝfÏUiø~ÖUÎPF¢µrÁ¹±bËöú“oý¦`c•ûÔ1ƒLÝê~IÔöâX˜RG_F÷Û¨æÑ¬´[žÓ—;j.ö$cpŧoZåÚÉb))…æ­zå©Ïš¬_³ê“ì\x/|É,~‰–âÄþ—=“dÁ cZ…Ý¡‹^õŒ’`;¢êi­ åÕÍqÖ7—¹5“+ è’gRne¡{!àFÃ_–)ÍGõ¸D®Ô®$í f&^õ]; ‘\}V¹Òšã¶;™K QIŽ~@cø4ÏGÞ·èÕ«Ôõë;zx¯~láCÅü»pò“Þó—uúZ ïÈFzA¬ÈŽ)Ú@À§;ŸK\¶ÞJ&î#M±ªešçi÷óš›0f!£œôW÷ļ|#‘˜æÁ‘ØŸž>šY³íü»±}j¡t3úÏ0ÕzÄ^Î^íÖ…òÎ&§‚ú‹G"öíú0Fè§Eá:Pð6}¤ÞÐDp=çÀdŸˆîÇf—ƒœ© 2ö'ì,Ìʨ¯+ôÆo?¬_óËzàDÍÞŸ»5¬+º[}½¦·ÚàÇìõ+LRÿÜ{Ö‰Wø±l,å86¦¦s,XÞá ”’.u7}|ˆ°õøÙ›ô`Ƭø—ކÄåz× }þr﻽÷9[IÑ=QEÜܬæz»¡C·JLj›ˆ€+É.v¥ y¿y~lzgØ;ñ%"vÙæD¢ù€jìfl]Á>EãýøZø´üAÇ`²qÎïˆh±íAŸ ¦N!æã…wô<.ŸÖ'<"ïi@Sáùz{±Sy¤ µ?¸võX©÷çýßáÒ^F»÷x”˜°¦[€q×¥îó¶~LC3Bþ~Ë^-r#;Ã++ \ŸÏG«šç:)ÂGݦ>Ñ ¤Áb/™â†hE¼í7J\¥R  ˆ –„Àü`j|'±Ž €ã¬ZhÂËKK’…ómàOóÄ`˜o«­%$P$K²Î)…‹Ýó8QÂi»&ÏMÞ}Í•×UHý"BÅ^ž ¿ «o)_×¼x¥)k„¼¯Û~à4(!ngɃá|uúÞ•ôfo¯Y¼9ÑYÆTCñ€èž7„%ÐÕ0‰»ÔíEéÃ>„3œ*Afö:tëQùÜD¼ð´_U4à äOKØPºéþâ9ß·|Š”‡ÉÒ{ð ë!³…ór÷±Wv[kÝÙ±÷†ó@I9ìqnú]B—˜³xny‚ÚçM¨ÉÛºTvÍ{œÙ èƒgAÀT¦þO“§IÏø]S–ZX¥\…$"Ñ” [HıªÃd;3ÃÞßÓ¬+­F:§ªTCÄÌÈÉ–ÒVEb'Þ³.8ëaíÍ_6 *H‘[W¡“/§ÖG„¥}ÿóÝøB¿Õý’CáûÃ3¶ÅŸãúKO^Oy½Yj-ì#,¦7e'úš(1…¨î~¼â¨© ò%fin9^ÒÞ÷ϸª»ñ‰6s}4qŸqßdÈ@PUûQHG˜ÂlZ­˜RÏ¡MÐ,oίäÃNÈÛý-WT7IüáQ×uW­9‰±î™ ² *-Ýßã*Æ8JArˆð(ÕãɃã_µº·Nãš"˜uˆv’Ž$ÚòPÛÎÄ 3d†”\†3”8¿ú¼·e²5û2ô8™©Š73i3Tîã¼,ª¢Òÿ•ʼ™¼e+2"bãÿ(Ìg‚²Ò³îGÅHwºz÷Þ9-ÓLº)M6.X·‰óbÿ”[6ÿÁ`·T +lpSt69 ªõ~…dݨ¤ ×È ;Û~ÕüäMl38#=fk€±jep/U?*)„¸á¤ðÔr¼iµŠ#Ô3樫?Fz°´cÒ×Éeu ¦DD åÂ1ÿÖS®ÑÃ7 ã—/¾îëÖKŒîäú€a()¿†úËV…Tô3‰¡žÀGéf5J|#…¬“šzp§=æP£9w¬Ö*]*¡OM»9è‹ýׄðKw¢@¯yí¸n¦ì,ççä²Ùš]ýO ‰K‚óÏד ne4°Yq(|µØH´™‘ߘJ¾G#©°7g¨µórß©$Ž&®.ÇáZÛäÝæÌ«wÍÅè¢Ò˜uA|{aE¸^f ¢Q7é2¨`Êorv$íYJí0V¼|÷þgßO]zä÷lcô˜íΦOnû×hõ*‚Ýpjkom¹²OµîÚ™?:5è«HJ·Âž@ÐÀŸª>XND.ß§oHVüºwÓº¡HQ€!¾M†Â+ÞÛ ü.eþ~~ÔHs$û'KËŒÁSÙý%öO}HT'm¸·–Á ö£„) eÊö2½i±³‡ö[ÖÕF¸ «<ãkñ΃òY‹,GíoV!:"½ÌòÑÍñS=¯’õ²f5ÒXý¯ ëÅ÷¾afI¢ND"d4 âh¿cèõ§¥Õ3þ@^¦bˆ2Ä¢_9åY¶|œäo° <Á$KŸŒ' ¾6P4d¬OnuÂ[ÏýÑ&tD*r)ÏŠÖafÊp“ „¹å™ógßÈ;3ÁNJÁí]¨Ü%‚VüÁÒ𞌧¡¤Ðt¾@º Ûî+ɬk ¬¤P*õ&›‰§ú3óï·‰KWU©!L r‚+ïõlå‘ï‘Å6,GÒ|êvFœ€ˆJ‹|}~±5‹ÆU6Ú© ¦·ê¢u=3ã!]ô©·ŒrLr™7Ç…FYf—_x[('jÊRã<…%o ë,?pzëò3 êYÞ$Znꊓ7aØßÎt¢x%dìœí~¬e*PC˾éãÌ7%yë§wY'»y'³ üýšh>†\}ŠŸ”÷×ñÙR*íçÚE¿ššÄú¾ÃpZÓ|»1ñÇȾ­ªI7rÞã$íë´5gyÅ|ñ”"±+ünü ¡"…‚ë~½;—M™žÕ™LÄM¡DujhIeŒ‡LTçÂó½úë_éTï‡h6ØõÍ`˜ÏŠzÌk$¨ë*8ލƒB,ð"Dˆ‰ªws”U8 ü´ .vILñGÞÕÈÝyÚ†¡c:P¬æ>;%OÊ©˜‹óàú>NFoŸÄbÒP6ÞòJMu5?ÿ®½Â[‡½=©ÔT}Pý=æÙYïtøÐnè„ÿ;ëûÝ'E›øPÔš[HúYuÙËäï›<8q·Jϸá']Çx5¦¹Þ<챉-ônFækðð‡RzÜp´máá¢xw%–©%,yôßm! Xp¯rórÑ‘œ·Ô&j¿?á6–¬ƒ=‡‰6V–I‰™t¾ìA™Õ–÷L„ Yhx³¿IÆG\•˜èì`&¹ñ“< <ÔO¼»@ ÏgŒ²óx³›D‘Ü–à*¤3ãUš‰]”é¼Wçh_ÊÛÒÂSñáw–Ä“ TÇI±^@lyÈ*Žˆó±ý´³¨º¯ÅÁ6AœÃnZóvpèȱ‹î‹ íé½/Mü؉m€5S\Ÿ»Ö:.2G>4 ¯ ÌÕêt 0™ü˜Ûy'ÂÆï#ùôƒê¯O;‚ÂéZüLûçö7 F"sÊ®:ì}ãi÷rÁ攟J¢û„—?ر¯Yø‰dðgZo§ëà´Â¬EUðîÌÝ+R&¹b?¶n”qîë`¤Ø¬}í32ŒZ0>âe·ûÙsðÞ#–ã«cœóMŽî2qÎn't'¦PT€ñ; £6 ©â]i‚2“õ|Äý7\óç…d.¹5†T~¦of»D?Å5ñ/}za2ãâqdFâ'g0ÊŒÇt#U>±UEGg¶-³o‚8¶-\Â]”ÒÛë¾ÝÏn–X”†IÝØ©X—ø²Î{mÿ˜åõu5ÈÎ ¯¿P1N@Ý}U¹¤fÝâì»Ö_ç[«ÓÔ’q)럄ÿ~=Ï)샱#?ÁääQŠ8(Üw ø£]üP5‰’åìÇa˜ðQ·; 6û"öîLtxIrð, ·¡† têL=[ãå½Iš4MWUÜܸü´ù[Û2´}ÙôïªÃ5?ãUÍ{ ÆQñª5¡Tq7=lª]¤CùºjwAÕ )û˜léEc„ Ö¯µ~Èøò¹Ð‰@± ýéi[óIñõó^òké ÔŸ»Üt”I¹å©)¸Ï°–[3î³8QW´C6E×o…ä¬H1•m§"eÒÓø ‡Ä™YÐŒ¢nB·vÌßD¤Åh†hâÚi­Ù™Kvµº¢÷q ôÊß—‚Í wµï>ßú%YWÛ*¤5SK8x%à'.s]ŽpveLA™w‹CnÇB%-È+bI·«Rº;]Îͬ¾Ìi#˜lŒŠR¤«R˽G&(¡8FJ°ü•Ù¯­Ó{à_nБîɺ !K<§„@w¨ÇÛlUÅxÒæLvèDõÙ¬ˆü­;Oñ†>LÀf²d¸Þ7Ivë… IW­³±O'Q¶²“¾Ò²ó¶b©§Ÿ6 2ÿìú2ÈU(è‹Ô­O00‰£~r ±Rù ` ]Ç&Ö+bïO?Ì¢‡Es;Wé@ðçÇœO•ï”\ %Æ—6÷2ò ¸ ¾kÑY.bï”A—ìDöKFècÖré6¨*厘 iH7µfžØ»‘tò@‡—¶Ðˆ2Í1Øì#g© •#¹Þùá¬!×qEö{rT1€¹NÒ<ìn*g¶ƒSE(¨,Ž_r¿sÈN:}L2ÝDxLí?î7÷ënJZy70HÆâN h !2ç(WR—,EÒÉüôáú 9É¡êCqßmKºñ‰OuQðÏQ%³”ÈYxµ÷BúGä¡az¦ YÙÉâ½6÷8ÜÄÔ鮉0ªyŒ ]”1)*çXÊà7y#ÑsV““èòõ31×éÇc,úû㜉ÛrÓ¼Uòï–DÌk,ÆD%‘ïüPw¾f!wå˜Ù¡ÑöèŒ3ú}kå!ÁÍ¢ ”ªŸbÖ¨âx©è—ÝcJHXn¦„Ó~/=ë¤ë0ã”r:5½Ä@P ³CÈŽ˜kÙÓÒØEñ¶PÙKøKjR5»OU6nº 5¡FÀßçü…FÁÙì#âø× Z Yû“M8¨PNŽÀ•¹½Ç;c8æ]]‰á¡¡{sÛ‚ÝFh‹ÍÞ}l©‡R̺YÉ'úiß TZ{Ò+…÷ã¢.•CÝ¿ ;É*L”ò¬aWøG«‡uH~è°]ô¬»Zv Wå£È«Mö¡ÓÛÊU·‡ÊVQÓ±T¹²õÖÊW-E¿@WhÛ–ÁdØÍI |Y®œ¯{»jqŒ¤:Ì­¨%4Ví¨w&u€ôóWëa@¢³ÞÛnÀ†PàÌa)3¦mQ®äG8»‘Eq97ݱ¦ôÊ@—™¥3ÞÇÈÌ i3&°e¬ùRNIKpmPK{>Ÿ–³º’‚. aKÛ8·f¸þÒr‰ïB0¾±çn§ìqW®û*ÿèSwNòû =[.+Ù•¬4ê’“¶%ˈ¯¢!íÑŸ°­†oœ+‡©n¹ænñ‘kÂ"e˜¡€ºämÕ²­Þw§ÍbÁñáqÒ4Ürªz))ïÚe*&$>ì¢ÿ°ìó*FGÚŸ›àÐ!öUæŒxyb,1µêráXº Ö“fѶ)öE½x·Åá˧C mvÎãMös¤ºŠã'ž›ÁN{>9¯k%­>ÅøÚTô‚‘¤¢VÂ3ѦpGu«Bnò`æ“·RÍû¥ŸÕH6ÌX%¢ ÌuÚ£K¾ÝÂñCŸ Û²¦²Ê™l_"ÌÒoÿ×÷>³ endstream endobj 102 0 obj << /Length1 1409 /Length2 6381 /Length3 0 /Length 7340 /Filter /FlateDecode >> stream xÚwP“ë¶¶ÒQzS!€Hï½J—"i H€@H ºÒ•Þ;‚Hï½éÒ¤w¤w¤#7ºÝçœ}þæÞÉLò­µžÕÞ÷y¾™°2éèóȃà–`8 Å#ÀË/ PÔÔ"Ààçâåç$de5€  à¿ý„¬†`‡IþB¢0>% Ô„ÃêÎP€€@@TR@L’Ÿ ÈÏ/ñ7Ž(_B@M^€:F²*Â][¦Ïßv+€€„„÷ït€¼±š@”-ØÓÑ èí `”ë?J°KÛ¢PŽ’||...¼@$/a#ËÁ p lz`$ñ üZ tÿY—`` AþЇ[£\€0ã€B¬À0$&Å#˜î}µ'mG0ì/ð“¿Ü€?‡àøW¹?Ù¿ A`¿“VVpG ̳XC `€¶Ê^Å Â@¿€@(ŽÉ¾B @K à÷è@€Š¼.ˆÙðÏ~H+Ä…äEB ¿väûUsÌÊ0"ÜÁ C! ͧA€­0çîÊ÷çríap˜ûß–5²þµÈÙ‘ï) âä VSúƒÁ¸ÿí³£"üüübâ°Œ¶²åûÕÀÀÕü;(ðËÙÁÓÝî°Æ¬ö„Xƒ1?„îHàK0…p{ºÿgàŸ¡€±B,Á6á¿«cÜ`ë¿lÌý# hÀ3~ ýü¿>ÿz2Ã0 ‡A]ÿ ÿ}Å|ªOÕtkrýYù_A8àÎ#*àá Ä0žÿ¬£„ü™ã?rÕ`Öp€Ä_ãbÎéï‘_þáûpþYK Ža.Àþo¢?çá·Â| üŸéþ;åÿÇò_UþW¢ÿ÷D*ÎPèï8û_€ÿ't€@]ÿ 0ÌuFaT  ÇhößP#ð_ÒÕƒ ÎÿUC1j‡Ù`Í#Á+,ú—‚T Á ÊÊö/ÒüåúKnP ¬GB~½`<üüÿÃhÌÊóAb˜ù;ÆHèŸm•aVpÐ/­ Šˆ€ЕsÕKà.€%ŒþÍe/ ŽÂ¤0+z¬áÂ_÷*!à³úåúma(àsü—‰ÙÏsSpÐo×?[9#þ&fª¿íߊƒÑ`+Âé ¸•”Ÿ]¹_ãi©ü]ž•AAa’®ƒ·GøFËÊt/Wu}¥Ï…2ƒ§ä[ǾŸ-o æ^רSóÛ›õH –¤ž®l¼emùÛcˆ\æ|ùÄYð»FK‹©… dC½[«×ãr$7ÊAÃí´¿2ž²þXúamñI‘í.[õ/1Ö`h0­¸¸1–_“|JS±B™üèX³ÚäÜàvô}•õ³ÄÎ>A‘¥®™|î›ÅÄ»$ŽG)² km¢ôC€QÖå6eÚ‹vŸ£F¿×ì–È~ýG,R©jËCª;©Æ•¤×ÃágO¸I‰*%ØÌa ÆÚ”­BËš‘šöÁ»'TݪÂuzã8øÚÇOMêCä¾HÚ­¢Ìj°=„>íÖw<¢1}ê["ÀfäS=2[¨382(¯Y” ‰Ë7ÁGMâŸ#0•b"]ô)ïùf¬Q|ì h*{ ¾wÿ…ÙýëÐ7ÚdøÞ$jú÷Is´ªcHÈ„°X…¨tYs¨ú3}ìC<Ov»VW˜µó|}gC ~žWYψË„&!ïèòjðyQ3Œ˜ˆq†;Aùºä; å–¥õ7ß/ÌÚé]·ÝÙÈýÖ6âz.YébâìÕvL§Wcƒs>Ý™ãèËùÖwh8f³ –ϰ^ñ½£Ð–’¡}’ß,®¹úDìm’žíëz¨Ðf°n¥·°ÜH½#‰Èk1Ç,ÐkIa}{hr$ÍÓ[Rú !?²KÏ¡ÆÔwž-Wd_ž”DêKØý~g>€©&­éRkî÷ùcP _Ùú±§ÁÙ•Š5&¼5¡ ñÞ¹ÙyâUõÔËd÷¢ÕNN¼ÃG÷C%Gݾl]3\*ÜK\;©GUB.Ÿ#%§üû¾˜FFÞY”>0¥zö…£»„59œ(™o4~-ìJÏvcµ9O `ÊþÆÒ½æ±³Uª¸fliÑž×sÓ>.|•`±2LðÖÞõ\€lý—»á¹.ìì-Ý`T¡;ຑW½™~ùuÚŠÞµƒmª› ¥ ‘\U÷µùtÒ‹hù™ïyêôÁZ´ò<‹od/…Íi›L\E-Ó´Ô»ä ‚ÌE¯ôÓÅÓ_‡R‡ úË"CŒòy¢7‡"ÄÓ|Iw‘Ôo'uÓ„t(›…»h]Ùu!køž)ÖáŒ_û.gÁJ°AQhëŠâO8ÖJÙÙ©øì£pÖÞ³ÝÞ "&ñ7‰dUz¾˜&ŽB¸ã©S ñØîD•Ôì›A¹*³;°ê4Z3¥¨±Ð@]ÕõÆ¥~|ây‘ŸìÊÌA‰Œm5-߯B|«@ÂYà¿ì@“iøGµÀ7Iß#‰Ò3ó±Z´…W½#š÷å™lÿ¼ÀøÊZŠWÒhÁG#¹ùìg…‚Uân²TQþð—}ºº0Q±Õ¥±‘%?£1‡iß­S h¥ç¦¥kË{-“*°B"ÑeÍÅï{Ì‚—Í»²7ÐÚ[lCðC;:"–%u6,íî› ;§ØË…yPî¯ÊÏ&Ú“³Fé+´øK _›ÝáÙ8·Xk9ï£! túàÐnG² ‹ˆ]š«ùI Âä±e”4„ÕºíE•=0“¬{õõö‡·ðÊðBY Þ æ]®µ±u_‚ôæ¬Ç½v3œj$«Ý]ky¤Q¯ „WÓJÅwÍö“ˆíà$üÁWý=‡ÎkàO™ôoÀ x­CÈóÞuÞ¡þDÅgÔ`Ç¢§)LÃ:¼ô›‘h lÚÌ`¡Àe­¹S’®>æ´1zûdã±5¿i‡+ró~fÃ½Ñ Š}«bŠ—…_1zvQ_½ \Z 2’Ö*Ω¾ÇÞvì´cK*÷^v×x¨›U6VŠGW¡ûŪL¿¡+neKÜ­cõÔí$CŠj¸TDÆ_ !JtD{šCäÑìpÜ]sj¡5}o÷½éŠB:8dÒìyÖѳô „ÏÉñ%€žEžL&<=›9„“¹/‹ tªjkݹ£S êñ[–ñÝ›Ž&ù1bÐì`)µ³³ú(ÂÐx¶Ú¿¿Ž‚E¢FJä ìRâ;~ÎbWÖsJɆOmÒ®p!ë­ÁNmƒAá[~M$Í·Ö›ãæèûôkµ.[nÛŽŠ¥SÝhÑöX-JïnáãY?UñI´5¬œ!B—Å£äǘf°¨óõay«Oq²ÁÀõ” È©JÏÐ¥,6q!îÔcí—]¥L&H{Ë›%S’/_gX ÉÓFMÔW/󼡨«ôÁ®Ý~3wü*Ð.ÝöÕmÕ›R>——šc«»Tc )gÆ\<¨|[ëfŠÃF®{Q¯ŒÇèøòX2|m_^}÷ÈÉ Oˆ¦ç-OŸ»Ù±¹æ5±+q|*çS”x —*¯ :Q4ð•aìO¥û@eqL ¬®ež|j‚a4GkL Ž»}Eªþç&ên›1‹ØÌÍRJ­ 1 )Eå§d_€nDmˆèÆ–xxLÑF:W¯úF5î$ç½g^ãr¿Úùxð[¼«Žá±e´gHž³­¢ÁîqMŒ‹½‹¶¡¢È ç(åbŸhïýጛºÜJ·üTàõˆøè£.³žd5o{]q·)_ñ ñÕüŒhÊÚ@õ8Õ™QËjÈHNòÎݵ)Ny NS÷qøcm÷[…w”t½0 ±L×Ð<6ÚCÌãÜ) åVb¥ScÍãÕo|­Ð›; ð^sèv û÷îæA`°[&mÈ·{«ÓX}¯›_—b7‰¶½«S[äór2fìwÇÆ2GƵãF§±’¨²_»õ[ß;¶¥R  ºèó›÷¼¬lçNß9,—”Ÿt®¾>Š#?ï‘ñ ~ÌX/‚jW´GР׃ LU^¤<õLåí³œÕö&’ëΆ¦~Žg‰,§J<¹v¡>'ÅârwÍçÕ:•´ w‡êqé&aæCSyXw¦Œ¹‰‚´OD/'h¯7VÙ–Ê=ùê»×[ÎõQBÛ•`Ç»JíyXì·ŸI[<Ü’zÙ½ÿò#)ž4]b̧ˆ&â*¹7U™%¸6’ýªtß±ç §fr9" —îñ1i³ «NÞä—údçŠ'åÜì`'ó geÄ·ím5šu\™‘£9™ƒÐ’ipƒÆú9H_ÞO›Sq–UN/)1žàÖNpØœêMÈö@RíGV©á-~ŽO…Bˆoy÷Ýç2–z+ÊóþÝ3Îá:þ(FÈ^–é( µŸGû]—Ì6-¸ºYjîMºR}#þÜמr¹ªf~3èŠÔÏ0>—Mù<¶D~†ceËiÃ=ëÐÚëHɘJµdÆ…†˜5pŸ±Ç0Çͪ6“}ÇàÐèX,˜Aì¥ÆT<̓lëâ , Mjëo\×óÈ2PÃÑÇý´åüÀÇ5ê)ê~‰š$‘›°üyl½«Óý|äl3ªøPÁN!ŸØaDz'z6¾Ø\"&ý L"ï¤i®þ©dKH\ð¤Rñ,éøÛt—û9Ø*þÈP69£Ê¾ãdDüEã‡:ñ…BÞðàZ]Sm³´È"ÅÏ4³4I—HvN– ?H±‘§ö¾É“|…ÇxÓULBÄãFõMc5¢¯¸£Uïv¦[‚x:ºNåßG¼#ps‘}ÊåV­±íÏ ®"I=yᆪhš|¹¿Ûàœ=™ÜnÂé£FÝ ÎŒB—¡wÖ7*•Q ¸3V|CÏ~ò0'>Ñjm/c÷ü5¢û¥–?F¤Í˜^uùŽœÚœüÔŒN¯ôŠ~õþ\ˆêª‡Œ%2ܺE±¸G36R¦ébF‹?sÁÚ»`°õsóèN®0[ €R?ÏttŸÐì?”Áñ*’uOÕX{Yg¯ «ÖÜð3úrszy¶¬_ WïšFÅ·ãj"&Ù«L¥Ç‰œMöE&ZÍß»CJ²ˆ_G›†Šô–mëjäK¬—Fed ÔTÌJ¼·+Qû|JB¶â>å"Õ¬iOÑ(¹Â]¼¤YåÞÛ;c=DK¾Á\ÃÁzpÕ¦E·(–ÑYÑøô~ÇuÂ^I©ru¢c«+ñu&±À…0«h™í”Ÿ‘Ð}&ÇÎ¥ûÞiK©eQ©8»ë”곜óÃ43qäÚÃ+O˦ ÍÜV…"÷hµ‹,(Ý%[h MÞÞ·I7_†é ‰ÉÕw‡œ­¸2‘‘E½Ÿ´†úÝϾ‘v‹Ô¤g§¿SèÑL>(¶³°ä7,lLÊ`q¨O²„|ŽBK‰ÍèÒ<Þ%Ýz¡ÀhÖ‘îû.……G*±Š¬UÏv…ezxÉRɶvl—£,b¹)ø*Õ¬sIëü~0n~åGg‡CÊ>ÏÜRHÝù€ÊÀ×â‘ÕœÃ1½:&³ÜÌ=)¦!ù!zþl‡ƒ²™l)ú§[Á´ÞÅŒÍGžnG2æ 5íý‚C²’çiMŠW (ŸËPП ¡ÒjHä謆aöu-oò©pu^ô‚­dnÏn÷?¯¶g_ç¾Áo§úzbŒ=j.=¤xl˜ioûãþýÁ}é”@òiº‡í•idCoŒñÓÇÚ_š—ÎÜr{ tõp•]¨¥G‡‚Ðxh†ºÞ‰BvJw¾‘‹†`‡µÏ<˜IwΛñ²º!ú%ŰgWäö\=E‰šÆ2ø*dôûA‘Ñï€(²â5E¨û#îCy4øz%§qØ#¿ÓHÞHÅ{ÒáŸÌðAæí/õöœ‹69¯){±[ÖXÓR¯ûå•-ô¾€—jW$ÙdÜÉWp?mÕ8³’"æm»?‰ÍäÑÆ'I®)8d³Çè1Ž»k\T$f¶ŠL«¾è\2loXMо“#qò‚ ßg¼ÃGngMÛÛ€YRd®¥V’Ï•Z´D2ŸõÉÏ-Ý'r¸ÀÇ*æ)½8€.1?õp;ŠÿÓ{á[õ#®QÈØãÎÔ‹•™âè8Íw£—kMo×÷õÑrd¹ß; æ ¾hôÝl-ÿX—­)µëË»Ë^árAZ,bwº!ãS¿Æ³$òe(Iæsuàã„æ §RYëþñõ¦RMо6·k•ì‚}ÿyC,Ñ6IÍâEÀË”¿èø|3‰yÊPËm3Aó›G‘î¸mÙ“·*=p×øÈÌØ™7Çf¯yÔÌsp3šiÐ2:$.Ðã©y‚ëÍ ðz¾Kôÿ‹@b%!ÇŽê8Z"&$6EÚÃmÃàéÛ/ª‡âdÖÏŒöd¾}vÖ´ƒŒÐÄša¥áNÀ§4¦†Å¶Ú“ü$A¹3g¾;BÒWº³-¼XËUªÚ>Pñ‡A­ÔZ¥ŠjÏP×V‹<$V3i<{Æ~¹¥a,¿8¤öŽà½Eƒ¡ä‚Ow\#¾vúI2Õ£ò¡z¦¨ŸE¤\*§ï…¨Ž“ͽCbÑÄI ï'òK›‡&RµëɵKGÑB|P‚zl+M –ß{–“ïâÐq;½–XL¹ÀÊÆÁEÄÚ»©û}@‹ÐŒX9­ðÜß´hv©&îû$¬Z˜°Q®É‘Òv¿Ê"uÔ ×{šCWØ*Ø®ÒAåî~’i löÍç©þ衹]u&¿%;3xìðùð•ÃÀ]-<³7Á¬ñCóqãW÷R%•QÚWVîgË ÙhÁ€¼‘úóe oß"kMâ\8 Éeùº³üOÜ%¿™£ r³‚DÃÏÈG.&Õ{Š%L>88©'ª¼Õ±aEyIN&`FÆZùüÞvåq[©™K&lÜ) ¯ëeøN¾ö®}÷Éä©ìö»WÊdè¹t{Øf?åš÷g-?‰;97¶ˆ¬ávR5[?%ûkÃÌõ¾,M“½¥yée÷î!å}ZôÍþçÃáÝ~‡«×k³±ïg–[ôµ[^-¹t;5ô¨óãÅd/¼öÂïʱ°ñ8ßóCkž(î4㋊Ϲmµ’ZŒí7ž°¼óáfØ´9@NËÞ~q+jˆ¡ô¼5?üPéÚ'§>¼.Ø]OÒ€X&fi*¶ýùY¢ÏGØ/ƒK"‘RGP—ˆ¢Ÿ¨Ñ*#ˆ5żøÈ‡ÎØëý± ZKcjÞO¯Úù¯“í^¾moôRÝ‹{º7ÈK7`33I;ÃrŽž– Ùt¯Ô%{·£-Ü÷YkÒøÁÁgÇaޛzÛó‹6lYý®d!®Üy[âJÝþP[Ï{w„}Ú ¢CTc¿±%1ùÉ œ°ÿئÊI4p=ýaz{8cï6(TÇ!6B rz*Yغúà„àíX9áýÖœ€c 5Ê>üTÏÒAš‘º¢X:Öäs5žÏ™V×·UH°ïéŒ[¾ÐõJëY¡ f$Å&ÄáŽãöÂË­ZŒ"­5îQhjîfL µr!õÚÓ}ÂÊ#ÿøôUZ¦ë6'ÿ˜ã>3¹?¹‰:D#þ!Z_ÝpçH1Ñû¬Å`ðv|͈ÌŤ˜–!"掎ydŽy¯aQxK]Èåy%M[#° >Vc–4“ *Ží}œL¬eyWÜJV‘Y¶tk1n2üÖzJN}pA²a­Å—†}¦,c˜°}–R·½Êsœ¶çIᨚگæ±Fziz2ÐÊ…Ø‘æH\³ªu‹Ê‰½p±zÞ÷NÂïu‰ã?`ä³ÞÜMóß ÐÃ^"9%“˜×’ҽɬ¾E)Ü*ñç›q¢ØR‘ ¶ùžq¡ÍL2˜MP*}Ÿè,_M*q2kgìZ%‘î `P¥*Tèàpñ—*ï¿z}|> stream xÚveT\Ù.wi,84nÁ Á-Ð4 tFwîÜ!8Á!Áƒ$!x ¸K°`Áí‘™¹3sï{?ÞêµNŸ¯ê«ÚU{µ×a¢ÓÔæ”¶„[@àN.(PVM[UG‡ø¸@ ^“ aýÇ`Òƒ:»Àà¢ÿâÈ:CÁˆ›ñ@Uƒ;U\í€<|@AQ!QÈ ‰ü‡wÊÝ`–@5.  Üê`’…;z:ìm+ýçÈaòˆˆqü”¶‡:à ` aµX¶jÃ!0(Âó¿R°<³A E¹¹ÝÝݹÀö.\pgk V ; a|u:»A-¿Ûªƒí¡7Ç`êØÀ\þtiíî`g(ðÁ`ƒ@\‚\,¡ÎÀ‡õÚʪ@ G¨ÃŸdÕ? À¿¶ÈÃÅówº¿¢'‚9ü †@àöŽ`O˜ƒ5Ð fj(¨r!<@°ƒåo"ØÎþvÃìÀ„?Фµ€à‡ÿêÐâ sD¸p¹Àì~wÉý;ÍÃFË;XÊÂíí¡Àïúä`ÎPÈÃÎ{rÿ}Ķpwï°ÌÁÒêw+–®ŽÜº0'W¨²Ü_¬à›5@ uB= 6Ü¿Ññt„þáäùm~èÃ×Ûî´zhê ³‚>ü¼]ÀnP ÂÙêëýoÇ#ÐA- Ö0À?ÙÌP«?ñƒ œa@cЃy€ ß¿¿ßLtf w°óü‡þÇAsÉËk«é²ÿÝôßn¸Л“ääåã òE¾ÿH û«…*;XÁ"Öû°Qÿ©Ùí/!°ü5'¬ÀÿÎ¥0ÈòÞM@ ÈÃçÿ[õ„ü¿Äþ;Ëÿ‡Þÿ·&W;»?,ÿ¡ü_ °=ÌÎó/΃„]ã  ‡ÿ¥êCÿœb5¨%ÌÕþ½ÊðÃXH;X?H›S„‹_ðO3ÌEæµÔ„! 6ÈäO³îï±³ƒ9@5á.°ßW “úßìAl®—uþá‚>ŒÒ¯*ï[þž9^A ØÙì =ˆŠW@èÍó0œ–P?ô äær€#B€ú­à΀ßG+$äÖømú‰¹Áÿ a ·Å?è ùý®•ÛòoÈ'ø€àvv`ç1x€ÜÐA^ ·Õ¿ ?ÛæoÈ/ð€<m.Ÿ6Ø¿àC5vÿÀ©sÿ‹ü0^ÜðÁ‡ÅÿÉþPãƒèà–ÿbð¹þÊùWí<k»üÿ°-.v`›R"þ®ÿ‚{åþ|˜AnÁ‡â¼þ€ÿu”Wgç‡ëí©{8çÿà?îR(Ô ÌLÁ!b¯_Õ½n»x'Méι1Ì÷QP÷ìÞ•–c‡¼Æ…Ò£Nf[FÉŸ*œ’-§9h#QmŒª†ŠO)#än+"ÓÎõ˜€0„E)‚b«þ™º(ö!Ëèè#EB4Ù›ÜmYÏ~¥ºŠ3C& Ù!íP8±?õ…ÑÖ' tJšŠÂ*LS¬"$WA?5”ìü´DÑ¿}î½ {ƒ¥ÒÙ4vɬb„Õ´wNXÕN`>9Õ+ƒ#àÿ-T€¨;´ 4,íêä½²i.ÕÜÅQ™Ç¼uÂQüù|F5ÑQÜYH‹äC$е'¹DNajˆ÷ý©rŒ†©£»ÄÈ7¶×¢SØi¯0­Üw‹m”~Æzå•í~œPb9È%ï„5gØ@ËUzFš¯Ì&;­9b½­"ÝÚ¼G~vo—°¡ ˜ðÒ¬Óðf2y±Œ ø £¢W±…¿åÀz䌪!×=aþl\HµïÃ>Ê’1øãùÊ‘Ÿ¼‚ޱpO+Ø#yy¦pRÒ;îfjtØ]¹YíZ?¢6ÆÃžPfàµ7ÖàOã6Âg$]E~÷Q<OÚtty‹ü[ÍÕÑ„ +´ª“ö#¼qõ£Ïîþvß„²o«Q7Ò}¹ôWÏ64‰j,È›J»äæå8šåóSÈ´1‘ …åÂmÄ6žAðaóáeÙ,hÿ,&}ÆÝii—‹Ä‡9a¹X¡õ „¤·‘‹ìÑãÍqBϺw•&oúhÛƒ9ي险æÂ}6ðDðºqq?kŠ(F{#܇€èƒÑ‚D„¿dTd©ÝƒýñrYχÑ)r I ª%‚ƒµMåüºÙ w_‘(“/€ÕÁH" ûúæŽùÑGz¿²4q/«•Mwàâ)x.ÝSnÓ‰oŸ¸È™È´¹,¿Ù¹ ¨2¦utdðã‚î„èh*YÃOKB9 6–½¬ ]ùÚè­ù)Åu)?@ÎêNü7ÞT£¿õF ìnÞ»AâVìK52bÖ¹Ò2•UãÅÍóFÏzSŒ¦‘™%äË/wÄ`y‹nÛ"MAêƅkzÑ]ÿÂðåÄÓWKÕ禩×ßÔeωÝÖÚ>J˸¼í úþ±ˆ¿öÒ3¡`កxCœ¦³"ø1tKÙôâ’žLP*µ¬EމÐ'kw«£&…ÊšíA4 zgù…Å™ °‹Ð*¾9$Ìáw –½û„4è^75Pž¹’G²2¯ÃÇ£ëµ:’¹`qo±Òµ6›^í¿-»?Qoom£Ê’lº+ïÀ( vaHsçÎG6±j·ÿj…ël<4a¹ðÝáæÉ×p“ºúPÌk¶ýZJM°ãA€ø›Ù 2&t«í¤€Ý3­×ÇcgÈ%ðæ N®£-Û•9½âºyÓwxüöe† ­×E6¨k=Iæ¦Ã¯¼‰=ùa©Ìó$öG´µ»ªÙŒ¦´V«)–tº„ŸUûvzÕ@Ã…‚PÌÛ%°2£¤®¬§xØ“î&´c£d\ˆ¢*þ/ú—oÉÑŸñ0ì˜<‘Ä#†Ò°t8.vìÏô‘‹Ü-]ô7¬¤iÌHëAžžÅÈY8ËÏŠ18fx¾Ëå%ÍF1I„’âß5í1øw©I §;ÂEã¦cܵyP³¬¬Yp´ÄR£iM+9{[ºº`£¢À¿W× ‡æä‹½ûFë?[]¦Y4óûµÍÍÝuã†?úí¹ˆšLÓK‰gŸÑ—‡½dSoWØMÏø²=„™÷kz*Ïü¯ÑjA.Ø'=?}ì;¨ÂÉ<ÕƒæRýº3¼ðSÚÝäpï!¯hÙ¸ë.çÓ1nŒƒ˜M8½lŠgá!`²(¹2“K­Ý‘¥w“Ò"8ÍðüdVr6ŸÆüE™7Ý||ô´ññ |-OÙJ¥ ÷”%znÒürãmRže‚$Ú*(6 Œ&׋«"§@YJíåX]‡Ù‡RD#­b;¯ mÛÍj°êì“J‘¤]~®ý·U?@Ф»EÆr_$¸E&,È·w[b|Ò$ n#É-lnõ™|Fýż rzeBÞ(qyƒÒçCâ(ÍÉDa⮪À¼¥Ï/ðAÂLLö )—æŠ"K5bh“x›k®ÆÏ[©jÆðíq8ɧ@çÑ\/¥PÐÀA#ˆzú.°úf_]6‚e¾hâò+ROF-Èë8ð hÌ>5r¬ÛXV{Ð)âªkù JlV,ù#Æ=óR©ƒv[^-K(ºå$‡©á`²_Æn“ëM÷${3ÚÐSÂÃûv·÷¼]“ÏTs ƒ7úàÃ)[ð–‘ífÕÏꤾ¦òo|’wоú¤eÈß´êh¾äbKÝ3ÛœÀ+msd"~gQ4¾#ëgd®wó¸}qɇSÃAôHØL¯yÝAªä>yãê Mz\ç9æ¸ìÑ­,@ÏYba:ëÙ-¾ÍVäh:o;ýußKMÃÂÄž×<¼6x^•„˶jûÂÁ8^“i–QÍ™‚úÓ)7VÇPbÄ¿ï|iÎbŒäANxp·B‘wµbyʲÿ®7ã–¹º`”ìy¨nÄq·Uq „ÎNKÈIΛ2ì)½bFø|„Æq o#†52ÝeþSö(Ë@ù“Á‘îªH@q½ÊÛ‚S‘ÀÊPÑälc¯ó‘–é¦A£×˜WV>ò´Æ(Ym[ÎPGVvì‰}ò’’œx5oç ]Žiù@º•. ôG/©Dæ$6·M²~*ñ?¦sy¯˜çc ZºaOåu¯˜Ù‘_iz’g€_0HSdµQ’¹Í0#­/˜É7ñ²4&_­Ê\†æ0C†ËaJ¦MOþ#±¯}D‚‹¯å„r}åÉ”Oë¾ùÒ±&sŠf‰‰tËcnã_#:a%X¾·&q{·ß4 ïWnœ±ÌUPéµî+UÜôß4GxN÷/‡’¬O¯\›œçF´Öûá¼[؃sü Ÿ[7ÕFpXvLÇÏ»­ÉÆgÒrS±¶þòkÉfÙ7GM%g›ºHL{„ïòc“ ËãæËÄ0߉J™uâ×ßã¶¼ñÌ„×G˜,=Žy}8Pi÷ºYWß“(ÍJx”mébuñs5ú 0›ÃDni%í¸ˆ±–{“f+Mv¦¼À½Ä:dÙóåÌ>ØûÛ¿_ßÁeOT2ãªhG¨ã°™&£ô“ÜGÛ¼43qb¶¨(êLmUHþµ@¿þy„?_å±"άsÙz…fºEÙ ÞÓ ±ÝìŠî–lvL~Úœ™üÈÉc|žPn²WçšOØ W¯Æ§µ j¬7y¨’ Ö”¼B|B}¾”4õÆ—­·{8Ç–âòfé2üÉÂF}@n$gJC¤”öµÑ²¼>E,¹&rý ‹ï\‹Š´A '¶Yu9—PÏG;¸S›:ñÕÙ 5öTìtOÅu݆›>å „|¾³8{‹ nÄÂî­ ‡<_d-'QØÙ›§JD^y(¥ýÌ$Ê"ƒM°q©$t,9+E¯›Â,ÇÙ™æ9_Š^ôôÞUY½e8š¾EÞr1‰ÊŽ b>þÎôKìÅW”Z¬mqºùšô7¾ß”ä>T(Ñ„%íRD¥¬q¼+õE p/Í{áÿŒqQr£ÇTÅvÌgq4t†ÌxƒÙ6-Û„Ž–ùêÙ18˜ú÷<%=xëra~È [D…+¯ÑFƒ,J1>-ȧŸ;A}1Òä}I’cÇIÉËöè_ܘ¾õÌ µÖ-:3kü¼#Ñ¢mSß©d]oÿð^žè|C™öxœ•Š PËBžC+”ÏÇ1‹ƒMR§ò*´~ð3ÿî=åçèiTï]êÓjçç=@ÝO6ù)~·ICûøIƸß)<Ÿ?J¶Çy‘˜•9ÊäIä+Ô¨EКN™A®úÞk¼û ¶è"aqc–ÞíÑ®¼•,œô) $ K›ô$Ø=M¨Íu½vGòKH`ÞSåµùuå¥<ï=¦ ö9È!`;U8ñNA!‘pûÙ% ž•ÿÈD6TÎãÍ¢ð¥´÷‚gUäV ”ôáuÐ!ÎŽy>©òê¶ìÔšXHð…èž ´hú®ûeçq’ªÍ…Aó£/ï¯ÐõëÝ·UÚh™_‡‡ö£õ¬ï$0ß×à˜ ‰õ·a¹âaò}*ÓÏÑÜ3:½v@×ÙeÈQ÷cÃ÷5.¡j9r\í½¶!5„N7'•@³%Uã¶®Vª_Õ"K¶”áo“‘ØŒ±?ÆG¾.º·¥x$é/X?;¤<ò½wk!Pû3ãD =Ó&mªæQr%eÚЭÑ1rð´”W¡®eG«Õ`Á›£2ÞOzí˾?5<§c´Eý7 eËo%•îOˆÂ8 ¿¡Q†Ç"ó]ˆ¾Z{¾E3|•°¿QX”1§ÉÓs T˜¶šªNåŽÀ³òÿR»ÂqÖmÊË'È×/Û×ÕF–F<åK«7§4ù.ä¼ia¾KÃüà|D0´pÒ\˜xò´þþÂ6;ò£¦™Hˆ/s©½bR0ÒðgòF"”êQo{(ME"Õ²qñ1æG^Á…–ÅäaÕ©#CÈe4ׯ N^Ë•£‰Õ·îiˬütׄÙ`ÎrãfwMBÄS9'u[ÆïN®sV¡è<“SóŸÉ”ý=Ä&8—Ôc¹ôwÍ Û“¡yŒ{wáq:\·ñ/ÏtîòH¿5ØÝ Ë–ý é±uܪ÷Ê]z½ÅâÓ,q|c õ/ôÍô7Èg]oŸÈFºž"Ñï®ÑÎΞ±,—Ë—Za_«±YJ1„nÇ~v]Þð{›Ú"…ܪµw´únÒ6‡3å'eI\êD œêUøio-ÏÛ„ÍàHÄé$L“½Ø}‡ÁIú;µIÖ´ç±}Í=Û½iþn··Ì#vè{ J°Ûs¹zaF r!"¤rçûúú|+§I-bùx“Gž‚D.‰{Ë3_¼Mœ¿ ':ËrÕºåÿÀ=Jb§T;Cq{sa/y"mçš^¾”XASÛãìÄ¢¦Õôi¸.ž#жŠÿŽÆÆ©«nX HL·E« 0GÛ`X0;øØz_ÃFF5ù=8SnzliBCñ«xº.Úô0Zø>¥HK}ܳæR£•œÈæNÃèmòºÍ;¡ÔˤO™Í|íû!cÜ´2‘Yhõ¤šëݱ€×£ý4]rFé¨?" LQ—_^÷5¾x[Y0³· °öyg’Zï9õÖ­za…õ±NØ1lv—Á›ã"L­“Ndfãzeö¶„»·,qó ùAÆ£Ò&NC–®¿§A²~!í`™´é$-%ž‚\§Xæ ÎEdûéÞ9‚ø3ÕDåÓÃ&¿(ÓIy– ®¡eG ž^ŽÃµÃoê’·Ÿxn2tÙ¤?ª0ª«¿ hÿ…åsK±õbÞñûl:¸¼~ÒþTD¡NN‚X-nËÊ?·ÏP̈èPè5y„^“¾žrÞ«õ°ÅK÷ŽÙN\¶e­-z/ƒÂùÎBL‰­œÜ¨¡dK°9k$jKxž«t•ÿÖïN8mr‚º»·‡}Q¥¹6"zošm;Ãi©N’ËÙ>ìm#­,^3X ¦¦tÈd,Â)aw¤Bí6¡Ô˜û®XRz‰›iMs@ÒôØ'LpÛôW˜×•9ò¨¹X$;A?4ßoÆPËR]B ›'cQäÞ"kæF8Â/™:D=µ˜ëR2ôôÞ”ïf•£ºµC i_½5_m|š®¥|7ii‡ÂáÝØø¡üÆÔ2ñvtû.¥ÂS¨\ÜQKjÒâ¼K"Ɖý• ò…@ùW©.êþíá"èNƒÈΊÌ9)‡Xž»(Ôüú•¶”–]ËI==ÆmÚ¨'ï àŠýÅÜþg|ïTkw¡Šô^¯E¸r BíðK¶‘D.,þÀÔ'½Å͈'ºv:)²tîßâà$dJuï¶»½û„sxR#RQÞЄ©VÝ}D3¡‹rv—šÜž!bÇ\„áJû«1ßÞ€†vø1‡7=UË{þp†Øg&œx?zѸ÷LWNj\üY¸« -Tq}ë?{Çg`-¾ˆ\šœå$ôÁZKϳlçÿ…À Y´”"Én>_V·>ë¦Åžýüóðñò¶dåÈP-\?Ê€âÔŸ¶®ågVèÊçÕûìî~æü~ “ /Sª©Ñ‡!>T¾¹Ø¤±´°_žïŒe?4Zðc]~,Ôl×:¶¦Ãe‘CÚÛO§î†Èì&_T:SßC@ûeZ*·ÓŸŒ˜M&=‡˜0VVY¢ÅÇm™™|´êDÚ?Üû9Ü~‰ÇçEt缸b&Ù ¯*Šr*æ~ݽ‹š3fóê«âør¤…Wx‡ŒPm¶‚tUzÁ ë/”óbºY1÷eÐí‚{Š‚* §¥Ö/GvÜ·µK(™­œZ¹ÝùöŽNâ¯`‰l}ʦ7¯ñ½¬æ½Fno’Vï®8I¬b]8a—ÇÑþšþ¦ñ¯¸öL q´»%£·ŽÂ2ØÄ7Ú&XöÜrŸ«Š$Ö`ìBçT•¨ð¢xÞe­y¿sB2mSÄ 2;fåZ* »<>¶Â("À H{}.î¼y"1¹€s¢½NŒ@9`ç«×Jä"·¶¨õF‰«Ðž:â¸ô^éab_—ÉžW΢¢ª_ÎÉmŠ~ëœ+ÌS©ÏVß8îØ V'gé^˜þŒøÔRÓÏ¿ë™<+j?*ÆëçŠÜ¶Œ]­Þíà!+}!kSäÖu­ܳîy=ª¯¬ª»ƒ˜—?õrõ­ú`r¬Ügæù<Å‚ã2 }0°rÓf@ƒÄýIt*SÁ#÷µ š)Õ)>SÅ™9ìæA‰î¼•׊Ί†ÅÞêFß×7]¿)#¬MÅŽ€ Î& ߟ,‰WE-þ _ÌŒg¢ZÁî(áÖ^ë 2È‘ëÔÀ»Ñ ]Ê–Æ# ËÏ_%:¿¤nÜžŒV18ˆ1^K1Ñížì”éþè=CQ¡eU²ƒåÿ‰¿(Åø}û§ ¥šŠ«¹¨u¯’~†4¡m!fuv—ž™þ”œôkíA •Ïw–]Á¶˜ýyFWÇ™1Ó×#¹OJ3¹ ùlõ[L^¥ rôMÖ£éo­g|ç¡Þö¿6¡ ¼e´y³¡zjÞ[¥[ß壜¬Ðä˜× îZ”î\S-‘ S,ØÚisš‰(É÷ñ½%=îlO)¿Ë=ObRåà¤{\õ™I«ÑìKؾ„QU-Ê¡vº($\ÖªÞ‡Câ¶ííeFý, =Ĭ©º"—A¦i-.#M°Ÿ3 @5  D­n½ôŒîhô2aJ#8 ‹…Ù‡nýÔ¶À@åcä[£mÇ̽ÀYô§å#B|ýôü7aÛjžÄ CØ$ÇÖÙ7è9¡O”ëy.¿Þž$@ÖK¥ Ž99–Œ2A·_.Z?]gÈìWEXï¿”€VBÜ)nx %{¢Ë,Þ·„q—\Žýï‚ÄâÞ¯e£›Ó’çî,.Öí|æY,þUh¡Æ+ÈxŸn-®6~…Â2cnuÀ{·Ý†!•üDõ³¥Ø™’„Ö"Ìu3;µ4lÚ—jâXÊ6}˜2í ¦>#Ó1•mX¼5áaöææ^®áƒÝ/XЃi”¶m!Ü»A–ú”Ò«ÒˆÅW¦ì;ø«ŠO»=D²ðÍ&‹¥ìom‡l}å‚ ëd ê:Dm»@î \ìX/F+^’FHl ¯ÒT… B)~A4>­6Ž ½X`˜ûÈ—s@]-cÚ/•ÂWnÓ"çÌ¡Ißdˆþ:aI/*0NK½tä^52&úç6WGKq®ËR”׈mðð„w´×Y;…’™pµ2­ð4+­žry¨b°zèÐ7R€Ná'k¯É®ðNÐMR2ÁKçdæ9@.õR^ßµ؃hþ}Y#(S$€Õ1…o³GQvÔJrtyiLW!¾ÙÛ{ìFÎ:„ýè[Ä|}Ø=’÷ðëw|§±Ô×Gm¤D˜5,áÔ^hžN\lFà8f™l”8éÎ}n± Ø½ÄË2/ŽÊnA¬Rwý—ÖfÉ¥Ÿù’ø˜ ¿à50 YÞ>ðÅàºÁîBÅräÔ_Œ®Îž%M¤©>¤˜9Eaw³« Ö§l2Ô;¡…ϪEù¿ªýÈqVÿÂ3¦Àý&ð1Ú<¡?ƒONá• ~µGy[/O—ï£~DV#*þ?dƒÊíô_Gž‰Òʆ C¼´Ï¯õÜQ9™KSñ^³kF|O×ËmX…ÍUÞ•Ž|XÝTŽMO™+ýŠ_D6]GÖz|+Fª¸KÀL•±°-àä‹1se„{~uTo¬³smšZ£¢Ü6R³ùK?gðÍ–—@¹3Å&±#ã¤Ã€šœ5èa¯5Ë=ÚÀZæ¡{ôé‡r)$;èÅXUÓø)êS@Æ(ìp›ß]Jáɉ˜Y^"Ø©/·­Gs!؈ŒøþZÃj_¸®?baÖ3éŒv‰æL6LäíJs’án¤v„–³¥4Kñ€Ýüþ…°;ªíàf~Ù6EÑdZ™;ƒð¼FI¼Šr„åWõ›Ä•œ:Üø8YÖ¤_5ÅclŒgU‹Æªu¡fH~KÕ{vÀÿ—,«ý“õèžÕö}—D–¯nø¨e–Êj`'ä˜ÂS¶fõL¥Ä³+Y6VÓ×^Oœåüç,ZÅOº¹H'4nŠ®ã-ɇ{Ñ+×"!•Z³óR¼0î¥hÕó£H³‚LÌgÛ÷pðk˜“‡un]ՌŴë“J‰©N¹õ2¾8*ÖÑÍ uÍEéø” ¬}Æhñ9|u¢@¤8V³)ÈOIûsoh¯£7]Ö™ë¾aÁîš$æUdØ)A´ryæT|"2óÕ/¼Èž'ÊÅþ Wz#õ¡¢vý?°µñ0°Õ$]·`4ÓÌ÷Ûq7 ©ç bìS)ý ¤ B?°ÖuÊYÛÅ‚¨ÚßKï¾¼¸žM&Ñ«œþ”uÞ”ù¬riYœ—ß?Ùt=ž3”7•~7úø}q-$Û35 uwgSŒÉç|n'÷kJøs‘Ë­¦*æÈðGÅ?ùém5ÆÞ§‡säÛKtáÛÐ$™D™( .zþò ÁOUŽ!0 £”×ïßiÍÔç Õ?\$å-NJôUÕÄu‰ô$øø½Rµz„Q6îd EôTŸÖlxvL‚&€æ Ýb™SªÄ( ]‡ÿ¢y#òLêeM¡ÃÌyéÆŒíÚ]²ã‡)Ìï•=¸B](F²äf“yyÈœ9%¾Ùä=A[L?µ“ʉF—Ëçò.º£Í‡‡ËBªó ‰BEü‘?ÁÀ1¯˜â0ÝŸöýR¿½>¢ÐÂÇ#b'~Ö\âʦ÷qõ‚À2\±þ%44ÍŠ ‡ œø‰9sü(µÜÛ%÷UÈšXœ&YŠ÷!«;\=½"ÕTµE2lQ¶zrÝýU±xexÅ@þî'dõC$&ŠÙÑôSA…ÞÏn½CŸ‘ëcÝ&Ón{Ï·JQXtwù!Z„fôèO¬“¾áï.·ô fM•7Ÿ¹J¾è&û ¦àßmÐÖ ïVÖ,±ßøëÙhÞåâH˜eE¢!Ò4ºÇ‘`º¥Xê-¢¯Ú -ÂÜOš³í.ÅMŸ•ª;0_¯}dÖ–ìÏx©YŽLÍ£§ÙÇV³»Ù4˜õ©‹v°$Ó@Å!‚A±–‡­HN¿‰ç·w,r'ê8wDsìO2>~2z ×IB 6‘µFïÒ»4]Tm\åzÓÍ_^@Jcêd·›²0¶¿3N¿û²Æ @gı:~žG†ÙY¦AöÓÙ°^'Їš®Å ¸š‘Å[&öÌVÏzÝ¿­ó侤kxèJ‡Ž½'à°åE~¨~ï”êX¦îf™å¦ªXwúxÚ]H`T÷t>u)ÿŒèF-Ï‘šÉЯ7QΰINœ³qeÁ`µ×7á$¯Ë¤Ä¶Lz´6 ü´ XnZ„ Â"\ækN»y¦òÇè¡Ï6X¼Æ[Êž³Øô*™´cæ² ¼f;ö¤>ïgµxc3Pqÿu”_⊳ EL/˜ †5„‘˜ºGpîhïLyÒNx s¹VïKºç“8CÀúQ¿4P Ó ùKž×»eq—·{çNèejœ ñœé‡QaBk[þú§!Çiå÷}ÂõùFŸ N.€º?†3ÂFrví§ÍµO6ü‹ê))6îº>šðØÀ<+¡Œo $Ÿ^³0‹#ë³#·øf¥ÚoNÇR(zK›[L±“^sÌr:¦«¡ì ‰Ÿ4&=„Ү݋ßqg±K¾78#á·\+‘,tïqSu/[g—E1Nw©äT¸+KÑ£§Œf4–kó”äÐmxÒ5xS²¯»uìCm3“©*Fã‘ÌMÏÚᵡç2GMv—„RÛ“àj!d¯Àw^œo£tµ³œ¬{M~õâ3øã¬% ~ð@ò½­³hÚÊucjEï÷ËYJ¸˜«xNwí<]Gz~àNC ¨Š ,râ0ç¡ZºId– >¥@TýôK3‚u£™2ˆÖ?Úô]Ô ']*ÃV÷°óîñõQfü³¢¼ÜÙ=¢p§¾Ó¯thE<ûZíG$ÏS‰û¦”óbú½ðŒ ë—/Üï=Æ îÐxWF°tä0ön*2^Ä ù#§ÎmDR[[ô÷ú7Ö7'¸Ÿ9ëòån(õ”+X÷¿‹È}û$³]&w¦[‰®Bÿ€n¡½_üTðTí[C0/Ò ñ”}ÉafãÍçA=?¸¾ŒÉ•bÏÜa|íŒÓ[­ÛNk”aô¼È뵇L}ߎ}æ$Þfâ9ž­mWšXœ}zˆJ2E‚y¬&ÒTÇD^žSA˜¦«[Üò¼ËF. vÔ@ei“ºaˆC Ý„ȡˤÛfÃý‘úZMÝ’­q͉ó7ªÇ‰$‡ôvXNd1öûÉD5û4[?9*ÂvWéj Ž*U†òÝv|`’s—r4$§>Xßø‰¤¬–‚‚âÖfNžp…,ï+|ËöBˆè>ñwÿÌšxUØÉdü¥m…é™VÖý=ÊAé(%œ—[K!?Úµþâ Ðôqj¾­èˆã>îNÁñæÔ©Ò)3ÎHg}‹_ZÊ3­úƒ…%Á0Ëè]·Ýû|BÝ#^›'·ÖÙ‰øÂßGfj7¸opÚÕ¦@—¼'$£ 1sÖ‡‚Þ†ÊÆ9ö*駞ÏâÏ"oµ,û¹€ÞÚ˳¯1÷xP½mÏS¦ô žYY§ºõpl)öÐö¬šìPøt£(ÚUóô<Ö·œe9ß#Ä„^jó¾¦Ý’îÄ5­Ajè+DRó¡oðÈ”s [³tôÚä êFã|áêX½NjíY@Nç+2é¢lv‡Wç÷æ–>T ÍçH~~y}îR‹A¨×¡£ô˜*âS7ü^£«"òcå…#Tß$z©‡xŸ|W¥™FÞã+Ú@jT2#_HŽÂʲÁòœÅA=Ëu›õ%¯X`’FÿtêÆÉwLKéxr‡+œGñ㣭 ¡ÚFÛŸf¤ñ³§ˆ§ „‡·EKL‹©¥ÅågêøÔ”§B™%µÑTÝÖókM’dð OIäcí©×ñøÜ›Ó™tã ·;@4–}§ŸŽi„ïÊgÐ…“நT œÄ¥ÁT2D°©T,Ó—þ¡Ø_ê&už%©.nE·l(ºpu­¾ºˆc¦€E¤W3Z–²¶íÛ-K”¥ì Iy×çEʇXgj/Ê÷5i|{Ìù¥Ó¨EwQåË$éŠ3,d&ÄÜ%hpKϸ,÷”–§·\ ˆÛÂ0u`xVú ’+—(&ddþYh¿âÿ“á÷4 endstream endobj 106 0 obj << /Length1 2167 /Length2 11417 /Length3 0 /Length 12693 /Filter /FlateDecode >> stream xÚ·P›ë.Œ—⮂»»-®ÅŠK€àÜÝ)/N‹+nŵPŠ»»»ëM÷Þg·çüÿ̽“™ä{–?ë]ëý&Ôä*êÌbfö&@i{;03; ›@BQ] ÀÆÆÉÂÆÆDMý¶þGŽD­ trÙÛ üa!á4Cd’Æ`ˆ¡¢½@ÎÅÀÎ `ç`ç`cp°±ñÿÇÐÞI iì 2(²äìí€ÎHÔöN K0$Ït¦ôv~~^¦¿Üb¶@'©±@Ñl ´…d45¶¨Û›‚€`ÿ A'd ;°²º¹¹±Û:³Ø;YˆÐ3Ü@`K€Ðèä 4ü¢ P2¶þC‰ðÖäü·BÝÞìfì@6 S 3ÄÅÅÎ è€d¨Ë*”€v+ümÀø§9vöÃýãý+Èî/gcSS{[c;Àd(K+°€ÝÁLc;³_†Æ6ÎöcWc± Äà¯ÒÒbªcÃø9›:ÀÎ,Î ›_Y…´YÊÎLÂÞÖhvFúUŸ$È h é»ë?‡kmgïfçõd²33ÿEÃÌÅUÃä蔕üÇ"Bú-³‚Ülll|lœ #ènjÉú+Á[à_Jö_b/{€9„Ðd„ü y9»`' ×ŸŠÿFHìì3)`´Ù!ýŽÍÿÆów¹tÙ ãÇ`ûõù÷I2aföv6¿Íÿ:bVU IyIMÆ(ÿ«·wx1ó°˜9¸Ùüüü^n~€Ï‡Q1ýSÆ®²væöþ¿«…´é?»þ3tÿì=à¿c)ÙC û=çzlÜl¦/öÿçiÿËåÿoÈEù¿ÎùÿV$íbcó—žîoƒÿÞØdãñdp]À%P´‡¬‚ÝÿšjÿÞ\E ÈÅöµ²`cÈ2ˆÙYØüÛH³4Èh¦›Zþ=/Ë5~mš Ȩbï úu·˜ÙÙØþGY/SkÈýá Ê¿T@ÈöüwJ);S{³_kÆÁÍ0vr2ö@bƒÌ77À‹²f@÷¿ÆÀÊbg†¸ ô|æöNH¿Î”‡À*öKô7â°JüF|VÉ߈À*õ/âe°JÿFìÖ7¿€Uæ7â°ÊþF<V…ßSù_ĉ©òAbªþF˜j¿$¦úoÄ`}ûAiü‹ø!ŒŒ##“ß’Ýô_ô«û¬f@H~àoö¿£ dB@J2ÿ !æÀ_JÐo)ØüO_¶øBXþ ¹ ,=,!—ïo ˆìpl6Zý!,­ÿ€š&ƒð´ý£PÏ?"ÿ*Üþwnˆ-äõ‡BÄá_È Iät‚Ü÷àß.<É@ö4ï_Çß^zŽ.ö` ™‰Íß7ÂoCˆÊé¡éü;2$›³±³åd¿Ý!7 +ØÒ ø»^Èž°‚Ýìÿp€ÄpùBZãú„ÐuûãÐ Þî@wÏ¿à휩‹“¤Ý‹…üþë=ºM‘f§ìMƒ­ª‚[n*ňݘ7 ,¯¶FÄéô„sƒi¦s¼,^||3æ(ndVF0˜¢2S::åMÌpt3ì®×‘°”,“ †’êY?aθ=ï°’šÙYüäM‰XÇ<ŽW%A7Ò…Ó¥MКzáíäÜ.ßúüØê¼ýŽ` (¸Â O&LjeµîÃDéS­‚¿ëèaÄb9馺¼•Õøùнo‰&¼õX×Mû¾¸ØŸÑÛ“Ây–'ßUÁSŠMˆã)Gž5ø¡7>C®ÞŠFœûJ¢8óx¢ *gð;ÂØЉj×…jfŠ+lì‹FSmX¢}ͺÄ#2…†hD">{iz7a–'t¶Žf¸¢Þ٦تdÌ!A®®RÚVõÏE&XÞ‘Ñ×½KðÒï`>a±™/lLJÂ1lrS”£áÝ£{# HÝįä.¥x¯ÑxbxñZao´Õ}ßÜF$Bøœ,ñöý)UAp`ÊeyÐl†„¹Ö¶"Í¿VŸTD/`·..šûAÚ¹N †í\ë@;`ÌumþâUïUh'O*IUÊ+|ÉW;m|G{Źîü~R¹`X¯}$ï$ìMK¦u7ž‘Ü—D w2þÑ&îx•µûŸ^®¿Nõ|i‚·8«¿tÏFÄ2j½Ð¢V¾@ñ°ò͸ůçúN—‚±­~·¨²Šúj@Î׌íý2lžK™öǧ’B´™T¢E¨ÚѰŠZú#â'~ªµô ‹½Üˆú€< ÐE¶µë‡S5Sæ +¤ò¼e÷.S¬]Mÿ‰px‡#±Dzj#Æ€~  »º6bö;yâ·fÓò~…Ce4¸• Câ"DÓC`«ƒeÊ ‰ž„B_¿•òìs7ýÖKNŒ™-޹‹ÌR ´­J¡Æ¯)ƒ»SV?¥CÄRo†4gŽ«;Œ¾©‡ˆxKšèàíí»¢þ€‰\gflu[›Ûq©Æí1Ó%÷Y PµS<½MH8ˆsáo„*¨…j*©·’+ªÙ±>,aÈ7 àR·¶©uËòñãzYÐ~÷’Ø.ð<æ9Øõû¼4ͮ悉Uz¯§›èe˧=6ŸãN¿… j0~òÜÛ„à€'ê‚)ªbZòÁ޼W<85VÙæ„s¢’/*y<ßwë.l?‹ &”‡¦nV°’Ý¿Ò7/ëÄ42(JP-œ N£9ĹPR&ŽÅ‡‰¬ÓËz££™Êtñ)‡Ï8ˆŠÄ߆mIaø|ôñ“lF~Ÿ…¶®X˜x“äµ·ó€ë«*=c”«¢¤–ì+“ZB­,EMõåS×s;ƒ;? K4‰!戥ÒCeÑŽòã– \°‚ƒäÓ’ýý¬‰ƒÃž”9{â‹•½®×°·¤çæûòÜ Š¶ÊsŽÛù»~¶å´2¤”Úz7ólëz÷tÉ4¦Ó£ªx?|ÄÖåhÎE%‚¼E,›C•Ïñ1p|b¢Ÿ {³/Ñ=yBµ¥»f† ›ä>ûútì–b…éãÀ/?L¬<—†š__2©ÅS×Â6·?ñ÷_$Ù¿#ìX”W¯OȨu(@! b½âãSVN-¨eØ×ÓGKÓ¬ˆbu ô`‹S^°èmJ´JFJ0+øÀ¿Óë¤*U„Ǧ³†J^(2·+&¥öðe¾ÏáUÈÒ—e(k¹=S|Œ1ßã$uÜõ¼$¼áa¼’j±DÃBœtrÇÄk•‡—íùƒw­Ä´HFÀ¦Š±,·CëÇi+ Ñ÷µ[ ¢îHm±DøEç,zBkSþWñ…s‰Ù‚9òޤ ©üGÏÜåˆ"¢ÝãÉÃ`‹Ë¯¼îiN¨¢ëvBÜtõ»†Ÿ^ê»±ÈÕå\8¿L~M l§½] ª›™K2ä]`;}D&#Ø7Àš¯NM˯³#ü©?ßÎ/¢BšeÖV1Fø¥F|PÎúã4Óãg_]ÊU1Nœ›»Ã;œ›ËÌ÷=Ëè/d:ÐêÏ×{¬”Ƨáû[S|´çBß6EÙ¤-ä#.«†äð½9ðÂl`öá@"d9khFéÛ¾¤KÕ"8Žm]Ðð65¼<³ª{”°/f¯Ž}õ/nýBœãûØ|^{OÒ^I^+{¬+uµïˆ´¹Ô÷‚xžm\œ&AÄçã: ÄŠkþFÚ9‰ä_òkªùŸóyñ¾ú2ì«yÀ<”óÒàúÆ5 ×é'IÜA._ì®G·³ºÊkÍý^¿º]ÄðR³W™MŠE=œŒ+ECˆ¶9Þf…Ø,þ°7èà|`—ðÛ׿$Ã<;øÆ¡“ôØêƒ*ê/SP@Å’ñDNÔ W’HÁûî¦ôkÊü÷±Z-Úµag2ÅÙ²ãL¹S"t&×ø´0Ýi5†¥Û>‡Dµ‚¼rÒHy‚Á—×ÎÜsùø &®Ž¦|3›¤™Jªù2±;–Å-ªÖA!éL»¥“6êãÀ–îäŽÝÂ3äîÓŒþ‰-µC’Ÿ¹ì¯¦×µÑJpýÍÃtv­†¥Ê|‘Œ*zÄyq¼½í—ÐÛˆ¿HÒL!)áy…¿C5*âùøàV–)ýLà9Íó±¶ z‚k˜o^!pÑXâ”_‘Ô k˜Zûñµ“FT“òdç22¬êðñ>«dW{bžû-VÂà4|–عñØ9R-_‘ÍS-d ©3&o÷Ùjß SÙ¸^|Rd¥­,Õ»íA5j[vûÏ3Õ=HçeVûÅ:÷ú¤Jaw6›z)—¤_CÓÉj‚(n,? LeŽu0ò*]€W_¡DÜ’‡;ãê\ ôÿð–ó+B« ¯·”øSûö,™ôVôqVŠÜHHß²i¡}ó\ÚGôχÐÁî𗃔±-}æY‡:+A¯ ³,iôº®©–-´ÒÊ 3¡6s¸jÎ¥LTŽò4=§UÉC5ö 6r㇡QþHÁA²Jã_gþ²yÊ[–Ìqv=ÞïÆ©ŠY2…Z|S+yª~RJ4T˜ÝõÑÄ”às·üX»ÆOiFà+âb®÷³àí=ŒÁ;Ÿ%=õn¸À;#U 1=Òäg%ýsòÊÒç^U‚6±w–-ŸEìà‹|•’öXD/ùžš‹øB깡}B#:ÍÝ1 ãžP£6ñø]¿ÓLìÞöS½iõ»¯]“Þ¯ÎHQ׌QˆïÙ6ÅÚdÄì­JL—7SmãMÝŒ²®eP`£¼#åÑ£ ~¢ZeíÆL%ŠN´Oé¬ÖãÍ€9Ð;U3}´õüraTæpWj÷6þóMÕ…tí¶f“HqJkü´$V,üQnЫ“Ý÷ïæÎªª¦éuZ|{ÔäHÐ'âêjÌiøJAhê;¼£Ã‰wÁX5iIõ·Ý‘:1QÙ{ýD¹±¾DE“To𶢊6ÅcýLgÏž1lðÈ€<ÓhM]¿JB3©/±_j+1ˆSd‚=”"  £“E <$s“rXõÃÙ‹ÑàÐ{íà¨Ãíó7r`RºÏ@2|Æ;”R€i–åÆœü)ÆïaDÛ rúÉ¡Õw÷’} “ƒâsLŒmÚš`ɇ帬 dG¨ŒúYàðëŽÆ(Þ EÏøEè¢Í²‹ÄŸIØdÊ'‹ëµp Rñξ›9w$`ÓªÎA{'Tîƒc0ˆú`y˜kÍF„¶÷#¼)Ëý(YJ €·ùÐj^° x/]ÍLt@à­<3l´²L¹¢Ë¨o‚0¹é="Ò~¼#cRºOfï]—!ûq‘ëcÁÎv(¶ »n|¹³¤‚~yÂçF[çÉüɨîÛM6õ8úá1¦CÐ,PT¹Ü™Mù8ø„{Ö_&CB=‚üQâ*KݱóšÛ­”;·h0ÛTR4…šñB!^tvöaþšùâðC:ë“9ã½d;¯ŽÁNÀq·]’ºìcZ„t®CÄö°`_¤×E·ìíš'ß>ÍÊÎ0%°åc™Þ°˜Üeyº9`6ÃïÝï!/AI;%ëÇóo¡œ¨øì )„åÀ¹®²z&²OÐl{¢}ÝY¤°»r®õ‡ï3ÝTÅ6åLÚ^Ð'þLVE ü™‘±t“ÒÌ?&šð‰½ÕK”™š #ýŽbýk>æÛ½Â7Í_ެ¡ìfžZ$Úc füB@©Õ5QÌ—…K™‚=¥,ä_s69>Æ_„‹àN 3Þ°µ È*{ŽÀô‚u²ˆ¦d&áXôs4°ˆÈV?7tÉ6»$Ë|\b³:_iåmÖ˜yÛFm4]X€sñÎÆÐ‹Ž@«ò4”«5„"ºÚðêÎfꀔˆ¸ä¤¾èÀ>z Ç’‚EuŠa,6êªM(Ý¡fÌ¡Y”BnŒ­è‘@:õ‹êãÈ@|hFà‰°¤W—]­ &eâÌ–HMœXy!kSœ¡‡éMø÷îW2öŒ‹ mÂðߊÒ@ªéœ=ÔCW œèK§•\`G6¥ÙiвLªsl|Õg×3?ëßÂKµ§ôîl· 4#¬úèć}!¼«ÙCýðb•óÙë Vh:zBùý­´~ÊNœ¶sg»ˆS7Y[,f˜gî^!¢ÂÊè6K§0ZÕ"Í y ÅaUn²3DæŠQ7×6ò[Ñn¢ - Áã¶ÈŸg÷LóºK,“Í"û)¥™²LIÑÒõ¬ šÓÀ'2A«wPË“›ÔîBW²38®OˆŠÉ‰µÑ€öë²×j7æþÀL9åV3ÔîýS¸µ3Kë3›R)†r¦¯ÏŸ.:ÃáØT£^ óûf·–_²œæ>½éH܉G¼â¢†!%²g—n¹‘67ª||·õŒì¡-gé[ ;§OFfŸˆH’ã) 70 §K¶ÿrÈ–5ù27Z›Ìª*:Y›*ˆîíWþ—‘p3"ŠÁ/o“§Ö¿oÛ”hÔJp'3Ñ#go!놖I„u~Èr#¾e~xXjGg<Óle›;ZpÙ“ëÅzúÙÛz/ާîžBdMrGdÎë«VLcàº<±<×€&µXÆÁããzñ)WDm4áΛk²Ø>Òëæ3ØíÆwWÆ Y.3,î®{WyZ€c=K7ÃÉׇÓoÌñÍ:^ï¸ 1-Ž„•’”ã ¶%·ÃÇ:zÛºˆkg&òÚhós¥ä’ÒHÒG‰Ù;×¹[[3÷Œ¨æeAŽd¬ûé1,¯xÞÛóÜAÀíz èºíµ@é§RÄ6JúµI–&¸Gn¾ 3–ijê³T^>KfHK™äמ[‹ ~¾Ø©V¢.Êk¦¨-ウ=¹Å¬J?y?¿²TAmlŽoÙo©F»?S I,—õ8âcà^Òþ úg¬Z½Þ˜Íà†8ãHI-L¸“ ¦‚‹˜öúÂg2qÎJg‚!t)˜ëô®÷W°\. ÀŸò²K±E‹Y šL§M—Ó*#œT†ð® §b çÇ%$P±øÓdVGÎ]”MÔeéh$ï“°]†¨ëiNMµåïc§H]61'»‡ øPÏâ+KN"¿„Æ+ôo°IQ¦­I kq^V„Jê•‹Ø”je'P–ïu)ÄÅme….NÞÁ­vÔÜý¨îÔö¹üDÜ+amþþ3­!<Àž3fåS ŠÏ[Dý—Èä?´$ªÑM«T#НÄvÙ„1™["C —ù¹]¢ »Žë“Q6ïj+FìcúË·”µÚÃgÔWåx:ÛÝÒ«ÚÌŠœß¹r ª;Ñ] „ÍÓ´RQ¥uªše8ÞÎh¥D#ªšÉ9Ú°oª,ЧO£Q¡&xkÁõc€TBf_Ew´.|J½˜çqÎ &ïÔhOÂ瀙²Ú†Ý"f¨!Ëš³rVà%ÍÍ«›Oy‡ |Ç‹ûô÷RÜ9áj*âÙð[ãØúß‘$ÌZظ{v‰EWÍš¬ÕïI]dÛ´8üÌ@[Æ SZþ ?—iUâ=£æ«z* {g¿ÆO!L¾ØÃïÍ×w2g‘`õ&ß}Cž^Ìä´$„"á+2=rŒA°F—œr’úµý¤¾ÌU|C@sµ0ÿÓÆÅ?Ñ ç=þ$­?=é¨:¶¨ò®Þ¼Zs4ž~+û¦ 6ÑV%N%k%t†C›ÈòµÒ¹í(Ѥ£0^,xîY¥ÜãhP˜irYÈþåLÇZ3ùzÃviùyì#…¿öáʼn€ç£"µÐíxjsÛÚzïòÐwÁíoõõLœ$6oVWGÝ9©÷E®líî™ñÅü ^=G?öËÙÃ8} ’foTMàwÉ»{Ã#Zl ãY¨åJ3L}Íê÷>× ÇR/ýK§oî†Ûd^åõf™O»oçPé}á«ý“fõ'ý ÞWï:&fvî eiÐÞÌópÇ1ví­¸Î#W©L(IÁí sÖn:èÛÚÝ`Y{Â@áGX‹ÑSÅ^…øŸy=P­oBqvÔÚÔ¸|³¥ØP/„¯(k°ª#¾ÄoL·‘m.u³— Ó ºè:Bô ’8ˆÙßú¢Ä!{xóñÚVVõk 9‹Q6¼Ó˜zw©ØWîÜ÷#g1Sœ#´f¦[òÛÓ>ˆžr‰«°ýÝÓPXhÌ=CÜJ½Æï¹.40q3•÷K>‹f€iÀ †¸8Ö^Þ'i®Ÿá"mê3c!èÒÖÉ{Y<ÏwL|.}? Tö\ݰò¢ ÄB•ØIsÎO%‚1°Z’¼¤ ¢F/i˜„gļr(ŸúòœŽ_hÿ”zFlÞÛo€;®«­Þ.z§b…à!‰ÂòRáxŽ[ç¶ ˜ U0Ôg=Pó#+pçÝ‚ *‹èvÎ'ùMx¼Cž–úàZ,‡£’1½zæ|žáµ¾ …·I„w«ÂX“ñ©áš1änµqŸbið1+Dt³a²×^1lÌßÓ¦û¦x…ËYû-d* 0'ú¯§•6-†›QÙ¾,•Ä\­ß÷9’Ô^nÿ)3;ìäÛ¸ps³TÅ—Øâ˜iÙ¹ewÌÈ!v'~úŽC{¨)i~Èeñ™#©Ëú-h¨I\>s!œ{*]Z$ÿ"Yáà ‚ ‡$ÜwêŽÿÑÉý•ƒ>Ñ`¥yOajQƒÉÖÊkŠ8#ìÝîý!|›nŠH}‹Ž7dßø0ÕÜE¡hâF•£¼Ä¢5A*iý$úḌus!kWcxFVœ²ô)T–\\~“ y9˜8Nå{&%èÒƒ#8*öꓨò)‘ÂÒbŒ!º8:KÑCÛ%I‹²²QsB&¹GŸ“°cjy¤vE±Cx~1bœúÊÞÙA²玙Œ¥xÝÃçhƒÊBºY"ŠÍŸ*Hx6%°-únêz‰p€âY¤ „¡§ŒäSw~ïY‰;Š Æú,,‹}¢â’üc±C¸¹áoQ¶èœ%EF…]àÄ{=„5Àˆå×%aGßVpËÍ#k%—±¦õïe_Ù7§cY¨ z‡qMJ‘·úÇ£K©îì¦Æ?îâî"-Ï“ùDÓý“…,=ê ý;¾u¤VŸOÊ«ÿ°œl’§ÞE}ðOpì¡F—rÀ¼órµ¿–#~• ±&¨¿Ûa®ÆÜ¯É䑱˜ï׺™s0ØQøQ±b ÈQgy HyŸ3=l$ZMº2óɯK/K®¹V?¸„ëü}œ?n´dë—Ñ ÆhZ±ÂAlµ¯iªQ„ìg%UÖRÔJðMV DÇ2ÜË¢äòY&¯½ß å[Ë>˜µîæMôÑ܆ zÁXÙ¿„²$ÁÝ~¿VÂü»á¥àe?—q„ß P€#š`RÚÐ{óØŽÓ¼úó Ž%>ªÝLuCQ£ìÁ¦Z×X̪ì\º–ŽN£_¿¥õæt¶>ú?‹8j6FFÁè¾øÜ6{¹13øü‘¬´š$ªL¢œ·´‰¶_í(7ÉÛÞ“Ähº¬t$2”z‰ÔDÀÆ)x«Ýªô †+ >m\) ù´†®ö°(HåM 24Äã0Þ<Ô¥—Ìq\Ù bm .òÔ1¶kß"²¦ð‡h ‡ã=Æ|2Îü¤ Òåà,1'ÙK›ÁH:¤‰?ÎàßâÁñ³\šÿ¥¬Ýë„‘$cBàн—V%•æ w8ÁÕ•é«U3|\ßM>Ϧz]Ýž©&ÃMœÁ¤¢³ÝQ¡ÄYï¼3L*™s ù[})Ço6šßêe‡¾7J—¨Ôk&Oî1¼-ap ÝLl殣ƒ*>!¿ËMbÀf,Ìê…v¥ª£Nøað,üZ“SùúԦȤÛi†ŸÂ©> õ#«Æµö[B¸;ž‹Cì*ã~2Y 87qXÊ ÙbþiöÅ Ó©iýìµýü¾0¡‰àã ž„‚ì ù"Sªµ˲Fm¾™ÔDcÌЩ¸uvDÇ=­ÚÉ%‚å–ç¨ï^ŸØËnœÝY¿1z\X{eÓ¶Í}^TÜ|”ºúµþÕê”RȧPqµï­ÎÖ¦©O| â6Ѻ 9‡çrÓeOUÓ¸ÌÖØ§±Â”ÇÄäø‘zhOÒØ£ü#‹G†ŒÅt„kÕñÇ|P% +s1ÝZ\-`Œ›éñÒÎÈ7ÏŸ½hcÇ=2÷Üï>a[í€ýÎ\-åž²·`ó»®YdZ/úwña¾‹´ ºiz Ö6@[gz}7¥~y˜æ5âžû €KM*VÁ*Ê”‘±]´ªåM„úð’ûô€´“÷ç%3$°‹&ÀFP_®;rË b˜@¥âçEÓ½Á"v¸“zÅŽ÷Õ§3ÁÆ/Æá’0·c>ê™êÁº\¶¬ •0iIŸm%ÇŽ]Kú¨…Òâkfž û­4p¾¬Ë+oLb•]m¹Z/‚K2ù&ׂñ=m”÷ƒêœÈ<ƒ|TÒN­Z#hxJØ9S²Qñ=ä_¨PuêÌk”ˆ˜B AoMZ迨lôÇÜ5„{éøBO„&ˆì‚¯ Œ¡žŽî§ÙÓÍdïu‚Ñ6JÔfê7xA¹E7‰n Ǟܔ§…j䂨†V3$ÏHø:QZ‘ÀñËÕ*9YuAI7ýl¼Øj7GôvõG\.KÃóûçV·I‚?s%V†vÛ• 6QÝwrÞ—xPó½xG3™a]5}/ôzbhŒ‰Fh­üÊ¢ÊIeç*ΨNYºÚN d˜¬š&ŒøHÓø¾b)V¬Ç³œô\#¾'[ï„ÿ‚ãñ,ö´Eyq‹'ò.Y½ÔâZz aú±ÓacîF\bÇõ‚~g¼W5Ñ •XH½eªÈNÇd€-,ï%t%ES@;Ü!A¬öwvêuÖðŒUo³…G}aómǨ¥ñÞFxÉèÒ´gZîâ“øO{¦~¯_¥HôÍø}’¨JQÍLx‹iG=sÞF/Ô›pƒ3] ßôCç«Aí  eL ^޹&±s‘ȱ‘-µ k–=×%£%¥ªå£ßQ”‰¬gV8ÉÆî-ƒ ýÐ3tüPôa1Ø ·Ów|ì¶NÛ;Ž „ÃöÕIŽ&¡#„zKj‹Ò U{[Jj3“÷¾÷­ÙWŠ‘ÐsÇQlÓÌÖ#S_zkŽì"œæÌüjγ1žP_±xš²SBÍÃÑ›îÛßH¡Yˆ¢nSåÝaà&íLä(ÛðVxÞ~Ëp†ï¤AsMcŽß”ï„®eØ¢§îø#b Azzä×3#{Kº,a)°UßÝgÕFÐÂr²M)¦¼|Ǫ‚µõ¿¥¦%(5ÖÈçó÷F^èÇæïÊt«Mâ骸žQ¼ÕtÊýÇ a޹±ô8m/{Þ¨,²D=}P»*×RN-ñÈÞñŽt]Gé<©÷E$a½ý“ _Ó ‰ckk΃¥,FsZÁlþ-Ê'À³Ž×\QA•gâž[[`y+„ì •x°¯<6Ï7‡Âî‡(eTˆLKJý$;y6ø™4)ÚKJ8f ÀQÚÚj¡SÜ• LʽÇ'TJÌ~ ü éO©Vé%Iü¤¸>ÜiQ)’½µxÔÐH¯-÷¹®m¸ÿF{$Š.Þ&í6äjþ“¥dóØûyírµJsÀ³U!‹ï™jt|BÍTÕ«nµ×bé$OI=ê¢fÌs~bˆå åj_²ÂikSøsè(_ẑÓ;š˜o²/X)lލÊß®HRyY G`Äû’³Gµ§á®Ô ýÖ¡TüÜÍjQ(dr^Íàf/䣗KÐ…Æ:·Í“ ½N¥Ì®>HbßïȦeÁ–CiMèÛ1¡®›ððR«N¾‰™;ðIÉì›™¦¬ã=²¬Ýßx‡¯²XÓÖœqBâîë ?ƒK¿Áu¯ §%Э¨=X˜jª8ü¤©G k€ª¶7sÙ@çàáx´pï#áA7Bb›Z![Ö»$p!¢×–f"þ<²:€X^‡.’c|W,ykî’b&ž×Ýؤe˜½3—º75æ^ì¼u=Ûßqx®éôõÎOÔŽ†²”­D8¾ß:§¦RôÖùçã’9ÖÅ›|ß$=‚…5Ðfã“ôéÕœRK®*‹Äñk1¸rº6ø9gÉIcêy“ÊZòÁ•0ËB®¾mܼlì'2ªr6º‡ÇJĪA¬®\ä·i^ùÁ®f/á}"¨Åa«±ýp£Í¨w—‹0L‰îtz|q­2D‡"P중7Û³_^)N@i”JðÖ׎9&ÀæÕçg÷ä1ñnÚ¢~®"õì7)²'ì¸ïrz "V~ˆAqB&cTÌ–ê¡iŠ­±,pV£šç=*0¦‹ŸŽÃ‡|˜„}¡bЗìÖ M°O©¡ý8KÓpQ@s§Ñð┓á¦ÈúýÞõcK£§–Wu¡1Ò»…)6Ús…5ÝÁ$º Ð Šaß4ªßp¢n·ÂmjvÆË‚iý2΃4.”ÇG©ÜàFDûÆ-.éûì2ÎHO!>qûT&ÝwµÉhÜEù9Ìj’'˜-š£aQÏ=ãñbØ WÖº>gD$…E¯4o3Œý9ÿ7­ÏF:Û'‘ ¹ rqKµ¯žû¾Ã`¹|¸º¯Vçìfw\¦üÌu×XDM×òÃè;ŽiÕÍüþêó>Sß/y¶^m¯u;·IZîV÷œº›ÆM?5ät-?c¥ÞÁE|ëĻھk1‘»Ç¢Btü¸]±Î?`7K£hf”£*Ú¿õˆ½Vv-¾^Wêl“à44ø”eÃ=Èõzuv[­æ<Ñò‰».†Û +Á3 |ÛK¹µýïiç6ÞXB·²Luõ[Qe°æMGT£œ½X"» I‰)ò_“Õ³ˆÕªOˆ¤ ‹•QxÜÐYŸ'èã‡É:ÊÇܱ’ŽÜ+9ÏçÅäuaEÂ9»&Yr9‚½lHª’y~Ô×+½È"(¡1Ç5f“’pÇæ®ùäÀï™ûšoÃ.-`™Ä)À0”œ²V‰AõznTÔ)õ¦z¼js<¶-M@~O”~uªXY@š¿–hl{Á½2¨ÿÉ¢Üeúõè¤obòqíºÒl÷¦.iRMüôç8 b&ÏYF°é˜uÃä‡K=çd=`ý|M^‚½ ž» ^Ðêú]3o|ÉSõLKe½+Áfa€é²t}<3ÒªÚ¥”K”,®ø&o¶ÐYöª"§† ©xüÐ Þèy‘zrÖê˜AšR$Œd'²Ýì_ïW‡g[¬8FϳÓÎA<—ð¹À'Ó‘b¿òƒT} »Q­1ö Éâ4üæcc¾áyì&v€ï™Š ƒÇó·Ø _çßëh„fç#fA#*na;»Š–PøæõÓäæuCŸY^LbT^ÿ ›ú¼—y=¹Ü£l«ø^Q ÍÔü2)'ûAv<°=³Ùž0ðÆfI´åbdçlªœZ–ïÌ{_âAã„âÚ¨ÉK2hAM_FPè"„ð`Z­®Oá€ðálºŒ»ÍðÀ( ‘ÔxW/ìLÌüHÅvk$6Dc÷>œoAÅÎe–Z-iÊÔ9Pí–£òEo¨RMf@ö›‘·Ô{Ó)úˆÜõÑlf_¶8ƒNU,Ì L?Z,‹‡ë£ª×YK•Pa6Z–íó“ù·§oÒv®5. Îûõ@ñ(+g`$‹nÿ²biÓUâ¾#<.…Šˆ:Î%WøN? ³ë–óÊ^<ª³ÅÁ—t R8 ¦Ç:Xì­¦ Îho"³XÕÈ{ÀK´2€=³·g_Fá-ç§ÏÇ•‘!#7f#Æ#ZæUiÜÒQJƒ­–qÒØóð¯ŠfC4ÛV-k–J|¸®do;K;Ù§•…EÙ­ÌgªBœWï$"¾“¼ú:CvúI+J1*Ÿõ™×j"ûÁüñFKZ•w—  ñ´‚lO )…ù±àkÈY^’Ù9LÑÍôM|¡:‰ì°Ü@t›§— õC[³ðáwÉ’³óÛ;FteÃì'ñO\iåA^ ’Ç ^ô– îUßÛòƒéþ9nÆóøu òFêý#}‘Ý­±m(´¨žÙfIZ³VK`^nÖ]«×¼‰ Î}ˆ£OÕá¥[ªÒ›úçSJÂÖ¤ws2.:¦1ÌmHâ,V¬::‰mYÒPHuè‚ ”wïðUh>bÜZJßg {¯dº—ùÕ}¢ž»Ý?Å:G¡Œ±7)}M­:ª ’dtˆÓ]ß ˜¾Ç¤0°¢ê’?!æ^Z~’I$D§/ Í´w†ó¿¹õ`F C²‡›-¼»'rÉP KBk‘9¼ÇFñ(„}#*é5ßeñÊÆ[rWòÒ4¿¢Ù}ž(=ôqm“¿u>@)™Ô‹)½5$ôE‚™É§)WwYhÃvS}‰”Ý}œ6L܆?H/ƒ¥uíŸf ÕƒF¹ÿ“ÇAnÝ,mŸ”ÅC/îõ¡M²¥Œ2TÓ)¦)ÜsŒSZü–tr&`ûØŒœÁ °ú–àdÃ2Õcð2;eÛ …É[p܋ъ㸶œ9Iƒ$'7bÕ£”â´£KJï„wÂm妿3êûÃÃDÎô÷[€¤Qÿ©ÔÏ ¾ƒgàN^6Ç)^ñ(a‚÷-A­G2êcfË^ WŽ_ûfá¼ÔYªÐ²ëK½±2…5(×ñ0O„÷ñKŸ󨹵.˜”Èøã‰i­¬/‡Útò2Þ®¢\´'ÀUYô§llâw$}½ÆÎ±œ<†GRAKp‚* ÆkäÌþÁáõàÿ^džž }FÖ—]–>OoÒ5°šÆoŠ! ^’Tseýuº‘³«ê«Dž±ÏýrPÈÄZ=ß½¿Õ\ï(ßÐh‘ÂD­ÿì¯m¥…îÃ]8Tؼö*+}òtìXàŒGˆòÖ—i$ÎÆ¸†æç?ÀެT¼É3}Jìq£òOï‰ ñÝZÊ‚zQ”›{Šq 번èº!·ü¼\:n”èI’´¼‹œþñZ´Ç:œé»»c#Æÿ!úÊ6 endstream endobj 108 0 obj << /Length1 1531 /Length2 7310 /Length3 0 /Length 8321 /Filter /FlateDecode >> stream xÚ·TTk6L+t³éf€!$•înÉf`ˆ`†ERº;D‘¤CJBD@B¤CP¤üPÏ{Îyßÿ_ëûÖ^kö¾îzî¸îg­ádÕ7TpDÚCU‘´ ˆ°4 ¤cdt ‹prÃÑnпÄœ¦P/‰þ—’‚¾–)CÐ×v:H é툀 iIiaa@TXXê?†H/i@âwt„M$Š"àTBzø{ÁœÑ×ÇüçàqàD¤¤$~» îP/¸è@ÐÎP÷ë n€ÒEûÿWYg4ÚCòõõ‚¸£„^Nò¼€/í BQP/¨#ð«`@âýS™'`ì Gý‘!ah_ˆ¸¸Á Ôµ‡7Âê\ihzPÄcí?À_½D„Dþ÷—÷¯@pÄogˆƒÒÝ‚ð‡#œÜ è©j ¡ýÐáøËâ†B^ûC| p7ˆýµÁïÌ!€ª‚¹.ð¯òP^p4JwûU"èW˜ë.« •îîPEð+?e¸Ôáºíþ ?“uE }áûU„£·È÷ô†j(ÿer-"øGæEâ·…E¨'õspý oìïý­ü-¾® 8ÐéÀ®‹€ÃaÐëA âÐ^ÞÐàÀ+þˆˆŽp4`u‚#þ‰~-†Âþàëá{ÁýKákî‰Â¿ž¿¿¬¯éåˆD¸ùÿcþ{¾ #Eí{ü*þ[§¨ˆô%ÄAQqa@DXB”‚ÿ;Œ>þWÂÿøj `H@êO¶×múOÆ>€ç¯åàþ;–.òšµP€ç’[ ‹ ;\ÿˆü?Sý·ËÿÃEù¿‘üRõvsû­æù­ÿÿ¨!îp7ÿ¿ ®Ië¾^äõ þ×Ô úgiu Žpo÷ÿÕj !׋ €prû»p”*Üê¨G;8ÿa˹ɯ-sƒ# úHü׵Рÿîzµ\¯¯Ô5%« ×›óßGª Ž¿VLT\€xyAü ®‡|Ä@‘ë]t„úý&1B Ñ×.ÀuyÁ éEðk¢R’òKôI ‡¿‘ˆ09ý Š çAqÿ¼ €Üþ"¢Èão(&q®§tü—ÅutÏÁëè^ÿ‚×èÁë<½Ãÿ*ßÁÛËëúøMÐëÞüÿ¾n P?¨Áû¤ƒL¸K}xûiƒ¯àÆÞòJç£$‹hq4×ìã@gí9jSžŠvŽ5´£™ús‘of‚ø¾œŽûYõä…~ÈP/Dc¨ ¬) Ÿ}ëq‚2;"é&$3­ÝÚO6`"µ³Ä±äN5›¹ˆìoÕn>¹ìDmÝ“ú¸OÉX3Ðñ Ÿ°b-X9VÐ#Vd ä^–YÞÆ&—X±ð„Åö8º3ÿ5˄쑥¥¡¼W™à¯ÅZ}Ï$j")è(4Y FS騒ó4[P\ŠâÇJIѕݳ±8Õ³^Ö†÷øL€iÙN[ó«»“÷Jý;‚0˜»ÂØ|Ê6ÓbCr»uåUÉwÎT†ºÍÙ^¦ñý¼£á¥QS!aÅZeë¢ï @i8Ôýq;©õãH¼ÕÔd©Fr F…–a}™‘‡N¾Šx¿ü\åœl*Œ¸‹µ3Ä5U•ØO–öã˜÷Ùk{þö+Þ4GoäÛý!‡ƒ„êÖh÷Ð!–²]”Ì]ÍĬ޼(ž`ɽîo÷.ßž ¦G¨ `KW(ûÄ섯{ýúi®˜ïÈÍËôç‡Ì 5yîJ×ÞìÓ/×Jsv4MY¼ÜÀÍZÎyi=õdö#Ìè°˜*c”ûýÛÒ ®ïgw1Ù )ÏË$Öh¿®>ų̂nÌZ þ5uO79ÞËË–ñtÏnüîöª™dôÍæ ‹*%ÆíÚÛ ß–·øâý …þɽf¸Ân÷ òöÄÈqè«% MvO¼{ªõ"ÚE©;•*00rÐFg§i*íæ:ÜN®?_PþvíäœGŸ¦··&æÀ¨ÛAG®.^¹Ë”T$ J7à&ÃZZÖYjÊ@.h8¾rB¹Ô«¬÷ÄŠ~ªÚŒmÄ÷9{* /ñVFÄRgâvÉ6û}ÓiåÕŽ¯˜>#ÑüÍC–€f¨?ô˽3NžÐ™U.ÌÁ^µm«†s̈GC-ÄÎÃ;ázü.v.ï|v‰ Çg¾qßÚ|øÆ©pœÞz«jðÊ&}cº-ô `^ö–wÖ²°¥ªdú‘R§–B$0 'ì–ÑÜø=«šéÐþa`C•8÷‰’t푹¥BÈýæý¡ߘ$ÉÞaó°ý¨+6‡ºùäc*ü¸š_p2—Q—Ë\Y/螟¦Ä@êŠsŽÝñFñHþžÒñ\ìsYå0)¤ç±a©KÉùbÞ¤UólB>oïôù#n×Ó e†GñCŠÝ3 k&òÍè’ÖØ-ù°:®Œzä$«ÉzÇ4²xZ§sçFvÛv±³ìn³§usªÁÕËÚ%Ä‚€ê°±Fy^œø|F ½Õ1ønŒÐ­ó£¼µw¹_Ì1Ûaº"•üïšl™éô¤ÑcEYÈ(Š*Û“ÃUmŸÝöL2Ç31ˆ&eÂ¥3ÅêYû²×±Ý>;ˆÚûäÎFËß25©dÂ÷Î@©™Ð×3»µë¡Ðx3 ƒÅí+ÆêDÊóSfò­ÇåšxòG ݹ zd‰¥O8¸¹ÞÕYrßümˆ8›‘a®ZšôÆöeë)ª™É£¯PîÒÁ&ÿè•¡7ÕK[ÍøÑ‹§–íL–aìÙ$HÊ©Éjµ·yÙÎ&i4ï(mmh‰{ªSè‹dƒ^oà‡ÑØ=jí¨pÑg 7Ò•ú‘5<莳 Ì¥ÚP0¢"7&m¨ÅÝÄþØáC¯²èAbºàëGÌ]^×i’ÔsƒmчiÐ.®}9Ÿ-cQ ’ Þß,…Ï=ùáQÝüÍìæwH´¼Ù‘^s̘ãÛÒ3 a©ú^Á¨Ë‚ŽÖ#ŽKû΀P“)‰ó*?pªº_Qp~§Å™ctǬ@_ ¶åW—¨{!OØŠS |•y W7Úq4y÷þEÜ,7ÏYئÐ})à炟˜,ý±;ÛÒõ¬M¼sˆ?ÁÃÇã¤=í§ø”o_’µ‡Ú[¯f½q?k­!ÛÃXOdÇWÉ/Éüà˜¿P´®|ëdåÊÅ£l8ÆÄ,YÅNâˆù ÍA© ›âå©I˜äFT€ï4÷âÌÀíö€„íÕâÛʽóG|Ò¥7£(”^e=€vuÒJ¾s|žÊ‹(/fÊn_%úž”±ÛÎÍþ=u¨NZ XK›Úg²2¥´‹^ÄÓ¦Eð_–Q›¸¸Ä'#­ºC\4µ÷ÈJÐÂs4×?¼™uôbÛæj¥„!¢t—¾@üruæ9H0‰Eœ;ã Œ!0¬ì ÍÇZñën©a±:Ô‘æ« $[Ù]z¿ «n⑞᫾¯wºZè))=ÕéŸ55l\Mß>„œßR_´½cÔ•áBÃÔÌ´QÇaÌFŒÖo|¸0µÒL›f>+Ø4Uq¦Þ|sá,ÿÉÊS-QÙuÖ.QêäÍŠ©$ë Ò¨¹®rÄFô‘|,ï»*Æêóäâ'¶zêÆíÔ#FaKØÙ—Ë)\Þìü<œ¢Tmž²ì =¾ÛO¦H×7š¦ã8\ì!cÏ OLAWò64n7¦Þµ¨jÑs,¯Nî ~—°7!SŒóY×îËσ†Í:x?ã-÷åržÃÑÚø¤‘À}7†b/>ë×úÜ`-Ì1¼ðû É…öÂ,X¨ž4ïÄ@…5I'g¿µ4؇’I¸~šZŒ'âb½vYdÖ,NåîÕAùó+Ù9÷¡‘¨D™õEyI})j9£¢gX¹ßc¸2•e9…R 8yXµ›æ± :3‹ˆå'Cóg‡wÚä@uÊËJÎb0æÝî»a5 šÔäÌwM®mr‚¨¬zY±y7’²=ö"§ÚœµK¤G"Ü &±~ú>…}Æ öƒ꣧Fw1Ïçï›ÊŽÅñŒOT¤ÖbÞÐ(;ºóËd®¹Å– ¤ |èŸJÀ6•òâý¬´â>ÙÙ®!`dik <ôÞ'5ºÙÎÛÛz•a¤¸–+~ÕBåV]Ááœ/³x*;*ñý-÷&ï”ܼ§nV±¯ ÅÇ3¢ÍË`œÉ,fj ‚#vÈ~=¼qPsz÷!´÷ ™lK\æœ}6l/:Ÿ‰#ÃE s»®?ÔŽ*zºïŠw¸t_\iÃûè^¨¹B ç^«4¾È¦Wöíd—H<_ùþ3ËÕý*mˆ´”Ä~°&5à!é­„¯iŸÓXBl}Y¢kb±l@ÒÑïáIV;ëë¾ðOlòvl¼¯û _O;nqŸÇ Lqû¦Žkø*È¡›öò†%6›Þ¢»¨ð‡:Ò/³û³rµÒÊŒ€Ëe\l­ù÷ú9ûwìÏÐ7‡.–>Žáw Œ¿viÂ0§ÇNšäTî’³çtužá*óÈwŒsžã7õ˜:iµa®êéŽmöwgÓôV^ù$îÝV •YWÞ )“ŒEÚÔ6޶`NË ›Ý½†”5Á·¥äå/†¡Û¢{ãV=r¾î°Ä&¡,~¤ž³Ë¦1‰@ˆ‡šJš qôÈeؼuαɳ-[;êî©Å»Qw²ËS…5¦óñÆ„²sÔ› 3­ú‡Ì´¹½Fµ%±ó,Rýoj¿äØŸ¥½3‘Ìq·Ê¤ù“åYíòUC–+ýGWªDC ™)žµÐÙN•g$5¸Jö¥¯èÞÇþ,ûû£¡­ü;µŸd÷gÜI_?umk°š:ë×3æ–¹ì-Ž2˜D²g'©„$ÅeØL…9ªI™Ržh»”NNNºÕÈZ¿&Žgke­÷¡ªuDðè ˆæ‹‘lwõª%×·Îǰz¦îdøË±·~¨¥èbT½(y &ƒ®Á•áåî•»%â¼Ysu§Å £¿…ùd(Ó­#t¾aM†ÿUîèÍœT×W¤UwûˆÄÜ´—•>ú¼»“Ñt §5Íbì½…|ÿuÛû¨n] SééΩG¹ÅŠÒÅœY??ÊܘÖ6h+p&Ø™e˜\ØZN#Ϙ·½x gÆ8|@ºD@šú!'y{ißš\”²ÍÉÍ!¯>都ª*ZôÇãÁ¾U0[¸)ŽÕÛõ&eœÙ—®a\Yó§_ï§T‚™&¥ÎIû”ñéªr2°ô6àÔA¶ìå.ý+%¾ N:â gëìêÒx|[t¯ÕËÈ-WÃŒÍ+½7¬4ð&ôK‡eâv»Øònv[ÿmUß°ý•hc©ãÕÃv„ Q–mžy‰ñ!žv§Û©zëVÆÁ•zà[iÂãž­D€Ã NÔñ~…ÚãˆÊN„r“ôE]}Ï=Š´wc%Ö}žÏÊ_‘u\‰:ÞÑvî©3auQÕuЇú»„òÐÁdžN°ƒ@ÃKÚʶ§~`Ü*Øã®r_‡:Qs ,ù]&1ƒ!ùdTy™=>õ)ú^?na§:Øûü ½¯ˆG:ÓÊ_D¶§WhÛ.H>ÐöÐk¢CÝh}sMƒE’ëÙcì¤LƒyyŸ5 ði&jñ^±+m‰Ájàê¦1[åÃ9ÎÌos0JØÒ˜`µÐn÷ØæõHáËé•§-3ª æ‹G.½îA>mZ™R”Óƒ?ä­'Ên¹ÜÔ#›Š,Ó#qÛêˤ҄Ê6¼éTMî/Ú,nËfæMM1p.óYÕuÌ.#¤ éÉ‚„açd»Ÿ=’<³ß#%q4h¸THüÜqvd€xžN¨Ð¼Ñ$Ÿ™089z„;”ýªª‡~Aõ$“YCP·@ìSKÄýx·–Ìh›_oÉQI…`~ æœwQë_™’å00†r%‰JntÜ<–,Úm¸”áo×-t“Îzlæ•—ý ˆ¯4ˆmáÈ¿óÚýúp)ŽÅØ•lØ1&ÐðQü£r÷ëÁÜ}¥Àégo÷.¬B“éƒOdÒÂÚ"~Rƽ^WËÙNŒÔ}Á]¸àXð$tÙ<7T'ÐbóžK“þh(¹6H¶åä« `pR§­kTP·4 &¼à*RÂvvfýÈöÇ;TR·NR@S!_Â3#?LQû V·á¹±I—°² Ã!)+©IeS™ª¿¿=cE± zZóÎk ‡©¯)í³Ó\¥¬-wë0õö’'怟<æòЋ„»‡íQ~‡»©Øsdx|»ßÁTdt3z±FÒÜ«,Û’ý4Öî¹ï§“èä]±eø¥Ÿ<½,¯ÖÂÙ¢¤9c±¯V+ã Ó1fpËã×óßbP­Ús ºŒ²/”'XÉø.`ªªõès!Gñ©¸h!îó;BÄ“:À$¼íõ^Ìs¦ñj5tBrK;Þ&Ý,Wè™Y*'GïZ㮸ý–{ñ¸‰MÛŠe¢­Ð>‹>1P€µþØ.pˆ¡ÐËD†&ÊÄèô:Ú˜wÊéöêÚÌRœá¦=]H©†ËÊç}J+~åLóŽÔUÈsÑ4º3LJ1ÚfÓXˆÀ™U¢at¥ã±wŒÇ}H<׿zòØE®´¹é‚­égÐJj“ê Ñ|¡p™xe\èÍ«Þã[>É& {þó¥.’î;9YðwÝŠÃ!²’X¡›k«]†¬íð]O¥Ë!®,7ŽÇ öNü˜Y õÒO!*ß½×ÿŒŒ”Ö;>ØéYkbÇÒgÏy¬¡ŒóîA‘ùMêc~•.È  M{Rü®nY¶ÐË! j.ô‰_ê)N¨Ô›-+¬ÅÄ y¸€«@‡=!ÝéGóoUÃ|)}G Ìêh,õðnÚÁÉe»œ>Óïæl_®°‰ob%OVï L~Ö|Dñ¨æ¥ŸøãZ°9£5{T7ƒÓjK] ª 7{vØxn«ñÚ¥u·x#ð±?mWRÅ©H‘t´ae©&¯Rf„œ) ½w”„YÓ·›ù®š'™gRD†©•WDv°G¼2T-cÞ¿+n%(ñsŸf1œÇŸ1‰D2ÐO%W ãÌ»‰úÎä*²|ÐU1V”æyó­ñŒ>~œeðžú·Æi$‰Ý³ç]Ûòò鉶-~Eƒ{Kááz‡tØ‘%s¬G¹… †T³áTmÜôìM:ïm7Ge¤hUºi‹ëy1ŽÃßÙÅ@hªc.~²Ž’x䂼H¨Zï¸Öù¼Ú$ÌEŒÞ£›*¹qlþ–µ.Sè5]9F¢0kHð₲ÉHZÓϯé.°[Ø]Ž—>y_ ›çöáV2Ôb±¥-_/NøzÖh~¼•ß‚¼°Ò¨Ïˆæ„®<¿&Yï¼¥þq}f£–.듽ÿTþ½Âæ”'Sâ{w6R%J´íá¬!sçÅú`bêôOä˜>h°çÕ⠯εÄFjÌ,Ï‚Nè_n5Ôe–’]Ý\Øðcó- ‘Ñĸêªvž-½BXìà" ŽÊxͼî*¾Ô+Ux@b&VN2A»á´õF)•-Dê)%VEN71‹íZ€=oÃSR³¹’ƒ–Û7ñÉS%eU]XžâÚ´*l›73bÖÜêà>ÆàVÉ ëIØí“ð>!Æf:ã-‚U‰ºkß¹âyß÷ÍÐV“HD*!üH¶ƒýä‹Ï÷Ì'æƒäì$;c­pZȳ´Iõ=êRŒ§ò°·ãtœº¤¯þLìêÍ2nŒ'd´»»”E`n±å™wÔÄKOÚÀ6æÊSÓ‡qDÚUÚÈe*óŽa<Ù§ug±í%ÊU©+øæ¢[é|–Dë\1µ“-Zc5^– Ç¹F¼ #M÷ñ œK>­qg¼üÁ>òRñ{Ô¸^Óaä–Ó~Øxí²°Ï××PÕ8'c>¤3xa~åáóòDk*¢síú%²¨÷\W+ÆmÃxGâY`\-ûÌ6¯‰Înã ƒóà”X{­’ƒ*ú‰Ï¯Ê7¨"±#œ_ =™÷˜\èöï´+[ƒA_ÎQìEfé+‚ñÍL.«‰£a(f×ê3uëÎ:fõ˜›'ìú —<Ñp6³̴¶¯;Ú¤£sÌØ7³ ¦?òë;3XïЫa·˜g²o,‘igØ”Rµ>ްªi$qO{-öd{-´FGWã%‹ÿ¿é;ÂüŒrce8Eí-_û÷zl*8†-òéaÞ‡ÖÀjåö;"Öå)£¢M¸^dŽðe¨¥'t™§ÍÒ¡or6´¹ÝÀÉõ¼3Ý H†2ñ Ýù wÎE¹œÖªæ=ú-©â3ã‚À GU5OBöä, ~Ј֯ä88¸Gë‡u_+"Ƭ¾#³Ø÷3ESòs‡g®RcT %n‰¥¡ÊÄS;¡-T»w1 oЬ@•Ÿ¯và>""xÄ3In­‘Y[—Ìbf7 æÁ• àR9qýa}d_dÝôY.LŸûõSá­£Tpìj´á™ÓÖ‘>\NØÂOÞ«e¥óѲ{1—©\4j3¨«ïúF0ZíËíÇ Óð4ÿ€9¹Q¢ÑÖS¬¬ogm~ÝëÑ;ÒWÐ=f‡ëI¼oí*s,šiÏ[ll$Kr vD²÷¾_¯°1”{¢Ç6Fó–gPýAj! xÁCFyÔÂ9Þæ.÷¥{ú´C®Õ!ÃÕjäÄÖkošŽàt1> stream xÚtuXjÓ> "Ò ’»Kww7Òâ²À»°4+"-ÒÝ)"‚ ¤¤4JKIwɇžó¿óþ~|×^×îÞ3÷Ì33Ï= £¶·Œ5â)Twãó€Drzz²Á ÄÇñâ²°èÃÜ¡<¸,†P¤+ ý_9$ÔÊíÖ&oåvKÕ@ÀªîŽ0,( ¼ Ȉ¤(@ÞÊf Ðà¨"àPW\9„³7fkçv{ÒþØ!°ˆˆ×ïp€Œ ƒXÁVnvP§Û!VŽ=uóþW vq;77gQ ÐÓÓ“ÇÊÉ•´•äàxÂÜìºPW(Òj øÕ6@ÓÊ úOs<¸,};˜ë_.=„›§ ¸58 P¸ëm;ÜŠÜžÐSQh9Cá‘Õÿ"pþÌþ'ÝßÑ¿Á࿃­ „“³Ü·ØÀ¡-Eu7/7.€ÜúÑÊÑqoåas´zzKø]¼@QF`uÛãߺB0g7WW˜ã¯.¿ÒÜZn-‡pr‚ÂÝ\qÕ'CB!·“÷þsÅp„'õÛÀàÖ6¿Z±vwÀa.îPù¿Y·&Ü?6[¨@ ƒPÔ büuˆ¾·3ô·üË|Û‡/Êá °¹mê ³Þþà¢\­< 7¤;Ôõ¿ÿF¸`0Àq<…ÚÂาߚ¡6á[ a^SЭÁЯÏ?ÿÌouf€;zÿ¡ÿ¾h ¶œ¡²¬ç?Mÿã–•ExPÜB`7¯‰ˆ„„AßgÒ¶‚ý]ÉÿŠUÛ "|;©ÿíñ·Øÿ^À¿si"n °ÿ¼H¹ýÿŸeÿ;äÿ§ö_Yþ‚ÿïšÝ3ØÿCùVN0Gï¿9·vw»Ý ÄíVÀÿ›jýkeŽÖÿíSq³ºÝ ¸­ã?£„¹*¼ ÖÚ07ˆÝ_¢ùËnðkåap¨6Âöë™pƒA ÿòÝîÄáö)q½Uæoôvþ}¤‚°þµo¼‚+$ÒÊ÷ö¢o‘¾]Lk¨×o-€u©ž‹H,I±ãÃch¿ÐF Œ¶-„9ðm_«K¹Þ©Sü, ÞЇøPyÚªY}šËó¥Àbõ•x¼nßÂNg¦QóZeÀÔV¢¿–Wcåö ?eTÐUEˆÊ©•Y¶%ˆ>ÕA†~2¦â}2뜓5†µÌ§sÅÈú‘¼lðÄ“%¢êоxó;³J޼v‰­-‹å¢4/T¾FiúI_‚°ýf}QÿÙåºJjïÛTØYüúîܧnI†Óò Zçá rÉïîJÙ"ë7ÍŠyTmئ"=äÂÑo+³¤žž©[6É5©’åAë‡Y› Ìc.Š1.Ë!–:þ&”,xýÚöçÎ{"ã8~ø|Y¸aUÅʃM>REâÎÉ©ïù‡?‰Ï[4¶‡ ȆÒ+@÷KsWjÚñâE“ɼRA°&¼è¾¤°ó³»/2÷wËv“”(³Që@n–Û~« HcüØÂVÞ_|€ª€ûâ§çÏ=Î(ǃؚž4 7àS‚úQc)™ —®ˆ ìŸ%š¦¸9FZ‰™d|š„{€‡áÜÙž¬w*Xú\¼™|k¾ý¶Â-’¸…­bVÄ™°‘·…+±R "<[Iî àê ëVδ{È)J`D}—ŽXÏz{í¦Þ~ŸÙ8ÕìE­¸¤!f×n£åÕ»ÑÓX*z@ ‘TƒÔñå¼ïÛݙľ"ôwNÚ߉ù0 ‹{ ÑR[7ÄX1ë:_#‹¿J"øHQ)e W VÝHggòµÕ¨n±»•x_Ž¡kT>3eKC‚~†üŸM—™46OõÊÌ;}ˆÌ¾Œ}“ŒYWf²7×DÆm¦ó»—Gñ»jk؈|AŽ–nU¼Ñ"^[¢'ê2 Í‹«¼iŽ2½{^žö¢‹(ªSXÂ|#ø\;HÞ¨þF9^´HZ”a‚*R;ŒÉØÙ,ËX+Ñ—%$ðžRÀâuÑ8¤œ‰÷$Ò( #öJ{HK6ëkÍ X÷qšM½°ç°ˆÃ¾ÓrŸUø\kþèWºè…ÞÚ €Õ¬lù…ÏlÀd\%=N'CæŽZöÝî¼s_¶ì@[êô^¾3æ!Šç»ÓÆßas½¢¬Âè0lk5j¼_›†Êry·Ö‹ÜdÞÿ¬HjÌ¿“ü*àõ+·xöoJŒñ=“¢~a3ˆJºÐÄø¼×Ëw± üÏë¥ë¿óeig¢¯ kݤÒw”°J¶ÁªµïäÄÈV’~/M‚4IŸsÝ?bî‰,^2d0H{>[¬‰§ Î(K¨¿Þ7ð¦ðݺ åzGXÔ–u¬˸,f?ÄîHXÅ’´¡Ô.`V©q}À\ kÔ0:y{…ºÚÔƒÈÛ„N¯Ê÷.Â;?QeíÙù¼²¯áOémØHÈVùƒzFm.Ù6óÍ×pÞ+¶ÎhhLt‡j;–ΉQŽc-pv¯6CGê¯æ°;ã$³ÇåU¦ØJîF,’»ˆg²#ë‚§µ¶rbR—Z3ßÁ7½á‡ëi‰®ŽKÞÅí*÷rÉ mŒ‚3\¼¼¢-)ôé‚^RQº ?LÜãû~ppÈž”¡á5éȤkD8plFÄ+±¥À§¬aE4R@j›èÌõs»Mðd\ꬖÛ^UÑ"Ý(ª¯3¿/¿$NÊótã{EÝΊÈ;¼°•fp“ÕÉ=Gh0ò0‘:v \ ã\^^Ò_¡û,5c=À ß8àmèF¾ÂV íxûöû±|q’dôúK§yr ŽB¯qTÕUãrÇg’ý,÷¼‡ÞnÍéœ6ŸÃ§ñ÷íLL“isæY±1¶—Õ'$§ü\ȸ?ÞH°NKƒc6<ÞUãYØÔlqd# Ø?”Áø¶í„©Çy«iK|§úùÓ~„iîä„À²¿hoÚÕ–ÉEж^Ú´fbnjw¨z{”HËÔQç°³!r\3=)Þ õõZÆCÐ××Îë”ÚyÅÙ)y;ÛÕqS=KOßе\Á`¯*ïi—}ðx+’uøÑË;!§¹Ìzõ‰-ÓüëKõ‚ë 2ÇÃ’clš‘%øQ'°œïfÚÄb@6Ã#çÇF¨œŽÞëÖ4ÁòãÃ0µ¯¥XS4vÖŠMofź{Úöû—ö^9³BTGã‹KPÉY½Á1¼#é}Ñš²<½i•§}IµµøÀa øƒ‹œ¯R+™ ŸŠzˬ Ç–?ÊÈØÖÍ‹+#Õ˜Cºˆˆ;2Å·j‰µŸ+T½žç|ÔSM}@Ð>¿tŠAŠþŽi ñª¯Â”z°ˆÁ€:V!öfò2HÔH¼þ‘"­±ûsÛ+Û'"ÿK»‘+·a º¢Ñ6Ô+©µ{xˆ¦R`@»Jšodïõ ï]™ª­…õhç×_TÞøÄ^ÚØl[s$Ò}$¦ÔLaÝgƒc:öè‹®t²_¾»Æ#╽{ï}qø Ú[Z®‹öß$ø>J~Qf‘ªÃQXv©1Æ/ð Rž2ˆµ´Qxàœº®YwêI Oxjö,[ mo(aã2h‡…ú¹cšZž!wCÜdÀŠr$]¯žÄ=Jއ™Y °>|¶ø<~*ïámÖ¡a׸JÐÌ…–_ü-ôxC)¬ÀË*ÿCZ±gŒÐâ¥z­þøÀ]wV”à‚ž…vÊAÏœPP¶6èÈO‹J”eHÛÝÚY¼^mž:ˬž¶V†ê0z~G€xKlÁ-»Ç'‰^Öš²²˜Ì@?ÚËÍŠ épzò-ECcO$ËV®ÎÎ;Ô©„š_ã¾e#¬·c74¸Ãœ!Øç.Ï0Dzeª»ÖÜýðôÑæÖgô|ŽTG¥Ü<]ì×)_SäOâ²xIrróÌU¿0NÒEÕ¥gLS¯ÖâU®<¯-z(¼ðÔ¤ä4d<ƒ:ŒtOðŦË?óO7…ÈYJ}Â[9=Ç3Þ꿸åû’3³¿´CÙPVsSõ<Ûȧæ(AíW¿M¯*a6²¼@?U]|ePÆþv—o9M ÷¹s¾=ùòænÑÅ•›mšÛçù*Z°Û¹?øÕOSMO6¹oÃI{Kù“Òt>cªääTƒGñ›?ÙÂUGù6åNª¼.%ŒAõZbª“nîΛæµ KZbµG¬AIÀïÎS’8ÄWÚÇL±4©]M9}»€%igÜÔ Æ>tø H´W>}~€ª#œÕ1">¿£åJ:ìÊ¡)ÌOÄ[¹6;6ÌîÚô8:×:K“l2¬–І†{é´¡ÌQáÞ:3]“Â.…) ̸ôß ãYsôOIÒ ¥ZjÅçòEY@#}OÌYÞ ]©xuÑ­4›‹L¥š0ùU¡NI쪴“GzïqÇäQ]@­Ò'›þ H3d×(“t¤¨˜;&¤ò¾ÊMS%®>¿êÆ3lÕn>%É gE÷£š½–ÁÁ "ã‘ndŠæêXøOMÖè3Z´ÿ%6ÿ9u1ù«æ¨Ìz6I@c/éS”P³‹ç0)¾CÌë·ÕÇÁS?EÎø[¹Yë³Én,g:ö¨ÐwSšÅÈ·¦Åõó·,óÎM`'}ÎoZLwî­17µ­[r^Cìhq¦ø^gÀ*ÃñkÉ}Q#G¬Œ ~TÈ Í\þ²ãç¦uä}6Qá¡Kî&Fwú±Ä’Ý‹Fεû)bE¥€BµYž P]Ħv,ÕýúÆâ0Z‡œÿ«MŠ7þã2ÔËQ¯‘Ã>jŸEÂqƒ½ˆ¹`ù­€/½¹R]õ’èE½[ä‰Ãtžs4ã#{öXaO½g…yµŽHð8‹—}»GOù+w-烾[—µ ã<àø©µ¯lÖ½‰»Ý5©cR\Qå¸ûRÂ÷Xló’»§1`5Bºå øu|½·rÛŸ°Œ›Ì} 0FdÓ´¼Äåjå(»>Jˆ1‰¯Û2ÏC"ÑÏ0ŽÊîq áþ,;"ÀÅ$Å¢ò^ÀQþQ½qo ‘C!dã*¤‘[#õ†à‘ôò­ R™‡TÔÙ噢IÆé&¾çë;™¦ÈÞ÷ RŸS’æÎùËD=¨º—!óÒ4 g³‰ßœ$"Óµösò‡vò~˜LÆ;]D$„„R+t·6¯)uÚV4gȳ”µÅGÐ`¿´•662&Ïö´+üÉæe˺ï˜$pr¡9õ «©¤5À\G7±éÚÓ²£Î‰.¡¢Ô¾j­Û‘·"'̯O?-@C¿žˆRòœ ¶R»OÌ3«ô´$±i Ýèë”b‚Éõ*§_·5¾eµ2OJàˆw5üìy7ù&Ûm Ç¦…Ù…^Ö×Òî3xÅ“‘çè.ýuô§Ó”âåù·VJÇþ½´ëâ“¢øèÜ“¹4WœºvŽU2õš•áÐî¦Þ / š¨W)3v°™ÉÇ‹#¼´ÎÍæUá_ ×k˜Y³¼Š'ùÆ©ë»1 ¢-cKÇ6YîäZEøå~Q!Çêr˜^DÛxœiù/ JŽzaÌê µ ŸˆµÁËŽRe“õtÕþ˜‰•=—ŽBoSNñ0ß®.q½ñ½Æõ†”ŸD$VCW“Ž=ý= ÉÁ÷Ó”a ±9z…[͹2j|8ÅÝ+ø[s7~ƒ“÷îçtQÖñN¯‚‚|„ý¯¨îŸûÎ×´1‹®LáÏÓ8ÏiÓlµÝëO”1V¿Q§ˆèµ§æ¡ßÔ¥Ì,ož*=Ä–e4ѹ¥t¹3•É«›ì@qEýíÜM÷×øæVf)÷¨äŠPâ†M¹0í´‡´Óܯö8¹ú —uù5OŠAS¨dà¥Ø÷¸éË®™öî7cãNü”¡Iô±271A¤oKóƒUš ÁINÓ~^ÃE':Jñ~Z%™‹Y2BÞ¨»qB~š-D_¹?ÛÊsÑíí⦛˜±Zâ1Žx¿*‡Á57ý=Söªf¢Ž×õëV[ÚMºâÒ6¢ì#ø¦¿ªÿ#K£×nP[þÖ. {Öu5ÆÖAÕüʪ•ë‡Ê Ùåî‡wÞèÄ\2l«N‹ž:C!FÞJ˜<)tõXT‡»êÆdC¬z°Õ;‹ûBÒ9:¢Òma ý^á¯#<=M+Ž2T {BFDsªɉž¦x\_c¦=Ó7xÝóÚ'r¿I£!3»ïï¶wô¼¿ L&ÞuñÐÃ<·SÌd>–ÝŸzFýýŠ?ôã}-†I~â`ÞsÊûE%ÝÖÜå§ZÚûÑZmºÚ.#k¯Yzv9Êjùäë²üæ¢håšµ91kzäX5?VÞ³öžv ß<÷XÊ3>Ÿ˜8†èÏCšI.ãÝ /~øÅ`=*ŒÝúêsá_…L\ááóÃ0VeZ×ë¢VH·ø.ºu"ÜFiê'Õ¹¾Ù›Mš¿f”[ëmV2 bæ Ù—â™–°&dÓ(IŽEÃä‰ñAÍÚ’ï}n…6¶ixº~ha`¸wVkYY^ Ü1mª¢©²] «Êt|N®°h6Ñ Ý2n}_è6ÓÝ@MÅGHÕ:ËDa-bžÁFË–Í ýHg%Õ…‘è½è²Ðcütåêž}¸ò‹O5wèËuƒ­WøÅç âE¼ndrµAyâmªÑTG!R,Ç(óØŸC|‹ø+”6Ù8’– ´fs˜mkã°h|*»sA †3~rɘ<‡¾b±rÊšÉ/âØa©³Ÿƒhôö_¥¿¬aï‚„ÉÎ+ èì%gÝ©¦UMåò¥ Oˆf÷Us¿/†ØPq³t¾ÊV·ð–hc›å÷Þøð…žñX±lJ÷Ñ ¡Ë›ša6]LHª e€ÒÓ-z špmV$vŠŒx¯’­øê}ëK—<lRß¶ÄWËí—¤/=È'Ò î 8)ÿ\#¸^x —º¨Áç/Ûïh'b¤ÔÖ7=à µÀŒžȹÄiKcôÂ7Šñ¥œô79JÓm:J\8ø’'£í¶Z+­í†ôy5œAvpï“·‰‚×™û”É–ˆÎϼ:T¿©B ȧ>?¥O‹€«‚Ä8wûe~ŠÆ'ëÖ]p0å,©´¾lÒ3r~ȲÑ(ˆÜ˜vº1½ŽUDÊ6ißÛÀ‰Méóf¸°{¬ôò§B¶ïøH„GEsµTÄ'Xöu.g‚|wTÞ­jc ’⇮½”;Û< °ú•鼜)Nä–/èÁŸ‰Ú?Œä{a$¥Ù”šÕ¿whvS¡ÔN’.)Ï]±úCyñbWÂD||ÚÚ†d‰KVjßGRáÉ0©ZËp¼™t³ân@—ÏÌp¶âšŠQÞïäA'É>BUO„Sª¡­f†Ä-»…[2¿·ÀôÝ*NG¨C'‚|Pd³ÿÒ —upV›¹ÏÊ­éÎwÆ@û±Ž 2°ŒQïš>¯ðª7¡(‹ž ÉÍü$Hè¡©AsëǶõ>•§’V*ònºS‘§GßNæÞ"!M2&±ÉR$–ªòL-ªJþâ’`'ÁbZ.û |P, åccí ŠÛÕ}ŸÿX¤ãÅW†1j‡~'Êc­P”fÚÎÙÑNG¾pÿ¸~Çáv"Bû®ôN'¶ÄGåBé’ÝME¸â©}å´uUíʳ® òYéA¯ž²nÊN®€ÂÓô^÷úç–At˜tÌ£YùIÆ\3zÂgH{ bÑå f`ÎG)±óÚùŽT¿Ü<>ÝrÏV§¥Ò ¿(àÂÅÔ.{rX]dÿrxû,q 4j“äìd¥?Ôާ‡Þ§´õÌë|è§m·Â•w΄Ú^8õ á%ÀÆ…85w_óQÒ•b:±‘BÇÅV‚pßõ Óó}hö¢Ç,©2*üxP!Þt÷fÇ[+ñ)î9„¿+t’›ê{ò0óÇb}…w/ðï-e1tžëŠ:øÍ_“a$ʇåzQݧ¨‘~ 7ì´’ 3[o@M×_êðuâÕê•0ÓR^ñÕÍ>uvoýÙÐ*x5pl{ Œ°q*pé2Òü(Ø«­ÕÐÄçyÌSð]bèÝS½ÆçM Ñ‡šD ڀ¢ íq_#¢ŵÚw¬ c½kºÙg‹4p«Õux—r?ã94 bÖ·ÁŽ•åc´Kö†‹$žømíPê0w6´¼»fRí60ûúM¤b¡¨ ý[Æl¡- v™Àÿà?ÀI endstream endobj 112 0 obj << /Length1 1614 /Length2 7900 /Length3 0 /Length 8944 /Filter /FlateDecode >> stream xÚ·XÓï6. á¤ݰÑÝ%H7 8Æ€!lÄ(éNIAB¤KºAºS$¤¥iÞé·ÿÿu½ïµëÚ>÷9÷9Ï9ÏsŸg3½–.·¬%Ò¦„D ¸Á< 1 ¼º®î#0ñó€@|ff=8Êö·Àlsr†#bÿ¢È;Á (´M‚B3Õ‘ ª‹Ì ‰…Å@ $úé$T€¸Â-ê<@U$æ `–G:x8Á­mPè…þz²AÙ`QQa®ßá@Y{˜ AÕ!(˜=zE(Ĩ‹„Âa(ÿ¤`“°A¡ÄxyÝÜÜx öÎz Ôt€!þ ?þƒÀüsw€`ðßéþŒþ•Žø B‘ö„a ´‚ÛÁ€šJyPî(. aù‹±sF¢ã!®¸ÄMø];¨$« „ [ü³Ag¨ÜåÌã ·ûÕ$ï¯4è}VDXÊ#íía”3àW} p'½ñ¼ïsÒ áù7´‚#,­~5béâÀ«€;ºÀ)üIB›ÿجa(  AGÁ0w¨ ï¯%ô<`¿à_ftÞžH º˜7Ü †þx:C\a@”“ ÌÛóߎÿ" ´„CQ@ ˜5ø';Ú ³ú£%àw>¡‚~½þ~2E‹Ì‰°óø‡þû”yU 5ue9ÿêùo¯œÒèÉ-* äæÁ aa ° (Ðû¿‰´ ð? ùWì#„(úG½èú«f×?eÀöç°ÿ›K‰V/ ÈöØŸ‚APôøÿYò¿Cþÿ”þ+Ëÿ]ìÿ[’’‹ÝoÛŸŒÿb·óø“‚–¯ = êHô@ þ—jûc€Õa–pûÿõ>BAÐ#!‹°FËšÌ÷‡î¬w‡YjÁQP›?Tó‡]ÿ×ÄÙÁ0-¤3ü×%ƒþLJ3èsôE⌖æo =Eÿ]TEZþ7>A! ÄÉ â@5 =Áè¹´„¹ÿ3—D¡C€è½VH'À¯sòÊþ2ý„¼òÿ  ¯Âß-^õÚ§ñòjþЂã…üƒÐ>èßèW¼–ÿ‚@^›At9ðAô*vÿ‚èTöÿ@ôó:ü yQÿ‚è*\þ|` ¯ÇoøŸýƒº89¡¯“ß:Goî_ø÷݃¹Ã €™I$T<ȶ<èÓéGYj7îµA ì½äS#>îÁ\3Ãcqá³ý*Ý›¼ÔÖa¶;c‘[yTp,·šŽô“^§æé3§)ZKcZ){ªÆK/x´¹–yh³ÃJÚâ*éòæ6¨¶ºÔ+¨vŒÔˆœ§/7é %…2ØLJÃé.{Ç™®©¦õEA²åK]¦X޳֣³«ja]÷ÏÑ/ÞÆsX>çÙjLøv…÷1tl›(tB’Š6yà¥õ‹x‚Ëc‘¸ÈÑŸ¡%¶Ÿ`tzîœZý¹Ãõ: ­&­wñÜMƒ2É iXZ¨—Îo?N”]r-Lª«çè&6R /öÍÇÿ,^nÆfpQ¸Iå³ÐËcH¾BŸÃk£ýöìÚtl—3{†´ëæ–î›–jå<]þL‘A7€¯}/Q\ÒîóÁ1@ÀÀQU@»såлØ'ÆOƒM2•äR“„b ý-%ÇB+Ìü ‘#ÔÛ¨n~ž´tÝý±Clè-±Ñº)Ó”ŒÙTõ†cì`ÕGµc5óû½ò–ÆÑ[#b¾6]Þz†ê_‚ U½ëÝÖ$ý«ý´ï3ƸgçFea±Ë¶›‘ëó§íUÐý¤¨ÐY-¸¶õe8ýÆH’A (š'k¬ÿ±¡rÿåt†+ß¹1rÄ\ÀûF¹ ÓÅÀå¥ Í%A…Oü³D1ž®¸ïÿª‡HÐOZ·»:ÿ"õ5*©Hv@8¿‘nk\ÜœÑÒ¶¨öRb…QZZ˯^|Óº‰|ôreU€BÀci<¼-{ÖÖ3˜÷E­A1¾a£l¨ Îº÷Ød¬ßwå¾ÙÕI¢l1[nÃsמ0þSXêÄ\æ!©aî{œkÖ(Ÿ·E†RG>‘;òaià–éuâi|%EvWUŠOŸâwÍ©³ÝQ’Ú6ȉÕó”lƪ¦\|ÀhÕª|vÔHÌNhAðÝ[ÞŠƒŠoSžRËñ£šó[ë56y"Š„ù_t½¼éö5Tf·ý†_ö¾'ÕöÓqjîó8?¸ïúÉ£fÑ—n{ «*Ÿhðͱ†l©Á$ɯB8tk¦V¯Õ7^7V¯Íæ_Qµõ:ÞŽ†óÔÌúGavG¤Ùì÷¤¼¦¯cÐV¦º•b¸bíà‡–g_*ï|J }ª ÚÜj{z’Œ§!;ÞÑß};¿&»ÚbFDN«ŽÀ:I\$ûr0¼þ‰š¾jñ7òvï/ïo[s½Î{Ñsœ-¸Ô¨MÕ2zB€iÒ|–äÜžŸ¸³!*`(úyÍ:ãäÂÅ—¬fìoJD|Ùèoô¼ƒ-:ó³yîhÜ G¡ZI¼ ¾qkŽä}>9:G0©%cÖÝ”ù‘-«¥~®wÛ•r÷M,a]X-3ûžÇ©|‘¬%DêèüPü°i¥!õ,S¢ê«þZD%QAõûe|¬émZZ9°øP/µÛg‹ó7û.yaN¦>h¦Øî„€{ƒN~ã.›Dâ]¬>2w;éÓiÊ|‡´‡ÎÄL¦÷Á³\v Ý]Ý>Ò ˆ[Y5µÆm” wo®ˆFÞäy.x…^Ö §*¦Ž¹{x3IØ– ”R¸}WôÓü‰·Àñs¦®$g©½Õ·w†k=ÃÜ×þ|eÉX‡×%rÿu28ºû%CïfÌPºÍL““ÿ‹9ñ!Ubô”®¦쯼áùeä1×KRUÞµïôR•Ò}HcC‘#XÕ¶Ff¦†-n Tôi·l nHmîÝ2¯4Ë—àîÅÈóMÇøÆ2ÔÁ²1pBüX:€LÔmKàf鵉ÉÙèÞ‰ÉÝ´*—*nYù‡bl ãüÌ6’¬±tÛOX „—öÞÇ¿`–©d{¸3\×vz·%§–påb „ z`#Ë÷$‘–DÉ;b§ºýv;U`︶¡ÔMúÐr…Fx«8S¿Oß@†4gM8Ñ«©JᬀñÀÚ}7F–ןd”Ƽ”Ž( K +i¿cÛ6îs˜J]™z™jŒ÷¾mˆJé㉽`ö„©¼r¬Œ OòZ»ÇW´îyCîùì¨ä€rA$Í!*Ö9â¹\xÆ:Àúd|â@X+s¾4K¯T2¨•p2> á×Ö½K‹C§®ÜöÔ˜öã§€Á±aÛw,-^þÅS¹Ú X‡~î<¼ú;‰c/4ªø^õ›:ÕJ)ýóÚÀþ* û„óBš2í1ÿ Q MòU~5//ÌÜ¥|ŒeôwQ»dn!½Ü Œ¤"‚Çøß&ž„Ü\Ñiö.ø‡˜Ï¸j|_ßÅâ²ZæQÄø [³ÈGdÝH0ç~ʃIrâ÷ƒNåvºvIA0}«oýœûq«1&Ç®V85¼J„d~.¿1àRÌzþ…ö‡‰¨€|±UïßÈvÎúMÑ– ÔÁ7Ú”8¯ß#ÅT•®ó®óã >f·‹ëoIÃa~‘c÷–[/ú9å¨E3ÆRßa¨rè)"~h¤h–<öêŠ]ÃË<;Ê¿vôáö&ÚÅ¡m†TN.Ìq6év:¼;Ñqg(=†λ™I«ˆsg–Ló7,ùQݴΠ*˜-9ðjš" soT¸2 ù—­!ë•}œûWx ï, Æ ´Iʰ ÿd¡NÆé †£üÕŠ¨áïÌÆ£?žl Âp8•Š’ü;*²Á~‰j4ñs”J¨â»×K7IøÔÊýãw¦Ró*è¤%K‡r<hý¹XïôS5|Â%ἪÄÝ|HÃ×Ã+i!“2È3_éh$(‘5›bméD‹Q‹öxøåçó‰öÿ-¼páÛ­Wrº‚ûÃmÄyŠýR”¬ãJ¨/j§þU“¦l£&5§ÓÉ÷Ò›©m4έëüˆYÕÉM»ï6^k¹®?Ž%_'ÖØývMþ±jÖòL2H±1Ï’[ faÆÕÄp“¯¦«A›É¿”')6E|–Àða&>P“¿@ñ»‡þYÓ«8)sYo±Ö9—Yê°ÍèsÛÛJ­œ‘É+üï¹^}ÿèb;Qç~P4Øm@r0oWWõðŽ­RÑâó1ßx÷”~5Øç‘ãëÍ=À÷êRrIÆZ< ¤Êwx¨ñ§ë¨æ°{¾yÀ,j$„àœK¶§Ôhûá©+gÄë0amRš|y®˜›IÂþöas«¶;ó@1bx° ™ñ¸½„#zkݼs&{W!àÑÆ¶ßb0òö8ÑP×™ØÕ‰™‘6ëçÀK<'¥Š’T™åwrfc>6ËðÜôg$sŽÜ%×§Ÿ|Nòù*‘½ƒ³ó™¦ù³‘E ÂYÍÏPbåÌŸñ÷J)ï›qÉœ&ð,±Ò_±E‘ëû^b»­•¢á\†[9£pa¸0‚·ÃO„Žé”sUF8Ò›aI·%øÈUe¹Ô¿ÿàìtÿ€üÊãÒbÛ)ñÞ†µ 8âà¼é,<鳦0î·<qÅŽ&¹êáÜ‹æ#ÕgÆ µÞDۀ˽o}Q»]&¼!î¾=8BHk…S1°´¨á‚ãC;È~†ù”TÏy‹æ½£§â­?|^±WÚ«€ßY¿æ$ÈìîÜ^]¦°÷Væz#IðƒÃ…ò,D1úSe&}ó=ÌÔǾtÚµ„;«Þ¯8Þ;”½åÈx+fÔ“t=V¥Úgµ¾ 8=§Wê«ýl­[°l­µ$¿ ,Ø/¿¤úYÄúÑâ ³óvü"DŽØ:²!Oõ©¯³"q§ÅÊݛç‚d’'›z‡ÃÑ»ôí«åVÞ?¥ñGÕí­sž¯Zƒô¢xv@- h]ôsÒ.¬ÀËTéÚ)4i‚û΢×}ï®ØÌ~NNÂ+ÚD­ç´ðÈã p±¼Aö#ݦßã ƒP'Ï݃ÀEŸ_ÒêõM?°ÝO•Aóì}…aÜúyÐh-õÃyh½Åø›XU‚®d‹¥ní·äî;η“t:§¸x¬ÌâHZ|Ìû·ÖVbñ2C6%À¬Ål¶L§@ò .òjnJåp€>%»ãÊý3b¾£x³ÜÍ aöúÈ ŒL9uê¬kuæðØÚ Ž kQGÒÕ'FŒ²\7]ËÞV8zônî .ÅŽÖ'¬qdOIºÍ}˜¹LX+ ÷HgHB8dí“8ÿ­ã~ƒ1ÍvoC‹!ý„¯ðÒëýóãÐó!N#îó@òéý ‹§ƒ÷ôô–ŸïÞàœÅ…É.Ö vïµïÑ­¼[ÅZdÕ1&˜ÏJßúh1k;Ž%Ò}ýÙ„Xµn£˜…=|]NòN2y~gÁŒaˆ7›èX¬-2¨¦þæig¼×ÒÁÓÈ&ã$צòî9­ÕÖí<©ó¹Ôùè=IGŽ(ñy%¹Ÿ÷Í- \–¦&ºÈÖé88••Ì?¿¢2’˜˜¼U2¯,¥vµnY<ïËÁE;Áƒs<â¡æ1š(­¥"ñy¥9+XOÂoê)I{¦)U·in­|+o$ Uß=ó¾f•4¾ß:£GÉÖ˧ãbš’ª.…Þ²Õ—RŠRŒÕ°OOSAYÒó;W›í©‡¬1cz<7'-õsÂøç/)*ýt ¿¯˜ ®•:xtÓðWŸu1¼a¶œŽDöfÀ:F}? hj‰ïÊïë¬ñŒùðÇtñ´ã„”N²cá1ý¸­ïï’5ÛÝÒS>ow.Ó¢ Ñßþ|¶Qkq}I#gô¢„ž©'mzá þáwú(=åû!†f*aÑ÷—¢‚Ûú,×3º¦…íIÅø^ŽÎÞ†'ÆÂDå×R^Q_húîßXÞÁ³!zà_ß+*¯#¥”_è )9”˹žŒÆ£¾Æœì ~àkU É‘xg*5:NñâÞÐÉC‚‹gÏPº/ è.I ‡ø^dÓ:Õi¹ÙH÷À{çRpŠv †z/}åSµ ïvÍ#;R›í3û]²¡˜û1OT²;)°£˜Ð¿ŸfŸhŽ/•3&SO)l„&éȸ,šÃ§¾¾»ÇÿâýZpaó™@ò˜¿ýÁe,Ó‰0þUØC< ðÝÙj­Õ K€­Õ¸µ9JrÐ*Yrö¾j\¦&wáÔÞ½{Óíû‰°ÂYÞ¬L¯ŠF\êÜòé$lîžö†Qr;cAï¡Ú€vGE ºæâîWFXV)1Zp`cý‹œ&@©iµ |¢Ksòµ¨ñWãv«ÂjT#n‰Þ•õéð¢ÁÖm¹EŒ´<â…f®ï‡é%޾xÙÒ¾ã}=îÜ/~¸óx a¿ØœOwÒ@FdõzÔ¢CEˆÔüQ¾T€[n‚KçÜNûYqIÝÇ!ÿ°Wb,Ž ’Ó/´îmÙeR7…u5›c»ƒ•èwn!ð#¶väÜ ƒØ³t_{ÈjŠ‹Kˆ *¿õûá ðTQ¸¹ä¥2äc¼ á”Ò†*zÅäTÙÍLSûfÌç¦þ”×Ò˜ e%û†w¤¼fqÓ«ÀÿXÆÂÀG,2U›¼`L|yLæÅkpBJâèO}صȼ³™6×™àé‘pÎT%>‚ÀÖᮥ ³âš…½`«{ÕçÖ½>žEœ“ò¦ìz€¾±0:³^6—ümûJµTv0½6…åPp…Áò¢[¾U¬Ñú‰š¼9÷F|áD7¦wK!ůW”õvLÅÕÏnîOXøI¿¨Ñ+qߺÿÑ:¯G@6ÑÍþüHR:؃›ÇYM;@¨y¦N¥òŒ[ƒ£9„ZM"²[ª>"tƒäÑ;ÂO?[LÂØè˜\ ÆfðVÞÊÅâß@’ÈK²) VßÀ–^ÂÈÊDìýΆ:ŸVÊÚá¯Ä;£ò ÷IÈd>öó¤ÅeÙždÝUÏ<¿J4_(qxhÆTš‰§Ù#ó³’¡Z9鱞cL–ƒr.ê?ßg­ˆyUk‘¶Ò3¸ ñ3 Š{£Ô †ñ7(Ú¾U]}¡¡ªðSÕú3ÁŽYÊóÃĘ-¤È* 5­DIcÉ /ñù€l'•¹@C ›)0ÍMVŸË¨OƒÒµ@(2*¡¹ØŽä.Ë4°kè™`CHìýnÓñ~¾+9CÕÁªÌ …¥Ù/ÙxØc²-ù[ýn†ßMb;¸l¤8tÔ^‹-}¢ \À ìMË`9)sìñ¥'øzvV÷õóÝ>¥ÔཆÒ7-WŽúÝÑÓþoº…½‡ne­0OÊ0E-C~Ö‘K=ã‡kŒÓ68UÖ‰·)4.‘åüËï{–3L쀜Fã·œ3 _$¯8—›ã2«`ùâmtq¢ÜÂLèó}8ôeîñé'”‰Ývc=ŸcÕ³o¶ûp_ÓQ×åM÷×Sõ»>õ"²[±·-ðàlI˜gùÌÐ@ZÌñå뙬¥Ðž´9À­š¹NšS¤80—ŸG x¸^–Õ=P©}s„g6 2w¦ØvqLAaHd¬y¾'И×UË q%§Qûx«¡ìë­NLãŒÃ„*LÞìS6ÐâçÌÚÒqõ×Téà#ãçÀüTXk“žÊÖ+üåìϯÍ…bãG}ˆ\zYWö£ y+ç»ÇÈÇ{OűyÕh KÞÑzËõ´"q\˜C{™ –y{G1Vl¤^#ƒCÔ§Ãp lŽî|?1_AgN½´ñiÉ@:WÊó$Д0¦8J7éëŠØ¶ï½þ)¿Ng8ý´ÍÇÈxË€ç¤2nL¯„8HnÀ1p¥„oþüœ¾®ì‚…Ž£¼hSÆ2$ìò¢oMø}¹[HýmÁ;ê©Õg0Ky?bÁˆáÁË}/Š)ÖôÝ÷83$Ýí¬pÿrX6˜Hï¬EzÌúuÍç­•€‚ùu"ZLJ®‡­’ûÞ»6ñ ŠWVçæÃ#UŬæÓt¿@e࣠Óa3³®aDr·O õý)j¿Ü7znOáöÉsŽËêmçЇÛSÖ0Í”û(¬¼´€}sô™à©§¸ü¯‡‹æ¶ ¬—wåäÁ4&‘q’£¼LùwYž¬O·8>ÿл›·­À ¥’D%:ƒŒl~R|“ÌÅÔšÒ~´f TÝnÿŽF¿Âad‡xžo\+|Ò˜>³¥Špù I!}²Ÿ‹\ Uè5Ãwˆ"ñÄxÍì­d‰{%è0S¥a-âµLV[R…Ås¯í˰ ¦³”eVÊê\Æ.&‹4RÏÈœ²¼Í& û8A-Ú†!âG[î =+—,:nž;WÿÊt™ÂJ»äñ½¨ƒý^’RÆãôÛìô{¦1JÕObÅ,ÍY ³VQeÑ9*ù`=BÔ™ÒUÛóâ»`ŠÜì÷M5xKõEÉ# 1óÙ–%\›H"ÇñVXï%ùÖðFÞÓò‹ž,#a‹ëPi‰‡ZŽ_Gëƒ2í)³‡ÈýÂ&3+jÕË[éœ/’)”Ýݯ+O§)¿…ñɱȡ|³É™^Bô%e_iS"Z˜Ë»]¾"ÈwrªCnô‘t#¥ )ÜÜÌP·7“cÖ„ªÀþ¦@#Âz>ƒÔÀ¢'îfM²O÷ËXiX’å諚Yc ãÒn~pûPÄvÅ´5·:½dŸ„i¨ÿ—Àu_ endstream endobj 114 0 obj << /Length1 1386 /Length2 6039 /Length3 0 /Length 6990 /Filter /FlateDecode >> stream xÚxTSÛº5Ò¤#H7 ½& ½wÞAjHB‚$t^¥7éJé]©Ò¤(]zQA^ôxî½çþÿìõ}ókk͹÷ád30T‚¢`ê($F$”¨è[‚€ PT!áä4c°¿í$œf04…”þ„Š ŒÁÚTÁ,P…ÜóD@¢¸4HBˆRQÒU° ÐÜC!ahN”»¯ÜɃ­ó÷%€ IIIü(¹Á<à0  Æ8Ãܰ!`ÀÃ0¾ÿHÁ#ëŒÁ¸K {{{ ÝÐB('y^€7ã 0‚¡a^0(à×È=°ìÏhB$œg8ú/‡1Êã ö€°C¢±!žH(Ì€­0ÖÒè»Ãuþþl$úWº?Ñ¿Á‘¿ƒÁÊÍŒô…#Žp  ¯®#„ñÁÀHè/ FaãÁ^`8ì€ün PW2€±þ™ ñ€»cÐBh8â׌¿Ò`·Y UA¹¹Á4ɯþTá0vß}…ÿ®+åôÿ{åGBõt6EÂx´Tÿ`°&’Ûœ`€PJ\\ €=À| ο ˜øºÃ~;›±3ú»£ÜŽØ1`pGö‡Ä ö‚0ž°@ÿÿtüsE pàs‚#Iþk†9þµÆž¿Ü`ÄÒþúüëÊË0( ‰ðý7ü÷ ›ªiÝ·4çÿ3ò¿œÊÊ(€¿ ˆ@PJ@â 1@à?ó€áúøX-¤# õW»Ø}ú»e¯?àù#^À?sé¡°Ì…xþMtk ‚ýýŸéþ;äÿÇò_YþW¢ÿwGêžÄo?Ï_€ÿÇvƒ#|ÿ °ÌõÄ`U ‹ÂjùßPsØ_ÒÕ…AážnÿíÕ€±jPB:a-º+¼û—ŽV‡ûÀ p Äù/Öüe7ý¥7 3@¡á¿î0Ø( ð¿|X‘A\±w4–š¿]0¬†þYW AA‰MDLöðû’`Ï»øƒ°ª„Â|~“ ,„Da°!ìŒG”ɯƒƒÑØ™áhWì98ÿr’ü£ÄÓë¶ßLÀVÿ{ý[Ú0˜ B2?‹‚È„»¼ï8¯UbòüæPæ¬âœgîÕˆ" zñéXõ]ï¯t§Q¥eg–:¸ Mq„ÃDm¿LПÛÇg'ƒDlÒå’ƒŸž*‹ XÝGÍ.dÓ4Œœ4Zxzl.Ëž#w„NžöÃ+-n§"7Z^w ÷Dí£8¾²ÐN…$Ytfo÷m%7k‰¾¥2ãSÇÔi¿CuÛñ&æ'Näã´wiÈÜW”š›`O4¥(4¡zg¢³Ž“©Gl)¡ð†ô {x1¢²)Q¬MåãmŒ©ÕX§ã¸…È£çcÓñ7RÕ™ÌݵwÛF½=÷”UÔÜsR¢«ÕºÁ\Rþø¤ÑfAªd'’Ôdà‰ÆP‘Y¤޳cÉBA{®hÛŠãQK,Uýw ÷ýÓ^æ4muÌÂ÷ý gxÅ¡ê’?¼ D?|¶Ðí«„ê®ûúp{ÝÆü“j¨n+A´åݥңȪ"ËÄ™7Ejû:—"«v"­7ª[ËQšéþ$ [>S 7‡¶¸»;<ÚQdç§ßÍõn³e«¥–ìfµ&NãÿàJ[ÍDÜV¿¢³Ò¡Â5r=gUÏw8(©äB©œÛJŠß÷ð…3{9Î ÂøÇésu·woמ!˜!|‹Ñì_«mƒŒª¾ØT¸E®Q¾…—†kWèM%°i݈{1ýâÇ:ý‰ÕO;Ì´¹LV÷›ƒÌAOEž;¾7¥4Ó7LŸäú¬žœ‚E?«—!ðÒ»Ž$}𫘟MaR4Í•ÊzªWdêÙÌ'~’©´ ß 3CÕ?~ïÕ–¿“¢ÐSŸv[&-·Nn䃼@øÀjie—5{å·¦ôì[“F»×½ŒTÒçŠñs UIȧíòéFr):]©éâëJZ綸õYÞóÙ4%P­!M?WÈ™h˜Ï$ÖØ¡ãaS­zGí±òQ4cé×QËšŽÂ]á¯W‰ãV…­?æX[t8õ ·³4Ã"S©e ¸î=yä•<#0ÀÑÀîlZª«p\¿­°œêÎ7.áEþî–Ü{:pUƒ"Uñ™^Š˜í¾hzŒÉçzIǶH£¯aITX«>oxYPbúË'yq¸é³ï)F~OiŽŽ7ý£&l©T?Ë®ùge­(§lÍ~90ŸqäV9ò]\©µ|>ý\ÑÂ*™Z‡d”xÀÆðåšvôÅ]W}¹[»?+gM)e Pjo}qÅ}›ÅG.AôÏj`çì{óØÜÆ´5ª=ÔöG3WÜç£C*IDzâZ3º•+<ü•pÒÊŠ-o6›Éç¾`0ÙîrÕ×ù‰úeºNcöB™Äô O[ã%±Ã,qe9ª÷E^È÷Y&«DÕY‰uãì“gå46£‚AþÑ“CŠÓü˜³áä×.Ë!à1wäÐûÕ†éO3þdzå¡8{Μèo›ûùœÖwËzÏèB×>W™-¬ †uƒË³mŽ7fHqw0…ˆÔLgJñä+ýh¯»R£Í7õRIÆ[<ƒ]6C÷3âWILg­âg¯dŠëïglt¬yͱJ¹’úR%Ð5j¦øºË0ª½[¤º0ì‚r'¤÷Âmª>æ8øi¨(°s†À>{³mÔeŒŠÇlp|in•¾ê|Ë;Ô™ vgn£Ê]Õû¹›I°µ‰ôµŽ0S?€ó !0j¾›)nîÃ-R·‘ˆšûŒ}E:ä’ã/çã!#G㨛ó¸U±9:šÅoÛ´?5åófž>Èç÷bé›Þ?Ú^\s„ÆN÷MÜ¥½ b=!ÚŒà’‰û8w¼nâ´c\6ôŒªð±Î‚Ÿ†'Ì2,¢ïÌUϼÑòå®úœì†r`}Ʀkýû^Â%£]ž…™q[‘9NJ ®ÒÅåŽ[x;NÜÅ&"À- 5ýz§ü.ƒáç6ÚêðBß<š€ÔįÛÔ{ü“ž°ö¥©5BÞ¾˜ÇKÑØ~'\}ÊB·™‹À»Ð„eGΨ4lzé}]g×$-Ù!ûJXoÓ*Tº•ô2.?`½–g­Õlæ`)V£¬ !ªíÈd~ÓoÑ£ÀnW?wÅÝ‘H ]@ O7}oz]䃟ð‡ú¦y¿)Þûá­1ª×Xî R|[ªíº7Å2Þ7þÞr¤4¸UE]ÿz™a®Ei-­õU'ÑU7¦yYh…câƒÓ-b‰0ˆákxƒ•'–8–táx».Dѳžk‚x%ˆÊáìñ½{¡@–¹Ÿ! •½f ðnjê¿£uÉþ€îbyè•‹¯Iv|Ho£™Ûà—ÇË Jß8© 3$%ïͽl˾&åw½ý³I´Êbpæa[rfäõR ßîc©¸ñ­G…(—Ó]íS—Â6!b‚Ñs~Píì‹Ò^­„ªÎžá}<ѳ&A$ê¸ã°“[v²s‰&¸>'+‰ãS»óuð •áo£R!ÏñOØÏ‰m"šï)ª gúºKì[A½!»£Å£Õ¨CÉÄ~moC§ñî¹| [òP¡ÙØè¼±ží:R³˜‡Ç¯¯.ÎÝÈn"Àcd6œ7w„ØKì“ÚËíž6Ùƒ×Ü_žö'°¢SpÅ|…,Âñ˜§FŸó|a.2)ÜÅ)9…‚´ Š\++ßĺ| ª,"bBýnUhMïEëœÅ3Æ¢QŒ–/°¯ë©þô˜~«Ô;ÏXÂT悔 Mqw¯Qç«,;©[ÌôÚóП†Ž!%7žQMá9J…ñÕ0íXHŸt­ËvdKó.ê°8âŽÆÓöJ¥pS\døYüiÛQļ J)N½µÚ|[!Ú=¸ïÍš¸ýæï½QbYà%F~=¿Q?cÒ‘FÕ›•ô^gl‰üÞöÞ᦭*¼ìÒªd_-›÷¡E¤‡íàæ¢iÔ÷€œŒ;ßÄÌ·'Mc·„ž]LÈ]ÅecßgzÄô z 6ÐÙR¥¬ kŸSùHXøÜ•‚j^ɸTŠˆQ© …JäœÌ¦ìeÔ4>žc¦ ÚV/cbje`Œr—Ûbq…Ø™½a¤ÎŒ ÝäÁO`k³nî‡_ïE¡këV2B®ìö·”¦‚DKW i7»•YÍŽrìK©µÑ%¹È‘<²QTnäù{_¯±£=+Vÿê4Ý]7O9kc-gG©¬’z¹óÁ‹ñýŠÛK/'ï6ƲF=Kšø znàHÿ–¸êH`Ö¸¿@üxµã:óg¥VÉ_yÙ"íh¬ûë¸;ÈçLƒãª€)¼xk\(°°uìÆ›´æ²[Æ»ÔG³Ò µuÙÉ¡rôÕ¯Ùn]»Í7ÒY!D ¼îMÐc$ÙÆ£8?ÿ(Û Òҩثǥåö8ÿãSy ¶×né°ƒaÅ1¹ùû”™ŠæÆyžä[×[3É×e}Ïsõ<ÉÀi„[ÅeýB%{¸½†â¾h„È ÊW%-›(Þ[ºçAMÆE_®,3摌¡ñY‰3\e|¶ ,ƒÉÜEŠú ®æ¡Ù¥±þgϺX'wk©¯¶æ+øÓ äÕÁM²…}¹ÝvвY¦›!Rîlv]¸¥† 'kÜ%z9 {Ë×3åÉqûËF_ºØ4P#D-äïú)Ì«îËéG\ët@’±Äû?¸å`É#Ï>/É·ñ¨khÔµÌWôµ{Žó|£¹ÚC–¨ê½Òznó,˜´“)‰vúÄ_-…v¸¸÷‘wÈ<Ãr•­Ùòº3#&÷ÔÏ•ÃÕ•Ãæîv -þ>ı¥ð{ e» ¾y†âáÈÑѼÓÇî·†5OR ¿dÅà;,—Ñ »]kAˆÛáª\âÍ8]ÃvîÓn>ºËÁ&ׇY¦™8×Ca"…r7Þü‘qÇãÖšÝôå•¢sß;<«5öœ þL”¥l†¬¹Â@.ô’Oë±ãºr%Ռǣ=µ¥=+Ìä‚“¾6s¼áSŽï/än2~ }—«°U…ðRÚˆV0foÍ0Ïàpòéj2÷2fmç˨@Ÿ.g^òpïd¨Ýt¹,P§b¤ìކD Y0é»Üg+*Ömî¼øÕ¼§?síngSñÖÍð´~Ï)n¼¡«ÛFÒXNö`À‹«©føLe鳨N“Î}t½·‰§2º£m¼öÜ ÿ¿`^uy¡é£Çuê'¦çìíÚc‘‘ü•S–]0 `%Oú)ÊÄ”­Ó ãäJ(õŠšÇRK0)aÿü䫌ý íú¥ "Mé†çO–-5Y@©+횃þ-ÞaƒF¶–“Ù ä$O8ÔËÞfhªÎš1*¸úN>n½i°È©.×Ú38 Ep:Z¨¡=gà\ÿP¯Áª_kØn+:X…hß„ÎoqÊ‘xXv:#-î"äšý]ìSY 4{»ãrù#‡} 1E(áBuY0ÕŠžˆ«cøåyOB4/ˆr«áÐky«û8Hû½¹®îô¢¨Â»ÄørÝC›oÒæ 27©¼n'EPf^·X‘¹®|;…8¦Ô‚&QÈ`YKF¡€ÍäY4@èF3šnïÔÔfíyXŠÜ¤EìÏ—)b /cƒ=‚u1ò¾r5‘|«!*x]mÉ:1ýLJu…î¦óþ’ô‹£kÖÇgsCÌ:!¸Ûa…©\ î©§†ŸŒ¶ÓÝ…£ÉxV™fO^öÍz™ïŒÓ3z¼:Gö/NTÖ+tß kNQg7ªʯàóÐ6œ2°OWNÊm‡ 7wÃ|P÷l–ßU°½ñ¾×ÿ(ø(?³=$Fµ_d¶2R^Ï_EUÜ\Uýò‚E"¶Þšý|¶|Àwýóp_*¡IAœŠØ…†‡ÓŠ)A¥ØŽÄ¨Çq\µ‰Ý±DÓ?jT¬ÍIæ?Þ"+¬!Ðõú¼Äãr S¶º ;/BìæØŒÙôâ¾1§ÐŸKfŒv#Š{šP½OldÕuk"¥'ërç ÑOîÐõ¾P5ÍùK™ÀÛûÖºAyYé9XbÂiDä*Íý¬»¬ÚÑNQøåýÏzÊ×)hãrMªÒ3ÜàSvÎí{CíÀOE¯W=U#sScȸ‚/û$¥„.gKÛ×½”!üAjÝü ¤Cb%Ñ\©c‹Vù ¤Ó1±–úº´B&m.‰ÀØT 2@î"¢âfUü©R_B>ÄÕü»kqQy'îˆE wØ‹¯,%t¹´=²¦¥/Þé½—ÔAA]ޣߑ‹RFÉ“fÝab<ȘÄp[¤Ci¥øÕ$êöõÖˆ² q’þý6‡qn­yÂQ 7(óÛß%ÐC½YâFXfœþ¼ír§9ÞÌbËRë3È“PW@Ñ÷¹PH­V³ç¼rJUŽÍ‹ëŸ7øšp,£lk˜¨_ž*ú­›Où†h}˜'²£yIk€|ëªÀNŸöÓþ-ÉíLŽ—Kö¡‚R´†Â}ÅŸuëaÁù s¯‡¶¦j¯±Rî8¯áÙÄ–8ìw_n¶oUÚm‰ÈNžf ðãSî`˜{*j­Æsë¢îþ,×W|Æ©›¬º¸I†)iœó"‹œ±flvXì=Ô5S§Š]ñ»j}1—’wÌ,oPNœ÷5‹b¢š*¯Ú ]*"KzØK¾Mš%)²¢Ö‰u.ÀM°¤¦­çC‰I¸Ò.ýL½ÃD¨™b#På3pŒ®AûìkæËªkS­®EÍ]Ýu.½Ñz_|‚>ÇM`qÒÙXÐü>u"9ÞØ=zîæÚ³a¹²µÞzŸóêÁˆ éŽs}±%ƒµpï^»‰5`,›ö¢hÌÄ»íçÉoN~JëÕxdÜÙå~;BÞ å¸j wgTF¶CVc‰õ¿lÛS•º§dú·,•i‰ßRÉоTÁö®Ís»IXùaØø-Çsì“*:ÇEGÉ-t>™ÞÄŸºJX"Ô[s®s‘=d_SK• h’±Ç§è'õúÁy~{¡ÆÄj2K`³ Ãe×xlÊè¿TIî»ñò™‘ö„&ÓyÞ÷µ»ùÂÊžZñÔý•~¤Í¢Æç·¸÷᪸ŠÊnUmV}B†WQŽ9MÏDôÇ`ŒÏ¾ôq²„ìòn» ž/ο¬`§iô$ÉTƒ¥ˆó÷Í×¢Kïr3ݬk-=Éü´îmø‚ñx¿ÖA]àÒ Hb`ô#ôbÀ¡\ ^yÈ)D£íg­w³06|ýbõŒNm‹P`f&2E%§{ EÃ{S0ädÐìÓ3é)FÓy‘Éù!Pô»×©ì݆æmOÂô/O&“ïòéûýh‚´¹@Ò*-¹.–>ÌÍÓ$îlÉmKP§YÒg5œž¿ÞßPCk-©Ç¦ ç*\¼‰ÍZ&³£…ôøÖ_˜´Õ&¥’®F›äLX§?±o¸-X«œ®=ñ¨8ô‚~ÔóÁô­ñ8 ¨.æåÜì±+ëÙð"õ=`¦Yδçßœ7W@áCe‚+Ÿ37qåã¼®TÊÓêµw¥ª;?Fúzûä0| ëïëî‹/™|;‰ Á«õÍû™ùôܘú:Ãýo›) ƒDsþ =ìK-õaÞé´¨\ÅgWñ„Eá <ÕËÝÑo4Ž'ÑAuë@ ŸÌUw[¢¥Ž%R±Ó*ã·:Æñf a¦‡£€ܱ@4ÊùH«Ö¥öUöµ¨#–O³›Ùv5*©¥Î“?$ÎhÖt½*ú¢²üc‰¢¡¼Ò¦ø ˆÖ[îO[ñ“íMã¯;/:׈/ŽØŠ ýË+a´ê“F•ÑÊüm8’ë¼5w8àðdS¿iMfTöí]!×I¯çX6›œêÆJèÂÓx#ü»DúÊWGœjoL6Sssf#S"˜¸ ©Ž‘ R{:D¢qYõdü•_¢ÓÒ(Ûü0WëTìÔ6„åTÖv™A©¸êØa¸ì#I5ÖDöÐ1H¼¤_mÊŽ—AŒÆ‡à°Ÿkßwé„XÁDÃg]ô?ÇK‹ endstream endobj 116 0 obj << /Length1 1377 /Length2 6085 /Length3 0 /Length 7036 /Filter /FlateDecode >> stream xÚvTÓû6Ò)%2@ÆF§Jw—„À`&lƒmÄAéî¥ENE¥Ti‘øÏxžçÿ{Þ÷œ÷=;gû~îûºës_×÷Œ—ËÈTTŠr„i XQ0$PÕ7µ’€@@Hœ‚—× Žu‡ý5SðZÀÐ8 )ÿ¿ªh‹·©A°xœ> Ðñr€%`iy°Œ<äþD¡åjo8 è 0 ¯*ʇ†»¸bñeþõp€åädD~‡”04Ü ‚èC°®0¾¢Ä`Šr‚ð¸¤PtÅb=äÅÄ|||€ˆB»ÜøÀ±®†ö†A¿@°?“)xf®pÌ»)ÊëAÃxƒ;Ü †Äà#¼P€/0ÕÖzÀÀz"€¿wÁÿN÷7úW"8òw0ÄÉ …ð€ qp¤ Àîjè±¾X ý„¸cPøxˆ7îqÄ~wh( øÿއqBÃ=° îþkD±_i𷬎„ª¢‹¡øÕŸ sÂ_;NìÏfÝ(¤ÿ߃3 uþ5ÔËCÌ ÷ô‚i«ý…àMÿ±¹À°)œ´´¤ æ €ù:¹ŠýJo†ó€ýv‚™ñú{ <Îø!`pgþ‡Âñ†°h/X ÿÿvüóD p',ÀæGRü';Þ sþsÆ/ ÷Ø€ðÜ@¿>ÿ~º‹§…tÇýþ{¿b𿆖fºÂ&þ·OEå ð•ˆÊIÊâé*.‘•þ3‹þ· ÐBµ‘Î(€ÜŸfñ·ô¯†½ÿî_à¯6ÿÌe€Â“øÇmAR 'üøÿ›é¿Cþoÿ•åÿÅñÿnHÃËÝý·[à·ÿÿpCpwÜ_ž³^X<ÿõQx ÿj û£Y}î…øo¯6‚×2ÒÏeQ°$$ùÇÇhÀ}aP#8ÖÉõcþØÍ)ÍŽ„¡0ð_¯|ô_>¼¼œÜ刃–¿]0¼zþYWé„‚þ’™¸”4‚FCp <›Ä¥¤þ`¼¡0ßßDˆ‘(,>€Ÿ1àŒBSüZ«@ ‚ÁÏ Ç¸á·àúËIñN^h4^g¿y€¯þ¯óoQÃ`¾0'Š™i”“B轺жãZe6Ñå’…¥Ž¨D«ÞH),ß»W=Ò,Í OhÕÕ¡ £÷OÃǧØ„¾úÚvç<˜O×ÊǨ÷~VÙ-ø±×í»E]sy#“õ™þ[’1­ƒ ± Šåôi˜LÄjõÊã³̪µÜ&(=¤ãJgÃÆ)çulÆXqÝXÂZÙÒÅ_AÛdz™i›¿9#ŒÇ©´Å²þÀ}¶‰487ןóº7Cb·H÷etU8+£ŸWÞPr+SRŽN#†€OEêPõiZ"7k "œožQ7 fg¿ÿŠ„”±ßR†G^JFk(]ߺW­Ô¦˜4Œ˜~²ï—¶¾>–ë¾ÀõröQ˜µÓY‰ÿ]C›}Âe³j×-²Ìq+8³F Ï÷c¿ª ƒt‚ìñ^º‹MºfH9_"væ,‘‰>T¼?Ò0dHâçÕaQ×MB®›³êj¿4~hq±Ïß2ëIâ¼Ì—íóDÈù|kýªzúJvÓ΋DŽÒ<÷ÒÛL* VÇšK©]ìÀBˆ>uZLcK@Ÿí<‘ùºxnÊxÿrÙžZì¨Ö¡þyØ” iÎ-k)¥§i¶ºú™6•u¥é' kwäi#ÇÚŸH…Œh/)ª¼huÌà§VgŽ0ìlÉìhâlWÝR [»Å€î Á]/Û~¤-Äñ‰½­%û®iÅ«‘ñŸÁ½ ,Û‚²"“¼òRϾ–|¡ÚDÚXLÓ7ªDÅ!j¿"É$ÁYï¦&RÉÖ¹ÂÑã¾±‹F ÷lŒìî®´ÉýÌä­:K2)Ȳ&*R\t4ô ’¬®µŠzÝ1z½R“ïS“Û!g tÝÆýÖk+Õã>àþ+Ê 0öï};úê—EH09%Î&êª/(Ó¡5;&ëHhª^¨Ÿf.‚7÷Z¨d«NèúÏ凯Ûj˦ùÁì%¯ƒÅp*˃ýí]¡a§wŸU™y\ŠÆeö';¦š, ñ5S´è¾ÐG‚”³6 Élì].± ¾49òðgàÚ¡2×aV[³"[¾ÐB÷±±µ½Õ= t`”ºS%ÿèµð½ÈvN 骧—š¿+õ¹‡v[2{=ß–¼CèúmÕsÜ«…&[j~¾Æ¡ëyO‹:à§#¢ôG~ø)q3°p§/—R!%3¼§iVcü©õET-7?”«ù|œ‡Š¼6;Z¹½’¯P.äРvf#œK*'#ÙVEKH+|8'qBÝÃKEpQãò¢Ôp+d*WQ×Ñx&Á"»õ;ç†ñ¯>èaÖ—†ot3yz´5îýtû[£Ás\”-bV«µŠëhÁx­B¨ri=¥‚ÄtñfE´õùËtmDøãx®ÀoGD¡JÉ'+Ý1Þö’YuÌÒŠLEåÒúå1BÖ·ú¡Žö€ê ó8ˇ(*ºëõp[ð…” mÞ×jçÕžEï|kYŒVÜxÿòa6%œî:îÎOK¬]ú'#õDÈCîb G¶Q¬õªÓ3·6ìÐOÎU#¹­ïC鯡À¸ÊÆmì¾»”ºÇ7×—¢WeÝ?\f_߯þ-­_³Åʧ[hŽÆQ Æ?5’žQO ™Êð,JBÁˆYµÚËÂ{1ïÀC~lï¤NB@tA3ØSÙW[×Õꈎ« äez‹„n%L³¼íúXÏQ(!}dûBñþ‚ìÙ…ˆT­ÉNñÍ €¡öÞTMÆzÉKÕÒj¾§n÷ƒ’j¦âh¿„ &ó¼ê5M%«}»÷òþÏÖÉYj›lßÛ´lµÝâÅiW…‡ó-kâ¸cfx²È7Š?»ß̧K ¼{ìPå›x¡¼"G“Ë'E ú=ù¶VüÓ¥nÏ,¬~`LvWy@“kT™}Ÿ¢íZÏpîÄ7µº¡ü²’W¹o<@(®AwÎVáÛeîÅ@p̤®*8ìXyc~÷RH{βd‰LãNpêÍiçø`IA7YÊ´·§iW âo8Èü|‘‘iG›Z ç|QøîD>5&áܽì 嫇ÆP¥«\}myöž3£}Ï ›sÈglÙbÖhêÙåèýŸpNHùËõ-ÈV3ˆùŒ¨ó±š]*E­ôjkÛ¥, 0³­k3Q}ÞL$ß5pu|¿xûÜ1 ˆ:ø’f²½YËîA@¾²1÷§>™$¨&=R°hgãÕ¾¸O7F¿±ÃM.½ *\]ÕÒ›ôžl:Œ8ì뵸ÉfÛq°&¶WQ‹)Nà´¶¤Ênû?Ê={«Ð̲}é“¿5Ÿ =4(ª&uî·®ëÑ”Ð[!ÝMö²¹»%#¥½®ÁO¶9ïu™+ 䎵|\ÅÁ‘)_ d«J`/½K~+ôÉÜ™Åâ8¢î‡<%^ oBóø±û‰¾ËëVÍÙÀ·3â·oäíß }(ë¼¾»½HÆø|ìÒÊ8·Ð“eUÏíPtD¢ˆHkñ" ˆ`.üQb—E,7_G âé,¾GùjÖðF×2Ï£P³Qn·¼Š;èIe@ªÄÏŠ@-"›Üð{DsÕŽE@ôÌ•†kœ³–¯‰¬u4¥8œÒvœ½=xÄò›{§—Ÿ¸(Ð^s wÜ|pÞ¦jv`L3~äWTûs©…z¥øtõ¥zîN‰eØÑ Ñ÷ ã®çŠs.œLÖ‹ï :ö"ô‰›¸8§¸Ô¤V¬ñž½Æ]›»W´îy·7[£›ÏùN8kÄÀÝJϼf²¤i&ð4ô@.¡(º#Ð'«çd0ÍçÝÈÈa[áTX-Iù†çjª–•A5—¹UkÍö?÷ï`%ø;ß‘¦ºC n }§x_Ͳ¦&ÎÕ$ŒZ¥¥R¼×2ù½ð4q{2ôŠ=ö¾š^ƬÉ[jzZ™pJOn¢^ÉUqx‹{æ JHÕÑÒ¢9‘ÅHYÁk/ zƒÓ­*¢u)¿Þ¢ú&%Áùâ<âÃ3j—ïÙùª©Mœj¿AøŸ¬+’DWñô9ÚŒ’‚Î)‡x£×µ§âê. ÙRûŠ®ö[OqÎf|9AÌ7º“¾ÝNq1UDñEÒP'-³L[ï'=ª5¯Ô¨ö­~Öæ\Ûˆ O¾HB6O‰Û ûNŠMkëSòªÅö+ÎAÒ³í†ù@‚·愱c4žAJz¡ësš* R&í¸·°ÜGXo]-Ÿ,ËèÖš›Ó/Õ”¼p'—œËrù–%XAs& ;õH,–èÄ펥-ÃÄÙð\R^fqÔ˜r¥Éà?&Œl­*È‚¦!dæLgε8/C¨Þ‰{øB_¨Ä2³ÒWù†ø±ž M¨DJÐ⼯—šµmk/Úu¯jy±³oT À¦÷®Oå•tàú“þ{õk/ã.tEœ aØ’RÍé.‡¥¯ÞJNz?[ôÞDbÞ¹ÛS\YH/ Ô]7a„õKëI«(?Ëž8ÿâ·›I.}dáñÌc£!zçÕò˜Ôø|øs[~¡¹w'2âmv:¤’ù7v/ïÌÇͽtŸ!Ó¾TxŸ“ö1íVöH‰tË{ë*¡Ô“i:»YjÕÆwîb[áïL™}óæº¦I…˜Sè€+KãÓÓ0}ÖGfî¢3ý+!?„@P󯛸ˆòlÚºš˜o±Ÿ¯ùñ!{;óÒOi:ƒuÛ–) ãÇÆµ«?¥µO¨z Œú§ .ß}(²-Ü“¿–?EæÊòšRqVÝŸŽq©Uçø'”ÀùýJh_æ®qÑ”€63õ­‹–ë­œzj¿H½Û«¤T` ¯dê^=5[šÅ±øÆ(s‹Òø«‰”ùW{¿}£ZÞ}Ç,IØo`…÷Çì÷ébƒ+Ò©¤x“дéÝ&Ýe¹•¬ºßvhVF÷Þj æ% #ö»MnhÚ÷ÅÙôýСø#™Ü\õôéf¹@Sõ¹«ÍÖAˆ"ï/¸ Ú£‘ƒï¹Öï¤j ˜ ƒæs?L®GU–(/?ÞÕ„K™Ç1Ëö Q mt;ʇîñK§ºõZ[W}i©)êIÛ )-¿G &…!ú{çÉŸÚáÊê£e´ÜviZŸYZ¦îë\~ðLôýåŒy•k;¾ì'¼ÏõUQ¶D]æ©{רÚJo 8Áõ:©!•ß%voÔy=ÈÑ®†Ý 3Ú7y‰‘¤(?œäÓ“þ¬×ÇgÀ³37Ë,«‰Sê[Þ9!IúÇ |lÓ1’±'@ö¯m4jÌ4 aíßt½Ì§£š™oËHü‘ Y—߈YU¬20O¯Á…d§®N›ãT(™Ny6Èå2ì>¸s^'ñ¬oeŽàš)–BûÈ´÷­ÅÛkg=<°Š%ý€VȽ7ê [Ô‚Mx“„)¢VÏv2O`ÓÌê$B/àçHBú³+Ôy”o] ˜-‰’_ wë+£¶$Y¤„Ü]÷šã³ìT|¿øJÔú<Ù~*lrxæ“\Ôy» týí«é/m¢¶`ÎÃÏ¡\Ö›1Ê¿kQ#ËP(ê·¥Ë?ébxÅLëò& ÕTXü~ö-Ä:ü!ÑÖ˜:&ä¶4Öy—&×ßAþv¢M¼¢›Gt¯JÉÿ82¢+¶Ï@«‚iÐtïðUXÏzSm;)¡¬Ë#ïLÔù¶ 'USŠº§P÷ƒg¯Õ&ÞIÎ3ðæ6óPmߺú ­¼¼>|“Ø=;‡Ó¶¾àÞñ}0Ñ¢:šê2¤ìeÏïDÊð[½7È,L¢Â1€X>¦æ ÑWR‚…7Ä’g#JiîÌÁ_hM?i‚þ OBäiÚj‹Ís_%P}v¦‰¡ijÖ~bk=¢vOŒF>p3Éï{ÄáÅÊG°F61uµšÓå$™iÛdÀqù´G;?vˆˆ³ÿ™ÀպƕÌ8)0;¹Â¸ <ìo¯ªrf¼kåI_—ßaä÷nˆeÉv&ùFR÷´ÜÃíVê«ÄQ¦é÷ô£~§W߬„m-¾®/ÊÆ©BìWè#o~ØHíÙ²à>3<&™4D1z_dyKøú$¼ò¡Œ¹«é¤ëºJkvX²Ó4Ä«ŠÚ?ÞXæ+2zÿ†–VcßÅÏH'¢ö0¡ò{Üý‡s/‹Áò<ºÒàøY=ÿ1e©lìhvË}+-Þøg*zúÏ®`Ȉij ¸†1ƒº•×0‰ŸõRLäÖÒyaöüïuÛo“îU&Ë/l*?ê¤üتßtUÊ93)”`”.Od™;¸®¶MBÿ—„BN§P %3ÂÂlf9õ.x4GyI¹-¿®¦ø•ÑUÃB‡ù9urYn/H´ml$¦èG‹Ù¿ È×®Þ'Ûqg`8J. ˜‘>-^Éû ™¼#ÂÚõ:’æÙãL1Ñ[â€O)Ü;e_ Ÿ¹.wÀžS²ÄC›7ŸU”½ZCo^c F6`u"ž?¸™{ª[Ì–©šp4Gò¾$J©?tËåót$,O‚ßàçnËZ6LD@-Û£p÷Äðk1ö½Í¸‘àÍPÏÀщ‚Ÿ%ýÓúm¦ãúÃÛÐæ23?•í½Í3ô¼Î¶‰ÊE¾ª¶|RpåÐyávž¼ž¢Ç«$™‹èc-›zK™Ec#>Üĵ9u'˜Õ/·$ñóø zÓtQ¯@Äüáó®W%õÙ6)"âüЗ’Òýrº“Ø5‚Ú :Û èjñ‡.Å&bÝ[æä cíŸV³×(ü¶>ßòôêzò¦”<ð9ëÐÜsJöNÁÁº,Î[§MTKž¬Ù‚JÑÌsòí—L}@†ÏÅÂ:ÇÇƘ>ö0íÚLÔ`Ý)¯ßëïXfjŸ+Û1¯Û¾©lÓt`iƒæ›”³‹«/®ä›˜½°é¾@&4ΰh—rD™ai²ñ®øL+ïWùÑú›³¨ iþ—ô¤=2¶b[mî/:‰«zåçðä;¹Ö|9K{9ÁUº£,åTßã—b¬Î-¦O%éqwAN[²:½±œ[]ÄVà¸é^­éë‡è®¤#(Ùyj}ãÛfFžSâî:.' LLˆ{áàzU.ÜÏ?Ñä.;v8w¼S«â¨!ø5ß×ï{‡žœõ1.òûðˆæÈ–þ³`°žfŠ‘+ÁmKˬè›n–ÝæµßØ·<|?™V8¶Ê²F4M¾—ÄIU&Gñ˦Ýg­±ˆtm¿õQ=%t–%ØÎŸ4¨Ã¹Ù¿³¬,œ¿_Ü¢àrßÈcèŠÜå[aÎU–…M½–¸|Tÿtüm}˜ka!,I /“÷õª–7áÆ³íîmñ»ú3rsµáñy¡¶i-Œ†JÆ×ÔŸÊ9,2¼ ];oÍßÿÞÝè8weé%÷øÏ©‚èÖo„ðlìĹ¯QÜ­ëõ ›÷ 1 6©ÙÙ!zoÎ Mö{Ðt²%ñóÉèÕl`áÉò{cM—±¥IåêIÄÊô³Ëû*°&µQ÷lúš4uÎH¸}•¯ÉmkÅ„3_«È‚Þ¦Ž¼‰«^h¾š30hgR;Á½uiQïÈs£ ð¡ 7ñn‚C]NR> T¡ŒÆqÐÚ§·ttˆH…“jYx§>»Ó(Õƒ ºL‰m ÖØÿ>œÞ|h §Q‚ŽP©Z)ó,ñdÅp9q-„²õ•%£$ 9£q»-6ZV» d>ÞQ·fK šù¹ïÛ1\2²VLð(˜)Ъ¶èKÊ?$ |RjÜ_mN ðйÀÜ4Ç4G&K© Þ¯$"Uî«Jõð½äbD?<ÿ®n›5 endstream endobj 118 0 obj << /Length1 1886 /Length2 14239 /Length3 0 /Length 15409 /Filter /FlateDecode >> stream xÚõP\ÛÖ ãîî4ÁÝÝÝ-¸4î4Á!h‚[p—àîî<¸îö8rï9÷ûÿª÷ª«º÷˜:æZcî¦"SQg5w4J9:€Y™Xøâв¬,v&6** kð?v*- ‹«µ£ß¿"Ä]€& w›„ è=PÑÑ çf`e°rñ±ró±°ØXXxÿèèÂ0q·6(2䀮TâŽN^.Ö–V ÷>ÿyКÑXyy¹þLˆÚ]¬ÍLŠ& + ý{G3;€º£™5äõ?%h¬@ '>ff&{W&GK!:€‡5È  tº¸ÍŒ P2±þ=@ÃÊÚõ/‡º£ÈÃÄx7ØY›\ßSÜÌ.€÷îuY€²Ðá¯`…¿€•‰õ¿åþÎþ£µÃŸÉ&ffŽöN&^Ö– k; @YJ ä b˜8˜ÿhbçêøžoânbmgbúð'u€”¨*Àä}¿çs5s±v¹2¹ZÛý1#óeÞYÒÁ\ÜÑÞèrEøƒŸ„µ Ðìýܽ˜ÿ¾\[GŸÿ ks‹?Æ0wsbÖt°vvÊJüónBøÇf 8YXXxØx@gÐÓÌŠù^NÀ?¬˜ßgðóqrtX¼ô³¶¾ÿ ø¸š¸ 7 ŸÏ¿ÿ‹XYæÖf €)ÐÒÚáŸêïf Å_øýþ]¬=z,ïòc°üñùï“Á»ÂÌì¼þ ÿóŠ™5UTtEéÿù¿N11GO€#;'€‘“ÀÊÊÆà~ðûß:*&ÖóøW®¬ƒ…#€÷/ºïçôÊîk€öï¡üo-%Çwå´ÿ]Ÿ…“Åìý‹õÿ³ÜÿLùÿ§ò?ªü¿ ýÿ2’r³³ûÓOûWÀÿßÄÞÚÎëïˆwåºÞ·@Ññ}þo¨6ð¯ÕUš[»Ùÿ_¯,Èä}D,ßÍÈÊÁÄÂñ—ÝÚUÊÚh®b 2³úK5Ù5ÿØ7;k Š£«õo˜÷,–ÿã{_23Û÷·ˆë»4ÿtßwèûJ:˜9šÿ±llœ\/„÷»~GœÖ÷­4zþ)f3“ƒ#è=ð>£ÀÂÑá‹åâ0‹ÿaúq³˜¥þA¬fé€YéÄ `Vþ/âa0«ýƒØÌêÿ Îw…þƒ¸ÌZÿE¼ïÝMþAï5Íþ‹88ÞÑûªÿãÿã|˜ÍÿßùÿïÈÂâøNÉÂú¿óèèæò¯ìw––ÿ‚ïí¬þßY[ÿ ¾µý|? »Áwâöÿ"òNÓá_ð˜ã¿à;§¦|?§÷mpü×\ïÿ.ÌÎÿ‚ïÌþÅ›õ™ë¿à{Ð?c¾·yü»Û;q·Áwâîÿ:£÷pÏ?áÿˆÊÌÍÅåý ûçö¿+î?øÏ×9è 4CX^p4㱩 i¿¯%ô`Ü›dã@¼Œ¼†ÓÞ•ÄwßW x¸bÏZížûõ°‰qÌVòÖd«ƒÃbk¸á›Ň³\ßmaºÃà;!øxìªàÆöK¾«ë£1»ƒ¹%ÎY³Ú°ÇµÈ,.ƒóÅÞü·CiêæÊ»ïVg°4'LH“1Q°x<<ìH!¢ß:*ÅjDgç:e)]/E&Oˆ¥ÒÆØ8·–1€[o¥!;É_;J=èå"7žÌRíöJâ=}¥ ºn ¤5uW¦àϔݾ”¹Ü‘U³l–Ú„HßüJ~¾ /šíiJ³mÈÿ¡K¢¤5r9I£Ð›“¦¬·¼\SP ± ^jæ$¤–)]ÞW¡fd&ÞPÃ5)s6­a,³QEýÊg‘uÆ ~,*Ø%ÖšA¬ƒxÇ_-,+ÖfÑÎh-h T£YÐÞ‡*ƒHE†yñDrL¤U@äË5õ{\š×:;eü‰¹†¹e#žù¬æ7þPŸùcŽãëÕ`¿öX”‘ôçþ„Þˆ¬$wr'HõÇdÆ’b¼<ËýÆp?ÐeÛ–ˆ>uRé´îìM¦q„,B°ïJž+úŒµÅìKËÑX¸Á[HÄg<ïçšë·Œd»Ìsí”·PbÍšq‹¸HÄr¿©\çC3†P‘Š$ŸÏuc\½ŸÎ6„#åÔ»jËúëÜo(ë®­ëÈ)/j•£òÒI³µ–Uã„ÁÖàØÀ.Ë+عÊÜ ÀKÆ&ý0jÝ>å×¶ƒm“|ßÉOæ½éÚë«¡˜P,µ`2Ÿœ.ß!ðoC–&™Ej:.=Ù Ì#—'Í'Äøù˜]–0‘MÓWªûÐyp®š³rú‹¿_šƒ Ÿå#-åäἎ;Áíhטc¨×e‡Jx+WM~‚B¦Rn¡œ>Ÿ`Ó¼÷e»4¶P“nlŠ’„pûŸˆ·Òa 款W=É‚püЈ3°;XÔû ¢*÷¨j7ç'J^€^Å­éýq ´HUOr3脟Ÿ”¬¾GR±œÿ —ø¾·Iëüûâ§óÅ­NCNÉ7E°V0$æÕÖìg½ZQi¿Èé)i9çQ|™Õî~Ç/Ië•c{N-)òºR7qã9SÁ}\l¼¦JxÉF…óŽÏ—c—¥:ùj›ûƒtóê‡9sD¹A–åU`ÛØíP‘€þSÕF‚Ô6m0§›,Îõuó|Yø íêvP¹Aʃtç;é „éåai´ DÃŒú§å›ÒÊäêDã—C«MWiQòºª}Ô¸Á‰ò«ßmo ±ZÜÜ•V9I„i°SS‘¹ $(qpË̹V5µö¼?E3?ãÞË丂—À4éÒ*}f«ƒÏ:^ ðLk\¿¸éʇìÝ~Dä¡®[óÒi­-ƒÊÆÒ|Ý¡óÅÑñ“cVÆ|–„ª–éû&° ¥Íäa^òŠBp‰”Ceíß0¶½¼ôs%¼Ê`’h>^ä_3UE=®™/fЬsRZÓóÁ¹¸8ùb…ÕÐ\(ØšnÀÀCáÑcé¯ N;FÝq*Âj£7Ž—ú{^µ 4Qpy>OînÅ`V.ï9ÂÉ¡8÷ù‰¯pºZøm–vä‚_éï—Z3É¢öËŠé¼â™ 0áf޲߿ -•ì´ø.ŽBdWi °Igl(™¾>ÄaНàŽý¸7wÙEïÖÍõîeOœ 0$'¥}Z+óŠ/.«Zyt- s•ÁUrpÁÊÝßÏ=;›æk¦6û­õ«¬ŒÉÒ¼ªIZ­¶A>‘µ€;9ýÎ÷³n늶s–¡)ˆŠ„`{¼AIî‚«ý)ªšìÊLú§ðù-£uð2+.Xœ¶Áè,ÛY\æ3>JMú.útˆ¢¬—xaªƒI¨ÕÌl¯<uìÃô½¶Ò#fÔYs-1$8=“ô9ïºf™D–/n™»Ø5ÓêM+ŽÑ̺ư4–tœX£e‡|úÕAV¨Ùº‰.ÒdI-^Þšy—>+p³Ìƒz“Kï²Ê Gü©TJ‘Ï<ˆyÙjû’×*×õÚVõý`KÞRhزK¹]Þ+u¿&}ÉÅ%«=üÄ~}è(<¬d©d§vºråPås’Oõ踦wŸûäÞu»r˪ âK1©c@ö "Õ‡Å×ÅãùÝ¡pÝ«í9ŸšªÂù„k>ÖÜ×ëT$è0* #A{·+(Ôí8c¾ì«Äùüƒ  åÇÃ%3ù)*Ö•…q6W.)Õ¨éϲMiN0l<©ývFƒ3ܘ¤*£8)ò„k²|ÓÜ›Dà÷ËýŠ A5vÜìGs!2Ý•ÉØcÞ6ÅϪµ0“IÌZóæu[•àpk½ô¯bû«ØUÚøÔÁ²gA«D²7N™¢7ŘVZJ} ÚÐÕ}è„—·F¨Õèš¶%Úl ÒÔ{1 Û"z+-ÊR# Ëb…ã¥F·¨k3o^á3ÃúY¯çZþŠ\¶šÕÓ£ëqÆ¥ûOÜßq Ðn'Ž\¾S«&-²èuf̈*dYÌëünô4 ‰²n¹Oûuî )ôx˜·J5ÚüB;Ó­!‡œ6Á„…lªÅTïÑ8nmº.ó½üõðŽB<†ÑØR¶ÒbA#¡VR:Ìÿ)˜!ë&‰ì(,Eh‰8Ë™ÖãÊ[÷¥…,àzZZ×¥/ˆr!÷à,ûJa·{ૃ'ÁŠï؆Øþ›ÄžQ8-Óýo»Óª^T_;_tô8¤Ò:æòûÕt~š4Z6ø-‡»Ùš¹{;ý~ñ祀M¾ü¤­èo4¾Œ³®A^¡Ø œàÀ1‰âDR ú“dÄÔD-ûÏ”¢<¢¤û~–<Î$ÒÖÒ÷ïB_>™aÀŸéÙ Æ?mžMu¹ŒÐñËñ·¤Ï|Þ”ck8úáeÀÄú·FÌ‹¦aÙßÓ/9ÂPìñ} ´ìÞ<¢·:rId_À©-ý€éȺ©A*æ@/ •ˆÍq€ïAÅŽ«Ø£eö[Eív_»ô¾›òŽ6¯?(©•º„´ÁQ±Èlž 1í´Çž˜òôk䥉ûD2¨`»ò"BQ‘#tf°bLô/µ¢_Ék¢Ë®x·”d/ïZÞ­ÿ»{Ò£è¶ùÊ]ĦYpòmÓH!I$¬ð®Ì£OéG3LˆŸÔª¹?\KÜhäo¨¡_g“T­&Š%f}9þÇÌy¿‰.LMIüåé±32Øœ×Ë-,ÐUƒbCÐzŒ¡¡È°P™#Ãhïãüèî†z"‡A€ì…n[7•Á;õaÀ;jº+öWQ+YRØPNcu]˜6¹“ÛÔ3 ÑþÚDÍ…µdcÇåù¹SD<œÑ0³ Ô¸õ¦fÈR5!Â8ó™ïBµ«{"Ÿß(¾;“°¸'ÛÜôŠ/U]D€Üá{¾H í‚׋ìûT"ãêNbãŸ6š`[®‚hI´Ã|ŽW'³€zuûÕÈ@Œ$§±'Éûˆ4IãŒR«t†Ýfâ÷Êdžë/ohÄoþ˜œÛMÅ ù1UçñÊÓå´Ò¶f“·[¿} 2á}‹ÕZ ^ÀÑp °ÜÅE­(Qi9s½x…xŽEyxPYÇî PªË†#"rÕG•‡‘DÝ……£Rs6Úæ!vZâ´l]íÜM×§òÁ!xF|k‡ûô;Œ¨|Î”Ô QS{ÉÂb»©FÑ~ÔêP´Ö9Óʧ_›§–ð‹Gj¿‘¾y>È Z(ø¢èOé6Ñ¢2 %o›ÊšWeÝã1v sŸX Ë·×Ñ»¶åJxç°¹^ @—¼6qÐ÷úwvFìñ ‰:ø;=j0/,7Së¼Åήå®hÄ2ˆh‡ò{”#¾Þ•Îágÿ®.ónŸ-ÞÄ™:òÎßÁA®ÙÆ› zߘì>ÈÏSâ&ßrô£?¢"LEmbÈ,K~c¦Ái¿i¿ÌŒ>ïOºq~0€„Åã}VÚŒ©§ž«òûÙD‘ùnaû1Lp?œÙ÷±A¼P‡í[Àܘ6N7™‡hÊ ¡íð†¢€ˆúLPHLe‡­ ~y‹pùÁÕ÷ÐqÀž[€²Ðq eÊÜòHäâÒi‚º2g¯”à:]Ä Å"8Ðwdi"aβ& ÆH©rA¢óf• ·$³ú[о¦èsW,´¹€ˆîhýZå9–V¿bÎú$§7èBÑþ,¹ÁzðµCîóâRÁ±‡µ}ÏAŸÂXqîí–Y‘bÓLŽ­P¼Œìwd±+‘QUÑÓ‘î9sÖªÌ9•ÌœED‚¿yèøçWz^Éélý°ãÍÿÄëÏc•[ôÂêæ1+gï‘/€Y>† œ‹lÖ±)p vAvÎ;@Æðlb±‡vŸ—§nß x5y›ï=k4…çÒz¾¸º”lšÍ·bïiÖÌ`}ÃçQu²ÛÓ&Ž€Ê=‹AÉ‚ÂR;›dKÜj¯…`†Ÿ6_a·?UU¸Ï0—Û.ÅN+`¹Ó…¨qñ ÷2}'Oþ¢T‡'Í h3ôaÉ ­jwÇ“´>»³9“ƒ1ÇjŽ$<1UϲhÖlõ½?/6jCg#¸>I™Äkì“åÁˆö8Ë@UýÜep¸#ŒmÏÏ=Å/óÝßÜÆ¾Ñî“ÅÑA›åžÒüÔñýƨZíŒfØøbU²ÂMf0OæLapÊü ú'@£#ÞØçØúûÒåʿ՘þÐñ£c/ ˜´»7eßÔϸ¨štIÇu%ï7¼4ÉaahÝÏ–”B«.°hA¢Ç÷b¡ÞêMàÖG«)¡^7ÁКÊðûs¤…3í!g*†~¿í/^ÀØ©ØW¢7œ­”9‰80xù÷q,àL¸ƒò x*e4dâË똰Q<"ÀÅBºþGH^â×kH⦾QÓxßÑšÚÒøkv’¸1m{ v3ßäÕY/;RwåLx¼×´»]óǧÌ%ª¡átd1¾é›¯dÆÛtúÓ±{®R9¼ÐØÀ:±ýå•‹«ìÕ°ô×d9¬±•?q M[Šè®pî&ÑÌôò¾l7/6%°ŒÔ×AÙòˆ ”Jz¼­„׳ ÑrÎq™6µöa ¦ÿFÐçcæ‰&×Gzª‰5Á—ê{@u[ûH0º›_¹³kuPw ƒêvµT•°Z§´½É7è®ûUëM‚½,a/$¯çcÓ`Ïi M\…¯_´ÑUï DPÃ4W¹*+‡Ë-­ô²8uƒI s2m |ÁßMö¢Jãí [×;-/çugV”/Š î¼ä*T舺UÀ!ÙÀ(t†Ú­hÄá•Iª¡¦ñQ¾ý&}«ÃuЃ™ ãëŽû 8+°M²ÄtøåàLrœý¹ÁJŒë¬ÎЦåð'‘gô¬©pP­lE¼r(‡#Òúõ¶²\Éù]ÁmÝë~ŒKÊܬd_؉mË+›p8žFÔo†GÕ"Ý}xÙ–§Ã:1ÉCh¹Nj—ö¦ð8£ÕÊêƒüsŸœ¥x͆)î‹ÊÍÌRð[Ò:͆ LY“ǺУÒ×­>.ž×ªcÉ„>ÌI—!J}YÆßñá§ÚÉšéØÐ¾-…så-¤QoçIÚ§\9àCÅ0©Iï¼Mˆ†kËBÀ† ÙÒ´‰}äùSj`Kg•ÈBž_ëŸÈ°ób‡'DoÒæø«î–†"ýPLßvØ‘;ó˜ÙV¾|v¥£3Ä,Y…ºµ¾-M^úÆŠ­6°t ÂH¬"ú×|@jÉA:SËaÇÜ3 £I?í+kaâ“k5‰$™û9È€3XÏ!×ǀ¤J<‡·]l\k„üƒRPáǹ¦¡‘ËĪõÆõÂÏ+_a3 UÂ"ÅÅCÚ².¯èæ%%~¢õ®þ8#PWŸs$)›FÀ—é§Ãj2/?]?¸Ï Ü t“FÝ6‚Ê…Å‹êT,¤p‹oÓÇàW™LN“iÅÉ–6À%L{nàˆÆ3`$K= –m¨N›gtOzÏäµ_âY/3bÖ“÷s™umA"9L¼þœ—}ª0DF3uHß×´ ?6$°*7M£/ãf%ý}ßñ)¨è`ez®ø+øŽÎÄíeÒðØ%Ú*ò{íÞP¦hŸ ç$|úÖàâ΀ífù£ ¡ÈÌIušõÿT’À?__€°&=tM˜9ß iL«ý 1UõƒG”+1Qþ£¢a²½ä´“NÖ\ÎíNŽÁ®1.3Ȉº ±½¶R'(%'SèÛ['^F«E™¡©¯ñÛ3Qúøˆ”ë¾ô]£ÄϹLŸ]ïéœv§/ó„|çþœ¸3Žf†NѤ«Q·Û Ø6JH7ƦÛNÄoPƒ6‘ÁìÚ¿ºÕp¡ž„®_%sPLC-PFôé|ŒÛ4,°ÁÖüoií ²`C³¦"@ÁbØ¿…뎆ĺ~äÂ>Û¶=>~¥ÀRL+&Yp»¦MnƒØ¢ù š“dY fŒ†?má æã3BÔWNëO~¥ÜËåˆj®pÙÑ"ܸãâY N»Ê2ºI‰(øbVµ§M¦ ˜®ôf>• ð¤„åœ5ÊǼ²æ`@¦¢u;i· Ç< NžµU8zGÚÏjNRÜù< /…¹œìôšæÁ(þ øÁŸÆèï&á5Á•‚OçŽ#š~š#IwHYŸ®¾‰>/q;A–míƒzY°–¾(r0©ÎMۙߩªþé‘1ñ $M¯ïÓ€îböV"W8U±—õ3q¶Š4—v‹ü#°+T ·‹H£ö g\OõÇ)A©$zÙ/¼TfgòP‹.Ô8õã¯Êrƒ£7aè?^p(è\e„X~öØåX”ËÜ éžx\3†ÞtJ¯ë¾ì³wýЫK`RŽÇÎsR¬ó'ß´q'0¹`€Èz°›L¹j¦ß …'æÕRæ ëö°ø`ª¼ê.Ž9U¢¦mê7½Ä%¼ò”” ‘GÎìc6wõ´±fô© øŽñ|rWés0óÖÈ4+Ì8Z\’º à3±²…Ûi>ÜȶcnÎÕ±Y±5 J ácäÀÏL Œ5[.½&%Pš"þL´èÿxé6ÕTaaPŽt4˜ˆ2Ž= äŒ4´;ä4ÐÚŠŽ–sõÅœÜ$„ý‰=b-QŽdãìdÖˆÖ¿ 4pJ¹‰b›"²AOGeŽPcbÍAº‚¢p×À‰/ØüAÖR'ÕH––[V€ÅYÁ¬š]ü]ý–Åpomó#f¢T^ô~ÐÈkäî]ÙnéŒG:èS«Q¢!ôLÑ2æD–ǘ› gMµQX°Ð Äs «xü2§¯ úÔ ªñ²õ“<øï²I_¨>ñÙ2{' V˜)‘TŸ›Ñr¶þÁÁ'ñÜ^½9nçf$Ƈ€¦2[6«’ÎHU1²b£p_ Êx.½ºµ;Næ‡ÇÊ»PŽÀĹi®šT'Rp<ög:¼Ïq4÷—”ž¿"iѲØ)5ŠžKÌUñÖ‹à§b÷S” º®â§S!Íò"™ä¢ydãEž” ë4Õ¼_ÄäíÉXor-¸#owû[d ² ž"l´ ’Ö·iÌÏ/íŽNŸ{6Û(d×áÐVÆ/ÄÝjˆ@:á—åÿÌ1¸_üô6ÙwÈ­dÀØÒ•O¯‡:“š[ÚÌ^¨l`³÷½#vË¥r“û»ÆÅ ðos«Fû¾» Ф+õg¶#CøÂöèUoŸI;‹óëû®²g†°ˆ¨ÚäLGø=ÅfJf•¡kAŽêÄò$ÊUâ û³½~Jns‡¦çHê{ÎDAßÙŸç¾m:÷¹~’hÙD÷\}¼fMÎÅóL}Ö²Ãc+ä>v6ùÕT[\3gÏ4Îé$M£”Ô«ÚÕþ *ƒ*o—y\ýD5 ²­(ò‹æÈÓƒŽîh~w0ßK}[U—l«1ÛRúföù183˜ 5ßúJ¾TcÈÊ’ë;òÕµ3R‹ÖãŸÖ*´iOEºBp3iÝ¡™A.æwÎ"+¨p&™¼–‹ôF?:q$æžî&l¸k”èä¬oI…Ã[ôf©ãóøx­8×ñȵXf[ã/®9qY¾o?x[P6ƒ‚ã¯RbŸ YÊÈy¿ É &÷U%4ôo·²lÒ>ñ|‹°sP´¤T+àg6IL7gÎ5¬¶­ Óvö«¼JµDm¡TsÞ\·&~â$аçìÍ\-Ö½Ýó¹\Óµz!Á{ÎËý™gžy(OÚ–©ËètŸ¥cïªÃÓçuykØ_ku‰üT;Wç XÑeYÑo+ÚKT;Ý3ùМ4¹ùö·<þx/Rô3‚?”ÿîgÜí¼;b¡™aÿGÀ¤j2E™Ú #~#´©–¨ò¤¾v-®K”L3•%HÖ®çBm¬«BäsDÅk¹R oB–åk“âkŽ®çtrH ‹þ_õꛞnäCPÅ5ví{{˘ SŸªØ4sØò+Ƹñ-pu)ÿèÒãŲ˜‘©ÐŠìxap0ˆ1¹Ó[1~ŒÁ-Iž—UÆèª ‚˜˜ü´¯ËýÀ°)y‘$·Œ[ô:ø£F»áÆÕ&Ȉ¬Jo‘|/~¬²9O(O~y–dÿ@&íA½zïfD$ìxéd,U²ÇÌéTè *B'&å¿%"š¨I¨—!Fsfº€!"Ú>‹ÅŽ»A@Îéq5évd 1c‡WS‡¾éåŠ\j³)':º½|+X!hÝÆ½YæŸSËøÕÔ£»Å4ÿЋKµx!ׯÞ~7¬F#ÀµîåYƒ–òý¹ţFôòS&Q :C˜T¹B6}ãŠKöä¢x”x w%”=® äü‚ØÐà†‹ª2¼v8¶ó‡h¹²c:HOyð=ž"¤iˆÂܬ}G²Ý> }¦@žž¸Ü9³žm5ôë¾уbæÙUu`Êcw]O‚Ü’”Õ¯ïÕ€Ì<âÌ`úûÐ¥h–KKˆRU~Êø¥ÂO»Â«õ… ÑÁ肘Éu„od&f-·9ÆoÌVY™@K.¦‰©ƒo1;¬ ¡Þ•Ãl™ö>«Nõ¦J韷‚ù~Z´s5Âò³<Â2÷Â6ht6Àª²‘‡Y™Mj¢2¥…óÖÕì™á’ü%>©½jŒ~€zˆbˆ'bšÙ•ñ «¡í„¬W„õ6ͪÿ]štPðAïÔ­…)4áZþœ,É¿¹íÖ¬ó·â&a¸ò2}žYÌ&÷ÁDÈf©®ÜæêÓ¨µOµ D&H3X˜Ÿ²¶äÕ6뜣œO[f« Ç´»ÌÏÎyP1¹Ë·à(šGöåsjC/( _|‘J_õÄÁÇU¤0ëߤ¹áøm`EÄÇ©^àEÂÙü}Žüg$;´C­X 7µû_}c%,¿A0ˆ[íຫï#Y`a2;†HÈ©ÙÚÊCÇÊÔ’õAüö«tU+^N„‡Ç{lDVš.9&œïþô‡í÷“Vp•¾-܆¢™,ÖÜK¡öÞ=0,ì8ù E^Χ!פz+ ?ºöjf‹Þ8ªôf›w~Áè|þ´@~ˆ¹ð<]#òõ9§†tbz‘Ƙ¶R3…˜¢U @-û öw£À8nÏÓG}8:qìVÿ}D§ÒG:b* 4‹²»'^•¡ÁBåŠc{üA2'K HTŠ“ Gdw-ûuîQ É`N˜TÑÀBõùÖ¶ìo¿q™&–Ò’ü`?5¯8ué?“8Ýe.õjÖŒ3Þ;V)§^4S‡ø¢NŸ*5¨×K–ëJw øŸû\Ê·&Z€ ѱÕÌøtx?áÚÑ}¥oLú¸¯oÙ)'ºéŸ#à\&ëJI#4‘¦©²8´U]éß`R´Àn1ÔË@±bJ¢*ß–È4OÔdßv2GàiÜœ'!‡= CÀFk Áˆ“éCŸ‡Ÿ’{aæÁ³kðРXy€R ð¢Y<µÓÀ¾*@ìJE­tCšþðñ{´¸OÛâ¬PDV0êÛDÇÆ›N²fþ ¬äæ ?6#Ý!ÿm¹¤SÓ †¬E¿½oKõ©5Tö,ä¸}¥6RÓ®³˜_,îë‰ÕlT¸u2E'¼¦©8i*VYuꩤ¾Î•;ÞèÓ(EžìòÛ Ä)»=*Û"¯wõW*ãê(5ÓAC©·É—õõÞîØG.Õ¶ÜͲøEÙ[q xyrcôÂ$K’«²æß ±ú«ëúÃį°Ìü£zÁU”‚Ö×PØ?ù`_½ÉÂh1Á=6r°ë*||Ђï‘$»hwW”_!Α…ˆ¿©Ã&À÷4±@JFýÕZ&ÂÿkÒ‘µm1|Èv|fˆ¬PkÇ5ÁF ‡:Ë"S3]§”v˜3'«©ÁwÛ}¹qnaëvð6—W±ÍSkD,ß™lÙÃ[0>•ÁUí×?~ìn‚Ú -xÍS¸5Y6gf.>1ëO ù¸w˜”›uðè\o8¨î&ÿ¬óļuÞëå¡ã³‹ˆ²KßY9˜et/Í@æR‘sžiÛŒËØi5š>×GÓçðnÎë/u‡2Ùhñ‡Ÿ#›ÇJ™ÿ:„¡7÷+-,ðu.+ëÖSà€$AM·5ý5`ej\Õ…1EÁ”D$u˜ÔÂF…‚0å¸_¿œ^d§¯ºâ·I•PP8šÿÖ^k*¿ð ©;Ë(Íœ×Ò¼Õò59æÞVb AS¹'$¹ªŒÅ·‰§$ëE Ëét\þËàJÌ´Ä*³Û¾Î¸+¡U;ƒÕ97–xo3„;ÃÍÌ^EÑ4»(Ö¡vŒ*EÐð1<, òIý¨©fG\›éã­T—ÍsIÁu{Vç¢ F±®Û¬(&ä%G'ð³ò 0œþ{Ä=jT·èÕâóÎgÿ½ëN-] é•Â]U³êÅuƒvÄ\à—aކX{¤TFßa¬Yjl2Ó%žGÀéX¿#¯øà¿,PÈpÏS^rþ”ü¡žæx6Nutì˜ßŒóÖɃöÁs¼ ñuÔ Ü犥©(zqçÀD3qÓ^¾‡—·›YwÍMŸ±v³;P± µÖ­þd޶zï F<Ê|.û«ïØ£ºÅ… P%¢zm/N•N¼£Ù¨‰¡º}ZìkȆ#-÷‡¾6\â¶ÓB^6"è©kt¡Æ~/"í ít Û[*>ÀÐ>@t)Ø ‘î&CëŠe›hl‘ÆS&Þ$¼ïÒ·!ÑE‘åȵä¼ï2m±èbü)×„Ì ÃâË&ÿÇZv,ò/†¸3™…:éÔÚzÒØN‹§"ˆRc+Ñ» (1¿Øû&lÓòÅÿcÒ»òC¸mXÆðQuAò¼*_v¸,«@üj*©yy5¼ÐÙ™Ö¡”¾]ÁþY¦£h×´¦Oó b~$oþRDv¤Wò-?EýˆoÜQdåXΦxî<«ÞÔùÖÚ´Ø™X®émÖ~íš*â ýt­´š kÙ ¤ðO¨=›¿I•Ä«Zy†d«¼Q“bgÙ·ÌerÀ§D>^ƌȿ<–s¯š°1¨ËZ+IwµMžÙ;E-ŒÓR% =Í„ßÂÿQö]N“Ž ì ä™o£Z næ©)b@0¤m¢ ßÆ[ ŠZôØ®åuhB©hWzø å¨)þLx_@ôµôçðHoÒ³hC7ò+ˆ|*„œe 9ª‰w¾3®*ZêWÙƒë0út‚*’‘ÚC5 a·Õ×܃V'Z­pîCˆ£Öoþ­ _VeŒ"µÕsÁS¶b2€çdȆym>H› ®$‹ŒÝ=‹D=±ù¤Z'iUά¼*ŸzÊÚÂpˆIn8È‘G|˜6ø>»Iægö3¼/BÝUüšùÉ“ý,qÎpRšâFf¦ãq'~dëœò#Èásâ¼ýFÍ•.8çãL>%Ô†PåõMÛ¯Ãùɸ·C'ÃHÌÝf[K•ØC}ùÜBS›ÑKº×é•äLd¯©At‰‰sfŠŸ»é‚äªïÖ™`ËW¦^ÞˆÆlR™|1:ÖáÚoýåT6­ªæ87…¢D)'O®o¨}Κœd-䦜ȫQ.ÃùÍ—“׎¿L¢Ú7D¬ÍH:„B.MyÚ¶üÅ*à VSPw? RŒãšŽÉ‘t^æ'L–M?æ‰yæ4^ä·4Åä‹‚9æyƒÕçOxåðÜK²®~êÕÉ;Ìš6â™”šiŽ‚E§>”™´!êöpÄWK»*T&æño°%öS v0dŸ5@ºL‹Æê¦Øï¦Ê@µ»þ§—žà¦´œ4 óÒîk…ÓÏ`™>=iOöûœë*³`S¼–”T9–ó,2+eüR€Gh-íº‡øáN8rY+AEÎÒ 8I­»d§ÔèI8³ÐaŒCòñòW"4¼7t­”´X*Ü!ÅòÖm˜_â{ŠŒ!M27Æ%á¬öWí“E”%¶ê7ì*Ké+¢ôݶc°Òsç|85‡ié¨D ÞýÓÚ¹·qeBÉ~ôç0% nò±öŽ \5%“#{‘ޢЂŒ=7]ߘÅ{€f²äÊîË`¿Cø§ýîàpQ5ÁWw "Y}âû° Èê–#º0ˆñ´mqœªh>ÖÂ…}þÔðEý Ïòž ' V̲dûd$à¦zt0ý<Ծǯ'i”õ-ßЖ Wµ5›Wej¨¨" /éQN¦sMüŪnu¦¢QXÅ})ÀŸéŠ!Ãw©”®+v4ÄØÐðŽÆ¶ 7Ñ‘“j_Ú³F¬³©œÀKEûê#Ò0ÃÎ!i6Jï7 Qn–eϘæ‘R¢I¾ÑgÂx9ÞerYè!! £~ï‚Ë®Û+g×ÄýÌé'޲R/uãaAõ@FÖT¥øª§U-¹Èôåz¢²~Ðx!z_¡*K-bßÜ/Ø¿ªûÚÒ['`Æ« †×lbº{û”†¦×·9˲K†›d~YM$´öA 8'ü(?~O@sS§åغ0¿ƒ§‡þp’aÉXº/Òþv”hpz-æIq½.óalÅWÌîâro%eÔZž£;V (uΈä* a–¿Œ\ÿ¶,8«dœêo]^•Õo¼C!ª>[jfå(îd†à‡„½(V-=”sõz ×#ãZRÎ>Ò+´ó[«íÖ÷èç>¹8 ~U¸ÀñhVW³ä˜ `'=ÒJA¸PX‰SAH¿Óí 1¯±¥5pcpKyjQ›pá j³¹uÄç:iªT£å늣 RT>l4‰÷ìªëõg0óM)ºg•”i‡á„Èö +r#2Z‰7L´r_"åƒ/I€“N)8ÀE»@Ãiür&c£W0ÃRQâ:ë Ü%ìÀaÜn“ú6ƒ|lŠ8ŠXñ*–4€£wåFccžú-ÛXϲÕ¹‡†éDß”ãmd%äØ=¡<³ýL@®&\]¥:e¿®4¸ÿiÝß²ñ%Û¯£ô—ªÛ–4ó±Gr#I×cöZ#Ó«‚Ø*g{Ñ,Ó¼Nxêqâ[5jèÏ¢œShX!å£ÔL7¿Ò @¾ù‘Ÿ?\ õíɧlŒíPzq¿f?}á’óŠk˜ :—ôƒ™¬‹×ÏBuêœH¢ÑjößžîGßèB>CeoüÖ^-r+È*q—cyäÙsS7€ç‘pFíi˜Îñ/”V‰eš˜Þ*\ÞÐÀ^ v¥Sè5¾ô‘Füþbì¾Ý^W¶~Ì^m .&·q”w5 %nQ2=<Ö‚vœÛc£—b5ÁRM· YCJ¬áóyw³+ÅÙ—YýÙW-šA±÷=ËmþA„`fýˆÞ$ Ø ò´²ˆWŽíB]ÿŽü¥¿kë‘ÇÓ©ûã¤<õ-ÿ®ÔFiù;üœr–êeäHרÏg qQDŽ íãÚ9ÈÆy„¤Þ/ßgÇü³-k~ãðÍšE}(¾8hK%[ô2">íá%XUù…«M-“_.²ûiæ13YY¨@ ZWù Þ-«oé.v ާwoÏ×J›‡ºX,Þ£k¶ú3*K2åéÉî¶*~Áu&8"ŸF+û×Ð/Á^צ4éV9Eô\’HCª‹ª§ÄG ?`®ûñN– ‡ÅC¢þúV½õÀÔvPFA¯“˜+¥Q.+ÓéÁTt‡re7S\Ž™êÚ Lp·Ùè9“GYegå»N´²(%if|»óÚGÝ+˜è¾ß ÞOšŽ£TH'ÕÃXÃz÷ît—c”á ,HÜ=v¯{ú£ïz Z ÉM‰€̶­Wµ ÅzàP‚ûŽS‡lM9Øs Ä–ïé™UV®Â±ü°…¥öyBWÙº€K©Vß—š˜Zï²Æ -Ñ—ª/µùuŽ8¢áçÝ‘æøŽsÎzHͯýd}ñõ%Ö«•‘X+ð› ÷¼+j…¹Çy•ù:j ¢Ÿ?6ïgì ŸœŸ>P|% ±PHÝÞ×ÕÂÑ äžìžK¯e¡}åýÆfbØQ•ãÕ80oë^ ™¨å(Z£yNv@‘U„ÃÐ`ÏÇ#ï 2ºJ×ÿªDôÆPç®ÿ›}f%ñ:ÅrMñÌêójUÜ:O¬ÂyXš§$ýævp#éúHp¯p¹cð#¢Þöà l¦jëÞ,‚TÉ%a\8eD'F ôR*iÚôsèešÉ ýá_~nÓDGn(›è¿òÊfÀ¹IR"P{”J&ó ŸŽâtê3±ûwUâ™›[K5ëÞæ  úPy„«P˜á«y®)m z»p”{’_ ˜žl4 ‰EaM$]‹2.’Õx›ø04Œä»ÛeØ›r6­ØM_Âr1->8Cä§,³ÇYœì@ÿ Þ¹º*3Çþxù û»ýî]ϰËíhM¯&‚µ”>…æA+EØE‡…!Ö(wyRÀ‚Ëó•½.ˆ‹(i­ÅM’|Î$CîrŽÉ@IN [|ÕÓ)¡±àu—åÁÊKï„ zœÒ: O#3 ¿ÑÌ|wÃyøóo[”çLNNîªI]§Ýäì︀í§ÿ}Šù endstream endobj 120 0 obj << /Length1 1748 /Length2 11100 /Length3 0 /Length 12218 /Filter /FlateDecode >> stream xÚ¶PZ×.\¬8).Škpw îPB€ wh¡Hq(îÅ]Š;E[Ü)n¥P¤¸”–Ë‘ï=çýþæÞÉL²Ÿåk¯gí #–.§Œ Ü¢‡¹s¹xDrêz a/#£ÔÝ ò·‹Ñ‚pƒÂa¢ÿ2C@¬ÜeòVîvêp@Åà äEB¢<<^‘ÿ1„#DòVžP€:@ƒ¸a1ÊÁ]|P;{÷Ç4ÿs°€Y@!Ž?Ý2Îl¨[¹ÛCœ3‚­œºp0âîó_!XÄíÝÝ]D¹¹½¼¼¸¬œÝ¸à;IV€ÔÝ qƒ 6 €ÚB°üܬ'¯á=þ;Œ–ôï2xþñÁlá‘¿ª}¼¦ÿ©Øóo°ü½¬€ÿŽ¥d-ÀòÉMyxÀ_ÀÿgªÿéòÿÇð?¢üßHþ¿ RôprúSÍò§þÿ£¶r†:ùümðHZ÷ÇP‡?®ì›BþZZuˆ ÔÃùkAîV‹ ³{$3'Ÿ‹‡ÿ/9ÔMê ±Ñ‚ºƒíÿ¢Ì_rý?VÍ ƒhÁÝ ¼-^<<ÿK÷¸_`ÇÇ÷Ãí‘—ª ëóßy``¸Í{Æ+ °B ¬|°'ýˆ~ÀÇ…´xÿÉd7 îþèxì1` G`ý1VA·Ì¢¿0€[þ?HàVú ¸ÕÿA–ÿAÂQôÿƒD-­þA"nðÐ=rÛü >æ€ü‘­í¿´|n»A~·ý¿àcVè¿àcINÿ‚yÿù14ü_ÀíòÈ/øˆ ÿ§2¾GwWø#þœú?Ž5 þkpû| ôoãÇ›ðø|¬ÐóÈûxÞÂÿ)Øx|ÚþܼÇyÿþó…@¼!`¬¥y8X,Ô¡>´ã¦V†Ò‹swœ—wð,êÃpGÜsOû•œøí9ßû·‹2=³_ßÞn~ç-}hv4"áq4_÷O+J²ô¡ÍÖz›Ã’Pâî»›šïWÕîncK>˜ÉI‹Î°×…ô +)‡ëéî\Ö¾’8SKõu•ý :sÓ!òxÌ[t2aa>äÐN™¬ÎjÙ:™™Ù.Ð ·3éñ£$jÅýÛôϼ[ƒ_Ê9 ›é”¸.ªY’ißú)T-'3Œ;} d?ãY^]t„†°X»êŠ·èèÄq©%Ù´xî’.ÅcõI«ƒ³ÞµéàÖRªq–‚pÒWé„?sf¨YŸ0Skóâ='>ø4>dÃìÜ™u¯cwô>-Â\üì%F%‚ª(¿ïý¤·kêՇ–˜g 5¨äxÖã¶;ñÄí¥ää¦6Ãã7«\•_"È|Ò‰ËòVR…Õ'ë¯ïÎr´É”%\Õªtê ¢ Þi^Óa+ÐŒ¸4Ÿ™ë¬#›2f#Qþ4Ò5ëf†åÂL£ù? ÛèHÜkÔ/;Ÿ“a-##p?ø¸Ñ,`oØó©Z¨‡¹ëbdD«J%V•6¡,&Bnïšïƪ̳}pyÚ{¯æ]UýÐoéj¢|øáÛ\öD‡1|“NŠìo¹ÕÐrkO™ÃgV¸æTW,ãx Þá/‰Ìj*ÖæÈD:ÿÄ ©¼lÒPÉA¿S2%rà]½ 3z/Oš:hž}Ú‚¤Ø|À¨H£Þ;=teʼnDñ®ï”Í›8¬{9]é‘·Ï烿ÆwÞñ`7qT¹’%µkK(ñtìšvÖsè²ou .–n„¢/m|)©>ž>õÌÒ,d®#,t˜dú²pS‰Z~$Ä JTΨ*5*dñ A½­Ÿ¼¬ûJ¼‡þœQ4Ô!ÜW©LŽ6m·ýŒ¼•q+Eƒ‘ Íž£á¦OºïXªk*?ZøáV˜yŠR‡\T¡}·t¢èÑ"jrau3ÌäÒÏ›V>•;n®<>ªï äªÐ,ð“™w%]"](®î—ËÏZkv^˜OK­[t×CQˆç™Ŷ{`Í«ë®SGŽX¸D C)½Dù<øVj‚Ô«>·WŽ‘{š?¨»‘¼AC~óþ{YfÆ+ §ËH¥‡ðJ<•:æÙ+ÀQò ïÉfkõiCB"¾0íWeÞ)þŒ‹UÊE q-Þ¦oFÕÒ]íç™ÚÖS+¢4Løìƒë<æ7²×mÒìÒo*ï2TUæóqwi‰uÔš,—G»e™)¨%31Å®>ôl¸Ê5 †¡‚‰ø£‡óH?ç©O¿üÚΤÀ»>ÅÜüÂPB઴Ö8çLG­ÛI6ÛÊ3oÚ:òK@VÀM²RÕ„v„ù'ñUݨ(I¹ïd³Ì39`Ý ]ÆÅÂ%×gß*0y1aɹŸ»8sâ{?È4—4Rü zIÎ:Eå0³.¦yæç7°z ÒE<§¦³a{™û!ùhÁ_üã|%u¤ŠW`nñ0;-蜆ùëj:-(%/^bïøg¿€¤I±•îâiIVy±a>póÅ‚mcÑ—RŽ«7G»—èú‰ËîÁ—§hi`ËØá÷÷?n‚ïI\knž¥ß—ß 3ÎÐ':“ó‰¾LV´Fù¤8_ü…P¶Z#NÓ%–7%Q›œ’Uß%W>íz¦<Þ ig„êv¼ÇhŒ‰ÒµYbé ׋ŠKx½vªGe²Vî+@¿Ú ‚IÉœúnš¾:YÌЊÁžúéíS¾)H´©fíòˆðL]>/1þ^¢ß‘-7U$eÏM‰dw0Ìt¢’¡ã/U ÁrΙÆúfåÖâX‡,ueíû¤Ûa©:œ]Ñ2¬;ÒŃ>™¸IodÅe݉Ía…{lÆ¿_~­–·@8¿v‰Áù5ò>޾ïMÄjÚ@Ñè³s׬ÉFR’B¸~ibXSC¢P‰b¦MË:ͱ…ö· B4‰>7™wŠió¶Ò ˆu!mI(+Š€¡=Ÿu¢ì•/~ÈCRîHù}MÏus9§dh˜×èWPÌ`ð¢á;›ƒçø3~\ƒ7œxbÉàÆ2ëÛòïX­x ÖÖÍsɸ|ûÏZ~'ö¾öIÇä?­1Hñòä´éI¡n@¾ßÛÄ!±F‘úÂú™ë0îÍ ™îjDœrÛqFÏü»¦á"‰"–Šö´lñîR -" üœÌ—èÏ@Ÿ{IÆÎQªçÊø—ól$µYË»%cW©Ö›Ô¿©PÛ6§A¿ $Wtv¡™”uÚ·>¸)|j^ Ÿ†ý¦ØKý|;ê®iÛÑCUœË$gM¼;òµ‘[½2Kí5Ô1÷f½€ïs‡’z+Uœ–ê]S® “–¢BnŠ•Ú×HÒÏAÔí¯³Z¥X²+ˆu˜¹÷?±¬63 ,!ž¿­ÉJÅ §ê 0=ÐËw_2á,-ϵꔥ™d]aÑz±»¿>Û-´`úÍÒƒ•ËôÂÒ磟;$*8#ˆ{zNZ€†z×ú_*­ë˜ÁgHiª…“LdÅÑõ¿uÑÅϹ“)üR²sZF–›C™cnW&µÜÆ ¶äÀ@Ü . œŸäxôö)=]œ·³é8·Ùîì ݉C°(¡M1Ö9Š=Gl˜çëmœJÅU>]ÏÑÔµè«LJš .–Þüu6¤ECáln°úÓÊC½Jqª¢úwÃÖ[l‡-5ÜŠ‰Vn“,ø\ü²(p½ÏBw²ÁµTAT(1*"I3L¦™Þ¹J(m}à:ùƒïü—…hZ¯ƒrX¢%ØYc¿3‡û6(î%Çñâ¥ÄV¦ó˰ÁnøŠÏÊk:ÙY¦»ËoS¶éU.ÙèEìy'w?³µfs.áû)|æ5šG$*;Eöí©dÊo:¸úùÙq'Lª×#±]ÌÜézhžíæéJÅDç¥q¾*v#ÔÿèF ÒÌTÌ€¾yèIùöJm}brô€aV3üØ`‹Ý4µßw÷ƒþâ5³h/懧÷„ÚÚŠm$TÌèoòR:Í>€öÐØ2TKÓ®2„ÚíƒÚ¢¸´p3Ô{»ä]z×§À•ì2}ñ:ß>}3^RòÀE©û¥ï÷ò,ìõ×O%Ém?)vqBÔž+¬JJŠN mÕßp¼ÿQ”ÄßöáÎç7AÆJçžDkJãl‹ÍµSOfÃëÓ$ pºBí`Ìs#×§í€ò|rç¦à=Oñ‚ÂzÔ€:cHhN¢–ܦ¾›¬ÌèÌ•1 É›d>'SAX=NšÝ>ê~çÞnÇ mú²o`8´KCר$’U¡;üÖ„›ª8D[lÄý#0³F| iÕK6”Þ?¿KŒP^?ÅVÀí9§Ð•¯y/ˆx¸ØC–:–ÓZªÆÃ·(õŒñÛh2÷k]ê8êU­,88¦›yùÙôd§õ'Jà¹ek#¯Z9sàcÙ"Ÿ”ä;d#ÞùÓ;D!cÆ·^°Ëìk;ô_w¡13˜¿Õ¸¯ºKÃÙb®<0¨G·œ# §f`{YnÄ×OûQºœÔ¼°{r-²{g(-­ãÇ©H¶~\Dž¨±)ªÖìî/†‚ý8&ãëac^š&‡[eŒ´lZUS'šÒršÙue’ZÇ…¨±ð'É¿ÎJøûŠ€§&‡*\Îa rñêùÐq×Õ§æÜÕNJ®W=9GËf;±˜åk0«ý··Ök£ˆseWèrE‘êK§­ÑÏîx‰.þ†z™þŸÏô­æŸ¡Ð?˜”‹àÕô'ÓN…%k#‘å¢û„`ÀÞ©§Å‘!IÖÙÌìoZ{¥OyxCµ-ßåQ‘ìèÐE#~ÀvË<Éß8jlLãBѽƒ° ¨] Z!™È­·«õ»¿g¥ôz)²ò.ýø/!+Ð쬎³NÂônŸ>‹ÃøHÇØæ_y¨ÐÜ&tœ? … 2k}ÏÑ¿ÖsôFQQQìqqÈ HáN›£¿ea>Ï3 ú¸;øOã‡;Õ~T Ç~7Ól.Ô÷ý[_ ­îüÜf¿AìϘQ]¸"Ë)ÃóV_·JøjV»}éT„­·,,Mq°àù½Ψn€S÷žƒâË1:Œ¢>Kr&fbæ;\Þ¹Ýgjà>ÂL"¦ÃîC_¢)BBòͪ}ûZòñ‘!!± „X(âšøèªdtkcùaQþù ª[ÄϱûHÏûÏÒ>j”ÏÒãš¡”vqc“>D¿ŒÏtšB–Ç\ëÏI™â¢å¦ Lm}®gŠA¹ÏMA–9¶~~—®añDB~¿õsJi =¡Ô½sÈò,^nÛ¯IcÚÐÈ*†ŠÑ ŸŽ¢g}¯‰Å°Jî‘Þ«Vq‹ô¦'ŠRÏúXÁ¢6Þ7C­]Þx•´û6 —2®Ÿ‰èYcEš½žò#§Ÿ7¬T¯DfäiÈæðD9qçÎDáÐ'GWc-–ñârFV¼]ëy}y6A-ª[ä­%w£ž¥ÊqŠÀ”n6ÚgônRç\ô'bmØwÔ øŒ•Ìö¬W“í襌}Bf3mæN£î>³ëìÃH£åBç Úé1TeöؼèÖ^ÿV׊ðÄ@ ‹íæCÇw¶g"!o0HS˜+Žè6»Š®JÊ×/Æ^ ¤þ~¿çøÐ–3†‚Í!ftUû^©¼^{QT9pt‰E~ã–ímû ü#*)Î 6äéúl½Š^'I+ ‡±~ú‹WÄÑEð6™•ÌÌÈ¢àVšÜüÒÓ£Ÿ°ç½ž¢@Q6·‘§MNƳmB˜ ¹tÁ@ 2+ëw3MX/]„ON¯"·žŸû§Oãå¾Þ+½7ø¥ûêùØà ° >ÖÎÉ‚S>kÑŠ>w4šŸTREÚüSlÇ¥ÄÀ>7MðƒVžcÁ–ÞœÅ_àáµ½,ZYn ÂÙïE¸vtCpr.rû¯vu—_ü ­¸€ºœˆ±¬#4bØnáK ¤!¾ñ°_RO/gtVÄ þjY‘ƒ¥AÏËVJîšeŠ Z tB/3¤‰Jåa:Ã.uªÀ_¢–¿SxdETr&¯ÃŽ-eøkݲéÔÒ•9è­e•j0òÅ3ÐIÚ럦›kï8;ó£Î½‹ 3íøî4d±ŠÇF&Ÿ0´ósôûJ{{ :ê-õ·kšƒœì!KØmo¸{m!=HÔÜ•`6b9†ÎÚšå¨eMèü ŒJ úÁòð)ÕíÄlÿt«ïÓónr ¼V¥u·+ب’``9ëÚ°Nôi\[Ó¬Z~X…ûrÛÀ*ºã˜Ý7Ô!âçïJœ§ò’)ÌìÉ¿4/3¼Õ­:“ø‚Óÿàâˆyfí­+ YÏŽ7 ž`Ae ð@нýÑ{¹ùƒã ÉBøWk€îtB†¯Érs& íÃŒ‚®$q£çÿüý «?WsuP¾ÏTQoÏÂZ¿°ëÄ¡ÉmKD{€x¥jÐcWIIÅÚ³Ñ5ÿ…‡Ùت-¦!&-7}úÁ“IÐ6º‰÷Éœú®û§Ï6sLY’†{Ft%?¸ÕŽP¹£žd ½àR6w]CŸ¥óùdÿ¹/¶ÌEÚœùW€¦³Œ (]XxÕ4ÞõxðiT°•#ìgE¸÷ÎÞûi¥Ê³5€'è©Ú¹­¿Žÿ•ìîY¡¦œÜ<£EGÇÉkǧTîÍ$qh‘~¬ø¼NÆÇ„_âYÂ;}ÜÇAäQ¾úÞ«·ß 4x(–=ä¯7|˜w œy¹E.«ª“MõXÅEg´çqwRЪò²«…W— ݬÅ7vÞ7s–j¿ëÞ½Í4ž„Ê“«‡8:Фžå»æçÑóoeZTTëé¼SâÏÌ¢Ð6î‘\ ébGýÉÊéZZ-`˜¼} “£-Svå:´¶Ñºv‚máÍÒѱŠðªñB§Y†gŽt¤ÇøBjǧq è¥ho«Ñ¿ÞÖÌ¿I8ó”ßwì{÷s0Fm°™ò7½ñÄ£*I -1ôC‰3¹@ï±bû +A†–Üß6ÀïDŸ±æ›!ÜY¨¹}þ‚þ¾3=°Ê~@²aâ öÃ烢 :'‰uÇP쟊ÁâbðÃù’ÚGdˆÈ^®?[Oû“f“÷/–ž½U¬Â ˜ ”O.(óÀ­ Å|GGû”6§é¦‚1ZÀ¸OO+ν´41ø7?8o+碽:ÒfÈö3!2¬Ú”¤êV¾1F0NªÌ)@ϯ1=ÒW }ž=%ÎÐ"^<ù‹†¥~ú®Fî·§’½ý =¡ÅÞ N7!t~!'äMðˆ¾0~ÆN×&¿ðÛ:×ÉÄ.§J Ï?ª§¬»Pjø­%žy±òùÝÓ3ÕšTx‡—HÏZ5Êá¯lhiÔÆOVSÖcƒ%€¬xH}Ÿ–¶{ãÚaI¨jí¯O”»kCÁ‘vÛF†ÊÂr¿ë8Õ„eHLál¢ë{CÂÅ==¦æaç×-ašaã^û*ì‡ï5@nÑ{fRVBÊ]ÊúAïê„«<°.À÷ÝÊ¢)ËåYoT×âDZgÜý›'#nòêOƒKÄÞ»à?ÈÖ?óYp@Š §ñ„NA]Q#Êsզξñ9s-g:+×Tð”ÖE;a>9MÁ.‰“Š$XìÌ N'lŸÎ–«¬6¢=^–àë°^ËéI ¥Zh‡ÙndM,ÓÀG[âd®­X£ß]¾uÂ}qî×(âÁád°òž÷ÙÌ“jÑ÷ú\‘Aø³[ñŒùÛ/¹•TÃuóÂô¾¶Ê´¸!Ô'û¢Å]J¦ç0°˜¾Sî\މùN|qÿáòöAX­Zò ÞÈjKç·~ ŽuÛÐ,ÚOu<§úÅÑçŠ;¢LCÉIÊÒ%ñµ¤wêEx{µÅ³(&!8®€ìd2¯ŒIZtEEÿåã¾ùú\è; ¥5,vQãG¾#l¥jÇ`I%žý êh?´oª»JÝéLÖy+ÖjÍkjæÝ…b™T"\0ßÑŠ:>PCrir²ðRNü!JOdj€ï¸»ˆ¥’|t•M…£6*BdÈ»HáRCh·2²D5ëM=%~‚-ýFòiXg­Ocß¹¨ñª§ÉN×WØŠÍûÝAÎÌ012ü;vÛÅJì‹ Ï^7¥-ŸSöJäf:Þd¿ð·N™Jň6Ë#]–þ¡†Íúo?Ð1¯@=3X0þif-±%úXHXcWÎK/³Éî»2QÞ Ù þ€ŸS=ÍbYó4M¬ó-«é9\œ¢–/ôfö …qòKO$¿ˆ½Ã÷ØÓí3#¨cÛ‰ Ô›•eúIš§'Í´÷Ϋ]€€¬ËIß:~”Ò•zœO$´Û;>‹ç)/ðvÚuu9"ž­`mV ®è»ÄQñ}¡Øtýj-•ÇxÏWÚ"n™ЦX¤äû!³Ã*_½¾tz :Æ€Î8=/ú#¸î¾B§Ñ¼¨ˆïžê™RP%w¥Ö´GÎvÆ/K鬸JqÒ.-¡QœwP;ö)%Æ€fV’¶È»F¹×½(ÌWý\ A(€–ñ»67¹¨NX¤@ ä3)Y±N6ó€ÂŽreI)ujf§}§ÇnteÇÙh»-ÉwùðÞ«P‘µëù³pmÒ»Æ_ÖßxNçRsׄŒœ]Ÿ$kgùâô^ &wÛÙ­œª ¿îÐÄV§øÙ û¼¡anà˜¦-Ïž¡2Ë1~;uz,ÓñÓÕjPW´ûPiÀMÒ¨J\\¯Ž¿ o%»z§‘˪ñÒyé«û·“÷Õ}EéÚZNáÑGΦëÅ¡Á«æÖ„ŒnXhúEJõ¨FŸ|W%£OÊ jù™çã3P;tM*«VyGÍ‹jùYm¾Þ6±¦^ЋYˆ` w~<dUü"¤å\"s·˜:‹ñÃvÈ#W&\àþ> ž2ÒÅ™š¯ž,(”L´kêÃŒm7•ï\«žNDažä/Ð.Òã”@'¯ÞÌqlŠ0,£,™*‚r™U¸tãL~¸ë´!fWz«"²¥±ì!R%ì™gÏæš©^5‰cêZzXÚæ3a³ë›Žò\.<5SÉÙ^Ùâèïs2'°Hœ¤¯*¹X²:UÊI¢3Zkm&±ù@ì;4ý¥ËSÈåSØþV›÷º‹ú!üaI”+ª•)€=G¶ã8¼|áÝ^}$8Ú½!¶ {ëSöÛîÙv†¨ ÕöFµŸk‹ ËÐçþß˹)n,¼î‡.7%zÕöɼÀô=¶„/i_E-ØÆT¦8’U}X´'&­´šk)£»nb=·úõu=½dòWn–Kód¹[¤¡c&/ä±Q–³OßÔz«?}$=Ÿ_5¸G9}ïÂlÌãÏ‘uh™¢¨h"⯤ÁDZ4aш“R³ª“Xˆ´JÇ,î >q0Ÿ"ëµÝw€&ÇE…—µõœ´éÄåš¹£™-Tr—E‡èz;tÕj?ßÁÄ=a÷‰Y¢ø… ^½öSò÷ëæUbŠÎɵ€”Zi|)O0§»®òCÊ?ï'ÏS£¿G!-–/tvê HÛä}†4Ræé)Iý6¸ŸVš ;{nSÈÈ)*Øâš¯Y)·µH·kú—Ë•0uþmæÛ.&uÓH~¬[Œp^yÉ/#:=’'¾$ó ÀøXZÎ>”V¥“¼çòýk·?Mº„QHîûP’ž•‰ûâŘ™šÎy› üDgðܘÿÅÿC³s¹óI2yz˜ òEgn“Qúy–EÏs†¿»e;Ÿ^AÅ›ò/ĪlEQ%çš+ÕÖß&R&¶øðÑ|Ë¡^q ¼Pû2ãrã¾Ôá˜vŸ±í„¨9Ę$3]UáQѦ°¡+ôÃH?4Ÿ­“eX¼Ué‹SÇöjüênM_f×u%JÕ͉´¼mQ“R,3™õYŽó¸—Hòø? ]DPÝU¯†Êúƒô©êjæ¶pw½b1͈TvFg°î›lV@ÒÈ#gèPÊù‡GBY¸z<äÔÔ˜W„êe|ªÚfªò÷"IBþÐf&9²¨å4ëÞÛ»phl¸0ƒ¯xßÀ·E‹¡Ë?À-æ‰OµKÒ:ï!C†VŸv#²BIöú®ÔB1‰mÿ'\;”| O'”´5Štqï¤ÍaESà‘@c{,ÚÚ—WšÉÔ‘°)4·®;WþÀhòdCÆ*¢gb9ò«ÛûúÑxÓNÙLÄå†~bd™ik‡Ð/'˵vòïƒÔCl©©ñÓ æ(}jŠìj¶«•Qwù—¸÷֟ゾooΞÇ.ýúÚ–¶½ÿN‚IØÇÆj×ýþ̲oÅ·²ðî;!9Oý‰¼âòxþ\ –†¶÷~ Ôjöp‹(xý£ú{eFÜv.?û«e÷ÅM¹ƒ(´éÈÙUKEÓ Y´ëÕQ²¥-¦º§CQW¸ËŸ.úf&åt,IêÒ^%|&Ówcûs„†¯¥d®¼7náªÝŽôã9¬"AŽj…§üë-÷Ö}ëò÷펑¼ÝMB Öi#G‡8îÔjédÀqlÝ’DzÒžæöV:JÔÍŸãå…+µ˜¬UºˆÑ×÷xH¤&¡0·b—”§`ü©ûð—œb…±MÉ’þ«¼jn"­l²L¶|ÐŒ6(SÐÝ \šKñï72£àxKq$ŒoNÁÖ‹«Ÿ¤Ê°á¬…OU*À?©lU±gXXNŸi?¼ýZe¾JÊ÷ywºÔHÕ‰íÛA4<1t»vÆUò˜©n+g o»å :-ÙÎMëh$eéÔÿdˆHéTÝ&K•¡ëÐl=‡äž­¾’ôFöÚAmd°'UëŒz¤¯YéTÜ|´”*DId‚ö_Ãù8O/C“JûcìãdTðËX>è×ïRñ@WwžÐº8±Ê¡à]Ì)Îw·ï¥2;?¾ ²B¢iM~éF¡C•.=âÖ¶àúß9 ¼5!'Yúvî¤eÖ_8Ó”cþÉŠ ®NÍ¡¥H=QR¾ÀM±¾_eËæZ_ާ>ÙhI0Z#‡³œ³͉lPþv½Ï`—9g¹³e·”>q~¦êjR±ÏRÃ,g³l‘Tôá|$gæÑsòAï«~¹ 8¿f°JAZ˜ôI\#¢+HÄÐ[^¡`ö€ÍÌxʘ|^†’¨q'žèÈâ…õÜÇY™LÈáÜgA›ž>å@õögZuèÈ,˜N¼^˯Üý<}²MhmU0ÊIC£ÛšµPV./øe#¹Ð»ú>é lS`ñÝÖ‡R”É‹zžJ 'ú5¹ÃÚÈ·hðÜlÈ4¬Ì’A¢NG®Œ¸ü]°ÿlÿÛ"öV;SÑ×xÀ‘öYåóÏBgËkóÇ7QIwx­s½óÙÂõ1¯žph)?}©äF Ö—Ö}Q#1‚\ª®ZÄBM:{ñÅÏavU½ˆö`Õèá‡s˜/)ÇÄ%®bg¡þK6jV.®š+sæºÏÂþ-î¤';]Õ»!Ë%UZÞJ5²òg»êìîp¼F›ëTìUǹ}ï¨On±§ìir!ÛÑ]ÚØŠ÷F’%}¢EÖU ÛÌKÒ•¨Æä#Ôð¼¤@F—ƒjÓ²¢$¬HÛ¸CEU:P­Ü}—QÅÐ' >¬–Ñ%ÿl›íµvm°^–ÃfEļ°G‚° OòÕa;BÓjÙ}N"O ¥T,o9ªÏF•íå÷=°N°Qq7ÓèÊe|Þ;ôÓœðj`Ìw/N¥ t­ç°Î"êvPꉪðîã'h7žèg#ïÁ„Í*MSW¢VßÓ~ˆ­ÜT<ú8QžUôzÑ¡Ñh˜œXÄ·=Bw—|‘lGIr¨ÏWËö²æéï®W‘¢EüF ‡|‚'r…2WïÐQÌØÐ¥øš`ÃBnB)®–²·³}Ím”ØŸÐ̾t÷½Á§¢íTð/õQ6Þ-ø³FÇ—ÕuÒN‡HÝÔÿ >Š/ì#››¢u¡Û0ÖĶAškBCàÐx›8»ªm·;>—”é÷dïM¸z@ÃjÂÙ¦ïUgéïF \óÜ•1Þš)ù$ú3áù†~ûôsÎb;Y@)ƒÿ’$#Àf¦—gN"Û—íô f(ûšÑyVΫ£ìæld¢å þǾãg«ÐaüÓHiw‘&Ô ±{ù!õ8ÄÖ‡?'u²'ÁWDL|\fhqbË›‘­ìµ¢ãðyÍɹèöqÙ±ÛW+Š‘¨ð†èu“†9Qµ2Ý‘¹ßœPËÏOaS§¡e|ß$Ùø3.«úWž~‚‰^­ Ç¢ì¯#½½®©2žR ¡“!^ó&(œ§†„WòwêÀkð,{&9»g`“"Ì6]Zoîmâ¶lÛö ¹”bwGâÇ :nÉt‰~!!­,BÓªzu |{Ñïïw’ñh^/"«ZP|è‰õT÷Zg’Ì@¬GÈí»ÃNQ±°¹Þ<…ݳýÿ™D}¯lÛøf@•Ijà¡ÜÈÜô„vâ5Õ«Â(çÞ`Í·˜ |ø(¶šÂ— 0d\i~SZNPº^S¥«¿¬.;Íi“rá4ÉÜ^´ƒ`'6Zÿf=š=slÍùkæÑoøÙN¥Ð õá3Åýë(–p¯A °¤¢Q‹ ™|âÒI† •>`ÑúºVñÉpr4²CÔ{]*g…„lK|ïg9zŠ8F„ÍŠ,: ƒ¦Ð•Ê«‚ùÓÌe·‰«å¾X(7fXع¿ø$èERƒ}[2{ÿK?߯ë·—®2›rõåM;â«rwÞ³š—€®½­‘ÁŸO-"xPëõÊ[J>¿ùu er»ÒKFÊVïW’L¡±kª§¡¡Ä›ArçI¾ížFH’-b¹ç¨X£Äù‘þ&–8âŠç³ûþ©l©f“ø®[Ún-^’ÉÖøDˆ¥bd•u0˜¯)Ë8O<%* †«×ì†*¥­u¡®ëeç¹ !‰axÆ)Oj¦XP÷Òf‚ÅYær¨c&š¡IÈM_žÇ‰¶Â蚥õwEo-®öµ"¦e쾞Ýjb(ŽÚîÃïe™ãú/÷5þÞªÚ ¾oØ‚,ÚI/hgO!B±Ÿ–H½{¿&S‰v~™¼Þ!®¬Ú,sC ?äÉÇiGÄË~ÿÔ¸j¯øŽ1=6{ë¦á„ùÑÜvãügÀúû¨Ð°»vþT£›»¡â%ÇûžÍÅÊù\LÎðo°·¦«w0Sޝˆ7éhž~kœÕhºËøsCÝ»õ‚oÍEd?1uÆ01+¥î_‘6Ù5g²î”| 4œv¤þó²\âõç±$=oEt ;JqÒi]Қі €›Mê„sçU\øÄʰû;ŸµÀ­þLR‘ز$–“|ŠLò¦æ†|.\'‡kMBÞR›fçâ($m„ûGÛó–ˆ)l¤ÖáY˜Ô‹×,ßÝ«d¿ŒåŽ&T69•:ZÐsvͨ¡çíFã~ø†Ú¤žµN9ö$Í?e9冱!¡<4»ödú</VŸbÙ·œöbã›;·gž_þ‹=3¡j4ð—e=39rXÒo tmû_Òz¸ì ŠÕÎý7z¼˜9{dTÒL>Ý´¶TÖ¨[ºß6F?F“Ö¥ãçy®Žç`•už³ïíóï\Gwïó£°ÐèQn%ófÙ‹;ô]„+ÎáÓ“TÛñ±T“<‹ì›$sq »PÕ«»”—¹^d«Õ?³}sÃ>ðË_½Ü2î¬g6(âô >×ÿiǽ?o[ušQ{X?fJEëÍkÔ)õ*vZ&'kÊ6Ùcª#›œGRŽK œ¢‚X,õWÕ• _䯂Iì–ÐA-…Ÿ” ^ù•wÌ”!‡m?÷£ꛈ÷Àcez‹†ô¶~oé}dÔ¤ŸRÎŒÀ“Ãï‹£0 ¥ié%üâиxãc=ªq…¡ÑçÎ,Q¡o—Ó–õžüDÅg’Ë·<{V÷.å}µÄpú¾2ÇJ9³¸P:Û “ OE5IŽf‹ŸŸÛ1¿ ¤ú±U„…“¹ ká~ÀcÉQ»3ü?½¬…” endstream endobj 122 0 obj << /Length1 1447 /Length2 6867 /Length3 0 /Length 7849 /Filter /FlateDecode >> stream xÚtTÔÝÖ¾H—"!) JÍÐ%C§ éÀ 0Ä Ì Ý!" ­”´tJIŠ´”€€” JˇúÞûÞ÷þÿk}ßšµ~sö³ãì}Îóvf}^9(Ò ¦ŒD`x|M°8@@@O@DÄÎnÇ8Âþ‚‰ØÁPh8!ñ (s)B0×qšH@ÍÕE$€¢€€ø¿‘( €"Ä hòÔšˆ]é쉂ÛÚa®·ù×ÀeÍ Š‹‹òüNÈ9ÁPpk  ÁØÁœ®w´†8ô‘ÖpÆó%¸¤ì0g ~~www>ˆš‰²}ÈÍp‡cìz04 åƒ~ Ђ8ÁþLÆGÄ0°ƒ£ÿàúHŒ;\Žpk}ኀÂP€ëÍú` €¶3 ñ'XãO௳ù€ÿ.÷Wö¯BpÄïdˆµ5ÒÉ‚ð„#l6pG@[Yƒãá@Ð_G4ò:â;B¬®~w(Ëé ×þ5ÚwÆ ùÐpÇ_#òÿ*s}ÊJ¨ÒÉ †À ‰~õ§GÁ¬¯Ý“ÿÏÍ: îï¿ 8jók¨«3¿!îâ +þr ýÙÂ0a1(æ€yXÛñÿ*oàé ûíþ‚¯'ðõvF:l®‡€ùÂm`×DÞhˆ €A¹Â|½ÿÓñO‹@áր̎ ú»ú5 ³ùc__> î0¸æ ðë÷ï•ù5½ H„£çßá¿ï—ßXW^¬ÿàÏÄÿöÉË#=Þ¼‚Â^°ˆ^/|ÿYFÿ« ¿sÁ$@üO·×Çô¯ŽÝþ"×_âàü³–òšµ0×ß$7°¾þÿÏTÿòÿcø¯*ÿÉÿ»!eWGÇßn®ßþÿÇ q‚;zþpMZW̵4‘×2@üw¨ìh5aP¸«Ó{Áȵä¶×dæ ñ ýÁáhe¸ ªÇXÛý¡ÌÜð—Ôᘠÿõ¶\g ü—ïZ_Ö×ïúš—¿]°kùüs_%„5úKg a…‚x]ßôµ% ð^  óøÍd?‰¹N\Ïè °A¢ˆ~]«€ÿZ¬N_ðo( à‡ÿ‡)àwüÛ¼~ôø]þÃðcþÃð»þ6ÿÑ¥µ+ u­Ößdºá_öï§ó€YMO"­%Cì«BšO*äèÝy¿„H{"ŒV”hÝÖtƒ¤Ns£¦äÞ¯F.o‚ ¯êŒï 8X|ñI’¸;]ÓŒkcµÌã3B.}¶‰Öp­ª·µ™<D@mïî6èõºÉŽqSó¸ìÈXW‘âh(;~c·‹ÏY·ÅGrs(& ŸFLLäfH‹\FK™|¥ÜØx+˜ } ;´pOyý4µ»$¼Ô3S̃_L¥ßØ uV?ÊØx˜ò­C„NýÉ`Œ}¥C‰æüWÐQsH —z@_†U2¼2r z°Öƒ’ô†DPq4º‹.È›ßfAÖ辉»1L”ÍŒÔö{©Å±?zæHã¤s I§(|BÚ©HJÇò™W­(vîZl~Y÷{¡ †'#hÈø¥pó1Ïûã¥î!‚ÍBç‹áŠ ù&6ãíX«5˜RABs3 gÌå'7/NÇÀelrCÈ#gýUûâûdu2Bë:ŠÛ3jÛ䀞ÊM­%µïڇɜ‚›ˆ{Ñò¶ìyPí•ù¦ž—´—¯‰å'¢%Äi:(Ýð¼G+Ö+pºghêñqv6ÃØ…fÀ)à«zÞä’–¦Qzoã"ª¾]ÍN‚ï÷«ƒ„fÏL†Êónkëeª‘T ^j?8a¹\MÏnwÓÞ¥ܸ·ÓU++û¼éqáˆ,Oc²xï[vºÞøéƒ\¯úí)•is³‘Ѳ± 9w¾Ÿ«²ÓSDáª4& 8±8»£èQ­aëÉD~É4O­QòXÙþäzì͂ꈹ ÂFÁï‚ÃCíÎ.uýjàc)W|‡ÝÕÍÆ]±qÁáçÚßJB¨®bÌm5—|ßÛà0»( hø€¡ÛËãë4ÀŽíµ’>aó‰uŠÐÞ`t£)Ux|aèU÷ÞfÑEté=ì;Äïýê§!/¾ì­—Ü–Ú`/ŠlÍ¢ð´[!WÊ›ÁU›ÿù!Ét@Ä…ü]¹}?ù ~-€Zó~;UXL*…*ÝMó{|¾Õ{ÑôL{„3ß5jf[ Éq[¤‹ï·SÍøk'¸œßâ^Òzßb¶Û0;íû¸#sÔ ±ìƒí–„Pš€7`¡ÎPL'ràMUóWÊ݉#i^ñ›Šòü±LoÌZõ4ÓÔî0®,Mß§CÊU'¯_9–̱ÉnœQδ|Æ“¾©ÀRhYÃfÞàÏ  ëœç6H*çF3 ÆîTeÛјɰ“,í¿8$1î-“BCåDc˜ÊSÍ.t¢Ö”—cÍF@8ýÙ?Nü;ßgßü.¸NG:,Å$Šíó4ùÆÇŸÕ?d—בdmEçnŽí9SJå¡ß±jišWÏ0œKÝa§D½ïãÛ__YL)qVe¾5ô2XôúiªonA?ÐÞà6Czníî0£ñlÂ*¢á2œžž}ìÜVg¢ÜW²é¢fÈ É¬¢¶or=éÌäô¹—/Eé[uæ‹Øk*kq±/»;ÃtŠm9%ðÍE‹‹½çaQü‹öå:@£ÃÑZ$Úha7g êJLj¼´•"Òx¥ýÛ¼bJ2¹ñ­úRXß©ð•::o+£¦@Ü«,å„FûVÄ$Þ{>"Ĺlè2ô$§»«gŽ&ÊÛ®'÷ Î=NʯöOT WÍ)ÊLÕpÈi*f 2t†ìÄ\ì‘¥Nu”®ö –ÜÆ‰ÉÄÛè[­¢”ß3̾dÚm¸µôÙ_†E9DǹÀ7„©¯Ò²÷Që7hÄeDJþ•k§è9‰öL¬²d¼-/$ Ê&©ènf¿ûbÁ±ZuEŒ¼?Ã̸n¯vI¾à–8ÏM@ÕøK”]vY˜åœÃÐ2k?I~×wm4‘”A¦QŸãÆúC%ûŽò‘gïç—UÄÎ[¤êKI`šåpâ’…j*WߟjžNê:Ö¡Gˆ.?V~Òõ®ÈõžŸµ1Ÿ8e#ž(Ó§GñèÔ*÷BùÍÚï;˜ Q“*¹?|ãwÖ æRYíbmt˜›¾oÇ.Yíz¯$“rGÛ‹CÇÆ—°¯x¢^óôI¹ýÏ £ã­wakx ÿ!ž»ô‰GÒÐ]’ûZ§®¹Â,lº/€ôTOñê^õ‰àèlí·Ujñò*p<,\Ö4¦"^Ë`š­æWUÉç| ñ8o¬e3#À&û±&Èï* ÉtØ«Ÿ]wùˆdfvî¤qÿöÁ{Ö«Ò7¦^ZJ+Ì:#Œ±ÆôM[¨ŠC*ÝXAÓÄWl^ Ëi7;JR"”|è†C–vQœ&¯·Mq5ZÆöY½E×ei?ù[Ô‘Tñíø\Î÷Bð¦/M±Žj¬LZ‹uêIÖí Ñ><л_¬|ý6*ºŸ_‰OÕHÎ'SE=±nãÙÑŸ7ˆœN3<¯ ;˜ïèe²™-`¥iŸä[Y޼Ã4 Sß!pw]Þâë^!—D¡ÛÀ=]^rš‰¢ç?èº[4Šk9bbc EO_v*.ìç=›]ôx”þîØ—ø®gñûÚÏŸâÞÀ;ªñÏD_j cvU à ·’Ô† sòâÎäˆ Â5~ØŠÊ›ƒ®¤ä¨Ty½8iÖ8=^æsçÆ>ÇŽLöl (Øã¥Â9ªÍ›Œüù ß"od{¦ñvPEOá§3ï56i§´áýŒ¯Ÿ¨æí¸¨ÞÏ;}ÔNÏjŠ~Bd÷À΃¯T âŸúOc྾¦¯¼VjÒ}+yHnC ¹[[î©,ˆÖENÌ1Šö 6¼L·àžu.êí— ¿’x¸Å5™= bî; ¹£’5â&-Ñí–&•ö[Ðx÷0µV€*é.w<\Ç~ÛP=\Ý9é_ÞL;FcP}Î2ñ¥àxWQ’9v;Òð\DA/´Úý¡oO±ÐÓöy!fÇLht­øÛF2ØEÿÓAÛÂhÉ«‘šŒc ÌÁÐ+Mú’­£¬ªmp ˆ!² -æ]=߃×&Ü¡ÔùË#]Ö&’^ÃÛÄñM³F<îÜZÌo"™Í°v ЈÊqDDóùù÷PFeÁYÕ5½’ùýƱ¡Pw÷CN.Æû˜TüÁ@Ì+¬3?—ìܹQyìOÖÍb%ð£7‚›%Ò=xl¦ù†/îâ5޾ò”áÀÍ Õ–ê"ñˆ&¥²x´ °ƒ0¾›ªê¬ª¬ÇÚ7±ö*(@Yá[ÞÊ®ž¾rŒ‡^­Ÿë¥I²LíOܰñÊ^Ê_>ö&g¨®ò©±˜>!f¥¤'Ë{ò•w0£Çàçw¤­¦‰ÀŽÇ&XŠí:ÔKÂØ\§Ñ‰¤š ìÃRJóõXC1?·ü¥‰»ÚPMqån<ÒçéB6Ž™«E^•Ý+|$Zäæ‘¡ Á±Ô½¡ß»|õ‹h'–)Â#½Ø/+äLËw˜D3wø÷€X¢“¢é¡øÂËϼc³Úà+„Ï6äZ­x¶±`ZfºG¾ëLÇÄ)gŠÜ›t‘ ´ÍT­["¶†ÂË[,Ã¥»v½šË¿>z_‡ T욬ßMÛšíið/Ü|õüTϨÇl6ˆŠ)öqZfKõMBªc: xøTä\TgIÞT3ÍY7ué¨Ç ò~pTûŒnìH†®mTyC¡ç9®gé„Z.úÈÅGÏW÷pŸ~¸¿³ÅíOªyÙc¶âOË5‘⎫ýšü™fåkÜPñ5-ÂT–·ñç´¤-9ËTJ»ÐݾP?2jœÝ³InE6coxôMí|I…ôãn·¹-ö/4oËodYÙ{Z<1^»Õ×å—AdêÔ¸€·ó䣿€—…•šêôrÚAp´7ÙfJßâ¨|&Kÿ±óc —‰J¨DúçóÖ±¹;½!;}«û|ó· Z킜O´fâ]¾+Îñ”ŸÒ,['!ÇG?»“亭¤…à^øM§YHò-EkŽÄR'˜» W3_Ì›atºcQ¸Ï+ÏÝÇú‘}ÔÝ®ªöØ â£CÀšŸN<ÐÍ‹oYus—¼T+X¬Ðšž——²4D¡yz*˜Þïê„(¨’pVô'O·²çÛææ¸«´úŸ×NŸàÝórÓlª~‹à)¯hô&”ÉI&õ$ˆ´LÒ®’zà­ÖéØ}Jk‰ð~Pè°`£7Ýå²ä±xÕ¯˜eM[¦ÜïIAÄÖ7¥òµ$ÉbFÊDÝL‘$Ú]ü#ö¶ouwák°s^[aÂÏFäçYÇ£(%« ð|¡:5™Sø•`–Rˆ#ׇ‡lËÈù+daëÖ±È>Ÿ;Òq¡XÍe„dy󾹿ӈyÿñ•”ÁvÃ@8+€#7ŒòyÔ‘òýWâÑÃâ+ôÚ^å Ú¦û~¥(fßcy¡²÷ŒF½5¼ºÙ êNJŽÏëêF6/GSÇz;Dôd/+ÆùÇ,Z±È3¸Òª>ÌaMO¹Ã|“½N×ÑÄÜfHöûéft‚mã«jû®‘B½•¥v7W]:ûÕwî:á7éEÉû†°³,>R[Q/³i1&Ü&ì®j OdQiÓÇ-T ·“´<¾÷Lð#Rh„ØÛp_¨ß8¦‰[}ìAjz~çC:Ê ¡ÂÏóÉžÓ~©nx/ ž¬Œ“þôiazZ&¯¦.À€'f?vð$ôðÙ&oüѦP?û >—RÝÛûhu¾…Û›Êtº0ÀLÍQš¶ãªŠøôóPjÝÞ ØFLÕ¡³´Çç{%Dh"½à‰¨weIû[‹Êþd6’/°Nª×Ä?(KŸÚ±‹?e§öêh ò.ÆÏú°fX¸Wä$§Z Dv>vRÊä訮-¿`CiEìK’ÜŸ<â1]¥ï´¤úÀ£ÊæR’¥tÆJ ·M±à¶Âõ»la¨²ùP‰7 g?` ЫÒœþÔ…Fݘ*§+Ûe*”Âb ò"Åýæ >"+g~¹;Cö¶.T@*`B¤÷;n[úVjk·î½têvktô#©]f…•¬4¶Œ~ïÜ|NÐpÊKèY4qJf]l¨Vºk;qŠ¡ü²AלŒÎ‰ÄBÈ‹ÁoyfÙÛs¡Ÿç•)ø±«3á•»ôPÇp Ø$Œ»ç¹èd­äìǃ?0¸ïYå'ªyˆôHcgBõaý»µ±ÖÏΆï‚u?Q›}ç_\£%·º5WBÅg›HZi)Ör}¯}0yiÐ)¯c´ÖK­—[Suq¯”Êãñíª¼µš`<×4Oå±·-ÚòƒÏ?HJ©ÌÉÊ›ånUøëœ´O—NÜ`±v cv—œR·x¦¬AàiؼðSïMÀ勈xåO’ïÜg-J ”¶¥@ÕÏô—Fã©}ä9ð-ÙŸ§á.Wñn`Äsùꊵ`)€+¡Ä-å"“ðÐëVEÏñ,“»!#@+Õ³ª~ÿÒ pC´®*v¾ËÙ”-)~ÿV§È°âú­È09ûQSo1ê¼wl‹yž˜þbP±7"'/‰,m&PlN“4[Š]c¯*cø-!¿6U´ð9£öÝ—Nbúˆ§'0Æ.µ9óúãåÌZÞü1ýýÜiïïžÓEQMÅÈÄ~<Ô_Éþ¸‹CIj‚5õT›Òš­/yêJŠ»ÞšÔãc­••UÀ€÷"Mhhì`)áMIì*Çå«}ùªS~kråN "[Lƒg œy°›Ò®’¦]õ];¹Õ#:)›^\m ÷CvŒÏˆ8czb¾ÜLz˜œ ª[ æª×çþ2åÈ:p;‰…>ƒñLh©Ûç8ÞD~@¯ÐQ#¦ùc§ˆf1P(®r¥ÛU%°ÏÝ¢ô^Êûæ5²Ú{F”é£ÉƒD[ÙÆÅo.^n¤ì?Úa[å×*6¯ÍÓ—\Ò‰U¹Œdéy}Nm]!ƒÃôŒ)¯’¿&Â*ŠGÁfϳ;‰”‚è“ð‡¿“¡¿s*´öÐÇݼ?"|80Ü8Ý¿ÑÄÓÆã™1ÔÿX%—eÐ{Ù¨#R§Q7×ÒA“ ¯vW–½iÀŠï¤ª®·wK·›Âg½-ÙÐ Ÿ‹%'Ðôjq9³¬-\íñ7„ ™4ÛIO2®â–ú°ä<Çc¨yê`•o68µ èg+½¨*ƒ ¿®ËÕ³)b_~[&Mµ¨Æ½­Ê­Éǘ1ªœì×P¢£¨T“;ߢG9½¶…»ùÀ¼Œ@Ž®ASkÐí« „áFÚㄞÊ| 2–© ="ýüÕÁÿ~ŽÖgæÙª>Xˆ…ý=u^¬|xÚãZ‹ªç40žú¢ú‡Y‘S¹ç“Ƨïª#žeÕm …šÜJ»dyxVk[DYQ$œÂ¡–h4 ·ÇKVá,’ï“i"‡A‚öÙ4ÛLx<«X+¹,Õó/¡éK&#XÚ!%š‡Æ{€6c2f \é°À¨©ÌïT‘BžU ±@ £žV£2…B.ENdZ}DM™wäö,uË‘Q°¥`Ëf齦±+)@£‹"ë•ìO î‹ä;´VæÃ¥7 í”:7IP™<5/Øögøœ|#î£jjà|¡ÆÌ4<Ö0Ö¸Z—ù˜‰7É[b?´àØfî1èÀ§(í´«Àz'Q£èí÷æ(–]ô¹þ\a_5Žã[‡mhEÜ“'Á›ZdQÛ›õ„<Ó)/-FNç ¹§´¦…Qí¦î~ÏõbNe¨ŸPZÕ'ÛŠv5ín XÜ#èZÖÖÆãëH:AT,T+‘4·UßÌÞ7§Õèy™+Ñ[¹–‹JíqÊ•ê2I<¨Ÿœ¦”OÀvužõZåÕJÞÍi´VãüÜ|Õ5vÒß‚f‘Ýr>¶/©¯Ï» —*ŽßÌjí®ž}5…3ã]…Ý=ï̓²bû¦èrqÃ8œ²&´rݶ.„›·'7^´&j'Í–À;Pû²½ÃÔp4!.bŠõXà.£‘£Õ’øTEeSi Ù×nqî^šÂ'·3§_ûßcöÍ‹7lÖ^U=Ѩô~´¿¯x×É@˜w´?Ê¿Žz!—l&‚ î„Ó·"å:ŠCV¹ž†êõcy0-›î¤ÞBƒÞB…?ïãƒogÚÚÏäܘ«¹¶žkŸ)Q@-‚”r†Û›±Þ{;Ñö_$Ôõô¾¬ž½2ùa6(_`é²>6.Hw¼q?ž’„L9Sq®Íû>&òOÅÓ‘ú»8ó÷]Hä=O?$ÅnAt°§¨ÄipÜùvsÀÀO¼‹ÑG.µž¡õôd³Ý’ewi'ð\ “,ü¹è†eMH»þ ™Ú畽mežÉêWøINZ³Kfl³óDçbæô©Á@ ÑYµåJÄ–’µôà ÅL“¡&›¼ìôÔ,Üßžn ÈJ»}â("½œ(Êzô!£õ 6>õ‚™L(ýNÆ•FÁ˜±¯%\ _e„hΗ¸Ó–ò±ÐÏé¥ÂmPÅKW:PƒÏcÿ…S¦> stream xÚ÷P›k× ã.ÅÅ-¸»ww àînŵEJqwi‹»;´8Å)w8ìýÊîûýÿÌ9“™$×òkÝkÝOBC©ªÁ"n 6É€ÜXØYÙ’Jššìl66NV66M[7Ðä(4Ú ˆ«-ØIà IÈÌíU&eæöj¨vÈ»;Ø9ì<ì¼ll66þÿ‚!)3[K€+@ìrE¡‘;{Cl­mÜ^óüç+€Þ‚ÀÎÏÏËü·;@ܱµ0s(™¹Ù€_3Z˜94À¶ 7ïÿ A/dãææ,zzz²š9º²‚!Ö" ÌO[7€:ÈñYþ¢ P6sý›+ @ÓÆÖõ_ °•›§x8ØZ€œ\_]Ü,AÀkv€†œ"@Åäô/cÅ0þÝ;+ûÃýÛû¯@¶N;›YX€Íœ¼m¬V¶ €ŠŒ"«›—3ÀÌÉò/C3Wð«¿™‡™­ƒ™ù«Áߥ›dÄÕf¯ ÿÍÏÕbëìæÊêjëðGà_a^Û,íd) vt9¹¹¢üUŸ”-dñÚwoà¿×Þ ìéäûdeëdiõ Kwg –“­‹;HNêß6¯"”dÖ 77'äyYØÿJ éí ú[Éþ—ø•ƒ¿¯3Ø`õJäokzý@ñu5óÜ î ß?ÿ‹PØÙ–¶nsµ­Ê?Ñ_Å «á×ó‡Øz Ø^ÇÀö×ë¿ßŒ^'ÌìäàýùßG T‘TUQÒfú7åÿ*%$À^_. ''€›“ÀÃÏðÿß(ªf¶ÿ®âO9'+0€ÿ_žvé?{ü{èÿ½ €ÿ¥ ~[€þŸ17dãf³x}cÿÿ<ì»üÿ›ñ¿¢ü¿Žùÿ­HÆÝÁáo=ý¿ þôf޶Þÿ¶x[w·×P¿n‚Óÿ5Õýkq•@–¶îŽÿW+çföº âNÖÿm¤­«Œ­ÈRÕÖÍÂæïÙø—Xë¯=s°u©‚]mÿºY,ìllÿG÷º\ö¯·‡ëëHþ­½îÎÿf”v²[þµdÜ<3ÄÌ…íu’8¸¹¾ì¯Ûh òú{ˆ@V'°Û« à•?À AùëHy¸@ñ¿D#~^Ð쿈ƒçºZؾÖç` úÇŠ4ÿñ€ÿEܯ: °Ã+ÿFye´ü²€ÿÄz-ø¯ŽþcÀZýcÀùŠl=@è_%Ö@.Ðæ¿ë•·³ èÏ^e¶À×”vÀWÎöÀWÀWvŽÿÀ×½þ™ó5°“»£ù_û`ýGÂׂÿ)é5Äë#àõ+AçÔ¯å8¿nø½>W€.ÀWŠ?àkZ×ü_ëwu0sµùÃà5ä? }Ý: › ôg¯>îÀWÎÀׂ=ÿ˜‚WÎ^À×ê}þ†ÿ3ˆîÈëmü÷]ñ:¥ÿÁ_ý Èeyl!fWöå¶VœÄ“egBx–fG'“ÅwòÕý1¡&7dr-ž6Üófe[šþJì;Å“ïQ[#bd{ŠZǃߣI’úôNÊÒþÀdÑ‘xC?2)‹¦Ø®ß“‹Ÿv°=lt§qÇ@A,JËÂ|ƒS”ÝÌK3œtU‡Ãeˆ\Ãßa…lØÍ`0Lô]Fë«ËÙî3ׯ‚1ýL>…OOÒ&o‡ÔÉb9nsì ;‹¤_úx•0Y1Ì)¼yE Ãå u·oÅäXV‹MwÈC+EîÝt›”úŽ¢iÕi7ÞøðvÀ3qxV©e–Ñ˱uW¯:wLäx²ƒSùÞÙÊ—MªËG¬b/ïàƒ Ñ!°æ›ßäëm‰º8ÜÚp­Â¬c®Ãµñ ­ÎJAìê /yKáï'G™>âÕÓ ²$ß糆9ßË(ÈáG|æÃ×ä_QzPQňaLX}÷n„É6B·î£ }òíGÜ]»~=Ý+éE÷ Š/Ÿ¸;œ¼—ûR¼Y£À,ËçuVûÏÅfý.knžë·»Á1º§Þ×Þôì;8¾¸MÍ ¤ÿט+js™Ójž»ù̸LC„b9ðÙ4† Žž-ü†*$ÿ¬Œ!¡ÌOkút ì(Ίá®Gª©ÈíöÍœeFOI¾peN.÷øÅ—@&’æ¢;Þnš#[±— ü-œ!,"èé¨QM Ô”K±ÖÊ”ÌAÝÍû6öT7éÉ™–ÕB1ôé v¢ÞOõ2Æê¢é,Ò>œ÷»à‡!çR>ÄÁ0²[{Þìqtp‹óóZ9;Å*¶ ky}~˜ùN³“0D·°ndý¾Ž•ö Ñ£k*¿9䎒±v²ûƱõuaÁwÿ½';ZüãíØ>gyžœQdnL·wk½@ÂØOt«…‚²•ÃØ”óâ‡R+ëcšNç‚!Û3 rz:ß²ÄùúQ ÏŠg] PŸÔËÙè4ÉVÇäD×®?ùLUÄ|)x6¾=éŽ1\hwƉ~qêÑò ]Úûª hßi™Ìè^³Í¡à‡ÛIAîÕÜ"UGñ¹!¦|íÅŸÕ‘OÉ9ø‘„¦œÆš(yª(´ÄµµÛ݇•IF7êê9å’Ÿ%áŒk¸Ÿøß^ŠÿÚd”8¢Þ[d8K®(¡×¡Ûe†„z–è—-G#b$iD¤ÍãëÙÁa†I0Û€-Ý£}8Q!M•ã~Ö±¬·q_fz*‚5mlJÕHŸV5K‡à˜uO†ª@‡©°5‹N'’‡•+½¡ªÌ, ´ï£Á)Ë¡Ž!Æc˜·!Êò{Þ_7ž.èÇþU  >«‹Mf/üIÞùƒCˆYy©çزrµ–óx‰iUÕåV¶ÂO\yësOÊ­ ´±/®}Á#š3©PUR]°æ!Ã:.”F¶ž)¦/ûEepˆqt;=¦6Æ=hšš‰rNï¢A?› ±¾Ž'Ÿ'Üôæ›b¯^/lg]/®èJÉ£Ö1è…á*ôØÛv¯+¢óµ:§+KÇ*÷ðš(4¦´Ç¤¾aô„ ý¬’Ƕã ü…^ïúYp<¶¤縼L¸É£vó—Ûc²û˜/?–Xn9pÓ™š¯º0§¿»f¨¤Ôîóõo"++;Ýè÷ÉžÃ#º¸“· Ö-(¥Â|»ì¶~8˜³°"‚0ö}MÇÞlÿ†9Ò Âu¾mBa?©÷c)@Ó§ŸúŠO¹*m“™Š°Ð>6ú½ñÃ>ÏņÂ.5žù^Bÿð½Ó#O Z÷qIÜî=¥6ÜE¨=·ðámŽ^Á±-ù²çEĨA)á‡ÉšXU϶ \ÝZü©Lè–<¢ eWųÏ@Á`ï'iV¾Oâ¹n¦LàÃåÃT¤ê*ô P\Ó]J¿çÀ*3ÆêqË=-Ô÷pˆ ¬nr¤6.I‹ÏQäŒl°ù.'AíuA5"{aÊxƒZÈýœC‰¼˜}Aü*nÍœ~ñ¿¹!l°mÎKÏK|ˆëi:™¤.RŠý_¿$ø®ü2­ÇM²ôL%ñ[ C—•ñ¶äî¿£û¦O½ •µ¤4QÄ_´‘8 ÿf,*ºIˆwÝ·FÑy «÷F›{sß~d…34ì8K\ô(éäÏ%Ò¢ÿªõí€tké¿ðK—ç-ÌÉVoº'qñÙ0¹|†m`xm¥'j„ûåZñS,VŠvéž±ºIxYÉšK?²zê>„g™» >K(ÚÛ+4ù"ò[!Y[?2C;øUÐ~! š!ÄP2cü4G}MÖéñv¥Yä˜WëØâ p¼·±Š®7Ò©Us*k‚=.{¯Xgm â±tùE{­,SÙ‰ÿå;&/V¬·,&ýtÏóú:zi0zOW U•ÏÈX¥Ç$Õ¯ÒBÿ™ÔG¢h7T¬E?HœbõÛ݆˜Ù'Wú‰¹èû=ª ¼4è—aD½®ðÓ“Ü‚èÍbk‰F8œåx~­'™CùQ*lg£Ôïð#Î6qKÝù]É¥gZ0|A“ó)>{kß#D‚îaRÈb«¯î t^hÆtSîਗ"̇ù·eŒ-³%&ÈäÕé¡y X4qQæÆO{ëA™Ò)5=ÑâV!ÕüQ©P;`•¤IeEG' ºÉxÖ-¡MVÿÖ'=x„jTÊ¡tÑŇv&jÃÀG;†”0{czžBIÐÎÕôÛíM‹’P,¬.´ÏWöujj¼ÿ‡`¡uv»Û-^ž½'êo\u èÚÆÀ^™â³ÇD¦»Ú>¸M`õ\øÌŸ¬Iºq´”~[cdtœ5¥³&}Õò?6ôíň¸`Gªö×ᦳ6|uèÎç´Çý´v9XæTª!Ñœ)Á×Ûæy“C‹|~+?d'?®­ž ¶¿CCqØD°àˆZ¯ñ¢Ð@ÀÍg§ØÀÛÄjKßyƒïö–¼w_”¦mú&Í:,F£dà“‡ ÷Œ¬Û0dÜK£Áڱ܇#…õ«„ñx\ù¸½3EŽíG¶õj´X5…üÀ¦…tí‘¢cÈ"`'%~o3ÁB Fg×8Ô°„¿„"ÜÑ£> 7e(ꩺšî#\€Á?éLÃ2B½UÇ6š’‘«Ö´÷úcgmþñ]Š%+½J÷ÖiE.)kÜLM‘³Kgù¥~`¥ˆñów_ãäq #Hθº%¢©íª`h­Òí]ŠæŠäÓä" MEpÊe+؈ïŽ×»µE" ¬Aò¶êj®¤¦ÈÜöû3^…ÒÜ1Æb`ß—ß»YºâçHB+ûX4wd—<„pËŒ.õ´~9bÉæ,+H±¡c¶Ì]}è:‡v&ÍtÄ˳D¸™Pž`йÝ×…åÉ5Ïï«RÞEáAó•êm¶à;µâLMú>Ö±c~¹½Gúèö2ã¯úxœêÖ‡WX"ïÕÆ·84«Núc“•ÀÐwÄÔ}õÅ/Š„¢©ä’æ ³;*ñ1œ·Çpâ¡,OÑtø;yžõ”/Se_YÚþMÅ®3ã+qõú÷]¦FDñü”k™Ò¼vF,CùmfúE÷b¹ü™žöÙh_ãq{÷‚å[yEv|Q¥Æ!Qªþó’1µn ÒÓomV-S³yƯ5¨BÖñ§IÜz5 “ÂÁ;gFG–(bQEA&ˆÜóï\7B®Vðç[í±cöÚ¤«î»Ö?SŸ bNÞøÓq9¤M¥îˆÝÕtš¨È­·ñåL}ßÃùx³XBÆ ½Ð­H ¾ŽQÜcóʯO/œÝ†-ÎvÝ4j|(Û¦Ë#&ññ%j;2oú ¸Ð z3R) !gz,nÙñ+ËÂgpÇÛ̯b²¦ÄÜýT$7ŸÃëf®±Vq¢ãÃ~*¯ª¦$ –ž‹ ${gÇDnGäŽÒ]˜éöHKg+¯yï¨ &̃4gÄÒ©ÔHR='ìrðRæmtÙoé®J§à‹]0…&éO/ﻹe»PÃ@|oLÞ›M£’P˜ [f09ThRù’ÛòÔšx@´U~àF A¿·BHßË )· ]·fyuÔ*Oÿ˜Õâ=·–<ÁU ®À}ëŒâ¯'‡¨`r×ÅümöF<óT]uŒQÕÞVèFGz'¥è=úÆ‘i”Û„JT²ê@¶ÃXⵦ/£!›&ê89ÍÄ÷|å|´zQx¶Ô g¢—_ÏŠ¿Suëп¯ÝI¥š)#수cC¾p-¦Ì‹ÝY~+ÏèNÝó¨áÆm€9lÏåáõIY©3µX«Ú¼¸VüÐMâ#{Ξ›rtŒ Êþ!(]U£xØg”ûίJ#¥§¶.²ðöj¨±³ä÷í(YcÉÎ^mWÇf¹ÃÆU=É]Ö6`è¦ôªŒj£e‹ê;–Œ{Ê¿–Íqì†#Ëpa<¿º›ô—À’²­r~6étì†î¯ª]6¸[]n¢œÑÉ!+Ãvl‰ã¸Ø•Ÿe1 Œ$eÏÖ3}l.Çœ&›‚nu”ñо›J•ä_p„ÀûõòBê±/dïh"Ïå!ÏÍBkôÖ²Æ=} 5^ªÆA [ksDÝz÷záR£)T·­©Ô¸¢V-¼äß³×ý±Ú’uG‚÷£ö8s鶘4ÃA~¼Wy^·ü2ß’FRi¸î(c§™©¶ÛH6P(üÊnXDdÉáü!î¶»®ã?åƒÄF¶ šÖC±ñ&ëúM&Çv¤ÕŸžS¹‹jJé”ù<1•¢h™¤<âPbF¨Â`[gËOË7SÌŠ½ð'õÐLÑnê&@ñç§§eTæ®¶."Ì}ÄúN#d½¥9œ»=q ©1úÏuÖKà‡b¼/aêcõ»–—¼¦ç•Ê{øš<:Ø-y »rÎâ+åä&NIÉ÷‚*oF<¨„ñ‡ÄEù…;ç"Í’g ‡|qïï•F;bš¯iýwÜ?~æú‘§m0¶ÁÄZhn~XJív]ñžýµÙxap¶Ûbú±Æ÷g…PŽÇñÍJë:þ˜ÏÂe¤Ð=ê8ÔYúÐÔ§U(þ1ÂaS0U®yˆ[sÖH&µ÷ÁTùBö1ÀH'°gafNäÓê6ìG¬«@ Õ"‰äF2}É᜕‡ÁAÈGl Aóf‰í! ]í;auÜi7,þ¼Ñ!HsøË,Ý9Œ­r’Õ‰¾ìCmâ1™ëúý ?«‰ *Iô²H¨ÄN™Ø<Û¸_ ùm·¹×ͱ¤ž”oê)Èé<{ÐÑ¡w˜±ëí¨Ò t<¼•&Ì­wh -‰OчEýJ†Z«q:÷ì°Àb£kŒx,ùj™5¿É¥´ÀÊÊa ÝCh;]«7ל©÷eά?O]’±àß´’éÅTKh¦áïöíŠj5êªu”þ¨r„Xg-öªs•0D“7[¼sÄ ÙNm­Üæð|> ¼ÂlíÃ}ëKè㫘3þjù ·õ[õ‰Á‹»2'u„¥†¾Y= j™›Ú0ƒ%ÔÍ.Ó±û±ð²&£Â_GYÀªXËõÝ´qÒØ]k[ÑàgïFç²m±âLµè—X»;ÜâÚí¾}ú2oÞPÿÛó-âV²û FŸ’ Yö\J®F ª›#|çx¦­˜*7c·‡Ü|Ƶ9Ë ¸e¤“Åþö—© “ûÏ芌ú¢Yø^ é2ÞI¤:»Ž*k?îhαwz‚e?ʇ ì»y†qJl_ÂóΙBçV£C«º$µJO$8e‡‰ÚÆ W‘ÿô…ˆ¼˜ƒý(mÞ@(”‘ŽŒRg§%±;!ä=F穊&Œ4ÜžÿÓé6âWס„y_<ÁÃ/¸¸‚éŠr·5¥Ò††Ïµe¤˜ã‡‹¥Øç‰P'ö°Q<Ѽˆ– Ò€/äÂÚ %ÚØK-½ ~ß²QóŽ2»ÑY‰š¯¼Q™iÞéa¥®ð‘N÷4gEÔAùWGs÷„œÐí±|Êu9™+®™4}ý{?£¦U7>|?1 [™ž%»Ò*$@æJ]wÎpQaEaË–êŠ#¾Ð&5Ð([<•<ÎÓ;OÑB¤¶ Ž–n¨ _5\ã {¾(KŸWØ‹[¸Œqéð;×ïË i½^ð«‘ÇßÙçlñHyUQ/+Ð!ଭ´:î,’¾žnX4¤­“0}}Œæ±Üë[Ô û!üy ö¥>´f~—þ«KìžbrÇžIJŠÂea ü[£þ1úîLo¸$m²‹ —6ßÌÉ($ÿÝš¢tIÚ¡=›çNqñ /©Û)CÚ‰°ÄÀ ºBÄ**2ô‹­Tò"'PjÜmøÈ‹32ª\crDfÃ&¥áÒo}äý„„qip)LÏâCYóœ}’ÅsSÍ—|œwOîZ„6ñM`Dš*÷g#U·OuQãOiO‡T‡±áþÛ¢}¡GÈ¢Ã`†˜é&ç_ºH-ÞdîmÖT´pæŸyJ&B2V׿ûõ¯ÂÏroÍ­"›.l*íåth7Õ µ_­Ã&2PS®ÔtÕïe‹B/}ÇÈ&0 tFBè‚»½ÎÛºñ屡« ÒšÖ“®ße7)iþiZ%µ‹ïÔÕ·Ö™-‡¹’Å£8'ÒÔô#r`9Ø—H…C>Ü&Ã…S>®rq9e‡Îò„鉸ãa\gŒ_§]š5Kö4"¦/(Ðz#¨«´RõoF”fçDÂØYå-GvzŸÅJ c~Kîó’ê#‰¶Mi–çJ!KóSI_Ô4DðH,ȳmd0) âÔÓC‡˜ébb~Sþá!(–ýw):š¨§Ä¥ßzŒÆ˜ÚêÛÁŸÁ-2™²5ðž_õ4º$f&c¢‰"߃Ú™Vï9{­™‡óLQRaS/Š¢Ÿ‡‘¢ªs£¸|üû™½¸³Êà‘œÔÁÙ —»´­]‹nd5¹hb°É„0·K/–ÆÏ¦õÅG#¦âÓýO¿$¾¯¥K9¤Cdh÷$Ùµd[9/ŸXs›UåÏÍç1Þ"¤Â(#Ê«éÆY÷äÏ·®¯u< c½×.U,íQJx†ŠÝé»a`®Â‘@ÑÙÂHKEÿYsjÖ¹ 'í[o9 TÓM®A [b¾•¥üh»Mgè‰ãŽIa#µú†£æX>÷¤£3¼ÐwX%ÇAOÔ-¢(mò)‹ˆ4+‘ûkb<ìG•…ر褅ûÑ >e‡îp_ÔkŠZá3’ä±_>DÊõ[»[u„ÐÝý+ãÆÁV‡¦áÚt o´˜-’ùäp‡bÂ>È ã-4$5EÙµhwEÄŒ’šhRd&Ëoì£Ì&ø+’G‡tãþ–õý¬¼A =ÐÆÁ ÕÚēⱽ/ðfìH{ '~¾ÍŒåJÆ4Êøq°©WjÕß‹ ÒzSz‰?¥zoöuFŠnåÅÒY+z&†vé;7°«P%ÅãâE9 !UL7U k!˜G>€V`Á¢ube ·Í´pk¢!‚¶«’Šê%Áµ5ÄD‚÷dK¸`û¡ T—/ŒsvtÑøA¯ÕÕíí˜éއuÆU¥zLÌ®»»déQ ‡„f~"Ob…\Õî§¢r¶±[O Çi¨xõN’7ƒx:Xt bsì'+¯ÂY°¤ç›M%Ùœ/ã…‰ì«s!žûa^7ª…UãZŒ–™$UbSG6J*¯ñ©ÞÉzenë̘ö_(-,Kö¶kæ‡iWGXæGœoÅ}Y`ŒÈ*´)äì53“_|Ã{LSthg]HøõK”EqŒVŠ”A++jo?Þ>øúéä÷¾Tù  ¥µN9¹îµŸ°öjL°¨ñ úÛp'³t¦ãÒ.~s6ìåFm~(¯´H\Ç*IxÜÖ”V?ã× K2ϾAé0Ûã½÷,Œh,ã°'_@„‘8iýTyô“J§ŒáÔ©ÑÌZ¥Í̆8—ÚšZôø]œ´æ¤RÜíAЬ‰a¥Zÿ*HÏ a[õé>V“ÜÚ‘uÅ–›úò…_b§eéÝÌyâ”BÒ”¹NÞ„È WaNêÙ«Øn^õÑXüÑ.ªsÁßF,uŒ±3’NÆ›}í’”#§6袅PüY»|Lé9Ø4U"H#ɦ(.‰Ý¢ÖtdÁ£5\k8-¡ñÿÑYv©J/ÎJ¡I'†©–j ¾‹áÁÁ‹­éÜ>NÈTû‰“-yµy$Ðû¬«|&švC‡‡¤gÉ-¶¾+‡qí=r;»O¼$¤Õ?SÙ~õ+Ý£™ØCt[rºö Z–­AÈŠp¾Ó~YÔõ¶ÿÖ4«€À]l1w¢|NQK{ws™a€Ô:æÞXóYj?%“"¤d¸×$mg¬» Ò«¡—ryx«×YDÐU½N,Z²o бébŠ>ðçó©OšnÀW†.dr:£KU[Õôi¿Õ¸³r§„íúÓ•‹”!)͔ȜÔRʧç„ÜS²oç/Ó^LJ¯×ÀFM†~ìO‹Ø¼–JW¯””Ó+Ç“R¬îÞ²˜]B%àZa"É¥æÄ'ˆçp$à ɳÁ³{‰")…*ÉŠœ<(ž4·4ûhêËÍØJ6´ŽôÞŽJÊݵsu…6úÇÜÜËÊUïc.º{òãÌE%cWf‰‘f—êw£¨vƒ…X¡‚Æ©#íTõ¡ i ÒãyT§bw'8¢`u±ZiØÐ4«SWÏS¿û¹õ16iNþ?Å Ùí½§õ${cqØ3§ÿ€D=IeŒ8ö–þm“ÙîËg!Žƒ\ 2€Õù„8(ò˜GbZ€‚R‚êSæþõ¤ÙÝU/ÚÙ$Þ^WÔVÎ!~Ã•Š›IÃd¬H\̉9h¦èãÛT\C<³Á)Ž6½rÊ\Ù‹ÁBÕò¨/Ñj®A²u£ôejO=À•¡˜ì,æxÖabHª<Ÿ´@ýxÖ¨M,¾Ì¥@v ÇÍ®å¯sæP{ÏÌB\PäÑÆ#?IÛ|øéÌBþ5¾Na#Ÿ\]—a 5ȶ6æ³dúë^e#§ aìÞZCŽ3É…°šjϳmÃÒ~·å_HÔЮ°ÝawsÔTú‹E²ËDÅû P’jjZw“-¯?Ùò¦’+`÷W¶H ÅÊzÞhë¢,¸èžºë„¥ ¬ >F-¤Š¯Õ¬Ž÷ËŠ(fztÁÒájŒR(L¨}âÔƒ[‡X(JøÆ£uns„š<ëd.køÒ¼qQ ÀAýjjÏß¹’ r1ú–S“¬Š¼Ý´Ÿ{S¤&ô’V)sºc.e‘]å„ÇÓnÇáõn ŽN¶lGÃ÷ùK^Æ\§Uç7¿6jûX±g¼ýêKƒÄŒÖò¤ÓöÌŠ•£½›âаO_Úü7ÔhÏo݈̚_KŸý~£¤#,H‹¦ÍÝ’ó¹×&/ùsâ!ÆÑÞ*‹uÃP®½ëT V>M ~¾ƒ£½n¹±ÉÛ4ôsHgeÝÑç-&Ü’DlFP©Çc¸ ·ªÓžÏØñ[À-o|r§úR»ÞºÆ”vÑú“îyh=Q«QØp Ò|`âû”Œ}÷ Ãb÷‚§1Ò,NñsšÍXåeÞ0¯Am+œ‘ \ÐsJUÅû_aŸR¼7]”&æ]ë|Y(au;Îo £K³§XãiÉðZ¿ÏD™ )–jn;1‰j°I'0‹ÔŽ×¤ÒiôSÃ@Gûe¦—} ”]M†E’LiG“´JÛè#N•Vï”,¬Q;6¹û*åµ·o~NÕŽ'­•w‹­†qmDsÜWGzI¨¤ØÓ}O“¾¼´€óëdÈe lA¹n$Î>k dɧÛÖ0£I½4“K>ÚÆ}âe0òžº6m®ä”~z‹`ØÖ kûª¹$ŸÕÏ ¢Øä‹Šm3ñÈô<Ùå–‚Û –ñõ½ikáËnÙúFO'Wñ¶NÁׄwD¾l¾<5I+;³2ˆÿ¶Þ!©&]àxc6R)ÄdÎ[½'ìáäýÊžÜ ÌýцknåìÛÛŸVœ1ë#")ñTÀz©'ï5zOˆAÁ½V¢ë[»Zñ÷C$8Ð!Lšaª 3¼¼«¶àl²ó–ò5ÀŒ¥T=W‚%œLÝì€efõ‹n`ßÏeCô_ÿr°3™6œLwña§ 1ˆy%ÿšL;6b+ëû.÷Cv¤°U þöIŠ`¡Ýÿfîч ej¢Õ­³'ïZ± Û|™xÃÌÆƒaXè¼j,¦­™\ˆ®¦`‡ÈÚiÝ TTŸ})ðH%YcÀW ªÆ’©ËCáõ¼0f¾oYdA¾¡Þ¥ +rÊMkM´ÊnšNü qs3è".ù (}_Šˆù´Æ(}ÃaéÑÙi§AÅ/øâ¡°7"G«K’gžSÔÄ”`âxRäb¢Ú5FŠ*Öue\çæ)˜ÇÀEÕc­bv°;l}nØr✰¹ÑÁz®ÇµòU6»(Tõ#¾qÐì(ZÛºÍevц½ Ó7`ßÉ{´ŸC)e·½“·Èãâ2‹~Š™>trqZ ¶¢¤>6Ö)T,›fDÔ³Š Þ­ÒOÁAmž}ü–@uÍ)EdS¤ªT'Šr´g’è¼ÑîªËާrà .SŸKÉ”E&4ÿ.´'Y2­ôÁîå6¡Ð…KWÇ/–.a!hÃmÓøÌÒWèZŸ¾,PÝ´R1Ë’Tÿœ8ZÜ~ÿƒ¹ñ³`í%…}ß”*ŸYÄw÷J·€ÏÆôÔh’€ØqW?ÎÀ¦1/"†JÇ“;Öž_¤qa¿' €>¶ ñi—ÂÍ4X2ÖTô†GqË0ŬàT¤“cð§’ÿk±]Ïðûw_½®—:‚1ì)À @'@óÙÌØ…7Ρ¾) ×ig@w§Ëy+·=Ø̶²çC³×ëhÆø{$ë’¢PÎò:ÊŒòÿX®»„L0à…ÁÙ›|$8ÏÐà*MŸ¨ãÞ¼¥í½Vô•Ì„Ç/}ç6Ë «CR›ÇL(,RÅ:ͱ;öþaf3iÅ.é)‚Ç)¬ ‘\”ðaÙ™ Á¶ÉÒïŽa^"á=Ù»,1” sŽì°VOl•ócØAH'Éí>sE¿cα$Ÿ&—ì(¸£€ ^˜H×ÀmöË4Ò™e룜@{>ÌŒV¼ëŠŠ÷l4´µ²è!j’ÊIßâwàC'±ùj™\Jj÷DòJü¬©/ã!›u”ÃN0騾¾îG<Π׈ ùIf;øÙQY¾P>%E'vÍ×]PÜŸ+Ð;»Ýûví¿œiÁb±o5þeÌí÷{[Ý@9×ÌyøL«JˆU'0³y#%ÀSß}FR|†1Ê;JAŒIóüc*Q•œn:Ô]×À~|WŒÒ-£ð« xP¾‹rÕ“íÂå=á‡wÌCª‘+}r‡h`Jj õì˜õEF‡!‡¥gY[~se”k2 Ä”ºzoM—é{±ÄÎ}lrÒÜyCòKµ¶ŸÝÂ$ –…MRÁ±CË„a Û®àãEÕ0!ž#’±¸ Y6c5!â†nëÎ7—Ø ?Ûnìx!—Æ41^†«·lWA ¹TÃÆOžtÆsƒÔ¯_èÃYuMÂLÕ «ýUôÄ©vô‰BAÆ6ÇA]SXË©@^xoƒS ½çÂ1ØÞoég1™ÌP…žË}Œþ`ØÄ§†qDÀ³ËÐÉGƒ¢8âVñ{ç/Ÿ~=2ã fšÜXÉ;lCÐ¥ªWhêô˜Œ³–cÛ*û`à¾ËìÄkdý¼èàÒ|°v ˆìi¯†7]á‚›SC~Fr)Ö8Ô(U3«óckæ* ÔÁ"é.E¦±•!6è¼½™™×Ð_°Ï—ž³—‡÷©3F9ñðÀi5ö£ß–Û@«Ì®Ô2$”Kxœ)zœ›æ~¿J‹î…œ>|Sw†YoŠÐÔ• §ç± ¤˜<Äwÿô˜}OÑÞí5íµÛ›ÀÉ,ÈgçÔ?üŽƒSjú‰`ñÎí¥‚èîE†ß.‰3àãÔ—ÁoÓ'H¤Â6gÖ ׫ú¼{7užÍBµN÷î¿ñ' „—-i™J‘»y<š¹688Ãé*gÛïüoïÜ?ºI|Ö§> stream xÚµPê²- Á‚C€ÁÝ-¸»»Ë .ƒ»{œàÁ]‚M Xpww î<ö>çžìsÿ¿ê½¢j˜Õ²Z¾îjrU f1 G3´£„™… ¡¤©É`cãdacã@¦¦ÖCì@ÿ#Skƒ\\ÁŽüÿ0p!¯2I äÕNÉÑ ïf`ç°óð³óò³±8ØØøþÇÐÑ… t[”XòŽ Wdj G'/°•5ä5Ìÿ|ЙÓØùøx™þvˆÙƒ\Àæ@€b ²h´h8šƒA¯ÿ¢ ´†@œøYY=<®@wââòóù§â¿2;;Àl˜¬ÀÈØ_Å Ëá×Çw{ Ø^gÀö×ß¾½Ž—…£ƒ×ó¿ß—UFURKSñ_ÿG'.îè ðaæ0spr¸¹8<|ï~ÿM¢ ÿ; ¶?žr–޾åúÚ¤ÿÉ×ýßÏO÷ïÕ ü7—²ãëÌ‚tFÜ›ÍüõƒýÿyÐÿvùÿ›ï¿Xþo#þ¿’v³³û[M÷·þÿ£Úƒí¼þmð:²n×ñWr|]‡ÿmªú×Ê*,Ànöÿ[+¾®˜ƒ•ÝÚv•{‚,TÁsë¿ã_b­¿VÌìRutÿuSÌìllÿK÷ºW涯wÃõuÿV^׿¿#J9˜;Züµ_Ü< ‹ Ð ™íuŒ8¸¹>쯋hòü{‚¬,ŽWÀku~KGä¿”‡À*ö—è_ˆÀ*þñX%þ ÷VÉ?ˆÀ*õÄË`•þƒ8¬²'€Uîz ø½r*ÿA¯œ*ÿAï_9Uÿ WNõ?ˆ Àªù½Ö õ½f­ó½rêýñ½ê€jxeBþ(_“1ûbçxÕš]þ¨_™Ìÿƒ¸_Íí^Ÿí$\\Iìíÿðÿõž¬ÿ€ìVПè!g·×ÿcðZ¤å?àkç¬þ_Xÿ ÷Z´µ—“5Èá¯2ð?àk¯mþ_‹·ý|­àŸ±_˳ÿÙ_SÿÃÌùJìàfoö×Ú[ý#àëcuü“Ò+Åë¯Ü?Ô¯õ8ýQ¿R:½þÒ8Ø,ÿt‹ýßÒ݉ÿˆ_swz½ŽúÇõÚ';7×?Y½Æsvs|ÝÕÿregm”Ë?àkòœ¸_\Aöàÿ~<î¿l@îÿh&÷+‰ëëýýOô×î¹Ú]­ÿAüšãŸ°¯§bíúSÿëβB<ÿáðÊáöøúîÿ€¯™yücþ^½=ÿ_é½þdóêê rù÷s7—×fBþ¾Ø¯×âðß¿¾ 'Èy~ÆÑ\ Ô¦.ôÛm±óöˆÐ$õ¶N=³Ï¼K»Û=:B2}uVðªËµXò@æÒ¦Ý•èÙ“ÏaKBDk’ZÛƒï£I‚úøvòÜ^ßhá¡X}/ Ò;fMÑß'g_í [˜èNyê\g·÷èªùØ·?d<ë{ˇÃg¶ÕvªyPË&˜ã´b ƒŠ§¨óÌ>OPÀC˜IÞžybL]]O¾Í}!“O`Dö;Šãü⣿ÆñánÚ{¹B“õ‹ŠPŸ€æêíð8ø^Š<þ¬OIQìªÐl6= ÔœCwþ™¸…ñ5ërf™YFÿó"³q(Þz€ò-]ȳ”뛫´ujGî¦3N忇_c°ªµæ|'ZLŸôkƒÙpáë:¯wkUĺ-[T?[9“ƒ ³­W= Äu[h–rèëÒß"?Två~›B);eÂîs4éL—[|N7š?*uM…q"ÿ¾8›*Ðy×Éø¸v0/QÊ  ×0ØÉîžHÈçb$t¤ÊC¦Õ"eþIŠ¡òÑF9á wÁ‚¥¢M«`’oôözá ešÑÎ{r´T ?V`jq[!^ù>Eÿ5Ù×{)mA4áte,¢¯“ÙKÛ×í|CÄIä_( mMb&é ÔÇ'Íð§ÓÆ­z/QÜ>x–Lj+YM)Rqª¾I[<Æ™˜÷jCçΪÀaêt¤ã¥Üme€?–* „­Õ‡~™Ü/6oû]öËì}œ •©t×âJ1kíç{—ëËãoaË·=FIüâW0Ûr†Tþ©BS ù £‘!MùÒðæ‡pnû³ú;É·RêºkÕº4`MG¼¶t­ÚÉ)Ť-p¼îùÐÜ¥YZ={ht–ñGw'Ì£ &ö;*ïm.+‘C–~£Õ­jf1[Û4§MÁv%"òÏÔ ›™÷Næ{ßùY‘ÚÀ²dè§”4ÐÄrrZÅþæÜ9ð°ç¸íúà$›%7‡Åïï\!¾¶å&¸lLu&'%4Ê0.?ÆR©ï>a~Ë„5óžøH¯v†…ÓFAÌ5N åËÙ¶7¦#êÆS^dj\ˆ^m‘VúÑ·Q¿þ¤ñ!t‹?S³’F#üânW§šwÚ\Z“?ÜÝ…<Úý!$ãeçìiä^ØŠ _@s߉åÈgÙ´VûæÔÐÓ»2î…`¯6åFijù8$ ³hø«K á­8”[¿ëþ.IDezèO/Þí|„oñŸÕi·5Û¢ÚÂÆÞŒù˜¹d±ž™E{[º {]5¯ô!0›(1_B¿ƒm €ßì¿Áû:l=åÓPÔ0‡;kUS^Š:t¿Ix@í‡$™]Œ'6Q ÙAƒÆ.Þßø×ÌÆ6‰Ðù§8 „ÈDVQjøb0£8+Q羇õáK–v%ÞEF!™S£Ö6Ï¥/zUËK•zÃ|:ÆÇš0€ÜÓÓ? – kïôr–ا¿TñáwŸ}Òq*ŠdÜ´›‰ïv˜ ã´Ê-¡äíãT "èmTõŸ`>r¬•<Õ6$vÕ(Mxö@‘¯ªE«¢uŠO…>Gnõ~Ž7–¸z{~'‡ö•꣬Œ^.dÒ”-cßp_1ˆúɲ"kÆóçþ‘|&ÂB¬ËÑòRG Û³€P¶@ÍÖ÷À\¥q9aG€Ä~#2’}ßJ}|Ûe™\²1ÿ ®Šo§‹ñƸ2Ö®ÛQ–‡™éÑ8_+·p]áí ¢…¼|jÍ3¶ãË ÝEg$N×9°#‹å5lR¸·=2cê¹¢sSÚ+d6Í€âb0å:ÍRå‹zÒ<ù’žþ(á’õçz{+Ï["¼–!˜Ÿ9ÖSŽ#Q; º3Ôíçæ½×ãûùÆê;´ 3^?QîžÛôEáåšÁwÉ=C€ îÕ’©Ñ$[àÂjø}¤#˜ÝõíiöhÇ¢ñÔ"ˆÖ»Û76@™!´$6¥AÓ+ñ*"J„ ƒªŸ6{k"ÙI&ÅFë'}?97O‘Àf<ñs“ýîm—†nt=»ÅV0>Û è¿\I&– #OFw2N†Æ|LëS—ÌõÍGãT÷ðf9t UȉàÌc¯]h9–ó§äö‹û~JåÅ;rß!ð^]Ä¡_²ø\Š8ð=R0ûh÷K× ry´ü®8ÄÈ¿Å{HzÉ­¾úG^8¶µ¼¬´þ~Ø’Ö㤢Oq[ùj¹ÙÇë5´H£ Yc2¹ìpå4läíÌg ×#~Yf À]öÚ«ÖG|ЊLSëz Ì\™þ¼oO½OÉñ—â{e@¨~—‚þAA¡û5hjiñbHÒ¿ç²ØËx­Ø„³&9wšaê ÝäY¦ÓK>£‘í}S ŸÓÌF» \=`ù5Ô™[†VË>=ÏYVÙíôXWN_*B¶ÜXO4û¾é<Ò¯£óe8ß ÒM¤¢’’‚®_&ö|¿V-Fäo_¿GÚDaµ®6Â`CÄh±ªhÉar)ÒK\¾ˆ¶ï¸ÇΦZ8¶ü°eR«K°î!&…¿àM(þL.nd\›ôù§µÐõÁ-¡,üwi!´®öDŸP…§Åx³Aª*` ê×Õ¹2¾D_lÁ ÃVG£­´¡\?!'UY^d,íÆà~¨vÝo»²T_D(wÁOË—ÖÕ}­(.oæÔÓßn`ëHОdY¡‹«~«E‚Qq ॆ¢wÇÜÀ^îí¢žNÝž©#Ño"'¿ÀG`0²½¬ÜmQŸ)Ûˆü^CS‰Ý ð-QèR½ÃäcÄ<¬eÖYùœüù8câä­qê2Žþ–3_ÁLo\®jµ?6á'phR¢Ü™Þæ† Y9ºŠR-÷/L——rò ˜«_ëcžL~¡L7‹xÇùÒ²Rí¤Mº¤’w“èF¹aÐOvT4ho×fÝÛYô„ý‚ÞæÖši=Èhø¤pð.ý†)8B@•Ï´ ]¡E.Ú DÀ°øSüè¸Ü‚ä«x3sª?`DïÌ7éÿ2HMMH¢™Ø°–|¾ñ­S[•‘ðÒF7›ãÆC69Z®}„s…áÜ`Çh>°=µ¬¶}…W±±i ör˜—Üf}¨7ÍÈ O’ø!Ïô–5g\±Zç-MÏÜv ®°0j Žé껟yñûhE ß’Ú^«êozåd|,± ç"™Ðm ¨º1ÆÀàiôïªA×§r\L~”¹^PRsé×FÔšÃÂÃO!g oý˜º5 ɺY. Q‘’ÒÜÓ Ûc¼á7$ø„*M=dµê°·åz_#°Ãà®R4²4¦Ê¸§³í…Ñ}øUÛl‡ÁS½­U¥×zZJ[Yrg’ïD ‹p*TóhdÌoËè%0ë„㜨sw{cøŸjKž^µëðùþŠc8&DT-( Û}ÜoŠÛ›Ó~m.㜵瘝º¾"‡°Á#ê¿sLÆò _æ¨,!‰ëS0ӗʘ¡"î‡[ê¼…£-©Ï²Ñ–‹ž1}êïÎïsYÉh[¼ˆ,YM›¿Ap7£íÅ¡«#"ˆ2~Ûa{=.uyÈþ7ô¨åF‚TÉpgÕn…Ä‚Oî‚ç³ÊªØ¾ùbý2D¶…Ã(,ªz•}㓤*%míâêYïè+K+öµj¾Ÿi<ïþNöª‘²Çºy³E*ü &Qp‡v°Hð©r¿²-ï%>ÛòŸ‹r2Cˆêz/ºÒV¦wÝ4ÝL7GTåy6ŸLùIF£«wÎÜVÉËPN|Îvê™D?,u‘èô°R°sÿ02°¬·cAZÛÓÛ)–3û`…÷qÚÕcM3ަ¼´H¸ù‰^2L¶’0RBý:̓ߌæßÃ}3ûU$‹h®*·aô'ÜÃzwªmäIØ;ú¯Év ×yÉýž&uø¤"‘j•:ãœatv%›‡h$Ñ;ã¾A*³fÌÒ)»ãF,)ïªÔ?«Jâ~œªÝ”|PY“„kÎ4’ì©êQ„#‚eÝNïÏïB¿êV8ÁüyUYSh:³6 b¥f2(‡¼ çðà¬ZÝÖÚTnB—f5'C¬@cÿ£ÒìݳÿXi]æˆ2kÊUìÍUÈÇ‹Èn{jášüÑ£ÄÐM?'ñ=LÚ¾—az†ú×7Äù«Gg£vPâS¤‹™aK;= T°%Õg¿(cˆ{€´M>SÁÁõØþ v6ãÛÚâ'¿O’¼µXuÙQ5ò¶œ…šŸ­ixÝ.Êae.µKöÅL¦º9(=Þm¬û÷‡eBvÞ°EÔ½y#C#ø³ÿaj6Ùo‚àìÖz¥ñ{ÌÖ=[è@¡ùüDÍa|²0F(Ô×ËGžÈvúU5ñOº”+?ä8mBžA‰‘¬Ê09­ZºXŒ…‡„P3¦{ Ñp˜ª†kP!­[bº­@"_p!lÊ'TY‡J2Û&¢&”I”ù8/Nc¬8ó_·~¾x@>z;Òcž ̆»{¢hÞŠ–ÔDEyÿjN~7k†Ô/£:±iã#o&É\Ú@$k~ŽGb¾4h;6ºI.ó‚›^£ KwžÌ]9º’•Ö$>QÕiïÕõÄ}† òØûû8÷fÊ.•Í#å™SÁYsãni4îmåðwà èÉoÞ§íÞ•EQ›}uz²ú¼DÆ+ƒHLßÙ¨1XÓŽWÎë˜{öÿ©b\‘¶;…FòÆÝ4ºüÑÝt<¹7R7׺¹ä)Uد¶“?„DÌ®q©,q´Fe¾3wK…1ŒsEEÖSĤ™§Ï=*¡²ü¨ÊJ¾ý©ñ†wÝ­ (Ù$>ÝÇ3 -yꈟRÿÜÁ>Qf—…â…öý«±¯ÚCv^âh¤y' ᘬC"ý"ÒhÉà]¿¯5ˆà;Á2Z—ßoôL¹ÛV¥ÑKÄüŸÉ:Óg ŒÌú‡«L+e^–y%öîS™F¤gXbÓ¬ dž9B£OÑ:²okŽ×ô`–ýðiU•M[5ÜÄ-ñ¨˜>ŸN'O*^Om]4 Ý{`Ø×³Ùk#bNm#¥Ø¥£Djª8@ xf•(t‡B6ß]9Û–ü`É6hïÊ'Bò#;Ã$#~ÇÞAÖtS,LlË~"£•yf©2 ˜xšŸµ{bcé0¬5·˜û]";³Xib]Úý±Óu4»º êüNŠJYÕØd>,ØânϽ¶ùº˜C3JÂðÜé[ÒŽ^ä1ÄîËûö2Uœzòåëže0Y¾Ne…E×:¢‚°ýfâs8z¯˺`‡ÆgpÖ]w*öt:=ö4cc6Ê0õX/¬ž©R|jt7y„‚£¢F[ªò4iâµµªõ–äÙÂWõ„tæŽÐª"óý˜ÐÝ6¤ ó¢íéB÷°dÑäe©Lƒ£x(¡åî£Êøïê `¾L(Ä€;‰=Ü3d=”-Ê”¹>Ç~ƒ"¼^·VÈØiÖ„Maù¨k¦ý" TB¼=5 Wx7»Á)ù¦ _LžÙ7à*—H©i]+«‘ŽU÷Á~Y¹ò"úúŸËŠêë j‰›àÔz¬t«¡Ü2´™Æ)ʨM>–’|T -¤àr_jùÒ3_êø½Mÿç9òöôðÉêžè­btŽOÀ°ûjkcB̈2ƒ^Ò£3Øèñ„ÕX‘~“4º!š$‘ØÞk•Hè"2Bá ûZzµ¿¸â3á° BÁQgAÄÔ¸Õž9‚5æyIX­¸ùtÍüMz)¬²èmt!|¤´!Š"’WŒeߎ´ˆÒ^ I~ð2°+%–”¸eîÍn"îéÖ­ÉöäžXò¶Š¨‹b4ô˜Í‘Ltð}‰+Ũ€³¥Î9ŇTcĪM6*,+ÇÐÓj ÎEžû=Ëã¯|ñÅ.VsÑlþN Š@±û&÷Ñ[#U? „3[ÏAË<Û@ž¥ð tÏ7Ô­Óhƺ㊱VFy‰·ÄaÃÚöÕM•ÐEJÖž7[9ª4§tc>9Ä;çÁVùcÆ3øýOH? §‡|k[éŽ,lû·‰:XóF–Zãd§>Á8ÊÓzTˆŸ@ªÚ‰‹Sƒ²­T–MUjs¿¬šO]¶$¡Vf)0\°¦ýÂzhÀ¬jFLÿfõ±ŽOÿZÍ}K<¡é’TGA(5`K-Áȇ)8Ú¥-È\©23ö] ,p&.è¢øa<:M³Ïä¨;Ǹ¬aœ+^üµ?:ñkuíûB’Cfc¹ÑÆ÷­¦'õö¼¥vx½gï¶OÙZ>mŸ1õw|)ãüu‹dèÖ©@c[”5:€éAÅëªVi—u¬i-¶Þóøèé Ø'õ2mjÏ”‘Õ¹‘y€WÿDqøð{wöPoVóXEXQG I[#+ÅG"ŽEÇc¯oÄ Ž;OÁA|Ù…¹ëD²-¿Gý ô¶&!ŒN¨ü÷Þ—™{.M( ž =æSÙÜÎw±4ÖÄ0ÒuÅ# xó˜§p6æ>O½²;Z³˜Î|ë“õ™ú˜ÌÛ%ðª å…íe÷ãrcÉ:—Œ ßÁMµîÏ@hŒZV“T"³Oµú}Éh&”0LݱՆm§%6ß+UßYh!NGù×µå–@lŽ'K¨Ãkàs‰03b©\ò¬( …Á{Ý>âÅîß’´ \ÚYóì’ÇÖV7ÏI®¿*^´¦¹4| A-ûtÃÛXé“‚"³Ÿ(‡v„$\Ë#2ÝñUUýößüÆ­&Òz¶zñiRÚÕmž9øÉÖ¾y¼ ÄÓì{ç-´w¨úÀ¨žÿR¡$õÉUÛ@òù‡Ú’#ßwšíy&¹oöÓ&¾tfÒârÆ“7Im»E[pÚ5x`­d ­-iżÑ>ƒ›¬ÖÂÐ&uPœWEÔŠœÊÆöã$§?Ý¿«’°©to7„Ѫ158«u”agCÔò_]æÚ C&¸ûõŽàø@n?d¥š,ñýðz±š¥h˜©ÜÂú‚SÆšC¦;í´;tBj!z•å'k/_Ïί DM솩;Ý´Ö!Êàš5?ÕIÈY¸ê£.ãd¿À:©Ã±òø¼¬ZÖ«ìéO-a½:Ä2k,…ÇFû¥²¥»3«XvB +Ž ›'Øõ˜mø۟V 'ÖŽý>:å•w "ÏóQFÀq‰sX†I9•ìÉoÁ¨YW¾ÈšÄZ»+—~Ä``:9+#ÞwÎ(¶]Û0{›ëz„«°üâÎÁ,ú>ð.—­ZÎ-'\è‘s‹ó¥ÿ¦î N\‘ûõTnä¤4S… Äe?°Ù Ê)„†ZÝG«*Vo»jíˆÎàö´ÆZï×fÌ<¼ÙZ`5ìÏ;løB»N¥•™½#]£pCC]RO$û=0O>¼P¢GvDâÁïˆ_F{y]MØ YaA6‡’“6Ñjp’шö8Üx†°²%Ž7U¼!šz„‚„aKpJh«a€ýž°Êbl¸Ev Ø\3Êê9úÔTŸÄK_ç'«ïXê IzXqöDdïù¾}P¾}‹”Ý]À²XЃ{åoïùÜ0AÈoÒèÉÑÎfãKضóevgQ†¬ãøô‹°]ß.ŽÄp€]{ý2Âç_Ž €àâ1ÓüŒvÅ2 R%¼) Šõx6Õ³ “ÂrrY:ä'³­ÂËyû”V 0²Ï^n´»÷yã[œF¹XÒImËÛZ…¿}ù;h? gYm¾GòpÄK I(çÀý=n§z „]Ñ4x‘!Ï=bYtûXO •ò¡ˆ±ù&\ÚW¹4–öK_¤C'ñQmî»Ï:aÜDõ[ <ÚÉfkSÄš:Rº}Þ݆ÎDÊç¡»'ºezb7ö8`q÷ Æj‰÷OX؇{›ÄZááBLbç@"Jp€'½Æ;áǬ1—îT¦1¡¦LwÚ4³-ÂÕEq…Ø»dÐ*B‹)÷˜Ö¼üy•-C)V«&µ)³EF ìfÚÅl©•®T TÕ%ÞS5TîŠ}²>sNDœyÅ“a áÈèpÞ$†µT¶EQÃW*ìÚ.yE.Á]ä…i‹5/´fÔkf§ ¢[ü˽D~G«yí0p«Ø5 ³/“½^IW5j¸Šx—€<0IÝD÷p‹Îï½D¨£î1«ŽÖ¤h•¯T)…6­KlØ®‹†)Ãà‰Cgàì{Ð%6|YQyÆÁý=;!j†Dš ”$±nìÒù‚í’Éõ÷aˆVÖŠËËJ¸×:ör.ÜÔ@b dô™¨Yð#èǰÞ쬛V1̬1y9 ‡]¬ÐšÁª¥ØÌ'Iý|úY”ëÄvª-$N’سßE=L©©dê#r¨ ‚³™ÖÞ„»¯­L`øæŽšäEÇ—ØâüÁ™]ú¶‚ÇŽ•±5é¬=ü¬Õ+þ­ßXñqÍÉK‚˜A„TTEÈqÍDg"}øö‡ûÚ¬¡n”'“£Ž%)¹Ô½ƒªn¦_O¸,±Ý€'Ò5‚Ýž´xUC7„1ÙAÁ9ï¼%º—öÐ×àîW"bµœ˜Ô±CÀ¨ð…½æ€±v’ s•áÅØÆÌ¾¥VÝä'v1SÇ3*Ÿ† °•Ú®’AÖ6Û. Z˜ç×Ùúй1Ï%D/ƒð†û, ›|f„Ëoó?”jWºP£ïVa6$@æ1¾ü*k¢²õ;ᢹ´6ÑaÏT€@]jäÁÖö…èx¬Ïû2]5STr»Ëô…ÏÒBœvR¶‰Ý™¤3:©MŠîb?í'ž^,Ï*ÚY]Ï `LK#‹›©>º<Ì5PÍN„mŸ÷2†-¢\@.(´üüË¡7ª!ß~z]YJÖ–‘Šë‡2Å«‚ó:=éÔ`p;¹áw^4çÒW¨F\HqAël:{Ù77‡@äðhçªOžø…óE q‡oy¨H²SˆÑØ™ÒR¾Ò±Á J5o ¹&CN¯áBð/ÍâÝœ&­÷¦­ôÒêÐç?ùÑò¯Ðô—{èn £~“ŸÉÌ`ÁÉ4“;ûåI Q@µ]ðJü༰<:$u9i°25ùð, Qj%b†í`á{†F.¬Ð$k©8¨ÇÜ^ìš‘+žñmjÔÌÑkñì¤Ë[tÔ¿€\Äá eú‡µ¹£Àj˜¢¶Õåœx%ú9ÿ3Í(‡Ûw<Û¿Ù »àÊwARi„ù펗$"–•Ÿ]è?#ŸÃ'´6œNQ2$8Hgц`:ޠ弬ÓÈ–=üøý½Æ0윧ûà6Ó)=»ì²v?`lu‘èÃÝ fË% £ÁbÃ]¬æë9 ý6Ú{ à"+8ÄÍÅC¢(]æ@6Íü¸EºúÃAíÆùÕ m„› ЦÆ†L‹ë̼C$Bü9{2cè3xˆV°à™«Ó´”OTYúלǭM–i15?Ó}ü*G“yzC(Õ™4w˜8Eè‘$À€’ ì`Û»@ o5©ä³Ãøññ¨`žF¶¸íf—¼@æ~p^ÿ“GÚÅãxÝTwÅ×*méß»eòÑu<\ÕóÅ"Љ_ø]ƒ î$»tˆvÝ»f*šBéê¨ô<}O¡Øœúý’ñmz°¸O,SïŒÈž&:SWRÇ Üâ‹ñ[ïh0âXS ;oUóùG© •­ÞïÛ%¨oyÁ4÷§Ó…äp¹zçöðqá=ø÷’fË~$gETHPyR"ä—MDOwu,I1Ä4sÿ ƒ³K|@xFF&åˆ*7©Ú-¡ÄسâaÏÝ2Ðæ(5]’Qå•ÛQÕtgQaØ`žx‡8ul/~?“Ó&^rö”µéÁþ˜4#éGïm›™¢&¸æ´f7/ظá>L÷]><„RWa Å?ˆ»žÉ-íý‚ý]L¦ÓŒ´ÚHþ—íœ ¦Ô‘¹üæh!=–Í¢õÙÖº¼ÞTú(™üÚ3],ón­ê:.²“cS‹±Ño "øéð¬Ц„"•Çj=©Õ U~ü­‰›8sgòÚXG{Ü›Q$)ye×QaÑ|.³àD‚X“f‰¸¾Ès2œÃµásO Mó|T‘¡qJ3»ü"¸ÛÀy_3³" ˺Ú{<ŒÑ k%çj4¤ï@È;~; †ù2†_³ƒL@,À7ú3tLPü#†ÜW¥sóCDKù<«½šwבü-Ô§kG÷ç``4_F·Ú‰ÇŽáã»,ÇoÉ2„¾Ç aòì…eé1ˆj7£ú‚~Pâ15L«s|ÞÉœl¹4îïy»-ŒÍaš€YAÝEç(3|Á©ô€¸é3à‰ò¤µ{t¾Ñ×;ž;\TzSð‰™ËˆÔùF勞b)VÐ0¸!PµýP¤ú'¬QçÊH%rDïž mºÇ"°Â6x÷ÖJ@ EWK4æÝøkË—þÐŒãÈ¿ôÓo±ˆ:#¦Ðó{ý1<9ÏqÛ›µÓßp-ž’ÇåÍ#1í µm9Ÿˆ¹Ä¾‹|EFÊ,òøOt öMža¾i°~ß• ~wvÓõLCZðsämžÃÏPáèàà6OK|´>{y*‚lÄ÷94þ·¬L¥j ¡KV6A[€†óÜ¢ˆi™<Ü›­ÄŸWäí¼l£¿ÁNiSåD»ÏKž£Ÿq÷rû üï;à¼ß•½<|_þ¶µ·ºz°wzÝ_¦”±Êg¢¯ø©˜É=¡>"†:/—«ÖÜY\À:³À°ìâ$þˆKŠHË1Þžâï1©3qö”ñʀʀhXúÆÅUœ²´É1ö…“˜³ø¯¢¯‚½å:jðÂf³ÁŸÄÞÈšéUÃg“€'£M!¸è§5haã¦bѵçFSuµàeç­MßP*h¥ &ê³KqnF4/¢@«¼ÐÈÓÅ„Œ+5œ‰6𤉢˜)ìÕOüy©Ð܃Ráb{¥Ž¯ºžÉqnž<7BŠ bj»-yå$‡Â úw<ó#8s…q­‡îîB4hÉÙOïCäùh!1¿pfÑ µ={gѧ|Ÿæý%çƒô œLÕEOý™#„/$‚\C[J{/˜Àß`’jÄoá¹¥µÅ]h™ßr;I çñšì91 ÂÖ ™ª“PRnxïŽr0«FÌÈ×Îûopfò²ø\rÓE>Ëøh@©cÕóÒ¹ò4HñÐlà ðöuC®°ò%y4n÷»l6*cÓ3<`Á \ž%µß<ŒÛk>a|gC¥#5¥RË׬ⲑŒjÿò‘†à'þ´Þ- ç‹V£*k*Pmç÷ô˺ub´÷HG'ŠÔ0ö²4ɲô̾jܘ=#w1¸¢¦L(œ­h5óS`a k…Ô’*¦°Õ1Œßø¿,çl«+™¶7éÎÍaÇ…L…Ó%šf¸$Dú½já™üض[Ö|A¼¢h4"î4µÛ•«;ÏG.ùš}¹Ñgú@N!Ña÷hbñÊâ$¦6·¦Tœk!úÇ3§Ü€ùþ—&ѵh·q¶Ö·L qÏPz*ÍÆ=6×l.7–AîBŽL¢XDØÁ‚)Y[²¶ðã¿àFö€\¤ž5Oï'JfK•p«ƒªâ—{:PöuÇê~Àç ÁzÀ1‡L‹Ÿ¿ÎÈCP¢”I5ʽ´ðµv.§ „ü˜Q³? #È5ìF¤ $!1ÇøÚžkçºNuIÇë­bo¢‹Q‚nƒeU1Ö!–ÓRqDË8탆ºR½Hv¡céüYN>§^2¾ñŠ*v1.Åк¿Êe@WºgßäøFêDØæÛ8DQ~ésDC÷G´Î]ê—ÏSPt^€/šéÓy_¿Øê+GˆŽEÍ¿ùÁî ˆó ²*õ;ŽqšÁ¦Ô× cÿ­[GÞÓ©ïÛW(­ †Æ?¤ª »ˆn(\Vý–âRÖ­iHñ6IངÀ»éÍ’²;ÒÊ‚K”·raÕöKY[ ‡»ˆ0D^ì+]©í„„߉DŸ€º&yuTÞœ[3Ö˜€p;7绽VÀÔS,5‰N,ýïô'Ë4‚õD×Ù„¤WsMŒ$ß»-I¸@/F«Ž±”&=D»WCºceJÃËö±î¥jbx‹bo.‘¼ƒB$‰óÕ°U×­IŠY¸k½u|”­Ãg”W*‰Éá€dôŽ%þÜKĶ"}h„:j~cÍPÜõç[ïºÌ:W ã*ŽTΧ±èb&'†žÎ3ÀÉ¡O3åüzeòñ37(3°Ö‰22ˆ_¨u“ð`“ ¤d ÜÇ«óÞ­PBÀ Ùx'Vc‚Àë DZÎ*‚—lÏ,A¯?ˆÊºž·LÍ1Îã³n"5(FPõ|œcˆ—¼X¡$f´Zœ  Be4“ þø e[®®Ü^pDƒ°·Ì•@A Yðÿ°ßìÍvfÝÂÀ$¢¾ªyŸ´±ëcìíøéùt›óØ[ ˆÙ¨¶rÿ–Íï+Œ}ÛðBîÔ£ºÃa%&Ϲ¯–iëð襟M¤÷ŠCµí¿FåÛ-ª 3m£²¯Kv>3ÀÚÑŒצv`Š]G“q/lêûdéVW´žšz<TšTû‹´<žS»èA)ÖÆÍÜxÉ 6Œ­›‰~ ÕÑøX „~¨íØë¥YmÃù{6IJSÞ~Yàí^ŠO‡´nÉ/&…ØŸÕê9½s«Ë/ÃëƒÊMó`Ž©ÎV“ŠSbJQ©6æv™/¶û:[ܰOHû «¬ý…Fo…Ò¡+4ÆeoãÔ» ¶dn’Ÿ7V¾'404Ÿ?ý²…>¤Ìé‹…òx¸íCÊM´«†ódû%ç€adÉ›ÚӷʯX€€ ¥êß>ð¢‘Ï\Òsïý…Ýì„sîV .rN8Uò}#•÷Þm‰¾Á±a ‘=[™+¡¶M. Ù‚påO6ÞD®nλŸj߿έ›^ø®y¥ýRj<­ G]ã3ð;¹>àˆ`Ž­­ºMû*¡JlSòÛΔì\áEÿÖÊÑÃyŒ[Fû²êÙCa¸Û?˜S; þvæ[ýr•èÃò=†ÞŸa~ÿPg•@>G@úa¡[þóñé L@qivbd¾ôé<ÚÒâwŠðýB»Ý«d’í²7P|Zï² c~hc¢¶©³ráq[Lu¤æYv¥dê~qPéÐj’¡"<‡b*âýhW/ù«IEáâ¡#ß™{ïÖÈwŒ!—2ÃzŽì›dŸ#ã:JêDËá5‹dnØß«:œ-`”‘Ñb2쬧­ÔgBb³ÞÝâÉ•N:Þ10æ9ËLÕ£?¢ùv1—KdZá†ü¾y=xílvmèÀg—3dÈB>YÁzZ_¤ðÉ5Ú6š]áPPŸZ¡˜îxΰ߂ދ¹ŽÌQö“î‰í`œ«ÅäÛO[IÆ=Øì…úÉÔW÷­\bsÔÞ;.¢Qˆb^Ér„Ã\/ UÿÆeÌEõcª{Ä)–…âÜMoû\ÉØ ÆžÜÆã‚¿ºi¿Úå€Iõ‹%Ððú\?²–‘õÂwBwp 7&IBT`_H¥îŒWé0frÙ¢|Ï?+]ûëÙÛ™Eã-Âs¨žOãÇÔé4A{I&™7ËéÕ¦RºIØ‘²2ýâ‡ïÕ²Úš]­è Ïj°oU&X•ô’i"8oOzF6¾kÄí3Ë’«×[@(?`l{:ûPˆêÓsrÊ;·#ÁË®s\4úI356F~TÙD¥È/“Ú½¶<[–YH2¨—ûpœÆR{còÍ¥!{2VÔ¦Ç |BèÂFé8ŸôèD ÿÙ -úYSàWDñWöJA#\Ù®åóTz÷4\ôiúMíǫ̃OXoŸ|´n¶Æ”g›ž\!* б¸ƒhpD^|H:zŽÄ»’až‡ê¯\üwà®/±Ü¸,Þá¢Ûfý _ò@“ ó®ÚI\œ+Z^Zëê)Fh;B h'äÛfÇuåâá’ëq/y\ë}ßé: –’úÞ_ÞN…>5>lè+2ö9(ÓÆzŸœ()KêÕ~ªTOgº`²¥£©’Wø¶nn)s®{ão€0qrI}¡,dËr¥«v›±˜L„`é¤ßzÔà èWݸW-'òè‘¡QÈâÄL‰hÜ1×°»C%¹-Šêc ¼±.'CÏëfêS*£e’’ëþØË–P׉Ùo¹‰ˆÊôK“¥€ãÁ˜.›•æú™<ƒíL͵]\L!ZÀ5tÎBõ†ºêâBØ0û¸r\©–$€çË@)YUrõÙ›k4¬mŸ\™ìÏlìobìó.'ç1áÉ›Ó ïRóº+ÉŽF¥­fÊ7„Ü8@kÁ¦ ç®Ç uš  Özˆ™ Oãpì=õ ѤvÕßòÄÄ\º~a\ž^ç° 8'§lÇ¿0Ju›¡,·]|ÁT{Êk7\ò‚#8äâ?&aOG­ øºÄº,¦€…­?ðõƒ„R™$¸9–Zpvñ÷M¨h·ZBÒØfy÷†…ÁJk€¬½E½É›À軟NÖæ<V/wŒ •?‹ƒvË#Dy¯…º7Rpý´zøæº-ýÍqÎù0¨Ã•s&…tKè²’âìfv±d2øD ¦¦›mÛ+|£< >;ˆÑ_˜£UʰI<£\S´®s;-ï~Ì™†¿fek. ,Ç“¥ûiêYø6'—ÏixBêzf2~Í­àõ„¸³GšªBý1A«y²¸Œ+ÁtÆè@ò܇ÓN®+ÃY[M‹ø¶˜;ôVÓÜÂêžL»÷ünZÏmüx'v{ˆr Ïú÷\wil¯û W 1âo'ä²J:ø\:íäwÜÏï0¸»äVôŽ’Úâ ¢5íwPñó=-ò |Öy{»?‘R+ß¶^³›K&)¯cËÝ'æ­#¤Ó.,ºK3ÏaÄðÐol¯¨ Ë ¯ZB><æqŸêë`ot5X±ò :•£+|€©®äïΛÇ['\í9]Fi²Pbvr½kîfaÒE© bÑ(˜¨-ðíàÅa€§2{©äÙ±’Œ“‰Fº(ñe¸˜E<_¿SŦx°XŽ{þÈPµ¼hëpo¢ò’×WÂÒÕrŠ`ÌKpÂz0T9Ö¼Ü}ÿ<ÐS÷{öü·÷»å}د³N÷j_ý¿¾è¦H˜!üý[º>…„1ÖÑ@DlêP:SbžrpºívCm•ahãÅÉãÓDÓ¹·°hã=^ä’žnm< ‰»•à†Ü™·^ ÎÏÔ*lqºÀÏA¢„,ÂTaã8 ¨$À±Xü7Ïív`+ú“ú¶Ûïû‡w!ä®%÷äV¸üê§VšÍyжúØ;ä ŸwÐåý Ù- |­µ³5#ê—SÊ=ÚÊYjí=¾·Òú·ÍÉŠüOìpÎî‘m¿!¾[Hò—\×Þ¦¡d¯ße=–¦9('§¢éÞ%MTÓ˜¥Ç÷Ø/›Ôê{”æ…+%ªqt%H¹ˆrh†¾å0w+à¢ä°ACjØgJézw޵`Š•šúxO%fé³V‰W&§Ûq,JúFõ{+;"7.ùXÒªÚ]Ûð1ß[QÄŠ·x!Å÷ªº°…\ÚÚ§JìÞÏf΅݉šêoë í79h"—(tH`õ±`-œ-5a†›Q¾Ó[pè«D2|ƒ¼i™Ø+,AŽ$c.‡‡!^&Ô±U9‹{70èZÿx2ÓP Õ>òx3ÕÉù>úý#qP^’ëW%øÊªysb}‹êëu­(o.½¶‹™æ_>èèd1ÝO‘¾Pk¶o“{‰­û³ffc¦“;¤jk~*¦Æú¨Fí| î¤à·Þ…œöOæE¦ˆ÷qŸŠ㦣q¬0Ïóî3ÕkõqR£¹|<Å^-)Cø‘ªŠ–0¹u(âK0—æGàºö#ˆk`Ó2ãÓ¤¸’0EµŒû.á–‹0à„ÎÜ4Z“ÔI2¹¯LªÈRâ1[wúï.Ñ›æÅ~¾Q < |Çš¿ŠÊ\mt¥Q]}ÀcD}ôø.ÞÉÏ‹·ÍË{º#’¸‰xƒ©¹Uôm“o“V+ÞJu#+ðË]i^úJ),ø¨ÿiKDñôÝÝÂø7LŸŽ/T•““Åcò*x¨'{¾~!烻û³3?i'ä«õG× Âˆ=Êb+iLwì\,Q€Y¤°÷ã,Ÿù¿½UÔ­iŸò,ð£gHíθˆ üú”õYfXð€§Äwš`ê-bÑ j_Ô÷i©¼ÒíAnÎ?i-=7ìH§+Öƒ°œ27b@9–½ÒƒßÝX1aZc¼žÛÜÍ k|23~+HQÛ SÒ´V¢=ã¶è]Œ°¬^»Ö,BUqðèTŠ¥š$ÕNÆrz/919ë–lªÓþ1y{Aõ͉O”N%¼9^Uï ÷°÷îd¥{ç8 ¨]È{ªÆÃTèû.‘lannQ5õNvî:ÂÎ*PH ³#»Ùwû=§Û°ÊDÅlͧå^9§žc|Žªœ‘xòw峪?NBn«ºûQŒ³ä[tžiÜ7=[]°ÔÁ ™fN?ù%”’¢C)·áMeòwë“hûý3ÎkÒœTo<ìWìÃá=•c yð’¦·úÎG7›JÔ:S…ˆWßtFu_Žw½žn¤oh(eqb„•‡I©õMŽ«Oz(ýŽ‹Ïºñ¬DüYçüu0(7 ËE*w0Ú ûÅÙ e1î˜ë·s'¹ö8™$—À^v#ײÇOK"L!Ë®C _LžðÀm¨—ÏM~˜1Ƥ\–¥àÿ©Q«À endstream endobj 130 0 obj << /Producer (pdfTeX-1.40.18) /Creator (TeX) /CreationDate (D:20200514102848+02'00') /ModDate (D:20200514102848+02'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) kpathsea version 6.2.3) >> endobj 16 0 obj << /Type /ObjStm /N 94 /First 799 /Length 4707 /Filter /FlateDecode >> stream xÚí ÂÐÌ'R$85@øÜ(ƒF]€6XiF`+p^øNÆ®ÁÁ?8o ‰Ò`ø¢ PAQPãÚÂ#N;"4Þ¹ªq6èc„`—àd%„G}a¶àè?FåáÏo“¢|5>ŒÊ­Ë¯‹É׿аnöGåþd~y5;žÌaQËÉÉt¼yù£ø( Á>ªO#>ƒq`"û÷¿‰óp+þø£(w`Š{u`BFA!—Pˆ¿„i&Oý-U+ÆD…£+ê"÷h«„+tCÂZ q˜Wùjvy|0YAçí¢<œüXŸª)_k %zÖk™#ÓÖ [ûza’¨¦¯1Æ~…Z®«–2÷¥Vî¢\ÅÌ]šÂvùëž[Ôzn¥ªe? ó9{\Ÿ= yqÈu°—h}_nÔ=7ê{sc®z®cÄT–ðÌh·FíŠ*šž§õ/÷t®b­úªóï¥Ss·|j̽Ì?_u¯ª‹ïéb×Ó%›ÝBïúp{šð«¦•=Õã?¨zžpêÜÙÎI·'œUU7]Õ­ZKõ-p ׿†‚Åd×scèéâîK—×5sÎuYqþ®†6Þ×üó¸ºu¿yþ½ÖºHP¨ ͆…Ü€sŒ”²ê¥v­Å‡2nà©DoDð¶Dïë± fÜoqñŸF³BÜùGäÐ4^m¨¹ÅÃ1Ï‹€ÒµÒ|ÍNoH h‰tpà„¹Y‰<ÚÁ#J—úSMܵÃÖb óG:ËzµåBƒ¹Ý4Ó»ÀÄ3ƒ,+§áo¸¥jŒu†Ò7(]Un^c+ÑéÀ…Úõp óyˆ'ε4>IP˜íÙCISŒ‘òeÖÂÍíš[%׉[Ðgä·ú)Ù»nËÇ`+{Ž=”"'³ ñS²öXŠ]vçdRUí,YŠvi{„K‰èJ¦­\[Wï™C0ܯL¤ý–^BòB¦@¾øR€˜…[¯òMEB,TkSé*Œ¨¸ßÐÆÄ0‰Ìzu0Ÿ§y˜8f%µÔ¥¡d â¤j‘Bk,gÐ"Q©hÙ+Ò Ê(¾‹A3EâIcK¶rN2(K$(…tnjšØ›As“ä ¥Zм•|–µ$ƒgíùXng×±›x‚¹yg‹*²ËR ùªÏÃ*A^f#PŒ(‹ŠH†VªI0ºyÍ7}´u–Z›“Êcj‰`#ÆkêæVáID,8ÇsJÓ'˜h²^ ñ Š_Që3ì×úÜÂÊ{0º¬ÔæD©Ð Ì.éÜg¥Šf)ö,•´šèÛ¶¶sH8lO®ª÷IJ’KPŠ([ \íçÆèã-SãäÁ oyŸÚ[Qáp%$ó°ë8–2z¦1‘ѱvcÞË 1Ncãwrªl-Ÿå º`˜WÒ×ÝEp ÏU8×èé& >ÒJ1»•`žšnPˆ‚í5æmsöÐT½ëúLà³3&êõîOxýû“Ö å÷yiýóäKˆhˆ·¨Q;†š6mèŒêªä: U—8o(F©ÕWýRÈ€ÒèÔ^ñ¦dd’ÈÔŒ7T†žMF‘q¨±›gx˜8f3# `5«ñ™uõ1RÑ@³qŠb'ÐöKµ]à}*âN$#i®oç-Õ#ï6˜ ˜j'· ^ðá^ Š'—KéTBr<&€œÜ¹F–*!dJ™?¹fÌü‹­-¯G„ÜÂ^¡q5-÷‹ó0tëa*êc 1ž g2"~†nA·œS×€‰g}hSà³w|ß ÆÕ†nKa¾PÇàU• bÇÐVóŠ–²?­µ€Uˆ#£|»Lüx,q6êPŒ€ÄÛÑM2Þ¸Z¾T¦?§Ðï•Ú¾žn_ nÉS_ÞÂ4y{>–Û'F”MSË ’8kº’¢r^ Þ~"“ô,UŒU°Z&]JAFÅÁº'µZ.‘6j‰dIß4¢ffÎIXhŽç”:bÌ0 É{i-çÜÖùܲ,ÐÅ ¹…UÇÒºV:`¬Ñ¾DUt¤ Ñi4²âr›c GD´ óáqÌ™!ÛÆ%îLGN<ªÕäˆyn†>Þ20N~#ÌsÄe½Y U›;ÔÓj(¹ßˆ5…RrUÝà 0Nb/DŒÊ`¹—SŽ,T„•„ñCŽ¡E,-Q* —RañÈDöÏ B…Úµ-×ëX¬FAG-. M3‰|RÒTÚì=S%7Úp O-êUb ‡L¾ŒÞ’]íi$µ;E¯²¨%*CxdFÏ4XàŽ^‚cö†jJF~ˇv*ÅBVe%FçïÛSI‚Or1Ò‹2ØÎ›÷PÝ—D½z1¯ç~q½øû}ÛíïÛª‡ã•/üØ!Yo*¤ gØÄ„m`ÈTOLt$̪~րȥúó´0Œ£4B[`Ÿ¥CfUyyC~q˜üœæ²J•¶tîšF*r˜(¦Ý:ñ㑉·¢*ÝÔ¼‘оÒ+\ý`ch)ÜÆš'dc´¥k S”è›~AmX¬zÆ{)QSqŸ¦rRG÷Ptt¬ûxºŒ3dyÌ#úFjñЩ Tž^yI̲| ôC0r©ßS€»‰ªpoéå,'çÓ¹_'-’²ë0‡*C²-½Hëáy s6‚n 2\yºxÉhÒXn§ÅÌ-Þ«ôz/¶y Þà êÊxÞË1NðSöµ üÄöd~<›~[\Îø /ÇÐóòóíÝÍÿßz±ùN*è8ŸÎ ÛôýŠV”Åo c¤ZXCåÃù1~Ëާ£rküíÉdzzÁJƒ}$v>]ŒÏ§Ç¿žžO 1*“‹7x2*ߥA°bÇÙx†_­øWù°Ü,·ÊíòQ¹S>-Ÿ—»å‹r¯|U¾.÷˃òm9.?—Çåñåùå×ò¤œ”ĤüR~ù2-¿Lÿš”_.¯fåiyVNË?Ëóò¢üZ^–—_'å·òÛd6½<)g弜Oþš|-çÓå¢\œÍ&“rñßËòªü«üoù£üYþýl‚)L<´¾Lr›E½ÝÛÝ%‹Æƒ4(~i;Úû1¨ô7”M†Z/ZZ¹e´z»uôòà´Ú—âz­ŒHZ q[˜è;iåò(Ñr(J—O RžQ¤¼Ìbå°<*ß@ļŒ/À÷óñדr¼k|žÿœ,Î'_>£8ª"ëøòâb ñu2Ì&óé¼´ÉãóñÅ[ ¹uçMàýüvÁ5-ÿSGà×)`†ø%’MKN±ù½ü~u¹˜œ|>'‚êiè‰QŽá‹)O·‰æùùx~6Óåß“Ùe+Â2!°¿sxðxB` SÀFC™"†p?`oˆ€GàyôùAz>#—œÕ€–™ägÏQ,eŠgÏžo>$SøSh^ Ñà! ÞÙvÀV禹)0ü_PØcÐcŠ<¦Ôˆ)ðœ”'ÅS$üli­–ÑúèÙþ«ÍǨµ»^i%êĦï%‚ €&Ù£këxoi·TÞ~÷r{ïÍ6j7àRå+픺í|\K»¥ò÷Ç;/÷·P»0°®Jß^Üvî–Åû4¥ì*rÒö~cvæ5>ieà¤{ßùvÑäÒ––J¢O_¼{¹‡õÖþ@q5Vòƒv÷ãsƒÚ©³2ë´W@µŠ'4D'‘À¦¿Œž=}ýøXá`w¨œpª^mkå’ñËí¸V°­ÔRéñãG/ŽH©ÃÃ!µ(Ej¼¢;ÙL+)[Zác­•RjH«ª¤½ä^Ø/ÏÏÇ3òo¶TÎÛ®ýÎUEª ®(ÒÿnÛc©„úzkûùö´ÇÁ “eÚ%#–Œ7ì’øx—X7ÔÁí‚q·S*V¦‚JïûÕø¼^ PÙÝ–_&3œW?¥d¥Ú`YÖ1ðR9ýýÁ£ÍÝdà¤îl•L]¬mà0|ÐÀ²ã4­˜‚Xj+¹TÂ|µõæÉæ[Rލqäe¥'Rkë)u¾{Ùp}$åqDQÔÒS.—ß¾|tðô|:¤fôõí×Y/°€O·¬>TqMÉν÷b~hor¹RòÑÓïÉ«ï3%l„Ñá éõW£,ìËlÒTÊ1˜+ÇsÜêç^Œgm½–ÊyöÞ>'½jd8"Eü_ÒøÄ}p÷ •U+hµT¢9zõz÷=Ææá`hj[o×f­íºÑË…A½¶(c`búÆsþ¸]Æpê¾î*¨³Ý-êlü£m ¥’Ôî‡ç[G;d p›}¢¸'ûx}Ca· öÁ¥{TÁ&§õ Îíp]•Û6†Z*“½{½ùäé#Þf îËÃK›ÃõþÞÛ‹ÔRYkoëÕÞ ¬h†ë;ÃåÕk•ww»Ãú>žNÓó“Éе(ž#‡.¥®.>Ofóéiï†ôû5EËõ‹Z.;¾Ú>:|Oöˆ —Ìgð»OamóÝxöÙììã|y¸ŸN¢ïѼtY…s÷^°)—°í ÇÐoçWóµ¯÷:7ZR äx0ÎÕç=b#Xes<ŸÐÿ‘ì½h¹ý„þóåÎt6_ ) \€»ãêýðvz²8›ão­,-¼ssÞ‘í»²ñv°‘-]#;./»s¿Ý‘{zË–Þ¾–Äò²;«mÙQve3$[­ »}“Ù‘­»²½jÉ–l½¼ìö}bGt/ÔLÌDãuh’ìVðvû®¯#ÙßU²_Á×í{¸ŽäÛ¬1·_ÁÜí«§¶hü=¢;ËËËî^øt¥÷͸Öân‹[AóþÍLW~/Ú´HlÎ,/¿{Ò•îo±}–VíòÒ;×]áñÓ7ùÅ­ ¼|ïÈ—òƼl#~…ôÖ;Uw¥ë›w•,ìÝ ;Z÷˜Û•Þ»Lx“h‚\^tç$Ú•ìï&Ù¯íÝÓbWômYN4ÒWлsëWòîÂW·Îѧ+\ß¼•gKÍûå…wO']éý`k‡zS@¹2|§¶ï ÷·7ðkTÇŸ™ãï‚\áY ùÍ£êW°žOOæÅGþ©ޝ‚ÕÅ<ÄÍOšž>­ÂÜ0wÃ?ãfùÚ,ÿÒŒåqâ6î¸1;^€éwJ:C¶Æp–¹<ñØz"@ó?àÆ³w endstream endobj 131 0 obj << /Type /XRef /Index [0 132] /Size 132 /W [1 3 1] /Root 129 0 R /Info 130 0 R /ID [ ] /Length 360 /Filter /FlateDecode >> stream xÚ%Ñ9/DaÆñó¼÷Æ2c_cìû6ËØ÷eìÛ ‰F¢ Pù: • CBBô…B$DB4yÎ4¿üÏy“÷ÞÜ+"ògDA"na “!2KÉ'‹¤ŸL’92F`¯<ëabqènžŒ’ElHºWO—H4q@|[º[&3dŠ8I ¤Ê¯§!Gb!þ&Ý%xHG–Ž+ÄM\þ(ÝM$’ è.…$C»:N“4’ ÙüÑ]I‡ì\é˜I²H6É!’KòH>ñ’â#…¤ˆ“RJÊH9© •¤ŠTCö.õ‘5ëU­ZÈË‘VXÔª6"oß¾j5g‘á&´š`\ßZÍ0½­˜õ ­ÌAä¶ÂÜ~jµÁ¼½kµÃü^huÀòEn ~huÂZ~Òê‚u¼¯Õ ëî\«Ö×£V/lϽVY%k°Ã7{ûTþé~;( endstream endobj startxref 290472 %%EOF quilt-0.68/doc/PaxHeaders/Makefile0000644000000000000000000000013013667652742014110 xustar0029 mtime=1591694818.65534094 30 atime=1706202714.653548917 29 ctime=1591694818.65534094 quilt-0.68/doc/Makefile0000644000076500001440000000200513667652742015345 0ustar00khaliusers00000000000000# In order to build the PDF documentation, you need the following packages # to be installed: # # texlive-latex texlive-subfigure texlive-metafont texlive-mfware # texlive-cyrillic texlive-collection-langcyrillic texlive-cmap # texlive-cm-super # # Alternatively, installing hevea might be sufficient on some distributions. all : quilt.pdf quilt-rus.pdf quilt.ps : quilt.dvi dvips -t letter -o $@ $< quilt.aux: main.tex pdflatex --draftmode --jobname=quilt -t letter $< quilt.pdf: main.tex quilt.aux pdflatex --jobname=quilt -t letter $< quilt.dvi : main.tex latex $< && \ mv main.dvi $@ quilt-rus.ps : quilt-rus.dvi dvips -t letter -o $@ $< quilt-rus.aux: main-rus.tex pdflatex --draftmode --jobname=quilt-rus -t letter $< quilt-rus.pdf: main-rus.tex quilt-rus.aux pdflatex --jobname=quilt-rus -t letter $< quilt-rus.dvi : main-rus.tex latex $< && \ mv main-rus.dvi $@ clean: rm -f {main,quilt}.{dvi,log,aux} {main,quilt}-rus.{dvi,log,aux} distclean: clean rm -f quilt.{ps,pdf,dvi} quilt-rus.{ps,pdf,dvi} quilt-0.68/doc/PaxHeaders/README.MAIL0000644000000000000000000000013213323600554014032 xustar0030 mtime=1531904364.141191444 30 atime=1711108486.061450191 30 ctime=1531904364.141191444 quilt-0.68/doc/README.MAIL0000644000076500001440000000765513323600554015305 0ustar00khaliusers00000000000000QUILT MAIL COMMAND ================== The mail command starts up the system editor ($EDITOR, or vi if $EDITOR is undefined) with an template in Internet Message Format (RFC 2822). This template is used to generate an introduction, as well as one message for each patch in the selected range of the series file. The template is used as follows: The headers are used in each message generated, and modified as required. The template body is used only for the introduction. In the template, the headers can be modified, additional headers added, and unneeeded headers can be removed. The template header also contains a special Subject-Prefix header which defines a prefix for each subject header. The @num@ and @total@ macros in the Subject-Prefix header are replaced with the patch number and the total number of patches, respectively. The patch number @num@ is zero-padded to the same width that @total@ has. Each message is assigned a unique Message-Id header, and all messages other than the introduction are made to refer to the introduction (using a References header) for proper message threading in mail clients. The message timestamps in Date headers in each message is incremented by one second per message, starting with the timestamp of the introduction. If a ~/.signature file exists, this file is appended to each message generated. Recipients and headers can be added, and existing headers can be replaced, individually in each message based on the headers in the introduction. Quilt does not enforce a specific patch file format. The mail command has a built-in heuristic for extracting subjects from patches, though: * if the patch starts with something that looks like a mail header, and there is a Subject header, use this as the subject, or else * if the patch has DESC a line followed by an EDESC line, use the text in between as the subject, or else * if the first paragraph is short enough to serve as a subject (150 characters or less), use the first paragraph as the subject. All bracketed fields and Fwd:, Fw:, Re:, Aw: are stripped from subject headers as well. If no subject can be extracted from a patch, or there are duplicate subjects, the mail command will print an error message and abort. In case a patch header contains a line starting with `Cc:', `Acked-by:', or `Signed-off-by:', the email address specified is added to the CC header for this patch. If a patch header contains a line starting with `To:', the email address specified is added to To header for this patch. If the user specified in `To:', `Cc:', `Acked-by:', or `Signed-off-by:' equals the current user's name ($LOGNAME or $(whoami) if LOGNAME is undefined), this does not add a recipient. Each recipient will occur in the resulting message only once. Duplicates are filtered out. This happens as the headers are read, so the relative order of the To, Cc, and Bcc headers should not be changed. Recipients are checked for RFC 2822 conformance (at least that is the intention; actually the checks are not perfect). This means that special characters must be quoted, and 8-bit characters must be encoded. In practice it probably makes little sense to use anything fancy right now; this area still needs some work. Character set recognition and proper qualifying is also still missing. The heuristic can be overridden by defining a quilt_mail_patch_filter function in ~/.quiltrc or /etc/quilt.quiltrc. This function is passed the patch name as argument (without the $QUILT_PATCHES prefix). It shall read the patch from standard input, and write a RFC 2822 message header and the patch to standard output. Headers of the form ``Recipient-$X: ...'' denote recipients to be added to the $X header (for example, ``Recipient-Cc: agruen@suse.de''). Headers of the form ``Replace-$X: ...'' specify that header $X is to be replaced by this header (for eaxmple, ``Replace-Subject: Patch description''). All other headers are appended to the existing headers. quilt-0.68/doc/PaxHeaders/README.EMACS0000644000000000000000000000007411251662327014151 xustar0030 atime=1706202714.653548917 30 ctime=1495037541.048440088 quilt-0.68/doc/README.EMACS0000644000076500001440000000134711251662327015407 0ustar00khaliusers00000000000000Introduction ============ quilt-el minor mode (lib/quilt.el) is toggled by `M-x quilt-mode'. It provides the following features: - You can issue many quilt sub-commands by shortcut keys. By using these keys, quilt-el can also detect moving the patch stack and can refresh corresponding buffers automatically. - If a buffer is associated with the file which is not included in the topmost patch, the buffer becomes read-only. So you can avoid editing wrong files accidentally. - After quilt-el is once enabled, all files which you open are checked whether it is in a quilt hierarchy or not. If so, corresponding buffer becomes quilt-mode automatically. -- Satoru Takeuchi , Sun, 14 Jan 2007 23:57:29 +0900 quilt-0.68/po/PaxHeaders/quilt.pot0000644000000000000000000000013214561377437014204 xustar0030 mtime=1707474719.324387944 30 atime=1707474719.332388043 30 ctime=1707474719.324387944 quilt-0.68/po/quilt.pot0000644000076500001440000010213414561377437015443 0ustar00khaliusers00000000000000#: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "" #: bin/quilt.in:41 msgid " quilt --version" msgstr "" #: bin/quilt.in:43 msgid "Commands are:" msgstr "" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately.\\n" msgstr "" #: quilt/add.in:11 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "" #: quilt/add.in:14 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" #: quilt/add.in:37 quilt/add.in:43 msgid "File %s is located below %s\\n" msgstr "" #: quilt/add.in:100 msgid "File %s is already in patch %s\\n" msgstr "" #: quilt/add.in:108 quilt/remove.in:79 quilt/revert.in:81 msgid "File %s modified by patch %s\\n" msgstr "" #: quilt/add.in:116 msgid "Cannot add symbolic link %s\\n" msgstr "" #: quilt/add.in:123 msgid "Failed to back up file %s\\n" msgstr "" #: quilt/add.in:134 msgid "File %s added to patch %s\\n" msgstr "" #: quilt/annotate.in:11 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "" #: quilt/annotate.in:14 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" #: quilt/applied.in:11 msgid "Usage: quilt applied [patch]\\n" msgstr "" #: quilt/applied.in:14 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" #: quilt/delete.in:11 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "" #: quilt/delete.in:14 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" #: quilt/delete.in:86 msgid "No next patch\\n" msgstr "" #: quilt/delete.in:99 quilt/scripts/patchfns.in:602 msgid "Patch %s is currently applied\\n" msgstr "" #: quilt/delete.in:111 msgid "Removed patch %s\\n" msgstr "" #: quilt/delete.in:113 msgid "Failed to remove patch %s\\n" msgstr "" #: quilt/delete.in:124 msgid "Failed to backup patch file %s\\n" msgstr "" #: quilt/delete.in:131 msgid "Failed to remove patch file %s\\n" msgstr "" #: quilt/diff.in:11 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" #: quilt/diff.in:15 msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" #: quilt/diff.in:221 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" #: quilt/diff.in:235 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" #: quilt/diff.in:244 msgid "No snapshot to diff against\\n" msgstr "" #: quilt/diff.in:278 quilt/files.in:107 quilt/mail.in:429 msgid "Patch %s not applied before patch %s\\n" msgstr "" #: quilt/diff.in:346 msgid "File %s is not being modified\\n" msgstr "" #: quilt/diff.in:365 msgid "Diff failed, aborting\\n" msgstr "" #: quilt/diff.in:372 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "" #: quilt/edit.in:13 msgid "Usage: quilt edit file ...\\n" msgstr "" #: quilt/edit.in:16 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" #: quilt/files.in:11 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "" #: quilt/files.in:14 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" #: quilt/fold.in:11 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "" #: quilt/fold.in:14 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" #: quilt/fold.in:128 msgid "File %s may be corrupted\\n" msgstr "" #: quilt/fork.in:11 msgid "Usage: quilt fork [new_name]\\n" msgstr "" #: quilt/fork.in:14 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" #: quilt/fork.in:81 msgid "Patch %s exists already, please choose a new name\\n" msgstr "" #: quilt/fork.in:93 msgid "Fork of patch %s to patch %s failed\\n" msgstr "" #: quilt/fork.in:99 quilt/refresh.in:341 msgid "Fork of patch %s created as %s\\n" msgstr "" #: quilt/graph.in:11 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" #: quilt/graph.in:15 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" #: quilt/grep.in:11 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "" #: quilt/grep.in:14 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" #: quilt/header.in:13 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" #: quilt/header.in:17 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" #: quilt/header.in:167 msgid "Replaced header of patch %s\\n" msgstr "" #: quilt/header.in:170 msgid "Appended text to header of patch %s\\n" msgstr "" #: quilt/import.in:14 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" #: quilt/import.in:17 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" #: quilt/import.in:65 quilt/mail.in:460 msgid "Patch %s does not exist\\n" msgstr "" #: quilt/import.in:88 msgid "Patch headers differ:\\n" msgstr "" #: quilt/import.in:91 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" #: quilt/import.in:156 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" #: quilt/import.in:195 msgid "Patch %s is applied\\n" msgstr "" #: quilt/import.in:204 msgid "Patch %s already exists in series.\\n" msgstr "" #: quilt/import.in:210 msgid "Patch %s exists. Replace with -f.\\n" msgstr "" #: quilt/import.in:221 msgid "Replacing patch %s with new version\\n" msgstr "" #: quilt/import.in:225 msgid "Importing patch %s\\n" msgstr "" #: quilt/import.in:227 msgid "Importing patch %s (stored as %s)\\n" msgstr "" #: quilt/import.in:240 msgid "Failed to import patch %s\\n" msgstr "" #: quilt/import.in:249 quilt/refresh.in:328 msgid "Failed to insert patch %s into file series\\n" msgstr "" #: quilt/mail.in:13 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [--charset ...] [--signature file] " "[first_patch [last_patch]]\\n" msgstr "" #: quilt/mail.in:16 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--charset\n" "\tSpecify a particular message encoding on systems which don't use\n" "\tUTF-8 or ISO-8859-15. This character encoding must match the one\n" "\tused in the patches.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" #: quilt/mail.in:198 quilt/mail.in:206 msgid "Introduction message already specified" msgstr "" #: quilt/mail.in:312 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" #: quilt/mail.in:463 msgid "Unable to extract a subject header from %s\\n" msgstr "" #: quilt/mail.in:489 msgid "Patches %s have duplicate subject headers.\\n" msgstr "" #: quilt/mail.in:498 msgid "File %s does not exist\\n" msgstr "" #: quilt/mail.in:558 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "" #: quilt/mail.in:561 msgid "Introduction has no subject header\\n" msgstr "" #: quilt/mail.in:674 msgid "Introduction saved as %s\\n" msgstr "" #: quilt/new.in:14 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "" #: quilt/new.in:17 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" #: quilt/new.in:68 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "" #: quilt/new.in:97 quilt/refresh.in:182 msgid "Patch %s exists already\\n" msgstr "" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "" #: quilt/new.in:110 quilt/refresh.in:337 msgid "Failed to create patch %s\\n" msgstr "" #: quilt/next.in:11 msgid "Usage: quilt next [patch]\\n" msgstr "" #: quilt/next.in:14 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" #: quilt/patches.in:13 msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "" #: quilt/patches.in:16 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" #: quilt/pop.in:11 msgid "Usage: quilt pop [-afRqv] [--refresh] [num|patch]\\n" msgstr "" #: quilt/pop.in:14 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" "\n" "--refresh\n" "\tAutomatically refresh every patch before it gets unapplied.\n" msgstr "" #: quilt/pop.in:92 quilt/scripts/patchfns.in:977 msgid "Failed to copy files to temporary directory\\n" msgstr "" #: quilt/pop.in:117 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" #: quilt/pop.in:119 msgid "Hint: \\`quilt diff -z' will show the pending changes.\\n" msgstr "" #: quilt/pop.in:143 msgid "Patch %s appears to be empty, removing\\n" msgstr "" #: quilt/pop.in:148 msgid "Removing patch %s\\n" msgstr "" #: quilt/pop.in:214 quilt/push.in:376 msgid "Options %s and %s are mutually exclusive\\n" msgstr "" #: quilt/pop.in:236 msgid "Patch %s needs to be refreshed first.\\n" msgstr "" #: quilt/pop.in:246 msgid "No patch removed\\n" msgstr "" #: quilt/pop.in:270 quilt/scripts/patchfns.in:511 msgid "No patches applied\\n" msgstr "" #: quilt/pop.in:277 quilt/push.in:440 msgid "Now at patch %s\\n" msgstr "" #: quilt/previous.in:11 msgid "Usage: quilt previous [patch]\\n" msgstr "" #: quilt/previous.in:14 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" #: quilt/push.in:11 msgid "" "Usage: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\\n" msgstr "" #: quilt/push.in:14 msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--refresh\n" "\tAutomatically refresh every patch after it was successfully applied.\n" msgstr "" #: quilt/push.in:57 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "" #: quilt/push.in:176 msgid "Applying patch %s\\n" msgstr "" #: quilt/push.in:210 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "" #: quilt/push.in:214 msgid "Patch %s appears to be empty; applied\\n" msgstr "" #: quilt/push.in:218 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "" #: quilt/push.in:228 msgid "Patch %s can be reverse-applied\\n" msgstr "" #: quilt/push.in:231 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "" #: quilt/push.in:286 msgid "Patch %s is already applied; check your series file\\n" msgstr "" #: quilt/push.in:408 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "" #: quilt/push.in:416 msgid "No patch applied\\n" msgstr "" #: quilt/refresh.in:11 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" #: quilt/refresh.in:15 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" #: quilt/refresh.in:168 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "" #: quilt/refresh.in:199 msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" #: quilt/refresh.in:237 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" #: quilt/refresh.in:243 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" #: quilt/refresh.in:249 quilt/refresh.in:349 msgid "Nothing in patch %s\\n" msgstr "" #: quilt/refresh.in:321 msgid "Patch %s is unchanged\\n" msgstr "" #: quilt/refresh.in:347 msgid "Refreshed patch %s\\n" msgstr "" #: quilt/remove.in:11 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "" #: quilt/remove.in:14 msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" #: quilt/remove.in:70 quilt/revert.in:72 msgid "File %s is not in patch %s\\n" msgstr "" #: quilt/remove.in:88 msgid "Failed to remove file %s from patch %s\\n" msgstr "" #: quilt/remove.in:102 msgid "File %s removed from patch %s\\n" msgstr "" #: quilt/rename.in:11 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "" #: quilt/rename.in:14 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" #: quilt/rename.in:81 msgid "Patch %s exists already, please choose a different name\\n" msgstr "" #: quilt/rename.in:95 msgid "Renaming of patch %s to %s failed\\n" msgstr "" #: quilt/rename.in:101 msgid "Patch %s renamed to %s\\n" msgstr "" #: quilt/revert.in:11 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "" #: quilt/revert.in:14 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" #: quilt/revert.in:100 quilt/revert.in:109 msgid "File %s is unchanged\\n" msgstr "" #: quilt/revert.in:117 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "" #: quilt/revert.in:121 msgid "Changes to %s in patch %s reverted\\n" msgstr "" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "" #: quilt/scripts/patchfns.in:237 quilt/scripts/patchfns.in:524 msgid "%s is not a regular file\\n" msgstr "" #: quilt/scripts/patchfns.in:486 quilt/scripts/patchfns.in:498 msgid "No patches in series\\n" msgstr "" #: quilt/scripts/patchfns.in:553 msgid "Patch %s is not in series\\n" msgstr "" #: quilt/scripts/patchfns.in:581 msgid "Patch %s is not applied\\n" msgstr "" #: quilt/scripts/patchfns.in:618 msgid "File series fully applied, ends at patch %s\\n" msgstr "" #: quilt/scripts/patchfns.in:774 msgid "Diff failed on file '%s', aborting\\n" msgstr "" #: quilt/scripts/patchfns.in:995 msgid "Failed to patch temporary files\\n" msgstr "" #: quilt/scripts/patchfns.in:1038 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" #: quilt/scripts/patchfns.in:1113 msgid "You have to install '%s' (from package %s) to use 'quilt %s'\\n" msgstr "" #: quilt/scripts/patchfns.in:1192 msgid "Cannot change into parent directory %s/\\n" msgstr "" #: quilt/scripts/patchfns.in:1237 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" #: quilt/scripts/patchfns.in:1245 msgid "" "The series file no longer matches the applied patches. Please run 'quilt pop " "-a'.\\n" msgstr "" #: quilt/scripts/patchfns.in:1254 msgid "No series file found\\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "" #: quilt/series.in:11 msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "" #: quilt/series.in:14 msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" #: quilt/setup.in:23 quilt/setup.in:43 msgid "Directory %s exists\\n" msgstr "" #: quilt/setup.in:49 msgid "File %s exists\\n" msgstr "" #: quilt/setup.in:265 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--" "slow|--fast] {specfile|seriesfile}\\n" msgstr "" #: quilt/setup.in:268 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" "\n" "--slow\tUse the original, slow method to process the spec file. In this " "mode,\n" "\trpmbuild generates a working tree in a temporary directory while all\n" "\tits actions are recorded, and then everything is replayed from scratch\n" "\tin the target directory.\n" "\n" "--fast\tUse the new, faster method to process the spec file. In this mode,\n" "\trpmbuild is told to generate a working tree directly in the target\n" "\tdirectory. This is the default (since quilt version 0.67).\n" "\n" "The setup command is only guaranteed to work properly on spec files where\n" "applying all the patches is the last thing done in the %%prep section. This\n" "is a design limitation due to the fact that quilt can only operate on\n" "patches. If other commands in the %%prep section modify the patched files,\n" "they must come first, otherwise you won't be able to push the patch\n" "series.\n" "\n" "For example, a %%prep section where you first unpack a tarball, then\n" "apply patches, and lastly perform a tree-wide string substitution, is\n" "not OK. For \\\"quilt setup\\\" to work, it would have to be changed to\n" "unpacking the tarball, then performing the tree-wide string substitution,\n" "and lastly applying the patches.\n" msgstr "" #: quilt/setup.in:403 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" #: quilt/setup.in:406 msgid "The -v option will show rpm's output\\n" msgstr "" #: quilt/setup.in:467 quilt/setup.in:479 quilt/setup.in:490 msgid "File %s not found\\n" msgstr "" #: quilt/setup.in:470 quilt/setup.in:482 quilt/setup.in:493 msgid "Unpacking archive %s\\n" msgstr "" #: quilt/setup.in:503 msgid "Trying alternative patches and series names..." msgstr "" #: quilt/snapshot.in:11 msgid "Usage: quilt snapshot [-d]\\n" msgstr "" #: quilt/snapshot.in:14 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" #: quilt/top.in:11 msgid "Usage: quilt top\\n" msgstr "" #: quilt/top.in:14 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" #: quilt/unapplied.in:11 msgid "Usage: quilt unapplied [patch]\\n" msgstr "" #: quilt/unapplied.in:14 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" #: quilt/upgrade.in:15 msgid "Usage: quilt upgrade\\n" msgstr "" #: quilt/upgrade.in:18 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" #: quilt/upgrade.in:65 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" #: quilt/upgrade.in:69 msgid "Converting meta-data to version %s\\n" msgstr "" #: quilt/upgrade.in:100 msgid "Conversion failed\\n" msgstr "" #: quilt/upgrade.in:101 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" quilt-0.68/po/PaxHeaders/fr.po0000644000000000000000000000013214561400610013245 xustar0030 mtime=1707475336.888976227 30 atime=1707729640.533483123 30 ctime=1707475336.892976276 quilt-0.68/po/fr.po0000644000076500001440000017601114561400610014511 0ustar00khaliusers00000000000000# quilt french translation # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # Martin Quinson , 2003, 2013, 2014. # Jean Delvare , 2005, 2011, 2015. # msgid "" msgstr "" "Project-Id-Version: quilt 0.64\n" "PO-Revision-Date: 2015-01-30 15:40+0100\n" "Last-Translator: Jean Delvare \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "Usage : quilt [--trace[=verbose]] [--quiltrc=XX] commande [-h] ..." #: bin/quilt.in:41 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:43 msgid "Commands are:" msgstr "Les commandes sont :" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately.\\n" msgstr "" "\n" "Options globales :\n" "\n" "--trace\n" "\tLance la commande en mode trace de bash (-x). Pour le debug interne.\n" "\n" "--quiltrc fichier\n" "\tUtilise le fichier de configuration spécifié au lieu de ~/.quiltrc\n" "\t(ou %s/quilt.quiltrc si ~/.quiltrc n'existe pas). Voir la\n" "\tdocumentation pdf pour plus de détails sur son contenu potentiel.\n" "\tLa valeur spéciale \\\"-\\\" spécifie à quilt de ne lire aucun fichier\n" "\tde configuration.\n" "\n" "--version\n" "\tAffiche le numéro de version et sort immédiatement.\\n" #: quilt/add.in:11 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "Usage : quilt add [-P patch] {fichier} ...\\n" #: quilt/add.in:14 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "Ajoute un ou plusieurs fichiers au patch indiqué ou à celui au sommet.\n" "Les fichiers doivent être ajoutés au patch avant toute modification.\n" "Les fichiers modifiés par d'autres patches à la fois plus haut dans la pile\n" "et déjà appliqués ne peuvent pas être ajoutés.\n" "\n" "-P patch\n" "\tPatch auquel les fichiers doivent être ajoutés.\n" #: quilt/add.in:37 quilt/add.in:43 msgid "File %s is located below %s\\n" msgstr "Le fichier %s est situé en dessous de %s\\n" #: quilt/add.in:100 msgid "File %s is already in patch %s\\n" msgstr "Le fichier %s est déjà dans le patch %s\\n" #: quilt/add.in:108 quilt/remove.in:79 quilt/revert.in:81 msgid "File %s modified by patch %s\\n" msgstr "Le fichier %s est modifié par le patch %s\\n" #: quilt/add.in:116 msgid "Cannot add symbolic link %s\\n" msgstr "Impossible d'ajouter le lien symbolique %s\\n" #: quilt/add.in:123 msgid "Failed to back up file %s\\n" msgstr "Impossible de faire une copie de sécurité de %s\\n" #: quilt/add.in:134 msgid "File %s added to patch %s\\n" msgstr "Le fichier %s a été ajouté au patch %s\\n" #: quilt/annotate.in:11 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "Usage : quilt annotate [-P patch] {fichier}\\n" #: quilt/annotate.in:14 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "Affiche une version annotée du fichier spécifié, montrant quel\n" "patch modifie chaque ligne. Seuls les patches appliqués sont\n" "pris en compte.\n" "\n" "-P patch\n" "\tAnnote le fichier tel qu'il se trouve après application du patch\n" "\tspécifié plutôt que d'aller jusqu'au patch au sommet.\n" #: quilt/applied.in:11 msgid "Usage: quilt applied [patch]\\n" msgstr "Usage : quilt applied [patch]\\n" #: quilt/applied.in:14 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "Affiche la liste des patches appliqués, ou la liste de tous les patches\n" "jusqu'à celui passé en paramètre (inclus).\n" #: quilt/delete.in:11 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "Usage : quilt delete [-r] [--backup] [patch|-n]\\n" #: quilt/delete.in:14 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "Efface le patch spécifié (ou celui au sommet de la pile) de la série \n" "actuelle. Si le patch est appliqué, quilt tentera de le retirer avant.\n" "(Seul le patch au sommet peut être retiré pour l'instant).\n" "\n" "-n\tEfface le patch qui suit celui qui est au sommet, au lieu du\n" "\tpatch spécifié ou de celui qui est au sommet.\n" "\n" "-r\tSupprime également le patch enlevé du répertoire patches.\n" "\n" "--backup\n" "\tRenomme le fichier en patch~ au lieu de le supprimer.\n" "\tIgnoré si \\`-r' n'est pas également utilisé.\n" #: quilt/delete.in:86 msgid "No next patch\\n" msgstr "Pas de patch suivant\\n" #: quilt/delete.in:99 quilt/scripts/patchfns.in:602 msgid "Patch %s is currently applied\\n" msgstr "Le patch %s est actuellement appliqué\\n" #: quilt/delete.in:111 msgid "Removed patch %s\\n" msgstr "Patch %s retiré\\n" #: quilt/delete.in:113 msgid "Failed to remove patch %s\\n" msgstr "Impossible de retirer le patch %s\\n" #: quilt/delete.in:124 msgid "Failed to backup patch file %s\\n" msgstr "Impossible de faire une copie de sécurité du fichier %s\\n" #: quilt/delete.in:131 msgid "Failed to remove patch file %s\\n" msgstr "Impossible de retirer le patch %s\\n" #: quilt/diff.in:11 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" "Usage : quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utilitaire] [--no-timestamps] [--no-" "index] [--sort] [--color[=always|auto|never]] [fichier ...]\\n" #: quilt/diff.in:15 msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "Produit un diff du ou des fichiers spécifiés par le patch spécifié (ou à\n" "défaut, par le patch au sommet). Si aucun fichier n'est indiqué, tous les\n" "fichiers modifiés par ce patch sont inclus.\n" "\n" "-p n\tCrée un patch au style -p n (-p0 et -p1 sont possibles).\n" "\n" "-p ab\tCrée un patch au style -p 1, mais utilise a/fichier et b/fichier\n" "\tcomme noms de l'ancien et du nouveau fichier, au lieu des noms par\n" "\tdéfaut rep.orig/fichier et rep/fichier.\n" "\n" "-u, -U num, -c, -C num\n" "\tCrée un diff unifié (-u, -U) ayant num lignes de contexte. \n" "\tCrée un diff contextuel (-c, -C) ayant num lignes de contexte. \n" "\tPar défaut, les diffs ont 3 lignes de contexte.\n" "\n" "--no-timestamps\n" "\tOmet les tampons («timestamps») dans les entêtes de patch.\n" "\n" "--no-index\n" "\tOmet les lignes Index:.\n" "\n" "-z\tAffiche sur la sortie standard les changements effectués par rapport\n" "\tau patch spécifié (ou celui au sommet à défaut).\n" "\n" "-R\tCrée un diff inverse.\n" "\n" "-P patch\n" "\tCrée un diff pour ce patch (par défaut, le patch au sommet)\n" "\n" "--combine patch\n" "\tCrée un patch combiné pour tous les patches entre celui spécifié\n" "\tici et celui spécifié avec l'argument -P. Utiliser «-» comme nom\n" "\tde patch est équivalent à spécifier le premier patch appliqué.\n" "\n" "--snapshot\n" "\tCrée un diff à partir de l'instantané (voir «quilt snapshot -h»).\n" "\n" "--diff=utilitaire\n" "\tUtilise le programme spécifié pour générer le diff. Ce programme\n" "\test invoqué avec le nom du fichier originel et celui du nouveau \n" "\tfichier comme arguments.\n" "\n" "--color[=always|auto|never]\n" "\tColorise la syntaxe toujours («always»), de manière automatique\n" "\t(«auto») ou jamais («never»).\n" "\t«auto» n'est activé par défaut que si la sortie est un tty.\n" "\n" "--sort\tTrie les fichiers par leur nom au lieu de préserver leur ordre\n" "\td'origine.\n" #: quilt/diff.in:221 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Les options «--combine», «--snapshot» et «-z» ne peuvent pas être combinées." "\\n" #: quilt/diff.in:235 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Impossible de créer des patches avec -p%s. Veuillez spécifier -p0, -p1 ou -" "pab à la place\\n" #: quilt/diff.in:244 msgid "No snapshot to diff against\\n" msgstr "Pas d'instantané avec lequel comparer\\n" #: quilt/diff.in:278 quilt/files.in:107 quilt/mail.in:429 msgid "Patch %s not applied before patch %s\\n" msgstr "Le patch %s n'est pas appliqué avant %s\\n." #: quilt/diff.in:346 msgid "File %s is not being modified\\n" msgstr "Le fichier %s n'est pas modifié.\\n" #: quilt/diff.in:365 msgid "Diff failed, aborting\\n" msgstr "Le diff a échoué. Abandon.\\n" #: quilt/diff.in:372 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Attention: un patch plus recent modifie des fichiers communs à %s\\n" #: quilt/edit.in:13 msgid "Usage: quilt edit file ...\\n" msgstr "Usage : quilt edit {fichier} ...\\n" #: quilt/edit.in:16 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Édite le(s) fichier(s) spécifiés au sein de \\$EDITOR (%s) après addition \n" "au patch du sommet.\n" #: quilt/files.in:11 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "Usage : quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" #: quilt/files.in:14 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "Affiche la liste des fichiers que le patch au sommet (ou celui spécifé)\n" "modifie.\n" "\n" "-a\tListe tous les fichiers de tous les patches actuellement appliqués.\n" "\n" "-l\tAffiche également le nom du patch.\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" "\n" "--combine patch\n" "\tAffiche la liste pour tous les patches entre ce patch et le patch au\n" "\tsommet (ou le patch spécifié). Le nom de fichier « - » correspond au\n" "\tpremier patch appliqué.\n" #: quilt/fold.in:11 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "Usage : quilt fold [-R] [-q] [-f] [-p strip-level]\\n" #: quilt/fold.in:14 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Intégrer le patch lu depuis l'entrée standard dans le patch au sommet :\n" "Après s'être assuré que tous les fichiers modifiés par le patch en entrée \n" "font déjà partie du patch au sommet, le patch d'entrée est appliqué avec \n" "le strip-level spécifié (1 par défaut).\n" "\n" "-R\tApplique le patch à l'envers.\n" "\n" "-q\tOpère silencieusement.\n" "\n" "-f\tForce l'application, même si cela doit produire des rejets. Excepté en\n" "\tmode silencieux, applique le patch interactivement : l'utilitaire patch\n" "\tpeut poser des questions.\n" "\n" "-p strip-level\n" "\tNombre de niveaux de répertoires à retirer lors de l'application du \n" "\tpatch.\n" #: quilt/fold.in:128 msgid "File %s may be corrupted\\n" msgstr "Le fichier %s est peut-être corrompu\\n" #: quilt/fork.in:11 msgid "Usage: quilt fork [new_name]\\n" msgstr "Usage : quilt fork [nouveau_nom]\\n" #: quilt/fork.in:14 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Crée un embranchement («fork») au niveau du patch au sommet. Créer un\n" "embranchement signifie créer une copie à l'identique d'un patch sous un\n" "nouveau nom, et utiliser ce nouveau nom au lieu du nom d'origine dans la\n" "série courante. C'est utile lorsqu'un patch doit être modifié mais que\n" "la version originale doit également être préservée, par exemple parce\n" "qu'elle est utilisée dans une autre série, ou pour conserver\n" "l'historique d'un patch. Une séquence de commandes classique serait :\n" "fork (créer un embranchement), edit (éditer le patch), refresh\n" "(rafraîchir le patch).\n" "\n" "Si nouveau_nom n'est pas précisé, le nouveau nom du patch sera le nom\n" "actuel suivi de \\`-2'. Si le nom du patch se termine déjà par un\n" "tiret suivi d'un nombre, ce nombre est augmenté à la place (par\n" "exemple : patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:81 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Le patch %s existe déjà, veuillez choisir un nouveau nom\\n" #: quilt/fork.in:93 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Le fork de %s en %s a échoué\\n" #: quilt/fork.in:99 quilt/refresh.in:341 msgid "Fork of patch %s created as %s\\n" msgstr "Le fork de %s a été créé en tant que %s\\n" #: quilt/graph.in:11 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "Usage : quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" #: quilt/graph.in:15 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Génère un graphe orienté compatible dot(1), qui représente les\n" "dépendances entre les patches appliqués. Un patch dépend d'un autre patch\n" "si les deux modifient un même fichier, ou, avec l'option --lines, si\n" "leurs modifications se recouvrent. Par défaut, le graphe inclut tous les\n" "patches dont le patch au sommet dépend.\n" "Si le nom d'un patch est spécifié, le graphe est créé pour celui-ci au\n" "lieu du patch au sommet. Le graphe inclura alors tous les patches qui\n" "en dépendent, ainsi que tous les patches dont lui-même dépend.\n" "\n" "--all\tGénère un graphe incluant tous les patches appliqués et\n" "\tleurs dépendances. (Les patches non-appliqués ne sont pas\n" "\tinclus.)\n" "\n" "--reduce\n" "\tElimine les arcs transitifs du graphe.\n" "\n" "--lines[=num]\n" "\tGénère les dépendances en regardant les lignes modifiées par\n" "\tles patches. A moins qu'une valeur différente ne soit spécifiée,\n" "\tdeux lignes de contexte sont incluses.\n" "--edge-labels=files\n" "\tEtiquette les arcs avec le nom des fichiers modifiés par les\n" "\tpatches adjacents.\n" "\n" "-T ps\tProduit directement un fichier PostScript.\n" #: quilt/grep.in:11 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "Usage : quilt grep [-h|options] {motif}\\n" #: quilt/grep.in:14 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Recherche récursivement un motif dans les fichiers source, en omettant\n" "les patches et les meta-informations de quilt. Si aucun fichier n'est\n" "précisé, recherche dans tout l'arbre des sources. Voir la page de manuel\n" "de grep(1) pour les options.\n" "\n" "-h\tAffiche cette aide. L'option -h de grep peut être passée\n" "\taprès un double tiret (--). Les motifs qui commencent par un\n" "\ttiret peuvent être passées après un second double tiret\n" "\t(-- --).\n" #: quilt/header.in:13 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Usage : quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/header.in:17 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "Affiche ou modifie l'en-tête du patch au sommet ou spécifié.\n" "\n" "-a, -r, -e\n" "\tAjoute à la fin de (-a) ou remplace (-r) l'en-tête existant, ou\n" "\tédite (-e) l'en-tête en utilisant \\$EDITOR (%s). Si aucune de\n" "\tces options n'est utilisée, affiche l'en-tête actuel du patch.\n" "\n" "--strip-diffstat\n" "\tOmet la partie diffstat de l'en-tête.\n" "\n" "--strip-trailing-whitespace\n" "\tSupprime les espaces de fin de ligne de l'en-tête.\n" "\n" "--backup\n" "\tCrée une sauvegarde de la version originale du patch en tant\n" "\tque patch~.\n" #: quilt/header.in:167 msgid "Replaced header of patch %s\\n" msgstr "En-tête du patch %s remplacé\\n" #: quilt/header.in:170 msgid "Appended text to header of patch %s\\n" msgstr "Texte ajouté à la fin de l'en-tête du patch %s\\n" #: quilt/import.in:14 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "Usage : quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] " "fichier_de_patch ...\\n" #: quilt/import.in:17 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "Importe des patchs externes. Ces patches sont insérés juste après\n" "le patch au sommet, et doivent ensuite être appliqués (utiliser\n" "« quilt push »).\n" "\n" "-p num\n" "\tNombre de niveaux de répertoires à retirer lors de l'application du \n" "\tpatch (1 par défaut).\n" "\n" "-R\n" "\tApplique le patch à l'envers.\n" "\n" "-P patch\n" "\tNom de fichier à utiliser au sein de quilt. Cette option ne peut être\n" "\tutilisée que lors de l'import d'un patch unique.\n" "\n" "-f\tÉcrase/met à jour les patchs existants.\n" "\n" "-d {o|a|n}\n" "\tLors du remplacement d'un patch existant, garde l'ancien (o), tous\n" "\t(a), ou le nouvel (n) en-tête. Si les deux patches incluent des\n" "\ten-têtes, cette option doit être spécifiée. Cette option n'est\n" "\teffective que lorsque -f est utilisé.\n" #: quilt/import.in:65 quilt/mail.in:460 msgid "Patch %s does not exist\\n" msgstr "Le patch %s n'existe pas\\n" #: quilt/import.in:88 msgid "Patch headers differ:\\n" msgstr "Les en-têtes des patches diffèrent :\\n" #: quilt/import.in:91 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "Veuillez utiliser -d {o|a|n} pour spécifier quel(s) en-tête(s) conserver.\\n" #: quilt/import.in:156 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" "L'option « -P » ne peut être utilisé que lors de l'import d'un seul patch.\\n" #: quilt/import.in:195 msgid "Patch %s is applied\\n" msgstr "Le patch %s est appliqué\\n" #: quilt/import.in:204 msgid "Patch %s already exists in series.\\n" msgstr "Le patch %s existe déjà dans la série.\\n" #: quilt/import.in:210 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Le patch %s existe. Utilisez -f pour le remplacer.\\n" #: quilt/import.in:221 msgid "Replacing patch %s with new version\\n" msgstr "Remplacement du patch %s avec la nouvelle version\\n" #: quilt/import.in:225 msgid "Importing patch %s\\n" msgstr "Import du patch %s\\n" #: quilt/import.in:227 msgid "Importing patch %s (stored as %s)\\n" msgstr "Import du patch %s (enregistré dans %s)\\n" #: quilt/import.in:240 msgid "Failed to import patch %s\\n" msgstr "Impossible d'importer le patch %s\\n" #: quilt/import.in:249 quilt/refresh.in:328 msgid "Failed to insert patch %s into file series\\n" msgstr "Impossible d'inserer %s dans le fichier de série.\\n" #: quilt/mail.in:13 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [--charset ...] [--signature file] " "[first_patch [last_patch]]\\n" msgstr "" "Usage : quilt mail {--mbox fichier|--send} [-m texte] [-M fichier] [--prefix " "préfixe] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [--charset ...] [--signature fichier] " "[premier_patch [dernier_patch]]\\n" #: quilt/mail.in:16 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--charset\n" "\tSpecify a particular message encoding on systems which don't use\n" "\tUTF-8 or ISO-8859-15. This character encoding must match the one\n" "\tused in the patches.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "Crée des messages de courrier à partir de tous les patches de la série.\n" "Ces fichiers sont ensuite stockés dans un fichier mbox ou expédiés\n" "immédiatement. Un éditeur est ouvert avec un patron pour saisir une\n" "introduction. Voir %s pour plus de détails.\n" "Lorsqu'un intervalle de patches est spécifié, \\`-' utilisé comme nom du\n" "premier patch désigne le premier patch de la série, tandis que \\`-'\n" "utilisé comme nom du dernier patch désigne le dernier patch de la série.\n" "\n" "-m texte\n" "\n" "\tTexte à utiliser pour l'introduction. Lorsque cette option est\n" "\tutilisée, l'éditeur n'est pas invoqué, et les patches sont traités\n" "\timmédiatement.\n" "\n" "-M fichier\n" "\tComme l'option -m, mais lit l'introduction depuis un fichier.\n" "\n" "--prefix préfixe\n" "\tUtiliser un préfixe alternatif pour générer la partie du sujet qui se\n" "\ttrouve entre crochets. Le préfixe par défaut est \\`patch'.\n" "\n" "--mbox fichier\n" "\tStocke les messages dans le fichier spécifié au format mbox. Le\n" "\tfichier peut être expédié plus tard en utilisant par exemple\n" "\tformail.\n" "\n" "--send\n" "\tExpédie les messages directement.\n" "\n" "--sender\n" "\tL'adresse d'expéditeur à utiliser pour l'enveloppe. L'adresse doit\n" "\têtre de la forme \\`utilisateur@nom.de.domaine' (sans nom\n" "\td'affichage).\n" "\n" "--from, --subject\n" "\tLes valeurs pour les champs d'en-tête De (From) et Objet (Subject),\n" "\trespectivement.\n" "\n" "--to, --cc, --bcc\n" "\tAjoute un destinataire dans le champ d'en-tête A, Copie ou Copie\n" "\tcachée, respectivement.\n" "\n" "--charset\n" "\tSpecifie un encodage particulier pour le message, pour les systèmes\n" "\tn'utilisant ni UTF-8 ni ISO-8859-15. Cet encodage de caractères doit\n" "\tcorrespondre à celui utilisé dans les patches.\n" "\n" "--signature fichier\n" "\tAjoute la signature spécifiée à la fin des messages (~/.signature\n" "\tpar défaut si ce fichier existe ; utilisez \\`-' pour l'ignorer).\n" "\n" "--reply-to message\n" "\tAjoute les en-têtes appropriés pour répondre au message spécifié.\n" #: quilt/mail.in:198 quilt/mail.in:206 msgid "Introduction message already specified" msgstr "Message d'introduction déjà spécifié" #: quilt/mail.in:312 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "Impossible de déterminer l'adresse d'expéditeur. Utilisez --sender." #: quilt/mail.in:463 msgid "Unable to extract a subject header from %s\\n" msgstr "Impossible d'extraire une ligne de sujet de %s\\n" #: quilt/mail.in:489 msgid "Patches %s have duplicate subject headers.\\n" msgstr "Les patches %s ont des sujets dupliqués.\\n" #: quilt/mail.in:498 msgid "File %s does not exist\\n" msgstr "Le fichier %s n'existe pas\\n" #: quilt/mail.in:558 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "" "L'introduction n'a pas de ligne de sujet (sauvegardé en tant que %s)\\n" #: quilt/mail.in:561 msgid "Introduction has no subject header\\n" msgstr "L'introduction ne contient pas de ligne de sujet\\n" #: quilt/mail.in:674 msgid "Introduction saved as %s\\n" msgstr "Introduction sauvegardée en tant que %s\\n" #: quilt/new.in:14 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "Usage : quilt new [-p n|-p ab] {nom_de_patch}\\n" #: quilt/new.in:17 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "Crée un nouveau patch au nom spécifié, et l'insère après le patch\n" "au sommet dans le fichier de série. Le nom peut être préfixé avec\n" "le nom d'un répertoire, ce qui permet de grouper les patches apparentés.\n" "\n" "-p n\tCrée un patch de type -p n (-p0 et -p1 sont supportés).\n" "\n" "-p ab\tCrée un patch de type -p1, mais utilise a/fichier et b/fichier\n" "\tcomme nom original et nouveau nom, respectivement, au lieu des valeurs\n" "\tpar défaut rép.orig/fichier and rép/fichier.\n" "\n" "Quilt peut être utilisé dans les sous-répertoires d'une arborescence\n" "source. La racine de l'arbre est déterminée en cherchant un répertoire\n" "nommé %s en amont du répertoire courant. Créez un repertoire %s dans le\n" "répertoire devant être la racine si quilt choisi un répertoire trop haut\n" "dans l'arborescence.\n" #: quilt/new.in:68 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "Impossible de créer des patchs avec -p%s. Veuillez spécifier -p0, -p1 ou -" "pab à la place.\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "QUILT_PATCHES(%s) et QUILT_PC(%s) doivent être différents\\n" #: quilt/new.in:97 quilt/refresh.in:182 msgid "Patch %s exists already\\n" msgstr "Le patch %s existe déjà\\n" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "Le patch %s est maintenant au sommet\\n" #: quilt/new.in:110 quilt/refresh.in:337 msgid "Failed to create patch %s\\n" msgstr "Impossible de créer le patch %s\\n" #: quilt/next.in:11 msgid "Usage: quilt next [patch]\\n" msgstr "Usage : quilt next [patch]\\n" #: quilt/next.in:14 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "Affiche le nom du patch après celui spécifié (ou après celui au sommet)\n" "dans le fichier de série.\n" "\n" "-n\tAffiche le nom de fichier au lieu du nom de patch.\n" #: quilt/patches.in:13 msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "" "Usage : quilt patches [-v] [--color[=always|auto|never]] {fichier} " "[fichiers...]\\n" #: quilt/patches.in:16 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Affiche la liste des patches modifiant l'un des fichiers spécifiés. \n" "\n" "Une heuristique est utilisée pour déterminer quels fichiers sont \n" "modifiés par les patches n'étant pas appliqués. Veuillez noter que \n" "cette heuristique est bien plus lente que l'étude des patches \n" "appliqués.\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" "\n" "--color[=always|auto|never]\n" "\tColorise la syntaxe toujours («always»), de manière automatique\n" "\t(«auto») ou jamais («never»).\n" "\t«auto» n'est activé par défaut que si la sortie est un tty.\n" #: quilt/pop.in:11 msgid "Usage: quilt pop [-afRqv] [--refresh] [num|patch]\\n" msgstr "Usage : quilt pop [-afRqv] [--refresh] [num|patch]\\n" #: quilt/pop.in:14 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" "\n" "--refresh\n" "\tAutomatically refresh every patch before it gets unapplied.\n" msgstr "" "\n" "Retire un ou plusieurs patches de la pile. Si aucun argument n'est \n" "spécifié, le patch au sommet est retiré. Si un nombre est passé en\n" "argument, cela indique la quantité de patchs à retirer. Si un nom \n" "de patch est spécifié, il est retiré ainsi que tous ceux placés avant\n" "lui dans la série. Le nom des patchs peut contenir le préfix patches/\n" "de façon à pouvoir profiter de la complétion sur le nom de fichier.\n" "\n" "-a\tRetire tous les patches de la série.\n" "\n" "-f\tForce l'action. L'état avant que les patches ne soient retirés\n" "\tsera restauré depuis les fichiers de sauvegarde.\n" "\n" "-R\tVérifie que le patch s'enlève proprement ; ne se base pas sur\n" "\tles horaires de dernière modification des fichiers.\n" "\n" "-q\tOpère silencieusement.\n" "\n" "-v\tOpère verbeusement.\n" "\n" "--refresh\n" "\tRafraichit automatiquement chaque patch avant de l'enlever.\n" #: quilt/pop.in:92 quilt/scripts/patchfns.in:977 msgid "Failed to copy files to temporary directory\\n" msgstr "Impossible de copier les fichiers dans le répertoire temporaire\\n" #: quilt/pop.in:117 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Le patch %s ne se retire pas proprement (rafraichissez le, ou forcez avec -" "f)\\n" #: quilt/pop.in:119 msgid "Hint: \\`quilt diff -z' will show the pending changes.\\n" msgstr "" "Astuce: \\`quilt diff -z' permet d'afficher les modifications en cours.\\n" #: quilt/pop.in:143 msgid "Patch %s appears to be empty, removing\\n" msgstr "Le patch %s semble vide, enlevé\\n" #: quilt/pop.in:148 msgid "Removing patch %s\\n" msgstr "Retrait de %s\\n" #: quilt/pop.in:214 quilt/push.in:376 msgid "Options %s and %s are mutually exclusive\\n" msgstr "Les options %s et %s sont mutuellement exclusives\\n" #: quilt/pop.in:236 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Le patch %s doit être rafraichi au préalable.\\n" #: quilt/pop.in:246 msgid "No patch removed\\n" msgstr "Aucun patch retiré\\n" #: quilt/pop.in:270 quilt/scripts/patchfns.in:511 msgid "No patches applied\\n" msgstr "Aucun patch n'est appliqué\\n" #: quilt/pop.in:277 quilt/push.in:440 msgid "Now at patch %s\\n" msgstr "Le patch %s est maintenant au sommet\\n" #: quilt/previous.in:11 msgid "Usage: quilt previous [patch]\\n" msgstr "Usage : quilt previous [-n] [patch]\\n" #: quilt/previous.in:14 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "Affiche le nom du patch avant celui spécifié (ou après celui au sommet)\n" "dans le fichier de série.\n" "\n" "-n\tAffiche le nom de fichier au lieu du nom de patch.\n" #: quilt/push.in:11 msgid "" "Usage: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\\n" msgstr "" "Usage : quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\\n" #: quilt/push.in:14 msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--refresh\n" "\tAutomatically refresh every patch after it was successfully applied.\n" msgstr "" "\n" "Applique un ou plusieurs patches de la série. Si aucun argument n'est\n" "spécifié, le prochain patch est appliqué. Si un nombre est passé en " "argument,\n" "cela indique la quantité de patchs à appliquer. Si un nom de patch est\n" "spécifié, il est appliqué ainsi que tous ceux placés avant lui dans la\n" "série. Le nom des patchs peut contenir le préfix patches/ de façon à " "pouvoir\n" "profiter de la complétion sur le nom de fichier.\n" "\n" "-a\tApplique tous les patches de la série.\n" "\n" "-f\tForce l'application, même si cela doit produire des rejets.\n" "\n" "-q\tOpère silencieusement.\n" "\n" "-v\tOpère verbeusement.\n" "\n" "--fuzz=N\n" "\tDéfinit le niveau maximum de flou (valeur par défaut : 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tFusionne le patch avec les fichiers originaux (voir patch(1)).\n" "\n" "--leave-rejects\n" "\tLaisse les fichiers de rejets produits, même si l'application du\n" "\tpatch a échoué et qu'il n'est finalement pas appliqué.\n" "\n" "--color[=always|auto|never]\n" "\tApplique une coloration syntaxique, toujours («always»), de manière\n" "\tautomatique («auto») ou jamais («never»).\n" "\t«auto» n'est activé par défaut que si la sortie est un tty.\n" "\n" "--refresh\n" "\tRafraichit automatiquement chaque patch ayant été appliqué avec\n" "\tsuccès.\n" #: quilt/push.in:57 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Interrompu par l'utilisateur ; le patch %s n'a pas été appliqué.\\n" #: quilt/push.in:176 msgid "Applying patch %s\\n" msgstr "Application de %s\\n" #: quilt/push.in:210 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Le patch %s n'existe pas ; patch vide appliqué\\n" #: quilt/push.in:214 msgid "Patch %s appears to be empty; applied\\n" msgstr "Le patch %s semble vide. Il a été appliqué.\\n" #: quilt/push.in:218 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "%s a été appliqué (forcé ; vous devriez le rafraîchir)\\n" #: quilt/push.in:228 msgid "Patch %s can be reverse-applied\\n" msgstr "Le patch %s peut être appliqué à l'envers\\n" #: quilt/push.in:231 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "" "Le patch %s ne s'applique pas proprement (forcez l'application avec -f)\\n" #: quilt/push.in:286 msgid "Patch %s is already applied; check your series file\\n" msgstr "Le patch %s est déjà appliqué. Vérifiez votre fichier series.\\n" #: quilt/push.in:408 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Le patch au sommet %s doit être rafraichi au préalable.\\n" #: quilt/push.in:416 msgid "No patch applied\\n" msgstr "Aucun patch appliqué\\n" #: quilt/refresh.in:11 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Usage : quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/refresh.in:15 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "Rafraîchit un patch appliqué, ou celui au sommet à défaut. La " "documentation \n" "placée avant le début du patch dans le fichier est conservée.\n" "\n" "Il est possible de rafraîchir un patch ne se trouvant pas au sommet. Dans\n" "ce cas et si un autre patch placé plus haut modifie les mêmes fichiers, le \n" "script abandonne par défaut. Il est encore possible de forcer le \n" "rafraichissement avec -f. Dans ce cas, un avertissement sera affiché pour\n" "chaque fichier masqué, les changements apportés à ces fichiers seront \n" "ignorés et seuls les nouveaux changements apportés à des fichiers n'étant \n" "pas masqués par d'autres patches seront placés dans le patch généré.\n" "\n" "-p n\tCrée un patch du style -p n (-p0 ou -p1)\n" "\n" "-p ab\tCrée un patch au style -p 1, mais utilise a/fichier et b/fichier\n" "\tcomme noms de l'ancien et du nouveau fichier, au lieu des noms par\n" "\tdéfaut rep.orig/fichier et rep/fichier.\n" "\n" "-u, -U num, -c, -C num\n" "\tCrée un diff unifié (-u, -U) ayant num lignes de contexte.\n" "\tCrée un diff contextuel (-c, -C) ayant num lignes de contexte.\n" "\tPar défaut, les diffs ont 3 lignes de contexte.\n" "\n" "-z[nouveau_nom]\n" "\tCrée un nouveau patch contenant les modifications au lieu de\n" "\trafraîchir le patch au sommet. Si le nouveau nom n'est pas spécifié,\n" "\t\\`-2' est ajouté au nom du patch d'origine, etc. (voir la commande\n" "\tfork.)\n" "\n" "--no-timestamps\n" "\tOmet les tampons («timestamps») dans les entêtes de patch.\n" "\n" "--no-index\n" "\tOmet les lignes Index:.\n" "\n" "--diffstat\n" "\tAjoute une section diffstat aux entêtes du patch, ou remet celle\n" "\texistante à jour.\n" "\n" "-f\tForce le rafraîchissement, même si des patches plus haut changent \n" "\tles mêmes fichiers.\n" "\n" "--backup\n" "\tCrée une copie de sauvegarde du patch en ajoutant ~ à la fin de \n" "\tson nom.\n" "\n" "--sort\tTrie les fichiers par leur nom au lieu de conserver leur ordre\n" "\td'origine.\n" "\n" "--strip-trailing-whitespace\n" "\tSupprime les espaces à la fin des lignes.\n" #: quilt/refresh.in:168 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "Seul le patch au sommet peut actuellement être rafraîchi avec -z\\n" #: quilt/refresh.in:199 msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Impossible de rafraîchir des patchs avec -p%s. Veuillez spécifier -p0, -p1 " "ou -pab à la place.\\n" #: quilt/refresh.in:237 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Des fichiers plus récents modifient les mêmes fichiers que %s.\n" "Forcez le rafraîchissement avec -f.\\n" #: quilt/refresh.in:243 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "Impossible d'utiliser --strip-trailing-whitespace sur un patch dont\n" "certains fichiers sont masqués.\\n" #: quilt/refresh.in:249 quilt/refresh.in:349 msgid "Nothing in patch %s\\n" msgstr "Le patch %s ne contient rien\\n" #: quilt/refresh.in:321 msgid "Patch %s is unchanged\\n" msgstr "Patch %s inchangé\\n" #: quilt/refresh.in:347 msgid "Refreshed patch %s\\n" msgstr "Patch %s rafraîchi\\n" #: quilt/remove.in:11 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "Usage : quilt remove [-P patch] {fichier} ...\\n" #: quilt/remove.in:14 msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" "\n" "Retire un ou plusieurs fichiers du patch au sommet ou du patch spécifié.\n" "Des fichiers modifiés par des patches plus haut dans la série ne peuvent\n" "pas être retirés.\n" "\n" "-P patch\n" "\tPatch dont les fichiers doivent être retirés.\n" #: quilt/remove.in:70 quilt/revert.in:72 msgid "File %s is not in patch %s\\n" msgstr "Le fichier %s n'est pas dans le patch %s.\\n" #: quilt/remove.in:88 msgid "Failed to remove file %s from patch %s\\n" msgstr "Impossible d'enlever le fichier %s du patch %s\\n" #: quilt/remove.in:102 msgid "File %s removed from patch %s\\n" msgstr "Le fichier %s a été enlevé du patch %s.\\n" #: quilt/rename.in:11 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "Usage : quilt rename [-P patch] nouveau_nom\\n" #: quilt/rename.in:14 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Renomme le patch au sommet ou spécifié.\n" "\n" "-P patch\n" "\tPatch à renommer.\n" #: quilt/rename.in:81 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Le patch %s existe déjà, veuillez choisir un nom différent\\n" #: quilt/rename.in:95 msgid "Renaming of patch %s to %s failed\\n" msgstr "Le renommage de %s en %s a échoué\\n" #: quilt/rename.in:101 msgid "Patch %s renamed to %s\\n" msgstr "Patch %s renommé en %s\\n" #: quilt/revert.in:11 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "Usage : quilt revert [-P patch] {fichier} ...\\n" #: quilt/revert.in:14 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Restaure un ou plusieurs fichiers du patch au sommet ou du patch spécifié :\n" "après l'opération, 'quilt diff -z' ne montrera plus aucune différence pour\n" "ces fichiers. Des fichiers modifiés par des patches plus haut dans la série\n" "ne peuvent pas être restaurés.\n" "\n" "-P patch\n" "\tPatch dont les fichiers doivent être restaurés.\n" #: quilt/revert.in:100 quilt/revert.in:109 msgid "File %s is unchanged\\n" msgstr "Le fichier %s est inchangé\\n" #: quilt/revert.in:117 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Impossible de restaurer le fichier %s du patch %s.\\n" #: quilt/revert.in:121 msgid "Changes to %s in patch %s reverted\\n" msgstr "Modifications de %s dans le patch %s annulées\\n" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Le nom `%s' est mal parenthésé\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "L'adresse de destination `%s' est invalide\n" #: quilt/scripts/patchfns.in:237 quilt/scripts/patchfns.in:524 msgid "%s is not a regular file\\n" msgstr "%s n'est pas un fichier régulier\\n" #: quilt/scripts/patchfns.in:486 quilt/scripts/patchfns.in:498 msgid "No patches in series\\n" msgstr "Aucun patch dans la série\\n" #: quilt/scripts/patchfns.in:553 msgid "Patch %s is not in series\\n" msgstr "Le patch %s n'est pas dans la série\\n" #: quilt/scripts/patchfns.in:581 msgid "Patch %s is not applied\\n" msgstr "Le patch %s n'est pas appliqué\\n" #: quilt/scripts/patchfns.in:618 msgid "File series fully applied, ends at patch %s\\n" msgstr "La série est complètement appliquée. Le dernier patch est %s.\\n" #: quilt/scripts/patchfns.in:774 msgid "Diff failed on file '%s', aborting\\n" msgstr "Le diff a échoué sur le fichier «%s». Abandon.\\n" #: quilt/scripts/patchfns.in:995 msgid "Failed to patch temporary files\\n" msgstr "Impossible de patcher les fichiers temporaires\\n" #: quilt/scripts/patchfns.in:1038 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Les méta-données de quilt dans cet arbre de travail sont au format \n" "v%s, mais cette version de quilt ne peut traiter que jusqu'au \n" "format %s (inclus). Veuillez retirer vos patches avec la version \n" "utilisée pour les appliquer avant d'installer une version plus ancienne.\\n" #: quilt/scripts/patchfns.in:1113 msgid "You have to install '%s' (from package %s) to use 'quilt %s'\\n" msgstr "Vous devez installer '%s' (paquet %s) pour utiliser « quilt %s »\\n" #: quilt/scripts/patchfns.in:1192 msgid "Cannot change into parent directory %s/\\n" msgstr "Impossible de remplacer le répertoire de travail en cours par %s/\\n" #: quilt/scripts/patchfns.in:1237 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Votre arbre a été créé par une vieille version de quilt. Veuillez \n" "utiliser « quilt upgrade ».\\n" #: quilt/scripts/patchfns.in:1245 msgid "" "The series file no longer matches the applied patches. Please run 'quilt pop " "-a'.\\n" msgstr "" "Le fichier series ne correspond plus aux patchs appliqués. Veuillez utiliser " "« quilt pop -a ».\\n" #: quilt/scripts/patchfns.in:1254 msgid "No series file found\\n" msgstr "Fichier de série non trouvé\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "SYNOPSIS : %s [-p num] [-n] [patch]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s : Je suis confus.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Attention : espaces à la fin de la ligne %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Attention : espaces à la fin des lignes %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Suppression des espaces à la fin de la ligne %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Suppression des espaces à la fin des lignes %s de %s\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "En renommant %s en %s : %s\n" #: quilt/series.in:11 msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "Usage : quilt series [--color[=always|auto|never]] [-v]\\n" #: quilt/series.in:14 msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "Affiche le nom de tous les patches de la série.\n" "\n" "--color[=always|auto|never]\n" "\tColorise la syntaxe toujours («always»), automatiquement\n" "\tsi la sortie est un tty («auto») ou jamais («never»).\n" "\n" "-v\tAffichage verbeux, plus simple à lire.\n" #: quilt/setup.in:23 quilt/setup.in:43 msgid "Directory %s exists\\n" msgstr "Le répertoire %s existe\\n" #: quilt/setup.in:49 msgid "File %s exists\\n" msgstr "Le fichier %s existe\\n" #: quilt/setup.in:265 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--" "slow|--fast] {specfile|seriesfile}\\n" msgstr "" "Usage : quilt setup [-d répertoire_source] [-v] [--sourcedir répertoire] [--" "fuzz=N] [--slow|--fast] {fichier_spec|fichier_séries}\\n" #: quilt/setup.in:268 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" "\n" "--slow\tUse the original, slow method to process the spec file. In this " "mode,\n" "\trpmbuild generates a working tree in a temporary directory while all\n" "\tits actions are recorded, and then everything is replayed from scratch\n" "\tin the target directory.\n" "\n" "--fast\tUse the new, faster method to process the spec file. In this mode,\n" "\trpmbuild is told to generate a working tree directly in the target\n" "\tdirectory. This is the default (since quilt version 0.67).\n" "\n" "The setup command is only guaranteed to work properly on spec files where\n" "applying all the patches is the last thing done in the %%prep section. This\n" "is a design limitation due to the fact that quilt can only operate on\n" "patches. If other commands in the %%prep section modify the patched files,\n" "they must come first, otherwise you won't be able to push the patch\n" "series.\n" "\n" "For example, a %%prep section where you first unpack a tarball, then\n" "apply patches, and lastly perform a tree-wide string substitution, is\n" "not OK. For \\\"quilt setup\\\" to work, it would have to be changed to\n" "unpacking the tarball, then performing the tree-wide string substitution,\n" "and lastly applying the patches.\n" msgstr "" "\n" "Initialise un arbre de sources à partir d'un fichier de\n" "spécification rpm, ou d'un fichier de série quilt.\n" "\n" "-d\tPréfixe de chemin optionel (sous-répertoire).\n" "\n" "--sourcefdir\n" "\tRépertoire contenant les sources. Valeur par défaut : \\`.'.\n" "\n" "-v\tAffichage verbeux pour le debug.\n" "\n" "--fuzz=N\n" "\tDéfinit le niveau maximum de flou (nécessite rpm 4.6 ou supérieur).\n" "\n" "--slow\tUtilise la méthode originale, lente, pour traiter le fichier de\n" "\tspécification rpm. Dans ce mode, rpmbuild produit un arbre de\n" "\ttravail dans un répertoire temporaire tout en enregistrant toutes\n" "\tses actions, puis l'enregistrement est rejoué dans le répertoire\n" "\tde destination.\n" "\n" "--fast\tUtilise la nouvelle méthode, plus rapide, pour traiter le\n" "\tfichier de spécification rpm. Dans ce mode, rpmbuild travaille\n" "\tdirectement dans le répertoire de destination. C'est la méthode\n" "\tpar défaut (depuis la version 0.67 de quilt).\n" "\n" "Cette commande ne fonctionne de façon fiable qu'avec les fichiers de\n" "spécification rpm dans lesquels appliquer tous les patches est la dernière\n" "action effectuée à la fin de la section %%prep. Ceci est une limitation\n" "conceptuelle liée au fait que quilt peut uniquement manipuler des patches.\n" "Si d'autres commandes dans la section %%prep modifient les fichiers\n" "patchés, celles-ci doivent arriver avant, sinon la série de patches ne\n" "pourra pas être appliquée.\n" "\n" "Par exemple, une section %%prep dans laquelle on extrait une archive, puis\n" "on applique des patches, et enfin on applique une substitution de chaîne\n" "sur l'arbre ainsi généré, ne pourra pas être gérée. Pour que\n" "\\\"quilt setup\\\" fonctionne, il faudrait, à la place, extraire\n" "l'archive, puis appliquer la substitution de chaîne, et enfin appliquer\n" "les patches.\n" #: quilt/setup.in:403 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "La section %%prep de %s a échoué ; les résultats sont peut-être incomplets\\n" #: quilt/setup.in:406 msgid "The -v option will show rpm's output\\n" msgstr "L'option -v montre les affichages de rpm\\\\n" #: quilt/setup.in:467 quilt/setup.in:479 quilt/setup.in:490 msgid "File %s not found\\n" msgstr "Le fichier %s est introuvable\\n" #: quilt/setup.in:470 quilt/setup.in:482 quilt/setup.in:493 msgid "Unpacking archive %s\\n" msgstr "Désarchivage de %s\\n" #: quilt/setup.in:503 msgid "Trying alternative patches and series names..." msgstr "Tentative d'utilisation des noms de patches et séries alternatifs..." #: quilt/snapshot.in:11 msgid "Usage: quilt snapshot [-d]\\n" msgstr "Usage : quilt snapshot [-d]\\n" #: quilt/snapshot.in:14 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Prend un instantané de l'état courant du répertoire de travail. Après " "cela, \n" "il reste possible de travailler normalement avec quilt en poussant et en \n" "retirant des patches. Un différentiel entre l'arbre au moment de " "l'instantané \n" "et son état courant peut être généré avec «quilt diff --snapshot».\n" "\n" "-d\tSupprime l'instantané actuel et termine.\n" #: quilt/top.in:11 msgid "Usage: quilt top\\n" msgstr "Usage : quilt top\\n" #: quilt/top.in:14 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "Affiche le nom du patch au sommet de la pile des patches actuellement\n" "appliqués.\n" #: quilt/unapplied.in:11 msgid "Usage: quilt unapplied [patch]\\n" msgstr "Usage : quilt unapplied [patch]\\n" #: quilt/unapplied.in:14 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "Affiche la liste de tous les patches non appliqués, ou de tous les patches\n" "suivant celui indiqué en paramètre.\n" #: quilt/upgrade.in:15 msgid "Usage: quilt upgrade\\n" msgstr "Usage : quilt upgrade\\n" #: quilt/upgrade.in:18 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Convertit les méta-données contenues dans un arbre de travail d'une \n" "ancienne version de quilt à la version actuelle. Cette commande n'est\n" "nécessaire que lorsque le format de ces méta-données change lors d'une\n" "mise à jour de quilt, mais que l'arbre de travail contient des données\n" "à l'ancien format. Dans ce cas, quilt vous demandera d'utiliser\n" "« quilt upgrade » explicitement.\n" #: quilt/upgrade.in:65 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "Les méta-données de quilt dans %s sont déjà au format %s ; rien à faire\\n" #: quilt/upgrade.in:69 msgid "Converting meta-data to version %s\\n" msgstr "Conversion des méta-données au format v%s\\n" #: quilt/upgrade.in:100 msgid "Conversion failed\\n" msgstr "Échec de la conversion\\n" #: quilt/upgrade.in:101 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "Veuillez retirer tous les patchs en utilisant « quilt pop -a » avec la \n" "version utilisée pour créer cet arbre de travail, ou effacez le répertoire\n" "%s et réappliquez complètement vos patchs.\\n" quilt-0.68/po/PaxHeaders/de.po0000644000000000000000000000013214577270564013252 xustar0030 mtime=1711108468.946204478 30 atime=1711550965.541087447 30 ctime=1711108468.946204478 quilt-0.68/po/de.po0000644000076500001440000017507514577270564014527 0ustar00khaliusers00000000000000# translation of de.po to # German quilt translation # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # Andreas Gruenbacher , 2003, 2005. # Petr Tesarik , 2015. # Holger Wansing , 2015, 2016. msgid "" msgstr "" "Project-Id-Version: quilt 0.64\n" "PO-Revision-Date: 2016-11-07 12:11+0200\n" "Last-Translator: Holger Wansing \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "Aufruf: quilt [--trace[=verbose]] [--quiltrc=XX] befehl [-h] ..." #: bin/quilt.in:41 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:43 msgid "Commands are:" msgstr "Vorhandene Befehle:" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately.\\n" msgstr "" "\n" "Globale Optionen:\n" "\n" "--trace\n" "\tDie Befehle in bash im Trace-Modus (-x) ausführen, für Debugging.\n" "\n" "--quiltrc datei\n" "\tDie angegebene Konfigurationsdatei verwenden statt ~/.quiltrc (oder\n" "\t%s/quilt.quiltrc, wenn ~/.quiltrc fehlt). Details über mögliche\n" "\tInhalte finden Sie in der pdf-Dokumentation.\n" "\tDer Dateiname \\`-' bedeutet, dass keine Konfigurationsdatei\n" "\teingelesen werden soll.\n" "\n" "--version\n" "\tGibt die Versionsummer aus.\\n" #: quilt/add.in:11 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "Aufruf: quilt add [-P patch] {datei} ...\\n" #: quilt/add.in:14 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "Fügt eine oder mehrere Dateien zum obersten oder angegebenen Patch\n" "hinzu. Dateien müssen einem Patch hinzugefügt werden, bevor sie\n" "verändert werden. Dateien können einem Patch nur hinzugefügt werden,\n" "solange sie von keinem Patch höher auf dem Stapel verändert werden.\n" "\n" "-P patch\n" "\tPatch, zu dem die Dateien hinzugefügt werden sollen.\n" #: quilt/add.in:37 quilt/add.in:43 msgid "File %s is located below %s\\n" msgstr "Die Datei %s befindet sich unterhalb des Verzeichnisses %s\\n" #: quilt/add.in:100 msgid "File %s is already in patch %s\\n" msgstr "Datei %s ist bereits in Patch %s\\n" #: quilt/add.in:108 quilt/remove.in:79 quilt/revert.in:81 msgid "File %s modified by patch %s\\n" msgstr "Datei %s wird von Patch %s verändert\\n" #: quilt/add.in:116 msgid "Cannot add symbolic link %s\\n" msgstr "Symbolische Verknüpfung %s kann nicht hinzufügt werden\\n" #: quilt/add.in:123 msgid "Failed to back up file %s\\n" msgstr "Datei %s konnte nicht gesichert werden\\n" #: quilt/add.in:134 msgid "File %s added to patch %s\\n" msgstr "Datei %s zu Patch %s hinzugefügt\\n" #: quilt/annotate.in:11 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "Aufruf: quilt annotate [-P patch] {datei}\\n" #: quilt/annotate.in:14 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "Erzeuge ein Listing der angegebenen Datei, das anzeigt, welche\n" "Patches welche Zeilen verändern. Nur angewandte Patches werden\n" "angezeigt.\n" "\n" "-P patch\n" "\tNur bis zum angegebenen Patch statt bis zum obersten Patch\n" "\tnach Änderungen suchen.\n" #: quilt/applied.in:11 msgid "Usage: quilt applied [patch]\\n" msgstr "Aufruf: quilt applied [patch]\\n" #: quilt/applied.in:14 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "Gibt eine Liste der angewandten Patches aus, oder eine Liste aller\n" "Patches vom Anfang der series-Datei bis zum angegebenen Patch.\n" #: quilt/delete.in:11 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "Aufruf: quilt delete [-r] [--backup] [patch|-n]\\n" #: quilt/delete.in:14 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "Den obersten oder angegebenen Patch aus der series-Datei löschen. Falls\n" "dieser Patch angewandt ist, wird er zuerst von quilt entfernt. (Momentan\n" "kann nur der oberste Patch entfernt werden.)\n" "\n" "-n\tDen nächsten (dem obersten folgenden) Patch löschen statt den\n" "\tobersten oder angegebenen.\n" "\n" "-r\tDen Patch auch aus dem patches-Verzeichnis entfernen.\n" "\n" "--backup\n" "\tDen Patch in patch~ umbenennen, statt ihn zu löschen.\n" "\tHat nur in Kompination mit -r eine Wirkung.\n" #: quilt/delete.in:86 msgid "No next patch\\n" msgstr "Kein folgender Patch\\n" #: quilt/delete.in:99 quilt/scripts/patchfns.in:602 msgid "Patch %s is currently applied\\n" msgstr "Patch %s ist momentan angewandt\\n" #: quilt/delete.in:111 msgid "Removed patch %s\\n" msgstr "Entfernen von Patch %s\\n" #: quilt/delete.in:113 msgid "Failed to remove patch %s\\n" msgstr "Patch %s konnte nicht entfernt werden\\n" #: quilt/delete.in:124 msgid "Failed to backup patch file %s\\n" msgstr "Datei %s konnte nicht gesichert werden\\n" #: quilt/delete.in:131 msgid "Failed to remove patch file %s\\n" msgstr "Patchdatei %s konnte nicht entfernt werden\\n" #: quilt/diff.in:11 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" "Aufruf: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=programm] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [datei ...]\\n" #: quilt/diff.in:15 msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "Erzeugt ein Diff der angegebenen Dateien im obersten oder angegebenen\n" "Patch. Wenn keine Dateien angegeben sind, werden alle im Patch\n" "enthaltenen Dateien einbezogen.\n" "\n" "-p n\tErzeugen eines Patches der Art -p n (n=0 oder n=1 wird\n" "\tunterstützt).\n" "\n" "-p ab\tErzeugen einen Patches der Art -p1, jedoch a/datei und b/datei\n" "\tals ursprüngliche und neue Dateinamen verwenden anstelle von\n" "\tdir.orig/datei und dir/datei.\n" "\n" "-u, -U anzahl, -c, -C anzahl\n" "\tErzeugen eines Unified-Diffs (-u, -U) mit der angegebenen Anzahl von\n" "\tKontextzeilen bzw. erzeugen eines Context-Diffs (-c, -C) mit der\n" "\tangegebenen Anzahl von Kontextzeilen. Die Anzahl der Kontextzeilen ist\n" "\t3, wenn nicht anders angegeben.\n" "\n" "--no-timestamps\n" "\tKeine Datei-Zeitstempel in Patch-Kopfzeilen angeben.\n" "\n" "--no-index\n" "\tKeine \\`Index:'-Zeilen ausgeben.\n" "\n" "-z\tÄnderungen, die relativ zum obersten oder angegebenen Patch\n" "\tangewandt wurden, auf die Standardausgabe ausgeben.\n" "\n" "-R\tErzeugen eines umgekehrten Diffs.\n" "\n" "-P patch\n" "\tErzeugen eines Diffs für den angegebenen Patch (wenn nicht angegeben,\n" "\toberster Patch).\n" "--combine patch\n" "\tEin kombiniertes Diff für alle Patches zwischen diesem und dem durch\n" "\t-P angegebenen Patch erzeugen. Der Patchname \\`-' ist\n" "\tgleichbedeutend mit der Angabe des ersten angewandten Patches.\n" "\n" "--snapshot\n" "\tErzeugen eines Patches gegen den Snapshot (siehe \\`quilt\n" "\tsnapshot -h').\n" "\n" "--diff=programm\n" "\tVerwenden des angegebenen Programms zur Generierung des Patches. Das\n" "\tProgramm wird mit dem Dateinamen der ursprünglichen und der\n" "\tneuen Datei aufgerufen.\n" "\n" "--color[=always|auto|never]\n" "\tSyntaxeinfärbung verwenden (wird bei auto nur aktiviert, wenn Ausgabe\n" "\tauf tty).\n" "\n" "--sort\tDateien im Patch nach ihren Namen sortieren, statt die\n" "\tursprüngliche Reihenfolge beizubehalten.\n" #: quilt/diff.in:221 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Die Optionen \\`--combine', \\`--snapshot' und \\`-z' können nicht " "kombiniert werden.\\n" #: quilt/diff.in:235 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Es kann kein Diff mit -p%s erzeugt werden, bitte -p0, -p1 oder -pab " "verwenden.\\n" #: quilt/diff.in:244 msgid "No snapshot to diff against\\n" msgstr "Kein Snapshot, um ein Diff zu erzeugen\\n" #: quilt/diff.in:278 quilt/files.in:107 quilt/mail.in:429 msgid "Patch %s not applied before patch %s\\n" msgstr "Patch %s ist nicht vor Patch %s angewandt\\n" #: quilt/diff.in:346 msgid "File %s is not being modified\\n" msgstr "Datei %s wird nicht verändert\\n" #: quilt/diff.in:365 msgid "Diff failed, aborting\\n" msgstr "Diff fehlgeschlagen, Abbruch.\\n" #: quilt/diff.in:372 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Warnung: später angewandte Patches verändern Dateien von %s\\n" #: quilt/edit.in:13 msgid "Usage: quilt edit file ...\\n" msgstr "Aufruf: quilt edit datei ...\\n" #: quilt/edit.in:16 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Die angegebene(n) Datei(en) dem obersten Patch hinzufügen und dann im\n" "\\$EDITOR (%s) editieren.\n" #: quilt/files.in:11 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "Aufruf: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" #: quilt/files.in:14 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "Ausgabe einer Liste der Dateien, die der oberste oder angegebene Patch\n" "beinhaltet.\n" "\n" "-a\tAlle Dateien in allen angewandten Patches anzeigen.\n" "\n" "-l\tAuch die Patchnamen mit ausgeben.\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" "\n" "--combine patch\n" "\tErzeugen einer Liste für alle Patches zwischen diesem und dem obersten\n" "\toder angegebenen Patch am Stack. Der Patchname \\`-'\n" "\tentspricht dem ersten angewandten Patch.\n" "\n" #: quilt/fold.in:11 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "Aufruf: quilt fold [-R] [-q] [-f] [-p strip-ebenen]\\n" #: quilt/fold.in:14 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Den Patch von der Standardeingabe in den obersten Patch integrieren:\n" "Es wird zuerst sichergestellt, dass alle Dateien, die verändert werden,\n" "im obersten Patch enthalten sind, dann wird der neue Patch mit der\n" "angegebenen Anzahl an Strip-Ebenen angewandt (Standardwert = 1).\n" "\n" "-R\tPatch verkehrt herum anwenden.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-f\tAnwenden erzwingen, selbst wenn dabei Fehler auftreten. Wenn -q\n" "\tnicht angegeben ist, wird der Patch interaktiv angewandt und das\n" "\tPatchprogramm könnte Fragen stellen.\n" "\n" "-p strip-ebenen\n" "\tDie Anzahl der Komponenten im Pfadnamen, die beim Anwenden des Patches\n" "\tentfernt werden sollen.\n" #: quilt/fold.in:128 msgid "File %s may be corrupted\\n" msgstr "Datei %s ist möglicherweise defekt\\n" #: quilt/fork.in:11 msgid "Usage: quilt fork [new_name]\\n" msgstr "Aufruf: quilt fork [neuer_name]\\n" #: quilt/fork.in:14 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Den obersten Patch aufspalten. Aufspalten bedeutet, dass eine neue Kopie\n" "des Patches unter einem anderen Namen angelegt wird, und der neue Patch\n" "anstelle des ursprünglichen in die series-Datei eingetragen wird. Das ist\n" "praktisch, wenn ein Patch verändert werden soll, aber die ursprüngliche\n" "Version erhalten bleiben soll. Eine typische Abfolge von Befehlen ist:\n" "fork, edit, refresh.\n" "\n" "Wenn neuer_name fehlt, wird der Name des ursprünglichen Patches verwendet,\n" "gefolgt von \\`-2'. Falls der Name bereits auf Bindestrich+Zahl endet,\n" "wird die Zahl erhöht (z.B. patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:81 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Patch %s existiert bereits, bitte neuen Namen wählen\\n" #: quilt/fork.in:93 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Fehler beim Aufspalten von %s nach %s\\n" #: quilt/fork.in:99 quilt/refresh.in:341 msgid "Fork of patch %s created as %s\\n" msgstr "Neue Version von %s erstellt als %s\\n" #: quilt/graph.in:11 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "Aufruf: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" #: quilt/graph.in:15 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Erzeugen eines gerichteten dot(1)-Graphen, der die Abhängigkeiten zwischen\n" "den angewandten Patches zeigt. Ein Patch hängt von einem anderen ab, wenn\n" "beide dieselbe Datei verändern, oder mit der --lines-Option, wenn sich die\n" "Änderungen in den Patches überlappen. Wenn nicht anders angegeben, zeigt\n" "der Graph alle Patches, von denen der oberste Patch abhängt.\n" "Wenn ein Patchname angegeben wird, wird ein Graph erzeugt, der alle Patches\n" "beinhaltet, von denen der angegebene Patch abhängt, sowie alle, die von\n" "diesem Patch abhängen.\n" "\n" "--all\tErzeugen eines Graphs, der alle Abhängigkeiten zwischen allen\n" "\tangewandten Patches beinhaltet. (Nicht angewandte Patches sind nicht\n" "\tenthalten.)\n" "\n" "--reduce\n" "\tEliminieren von transitiven Kanten im Graph.\n" "\n" "--lines[=num]\n" "\tErmitteln von Abhängigkeiten durch Vergleich der veränderten Zeilen.\n" "\tSolange nicht anders angegeben, werden zwei Kontextzeilen angenommen.\n" "\n" "--edge-labels=files\n" "\tBeschriften der Kanten mit den Namen der betroffenen Dateien.\n" "\n" "-T ps\tDirekt eine PostScript-Datei erzeugen.\n" #: quilt/grep.in:11 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "Aufruf: quilt grep [-h|options] {suchausdruck}\\n" #: quilt/grep.in:14 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Die Quelldateien rekursiv durchsuchen und Patches sowie Quilt-\n" "Metainformation überspringen. Wenn kein Dateiname angegeben wird, wird\n" "der gesamte Quellbaum durchsucht. Lesen Sie die Handbuchseite (manpage)\n" "von grep(1) für weitere Optionen.\n" "\n" "-h\tDiese Hilfe ausgeben. Die grep-Option -h kann nach einem\n" "\tDoppel-Bindestrich (--) angegeben werden. Suchausdrücke, die mit\n" "\teinem Strich beginnen, können nach einem weiteren Doppel-Bindestrich\n" "\tangegeben werden.\n" #: quilt/header.in:13 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Aufruf: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/header.in:17 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "Anzeigen oder verändern des Headers des obersten oder angegebenen Patches.\n" "\n" "-a, -r, -e\n" "\tText von der Standardeingabe an den Header anfügen (-a), den Header\n" "\tmit der Standardeingabe ersetzen (-r), oder den Header in \\$EDITOR\n" "\t(%s) editieren (-e). Wenn keine dieser Optionen angegeben ist, wird\n" "\tder Header ausgegeben.\n" "\n" "--strip-diffstat\n" "\tEntfernen der diffstat-Ergebnisse vom Header.\n" "\n" "--strip-trailing-whitespace\n" "\tEntfernen von Whitespace-Zeichen an Zeilenenden im Header.\n" "\n" "--backup\n" "\tErzeugen einer Sicherungskopie von patch als patch~.\n" #: quilt/header.in:167 msgid "Replaced header of patch %s\\n" msgstr "Header von Patch %s ersetzt\\n" #: quilt/header.in:170 msgid "Appended text to header of patch %s\\n" msgstr "Text an Header von Patch %s angefügt\\n" #: quilt/import.in:14 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "Aufruf: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] " "[patchdatei] ...\\n" #: quilt/import.in:17 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "Importieren externer Patches. Die Patches werden nach dem momentan obersten\n" "Patch eingefügt und müssen dann mit dem push-Befehl angewandt werden.\n" "\n" "-p num\n" "\tDie Anzahl der Komponenten im Pfadnamen, die beim Anwenden des Patches\n" "\tentfernt werden sollen (Standard = 1).\n" "\n" "-R\n" "\tPatch umgekehrt anwenden.\n" "\n" "-P patch\n" "\tDateiname, den Quilt für den Patch verwenden soll. Diese Option kann\n" "\tnur beim Import eines einzelnen Patches angegeben werden.\n" "\n" "-f\tÜberschreiben/aktualisieren existierender Patches.\n" "\n" "-d {o|a|n}\n" "\tBeim Überschreiben von Patches den alten (o), alle (a) oder den neuen\n" "\t(n) Patchheader erhalten. Wenn beide Patches Header enthalten, muss\n" "\tdiese Option angegeben werden. Diese Option ist nur in Kombination mit\n" "\t-f wirksam.\n" #: quilt/import.in:65 quilt/mail.in:460 msgid "Patch %s does not exist\\n" msgstr "Patch %s existiert nicht\\n" #: quilt/import.in:88 msgid "Patch headers differ:\\n" msgstr "Die Patchheader unterscheiden sich:\\n" #: quilt/import.in:91 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "Bitte verwenden Sie die Option -d {o|a|n}, um anzugeben, welche Patchheader " "erhalten bleiben sollen.\\n" #: quilt/import.in:156 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "" "Die Option \\`-P' kann nur beim Importieren eines einzelnen Patches " "verwendet werden\\n" #: quilt/import.in:195 msgid "Patch %s is applied\\n" msgstr "Patch %s ist angewandt\\n" #: quilt/import.in:204 msgid "Patch %s already exists in series.\\n" msgstr "Patch %s existiert bereits in der series-Datei.\\n" #: quilt/import.in:210 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Patch %s existiert bereits. Ersetzen mit -f.\\n" #: quilt/import.in:221 msgid "Replacing patch %s with new version\\n" msgstr "Ersetzen von Patch %s durch neuere Version\\n" #: quilt/import.in:225 msgid "Importing patch %s\\n" msgstr "Importieren von Patch %s\\n" #: quilt/import.in:227 msgid "Importing patch %s (stored as %s)\\n" msgstr "Importieren von Patch %s (abgelegt als %s)\\n" #: quilt/import.in:240 msgid "Failed to import patch %s\\n" msgstr "Patch %s konnte nicht importiert werden\\n" #: quilt/import.in:249 quilt/refresh.in:328 msgid "Failed to insert patch %s into file series\\n" msgstr "Patch %s konnte nicht in die series-Datei eingefügt werden\\n" #: quilt/mail.in:13 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [--charset ...] [--signature file] " "[first_patch [last_patch]]\\n" msgstr "" "Aufruf: quilt mail {--mbox datei|--send} [-m text] [-M datei] [--prefix " "präfix] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [--charset ...] [--signature datei] " "[first_patch [last_patch]]\\n" #: quilt/mail.in:16 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--charset\n" "\tSpecify a particular message encoding on systems which don't use\n" "\tUTF-8 or ISO-8859-15. This character encoding must match the one\n" "\tused in the patches.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "Erzeugen von E-Mail-Nachrichten für einen angegebenen Bereich von Patches\n" "oder alle Patches in der series-Datei, und sie entweder in einer Mailbox-\n" "Datei speichern oder sofort versenden. Der Editor wird mit einem\n" "Einleitungstext als Vorlage geöffnet. Für Details lesen Sie %s.\n" "Wenn ein Bereich von Patches angegeben wird, kann \\`-' für den ersten bzw.\n" "\\`-' für den letzten Patch der Serie angegeben werden.\n" "\n" "-m text\n" "\tText, der als Einleitungstext verwendet werden soll. Bei Verwendung\n" "\tdieser Option wird der Editor nicht gestartet und die Patches werden\n" "\tsofort abgearbeitet.\n" "\n" "-M datei\n" "\tWie -m, jedoch wird der Einleitungstext aus der Datei gelesen.\n" "\n" "--prefix präfix\n" "\tEinen anderen Präfix statt \\`patch' in dem durch eckige Klammern\n" "\teingefassten Text der Subject-Kopfzeile verwenden.\n" "\n" "--mbox datei\n" "\tAlle Nachrichten in der angegebenen Datei im mbox-Format speichern.\n" "\tDie Mailbox kann dann später mit formail o.ä. verschickt werden.\n" "\n" "--send\n" "\tDie Nachrichten direkt verschicken.\n" "\n" "--sender\n" "\tDie angegebene Envelope-Adresse verwenden. Die Adresse muss der Form\n" "\t\\`user@domain.name' entsprechen; Anzeigenamen sind nicht möglich.\n" "\n" "--from, --subject\n" "\tDie Werte für die From- und Subject-Kopfzeilen. Wenn keine --from-\n" "\tOption angegeben ist, wird der Wert der Option --sender verwendet.\n" "\n" "--to, --cc, --bcc\n" "\tEinen Empfänger zur To-, Cc-, oder Bcc-Kopfzeile hinzufügen.\n" "\n" "--charset\n" "\tEine bestimmte Nachrichtenkodierung angeben auf Systemen, die keinen\n" "\tUTF-8- oder ISO-8859-15-Zeichensatz verwenden. Diese Zeichenkodierung\n" "\tmuss derjenigen in den Patches entsprechen.\n" "\n" "--signature datei\n" "\tDie angegebene Signatur an Nachrichten anhängen (Standard ist\n" "\t~/.signature, falls vorhanden; bei \\`-' wird keine Signatur\n" "\tverwendet.\n" "\n" "--reply-to nachrichten-header\n" "\tDie entsprechenden Header hinzufügen, um auf die angegebene\n" "\tNachricht zu antworten.\n" #: quilt/mail.in:198 quilt/mail.in:206 msgid "Introduction message already specified" msgstr "Einleitungstext bereits angegeben" #: quilt/mail.in:312 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" "Die Envelope-Adresse konnte nicht festgestellt werden. Bitte verwenden Sie --" "sender." #: quilt/mail.in:463 msgid "Unable to extract a subject header from %s\\n" msgstr "Es konnte keine Subject-Kopfzeile aus %s extrahiert werden\\n" #: quilt/mail.in:489 msgid "Patches %s have duplicate subject headers.\\n" msgstr "Die Patches %s haben dieselben Subject-Kopfzeilen.\\n" #: quilt/mail.in:498 msgid "File %s does not exist\\n" msgstr "Datei %s existiert nicht\\n" #: quilt/mail.in:558 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "Die Einleitung hat keine Subject-Kopfzeile (gespeichert als %s)\\n" #: quilt/mail.in:561 msgid "Introduction has no subject header\\n" msgstr "Die Einleitung hat keine Subject-Kopfzeile\\n" #: quilt/mail.in:674 msgid "Introduction saved as %s\\n" msgstr "Einleitung gespeichert als %s\\n" #: quilt/new.in:14 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "Aufruf: quilt new [-p n|-p ab] {patchname}\\n" #: quilt/new.in:17 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "Erzeugen eines neuen Patches mit dem angegebenen Dateinamen und anfügen\n" "nach dem obersten Patch. Dem Name kann der Name eines Unterverzeichnisses\n" "vorangestellt werden; dies erlaubt es, zusammengehörige Patches\n" "zusammenzufassen.\n" "\n" "-p n\tErzeugen eines Patches der Art -p n (-p0 oder -p1 werden " "unterstützt).\n" "\n" "-p ab\tErzeugen eines Patches der Art -p1, jedoch a/datei und b/datei\n" "\tals ursprüngliche und neue Dateinamen verwenden anstelle von\n" "\tdir.orig/datei und dir/datei.\n" "\n" "Quilt kann aus Unterverzeichnissen eines Quellbaums heraus verwendet " "werden.\n" "Es bestimmt die Wurzel des Quellbaums, in dem es nach %s-Verzeichnissen\n" "oberhalb des aktuellen Verzeichnisses sucht. Erzeugen Sie ein\n" "%s-Verzeichnis im vorgesehenen Wurzelverzeichnis, falls Quilt ein\n" "Verzeichnis zu weit oben im Verzeichnisbaum verwendet.\n" #: quilt/new.in:68 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "Patches mit Level -p%s können nicht erzeugt werden, bitte stattdessen -p0, -" "p1 oder -pab angeben\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "QUILT_PATCHES(%s) muss sich von QUILT_PC(%s) unterscheiden\\n" #: quilt/new.in:97 quilt/refresh.in:182 msgid "Patch %s exists already\\n" msgstr "Patch %s existiert bereits\\n" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "Der oberste Patch ist jetzt %s\\n" #: quilt/new.in:110 quilt/refresh.in:337 msgid "Failed to create patch %s\\n" msgstr "Patch %s konnte nicht erzeugt werden\\n" #: quilt/next.in:11 msgid "Usage: quilt next [patch]\\n" msgstr "Aufruf: quilt next [patch]\\n" #: quilt/next.in:14 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "Gibt den Namen des nächsten Patches nach dem obersten oder angegebenen\n" "Patch in der series-Datei aus.\n" #: quilt/patches.in:13 msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "" "Aufruf: quilt patches [-v] [--color[=always|auto|never]] {datei} " "[dateien...]\\n" #: quilt/patches.in:16 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "Die Liste der Patches ausgeben, die die angegebene Datei verändern.\n" "(Verwendet eine Heuristik, um zu erkennen, welche Dateien von nicht\n" "angewandten Patches modifiziert werden. Beachten Sie, dass diese\n" "Heuristik erheblich langsamer ist als die Suche in angewandten Patches.)\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" "\n" "--color[=always|auto|never]\n" "\tSyntaxeinfärbung verwenden (wird bei auto nur aktiviert, wenn Ausgabe\n" "\tauf tty).\n" #: quilt/pop.in:11 msgid "Usage: quilt pop [-afRqv] [--refresh] [num|patch]\\n" msgstr "Aufruf: quilt pop [-afRqv] [--refresh] [num|patch]\\nn" #: quilt/pop.in:14 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" "\n" "--refresh\n" "\tAutomatically refresh every patch before it gets unapplied.\n" msgstr "" "\n" "Patches vom Stapel der angewandten Patches entfernen. Ohne angegebene\n" "Option wird der oberste Patch entfernt. Bei Angabe einer Zahl wird die\n" "entsprechende Anzahl von Patches entfernt. Wenn ein Name angegeben wird,\n" "werden alle Patches oberhalb des angegebenen Patches entfernt. Patchnamen\n" "können den patches/-Präfix enthalten, was bedeutet, dass\n" "Autovervollständigung für die Dateinamen genutzt werden kann.\n" "\n" "-a\tAlle angewandten Patches entfernen.\n" "\n" "-f\tErzwungenes Entfernen. Der Zustand vor dem Anwenden das Patches wird\n" "\tüber die Sicherungsdateien wiederhergestellt.\n" "\n" "-R\tImmer überprüfen, ob sich Patches vollständig entfernen lassen,\n" "\tnicht auf die Zeitspempel der Dateien verlassen.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-v\tAusführliche Meldungen ausgeben.\n" "\n" "--refresh\n" "\tJeden Patch automatisch neu erzeugen, bevor seine Anwendung rückgängig\n" "gemacht wird.\n" #: quilt/pop.in:92 quilt/scripts/patchfns.in:977 msgid "Failed to copy files to temporary directory\\n" msgstr "Dateien konnten nicht in temporäres Verzeichnis kopiert werden\\n" #: quilt/pop.in:117 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Patch %s kann nicht entfernt werden (Patch aktualisieren oder das Entfernen " "mit -f erzwingen)\\n" #: quilt/pop.in:119 msgid "Hint: \\`quilt diff -z' will show the pending changes.\\n" msgstr "Hinweis: \\`quilt diff -z' zeigt die gemachten Änderungen.\\n" #: quilt/pop.in:143 msgid "Patch %s appears to be empty, removing\\n" msgstr "Patch %s scheint leer zu sein; wird entfernt\\n" #: quilt/pop.in:148 msgid "Removing patch %s\\n" msgstr "Entfernen von Patch %s\\n" #: quilt/pop.in:214 quilt/push.in:376 msgid "Options %s and %s are mutually exclusive\\n" msgstr "Optionen %s und %s können nicht kombiniert werden\\n" #: quilt/pop.in:236 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Patch %s muss zuerst aktualisiert werden (refresh).\\n" #: quilt/pop.in:246 msgid "No patch removed\\n" msgstr "Kein Patch entfernt\\n" #: quilt/pop.in:270 quilt/scripts/patchfns.in:511 msgid "No patches applied\\n" msgstr "Keine Patches angewandt\\n" #: quilt/pop.in:277 quilt/push.in:440 msgid "Now at patch %s\\n" msgstr "Jetzt in Patch %s\\n" #: quilt/previous.in:11 msgid "Usage: quilt previous [patch]\\n" msgstr "Aufruf: quilt previous [patch]\\n" #: quilt/previous.in:14 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "Den Namen des Patches vor dem obersten oder angegebenen Patch in\n" "der series-Datei ausgeben.\n" #: quilt/push.in:11 msgid "" "Usage: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\\n" msgstr "" "Aufruf: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\\n" #: quilt/push.in:14 msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--refresh\n" "\tAutomatically refresh every patch after it was successfully applied.\n" msgstr "" "\n" "Patches aus der series-Datei anwenden. Ohne weitere Optionen wird der\n" "nächste Patch in der series-Datei angewandt. Wenn eine Zahl angegeben\n" "ist, wird die angegebene Anzahl von Patches angewandet. Ist ein Name\n" "angegeben, werden alle Patches bis einschliesslich diesem Patch\n" "angewandt. Patchnamen können den patches/-Präfix enthalten, was\n" "bedeutet, dass Autovervollständigung für die Dateinamen genutzt\n" "werden kann.\n" "\n" "-a\tAlle Patches in der series-Datei anwenden.\n" "\n" "-q\tWenige Meldungen ausgeben.\n" "\n" "-f\tAnwenden erzwingen, selbst wenn dabei Fehler auftreten.\n" "\n" "-v\tAusführliche Meldungen ausgeben.\n" "\n" "--fuzz=N\n" "\tDen maximalen Unscharf-Faktor (fuzz) setzen (Voreinstellung: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tDie Patchdatei mit den Originaldateien zusammenführen (siehe\n" "\tpatch(1)).\n" "\n" "--leave-rejects\n" "\tDie vom Patch erstellten Reject-Dateien bestehen lassen, selbst wenn\n" "\tdieser nicht sauber angewandt werden kann.\n" "\n" "--color[=always|auto|never]\n" "\tSyntaxeinfärbung verwenden (wird bei auto nur aktiviert, wenn Ausgabe\n" "\tauf tty).\n" "\n" "--refresh\n" "\tJeden Patch automatisch neu erzeugen, nachdem er angewandt wurde.\n" #: quilt/push.in:57 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Unterbrechung durch Benutzer; Patch %s wurde nicht angewandt.\\n" #: quilt/push.in:176 msgid "Applying patch %s\\n" msgstr "Anwenden von Patch %s\\n" #: quilt/push.in:210 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Patch %s existiert nicht; leerer Patch wird angewandt\\n" #: quilt/push.in:214 msgid "Patch %s appears to be empty; applied\\n" msgstr "Patch %s scheint leer zu sein; angewandt\\n" #: quilt/push.in:218 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "Patch %s angewandt (erzwungen, muss aktualisiert werden (refresh))\\n" #: quilt/push.in:228 msgid "Patch %s can be reverse-applied\\n" msgstr "Patch %s kann umgekehrt angewandt werden\\n" #: quilt/push.in:231 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "Patch %s lässt sich nicht anwenden (erzwingen mit -f)\\n" #: quilt/push.in:286 msgid "Patch %s is already applied; check your series file\\n" msgstr "Patch %s wurde bereits angewandt; überprüfen Sie Ihre series-Datei\\n" #: quilt/push.in:408 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Der oberste Patch %s muss zuerst aktualisiert werden (refresh).\\n" #: quilt/push.in:416 msgid "No patch applied\\n" msgstr "Kein Patch angewandt\\n" #: quilt/refresh.in:11 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "Aufruf: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" #: quilt/refresh.in:15 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "Den obersten oder angegebenen Patch aktualisieren. Dokumentation in der\n" "Patchdatei, die vor dem eigentlichen Patch steht, bleibt dabei\n" "erhalten.\n" "\n" "Es können beliebige angewandte Patches aktualisiert werden. Wenn\n" "Patches, die nach dem angegebenen Patch angewandt sind, dieselben\n" "Dateien verändern, die auch dieser Patch verändert, bricht dieses Skript\n" "normalerweise ab. Mit der Option -f kann das Aktualisieren trotzdem\n" "erzwungen werden. Dann wird für jede Datei, die später noch verändert\n" "wurde, eine Warnung ausgegeben, und nur Änderungen in Dateien, die\n" "danach nicht von anderen Patches weiter verändert werden, werden beim\n" "Aktualisieren berücksichtigt.\n" "\n" "-p n\tErzeugen eines Patch der Art -p n (n=0 oder n=1 werden\n" "\tunterstützt).\n" "\n" "-p ab\tErzeugen einen Patches der Art -p1, jedoch a/datei und b/datei\n" "\tals ursprüngliche und neue Dateinamen verwenden anstelle von\n" "\tdir.orig/datei und dir/datei.\n" "\n" "-u, -U anzahl, -c, -C anzahl\n" "\tErzeugen eines Unified-Diffs (-u, -U) mit der angegebenen Anzahl von\n" "\tKontextzeilen bzw. erzeugen eines Context-Diffs (-c, -C) mit der\n" "\tangegebenen Anzahl von Kontextzeilen. Die Anzahl der Kontextzeilen ist\n" "\t3, wenn nicht anders angegeben.\n" "\n" "-z[neuer_name]\n" "\tErzeugen eines neuen Patches mit den Änderungen, statt den obersten\n" "\tPatch zu aktualisieren. Wenn kein neuer Name angegeben wird, wird\n" "\t\\`-2' an den Namen angehängt usw. (siehe den fork-Befehl).\n" "\n" "--no-timestamps\n" "\tKeine Zeitstempel in Patch-Kopfzeilen angeben.\n" "\n" "--no-index\n" "\tKeine \\`Index:'-Zeilen ausgeben.\n" "\n" "--diffstat\n" "\tDen Patch-Kopfzeilen einen diffstat-Abschnitt hinzufügen oder den\n" "\tbestehenden Abschnitt ersetzen.\n" "\n" "-f\tDas Aktualisieren eines Patches erzwingen, der sich nicht an\n" "\toberster Position befindet.\n" "\n" "--backup\n" "\tErzeugen eines Backups der alten Version von patch als patch~\n" "\n" "--sort\tDateien im Patch nach ihren Namen sortieren, statt die\n" "\tursprüngliche Reihenfolge beizubehalten.\n" "\n" "--strip-trailing-whitespace\n" "\tWhitespace-Zeichen an Zeilenenden entfernen.\n" #: quilt/refresh.in:168 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "Nur der oberste Patch kann mit -z aktualisiert werden\\n" #: quilt/refresh.in:199 msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Patches mit Level -p%s können nicht aktualisiert werden, bitte -p0, -p1 oder " "-pab angeben\\n" #: quilt/refresh.in:237 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Später angewandte Patches verändern Dateien von %s. Aktualisieren mit -f " "erzwingen.\\n" #: quilt/refresh.in:243 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "--strip-trailing-whitespace kann nicht für Patches verwendt werden, die " "Dateien enthalten, welche danach von anderen Patches weiter verändert werden." "\\n" #: quilt/refresh.in:249 quilt/refresh.in:349 msgid "Nothing in patch %s\\n" msgstr "Patch %s ist leer\\n" #: quilt/refresh.in:321 msgid "Patch %s is unchanged\\n" msgstr "Patch %s ist unverändert\\n" #: quilt/refresh.in:347 msgid "Refreshed patch %s\\n" msgstr "Patch %s aktualisiert\\n" #: quilt/remove.in:11 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "Aufruf: quilt remove [-P patch] {datei} ...\\n" #: quilt/remove.in:14 msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" "\n" "Eine oder mehrere Dateien aus dem obersten oder angegebenen Patch\n" "entfernen. Dateien, die durch Patches oberhalb des angegebenen Patches\n" "verändert werden, können nicht entfernt werden.\n" "\n" "-P patch\n" "\tAngegebene Dateien aus dem genannten Patch entfernen.\n" #: quilt/remove.in:70 quilt/revert.in:72 msgid "File %s is not in patch %s\\n" msgstr "Datei %s ist nicht in Patch %s\\n" #: quilt/remove.in:88 msgid "Failed to remove file %s from patch %s\\n" msgstr "Datei %s konnte nicht aus Patch %s entfernt werden\\n" #: quilt/remove.in:102 msgid "File %s removed from patch %s\\n" msgstr "Datei %s aus Patch %s entfernt\\n" #: quilt/rename.in:11 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "Aufruf: quilt rename [-P patch] neuer_name\\n" #: quilt/rename.in:14 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Den obersten oder angegebenen Patch umbenennen.\n" "\n" "-P patch\n" "\tPatch, der umbenannt werden soll.\n" #: quilt/rename.in:81 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Patch %s existiert bereits, bitte einen anderen Namen wählen\\n" #: quilt/rename.in:95 msgid "Renaming of patch %s to %s failed\\n" msgstr "Fehler beim Umbenennen von Patch %s in %s\\n" #: quilt/rename.in:101 msgid "Patch %s renamed to %s\\n" msgstr "Patch %s umbenannt in %s\\n" #: quilt/revert.in:11 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "Aufruf: quilt revert [-P patch] {datei} ...\\n" #: quilt/revert.in:14 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Nicht übernommene Änderungen an dem obersten oder angegebenen Patch für\n" "die angegebenen Dateien zurücknehmen. Danach zeigt 'quilt diff -z' keine\n" "Unterschiede für diese Dateien mehr an. Änderungen an Dateien, die von\n" "Patches oberhalb des angegebenen Patches verändert werden, können nicht\n" "entfernt werden.\n" "\n" "-P patch\n" "\tÄnderungen in dem angegebenen Patch zurücknehmen.\n" #: quilt/revert.in:100 quilt/revert.in:109 msgid "File %s is unchanged\\n" msgstr "Datei %s ist unverändert\\n" #: quilt/revert.in:117 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Änderungen an %s in Patch %s konnten nicht zurückgenommen werden\\n" #: quilt/revert.in:121 msgid "Changes to %s in patch %s reverted\\n" msgstr "Änderungen an %s in Patch %s zurückgenommen\\n" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Anzeigename `%s' enthält eine unvollständige Klammerung\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "Zustelladresse `%s' ist ungültig\n" #: quilt/scripts/patchfns.in:237 quilt/scripts/patchfns.in:524 msgid "%s is not a regular file\\n" msgstr "%s ist keine reguläre Datei\\n" #: quilt/scripts/patchfns.in:486 quilt/scripts/patchfns.in:498 msgid "No patches in series\\n" msgstr "Keine Patches in der series-Datei\\n" #: quilt/scripts/patchfns.in:553 msgid "Patch %s is not in series\\n" msgstr "Patch %s ist nicht in der series-Datei\\n" #: quilt/scripts/patchfns.in:581 msgid "Patch %s is not applied\\n" msgstr "Patch %s ist nicht angewandt\\n" #: quilt/scripts/patchfns.in:618 msgid "File series fully applied, ends at patch %s\\n" msgstr "series-Datei vollständig angewandt, endet in Patch %s\\n" #: quilt/scripts/patchfns.in:774 msgid "Diff failed on file '%s', aborting\\n" msgstr "Diff gegen Datei '%s' fehlgeschlagen, Abbruch.\\n" #: quilt/scripts/patchfns.in:995 msgid "Failed to patch temporary files\\n" msgstr "Patch konnte nicht auf temporäre Dateien angewandt werden\\n" #: quilt/scripts/patchfns.in:1038 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Die quilt-Metadaten in diesem Arbeitsverzeichnis haben Version %s, aber " "diese Version von quilt kann nur mit Metadaten der Versionen %s und darunter " "umgehen. Bitte entfernen Sie vor dem Downgrade von quilt alle Patches mit " "der Version von quilt, die zur Erstellung des Arbeitsverzeichnisses " "verwendet wurde.\\n" #: quilt/scripts/patchfns.in:1113 msgid "You have to install '%s' (from package %s) to use 'quilt %s'\\n" msgstr "" "Sie müssen '%s' (aus dem Paket %s) installieren, um 'quilt %s' nutzen zu " "können\\n" #: quilt/scripts/patchfns.in:1192 msgid "Cannot change into parent directory %s/\\n" msgstr "Wechsel in übergeordnetes Verzeichnis %s/ nicht möglich\\n" #: quilt/scripts/patchfns.in:1237 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Das Arbeitsverzeichnis wurde von einer älteren quilt-Version erstellt. Bitte " "führen Sie \\`quilt upgrade' aus.\\n" #: quilt/scripts/patchfns.in:1245 msgid "" "The series file no longer matches the applied patches. Please run 'quilt pop " "-a'.\\n" msgstr "" "Die series-Datei passt nicht mehr zu den angewandten Patches. Bitte führen " "Sie 'quilt pop -a' aus.\\n" #: quilt/scripts/patchfns.in:1254 msgid "No series file found\\n" msgstr "Keine series-Datei gefunden\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "Aufruf: %s [-p num] [-n] [patch]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: konfuse Situation.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Warnung: abschliessende Leerzeichen in Zeile %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Warnung: abschliessende Leerzeichen in den Zeilen %s von %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Abschliessende Leerzeichen in Zeile %s von %s werden entfernt\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Abschliessende Leerzeichen in den Zeilen %s von %s werden entfernt\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "Umbenennen von %s in %s: %s\n" #: quilt/series.in:11 msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "Aufruf: quilt series [--color[=always|auto|never]] [-v]\\n" #: quilt/series.in:14 msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "Die Namen aller Patches in der series-Datei ausgeben.\n" "\n" "--color[=always|auto|never]\n" "\tSyntaxeinfärbung verwenden (wird bei auto nur aktiviert, wenn Ausgabe\n" "\tauf tty).\n" "\n" "-v\tAusführlichere, benutzerfreundliche Ausgabe.\n" #: quilt/setup.in:23 quilt/setup.in:43 msgid "Directory %s exists\\n" msgstr "Verzeichnis %s existiert\\n" #: quilt/setup.in:49 msgid "File %s exists\\n" msgstr "Datei %s existiert\\n" #: quilt/setup.in:265 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--" "slow|--fast] {specfile|seriesfile}\\n" msgstr "" "Aufruf: quilt setup [-d pfad-präfix] [-v] [--sourcedir verzeichnis] [--" "fuzz=N] [--slow|--fast] {spec-datei|series-datei}\\n" #: quilt/setup.in:268 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" "\n" "--slow\tUse the original, slow method to process the spec file. In this " "mode,\n" "\trpmbuild generates a working tree in a temporary directory while all\n" "\tits actions are recorded, and then everything is replayed from scratch\n" "\tin the target directory.\n" "\n" "--fast\tUse the new, faster method to process the spec file. In this mode,\n" "\trpmbuild is told to generate a working tree directly in the target\n" "\tdirectory. This is the default (since quilt version 0.67).\n" "\n" "The setup command is only guaranteed to work properly on spec files where\n" "applying all the patches is the last thing done in the %%prep section. This\n" "is a design limitation due to the fact that quilt can only operate on\n" "patches. If other commands in the %%prep section modify the patched files,\n" "they must come first, otherwise you won't be able to push the patch\n" "series.\n" "\n" "For example, a %%prep section where you first unpack a tarball, then\n" "apply patches, and lastly perform a tree-wide string substitution, is\n" "not OK. For \\\"quilt setup\\\" to work, it would have to be changed to\n" "unpacking the tarball, then performing the tree-wide string substitution,\n" "and lastly applying the patches.\n" msgstr "" "\n" "Initialisiert einen Quellbaum aus einer rpm-spec-Datei oder einer quilt-\n" "series-Datei.\n" "\n" "-d\tOptionaler Pfadpräfix für den resultierenden Quellbaum.\n" "\n" "--sourcedir\n" "\tVerzeichnis, dass die Paketquellen enthält. Voreinstellung ist \\`.'.\n" "\n" "-v\tAusführliche Ausgabe für Debugging.\n" "\n" "--fuzz=N\n" "\tDen maximalen Unscharf-Faktor (fuzz) setzen (benötigt rpm 4.6 oder \n" "\tspäter).\n" "\n" "--slow\tDie unrsprüngliche, langsame Methode zur Verarbeitung der spec-" "Datei\n" "\tverwenden. Bei dieser Methode erzeugt rpmbuild ein Arbeits-\n" "\tverzeichnis in einem temporären Verzeichnis, wobei alle Aktionen\n" "\taufgezeichnet werden; anschließend wird im Zielverzeichnis alles\n" "\terneut durchgeführt.\n" "\n" "--fast\tDie neue, schnellere Methode zur Verarbeitung der spec-\n" "\tDatei verwenden. Dabei erzeugt rpmbuild ein Arbeitsverzeichnis\n" "\tdirekt im Zielverzeichnis. Seit quilt Version 0.67 ist das die\n" "\tStandard-Methode.\n" "\n" "Die ordnungsgemäße Ausführung des setup Kommandos kann nur garantiert\n" "werden, wenn die Anwendung aller Patches als letzter Abschnitt in %%prep\n" "erfolgt. Das ist eine Designbeschränkung, weil quilt nur auf Patches\n" "angewendet werden kann. Falls andere Befehle in der %%prep Sektion\n" "Patches modifizieren, müssen diese zuerst ausgeführt werden, andernfalls\n" "kann man den Patch nicht in die Serie hinzufügen.\n" "\n" "Würde man zum Beispiel in der %%prep Sektion zuerst den Tarball\n" "entpacken, anschließend alle Patches anwenden und als letztes eine\n" "verzeichnisweite Zeichenkettensubstitution durchführen, dann würde dies\n" "nicht funktionieren. Damit \\\"quilt setup\\\" funktioniert, muss man\n" "zuerst den Tarball entpacken, die verzeichnisweite\n" "Zeichenkettensubstitution durchführen und als letztes die Patches\n" "anwenden.\n" #: quilt/setup.in:403 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "Der %%prep-Abschnitt von %s ist fehlgeschlagen; die Ergebnisse sind " "möglicherweise unvollständig.\\n" #: quilt/setup.in:406 msgid "The -v option will show rpm's output\\n" msgstr "Die Option -v zeigt die Ausgaben von rpm an\\n" #: quilt/setup.in:467 quilt/setup.in:479 quilt/setup.in:490 msgid "File %s not found\\n" msgstr "Datei %s nicht gefunden\\n" #: quilt/setup.in:470 quilt/setup.in:482 quilt/setup.in:493 msgid "Unpacking archive %s\\n" msgstr "Entpacken des Archivs %s\\n" #: quilt/setup.in:503 msgid "Trying alternative patches and series names..." msgstr "Versuch alternativer patches- und series-Namen ..." #: quilt/snapshot.in:11 msgid "Usage: quilt snapshot [-d]\\n" msgstr "Aufruf: quilt snapshot [-d]\\n" #: quilt/snapshot.in:14 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Erzeugen eines Snapshots des aktuellen Zustands des Quellbaums. Danach\n" "kann der Quellbaum auf den üblichen Wegen verändert werden, inklusive\n" "Hinzufügen und Entfernen von Patches. Ein Patch zwischen dem Quellbaum\n" "zum Zeitpunkt des Snapshots und dem aktuellen Zustand kann mit\n" "\\`quilt diff --snapshot' erzeugt werden.\n" "\n" "-d\tLediglich den aktuellen Snapshot entfernen.\n" #: quilt/top.in:11 msgid "Usage: quilt top\\n" msgstr "Aufruf: quilt top\\n" #: quilt/top.in:14 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "Den Namen des obersten Patches auf dem Stapel ausgeben.\n" #: quilt/unapplied.in:11 msgid "Usage: quilt unapplied [patch]\\n" msgstr "Aufruf: quilt unapplied [patch]\\n" #: quilt/unapplied.in:14 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "Eine Liste der Patches ausgeben, die momentan nicht angewandt sind, bzw.\n" "eine Liste der Patches, die dem angegebenen Patch folgen.\n" #: quilt/upgrade.in:15 msgid "Usage: quilt upgrade\\n" msgstr "Aufruf: quilt upgrade\\n" #: quilt/upgrade.in:18 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Die Metadaten in einem Arbeitsverzeichnis von einer älteren quilt-Version\n" "zur neuesten aktualisieren. Dieser Befehl wird nur benötigt, wenn sich das\n" "Format der Metadaten verändert hat und das Arbeitsverzeichnis noch alte\n" "Metadaten enthält. In diesem Fall fordert quilt dazu auf, \\`quilt upgrade'\n" "auszuführen.\n" #: quilt/upgrade.in:65 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "Die Metadaten in %s haben bereits das Format Version %s; keine " "Aktualisierung nötig\\n" #: quilt/upgrade.in:69 msgid "Converting meta-data to version %s\\n" msgstr "Konvertieren der Metadaten auf Version %s\\n" #: quilt/upgrade.in:100 msgid "Conversion failed\\n" msgstr "Konvertierung fehlgeschlagen\\n" #: quilt/upgrade.in:101 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "Bitte entfernen Sie mit \\`quilt pop -a' alle Patches der quilt-Version, die " "zur Erzeugung des Arbeitsverzeichnis verwendet wurde, oder entfernen Sie das " "Verzeichnis %s und wenden Sie die Patches neu an.\\n" quilt-0.68/po/PaxHeaders/ja.po0000644000000000000000000000013214562361711013241 xustar0030 mtime=1707729865.162585469 30 atime=1711108468.941204406 30 ctime=1711108458.903060294 quilt-0.68/po/ja.po0000644000076500001440000020616214562361711014506 0ustar00khaliusers00000000000000# Quilt japanese translation # Copyright (C) 2003 Free Software Foundation, Inc. # Yasushi SHOJI , 2003. # msgid "" msgstr "" "Project-Id-Version: quilt 0.65\n" "PO-Revision-Date: 2024-02-09 22:17+0900\n" "Last-Translator: Yasushi SHOJI \n" "Language-Team: Quilt\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "ä½¿ã„æ–¹: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." #: bin/quilt.in:41 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:43 msgid "Commands are:" msgstr "コマンド一覧:" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately.\\n" msgstr "" "\n" "全コマンド共通オプション:\n" "\n" "--trace\n" "\tコマンドをbashã®ãƒˆãƒ¬ãƒ¼ã‚¹ãƒ¢ãƒ¼ãƒ‰(-x)ã§å®Ÿè¡Œã€‚内部デãƒãƒƒã‚°ç”¨ã€‚\n" "\n" "--quiltrc file\n" "\t~/.quiltrc (存在ã—ãªã„å ´åˆã¯ %s/quiltrc) ã®ä»£ã‚Šã«èª­ã¿è¾¼ã‚€\n" "\tコンフィギュレーションファイルを指定。内容ã®è©³ç´°ã«ã¤ã„ã¦ã¯\n" "\tPDFã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’å‚照。特別ãªãƒ•ァイルå \\\"-\\\"を使ã†ã¨ã€\n" "\tコンフィギュレーションファイルを読ã¿è¾¼ã¾ãªã„。\n" "\n" "--version\n" "\tãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報を出力ã—ã¦çµ‚了。\\n" #: quilt/add.in:11 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt add [-P パッãƒ] {file} ...\\n" #: quilt/add.in:14 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ãƒ•ァイル(複数å¯)を追加ã™ã‚‹ã€‚ファイルã¯ç·¨\n" "集ã™ã‚‹å‰ã«ã‹ãªã‚‰ãšè¿½åŠ ã™ã‚‹å¿…è¦ãŒã‚る。指定ã—ãŸãƒ‘ッãƒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰\n" "æ›´ã•れã¦ã„るファイルã¯è¿½åŠ ã™ã‚‹ã“ã¨ãŒã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを追加ã™ã‚‹ãƒ‘ッãƒ\n" #: quilt/add.in:37 quilt/add.in:43 msgid "File %s is located below %s\\n" msgstr "ファイル %s ã¯ã€%s 以下ã«ã‚りã¾ã™\\n" #: quilt/add.in:100 msgid "File %s is already in patch %s\\n" msgstr "ファイル %s ã¯ã€ã™ã§ã«ãƒ‘ッム%s ã«å«ã¾ã‚Œã¦ã„ã¾ã™\\n" #: quilt/add.in:108 quilt/remove.in:79 quilt/revert.in:81 msgid "File %s modified by patch %s\\n" msgstr "ファイル %s ã¯ã€ãƒ‘ッム%s ã«ã‚ˆã£ã¦ã™ã§ã«å¤‰æ›´ã•れã¦ã„ã¾ã™\\n" #: quilt/add.in:116 msgid "Cannot add symbolic link %s\\n" msgstr "シンボリックファイル %s ã¯è¿½åŠ ã§ãã¾ã›ã‚“" #: quilt/add.in:123 msgid "Failed to back up file %s\\n" msgstr "ファイル %s ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/add.in:134 msgid "File %s added to patch %s\\n" msgstr "ファイル %s をパッム%s ã«è¿½åŠ ã—ã¾ã—ãŸ\\n" #: quilt/annotate.in:11 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "ä½¿ã„æ–¹: quilt annotate [-P パッãƒ] {file}\\n" #: quilt/annotate.in:14 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "パッãƒãŒå¤‰æ›´ã—ãŸè¡Œã«è¨»é‡ˆã‚’付ã‘ã¦è¡¨ç¤ºã€‚é©å¿œã•れるã®ã¯ã€ã‚ã¦ã‚‰ã‚Œã¦ã„るパッ\n" "ãƒã®ã¿ã€‚\n" "\n" "-P パッãƒ\n" "\t最上ä½ã®ãƒ‘ッãƒã¾ã§å‡¦ç†ã‚’行ãªã‚ãšã€æŒ‡å®šã•れãŸãƒ‘ッãƒã§å‡¦ç†ã‚’終了\n" #: quilt/applied.in:11 msgid "Usage: quilt applied [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt applied [パッãƒ]\\n" #: quilt/applied.in:14 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„るパッãƒã®ä¸€è¦§ã‚’表示ã—ã¾ã™ã€‚指定ã•れãŸãƒ‘ッãƒãŒã‚ã‚‹å ´åˆã¯ã€\n" "seriesファイル内ã®ãƒ‘ッãƒä¸€è¦§ã®ä¸­ã‹ã‚‰æŒ‡å®šã•れãŸãƒ‘ッãƒã¾ã§ã‚’表示ã—ã¾ã™ã€‚\n" #: quilt/delete.in:11 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "ä½¿ã„æ–¹: quilt delete [-r] [--backup] [パッãƒ|-n]\\n" #: quilt/delete.in:14 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "指定ã•れãŸãƒ‘ッãƒã€ã¾ãŸã¯æœ€ä¸Šä½ã®ãƒ‘ッãƒã‚’シリーズファイルã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "パッãƒãŒã™ã§ã«é©ç”¨ã•れã¦ã„ã‚‹å ´åˆã¯ã€æœ€åˆã«ãƒ‘ッãƒã‚’外ã™ã€‚( ç¾çŠ¶ã€æœ€ä¸Šä½\n" "ã®ãƒ‘ッãƒã—ã‹å‰Šé™¤ã™ã‚‹ã“ã¨ã¯ã§ããªã„。)\n" "\n" "-n\t最上ä½ãƒ‘ッãƒã‚„指定ã•れãŸãƒ‘ッãƒã§ã¯ãªãã€æœ€ä¸Šä½ãƒ‘ッãƒã®æ¬¡ã®ãƒ‘ッãƒã‚’\n" "\t削除ã™ã‚‹ã€‚\n" "\n" "-r\tシリーズファイルã‹ã‚‰ãƒ‘ッãƒã‚’消ã™ã¨ãã«ã€patchesディレクトリã‹ã‚‰ã‚‚\n" "\t削除ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tパッãƒã‚’削除ã›ãšã€ãƒ‘ッãƒ~ã«åå‰ã‚’変更ã—ã¾ã™ã€‚オプション\\`-r'ãŒ\n" "\t有効ã§ã¯ãªã„ã¨ãã¯ç„¡è¦–ã•れる。\n" #: quilt/delete.in:86 msgid "No next patch\\n" msgstr "次ã®ãƒ‘ッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/delete.in:99 quilt/scripts/patchfns.in:602 msgid "Patch %s is currently applied\\n" msgstr "パッム%s ã¯ç¾åœ¨é©ç”¨ã•れã¦ã„ã¾ã™\\n" #: quilt/delete.in:111 msgid "Removed patch %s\\n" msgstr "パッム%s を削除ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:113 msgid "Failed to remove patch %s\\n" msgstr "パッム%s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:124 msgid "Failed to backup patch file %s\\n" msgstr "ファイル %s ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/delete.in:131 msgid "Failed to remove patch file %s\\n" msgstr "パッム%s ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/diff.in:11 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" "ä½¿ã„æ–¹: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" #: quilt/diff.in:15 msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ã€æŒ‡å®šã•れãŸãƒ•ァイルã®å·®åˆ†ã‚’作æˆã™ã‚‹ã€‚\n" "ãƒ•ã‚¡ã‚¤ãƒ«ãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã¯ã€å¤‰æ›´ã•れãŸãƒ•ァイルã™ã¹ã¦ãŒå«ã¾ã‚Œã‚‹ã€‚\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹)\n" "\n" "-p ab\t-p1スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/fileã¨\n" "\tdir/fileã¨ã„ã†åå‰ã§ã¯ãªãã€å…ƒãƒ•ァイルを a/fileã€æ–°ã—ã„ファイルを\n" "\tb/fileã¨ã„ã†ãƒ•ァイルåã¨ã™ã‚‹ã€‚\n" "\n" "-u, -U num, -c, -C num\n" "\tnum行ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã§unified diff (-u, -U) を作æˆã€‚num行ã®ã‚³ãƒ³\n" "\tテキスト㧠context diff (-c, -C)を作æˆã€‚デフォルトã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹\n" "\tト行数㯠3行。\n" "\n" "--no-timestamps\n" "\tパッãƒãƒ˜ãƒƒãƒ€ã«ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã‚’å«ã‚ãªã„。\n" "\n" "--no-index\n" "\tIndex: ã®è¡Œã‚’出力ã—ãªã„。\n" "\n" "-z\t最上ä½ã€ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«é–¢é€£ã—ãŸå¤‰æ›´ã‚’ã€æ¨™æº–出力ã«è¡¨ç¤ºã€‚\n" "\n" "-R\treverse diffを作æˆã€‚\n" "\n" "-P パッãƒ\n" "\t指定ã•れãŸãƒ‘ッãƒç”¨ã« diffを作æˆã€‚(デフォルトã§ã¯æœ€ä¸Šä½ã®ãƒ‘ッãƒã€‚)\n" "\n" "--combine パッãƒ\n" "\tã“ã®ãƒ‘ッãƒã¨ -Pã§æŒ‡å®šã•れãŸãƒ‘ッãƒã®é–“ã™ã¹ã¦ã®ãƒ‘ッãƒã®å·®åˆ†ã‚’åˆ\n" "\tã›ã¦ä¸€ã¤ã®ãƒ‘ッãƒã‚’作æˆã€‚\\`-' ã¨ã„ã†ãƒ‘ッãƒåã¯æœ€åˆã«é©ç”¨ã•れãŸ\n" "\tパッãƒã‚’指定ã™ã‚‹ã®ã¨åŒã˜æ„味ãŒã‚る。\n" "\n" "--snapshot\n" "\tスナップショットã¨ã®å·®åˆ†ã‚’ä½œæˆ (å‚ç…§ \\`quilt snapshot -h')。\n" "\n" "--diff=utility\n" "\t指定ã•れ㟠utilityを使ã£ã¦å·®åˆ†ã‚’生æˆã€‚オリジナルã®ãƒ•ã‚¡ã‚¤ãƒ«ã¨æ–°\n" "\tã—ã„ファイルを引数ã¨ã—㦠utilityã«æ¸¡ã•れる。\n" "\n" "--color[=always|auto|never]\n" "\tシンタックスã®è‰²ä»˜ã‘指定(ttyã¸ã®å‡ºåŠ›ã«é™ã‚Šè‡ªå‹•çš„ã«æœ‰åŠ¹åŒ–ã•れる)。\n" "\n" "--sort\té †ç•ªã‚’ä¿æŒã›ãšã€åå‰é †ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¸¦ã³æ›ãˆã‚‹ã€‚\n" #: quilt/diff.in:221 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "オプション \\`--combine'㨠\\`--snapshot'〠\\`-z'ã¯åŒæ™‚ã«ä½¿ãˆã¾ã›ã‚“。\\n" #: quilt/diff.in:235 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "-p%s ã§ãƒ‘ッãƒã®å·®åˆ†ã¯ã¨ã‚Œã¾ã›ã‚“。-p0ã€-p1ã€ã¾ãŸã¯ -pab を指定ã—ã¦ãã ã•ã„\\n" #: quilt/diff.in:244 msgid "No snapshot to diff against\\n" msgstr "diff対象ã®ã‚¹ãƒŠãƒƒãƒ—ショトãŒã‚りã¾ã›ã‚“\\n" #: quilt/diff.in:278 quilt/files.in:107 quilt/mail.in:429 msgid "Patch %s not applied before patch %s\\n" msgstr "パッム%s ã¯ã€ãƒ‘ッム%s ã®å‰ã«é©ç”¨ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/diff.in:346 msgid "File %s is not being modified\\n" msgstr "ファイル %s ã¯å¤‰æ›´ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/diff.in:365 msgid "Diff failed, aborting\\n" msgstr "差分ã«å¤±æ•—ã—ã¾ã—ãŸã€‚異常終了ã—ã¾ã™\\n" #: quilt/diff.in:372 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "警告: 最近ã®ãƒ‘ッãƒãŒã€ãƒ‘ッム%s 内ã®ãƒ•ァイルを変更ã—ã¦ã„ã¾ã™\\n" #: quilt/edit.in:13 msgid "Usage: quilt edit file ...\\n" msgstr "ä½¿ã„æ–¹: quilt edit ファイル ...\\n" #: quilt/edit.in:16 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "最上ä½ã®ãƒ‘ッãƒã«æŒ‡å®šã•れãŸãƒ•ァイルを追加後ã€\\$EDITOR (%s) を使ã£ã¦ç·¨é›†ã€‚\n" #: quilt/files.in:11 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt files [-v] [-a] [-l] [--combine パッãƒ] [パッãƒ]\\n" #: quilt/files.in:14 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã€ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒãŒå¤‰æ›´ã‚’加ãˆã‚‹ãƒ•ァイルã®ä¸€è¦§ã‚’表示\n" "ã™ã‚‹ã€‚\n" "\n" "-a\té©ç”¨ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒãŒå¤‰æ›´ã™ã‚‹ãƒ•ァイルã®ä¸€è¦§ã‚’表示\n" "\n" "-l\tパッãƒåを追加表示\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" "\n" "--combine パッãƒ\n" "\t最上ä½ãƒ‘ッãƒã‹ã‚‰æŒ‡å®šã•れãŸãƒ‘ッãƒã¾ã§ã®ãƒ‘ッãƒä¸€è¦§ã‚’作æˆã€‚パッãƒ\n" "\tåã« \\`-' を指定ã™ã‚‹ã¨ã€ä¸€ç•ªæœ€åˆã«é©ç”¨ã•れã¦ã„るパッãƒã‚’指定ã—ãŸ\n" "\tã“ã¨ã«ãªã‚‹ã€‚\n" "\n" #: quilt/fold.in:11 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "ä½¿ã„æ–¹: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" #: quilt/fold.in:14 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "標準入力ã‹ã‚‰èª­ã¿è¾¼ã‚“ã ãƒ‘ッãƒã‚’最上ä½ã®ãƒ‘ッãƒã«çµ±åˆã™ã‚‹:パッãƒã«ã‚ˆã£ã¦\n" "変更ã•れるファイルãŒã€æœ€ä¸Šä½ã®ãƒ‘ッãƒã«è¿½åŠ ã•れã¦ã„ã‚‹ã“ã¨ãŒç¢ºèªã•れãŸå¾Œã€\n" "パッãƒã¯æŒ‡å®šã•れãŸã‚¹ãƒˆãƒªãƒƒãƒ—レベルを使ã£ã¦é©ç”¨ã•れる (デフォルト㯠1)。\n" "\n" "-R\tパッãƒã‚’å転ã—ã¦é©ç”¨ã€‚\n" "\n" "-q 表示を抑制。\n" "\n" "-f\tリジェクトãŒã‚ã£ã¦ã‚‚強制的ã«é©ç”¨ã€‚表示抑制モード以外ã§ã¯ã€ã‚¤ãƒ³ã‚¿\n" " ラクティブã«ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚ã¤ã¾ã‚Šã€ãƒ‘ッãƒé©ç”¨æ™‚ã«è³ªå•ã•れるã“ã¨\n" "\tãŒã‚る。\n" "\n" "-p strip-level\n" "\tパッãƒã‚’é©ç”¨ã™ã‚‹ã¨ãã«ã€ãƒ•ァイルåã‹ã‚‰çœãパスåè¦ç´ ã®æ•°\n" #: quilt/fold.in:128 msgid "File %s may be corrupted\\n" msgstr "ファイル %s ã¯å£Šã‚Œã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™\\n" #: quilt/fork.in:11 msgid "Usage: quilt fork [new_name]\\n" msgstr "ä½¿ã„æ–¹: quilt fork [new_name]\\n" #: quilt/fork.in:14 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã‚’フォークã™ã‚‹ã€‚パッãƒã‚’フォークã™ã‚‹ã¨ã¯åŒã˜å†…容ã®ã‚³ãƒ”ーを別ã®å" "å‰ã§ä½œæˆã™ã‚‹ã“ã¨ã§ã€æ–°ã—ã„åå‰ã‚’å…ƒã®æ–¹ã«ã‹ã‚ã£ã¦ä½¿ç”¨ã™ã‚‹ã€‚ã“れã¯ãƒ‘ッãƒã‚’変更" "ã—ãªã‘れã°ãªã‚‰ãªã„ãŒã€å…ƒã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚‚残ã•ãªã‘れã°ãªã‚‰ãªã„å ´åˆã«ä¾¿åˆ©ã§ã‚ã‚‹" "(例: 別シリーズã§ã®ä½¿ç”¨ã‚„éŽç¨‹ã®ä¿å­˜) 。典型的ãªã‚³ãƒžãƒ³ãƒ‰ã®é †ç•ªã¨ã—ã¦ã¯ã€forkã€" "editã€refreshã¨ãªã‚‹ã€‚\n" "\n" "new_nameãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã€ãƒ•ォークã—ãŸãƒ‘ッãƒåã¯ç¾åœ¨ã®ãƒ‘ッãƒåã®å¾Œã« " "\\`-2' ãŒä»˜ã。ã™ã§ã«ãƒ‘ッãƒå㌠-番å·ã§çµ‚ã£ã¦ã„ã‚‹å ´åˆã€ç•ªå·ã®å€¤ãŒ1増ãˆã‚‹ " "(例: patch.diffã€patch-2.diffã€patch-3.diff)。\n" #: quilt/fork.in:81 msgid "Patch %s exists already, please choose a new name\\n" msgstr "パッム%s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚æ–°ã—ã„åå‰ã‚’é¸ã‚“ã§ãã ã•ã„\\n" #: quilt/fork.in:93 msgid "Fork of patch %s to patch %s failed\\n" msgstr "パッム%s ã‹ã‚‰ãƒ‘ッム%s ã¸ã®åˆ†å²ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/fork.in:99 quilt/refresh.in:341 msgid "Fork of patch %s created as %s\\n" msgstr "パッム%s ã®åˆ†å²ã§ %s ãŒä½œæˆã•れã¾ã—ãŸ\\n" #: quilt/graph.in:11 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [パッãƒ]\\n" #: quilt/graph.in:15 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "dot(1)を使ã£ã¦é©ç”¨ã•れã¦ã„るパッãƒã®ä¾å­˜é–¢ä¿‚ã®ã‚°ãƒ©ãƒ•を作æˆã™ã‚‹ã€‚ã‚るパッ\n" "ãƒãŒä»–ã®ãƒ‘ッãƒã«ä¾å­˜ã—ã¦ã„る状態ã¨ã¯ã€ä¸¡æ–¹ã®ãƒ‘ッãƒãŒåŒã˜ãƒ•ァイルを変更\n" "ã—ã¦ã„ã‚‹å ´åˆã‚„変更箇所ãŒé‡ãªã£ãŸ(オプション --lines使用時)を指ã™ã€‚特ã«\n" "示ã•れãªã„ã‹ãŽã‚Šã€ã‚°ãƒ©ãƒ•ã¯ç¾åœ¨æœ€ä¸Šä½ã®ãƒ‘ッãƒãŒä¾å­˜ã™ã‚‹ãƒ‘ッãƒã™ã¹ã¦ã‚’å«\n" "む。\n" "\n" "最上ä½ãƒ‘ッãƒä»¥å¤–ã®ãƒ‘ッãƒåãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒã®ã‚°ãƒ©ãƒ•\n" "を作æˆã™ã‚‹ã€‚ã‚°ãƒ©ãƒ•ã¯æŒ‡å®šã•れãŸãƒ‘ッãƒãŒä¾å­˜ã™ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã¨ã€æŒ‡å®šã•\n" "れãŸãƒ‘ッãƒã«ä¾å­˜ã™ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’å«ã‚€ã€‚\n" "\n" "--all\té©ç”¨ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã¨ãã®ä¾å­˜é–¢ä¿‚ã®ã‚°ãƒ©ãƒ•を作æˆã™ã‚‹ã€‚\n" "(é©ç”¨ã•れã¦ã„ãªã„パッãƒã¯å«ã¾ãªã„)\n" "\n" "--reduce\n" "\tTransitive edgeã‚’çœç•¥ã™ã‚‹ã€‚tred(1)ã‚’å‚照。\n" "\n" "--lines[=行数]\n" "\tパッãƒãŒå¤‰æ›´ã™ã‚‹è¡Œã‹ã‚‰ä¾å­˜é–¢ä¿‚を計算ã™ã‚‹ã€‚è¡Œæ•°ãŒæŒ‡å®šã•れãªã„å ´\n" "\tåˆã¯2行分ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆãŒä½¿ç”¨ã•れる。\n" "\n" "--edge-labels=files\n" "\tグラフ内ã®ã‚¨ãƒƒã‚¸ã«ãƒ‘ッãƒãŒå¤‰æ›´ã™ã‚‹ãƒ•ァイルåを付ã‘る。\n" "\n" "-T ps\t直接ãƒã‚¹ãƒˆã‚¹ã‚¯ãƒªãƒ—トファイルを生æˆã™ã‚‹ã€‚\n" #: quilt/grep.in:11 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "ä½¿ã„æ–¹: quilt grep [-h|options] {パターン}\\n" #: quilt/grep.in:14 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "Quiltã«ã‚ˆã£ã¦ç®¡ç†ã•れã¦ã„るパッãƒã¯ãƒ¡ã‚¿æƒ…報以外ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’å†å¸°çš„\n" "ã«grepã™ã‚‹ã€‚ファイルåãŒä¸Žãˆã‚‰ã‚Œãªã‹ã£ãŸå ´åˆã¯ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå†…ã™ã¹ã¦ãŒå¯¾\n" "象ã¨ãªã‚‹ã€‚オプションã«ã¤ã„ã¦ã¯ grep(1)ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãƒšãƒ¼ã‚¸ã‚’å‚照。\n" "\n" "-h\tã“ã®ãƒ˜ãƒ«ãƒ—を表示。二é‡ãƒ€ãƒƒã‚·ãƒ¥è¨˜å· (--)を使ã†ã“ã¨ã«ã‚ˆã‚Šã€grepã«\n" "-hを渡ã™ã“ã¨ãŒã§ãる。ダッシュ記å·ã§å§‹ã¾ã‚‹æ¤œç´¢ãƒ‘ターンã¯2ã¤ç›®ã®äºŒé‡ãƒ€ãƒƒ\n" "シュ記å·ã®å¾Œã«æ¸¡ã™ã“ã¨ãŒã§ãる。\n" #: quilt/header.in:13 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [パッãƒ]\\n" #: quilt/header.in:17 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®ãƒ˜ãƒƒãƒ€ã‚’出力ã¾ãŸã¯å¤‰æ›´ã™ã‚‹ã€‚\n" "\n" "-a, -r, -e\n" "\tパッãƒã®ãƒ˜ãƒƒãƒ€ã«è¿½åŠ  (-a) ã¾ãŸã¯ãƒ˜ãƒƒãƒ€ã‚’変更 (-r)ã€\\$EDITOR (%s)ã‚’\n" "\t使ã£ã¦ç·¨é›† (-e)ã™ã‚‹ã€‚ã‚ªãƒ—ã‚·ãƒ§ãƒ³ãŒæŒ‡å®šã•れãªã‹ã£ãŸå ´åˆã¯ãƒ‘ッãƒã®\n" "\tヘッダを出力ã™ã‚‹ã€‚\n" "\n" "--strip-diffstat\n" "\tdiffstatã®å‡ºåŠ›ã‚’ãƒ˜ãƒƒãƒ€ã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "\n" "--strip-trailing-whitespace\n" "\t末尾ã®ç©ºç™½æ–‡å­—をヘッダã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tå¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ‘ッãƒã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—コピーをパッãƒ~ã¨ã—ã¦ä½œæˆã™ã‚‹ã€‚\n" #: quilt/header.in:167 msgid "Replaced header of patch %s\\n" msgstr "パッム%s ã®ãƒ˜ãƒƒãƒ€ã‚’変更ã—ã¾ã—ãŸ\\n" #: quilt/header.in:170 msgid "Appended text to header of patch %s\\n" msgstr "パッム%s ã®ãƒ˜ãƒƒãƒ€ã«è¿½åŠ ã—ã¾ã—ãŸ\\n" #: quilt/import.in:14 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "ä½¿ã„æ–¹: quilt import [-p num] [-R] [-P パッãƒ] [-f] [-d {o|a|n}] パッãƒãƒ•ァイ" "ル ...\\n" #: quilt/import.in:17 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "ä»–ã‹ã‚‰ãƒ‘ッãƒãƒ•ァイルをå–り込む。å–り込んã ãƒ‘ッãƒã¯ã€ç¾åœ¨ã®å…ˆé ­ãƒ‘ッãƒã®\n" "次ã®ä½ç½®ã«å–り込ã¾ã‚Œã‚‹ã€‚å–り込んã ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã«ã¯ pushãŒå¿…è¦ã€‚\n" "\n" "-p num\n" "\tパッãƒã‚’é©ç”¨ã™ã‚‹ã¨ãã«çœãã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¬ãƒ™ãƒ«ã®æ•° (デフォルト㯠1)\n" "\n" "-R\n" "\tパッãƒã‚’å転ã—ã¦é©ç”¨ã€‚\n" "\n" "-P パッãƒ\n" "\tquiltã®å†…部ã§ä½¿ç”¨ã™ã‚‹ãƒ‘ッãƒã®ãƒ•ァイルå。ã“ã®ã‚ªãƒ—ションã¯ãƒ‘ッãƒã‚’\n" "\t一ã¤ã ã‘å–り込むã¨ãã«æœ‰åŠ¹ã€‚\n" "\n" "-f\t存在ã™ã‚‹ãƒ‘ッãƒã®ä¸Šæ›¸ãã€ã¾ãŸã¯ã‚¢ãƒƒãƒ—デート。\n" "\n" "-d {o|a|n}\n" "\tパッãƒã‚’上書ãã™ã‚‹ã¨ãã®ãƒ‘ッãƒãƒ˜ãƒƒãƒ€ã®æŒ™å‹•を示ã™ã€‚å¤ã„方を残ã™\n" "\t(o)ã€å…¨ã¦ (a)ã€ã¾ãŸã¯æ–°ã—ã„æ–¹ã‚’残㙠(n)。両方ã®ãƒ‘ッãƒã«ãƒ˜ãƒƒãƒ€\n" "\tãŒã‚ã‚‹å ´åˆã¯å¿…ãšã“ã®ã‚ªãƒ—ションを指定ã™ã‚‹å¿…è¦ãŒã‚る。ã“ã®ã‚ªãƒ—ショ\n" "\tン㯠-fãŒæŒ‡å®šã•ã‚ŒãŸæ™‚ã®ã¿æœ‰åŠ¹ã€‚\n" #: quilt/import.in:65 quilt/mail.in:460 msgid "Patch %s does not exist\\n" msgstr "パッム%s ãŒå­˜åœ¨ã—ã¾ã›ã‚“\\n" #: quilt/import.in:88 msgid "Patch headers differ:\\n" msgstr "パッãƒãƒ˜ãƒƒãƒ€ã®å·®ç•°:\\n" #: quilt/import.in:91 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "ã©ã®ãƒ‘ッãƒãƒ˜ãƒƒãƒ€ã‚’残ã™ã‹ã€ã‚ªãƒ—ション -d {o|a|n}を使ã£ã¦æŒ‡å®šã—ã¦ãã ã•ã„" #: quilt/import.in:156 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "オプション \\`-P'ã¯ã€ãƒ‘ッãƒã‚’一ã¤ã ã‘å–り込むã¨ãã®ã¿æœ‰åйã§ã™\\n" #: quilt/import.in:195 msgid "Patch %s is applied\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«é©ç”¨ã•れã¦ã„ã¾ã™\\n" #: quilt/import.in:204 msgid "Patch %s already exists in series.\\n" msgstr "パッム%s ã¯ã€ã™ã§ã« seriesã®ä¸­ã«ã‚りã¾ã™\\n" #: quilt/import.in:210 msgid "Patch %s exists. Replace with -f.\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚-fã§ç½®ãæ›ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™\\n" #: quilt/import.in:221 msgid "Replacing patch %s with new version\\n" msgstr "パッム%s ã‚’æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ç½®ãæ›ãˆã¾ã™\\n" #: quilt/import.in:225 msgid "Importing patch %s\\n" msgstr "パッム%s ã‚’å–り込ã¿ã¾ã™\\n" #: quilt/import.in:227 msgid "Importing patch %s (stored as %s)\\n" msgstr "パッム%s ã‚’å–り込んã§ã„ã¾ã™ (%s ã¨ã—ã¦ä¿å­˜ã•れã¾ã™)\\n" #: quilt/import.in:240 msgid "Failed to import patch %s\\n" msgstr "パッム%s ã®å–り込ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/import.in:249 quilt/refresh.in:328 msgid "Failed to insert patch %s into file series\\n" msgstr "seriesファイルã¸ã®ãƒ‘ッム%s ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/mail.in:13 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [--charset ...] [--signature file] " "[first_patch [last_patch]]\\n" msgstr "" "ä½¿ã„æ–¹: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix " "prefix] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [--charset ...] [--signature file] " "[first_patch [last_patch]]\\n" #: quilt/mail.in:16 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--charset\n" "\tSpecify a particular message encoding on systems which don't use\n" "\tUTF-8 or ISO-8859-15. This character encoding must match the one\n" "\tused in the patches.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "指定ã•れãŸç¯„囲内ã€ã¾ãŸã¯ã‚·ãƒªãƒ¼ã‚ºãƒ•ァイル内ã®å…¨ã¦ã®ãƒ‘ッãƒã‹ã‚‰ãƒ¡ãƒ¼ãƒ«ã‚’作\n" "æˆã—ã€mailboxファイルã¨ã—ã¦ä¿å­˜ã™ã‚‹ã‹ã€ã™ãé€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãる。\n" "æ¦‚è¦æ–‡ä½œæˆç”¨ã«ã€ã‚¨ãƒ‡ã‚£ã‚¿ãŒãƒ†ãƒ³ãƒ—レート付ãã§å®Ÿè¡Œã•れる。詳細ã«ã¤ã„ã¦ã¯\n" "%sã‚’å‚照。\n" "範囲指定ã™ã‚‹å ´åˆã€first_patch ã§ \\`-' ã¨æŒ‡å®šã™ã‚‹ã¨ã‚·ãƒªãƒ¼ã‚ºãƒ•ァイル内ã®\n" "最åˆã®ãƒ‘ッãƒã€last_patch ã§\\`-' ã¨æŒ‡å®šã™ã‚‹ã¨æœ€å¾Œã®ãƒ‘ッãƒã‚’指定ã™ã‚‹ã¨ã„\n" "ã†æ„味ã«ãªã‚‹ã€‚\n" "\n" "-m テキスト\n" "\tãƒ†ã‚­ã‚¹ãƒˆã‚’æ¦‚è¦æ–‡ã¨ã—ã¦ä½¿ç”¨ã€‚ã“ã®ã‚ªãƒ—ションãŒä½¿ç”¨ã•れã¦ãŸå ´åˆã«\n" "\tã¯ã‚¨ãƒ‡ã‚£ã‚¿ã¯èµ·å‹•ã•れãšã€ã™ãã«ãƒ‘ッãƒãŒå‡¦ç†ã•れる。\n" "\n" "-M ファイル\n" "\t-mã¨åŒã˜ã ãŒã€æ¦‚è¦æ–‡ã‚’ファイルã‹ã‚‰èª­ã¿è¾¼ã‚€ã€‚\n" "\n" "--prefix 接頭文字列\n" "\tä»¶åã®å‰ã«ç½®ã角括弧\\`[]'å†…ã®æ–‡å­—列を指定。デフォルトã¯\\`patch'。\n" "\n" "--mbox ファイル\n" "\t全メッセージを指定ã•れãŸãƒ•ァイル㫠mboxå½¢å¼ã§ä¿å­˜ã€‚後ã«ä¾‹ãˆã°\n" "\tformailãªã©ã‚’使ã£ã¦é€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãる。\n" "\n" "--send\n" "\t直接メッセージをé€ä¿¡ã™ã‚‹ã€‚\n" "\n" "--sender\n" "\tエンベロープ用é€ä¿¡è€…ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æŒ‡å®šã€‚アドレスã¯å¿…ãš \n" "\t\\`user@domain.name'ã¨ã„ã†å½¢ã«ãªã£ã¦ã„ãªã‘れã°ãªã‚‰ãªã„。表示用\n" "\tã®åå‰ã¯ä½¿ç”¨ä¸å¯ã€‚\n" "\n" "--from, --subject\n" "\t使用ã™ã‚‹ Fromã¨Subjectヘッダã®å€¤ã€‚--formオプションãŒä¸Žãˆã‚‰ã‚Œãª\n" "\tã„å ´åˆã¯ --senderオプションãŒä½¿ç”¨ã•れる。\n" "\n" "--to, --cc, --bcc\n" "\tToã‚„Ccã€Bccã¸ã®å—信者ã®è¿½åŠ ã€‚\n" "\n" "--charset\n" "\tUTF-8 ã‚„ ISO-8859-15 を使ã£ã¦ã„ãªã„システムã§ã€ãƒ¡ãƒ¼ãƒ«ã®æ–‡å­—コードを指定。\n" "\t指定ã—ãŸæ–‡å­—コードã¯ã€ãƒ‘ッãƒã¨ä¸€è‡´ã—ã¦ã„ã‚‹å¿…è¦ãŒã‚る。\n" "\n" "--signature ファイル\n" "\t指定ã•れãŸã‚·ã‚°ãƒãƒãƒ£ã‚’メッセージã«è¿½è¨˜ (ã‚‚ã—ã‚れã°ã€~/.signature\n" " ãŒãƒ‡ãƒ•ォルトã§ä½¿ã‚れる。\\`-' を指定ã™ã‚‹ã¨ã‚·ã‚°ãƒãƒãƒ£ç„¡ã—ã¨ãªã‚‹)。\n" "\n" "--reply-to メッセージ\n" "\t指定ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¸ã®ãƒªãƒ—ライã¨ãªã‚‹ã‚ˆã†ã«ã€é©åˆ‡ãªãƒ˜ãƒƒãƒ€ã‚’追加。\n" #: quilt/mail.in:198 quilt/mail.in:206 msgid "Introduction message already specified" msgstr "æ¦‚è¦æ–‡ã¯ã™ã§ã«æŒ‡å®šã•れã¦ã„ã¾ã™" #: quilt/mail.in:312 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "" "エンベロープã®é€ä¿¡è€…アドレスを確定ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚--senderオプション\n" "を使用ã—ã¦ãã ã•ã„。" #: quilt/mail.in:463 msgid "Unable to extract a subject header from %s\\n" msgstr "%s ã‹ã‚‰ä»¶åã‚’å–り出ã›ã¾ã›ã‚“。\\n" #: quilt/mail.in:489 msgid "Patches %s have duplicate subject headers.\\n" msgstr "パッム%s ã®ä»¶åãŒé‡è¤‡ã—ã¦ã„ã¾ã™ã€‚\\n" #: quilt/mail.in:498 msgid "File %s does not exist\\n" msgstr "ファイル %s ãŒå­˜åœ¨ã—ã¾ã›ã‚“\\n" #: quilt/mail.in:558 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "æ¦‚è¦æ–‡ã«ä»¶å部分ãŒã‚りã¾ã›ã‚“(%s ã¨ã—ã¦ä¿å­˜ã•れã¾ã—ãŸ)\\n" #: quilt/mail.in:561 msgid "Introduction has no subject header\\n" msgstr "æ¦‚è¦æ–‡ã«ä»¶å部分ãŒã‚りã¾ã›ã‚“\\n" #: quilt/mail.in:674 msgid "Introduction saved as %s\\n" msgstr "æ¦‚è¦æ–‡ã¯ %s ã¨ã„ã†åå‰ã§ä¿å­˜ã•れã¾ã—ãŸ\\n" #: quilt/new.in:14 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "ä½¿ã„æ–¹: quilt new [-p n | -p ab] {パッãƒå}\\n" #: quilt/new.in:17 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルåã§æ–°ã—ã„パッãƒã‚’作æˆã—ã€æœ€ä¸Šä½ãƒ‘ッãƒã®æ¬¡ã«è¿½åŠ ã™ã‚‹ã€‚\n" "ファイルåã®å…ˆé ­ã«ã‚µãƒ–ディレクトリーåを追加ã—ã€é–¢é€£æ€§ã®ã‚るパッãƒã‚’ã‚°\n" "ループ化ã™ã‚‹ã“ã¨ãŒã§ãる。\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1 ã«å¯¾å¿œ)。\n" "\n" "-p ab\t-p1 スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/file ã¨\n" "\tdir/file ã¨ã„ã†åå‰ã§ã¯ãªãã€ã‚ªãƒªã‚¸ãƒŠãƒ«å´ã‚’ a/file ã€æ–°ã—ã„æ–¹ã‚’\n" "\tb/file ã¨ã„ã†åå‰ã«ã™ã‚‹\n" "\n" "Quilt ã¯ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã®ä»»æ„ã®ã‚µãƒ–ディレクトリã§å®Ÿè¡Œã™ã‚‹ã“ã¨ãŒå¯èƒ½ã€‚実行\n" "ã•れãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚ˆã‚Šä¸Šã«ã‚ã‚‹ %s ディレクトリを探ã™ã“ã¨ã§ã€\n" "ソースコードã®ãƒ«ãƒ¼ãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’自動的ã«åˆ¤æ–­ã™ã‚‹ã“ã¨ãŒã§ãる。æ„図ã—\n" "ãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚ˆã‚Šä¸Šã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ Quilt ãŒé–“é•ã£ã¦é¸ã‚“ã§ã—ã¾ã£ãŸå ´\n" "åˆã¯ã€æ­£ã—ã„場所㫠%s ディレクトリを作æˆã™ã‚‹ã“ã¨ã€‚\n" #: quilt/new.in:68 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "" "-p%s ã§ãƒ‘ッãƒã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。-p0ã€-p1 ã¾ãŸã¯ -pab を指定ã—ã¦ãã " "ã•ã„\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "QUILT_PATCHES(%s) ã¯ã€QUILT_PC(%s) ã¨ç•°ãªã‚‹è¨­å®šã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™\\n" #: quilt/new.in:97 quilt/refresh.in:182 msgid "Patch %s exists already\\n" msgstr "パッム%s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "パッム%s を最上ä½ã«ã—ã¾ã—ãŸ\\n" #: quilt/new.in:110 quilt/refresh.in:337 msgid "Failed to create patch %s\\n" msgstr "パッム%s ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/next.in:11 msgid "Usage: quilt next [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt next [パッãƒ]\\n" #: quilt/next.in:14 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®æ¬¡ã®ãƒ‘ッãƒåを表示。\n" #: quilt/patches.in:13 msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "" "ä½¿ã„æ–¹: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" #: quilt/patches.in:16 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルを変更ã™ã‚‹ãƒ‘ッãƒã®ãƒªã‚¹ãƒˆã‚’表示。 (é©ç”¨ã•れã¦ã„ãªã„パッ\n" "ãƒãŒæŒ‡å®šã•れãŸãƒ•ァイルã«å¯¾ã—ã¦å¤‰æ›´ã‚’åŠã¼ã™ã‹ã©ã†ã‹ã¯ã€çµŒé¨“則ã«ã‚ˆã£ã¦æ±º\n" "ã‚られる。ã“ã®æ–¹æ³•ã¯é©ç”¨ã•れã¦ã„るパッãƒã‚’スキャンã™ã‚‹ã‚ˆã‚Šå¤§å¹…ã«é…ã„ã“\n" "ã¨ã«æ³¨æ„。)\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" "\n" "--color[=always|auto|never]\n" "\tシンタックスã®è‰²ä»˜ã‘指定(ttyã¸ã®å‡ºåŠ›ã«é™ã‚Šè‡ªå‹•çš„ã«æœ‰åŠ¹åŒ–ã•れる)。\n" #: quilt/pop.in:11 msgid "Usage: quilt pop [-afRqv] [--refresh] [num|patch]\\n" msgstr "ä½¿ã„æ–¹: quilt pop [-afRqv] [--refresh] [num|patch]\\n" #: quilt/pop.in:14 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" "\n" "--refresh\n" "\tAutomatically refresh every patch before it gets unapplied.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„るパッãƒã‚¹ã‚¿ãƒƒã‚¯ã‹ã‚‰ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚オプションãŒç„¡ã„å ´åˆã¯\n" "最上ä½ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚æ•°å­—ãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®šã•ã‚ŒãŸæ•°ã®ãƒ‘ッãƒã‚’ã¯\n" "ãšã™ã€‚パッãƒåãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒãŒæœ€ä¸Šä½ãƒ‘ッãƒã«ãªã‚‹\n" "ã¾ã§ã€ãã®ä¸Šã«ç©ã¾ã‚Œã¦ã„るパッãƒã‚’ã¯ãšã—ã¦ã„ã。シェルã®ãƒ•ァイルå補完\n" "機能を有効ã«ä½¿ã†ãŸã‚ã«ã€ãƒ‘ッãƒåã®å‰ã« patches/を付ã‘ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚\n" "å¯èƒ½ã€‚\n" "\n" "-a\té©ç”¨ã•れã¦ã„ã‚‹ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ã¯ãšã™ã€‚\n" "\n" "-f\tå•題ãŒã‚るパッãƒã§ã‚‚ã€å‡¦ç†ã‚’進ã‚る。ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ファイルを使ã£ã¦ã€\n" "\tパッãƒãŒé©ç”¨ã•れるå‰ã®çŠ¶æ…‹ã«å¾©æ—§ã™ã‚‹ã€‚\n" "\n" "-R\tå¿…ãšãƒ‘ッãƒãŒæ­£å¸¸ã«ã¯ãšã›ã‚‹ã‹æ¤œè¨¼ã™ã‚‹ (タイムスタンプã®ãƒã‚§ãƒƒã‚¯ã«\n" "\tä¾å­˜ã—ãªã„)\n" "\n" "-q\t表示を抑制。\n" "\n" "-v\t詳細ã«è¡¨ç¤ºã€‚\n" "\n" "--refresh\n" "\tパッãƒã‚’外ã™å‰ã«è‡ªå‹•çš„ã«ãƒ‘ッãƒã‚’æ›´æ–°ã™ã‚‹ã€‚\n" #: quilt/pop.in:92 quilt/scripts/patchfns.in:977 msgid "Failed to copy files to temporary directory\\n" msgstr "テンãƒãƒ©ãƒªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¸ã®ãƒ•ァイルコピーã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/pop.in:117 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "パッム%s ã‚’ã€æ­£å¸¸ã«ã¯ãšã™ã“ã¨ãŒã§ãã¾ã›ã‚“ (リフレッシュã™ã‚‹ã‹ -fを付\n" "ã‘ã¦ã¯ãšã—ã¦ãã ã•ã„)\\n" #: quilt/pop.in:119 msgid "Hint: \\`quilt diff -z' will show the pending changes.\\n" msgstr "ヒント: \\`quilt diff -z' ã§ã€ä¿ç•™ä¸­ã®å¤‰æ›´ã‚’表示ã§ãã¾ã™\\n" #: quilt/pop.in:143 msgid "Patch %s appears to be empty, removing\\n" msgstr "パッム%s ã¯ã€ç©ºã®ã‚ˆã†ã§ã™ã€‚ã¯ãšã—ã¾ã™\\n" #: quilt/pop.in:148 msgid "Removing patch %s\\n" msgstr "パッム%s ã‚’ã¯ãšã—ã¾ã™\\n" #: quilt/pop.in:214 quilt/push.in:376 msgid "Options %s and %s are mutually exclusive\\n" msgstr "オプション %s 㨠%s ã¯ã€åŒæ™‚ã«ä½¿ç”¨ã§ãã¾ã›ã‚“\\n" #: quilt/pop.in:236 msgid "Patch %s needs to be refreshed first.\\n" msgstr "最åˆã«ã€ãƒ‘ッム%s ã®ãƒªãƒ•レッシュãŒå¿…è¦ã§ã™ã€‚\\n" #: quilt/pop.in:246 msgid "No patch removed\\n" msgstr "é©ç”¨ã•れã¦ã„るパッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/pop.in:270 quilt/scripts/patchfns.in:511 msgid "No patches applied\\n" msgstr "é©ç”¨ã•れã¦ã„るパッãƒã¯ã‚りã¾ã›ã‚“\\n" #: quilt/pop.in:277 quilt/push.in:440 msgid "Now at patch %s\\n" msgstr "ç¾åœ¨ä½ç½®ã¯ãƒ‘ッム%s ã§ã™\\n" #: quilt/previous.in:11 msgid "Usage: quilt previous [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt previous [パッãƒ]\\n" #: quilt/previous.in:14 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "最上ä½ã®ãƒ‘ッãƒã®å‰ã®ãƒ‘ッãƒåを表示。パッãƒåãŒæŒ‡å®šã•れãŸã¨ãã¯ã€æŒ‡å®š\n" "ã•れãŸãƒ‘ッãƒã®å‰ã®ãƒ‘ッãƒåを表示。\n" #: quilt/push.in:11 msgid "" "Usage: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\\n" #: quilt/push.in:14 msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--refresh\n" "\tAutomatically refresh every patch after it was successfully applied.\n" msgstr "" "\n" "seriesã«ç™»éŒ²ã•れã¦ã„るパッãƒã‚’é©ç”¨ã™ã‚‹ã€‚オプションãŒç„¡ã„å ´åˆã¯ã€ã‚·ãƒªãƒ¼\n" "ã‚ºãƒ•ã‚¡ã‚¤ãƒ«å†…ã®æ¬¡ã®ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚æ•°å­—ãŒä¸Žãˆã‚‰ã‚ŒãŸå ´åˆã¯ã€ä¸Žãˆã‚‰ã‚ŒãŸ\n" "個数ã®ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã€‚パッãƒåãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッãƒã¾\n" "ã§ã‚’é©ç”¨ã™ã‚‹(指定ã•れãŸãƒ‘ッãƒã‚’å«ã‚€)。ファイルå補完機能を活用ã™ã‚‹ãŸã‚\n" "ã«ã€ãƒ‘ッãƒåã« patches/を付ã‘ã¦æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã€‚\n" "\n" "-a\tseriesファイルã«ç™»éŒ²ã•れã¦ã„ã‚‹ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’é©ç”¨ã€‚\n" "\n" "-q\t表示を抑制。\n" "\n" "-f\tリジェクトãŒã‚ã£ã¦ã‚‚強制的ã«é©ç”¨ã€‚\n" "\n" "-v\t詳細ã«è¡¨ç¤ºã€‚\n" "\n" "--fuzz=N\n" "\t最大何行ã®ãšã‚Œã‚’許ã™ã‹æŒ‡å®šã™ã‚‹ã€‚\n" "\n" "-m, --merge[=merge|diff3]\n" "\tパッãƒãƒ•ァイルをオリジナルã®ãƒ•ァイルã«ãƒžãƒ¼ã‚¸ (patch(1)ã‚’å‚ç…§)。\n" "\n" "--leave-rejects\n" "\tパッãƒãŒé©ç”¨ã•れãªãã¦ã‚‚ã€patchコマンドã«ã‚ˆã£ã¦ç”Ÿæˆã•れãŸãƒªã‚¸ã‚§\n" "\tクトファイルをãã®ã¾ã¾æ®‹ã™ã€‚\n" "\n" "--color[=always|auto|never]\n" "\tシンタックスã®è‰²ä»˜ã‘指定(ttyã¸ã®å‡ºåŠ›ã«é™ã‚Šè‡ªå‹•çš„ã«æœ‰åŠ¹åŒ–ã•れる)。\n" "\n" "--refresh\n" "\tパッãƒã‚’外ã™å‰ã«è‡ªå‹•çš„ã«ãƒ‘ッãƒã‚’æ›´æ–°ã™ã‚‹ã€‚\n" "\n" #: quilt/push.in:57 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "ユーザã«ã‚ˆã£ã¦ä¸­æ–­ã•れã¾ã—ãŸã€‚パッム%s ã¯é©ç”¨ã•れã¦ã„ã¾ã›ã‚“。\\n" #: quilt/push.in:176 msgid "Applying patch %s\\n" msgstr "パッム%s ã‚’é©ç”¨ã—ã¦ã„ã¾ã™\\n" #: quilt/push.in:210 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "パッム%s ã¯å­˜åœ¨ã—ã¾ã›ã‚“。空ã®ãƒ‘ッãƒã‚’é©ç”¨ã—ã¾ã—ãŸ\\n" #: quilt/push.in:214 msgid "Patch %s appears to be empty; applied\\n" msgstr "パッム%s ã¯ç©ºã®ã‚ˆã†ã§ã™ãŒã€é©ç”¨ã—ã¾ã—ãŸ\\n" #: quilt/push.in:218 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "" "パッム%s ã‚’é©ç”¨ã—ã¾ã—㟠(強制é©ç”¨ã—ãŸãŸã‚ã«ã€ãƒªãƒ•レッシュãŒå¿…è¦ã§ã™)\\n" #: quilt/push.in:228 msgid "Patch %s can be reverse-applied\\n" msgstr "パッム%s ã¯ã€å転ã—ã¦é©ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™\\n" #: quilt/push.in:231 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "パッム%s ãŒé©ç”¨ã§ãã¾ã›ã‚“ (強制é©ç”¨ã™ã‚‹å ´åˆã¯ -fを付ã‘ã¦ãã ã•ã„)\\n" #: quilt/push.in:286 msgid "Patch %s is already applied; check your series file\\n" msgstr "" "パッム%s ã¯ã™ã§ã«é©ç”¨ã•れã¦ã„ã¾ã™ã€‚シリーズファイルを確èªã—ã¦ãã ã•ã„\\n" #: quilt/push.in:408 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "最上ä½ãƒ‘ッãƒã®ãƒªãƒ•ãƒ¬ãƒƒã‚·ãƒ¥ãŒæœ€åˆã«å¿…è¦ã§ã™ã€‚\\n" #: quilt/push.in:416 msgid "No patch applied\\n" msgstr "パッãƒã¯ã²ã¨ã¤ã‚‚é©ç”¨ã•れã¾ã›ã‚“ã§ã—ãŸ\\n" #: quilt/refresh.in:11 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "ä½¿ã„æ–¹: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[æ–°ã—ã„åå‰]] [-" "f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [パッãƒ]\\n" #: quilt/refresh.in:15 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "指定ã•れãŸãƒ‘ッãƒã‚’作æˆã—ç›´ã™ã€‚ã“れをリフレッシュã™ã‚‹ã¨å‘¼ã¶ã€‚デフォルト\n" "ã§ã¯æœ€ä¸Šä½ãƒ‘ッãƒã®ãƒªãƒ•レッシュを行ã†ã€‚パッãƒã®å…ˆé ­ã«æ›¸ã‹ã‚Œã¦ã„るドキュ\n" "メントã¯ä¿æŒã•れる。\n" "\n" "スタックã®ä¸€ç•ªä¸Šä»¥å¤–ã®ãƒ‘ッãƒã‚‚リフレッシュã™ã‚‹ã“ã¨ãŒã§ãる。リフレッシュ\n" "ã™ã‚‹ãƒ‘ッãƒã¨ãã®ä¸Šã«ä¹—ã£ã¦ã„るパッãƒãŒã€åŒã˜ãƒ•ァイルを変更ã—ã¦ã„ã‚‹å ´åˆ\n" "ã¯ãƒ‡ãƒ•ォルトã§ç•°å¸¸çµ‚了ã™ã‚‹ã€‚-fオプションを付ã‘ã‚‹ã“ã¨ã§ãƒªãƒ•レッシュを強\n" "制ã™ã‚‹ã“ã¨ãŒã§ãã‚‹ãŒã€å½±ã«ãªã£ãŸãƒ•ァイルã”ã¨ã« quiltã¯è­¦å‘Šã‚’出ã™ã€‚最近\n" "ã®ãƒ‘ッãƒã«ã‚ˆã‚‹å¤‰æ›´ã¯ç„¡è¦–ã•れるãŸã‚ã€ãれ以外ã®å¤‰æ›´ã ã‘ãŒæŒ‡å®šã•れãŸãƒ‘ッ\n" "ãƒã«å映ã•れる。\n" "\n" "-p n\t-p n スタイルã®ãƒ‘ッãƒã‚’ä½œæˆ (-p0 ã¾ãŸã¯ -p1ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹)。\n" "\n" "-p ab\t-p1スタイルã®ãƒ‘ッãƒã‚’作æˆã€‚ãŸã ã—デフォルト㮠dir.orig/fileã¨\n" "\tdir/fileã¨ã„ã†åå‰ã§ã¯ãªãã€a/fileã¨b/fileã‚’ãれãžã‚Œã‚ªãƒªã‚¸ãƒŠãƒ«\n" "\tã¨æ–°ã—ã„ファイルåã¨ã™ã‚‹ã€‚\n" "\n" "-u, -U num, -c, -C num\n" "\tnum行ã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã§unified diff (-u, -U) を作æˆã€‚num行ã®ã‚³ãƒ³\n" "\tテキスト㧠context diff (-c, -C)を作æˆã€‚デフォルトã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹\n" "\tト行数㯠3行。\n" "\n" "-z[æ–°ã—ã„åå‰]\n" "\t一番上ã®ãƒ‘ッãƒã‚’リフレッシュã›ãšã«ã€æ–°ã—ã„パッãƒã‚’作æˆã™ã‚‹ã€‚ã‚‚\n" "\tã—æ–°ã—ã„åå‰ãŒä¸Žãˆã‚‰ã‚Œãªã„å ´åˆã¯ã€\\`-2'ãŒå…ƒã®ãƒ‘ッãƒåã«ä»˜åŠ ã•\n" "\tれる。(forkコマンドå‚ç…§)\n" "\n" "--no-timestamps\n" "\tパッãƒãƒ˜ãƒƒãƒ€ã«ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—ã‚’å«ã‚ãªã„。\n" "\n" "--no-index\n" "\tIndex: ã®è¡Œã‚’出力ã—ãªã„。\n" "\n" "--diffstat\n" "\tdiffstatã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’パッãƒã®å…ˆé ­éƒ¨åˆ†ã«è¿½åŠ ã€ã¾ãŸã¯æ—¢å­˜ã® \n" "\tdiffstatセクションを上書ãã™ã‚‹ã€‚\n" "\n" "-f\tスタックã®ä¸€ç•ªä¸Šã«ãªã„パッãƒã®ãƒªãƒ•レッシュを強è¦ã™ã‚‹ã€‚\n" "\n" "--backup\n" "\tãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—用ã®ã‚³ãƒ”ーã¨ã—ã¦å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ‘ッãƒã‚’パッãƒ~ã®\n" "\tå½¢ã§ä½œæˆã™ã‚‹ã€‚\n" "\n" "--sort\té †ç•ªã‚’ä¿æŒã›ãšã€åå‰é †ã«ãƒ•ã‚¡ã‚¤ãƒ«ã‚’ä¸¦ã³æ›ãˆã‚‹ã€‚\n" "\n" "--strip-trailing-whitespace\n" "\t末尾ã®ç©ºç™½æ–‡å­—を削除ã™ã‚‹ã€‚\n" #: quilt/refresh.in:168 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "-zオプションãŒã‚ã‚‹å ´åˆã€æœ€ä¸Šä½ãƒ‘ッãƒä»¥å¤–ã®ãƒªãƒ•レッシュã¯ã§ãã¾ã›ã‚“\\n" #: quilt/refresh.in:199 msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "-p%s ã§ãƒ‘ッãƒã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。-p0ã€-p1 ã¾ãŸã¯ -pab を指定ã—ã¦ãã " "ã•ã„\\n" #: quilt/refresh.in:237 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "より最近ã®ãƒ‘ッãƒãŒãƒ‘ッム%s ã®ãƒ•ァイルã«å¤‰æ›´ã‚’加ãˆã¦ã„ã¾ã™ã€‚リフレッシュを実" "行ã™ã‚‹å ´åˆã¯ -f オプションを使用ã—ã¦ãã ã•ã„。\\n" #: quilt/refresh.in:243 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "--strip-trailing-whitespace ã¯å½±ã«ãªã£ã¦ã„るファイルãŒã‚ã‚‹å ´åˆã¯ä½¿ãˆã¾ã›ã‚“" #: quilt/refresh.in:249 quilt/refresh.in:349 msgid "Nothing in patch %s\\n" msgstr "パッム%s ã«ã¯ãªã«ã‚‚å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“\\n" #: quilt/refresh.in:321 msgid "Patch %s is unchanged\\n" msgstr "パッム%s ã«å¤‰æ›´ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/refresh.in:347 msgid "Refreshed patch %s\\n" msgstr "パッム%s をリフレッシュã—ã¾ã—ãŸ\\n" #: quilt/remove.in:11 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt remove [-P パッãƒ] {ファイル} ...\\n" #: quilt/remove.in:14 msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" "\n" "指定ã•れãŸãƒ•ァイルを最上ä½ãƒ‘ッãƒã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã‹ã‚‰å‰Šé™¤ã™ã‚‹ã€‚指\n" "定ã•れãŸãƒ•ァイルãŒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰æ›´ã•れã¦ã„ã‚‹å ´åˆã¯ã€å‰Šé™¤ã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを削除ã™ã‚‹ãƒ‘ッãƒã‚’指定。\n" #: quilt/remove.in:70 quilt/revert.in:72 msgid "File %s is not in patch %s\\n" msgstr "ファイル %s ã¯ã€ãƒ‘ッム%s ã«å«ã¾ã‚Œã¦ã„ã¾ã›ã‚“\\n" #: quilt/remove.in:88 msgid "Failed to remove file %s from patch %s\\n" msgstr "ファイル %s をパッム%s ã‹ã‚‰å‰Šé™¤ã™ã‚‹ã®ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/remove.in:102 msgid "File %s removed from patch %s\\n" msgstr "ファイル %s ã‚’ã€ãƒ‘ッム%s ã‹ã‚‰å‰Šé™¤ã—ã¾ã—ãŸ\\n" #: quilt/rename.in:11 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "ä½¿ã„æ–¹: quilt rename [-P patch] new_name\\n" #: quilt/rename.in:14 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "最上ä½ã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã®åå‰ã‚’変更ã™ã‚‹\n" "\n" "-P patch\n" "\tåå‰ã‚’変更ã™ã‚‹ patch\n" #: quilt/rename.in:81 msgid "Patch %s exists already, please choose a different name\\n" msgstr "パッム%s ã¯ã™ã§ã«å­˜åœ¨ã—ã¾ã™ã€‚æ–°ã—ã„åå‰ã‚’é¸ã‚“ã§ãã ã•ã„\\n" #: quilt/rename.in:95 msgid "Renaming of patch %s to %s failed\\n" msgstr "パッム%s ã‹ã‚‰ %s ã¸ã®åå‰ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/rename.in:101 msgid "Patch %s renamed to %s\\n" msgstr "パッム%s ã‹ã‚‰ %s ã¸åå‰ã‚’変更ã—ã¾ã—ãŸ\\n" #: quilt/revert.in:11 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "ä½¿ã„æ–¹: quilt revert [-P パッãƒ] {ファイル} ...\\n" #: quilt/revert.in:14 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "最上ä½ãƒ‘ッãƒã¾ãŸã¯æŒ‡å®šã•れãŸãƒ‘ッãƒã«ã‚³ãƒŸãƒƒãƒˆã•れã¦ã„ãªã„ã€æŒ‡å®šãƒ•ァイル\n" "ã¸ã®å¤‰æ›´ã‚’å…ƒã«æˆ»ã™ã€‚å…ƒã«æˆ»ã—ãŸå¾Œã€'quilt diff -z' ã¯ã“れらã®ãƒ•ァイルã«\n" "é•ã„ãŒãªã„ã“ã¨ã‚’示ã™ã€‚指定ã•れãŸãƒ•ァイルãŒã‚ˆã‚Šä¸Šã®ãƒ‘ッãƒã§å¤‰æ›´ã•れã¦ã„ã‚‹\n" "å ´åˆã¯ã€å‰Šé™¤ã§ããªã„。\n" "\n" "-P パッãƒ\n" "\tファイルを削除ã™ã‚‹ãƒ‘ッãƒã‚’指定。\n" #: quilt/revert.in:100 quilt/revert.in:109 msgid "File %s is unchanged\\n" msgstr "ファイル %s ã«å¤‰æ›´ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/revert.in:117 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "%s ã¸ã®å¤‰æ›´(パッム%s 内)ã‚’å…ƒã«æˆ»ã™ã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸ" #: quilt/revert.in:121 msgid "Changes to %s in patch %s reverted\\n" msgstr "%s ã¸ã®å¤‰æ›´ (パッム%s 内) ã‚’å…ƒã«æˆ»ã—ã¾ã—ãŸ" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "表示用ã®åå‰ `%s' ãŒå¯¾ã«ãªã‚‰ãªã„括弧をå«ã‚“ã§ã„ã¾ã™\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "é…é€å…ˆã®ã‚¢ãƒ‰ãƒ¬ã‚¹ `%s' ãŒä¸æ­£ã§ã™\n" #: quilt/scripts/patchfns.in:237 quilt/scripts/patchfns.in:524 msgid "%s is not a regular file\\n" msgstr "%s ã¯æ™®é€šã®ãƒ•ァイルã§ã¯ã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:486 quilt/scripts/patchfns.in:498 msgid "No patches in series\\n" msgstr "シリーズã«ç™»éŒ²ã•れã¦ã„るパッãƒãŒã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:553 msgid "Patch %s is not in series\\n" msgstr "パッム%s 㯠seriesã®ä¸­ã«ã‚りã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:581 msgid "Patch %s is not applied\\n" msgstr "パッム%s ã¯é©ç”¨ã•れã¦ã„ã¾ã›ã‚“\\n" #: quilt/scripts/patchfns.in:618 msgid "File series fully applied, ends at patch %s\\n" msgstr "" "seriesファイルã®ãƒ‘ッãƒã¯ã™ã¹ã¦é©ç”¨ã•れã¦ã„ã¾ã™ã€‚最終パッãƒã¯ %s ã§ã™ã€‚\\n" #: quilt/scripts/patchfns.in:774 msgid "Diff failed on file '%s', aborting\\n" msgstr "ファイル'%s'ã®å·®åˆ†ã«å¤±æ•—ã—ã¾ã—ãŸã€‚異常終了ã—ã¾ã™\\n" #: quilt/scripts/patchfns.in:995 msgid "Failed to patch temporary files\\n" msgstr "テンãƒãƒ©ãƒªãƒ•ァイルã¸ã®ãƒ‘ッãƒé©ç”¨ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/scripts/patchfns.in:1038 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "ã“ã®ãƒ„リー内ã«ã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %sã® quiltメタデータãŒå­˜åœ¨ã—ã¾ã™ã€‚ã—ã‹ã—ã“\n" "ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã§ã¯ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %s ã¾ã§ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã—ã‹ã‚µãƒãƒ¼ãƒˆã—\n" "ã¦ã„ã¾ã›ã‚“。ダウングレードã™ã‚‹å‰ã«ã€pushã—ãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltを使ã£ã¦ã€\n" "ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ pop ã—ã¦ãã ã•ã„。\\n" #: quilt/scripts/patchfns.in:1113 msgid "You have to install '%s' (from package %s) to use 'quilt %s'\\n" msgstr "" "'%s' (%s パッケージ) ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ãªã„ã¨ã€'quilt %s' ã¯åˆ©ç”¨ã§ãã¾ã›" "ã‚“\\n" #: quilt/scripts/patchfns.in:1192 msgid "Cannot change into parent directory %s/\\n" msgstr "上ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãƒ¼ %s ã«å¤‰æ›´ã§ãã¾ã›ã‚“/\\n" #: quilt/scripts/patchfns.in:1237 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "ç¾åœ¨ä½œæ¥­ä¸­ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã¯å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã«ã‚ˆã£ã¦ä½œã‚‰ã‚ŒãŸã‚‚ã®ã§" "ã™ã€‚'quilt upgrade'を実行ã—ã¦ãã ã•ã„。\\n" #: quilt/scripts/patchfns.in:1245 msgid "" "The series file no longer matches the applied patches. Please run 'quilt pop " "-a'.\\n" msgstr "" "シリーズファイルã¨é©ç”¨ã•れã¦ã„るパッãƒã¨ã®æ•´åˆæ€§ãŒå–れã¾ã›ã‚“。'quilt\n" "pop'を実行ã—ã¦ãã ã•ã„。\\n" #: quilt/scripts/patchfns.in:1254 msgid "No series file found\\n" msgstr "シリーズファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "書å¼: %s [p num] [-n] [パッãƒ]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: æ··ä¹±ã—ã¾ã—ãŸ\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "警告: %2$s ã® %1$s 行目末尾ã«ç©ºç™½æ–‡å­—ãŒã‚りã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "警告: %2$s ã® %1$s 行目末尾ã«ç©ºç™½æ–‡å­—ãŒã‚りã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "%2$s ã® %1$s 行目末尾ã«ã‚る空白文字を削除ã—ã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "%2$s ã® %1$s 行目末尾ã«ã‚る空白文字を削除ã—ã¾ã™\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "%s ã‹ã‚‰ %s ã¸åå‰ã‚’変更ã—ã¾ã—ãŸ: %s\n" #: quilt/series.in:11 msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "ä½¿ã„æ–¹: quilt series [--color[=always|auto|never]] [-v]\\n" #: quilt/series.in:14 msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "seriesファイルã«ç™»éŒ²ã•れã¦ã„ã‚‹ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’表示。\n" "\n" "--color[=always|auto|never]\n" "\tシンタックスã®è‰²ä»˜ã‘指定(ttyã¸ã®å‡ºåŠ›ã«é™ã‚Šè‡ªå‹•çš„ã«æœ‰åŠ¹åŒ–ã•れる)。\n" "\n" "-v\t詳細ã§è¦‹ã‚„ã™ã„表示。\n" "\n" #: quilt/setup.in:23 quilt/setup.in:43 msgid "Directory %s exists\\n" msgstr "ディレクトリ %s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/setup.in:49 msgid "File %s exists\\n" msgstr "ファイル %s ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¾ã™\\n" #: quilt/setup.in:265 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--" "slow|--fast] {specfile|seriesfile}\\n" msgstr "" "ä½¿ã„æ–¹: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--" "slow|--fast] {specfile|seriesfile}\\n" #: quilt/setup.in:268 msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" "\n" "--slow\tUse the original, slow method to process the spec file. In this " "mode,\n" "\trpmbuild generates a working tree in a temporary directory while all\n" "\tits actions are recorded, and then everything is replayed from scratch\n" "\tin the target directory.\n" "\n" "--fast\tUse the new, faster method to process the spec file. In this mode,\n" "\trpmbuild is told to generate a working tree directly in the target\n" "\tdirectory. This is the default (since quilt version 0.67).\n" "\n" "The setup command is only guaranteed to work properly on spec files where\n" "applying all the patches is the last thing done in the %%prep section. This\n" "is a design limitation due to the fact that quilt can only operate on\n" "patches. If other commands in the %%prep section modify the patched files,\n" "they must come first, otherwise you won't be able to push the patch\n" "series.\n" "\n" "For example, a %%prep section where you first unpack a tarball, then\n" "apply patches, and lastly perform a tree-wide string substitution, is\n" "not OK. For \\\"quilt setup\\\" to work, it would have to be changed to\n" "unpacking the tarball, then performing the tree-wide string substitution,\n" "and lastly applying the patches.\n" msgstr "" "\n" "rpmã® specファイルã¾ãŸã¯ quiltã® seriesファイルを使ã£ã¦ã€ã‚½ãƒ¼ã‚¹ãƒ„リー\n" "ã‚’åˆæœŸåŒ–。\n" "\n" "-d\tソースツリー用ã®ä»»æ„ã®ãƒ‘スプレフィクス。\n" "\n" "--sourcedir\n" "\tパッケージソースãŒå…¥ã£ã¦ã„るディレクトリ。デフォルトã¯\\`.'。\n" "\n" "-v\t詳細ãªãƒ‡ãƒãƒƒã‚°è¡¨ç¤ºã€‚\n" "\n" "--fuzz=N\n" "\t最大何行ã®ãšã‚Œã‚’許ã™ã‹æŒ‡å®šã™ã‚‹ã€‚(rpm 4.6 ã¾ãŸã¯ãれ以é™ãŒå¿…è¦)\n" "\n" "--slow\t元々ã®ã€é…ã„ specファイルã®å‡¦ç†æ–¹æ³•を使用。ã“ã®ãƒ¢ãƒ¼ãƒ‰ã§ã¯\n" "\trpmbuild ã¯ä¸€æ™‚ディレクトリã§ä½œæ¥­ãƒ„リーを生æˆã™ã‚‹å‡¦ç†ã‚’記録ã—ã€\n" " ターゲットディレクトリã§ã¾ã£ã•らãªçŠ¶æ…‹ã‹ã‚‰å†ç¾ã™ã‚‹ã€‚\n" "\n" "--fast\t別ã®ã€æ–°ã—ãã¦é€Ÿã„ spec ファイルã®å‡¦ç†æ–¹æ³•を使用。ã“ã®ãƒ¢ãƒ¼ãƒ‰ã§ã¯\n" "\trpmbuild ã¯ã‚¿ãƒ¼ã‚²ãƒƒãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ä½œæ¥­ãƒ„リーã®ç”Ÿæˆã‚’指示ã•れる。\n" " ã“ã®æ–¹æ³•ãŒãƒ‡ãƒ•ォルト。\n" "\n" "セットアップコマンド㌠specファイルã«å¯¾ã—ã¦æ­£å¸¸ã«å‹•作ã™ã‚‹ã®ã¯ã€ å…¨ã¦ã®\n" "パッãƒã®é©ç”¨ãŒ %%prep ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã®æœ€å¾Œã®å ´åˆã®ã¿ã€‚ã“れã¯ã€quiltãŒãƒ‘ッ\n" "ãƒã®æ“作ã—ã‹ã§ããªã„ã¨ã„ã†è¨­è¨ˆä¸Šã®åˆ¶ç´„ã§ã‚る。もã—パッãƒã‚’é©ç”¨ã—ãŸãƒ•ã‚¡\n" "イルを %%prep セクション内ã®ä»–ã®ã‚³ãƒžãƒ³ãƒ‰ãŒä¿®æ­£ã™ã‚‹ã®ã§ã‚れã°ã€ãƒ‘ッãƒã‚’\n" "ã‚ã¦ã‚‹å‰ã«ä¿®æ­£ã—ãªã‘れã°ãªã‚‰ãªã„。ãれ以外ã®å ´åˆã¯ã€ãƒ‘ッãƒã‚·ãƒªãƒ¼ã‚ºã‚’プッ\n" "シュã™ã‚‹ã“ã¨ãŒã§ããªã„。\n" "\n" "例ãˆã°ã€tarball を展開ã—ãŸå¾Œã«ãƒ‘ッãƒã‚’é©ç”¨ã—ã€æœ€å¾Œã«ãƒ„ãƒªãƒ¼å…¨ä½“ã®æ–‡å­—列\n" "ç½®æ›ã‚’行ã†ã‚ˆã†ãª %%prep セクションã§ã¯æ­£å¸¸ã«å‹•作ã—ãªã„。\\\"quilt setup\\\"\n" "ãŒæ­£å¸¸ã«æ©Ÿèƒ½ã™ã‚‹ãŸã‚ã«ã¯ã€tarball を展開ã—ãŸå¾Œã«ãƒ„ãƒªãƒ¼å…¨ä½“ã®æ–‡å­—列置æ›\n" "ãªã©ã‚’行ã„ã€æœ€å¾Œã«ãƒ‘ッãƒã‚’é©ç”¨ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã™ã‚‹å¿…è¦ãŒã‚る。\n" #: quilt/setup.in:403 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "%%prepセクションã®è§£æžã«å¤±æ•—ã—ã¾ã—ãŸã€‚完全ã«ä½œæ¥­ãŒå®Œäº†ã—ã¦ã„ãªã„å ´åˆãŒã‚りã¾" "ã™\\n" #: quilt/setup.in:406 msgid "The -v option will show rpm's output\\n" msgstr "-vオプションを使ã£ã¦ã€rpmã®å‡ºåŠ›ã‚’è¡¨ç¤ºã§ãã¾ã™" #: quilt/setup.in:467 quilt/setup.in:479 quilt/setup.in:490 msgid "File %s not found\\n" msgstr "ファイル %s ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" #: quilt/setup.in:470 quilt/setup.in:482 quilt/setup.in:493 msgid "Unpacking archive %s\\n" msgstr "アーカイブ %s を展開ã—ã¦ã„ã¾ã™\\n" #: quilt/setup.in:503 msgid "Trying alternative patches and series names..." msgstr "別åã® patches 㨠series を試ã—ã¾ã™..." #: quilt/snapshot.in:11 msgid "Usage: quilt snapshot [-d]\\n" msgstr "ä½¿ã„æ–¹: quilt snapshot [-d]\\n" #: quilt/snapshot.in:14 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "ç¾åœ¨ã®ä½œæ¥­çŠ¶æ…‹ã®ã‚¹ãƒŠãƒƒãƒ—ショットを作æˆã™ã‚‹ã€‚スナップショットを作æˆã—ãŸ\n" "後ã€ãƒ„リーã¯ã„ã¤ã‚‚ã®ã‚ˆã†ã«å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã€‚パッãƒã‚’ pushã—ãŸã‚Š pop\n" "ã™ã‚‹ã“ã¨ãŒã§ãる。スナップショットã¸ã® diffã¯ã€\\`quilt diff\n" "--snapshot'ã¨ã™ã‚‹ã“ã¨ã§ç”Ÿæˆã§ãる。\n" "\n" "-d\tç¾åœ¨ã®ã‚¹ãƒŠãƒƒãƒ—ショットを削除。\n" "\n" #: quilt/top.in:11 msgid "Usage: quilt top\\n" msgstr "ä½¿ã„æ–¹: quilt top\\n" #: quilt/top.in:14 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "ç¾åœ¨é©ç”¨ã•れã¦ã„るパッãƒã‚¹ã‚¿ãƒƒã‚¯ã®æœ€ä¸Šä½ãƒ‘ッãƒåを表示\n" #: quilt/unapplied.in:11 msgid "Usage: quilt unapplied [patch]\\n" msgstr "ä½¿ã„æ–¹: quilt unapplied [パッãƒ]\\n" #: quilt/unapplied.in:14 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "é©ç”¨ã•れã¦ã„ãªã„パッãƒã‚’表示。パッãƒãŒæŒ‡å®šã•れãŸå ´åˆã¯ã€æŒ‡å®šã•れãŸãƒ‘ッ\n" "ãƒä»¥é™ã§é©ç”¨ã•れã¦ã„ãªã„パッãƒã‚’表示。\n" #: quilt/upgrade.in:15 msgid "Usage: quilt upgrade\\n" msgstr "ä½¿ã„æ–¹: quilt upgrade\\n" #: quilt/upgrade.in:18 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "作業ツリーã«ã‚ã‚‹å¤ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ã‚’æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã‚¢ãƒƒãƒ—ã‚°\n" "レードã™ã‚‹ã€‚ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã€quiltã®ãƒ¡ã‚¿ãƒ‡ãƒ¼ã‚¿ãƒ•ォーマットãŒå¤‰æ›´ã•れãŸ\n" "å ´åˆã®ã¿å¿…è¦ã€‚変更ãŒç¢ºèªã•れãŸå ´åˆã€quiltã‹ã‚‰ \\`quilt upgrade'ã®å®Ÿè¡ŒãŒ\n" "è¦æ±‚ã•れる。\n" #: quilt/upgrade.in:65 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "" "%s 内㮠quilt メタデータã¯ã™ã§ã« version %s フォーマットã®ãŸã‚ã€å‡¦ç†ã™ã‚‹å¿…è¦" "ãŒã‚りã¾ã›ã‚“。\\n" #: quilt/upgrade.in:69 msgid "Converting meta-data to version %s\\n" msgstr "メタデータを version %s ã«å¤‰æ›´ä¸­ã§ã™\\n" #: quilt/upgrade.in:100 msgid "Conversion failed\\n" msgstr "変更ã«å¤±æ•—ã—ã¾ã—ãŸ\\n" #: quilt/upgrade.in:101 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "ç¾åœ¨ä½œæ¥­ä¸­ã®ãƒ„リーを作æˆã—㟠quiltã¨åŒã˜ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® quiltã§ \\`quilt\n" "pop -a'を実行ã—ã€ã™ã¹ã¦ã®ãƒ‘ッãƒã‚’ã¯ãšã—ã¦ãã ã•ã„。ã¾ãŸã¯ã€%s ディレク\n" "トリを削除ã—ã€æœ€åˆã‹ã‚‰ãƒ‘ッãƒã‚’ã‚ã¦ç›´ã—ã¦ãã ã•ã„。\\n" quilt-0.68/po/PaxHeaders/ru.po0000644000000000000000000000013214561377437013310 xustar0030 mtime=1707474719.463389652 30 atime=1707474719.466389689 30 ctime=1707474719.463389652 quilt-0.68/po/ru.po0000644000076500001440000022346214561377437014557 0ustar00khaliusers00000000000000# Russian translation for quilt # Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 # This file is distributed under the same license as the quilt package. # FIRST AUTHOR , 2009. # msgid "" msgstr "" "Project-Id-Version: quilt\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-09-20 08:04+0000\n" "PO-Revision-Date: 2024-01-25 21:10+0700\n" "Last-Translator: Sergey Basalaev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2011-09-20 08:04+0000\n" "X-Generator: Poedit 3.4\n" #: bin/quilt.in:40 msgid "Usage: quilt [--trace[=verbose]] [--quiltrc=XX] command [-h] ..." msgstr "СинтакÑиÑ: quilt [--trace[=verbose]] [--quiltrc=XX] команда [-h] …" #: bin/quilt.in:41 msgid " quilt --version" msgstr " quilt --version" #: bin/quilt.in:43 msgid "Commands are:" msgstr "Команды:" #: bin/quilt.in:48 msgid "" "\n" "Global options:\n" "\n" "--trace\n" "\tRuns the command in bash trace mode (-x). For internal debugging.\n" "\n" "--quiltrc file\n" "\tUse the specified configuration file instead of ~/.quiltrc (or\n" "\t%s/quilt.quiltrc if ~/.quiltrc does not exist). See the pdf\n" "\tdocumentation for details about its possible contents. The\n" "\tspecial value \\\"-\\\" causes quilt not to read any configuration\n" "\tfile.\n" "\n" "--version\n" "\tPrint the version number and exit immediately.\\n" msgstr "" "\n" "Общие опции:\n" "\n" "--trace\n" "\tЗапуÑкает команду в режиме траÑÑировки bash (-x). Ð”Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ¹\n" "\tотладки.\n" "\n" "--quiltrc файл\n" "\tИÑпользовать указанный файл конфигурации вмеÑто ~/.quiltrc (или\n" "\t%s/quilt.quiltrc, еÑли ~/.quiltrc не ÑущеÑтвует). Смотрите\n" "\tpdf-документацию, чтобы узнать о его возможном Ñодержимом.\n" "\tИÑпользуйте Ñпециальное значение «-», чтобы quilt не читал\n" "\tконфигурационные файлы.\n" "\n" "--version\n" "\tÐапечатать номер верÑии и выйти из программы.\\n" #: quilt/add.in:11 msgid "Usage: quilt add [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt add [-P патч] {файл} …\\n" #: quilt/add.in:14 msgid "" "\n" "Add one or more files to the topmost or named patch. Files must be\n" "added to the patch before being modified. Files that are modified by\n" "patches already applied on top of the specified patch cannot be added.\n" "\n" "-P patch\n" "\tPatch to add files to.\n" msgstr "" "\n" "Добавить один или более файлов к верхнему или к названному патчу.\n" "Файлы необходимо добавлÑть к патчу перед тем, как изменÑть их.\n" "Файлы, которые изменены патчами, уже наложенными поверх выбранного,\n" "не могут быть добавлены.\n" "\n" "-P патч\n" "\tПатч, к которому добавлÑть файлы.\n" #: quilt/add.in:37 quilt/add.in:43 msgid "File %s is located below %s\\n" msgstr "Файл %s раÑположен ниже %s\\n" #: quilt/add.in:100 msgid "File %s is already in patch %s\\n" msgstr "Файл %s уже в патче %s\\n" #: quilt/add.in:108 quilt/remove.in:79 quilt/revert.in:81 msgid "File %s modified by patch %s\\n" msgstr "Файл %s изменён патчем %s\\n" #: quilt/add.in:116 msgid "Cannot add symbolic link %s\\n" msgstr "Ðе удалоÑÑŒ добавить Ñимвольную ÑÑылку %s\\n" #: quilt/add.in:123 msgid "Failed to back up file %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать резервную копию файла %s\\n" #: quilt/add.in:134 msgid "File %s added to patch %s\\n" msgstr "Файл %s добавлен к патчу %s\\n" #: quilt/annotate.in:11 msgid "Usage: quilt annotate [-P patch] {file}\\n" msgstr "СинтакÑиÑ: quilt annotate [-P патч] {файл}\\n" #: quilt/annotate.in:14 msgid "" "\n" "Print an annotated listing of the specified file showing which\n" "patches modify which lines. Only applied patches are included.\n" "\n" "-P patch\n" "\tStop checking for changes at the specified rather than the\n" "\ttopmost patch.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок, показывающий, какие Ñтроки указанного файла\n" "какими патчами изменены. Ð’ ÑпиÑок включаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ примененные\n" "патчи.\n" "\n" "-P патч\n" "\tОÑтановить проверку изменений поÑле указанного патча, а не\n" "\tÑамого верхнего.\n" #: quilt/applied.in:11 msgid "Usage: quilt applied [patch]\\n" msgstr "СинтакÑиÑ: quilt applied [патч]\\n" #: quilt/applied.in:14 msgid "" "\n" "Print a list of applied patches, or all patches up to and including the\n" "specified patch in the file series.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок применённых патчей или вÑех патчей, до и включаÑ\n" "указанный патч в файле series.\n" #: quilt/delete.in:11 msgid "Usage: quilt delete [-r] [--backup] [patch|-n]\\n" msgstr "СинтакÑиÑ: quilt delete [-r] [--backup] [патч | -n]\\n" #: quilt/delete.in:14 msgid "" "\n" "Remove the specified or topmost patch from the series file. If the\n" "patch is applied, quilt will attempt to remove it first. (Only the\n" "topmost patch can be removed right now.)\n" "\n" "-n\tDelete the next patch after topmost, rather than the specified\n" "\tor topmost patch.\n" "\n" "-r\tRemove the deleted patch file from the patches directory as well.\n" "\n" "--backup\n" "\tRename the patch file to patch~ rather than deleting it.\n" "\tIgnored if not used with \\`-r'.\n" msgstr "" "\n" "Удалить указанный или верхний патч из файла series. ЕÑли патч применён,\n" "то quilt попытаетÑÑ ÐµÐ³Ð¾ отменить. (Ð’ наÑтоÑщий момент можно удалить\n" "лишь верхний патч).\n" "\n" "-n\tУдалить патч, предшеÑтвующий верхнему, вмеÑто указанного\n" "\tили верхнего.\n" "\n" "-r\tТакже удалить файл удалённого патча из директории патчей.\n" "\n" "--backup\n" "\tÐе удалÑть файл патча, а переименовать в имÑ_патча~.\n" "\tИгнорируетÑÑ, еÑли не иÑпользуетÑÑ Ð²Ð¼ÐµÑте Ñ Â«-r».\n" #: quilt/delete.in:86 msgid "No next patch\\n" msgstr "ОтÑутÑтвует Ñледующий патч\\n" #: quilt/delete.in:99 quilt/scripts/patchfns.in:602 msgid "Patch %s is currently applied\\n" msgstr "Патч %s применён\\n" #: quilt/delete.in:111 msgid "Removed patch %s\\n" msgstr "Удалён патч %s\\n" #: quilt/delete.in:113 msgid "Failed to remove patch %s\\n" msgstr "Ðе удалоÑÑŒ удалить патч %s\\n" #: quilt/delete.in:124 msgid "Failed to backup patch file %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать резервную копию файла патча %s\\n" #: quilt/delete.in:131 msgid "Failed to remove patch file %s\\n" msgstr "Ðе удалоÑÑŒ удалить файл патча %s\\n" #: quilt/diff.in:11 msgid "" "Usage: quilt diff [-p n|-p ab] [-u|-U num|-c|-C num] [--combine patch|-z] [-" "R] [-P patch] [--snapshot] [--diff=utility] [--no-timestamps] [--no-index] " "[--sort] [--color[=always|auto|never]] [file ...]\\n" msgstr "" "СинтакÑиÑ: quilt diff [-p n|-p ab] [-u|-U чиÑло|-c|-C чиÑло] [--combine " "патч|-z] [-R] [-P патч] [--snapshot] [--diff=утилита] [--no-timestamps] [--" "no-index] [--sort] [--color[=always|auto|never]] [файл …]\\n" #: quilt/diff.in:15 msgid "" "\n" "Produces a diff of the specified file(s) in the topmost or specified\n" "patch. If no files are specified, all files that are modified are\n" "included.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "-z\tWrite to standard output the changes that have been made\n" "\trelative to the topmost or specified patch.\n" "\n" "-R\tCreate a reverse diff.\n" "\n" "-P patch\n" "\tCreate a diff for the specified patch. (Defaults to the topmost\n" "\tpatch.)\n" "\n" "--combine patch\n" "\tCreate a combined diff for all patches between this patch and\n" "\tthe patch specified with -P. A patch name of \\`-' is equivalent\n" "\tto specifying the first applied patch.\n" "\n" "--snapshot\n" "\tDiff against snapshot (see \\`quilt snapshot -h').\n" "\n" "--diff=utility\n" "\tUse the specified utility for generating the diff. The utility\n" "\tis invoked with the original and new file name as arguments.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" msgstr "" "\n" "Создаёт diff указанных файлов в верхнем или указанном патче. ЕÑли не\n" "указано файлов, то в diff включаютÑÑ Ð²Ñе изменённые файлы.\n" "\n" "-p n\tСоздать патч в Ñтиле -p n (поддерживаютÑÑ -p0 и -p1).\n" "\n" "-p ab\tСоздать патч в Ñтиле -p1, но иÑпользовать a/file и b/file как\n" "\tимена оригинального и нового файлов вмеÑто имен\n" "\tdir.orig/file и dir/file.\n" "\n" "-u, -U чиÑло, -c, -C чиÑло\n" "\tСоздать универÑальный diff (-u, -U) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом Ñтрок\n" "\tконтекÑта. Создать контекÑтный diff (-c, -C) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом\n" "\tÑтрок контекÑта. По умолчанию чиÑло Ñтрок контекÑта равно 3.\n" "\n" "--no-timestamps\n" "\tÐе включать отметки времени в заголовки патчей.\n" "\n" "--no-index\n" "\tÐе выводить Ñтроки Index:\n" "\n" "-z\tВывеÑти на Ñтандартный вывод изменениÑ, Ñделанные\n" "\tотноÑительно Ñамого верхнего или указанного патча.\n" "\n" "-R\tСоздать обратный diff.\n" "\n" "-P патч\n" "\tСоздать diff Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ патча. (По умолчанию Ð´Ð»Ñ Ð²ÐµÑ€Ñ…Ð½ÐµÐ³Ð¾.)\n" "\n" "--combine патч\n" "\tСоздать объединённый diff Ð´Ð»Ñ Ð²Ñех патчей между Ñтим патчем и\n" "\tпатчем, указанным в опции -P. Ð˜Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° «-» Ñквивалентно первому\n" "\tприменённому патчу.\n" "\n" "--snapshot\n" "\tdiff отноÑительно Ñнимка (Ñм. «quilt snapshot -h»).\n" "\n" "--diff=утилита\n" "\tИÑпользовать указанную утилиту Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ diff. Утилита вызываетÑÑ\n" "\tÑ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ оригинального файла и нового файла в качеÑтве аргументов.\n" "\n" "--color[=always|auto|never]\n" "\tИÑпользовать подÑветку ÑинтакÑиÑа (Ð¾Ð¿Ñ†Ð¸Ñ auto активирует подÑветку только\n" "\tпри выводе в терминал).\n" "\n" "--sort\tСортировать файлы по имени, не ÑохранÑÑ Ð¸Ñ… иÑходного порÑдка.\n" #: quilt/diff.in:221 msgid "" "Options \\`--combine', \\`--snapshot', and \\`-z' cannot be combined.\\n" msgstr "" "Опции «--combine», «--snapshot» и «-z» не могут иÑпользоватьÑÑ ÑовмеÑтно.\\n" #: quilt/diff.in:235 msgid "" "Cannot diff patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "" "Ðевозможно Ñравнить патчи Ñ -p%s, пожалуйÑта, иÑпользуйте -p0, -p1 либо -pab" "\\n" #: quilt/diff.in:244 msgid "No snapshot to diff against\\n" msgstr "Ðет Ñнимка Ð´Ð»Ñ Ð²Ñ‹Ð²Ð¾Ð´Ð° различий\\n" #: quilt/diff.in:278 quilt/files.in:107 quilt/mail.in:429 msgid "Patch %s not applied before patch %s\\n" msgstr "Патч %s не был применён перед патчем %s\\n" #: quilt/diff.in:346 msgid "File %s is not being modified\\n" msgstr "Файл %s не изменÑетÑÑ\\n" #: quilt/diff.in:365 msgid "Diff failed, aborting\\n" msgstr "Ðе удалоÑÑŒ выполнить diff, завершение\\n" #: quilt/diff.in:372 msgid "Warning: more recent patches modify files in patch %s\\n" msgstr "Предупреждение: более новые патчи изменÑÑŽÑ‚ файлы в патче %s\\n" #: quilt/edit.in:13 msgid "Usage: quilt edit file ...\\n" msgstr "СинтакÑиÑ: quilt edit файл ...\\n" #: quilt/edit.in:16 msgid "" "\n" "Edit the specified file(s) in \\$EDITOR (%s) after adding it (them) to\n" "the topmost patch.\n" msgstr "" "\n" "Редактировать указанные файлы в редакторе \\$EDITOR (%s) поÑле\n" "Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ñ… к верхнему патчу.\n" #: quilt/files.in:11 msgid "Usage: quilt files [-v] [-a] [-l] [--combine patch] [patch]\\n" msgstr "СинтакÑиÑ: quilt files [-v] [-a] [-l] [--combine патч] [патч]\\n" #: quilt/files.in:14 msgid "" "\n" "Print the list of files that the topmost or specified patch changes.\n" "\n" "-a\tList all files in all applied patches.\n" "\n" "-l\tAdd patch name to output.\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--combine patch\n" "\tCreate a listing for all patches between this patch and\n" "\tthe topmost or specified patch. A patch name of \\`-' is\n" "\tequivalent to specifying the first applied patch.\n" "\n" msgstr "" "\n" "ВывеÑти ÑпиÑок файлов, которые указанный или верхний патч изменÑет.\n" "\n" "-a\tВывеÑти вÑе файлы во вÑех применённых патчах.\n" "\n" "-l\tДобавить Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð° к выводу.\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" "\n" "--combine патч\n" "\tСоздать ÑпиÑок вÑех патчей между Ñтим патчем и верхним\n" "\tприменённым или указанным патчем. Ð˜Ð¼Ñ Â«-» Ñквивалентно\n" "\tуказанию первого применённого патча.\n" "\n" #: quilt/fold.in:11 msgid "Usage: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" msgstr "СинтакÑиÑ: quilt fold [-R] [-q] [-f] [-p strip-level]\\n" #: quilt/fold.in:14 msgid "" "\n" "Integrate the patch read from standard input into the topmost patch:\n" "After making sure that all files modified are part of the topmost\n" "patch, the patch is applied with the specified strip level (which\n" "defaults to 1).\n" "\n" "-R\tApply patch in reverse.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects. Unless in quiet mode,\n" "\tapply the patch interactively: the patch utility may ask questions.\n" "\n" "-p strip-level\n" "\tThe number of pathname components to strip from file names\n" "\twhen applying patchfile.\n" msgstr "" "\n" "Интегрировать патч, Ñчитанный Ñо Ñтандартного ввода, в верхний:\n" "ПоÑле проверки того, что вÑе изменённые файлы входÑÑ‚ в Ñамый верхний\n" "патч, Ñтот патч применÑетÑÑ Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ уровнем очиÑтки (по умолчанию 1).\n" "\n" "-R\tПрименить патч в обратную Ñторону.\n" "\n" "-q\tТихий режим.\n" "\n" "-f\tПринудительно применить, даже еÑли в патче еÑть отказы. ЕÑли не указан " "тихий режим,\n" "\tпатч применÑетÑÑ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾: утилита может задавать вопроÑÑ‹.\n" "\n" "-p strip-level\n" "\tЧиÑло компонент пути, которые необходимо удалить из имён файлов\n" "\tпри наложении патча.\n" #: quilt/fold.in:128 msgid "File %s may be corrupted\\n" msgstr "Файл %s может быть повреждён\\n" #: quilt/fork.in:11 msgid "Usage: quilt fork [new_name]\\n" msgstr "СинтакÑиÑ: quilt fork [новое_имÑ]\\n" #: quilt/fork.in:14 msgid "" "\n" "Fork the topmost patch. Forking a patch means creating a verbatim copy\n" "of it under a new name, and use that new name instead of the original\n" "one in the current series. This is useful when a patch has to be\n" "modified, but the original version of it should be preserved, e.g.\n" "because it is used in another series, or for the history. A typical\n" "sequence of commands would be: fork, edit, refresh.\n" "\n" "If new_name is missing, the name of the forked patch will be the current\n" "patch name, followed by \\`-2'. If the patch name already ends in a\n" "dash-and-number, the number is further incremented (e.g., patch.diff,\n" "patch-2.diff, patch-3.diff).\n" msgstr "" "\n" "Создать ответвление верхнего патча. СоздаётÑÑ Ñ‚Ð¾Ñ‡Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ð°Ñ‚Ñ‡Ð° Ñ Ð½Ð¾Ð²Ñ‹Ð¼\n" "именем, и Ñто Ð¸Ð¼Ñ Ð¸ÑпользуетÑÑ Ð²Ð¼ÐµÑто оригинального патча в файле series.\n" "Это полезно, еÑли необходимо изменить патч, но иÑходную верÑию нужно\n" "Ñохранить, например, потому что она иÑпользуетÑÑ Ð² другой Ñерии патчей\n" "или Ð´Ð»Ñ Ð¸Ñтории. Типичной поÑледовательноÑтью команд в Ñтом Ñлучае может\n" "быть: fork, edit, refresh.\n" "\n" "ЕÑли новое_Ð¸Ð¼Ñ Ð½Ðµ указано, иÑпользуетÑÑ Ð¸Ð¼Ñ Ð¸Ñходного патча, к которому\n" "добавлÑетÑÑ Â«-2». ЕÑли патч уже заканчиваетÑÑ Ð´ÐµÑ„Ð¸Ñом и чиÑлом, то Ñто\n" "чиÑло увеличиваетÑÑ (Ñ‚.е. patch.diff, patch-2.diff, patch-3.diff).\n" #: quilt/fork.in:81 msgid "Patch %s exists already, please choose a new name\\n" msgstr "Патч %s уже ÑущеÑтвует, выберите новое имÑ\\n" #: quilt/fork.in:93 msgid "Fork of patch %s to patch %s failed\\n" msgstr "Ðе удалоÑÑŒ Ñоздать ответвление патча %s в патч %s\\n" #: quilt/fork.in:99 quilt/refresh.in:341 msgid "Fork of patch %s created as %s\\n" msgstr "Ответвление патча %s Ñоздано как %s\\n" #: quilt/graph.in:11 msgid "" "Usage: quilt graph [--all] [--reduce] [--lines[=num]] [--edge-labels=files] " "[-T ps] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt graph [--all] [--reduce] [--lines[=чиÑло]] [--edge-" "labels=файлы] [-T ps] [патч]\\n" #: quilt/graph.in:15 msgid "" "\n" "Generate a dot(1) directed graph showing the dependencies between\n" "applied patches. A patch depends on another patch if both touch the same\n" "file or, with the --lines option, if their modifications overlap. Unless\n" "otherwise specified, the graph includes all patches that the topmost\n" "patch depends on.\n" "When a patch name is specified, instead of the topmost patch, create a\n" "graph for the specified patch. The graph will include all other patches\n" "that this patch depends on, as well as all patches that depend on this\n" "patch.\n" "\n" "--all\tGenerate a graph including all applied patches and their\n" "\tdependencies. (Unapplied patches are not included.)\n" "\n" "--reduce\n" "\tEliminate transitive edges from the graph.\n" "\n" "--lines[=num]\n" "\tCompute dependencies by looking at the lines the patches modify.\n" "\tUnless a different num is specified, two lines of context are\n" "\tincluded.\n" "\n" "--edge-labels=files\n" "\tLabel graph edges with the file names that the adjacent patches\n" "\tmodify.\n" "\n" "-T ps\tDirectly produce a PostScript output file.\n" msgstr "" "\n" "Создать ориентированный граф dot(1), показывающий завиÑимоÑти между\n" "применёнными патчами. Патч завиÑит от другого патча, еÑли оба изменÑÑŽÑ‚\n" "один и тот же файл или, Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ --lines, еÑли их Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÑекаютÑÑ.\n" "ЕÑли не указано иное, граф включает вÑе патчи, от которых завиÑит Ñамый\n" "верхний патч.\n" "Когда указано Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, ÑоздаётÑÑ Ð³Ñ€Ð°Ñ„ завиÑимоÑтей Ð´Ð»Ñ Ð½ÐµÐ³Ð¾. Граф\n" "включает вÑе патчи, от которых завиÑит Ñтот патч, а также вÑе патчи,\n" "которые завиÑÑÑ‚ от него.\n" "\n" "--all\tСоздать граф, включающий вÑе применённые патчи и их\n" "\tзавиÑимоÑти. (Ðеприменённые патчи не включаютÑÑ.)\n" "\n" "--reduce\n" "\tУдалить транзитивные рёбра из графа.\n" "\n" "--lines[=чиÑло]\n" "\tВычиÑлÑть завиÑимоÑти по Ñтрокам, которые патчи изменÑÑŽÑ‚.\n" "\tЕÑли не указано другое чиÑло, включает две Ñтроки контекÑта.\n" "\n" "--edge-labels=files\n" "\tПомечать рёбра именами файлов, которые Ñмежные патчи изменÑÑŽÑ‚.\n" "\n" "-T ps\tСразу Ñоздать файл PostScript.\n" #: quilt/grep.in:11 msgid "Usage: quilt grep [-h|options] {pattern}\\n" msgstr "СинтакÑиÑ: quilt grep [-h|параметры] {шаблон}\\n" #: quilt/grep.in:14 msgid "" "\n" "Grep through the source files, recursively, skipping patches and quilt\n" "meta-information. If no filename argument is given, the whole source\n" "tree is searched. Please see the grep(1) manual page for options.\n" "\n" "-h\tPrint this help. The grep -h option can be passed after a\n" "\tdouble-dash (--). Search expressions that start with a dash\n" "\tcan be passed after a second double-dash (-- --).\n" msgstr "" "\n" "ПроизвеÑти поиÑк Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ grep(1) по файлам иÑходного кода рекурÑивно,\n" "пропуÑÐºÐ°Ñ Ð¿Ð°Ñ‚Ñ‡Ð¸ и метаинформацию quilt. ЕÑли Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° не указано,\n" "поиÑк выполнÑетÑÑ Ð¿Ð¾ вÑему дереву. Опции Ñмотрите на Ñтранице Ñправки\n" "grep(1).\n" "\n" "-h\tВывеÑти Ñту Ñправку. ÐžÐ¿Ñ†Ð¸Ñ grep -h может быть передана поÑле\n" "\tдвойного дефиÑа (--). Ð’Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка, начинающиеÑÑ Ñ Ð´ÐµÑ„Ð¸Ñа,\n" "\tмогут быть переданы поÑле второго двойного дефиÑа (-- --).\n" #: quilt/header.in:13 msgid "" "Usage: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt header [-a|-r|-e] [--backup] [--strip-diffstat] [--strip-" "trailing-whitespace] [патч]\\n" #: quilt/header.in:17 msgid "" "\n" "Print or change the header of the topmost or specified patch.\n" "\n" "-a, -r, -e\n" "\tAppend to (-a) or replace (-r) the exiting patch header, or\n" "\tedit (-e) the header in \\$EDITOR (%s). If none of these options is\n" "\tgiven, print the patch header.\n" "\n" "--strip-diffstat\n" "\tStrip diffstat output from the header.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines of the header.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" msgstr "" "\n" "ВывеÑти или изменить заголовок верхнего или указанного патча.\n" "\n" "-a, -r, -e\n" "\tДобавить к (-a) или заменить (-r) текущий заголовок патча, или\n" "\tредактировать (-e) заголовок в редакторе \\$EDITOR (%s). ЕÑли\n" "\tне дано ни одной из Ñтих опций, вывеÑти заголовок патча.\n" "\n" "--strip-diffstat\n" "\tУдалить вывод diffstat из заголовка.\n" "\n" "--strip-trailing-whitespace\n" "\tУдалить пробелы из концов Ñтрок заголовка.\n" "\n" "--backup\n" "\tСоздать резервную копию Ñтарой верÑии патча в файле имÑ_патча~.\n" #: quilt/header.in:167 msgid "Replaced header of patch %s\\n" msgstr "Заменён заголовок патча %s\\n" #: quilt/header.in:170 msgid "Appended text to header of patch %s\\n" msgstr "Добавлен текÑÑ‚ к заголовку патча %s\\n" #: quilt/import.in:14 msgid "" "Usage: quilt import [-p num] [-R] [-P patch] [-f] [-d {o|a|n}] patchfile ..." "\\n" msgstr "" "СинтакÑиÑ: quilt import [-p чиÑло] [-R] [-P патч] [-f] [-d {o|a|n}] файл-" "патча …\\n" #: quilt/import.in:17 msgid "" "\n" "Import external patches. The patches will be inserted following the\n" "current top patch, and must be pushed after import to apply them.\n" "\n" "-p num\n" "\tNumber of directory levels to strip when applying (default=1)\n" "\n" "-R\n" "\tApply patch in reverse.\n" "\n" "-P patch\n" "\tPatch filename to use inside quilt. This option can only be\n" "\tused when importing a single patch.\n" "\n" "-f\tOverwrite/update existing patches.\n" "\n" "-d {o|a|n}\n" "\tWhen overwriting in existing patch, keep the old (o), all (a), or\n" "\tnew (n) patch header. If both patches include headers, this option\n" "\tmust be specified. This option is only effective when -f is used.\n" msgstr "" "\n" "Импортировать внешние патчи. Патчи будут вÑтавлены поÑле текущего верхнего\n" "патча и должны быть наложены поÑле импорта, чтобы их применить.\n" "\n" "-p чиÑло\n" "\tЧиÑло уровней директорий, которые нужно убрать перед наложением\n" "\t(по умолчанию 1)\n" "\n" "-R\n" "\tПрименить патч в обратную Ñторону.\n" "\n" "-P патч\n" "\tÐ˜Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, иÑпользуемое quilt. Эту опцию можно иÑпользовать\n" "\tтолько при импорте одиночного патча.\n" "\n" "-f\tПерезапиÑать или обновить ÑущеÑтвующие патчи.\n" "\n" "-d {o|a|n}\n" "\tПри перезапиÑи ÑущеÑтвующих патчей, ÑохранÑть Ñтарые (o), вÑе (a), или\n" "\tновые (n) заголовки патчей. ЕÑли в обоих патчах еÑть заголовки, Ñта опциÑ\n" "\tдолжна быть указана. Эта Ð¾Ð¿Ñ†Ð¸Ñ Ð¸Ð¼ÐµÐµÑ‚ Ñффект только, когда иÑпользуетÑÑ -" "f.\n" #: quilt/import.in:65 quilt/mail.in:460 msgid "Patch %s does not exist\\n" msgstr "Патч %s не ÑущеÑтвует\\n" #: quilt/import.in:88 msgid "Patch headers differ:\\n" msgstr "Заголовки патчей различаютÑÑ:\\n" #: quilt/import.in:91 msgid "Please use -d {o|a|n} to specify which patch header(s) to keep.\\n" msgstr "" "ПожалуйÑта, иÑпользуйте -d {o|a|n}, чтобы определить, какой из заголовков " "оÑтавить.\\n" #: quilt/import.in:156 msgid "Option \\`-P' can only be used when importing a single patch\\n" msgstr "Опцию «-P» можно иÑпользовать только при импорте одиночного патча\\n" #: quilt/import.in:195 msgid "Patch %s is applied\\n" msgstr "Патч %s применён\\n" #: quilt/import.in:204 msgid "Patch %s already exists in series.\\n" msgstr "Патч %s уже ÑущеÑтвует в series.\\n" #: quilt/import.in:210 msgid "Patch %s exists. Replace with -f.\\n" msgstr "Патч %s ÑущеÑтвует. Принудительно заменить можно опцией -f.\\n" #: quilt/import.in:221 msgid "Replacing patch %s with new version\\n" msgstr "Замена патча %s новой верÑией\\n" #: quilt/import.in:225 msgid "Importing patch %s\\n" msgstr "Импорт патча %s\\n" #: quilt/import.in:227 msgid "Importing patch %s (stored as %s)\\n" msgstr "Импорт патча %s (Ñохранён как %s)\\n" #: quilt/import.in:240 msgid "Failed to import patch %s\\n" msgstr "Ðе удалоÑÑŒ импортировать патч %s\\n" #: quilt/import.in:249 quilt/refresh.in:328 msgid "Failed to insert patch %s into file series\\n" msgstr "Ðе удалоÑÑŒ вÑтавить патч %s в файл series\\n" #: quilt/mail.in:13 msgid "" "Usage: quilt mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] " "[--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--" "subject ...] [--reply-to message] [--charset ...] [--signature file] " "[first_patch [last_patch]]\\n" msgstr "" "СинтакÑиÑ: quilt mail {--mbox файл|--send} [-m текÑÑ‚] [-M файл] [--prefix " "префикÑ] [--sender …] [--from …] [--to …] [--cc …] [--bcc …] [--subject …] " "[--reply-to message] [--charset …] [--signature файл] [первый_патч " "[поÑледний_патч]]\\n" #: quilt/mail.in:16 msgid "" "\n" "Create mail messages from a specified range of patches, or all patches in\n" "the series file, and either store them in a mailbox file, or send them\n" "immediately. The editor is opened with a template for the introduction.\n" "Please see %s for details.\n" "When specifying a range of patches, a first patch name of \\`-' denotes the\n" "first, and a last patch name of \\`-' denotes the last patch in the series.\n" "\n" "-m text\n" "\tText to use as the text in the introduction. When this option is\n" "\tused, the editor will not be invoked, and the patches will be\n" "\tprocessed immediately.\n" "\n" "-M file\n" "\tLike the -m option, but read the introduction from file.\n" "\n" "--prefix prefix\n" "\tUse an alternate prefix in the bracketed part of the subjects\n" "\tgenerated. Defaults to \\`patch'.\n" "\n" "--mbox file\n" "\tStore all messages in the specified file in mbox format. The mbox\n" "\tcan later be sent using formail, for example.\n" "\n" "--send\n" "\tSend the messages directly.\n" "\n" "--sender\n" "\tThe envelope sender address to use. The address must be of the form\n" "\t\\`user@domain.name'. No display name is allowed.\n" "\n" "--from, --subject\n" "\tThe values for the From and Subject headers to use. If no --from\n" "\toption is given, the value of the --sender option is used.\n" "\n" "--to, --cc, --bcc\n" "\tAppend a recipient to the To, Cc, or Bcc header.\n" "\n" "--charset\n" "\tSpecify a particular message encoding on systems which don't use\n" "\tUTF-8 or ISO-8859-15. This character encoding must match the one\n" "\tused in the patches.\n" "\n" "--signature file\n" "\tAppend the specified signature to messages (defaults to ~/.signature\n" "\tif found; use \\`-' for no signature).\n" "\n" "--reply-to message\n" "\tAdd the appropriate headers to reply to the specified message.\n" msgstr "" "\n" "Создать почтовые ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð· указанного диапазона патчей, или из вÑех\n" "патчей в файле series, и либо Ñохранить их в файле mailbox, либо поÑлать\n" "немедленно. Открывает редактор Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ Ð´Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð¸Ñ.\n" "Смотрите подробноÑти в %s.\n" "При указании диапазона патчей, Ð¸Ð¼Ñ Â«-» Ð´Ð»Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ патча указывает первый\n" "патч в series, а Ð¸Ð¼Ñ Â«-» Ð´Ð»Ñ Ð¿Ð¾Ñледнего — поÑледний патч в series.\n" "\n" "-m текÑÑ‚\n" "\tИÑпользовать указанный текÑÑ‚ во введении. При иÑпользовании Ñтой\n" "\tопции редактор не открываетÑÑ, и патчи будут обработаны\n" "\tнемедленно.\n" "\n" "-M файл\n" "\tКак Ð¾Ð¿Ñ†Ð¸Ñ -m, но введение читаетÑÑ Ð¸Ð· указанного файла.\n" "\n" "--prefix префикÑ\n" "\tИÑпользовать альтернативный Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð² квадратных Ñкобках в теме\n" "\tпиÑьма. По умолчанию иÑпользуетÑÑ Â«patch».\n" "\n" "--mbox файл\n" "\tСохранить вÑе ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² указанном файле формата mbox. Файл mbox\n" "\tзатем можно отправить, иÑпользуÑ, например, formail.\n" "\n" "--send\n" "\tПоÑлать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ð°Ð¿Ñ€Ñмую.\n" "\n" "--sender\n" "\tИÑпользуемый Ð°Ð´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ. ÐÐ´Ñ€ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть в виде\n" "\t«user@domain.name». Произвольные имена не принимаютÑÑ.\n" "\n" "--from, --subject\n" "\tÐ—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² заголовках From и Subject. ЕÑли Ð¾Ð¿Ñ†Ð¸Ñ --from\n" "\tне указана, иÑпользуетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ опции --sender.\n" "\n" "--to, --cc, --bcc\n" "\tДобавить Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ Ðº заголовку To, Cc, или Bcc.\n" "\n" "--charset\n" "\tУказать конкретную кодировку ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ð° ÑиÑтемах, которые\n" "\tиÑпользуют что-либо отличное от UTF-8 и ISO-8859-15. Эта кодировка\n" "\tдолжна Ñовпадать Ñ Ð¸Ñпользуемой в патчах.\n" "\n" "--signature файл\n" "\tДобавить указанную подпиÑÑŒ к ÑообщениÑм (по умолчанию ~/.signature,\n" "\tеÑли ÑущеÑтвует; иÑпользуйте «-», еÑли подпиÑÑŒ не нужна).\n" "\n" "--reply-to Ñообщение\n" "\tДобавить подходÑщие заголовки Ð´Ð»Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð° на указанное Ñообщение.\n" #: quilt/mail.in:198 quilt/mail.in:206 msgid "Introduction message already specified" msgstr "Вводное Ñообщение уже указано" #: quilt/mail.in:312 msgid "Could not determine the envelope sender address. Please use --sender." msgstr "Ðе удалоÑÑŒ определить Ð°Ð´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ. ИÑпользуйте опцию --sender." #: quilt/mail.in:463 msgid "Unable to extract a subject header from %s\\n" msgstr "Ðе удалоÑÑŒ извлечь тему пиÑьма из %s\\n" #: quilt/mail.in:489 msgid "Patches %s have duplicate subject headers.\\n" msgstr "У патчей %s дублируютÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ¸ темы.\\n" #: quilt/mail.in:498 msgid "File %s does not exist\\n" msgstr "Файл %s не ÑущеÑтвует\\n" #: quilt/mail.in:558 msgid "Introduction has no subject header (saved as %s)\\n" msgstr "Во введении нет заголовка Subject (Ñохранено как %s)\\n" #: quilt/mail.in:561 msgid "Introduction has no subject header\\n" msgstr "Во введении нет заголовка Subject\\n" #: quilt/mail.in:674 msgid "Introduction saved as %s\\n" msgstr "Введение Ñохранено как %s\\n" #: quilt/new.in:14 msgid "Usage: quilt new [-p n|-p ab] {patchname}\\n" msgstr "СинтакÑиÑ: quilt new [-p n|-p ab] {имÑ-патча}\\n" #: quilt/new.in:17 msgid "" "\n" "Create a new patch with the specified file name, and insert it after the\n" "topmost patch. The name can be prefixed with a sub-directory name, allowing\n" "for grouping related patches together.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 are supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "Quilt can be used in sub-directories of a source tree. It determines the\n" "root of a source tree by searching for a %s directory above the\n" "current working directory. Create a %s directory in the intended root\n" "directory if quilt chooses a top-level directory that is too high up\n" "in the directory tree.\n" msgstr "" "\n" "Создать новый патч Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¼ именем и вÑтавить его поÑле текущего патча.\n" "Ð˜Ð¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ предварÑть именем директории, чтобы группировать ÑвÑзанные патчи\n" "друг Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¼.\n" "\n" "-p n\tСоздать патч в Ñтиле -p n (поддерживаютÑÑ -p0 или -p1).\n" "\n" "-p ab\tСоздать патч в Ñтиле -p1, но иÑпользовать a/file и b/file в качеÑтве\n" "\tимён оригинального и нового файлов вмеÑто имён\n" "\tdir.orig/file и dir/file.\n" "\n" "Quilt можно иÑпользовать в поддиректориÑÑ… дерева иÑходных файлов. Программа " "определÑет\n" "корень дерева путём поиÑка директории %s выше текущей директории.\n" "Создайте директорию %s в нужной корневой директории,\n" "еÑли quilt выбирает в её качеÑтве директорию Ñлишком выÑоко в дереве\n" "иÑходных кодов.\n" #: quilt/new.in:68 msgid "" "Cannot create patches with -p%s, please specify -p0, p1, or -pab instead\\n" msgstr "Ðе удалоÑÑŒ Ñоздать патчи Ñ -p%s, иÑпользуйте -p0, -p1 или -pab\\n" #: quilt/new.in:89 msgid "QUILT_PATCHES(%s) must differ from QUILT_PC(%s)\\n" msgstr "QUILT_PATCHES(%s) должна отличатьÑÑ Ð¾Ñ‚ QUILT_PC(%s)\\n" #: quilt/new.in:97 quilt/refresh.in:182 msgid "Patch %s exists already\\n" msgstr "Патч %s уже ÑущеÑтвует\\n" #: quilt/new.in:108 msgid "Patch %s is now on top\\n" msgstr "Патч %s теперь наверху\\n" #: quilt/new.in:110 quilt/refresh.in:337 msgid "Failed to create patch %s\\n" msgstr "Ðе удалоÑÑŒ Ñоздать патч %s\\n" #: quilt/next.in:11 msgid "Usage: quilt next [patch]\\n" msgstr "СинтакÑиÑ: quilt next [патч]\\n" #: quilt/next.in:14 msgid "" "\n" "Print the name of the next patch after the specified or topmost patch in\n" "the series file.\n" msgstr "" "\n" "ВывеÑти Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, Ñледующего за указанным или верхним патчем в\n" "файле series.\n" #: quilt/patches.in:13 msgid "" "Usage: quilt patches [-v] [--color[=always|auto|never]] {file} [files...]\\n" msgstr "" "СинтакÑиÑ: quilt patches [-v] [--color[=always|auto|never]] {файл} " "[файлы…]\\n" #: quilt/patches.in:16 msgid "" "\n" "Print the list of patches that modify any of the specified files. (Uses a\n" "heuristic to determine which files are modified by unapplied patches.\n" "Note that this heuristic is much slower than scanning applied patches.)\n" "\n" "-v\tVerbose, more user friendly output.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" msgstr "" "\n" "ВывеÑти ÑпиÑок вÑех патчей, изменÑющих указанный файл. (ИÑпользует\n" "ÑвриÑтику, чтобы определить, какие файлы изменÑÑŽÑ‚ неналоженные патчи.\n" "Учтите, что ÑвриÑтика медленнее, чем Ñканирование наложенных патчей.)\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" "\n" "--color[=always|auto|never]\n" "\tИÑпользовать подÑветку ÑинтакÑиÑа (Ð¾Ð¿Ñ†Ð¸Ñ auto активирует подÑветку только " "при выводе в терминал).\n" #: quilt/pop.in:11 msgid "Usage: quilt pop [-afRqv] [--refresh] [num|patch]\\n" msgstr "СинтакÑиÑ: quilt pop [-afRqv] [--refresh] [чиÑло|патч]\\n" #: quilt/pop.in:14 msgid "" "\n" "Remove patch(es) from the stack of applied patches. Without options,\n" "the topmost patch is removed. When a number is specified, remove the\n" "specified number of patches. When a patch name is specified, remove\n" "patches until the specified patch end up on top of the stack. Patch\n" "names may include the patches/ prefix, which means that filename\n" "completion can be used.\n" "\n" "-a\tRemove all applied patches.\n" "\n" "-f\tForce remove. The state before the patch(es) were applied will\n" "\tbe restored from backup files.\n" "\n" "-R\tAlways verify if the patch removes cleanly; don't rely on\n" "\ttimestamp checks.\n" "\n" "-q\tQuiet operation.\n" "\n" "-v\tVerbose operation.\n" "\n" "--refresh\n" "\tAutomatically refresh every patch before it gets unapplied.\n" msgstr "" "\n" "Убрать патчи из Ñтека наложенных патчей. ЕÑли не указаны опции,\n" "отменÑетÑÑ Ð²ÐµÑ€Ñ…Ð½Ð¸Ð¹ патч. ЕÑли указано чиÑло, отменÑетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ðµ\n" "чиÑло патчей. ЕÑли указано Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, патчи убираютÑÑ Ð´Ð¾ тех пор,\n" "пока указанный патч не окажетÑÑ Ð½Ð° вершине Ñтека. Имена патчей могут\n" "Ñодержать Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ patches/ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ.\n" "\n" "-a\tОтменить вÑе наложенные патчи.\n" "\n" "-f\tПринудительно убрать патч. СоÑтоÑние перед тем, как патчи были\n" "\tналожены, может быть воÑÑтановлено из резервных копий.\n" "\n" "-R\tÐ’Ñегда проверÑть, чиÑто ли удалÑÑŽÑ‚ÑÑ Ð¿Ð°Ñ‚Ñ‡Ð¸; не надеÑтьÑÑ\n" "\tна проверки отметок времени.\n" "\n" "-q\tТихий режим.\n" "\n" "-v\tПодробный вывод.\n" "\n" "--refresh\n" "\tÐвтоматичеÑки обновить каждый патч перед его откатом.\n" #: quilt/pop.in:92 quilt/scripts/patchfns.in:977 msgid "Failed to copy files to temporary directory\\n" msgstr "Ðе удалоÑÑŒ Ñкопировать файлы во временную директорию\\n" #: quilt/pop.in:117 msgid "Patch %s does not remove cleanly (refresh it or enforce with -f)\\n" msgstr "" "Ðе удалоÑÑŒ чиÑто удалить патч %s (обновите его или удалите принудительно Ñ -" "f)\\n" #: quilt/pop.in:119 msgid "Hint: \\`quilt diff -z' will show the pending changes.\\n" msgstr "ПодÑказка: «quilt diff -z» покажет оÑтавшиеÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ.\\n" #: quilt/pop.in:143 msgid "Patch %s appears to be empty, removing\\n" msgstr "Похоже, патч %s пуÑÑ‚, удаление\\n" #: quilt/pop.in:148 msgid "Removing patch %s\\n" msgstr "Удаление патча %s\\n" #: quilt/pop.in:214 quilt/push.in:376 msgid "Options %s and %s are mutually exclusive\\n" msgstr "Опции %s и %s — взаимоиÑключающие\\n" #: quilt/pop.in:236 msgid "Patch %s needs to be refreshed first.\\n" msgstr "Сначала нужно обновить патч %s.\\n" #: quilt/pop.in:246 msgid "No patch removed\\n" msgstr "Ðе удалено ни одного патча\\n" #: quilt/pop.in:270 quilt/scripts/patchfns.in:511 msgid "No patches applied\\n" msgstr "Ðет применённых патчей\\n" #: quilt/pop.in:277 quilt/push.in:440 msgid "Now at patch %s\\n" msgstr "Текущий патч: %s\\n" #: quilt/previous.in:11 msgid "Usage: quilt previous [patch]\\n" msgstr "СинтакÑиÑ: quilt previous [патч]\\n" #: quilt/previous.in:14 msgid "" "\n" "Print the name of the previous patch before the specified or topmost\n" "patch in the series file.\n" msgstr "" "\n" "ВывеÑти Ð¸Ð¼Ñ Ð¿Ð°Ñ‚Ñ‡Ð°, предшеÑтвующего указанному или верхнему\n" "в файле series.\n" #: quilt/push.in:11 msgid "" "Usage: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [num|patch]\\n" msgstr "" "СинтакÑиÑ: quilt push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-" "rejects] [--color[=always|auto|never]] [--refresh] [чиÑло|патч]\\n" #: quilt/push.in:14 msgid "" "\n" "Apply patch(es) from the series file. Without options, the next patch\n" "in the series file is applied. When a number is specified, apply the\n" "specified number of patches. When a patch name is specified, apply\n" "all patches up to and including the specified patch. Patch names may\n" "include the patches/ prefix, which means that filename completion can\n" "be used.\n" "\n" "-a\tApply all patches in the series file.\n" "\n" "-q\tQuiet operation.\n" "\n" "-f\tForce apply, even if the patch has rejects.\n" "\n" "-v\tVerbose operation.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (default: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tMerge the patch file into the original files (see patch(1)).\n" "\n" "--leave-rejects\n" "\tLeave around the reject files patch produced, even if the patch\n" "\tis not actually applied.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "--refresh\n" "\tAutomatically refresh every patch after it was successfully applied.\n" msgstr "" "\n" "Применить патчи из файла series. Без опций накладываетÑÑ Ñледующий\n" "патч из файла series. ЕÑли указано чиÑло, накладываетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ðµ\n" "чиÑло патчей. ЕÑли указано Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°, накладываютÑÑ Ð²Ñе патчи\n" "до и Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¹ патч. Имена патчей могут Ñодержать префикÑ\n" "patches/, чтобы можно было иÑпользовать автодополнение имён.\n" "\n" "-a\tПрименить вÑе патчи из файла series.\n" "\n" "-q\tТихий режим.\n" "\n" "-f\tПринудительно применить, даже еÑли наложение вызывает ошибки.\n" "\n" "-v\tПодробный вывод.\n" "\n" "--fuzz=N\n" "\tУÑтановить макÑимальный коÑффициент fuzz (по умолчанию: 2).\n" "\n" "-m, --merge[=merge|diff3]\n" "\tСовмеÑтить файл патча Ñ Ð¾Ñ€Ð¸Ð³Ð¸Ð½Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸ файлами (Ñм. patch(1)).\n" "\n" "--leave-rejects\n" "\tОÑтавлÑть файлы reject, Ñозданные программой patch, даже еÑли патч\n" "\tне был применён.\n" "\n" "--color[=always|auto|never]\n" "\tИÑпользовать подÑветку ÑинтакÑиÑа (Ð¾Ð¿Ñ†Ð¸Ñ auto активирует подÑветку только " "при выводе в терминал).\n" "\n" "--refresh\n" "\tÐвтоматичеÑки обновлÑть каждый патч поÑле того, как он был применен.\n" #: quilt/push.in:57 msgid "Interrupted by user; patch %s was not applied.\\n" msgstr "Прервано пользователем; патч %s не был наложен.\\n" #: quilt/push.in:176 msgid "Applying patch %s\\n" msgstr "Ðаложение патча %s\\n" #: quilt/push.in:210 msgid "Patch %s does not exist; applied empty patch\\n" msgstr "Патч %s не ÑущеÑтвует; наложен пуÑтой патч\\n" #: quilt/push.in:214 msgid "Patch %s appears to be empty; applied\\n" msgstr "Похоже, патч %s пуÑÑ‚; наложен\\n" #: quilt/push.in:218 msgid "Applied patch %s (forced; needs refresh)\\n" msgstr "Ðаложен патч %s (принудительно; Ñледует Ñделать refresh)\\n" #: quilt/push.in:228 msgid "Patch %s can be reverse-applied\\n" msgstr "Патч %s может быть наложен в обратную Ñторону\\n" #: quilt/push.in:231 msgid "Patch %s does not apply (enforce with -f)\\n" msgstr "Патч %s не удаётÑÑ Ð½Ð°Ð»Ð¾Ð¶Ð¸Ñ‚ÑŒ (принудить Ñ -f)\\n" #: quilt/push.in:286 msgid "Patch %s is already applied; check your series file\\n" msgstr "Патч %s уже наложен; проверьте Ñвой файл series\\n" #: quilt/push.in:408 msgid "The topmost patch %s needs to be refreshed first.\\n" msgstr "Сначала необходимо обновить Ñамый верхний патч %s.\\n" #: quilt/push.in:416 msgid "No patch applied\\n" msgstr "Ðет наложенных патчей\\n" #: quilt/refresh.in:11 msgid "" "Usage: quilt refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] " "[--no-timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip-" "trailing-whitespace] [patch]\\n" msgstr "" "СинтакÑиÑ: quilt refresh [-p n|-p ab] [-u|-U чиÑло|-c|-C чиÑло] [-" "z[новое_имÑ]] [-f] [--no-timestamps] [--no-index] [--diffstat] [--sort] [--" "backup] [--strip-trailing-whitespace] [патч]\\n" #: quilt/refresh.in:15 msgid "" "\n" "Refreshes the specified patch, or the topmost patch by default.\n" "Documentation that comes before the actual patch in the patch file is\n" "retained.\n" "\n" "It is possible to refresh patches that are not on top. If any patches\n" "on top of the patch to refresh modify the same files, the script aborts\n" "by default. Patches can still be refreshed with -f. In that case this\n" "script will print a warning for each shadowed file, changes by more\n" "recent patches will be ignored, and only changes in files that have not\n" "been modified by any more recent patches will end up in the specified\n" "patch.\n" "\n" "-p n\tCreate a -p n style patch (-p0 or -p1 supported).\n" "\n" "-p ab\tCreate a -p1 style patch, but use a/file and b/file as the\n" "\toriginal and new filenames instead of the default\n" "\tdir.orig/file and dir/file names.\n" "\n" "-u, -U num, -c, -C num\n" "\tCreate a unified diff (-u, -U) with num lines of context. Create\n" "\ta context diff (-c, -C) with num lines of context. The number of\n" "\tcontext lines defaults to 3.\n" "\n" "-z[new_name]\n" "\tCreate a new patch containing the changes instead of refreshing the\n" "\ttopmost patch. If no new name is specified, \\`-2' is added to the\n" "\toriginal patch name, etc. (See the fork command.)\n" "\n" "--no-timestamps\n" "\tDo not include file timestamps in patch headers.\n" "\n" "--no-index\n" "\tDo not output Index: lines.\n" "\n" "--diffstat\n" "\tAdd a diffstat section to the patch header, or replace the\n" "\texisting diffstat section.\n" "\n" "-f\tEnforce refreshing of a patch that is not on top.\n" "\n" "--backup\n" "\tCreate a backup copy of the old version of a patch as patch~.\n" "\n" "--sort\tSort files by their name instead of preserving the original order.\n" "\n" "--strip-trailing-whitespace\n" "\tStrip trailing whitespace at the end of lines.\n" msgstr "" "\n" "ОбновлÑет указанный патч, или по умолчанию верхний патч. ДокументациÑ,\n" "ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑодержитÑÑ Ð² файле патча перед данными, ÑохранÑетÑÑ.\n" "\n" "ЕÑть возможноÑть обновлÑть патчи, которые раÑполагаютÑÑ Ð½Ðµ Ñверху.\n" "ЕÑли какой-нибудь патч поверх обновлÑемого патча изменÑет те же файлы,\n" "то по умолчанию программа прекращает выполнение. Такие патчи вÑÑ‘ же\n" "можно обновить Ñ Ð¾Ð¿Ñ†Ð¸ÐµÐ¹ -f. Ð’ таком Ñлучае Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ такого файла\n" "программа выведет предупреждение, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ новыми патчами будут\n" "игнорированы, и только Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файлах, которые не были изменены\n" "более новыми патчами, попадут в указанный патч.\n" "\n" "-p n\tСоздать патч в Ñтиле -p n (поддерживаютÑÑ -p0 и -p1).\n" "\n" "-p ab\tСоздать патч в Ñтиле -p1, но иÑпользовать a/file и b/file в качеÑтве\n" "\tимён оригинального и нового файлов вмеÑто\n" "\tdir.orig/file и dir/file.\n" "\n" "-u, -U чиÑло, -c, -C чиÑло\n" "\tСоздать универÑальный diff (-u, -U) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом Ñтрок\n" "\tконтекÑта. Создать контекÑтный diff (-c, -C) Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ð¼ чиÑлом\n" "\tÑтрок контекÑта. По умолчанию чиÑло Ñтрок контекÑта равно 3.\n" "\n" "-z[новое_имÑ]\n" "\tÐе обновлÑть верхний патч, а Ñоздать новый патч, Ñодержащий изменениÑ.\n" "\tЕÑли новое_Ð¸Ð¼Ñ Ð½Ðµ указано, к оригинальному имени патча добавлÑетÑÑ Â«-2»\n" "\tи Ñ‚.д. (См. команду fork.)\n" "\n" "--no-timestamps\n" "\tÐе включать отметки времени в заголовки патчей.\n" "\t\n" "--no-index\n" "\tÐе выводить Ñтроки Index:\n" "\n" "--diffstat\n" "\tДобавить Ñекцию diffstat в заголовок патча, или заменить\n" "\tÑущеÑтвующую Ñекцию diffstat.\n" "\n" "-f\tПринудительно обновить патч, находÑщийÑÑ Ð½Ðµ вверху Ñтека.\n" "\n" "--backup\n" "\tСоздать резервную копию Ñтарой верÑии патча Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ патч~.\n" "\n" "--sort\tСортировать файлы по имени, не ÑÐ¾Ð±Ð»ÑŽÐ´Ð°Ñ Ð¸Ñходный порÑдок.\n" "\n" "--strip-trailing-whitespace\n" "\tУдалÑть пробелы на концах Ñтрок.\n" #: quilt/refresh.in:168 msgid "Can only refresh the topmost patch with -z currently\\n" msgstr "Опцией -z в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ обновить только верхний патч\\n" #: quilt/refresh.in:199 msgid "" "Cannot refresh patches with -p%s, please specify -p0, -p1, or -pab instead\\n" msgstr "Ðе удалоÑÑŒ обновить патчи Ñ -p%s, иÑпользуйте -p0, -p1 или -pab\\n" #: quilt/refresh.in:237 msgid "" "More recent patches modify files in patch %s. Enforce refresh with -f.\\n" msgstr "" "Более новые патчи изменÑÑŽÑ‚ файлы в патче %s. Принудительное обновление можно " "Ñделать Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ опции -f.\\n" #: quilt/refresh.in:243 msgid "" "Cannot use --strip-trailing-whitespace on a patch that has shadowed files.\\n" msgstr "" "ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать --strip-trailing-whitespace на патче Ñ Ð·Ð°Ñ‚ÐµÐ½Ñ‘Ð½Ð½Ñ‹Ð¼Ð¸ " "файлами.\\n" #: quilt/refresh.in:249 quilt/refresh.in:349 msgid "Nothing in patch %s\\n" msgstr "Ðичего нет в патче %s\\n" #: quilt/refresh.in:321 msgid "Patch %s is unchanged\\n" msgstr "Патч %s не изменён\\n" #: quilt/refresh.in:347 msgid "Refreshed patch %s\\n" msgstr "Патч %s обновлён\\n" #: quilt/remove.in:11 msgid "Usage: quilt remove [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt remove [-P патч] {файл} …\\n" #: quilt/remove.in:14 msgid "" "\n" "Remove one or more files from the topmost or named patch. Files that\n" "are modified by patches on top of the specified patch cannot be removed.\n" "\n" "-P patch\n" "\tRemove named files from the named patch.\n" msgstr "" "\n" "Удалить один или более файлов из Ñамого верхнего или указанного\n" "патча. Файлы, изменённые патчами поверх указанного патча, не\n" "могут быть удалены.\n" "\n" "-P патч\n" "\tПатч, из которого нужно удалить файлы.\n" #: quilt/remove.in:70 quilt/revert.in:72 msgid "File %s is not in patch %s\\n" msgstr "Файл %s отÑутÑтвует в патче %s\\n" #: quilt/remove.in:88 msgid "Failed to remove file %s from patch %s\\n" msgstr "Ðе удалоÑÑŒ удалить файл %s из патча %s\\n" #: quilt/remove.in:102 msgid "File %s removed from patch %s\\n" msgstr "Файл %s удалён из патча %s\\n" #: quilt/rename.in:11 msgid "Usage: quilt rename [-P patch] new_name\\n" msgstr "СинтакÑиÑ: quilt rename [-P патч] новое_имÑ\\n" #: quilt/rename.in:14 msgid "" "\n" "Rename the topmost or named patch.\n" "\n" "-P patch\n" "\tPatch to rename.\n" msgstr "" "\n" "Переименовать верхний или указанный патч.\n" "\n" "-P патч\n" "\tПатч, который нужно переименовать.\n" #: quilt/rename.in:81 msgid "Patch %s exists already, please choose a different name\\n" msgstr "Патч %s уже ÑущеÑтвует, выберите другое имÑ\\n" #: quilt/rename.in:95 msgid "Renaming of patch %s to %s failed\\n" msgstr "Ðе удалоÑÑŒ переименовать патч %s в %s\\n" #: quilt/rename.in:101 msgid "Patch %s renamed to %s\\n" msgstr "Патч %s переименован в %s\\n" #: quilt/revert.in:11 msgid "Usage: quilt revert [-P patch] {file} ...\\n" msgstr "СинтакÑиÑ: quilt remove [-P патч] {файл} …\\n" #: quilt/revert.in:14 msgid "" "\n" "Revert uncommitted changes to the topmost or named patch for the specified\n" "file(s): after the revert, 'quilt diff -z' will show no differences for " "those\n" "files. Changes to files that are modified by patches on top of the " "specified\n" "patch cannot be reverted.\n" "\n" "-P patch\n" "\tRevert changes in the named patch.\n" msgstr "" "\n" "Отменить незакреплённые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² верхнем или указанном патче\n" "Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… файлов: поÑле отмены команда «quilt diff -z» не покажет\n" "изменений Ð´Ð»Ñ Ñтих файлов. Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файлах, которые изменÑÑŽÑ‚ÑÑ Ð¿Ð°Ñ‚Ñ‡Ð°Ð¼Ð¸\n" "поверх выбранного, не могут быть отменены.\n" "\n" "-P патч\n" "\tПатч, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² котором нужно отменить.\n" #: quilt/revert.in:100 quilt/revert.in:109 msgid "File %s is unchanged\\n" msgstr "Файл %s не изменён\\n" #: quilt/revert.in:117 msgid "Failed to revert changes to %s in patch %s\\n" msgstr "Ðе удалоÑÑŒ отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² %s в патче %s\\n" #: quilt/revert.in:121 msgid "Changes to %s in patch %s reverted\\n" msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² %s в патче %s отменены\\n" #: quilt/scripts/edmail.in:96 #, perl-format msgid "Display name `%s' contains unpaired parentheses\n" msgstr "Отображаемое Ð¸Ð¼Ñ Â«%s» Ñодержит непарные Ñкобки\n" #: quilt/scripts/edmail.in:114 #, perl-format msgid "Delivery address `%s' is invalid\n" msgstr "Ðекорректный Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Â«%s»\n" #: quilt/scripts/patchfns.in:237 quilt/scripts/patchfns.in:524 msgid "%s is not a regular file\\n" msgstr "%s не ÑвлÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼ файлом\\n" #: quilt/scripts/patchfns.in:486 quilt/scripts/patchfns.in:498 msgid "No patches in series\\n" msgstr "Ðет патчей в файле series\\n" #: quilt/scripts/patchfns.in:553 msgid "Patch %s is not in series\\n" msgstr "Патча %s нет в файле series\\n" #: quilt/scripts/patchfns.in:581 msgid "Patch %s is not applied\\n" msgstr "Патч %s не наложен\\n" #: quilt/scripts/patchfns.in:618 msgid "File series fully applied, ends at patch %s\\n" msgstr "Ð¡ÐµÑ€Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð² полноÑтью применена, заканчиваетÑÑ Ð½Ð° патче %s\\n" #: quilt/scripts/patchfns.in:774 msgid "Diff failed on file '%s', aborting\\n" msgstr "Ðе удалоÑÑŒ выполнить diff на файле «%s», завершение\\n" #: quilt/scripts/patchfns.in:995 msgid "Failed to patch temporary files\\n" msgstr "Ðе удалоÑÑŒ применить патч к временным файлам\\n" #: quilt/scripts/patchfns.in:1038 msgid "" "The quilt meta-data in this tree has version %s, but this version of quilt " "can only handle meta-data formats up to and including version %s. Please pop " "all the patches using the version of quilt used to push them before " "downgrading.\\n" msgstr "" "Метаданные quilt в Ñтом дереве имеют верÑию %s, но Ñта верÑÐ¸Ñ quilt может " "обрабатывать форматы метаданных толь до верÑии %s включительно. ПожалуйÑта, " "отмените вÑе патчи, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð²ÐµÑ€Ñию quilt, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸ÑпользовалаÑÑŒ Ð´Ð»Ñ Ð¸Ñ… " "наложениÑ, прежде чем иÑпользовать Ñту верÑию.\\n" #: quilt/scripts/patchfns.in:1113 msgid "You have to install '%s' (from package %s) to use 'quilt %s'\\n" msgstr "Ðужно уÑтановить «%s» (из пакета %s), чтобы иÑпользовать «quilt %s»\\n" #: quilt/scripts/patchfns.in:1192 msgid "Cannot change into parent directory %s/\\n" msgstr "Ðевозможно перейти в родительÑкую директорию %s/\\n" #: quilt/scripts/patchfns.in:1237 msgid "" "The working tree was created by an older version of quilt. Please run 'quilt " "upgrade'.\\n" msgstr "" "Рабочее дерево было Ñоздано более Ñтарой верÑией quilt. ПожалуйÑта, " "выполните «quilt upgrade».\\n" #: quilt/scripts/patchfns.in:1245 msgid "" "The series file no longer matches the applied patches. Please run 'quilt pop " "-a'.\\n" msgstr "" "Файл series больше не ÑоответÑтвует наложенным патчам. ПожалуйÑта, выполните " "«quilt pop -a».\\n" #: quilt/scripts/patchfns.in:1254 msgid "No series file found\\n" msgstr "Файл series не найден\\n" #: quilt/scripts/remove-trailing-ws.in:43 #, perl-format msgid "SYNOPSIS: %s [-p num] [-n] [patch]\n" msgstr "СИÐТÐКСИС: %s [-p чиÑло] [-n] [патч]\n" #: quilt/scripts/remove-trailing-ws.in:66 #, perl-format msgid "%s: I'm confused.\n" msgstr "%s: Ñ Ð² раÑтерÑнноÑти.\n" #: quilt/scripts/remove-trailing-ws.in:114 #, perl-format msgid "Warning: trailing whitespace in line %s of %s\n" msgstr "Предупреждение: пробел в конце Ñтроки %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:117 #, perl-format msgid "Warning: trailing whitespace in lines %s of %s\n" msgstr "Предупреждение: пробел в конце Ñтрок %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:121 #, perl-format msgid "Removing trailing whitespace from line %s of %s\n" msgstr "Удаление пробела из конца Ñтроки %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:124 #, perl-format msgid "Removing trailing whitespace from lines %s of %s\n" msgstr "Удаление пробела из конца Ñтрок %s файла %s\n" #: quilt/scripts/remove-trailing-ws.in:144 #, perl-format msgid "Renaming %s to %s: %s\n" msgstr "Переименование %s в %s: %s\n" #: quilt/series.in:11 msgid "Usage: quilt series [--color[=always|auto|never]] [-v]\\n" msgstr "СинтакÑиÑ: quilt series [--color[=always|auto|never]] [-v]\\n" #: quilt/series.in:14 msgid "" "\n" "Print the names of all patches in the series file.\n" "\n" "--color[=always|auto|never]\n" "\tUse syntax coloring (auto activates it only if the output is a tty).\n" "\n" "-v\tVerbose, more user friendly output.\n" msgstr "" "\n" "ВывеÑти имена вÑех патчей в файле series.\n" "\n" "--color[=always|auto|never]\n" "\tИÑпользовать подÑветку ÑинтакÑиÑа (Ð¾Ð¿Ñ†Ð¸Ñ auto активирует подÑветку только " "при выводе в терминал).\n" "\n" "-v\tПодробный, более дружеÑтвенный вывод.\n" #: quilt/setup.in:23 quilt/setup.in:43 msgid "Directory %s exists\\n" msgstr "Ð”Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ %s ÑущеÑтвует\\n" #: quilt/setup.in:49 msgid "File %s exists\\n" msgstr "Файл %s ÑущеÑтвует\\n" #: quilt/setup.in:265 msgid "" "Usage: quilt setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--" "slow|--fast] {specfile|seriesfile}\\n" msgstr "" "СинтакÑиÑ: quilt setup [-d префикÑ-пути] [-v] [--sourcedir путь] [--fuzz=N] " "[--slow|--fast] {файл-spec|файл-series}\\n" #: quilt/setup.in:268 #, fuzzy msgid "" "\n" "Initializes a source tree from an rpm spec file or a quilt series file.\n" "\n" "-d\tOptional path prefix for the resulting source tree.\n" "\n" "--sourcedir\n" "\tDirectory that contains the package sources. Defaults to \\`.'.\n" "\n" "-v\tVerbose debug output.\n" "\n" "--fuzz=N\n" "\tSet the maximum fuzz factor (needs rpm 4.6 or later).\n" "\n" "--slow\tUse the original, slow method to process the spec file. In this " "mode,\n" "\trpmbuild generates a working tree in a temporary directory while all\n" "\tits actions are recorded, and then everything is replayed from scratch\n" "\tin the target directory.\n" "\n" "--fast\tUse the new, faster method to process the spec file. In this mode,\n" "\trpmbuild is told to generate a working tree directly in the target\n" "\tdirectory. This is the default (since quilt version 0.67).\n" "\n" "The setup command is only guaranteed to work properly on spec files where\n" "applying all the patches is the last thing done in the %%prep section. This\n" "is a design limitation due to the fact that quilt can only operate on\n" "patches. If other commands in the %%prep section modify the patched files,\n" "they must come first, otherwise you won't be able to push the patch\n" "series.\n" "\n" "For example, a %%prep section where you first unpack a tarball, then\n" "apply patches, and lastly perform a tree-wide string substitution, is\n" "not OK. For \\\"quilt setup\\\" to work, it would have to be changed to\n" "unpacking the tarball, then performing the tree-wide string substitution,\n" "and lastly applying the patches.\n" msgstr "" "\n" "Инициализирует дерево иÑходных кодов из spec-файла rpm или файла series.\n" "\n" "-d\tОпциональный Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¿ÑƒÑ‚Ð¸ Ð´Ð»Ñ Ð´ÐµÑ€ÐµÐ²Ð° иÑходных кодов.\n" "\n" "--sourcedir\n" "\tДиректориÑ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñодержит иÑходные коды пакета. По умолчанию «.».\n" "\n" "-v\tПодробный отладочный вывод.\n" "\n" "--fuzz=N\n" "\tУÑтановить макÑимальный уровень fuzz (требуетÑÑ rpm 4.6 или новее).\n" "\n" "--slow\tИÑпользовать оригинальный, медленный метод Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ файла " "spec.\n" "\tÐ’ Ñтом режиме rpmbuild генерирует рабочее дерево во временной директории,\n" "\tгде вÑе его дейÑÑ‚Ð²Ð¸Ñ Ð·Ð°Ð¿Ð¸ÑываютÑÑ, а затем вÑÑ‘ проигрываетÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾ в " "целевой\n" "\tдиректории.\n" "\n" "--fast\tИÑпользовать новый, более быÑтрый метод обработки файла spec. Ð’ " "Ñтом\n" "\tрежиме rpmbuild генерирует рабочее дерево прÑмо в целевой директории. Это\n" "\tрежим по умолчанию (Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ Ð²ÐµÑ€Ñии quilt 0.67).\n" "\n" "ÐšÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° команды setup гарантируетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ на spec-файлах, в " "которых\n" "применение вÑех патчей Ñто поÑледнее дейÑтвие в Ñекции %%prep. Это " "ограничение\n" "дизайна в Ñилу того факта, что quilt может оперировать только патчами. ЕÑли\n" "другие команды в Ñекции %%prep модифицируют файлы патчей, Ñти команды " "должны\n" "идти раньше, иначе вы не Ñможете применить Ñерию патчей.\n" #: quilt/setup.in:403 msgid "The %%prep section of %s failed; results may be incomplete\\n" msgstr "" "Ð¡ÐµÐºÑ†Ð¸Ñ %%prep файла %s Ñодержит ошибки; результаты могут быть незавершены\\n" #: quilt/setup.in:406 msgid "The -v option will show rpm's output\\n" msgstr "ÐžÐ¿Ñ†Ð¸Ñ -v покажет вывод rpm\\n" #: quilt/setup.in:467 quilt/setup.in:479 quilt/setup.in:490 msgid "File %s not found\\n" msgstr "Файл %s не найден\\n" #: quilt/setup.in:470 quilt/setup.in:482 quilt/setup.in:493 msgid "Unpacking archive %s\\n" msgstr "РаÑпаковка архива %s\\n" #: quilt/setup.in:503 msgid "Trying alternative patches and series names..." msgstr "Попытка иÑпользовать альтернативные имена Ð´Ð»Ñ series и patches…" #: quilt/snapshot.in:11 msgid "Usage: quilt snapshot [-d]\\n" msgstr "СинтакÑиÑ: quilt snapshot [-d]\\n" #: quilt/snapshot.in:14 msgid "" "\n" "Take a snapshot of the current working state. After taking the snapshot,\n" "the tree can be modified in the usual ways, including pushing and\n" "popping patches. A diff against the tree at the moment of the\n" "snapshot can be generated with \\`quilt diff --snapshot'.\n" "\n" "-d\tOnly remove current snapshot.\n" msgstr "" "\n" "Сделать Ñнимок текущего ÑоÑтоÑÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‡ÐµÐ³Ð¾ дерева. ПоÑле ÑнÑÑ‚Ð¸Ñ Ñнимка,\n" "дерево можно модифицировать обычными ÑпоÑобами, Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ð½Ð°Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ и\n" "откат патчей. СпиÑок изменений diff отноÑительно дерева в момент взÑтиÑ\n" "Ñнимка может быть Ñоздан Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ «quilt diff --snapshot».\n" "\n" "-d\tПроÑто удалить текущий Ñнимок.\n" #: quilt/top.in:11 msgid "Usage: quilt top\\n" msgstr "СинтакÑиÑ: quilt top\\n" #: quilt/top.in:14 msgid "" "\n" "Print the name of the topmost patch on the current stack of applied\n" "patches.\n" msgstr "" "\n" "ВывеÑти Ð¸Ð¼Ñ Ð²ÐµÑ€Ñ…Ð½ÐµÐ³Ð¾ патча в текущем Ñтеке применённых патчей.\n" #: quilt/unapplied.in:11 msgid "Usage: quilt unapplied [patch]\\n" msgstr "СинтакÑиÑ: quilt unapplied [патч]\\n" #: quilt/unapplied.in:14 msgid "" "\n" "Print a list of patches that are not applied, or all patches that follow\n" "the specified patch in the series file.\n" msgstr "" "\n" "ВывеÑти ÑпиÑок неналоженных патчей или вÑех патчей, Ñледующих\n" "за указанным патчем в файле series.\n" #: quilt/upgrade.in:15 msgid "Usage: quilt upgrade\\n" msgstr "СинтакÑиÑ: quilt upgrade\\n" #: quilt/upgrade.in:18 msgid "" "\n" "Upgrade the meta-data in a working tree from an old version of quilt to the\n" "current version. This command is only needed when the quilt meta-data " "format\n" "has changed, and the working tree still contains old-format meta-data. In " "that\n" "case, quilt will request to run \\`quilt upgrade'.\n" msgstr "" "\n" "Обновить метаданные в рабочем дереве Ñо Ñтарой верÑии quilt до текущей\n" "верÑии. Эта команда необходима только, еÑли формат метаданных quilt\n" "изменилÑÑ, а рабочее дерево по-прежнему Ñодержит метаданные Ñтарого\n" "формата. Ð’ Ñтом Ñлучае quilt попроÑит запуÑтить «quilt upgrade».\n" #: quilt/upgrade.in:65 msgid "" "The quilt meta-data in %s are already in the version %s format; nothing to do" "\\n" msgstr "Метаданные quilt в %s уже в формате верÑии %s; нечего делать\\n" #: quilt/upgrade.in:69 msgid "Converting meta-data to version %s\\n" msgstr "Преобразование метаданных к верÑии %s\\n" #: quilt/upgrade.in:100 msgid "Conversion failed\\n" msgstr "Преобразование не удалоÑÑŒ\\n" #: quilt/upgrade.in:101 msgid "" "\n" "Please remove all patches using \\`quilt pop -a' from the quilt version used " "to create this working tree, or remove the %s directory and apply the " "patches from scratch.\\n" msgstr "" "\n" "ПожалуйÑта, удалите вÑе патчи, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Â«quilt pop -a» верÑией quilt, " "иÑпользованной при Ñоздании Ñтого рабочего дерева, или удалите директорию %s " "и примените вÑе патчи Ñ Ð½ÑƒÐ»Ñ.\\n" quilt-0.68/test/PaxHeaders/two.test0000644000000000000000000000013212304115475014356 xustar0030 mtime=1393597245.373586925 30 atime=1711552114.516451017 30 ctime=1495037540.808435874 quilt-0.68/test/two.test0000644000076500001440000001021012304115475015606 0ustar00khaliusers00000000000000 $ mkdir patches d $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ cd d $ mkdir dir $ echo "This is file one." > dir/file1 $ quilt add dir/file1 > File d/dir/file1 added to patch %{_P}patch1.diff $ quilt add file2 > File d/file2 added to patch %{_P}patch1.diff $ quilt diff $ quilt diff -z $ quilt refresh > Nothing in patch %{_P}patch1.diff $ echo "This is file two." > file2 $ quilt diff -p ab > Index: b/d/file2 > =================================================================== > --- /dev/null > +++ b/d/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt diff -z -p ab > Index: b/d/file2 > =================================================================== > --- /dev/null > +++ b/d/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt refresh > Refreshed patch %{_P}patch1.diff $ quilt diff -z $ echo "Another line has been added." >> dir/file1 $ quilt diff -z -p ab > Index: b/d/dir/file1 > =================================================================== > --- a/d/dir/file1 > +++ b/d/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ cd dir $ quilt diff -z file1 -p ab > Index: b/d/dir/file1 > =================================================================== > --- a/d/dir/file1 > +++ b/d/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ cd .. $ quilt refresh > Refreshed patch %{_P}patch1.diff $ cd .. $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ cd d $ quilt add dir/file3 > File d/dir/file3 added to patch %{_P}patch2.diff $ echo "This is file three." > dir/file3 $ quilt refresh > Refreshed patch %{_P}patch2.diff $ quilt add -P patch1 dir/file3 > File d/dir/file3 modified by patch %{_P}patch2.diff $ quilt pop -R > Removing patch %{_P}patch2.diff > Removing d/dir/file3 > > Now at patch %{_P}patch1.diff $ quilt add file4 > File d/file4 added to patch %{_P}patch1.diff $ echo "This is file 4." > file4 $ quilt refresh > Refreshed patch %{_P}patch1.diff $ quilt push > Applying patch %{_P}patch2.diff >~ patching file `?d/dir/file3'? > > Now at patch %{_P}patch2.diff $ cd .. $ quilt new subdir/patch3.diff > Patch %{P}subdir/patch3.diff is now on top $ cd d $ quilt add file4 > File d/file4 added to patch %{_P}subdir/patch3.diff $ rm -f file4 $ quilt diff -p ab > Index: b/d/file4 > =================================================================== > --- a/d/file4 > +++ /dev/null > @@ -1 +0,0 @@ > -This is file 4. $ quilt add -P patch2 file4 > File d/file4 modified by patch %{_P}subdir/patch3.diff $ quilt refresh > Refreshed patch %{_P}subdir/patch3.diff $ echo "Another line here, too." >> dir/file3 $ quilt refresh patch2 > Refreshed patch %{_P}patch2.diff $ echo "Another line added." >> file2 $ quilt diff -z -P patch1 -p ab > Index: b/d/file2 > =================================================================== > --- a/d/file2 > +++ b/d/file2 > @@ -1 +1,2 @@ > This is file two. > +Another line added. > Warning: more recent patches modify files in patch %{_P}patch1.diff $ quilt refresh patch1 > More recent patches modify files in patch %{_P}patch1.diff. Enforce refresh with -f. $ quilt refresh -f patch1 > Refreshed patch %{_P}patch1.diff $ echo "Another line here, too." >> dir/file3 $ quilt pop -R > Removing patch %{_P}subdir/patch3.diff > Restoring d/file4 > > Now at patch %{_P}patch2.diff $ quilt refresh patch2 > Refreshed patch %{_P}patch2.diff $ quilt grep -- two > d/file2:This is file two. $ quilt pop -qaR > Removing patch %{_P}patch2.diff > Removing patch %{_P}patch1.diff > No patches applied $ quilt patches file4 > %{_P}patch1.diff > %{_P}subdir/patch3.diff $ quilt push -qa > Applying patch %{_P}patch1.diff > Applying patch %{_P}patch2.diff > Applying patch %{_P}subdir/patch3.diff > Now at patch %{_P}subdir/patch3.diff $ quilt patches file4 > %{_P}patch1.diff > %{_P}subdir/patch3.diff $ quilt pop -q patch2.diff > Removing patch %{_P}subdir/patch3.diff > Now at patch %{_P}patch2.diff $ quilt patches -v dir/file3 file4 > + %{_P}patch1.diff > = %{_P}patch2.diff > %{_P}subdir/patch3.diff quilt-0.68/test/PaxHeaders/trailing-ws.test0000644000000000000000000000013213104354070016000 xustar0030 mtime=1494341688.104357079 30 atime=1711552114.515451004 30 ctime=1495037540.808435874 quilt-0.68/test/trailing-ws.test0000644000076500001440000000252613104354070017243 0ustar00khaliusers00000000000000 $ mkdir patches $ cat > a < a < b < c $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add a > File a added to patch %{P}test.diff $ cat > a < a < b < c $ quilt refresh > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch %{P}test.diff $ grep '[ \t]$' patches/test.diff > +a > +c $ quilt refresh -U0 > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch %{P}test.diff $ quilt refresh --strip-trailing-whitespace > Removing trailing whitespace from lines 1,3 of a > Refreshed patch %{P}test.diff $ grep '[ \t]$' patches/test.diff $ quilt pop -q > Removing patch %{P}test.diff > No patches applied $ cat > a < a < b < c $ quilt new test2.diff > Patch %{P}test2.diff is now on top $ quilt add a > File a added to patch %{P}test2.diff $ cat > a < a < b < c $ quilt refresh -c > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch %{P}test2.diff $ grep '[ \t]$' patches/test2.diff > ! a > ! c $ quilt refresh -C0 > Warning: trailing whitespace in lines 1,3 of a > Refreshed patch %{P}test2.diff $ quilt refresh -c --strip-trailing-whitespace > Removing trailing whitespace from lines 1,3 of a > Refreshed patch %{P}test2.diff $ grep '[ \t]$' patches/test2.diff $ quilt pop -q > Removing patch %{P}test2.diff > No patches applied quilt-0.68/test/PaxHeaders/timestamps.test0000644000000000000000000000013213104354760015734 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.515451004 30 ctime=1495037540.804435804 quilt-0.68/test/timestamps.test0000644000076500001440000000426313104354760017177 0ustar00khaliusers00000000000000# Test how quilt behaves when patches include timestamps $ mkdir patches $ cat > patches/series < unified-create.patch < unified-update.patch < unified-delete.patch < context-create.patch < context-update.patch < context-delete.patch $ cat > patches/unified-create.patch < diff -ruN a/file b/file < --- a/file 1970-01-01 01:00:00.000000000 +0100 < +++ b/file 2014-01-15 11:19:43.000000000 +0100 < @@ -0,0 +1 @@ < +new line $ cat > patches/unified-update.patch < diff -ruN a/file b/file < --- a/file 2014-01-15 11:19:43.000000000 +0100 < +++ b/file 2014-01-15 11:20:17.000000000 +0100 < @@ -1 +1 @@ < -new line < +updated line $ cat > patches/unified-delete.patch < diff -ruN a/file b/file < --- a/file 2014-01-15 11:20:17.000000000 +0100 < +++ b/file 1970-01-01 01:00:00.000000000 +0100 < @@ -1 +0,0 @@ < -updated line $ cat > patches/context-create.patch < *** /dev/null 2014-06-24 08:55:39.152180961 +0200 < --- b/file 2014-06-26 13:08:29.608831581 +0200 < *************** < *** 0 **** < --- 1 ---- < + new line $ cat > patches/context-update.patch < *** a/file 2014-06-26 13:08:29.608831581 +0200 < --- b/file 2014-06-26 13:08:33.872849083 +0200 < *************** < *** 1 **** < ! new line < --- 1 ---- < ! updated line $ cat > patches/context-delete.patch < *** a/file 2014-06-26 13:08:33.872849083 +0200 < --- /dev/null 2014-06-24 08:55:39.152180961 +0200 < *************** < *** 1 **** < - updated line < --- 0 ---- # Test unapplied patches $ quilt patches file > %{P}unified-create.patch > %{P}unified-update.patch > %{P}unified-delete.patch > %{P}context-create.patch > %{P}context-update.patch > %{P}context-delete.patch # Make sure we don't take line counts as file names $ quilt patches 1 $ quilt push -qa > Applying patch %{P}unified-create.patch > Applying patch %{P}unified-update.patch > Applying patch %{P}unified-delete.patch > Applying patch %{P}context-create.patch > Applying patch %{P}context-update.patch > Applying patch %{P}context-delete.patch > Now at patch %{P}context-delete.patch # Test applied patches $ quilt patches file > %{P}unified-create.patch > %{P}unified-update.patch > %{P}unified-delete.patch > %{P}context-create.patch > %{P}context-update.patch > %{P}context-delete.patch quilt-0.68/test/PaxHeaders/three.test0000644000000000000000000000013214465117052014657 xustar0030 mtime=1691655722.338605825 30 atime=1711552114.515451004 30 ctime=1691655722.338605825 quilt-0.68/test/three.test0000644000076500001440000000722014465117052016116 0ustar00khaliusers00000000000000 $ mkdir patches $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt top > %{P}patch1.diff $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ ls patches/ > series $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt previous > %{P}patch1.diff $ quilt add g > File g added to patch %{P}patch2.diff $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff # Test diff called with multiple file names $ quilt diff -p0 f g > Index: g > =================================================================== > --- /dev/null > +++ g > @@ -0,0 +1 @@ > +g # Test that diff strips the "./" prefix $ quilt diff -p0 ./f ./g > Index: g > =================================================================== > --- /dev/null > +++ g > @@ -0,0 +1 @@ > +g $ quilt pop > Removing patch %{P}patch2.diff > Removing g > > Now at patch %{P}patch1.diff $ ls patches/ > patch2.diff > series $ quilt next > %{P}patch2.diff $ quilt previous $ quilt previous patch2 > %{P}patch1.diff $ quilt pop > Patch %{P}patch1.diff does not remove cleanly (refresh it or enforce with -f) > Hint: `quilt diff -z' will show the pending changes. $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt refresh patch2 > Patch %{P}patch2.diff is not applied $ quilt pop > Removing patch %{P}patch1.diff > Removing f > > No patches applied $ quilt top > No patches applied $ quilt pop > No patch removed $ echo %{?} > 2 $ quilt applied > No patches applied $ quilt unapplied > %{P}patch1.diff > %{P}patch2.diff $ quilt previous > No patches applied $ quilt next > %{P}patch1.diff $ quilt applied patch1 > Patch %{P}patch1.diff is not applied $ quilt unapplied patch2 $ quilt unapplied patch1 > %{P}patch2.diff $ quilt revert f > No patches applied $ quilt delete patch3.diff > Patch patch3.diff is not in series $ quilt push -qa > Applying patch %{P}patch1.diff > Applying patch %{P}patch2.diff > Now at patch %{P}patch2.diff $ quilt push patch2 > Patch %{P}patch2.diff is currently applied $ quilt push > File series fully applied, ends at patch %{P}patch2.diff $ echo %{?} > 2 $ quilt diff --combine patch1 -P patch2 -p ab > Index: b/f > =================================================================== > --- /dev/null > +++ b/f > @@ -0,0 +1 @@ > +f > Index: b/g > =================================================================== > --- /dev/null > +++ b/g > @@ -0,0 +1 @@ > +g $ quilt diff -P patch1 --combine patch2 > Patch %{P}patch2.diff not applied before patch %{P}patch1.diff $ echo patch3.diff >> patches/series $ quilt diff -P patch1 --combine patch3 > Patch %{P}patch3.diff is not applied $ quilt pop -qaR > Removing patch %{P}patch2.diff > Removing patch %{P}patch1.diff > No patches applied $ quilt annotate f > No patches applied $ quilt pop patch4.diff > Patch patch4.diff is not in series $ quilt grep "not there" $ quilt push -q 2 > Applying patch %{P}patch1.diff > Applying patch %{P}patch2.diff > Now at patch %{P}patch2.diff $ quilt pop -q 2 > Removing patch %{P}patch2.diff > Removing patch %{P}patch1.diff > No patches applied $ quilt push -q 10 > Applying patch %{P}patch1.diff > Applying patch %{P}patch2.diff > Applying patch %{P}patch3.diff > Patch %{P}patch3.diff does not exist; applied empty patch > Now at patch %{P}patch3.diff $ quilt pop -q 10 > Patch %{P}patch3.diff appears to be empty, removing > Removing patch %{P}patch2.diff > Removing patch %{P}patch1.diff > No patches applied $ quilt push 0 > No patch applied $ echo %{?} > 2 $ quilt pop 0 > No patch removed $ echo %{?} > 2 quilt-0.68/test/PaxHeaders/tester.test0000644000000000000000000000013212255134342015052 xustar0030 mtime=1387575522.486804898 30 atime=1711552114.515451004 30 ctime=1495037540.796435664 quilt-0.68/test/tester.test0000644000076500001440000000073112255134342016311 0ustar00khaliusers00000000000000# Test the testing code itself # Exported variables should be available immediately after being set $ echo %{VAR} > $ export VAR=foo $ echo %{VAR} > foo $ export VAR=bar $ echo %{VAR} > bar # Exported variables should survive accross commands and comments $ true $ echo %{VAR} > bar # Test multiple use cases $ echo "A %{VAR}%{VAR}ian walks into a %{VAR}" > A barbarian walks into a bar # Test combined use and set $ export PLACE=%{VAR}racks $ echo %{PLACE} > barracks quilt-0.68/test/PaxHeaders/symlink.test0000644000000000000000000000013213104354070015226 xustar0030 mtime=1494341688.104357079 30 atime=1711552114.515451004 30 ctime=1495037540.804435804 quilt-0.68/test/symlink.test0000644000076500001440000000513013104354070016463 0ustar00khaliusers00000000000000 $ mkdir patches # quilt should not remove symlinks to patch files $ echo foo > foo $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add foo > File foo added to patch %{P}test.diff $ echo "foo changed" > foo $ quilt refresh > Refreshed patch %{P}test.diff # Setup a symlink $ mv patches/test.diff . $ ln -s ../test.diff patches/test.diff $ readlink patches/test.diff > ../test.diff # Test the refresh $ echo "foo changed 2" > foo $ quilt refresh --no-index -p ab > Refreshed patch %{P}test.diff $ readlink patches/test.diff > ../test.diff # Test the refresh --backup $ echo "foo changed 3" > foo $ touch -r patches/test.diff test.timeref $ quilt refresh --backup --no-index -p ab > Refreshed patch %{P}test.diff $ readlink patches/test.diff > ../test.diff $ cat patches/test.diff > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +foo changed 3 $ readlink patches/test.diff~ $ echo %{?} > 1 $ cat patches/test.diff~ > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +foo changed 2 $ [ patches/test.diff~ -nt test.timeref ] && echo "mtimes differ" # Test the header update $ quilt header -a < A test patch > Appended text to header of patch %{P}test.diff $ readlink patches/test.diff > ../test.diff # Test the header update with a backup $ touch -r patches/test.diff test.timeref $ quilt header -r --backup > Replaced header of patch %{P}test.diff $ readlink patches/test.diff > ../test.diff $ cat patches/test.diff > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +foo changed 3 $ readlink patches/test.diff~ $ echo %{?} > 1 $ cat patches/test.diff~ > A test patch > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +foo changed 3 $ [ patches/test.diff~ -nt test.timeref ] && echo "mtimes differ" # Test the refresh when target is read-only $ chmod -w test.diff $ echo "foo changed 4" > foo $ quilt refresh --no-index -p ab > Refreshed patch %{P}test.diff $ readlink patches/test.diff $ echo %{?} > 1 $ cat patches/test.diff > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +foo changed 4 # Test the refresh --backup when target is read-only $ rm -f test.diff $ mv patches/test.diff . $ ln -s ../test.diff patches/test.diff $ chmod -w test.diff $ echo "foo changed 5" > foo $ quilt refresh --backup --no-index -p ab > Refreshed patch %{P}test.diff $ readlink patches/test.diff $ echo %{?} > 1 $ cat patches/test.diff > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +foo changed 5 $ readlink patches/test.diff~ $ echo %{?} > 1 $ cat patches/test.diff~ > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +foo changed 4 quilt-0.68/test/PaxHeaders/subdir.test0000644000000000000000000000013213102030271015020 xustar0030 mtime=1493708985.974406473 30 atime=1711552114.514450992 30 ctime=1495037540.808435874 quilt-0.68/test/subdir.test0000644000076500001440000000325313102030271016261 0ustar00khaliusers00000000000000 $ mkdir patches $ mkdir subdir $ cat > subdir/file < old file $ quilt new test.patch > Patch %{P}test.patch is now on top $ quilt add subdir/file > File subdir/file added to patch %{P}test.patch $ cat > subdir/file < new contents This creates the patches/ directory: $ quilt refresh > Refreshed patch %{P}test.patch $ cd subdir $ quilt add file2 > File subdir/file2 added to patch %{_P}test.patch $ cat > file2 < another file $ cat > file3 < yet another file $ quilt add file3 > File subdir/file3 added to patch %{_P}test.patch $ rm -f file3 $ quilt files -v > subdir/file > + subdir/file2 > - subdir/file3 $ quilt diff -p ab > Index: b/subdir/file > =================================================================== > --- a/subdir/file > +++ b/subdir/file > @@ -1 +1 @@ > -old file > +new contents > Index: b/subdir/file2 > =================================================================== > --- /dev/null > +++ b/subdir/file2 > @@ -0,0 +1 @@ > +another file > Index: b/subdir/file3 > =================================================================== > --- a/subdir/file3 > +++ /dev/null > @@ -1 +0,0 @@ > -yet another file # Test diff called with multiple file names, from a subdirectory $ quilt diff --no-index -p ab file file2 no > --- a/subdir/file > +++ b/subdir/file > @@ -1 +1 @@ > -old file > +new contents > --- /dev/null > +++ b/subdir/file2 > @@ -0,0 +1 @@ > +another file # Test diff called with "./" file name prefix, from a subdirectory $ quilt diff --no-index -p ab ./file3 ./no > --- a/subdir/file3 > +++ /dev/null > @@ -1 +0,0 @@ > -yet another file $ quilt refresh > Refreshed patch %{_P}test.patch quilt-0.68/test/PaxHeaders/space-in-work-dir.test0000644000000000000000000000013213736607051017006 xustar0030 mtime=1601900073.129030978 30 atime=1711552114.514450992 30 ctime=1601900073.129030978 quilt-0.68/test/space-in-work-dir.test0000644000076500001440000000422513736607051020247 0ustar00khaliusers00000000000000$ mkdir "work dir" $ cd "work dir" $ mkdir project $ cd project $ mkdir patches $ mkdir subdir $ echo old > a $ quilt new 1.patch > Patch patches/1.patch is now on top $ quilt add a > File a added to patch patches/1.patch $ echo new > a $ quilt refresh > Refreshed patch patches/1.patch $ cat patches/1.patch > Index: project/a > =================================================================== > --- project.orig/a > +++ project/a > @@ -1 +1 @@ > -old > +new $ echo newer > a $ quilt diff -z > Index: project/a > =================================================================== > --- project.orig/a > +++ project/a > @@ -1 +1 @@ > -new > +newer $ quilt revert a > Changes to a in patch patches/1.patch reverted $ quilt diff -z $ echo newer > a $ quilt refresh -z > Fork of patch patches/1.patch created as patches/1-2.patch $ quilt series > patches/1.patch > patches/1-2.patch $ cat patches/1.patch > Index: project/a > =================================================================== > --- project.orig/a > +++ project/a > @@ -1 +1 @@ > -old > +new $ cat patches/1-2.patch > Index: project/a > =================================================================== > --- project.orig/a > +++ project/a > @@ -1 +1 @@ > -new > +newer # Running a command when not at the root of the project tests additional # code paths $ cd subdir $ quilt pop -q > Removing patch ../patches/1-2.patch > Now at patch ../patches/1.patch $ quilt diff --no-index > --- project.orig/a > +++ project/a > @@ -1 +1 @@ > -old > +new $ cd .. $ quilt pop > Removing patch patches/1.patch > Restoring a > > No patches applied $ quilt push > Applying patch patches/1.patch > patching file a > > Now at patch patches/1.patch $ quilt top > patches/1.patch $ quilt series -v > = patches/1.patch > patches/1-2.patch $ quilt fold < patches/1-2.patch > patching file a $ quilt diff -z > Index: project/a > =================================================================== > --- project.orig/a > +++ project/a > @@ -1 +1 @@ > -new > +newer $ quilt refresh > Refreshed patch patches/1.patch $ quilt delete -rn > Removed patch patches/1-2.patch $ quilt remove a > File a removed from patch patches/1.patch quilt-0.68/test/PaxHeaders/space-in-series.test0000644000000000000000000000013213115512753016535 xustar0030 mtime=1496749547.658369293 30 atime=1711552114.514450992 30 ctime=1496749547.658369293 quilt-0.68/test/space-in-series.test0000644000076500001440000001105513115512753017775 0ustar00khaliusers00000000000000This test case was originally created as a copy of example1, but where the series file name contains a space. $ export QUILT_SERIES="quilt series" The text used here was taken from: http://the-tech.mit.edu/Shakespeare/midsummer/full.html $ mkdir patches $ cat > Oberon.txt < Yet mark'd I where the bolt of Cupid fell: < It fell upon a little western flower, < Before milk-white, now purple with love's wound, < And girls call it love-in-idleness. $ quilt new flower.diff > Patch %{P}flower.diff is now on top $ quilt files $ quilt add Oberon.txt > File Oberon.txt added to patch %{P}flower.diff $ cat >> Oberon.txt < The juice of it on sleeping eye-lids laid < Will make a man or woman madly dote < Upon the next live creature that it sees. Or ``quilt edit Oberon.txt'' $ quilt refresh -p ab > Refreshed patch %{P}flower.diff $ cat patches/flower.diff > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,6 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ sed -ne '1,4p' Oberon.txt > Oberon.new $ echo "Fetch me that flower; the herb I shew'd thee once:" >> Oberon.new $ sed -e '1,4d' Oberon.txt >> Oberon.new $ mv Oberon.new Oberon.txt $ quilt diff -z -p ab > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,6 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > The juice of it on sleeping eye-lids laid > Will make a man or woman madly dote > Upon the next live creature that it sees. $ quilt diff -p ab > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ quilt refresh > Refreshed patch %{P}flower.diff $ quilt top > %{P}flower.diff $ quilt files > Oberon.txt $ quilt patches Oberon.txt > %{P}flower.diff $ quilt pop -f > Removing patch %{P}flower.diff > Restoring Oberon.txt > > No patches applied $ quilt files patches/flower.diff > Oberon.txt $ sed -e "s/girls/maidens/" Oberon.txt > Oberon.new $ mv Oberon.new Oberon.txt $ quilt push > Applying patch %{P}flower.diff >~ patching file `?Oberon.txt'? > Hunk #1 FAILED at 2. >~ 1 out of 1 hunk FAILED -- rejects in file `?Oberon.txt'? > Patch %{P}flower.diff does not apply (enforce with -f) $ quilt push -f > Applying patch %{P}flower.diff >~ patching file `?Oberon.txt'? > Hunk #1 FAILED at 2. >~ 1 out of 1 hunk FAILED -- saving rejects to (file )?`?Oberon.txt.rej'? > Applied patch %{P}flower.diff (forced; needs refresh) $ cat >> Oberon.txt < Fetch me that flower; the herb I shew'd thee once: < The juice of it on sleeping eye-lids laid < Will make a man or woman madly dote < Upon the next live creature that it sees. $ quilt refresh -p ab > Refreshed patch %{P}flower.diff $ rm -f Oberon.txt.rej $ cat Oberon.txt > Yet mark'd I where the bolt of Cupid fell: > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And maidens call it love-in-idleness. > Fetch me that flower; the herb I shew'd thee once: > The juice of it on sleeping eye-lids laid > Will make a man or woman madly dote > Upon the next live creature that it sees. $ cat patches/flower.diff > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And maidens call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ quilt grep love > Oberon.txt:Before milk-white, now purple with love's wound, > Oberon.txt:And maidens call it love-in-idleness. quilt-0.68/test/PaxHeaders/space-in-filenames.test0000644000000000000000000000013214556437427017224 xustar0030 mtime=1706704663.671355982 30 atime=1711552114.514450992 30 ctime=1706704663.671355982 quilt-0.68/test/space-in-filenames.test0000644000076500001440000000565014556437427020470 0ustar00khaliusers00000000000000$ mkdir patches $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add foo > File foo added to patch %{P}test.diff $ echo foo > foo $ quilt files > foo $ quilt patches foo > %{P}test.diff $ quilt patches "foo bar" $ echo foo > "foo bar" $ quilt add "foo bar" > File foo bar added to patch %{P}test.diff $ quilt files > foo > foo bar $ quilt patches "foo bar" > %{P}test.diff $ quilt patches bar $ quilt patches "foo bar baz" $ quilt add "a: b [c]" > File a: b [c] added to patch %{P}test.diff $ quilt files > a: b [c] > foo > foo bar $ quilt patches 'a: b [c]' > %{P}test.diff $ quilt patches a $ quilt patches b $ quilt patches 'a: b c' $ echo bar > "foo bar" $ echo "new line" > "a: b [c]" $ quilt diff -p ab > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ "b/a: b [c]" > @@ -0,0 +1 @@ > +new line > Index: b/foo > =================================================================== > --- /dev/null > +++ b/foo > @@ -0,0 +1 @@ > +foo > Index: b/foo bar > =================================================================== > --- "a/foo bar" > +++ "b/foo bar" > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab > Refreshed patch %{P}test.diff $ cat patches/test.diff > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ "b/a: b [c]" > @@ -0,0 +1 @@ > +new line > Index: b/foo > =================================================================== > --- /dev/null > +++ b/foo > @@ -0,0 +1 @@ > +foo > Index: b/foo bar > =================================================================== > --- "a/foo bar" > +++ "b/foo bar" > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab --sort > Patch %{P}test.diff is unchanged $ cat patches/test.diff > Index: b/a: b [c] > =================================================================== > --- /dev/null > +++ "b/a: b [c]" > @@ -0,0 +1 @@ > +new line > Index: b/foo > =================================================================== > --- /dev/null > +++ b/foo > @@ -0,0 +1 @@ > +foo > Index: b/foo bar > =================================================================== > --- "a/foo bar" > +++ "b/foo bar" > @@ -1 +1 @@ > -foo > +bar $ quilt grep bar > foo bar:bar $ quilt grep new > a: b [c]:new line $ quilt grep " " > a: b [c]:new line $ quilt diff -p ab -z # Removal order is nondeterministic $ quilt pop > Removing patch patches/test.diff >~ Removing (a: b \[c\]|foo) >~ Removing (a: b \[c\]|foo) > Restoring foo bar > > No patches applied $ quilt patches "foo bar" > %{P}test.diff $ quilt patches "a: b [c]" > %{P}test.diff $ quilt push > Applying patch patches/test.diff > patching file a: b [c] > patching file foo > patching file foo bar > > Now at patch patches/test.diff $ quilt remove "a: b [c]" > File a: b [c] removed from patch %{P}test.diff $ quilt files > foo > foo bar $ quilt remove "foo bar" > File foo bar removed from patch %{P}test.diff $ quilt files > foo quilt-0.68/test/PaxHeaders/sort.test0000644000000000000000000000013213104354070014527 xustar0030 mtime=1494341688.104357079 30 atime=1711552114.514450992 30 ctime=1495037540.804435804 quilt-0.68/test/sort.test0000644000076500001440000000310413104354070015763 0ustar00khaliusers00000000000000 $ mkdir patches $ quilt new sort.diff > Patch %{P}sort.diff is now on top $ quilt add b f > File b added to patch %{P}sort.diff > File f added to patch %{P}sort.diff $ echo b > b $ echo f > f $ quilt refresh > Refreshed patch %{P}sort.diff $ quilt add c > File c added to patch %{P}sort.diff $ echo c > c $ quilt refresh > Refreshed patch %{P}sort.diff $ quilt files > b > c > f $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c $ quilt add z x > File z added to patch %{P}sort.diff > File x added to patch %{P}sort.diff $ echo z > z $ echo x > x $ quilt files > b > c > f > x > z $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt add a > File a added to patch %{P}sort.diff $ echo a > a $ quilt files > a > b > c > f > x > z $ quilt diff | grep '^Index' >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/a >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt refresh > Refreshed patch %{P}sort.diff $ grep '^Index' patches/sort.diff >~ Index: [^/]+/b >~ Index: [^/]+/f >~ Index: [^/]+/c >~ Index: [^/]+/a >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt diff --sort | grep '^Index' >~ Index: [^/]+/a >~ Index: [^/]+/b >~ Index: [^/]+/c >~ Index: [^/]+/f >~ Index: [^/]+/x >~ Index: [^/]+/z $ quilt refresh --sort > Refreshed patch %{P}sort.diff $ grep '^Index' patches/sort.diff >~ Index: [^/]+/a >~ Index: [^/]+/b >~ Index: [^/]+/c >~ Index: [^/]+/f >~ Index: [^/]+/x >~ Index: [^/]+/z quilt-0.68/test/PaxHeaders/snapshot.test0000644000000000000000000000013212061327176015407 xustar0030 mtime=1355132542.006822024 30 atime=1711552114.513450979 30 ctime=1495037540.796435664 quilt-0.68/test/snapshot.test0000644000076500001440000000176212061327176016653 0ustar00khaliusers00000000000000 $ mkdir patches $ quilt new snapshot > Patch %{P}snapshot is now on top $ quilt add f.txt > File f.txt added to patch %{P}snapshot $ cat > f.txt < f.txt $ quilt add g.txt > File g.txt added to patch %{P}snapshot $ cat > g.txt < g.txt $ quilt refresh > Refreshed patch %{P}snapshot $ quilt snapshot $ quilt fork > Fork of patch %{P}snapshot created as %{P}snapshot-2 $ rm g.txt $ quilt add h.txt > File h.txt added to patch %{P}snapshot-2 $ cat > h.txt < h.txt $ cat >> f.txt < more changes $ quilt refresh > Refreshed patch %{P}snapshot-2 $ quilt diff --snapshot | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/f\.txt > =================================================================== > @@ -1 +1,2 @@ > f.txt > +more changes >~ Index: [^/]+/g\.txt > =================================================================== > @@ -1 +0,0 @@ > -g.txt >~ Index: [^/]+/h\.txt > =================================================================== > @@ -0,0 +1 @@ > +h.txt quilt-0.68/test/PaxHeaders/snapshot2.test0000644000000000000000000000013212061327176015471 xustar0030 mtime=1355132542.006822024 30 atime=1711552114.513450979 30 ctime=1495037540.796435664 quilt-0.68/test/snapshot2.test0000644000076500001440000000201712061327176016727 0ustar00khaliusers00000000000000 $ mkdir patches d $ quilt new snapshot > Patch %{P}snapshot is now on top $ cd d $ quilt add f.txt > File d/f.txt added to patch %{_P}snapshot $ cat > f.txt < f.txt $ quilt add g.txt > File d/g.txt added to patch %{_P}snapshot $ cat > g.txt < g.txt $ quilt refresh > Refreshed patch %{_P}snapshot $ quilt snapshot $ quilt fork > Fork of patch %{_P}snapshot created as %{_P}snapshot-2 $ rm g.txt $ quilt add h.txt > File d/h.txt added to patch %{_P}snapshot-2 $ cat > h.txt < h.txt $ cat >> f.txt < more changes $ quilt refresh > Refreshed patch %{_P}snapshot-2 $ quilt diff --snapshot | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/d/f\.txt > =================================================================== > @@ -1 +1,2 @@ > f.txt > +more changes >~ Index: [^/]+/d/g\.txt > =================================================================== > @@ -1 +0,0 @@ > -g.txt >~ Index: [^/]+/d/h\.txt > =================================================================== > @@ -0,0 +1 @@ > +h.txt quilt-0.68/test/PaxHeaders/setup.test0000644000000000000000000000013013442210673014703 xustar0029 mtime=1552486843.85456917 30 atime=1711552114.513450979 29 ctime=1552486843.85456917 quilt-0.68/test/setup.test0000644000076500001440000000633313442210673016150 0ustar00khaliusers00000000000000$ mkdir dir $ echo 1 > dir/foo.orig $ echo 2 > dir/foo $ diff -u dir/foo.orig dir/foo > foo.diff $ diff -u dir/foo.orig dir/foo > revert.diff $ diff -u dir/foo.orig dir/foo > again.diff $ mv dir/foo.orig dir/foo $ tar cf - dir | gzip > dir.tar.gz $ mkdir dir/patches $ echo crap > dir/patches/foo.diff $ tar cf - dir | gzip > dir_with_patches.tar.gz $ rm -rf dir $ cat > series < # Source: dir.tar.gz < # Patchdir: dir < # < foo.diff -p1 < revert.diff -p1 -R < again.diff $ quilt setup series > Unpacking archive dir.tar.gz $ cd dir $ ls -l patches series | sed -e 's:.* -> ::' > .. > ../series $ quilt push -qa > Applying patch %{P}foo.diff > Applying patch %{P}revert.diff > Applying patch %{P}again.diff > Now at patch %{P}again.diff $ cd .. $ rm -rf dir # Quilt setup should happily ignore patches and .pc directories $ mkdir .pc patches $ quilt setup series > Unpacking archive dir.tar.gz $ rm -rf dir .pc patches $ quilt setup -d other series > Unpacking archive dir.tar.gz $ cd other/dir $ ls -l patches series | sed -e 's:.* -> ::' > ../.. > ../../series $ quilt push -qa > Applying patch %{P}foo.diff > Applying patch %{P}revert.diff > Applying patch %{P}again.diff > Now at patch %{P}again.diff $ cd ../.. $ rm -rf other $ mkdir dir1 $ mv series dir1 $ cd dir1 $ quilt setup -d ../other series > File dir.tar.gz not found $ quilt setup --sourcedir .. -d ../other series > Unpacking archive ../dir.tar.gz $ cd ../other/dir $ ls -l patches series | sed -e 's:.* -> ::' > ../.. > ../../dir1/series $ quilt push -qa > Applying patch %{P}foo.diff > Applying patch %{P}revert.diff > Applying patch %{P}again.diff > Now at patch %{P}again.diff $ cd ../.. $ rm -rf "dir" # Now test the cases where the directory already exists, or the tarball # contains a patches directory $ cat > series_with_patches < # Source: dir_with_patches.tar.gz < # Patchdir: dir < # < foo.diff $ mkdir dir $ quilt setup series_with_patches > Directory dir exists $ rmdir dir $ quilt setup series_with_patches > Unpacking archive dir_with_patches.tar.gz > Directory dir/patches exists > Trying alternative patches and series names... $ cd dir $ ls -l quilt_patches quilt_series | sed -e 's:.* -> ::' > .. > ../series_with_patches $ quilt push -qa >~ Applying patch (quilt_patches/)?foo.diff >~ Now at patch (quilt_patches/)?foo.diff $ cd .. $ rm -rf "dir" # Now a basic test with space in dir name $ mkdir "space [dir]" $ echo 1 > "space [dir]/foo.orig" $ echo 2 > "space [dir]/foo" # Recent versions of GNU diff will quote such file names, but old versions # of GNU patch do not support that, so strip the quotes $ diff -u "space [dir]/foo.orig" "space [dir]/foo" | sed -e 's:"::g' > foo.diff $ cp foo.diff revert.diff $ cp foo.diff again.diff $ mv "space [dir]/foo.orig" "space [dir]/foo" $ tar cf - "space [dir]" | gzip > "space [dir].tar.gz" $ rm -rf "space [dir]" $ cat > series < # Source: space [dir].tar.gz < # Patchdir: space [dir] < # < foo.diff -p1 < revert.diff -p1 -R < again.diff $ quilt setup series > Unpacking archive space [dir].tar.gz $ cd space\ [dir] $ ls -l patches series | sed -e 's:.* -> ::' > .. > ../series $ quilt push -qa > Applying patch %{P}foo.diff > Applying patch %{P}revert.diff > Applying patch %{P}again.diff > Now at patch %{P}again.diff $ cd .. $ rm -rf "space [dir]" quilt-0.68/test/PaxHeaders/revert.test0000644000000000000000000000013213104354070015047 xustar0030 mtime=1494341688.103357068 30 atime=1711552114.513450979 30 ctime=1495037540.804435804 quilt-0.68/test/revert.test0000644000076500001440000000242013104354070016303 0ustar00khaliusers00000000000000 $ mkdir patches $ mkdir sub $ echo f1 > sub/f $ echo g1 > sub/g $ quilt new p.diff > Patch %{P}p.diff is now on top $ quilt add sub/f sub/g sub/h > File sub/f added to patch %{P}p.diff > File sub/g added to patch %{P}p.diff > File sub/h added to patch %{P}p.diff $ echo h1 > sub/h $ quilt revert sub/h > Changes to sub/h in patch %{P}p.diff reverted $ quilt diff -z # Our patch modifies file f, deletes file g and creates file h $ echo f2 > sub/f $ rm -f sub/g $ echo h2 > sub/h $ quilt refresh > Refreshed patch %{P}p.diff # Check if we can revert modifications $ cd sub $ echo f3 > f $ echo h3 > h $ quilt revert f g h > Changes to sub/f in patch %{_P}p.diff reverted > File sub/g is unchanged > Changes to sub/h in patch %{_P}p.diff reverted $ quilt diff -z # Check if we can revert file creation $ echo g3 > g $ quilt revert f g > File sub/f is unchanged > Changes to sub/g in patch %{_P}p.diff reverted $ quilt diff -z $ [ ! -e g ] || echo "File sub/g shouldn't exist" # Check if we can revert file deletion $ rm f h $ quilt revert f h > Changes to sub/f in patch %{_P}p.diff reverted > Changes to sub/h in patch %{_P}p.diff reverted $ quilt diff -z $ [ -e f ] || echo "File sub/f should exist" $ [ -e h ] || echo "File sub/h should exist" quilt-0.68/test/PaxHeaders/rename.test0000644000000000000000000000013212061327176015017 xustar0030 mtime=1355132542.005822023 30 atime=1711552114.513450979 30 ctime=1495037540.796435664 quilt-0.68/test/rename.test0000644000076500001440000000254512061327176016263 0ustar00khaliusers00000000000000 $ mkdir patches $ cat > announce.txt < A short summary of the fixes are below. $ quilt new original-name.diff > Patch %{P}original-name.diff is now on top $ quilt add announce.txt > File announce.txt added to patch %{P}original-name.diff $ cat > announce.txt < The diffstat and short summary of the fixes are below. $ quilt refresh > Refreshed patch %{P}original-name.diff $ quilt series -v > = %{P}original-name.diff $ quilt rename _tmp_name.diff > Patch %{P}original-name.diff renamed to %{P}_tmp_name.diff $ quilt series -v > = %{P}_tmp_name.diff $ quilt pop > Removing patch %{P}_tmp_name.diff > Restoring announce.txt > > No patches applied $ quilt series -v > %{P}_tmp_name.diff $ quilt rename -P random_name.diff final.name.diff > Patch random_name.diff is not in series $ quilt rename final.name.diff > No patches applied $ quilt rename -P _tmp_name.diff _tmp_name.diff > Patch %{P}_tmp_name.diff exists already, please choose a different name $ quilt rename -P _tmp_name.diff newsubdir/final.name.diff > Patch %{P}_tmp_name.diff renamed to %{P}newsubdir/final.name.diff $ quilt series -v > %{P}newsubdir/final.name.diff $ quilt push -q > Applying patch %{P}newsubdir/final.name.diff > Now at patch %{P}newsubdir/final.name.diff $ quilt pop -q > Removing patch %{P}newsubdir/final.name.diff > No patches applied quilt-0.68/test/PaxHeaders/remove-trailing-ws.test0000644000000000000000000000013112267172422017302 xustar0029 mtime=1390212370.85141246 30 atime=1711552114.512450967 30 ctime=1495037540.800435734 quilt-0.68/test/remove-trailing-ws.test0000644000076500001440000000671612267172422020553 0ustar00khaliusers00000000000000# Unit test for the remove-trailing-ws script. # Prepare the working directory $ mkdir files.orig files $ cat > files.orig/add < Line 1 < Line 2 < Line 3 < < Line 5 < Line 6 $ cat > files.orig/change < change < from < this $ cat > files.orig/complex < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line 10 $ cat > files.orig/delete < delete < an old < file $ cat > files.orig/remove < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cat > files.orig/remove-at-end < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line 10 $ cat > files/add < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cat > files/change < change < to < that $ cat > files/complex < Line 1 < Line 2 < Line 3 < Line 4 < < Line 5 < Line 6 < < Line 7 < Line 8 < < Line 9 < Line A < < Line B < Line C < < Line D < Line E < Line F < Line 10 $ cat > files/create < create < a new < file $ cat > files/remove < Line 1 < Line 2 < Line 3 < < Line 5 < Line 6 $ cat > files/remove-at-end < Line 1 < Line 2 < < Line 3 < Line 4 < < Line 5 < Line 6 $ cp -r files files.backup # Generate the two patches $ diff -ruN files.orig files > unified.diff # For the context diff we need the files listed in a certain order to # cover some corner cases $ diff -c files.orig/add files/add > context.diff $ diff -C 10 files.orig/remove-at-end files/remove-at-end >> context.diff $ diff -cN files.orig/create files/create | sed -e '/^diff /d' >> context.diff $ diff -cN files.orig/delete files/delete >> context.diff $ diff -c files.orig/remove files/remove | sed -e '/^diff /d' >> context.diff $ diff -c files.orig/change files/change | sed -e '/^diff /d' >> context.diff $ diff -c files.orig/complex files/complex >> context.diff $ %{QUILT_DIR}/scripts/remove-trailing-ws < unified.diff > unified-wsok.diff > Removing trailing whitespace from line 5 of files/add > Removing trailing whitespace from lines 2,3 of files/change > Removing trailing whitespace from lines 12,16 of files/complex > Removing trailing whitespace from lines 1,2,3 of files/create $ wc -l files/add >~ (\s+)?8 files/add $ wc -l files/change >~ (\s+)?3 files/change $ wc -l files/complex >~ (\s+)?21 files/complex $ wc -l files/create >~ (\s+)?3 files/create $ wc -l files/remove >~ (\s+)?6 files/remove $ wc -l files/remove-at-end >~ (\s+)?8 files/remove-at-end $ wc -l unified.diff >~ (\s+)?85 unified.diff $ wc -l unified-wsok.diff >~ (\s+)?85 unified-wsok.diff $ diff -u unified.diff unified-wsok.diff | grep '^++[^+]' > ++Line 4 > ++to > ++that > ++Line 9 > ++Line C > ++create > ++a new > ++file $ rm -rf files $ mv files.backup files $ %{QUILT_DIR}/scripts/remove-trailing-ws < context.diff > context-wsok.diff > Removing trailing whitespace from line 5 of files/add > Removing trailing whitespace from lines 2,3 of files/change > Removing trailing whitespace from lines 12,16 of files/complex > Removing trailing whitespace from lines 1,2,3 of files/create $ wc -l files/add >~ (\s+)?8 files/add $ wc -l files/change >~ (\s+)?3 files/change $ wc -l files/complex >~ (\s+)?21 files/complex $ wc -l files/create >~ (\s+)?3 files/create $ wc -l files/remove >~ (\s+)?6 files/remove $ wc -l files/remove-at-end >~ (\s+)?8 files/remove-at-end $ wc -l context.diff >~ (\s+)?104 context.diff $ wc -l context-wsok.diff >~ (\s+)?104 context-wsok.diff $ diff -u context.diff context-wsok.diff | grep '^+[+!] ' > ++ Line 4 > ++ create > ++ a new > ++ file > +! to > +! that > +! Line 9 > +! Line C quilt-0.68/test/PaxHeaders/remember-locations.test0000644000000000000000000000013213442473552017343 xustar0030 mtime=1552578410.823453818 30 atime=1711552114.512450967 30 ctime=1552578410.823453818 quilt-0.68/test/remember-locations.test0000644000076500001440000000130413442473552020577 0ustar00khaliusers00000000000000 $ mkdir -p my/changes $ export QUILT_PATCHES=my/changes $ export QUILT_SERIES=patchlist $ quilt new mychange1 >~ Patch (my/changes/)?mychange1 is now on top $ unset QUILT_PATCHES $ unset QUILT_SERIES $ cat %{QUILT_PC}/.quilt_patches > my/changes $ cat %{QUILT_PC}/.quilt_series > patchlist $ cat my/changes/patchlist > mychange1 # Verify that the custom location is still used even # if QUILT_PATCHES is not set $ quilt new mychange2 >~ Patch (my/changes/)?mychange2 is now on top # Verify that the root directory can be identified even # without QUILT_PATCHES with the QUILT_PC directory $ cd my $ quilt applied >~ (../my/changes/)?mychange1 >~ (../my/changes/)?mychange2 $ cd .. quilt-0.68/test/PaxHeaders/refresh-z.test0000644000000000000000000000013213104354070015445 xustar0030 mtime=1494341688.103357068 30 atime=1711552114.512450967 30 ctime=1495037540.804435804 quilt-0.68/test/refresh-z.test0000644000076500001440000000073613104354070016711 0ustar00khaliusers00000000000000 $ mkdir patches $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add foo > File foo added to patch %{P}test.diff $ echo foo > foo $ quilt refresh > Refreshed patch %{P}test.diff $ echo bar >> foo $ quilt refresh -z > Fork of patch %{P}test.diff created as %{P}test-2.diff $ echo baz >> foo $ quilt refresh -zbaz.diff > Fork of patch %{P}test-2.diff created as %{P}baz.diff $ quilt series > %{P}test.diff > %{P}test-2.diff > %{P}baz.diff quilt-0.68/test/PaxHeaders/refresh.test0000644000000000000000000000013213104354760015204 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.512450967 30 ctime=1495037540.804435804 quilt-0.68/test/refresh.test0000644000076500001440000000056413104354760016447 0ustar00khaliusers00000000000000 $ mkdir patches $ echo a > a $ echo b > b $ diff -u a b > patches/patch $ echo patch -p0 > patches/series $ rm -f b $ quilt push -q > Applying patch %{P}patch > Now at patch %{P}patch $ echo a > a $ quilt refresh > Nothing in patch %{P}patch $ quilt pop > Removing patch %{P}patch > Restoring a > > No patches applied $ cat a > a $ cat patches/patch quilt-0.68/test/PaxHeaders/refresh_patch_order.test0000644000000000000000000000013213102030271017540 xustar0030 mtime=1493708985.974406473 30 atime=1711552114.512450967 30 ctime=1495037540.808435874 quilt-0.68/test/refresh_patch_order.test0000644000076500001440000000250513102030271021000 0ustar00khaliusers00000000000000`quilt refresh` must respect the specified file order within patch: All files that were already in the patch must be first in the file (in the current order), and any new file must be in alphabetic order, after the last file that were already in the file. $ mkdir patches $ echo foo >foo $ echo fnord >fnord $ echo zulu >zulu $ quilt new bar > Patch %{P}bar is now on top Adding two files: they are in alphabetic order $ quilt add fnord zulu > File fnord added to patch %{P}bar > File zulu added to patch %{P}bar $ echo x >>fnord $ echo x >>zulu $ quilt refresh --no-timestamps -p ab > Refreshed patch %{P}bar $ grep '^--- ' patches/bar > --- a/fnord > --- a/zulu Add a new file: must be placed after the last one $ quilt add foo > File foo added to patch %{P}bar $ echo x >>foo $ quilt refresh --no-timestamps -p ab > Refreshed patch %{P}bar $ grep '^--- ' patches/bar > --- a/fnord > --- a/zulu > --- a/foo Remove the first file: should not change the relative order of others $ echo fnord >fnord $ quilt refresh --no-timestamps -p ab > Refreshed patch %{P}bar $ grep '^--- ' patches/bar > --- a/zulu > --- a/foo Readd the file: must now be last $ echo x >>fnord $ quilt refresh --no-timestamps -p ab > Refreshed patch %{P}bar $ grep '^--- ' patches/bar > --- a/zulu > --- a/foo > --- a/fnord quilt-0.68/test/PaxHeaders/project-settings.test0000644000000000000000000000013213442473552017060 xustar0030 mtime=1552578410.823453818 30 atime=1711552114.512450967 30 ctime=1552578410.823453818 quilt-0.68/test/project-settings.test0000644000076500001440000000107213442473552020316 0ustar00khaliusers00000000000000# Project settings should take precedence over user settings $ export QUILT_PATCHES=my_patches $ export QUILT_SERIES=my_series $ mkdir quilt_patches $ mkdir %{QUILT_PC} $ echo 2 > %{QUILT_PC}/.version $ echo quilt_patches > %{QUILT_PC}/.quilt_patches $ echo quilt_series > %{QUILT_PC}/.quilt_series $ echo create.patch > quilt_patches/quilt_series $ cat > quilt_patches/create.patch < --- a/file < +++ b/file < @@ -0,0 +1 @@ < +new line $ quilt push >~ Applying patch (quilt_patches/)?create.patch > patching file file > >~ Now at patch (quilt_patches/)?create.patch quilt-0.68/test/PaxHeaders/perms.test0000644000000000000000000000013212061327176014676 xustar0030 mtime=1355132542.005822023 30 atime=1711552114.512450967 30 ctime=1495037540.796435664 quilt-0.68/test/perms.test0000644000076500001440000000233212061327176016134 0ustar00khaliusers00000000000000 $ umask 022 $ mkdir patches $ echo foo > foo $ chmod 704 foo $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add foo > File foo added to patch %{P}test.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ echo foobar > foo $ quilt refresh > Refreshed patch %{P}test.diff $ quilt new test2.diff > Patch %{P}test2.diff is now on top $ quilt add foo > File foo added to patch %{P}test2.diff $ chmod 702 foo $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx----w- foo $ echo foobaz > foo $ quilt refresh > Refreshed patch %{P}test2.diff The permissions of foo as they were in patch2 are lost here (there is no way to preserve them in the patch). Quilt will restore the permissions of the backup file. $ quilt pop -q > Removing patch %{P}test2.diff > Now at patch %{P}test.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt push -q > Applying patch %{P}test2.diff > Now at patch %{P}test2.diff $ ls -l foo | awk '{ print substr($1, 1, 10), $NF }' > -rwx---r-- foo $ quilt pop -q > Removing patch %{P}test2.diff > Now at patch %{P}test.diff quilt-0.68/test/PaxHeaders/patch-wrapper.test0000644000000000000000000000013113442473552016330 xustar0030 mtime=1552578410.823453818 29 atime=1706202714.65454893 30 ctime=1552578410.823453818 quilt-0.68/test/patch-wrapper.test0000644000076500001440000000344013442473552017570 0ustar00khaliusers00000000000000$ mkdir somewhere $ cat > foo.orig < 1 < < 3 < < 5 $ sed -e 's/3/3a/' foo.orig > foo $ diff -u foo.orig foo > foo.diff $ mv foo.orig foo $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -s -p0 < foo.diff $ quilt pop -q > Removing patch %{P}foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-%{QUILT_PC}} $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper --backup -B xxx/ -s -p0 < foo.diff $ find xxx -type f > xxx/foo $ quilt pop -q > Removing patch %{P}foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-%{QUILT_PC}} $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -s -p0 -i foo.diff $ quilt pop -q > Removing patch %{P}foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-%{QUILT_PC}} $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -p0 < foo.diff > patching file foo $ quilt pop -q > Removing patch %{P}foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-%{QUILT_PC}} $ mv foo.diff somewhere/ $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -p0 < somewhere/foo.diff > patching file foo $ quilt pop -q > Removing patch %{P}somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-%{QUILT_PC}} $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -p0 -i somewhere/foo.diff > patching file foo $ quilt pop -q > Removing patch %{P}somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-%{QUILT_PC}} $ sed -e 's/5/5b/' foo > foo.new $ mv foo.new foo $ mkdir ${QUILT_PATCHES:-patches} $ patch-wrapper -p0 < somewhere/foo.diff > patching file foo > Hunk #1 succeeded at 1 with fuzz 1. $ cat foo.orig > 1 > > 3 > > 5b $ quilt pop -q > Removing patch %{P}somewhere/foo.diff > No patches applied $ rm -rf ${QUILT_PATCHES:-patches} ${QUILT_PC:-%{QUILT_PC}} quilt-0.68/test/PaxHeaders/one.test0000644000000000000000000000013212304115475014326 xustar0030 mtime=1393597245.373586925 30 atime=1711552114.511450954 30 ctime=1495037540.808435874 quilt-0.68/test/one.test0000644000076500001440000000724312304115475015572 0ustar00khaliusers00000000000000This is a minimal test script that runs a few quilt commands and verifies their output. Much needs to be done; particularly it sould be possible to run the tests using the built instead of the installed quilt with `make check'. $ mkdir patches $ mkdir dir $ echo "This is file one." > dir/file1 $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add dir/file1 > File dir/file1 added to patch %{P}patch1.diff $ quilt add file2 > File file2 added to patch %{P}patch1.diff $ quilt diff $ quilt diff -z $ quilt refresh > Nothing in patch %{P}patch1.diff $ echo "This is file two." > file2 $ quilt diff -p ab > Index: b/file2 > =================================================================== > --- /dev/null > +++ b/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt diff -z -p ab > Index: b/file2 > =================================================================== > --- /dev/null > +++ b/file2 > @@ -0,0 +1 @@ > +This is file two. $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt diff -z $ echo "Another line has been added." >> dir/file1 $ quilt diff -z -p ab > Index: b/dir/file1 > =================================================================== > --- a/dir/file1 > +++ b/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ quilt diff -z -p ab dir/file1 > Index: b/dir/file1 > =================================================================== > --- a/dir/file1 > +++ b/dir/file1 > @@ -1 +1,2 @@ > This is file one. > +Another line has been added. $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt add dir/file3 > File dir/file3 added to patch %{P}patch2.diff $ echo "This is file three." > dir/file3 $ quilt refresh > Refreshed patch %{P}patch2.diff $ quilt add -P patch1 dir/file3 > File dir/file3 modified by patch %{P}patch2.diff $ quilt pop -R > Removing patch %{P}patch2.diff > Removing dir/file3 > > Now at patch %{P}patch1.diff $ quilt add file4 > File file4 added to patch %{P}patch1.diff $ echo "This is file 4." > file4 $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt push > Applying patch %{P}patch2.diff >~ patching file `?dir/file3'? > > Now at patch %{P}patch2.diff $ quilt new subdir/patch3.diff > Patch %{P}subdir/patch3.diff is now on top $ quilt add file4 > File file4 added to patch %{P}subdir/patch3.diff $ rm -f file4 $ quilt diff -p ab > Index: b/file4 > =================================================================== > --- a/file4 > +++ /dev/null > @@ -1 +0,0 @@ > -This is file 4. $ quilt add -P patch2 file4 > File file4 modified by patch %{P}subdir/patch3.diff $ quilt refresh > Refreshed patch %{P}subdir/patch3.diff $ echo "Another line here, too." >> dir/file3 $ quilt refresh patch2 > Refreshed patch %{P}patch2.diff $ echo "Another line added." >> file2 $ quilt diff -z -P patch1 -p ab > Index: b/file2 > =================================================================== > --- a/file2 > +++ b/file2 > @@ -1 +1,2 @@ > This is file two. > +Another line added. > Warning: more recent patches modify files in patch %{P}patch1.diff $ quilt refresh patch1 > More recent patches modify files in patch %{P}patch1.diff. Enforce refresh with -f. $ quilt refresh -f patch1 > Refreshed patch %{P}patch1.diff $ echo "Another line here, too." >> dir/file3 $ quilt pop -R > Removing patch %{P}subdir/patch3.diff > Restoring file4 > > Now at patch %{P}patch2.diff $ quilt refresh patch2 > Refreshed patch %{P}patch2.diff $ quilt pop -qaR > Removing patch %{P}patch2.diff > Removing patch %{P}patch1.diff > No patches applied quilt-0.68/test/PaxHeaders/null-bug.test0000644000000000000000000000013213104354070015265 xustar0030 mtime=1494341688.102357056 30 atime=1711552114.511450954 30 ctime=1495037540.804435804 quilt-0.68/test/null-bug.test0000644000076500001440000000126413104354070016526 0ustar00khaliusers00000000000000 $ mkdir patches $ echo file > file $ quilt new remove.diff > Patch %{P}remove.diff is now on top $ quilt add file > File file added to patch %{P}remove.diff In this case, the original file in the --- line must not have .orig appended or else patch won't know the real original filename anymore. $ rm -f file $ quilt diff -p0 > Index: file > =================================================================== > --- file > +++ /dev/null > @@ -1 +0,0 @@ > -file $ quilt refresh -p0 > Refreshed patch %{P}remove.diff $ quilt pop -q > Removing patch %{P}remove.diff > No patches applied $ quilt push -q > Applying patch %{P}remove.diff > Now at patch %{P}remove.diff quilt-0.68/test/PaxHeaders/no-series.test0000644000000000000000000000013213667652742015471 xustar0030 mtime=1591694818.656340952 30 atime=1711552114.511450954 30 ctime=1591694818.656340952 quilt-0.68/test/no-series.test0000644000076500001440000000232513667652742016731 0ustar00khaliusers00000000000000# Test case for when no series file exists. $ mkdir patches $ touch file $ quilt annotate file > No series file found $ echo %{?} > 1 $ quilt applied > No series file found $ echo %{?} > 1 $ quilt diff > No series file found $ echo %{?} > 1 $ quilt files > No series file found $ echo %{?} > 1 $ quilt files -v > No series file found $ echo %{?} > 1 $ quilt fork > No series file found $ echo %{?} > 1 $ quilt graph > No series file found $ echo %{?} > 1 $ quilt header > No series file found $ echo %{?} > 1 $ quilt next > No series file found $ echo %{?} > 1 $ quilt patches file > No series file found $ echo %{?} > 1 $ quilt pop > No series file found $ echo %{?} > 1 $ quilt pop -v > No series file found $ echo %{?} > 1 $ quilt previous > No series file found $ echo %{?} > 1 $ quilt push > No series file found $ echo %{?} > 1 $ quilt push -v > No series file found $ echo %{?} > 1 $ quilt refresh > No series file found $ echo %{?} > 1 $ quilt series > No series file found $ echo %{?} > 1 $ quilt series -v > No series file found $ echo %{?} > 1 $ quilt snapshot > No series file found $ echo %{?} > 1 $ quilt top > No series file found $ echo %{?} > 1 $ quilt unapplied > No series file found $ echo %{?} > 1 quilt-0.68/test/PaxHeaders/nolink.test0000644000000000000000000000013213442473552015046 xustar0030 mtime=1552578410.823453818 30 atime=1711552114.511450954 30 ctime=1552578410.823453818 quilt-0.68/test/nolink.test0000644000076500001440000000267113442473552016312 0ustar00khaliusers00000000000000 $ mkdir patches # quilt should preserve hard links and not create new ones $ echo foo > foo $ ln foo foo2 $ ls -l foo | awk '{ print $2 }' > 2 $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add foo > File foo added to patch %{P}test.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l %{QUILT_PC}/test.diff/foo | awk '{ print $2 }' > 2 $ echo "foo changed" > foo $ quilt refresh > Refreshed patch %{P}test.diff $ quilt new test2.diff > Patch %{P}test2.diff is now on top $ quilt add foo > File foo added to patch %{P}test2.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l %{QUILT_PC}/test2.diff/foo | awk '{ print $2 }' > 1 $ echo "foo changed again" > foo $ quilt refresh > Refreshed patch %{P}test2.diff $ quilt pop -q > Removing patch %{P}test2.diff > Now at patch %{P}test.diff $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l %{QUILT_PC}/test.diff/foo | awk '{ print $2 }' > 2 $ quilt pop -q > Removing patch %{P}test.diff > No patches applied $ ls -l foo | awk '{ print $2 }' > 2 # quilt revert should not create hard links $ echo bar > bar $ quilt push -q > Applying patch %{P}test.diff > Now at patch %{P}test.diff $ quilt add bar > File bar added to patch %{P}test.diff $ echo "bar changed" > bar $ quilt revert bar > Changes to bar in patch %{P}test.diff reverted $ ls -l bar | awk '{ print $2 }' > 1 $ quilt pop -q > Removing patch %{P}test.diff > No patches applied quilt-0.68/test/PaxHeaders/no-file-to-patch.test0000644000000000000000000000013213104354760016614 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.511450954 30 ctime=1495037540.804435804 quilt-0.68/test/no-file-to-patch.test0000644000076500001440000000116413104354760020054 0ustar00khaliusers00000000000000# Test case for patches which attempt to modify a file which doesn't exist. # As no part of the patch applies, this triggers a corner case in # backup-files (restore called but no file to restore.) $ mkdir patches $ cat > patches/series < one.patch $ cat > patches/one.patch < --- a/foo < +++ b/foo < @@ -1 +1 @@ < -foo < +bar $ quilt push -q > Applying patch %{P}one.patch > The text leading up to this was: > -------------------------- > |--- a/foo > |+++ b/foo > -------------------------- > No file to patch. Skipping patch. > 1 out of 1 hunk ignored > Patch %{P}one.patch does not apply (enforce with -f) $ echo %{?} > 1 quilt-0.68/test/PaxHeaders/new.test0000644000000000000000000000013213104354760014337 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.510450941 30 ctime=1495037540.808435874 quilt-0.68/test/new.test0000644000076500001440000000201513104354760015573 0ustar00khaliusers00000000000000 $ mkdir patches $ echo reject > f $ echo p.diff > patches/series $ cat > patches/p.diff < --- d.orig/f < +++ d/f < @@ -1 +1 @@ < -old < +new < --- d.orig/g < +++ d/g < @@ -0,0 +1 @@ < +added $ quilt push > Applying patch %{P}p.diff >~ patching file `?f'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?f'? >~ patching file `?g'? > Patch %{P}p.diff does not apply (enforce with -f) $ quilt push -f > Applying patch %{P}p.diff >~ patching file `?f'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- saving rejects to (file )?`?f.rej'? >~ patching file `?g'? > Applied patch %{P}p.diff (forced; needs refresh) $ echo new > f $ quilt refresh -p ab > Refreshed patch %{P}p.diff $ cat patches/p.diff > Index: b/f > =================================================================== > --- a/f > +++ b/f > @@ -1 +1 @@ > -reject > +new > Index: b/g > =================================================================== > --- /dev/null > +++ b/g > @@ -0,0 +1 @@ > +added quilt-0.68/test/PaxHeaders/new-nosubdir.test0000644000000000000000000000013112061327176016163 xustar0029 mtime=1355132542.00282202 30 atime=1711552114.510450941 30 ctime=1495037540.796435664 quilt-0.68/test/new-nosubdir.test0000644000076500001440000000014612061327176017423 0ustar00khaliusers00000000000000 $ mkdir patches $ mkdir sub $ cd sub $ quilt new here.diff > Patch %{_P}here.diff is now on top quilt-0.68/test/PaxHeaders/missing.test0000644000000000000000000000013213104354760015217 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.510450941 30 ctime=1495037540.804435804 quilt-0.68/test/missing.test0000644000076500001440000000107013104354760016453 0ustar00khaliusers00000000000000 $ mkdir patches $ cat > patches/series < missing1.diff < missing2.diff $ quilt push -qa > Applying patch %{P}missing1.diff > Patch %{P}missing1.diff does not exist; applied empty patch > Applying patch %{P}missing2.diff > Patch %{P}missing2.diff does not exist; applied empty patch > Now at patch %{P}missing2.diff $ quilt rename missing3.diff > Patch %{P}missing2.diff renamed to %{P}missing3.diff $ quilt pop -qa > Patch %{P}missing3.diff appears to be empty, removing > Patch %{P}missing1.diff appears to be empty, removing > No patches applied quilt-0.68/test/PaxHeaders/missing-newline.test0000644000000000000000000000013213441473730016661 xustar0030 mtime=1552316376.596255697 30 atime=1711552114.510450941 30 ctime=1552316376.617255912 quilt-0.68/test/missing-newline.test0000644000076500001440000000065713441473730020127 0ustar00khaliusers00000000000000$ mkdir patches $ echo foo > foo $ quilt new 1.patch > Patch %{P}1.patch is now on top $ quilt add foo > File foo added to patch %{P}1.patch $ echo bar > foo $ quilt refresh -p ab > Refreshed patch %{P}1.patch # Sabotage the series file $ echo -n 1.patch > patches/series # quilt should insert the missing newline before appending $ quilt new 2.patch > Patch %{P}2.patch is now on top $ cat patches/series > 1.patch > 2.patch quilt-0.68/test/PaxHeaders/merge.test0000644000000000000000000000013214377436653014664 xustar0030 mtime=1677606315.921186252 30 atime=1711552114.510450941 30 ctime=1677606315.921186252 quilt-0.68/test/merge.test0000644000076500001440000000320614377436653016123 0ustar00khaliusers00000000000000Test the patch merging functionality of `quilt diff'. $ mkdir patches $ cat > abc.txt < a < b < c $ cat > patches/series < a.diff < b.diff < c.diff $ cat > patches/a.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -1 +1 @@ < -a < +a+ $ cat > patches/b.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -2 +2 @@ < -b < +b+ $ cat > patches/c.diff < --- merge.orig/abc.txt < +++ merge/abc.txt < @@ -3 +3 @@ < -c < +c+ $ quilt push -qa > Applying patch %{P}a.diff > Applying patch %{P}b.diff > Applying patch %{P}c.diff > Now at patch %{P}c.diff $ quilt diff -P b.diff >/dev/null > Warning: more recent patches modify files in patch %{P}b.diff $ quilt diff -P b.diff 2>/dev/null | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > a+ > -b > +b+ > c $ quilt diff --combine a.diff -P b.diff >/dev/null > Warning: more recent patches modify files in patch %{P}b.diff $ quilt diff --combine a.diff -P b.diff 2>/dev/null | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > -a > -b > +a+ > +b+ > c $ quilt diff --combine b.diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > a+ > -b > -c > +b+ > +c+ $ quilt diff --combine - | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/abc\.txt > =================================================================== > @@ -1,3 +1,3 @@ > -a > -b > -c > +a+ > +b+ > +c+ quilt-0.68/test/PaxHeaders/mail.test0000644000000000000000000000013114120371471014464 xustar0029 mtime=1631712057.38599336 30 atime=1711552114.509450929 30 ctime=1631712057.386993375 quilt-0.68/test/mail.test0000644000076500001440000000627214120371471015732 0ustar00khaliusers00000000000000 $ mkdir patches $ cat > no-subject < Here goes a longer description of the patch, which is < totally useless except as a test case for the quilt mail < command. This paragraph is longer than 150 characters so < that it won't be taken for a subject header itself. < < Index: anything $ cat no-subject > patches/1.diff $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" > Unable to extract a subject header from %{P}1.diff $ cat - no-subject > patches/1.diff < Subject: Subject of 1.diff < < Acked-by: Dummy < $ quilt mail --mbox mbox --prefix "test" -m "Message" > Introduction has no subject header $ cat - no-subject > patches/2.diff < DESC < Subject of 2.diff < is: split < into multiple < lines < EDESC < < Signed-off-by: Dummy < $ cat - no-subject > patches/3.diff < Subject of 3.diff < < To: John X. Doe < $ cat - no-subject > patches/4.diff < First paragraph used as < subject of 4.diff. < < Signed-off-by: Joe R. Hacker < Cc: "John X. Doe" < Cc: Ü is an umlaut < $ cat - no-subject > patches/5.diff < Subject of 1.diff < $ cat - no-subject > patches/6.diff < Subject of 1.diff < # Test 3 duplicate headers $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" > Patches %{P}1.diff, %{P}5.diff, %{P}6.diff have duplicate subject headers. # Test 2 duplicate headers $ rm patches/6.diff $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" > Patches %{P}1.diff, %{P}5.diff have duplicate subject headers. $ cat - no-subject > patches/5.diff < Aw: [patch] Fwd: Re: [patch 5/7] Fw: Subject of 5.diff < $ cat - no-subject > patches/6.diff < Subject: Must not expand * ? [abc] < $ cat - no-subject > patches/7.diff < Subject: Subject of 7.diff is so long < that it spans over < multiple lines < < Signed-off-by: someone@without.name < $ ls patches/ > series $ quilt mail --mbox mbox --prefix "test" --subject "This is a test" -m "Message" $ sed -nre "s/^(From [^ ]*).*/\\1/p" -e "/^Subject:/p" -e "/^To:/p" -e "/^Cc:/p" -e "/^ /p" -e "/^Replace-.*:/p" -e "/^Recipient-.*:/p" mbox > From a@b.c > Subject: [test 0/7] This is a test > From a@b.c > Cc: Dummy > Subject: [test 1/7] Subject of 1.diff > From a@b.c > Cc: Dummy > Subject: [test 2/7] Subject of 2.diff is: split into multiple lines > From a@b.c > To: "John X. Doe" > Subject: [test 3/7] Subject of 3.diff > To: John X. Doe > From a@b.c > Cc: "Joe R. Hacker" , > "John X. Doe" , > =?UTF-8?q?=C3=9C=20is=20an=20umlaut?= > Subject: [test 4/7] First paragraph used as subject of 4.diff. > Cc: "John X. Doe" > Cc: Ü is an umlaut > From a@b.c > Subject: [test 5/7] Subject of 5.diff > From a@b.c > Subject: [test 6/7] Must not expand * ? [abc] > From a@b.c > Cc: someone@without.name > Subject: [test 7/7] Subject of 7.diff is so long > that it spans over > multiple lines quilt-0.68/test/PaxHeaders/import.test0000644000000000000000000000013014114434344015055 xustar0029 mtime=1630681316.17808294 30 atime=1711552114.509450929 29 ctime=1630681316.17808294 quilt-0.68/test/import.test0000644000076500001440000001367214114434344016326 0ustar00khaliusers00000000000000 $ mkdir patches $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt new patchR.diff > Patch %{P}patchR.diff is now on top $ quilt add f > File f added to patch %{P}patchR.diff $ rm -f f $ quilt refresh > Refreshed patch %{P}patchR.diff $ quilt fork patchRp0.diff > Fork of patch %{P}patchR.diff created as %{P}patchRp0.diff $ quilt refresh -p0 > Refreshed patch %{P}patchRp0.diff $ quilt pop -a > Removing patch %{P}patchRp0.diff > Restoring f > > Removing patch %{P}patch1.diff > Removing f > > No patches applied $ mkdir t $ mv patches/patch1.diff t/patch1.diff $ mv patches/patchR.diff t/patchR.diff $ mv patches/patchRp0.diff t/patchRp0.diff # test importing into an empty series $ rm -rf patches/ %{QUILT_PC}/ $ mkdir patches $ quilt import t/patch1.diff > Importing patch t/patch1.diff (stored as %{P}patch1.diff) $ quilt push > Applying patch %{P}patch1.diff >~ patching file `?f'? > > Now at patch %{P}patch1.diff $ quilt new patch2.diff > Patch %{P}patch2.diff is now on top $ quilt add g > File g added to patch %{P}patch2.diff $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff $ quilt pop > Removing patch %{P}patch2.diff > Removing g > > Now at patch %{P}patch1.diff $ quilt header -a < original description > Appended text to header of patch %{P}patch1.diff $ quilt pop > Removing patch %{P}patch1.diff > Removing f > > No patches applied $ quilt delete patch1 > Removed patch %{P}patch1.diff $ cat patches/series > patch2.diff # test a few error cases $ quilt import missing.diff > Patch missing.diff does not exist $ quilt import patches/patch1.diff > Importing patch %{P}patch1.diff $ quilt import patches/patch2.diff > Patch %{P}patch2.diff already exists in series. # a simple use of import $ quilt import t/patch1.diff > Patch %{P}patch1.diff exists. Replace with -f. $ quilt import -f t/patch1.diff > Replacing patch %{P}patch1.diff with new version # an import requiring a description merge $ sed -e 's/original/new/' patches/patch1.diff > t/patch1.diff $ quilt import t/patch1.diff > Patch %{P}patch1.diff exists. Replace with -f. $ quilt import -f t/patch1.diff > Patch headers differ: > @@ -1 +1 @@ > -original description > +new description > Please use -d {o|a|n} to specify which patch header(s) to keep. $ quilt import -d a -f t/patch1.diff > Replacing patch %{P}patch1.diff with new version # quilt header does not work in this case because it stops at '---' $ head -n 3 patches/patch1.diff > original description > --- > new description $ quilt import -d n -f t/patch1.diff > Replacing patch %{P}patch1.diff with new version $ quilt header patch1 > new description $ quilt delete patch1 > Removed patch %{P}patch1.diff # make sure it accepts non-conflicting names # a small presentation problem here $ cp patches/patch1.diff t/patch1.patch $ quilt import t/patch1.patch > Importing patch t/patch1.patch (stored as %{P}patch1.patch) $ ls patches/ > patch1.diff > patch1.patch > patch2.diff > series $ cat patches/series > patch1.patch > patch2.diff $ quilt delete patch1.diff > Patch patch1.diff is not in series # test importing a reverse patch $ rm -rf patches/ %{QUILT_PC}/ $ mkdir patches $ quilt import -R t/patchR.diff > Importing patch t/patchR.diff (stored as %{P}patchR.diff) $ quilt push > Applying patch %{P}patchR.diff >~ patching file `?f'? > > Now at patch %{P}patchR.diff $ cat f > f $ cat patches/series > patchR.diff -R # test that comments are preserved $ echo "# Test of -R import" > patches/series $ echo "patchR.diff -R # This patch was originally -R -p1" >> patches/series # refreshing a reverse patch un-reverses it $ quilt refresh > Refreshed patch %{P}patchR.diff $ cat patches/series > # Test of -R import > patchR.diff # This patch was originally -R -p1 $ touch f $ quilt pop > Removing patch %{P}patchR.diff > Removing f > > No patches applied # test importing a reverse patch with strip level $ rm -rf patches/ %{QUILT_PC}/ $ mkdir patches $ quilt import -R -p0 t/patchRp0.diff > Importing patch t/patchRp0.diff (stored as %{P}patchRp0.diff) $ quilt push > Applying patch %{P}patchRp0.diff >~ patching file `?f'? > > Now at patch %{P}patchRp0.diff $ cat f > f $ cat patches/series > patchRp0.diff -p0 -R # refreshing a reverse patch un-reverses it $ quilt refresh > Refreshed patch %{P}patchRp0.diff $ cat patches/series > patchRp0.diff -p0 $ touch f $ quilt pop > Removing patch %{P}patchRp0.diff > Removing f > > No patches applied # Test importing multiple patches at once $ rm -rf patches/ %{QUILT_PC}/ $ mkdir patches $ quilt import t/patch1.diff t/patchR.diff > Importing patch t/patch1.diff (stored as %{P}patch1.diff) > Importing patch t/patchR.diff (stored as %{P}patchR.diff) $ cat patches/series > patch1.diff > patchR.diff $ rm -rf patches/ %{QUILT_PC}/ $ mkdir patches $ quilt import t/patchR.diff > Importing patch t/patchR.diff (stored as %{P}patchR.diff) $ quilt import t/patch1.diff > Importing patch t/patch1.diff (stored as %{P}patch1.diff) $ cat patches/series > patch1.diff > patchR.diff # Also test importing when in a subdirectory $ touch empty.patch $ cd t $ touch empty2.patch $ quilt import ../empty.patch > Importing patch ../empty.patch (stored as %{_P}empty.patch) $ quilt import %{PWD}/empty2.patch > Importing patch %{PWD}/empty2.patch (stored as %{_P}empty2.patch) # Test importing under a different name $ cd .. $ quilt delete -rn > Removed patch %{P}empty2.patch $ quilt delete -rn > Removed patch %{P}empty.patch $ quilt import t/patch1.diff -P patch1-renamed.diff > Importing patch t/patch1.diff (stored as %{P}patch1-renamed.diff) $ quilt push > Applying patch %{P}patch1-renamed.diff > patching file f > > Now at patch patches/patch1-renamed.diff $ cat f > f quilt-0.68/test/PaxHeaders/import2.test0000644000000000000000000000013213442473552015150 xustar0030 mtime=1552578410.823453818 30 atime=1711552114.509450929 30 ctime=1552578410.823453818 quilt-0.68/test/import2.test0000644000076500001440000000606413442473552016414 0ustar00khaliusers00000000000000# same as import.test, but with compressed patches $ mkdir patches $ quilt new patch1.diff > Patch %{P}patch1.diff is now on top $ quilt add f > File f added to patch %{P}patch1.diff $ echo f > f $ quilt refresh > Refreshed patch %{P}patch1.diff $ quilt pop > Removing patch %{P}patch1.diff > Removing f > > No patches applied $ mkdir t $ gzip < patches/patch1.diff > t/patch1.diff.gz $ rm -f patches/patch1.diff # test importing into an empty series $ rm -rf patches/ %{QUILT_PC}/ $ mkdir patches $ quilt import t/patch1.diff.gz > Importing patch t/patch1.diff.gz (stored as %{P}patch1.diff.gz) $ quilt push > Applying patch %{P}patch1.diff.gz >~ patching file `?f'? > > Now at patch %{P}patch1.diff.gz $ quilt new patch2.diff.gz > Patch %{P}patch2.diff.gz is now on top $ quilt add g > File g added to patch %{P}patch2.diff.gz $ echo g > g $ quilt refresh > Refreshed patch %{P}patch2.diff.gz $ quilt pop > Removing patch %{P}patch2.diff.gz > Removing g > > Now at patch %{P}patch1.diff.gz $ quilt header -a < original description > Appended text to header of patch %{P}patch1.diff.gz $ quilt pop > Removing patch %{P}patch1.diff.gz > Removing f > > No patches applied $ quilt delete patch1 > Removed patch %{P}patch1.diff.gz $ cat patches/series > patch2.diff.gz # test a few error cases $ quilt import missing.diff.gz > Patch missing.diff.gz does not exist $ quilt import patches/patch1.diff.gz > Importing patch %{P}patch1.diff.gz $ quilt import patches/patch2.diff.gz > Patch %{P}patch2.diff.gz already exists in series. # a simple use of import $ quilt import t/patch1.diff.gz > Patch %{P}patch1.diff.gz exists. Replace with -f. $ quilt import -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version # an import requiring a description merge $ zcat patches/patch1.diff.gz | sed -e 's/original/new/' | gzip > t/patch1.diff.gz $ quilt import t/patch1.diff.gz > Patch %{P}patch1.diff.gz exists. Replace with -f. $ quilt import -f t/patch1.diff.gz > Patch headers differ: > @@ -1 +1 @@ > -original description > +new description > Please use -d {o|a|n} to specify which patch header(s) to keep. $ quilt import -d a -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version # quilt header does not work in this case because it stops at '---' $ zcat patches/patch1.diff.gz | head -n 3 > original description > --- > new description $ quilt import -d n -f t/patch1.diff.gz > Replacing patch %{P}patch1.diff.gz with new version $ quilt header patch1 > new description $ quilt delete patch1 > Removed patch %{P}patch1.diff.gz # make sure it accepts non-conflicting names # a small presentation problem here $ cp patches/patch1.diff.gz t/patch1.patch.gz $ quilt import t/patch1.patch.gz > Importing patch t/patch1.patch.gz (stored as %{P}patch1.patch.gz) $ ls patches/ > patch1.diff.gz > patch1.patch.gz > patch2.diff.gz > series $ cat patches/series > patch1.patch.gz > patch2.diff.gz $ quilt delete patch1.diff.gz > Patch patch1.diff.gz is not in series quilt-0.68/test/PaxHeaders/help.test0000644000000000000000000000013214060426731014476 xustar0030 mtime=1623338457.461690898 30 atime=1711552114.509450929 30 ctime=1623338457.552692399 quilt-0.68/test/help.test0000644000076500001440000000260614060426731015740 0ustar00khaliusers00000000000000# We simulate a working tree root so that quilt does not attempt to find one # in a parent directory, as this would invalidate this test $ mkdir $QUILT_PC $ echo 2 > $QUILT_PC/.version $ quilt add -h | grep -c '^Usage:' > 1 $ quilt annotate -h | grep -c '^Usage:' > 1 $ quilt applied -h | grep -c '^Usage:' > 1 $ quilt delete -h | grep -c '^Usage:' > 1 $ quilt diff -h | grep -c '^Usage:' > 1 $ quilt edit -h | grep -c '^Usage:' > 1 $ quilt files -h | grep -c '^Usage:' > 1 $ quilt fold -h | grep -c '^Usage:' > 1 $ quilt fork -h | grep -c '^Usage:' > 1 $ quilt graph -h | grep -c '^Usage:' > 1 $ quilt grep -h | grep -c '^Usage:' > 1 $ quilt header -h | grep -c '^Usage:' > 1 $ quilt import -h | grep -c '^Usage:' > 1 $ quilt mail -h | grep -c '^Usage:' > 1 $ quilt new -h | grep -c '^Usage:' > 1 $ quilt next -h | grep -c '^Usage:' > 1 $ quilt patches -h | grep -c '^Usage:' > 1 $ quilt pop -h | grep -c '^Usage:' > 1 $ quilt previous -h | grep -c '^Usage:' > 1 $ quilt push -h | grep -c '^Usage:' > 1 $ quilt refresh -h | grep -c '^Usage:' > 1 $ quilt remove -h | grep -c '^Usage:' > 1 $ quilt rename -h | grep -c '^Usage:' > 1 $ quilt series -h | grep -c '^Usage:' > 1 $ quilt setup -h | grep -c '^Usage:' > 1 $ quilt snapshot -h | grep -c '^Usage:' > 1 $ quilt top -h | grep -c '^Usage:' > 1 $ quilt unapplied -h | grep -c '^Usage:' > 1 $ quilt upgrade -h | grep -c '^Usage:' > 1 quilt-0.68/test/PaxHeaders/header.test0000644000000000000000000000013213104354070014770 xustar0030 mtime=1494341688.101357044 30 atime=1711552114.508450917 30 ctime=1495037540.804435804 quilt-0.68/test/header.test0000644000076500001440000000201113104354070016220 0ustar00khaliusers00000000000000 $ mkdir patches $ echo foo > foo $ quilt new patch > Patch %{P}patch is now on top $ quilt add foo > File foo added to patch %{P}patch $ echo bar > foo $ quilt refresh -p ab > Refreshed patch %{P}patch $ mv patches/patch patches/patch~ $ echo Header > patches/patch $ cat patches/patch~ >> patches/patch $ quilt header > Header $ quilt header -r < Header2 > Replaced header of patch %{P}patch $ quilt header > Header2 $ quilt header -a < Appended > Appended text to header of patch %{P}patch $ quilt header > Header2 > Appended $ cat patches/patch > Header2 > Appended > Index: b/foo > =================================================================== > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +bar $ echo -n "No trailing newline" | quilt header -r > Replaced header of patch patches/patch $ cat patches/patch > No trailing newline > Index: b/foo > =================================================================== > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +bar quilt-0.68/test/PaxHeaders/hard-linked-patch.test0000644000000000000000000000013213104354760017025 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.508450917 30 ctime=1495037540.804435804 quilt-0.68/test/hard-linked-patch.test0000644000076500001440000000160513104354760020265 0ustar00khaliusers00000000000000If a patch file has hard links, refreshing it should break the links so that the other copies are left unmodified. $ mkdir patches $ cat > patches/patch < --- file.orig < +++ file < @@ -1 +1 @@ < -a < +b $ echo patch -p0 > patches/series $ ln patches/patch hardlink $ echo a > file $ quilt push -q > Applying patch %{P}patch > Now at patch %{P}patch $ echo c > file $ quilt refresh --no-index > Refreshed patch %{P}patch $ cat patches/patch > --- file.orig > +++ file > @@ -1 +1 @@ > -a > +c $ cat hardlink > --- file.orig > +++ file > @@ -1 +1 @@ > -a > +b Same goes for a patch header update. $ rm -f hardlink $ ln patches/patch hardlink $ quilt header -r < c is so much better than a > Replaced header of patch %{P}patch $ cat patches/patch > c is so much better than a > --- file.orig > +++ file > @@ -1 +1 @@ > -a > +c $ cat hardlink > --- file.orig > +++ file > @@ -1 +1 @@ > -a > +c quilt-0.68/test/PaxHeaders/half-applies.test0000644000000000000000000000013213104354760016113 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.508450917 30 ctime=1495037540.800435734 quilt-0.68/test/half-applies.test0000644000076500001440000000213013104354760017345 0ustar00khaliusers00000000000000$ mkdir patches $ echo foo > foo.orig $ echo foo2 > foo $ echo bar > bar.orig $ echo bar2 > bar $ diff -u foo.orig foo >> patches/foorab.diff $ diff -u bar bar.orig >> patches/foorab.diff $ mv foo.orig foo $ mv bar.orig bar $ echo foorab.diff -p0 > patches/series $ quilt push > Applying patch %{P}foorab.diff >~ patching file `?foo'? >~ patching file `?bar'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?bar'? > Patch %{P}foorab.diff does not apply (enforce with -f) $ echo %{?} > 1 $ quilt push > Applying patch %{P}foorab.diff >~ patching file `?foo'? >~ patching file `?bar'? > Hunk #1 FAILED at 1. >~ 1 out of 1 hunk FAILED -- rejects in file `?bar'? > Patch %{P}foorab.diff does not apply (enforce with -f) $ echo %{?} > 1 $ quilt push -qf > Applying patch %{P}foorab.diff >~ 1 out of 1 hunk FAILED( -- saving rejects to( file)? bar.rej)? > Applied patch %{P}foorab.diff (forced; needs refresh) $ echo %{?} > 1 $ quilt diff > Index: foo > =================================================================== > --- foo.orig > +++ foo > @@ -1 +1 @@ > -foo > +foo2 $ echo %{?} > 0 quilt-0.68/test/PaxHeaders/formats.test0000644000000000000000000000013212267172422015223 xustar0030 mtime=1390212370.849412416 30 atime=1711552114.508450917 30 ctime=1495037540.800435734 quilt-0.68/test/formats.test0000644000076500001440000000347212267172422016467 0ustar00khaliusers00000000000000 # We create our own working directory to be able to verify # all patch formats, including the ones which mention the # base directory. $ mkdir -p d/patches $ cd d $ cat > test.txt < 1 < 2 < old < 4 < 5 $ quilt new test > Patch %{P}test is now on top $ quilt add test.txt > File test.txt added to patch %{P}test $ cat > test.txt < 1 < 2 < new < 4 < 5 $ quilt diff > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 $ quilt diff --no-index > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 $ quilt diff -R > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -new > +old > 4 > 5 $ quilt diff -U1 > Index: d/test.txt > =================================================================== > --- d.orig/test.txt > +++ d/test.txt > @@ -2,3 +2,3 @@ > 2 > -old > +new > 4 $ quilt diff -c > Index: d/test.txt > =================================================================== > *** d.orig/test.txt > --- d/test.txt > *************** > *** 1,5 **** > 1 > 2 > ! old > 4 > 5 > --- 1,5 ---- > 1 > 2 > ! new > 4 > 5 $ quilt diff -C1 > Index: d/test.txt > =================================================================== > *** d.orig/test.txt > --- d/test.txt > *************** > *** 2,4 **** > 2 > ! old > 4 > --- 2,4 ---- > 2 > ! new > 4 $ quilt diff -p ab > Index: b/test.txt > =================================================================== > --- a/test.txt > +++ b/test.txt > @@ -1,5 +1,5 @@ > 1 > 2 > -old > +new > 4 > 5 quilt-0.68/test/PaxHeaders/fold.test0000644000000000000000000000013213104354760014472 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.508450917 30 ctime=1495037540.808435874 quilt-0.68/test/fold.test0000644000076500001440000000270613104354760015735 0ustar00khaliusers00000000000000 $ mkdir patches $ cat > patches/series < patch1.diff $ cat > patches/patch1.diff < --- q.orig/file1.txt < +++ q/file1.txt < @@ -0,0 +1 @@ < +This is file1.txt. < --- q.orig/file2.txt < +++ q/file2.txt < @@ -0,0 +1 @@ < +This is file2.txt. $ quilt push -q > Applying patch %{P}patch1.diff > Now at patch %{P}patch1.diff $ quilt files > file1.txt > file2.txt $ quilt fold -q < --- q.orig/file2.txt < +++ q/file2.txt < @@ -1 +0,0 @@ < -This is file2.txt. < --- q.orig/dir/file3.txt < +++ q/dir/file3.txt < @@ -0,0 +1 @@ < +This is file3.txt. $ quilt diff -p ab > Index: b/file1.txt > =================================================================== > --- /dev/null > +++ b/file1.txt > @@ -0,0 +1 @@ > +This is file1.txt. > Index: b/dir/file3.txt > =================================================================== > --- /dev/null > +++ b/dir/file3.txt > @@ -0,0 +1 @@ > +This is file3.txt. $ cd dir $ quilt fold -q < --- dir.orig/file3.txt < +++ dir/file3.txt < @@ -1 +1 @@ < -This is file3.txt. < +This is file3.txt, now modified. $ cd .. $ quilt diff -p ab > Index: b/file1.txt > =================================================================== > --- /dev/null > +++ b/file1.txt > @@ -0,0 +1 @@ > +This is file1.txt. > Index: b/dir/file3.txt > =================================================================== > --- /dev/null > +++ b/dir/file3.txt > @@ -0,0 +1 @@ > +This is file3.txt, now modified. quilt-0.68/test/PaxHeaders/failpop.test0000644000000000000000000000013214465117052015202 xustar0030 mtime=1691655722.338605825 30 atime=1711552114.507450904 30 ctime=1691655722.338605825 quilt-0.68/test/failpop.test0000644000076500001440000000111614465117052016437 0ustar00khaliusers00000000000000 $ mkdir patches $ cat > test.txt < This is test.txt. $ quilt new test.diff > Patch %{P}test.diff is now on top $ echo %{?} > 0 $ quilt add test.txt > File test.txt added to patch %{P}test.diff $ echo %{?} > 0 $ cat >> test.txt < Line two. $ quilt refresh > Refreshed patch %{P}test.diff $ echo %{?} > 0 $ sed -e "s/ /_/g" patches/test.diff > patches/test.new $ mv patches/test.new patches/test.diff $ quilt pop > Patch %{P}test.diff does not remove cleanly (refresh it or enforce with -f) > Hint: `quilt diff -z' will show the pending changes. $ echo %{?} > 1 quilt-0.68/test/PaxHeaders/faildiff.test0000644000000000000000000000013214362500530015305 xustar0030 mtime=1674215768.745791397 30 atime=1711552114.507450904 30 ctime=1674215768.745791397 quilt-0.68/test/faildiff.test0000644000076500001440000000155414362500530016550 0ustar00khaliusers00000000000000 $ mkdir patches $ quilt new test.diff > Patch %{P}test.diff is now on top $ cat > test.txt < This is test.txt. $ quilt add test.txt > File test.txt added to patch %{P}test.diff What happens when diff fails because of a permission error? $ chmod -r test.txt $ quilt refresh >~ .*diff: test\.txt: Permission denied > Diff failed on file 'test.txt', aborting $ echo %{?} > 1 $ chmod +r test.txt What happens on binary files? $ printf "\\002\\000\\001" > test.bin $ quilt add test.bin > File test.bin added to patch %{P}test.diff $ printf "\\003\\000\\001" > test.bin $ quilt diff -pab --no-index 2>/dev/null >~ (Files|Binary files) a/test\.bin and b/test\.bin differ $ quilt diff -pab --no-index >/dev/null > Diff failed on file 'test.bin', aborting $ echo %{?} > 1 $ quilt refresh > Diff failed on file 'test.bin', aborting $ echo %{?} > 1 quilt-0.68/test/PaxHeaders/failbackup.test0000644000000000000000000000013213104354070015641 xustar0030 mtime=1494341688.101357044 30 atime=1711552114.507450904 30 ctime=1495037540.800435734 quilt-0.68/test/failbackup.test0000644000076500001440000000101613104354070017075 0ustar00khaliusers00000000000000 $ mkdir patches $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add test.txt > File test.txt added to patch %{P}test.diff $ cat > test.txt < This is test.txt. $ quilt refresh > Refreshed patch %{P}test.diff What happens when refresh fails because of a permission error? $ chmod -w patches $ cat > test.txt < This is updated test.txt. $ quilt refresh --backup >~ mv: cannot move [`']?patches/test.diff'? to [`']?patches/test.diff~'?: Permission denied $ echo %{?} > 1 $ chmod +w patches quilt-0.68/test/PaxHeaders/example1.test0000644000000000000000000000013213104354070015254 xustar0030 mtime=1494341688.100357033 30 atime=1711552114.507450904 30 ctime=1495037540.800435734 quilt-0.68/test/example1.test0000644000076500001440000001062713104354070016520 0ustar00khaliusers00000000000000The text used here was taken from: http://the-tech.mit.edu/Shakespeare/midsummer/full.html $ mkdir patches $ cat > Oberon.txt < Yet mark'd I where the bolt of Cupid fell: < It fell upon a little western flower, < Before milk-white, now purple with love's wound, < And girls call it love-in-idleness. $ quilt new flower.diff > Patch %{P}flower.diff is now on top $ quilt files $ quilt add Oberon.txt > File Oberon.txt added to patch %{P}flower.diff $ cat >> Oberon.txt < The juice of it on sleeping eye-lids laid < Will make a man or woman madly dote < Upon the next live creature that it sees. Or ``quilt edit Oberon.txt'' $ quilt refresh -p ab > Refreshed patch %{P}flower.diff $ cat patches/flower.diff > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,6 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ sed -ne '1,4p' Oberon.txt > Oberon.new $ echo "Fetch me that flower; the herb I shew'd thee once:" >> Oberon.new $ sed -e '1,4d' Oberon.txt >> Oberon.new $ mv Oberon.new Oberon.txt $ quilt diff -z -p ab > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,6 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > The juice of it on sleeping eye-lids laid > Will make a man or woman madly dote > Upon the next live creature that it sees. $ quilt diff -p ab > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And girls call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ quilt refresh > Refreshed patch %{P}flower.diff $ quilt top > %{P}flower.diff $ quilt files > Oberon.txt $ quilt patches Oberon.txt > %{P}flower.diff $ quilt pop -f > Removing patch %{P}flower.diff > Restoring Oberon.txt > > No patches applied $ quilt files patches/flower.diff > Oberon.txt $ sed -e "s/girls/maidens/" Oberon.txt > Oberon.new $ mv Oberon.new Oberon.txt $ quilt push > Applying patch %{P}flower.diff >~ patching file `?Oberon.txt'? > Hunk #1 FAILED at 2. >~ 1 out of 1 hunk FAILED -- rejects in file `?Oberon.txt'? > Patch %{P}flower.diff does not apply (enforce with -f) $ quilt push -f > Applying patch %{P}flower.diff >~ patching file `?Oberon.txt'? > Hunk #1 FAILED at 2. >~ 1 out of 1 hunk FAILED -- saving rejects to (file )?`?Oberon.txt.rej'? > Applied patch %{P}flower.diff (forced; needs refresh) $ cat >> Oberon.txt < Fetch me that flower; the herb I shew'd thee once: < The juice of it on sleeping eye-lids laid < Will make a man or woman madly dote < Upon the next live creature that it sees. $ quilt refresh -p ab > Refreshed patch %{P}flower.diff $ rm -f Oberon.txt.rej $ cat Oberon.txt > Yet mark'd I where the bolt of Cupid fell: > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And maidens call it love-in-idleness. > Fetch me that flower; the herb I shew'd thee once: > The juice of it on sleeping eye-lids laid > Will make a man or woman madly dote > Upon the next live creature that it sees. $ cat patches/flower.diff > Index: b/Oberon.txt > =================================================================== > --- a/Oberon.txt > +++ b/Oberon.txt > @@ -2,3 +2,7 @@ > It fell upon a little western flower, > Before milk-white, now purple with love's wound, > And maidens call it love-in-idleness. > +Fetch me that flower; the herb I shew'd thee once: > +The juice of it on sleeping eye-lids laid > +Will make a man or woman madly dote > +Upon the next live creature that it sees. $ quilt grep love > Oberon.txt:Before milk-white, now purple with love's wound, > Oberon.txt:And maidens call it love-in-idleness. quilt-0.68/test/PaxHeaders/empty.test0000644000000000000000000000013213104354760014704 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.507450904 30 ctime=1495037540.808435874 quilt-0.68/test/empty.test0000644000076500001440000000162513104354760016146 0ustar00khaliusers00000000000000 $ mkdir patches $ cat > patches/series < empty1.diff < empty2.diff $ touch patches/empty1.diff patches/empty2.diff $ quilt push -qa > Applying patch %{P}empty1.diff > Patch %{P}empty1.diff appears to be empty; applied > Applying patch %{P}empty2.diff > Patch %{P}empty2.diff appears to be empty; applied > Now at patch %{P}empty2.diff $ quilt rename empty3.diff > Patch %{P}empty2.diff renamed to %{P}empty3.diff $ quilt pop -qa > Patch %{P}empty3.diff appears to be empty, removing > Patch %{P}empty1.diff appears to be empty, removing > No patches applied $ quilt new empty_new.diff > Patch %{P}empty_new.diff is now on top $ quilt pop -q > Patch %{P}empty_new.diff appears to be empty, removing > No patches applied $ quilt delete empty_new.diff > Removed patch %{P}empty_new.diff $ quilt rename -P empty3.diff empty_new.diff > Patch %{P}empty3.diff renamed to %{P}empty_new.diff quilt-0.68/test/PaxHeaders/empty-files.test0000644000000000000000000000013213355144221016001 xustar0030 mtime=1538574481.673048925 30 atime=1711552114.506450892 30 ctime=1538574481.674048939 quilt-0.68/test/empty-files.test0000644000076500001440000000777213355144221017254 0ustar00khaliusers00000000000000# Check that quilt properly deals with patches which delete vs. empty files # Prepare the working tree $ mkdir patches $ echo "will be deleted" > deleted1 $ echo "will be emptied" > emptied1 $ echo "will be deleted" > deleted2 $ echo "will be emptied" > emptied2 # Prepate the patches and series $ cat > patches/series < using-filenames.patch < using-timestamps.patch $ cat > patches/using-filenames.patch < diff -ruN a/deleted1 b/deleted1 < --- a/deleted1 < +++ /dev/null < @@ -1 +0,0 @@ < -will be deleted < diff -ruN a/emptied1 b/emptied1 < --- a/emptied1 < +++ b/emptied1 < @@ -1 +0,0 @@ < -will be emptied $ cat > patches/using-timestamps.patch < diff -ruN a/deleted2 b/deleted2 < --- a/deleted2 2014-01-15 11:19:43.000000000 +0100 < +++ b/deleted2 1970-01-01 01:00:00.000000000 +0100 < @@ -1 +0,0 @@ < -will be deleted < diff -ruN a/emptied2 b/emptied2 < --- a/emptied2 2014-01-15 11:19:59.000000000 +0100 < +++ b/emptied2 2014-01-15 11:20:11.000000000 +0100 < @@ -1 +0,0 @@ < -will be emptied # Test quilt push $ quilt push > Applying patch %{P}using-filenames.patch > patching file deleted1 > patching file emptied1 > > Now at patch %{P}using-filenames.patch $ [ ! -e deleted1 ] && echo "File deleted1 does not exist" > File deleted1 does not exist $ [ -e deleted1 -a ! -s deleted1 ] && echo "File deleted1 is empty" $ [ ! -e emptied1 ] && echo "File emptied1 does not exist" $ [ -e emptied1 -a ! -s emptied1 ] && echo "File emptied1 is empty" > File emptied1 is empty $ quilt push > Applying patch %{P}using-timestamps.patch > patching file deleted2 > patching file emptied2 > > Now at patch %{P}using-timestamps.patch $ [ ! -e deleted2 ] && echo "File deleted2 does not exist" > File deleted2 does not exist $ [ -e deleted2 -a ! -s deleted2 ] && echo "File deleted2 is empty" $ [ ! -e emptied2 ] && echo "File emptied2 does not exist" $ [ -e emptied2 -a ! -s emptied2 ] && echo "File emptied2 is empty" > File emptied2 is empty # Test quilt fold $ quilt pop -aq > Removing patch %{P}using-timestamps.patch > Removing patch %{P}using-filenames.patch > No patches applied $ quilt new fold.patch > Patch %{P}fold.patch is now on top $ quilt fold < patches/using-filenames.patch > patching file deleted1 > patching file emptied1 $ [ ! -e deleted1 ] && echo "File deleted1 does not exist" > File deleted1 does not exist $ [ -e deleted1 -a ! -s deleted1 ] && echo "File deleted1 is empty" $ [ ! -e emptied1 ] && echo "File emptied1 does not exist" $ [ -e emptied1 -a ! -s emptied1 ] && echo "File emptied1 is empty" > File emptied1 is empty $ quilt fold < patches/using-timestamps.patch > patching file deleted2 > patching file emptied2 $ [ ! -e deleted2 ] && echo "File deleted2 does not exist" > File deleted2 does not exist $ [ -e deleted2 -a ! -s deleted2 ] && echo "File deleted2 is empty" $ [ ! -e emptied2 ] && echo "File emptied2 does not exist" $ [ -e emptied2 -a ! -s emptied2 ] && echo "File emptied2 is empty" > File emptied2 is empty # Test quilt refresh $ quilt delete > Removing patch %{P}fold.patch > No patches applied > Removed patch %{P}fold.patch $ quilt push -q > Applying patch %{P}using-filenames.patch > Now at patch %{P}using-filenames.patch $ quilt refresh -pab --sort --no-index > Refreshed patch %{P}using-filenames.patch $ quilt pop -q > Removing patch %{P}using-filenames.patch > No patches applied $ quilt push > Applying patch %{P}using-filenames.patch > patching file deleted1 > patching file emptied1 > > Now at patch %{P}using-filenames.patch $ [ ! -e deleted1 ] && echo "File deleted1 does not exist" > File deleted1 does not exist $ [ -e deleted1 -a ! -s deleted1 ] && echo "File deleted1 is empty" $ [ ! -e emptied1 ] && echo "File emptied1 does not exist" $ [ -e emptied1 -a ! -s emptied1 ] && echo "File emptied1 is empty" > File emptied1 is empty $ cat patches/using-filenames.patch > --- a/deleted1 > +++ /dev/null > @@ -1 +0,0 @@ > -will be deleted > --- a/emptied1 > +++ b/emptied1 > @@ -1 +0,0 @@ > -will be emptied quilt-0.68/test/PaxHeaders/edit.test0000644000000000000000000000013213104354070014465 xustar0030 mtime=1494341688.100357033 30 atime=1711552114.506450892 30 ctime=1495037540.800435734 quilt-0.68/test/edit.test0000644000076500001440000000354213104354070015727 0ustar00khaliusers00000000000000$ mkdir patches subdir # Test the behavior if the editor modifies existing files $ cat > editor < #! /bin/sh < echo Editing $1 < sed -e 's:foo:bar:' $1 > $1.new < mv $1.new $1 $ chmod +x editor $ export EDITOR=%{PWD}/editor $ quilt new patch > Patch %{P}patch is now on top $ echo foobar > foobar $ quilt edit foobar > File foobar added to patch %{P}patch > Editing foobar $ cat foobar > barbar $ cd subdir $ echo foo > foo $ quilt edit foo > File subdir/foo added to patch %{_P}patch > Editing subdir/foo $ cd .. $ cat subdir/foo > bar $ quilt files > foobar > subdir/foo $ quilt refresh > Refreshed patch %{P}patch # Test the behavior if the editor deletes a file completely $ echo foobaz > foobaz $ cat > editor < #! /bin/sh < echo Deleting $1 < rm -f $1 $ quilt edit foobaz > File foobaz added to patch %{P}patch > Deleting foobaz $ [ ! -e foobaz ] || echo "File foobaz shouldn't exist" # Test the behavior if the editor is called on a new file but # does not actually create it $ cat > editor < #! /bin/sh < echo Doing nothing to $1 $ quilt edit nofoo > File nofoo added to patch %{P}patch > Doing nothing to nofoo > File nofoo removed from patch %{P}patch # Test the behavior if the patch is deleting a file and the # user calls "quilt edit" on that file but makes no change to it $ rm -f foobar $ quilt refresh > Refreshed patch %{P}patch $ quilt diff -p ab --no-index foobar > --- a/foobar > +++ /dev/null > @@ -1 +0,0 @@ > -foobar $ quilt edit foobar > File foobar is already in patch %{P}patch > Doing nothing to foobar $ [ ! -e foobar ] || echo "File foobar shouldn't exist" # Test the behavior if the editor creates a brand new file $ cat > editor < #! /bin/sh < echo Creating $1 < echo "new line" > $1 $ quilt edit foo2 > File foo2 added to patch %{P}patch > Creating foo2 $ cat foo2 > new line $ quilt files -v > + foo2 > - foobar > - foobaz > subdir/foo quilt-0.68/test/PaxHeaders/duplicate-patch-in-series.test0000644000000000000000000000013213104354760020511 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.506450892 30 ctime=1495037540.808435874 quilt-0.68/test/duplicate-patch-in-series.test0000644000076500001440000000133613104354760021752 0ustar00khaliusers00000000000000# Check that duplicate patches in generated series files won't cause havoc # See bug #20628 at https://savannah.nongnu.org/bugs/?20628 $ mkdir patches $ echo "old line" > file.txt $ cat > patches/first.patch < --- file.txt < +++ file.txt < @@ -1 +1 @@ < -old line < +new line $ cat > patches/series < first.patch -p0 < first.patch -p0 $ quilt push > Applying patch %{P}first.patch > patching file file.txt > > Now at patch %{P}first.patch $ quilt push > Patch %{P}first.patch is already applied; check your series file $ quilt pop > Removing patch %{P}first.patch > Restoring file.txt > > No patches applied $ quilt push -qa > Patch %{P}first.patch is already applied; check your series file $ quilt pop -q > No patch removed quilt-0.68/test/PaxHeaders/dotglob.test0000644000000000000000000000013213104354070015172 xustar0030 mtime=1494341688.100357033 30 atime=1711552114.506450892 30 ctime=1495037540.800435734 quilt-0.68/test/dotglob.test0000644000076500001440000000060113104354070016425 0ustar00khaliusers00000000000000 $ mkdir patches $ quilt new dotglob.diff > Patch %{P}dotglob.diff is now on top $ quilt add .foo > File .foo added to patch %{P}dotglob.diff $ echo dot-foo > .foo $ quilt refresh > Refreshed patch %{P}dotglob.diff $ quilt pop -q > Removing patch %{P}dotglob.diff > No patches applied $ quilt push -q > Applying patch %{P}dotglob.diff > Now at patch %{P}dotglob.diff quilt-0.68/test/PaxHeaders/dir-a-b.test0000644000000000000000000000013213104354760014761 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.506450892 30 ctime=1495037540.800435734 quilt-0.68/test/dir-a-b.test0000644000076500001440000000167713104354760016232 0ustar00khaliusers00000000000000 $ mkdir patches $ echo a > test.txt $ echo d > test3.txt $ cat > patches/ab.diff < --- a/test.txt < +++ b/test.txt < @@ -1 +1 @@ < -a < +b < --- /dev/null < +++ b/test2.txt < @@ -0,0 +1 @@ < +c < --- a/test3.txt < +++ /dev/null < @@ -1 +0,0 @@ < -d $ echo "ab.diff" > patches/series $ quilt push -q > Applying patch %{P}ab.diff > Now at patch %{P}ab.diff $ quilt diff -p ab --no-index > --- a/test.txt > +++ b/test.txt > @@ -1 +1 @@ > -a > +b > --- /dev/null > +++ b/test2.txt > @@ -0,0 +1 @@ > +c > --- a/test3.txt > +++ /dev/null > @@ -1 +0,0 @@ > -d $ rm -f patches/ab.diff $ quilt refresh -p ab --no-index > Refreshed patch %{P}ab.diff $ cat patches/ab.diff > --- a/test.txt > +++ b/test.txt > @@ -1 +1 @@ > -a > +b > --- /dev/null > +++ b/test2.txt > @@ -0,0 +1 @@ > +c > --- a/test3.txt > +++ /dev/null > @@ -1 +0,0 @@ > -d $ quilt pop -qR > Removing patch %{P}ab.diff > No patches applied quilt-0.68/test/PaxHeaders/delete.test0000644000000000000000000000013013667652742015025 xustar0029 mtime=1591694818.65534094 30 atime=1711552114.505450879 29 ctime=1591694818.65534094 quilt-0.68/test/delete.test0000644000076500001440000000346313667652742016273 0ustar00khaliusers00000000000000Test the delete command. $ mkdir patches $ cat > test.txt < Calling pci_match_id() would be more feasible. $ quilt new test1 > Patch %{P}test1 is now on top $ quilt add test.txt > File test.txt added to patch %{P}test1 $ cat > test.txt < Try the following patch instead. $ quilt refresh > Refreshed patch %{P}test1 $ quilt new test2 > Patch %{P}test2 is now on top $ quilt add test.txt > File test.txt added to patch %{P}test2 $ cat > test.txt < Ok, that's fine with me if you want to do that instead. $ quilt refresh > Refreshed patch %{P}test2 $ quilt delete test1 > Patch %{P}test1 is currently applied $ quilt pop > Removing patch %{P}test2 > Restoring test.txt > > Now at patch %{P}test1 $ quilt series > %{P}test1 > %{P}test2 $ quilt delete -n > Removed patch %{P}test2 $ quilt series > %{P}test1 $ quilt pop > Removing patch %{P}test1 > Restoring test.txt > > No patches applied $ quilt delete test1 > Removed patch %{P}test1 $ quilt series $ echo "test1" > patches/series $ quilt delete -n > Removed patch %{P}test1 $ quilt series # Force the pop operaton to fail $ echo "test3" > patches/series $ echo "test3" > %{QUILT_PC}/applied-patches $ mkdir -p %{QUILT_PC}/test3/dir $ touch %{QUILT_PC}/test3/dir/file $ chmod a-rx %{QUILT_PC}/test3/dir # Note that this will succeed (instead of the expected failure) if # running as root, but you shouldn't do that anyway. $ quilt delete "test3" > Removing patch %{P}test3 >~ .*find: [`']?\./dir'?: Permission denied $ chmod a+rx %{QUILT_PC}/test3/dir $ find %{QUILT_PC}/test3 > %{QUILT_PC}/test3 > %{QUILT_PC}/test3/dir > %{QUILT_PC}/test3/dir/file $ quilt applied > No patches applied $ quilt series > %{P}test3 $ quilt delete > No patches applied $ quilt delete test3 > Removed patch %{P}test3 quilt-0.68/test/PaxHeaders/create-delete.test0000644000000000000000000000013213102030271016233 xustar0030 mtime=1493708985.974406473 30 atime=1711552114.505450879 30 ctime=1495037540.808435874 quilt-0.68/test/create-delete.test0000644000076500001440000000255613102030271017501 0ustar00khaliusers00000000000000Check whether quilt generates patches properly so that GNU patch recognizes file creates and deletions. $ mkdir patches $ echo delete > delete $ quilt new test.diff > Patch %{P}test.diff is now on top $ quilt add create > File create added to patch %{P}test.diff $ echo create > create $ quilt refresh > Refreshed patch %{P}test.diff $ quilt add delete > File delete added to patch %{P}test.diff $ rm -f delete $ quilt refresh > Refreshed patch %{P}test.diff $ quilt header -r < --- < create | 1 + < delete | 1 - < 2 files changed, 1 insertion(+), 1 deletion(-) < > Replaced header of patch %{P}test.diff $ quilt patches -v create > = %{P}test.diff $ quilt patches delete > %{P}test.diff $ quilt pop -q > Removing patch %{P}test.diff > No patches applied $ quilt patches create > %{P}test.diff $ quilt patches -v delete > %{P}test.diff $ quilt patches -- /dev/null dev/null null --- $ echo create > create $ rm -f delete $ patch -p1 --dry-run < patches/test.diff >~ The next patch would create the file `?create'?, > which already exists! Assume -R? [n] > Apply anyway? [n] > Skipping patch. >~ 1 out of 1 hunk ignored( -- saving rejects to( file)? create.rej)? >~ The next patch would delete the file `?delete'?, > which does not exist! Assume -R? [n] > Apply anyway? [n] > Skipping patch. > 1 out of 1 hunk ignored quilt-0.68/test/PaxHeaders/conflicts.test0000644000000000000000000000013213102030271015514 xustar0030 mtime=1493708985.974406473 30 atime=1711552114.505450879 30 ctime=1495037540.808435874 quilt-0.68/test/conflicts.test0000644000076500001440000000502613102030271016755 0ustar00khaliusers00000000000000This test case creates a patch and then applies that patch to a modified source file. The source file is modified until the patch doesn't apply anymore, then the patch is fixed. $ mkdir patches $ cat > one.txt < 1 < 2 < 3 < 4 < 5 < 6 < 7 < -- < a < b < c < d < e < f < g $ quilt new a.diff > Patch %{P}a.diff is now on top $ echo %{?} > 0 $ quilt add one.txt > File one.txt added to patch %{P}a.diff $ echo %{?} > 0 $ mv one.txt one.orig $ sed -e "s/4/4+/" -e 's/d/d+/' one.orig > one.txt $ quilt refresh > Refreshed patch %{P}a.diff $ echo %{?} > 0 $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ echo %{?} > 0 $ sed -e "s/^\\([17]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > Now at patch %{P}a.diff $ echo %{?} > 0 $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ echo %{?} > 0 $ sed -e "s/^\\([1267]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > Now at patch %{P}a.diff $ echo %{?} > 0 $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ echo %{?} > 0 $ sed -e "s/^\\([123567]\\)\$/\\1-/" one.orig > one.txt $ quilt push -q > Applying patch %{P}a.diff > 1 out of 2 hunks FAILED > Patch %{P}a.diff does not apply (enforce with -f) $ echo %{?} > 1 $ quilt push -qf > Applying patch %{P}a.diff >~ 1 out of 2 hunks FAILED -- saving rejects to (file )?`?one.txt.rej'? > Applied patch %{P}a.diff (forced; needs refresh) $ echo %{?} > 1 $ mv one.txt one.x $ sed -e "s/4/4+/" one.x > one.txt $ rm -f one.x $ quilt diff -z | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- $ echo %{?} > 0 $ quilt diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- > @@ -9,7 +9,7 @@ > a > b > c > -d > +d+ > e > f > g $ echo %{?} > 0 $ quilt refresh > Refreshed patch %{P}a.diff $ echo %{?} > 0 $ cat patches/a.diff | grep -v "^\\(---\\|+++\\)" >~ Index: [^/]+/one\.txt > =================================================================== > @@ -1,7 +1,7 @@ > 1- > 2- > 3- > -4 > +4+ > 5- > 6- > 7- > @@ -9,7 +9,7 @@ > a > b > c > -d > +d+ > e > f > g $ quilt pop -q > Removing patch %{P}a.diff > No patches applied $ echo %{?} > 0 quilt-0.68/test/PaxHeaders/comments.test0000644000000000000000000000013213104354760015373 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.505450879 30 ctime=1495037540.808435874 quilt-0.68/test/comments.test0000644000076500001440000000227213104354760016634 0ustar00khaliusers00000000000000Regresion test case: Empty lines in patch descriptions were accidentally removed. $ mkdir patches $ echo one > f $ cat > patches/test.diff < C1 < < C3 < < Index: f < =================================================================== < --- f.orig foo < +++ f bar < @@ -1 +1 @@ < -one < +two $ cat > patches/series < test.diff -p0 # What a wonderful patch $ quilt push > Applying patch %{P}test.diff >~ patching file `?f'? > > Now at patch %{P}test.diff $ quilt refresh > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > --- f.orig > +++ f > @@ -1 +1 @@ > -one > +two $ quilt refresh -c > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > *** f.orig > --- f > *************** > *** 1 **** > ! one > --- 1 ---- > ! two $ quilt refresh > Refreshed patch %{P}test.diff $ cat patches/test.diff > C1 > > C3 > > Index: f > =================================================================== > --- f.orig > +++ f > @@ -1 +1 @@ > -one > +two quilt-0.68/test/PaxHeaders/colon-in-patch-name.test0000644000000000000000000000013114415323563017301 xustar0029 mtime=1681237875.75998068 30 atime=1711552114.504450867 30 ctime=1681237875.760980692 quilt-0.68/test/colon-in-patch-name.test0000644000076500001440000000336614415323563020550 0ustar00khaliusers00000000000000# Test that patch names including special characters such as a colons, # brackets or parentheses are properly handled by all quilt commands $ mkdir patches $ quilt new "patch_with:strange[name]" > Patch %{P}patch_with:strange[name] is now on top $ echo foo > foo $ quilt add foo > File foo added to patch %{P}patch_with:strange[name] $ quilt files > foo $ echo bar > foo $ quilt diff -p ab -P "patch_with:strange[name]" > Index: b/foo > =================================================================== > --- a/foo > +++ b/foo > @@ -1 +1 @@ > -foo > +bar $ quilt refresh -p ab > Refreshed patch %{P}patch_with:strange[name] $ quilt applied > %{P}patch_with:strange[name] $ quilt pop -q > Removing patch %{P}patch_with:strange[name] > No patches applied $ quilt next > %{P}patch_with:strange[name] $ quilt push -q "patch_with:strange[name]" > Applying patch %{P}patch_with:strange[name] > Now at patch %{P}patch_with:strange[name] $ quilt top > %{P}patch_with:strange[name] $ quilt rename "another:strange(name)" > Patch %{P}patch_with:strange[name] renamed to %{P}another:strange(name) $ quilt new "{%'}.patch" > Patch %{P}{%'}.patch is now on top $ quilt add foo > File foo added to patch %{P}{%'}.patch $ echo baz > foo " $ quilt previous > %{P}another:strange(name) $ quilt series > %{P}another:strange(name) > %{P}{%'}.patch $ quilt refresh -p0 "{%'}.patch" > Refreshed patch %{P}{%'}.patch $ cat "patches/{%'}.patch" > Index: foo > =================================================================== > --- foo.orig > +++ foo > @@ -1 +1 @@ > -bar > +baz $ quilt pop "another:strange(name)" > Removing patch %{P}{%'}.patch > Restoring foo > > Now at patch %{P}another:strange(name) $ quilt remove foo > File foo removed from patch %{P}another:strange(name) quilt-0.68/test/PaxHeaders/backup-files.test0000644000000000000000000000013214051202017016100 xustar0030 mtime=1621427215.362389016 30 atime=1711552114.504450867 30 ctime=1621427215.388389344 quilt-0.68/test/backup-files.test0000644000076500001440000001612014051202017017336 0ustar00khaliusers00000000000000Unit test of the backup-files script. # Test backup without options; it should link, not copy $ echo foo > foo $ echo bar > "space bar" $ sleep 1 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b foo > Copying foo $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ [ backup/foo -nt foo ] && echo "mtimes differ" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r foo > Restoring foo $ ls -l foo | awk '{ print $2 }' > 1 # Test silent backup with -L; it should copy, not link $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 1 $ [ backup/foo -nt foo ] && echo "mtimes differ" # Test restore without options $ echo modified > foo $ sleep 1 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r foo > Restoring foo $ cat foo > foo $ [ -e backup/foo ] && echo "backup/foo not deleted" $ [ -e backup ] && echo "backup directory not deleted" # Test backup files with hard links $ ln foo foo2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo2 $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l foo2 | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 2 $ ls -l backup/foo2 | awk '{ print $2 }' > 2 # Test restore of files with hard links $ rm -f foo foo2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s foo $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l backup/foo2 | awk '{ print $2 }' > 2 $ [ -e backup/foo ] && echo "backup/foo not deleted" $ [ ! -e foo2 ] || echo "file foo2 shouldn't exist" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s foo2 $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l foo2 | awk '{ print $2 }' > 2 $ [ -e backup/foo2 ] && echo "backup/foo2 not deleted" $ [ -e backup ] && echo "backup directory not deleted" # Test restore with -t $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s foo $ touch -r foo foo.timeref $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -t foo $ ls -l foo | awk '{ print $2 }' > 2 $ [ foo -nt foo.timeref ] || echo "touch failed" # Test restore with -k $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L foo "space bar" $ touch -r "space bar" bar.timeref $ ls -l backup/foo | awk '{ print $2 }' > 2 $ ls -l "backup/space bar" | awk '{ print $2 }' > 1 $ mkdir tmp $ cd tmp $ %{QUILT_DIR}/scripts/backup-files -B ../backup/ -r -s -k foo "space bar" $ cd .. $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ ls -l backup/foo | awk '{ print $2 }' > 3 $ ls -l "backup/space bar" | awk '{ print $2 }' > 2 $ ls -l tmp/foo | awk '{ print $2 }' > 3 $ ls -l "tmp/space bar" | awk '{ print $2 }' > 2 $ rm -rf tmp # Test restore all (-) $ rm -f foo "space bar" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -t - $ cat foo > foo $ cat "space bar" > bar $ [ "space bar" -nt bar.timeref ] || echo "touch failed" # Backup and restore a non-existing files $ mkdir "dir with spaces" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L new "dir with spaces/space file" $ echo data > new $ echo data2 > "dir with spaces/space file" $ ls -l backup/new | awk '{ print $5 }' > 0 $ ls -l "backup/dir with spaces/space file" | awk '{ print $5 }' > 0 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s - $ [ ! -e backup/new ] || echo "file backup/new shouldn't exist" $ [ ! -e new ] || echo "file new shouldn't exist" $ [ ! -e "backup/dir with spaces/space file" ] || echo "file backup/dir with spaces/space file shouldn't exist" $ [ ! -e "dir with spaces/space file" ] || echo "file dir with spaces/space file shouldn't exist" # Test restore involving a dir name with spaces $ echo data > "dir with spaces/space file" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -L "dir with spaces/space file" > Copying dir with spaces/space file $ rm -rf "dir with spaces" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r - > Restoring dir with spaces/space file $ cat "dir with spaces/space file" > data $ [ -e backup ] && echo "backup directory not deleted" # Test backup reading file list from a file $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -s -L -f - < foo < new < space bar $ echo data > new $ echo modified > foo $ rm -f "space bar" $ [ -e backup/new -a ! -s backup/new ] || echo "file backup/new isn't empty" $ ls -l backup/new | awk '{ print $5 }' > 0 $ cat backup/foo > foo $ cat "backup/space bar" > bar $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -s -f - < foo < new < space bar $ [ ! -e backup/new ] || echo "file backup/new shouldn't exist" $ [ ! -e new ] || echo "file new shouldn't exist" $ cat foo > foo $ cat "space bar" > bar # Test the special -L alone case $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b -L -f - < new < foo < space bar > New file new > Copying foo > Copying space bar $ ln "space bar" "linked space" $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 2 $ %{QUILT_DIR}/scripts/backup-files -B backup/ -L - $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" # Second call should be idempotent $ %{QUILT_DIR}/scripts/backup-files -B backup/ -L - $ ls -l foo | awk '{ print $2 }' > 1 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r - | sort > Removing new > Restoring foo > Restoring space bar $ rm "linked space" # Test copy (as used by quilt snapshot) $ %{QUILT_DIR}/scripts/backup-files -B snapshot/ -c -f - < new < foo < space bar < dir with spaces/space file > New file new > Copying foo > Copying space bar > Copying dir with spaces/space file $ ls -l foo | awk '{ print $2 }' > 2 $ ls -l "space bar" | awk '{ print $2 }' > 1 $ ls -l "dir with spaces/space file" | awk '{ print $2 }' > 1 $ [ ! -e new ] || echo "file new shouldn't exist" $ ls -l snapshot/new | awk '{ print $2 }' > 1 $ ls -l snapshot/foo | awk '{ print $2 }' > 1 $ ls -l snapshot/"space bar" | awk '{ print $2 }' > 1 $ ls -l snapshot/"dir with spaces/space file" | awk '{ print $2 }' > 1 $ [ ! -s new ] || echo "file snapshot/new should be empty" $ rm -rf snapshot # Test backup and restoration of a symbolic link $ mkdir dir $ ln -s foo dir/link $ readlink dir/link > foo $ %{QUILT_DIR}/scripts/backup-files -B backup/ -b dir/link > Copying dir/link $ readlink backup/dir/link > foo $ rm -f dir/link $ echo crap > dir/link $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -k dir/link > Restoring dir/link $ readlink dir/link > foo # Same but reading from a file $ rm -f dir/link $ echo crap > dir/link $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r -k -f - < dir/link > Restoring dir/link $ readlink dir/link > foo # Same but without specifying the file $ rm -f dir/link $ echo crap > dir/link $ %{QUILT_DIR}/scripts/backup-files -B backup/ -r - > Restoring dir/link $ readlink dir/link > foo quilt-0.68/test/PaxHeaders/auto-refresh.test0000644000000000000000000000013213104354070016144 xustar0030 mtime=1494341688.099357021 30 atime=1711552114.504450867 30 ctime=1495037540.800435734 quilt-0.68/test/auto-refresh.test0000644000076500001440000000203413104354070017401 0ustar00khaliusers00000000000000$ mkdir patches $ echo a > a $ echo b > b $ quilt new a.patch > Patch %{P}a.patch is now on top $ quilt add a > File a added to patch %{P}a.patch $ echo A > a $ quilt new b.patch > Patch %{P}b.patch is now on top $ quilt add b > File b added to patch %{P}b.patch $ echo B > b $ quilt pop -fa --refresh > Options -f and --refresh are mutually exclusive $ quilt pop -a --refresh > Refreshed patch %{P}b.patch > Removing patch %{P}b.patch > Restoring b > > Refreshed patch %{P}a.patch > Removing patch %{P}a.patch > Restoring a > > No patches applied $ quilt push -a --refresh > Applying patch %{P}a.patch > patching file a > Patch %{P}a.patch is unchanged > > Applying patch %{P}b.patch > patching file b > Patch %{P}b.patch is unchanged > > Now at patch %{P}b.patch $ quilt push -fa --refresh > Options -f and --refresh are mutually exclusive $ quilt pop -a --refresh > Patch %{P}b.patch is unchanged > Removing patch %{P}b.patch > Restoring b > > Patch %{P}a.patch is unchanged > Removing patch %{P}a.patch > Restoring a > > No patches applied quilt-0.68/test/PaxHeaders/applied.test0000644000000000000000000000013213104354760015164 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.504450867 30 ctime=1495037540.800435734 quilt-0.68/test/applied.test0000644000076500001440000000133513104354760016424 0ustar00khaliusers00000000000000 $ mkdir patches $ echo a > a $ echo b > b $ diff -u a b > patches/patch $ echo patch -p0 > patches/series $ rm -f b $ quilt push -q > Applying patch %{P}patch > Now at patch %{P}patch $ quilt pop -q > Removing patch %{P}patch > No patches applied $ patch -s -p0 < patches/patch $ quilt push -q > Applying patch %{P}patch > 1 out of 1 hunk FAILED > Patch %{P}patch can be reverse-applied $ echo patch -p0 -R > patches/series $ quilt push -q > Applying patch %{P}patch > Now at patch %{P}patch $ quilt pop -q > Removing patch %{P}patch > No patches applied $ patch -s -p0 -R < patches/patch $ quilt push -q > Applying patch %{P}patch > 1 out of 1 hunk FAILED > Patch %{P}patch can be reverse-applied quilt-0.68/test/PaxHeaders/annotate.test0000644000000000000000000000013213104354070015351 xustar0030 mtime=1494341688.098357009 30 atime=1711552114.503450854 30 ctime=1495037540.800435734 quilt-0.68/test/annotate.test0000644000076500001440000000302513104354070016607 0ustar00khaliusers00000000000000 $ mkdir patches $ cat > foo < foo < bar < baz $ quilt new patch > Patch %{P}patch is now on top $ quilt add foo > File foo added to patch %{P}patch $ sed -e 's:b:B:' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch %{P}patch $ quilt annotate foo > foo > 1 Bar > 1 Baz > > 1 %{P}patch $ quilt new patch2 > Patch %{P}patch2 is now on top $ quilt add foo > File foo added to patch %{P}patch2 $ sed -e 's:Baz:baz:' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch %{P}patch2 $ quilt annotate foo > foo > 1 Bar > 2 baz > > 1 %{P}patch > 2 %{P}patch2 $ quilt new patch3 > Patch %{P}patch3 is now on top $ quilt add foo > File foo added to patch %{P}patch3 $ sed -e '/Bar/d' foo > foo.new $ mv foo.new foo $ quilt refresh > Refreshed patch %{P}patch3 $ quilt annotate foo > foo > 2 baz > > 1 %{P}patch > 2 %{P}patch2 > 3 %{P}patch3 $ quilt annotate -P patch3 foo > foo > 2 baz > > 1 %{P}patch > 2 %{P}patch2 > 3 %{P}patch3 $ quilt annotate -P patch2 foo > foo > 1 Bar > 2 baz > > 1 %{P}patch > 2 %{P}patch2 $ quilt annotate -P patch foo > foo > 1 Bar > 1 Baz > > 1 %{P}patch $ quilt new patch4 > Patch %{P}patch4 is now on top $ cat > jkl < abc < def $ quilt add jkl wrz > File jkl added to patch %{P}patch4 > File wrz added to patch %{P}patch4 $ rm -f jkl $ cat > wrz < one < two $ quilt refresh > Refreshed patch %{P}patch4 $ quilt annotate jkl > > 1 %{P}patch4 $ quilt annotate wrz > 1 one > 1 two > > 1 %{P}patch4 quilt-0.68/test/PaxHeaders/altered-series.test0000644000000000000000000000013213104354760016456 xustar0030 mtime=1494342128.875519939 30 atime=1711552114.503450854 30 ctime=1495037540.800435734 quilt-0.68/test/altered-series.test0000644000076500001440000000223213104354760017713 0ustar00khaliusers00000000000000# Check that manual changes to the series file are detected $ mkdir patches $ cat > patches/series < 01.patch < 02.patch < 03.patch $ quilt push -q 2 > Applying patch %{P}01.patch > Patch %{P}01.patch does not exist; applied empty patch > Applying patch %{P}02.patch > Patch %{P}02.patch does not exist; applied empty patch > Now at patch %{P}02.patch $ quilt series -v > + %{P}01.patch > = %{P}02.patch > %{P}03.patch # Touch the series file but preserve the order -> OK $ touch patches/series $ quilt series -v > + %{P}01.patch > = %{P}02.patch > %{P}03.patch # Change the order of the patch series -> complain $ cat > patches/series < 03.patch < 01.patch < 02.patch $ quilt series -v > The series file no longer matches the applied patches. Please run 'quilt pop -a'. $ quilt pop > Patch %{P}02.patch appears to be empty, removing > > Now at patch %{P}01.patch # That wasn't enough, keep complaining $ quilt series -v > The series file no longer matches the applied patches. Please run 'quilt pop -a'. $ quilt pop -a > Patch %{P}01.patch appears to be empty, removing > > No patches applied $ quilt series -v > %{P}03.patch > %{P}01.patch > %{P}02.patch quilt-0.68/test/PaxHeaders/add-filename-check.test0000644000000000000000000000013213442473552017135 xustar0030 mtime=1552578410.822453805 30 atime=1711552114.503450854 30 ctime=1552578410.822453805 quilt-0.68/test/add-filename-check.test0000644000076500001440000000045513442473552020377 0ustar00khaliusers00000000000000$ mkdir patches $ quilt new test.diff > Patch %{P}test.diff is now on top $ echo foo > foo $ quilt add foo > File foo added to patch %{P}test.diff $ quilt add patches/bar > File patches/bar is located below patches/ $ quilt add %{QUILT_PC}/baz > File %{QUILT_PC}/baz is located below %{QUILT_PC}/ quilt-0.68/test/PaxHeaders/run0000644000000000000000000000013213442473155013401 xustar0030 mtime=1552578157.385228498 30 atime=1711552114.572451717 30 ctime=1552578157.385228498 quilt-0.68/test/run0000755000076500001440000002043313442473155014644 0ustar00khaliusers00000000000000#!/usr/bin/perl -w # Copyright (c) 2007, 2008 Andreas Gruenbacher. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions, and the following disclaimer, # without modification, immediately at the beginning of the file. # 2. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # Alternatively, this software may be distributed under the terms of the # GNU Public License ("GPL"). # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # Possible improvements: # # - distinguish stdout and stderr output # - resume at a specific line # # # Command line parameters: # # -l N Stop the test after line N # -q Quiet mode: buffer the output while processing and print the # result at the end; on success, only the summary is printed # -v Verbose mode: print the output of successful commands (by # default the output is only printed for failed commands) # use strict; use FileHandle; use Getopt::Std; use POSIX qw(isatty setuid getcwd); use Text::ParseWords; use vars qw($opt_l $opt_q $opt_v %output $OK $FAILED $tests $failed); $opt_l = ~0; # a really huge number getopts('l:qv'); $OK = "ok"; $FAILED = "failed"; if (isatty(fileno(STDOUT))) { $OK = "\033[32m" . $OK . "\033[m"; $FAILED = "\033[31m\033[1m" . $FAILED . "\033[m"; } $tests = $failed = 0; my $prog; my ($in, $out) = ([], []); my $prog_line = 0; my $last_status = 0; my $lineno; my $width = ($ENV{COLUMNS} || 80) >> 1; my $origdir = getcwd; my $workdir = defined $ARGV[0] ? "$ARGV[0].$$" : "d.$$"; my $workdir_absolute; my $keep_workdir = $ENV{KEEP_WORKDIR_IF_FAILED} || 0; sub print_header($) { if ($opt_q) { $output{header} = $_[0]; } else { print $_[0]; } } sub print_body($) { if ($opt_q) { $output{body} .= $_[0]; } else { print $_[0]; } } sub print_footer($) { if ($opt_q) { $output{footer} .= $_[0]; } else { print $_[0]; } } sub flush_output() { return unless $opt_q; print $output{header} || "", $failed ? $output{body} : "", $output{footer} || ""; } # Substitute %{VAR} with environment variables sub substitute_vars($) { my ($line) = @_; $line =~ s[%\{(\w+)\}][defined $ENV{$1} ? $ENV{$1} : ""]eg; return $line; } sub begins_with($$) { return substr($_[0], 0, length($_[1])) eq $_[1]; } sub exec_test($$) { my ($raw_prog, $in) = @_; local (*IN, *IN_DUP, *IN2, *OUT_DUP, *OUT, *OUT2); my $prog = [ shellwords($raw_prog) ]; my $needs_shell; if ($prog->[0] eq "umask") { umask oct $prog->[1]; return 0, []; } elsif ($prog->[0] eq "cd") { if (!chdir $prog->[1]) { return 1, [ "chdir: $prog->[1]: $!\n" ]; } $ENV{PWD} = getcwd; # We must always stay inside the test directory unless (begins_with("$ENV{PWD}/", "$workdir_absolute/")) { return 1, [ "Illegal chdir $prog->[1]\n", "$ENV{PWD} is not inside $workdir_absolute" ], 1; } return 0, []; } elsif ($prog->[0] eq "export") { my ($name, $value) = split /=/, $prog->[1]; $ENV{$name} = $value; return 0, []; } elsif ($prog->[0] eq "unset") { delete $ENV{$prog->[1]}; return 0, []; } $needs_shell = ($raw_prog =~ /[][|&<>;`\$*?]/); pipe *IN2, *OUT or die "Can't create pipe for reading: $!"; open *IN_DUP, "<&STDIN" or *IN_DUP = undef; open *STDIN, "<&IN2" or die "Can't duplicate pipe for reading: $!"; close *IN2; open *OUT_DUP, ">&STDOUT" or die "Can't duplicate STDOUT: $!"; pipe *IN, *OUT2 or die "Can't create pipe for writing: $!"; open *STDOUT, ">&OUT2" or die "Can't duplicate pipe for writing: $!"; close *OUT2; *STDOUT->autoflush(); *OUT->autoflush(); if (fork()) { # Server if (*IN_DUP) { open *STDIN, "<&IN_DUP" or die "Can't duplicate STDIN: $!"; close *IN_DUP or die "Can't close STDIN duplicate: $!"; } open *STDOUT, ">&OUT_DUP" or die "Can't duplicate STDOUT: $!"; close *OUT_DUP or die "Can't close STDOUT duplicate: $!"; foreach my $line (@$in) { #print "> $line"; print OUT $line; } close *OUT or die "Can't close pipe for writing: $!"; my $result = []; while () { #print "< $_"; if ($needs_shell) { s#^/bin/sh: (?:line \d+: )?##; } push @$result, $_; } wait(); return $? >> 8, $result; } else { # Client $< = $>; close IN or die "Can't close read end for input pipe: $!"; close OUT or die "Can't close write end for output pipe: $!"; close OUT_DUP or die "Can't close STDOUT duplicate: $!"; local *ERR_DUP; open ERR_DUP, ">&STDERR" or die "Can't duplicate STDERR: $!"; open STDERR, ">&STDOUT" or die "Can't join STDOUT and STDERR: $!"; if ($needs_shell) { exec ('/bin/sh', '-c', $raw_prog); } else { exec @$prog; } print STDERR $prog->[0], ": $!\n"; exit; } } sub process_test($$$$) { my ($prog, $prog_line, $in, $out) = @_; print_body "[$prog_line] \$ $prog -- "; my ($exec_status, $result, $stop) = exec_test($prog, $in); my @good = (); my $good = 1; my $nmax = (@$out > @$result) ? @$out : @$result; for (my $n = 0; $n < $nmax; $n++) { my $use_re = defined($out->[$n]) && ($out->[$n] =~ s/^~ //); if (!defined($out->[$n]) || !defined($result->[$n]) || (!$use_re && $result->[$n] ne $out->[$n]) || ( $use_re && $result->[$n] !~ /^$out->[$n]/)) { push @good, ($use_re ? '!~' : '!='); $good = 0; } else { push @good, ($use_re ? '=~' : '=='); } } $tests++; $failed++ unless $good; print_body(($good ? $OK : $FAILED)."\n"); if (!$good || $opt_v) { for (my $n = 0; $n < $nmax; $n++) { my $l = defined($out->[$n]) ? $out->[$n] : "~"; chomp $l; my $r = defined($result->[$n]) ? $result->[$n] : "~"; chomp $r; print_body sprintf("%-" . ($width - 3) . "s %s %s\n", $r, $good[$n], $l); } } return $exec_status, $stop; } # Create a dedicated working directory mkdir $workdir or die "Failed to create directory $workdir: $!"; # Clean up on Ctrl+C $SIG{INT} = sub { if (chdir $origdir) { system "rm -rf $workdir" }; exit 1; }; chdir $workdir or die "Failed to change to directory $workdir: $!"; $ENV{PWD} = getcwd; $workdir_absolute = $ENV{PWD}; if (defined $ARGV[0]) { open(SOURCE, "$origdir/$ARGV[0]"); print_header "[$ARGV[0]]\n"; } else { *SOURCE = *STDIN; } while (defined(my $line = )) { $lineno++; # Collect input and output for the previous command if ($line =~ s/^\s*< ?//) { push @$in, substitute_vars($line); next; } if ($line =~ s/^\s*> ?//) { push @$out, substitute_vars($line); next; } # We have all input and output, we can execute the command if (defined $prog) { my $stop; ($last_status, $stop) = process_test($prog, $prog_line, $in, $out); $prog = undef; last if $prog_line >= $opt_l || $stop; } # Parse the next command if ($line =~ s/^\s*\$ ?//) { # Substitute %{?} with the last command's status $line =~ s[%\{\?\}][$last_status]eg; chomp($prog = substitute_vars($line)); $prog_line = $lineno; $in = []; $out = []; } } # Execute last command if needed process_test($prog, $prog_line, $in, $out) if defined $prog; close(SOURCE); # Clean up the mess chdir $origdir or die "Failed to change back to directory $origdir: $!"; system "rm -rf $workdir" unless $keep_workdir and $failed; my $status = sprintf("%d commands (%d passed, %d failed)", $tests, $tests - $failed, $failed); if (isatty(fileno(STDOUT))) { if ($failed) { $status = "\033[31m\033[1m" . $status . "\033[m"; } else { $status = "\033[32m" . $status . "\033[m"; } } print_footer "$status\n"; flush_output; exit $failed ? 1 : 0; quilt-0.68/test/PaxHeaders/test.quiltrc0000644000000000000000000000013013442210673015226 xustar0029 mtime=1552486843.85456917 30 atime=1711552108.061370236 29 ctime=1552486843.85456917 quilt-0.68/test/test.quiltrc0000644000076500001440000000036213442210673016467 0ustar00khaliusers00000000000000# Define this to generate diffs without timestamps. QUILT_DIFF_ARGS="--no-timestamps" QUILT_REFRESH_ARGS="--no-timestamps" QUILT_MAIL_ARGS="--charset=UTF-8 --sender a@b.c --signature=-" QUILT_PATCHES_PREFIX=yes export QUOTING_STYLE=literal quilt-0.68/PaxHeaders/configure0000644000000000000000000000013214601030762013566 xustar0030 mtime=1711550962.354047711 30 atime=1711550965.539087422 30 ctime=1711550962.354047711 quilt-0.68/configure0000755000076500001440000050267014601030762015041 0ustar00khaliusers00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for quilt 0.68. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: quilt-dev@nongnu.org about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='quilt' PACKAGE_TARNAME='quilt' PACKAGE_VERSION='0.68' PACKAGE_STRING='quilt 0.68' PACKAGE_BUGREPORT='quilt-dev@nongnu.org' PACKAGE_URL='' ac_subst_vars='LTLIBOBJS LIBOBJS COMPAT_PROGRAMS COMPAT_SYMLINKS P7ZIP MD5SUM RPMBUILD USE_NLS PATCH_WRAPPER MSGCAT MSGUNIQ XGETTEXT MSGFMT MSGMERGE SENDMAIL DIFFSTAT XARGS FIND PATCH DIFF MKTEMP GETOPT COLUMN POD2MAN AWK SED STAT_HARDLINK STAT TR TAIL GREP PERL DATE CP BASH INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM PACKAGE_RELEASE target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking with_bash with_cp with_date with_perl with_grep with_tail with_tr with_stat with_sed with_awk with_pod2man with_column with_getopt with_mktemp with_diff with_patch with_find with_xargs with_diffstat with_sendmail enable_nls with_patch_wrapper with_rpmbuild with_md5sum with_7z ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures quilt 0.68 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/quilt] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of quilt 0.68:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-nls exclude natural language support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-bash name of the bash executable to use --with-cp name of the cp executable to use --with-date name of the date executable to use (use --without-date to use an internal mechanism) --with-perl name of the perl executable to use --with-grep name of the grep executable to use --with-tail name of the tail executable to use --with-tr name of the tr executable to use --with-stat name of the stat executable to use --with-sed name of the sed executable to use --with-awk name of the awk executable to use --with-pod2man name of the pod2man executable to use (use --without-pod2man to disable) --with-column name of the column executable to use (use --without-column to use an internal mechanism) --with-getopt name of the getopt executable to use (use --without-getopt to use an internal mechanism) --with-mktemp name of the mktemp executable to use (use --without-mktemp to use an internal mechanism) --with-diff name of the diff executable to use --with-patch name of the patch executable to use --with-find name of the find executable to use --with-xargs name of the xargs executable to use --with-diffstat name of the diffstat executable to use --with-sendmail name of the sendmail executable to use (use --without-sendmail to use an internal mechanism) --with-patch-wrapper include GNU patch wrapper --with-rpmbuild name of the rpmbuild executable to use --with-md5sum name of the md5sum executable to use --with-7z name of the 7z executable to use Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF quilt configure 0.68 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by quilt $as_me 0.68, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. PACKAGE_RELEASE=1 # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether #! works in shell scripts" >&5 $as_echo_n "checking whether #! works in shell scripts... " >&6; } if ${ac_cv_sys_interpreter+:} false; then : $as_echo_n "(cached) " >&6 else echo '#! /bin/cat exit 69 ' >conftest chmod u+x conftest (SHELL=/bin/sh; export SHELL; ./conftest >/dev/null 2>&1) if test $? -ne 69; then ac_cv_sys_interpreter=yes else ac_cv_sys_interpreter=no fi rm -f conftest fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_interpreter" >&5 $as_echo "$ac_cv_sys_interpreter" >&6; } interpval=$ac_cv_sys_interpreter if test "$interpval" != yes ; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no bash/perl scripts may not be invoked correctly due to problems with your systems implementation of #! being either broken or non-existant. " >&5 $as_echo "$as_me: WARNING: no bash/perl scripts may not be invoked correctly due to problems with your systems implementation of #! being either broken or non-existant. " >&2;} fi unset BASH # bash sets this itself! # Check whether --with-bash was given. if test "${with_bash+set}" = set; then : withval=$with_bash; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-bash" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bash" >&5 $as_echo_n "checking for bash... " >&6; } BASH="$withval" if test -e "$BASH"; then if test ! -f "$BASH" -a ! -h "$BASH" || test ! -x "$BASH"; then as_fn_error $? "$BASH is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5 $as_echo "$BASH" >&6; } if test ! -e "$BASH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $BASH does not exist" >&5 $as_echo "$as_me: WARNING: $BASH does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS bash" fi else # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_BASH+:} false; then : $as_echo_n "(cached) " >&6 else case $BASH in [\\/]* | ?:[\\/]*) ac_cv_path_BASH="$BASH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi BASH=$ac_cv_path_BASH if test -n "$BASH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5 $as_echo "$BASH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$BASH"; then as_fn_error $? "Please specify the location of bash with the option '--with-bash'" "$LINENO" 5 fi # It would be nice not to have to use backticks, but too many retarded sh # implementations still don't support $( ) # BEWARE: There is a distinct possibility that we are currently running under # bash in this configure script (/bin/sh being a symlink to /bin/bash). Even # though the result /could/ be available to us directly as $BASH_VERSION we # don't want to use, or trust it, incase the user is specifying a different # bash executable. if `$BASH -c '[ "$BASH_VERSION" \< "3.0" ]'` ; then as_fn_error $? " $PACKAGE_NAME requires at least version 3.0 of bash, you can download a current version of bash from ftp.gnu.org " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $BASH quoting works" >&5 $as_echo_n "checking whether $BASH quoting works... " >&6; } if test `$BASH -c "echo \"\\\$(set -- \\\$'a b'; echo \\\$#)\"" 2>/dev/null` = "1"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " You have a version of \`bash' which suffers from a quoting bug. This is a known bug of bash 3.1, which was fixed by patch bash31-011. You can get this patch at ftp://ftp.gnu.org/gnu/bash/ " "$LINENO" 5 fi # Check whether --with-cp was given. if test "${with_cp+set}" = set; then : withval=$with_cp; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-cp" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cp" >&5 $as_echo_n "checking for cp... " >&6; } CP="$withval" if test -e "$CP"; then if test ! -f "$CP" -a ! -h "$CP" || test ! -x "$CP"; then as_fn_error $? "$CP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } if test ! -e "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $CP does not exist" >&5 $as_echo "$as_me: WARNING: $CP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS cp" fi else for ac_prog in gcp cp do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_CP+:} false; then : $as_echo_n "(cached) " >&6 else case $CP in [\\/]* | ?:[\\/]*) ac_cv_path_CP="$CP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi CP=$ac_cv_path_CP if test -n "$CP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 $as_echo "$CP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CP" && break done if test -n "$CP" -a "`expr "$CP" : '.*/\([^/]*\)$'`" != "cp"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS cp" fi fi if test -z "$CP"; then as_fn_error $? "Please specify the location of cp with the option '--with-cp'" "$LINENO" 5 fi # Check whether --with-date was given. if test "${with_date+set}" = set; then : withval=$with_date; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-date" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for date" >&5 $as_echo_n "checking for date... " >&6; } DATE="$withval" if test -e "$DATE"; then if test ! -f "$DATE" -a ! -h "$DATE" || test ! -x "$DATE"; then as_fn_error $? "$DATE is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 $as_echo "$DATE" >&6; } if test ! -e "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DATE does not exist" >&5 $as_echo "$as_me: WARNING: $DATE does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS date" fi else for ac_prog in gdate date do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DATE+:} false; then : $as_echo_n "(cached) " >&6 else case $DATE in [\\/]* | ?:[\\/]*) ac_cv_path_DATE="$DATE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DATE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DATE=$ac_cv_path_DATE if test -n "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 $as_echo "$DATE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DATE" && break done if test -n "$DATE" -a "`expr "$DATE" : '.*/\([^/]*\)$'`" != "date"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS date" fi fi if test -z "$DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal date mechanism. Use option '--with-date' to override" >&5 $as_echo "$as_me: WARNING: Using internal date mechanism. Use option '--with-date' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS date" DATE=date INTERNAL_DATE=1 fi if test -z "$INTERNAL_DATE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $DATE --rfc-822 works" >&5 $as_echo_n "checking whether $DATE --rfc-822 works... " >&6; } if $DATE --rfc-822 >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error $? "no If you don't have a version of \`date' that supports --rfc-822, you can specify '--without-date' and $PACKAGE_NAME will use its own internal date. " "$LINENO" 5 fi fi # Check whether --with-perl was given. if test "${with_perl+set}" = set; then : withval=$with_perl; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-perl" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for perl" >&5 $as_echo_n "checking for perl... " >&6; } PERL="$withval" if test -e "$PERL"; then if test ! -f "$PERL" -a ! -h "$PERL" || test ! -x "$PERL"; then as_fn_error $? "$PERL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } if test ! -e "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $PERL does not exist" >&5 $as_echo "$as_me: WARNING: $PERL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS perl" fi else for ac_prog in perl perl5 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PERL" && break done if test -n "$PERL" -a "`expr "$PERL" : '.*/\([^/]*\)$'`" != "perl"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS perl" fi fi if test -z "$PERL"; then as_fn_error $? "Please specify the location of perl with the option '--with-perl'" "$LINENO" 5 fi # Check whether --with-grep was given. if test "${with_grep+set}" = set; then : withval=$with_grep; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-grep" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep" >&5 $as_echo_n "checking for grep... " >&6; } GREP="$withval" if test -e "$GREP"; then if test ! -f "$GREP" -a ! -h "$GREP" || test ! -x "$GREP"; then as_fn_error $? "$GREP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 $as_echo "$GREP" >&6; } if test ! -e "$GREP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $GREP does not exist" >&5 $as_echo "$as_me: WARNING: $GREP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS grep" fi else # Extract the first word of "grep", so it can be a program name with args. set dummy grep; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else case $GREP in [\\/]* | ?:[\\/]*) ac_cv_path_GREP="$GREP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GREP=$ac_cv_path_GREP if test -n "$GREP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 $as_echo "$GREP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$GREP"; then as_fn_error $? "Please specify the location of grep with the option '--with-grep'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $GREP -q works" >&5 $as_echo_n "checking whether $GREP -q works... " >&6; } if echo first | $GREP -q first 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of grep which doesn't understand -q. $PACKAGE_NAME needs it. If you have access to a version of grep which does understand -q, you can supply its path with the '--with-grep=' option. " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $GREP understands (foo|bar)" >&5 $as_echo_n "checking whether $GREP understands (foo|bar)... " >&6; } if echo first | $GREP '^\(fir\|las\)' >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of grep which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of grep which does understand such constructs, you can supply its path with the '--with-grep=' option. " "$LINENO" 5 fi # Check whether --with-tail was given. if test "${with_tail+set}" = set; then : withval=$with_tail; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-tail" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tail" >&5 $as_echo_n "checking for tail... " >&6; } TAIL="$withval" if test -e "$TAIL"; then if test ! -f "$TAIL" -a ! -h "$TAIL" || test ! -x "$TAIL"; then as_fn_error $? "$TAIL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5 $as_echo "$TAIL" >&6; } if test ! -e "$TAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $TAIL does not exist" >&5 $as_echo "$as_me: WARNING: $TAIL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS tail" fi else # Extract the first word of "tail", so it can be a program name with args. set dummy tail; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_TAIL+:} false; then : $as_echo_n "(cached) " >&6 else case $TAIL in [\\/]* | ?:[\\/]*) ac_cv_path_TAIL="$TAIL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_TAIL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi TAIL=$ac_cv_path_TAIL if test -n "$TAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5 $as_echo "$TAIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$TAIL"; then as_fn_error $? "Please specify the location of tail with the option '--with-tail'" "$LINENO" 5 fi # Solaris' /usr/bin/tail doesn't understand -n. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $TAIL -n works" >&5 $as_echo_n "checking whether $TAIL -n works... " >&6; } if test "`(echo first; echo second) | $TAIL -n 1 2>/dev/null`" = "second"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of tail which doesn't understand -n. $PACKAGE_NAME needs it. If you have access to a version of tail which does understand -n, you can supply its path with the '--with-tail=' option. Solaris users can use /usr/xpg4/bin/tail. " "$LINENO" 5 fi # Check whether --with-tr was given. if test "${with_tr+set}" = set; then : withval=$with_tr; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-tr" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tr" >&5 $as_echo_n "checking for tr... " >&6; } TR="$withval" if test -e "$TR"; then if test ! -f "$TR" -a ! -h "$TR" || test ! -x "$TR"; then as_fn_error $? "$TR is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 $as_echo "$TR" >&6; } if test ! -e "$TR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $TR does not exist" >&5 $as_echo "$as_me: WARNING: $TR does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS tr" fi else # Extract the first word of "tr", so it can be a program name with args. set dummy tr; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_TR+:} false; then : $as_echo_n "(cached) " >&6 else case $TR in [\\/]* | ?:[\\/]*) ac_cv_path_TR="$TR" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi TR=$ac_cv_path_TR if test -n "$TR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5 $as_echo "$TR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$TR"; then as_fn_error $? "Please specify the location of tr with the option '--with-tr'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $TR understands a-z " >&5 $as_echo_n "checking whether $TR understands a-z ... " >&6; } if test "`echo first | $TR a-z A-Z 2>/dev/null`" = "FIRST"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of tr which doesn't understand constructs of the form a-z. $PACKAGE_NAME needs it. If you have access to a version of tr which does understand such constructs, you can supply its path with the '--with-tr=' option. Solaris users can use /usr/xpg4/bin/tr. " "$LINENO" 5 fi # Check whether --with-stat was given. if test "${with_stat+set}" = set; then : withval=$with_stat; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-stat" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stat" >&5 $as_echo_n "checking for stat... " >&6; } STAT="$withval" if test -e "$STAT"; then if test ! -f "$STAT" -a ! -h "$STAT" || test ! -x "$STAT"; then as_fn_error $? "$STAT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5 $as_echo "$STAT" >&6; } if test ! -e "$STAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $STAT does not exist" >&5 $as_echo "$as_me: WARNING: $STAT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS stat" fi else # Extract the first word of "stat", so it can be a program name with args. set dummy stat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_STAT+:} false; then : $as_echo_n "(cached) " >&6 else case $STAT in [\\/]* | ?:[\\/]*) ac_cv_path_STAT="$STAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_STAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi STAT=$ac_cv_path_STAT if test -n "$STAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5 $as_echo "$STAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$STAT"; then as_fn_error $? "Please specify the location of stat with the option '--with-stat'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $STAT -c '%h' works" >&5 $as_echo_n "checking whether $STAT -c '%h' works... " >&6; } if $STAT -c '%h' /dev/null >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } STAT_HARDLINK="-c '%h'" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $STAT -f '%l' works" >&5 $as_echo_n "checking whether $STAT -f '%l' works... " >&6; } if $STAT -f '%l' /dev/null >/dev/null 2>/dev/null; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } STAT_HARDLINK="-f '%l'" else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of stat which understands neither -c nor -f. $PACKAGE_NAME needs it. If you have access to a version of stat which does understand -c or -f, you can supply its path with the '--with-stat=' option. " "$LINENO" 5 fi fi # Check whether --with-sed was given. if test "${with_sed+set}" = set; then : withval=$with_sed; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-sed" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sed" >&5 $as_echo_n "checking for sed... " >&6; } SED="$withval" if test -e "$SED"; then if test ! -f "$SED" -a ! -h "$SED" || test ! -x "$SED"; then as_fn_error $? "$SED is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } if test ! -e "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $SED does not exist" >&5 $as_echo "$as_me: WARNING: $SED does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS sed" fi else # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else case $SED in [\\/]* | ?:[\\/]*) ac_cv_path_SED="$SED" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SED=$ac_cv_path_SED if test -n "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$SED"; then as_fn_error $? "Please specify the location of sed with the option '--with-sed'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $SED understands (foo|bar)" >&5 $as_echo_n "checking whether $SED understands (foo|bar)... " >&6; } if test "`echo first | $SED -e 's/\(fir\|lo\)/la/' 2>/dev/null`" = "last"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of sed which doesn't understand constructs of the form (foo|bar). $PACKAGE_NAME needs it. If you have access to a version of sed which does understand such constructs, you can supply its path with the '--with-sed=' option. " "$LINENO" 5 fi # Check whether --with-awk was given. if test "${with_awk+set}" = set; then : withval=$with_awk; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-awk" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for awk" >&5 $as_echo_n "checking for awk... " >&6; } AWK="$withval" if test -e "$AWK"; then if test ! -f "$AWK" -a ! -h "$AWK" || test ! -x "$AWK"; then as_fn_error $? "$AWK is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } if test ! -e "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $AWK does not exist" >&5 $as_echo "$as_me: WARNING: $AWK does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS awk" fi else for ac_prog in gawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_AWK+:} false; then : $as_echo_n "(cached) " >&6 else case $AWK in [\\/]* | ?:[\\/]*) ac_cv_path_AWK="$AWK" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_AWK="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi AWK=$ac_cv_path_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done if test -n "$AWK" -a "`expr "$AWK" : '.*/\([^/]*\)$'`" != "awk"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS awk" fi fi if test -z "$AWK"; then as_fn_error $? "Please specify the location of awk with the option '--with-awk'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $AWK supports sub" >&5 $as_echo_n "checking whether $AWK supports sub... " >&6; } if test "`echo first | $AWK 'sub(/first/, "last")' 2>/dev/null`" = "last"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of awk which doesn't understand sub( ). $PACKAGE_NAME needs it. If you have access to a version of awk which does understand such constructs, you can supply its path with the '--with-awk=' option. Solaris users can use /usr/xpg4/bin/awk. " "$LINENO" 5 fi # Check whether --with-pod2man was given. if test "${with_pod2man+set}" = set; then : withval=$with_pod2man; if test x"$withval" = xno; then POD2MAN= else POD2MAN=$withval fi else # Extract the first word of "pod2man", so it can be a program name with args. set dummy pod2man; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_POD2MAN+:} false; then : $as_echo_n "(cached) " >&6 else case $POD2MAN in [\\/]* | ?:[\\/]*) ac_cv_path_POD2MAN="$POD2MAN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_POD2MAN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi POD2MAN=$ac_cv_path_POD2MAN if test -n "$POD2MAN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2MAN" >&5 $as_echo "$POD2MAN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi # Check whether --with-column was given. if test "${with_column+set}" = set; then : withval=$with_column; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-column" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for column" >&5 $as_echo_n "checking for column... " >&6; } COLUMN="$withval" if test -e "$COLUMN"; then if test ! -f "$COLUMN" -a ! -h "$COLUMN" || test ! -x "$COLUMN"; then as_fn_error $? "$COLUMN is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COLUMN" >&5 $as_echo "$COLUMN" >&6; } if test ! -e "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $COLUMN does not exist" >&5 $as_echo "$as_me: WARNING: $COLUMN does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS column" fi else # Extract the first word of "column", so it can be a program name with args. set dummy column; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_COLUMN+:} false; then : $as_echo_n "(cached) " >&6 else case $COLUMN in [\\/]* | ?:[\\/]*) ac_cv_path_COLUMN="$COLUMN" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_COLUMN="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi COLUMN=$ac_cv_path_COLUMN if test -n "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COLUMN" >&5 $as_echo "$COLUMN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$COLUMN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal column mechanism. Use option '--with-column' to override" >&5 $as_echo "$as_me: WARNING: Using internal column mechanism. Use option '--with-column' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS column" COLUMN=column INTERNAL_COLUMN=1 fi # Check whether --with-getopt was given. if test "${with_getopt+set}" = set; then : withval=$with_getopt; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-getopt" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getopt" >&5 $as_echo_n "checking for getopt... " >&6; } GETOPT="$withval" if test -e "$GETOPT"; then if test ! -f "$GETOPT" -a ! -h "$GETOPT" || test ! -x "$GETOPT"; then as_fn_error $? "$GETOPT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GETOPT" >&5 $as_echo "$GETOPT" >&6; } if test ! -e "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $GETOPT does not exist" >&5 $as_echo "$as_me: WARNING: $GETOPT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS getopt" fi else # Extract the first word of "getopt", so it can be a program name with args. set dummy getopt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GETOPT+:} false; then : $as_echo_n "(cached) " >&6 else case $GETOPT in [\\/]* | ?:[\\/]*) ac_cv_path_GETOPT="$GETOPT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GETOPT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GETOPT=$ac_cv_path_GETOPT if test -n "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GETOPT" >&5 $as_echo "$GETOPT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal getopt mechanism. Use option '--with-getopt' to override" >&5 $as_echo "$as_me: WARNING: Using internal getopt mechanism. Use option '--with-getopt' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS getopt" GETOPT=getopt INTERNAL_GETOPT=1 fi if test -z "$INTERNAL_GETOPT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getopt --long syntax" >&5 $as_echo_n "checking for getopt --long syntax... " >&6; } $GETOPT -o t --long test -- --test | grep 'illegal option' >/dev/null getopt_long_errors=$? $GETOPT -o t --long test -- --test | grep '^ *--test *--' >/dev/null getopt_long_works=$? if test $getopt_long_errors -eq 1 -a $getopt_long_works -eq 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " $GETOPT does not support the --long option. If you don't have a version of getopt that supports long options, you can specify '--without-getopt' and $PACKAGE_NAME will use its own internal getopt. " "$LINENO" 5 fi fi # Check whether --with-mktemp was given. if test "${with_mktemp+set}" = set; then : withval=$with_mktemp; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-mktemp" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mktemp" >&5 $as_echo_n "checking for mktemp... " >&6; } MKTEMP="$withval" if test -e "$MKTEMP"; then if test ! -f "$MKTEMP" -a ! -h "$MKTEMP" || test ! -x "$MKTEMP"; then as_fn_error $? "$MKTEMP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5 $as_echo "$MKTEMP" >&6; } if test ! -e "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $MKTEMP does not exist" >&5 $as_echo "$as_me: WARNING: $MKTEMP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS mktemp" fi else # Extract the first word of "mktemp", so it can be a program name with args. set dummy mktemp; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MKTEMP+:} false; then : $as_echo_n "(cached) " >&6 else case $MKTEMP in [\\/]* | ?:[\\/]*) ac_cv_path_MKTEMP="$MKTEMP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MKTEMP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MKTEMP=$ac_cv_path_MKTEMP if test -n "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5 $as_echo "$MKTEMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$MKTEMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal mktemp mechanism. Use option '--with-mktemp' to override" >&5 $as_echo "$as_me: WARNING: Using internal mktemp mechanism. Use option '--with-mktemp' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS mktemp" MKTEMP=mktemp INTERNAL_MKTEMP=1 fi if test -z "$INTERNAL_MKTEMP" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $MKTEMP -d works" >&5 $as_echo_n "checking whether $MKTEMP -d works... " >&6; } if tempdir=`$MKTEMP -d ${TMPDIR:-/tmp}/$PACKAGE_NAME.XXXXXX 2>/dev/null` && \ rmdir "$tempdir" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " '$MKTEMP -d' does not create temporary directories. If you don't have a version of mktemp that can create directories, you can specify '--without-mktemp' and $PACKAGE_NAME will use its own internal tempfile generation mechanism. " "$LINENO" 5 fi fi # Check whether --with-diff was given. if test "${with_diff+set}" = set; then : withval=$with_diff; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-diff" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diff" >&5 $as_echo_n "checking for diff... " >&6; } DIFF="$withval" if test -e "$DIFF"; then if test ! -f "$DIFF" -a ! -h "$DIFF" || test ! -x "$DIFF"; then as_fn_error $? "$DIFF is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 $as_echo "$DIFF" >&6; } if test ! -e "$DIFF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DIFF does not exist" >&5 $as_echo "$as_me: WARNING: $DIFF does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS diff" fi else # Extract the first word of "diff", so it can be a program name with args. set dummy diff; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DIFF+:} false; then : $as_echo_n "(cached) " >&6 else case $DIFF in [\\/]* | ?:[\\/]*) ac_cv_path_DIFF="$DIFF" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DIFF="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DIFF=$ac_cv_path_DIFF if test -n "$DIFF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5 $as_echo "$DIFF" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$DIFF"; then as_fn_error $? "Please specify the location of diff with the option '--with-diff'" "$LINENO" 5 fi # Check whether --with-patch was given. if test "${with_patch+set}" = set; then : withval=$with_patch; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-patch" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for patch" >&5 $as_echo_n "checking for patch... " >&6; } PATCH="$withval" if test -e "$PATCH"; then if test ! -f "$PATCH" -a ! -h "$PATCH" || test ! -x "$PATCH"; then as_fn_error $? "$PATCH is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PATCH" >&5 $as_echo "$PATCH" >&6; } if test ! -e "$PATCH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $PATCH does not exist" >&5 $as_echo "$as_me: WARNING: $PATCH does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS patch" fi else # Extract the first word of "patch", so it can be a program name with args. set dummy patch; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PATCH+:} false; then : $as_echo_n "(cached) " >&6 else case $PATCH in [\\/]* | ?:[\\/]*) ac_cv_path_PATCH="$PATCH" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PATCH="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PATCH=$ac_cv_path_PATCH if test -n "$PATCH"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PATCH" >&5 $as_echo "$PATCH" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$PATCH"; then as_fn_error $? "Please specify the location of patch with the option '--with-patch'" "$LINENO" 5 fi # Sun diff and others will not work because GNU patch options are used. { $as_echo "$as_me:${as_lineno-$LINENO}: checking the version of $DIFF" >&5 $as_echo_n "checking the version of $DIFF... " >&6; } if $DIFF --version 2>/dev/null | grep GNU >/dev/null; then set -- `$DIFF --version 2>/dev/null | $AWK '{ print $NF; exit }'` diff_version=$1 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $diff_version" >&5 $as_echo "$diff_version" >&6; } saved_IFS=$IFS; IFS='.' set -- $diff_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 7 ; then diff_version= fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no GNU diff" >&5 $as_echo "no GNU diff" >&6; } fi if test -z "$diff_version" ; then as_fn_error $? " $PACKAGE_NAME requires at least version 2.7 of GNU diffutils. You can download a current version of patch from ftp.gnu.org, or if you already have GNU diff then you can supply its path with the '--with-diff=' option. " "$LINENO" 5 fi # Sun's patch, and others, do not work because GNU patch options are used. { $as_echo "$as_me:${as_lineno-$LINENO}: checking the version of $PATCH" >&5 $as_echo_n "checking the version of $PATCH... " >&6; } if $PATCH --version 2> /dev/null | grep GNU >/dev/null; then set -- `$PATCH --version 2> /dev/null` if test x$1 = xGNU ; then patch_version=$3 else patch_version=$2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $patch_version" >&5 $as_echo "$patch_version" >&6; } saved_IFS=$IFS; IFS='.' set -- $patch_version IFS=$saved_IFS set -- `echo $1 | $TR -cd 0-9` `echo $2 | $TR -cd 0-9` if test 0$1 -lt 2 || test 0$1 -eq 2 -a 0$2 -lt 5 ; then patch_version= fi else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no GNU patch" >&5 $as_echo "no GNU patch" >&6; } fi if test -z "$patch_version" ; then as_fn_error $? " $PACKAGE_NAME requires at least version 2.5 of GNU patch. You can download a current version of patch from ftp.gnu.org, or if you already have GNU patch then you can supply its path with the '--with-patch=' option. " "$LINENO" 5 fi # Check whether --with-find was given. if test "${with_find+set}" = set; then : withval=$with_find; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-find" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for find" >&5 $as_echo_n "checking for find... " >&6; } FIND="$withval" if test -e "$FIND"; then if test ! -f "$FIND" -a ! -h "$FIND" || test ! -x "$FIND"; then as_fn_error $? "$FIND is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5 $as_echo "$FIND" >&6; } if test ! -e "$FIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $FIND does not exist" >&5 $as_echo "$as_me: WARNING: $FIND does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS find" fi else # Extract the first word of "find", so it can be a program name with args. set dummy find; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_FIND+:} false; then : $as_echo_n "(cached) " >&6 else case $FIND in [\\/]* | ?:[\\/]*) ac_cv_path_FIND="$FIND" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_FIND="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi FIND=$ac_cv_path_FIND if test -n "$FIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5 $as_echo "$FIND" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$FIND"; then as_fn_error $? "Please specify the location of find with the option '--with-find'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FIND -path works" >&5 $as_echo_n "checking whether $FIND -path works... " >&6; } if $FIND . -path '*' >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of find which doesn't understand -path. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -path, you can supply its path with the '--with-find=' option. " "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $FIND -print0 works" >&5 $as_echo_n "checking whether $FIND -print0 works... " >&6; } if $FIND . -path '*' -print0 >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of find which doesn't understand -print0. $PACKAGE_NAME needs it. If you have access to a version of find which does understand -print0, you can supply its path with the '--with-find=' option. " "$LINENO" 5 fi # Check whether --with-xargs was given. if test "${with_xargs+set}" = set; then : withval=$with_xargs; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-xargs" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xargs" >&5 $as_echo_n "checking for xargs... " >&6; } XARGS="$withval" if test -e "$XARGS"; then if test ! -f "$XARGS" -a ! -h "$XARGS" || test ! -x "$XARGS"; then as_fn_error $? "$XARGS is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5 $as_echo "$XARGS" >&6; } if test ! -e "$XARGS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $XARGS does not exist" >&5 $as_echo "$as_me: WARNING: $XARGS does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS xargs" fi else # Extract the first word of "xargs", so it can be a program name with args. set dummy xargs; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XARGS+:} false; then : $as_echo_n "(cached) " >&6 else case $XARGS in [\\/]* | ?:[\\/]*) ac_cv_path_XARGS="$XARGS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XARGS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XARGS=$ac_cv_path_XARGS if test -n "$XARGS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5 $as_echo "$XARGS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$XARGS"; then as_fn_error $? "Please specify the location of xargs with the option '--with-xargs'" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $XARGS -0 works" >&5 $as_echo_n "checking whether $XARGS -0 works... " >&6; } if echo | $XARGS -0 echo >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? " Sorry, you have a version of xargs which doesn't understand -0. $PACKAGE_NAME needs it. If you have access to a version of xargs which does understand -0, you can supply its path with the '--with-xargs=' option. " "$LINENO" 5 fi # Check whether --with-diffstat was given. if test "${with_diffstat+set}" = set; then : withval=$with_diffstat; if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diffstat" >&5 $as_echo_n "checking for diffstat... " >&6; } DIFFSTAT="$withval" if test -e "$DIFFSTAT"; then if test ! -f "$DIFFSTAT" -a ! -h "$DIFFSTAT" || test ! -x "$DIFFSTAT"; then as_fn_error $? "$DIFFSTAT is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFFSTAT" >&5 $as_echo "$DIFFSTAT" >&6; } if test ! -e "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $DIFFSTAT does not exist" >&5 $as_echo "$as_me: WARNING: $DIFFSTAT does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS diffstat" fi else # Extract the first word of "diffstat", so it can be a program name with args. set dummy diffstat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_DIFFSTAT+:} false; then : $as_echo_n "(cached) " >&6 else case $DIFFSTAT in [\\/]* | ?:[\\/]*) ac_cv_path_DIFFSTAT="$DIFFSTAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_DIFFSTAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi DIFFSTAT=$ac_cv_path_DIFFSTAT if test -n "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFFSTAT" >&5 $as_echo "$DIFFSTAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$DIFFSTAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat not found, some optional functionalities will be missing" >&5 $as_echo "$as_me: WARNING: diffstat not found, some optional functionalities will be missing" >&2;} fi fi if test -z "$DIFFSTAT"; then DIFFSTAT=diffstat fi if test "$DIFFSTAT" != "diffstat"; then # We need diffstat version 1.32 or better, else quilt refresh --diffstat # will show progress data we don't want to see. This is only a warning # and we continue even if version is older, as this is only a minor # annoyance. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for diffstat version" >&5 $as_echo_n "checking for diffstat version... " >&6; } diffstat_version=`$DIFFSTAT -V 2>/dev/null | \ sed 's/^[^0-9]*\([0-9]*\)\.\([0-9]*\).*/\1 \2/'` eval set -- "$diffstat_version" diffstat_major_version="$1" diffstat_minor_version="$2" if test -z "$diffstat_major_version" -o -z "$diffstat_minor_version"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5 $as_echo "unknown" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. " >&5 $as_echo "$as_me: WARNING: diffstat utility version couldn't be checked; chances are good that the --diffstat option of the refresh command will not work properly. " >&2;} else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $diffstat_major_version.$diffstat_minor_version" >&5 $as_echo "$diffstat_major_version.$diffstat_minor_version" >&6; } if test "$diffstat_major_version" -lt 1 \ -o \( "$diffstat_major_version" -eq 1 -a "$diffstat_minor_version" -lt 32 \); then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. " >&5 $as_echo "$as_me: WARNING: diffstat utility is too old; the --diffstat option of the refresh command will not work correctly until a newer version (>= 1.32) is installed. " >&2;} fi fi fi # Check whether --with-sendmail was given. if test "${with_sendmail+set}" = set; then : withval=$with_sendmail; if test x"$withval" = xnone; then as_fn_error $? "Invalid configure argument. use --without-sendmail" "$LINENO" 5 fi if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendmail" >&5 $as_echo_n "checking for sendmail... " >&6; } SENDMAIL="$withval" if test -e "$SENDMAIL"; then if test ! -f "$SENDMAIL" -a ! -h "$SENDMAIL" || test ! -x "$SENDMAIL"; then as_fn_error $? "$SENDMAIL is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SENDMAIL" >&5 $as_echo "$SENDMAIL" >&6; } if test ! -e "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $SENDMAIL does not exist" >&5 $as_echo "$as_me: WARNING: $SENDMAIL does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS sendmail" fi else # Extract the first word of "sendmail", so it can be a program name with args. set dummy sendmail; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SENDMAIL+:} false; then : $as_echo_n "(cached) " >&6 else case $SENDMAIL in [\\/]* | ?:[\\/]*) ac_cv_path_SENDMAIL="$SENDMAIL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:/usr/sbin" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SENDMAIL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SENDMAIL=$ac_cv_path_SENDMAIL if test -n "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SENDMAIL" >&5 $as_echo "$SENDMAIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$SENDMAIL"; then as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for dir in "/usr/sbin"; do if test "`dirname $SENDMAIL`" = "$dir"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS sendmail" break fi done IFS="$as_save_IFS" fi fi if test -z "$SENDMAIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using internal sendmail mechanism. Use option '--with-sendmail' to override" >&5 $as_echo "$as_me: WARNING: Using internal sendmail mechanism. Use option '--with-sendmail' to override" >&2;} COMPAT_PROGRAMS="$COMPAT_PROGRAMS sendmail" SENDMAIL=sendmail INTERNAL_SENDMAIL=1 fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGMERGE=$ac_cv_path_MSGMERGE if test -n "$MSGMERGE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGFMT=$ac_cv_path_MSGFMT if test -n "$MSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case $XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi XGETTEXT=$ac_cv_path_XGETTEXT if test -n "$XGETTEXT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msguniq", so it can be a program name with args. set dummy msguniq; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGUNIQ+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGUNIQ in [\\/]* | ?:[\\/]*) ac_cv_path_MSGUNIQ="$MSGUNIQ" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGUNIQ="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGUNIQ=$ac_cv_path_MSGUNIQ if test -n "$MSGUNIQ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGUNIQ" >&5 $as_echo "$MSGUNIQ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "msgcat", so it can be a program name with args. set dummy msgcat; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGCAT+:} false; then : $as_echo_n "(cached) " >&6 else case $MSGCAT in [\\/]* | ?:[\\/]*) ac_cv_path_MSGCAT="$MSGCAT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MSGCAT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MSGCAT=$ac_cv_path_MSGCAT if test -n "$MSGCAT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGCAT" >&5 $as_echo "$MSGCAT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$MSGFMT" -a -n "$MSGMERGE" -a -n "$XGETTEXT" -a -n "$MSGUNIQ" -a -n "$MSGCAT" ; then HAVE_NLS=yes else HAVE_NLS=no fi USE_NLS=no # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=$HAVE_NLS fi if test $USE_NLS = yes -a $HAVE_NLS = no ; then as_fn_error $? " You do not appear to have msgfmt, which is part of the GNU Gettext package. It is a required package as you chose the '--enable-nls' option to configure. You can download GNU Gettext from ftp.gnu.org " "$LINENO" 5 fi PATCH_WRAPPER= # Check whether --with-patch-wrapper was given. if test "${with_patch_wrapper+set}" = set; then : withval=$with_patch_wrapper; if test "$withval" = yes ; then PATCH_WRAPPER=$withval fi fi if test $USE_NLS = no ; then { $as_echo "$as_me:${as_lineno-$LINENO}: Building without natural language support" >&5 $as_echo "$as_me: Building without natural language support" >&6;} fi # Check whether --with-rpmbuild was given. if test "${with_rpmbuild+set}" = set; then : withval=$with_rpmbuild; if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rpmbuild" >&5 $as_echo_n "checking for rpmbuild... " >&6; } RPMBUILD="$withval" if test -e "$RPMBUILD"; then if test ! -f "$RPMBUILD" -a ! -h "$RPMBUILD" || test ! -x "$RPMBUILD"; then as_fn_error $? "$RPMBUILD is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RPMBUILD" >&5 $as_echo "$RPMBUILD" >&6; } if test ! -e "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $RPMBUILD does not exist" >&5 $as_echo "$as_me: WARNING: $RPMBUILD does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS rpmbuild" fi else for ac_prog in rpmbuild rpm do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_RPMBUILD+:} false; then : $as_echo_n "(cached) " >&6 else case $RPMBUILD in [\\/]* | ?:[\\/]*) ac_cv_path_RPMBUILD="$RPMBUILD" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_RPMBUILD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi RPMBUILD=$ac_cv_path_RPMBUILD if test -n "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RPMBUILD" >&5 $as_echo "$RPMBUILD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$RPMBUILD" && break done if test -n "$RPMBUILD" -a "`expr "$RPMBUILD" : '.*/\([^/]*\)$'`" != "rpmbuild"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS rpmbuild" fi if test -z "$RPMBUILD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: rpmbuild not found, some optional functionalities will be missing" >&5 $as_echo "$as_me: WARNING: rpmbuild not found, some optional functionalities will be missing" >&2;} fi fi if test -z "$RPMBUILD"; then RPMBUILD=rpmbuild fi # Check whether --with-md5sum was given. if test "${with_md5sum+set}" = set; then : withval=$with_md5sum; if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for md5sum" >&5 $as_echo_n "checking for md5sum... " >&6; } MD5SUM="$withval" if test -e "$MD5SUM"; then if test ! -f "$MD5SUM" -a ! -h "$MD5SUM" || test ! -x "$MD5SUM"; then as_fn_error $? "$MD5SUM is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MD5SUM" >&5 $as_echo "$MD5SUM" >&6; } if test ! -e "$MD5SUM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $MD5SUM does not exist" >&5 $as_echo "$as_me: WARNING: $MD5SUM does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS md5sum" fi else for ac_prog in gmd5sum md5sum do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MD5SUM+:} false; then : $as_echo_n "(cached) " >&6 else case $MD5SUM in [\\/]* | ?:[\\/]*) ac_cv_path_MD5SUM="$MD5SUM" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_MD5SUM="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi MD5SUM=$ac_cv_path_MD5SUM if test -n "$MD5SUM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MD5SUM" >&5 $as_echo "$MD5SUM" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$MD5SUM" && break done if test -n "$MD5SUM" -a "`expr "$MD5SUM" : '.*/\([^/]*\)$'`" != "md5sum"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS md5sum" fi if test -z "$MD5SUM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: md5sum not found, some optional functionalities will be missing" >&5 $as_echo "$as_me: WARNING: md5sum not found, some optional functionalities will be missing" >&2;} fi fi if test -z "$MD5SUM"; then MD5SUM=md5sum fi # Check whether --with-7z was given. if test "${with_7z+set}" = set; then : withval=$with_7z; if test x"$withval" != xno; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 7z" >&5 $as_echo_n "checking for 7z... " >&6; } P7ZIP="$withval" if test -e "$P7ZIP"; then if test ! -f "$P7ZIP" -a ! -h "$P7ZIP" || test ! -x "$P7ZIP"; then as_fn_error $? "$P7ZIP is not an executable file" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $P7ZIP" >&5 $as_echo "$P7ZIP" >&6; } if test ! -e "$P7ZIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $P7ZIP does not exist" >&5 $as_echo "$as_me: WARNING: $P7ZIP does not exist" >&2;} fi COMPAT_SYMLINKS="$COMPAT_SYMLINKS 7z" fi else for ac_prog in 7zr 7za 7z do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_P7ZIP+:} false; then : $as_echo_n "(cached) " >&6 else case $P7ZIP in [\\/]* | ?:[\\/]*) ac_cv_path_P7ZIP="$P7ZIP" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_P7ZIP="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi P7ZIP=$ac_cv_path_P7ZIP if test -n "$P7ZIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $P7ZIP" >&5 $as_echo "$P7ZIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$P7ZIP" && break done if test -n "$P7ZIP" -a "`expr "$P7ZIP" : '.*/\([^/]*\)$'`" != "7z"; then COMPAT_SYMLINKS="$COMPAT_SYMLINKS 7z" fi if test -z "$P7ZIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 7z not found, some optional functionalities will be missing" >&5 $as_echo "$as_me: WARNING: 7z not found, some optional functionalities will be missing" >&2;} fi fi if test -z "$P7ZIP"; then P7ZIP=7z fi ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by quilt $as_me 0.68, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ quilt config.status 0.68 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PACKAGE_NAME version $PACKAGE_VERSION configured." >&5 $as_echo "$PACKAGE_NAME version $PACKAGE_VERSION configured." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using '$prefix' for installation prefix." >&5 $as_echo "Using '$prefix' for installation prefix." >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: Report bugs to $PACKAGE_BUGREPORT" >&5 $as_echo "Report bugs to $PACKAGE_BUGREPORT" >&6; } quilt-0.68/PaxHeaders/quilt.spec0000644000000000000000000000013214601034010013662 xustar0030 mtime=1711552520.357923058 30 atime=1711552520.355923029 30 ctime=1711552520.357923058 quilt-0.68/quilt.spec0000644000076500001440000002637614601034010015136 0ustar00khaliusers00000000000000# # spec file for quilt - patch management scripts # Name: quilt Summary: Scripts for working with series of patches License: GPL Group: Productivity/Text/Utilities Version: 0.68 Release: 1 Requires: coreutils diffutils findutils patch gzip bzip2 perl mktemp gettext Autoreqprov: off Source: quilt-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build %description The scripts allow to manage a series of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, etc. The scripts are heavily based on Andrew Morton's patch scripts found at http://userweb.kernel.org/~akpm/stuff/patch-scripts.tar.gz. Authors: -------- Andrew Morton Andreas Gruenbacher %prep %setup %build CFLAGS="$RPM_OPT_FLAGS" \ ./configure --prefix=/usr \ --mandir=%_mandir \ --docdir=%_docdir/%{name}-%{version} make RELEASE=%release %install rm -rf $RPM_BUILD_ROOT make install prefix=/usr BUILD_ROOT=$RPM_BUILD_ROOT %{find_lang} %{name} %clean rm -rf $RPM_BUILD_ROOT %files -f %{name}.lang %defattr(-, root, root) /usr/bin/guards /usr/bin/quilt /usr/share/quilt/ /usr/share/emacs/ /etc/bash_completion.d/quilt %config(noreplace) /etc/quilt.quiltrc %doc %{_mandir}/man1/guards.1* %doc %{_mandir}/man1/quilt.1* %doc %{_docdir}/%{name}-%{version}/README %doc %{_docdir}/%{name}-%{version}/README.MAIL %doc %{_docdir}/%{name}-%{version}/quilt.pdf %changelog * Wed Mar 27 2024 - upstream - Update to version 0.68 + Add support for zstd archives + Documentation: Massive formatting update of the manual page + Documentation: Reword some sections of the manual page + Fix compatibility with BSD awk + Fix compatibility with GNU awk version 5.0.0 and later + Fix compatibility with GNU grep version 3.8 and later + Fix compatibility with Solaris ln (#63451) + Installation: Fix multiple issues in install-sh (#64430) + Test suite: Fix various race conditions (#63651) + patches: Find file name with a space in unapplied patches (#41708) + pop: Hint at diff -z on failure + setup: Document the limitation of spec file support * Tue Feb 15 2022 - upstream - Update to version 0.67 + Call pager with original LANG environment variable + Consistently complain early if no series file is found + Fix handling of symbolic links by several commands + Tighten the patch format parsing + Reuse the shell (performance) + Document the series file format further + Document that quilt loads /etc/quilt.quiltrc + configure: Make stat configurable + series: Minor optimizations + setup: Don't obey the settings of any englobing .pc + setup: Default to fast mode + quilt.el: Fix documentation of quilt-pc-directory + quilt.el: Load /etc/quilt.quiltrc if ~/.quiltrc doesn't exist + quilt.el: Fix quilt-editable when QUILT_PATCHES_PREFIX is set * Thu Mar 28 2019 - upstream - Update to version 0.66 + Add support for lzip archives and patches (#54570) + Document QUILT_PC as user-settable + configure: Don't require md5sum + Test suite: Allow keeping the working directory on failure + Test suite: Fix regex for recent versions of perl + Test suite: Fix /bin/sh filtering + Test suite: Run tests again if test.quiltrc changes + Test suite: Handle alternative QUILT_PATCHES values + Test suite: Increase code path coverage + Test suite: Be verbose on directory error + Test suite: Clean up when interrupted + Test suite: Prevent test cases from escaping + fold: Fix German translation + diff: Add missing quotes in basename call (#50862) + header: Fix corruption when trailing newline is missing (#50841) + mail: Fix patch set threading (#50775) + mail: Fix French translation + mail: Remove Content-Disposition headers + mail: Complain when a patch doesn't exist + new: Fix corruption when trailing newline is missing (#54295) + refresh: Add missing quotes in basename call (#50862) + setup: Add basic support for p7zip (.7z) archives (#49754) + setup: Align --fast on --slow for series files + quilt.el: Define quilt-edit-top-only before it's used + quilt.el: Stop using deprecated toggle-read-only + quilt.el: Don't strip directory in quilt-top-patch + quilt.el: Fix emacs compatibility issue (#51977) + quilt.el: Read QUILT_PC from config file + quiltrc: Support all patch formats by default + guards: Mention it in quilt manual page + compat/getopt: Handle a second separator (#54772) + compat/getopt: Allow non-digit parameter embedded in short option (#54772) * Wed Oct 09 2016 - upstream - Update to version 0.65 + Translation fixes + Project settings have priority + Reject binary files in patches + Fix a race condition in diff_file + Performance: Optimizations to the setup command + Performance: Optimizations to the bash completion script + Test suite: Improve the edit test case + Test suite: Make the symlink test more robust + Test suite: Test backup failure + Test suite: Test the header command with hard links + diff: Report diff failures + edit: Fix a corner case bug + mail: Fix the help text + push: Fix the synopsis + refresh: Do not remove symlinks + refresh: Break links to read-only patch files + refresh: Always preserve modification time + setup: Report failed look-ups in inspect-wrapper + quilt.el: Fix quilt-editable when patches are stored in subdirs + bash_completion: Handle spaces in file names + bash_completion: Update the list of commands + bash_completion: Add new command options + bash_completion: Fix handling of mail, new, push options + guards: Simplify the help text + guards: Include the file name also in the "Not found" case + guards: Add support for an external filelist in --check mode + guards: Report which config file has problem in --check mode + guards: Documentation update + guards: Clarify a user message * Mon Feb 09 2015 - upstream - Update to version 0.64 + Check for series file consistency + Performance: Several optimizations + Test suite: Several fixes and coverage improvements + Test suite: Run the tests in predictable order + files: Add support for unapplied patches + graph: Check for graphviz availability + mail: Remove procmail dependency + mail: Don't include the release number in User-Agent + pop: Add --refresh option + push: Add --refresh option + push: Do not use interactive mode with -f + setup: Skip version check + setup: Check for rpmbuild availability + setup: Handle long options passed to tar + setup: Several cleanups and minor fixes + setup: Major performance optimizations + setup: Fix path to extra patches in series file + setup: Trace calls earlier + setup: Add --fast option + setup: Fix link creation + quilt.el: Fix tramp support + quilt.el: Fix patch select completion * Sun May 25 2014 - upstream - Update to version 0.63 + New NEWS file, containing a human-readable changelog + Option -E is no longer passed to patch by default + Huge performance improvement (e.g., for commands series, applied and unapplied) + configure: Add compat symlinks for md5sum + Return 2 when there is nothing to do, contrasting with errors (ret=1) + Exit with an error when diff's retcode=2 (error) on patch refresh + bash_completion: cleanups and performance improvement (Savannah's #27111) + test/run: Use perl module Text::ParseWords (+ performance improvement) + Add some tests to our testsuite, for a better coverage + Fix heuristic for unapplied patches with timestamps + Bug fix: Patches emptying files should work now + Bug fix: Check for duplicate patch in series (Savannah's #20628) + Portability fixes for older Bash and GNU patch * Wed May 07 2014 - upstream - Update to version 0.62 + Was a buggy release, with an incomplete tarfile * Sun Dec 08 2013 - upstream - Update to version 0.61 + Almost two years of fixes and minor improvements + Fix support for ./configure --with-xargs + Parameter quoting fixes to many commands + Various fixes to the pop, push, refresh and patches commands + Translation fixes + setup: Many fixes and improvements + remove-trailing-ws: Several fixes and improvements + remove-trailing-ws: Add a dedicated test case + quilt.el: Many fixes and improvements (emacs integration) * Wed Feb 29 2012 - upstream - Update to version 0.60 + BSD compatibility improvements + grep: Support file names which include spaces + import: Fix import of relative patches + mail: Several fixes + setup: Support directory and archive names which include spaces + backup-files: rewritten from C to bash + backup-files: Add a dedicated test case * Sat Jan 28 2012 - upstream - Update to version 0.51 + Fix support for ./configure --docdir + Various $TMPDIR fixes + mail: Fix delivery address checking + mail: CC people in more common patch headers + push: Fix bash completion + inspect: Complain if wrapper script can't be executed * Mon Dec 5 2011 - upstream - Update to version 0.50 + 34 months of fixes and improvements, too many to list them all + Fix detection of the patch version + Avoid error messages when building due to missing git-desc file + Add support for lzma and xz compression formats + import: Fix confusing French translation + mail: Stop using =~ for older versions of bash + mail: Fix a temporary directory leak + revert: Stop using cp -l + revert: Add bash completion support + setup: Add --fuzz parameter + setup: Add support for reverse patches + inspect: Fix shell syntax errors + Fix error in test case create-delete * Thu Jan 29 2009 - upstream - Update to version 0.48 + fold: Fix bash completion + mail: Don't use GNU awk extensions + mail: Check for formail + setup: Fix for rpm 4.6 + Fix error in test case import * Thu Aug 21 2008 - upstream - Update to version 0.47 + Change summary not available * Thu Oct 19 2006 - upstream - Update to version 0.46 + Change summary not available * Mon Apr 24 2006 - upstream - Update to version 0.45 + Change summary not available * Tue Feb 14 2006 - upstream - Update to version 0.44 + Change summary not available * Wed Feb 01 2006 - upstream - Update to version 0.43 + Change summary not available * Tue Jul 26 2005 - upstream - Update to version 0.42 + Change summary not available * Fri Apr 29 2005 - upstream - Update to version 0.40 + Change summary not available * Thu Feb 10 2005 - upstream - Update to version 0.39 + Change summary not available * Sun Oct 17 2004 - upstream - Update to version 0.37 + Change summary not available * Wed Sep 22 2004 - upstream - Update to version 0.36 + Change summary not available * Thu Jul 15 2004 - upstream - Update to version 0.35 + Change summary not available * Thu Jun 10 2004 - upstream - Update to version 0.34 + Change summary not available * Sun Jun 06 2004 - upstream - Update to version 0.33 + Change summary not available * Sat Mar 13 2004 - upstream - Update to version 0.32 + Change summary not available * Wed Jan 28 2004 - upstream - Update to version 0.30 + Change summary not available * Wed Nov 12 2003 - upstream - Update to version 0.29 + Change summary not available * Fri Oct 31 2003 - upstream - Update to version 0.28 + Change summary not available * Tue Oct 28 2003 - upstream - Update to version 0.27 + Change summary not available * Tue Oct 21 2003 - upstream - Update to version 0.26 + Change summary not available