Project import
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1242917 --- /dev/null +++ b/Makefile
@@ -0,0 +1,124 @@ +# +# Copyright (c) 2012 Nest Labs, Inc. +# All rights reserved. +# +# This document is the property of Nest. It is considered +# confidential and proprietary information. +# +# This document may not be reproduced or transmitted in any form, +# in whole or in part, without the express written permission of +# Nest. +# +# Description: +# This file is the make file for popt, a library for parsing +# command-line arguments. +# + +BuildConfigSpecialized := No +BuildProductSpecialized := No + +include pre.mak + +PackageName := popt + +PackageExtension := tar.gz +PackageSeparator := - + +PackagePatchArgs := -p1 + +PackageArchive := $(PackageName).$(PackageExtension) +PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion) + +PackageBuildMakefile = $(call GenerateBuildPaths,Makefile) + +LicenseSourceFile := $(PackageSourceDir)/COPYING + +CleanPaths += $(PackageLicenseFile) + +all: $(PackageDefaultGoal) + +# Generate the package license contents. + +$(LicenseSourceFile): source + +$(PackageLicenseFile): $(LicenseSourceFile) + $(copy-result) + +# Extract the source from the archive and apply patches, if any. + +$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths) + $(expand-and-patch-package) + +# Prepare the sources. + +.PHONY: source +source: | $(PackageSourceDir) + +# Patch the sources, if necessary. + +.PHONY: patch +patch: source + +# Generate the package build makefile. + +$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory) $(ResultDirectory) + $(Verbose)cd $(BuildDirectory) && \ + $(CURDIR)/$(PackageSourceDir)/configure \ + CC="$(CC)" CXX="$(CXX)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \ + INSTALL="$(INSTALL) $(INSTALLFLAGS)" \ + --build=$(HostTuple) \ + --host=$(TargetTuple) \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static + +# Configure the source for building. + +.PHONY: configure +configure: source $(PackageBuildMakefile) + +# Build the source. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. + +.PHONY: build +build: configure + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) \ + all + +# Stage the build to a temporary installation area. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. +# +# We explictly remove 'libpopt.la' because some packages that depend +# on expat use libtool. If libtool finds a '*.la' file for a library, +# it uses the value of 'libdir=<dir>' it finds. In our case, since +# '--prefix=/usr' this value is '/usr/lib'. It then resolves '-lexpat' +# to '/usr/lib/libpopt.so'. In a cross-compilation environment, this +# is likely to be neither the right architecture nor the right +# version to link against. In short, we lose. +# +# We could also handle this by removing DESTDIR and setting the prefix +# to $(ResultDirectory); however, that results in libtool hard-coding +# $(ResultDirectory) as the RPATH in the linked executables which is +# NOT what we want either. We lose again. +# +# By removing the '*.la' file, we win by ensuring neither a +# misdirected link nor an RPATH. + +.PHONY: stage +stage: build | $(ResultDirectory) + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) \ + DESTDIR=$(ResultDirectory) \ + install + $(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,usr/lib/libpopt.la) + +clean: + $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir) + $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory) + $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory) + +include post.mak
diff --git a/popt-1.16/ABOUT-NLS b/popt-1.16/ABOUT-NLS new file mode 100644 index 0000000..83bc72e --- /dev/null +++ b/popt-1.16/ABOUT-NLS
@@ -0,0 +1,1068 @@ +1 Notes on the Free Translation Project +*************************************** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +1.1 Quick configuration advice +============================== + +If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in the +operating system where this package is being installed. So far, only +the `gettext' implementation in the GNU C library version 2 provides as +many features (such as locale alias, message inheritance, automatic +charset conversion or plural form handling) as the implementation here. +It is also not possible to offer this additional functionality on top +of a `catgets' implementation. Future versions of GNU `gettext' will +very likely convey even more functionality. So it might be a good idea +to change to GNU `gettext' as soon as possible. + + So you need _not_ provide this option if you are using GNU libc 2 or +you have installed a recent copy of the GNU gettext package with the +included `libintl'. + +1.2 INSTALL Matters +=================== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. If not, the included GNU +`gettext' library will be used. This library is wholly contained +within this package, usually in the `intl/' subdirectory, so prior +installation of the GNU `gettext' package is _not_ required. +Installers may use special options at configuration time for changing +the default behaviour. The commands: + + ./configure --with-included-gettext + ./configure --disable-nls + +will, respectively, bypass any pre-existing `gettext' to use the +internationalizing routines provided within this package, or else, +_totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might not be desirable. You should use +the more recent version of the GNU `gettext' library. I.e. if the file +`intl/VERSION' shows that the library which comes with this package is +more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + The configuration process will not test for the `catgets' function +and therefore it will not be used. The reason is that even an +emulation of `gettext' on top of `catgets' could not provide all the +extensions of the GNU `gettext' library. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.3 Using This Package +====================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. If you happen to have the `LC_ALL' or some other +`LC_xxx' environment variables set, you should unset them before +setting `LANG', otherwise the setting of `LANG' will not have the +desired effect. Here `LL' is an ISO 639 two-letter language code, and +`CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your language by running the +command `locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +1.4 Translating Teams +===================== + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://translationproject.org/', in the "Teams" area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `coordinator@translationproject.org' to +reach the coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skills are praised more than +programming skills, here. + +1.5 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of November +2007. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo + +----------------------------------------------------+ + Compendium | [] [] [] [] | + a2ps | [] [] [] [] [] | + aegis | () | + ant-phone | () | + anubis | [] | + ap-utils | | + aspell | [] [] [] [] [] | + bash | [] | + bfd | | + bibshelf | [] | + binutils | | + bison | [] [] | + bison-runtime | [] | + bluez-pin | [] [] [] [] [] | + cflow | [] | + clisp | [] [] [] | + console-tools | [] [] | + coreutils | [] [] [] [] | + cpio | | + cpplib | [] [] [] | + cryptonit | [] | + dialog | | + diffutils | [] [] [] [] [] [] | + doodle | [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + fetchmail | [] [] () [] [] | + findutils | [] | + findutils_stable | [] [] [] | + flex | [] [] [] | + fslint | | + gas | | + gawk | [] [] [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] | + gip | [] | + gliv | [] [] | + glunarclock | [] | + gmult | [] [] | + gnubiff | () | + gnucash | [] [] () () [] | + gnuedu | | + gnulib | [] | + gnunet | | + gnunet-gtk | | + gnutls | [] | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | | + gpe-clock | [] [] | + gpe-conf | [] [] | + gpe-contacts | | + gpe-edit | [] | + gpe-filemanager | | + gpe-go | [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] | + gpe-package | | + gpe-sketchbook | [] [] | + gpe-su | [] [] | + gpe-taskmanager | [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | | + gphoto2 | [] [] [] [] | + gprof | [] [] | + gpsdrive | | + gramadoir | [] [] | + grep | [] [] | + gretl | () | + gsasl | | + gss | | + gst-plugins-bad | [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] [] | + gst-plugins-ugly | [] [] | + gstreamer | [] [] [] [] [] [] [] | + gtick | () | + gtkam | [] [] [] [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] | + herrie | [] | + hylafax | | + idutils | [] [] | + indent | [] [] [] [] | + iso_15924 | | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] [] | + iso_639 | [] [] [] [] | + jpilot | [] | + jtag | | + jwhois | | + kbd | [] [] [] [] | + keytouch | [] [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + latrine | () | + ld | [] | + leafpad | [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] | + libextractor | [] | + libgpewidget | [] [] [] | + libgpg-error | [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] | + libgsasl | | + libiconv | [] [] | + libidn | [] [] [] | + lifelines | [] () | + lilypond | [] | + lingoteach | | + lprng | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailfromd | | + mailutils | [] | + make | [] [] | + man-db | [] [] [] | + minicom | [] [] [] | + nano | [] [] [] | + opcodes | [] | + parted | [] [] | + pilot-qof | | + popt | [] [] [] | + psmisc | [] | + pwdutils | | + qof | | + radius | [] | + recode | [] [] [] [] [] [] | + rpm | [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] [] | + shared-mime-info | [] [] [] [] () [] [] [] | + sharutils | [] [] [] [] [] [] | + shishi | | + skencil | [] () | + solfege | | + soundtracker | [] [] | + sp | [] | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] [] | + texinfo | [] [] [] | + tin | () () | + tuxpaint | [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] | + util-linux-ng | [] [] [] [] | + vorbis-tools | [] | + wastesedge | () | + wdiff | [] [] [] [] | + wget | [] [] [] | + xchat | [] [] [] [] [] [] [] | + xkeyboard-config | [] | + xpad | [] [] [] | + +----------------------------------------------------+ + af am ar az be bg bs ca cs cy da de el en en_GB eo + 6 0 2 1 8 26 2 40 48 2 56 88 15 1 15 18 + + es et eu fa fi fr ga gl gu he hi hr hu id is it + +--------------------------------------------------+ + Compendium | [] [] [] [] [] | + a2ps | [] [] [] () | + aegis | | + ant-phone | [] | + anubis | [] | + ap-utils | [] [] | + aspell | [] [] [] | + bash | [] | + bfd | [] [] | + bibshelf | [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] [] [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] | + cflow | [] | + clisp | [] [] | + console-tools | | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] | + cpplib | [] [] | + cryptonit | [] | + dialog | [] [] [] | + diffutils | [] [] [] [] [] [] [] [] [] | + doodle | [] [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] | + fetchmail | [] | + findutils | [] [] [] | + findutils_stable | [] [] [] [] | + flex | [] [] [] | + fslint | | + gas | [] [] | + gawk | [] [] [] [] () | + gcal | [] [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] [] | + gip | [] [] [] [] | + gliv | () | + glunarclock | [] [] [] | + gmult | [] [] [] | + gnubiff | () () | + gnucash | () () () | + gnuedu | [] | + gnulib | [] [] [] | + gnunet | | + gnunet-gtk | | + gnutls | | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | | + gpe-clock | [] [] [] [] | + gpe-conf | [] | + gpe-contacts | [] [] | + gpe-edit | [] [] [] [] | + gpe-filemanager | [] | + gpe-go | [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-package | [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] [] | + gpe-taskmanager | [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] | + gphoto2 | [] [] [] [] [] | + gprof | [] [] [] [] [] | + gpsdrive | [] | + gramadoir | [] [] | + grep | [] [] [] | + gretl | [] [] [] () | + gsasl | [] [] | + gss | [] [] | + gst-plugins-bad | [] [] [] [] | + gst-plugins-base | [] [] [] [] | + gst-plugins-good | [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] | + gstreamer | [] [] [] | + gtick | [] [] [] | + gtkam | [] [] [] [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | + herrie | [] | + hylafax | | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] [] [] [] | + iso_15924 | [] | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | [] | + iso_4217 | [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] | + jpilot | [] [] | + jtag | [] | + jwhois | [] [] [] [] [] | + kbd | [] [] | + keytouch | [] [] [] | + keytouch-editor | [] | + keytouch-keyboa... | [] [] | + latrine | [] [] | + ld | [] [] [] [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | [] | + libgpewidget | [] [] [] [] [] | + libgpg-error | [] | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] | + libgsasl | [] [] | + libiconv | [] [] [] | + libidn | [] [] | + lifelines | () | + lilypond | [] [] [] | + lingoteach | [] [] [] | + lprng | | + lynx | [] [] [] | + m4 | [] [] [] [] | + mailfromd | | + mailutils | [] [] | + make | [] [] [] [] [] [] [] [] | + man-db | [] | + minicom | [] [] [] [] | + nano | [] [] [] [] [] [] [] | + opcodes | [] [] [] [] | + parted | [] [] [] | + pilot-qof | | + popt | [] [] [] [] | + psmisc | [] [] | + pwdutils | | + qof | [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] [] [] [] | + shared-mime-info | [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] [] | + shishi | [] | + skencil | [] [] | + solfege | [] | + soundtracker | [] [] [] | + sp | [] | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] [] [] [] [] | + texinfo | [] [] [] | + tin | [] () | + tuxpaint | [] [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux | [] [] [] [] [] [] [] | + util-linux-ng | [] [] [] [] [] [] [] | + vorbis-tools | | + wastesedge | () | + wdiff | [] [] [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] [] | + xchat | [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] | + xpad | [] [] [] | + +--------------------------------------------------+ + es et eu fa fi fr ga gl gu he hi hr hu id is it + 85 22 14 2 48 101 61 12 2 8 2 6 53 29 1 52 + + ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn + +--------------------------------------------------+ + Compendium | [] | + a2ps | () [] [] | + aegis | () | + ant-phone | [] | + anubis | [] [] [] | + ap-utils | [] | + aspell | [] [] | + bash | [] | + bfd | | + bibshelf | [] | + binutils | | + bison | [] [] [] | + bison-runtime | [] [] [] | + bluez-pin | [] [] [] | + cflow | | + clisp | [] | + console-tools | | + coreutils | [] | + cpio | [] | + cpplib | [] | + cryptonit | [] | + dialog | [] [] | + diffutils | [] [] [] | + doodle | | + e2fsprogs | [] | + enscript | [] | + fetchmail | [] [] | + findutils | [] | + findutils_stable | [] | + flex | [] [] | + fslint | | + gas | | + gawk | [] [] | + gcal | | + gcc | | + gettext-examples | [] [] [] | + gettext-runtime | [] [] [] | + gettext-tools | [] [] | + gip | [] [] | + gliv | [] | + glunarclock | [] [] | + gmult | [] [] [] | + gnubiff | | + gnucash | () () () | + gnuedu | | + gnulib | [] [] | + gnunet | | + gnunet-gtk | | + gnutls | [] | + gpe-aerial | [] | + gpe-beam | [] | + gpe-calendar | [] | + gpe-clock | [] [] [] | + gpe-conf | [] [] [] | + gpe-contacts | [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] | + gpe-taskmanager | [] [] [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | [] | + gphoto2 | [] [] | + gprof | [] | + gpsdrive | [] | + gramadoir | () | + grep | [] [] | + gretl | | + gsasl | [] | + gss | | + gst-plugins-bad | [] | + gst-plugins-base | [] | + gst-plugins-good | [] | + gst-plugins-ugly | [] | + gstreamer | [] | + gtick | [] | + gtkam | [] [] | + gtkorphan | [] | + gtkspell | [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] | + herrie | [] | + hylafax | | + idutils | [] | + indent | [] [] | + iso_15924 | [] | + iso_3166 | [] [] [] [] [] [] [] [] | + iso_3166_2 | [] | + iso_4217 | [] [] [] | + iso_639 | [] [] [] [] | + jpilot | () () | + jtag | | + jwhois | [] | + kbd | [] | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | | + latrine | [] | + ld | | + leafpad | [] [] | + libc | [] [] [] | + libexif | | + libextractor | | + libgpewidget | [] | + libgpg-error | | + libgphoto2 | [] | + libgphoto2_port | [] | + libgsasl | [] | + libiconv | [] | + libidn | [] [] | + lifelines | [] | + lilypond | [] | + lingoteach | [] | + lprng | | + lynx | [] [] | + m4 | [] [] | + mailfromd | | + mailutils | | + make | [] [] [] | + man-db | | + minicom | [] | + nano | [] [] [] | + opcodes | [] | + parted | [] [] | + pilot-qof | | + popt | [] [] [] | + psmisc | [] [] [] | + pwdutils | | + qof | | + radius | | + recode | [] | + rpm | [] [] | + screem | [] | + scrollkeeper | [] [] [] [] | + sed | [] [] | + shared-mime-info | [] [] [] [] [] [] [] | + sharutils | [] [] | + shishi | | + skencil | | + solfege | () () | + soundtracker | | + sp | () | + system-tools-ba... | [] [] [] [] | + tar | [] [] [] | + texinfo | [] [] | + tin | | + tuxpaint | () [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] | + util-linux-ng | [] [] | + vorbis-tools | | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] | + xchat | [] [] [] [] | + xkeyboard-config | [] [] [] | + xpad | [] [] [] | + +--------------------------------------------------+ + ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn + 51 2 25 3 2 0 6 0 2 2 20 0 11 1 103 6 + + or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta + +--------------------------------------------------+ + Compendium | [] [] [] [] [] | + a2ps | () [] [] [] [] [] [] | + aegis | () () | + ant-phone | [] [] | + anubis | [] [] [] | + ap-utils | () | + aspell | [] [] [] | + bash | [] [] | + bfd | | + bibshelf | [] | + binutils | [] [] | + bison | [] [] [] [] [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] [] | + cflow | [] | + clisp | [] | + console-tools | [] | + coreutils | [] [] [] [] | + cpio | [] [] [] | + cpplib | [] | + cryptonit | [] [] | + dialog | [] | + diffutils | [] [] [] [] [] [] | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] [] | + fetchmail | [] [] [] | + findutils | [] [] [] | + findutils_stable | [] [] [] [] [] [] | + flex | [] [] [] [] [] | + fslint | [] | + gas | | + gawk | [] [] [] [] | + gcal | [] | + gcc | [] [] | + gettext-examples | [] [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] [] | + gip | [] [] [] [] | + gliv | [] [] [] [] [] [] | + glunarclock | [] [] [] [] [] [] | + gmult | [] [] [] [] | + gnubiff | () [] | + gnucash | () [] | + gnuedu | | + gnulib | [] [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gpe-aerial | [] [] [] [] [] [] [] | + gpe-beam | [] [] [] [] [] [] [] | + gpe-calendar | [] [] [] [] | + gpe-clock | [] [] [] [] [] [] [] [] | + gpe-conf | [] [] [] [] [] [] [] | + gpe-contacts | [] [] [] [] [] | + gpe-edit | [] [] [] [] [] [] [] [] [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] [] [] [] [] [] | + gpe-login | [] [] [] [] [] [] [] [] | + gpe-ownerinfo | [] [] [] [] [] [] [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] [] [] [] [] [] [] | + gpe-su | [] [] [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] [] | + gpe-todo | [] [] [] [] | + gphoto2 | [] [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] | + gramadoir | [] [] | + grep | [] [] [] [] | + gretl | [] [] [] | + gsasl | [] [] [] | + gss | [] [] [] [] | + gst-plugins-bad | [] [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] | + gst-plugins-ugly | [] [] [] | + gstreamer | [] [] [] [] | + gtick | [] | + gtkam | [] [] [] [] [] | + gtkorphan | [] | + gtkspell | [] [] [] [] [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] [] | + herrie | [] [] [] | + hylafax | | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] [] | + jpilot | | + jtag | [] | + jwhois | [] [] [] [] | + kbd | [] [] [] | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + latrine | | + ld | [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] | + libextractor | [] [] | + libgpewidget | [] [] [] [] [] [] [] [] | + libgpg-error | [] [] [] | + libgphoto2 | [] | + libgphoto2_port | [] [] [] | + libgsasl | [] [] [] [] | + libiconv | [] [] [] | + libidn | [] [] () | + lifelines | [] [] | + lilypond | | + lingoteach | [] | + lprng | [] | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | [] | + mailutils | [] [] [] | + make | [] [] [] [] | + man-db | [] [] [] [] | + minicom | [] [] [] [] [] | + nano | [] [] [] [] | + opcodes | [] [] | + parted | [] | + pilot-qof | | + popt | [] [] [] [] | + psmisc | [] [] | + pwdutils | [] [] | + qof | [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] | + rpm | [] [] [] [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] | + shared-mime-info | [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] | + skencil | [] [] [] | + solfege | [] | + soundtracker | [] [] | + sp | | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] [] | + tin | () | + tuxpaint | [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] | + util-linux-ng | [] [] [] [] | + vorbis-tools | [] | + wastesedge | | + wdiff | [] [] [] [] [] [] [] | + wget | [] [] [] [] | + xchat | [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + xpad | [] [] [] | + +--------------------------------------------------+ + or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta + 0 5 77 31 53 4 58 72 3 45 46 9 45 122 3 + + tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu + +---------------------------------------------------+ + Compendium | [] [] [] [] | 19 + a2ps | [] [] [] | 19 + aegis | [] | 1 + ant-phone | [] [] | 6 + anubis | [] [] [] | 11 + ap-utils | () [] | 4 + aspell | [] [] [] | 16 + bash | [] | 6 + bfd | | 2 + bibshelf | [] | 7 + binutils | [] [] [] [] | 9 + bison | [] [] [] [] | 20 + bison-runtime | [] [] [] [] | 18 + bluez-pin | [] [] [] [] [] [] | 28 + cflow | [] [] | 5 + clisp | | 9 + console-tools | [] [] | 5 + coreutils | [] [] [] | 18 + cpio | [] [] [] [] | 11 + cpplib | [] [] [] [] [] | 12 + cryptonit | [] | 6 + dialog | [] [] [] | 9 + diffutils | [] [] [] [] [] | 29 + doodle | [] | 6 + e2fsprogs | [] [] | 10 + enscript | [] [] [] | 16 + fetchmail | [] [] | 12 + findutils | [] [] [] | 11 + findutils_stable | [] [] [] [] | 18 + flex | [] [] | 15 + fslint | [] | 2 + gas | [] | 3 + gawk | [] [] [] | 16 + gcal | [] | 5 + gcc | [] [] [] | 7 + gettext-examples | [] [] [] [] [] [] | 29 + gettext-runtime | [] [] [] [] [] [] | 28 + gettext-tools | [] [] [] [] [] | 20 + gip | [] [] | 13 + gliv | [] [] | 11 + glunarclock | [] [] [] | 15 + gmult | [] [] [] [] | 16 + gnubiff | [] | 2 + gnucash | () [] | 5 + gnuedu | [] | 2 + gnulib | [] | 10 + gnunet | | 0 + gnunet-gtk | [] [] | 3 + gnutls | | 4 + gpe-aerial | [] [] | 14 + gpe-beam | [] [] | 14 + gpe-calendar | [] [] | 7 + gpe-clock | [] [] [] [] | 21 + gpe-conf | [] [] [] | 16 + gpe-contacts | [] [] | 10 + gpe-edit | [] [] [] [] [] | 22 + gpe-filemanager | [] [] | 7 + gpe-go | [] [] [] [] | 19 + gpe-login | [] [] [] [] [] | 21 + gpe-ownerinfo | [] [] [] [] | 21 + gpe-package | [] | 6 + gpe-sketchbook | [] [] | 16 + gpe-su | [] [] [] [] | 21 + gpe-taskmanager | [] [] [] [] | 21 + gpe-timesheet | [] [] [] [] | 18 + gpe-today | [] [] [] [] [] | 21 + gpe-todo | [] [] | 8 + gphoto2 | [] [] [] [] | 21 + gprof | [] [] | 13 + gpsdrive | [] | 5 + gramadoir | [] | 7 + grep | [] | 12 + gretl | | 6 + gsasl | [] [] [] | 9 + gss | [] | 7 + gst-plugins-bad | [] [] [] | 13 + gst-plugins-base | [] [] | 11 + gst-plugins-good | [] [] [] [] [] | 16 + gst-plugins-ugly | [] [] [] | 13 + gstreamer | [] [] [] | 18 + gtick | [] [] | 7 + gtkam | [] | 16 + gtkorphan | [] | 7 + gtkspell | [] [] [] [] [] [] | 27 + gutenprint | | 4 + hello | [] [] [] [] [] | 38 + herrie | [] [] | 8 + hylafax | | 0 + idutils | [] [] | 15 + indent | [] [] [] [] [] | 28 + iso_15924 | [] [] | 4 + iso_3166 | [] [] [] [] [] [] [] [] [] | 54 + iso_3166_2 | [] [] | 4 + iso_4217 | [] [] [] [] [] | 24 + iso_639 | [] [] [] [] [] | 26 + jpilot | [] [] [] [] | 7 + jtag | [] | 3 + jwhois | [] [] [] | 13 + kbd | [] [] [] | 13 + keytouch | [] | 8 + keytouch-editor | [] | 5 + keytouch-keyboa... | [] | 5 + latrine | [] [] | 5 + ld | [] [] [] [] | 10 + leafpad | [] [] [] [] [] | 24 + libc | [] [] [] | 19 + libexif | [] | 5 + libextractor | [] | 5 + libgpewidget | [] [] [] | 20 + libgpg-error | [] | 6 + libgphoto2 | [] [] | 9 + libgphoto2_port | [] [] [] | 11 + libgsasl | [] | 8 + libiconv | [] [] | 11 + libidn | [] [] | 11 + lifelines | | 4 + lilypond | [] | 6 + lingoteach | [] | 6 + lprng | [] | 2 + lynx | [] [] [] | 15 + m4 | [] [] [] | 18 + mailfromd | [] [] | 3 + mailutils | [] [] | 8 + make | [] [] [] | 20 + man-db | [] | 9 + minicom | [] | 14 + nano | [] [] [] | 20 + opcodes | [] [] | 10 + parted | [] [] [] | 11 + pilot-qof | [] | 1 + popt | [] [] [] [] | 18 + psmisc | [] [] | 10 + pwdutils | [] | 3 + qof | [] | 4 + radius | [] [] | 7 + recode | [] [] [] | 25 + rpm | [] [] [] [] | 13 + screem | [] | 2 + scrollkeeper | [] [] [] [] | 26 + sed | [] [] [] [] | 23 + shared-mime-info | [] [] [] | 29 + sharutils | [] [] [] | 23 + shishi | [] | 3 + skencil | [] | 7 + solfege | [] | 3 + soundtracker | [] [] | 9 + sp | [] | 3 + system-tools-ba... | [] [] [] [] [] [] [] | 38 + tar | [] [] [] | 17 + texinfo | [] [] [] | 15 + tin | | 1 + tuxpaint | [] [] [] | 19 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux | [] [] [] | 20 + util-linux-ng | [] [] [] | 20 + vorbis-tools | [] [] | 4 + wastesedge | | 1 + wdiff | [] [] | 23 + wget | [] [] [] | 20 + xchat | [] [] [] [] | 29 + xkeyboard-config | [] [] [] | 14 + xpad | [] [] [] | 15 + +---------------------------------------------------+ + 76 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu + 163 domains 0 3 1 74 51 0 143 21 1 57 7 45 0 2036 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If November 2007 seems to be old, you may fetch a more recent copy +of this `ABOUT-NLS' file on most GNU archive sites. The most +up-to-date matrix with full percentage details can be found at +`http://translationproject.org/extra/matrix.html'. + +1.6 Using `gettext' in new packages +=================================== + +If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +the use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`coordinator@translationproject.org' to make the `.pot' files available +to the translation teams. +
diff --git a/popt-1.16/CHANGES b/popt-1.16/CHANGES new file mode 100644 index 0000000..0062af2 --- /dev/null +++ b/popt-1.16/CHANGES
@@ -0,0 +1,204 @@ +1.15 -> 1.16: + - add lv.po, update translations (Translation Project). + - include xcode project files in distributed popt tar ball. + - make distcheck is now squeaky clean. + - permit VPATH builds. + - add shallow tests using ISP/RAS api-sanity-autotest.pl. + - prefix bit set routines with popt to avoid symbol coolisions w rpm. + - add tdict.c to exercise popt bit sets against /usr/dict/words. + - add poptBitsArgs() method to generate args bit set. + - add methods for bit set union and intersection. + - permit comma separated attribute lists, handle negated attributes. + - better test for POPT_ARG_BITSET. + - add POPT_ARG_BITSET handling. + - add POPT_ARG_SHORT handling. + - handle all callback traversals within a C switch (for extendability ease). + - add popt.pc. + - devzero2000: add AC_CONFIG_AUX_DIR, AC_CONFIG_MACRO_DIR to configure. Create build-aux + - devzero2000: del acinclude.m4 : AC_CHECK_VA_COPY is not used +1.14 -> 1.15: + - release popt-1.15. + - rse: fix building under --disable-nls + - rse: fix building under non GLIBC platforms where glob_pattern_p fallback has to be used + - rse: fix building under platforms where FNM_EXTMATCH is not available + - jbj: poptReadFile: permit NULL if return values are not desired. + - jbj: poptReadFile: add routine. + - jbj: trim out escaped newline(s) from file content, other fixes. + - jbj: permit popt alias/exec to include content from a file. + - jbj: permit glob(3) patterns in appName field of popt alias/exec config. + - jbj: add test cases for bit operations and toggles. + - jbj: avoid displaying --[no]nofoo with POPT_ARGFLAG_TOGGLE. + - jbj: add poptArgInfo() to get argInfo, implementing POPT_ARGFLAG_TOGGLE. + - jbj: add longOptionStrcmp() to match w POPT_ARGFLAG_TOGGLE. + - jbj: change singleDash arg to a bit enum, use LF_ISSET(ONEDASH) instead. + - jbj: rework the glob wrappers into something more useful. portability todo++. + - jbj: stub in glob(3) wrappers for popt. more useful poptGlob() API next. + - jbj: add poptInit/poptFini/poptReadConfigFiles/poptSaneFile routines. + - jbj: rewrite poptReadConfigFile(), styling for (i.e. my) readbility. + - jbj: reserve a bit for --[no]opt prefix toggling. + - jbj: fix: check/print argv[0] in --help for NULL. + - jbj: permit type/group bitmasks to be changed (if needed somewhen). + - jbj: snip out 8 unused bits for argument groups. + - jbj: fix: eliminate dead code (CID#5). + - jbj: fix: rearrange code to better hint to coverity scan (CID#9). + - jbj: fix: rewrite (and simplify) strdup_locale_from_utf8() (CID#7, CID#8, CID#11, CID#12). + - jbj: test/use HAVE_SRANDOM to avoid portability issues. + - jbj: fix: remove AC_CHECK_VA_COPY check, va_copy is no longer used. + - jbj: add eo.po and id.po (Translation Project). + - jbj: updated da.po (Translation Project). + - jbj: extend coverage to several additional setup routines. + - jbj: add tests for --usage/--help coverage. + - jbj: add lconv/gcov targets to Makefile.am. + - jbj: refactor automagic (*opt->arg) option arg store to poptSaveArg(). + - ldv: update INPUT tag in Doxyfile.in, fix doxygen warnings in popthelp.c. + - start popt-1.15 development. + +1.13 -> 1.14: + - release popt-1.14. + - jbj: remove findme.c, add poptint.c, to po/POTFILES.in. + - jbj: use stpcpy 2 more places (Wayne Davison<wayned@samba.org>). + - jbj: add @LTLIBICONV@ when needed (Stanislav Brabec<sbrabec@suse.cz>). + - jbj: fix: remove the "echo --" Fedorable hack-a-round. + - rsc: updated de.po (not from the Translation Project). + - jbj: study the mess with splint. Sigh, splint is so easily confused ... + - jbj: rewrite findProgramPath & move to popt.c. Nuke the findme.{c,h} toys. + - jbj: use stpcpy several more places (Wayne Davison<wayned@samba.org>). + - jbj: enable equal after short option (Wayne Davison<wayned@samba.org>). + - jbj: permit "#define POPT_fprintf fprintf" to lose the malloc'ing fprintf. + - jbj: use vasprintf(3) when available (Wayne Davison<wayned@samba.org>). + - jbj: study the mess with splint, remove annotations where possible. + - jbj: add -D_GNU_SOURCE for gcc to use __builtin_stpcpy when available. + - jbj: add static inline stpcpy for the deprived. + - jbj: use stpcpy to eliminate sprintf calls everywhere but popthelp.c + - jbj: remove (now unneeded afaik) va_copy() from POPT_fprintf(). + - jbj: inline strdup_fprintf() => POPT_fprintf keeping (unneeded?) va_copy. + - rse: fix memcpy(3) based va_copy(3) fallbacks + - jbj: fix: short option with "foo=bar" argument was mishandled. + (Wayne Davison<wayned@samba.org>). + - jbj: rename _ABS to avoid collisions, define DBL_EPSILON if not present + (Wayne Davison<wayned@samba.org>). + - jbj: test for <glob.h>, disable reading directory poptrc files if not. + - jbj: add __attribute__(__unused__) (Wayne Davison<wayned@samba.org>). + - jbj: permit equal after short option (Wayne Davison<wayned@samba.org>). + - jbj: make sure that short options are printed only once with --usage. + - jbj: don't display hidden short options with --usage. + - jbj: updated sv.po (Translation Project). + - jbj: updated {fi,nl}.po (Translation Project). + - jbj: updated th.po (Translation Project). + - rsc: avoid multilib file conflicts in generated doxygen. + - jbj: updated vi.po and zh_CN.po (Translation Project). + - jbj: fix: keep the poptHelpOptions array exactly the same size. + - jbj: updated pl.po (Translation Project). + - jbj: add new fi, th, zh_TW translations (Translation Project). + - jbj: add "make updatepo" to simplify PO file maintenance. + - jbj: display POPT_ARG_ARGV options in --help just like other options. + - jbj: add test for POPT_ARG_ARGV handling. + - jbj: fix: permit "--foo bar" and "--foo=bar" equivalent forms for aliases. + - jbj: fix: tests 20 -> 23 require an explicit '--' arg separator now. + - jbj: popt.3: add POPT_ARG_ARGV description. + - jbj: use NUL terminator to align help with (possible) multibyte chars. + - jbj: add utf8_skip_data table[] to keep track of utf8 character widths. + - jbj: refactor the POPT_WCHAR_HACK into stringDisplayWidth(). + - jbj: add POPT_dgettext() prototype. + - jbj: add POPT_dgettext() for popt internal UTF-8 codeset (Takao Fujiwara). + - jbj: add POPT_next_char(), backout POPT_fprintf() usage (for the moment). + - jbj: finish POPT_ARG_ARGV implementation. + - jbj: free aliases/execs with common code. + - jbj: rewrite the callback logic using a switch for simplicity. + - jbj: hide bit field structure behind F_ISSET/LF_ISSET/CBF_ISSET macros. + - jbj: expose poptSaveLongLong and poptSaveString in the loader map. + - jbj: add POPT_ARG_ARGV, starting with the poptSaveString() method. + - jbj: add help for POPT_ARG_LONGLONG. + - jbj: hmmm, POSIXly correct --echo-args needs fixing, disable for now. + - jbj: poptint.h: typedef's for string and string arrays. + - jbj: add POPT_ARG_LONGLONG, and poptSaveLongLong(). + - jbj: poptint.h: add poptSubstituteHelpI18N() to bury the ABI hack. + - jbj: start using poptArg and poptArgType() where useful. + - jbj: poptint.h: add a poptArgType define for bitfield type abstraction. + - jbj: poptint.h: add a poptArg union for opt->arg access without casts. + - jbj: include "-- Terminate options" end-of-options msg in poptHelpOptions. + - jbj: opt->argDescrip[0] determines "--foo=bar" or "--foo bar". + - jbj: --long always padded for alignment with/without "-X, ". + - jbj: Display shortName iff printable non-space. + - jbj: POPT_AUTOALIAS: if no popt aliases/execs, don't display the sub-head. + - jbj: add --libdir=/%{_lib} to popt.spec. + - jbj: add .cvsignore to m4 subdirectory. + - jbj: remove duplicate nb locale from ALL_LINGUAS. + - jbj: autogen.sh: on linux, add --libdir=/lib (no /lib64 autodetect yet). + +1.12 -> 1.13: + - release popt-1.13. + - jbj: add a %track section (as in rpm-5.0) to popt.spec. + - jbj: chg poptGetOptArg() to "char *", document application needs to free. + - jbj: re-add it.po (from Sandro Bonazzola <sandro.bonazzola@gmail.com>). + - jbj: rescuscitate the splint annotations. + - jbj: change sizeof to use the type implicitly, rather than explicitly. + - jbj: remove incorrect casts, changing to size_t where needed. + - jbj: remove unused STD_VFPRINTF macro. + - jbj: reindent (and otherwise diddle) recent patch for popt coding style. + - jbj: remove splint bounds/branch annotations, little gain, much pain. + - jbj: revert alloca usage again again. + - jbj: handle Solaris signed character isspace(3) issues consistently. + - bero: read /etc/popt.d/* files. + - jbj: don't read /etc/popt twice (#290531). + - jbj: isspace(3) has i18n encoding signednesss issues on Solaris (#172393). + - jbj: refactor column cursor to a structure, carry maxcols as well. + - jbj: use TIOCGWINSZ to determine --help column wrapping. + - jbj: help formatting for POPT_ARG_MAINCALL. + - jbj: remove N_(...) markings from popt.h, markers in popthelp.c instead. + - jbj: add zh_CN.po (Translation Project). + - jbj: use PACKAGE_BUGREPORT. + - jbj: hotwire POPT_AUTOHELP/POPT_AUTOALIAS lookup in popt i18n domain. + +1.11 -> 1.12 + - jbj: plug a memory leak. + - jbj: fix index thinko. + - jbj: add vi.po (Translation Project). + - jbj: add nl.po (Translation Project). + +1.5 -> 1.6 + - add ability to perform callbacks for every, not just first, match. + +1.3 -> 1.5 + - heavy dose of const's + - poptParseArgvString() now NULL terminates the list + +1.2.3 -> 1.3 + - added support for single - + - misc bug fixes + - portability improvements + +1.2.2 -> 1.2.3 + - fixed memset() in help message generation (Dale Hawkins) + - added extern "C" stuff to popt.h for C++ compilers (Dale Hawkins) + - const'ified poptParseArgvString (Jeff Garzik) + +1.2.1 -> 1.2.2 + - fixed bug in chaind alias happens which seems to have only + affected --triggers in rpm + - added POPT_ARG_VAL + - popt.3 installed by default + +1.2 -> 1.2.1 + - added POPT_ARG_INTL_DOMAIN (Elliot Lee) + - updated Makefile's to be more GNUish (Elliot Lee) + +1.1 -> 1.2 + - added popt.3 man page (Robert Lynch) + - don't use mmap anymore (its lack of portability isn't worth the + trouble) + - added test script + - added support for exec + - removed support for *_POPT_ALIASES env variable -- it was a bad + idea + - reorganized into multiple source files + - added automatic help generation, POPT_AUTOHELP + - added table callbacks + - added table inclusion + - updated man page for new features + - added test scripts + +1.0 -> 1.1 + - moved to autoconf (Fred Fish) + - added STRERROR replacement (Norbert Warmuth) + - added const keywords (Bruce Perens)
diff --git a/popt-1.16/COPYING b/popt-1.16/COPYING new file mode 100644 index 0000000..b4c7ca8 --- /dev/null +++ b/popt-1.16/COPYING
@@ -0,0 +1,22 @@ +Copyright (c) 1998 Red Hat Software + +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 +CONNECTION 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 dealings +in this Software without prior written authorization from the X Consortium.
diff --git a/popt-1.16/Doxyfile.in b/popt-1.16/Doxyfile.in new file mode 100644 index 0000000..737a73e --- /dev/null +++ b/popt-1.16/Doxyfile.in
@@ -0,0 +1,1246 @@ +# Doxyfile 1.4.6 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = @PACKAGE@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @VERSION@ + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doxygen + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = @top_srcdir@/ + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = @top_srcdir@/ + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = \ + ./popt.c \ + ./popt.h \ + ./poptconfig.c \ + ./popthelp.c \ + ./poptint.c \ + ./poptint.h \ + ./poptparse.c \ + ./system.h + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = *.c \ + *.h + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = footer_no_timestamp.html + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = letter + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = YES + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = YES + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = Doxytags + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO
diff --git a/popt-1.16/Makefile.am b/popt-1.16/Makefile.am new file mode 100644 index 0000000..d7aec9e --- /dev/null +++ b/popt-1.16/Makefile.am
@@ -0,0 +1,118 @@ +# Makefile for popt library. + +AUTOMAKE_OPTIONS = 1.4 foreign + +LINT = splint +MCCABE = pmccabe + +EXTRA_DIST = config.rpath lookup3.c autogen.sh CHANGES $(man_MANS) \ + m4/Makefile.in \ + footer_no_timestamp.html libpopt.vers \ + testit.sh test-poptrc \ + popt.xcodeproj/project.pbxproj \ + popt.ps + +SUBDIRS = po . auto + +AM_CPPFLAGS = -I. -I$(top_srcdir) + +noinst_HEADERS = poptint.h system.h + +noinst_PROGRAMS = test1 test2 tdict # test3 +test1_SOURCES = test1.c +test1_LDFLAGS = +test1_LDADD = $(usrlib_LTLIBRARIES) +test2_SOURCES = test2.c +test2_LDFLAGS = +test2_LDADD = $(usrlib_LTLIBRARIES) +#test3_SOURCES = test3.c +#test3_LDFLAGS = +#test3_LDADD = $(usrlib_LTLIBRARIES) +tdict_SOURCES = tdict.c +tdict_LDFLAGS = +tdict_LDADD = $(usrlib_LTLIBRARIES) + +noinst_SCRIPTS = testit.sh + +TESTS_ENVIRONMENT = \ +test1="$(top_builddir)/test1" + +TESTS = $(top_srcdir)/testit.sh + +include_HEADERS = popt.h + +usrlibdir = $(libdir) +usrlib_LTLIBRARIES = libpopt.la + +libpopt_la_SOURCES = popt.c poptparse.c poptconfig.c popthelp.c poptint.c +libpopt_la_LDFLAGS = -no-undefined @LTLIBINTL@ @LTLIBICONV@ + +pkgconfigdir = $(prefix)/lib/pkgconfig +pkgconfig_DATA = popt.pc + +if HAVE_LD_VERSION_SCRIPT +libpopt_la_LDFLAGS += -Wl,--version-script=$(top_srcdir)/libpopt.vers +endif + +man_MANS = popt.3 + +BUILT_SOURCES = popt.pc # popt.lcd + +distclean-local: + rm -rf .ccache + +.PHONY: updatepo +updatepo: + rsync -Lrtvz translationproject.org::tp/latest/popt/ po + +popt.lcd: Makefile.am ${libpopt_la_SOURCES} ${include_HEADERS} ${noinst_HEADERS} + lclint -dump $@ ${libpopt_la_SOURCES} + +.PHONY: sources +sources: + @echo $(libpopt_la_SOURCES:%=popt/%) + +.PHONY: lint +lint: + $(LINT) ${DEFS} ${INCLUDES} test1.c ${libpopt_la_SOURCES} + +.PHONY: mccabe +mccabe: + $(MCCABE) $(libpopt_la_SOURCES) | sort -n -r | head -n 10 + +.PHONY: doxygen +doxygen: Doxyfile + rm -rf doxygen + mkdir -p doxygen + doxygen + +.PHONY: lcov-reset # run lcov from scratch, always +lcov-reset: + make lcov-run + make lcov-report + +.PHONY: lcov # run lcov from scratch if the dir is not there +lcov: + make lcov-reset + +.PHONY: lcov-run # reset run coverage tests +lcov-run: + @-rm -rf lcov + find . -name "*.gcda" -exec rm {} \; + make check + +.PHONY: lcov-report # generate report based on current coverage data +lcov-report: + mkdir lcov + lcov --directory . --capture --output-file lcov/lcov.info + lcov -l lcov/lcov.info | grep -v "`cd $(top_srcdir) && pwd`" | cut -d: -f1 > lcov/remove + lcov -r lcov/lcov.info `cat lcov/remove` > lcov/lcov.cleaned.info + rm lcov/remove + mv lcov/lcov.cleaned.info lcov/lcov.info + genhtml -t "$(PACKAGE_STRING)" -o lcov lcov/lcov.info + +#.PHONY: lcov-upload +#lcov-upload: lcov +# rsync -rvz -e ssh --delete lcov/* ??? + +ACLOCAL_AMFLAGS = -I m4
diff --git a/popt-1.16/Makefile.in b/popt-1.16/Makefile.in new file mode 100644 index 0000000..2e6890d --- /dev/null +++ b/popt-1.16/Makefile.in
@@ -0,0 +1,1234 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Makefile for popt library. + + + + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +noinst_PROGRAMS = test1$(EXEEXT) test2$(EXEEXT) tdict$(EXEEXT) +@HAVE_LD_VERSION_SCRIPT_TRUE@am__append_1 = -Wl,--version-script=$(top_srcdir)/libpopt.vers +subdir = . +DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \ + $(noinst_HEADERS) $(srcdir)/Doxyfile.in $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/popt.pc.in $(srcdir)/popt.spec.in \ + $(srcdir)/test-poptrc.in $(top_srcdir)/configure ABOUT-NLS \ + COPYING config.guess config.rpath config.sub depcomp \ + install-sh ltmain.sh missing +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = Doxyfile popt.pc popt.spec test-poptrc +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(usrlibdir)" "$(DESTDIR)$(man3dir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" +LTLIBRARIES = $(usrlib_LTLIBRARIES) +libpopt_la_LIBADD = +am_libpopt_la_OBJECTS = popt.lo poptparse.lo poptconfig.lo popthelp.lo \ + poptint.lo +libpopt_la_OBJECTS = $(am_libpopt_la_OBJECTS) +libpopt_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libpopt_la_LDFLAGS) $(LDFLAGS) -o $@ +PROGRAMS = $(noinst_PROGRAMS) +am_tdict_OBJECTS = tdict.$(OBJEXT) +tdict_OBJECTS = $(am_tdict_OBJECTS) +tdict_DEPENDENCIES = $(usrlib_LTLIBRARIES) +tdict_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(tdict_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_test1_OBJECTS = test1.$(OBJEXT) +test1_OBJECTS = $(am_test1_OBJECTS) +test1_DEPENDENCIES = $(usrlib_LTLIBRARIES) +test1_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(test1_LDFLAGS) \ + $(LDFLAGS) -o $@ +am_test2_OBJECTS = test2.$(OBJEXT) +test2_OBJECTS = $(am_test2_OBJECTS) +test2_DEPENDENCIES = $(usrlib_LTLIBRARIES) +test2_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(test2_LDFLAGS) \ + $(LDFLAGS) -o $@ +SCRIPTS = $(noinst_SCRIPTS) +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libpopt_la_SOURCES) $(tdict_SOURCES) $(test1_SOURCES) \ + $(test2_SOURCES) +DIST_SOURCES = $(libpopt_la_SOURCES) $(tdict_SOURCES) $(test1_SOURCES) \ + $(test2_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +man3dir = $(mandir)/man3 +NROFF = nroff +MANS = $(man_MANS) +DATA = $(pkgconfig_DATA) +HEADERS = $(include_HEADERS) $(noinst_HEADERS) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_AGE = @LT_AGE@ +LT_CURRENT = @LT_CURRENT@ +LT_REVISION = @LT_REVISION@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POPT_PKGCONFIG_LIBS = @POPT_PKGCONFIG_LIBS@ +POPT_SOURCE_PATH = @POPT_SOURCE_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TARGET = @TARGET@ +U = @U@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.4 foreign +LINT = splint +MCCABE = pmccabe +EXTRA_DIST = config.rpath lookup3.c autogen.sh CHANGES $(man_MANS) \ + m4/Makefile.in \ + footer_no_timestamp.html libpopt.vers \ + testit.sh test-poptrc \ + popt.xcodeproj/project.pbxproj \ + popt.ps + +SUBDIRS = po . auto +AM_CPPFLAGS = -I. -I$(top_srcdir) +noinst_HEADERS = poptint.h system.h +test1_SOURCES = test1.c +test1_LDFLAGS = +test1_LDADD = $(usrlib_LTLIBRARIES) +test2_SOURCES = test2.c +test2_LDFLAGS = +test2_LDADD = $(usrlib_LTLIBRARIES) +#test3_SOURCES = test3.c +#test3_LDFLAGS = +#test3_LDADD = $(usrlib_LTLIBRARIES) +tdict_SOURCES = tdict.c +tdict_LDFLAGS = +tdict_LDADD = $(usrlib_LTLIBRARIES) +noinst_SCRIPTS = testit.sh +TESTS_ENVIRONMENT = \ +test1="$(top_builddir)/test1" + +TESTS = $(top_srcdir)/testit.sh +include_HEADERS = popt.h +usrlibdir = $(libdir) +usrlib_LTLIBRARIES = libpopt.la +libpopt_la_SOURCES = popt.c poptparse.c poptconfig.c popthelp.c poptint.c +libpopt_la_LDFLAGS = -no-undefined @LTLIBINTL@ @LTLIBICONV@ \ + $(am__append_1) +pkgconfigdir = $(prefix)/lib/pkgconfig +pkgconfig_DATA = popt.pc +man_MANS = popt.3 +BUILT_SOURCES = popt.pc # popt.lcd + +#.PHONY: lcov-upload +#lcov-upload: lcov +# rsync -rvz -e ssh --delete lcov/* ??? +ACLOCAL_AMFLAGS = -I m4 +all: $(BUILT_SOURCES) config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +Doxyfile: $(top_builddir)/config.status $(srcdir)/Doxyfile.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +popt.pc: $(top_builddir)/config.status $(srcdir)/popt.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +popt.spec: $(top_builddir)/config.status $(srcdir)/popt.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +test-poptrc: $(top_builddir)/config.status $(srcdir)/test-poptrc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +install-usrlibLTLIBRARIES: $(usrlib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(usrlibdir)" || $(MKDIR_P) "$(DESTDIR)$(usrlibdir)" + @list='$(usrlib_LTLIBRARIES)'; test -n "$(usrlibdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(usrlibdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(usrlibdir)"; \ + } + +uninstall-usrlibLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(usrlib_LTLIBRARIES)'; test -n "$(usrlibdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(usrlibdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(usrlibdir)/$$f"; \ + done + +clean-usrlibLTLIBRARIES: + -test -z "$(usrlib_LTLIBRARIES)" || rm -f $(usrlib_LTLIBRARIES) + @list='$(usrlib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libpopt.la: $(libpopt_la_OBJECTS) $(libpopt_la_DEPENDENCIES) + $(libpopt_la_LINK) -rpath $(usrlibdir) $(libpopt_la_OBJECTS) $(libpopt_la_LIBADD) $(LIBS) + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +tdict$(EXEEXT): $(tdict_OBJECTS) $(tdict_DEPENDENCIES) + @rm -f tdict$(EXEEXT) + $(tdict_LINK) $(tdict_OBJECTS) $(tdict_LDADD) $(LIBS) +test1$(EXEEXT): $(test1_OBJECTS) $(test1_DEPENDENCIES) + @rm -f test1$(EXEEXT) + $(test1_LINK) $(test1_OBJECTS) $(test1_LDADD) $(LIBS) +test2$(EXEEXT): $(test2_OBJECTS) $(test2_DEPENDENCIES) + @rm -f test2$(EXEEXT) + $(test2_LINK) $(test2_OBJECTS) $(test2_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/popt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poptconfig.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/popthelp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poptint.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/poptparse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tdict.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test2.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-man3: $(man_MANS) + @$(NORMAL_INSTALL) + test -z "$(man3dir)" || $(MKDIR_P) "$(DESTDIR)$(man3dir)" + @list=''; test -n "$(man3dir)" || exit 0; \ + { for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.3[a-z]*$$/p'; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ + done; } + +uninstall-man3: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man3dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.3[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + test -z "$$files" || { \ + echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(man3dir)" && rm -f $$files; } +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)" + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(includedir)" && rm -f $$files + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + col=$$red; res=XPASS; \ + ;; \ + *) \ + col=$$grn; res=PASS; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + col=$$lgn; res=XFAIL; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + col=$$red; res=FAIL; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + col=$$blu; res=SKIP; \ + fi; \ + echo "$${col}$$res$${std}: $$tst"; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + if test "$$failed" -eq 0; then \ + echo "$$grn$$dashes"; \ + else \ + echo "$$red$$dashes"; \ + fi; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes$$std"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + @list='$(MANS)'; if test -n "$$list"; then \ + list=`for p in $$list; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ + if test -n "$$list" && \ + grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ + echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ + grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ + echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ + echo " typically \`make maintainer-clean' will remove them" >&2; \ + exit 1; \ + else :; fi; \ + else :; fi + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @$(am__cd) '$(distuninstallcheck_dir)' \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-recursive +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) \ + $(HEADERS) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(usrlibdir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + clean-usrlibLTLIBRARIES mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-local distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-includeHEADERS install-man \ + install-pkgconfigDATA install-usrlibLTLIBRARIES + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: install-man3 + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-includeHEADERS uninstall-man \ + uninstall-pkgconfigDATA uninstall-usrlibLTLIBRARIES + +uninstall-man: uninstall-man3 + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ + check-am ctags-recursive install install-am install-strip \ + tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-TESTS check-am clean \ + clean-generic clean-libtool clean-noinstPROGRAMS \ + clean-usrlibLTLIBRARIES ctags ctags-recursive dist dist-all \ + dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ dist-xz \ + dist-zip distcheck distclean distclean-compile \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-local distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-includeHEADERS install-info \ + install-info-am install-man install-man3 install-pdf \ + install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ + install-strip install-usrlibLTLIBRARIES installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ + uninstall-includeHEADERS uninstall-man uninstall-man3 \ + uninstall-pkgconfigDATA uninstall-usrlibLTLIBRARIES + + +distclean-local: + rm -rf .ccache + +.PHONY: updatepo +updatepo: + rsync -Lrtvz translationproject.org::tp/latest/popt/ po + +popt.lcd: Makefile.am ${libpopt_la_SOURCES} ${include_HEADERS} ${noinst_HEADERS} + lclint -dump $@ ${libpopt_la_SOURCES} + +.PHONY: sources +sources: + @echo $(libpopt_la_SOURCES:%=popt/%) + +.PHONY: lint +lint: + $(LINT) ${DEFS} ${INCLUDES} test1.c ${libpopt_la_SOURCES} + +.PHONY: mccabe +mccabe: + $(MCCABE) $(libpopt_la_SOURCES) | sort -n -r | head -n 10 + +.PHONY: doxygen +doxygen: Doxyfile + rm -rf doxygen + mkdir -p doxygen + doxygen + +.PHONY: lcov-reset # run lcov from scratch, always +lcov-reset: + make lcov-run + make lcov-report + +.PHONY: lcov # run lcov from scratch if the dir is not there +lcov: + make lcov-reset + +.PHONY: lcov-run # reset run coverage tests +lcov-run: + @-rm -rf lcov + find . -name "*.gcda" -exec rm {} \; + make check + +.PHONY: lcov-report # generate report based on current coverage data +lcov-report: + mkdir lcov + lcov --directory . --capture --output-file lcov/lcov.info + lcov -l lcov/lcov.info | grep -v "`cd $(top_srcdir) && pwd`" | cut -d: -f1 > lcov/remove + lcov -r lcov/lcov.info `cat lcov/remove` > lcov/lcov.cleaned.info + rm lcov/remove + mv lcov/lcov.cleaned.info lcov/lcov.info + genhtml -t "$(PACKAGE_STRING)" -o lcov lcov/lcov.info + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT:
diff --git a/popt-1.16/README b/popt-1.16/README new file mode 100644 index 0000000..c66432d --- /dev/null +++ b/popt-1.16/README
@@ -0,0 +1,16 @@ +This is the popt(3) command line option parsing library. While it is similiar +to getopt(3), it contains a number of enhancements, including: + + 1) popt is fully reentrant + 2) popt can parse arbitrary argv[] style arrays while + getopt(3) makes this quite difficult + 3) popt allows users to alias command line arguments + 4) popt provides convience functions for parsing strings + into argv[] style arrays + +Complete documentation on popt(3) is available in popt.ps (included in this +tarball), which is excerpted with permission from the book "Linux +Application Development" by Michael K. Johnson and Erik Troan (available +from Addison Wesley in May, 1998). + +Comments on popt should be addressed to popt-devel@rpm5.org.
diff --git a/popt-1.16/aclocal.m4 b/popt-1.16/aclocal.m4 new file mode 100644 index 0000000..185a208 --- /dev/null +++ b/popt-1.16/aclocal.m4
@@ -0,0 +1,1082 @@ +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, +[m4_warning([this file was generated for autoconf 2.63. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# intlmacosx.m4 serial 1 (gettext-0.17) +dnl Copyright (C) 2004-2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on MacOS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in MacOS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + gt_cv_func_CFPreferencesCopyAppValue, + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>], + [CFPreferencesCopyAppValue(NULL, NULL)], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, + [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in MacOS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, + [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 10 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 16 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +AC_DEFUN([AM_C_PROTOTYPES], +[AC_REQUIRE([AC_C_PROTOTYPES]) +if test "$ac_cv_prog_cc_stdc" != no; then + U= ANSI2KNR= +else + U=_ ANSI2KNR=./ansi2knr +fi +# Ensure some checks needed by ansi2knr itself. +AC_REQUIRE([AC_HEADER_STDC]) +AC_CHECK_HEADERS([string.h]) +AC_SUBST([U])dnl +AC_SUBST([ANSI2KNR])dnl +_AM_SUBST_NOTMAKE([ANSI2KNR])dnl +]) + +AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar <conftest.tar]) + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/gettext.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/po.m4]) +m4_include([m4/progtest.m4])
diff --git a/popt-1.16/auto/Makefile.am b/popt-1.16/auto/Makefile.am new file mode 100644 index 0000000..56bb292 --- /dev/null +++ b/popt-1.16/auto/Makefile.am
@@ -0,0 +1,12 @@ +AUTOMAKE_OPTIONS = 1.4 foreign + +AUTOTEST = api-sanity-autotest.pl + +TDIRS = descriptors_storage header_compile_errors test_results tests + +clean-local: + rm -rf $(TDIRS) + +check-local: + -[ -d tests ] && ${AUTOTEST} -l popt -d desc -clean + -${AUTOTEST} -l popt -d desc -st types -gen -build -run
diff --git a/popt-1.16/auto/Makefile.in b/popt-1.16/auto/Makefile.in new file mode 100644 index 0000000..193fc56 --- /dev/null +++ b/popt-1.16/auto/Makefile.in
@@ -0,0 +1,401 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = auto +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/desc.in $(srcdir)/types.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = desc types +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_AGE = @LT_AGE@ +LT_CURRENT = @LT_CURRENT@ +LT_REVISION = @LT_REVISION@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POPT_PKGCONFIG_LIBS = @POPT_PKGCONFIG_LIBS@ +POPT_SOURCE_PATH = @POPT_SOURCE_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TARGET = @TARGET@ +U = @U@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = 1.4 foreign +AUTOTEST = api-sanity-autotest.pl +TDIRS = descriptors_storage header_compile_errors test_results tests +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign auto/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign auto/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +desc: $(top_builddir)/config.status $(srcdir)/desc.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +types: $(top_builddir)/config.status $(srcdir)/types.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: check-am install-am install-strip + +.PHONY: all all-am check check-am check-local clean clean-generic \ + clean-libtool clean-local distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + uninstall uninstall-am + + +clean-local: + rm -rf $(TDIRS) + +check-local: + -[ -d tests ] && ${AUTOTEST} -l popt -d desc -clean + -${AUTOTEST} -l popt -d desc -st types -gen -build -run + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT:
diff --git a/popt-1.16/auto/desc.in b/popt-1.16/auto/desc.in new file mode 100644 index 0000000..32bdc3b --- /dev/null +++ b/popt-1.16/auto/desc.in
@@ -0,0 +1,28 @@ +<version> + 1.15 +</version> + +<headers> + popt.h +</headers> + +<libs> + @abs_top_builddir@/.libs/libpopt.so +</libs> + +<include_paths> + @abs_top_srcdir@ +</include_paths> + +<gcc_options> + @CFLAGS@ +</gcc_options> + +<opaque_types> +</opaque_types> +<skip_interfaces> +</skip_interfaces> +<include_preamble> +</include_preamble> +<libs_depend> +</libs_depend>
diff --git a/popt-1.16/auto/types.in b/popt-1.16/auto/types.in new file mode 100644 index 0000000..74a6c33 --- /dev/null +++ b/popt-1.16/auto/types.in
@@ -0,0 +1,147 @@ +<?xml version="1.0" encoding="UTF-8"?> +<collection> + +<spec_type> + <kind> common_env </kind> + <global_code> + static int aVal = 141421; + static unsigned int aFlag = 0x8aceU; + + static short aShort = (short)4523; + static int aInt = 271828; + static long aLong = 738905609L; + static long long aLongLong = 738905609LL; + static float aFloat = 3.1415926535; + static double aDouble = 9.86960440108935861883; + static const char ** aArgv = NULL; + + static struct poptOption optionsTable[] = { + { "val", '\0', POPT_ARG_VAL | POPT_ARGFLAG_SHOW_DEFAULT, &aVal, 125992, + "POPT_ARG_VAL: 125992 141421", 0}, + { "int", 'i', POPT_ARG_INT | POPT_ARGFLAG_SHOW_DEFAULT, &aInt, 0, + "POPT_ARG_INT: 271828", NULL }, + { "short", 's', POPT_ARG_SHORT | POPT_ARGFLAG_SHOW_DEFAULT, &aShort, 0, + "POPT_ARG_SHORT: 4523", NULL }, + { "long", 'l', POPT_ARG_LONG | POPT_ARGFLAG_SHOW_DEFAULT, &aLong, 0, + "POPT_ARG_LONG: 738905609", NULL }, + { "longlong", 'L', POPT_ARG_LONGLONG | POPT_ARGFLAG_SHOW_DEFAULT, &aLongLong, 0, + "POPT_ARG_LONGLONG: 738905609", NULL }, + { "float", 'f', POPT_ARG_FLOAT | POPT_ARGFLAG_SHOW_DEFAULT, &aFloat, 0, + "POPT_ARG_FLOAT: 3.14159", NULL }, + { "double", 'd', POPT_ARG_DOUBLE | POPT_ARGFLAG_SHOW_DEFAULT, &aDouble, 0, + "POPT_ARG_DOUBLE: 9.8696", NULL }, + { "argv", '\0', POPT_ARG_ARGV, &aArgv, 0, + "POPT_ARG_ARGV: append string to argv array (can be used multiple times)","STRING"}, + POPT_AUTOALIAS + POPT_AUTOHELP + POPT_TABLEEND + }; + </global_code> +</spec_type> + +<spec_type> + <kind> common_param </kind> + <data_type> poptContext </data_type> + <value> poptGetContext(argv[0], argc, argv, optionsTable, 0) </value> + <final_code> + $0 = poptFreeContext($0); + </final_code> + <associating> + <except> + poptAddItem <!-- FIXME --> + </except> + </associating> +</spec_type> +<spec_type> + <kind> normal </kind> + <data_type> poptContext </data_type> + <value> poptGetContext(argv[0], argc, argv, optionsTable, 0) </value> + <associating> + <interfaces> + poptFreeContext + poptFini + </interfaces> + <links> param1 </links> + </associating> +</spec_type> +<spec_type> + <kind> normal </kind> + <data_type> poptItem </data_type> + <value> NULL </value> + <global_code> + #include <malloc.h> + </global_code> + <init_code> + $0 = calloc(1, sizeof(*$0)); + $0->option = *poptHelpOptionsI18N; + $0->argc = 1; + $0->argv = calloc(2, sizeof(*$0->argv)); + $0->argv[0] = strdup("arg1"); + </init_code> + <associating> + <interfaces> poptAddItem </interfaces> + <links> param2 </links> + </associating> +</spec_type> + +<spec_type> + <kind> common_param </kind> + <data_type> struct poptAlias </data_type> + <value> _alias </value> + <global_code> + #include <malloc.h> + static struct poptAlias _alias = { + .longName = "longName", + .shortName = 'l', + .argc = 0, + .argv = NULL + }; + </global_code> + <init_code> + $0.argc = 1; + $0.argv = calloc($0.argc + 1, sizeof(*$0.argv)); + $0.argv[0] = strdup("arg1"); + </init_code> +</spec_type> + +<spec_type> + <kind> common_param </kind> + <name> poptBits </name> + <data_type> poptBits </data_type> + <value> + create_poptBits() + </value> + <global_code> + poptBits create_poptBits() + { + poptBits a = NULL; + (void) poptSaveBits(&a, 0, "foo"); + (void) poptSaveBits(&a, 0, "bar"); + (void) poptSaveBits(&a, 0, "baz"); + return a; + } + </global_code> +</spec_type> + +<spec_type> + <kind> normal </kind> + <data_type> const char *** </data_type> + <value> &av </value> + <global_code> + #include <malloc.h> + </global_code> + <init_code> + const char ** av = NULL; + </init_code> + <final_code> + free(av[0]); + free(av); + </final_code> + <associating> + <interfaces> poptSaveString </interfaces> + <links> param1 </links> + </associating> +</spec_type> + +</collection> +
diff --git a/popt-1.16/autogen.sh b/popt-1.16/autogen.sh new file mode 100755 index 0000000..63d786c --- /dev/null +++ b/popt-1.16/autogen.sh
@@ -0,0 +1,38 @@ +#!/bin/sh + +srcdir="`dirname $0`" +test -z "$srcdir" && srcdir=. + +THEDIR="`pwd`" + +libtoolize=`which glibtoolize 2>/dev/null` +case $libtoolize in +/*) ;; +*) libtoolize=`which libtoolize 2>/dev/null` + case $libtoolize in + /*) ;; + *) libtoolize=libtoolize + esac +esac + +cd "$srcdir" +$libtoolize --copy --force +gettextize --copy --force --no-changelog +perl -p -i~ -e 's/(po\/Makefile\.in)\s+po\/Makefile\.in/$1/' configure.ac +perl -p -i~ -e 's/(SUBDIRS\s+=\s+po)\s+po/$1/' Makefile.am +aclocal -I m4 +autoheader +automake -Wall -Wno-override -a -c +autoconf + +if [ "$1" = "--noconfigure" ]; then + exit 0; +fi + +cd "$THEDIR" + +if [ X"$@" = X -a "X`uname -s`" = "XLinux" ]; then + $srcdir/configure --prefix=/usr --libdir=/lib "$@" +else + $srcdir/configure "$@" +fi
diff --git a/popt-1.16/config.guess b/popt-1.16/config.guess new file mode 100755 index 0000000..dc84c68 --- /dev/null +++ b/popt-1.16/config.guess
@@ -0,0 +1,1501 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-11-20' + +# This file 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., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner. Please send patches (context +# diff format) to <config-patches@gnu.org> and include a ChangeLog +# entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include <stdio.h> /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <sys/systemcfg.h> + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[456]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include <stdlib.h> + #include <unistd.h> + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include <unistd.h> + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-gnu + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` + echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + elif /bin/uname -X 2>/dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says <Richard.M.Bartel@ccMail.Census.GOV> + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes <hewes@openmarket.com>. + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c <<EOF +#ifdef _SEQUENT_ +# include <sys/types.h> +# include <sys/utsname.h> +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include <sys/param.h> + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include <sys/param.h> +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 <<EOF +$0: unable to guess system type + +This script, last modified $timestamp, has failed to recognize +the operating system you are using. It is advised that you +download the most up to date version of the config scripts from + + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +and + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +If the version you run ($0) is already up to date, please +send the following data and any information you think might be +pertinent to <config-patches@gnu.org> in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +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` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End:
diff --git a/popt-1.16/config.h.in b/popt-1.16/config.h.in new file mode 100644 index 0000000..d77075d --- /dev/null +++ b/popt-1.16/config.h.in
@@ -0,0 +1,144 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the <float.h> header file. */ +#undef HAVE_FLOAT_H + +/* Define to 1 if you have the <fnmatch.h> header file. */ +#undef HAVE_FNMATCH_H + +/* Define to 1 if you have the `geteuid' function. */ +#undef HAVE_GETEUID + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to 1 if you have the `getuid' function. */ +#undef HAVE_GETUID + +/* Define to 1 if you have the <glob.h> header file. */ +#undef HAVE_GLOB_H + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the <langinfo.h> header file. */ +#undef HAVE_LANGINFO_H + +/* Define to 1 if you have the <libintl.h> header file. */ +#undef HAVE_LIBINTL_H + +/* Define to 1 if you have the <mcheck.h> header file. */ +#undef HAVE_MCHECK_H + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `mtrace' function. */ +#undef HAVE_MTRACE + +/* Define to 1 if you have the `setregid' function. */ +#undef HAVE_SETREGID + +/* Define to 1 if you have the `srandom' function. */ +#undef HAVE_SRANDOM + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `stpcpy' function. */ +#undef HAVE_STPCPY + +/* Define to 1 if you have the `strerror' function. */ +#undef HAVE_STRERROR + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `vasprintf' function. */ +#undef HAVE_VASPRINTF + +/* Define to 1 if you have the `__secure_getenv' function. */ +#undef HAVE___SECURE_GETENV + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Full path to popt top_srcdir. */ +#undef POPT_SOURCE_PATH + +/* Full path to default POPT configuration directory */ +#undef POPT_SYSCONFDIR + +/* Define to 1 if the C compiler supports function prototypes. */ +#undef PROTOTYPES + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Version number of package */ +#undef VERSION + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define like PROTOTYPES; this can be used by system headers. */ +#undef __PROTOTYPES
diff --git a/popt-1.16/config.rpath b/popt-1.16/config.rpath new file mode 100755 index 0000000..c547c68 --- /dev/null +++ b/popt-1.16/config.rpath
@@ -0,0 +1,666 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2007 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + darwin*) + case $cc_basename in + xlc*) + wl='-Wl,' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + wl='-Wl,' + ;; + pgcc | pgf77 | pgf90) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we cannot use + # them. + ld_shlibs=no + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if test "$GCC" = yes ; then + : + else + case $cc_basename in + xlc*) + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd1*) + ld_shlibs=no + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix4* | aix5*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + library_names_spec='$libname.a' + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd1*) + ;; + freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + nto-qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF + +# How to pass a linker flag through the compiler. +wl="$escaped_wl" + +# Static library suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally "so"). +shlibext="$shlibext" + +# Format of library name prefix. +libname_spec="$escaped_libname_spec" + +# Library names that the linker finds when passed -lNAME. +library_names_spec="$escaped_library_names_spec" + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator="$hardcode_libdir_separator" + +# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the +# resulting binary. +hardcode_direct="$hardcode_direct" + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L="$hardcode_minus_L" + +EOF
diff --git a/popt-1.16/config.sub b/popt-1.16/config.sub new file mode 100755 index 0000000..2a55a50 --- /dev/null +++ b/popt-1.16/config.sub
@@ -0,0 +1,1705 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Free Software Foundation, Inc. + +timestamp='2009-11-20' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file 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., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to <config-patches@gnu.org>. Submit a context +# diff and a properly formatted GNU ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to <config-patches@gnu.org>." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nios | nios2 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e \ + | we32k \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | picochip) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nios-* | nios2-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze) + basic_machine=microblaze-xilinx + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End:
diff --git a/popt-1.16/configure b/popt-1.16/configure new file mode 100755 index 0000000..ef45bd7 --- /dev/null +++ b/popt-1.16/configure Binary files differ
diff --git a/popt-1.16/configure.ac b/popt-1.16/configure.ac new file mode 100644 index 0000000..22f8bfc --- /dev/null +++ b/popt-1.16/configure.ac
@@ -0,0 +1,135 @@ +AC_PREREQ(2.57) +AC_INIT(popt, 1.16, popt-devel@rpm5.org) +AC_CONFIG_SRCDIR([popt.h]) +AC_CONFIG_HEADERS([config.h]) +AC_CANONICAL_TARGET + +dnl Must come before AM_INIT_AUTOMAKE. +dnl AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) +AM_INIT_AUTOMAKE([foreign -Wall]) +AM_MAINTAINER_MODE + +# Library code modified: REVISION++ +# Interfaces changed/added/removed: CURRENT++ REVISION=0 +# Interfaces added: AGE++ +# Interfaces removed: AGE=0 +AC_SUBST(LT_CURRENT, 0) +AC_SUBST(LT_REVISION, 0) +AC_SUBST(LT_AGE, 8) + +ALL_LINGUAS="cs da de eo es fi fr ga gl hu id is it ja ko lv nb nl pl pt ro ru sk sl sv th tr uk vi wa zh_TW zh_CN" + +AC_PROG_CC_STDC +AC_PROG_CC + +AC_PROG_INSTALL +AC_PROG_LIBTOOL + +dnl if CC is gcc, we can rebuild the dependencies (since the depend rule +dnl requires gcc). If it's not, don't rebuild dependencies -- use what was +dnl shipped with RPM. +if test X"$GCC" = "Xyes"; then + CFLAGS="$CFLAGS -Wall -W" + TARGET="depend allprogs" +else + TARGET="everything" + dnl let the Makefile know that we're done with `depend', since we don't + dnl have gcc we're not going to rebuild our dependencies at all. + echo >.depend-done +fi +AC_SUBST(TARGET) + +CFLAGS="$CFLAGS -D_GNU_SOURCE -D_REENTRANT" + +AC_GCC_TRADITIONAL +AC_SYS_LARGEFILE + +AC_ISC_POSIX +AM_C_PROTOTYPES + +AC_CHECK_HEADERS(float.h fnmatch.h glob.h langinfo.h libintl.h mcheck.h unistd.h) + +# For some systems we know that we have ld_version scripts. +# Use it then as default. +have_ld_version_script=no +case "${host}" in + *-*-linux*) + have_ld_version_script=yes + ;; + *-*-gnu*) + have_ld_version_script=yes + ;; +esac +AC_ARG_ENABLE([ld-version-script], + AC_HELP_STRING([--enable-ld-version-script], + [enable/disable use of linker version script. + (default is system dependent)]), + [have_ld_version_script=$enableval], + [ : ] ) +AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") + +AC_ARG_ENABLE(build-gcov, + AS_HELP_STRING([--enable-build-gcov], [build POPT instrumented for gcov]), [dnl + if test ".$enableval" = .yes; then + if test ".`$CC --version 2>&1 | grep 'GCC'`" != .; then + dnl # GNU GCC (usually "gcc") + CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" + fi + fi +]) + +AC_CHECK_FUNC(setreuid, [], [ + AC_CHECK_LIB(ucb, setreuid, [if echo $LIBS | grep -- -lucb >/dev/null ;then :; else LIBS="$LIBS -lc -lucb" USEUCB=y;fi]) +]) +AC_CHECK_FUNCS(getuid geteuid iconv mtrace __secure_getenv setregid stpcpy strerror vasprintf srandom) + +AM_GNU_GETTEXT([external]) +AM_ICONV_LINK + +popt_sysconfdir="${sysconfdir}" +eval "popt_sysconfdir=\"${popt_sysconfdir}\"" # expand contained ${prefix} +AC_DEFINE_UNQUOTED([POPT_SYSCONFDIR], ["$popt_sysconfdir"], [Full path to default POPT configuration directory]) + + +# Define a (hope) portable Libs pkgconfig directive that +# - Don't harm if the default library search path include ${libdir} +# (https://bugzilla.novell.com/show_bug.cgi?id=529921) +# - Don't require a not upstream patch to pkgconfig +# (https://bugs.freedesktop.org/show_bug.cgi?id=16095) +popt_pkgconfig_libs='-L${libdir} -lpopt' +case "${host}" in + *-*-linux*) + case "${libdir}" in + /usr/lib|/usr/lib64|/lib|/lib64) + popt_pkgconfig_libs='-lpopt' + ;; + *) + popt_pkgconfig_libs='-L${libdir} -lpopt' + ;; + esac + ;; + *-*-gnu*) + case "${libdir}" in + /usr/lib|/usr/lib64|/lib|/lib64) + popt_pkgconfig_libs='-lpopt' + ;; + *) + popt_pkgconfig_libs='-L${libdir} -lpopt' + ;; + esac + ;; +esac +AC_SUBST([POPT_PKGCONFIG_LIBS],"$popt_pkgconfig_libs") + +POPT_SOURCE_PATH="`pwd`" +AC_DEFINE_UNQUOTED(POPT_SOURCE_PATH, "$POPT_SOURCE_PATH", + [Full path to popt top_srcdir.]) +AC_SUBST(POPT_SOURCE_PATH) + +AC_CONFIG_SUBDIRS() +AC_CONFIG_FILES([ po/Makefile.in m4/Makefile + Doxyfile Makefile popt.pc popt.spec test-poptrc + auto/Makefile auto/desc auto/types +]) +AC_OUTPUT
diff --git a/popt-1.16/depcomp b/popt-1.16/depcomp new file mode 100755 index 0000000..df8eea7 --- /dev/null +++ b/popt-1.16/depcomp
@@ -0,0 +1,630 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2009-04-28.21; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free +# Software Foundation, Inc. + +# 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, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to <bug-automake@gnu.org>. +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u="sed s,\\\\\\\\,/,g" + depmode=msvisualcpp +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> "$depfile" + echo >> "$depfile" + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End:
diff --git a/popt-1.16/footer_no_timestamp.html b/popt-1.16/footer_no_timestamp.html new file mode 100644 index 0000000..d32d210 --- /dev/null +++ b/popt-1.16/footer_no_timestamp.html
@@ -0,0 +1,5 @@ +<hr size="1"><address style="text-align: right;"><small>Generated for $projectname by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> $doxygenversion </small></address> +</body> +</html>
diff --git a/popt-1.16/install-sh b/popt-1.16/install-sh new file mode 100755 index 0000000..6781b98 --- /dev/null +++ b/popt-1.16/install-sh
@@ -0,0 +1,520 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2009-04-28.21; # 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. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# 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_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +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 +no_target_directory= + +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 + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +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 + 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 + trap '(exit $?); exit' 1 2 13 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 starting with `-'. + 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 + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac + + # 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 -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + 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-writeable 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 + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && 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` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob 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: "UTC" +# time-stamp-end: "; # UTC" +# End:
diff --git a/popt-1.16/libpopt.vers b/popt-1.16/libpopt.vers new file mode 100644 index 0000000..3ac5e52 --- /dev/null +++ b/popt-1.16/libpopt.vers
@@ -0,0 +1,58 @@ +LIBPOPT_0 +{ + global: + _fini; + _init; + _poptArgMask; + _poptGroupMask; + poptAddAlias; + poptAddItem; + poptAliasOptions; + poptBadOption; + _poptBitsN; + _poptBitsM; + _poptBitsK; + poptBitsAdd; + poptBitsArgs; + poptBitsChk; + poptBitsClr; + poptBitsDel; + poptBitsIntersect; + poptBitsUnion; + poptConfigFileToString; + poptDupArgv; + poptFini; + poptFreeContext; + poptGetArg; + poptGetArgs; + poptGetContext; + poptGetInvocationName; + poptGetNextOpt; + poptGetOptArg; + poptHelpOptions; + poptHelpOptionsI18N; + poptInit; + poptParseArgvString; + poptPeekArg; + poptPrintHelp; + poptPrintUsage; + poptReadFile; + poptReadConfigFile; + poptReadConfigFiles; + poptReadDefaultConfig; + poptResetContext; + poptSaneFile; + poptSaveBits; + poptSaveInt; + poptSaveLong; + poptSaveLongLong; + poptSaveShort; + poptSaveString; + poptSetExecPath; + poptSetOtherOptionHelp; + poptStrerror; + poptStrippedArgv; + poptStuffArgs; + local: + *; +};
diff --git a/popt-1.16/lookup3.c b/popt-1.16/lookup3.c new file mode 100644 index 0000000..0584c39 --- /dev/null +++ b/popt-1.16/lookup3.c
@@ -0,0 +1,969 @@ +/* -------------------------------------------------------------------- */ +/* + * lookup3.c, by Bob Jenkins, May 2006, Public Domain. + * + * These are functions for producing 32-bit hashes for hash table lookup. + * jlu32w(), jlu32l(), jlu32lpair(), jlu32b(), _JLU3_MIX(), and _JLU3_FINAL() + * are externally useful functions. Routines to test the hash are included + * if SELF_TEST is defined. You can use this free for any purpose. It's in + * the public domain. It has no warranty. + * + * You probably want to use jlu32l(). jlu32l() and jlu32b() + * hash byte arrays. jlu32l() is is faster than jlu32b() on + * little-endian machines. Intel and AMD are little-endian machines. + * On second thought, you probably want jlu32lpair(), which is identical to + * jlu32l() except it returns two 32-bit hashes for the price of one. + * You could implement jlu32bpair() if you wanted but I haven't bothered here. + * + * If you want to find a hash of, say, exactly 7 integers, do + * a = i1; b = i2; c = i3; + * _JLU3_MIX(a,b,c); + * a += i4; b += i5; c += i6; + * _JLU3_MIX(a,b,c); + * a += i7; + * _JLU3_FINAL(a,b,c); + * then use c as the hash value. If you have a variable size array of + * 4-byte integers to hash, use jlu32w(). If you have a byte array (like + * a character string), use jlu32l(). If you have several byte arrays, or + * a mix of things, see the comments above jlu32l(). + * + * Why is this so big? I read 12 bytes at a time into 3 4-byte integers, + * then mix those integers. This is fast (you can do a lot more thorough + * mixing with 12*3 instructions on 3 integers than you can with 3 instructions + * on 1 byte), but shoehorning those bytes into integers efficiently is messy. +*/ +/* -------------------------------------------------------------------- */ + +#include <stdint.h> + +#if defined(_JLU3_SELFTEST) +# define _JLU3_jlu32w 1 +# define _JLU3_jlu32l 1 +# define _JLU3_jlu32lpair 1 +# define _JLU3_jlu32b 1 +#endif + +/*@-redef@*/ +/*@unchecked@*/ +static const union _dbswap { + const uint32_t ui; + const unsigned char uc[4]; +} endian = { .ui = 0x11223344 }; +# define HASH_LITTLE_ENDIAN (endian.uc[0] == (unsigned char) 0x44) +# define HASH_BIG_ENDIAN (endian.uc[0] == (unsigned char) 0x11) +/*@=redef@*/ + +#ifndef ROTL32 +# define ROTL32(x, s) (((x) << (s)) | ((x) >> (32 - (s)))) +#endif + +/* NOTE: The _size parameter should be in bytes. */ +#define _JLU3_INIT(_h, _size) (0xdeadbeef + ((uint32_t)(_size)) + (_h)) + +/* -------------------------------------------------------------------- */ +/* + * _JLU3_MIX -- mix 3 32-bit values reversibly. + * + * This is reversible, so any information in (a,b,c) before _JLU3_MIX() is + * still in (a,b,c) after _JLU3_MIX(). + * + * If four pairs of (a,b,c) inputs are run through _JLU3_MIX(), or through + * _JLU3_MIX() in reverse, there are at least 32 bits of the output that + * are sometimes the same for one pair and different for another pair. + * This was tested for: + * * pairs that differed by one bit, by two bits, in any combination + * of top bits of (a,b,c), or in any combination of bottom bits of + * (a,b,c). + * * "differ" is defined as +, -, ^, or ~^. For + and -, I transformed + * the output delta to a Gray code (a^(a>>1)) so a string of 1's (as + * is commonly produced by subtraction) look like a single 1-bit + * difference. + * * the base values were pseudorandom, all zero but one bit set, or + * all zero plus a counter that starts at zero. + * + * Some k values for my "a-=c; a^=ROTL32(c,k); c+=b;" arrangement that + * satisfy this are + * 4 6 8 16 19 4 + * 9 15 3 18 27 15 + * 14 9 3 7 17 3 + * Well, "9 15 3 18 27 15" didn't quite get 32 bits diffing + * for "differ" defined as + with a one-bit base and a two-bit delta. I + * used http://burtleburtle.net/bob/hash/avalanche.html to choose + * the operations, constants, and arrangements of the variables. + * + * This does not achieve avalanche. There are input bits of (a,b,c) + * that fail to affect some output bits of (a,b,c), especially of a. The + * most thoroughly mixed value is c, but it doesn't really even achieve + * avalanche in c. + * + * This allows some parallelism. Read-after-writes are good at doubling + * the number of bits affected, so the goal of mixing pulls in the opposite + * direction as the goal of parallelism. I did what I could. Rotates + * seem to cost as much as shifts on every machine I could lay my hands + * on, and rotates are much kinder to the top and bottom bits, so I used + * rotates. + */ +/* -------------------------------------------------------------------- */ +#define _JLU3_MIX(a,b,c) \ +{ \ + a -= c; a ^= ROTL32(c, 4); c += b; \ + b -= a; b ^= ROTL32(a, 6); a += c; \ + c -= b; c ^= ROTL32(b, 8); b += a; \ + a -= c; a ^= ROTL32(c,16); c += b; \ + b -= a; b ^= ROTL32(a,19); a += c; \ + c -= b; c ^= ROTL32(b, 4); b += a; \ +} + +/* -------------------------------------------------------------------- */ +/** + * _JLU3_FINAL -- final mixing of 3 32-bit values (a,b,c) into c + * + * Pairs of (a,b,c) values differing in only a few bits will usually + * produce values of c that look totally different. This was tested for + * * pairs that differed by one bit, by two bits, in any combination + * of top bits of (a,b,c), or in any combination of bottom bits of + * (a,b,c). + * * "differ" is defined as +, -, ^, or ~^. For + and -, I transformed + * the output delta to a Gray code (a^(a>>1)) so a string of 1's (as + * is commonly produced by subtraction) look like a single 1-bit + * difference. + * * the base values were pseudorandom, all zero but one bit set, or + * all zero plus a counter that starts at zero. + * + * These constants passed: + * 14 11 25 16 4 14 24 + * 12 14 25 16 4 14 24 + * and these came close: + * 4 8 15 26 3 22 24 + * 10 8 15 26 3 22 24 + * 11 8 15 26 3 22 24 + */ +/* -------------------------------------------------------------------- */ +#define _JLU3_FINAL(a,b,c) \ +{ \ + c ^= b; c -= ROTL32(b,14); \ + a ^= c; a -= ROTL32(c,11); \ + b ^= a; b -= ROTL32(a,25); \ + c ^= b; c -= ROTL32(b,16); \ + a ^= c; a -= ROTL32(c,4); \ + b ^= a; b -= ROTL32(a,14); \ + c ^= b; c -= ROTL32(b,24); \ +} + +#if defined(_JLU3_jlu32w) +uint32_t jlu32w(uint32_t h, /*@null@*/ const uint32_t *k, size_t size) + /*@*/; +/* -------------------------------------------------------------------- */ +/** + * This works on all machines. To be useful, it requires + * -- that the key be an array of uint32_t's, and + * -- that the size be the number of uint32_t's in the key + * + * The function jlu32w() is identical to jlu32l() on little-endian + * machines, and identical to jlu32b() on big-endian machines, + * except that the size has to be measured in uint32_ts rather than in + * bytes. jlu32l() is more complicated than jlu32w() only because + * jlu32l() has to dance around fitting the key bytes into registers. + * + * @param h the previous hash, or an arbitrary value + * @param *k the key, an array of uint32_t values + * @param size the size of the key, in uint32_ts + * @return the lookup3 hash + */ +/* -------------------------------------------------------------------- */ +uint32_t jlu32w(uint32_t h, const uint32_t *k, size_t size) +{ + uint32_t a = _JLU3_INIT(h, (size * sizeof(*k))); + uint32_t b = a; + uint32_t c = a; + + if (k == NULL) + goto exit; + + /*----------------------------------------------- handle most of the key */ + while (size > 3) { + a += k[0]; + b += k[1]; + c += k[2]; + _JLU3_MIX(a,b,c); + size -= 3; + k += 3; + } + + /*----------------------------------------- handle the last 3 uint32_t's */ + switch (size) { + case 3 : c+=k[2]; + case 2 : b+=k[1]; + case 1 : a+=k[0]; + _JLU3_FINAL(a,b,c); + /*@fallthrough@*/ + case 0: + break; + } + /*---------------------------------------------------- report the result */ +exit: + return c; +} +#endif /* defined(_JLU3_jlu32w) */ + +#if defined(_JLU3_jlu32l) +uint32_t jlu32l(uint32_t h, const void *key, size_t size) + /*@*/; +/* -------------------------------------------------------------------- */ +/* + * jlu32l() -- hash a variable-length key into a 32-bit value + * h : can be any 4-byte value + * k : the key (the unaligned variable-length array of bytes) + * size : the size of the key, counting by bytes + * Returns a 32-bit value. Every bit of the key affects every bit of + * the return value. Two keys differing by one or two bits will have + * totally different hash values. + * + * The best hash table sizes are powers of 2. There is no need to do + * mod a prime (mod is sooo slow!). If you need less than 32 bits, + * use a bitmask. For example, if you need only 10 bits, do + * h = (h & hashmask(10)); + * In which case, the hash table should have hashsize(10) elements. + * + * If you are hashing n strings (uint8_t **)k, do it like this: + * for (i=0, h=0; i<n; ++i) h = jlu32l(h, k[i], len[i]); + * + * By Bob Jenkins, 2006. bob_jenkins@burtleburtle.net. You may use this + * code any way you wish, private, educational, or commercial. It's free. + * + * Use for hash table lookup, or anything where one collision in 2^^32 is + * acceptable. Do NOT use for cryptographic purposes. + * + * @param h the previous hash, or an arbitrary value + * @param *k the key, an array of uint8_t values + * @param size the size of the key + * @return the lookup3 hash + */ +/* -------------------------------------------------------------------- */ +uint32_t jlu32l(uint32_t h, const void *key, size_t size) +{ + union { const void *ptr; size_t i; } u; + uint32_t a = _JLU3_INIT(h, size); + uint32_t b = a; + uint32_t c = a; + + if (key == NULL) + goto exit; + + u.ptr = key; + if (HASH_LITTLE_ENDIAN && ((u.i & 0x3) == 0)) { + const uint32_t *k = (const uint32_t *)key; /* read 32-bit chunks */ +#ifdef VALGRIND + const uint8_t *k8; +#endif + + /*------ all but last block: aligned reads and affect 32 bits of (a,b,c) */ + while (size > 12) { + a += k[0]; + b += k[1]; + c += k[2]; + _JLU3_MIX(a,b,c); + size -= 12; + k += 3; + } + + /*------------------------- handle the last (probably partial) block */ + /* + * "k[2]&0xffffff" actually reads beyond the end of the string, but + * then masks off the part it's not allowed to read. Because the + * string is aligned, the masked-off tail is in the same word as the + * rest of the string. Every machine with memory protection I've seen + * does it on word boundaries, so is OK with this. But VALGRIND will + * still catch it and complain. The masking trick does make the hash + * noticably faster for short strings (like English words). + */ +#ifndef VALGRIND + + switch (size) { + case 12: c += k[2]; b+=k[1]; a+=k[0]; break; + case 11: c += k[2]&0xffffff; b+=k[1]; a+=k[0]; break; + case 10: c += k[2]&0xffff; b+=k[1]; a+=k[0]; break; + case 9: c += k[2]&0xff; b+=k[1]; a+=k[0]; break; + case 8: b += k[1]; a+=k[0]; break; + case 7: b += k[1]&0xffffff; a+=k[0]; break; + case 6: b += k[1]&0xffff; a+=k[0]; break; + case 5: b += k[1]&0xff; a+=k[0]; break; + case 4: a += k[0]; break; + case 3: a += k[0]&0xffffff; break; + case 2: a += k[0]&0xffff; break; + case 1: a += k[0]&0xff; break; + case 0: goto exit; + } + +#else /* make valgrind happy */ + + k8 = (const uint8_t *)k; + switch (size) { + case 12: c += k[2]; b+=k[1]; a+=k[0] break; + case 11: c += ((uint32_t)k8[10])<<16; /*@fallthrough@*/ + case 10: c += ((uint32_t)k8[9])<<8; /*@fallthrough@*/ + case 9: c += k8[8]; /*@fallthrough@*/ + case 8: b += k[1]; a+=k[0]; break; + case 7: b += ((uint32_t)k8[6])<<16; /*@fallthrough@*/ + case 6: b += ((uint32_t)k8[5])<<8; /*@fallthrough@*/ + case 5: b += k8[4]; /*@fallthrough@*/ + case 4: a += k[0]; break; + case 3: a += ((uint32_t)k8[2])<<16; /*@fallthrough@*/ + case 2: a += ((uint32_t)k8[1])<<8; /*@fallthrough@*/ + case 1: a += k8[0]; break; + case 0: goto exit; + } + +#endif /* !valgrind */ + + } else if (HASH_LITTLE_ENDIAN && ((u.i & 0x1) == 0)) { + const uint16_t *k = (const uint16_t *)key; /* read 16-bit chunks */ + const uint8_t *k8; + + /*----------- all but last block: aligned reads and different mixing */ + while (size > 12) { + a += k[0] + (((uint32_t)k[1])<<16); + b += k[2] + (((uint32_t)k[3])<<16); + c += k[4] + (((uint32_t)k[5])<<16); + _JLU3_MIX(a,b,c); + size -= 12; + k += 6; + } + + /*------------------------- handle the last (probably partial) block */ + k8 = (const uint8_t *)k; + switch (size) { + case 12: + c += k[4]+(((uint32_t)k[5])<<16); + b += k[2]+(((uint32_t)k[3])<<16); + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 11: + c += ((uint32_t)k8[10])<<16; + /*@fallthrough@*/ + case 10: + c += (uint32_t)k[4]; + b += k[2]+(((uint32_t)k[3])<<16); + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 9: + c += (uint32_t)k8[8]; + /*@fallthrough@*/ + case 8: + b += k[2]+(((uint32_t)k[3])<<16); + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 7: + b += ((uint32_t)k8[6])<<16; + /*@fallthrough@*/ + case 6: + b += (uint32_t)k[2]; + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 5: + b += (uint32_t)k8[4]; + /*@fallthrough@*/ + case 4: + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 3: + a += ((uint32_t)k8[2])<<16; + /*@fallthrough@*/ + case 2: + a += (uint32_t)k[0]; + break; + case 1: + a += (uint32_t)k8[0]; + break; + case 0: + goto exit; + } + + } else { /* need to read the key one byte at a time */ + const uint8_t *k = (const uint8_t *)key; + + /*----------- all but the last block: affect some 32 bits of (a,b,c) */ + while (size > 12) { + a += (uint32_t)k[0]; + a += ((uint32_t)k[1])<<8; + a += ((uint32_t)k[2])<<16; + a += ((uint32_t)k[3])<<24; + b += (uint32_t)k[4]; + b += ((uint32_t)k[5])<<8; + b += ((uint32_t)k[6])<<16; + b += ((uint32_t)k[7])<<24; + c += (uint32_t)k[8]; + c += ((uint32_t)k[9])<<8; + c += ((uint32_t)k[10])<<16; + c += ((uint32_t)k[11])<<24; + _JLU3_MIX(a,b,c); + size -= 12; + k += 12; + } + + /*---------------------------- last block: affect all 32 bits of (c) */ + switch (size) { + case 12: c += ((uint32_t)k[11])<<24; /*@fallthrough@*/ + case 11: c += ((uint32_t)k[10])<<16; /*@fallthrough@*/ + case 10: c += ((uint32_t)k[9])<<8; /*@fallthrough@*/ + case 9: c += (uint32_t)k[8]; /*@fallthrough@*/ + case 8: b += ((uint32_t)k[7])<<24; /*@fallthrough@*/ + case 7: b += ((uint32_t)k[6])<<16; /*@fallthrough@*/ + case 6: b += ((uint32_t)k[5])<<8; /*@fallthrough@*/ + case 5: b += (uint32_t)k[4]; /*@fallthrough@*/ + case 4: a += ((uint32_t)k[3])<<24; /*@fallthrough@*/ + case 3: a += ((uint32_t)k[2])<<16; /*@fallthrough@*/ + case 2: a += ((uint32_t)k[1])<<8; /*@fallthrough@*/ + case 1: a += (uint32_t)k[0]; + break; + case 0: + goto exit; + } + } + + _JLU3_FINAL(a,b,c); + +exit: + return c; +} +#endif /* defined(_JLU3_jlu32l) */ + +#if defined(_JLU3_jlu32lpair) +/** + * jlu32lpair: return 2 32-bit hash values. + * + * This is identical to jlu32l(), except it returns two 32-bit hash + * values instead of just one. This is good enough for hash table + * lookup with 2^^64 buckets, or if you want a second hash if you're not + * happy with the first, or if you want a probably-unique 64-bit ID for + * the key. *pc is better mixed than *pb, so use *pc first. If you want + * a 64-bit value do something like "*pc + (((uint64_t)*pb)<<32)". + * + * @param h the previous hash, or an arbitrary value + * @param *key the key, an array of uint8_t values + * @param size the size of the key in bytes + * @retval *pc, IN: primary initval, OUT: primary hash + * *retval *pb IN: secondary initval, OUT: secondary hash + */ +void jlu32lpair(const void *key, size_t size, uint32_t *pc, uint32_t *pb) +{ + union { const void *ptr; size_t i; } u; + uint32_t a = _JLU3_INIT(*pc, size); + uint32_t b = a; + uint32_t c = a; + + if (key == NULL) + goto exit; + + c += *pb; /* Add the secondary hash. */ + + u.ptr = key; + if (HASH_LITTLE_ENDIAN && ((u.i & 0x3) == 0)) { + const uint32_t *k = (const uint32_t *)key; /* read 32-bit chunks */ +#ifdef VALGRIND + const uint8_t *k8; +#endif + + /*-- all but last block: aligned reads and affect 32 bits of (a,b,c) */ + while (size > (size_t)12) { + a += k[0]; + b += k[1]; + c += k[2]; + _JLU3_MIX(a,b,c); + size -= 12; + k += 3; + } + /*------------------------- handle the last (probably partial) block */ + /* + * "k[2]&0xffffff" actually reads beyond the end of the string, but + * then masks off the part it's not allowed to read. Because the + * string is aligned, the masked-off tail is in the same word as the + * rest of the string. Every machine with memory protection I've seen + * does it on word boundaries, so is OK with this. But VALGRIND will + * still catch it and complain. The masking trick does make the hash + * noticably faster for short strings (like English words). + */ +#ifndef VALGRIND + + switch (size) { + case 12: c += k[2]; b+=k[1]; a+=k[0]; break; + case 11: c += k[2]&0xffffff; b+=k[1]; a+=k[0]; break; + case 10: c += k[2]&0xffff; b+=k[1]; a+=k[0]; break; + case 9: c += k[2]&0xff; b+=k[1]; a+=k[0]; break; + case 8: b += k[1]; a+=k[0]; break; + case 7: b += k[1]&0xffffff; a+=k[0]; break; + case 6: b += k[1]&0xffff; a+=k[0]; break; + case 5: b += k[1]&0xff; a+=k[0]; break; + case 4: a += k[0]; break; + case 3: a += k[0]&0xffffff; break; + case 2: a += k[0]&0xffff; break; + case 1: a += k[0]&0xff; break; + case 0: goto exit; + } + +#else /* make valgrind happy */ + + k8 = (const uint8_t *)k; + switch (size) { + case 12: c += k[2]; b+=k[1]; a+=k[0]; break; + case 11: c += ((uint32_t)k8[10])<<16; /*@fallthrough@*/ + case 10: c += ((uint32_t)k8[9])<<8; /*@fallthrough@*/ + case 9: c += k8[8]; /*@fallthrough@*/ + case 8: b += k[1]; a+=k[0]; break; + case 7: b += ((uint32_t)k8[6])<<16; /*@fallthrough@*/ + case 6: b += ((uint32_t)k8[5])<<8; /*@fallthrough@*/ + case 5: b += k8[4]; /*@fallthrough@*/ + case 4: a += k[0]; break; + case 3: a += ((uint32_t)k8[2])<<16; /*@fallthrough@*/ + case 2: a += ((uint32_t)k8[1])<<8; /*@fallthrough@*/ + case 1: a += k8[0]; break; + case 0: goto exit; + } + +#endif /* !valgrind */ + + } else if (HASH_LITTLE_ENDIAN && ((u.i & 0x1) == 0)) { + const uint16_t *k = (const uint16_t *)key; /* read 16-bit chunks */ + const uint8_t *k8; + + /*----------- all but last block: aligned reads and different mixing */ + while (size > (size_t)12) { + a += k[0] + (((uint32_t)k[1])<<16); + b += k[2] + (((uint32_t)k[3])<<16); + c += k[4] + (((uint32_t)k[5])<<16); + _JLU3_MIX(a,b,c); + size -= 12; + k += 6; + } + + /*------------------------- handle the last (probably partial) block */ + k8 = (const uint8_t *)k; + switch (size) { + case 12: + c += k[4]+(((uint32_t)k[5])<<16); + b += k[2]+(((uint32_t)k[3])<<16); + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 11: + c += ((uint32_t)k8[10])<<16; + /*@fallthrough@*/ + case 10: + c += k[4]; + b += k[2]+(((uint32_t)k[3])<<16); + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 9: + c += k8[8]; + /*@fallthrough@*/ + case 8: + b += k[2]+(((uint32_t)k[3])<<16); + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 7: + b += ((uint32_t)k8[6])<<16; + /*@fallthrough@*/ + case 6: + b += k[2]; + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 5: + b += k8[4]; + /*@fallthrough@*/ + case 4: + a += k[0]+(((uint32_t)k[1])<<16); + break; + case 3: + a += ((uint32_t)k8[2])<<16; + /*@fallthrough@*/ + case 2: + a += k[0]; + break; + case 1: + a += k8[0]; + break; + case 0: + goto exit; + } + + } else { /* need to read the key one byte at a time */ + const uint8_t *k = (const uint8_t *)key; + + /*----------- all but the last block: affect some 32 bits of (a,b,c) */ + while (size > (size_t)12) { + a += k[0]; + a += ((uint32_t)k[1])<<8; + a += ((uint32_t)k[2])<<16; + a += ((uint32_t)k[3])<<24; + b += k[4]; + b += ((uint32_t)k[5])<<8; + b += ((uint32_t)k[6])<<16; + b += ((uint32_t)k[7])<<24; + c += k[8]; + c += ((uint32_t)k[9])<<8; + c += ((uint32_t)k[10])<<16; + c += ((uint32_t)k[11])<<24; + _JLU3_MIX(a,b,c); + size -= 12; + k += 12; + } + + /*---------------------------- last block: affect all 32 bits of (c) */ + switch (size) { + case 12: c += ((uint32_t)k[11])<<24; /*@fallthrough@*/ + case 11: c += ((uint32_t)k[10])<<16; /*@fallthrough@*/ + case 10: c += ((uint32_t)k[9])<<8; /*@fallthrough@*/ + case 9: c += k[8]; /*@fallthrough@*/ + case 8: b += ((uint32_t)k[7])<<24; /*@fallthrough@*/ + case 7: b += ((uint32_t)k[6])<<16; /*@fallthrough@*/ + case 6: b += ((uint32_t)k[5])<<8; /*@fallthrough@*/ + case 5: b += k[4]; /*@fallthrough@*/ + case 4: a += ((uint32_t)k[3])<<24; /*@fallthrough@*/ + case 3: a += ((uint32_t)k[2])<<16; /*@fallthrough@*/ + case 2: a += ((uint32_t)k[1])<<8; /*@fallthrough@*/ + case 1: a += k[0]; + break; + case 0: + goto exit; + } + } + + _JLU3_FINAL(a,b,c); + +exit: + *pc = c; + *pb = b; + return; +} +#endif /* defined(_JLU3_jlu32lpair) */ + +#if defined(_JLU3_jlu32b) +uint32_t jlu32b(uint32_t h, /*@null@*/ const void *key, size_t size) + /*@*/; +/* + * jlu32b(): + * This is the same as jlu32w() on big-endian machines. It is different + * from jlu32l() on all machines. jlu32b() takes advantage of + * big-endian byte ordering. + * + * @param h the previous hash, or an arbitrary value + * @param *k the key, an array of uint8_t values + * @param size the size of the key + * @return the lookup3 hash + */ +uint32_t jlu32b(uint32_t h, const void *key, size_t size) +{ + union { const void *ptr; size_t i; } u; + uint32_t a = _JLU3_INIT(h, size); + uint32_t b = a; + uint32_t c = a; + + if (key == NULL) + return h; + + u.ptr = key; + if (HASH_BIG_ENDIAN && ((u.i & 0x3) == 0)) { + const uint32_t *k = (const uint32_t *)key; /* read 32-bit chunks */ +#ifdef VALGRIND + const uint8_t *k8; +#endif + + /*-- all but last block: aligned reads and affect 32 bits of (a,b,c) */ + while (size > 12) { + a += k[0]; + b += k[1]; + c += k[2]; + _JLU3_MIX(a,b,c); + size -= 12; + k += 3; + } + + /*------------------------- handle the last (probably partial) block */ + /* + * "k[2]<<8" actually reads beyond the end of the string, but + * then shifts out the part it's not allowed to read. Because the + * string is aligned, the illegal read is in the same word as the + * rest of the string. Every machine with memory protection I've seen + * does it on word boundaries, so is OK with this. But VALGRIND will + * still catch it and complain. The masking trick does make the hash + * noticably faster for short strings (like English words). + */ +#ifndef VALGRIND + + switch (size) { + case 12: c += k[2]; b+=k[1]; a+=k[0]; break; + case 11: c += k[2]&0xffffff00; b+=k[1]; a+=k[0]; break; + case 10: c += k[2]&0xffff0000; b+=k[1]; a+=k[0]; break; + case 9: c += k[2]&0xff000000; b+=k[1]; a+=k[0]; break; + case 8: b += k[1]; a+=k[0]; break; + case 7: b += k[1]&0xffffff00; a+=k[0]; break; + case 6: b += k[1]&0xffff0000; a+=k[0]; break; + case 5: b += k[1]&0xff000000; a+=k[0]; break; + case 4: a += k[0]; break; + case 3: a += k[0]&0xffffff00; break; + case 2: a += k[0]&0xffff0000; break; + case 1: a += k[0]&0xff000000; break; + case 0: goto exit; + } + +#else /* make valgrind happy */ + + k8 = (const uint8_t *)k; + switch (size) { /* all the case statements fall through */ + case 12: c += k[2]; b+=k[1]; a+=k[0]; break; + case 11: c += ((uint32_t)k8[10])<<8; /*@fallthrough@*/ + case 10: c += ((uint32_t)k8[9])<<16; /*@fallthrough@*/ + case 9: c += ((uint32_t)k8[8])<<24; /*@fallthrough@*/ + case 8: b += k[1]; a+=k[0]; break; + case 7: b += ((uint32_t)k8[6])<<8; /*@fallthrough@*/ + case 6: b += ((uint32_t)k8[5])<<16; /*@fallthrough@*/ + case 5: b += ((uint32_t)k8[4])<<24; /*@fallthrough@*/ + case 4: a += k[0]; break; + case 3: a += ((uint32_t)k8[2])<<8; /*@fallthrough@*/ + case 2: a += ((uint32_t)k8[1])<<16; /*@fallthrough@*/ + case 1: a += ((uint32_t)k8[0])<<24; break; + case 0: goto exit; + } + +#endif /* !VALGRIND */ + + } else { /* need to read the key one byte at a time */ + const uint8_t *k = (const uint8_t *)key; + + /*----------- all but the last block: affect some 32 bits of (a,b,c) */ + while (size > 12) { + a += ((uint32_t)k[0])<<24; + a += ((uint32_t)k[1])<<16; + a += ((uint32_t)k[2])<<8; + a += ((uint32_t)k[3]); + b += ((uint32_t)k[4])<<24; + b += ((uint32_t)k[5])<<16; + b += ((uint32_t)k[6])<<8; + b += ((uint32_t)k[7]); + c += ((uint32_t)k[8])<<24; + c += ((uint32_t)k[9])<<16; + c += ((uint32_t)k[10])<<8; + c += ((uint32_t)k[11]); + _JLU3_MIX(a,b,c); + size -= 12; + k += 12; + } + + /*---------------------------- last block: affect all 32 bits of (c) */ + switch (size) { /* all the case statements fall through */ + case 12: c += k[11]; /*@fallthrough@*/ + case 11: c += ((uint32_t)k[10])<<8; /*@fallthrough@*/ + case 10: c += ((uint32_t)k[9])<<16; /*@fallthrough@*/ + case 9: c += ((uint32_t)k[8])<<24; /*@fallthrough@*/ + case 8: b += k[7]; /*@fallthrough@*/ + case 7: b += ((uint32_t)k[6])<<8; /*@fallthrough@*/ + case 6: b += ((uint32_t)k[5])<<16; /*@fallthrough@*/ + case 5: b += ((uint32_t)k[4])<<24; /*@fallthrough@*/ + case 4: a += k[3]; /*@fallthrough@*/ + case 3: a += ((uint32_t)k[2])<<8; /*@fallthrough@*/ + case 2: a += ((uint32_t)k[1])<<16; /*@fallthrough@*/ + case 1: a += ((uint32_t)k[0])<<24; /*@fallthrough@*/ + break; + case 0: + goto exit; + } + } + + _JLU3_FINAL(a,b,c); + +exit: + return c; +} +#endif /* defined(_JLU3_jlu32b) */ + +#if defined(_JLU3_SELFTEST) + +/* used for timings */ +static void driver1(void) + /*@*/ +{ + uint8_t buf[256]; + uint32_t i; + uint32_t h=0; + time_t a,z; + + time(&a); + for (i=0; i<256; ++i) buf[i] = 'x'; + for (i=0; i<1; ++i) { + h = jlu32l(h, &buf[0], sizeof(buf[0])); + } + time(&z); + if (z-a > 0) printf("time %d %.8x\n", (int)(z-a), h); +} + +/* check that every input bit changes every output bit half the time */ +#define HASHSTATE 1 +#define HASHLEN 1 +#define MAXPAIR 60 +#define MAXLEN 70 +static void driver2(void) + /*@*/ +{ + uint8_t qa[MAXLEN+1], qb[MAXLEN+2], *a = &qa[0], *b = &qb[1]; + uint32_t c[HASHSTATE], d[HASHSTATE], i=0, j=0, k, l, m=0, z; + uint32_t e[HASHSTATE],f[HASHSTATE],g[HASHSTATE],h[HASHSTATE]; + uint32_t x[HASHSTATE],y[HASHSTATE]; + uint32_t hlen; + + printf("No more than %d trials should ever be needed \n",MAXPAIR/2); + for (hlen=0; hlen < MAXLEN; ++hlen) { + z=0; + for (i=0; i<hlen; ++i) { /*-------------- for each input byte, */ + for (j=0; j<8; ++j) { /*--------------- for each input bit, */ + for (m=1; m<8; ++m) { /*--- for serveral possible initvals, */ + for (l=0; l<HASHSTATE; ++l) + e[l]=f[l]=g[l]=h[l]=x[l]=y[l]=~((uint32_t)0); + + /* check that every output bit is affected by that input bit */ + for (k=0; k<MAXPAIR; k+=2) { + uint32_t finished=1; + /* keys have one bit different */ + for (l=0; l<hlen+1; ++l) {a[l] = b[l] = (uint8_t)0;} + /* have a and b be two keys differing in only one bit */ + a[i] ^= (k<<j); + a[i] ^= (k>>(8-j)); + c[0] = jlu32l(m, a, hlen); + b[i] ^= ((k+1)<<j); + b[i] ^= ((k+1)>>(8-j)); + d[0] = jlu32l(m, b, hlen); + /* check every bit is 1, 0, set, and not set at least once */ + for (l=0; l<HASHSTATE; ++l) { + e[l] &= (c[l]^d[l]); + f[l] &= ~(c[l]^d[l]); + g[l] &= c[l]; + h[l] &= ~c[l]; + x[l] &= d[l]; + y[l] &= ~d[l]; + if (e[l]|f[l]|g[l]|h[l]|x[l]|y[l]) finished=0; + } + if (finished) break; + } + if (k>z) z=k; + if (k == MAXPAIR) { + printf("Some bit didn't change: "); + printf("%.8x %.8x %.8x %.8x %.8x %.8x ", + e[0],f[0],g[0],h[0],x[0],y[0]); + printf("i %d j %d m %d len %d\n", i, j, m, hlen); + } + if (z == MAXPAIR) goto done; + } + } + } + done: + if (z < MAXPAIR) { + printf("Mix success %2d bytes %2d initvals ",i,m); + printf("required %d trials\n", z/2); + } + } + printf("\n"); +} + +/* Check for reading beyond the end of the buffer and alignment problems */ +static void driver3(void) + /*@*/ +{ + uint8_t buf[MAXLEN+20], *b; + uint32_t len; + uint8_t q[] = "This is the time for all good men to come to the aid of their country..."; + uint32_t h; + uint8_t qq[] = "xThis is the time for all good men to come to the aid of their country..."; + uint32_t i; + uint8_t qqq[] = "xxThis is the time for all good men to come to the aid of their country..."; + uint32_t j; + uint8_t qqqq[] = "xxxThis is the time for all good men to come to the aid of their country..."; + uint32_t ref,x,y; + uint8_t *p; + uint32_t m = 13; + + printf("Endianness. These lines should all be the same (for values filled in):\n"); + printf("%.8x %.8x %.8x\n", + jlu32w(m, (const uint32_t *)q, (sizeof(q)-1)/4), + jlu32w(m, (const uint32_t *)q, (sizeof(q)-5)/4), + jlu32w(m, (const uint32_t *)q, (sizeof(q)-9)/4)); + p = q; + printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n", + jlu32l(m, p, sizeof(q)-1), jlu32l(m, p, sizeof(q)-2), + jlu32l(m, p, sizeof(q)-3), jlu32l(m, p, sizeof(q)-4), + jlu32l(m, p, sizeof(q)-5), jlu32l(m, p, sizeof(q)-6), + jlu32l(m, p, sizeof(q)-7), jlu32l(m, p, sizeof(q)-8), + jlu32l(m, p, sizeof(q)-9), jlu32l(m, p, sizeof(q)-10), + jlu32l(m, p, sizeof(q)-11), jlu32l(m, p, sizeof(q)-12)); + p = &qq[1]; + printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n", + jlu32l(m, p, sizeof(q)-1), jlu32l(m, p, sizeof(q)-2), + jlu32l(m, p, sizeof(q)-3), jlu32l(m, p, sizeof(q)-4), + jlu32l(m, p, sizeof(q)-5), jlu32l(m, p, sizeof(q)-6), + jlu32l(m, p, sizeof(q)-7), jlu32l(m, p, sizeof(q)-8), + jlu32l(m, p, sizeof(q)-9), jlu32l(m, p, sizeof(q)-10), + jlu32l(m, p, sizeof(q)-11), jlu32l(m, p, sizeof(q)-12)); + p = &qqq[2]; + printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n", + jlu32l(m, p, sizeof(q)-1), jlu32l(m, p, sizeof(q)-2), + jlu32l(m, p, sizeof(q)-3), jlu32l(m, p, sizeof(q)-4), + jlu32l(m, p, sizeof(q)-5), jlu32l(m, p, sizeof(q)-6), + jlu32l(m, p, sizeof(q)-7), jlu32l(m, p, sizeof(q)-8), + jlu32l(m, p, sizeof(q)-9), jlu32l(m, p, sizeof(q)-10), + jlu32l(m, p, sizeof(q)-11), jlu32l(m, p, sizeof(q)-12)); + p = &qqqq[3]; + printf("%.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x %.8x\n", + jlu32l(m, p, sizeof(q)-1), jlu32l(m, p, sizeof(q)-2), + jlu32l(m, p, sizeof(q)-3), jlu32l(m, p, sizeof(q)-4), + jlu32l(m, p, sizeof(q)-5), jlu32l(m, p, sizeof(q)-6), + jlu32l(m, p, sizeof(q)-7), jlu32l(m, p, sizeof(q)-8), + jlu32l(m, p, sizeof(q)-9), jlu32l(m, p, sizeof(q)-10), + jlu32l(m, p, sizeof(q)-11), jlu32l(m, p, sizeof(q)-12)); + printf("\n"); + for (h=0, b=buf+1; h<8; ++h, ++b) { + for (i=0; i<MAXLEN; ++i) { + len = i; + for (j=0; j<i; ++j) + *(b+j)=0; + + /* these should all be equal */ + m = 1; + ref = jlu32l(m, b, len); + *(b+i)=(uint8_t)~0; + *(b-1)=(uint8_t)~0; + x = jlu32l(m, b, len); + y = jlu32l(m, b, len); + if ((ref != x) || (ref != y)) + printf("alignment error: %.8x %.8x %.8x %d %d\n",ref,x,y, h, i); + } + } +} + +/* check for problems with nulls */ +static void driver4(void) + /*@*/ +{ + uint8_t buf[1]; + uint32_t h; + uint32_t i; + uint32_t state[HASHSTATE]; + + buf[0] = ~0; + for (i=0; i<HASHSTATE; ++i) + state[i] = 1; + printf("These should all be different\n"); + h = 0; + for (i=0; i<8; ++i) { + h = jlu32l(h, buf, 0); + printf("%2ld 0-byte strings, hash is %.8x\n", (long)i, h); + } +} + + +int main(int argc, char ** argv) +{ + driver1(); /* test that the key is hashed: used for timings */ + driver2(); /* test that whole key is hashed thoroughly */ + driver3(); /* test that nothing but the key is hashed */ + driver4(); /* test hashing multiple buffers (all buffers are null) */ + return 1; +} + +#endif /* _JLU3_SELFTEST */
diff --git a/popt-1.16/ltmain.sh b/popt-1.16/ltmain.sh new file mode 100755 index 0000000..6939dcc --- /dev/null +++ b/popt-1.16/ltmain.sh
@@ -0,0 +1,8406 @@ +# Generated from ltmain.m4sh. + +# ltmain.sh (GNU libtool) 2.2.6 +# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print informational messages (default) +# --version print version information +# -h, --help print short or long help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.2.6 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to <bug-libtool@gnu.org>. + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=2.2.6 +TIMESTAMP="" +package_revision=1.3012 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs 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 +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# NLS nuisances: We save the old values to restore during execute mode. +# Only set LANG and LC_ALL to C if already set. +# These must not be set unconditionally because not all systems understand +# e.g. LANG=C (notably SCO). +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done + +$lt_unset CDPATH + + + + + +: ${CP="cp -f"} +: ${ECHO="echo"} +: ${EGREP="/bin/grep -E"} +: ${FGREP="/bin/grep -F"} +: ${GREP="/bin/grep"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SED="/bin/sed"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +# Generated shell functions inserted here. + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# The name of this program: +# In the unlikely event $progname began with a '-', it would play havoc with +# func_echo (imagine progname=-n), so we prepend ./ in that case: +func_dirname_and_basename "$progpath" +progname=$func_basename_result +case $progname in + -*) progname=./$progname ;; +esac + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=: + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname${mode+: }$mode: $*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` + done + my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "X$my_tmpdir" | $Xsed +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "X$1" | $Xsed \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + + + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $SED -n '/^# Usage:/,/# -h/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + $ECHO + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help +# Echo long help message to standard output and exit. +func_help () +{ + $SED -n '/^# Usage:/,/# Report bugs to/ { + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + p + }' < "$progpath" + exit $? +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + func_error "missing argument for $1" + exit_cmd=exit +} + +exit_cmd=: + + + + + +# Check that we have a working $ECHO. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell, and then maybe $ECHO will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<EOF +$* +EOF + exit $EXIT_SUCCESS +fi + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +# $mode is unset +nonopt= +execute_dlfiles= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +opt_dry_run=false +opt_duplicate_deps=false +opt_silent=false +opt_debug=: + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + $ECHO "host: $host" + if test "$build_libtool_libs" = yes; then + $ECHO "enable shared libraries" + else + $ECHO "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + $ECHO "enable static libraries" + else + $ECHO "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# Parse options once, thoroughly. This comes as soon as possible in +# the script to make things like `libtool --version' happen quickly. +{ + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + esac + + # Parse non-mode specific arguments: + while test "$#" -gt 0; do + opt="$1" + shift + + case $opt in + --config) func_config ;; + + --debug) preserve_args="$preserve_args $opt" + func_echo "enabling shell trace mode" + opt_debug='set -x' + $opt_debug + ;; + + -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break + execute_dlfiles="$execute_dlfiles $1" + shift + ;; + + --dry-run | -n) opt_dry_run=: ;; + --features) func_features ;; + --finish) mode="finish" ;; + + --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break + case $1 in + # Valid mode arguments: + clean) ;; + compile) ;; + execute) ;; + finish) ;; + install) ;; + link) ;; + relink) ;; + uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; + esac + + mode="$1" + shift + ;; + + --preserve-dup-deps) + opt_duplicate_deps=: ;; + + --quiet|--silent) preserve_args="$preserve_args $opt" + opt_silent=: + ;; + + --verbose| -v) preserve_args="$preserve_args $opt" + opt_silent=false + ;; + + --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break + preserve_args="$preserve_args $opt $1" + func_enable_tag "$1" # tagname is set here + shift + ;; + + # Separate optargs to long options: + -dlopen=*|--mode=*|--tag=*) + func_opt_split "$opt" + set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + shift + ;; + + -\?|-h) func_usage ;; + --help) opt_help=: ;; + --version) func_version ;; + + -*) func_fatal_help "unrecognized option \`$opt'" ;; + + *) nonopt="$opt" + break + ;; + esac + done + + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + ;; + esac + + # Having warned about all mis-specified options, bail out if + # anything was wrong. + $exit_cmd $EXIT_FAILURE +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +## ----------- ## +## Main. ## +## ----------- ## + +$opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + test -z "$mode" && func_fatal_error "error: you must specify a MODE." + + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$mode' for more information." +} + + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_ltwrapper_scriptname_result="" + if func_ltwrapper_executable_p "$1"; then + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" + fi +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_quote_for_eval "$arg" + CC_quoted="$CC_quoted $func_quote_for_eval_result" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_quote_for_eval "$arg" + CC_quoted="$CC_quoted $func_quote_for_eval_result" + done + case "$@ " in + " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T <<EOF +# $write_libobj - a libtool object file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object=$write_lobj + +# Name of the non-PIC object +non_pic_object=$write_oldobj + +EOF + $MV "${write_libobj}T" "${write_libobj}" + } +} + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + pie_flag="$pie_flag $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_quote_for_eval "$arg" + lastarg="$lastarg $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_quote_for_eval "$lastarg" + base_compile="$base_compile $func_quote_for_eval_result" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.obj | *.sx) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + removelist="$removelist $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + removelist="$removelist $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + command="$command -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + command="$command -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + command="$command$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { +test "$mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$mode'" + ;; + esac + + $ECHO + $ECHO "Try \`$progname --help' for more information about other modes." + + exit $? +} + + # Now that we've collected a possible --mode arg, show help if necessary + $opt_help && func_mode_help + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_quote_for_eval "$file" + args="$args $func_quote_for_eval_result" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + $ECHO "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + $ECHO "X----------------------------------------------------------------------" | $Xsed + $ECHO "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + $ECHO + $ECHO "If you ever happen to want to link against installed libraries" + $ECHO "in a given directory, LIBDIR, you must either use libtool, and" + $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" + $ECHO "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" + $ECHO " during execution" + fi + if test -n "$runpath_var"; then + $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" + $ECHO " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + $ECHO + + $ECHO "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" + $ECHO "pages." + ;; + *) + $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + $ECHO "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS +} + +test "$mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + $ECHO "X$nonopt" | $GREP shtool >/dev/null; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + install_prog="$install_prog$func_quote_for_eval_result" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + install_prog="$install_prog $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_verbose "extracting global C symbols from \`$progfile'" + $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 </dev/null >/dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + $ECHO >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +" + case $host in + *cygwin* | *mingw* | *cegcc* ) + $ECHO >> "$output_objdir/$my_dlsyms" "\ +/* DATA imports from DLLs on WIN32 con't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs. */" + lt_dlsym_const= ;; + *osf5*) + echo >> "$output_objdir/$my_dlsyms" "\ +/* This system does not cope well with relocations in const data */" + lt_dlsym_const= ;; + *) + lt_dlsym_const=const ;; + esac + + $ECHO >> "$output_objdir/$my_dlsyms" "\ +extern $lt_dlsym_const lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +$lt_dlsym_const lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + $ECHO >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) symtab_cflags="$symtab_cflags $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + + +# func_emit_wrapper_part1 [arg=no] +# +# Emit the first part of a libtool wrapper script on stdout. +# For more information, see the description associated with +# func_emit_wrapper(), below. +func_emit_wrapper_part1 () +{ + func_emit_wrapper_part1_arg1=no + if test -n "$1" ; then + func_emit_wrapper_part1_arg1=$1 + fi + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='${SED} -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs 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 +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + ECHO=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$ECHO works! + : + else + # Restart under the correct shell, and then maybe \$ECHO will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $ECHO "\ + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done +" +} +# end: func_emit_wrapper_part1 + +# func_emit_wrapper_part2 [arg=no] +# +# Emit the second part of a libtool wrapper script on stdout. +# For more information, see the description associated with +# func_emit_wrapper(), below. +func_emit_wrapper_part2 () +{ + func_emit_wrapper_part2_arg1=no + if test -n "$1" ; then + func_emit_wrapper_part2_arg1=$1 + fi + + $ECHO "\ + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} +# end: func_emit_wrapper_part2 + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=no + if test -n "$1" ; then + func_emit_wrapper_arg1=$1 + fi + + # split this up so that func_emit_cwrapperexe_src + # can call each part independently. + func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" + func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" +} + + +# func_to_host_path arg +# +# Convert paths to host format when used with build tools. +# Intended for use with "native" mingw (where libtool itself +# is running under the msys shell), or in the following cross- +# build environments: +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# where wine is equipped with the `winepath' executable. +# In the native mingw case, the (msys) shell automatically +# converts paths for any non-msys applications it launches, +# but that facility isn't available from inside the cwrapper. +# Similar accommodations are necessary for $host mingw and +# $build cygwin. Calling this function does no harm for other +# $host/$build combinations not listed above. +# +# ARG is the path (on $build) that should be converted to +# the proper representation for $host. The result is stored +# in $func_to_host_path_result. +func_to_host_path () +{ + func_to_host_path_result="$1" + if test -n "$1" ; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + case $build in + *mingw* ) # actually, msys + # awkward: cmd appends spaces to result + lt_sed_strip_trailing_spaces="s/[ ]*\$//" + func_to_host_path_tmp1=`( cmd //c echo "$1" |\ + $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_path_tmp1=`cygpath -w "$1"` + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # Unfortunately, winepath does not exit with a non-zero + # error code, so we are forced to check the contents of + # stdout. On the other hand, if the command is not + # found, the shell will set an exit code of 127 and print + # *an error message* to stdout. So we must check for both + # error code of zero AND non-empty stdout, which explains + # the odd construction: + func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` + if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then + func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ + $SED -e "$lt_sed_naive_backslashify"` + else + # Allow warning below. + func_to_host_path_result="" + fi + ;; + esac + if test -z "$func_to_host_path_result" ; then + func_error "Could not determine host path corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_path_result="$1" + fi + ;; + esac + fi +} +# end: func_to_host_path + +# func_to_host_pathlist arg +# +# Convert pathlists to host format when used with build tools. +# See func_to_host_path(), above. This function supports the +# following $build/$host combinations (but does no harm for +# combinations not listed here): +# $build $host +# mingw (msys) mingw [e.g. native] +# cygwin mingw +# *nix + wine mingw +# +# Path separators are also converted from $build format to +# $host format. If ARG begins or ends with a path separator +# character, it is preserved (but converted to $host format) +# on output. +# +# ARG is a pathlist (on $build) that should be converted to +# the proper representation on $host. The result is stored +# in $func_to_host_pathlist_result. +func_to_host_pathlist () +{ + func_to_host_pathlist_result="$1" + if test -n "$1" ; then + case $host in + *mingw* ) + lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_to_host_pathlist_tmp2="$1" + # Once set for this call, this variable should not be + # reassigned. It is used in tha fallback case. + func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e 's|^:*||' -e 's|:*$||'` + case $build in + *mingw* ) # Actually, msys. + # Awkward: cmd appends spaces to result. + lt_sed_strip_trailing_spaces="s/[ ]*\$//" + func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + *cygwin* ) + func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ + $SED -e "$lt_sed_naive_backslashify"` + ;; + * ) + # unfortunately, winepath doesn't convert pathlists + func_to_host_pathlist_result="" + func_to_host_pathlist_oldIFS=$IFS + IFS=: + for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do + IFS=$func_to_host_pathlist_oldIFS + if test -n "$func_to_host_pathlist_f" ; then + func_to_host_path "$func_to_host_pathlist_f" + if test -n "$func_to_host_path_result" ; then + if test -z "$func_to_host_pathlist_result" ; then + func_to_host_pathlist_result="$func_to_host_path_result" + else + func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" + fi + fi + fi + IFS=: + done + IFS=$func_to_host_pathlist_oldIFS + ;; + esac + if test -z "$func_to_host_pathlist_result" ; then + func_error "Could not determine the host path(s) corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This may break if $1 contains DOS-style drive + # specifications. The fix is not to complicate the expression + # below, but for the user to provide a working wine installation + # with winepath so that path translation in the cross-to-mingw + # case works properly. + lt_replace_pathsep_nix_to_dos="s|:|;|g" + func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ + $SED -e "$lt_replace_pathsep_nix_to_dos"` + fi + # Now, add the leading and trailing path separators back + case "$1" in + :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" + ;; + esac + case "$1" in + *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" + ;; + esac + ;; + esac + fi +} +# end: func_to_host_pathlist + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat <<EOF + +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname + Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION + + The $output program cannot be directly executed until all the libtool + libraries that it depends on are installed. + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. + + Currently, it simply execs the wrapper *script* "$SHELL $output", + but could eventually absorb all of the scripts functionality and + exec $objdir/$outputname directly. +*/ +EOF + cat <<"EOF" +#include <stdio.h> +#include <stdlib.h> +#ifdef _MSC_VER +# include <direct.h> +# include <process.h> +# include <io.h> +# define setmode _setmode +#else +# include <unistd.h> +# include <stdint.h> +# ifdef __CYGWIN__ +# include <io.h> +# define HAVE_SETENV +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +# endif +#endif +#include <malloc.h> +#include <stdarg.h> +#include <assert.h> +#include <string.h> +#include <ctype.h> +#include <errno.h> +#include <fcntl.h> +#include <sys/stat.h> + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +#ifdef _MSC_VER +# define S_IXUSR _S_IEXEC +# define stat _stat +# ifndef _INTPTR_T_DEFINED +# define intptr_t int +# endif +#endif + +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifdef __CYGWIN__ +# define FOPEN_WB "wb" +#endif + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#undef LTWRAPPER_DEBUGPRINTF +#if defined DEBUGWRAPPER +# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args +static void +ltwrapper_debugprintf (const char *fmt, ...) +{ + va_list args; + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); +} +#else +# define LTWRAPPER_DEBUGPRINTF(args) +#endif + +const char *program_name = NULL; + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_fatal (const char *message, ...); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_opt_process_env_set (const char *arg); +void lt_opt_process_env_prepend (const char *arg); +void lt_opt_process_env_append (const char *arg); +int lt_split_name_value (const char *arg, char** name, char** value); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); + +static const char *script_text_part1 = +EOF + + func_emit_wrapper_part1 yes | + $SED -e 's/\([\\"]\)/\\\1/g' \ + -e 's/^/ "/' -e 's/$/\\n"/' + echo ";" + cat <<EOF + +static const char *script_text_part2 = +EOF + func_emit_wrapper_part2 yes | + $SED -e 's/\([\\"]\)/\\\1/g' \ + -e 's/^/ "/' -e 's/$/\\n"/' + echo ";" + + cat <<EOF +const char * MAGIC_EXE = "$magic_exe"; +const char * LIB_PATH_VARNAME = "$shlibpath_var"; +EOF + + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + func_to_host_pathlist "$temp_rpath" + cat <<EOF +const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result"; +EOF + else + cat <<"EOF" +const char * LIB_PATH_VALUE = ""; +EOF + fi + + if test -n "$dllsearchpath"; then + func_to_host_pathlist "$dllsearchpath:" + cat <<EOF +const char * EXE_PATH_VARNAME = "PATH"; +const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result"; +EOF + else + cat <<"EOF" +const char * EXE_PATH_VARNAME = ""; +const char * EXE_PATH_VALUE = ""; +EOF + fi + + if test "$fast_install" = yes; then + cat <<EOF +const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ +EOF + else + cat <<EOF +const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ +EOF + fi + + + cat <<"EOF" + +#define LTWRAPPER_OPTION_PREFIX "--lt-" +#define LTWRAPPER_OPTION_PREFIX_LENGTH 5 + +static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH; +static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; + +static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; + +static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7; +static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set"; + /* argument is putenv-style "foo=bar", value of foo is set to bar */ + +static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11; +static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend"; + /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */ + +static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10; +static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append"; + /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */ + +int +main (int argc, char *argv[]) +{ + char **newargz; + int newargc; + char *tmp_pathspec; + char *actual_cwrapper_path; + char *actual_cwrapper_name; + char *target_name; + char *lt_argv_zero; + intptr_t rval = 127; + + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0])); + LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name)); + + /* very simple arg parsing; don't want to rely on getopt */ + for (i = 1; i < argc; i++) + { + if (strcmp (argv[i], dumpscript_opt) == 0) + { +EOF + case "$host" in + *mingw* | *cygwin* ) + # make stdout use "unix" line endings + echo " setmode(1,_O_BINARY);" + ;; + esac + + cat <<"EOF" + printf ("%s", script_text_part1); + printf ("%s", script_text_part2); + return 0; + } + } + + newargz = XMALLOC (char *, argc + 1); + tmp_pathspec = find_executable (argv[0]); + if (tmp_pathspec == NULL) + lt_fatal ("Couldn't find %s", argv[0]); + LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n", + tmp_pathspec)); + + actual_cwrapper_path = chase_symlinks (tmp_pathspec); + LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n", + actual_cwrapper_path)); + XFREE (tmp_pathspec); + + actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path)); + strendzap (actual_cwrapper_path, actual_cwrapper_name); + + /* wrapper name transforms */ + strendzap (actual_cwrapper_name, ".exe"); + tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); + XFREE (actual_cwrapper_name); + actual_cwrapper_name = tmp_pathspec; + tmp_pathspec = 0; + + /* target_name transforms -- use actual target program name; might have lt- prefix */ + target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); + strendzap (target_name, ".exe"); + tmp_pathspec = lt_extend_str (target_name, ".exe", 1); + XFREE (target_name); + target_name = tmp_pathspec; + tmp_pathspec = 0; + + LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n", + target_name)); +EOF + + cat <<EOF + newargz[0] = + XMALLOC (char, (strlen (actual_cwrapper_path) + + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); + strcpy (newargz[0], actual_cwrapper_path); + strcat (newargz[0], "$objdir"); + strcat (newargz[0], "/"); +EOF + + cat <<"EOF" + /* stop here, and copy so we don't have to do this twice */ + tmp_pathspec = xstrdup (newargz[0]); + + /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ + strcat (newargz[0], actual_cwrapper_name); + + /* DO want the lt- prefix here if it exists, so use target_name */ + lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); + XFREE (tmp_pathspec); + tmp_pathspec = NULL; +EOF + + case $host_os in + mingw*) + cat <<"EOF" + { + char* p; + while ((p = strchr (newargz[0], '\\')) != NULL) + { + *p = '/'; + } + while ((p = strchr (lt_argv_zero, '\\')) != NULL) + { + *p = '/'; + } + } +EOF + ;; + esac + + cat <<"EOF" + XFREE (target_name); + XFREE (actual_cwrapper_path); + XFREE (actual_cwrapper_name); + + lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ + lt_setenv ("DUALCASE", "1"); /* for MSK sh */ + lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); + lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); + + newargc=0; + for (i = 1; i < argc; i++) + { + if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0) + { + if (argv[i][env_set_opt_len] == '=') + { + const char *p = argv[i] + env_set_opt_len + 1; + lt_opt_process_env_set (p); + } + else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc) + { + lt_opt_process_env_set (argv[++i]); /* don't copy */ + } + else + lt_fatal ("%s missing required argument", env_set_opt); + continue; + } + if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0) + { + if (argv[i][env_prepend_opt_len] == '=') + { + const char *p = argv[i] + env_prepend_opt_len + 1; + lt_opt_process_env_prepend (p); + } + else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc) + { + lt_opt_process_env_prepend (argv[++i]); /* don't copy */ + } + else + lt_fatal ("%s missing required argument", env_prepend_opt); + continue; + } + if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0) + { + if (argv[i][env_append_opt_len] == '=') + { + const char *p = argv[i] + env_append_opt_len + 1; + lt_opt_process_env_append (p); + } + else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc) + { + lt_opt_process_env_append (argv[++i]); /* don't copy */ + } + else + lt_fatal ("%s missing required argument", env_append_opt); + continue; + } + if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0) + { + /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX + namespace, but it is not one of the ones we know about and + have already dealt with, above (inluding dump-script), then + report an error. Otherwise, targets might begin to believe + they are allowed to use options in the LTWRAPPER_OPTION_PREFIX + namespace. The first time any user complains about this, we'll + need to make LTWRAPPER_OPTION_PREFIX a configure-time option + or a configure.ac-settable value. + */ + lt_fatal ("Unrecognized option in %s namespace: '%s'", + ltwrapper_option_prefix, argv[i]); + } + /* otherwise ... */ + newargz[++newargc] = xstrdup (argv[i]); + } + newargz[++newargc] = NULL; + + LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>"))); + for (i = 0; i < newargc; i++) + { + LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>"))); + } + +EOF + + case $host_os in + mingw*) + cat <<"EOF" + /* execv doesn't actually work on mingw as expected on unix */ + rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); + if (rval == -1) + { + /* failed to start process */ + LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); + return 127; + } + return rval; +EOF + ;; + *) + cat <<"EOF" + execv (lt_argv_zero, newargz); + return rval; /* =127, but avoids unused variable warning */ +EOF + ;; + esac + + cat <<"EOF" +} + +void * +xmalloc (size_t num) +{ + void *p = (void *) malloc (num); + if (!p) + lt_fatal ("Memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), + string) : NULL; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char) name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable (const char *path) +{ + struct stat st; + + LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", + path ? (*path ? path : "EMPTY!") : "NULL!")); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", + path ? (*path ? path : "EMPTY!") : "NULL!")); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", + wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", + tmp_pathspec)); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + char *errstr = strerror (errno); + lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal ("Could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} + +void +lt_setenv (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", + (name ? name : "<NULL>"), + (value ? value : "<NULL>"))); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +int +lt_split_name_value (const char *arg, char** name, char** value) +{ + const char *p; + int len; + if (!arg || !*arg) + return 1; + + p = strchr (arg, (int)'='); + + if (!p) + return 1; + + *value = xstrdup (++p); + + len = strlen (arg) - strlen (*value); + *name = XMALLOC (char, len); + strncpy (*name, arg, len-1); + (*name)[len - 1] = '\0'; + + return 0; +} + +void +lt_opt_process_env_set (const char *arg) +{ + char *name = NULL; + char *value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); + } + + lt_setenv (name, value); + XFREE (name); + XFREE (value); +} + +void +lt_opt_process_env_prepend (const char *arg) +{ + char *name = NULL; + char *value = NULL; + char *new_value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); + } + + new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + XFREE (name); + XFREE (value); +} + +void +lt_opt_process_env_append (const char *arg) +{ + char *name = NULL; + char *value = NULL; + char *new_value = NULL; + + if (lt_split_name_value (arg, &name, &value) != 0) + { + XFREE (name); + XFREE (value); + lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); + } + + new_value = lt_extend_str (getenv (name), value, 1); + lt_setenv (name, new_value); + XFREE (new_value); + XFREE (name); + XFREE (value); +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + (name ? name : "<NULL>"), + (value ? value : "<NULL>"))); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + (name ? name : "<NULL>"), + (value ? value : "<NULL>"))); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + + +EOF +} +# end: func_emit_cwrapperexe_src + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + weak_libs="$weak_libs $arg" + prev= + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname '-L' '' "$arg" + dir=$func_stripname_result + if test -z "$dir"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot) + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + arg="$arg $wl$func_quote_for_eval_result" + compiler_flags="$compiler_flags $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + arg="$arg $wl$func_quote_for_eval_result" + compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" + linker_flags="$linker_flags $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -F/path gives path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_duplicate_deps ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + case $lib in + *.la) func_source "$lib" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + case " $weak_libs " in + *" $deplib_base "*) ;; + *) deplibs="$deplibs $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + dir=$func_stripname_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $ECHO + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because the file extensions .$libext of this argument makes me believe" + $ECHO "*** that it is just a static archive that I should not use here." + else + $ECHO + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) temp_rpath="$temp_rpath$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + notinst_deplibs="$notinst_deplibs $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + $ECHO + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $ECHO + $ECHO "*** And there doesn't seem to be a static archive available" + $ECHO "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + $ECHO + $ECHO "*** Warning: This system can not link to static lib archive $lib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + $ECHO "*** But as you try to build a module library, libtool will still create " + $ECHO "*** a static module, that should work as long as the dlopening application" + $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + $ECHO + $ECHO "*** However, this would only work if libtool was able to extract symbol" + $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" + $ECHO "*** not find such a program. So, this module is probably useless." + $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_dirname "$deplib" "" "." + dir="$func_dirname_result" + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + $ECHO + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + libobjs="$libobjs $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` + # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` + # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c <<EOF + int main() { return 0; } +EOF + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then + ldd_output=`ldd conftest` + for i in $deplibs; do + case $i in + -l*) + func_stripname -l '' "$i" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + newdeplibs="$newdeplibs $i" + i="" + ;; + esac + fi + if test -n "$i" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + newdeplibs="$newdeplibs $i" + else + droppeddeps=yes + $ECHO + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which I believe you do not have" + $ECHO "*** because a test_compile did reveal that the linker did not use it for" + $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." + fi + fi + ;; + *) + newdeplibs="$newdeplibs $i" + ;; + esac + done + else + # Error occurred in the first compile. Let's try to salvage + # the situation: Compile a separate program for each library. + for i in $deplibs; do + case $i in + -l*) + func_stripname -l '' "$i" + name=$func_stripname_result + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then + ldd_output=`ldd conftest` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + newdeplibs="$newdeplibs $i" + i="" + ;; + esac + fi + if test -n "$i" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + newdeplibs="$newdeplibs $i" + else + droppeddeps=yes + $ECHO + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because a test_compile did reveal that the linker did not use this one" + $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." + fi + fi + else + droppeddeps=yes + $ECHO + $ECHO "*** Warning! Library $i is needed by this library but I was not able to" + $ECHO "*** make it link in! You will probably need to install it or some" + $ECHO "*** library that it depends on before this library will be fully" + $ECHO "*** functional. Installing it before continuing would be even better." + fi + ;; + *) + newdeplibs="$newdeplibs $i" + ;; + esac + done + fi + ;; + file_magic*) + set dummy $deplibs_check_method; shift + file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $ECHO + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $ECHO + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ + -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + done + fi + if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | + $GREP . >/dev/null; then + $ECHO + if test "X$deplibs_check_method" = "Xnone"; then + $ECHO "*** Warning: inter-library dependencies are not supported in this platform." + else + $ECHO "*** Warning: inter-library dependencies are not known to be supported." + fi + $ECHO "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + fi + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + $ECHO + $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + $ECHO "*** a static module, that should work as long as the dlopening" + $ECHO "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + $ECHO + $ECHO "*** However, this would only work if libtool was able to extract symbol" + $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" + $ECHO "*** not find such a program. So, this module is probably useless." + $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + $ECHO "*** The inter-library dependencies that have been dropped here will be" + $ECHO "*** automatically added whenever a program is linked with this library" + $ECHO "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + $ECHO + $ECHO "*** Since this library must not contain undefined symbols," + $ECHO "*** because either the platform does not support them or" + $ECHO "*** it was explicitly requested with -no-undefined," + $ECHO "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then + eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + delfiles="$delfiles $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + func_len " $cmd" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + $ECHO 'INPUT (' > $output + for obj in $save_libobjs + do + $ECHO "$obj" >> $output + done + $ECHO ')' >> $output + delfiles="$delfiles $output" + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + $ECHO "$obj" >> $output + done + delfiles="$delfiles $output" + output=$firstobj\"$file_list_spec$output\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=$obj + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + delfiles="$delfiles $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles + libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *cegcc) + # Disable wrappers for cegcc, we are cross compiling anyway. + wrappers_required=no + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + fi + + # Quote $ECHO for shipping. + if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; + esac + qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` + else + qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + oldobjs="$oldobjs $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $ECHO "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + oldobjs="$oldobjs $gentop/$newobj" + ;; + *) oldobjs="$oldobjs $obj" ;; + esac + done + fi + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + newdlfiles="$newdlfiles $libdir/$name" + ;; + *) newdlfiles="$newdlfiles $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + newdlprefiles="$newdlprefiles $libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$mode" = link || test "$mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) RM="$RM $arg"; rmforce=yes ;; + -*) RM="$RM $arg" ;; + *) files="$files $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + origobjdir="$objdir" + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test "$mode" = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + rmfiles="$rmfiles $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$mode" = uninstall || test "$mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 +
diff --git a/popt-1.16/m4/Makefile.in b/popt-1.16/m4/Makefile.in new file mode 100644 index 0000000..4fc2d2c --- /dev/null +++ b/popt-1.16/m4/Makefile.in
@@ -0,0 +1,385 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +subdir = m4 +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +LT_AGE = @LT_AGE@ +LT_CURRENT = @LT_CURRENT@ +LT_REVISION = @LT_REVISION@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +POPT_PKGCONFIG_LIBS = @POPT_PKGCONFIG_LIBS@ +POPT_SOURCE_PATH = @POPT_SOURCE_PATH@ +POSUB = @POSUB@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TARGET = @TARGET@ +U = @U@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4 gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4 gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4 codeset.m4 glibc2.m4 glibc21.m4 intdiv0.m4 intl.m4 intldir.m4 intlmacosx.m4 intmax.m4 inttypes_h.m4 inttypes-pri.m4 lcmessage.m4 lock.m4 longlong.m4 printf-posix.m4 size_max.m4 stdint_h.m4 uintmax_t.m4 visibility.m4 wchar_t.m4 wint_t.m4 xsize.m4 +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign m4/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign m4/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT:
diff --git a/popt-1.16/m4/gettext.m4 b/popt-1.16/m4/gettext.m4 new file mode 100644 index 0000000..c9ae1f7 --- /dev/null +++ b/popt-1.16/m4/gettext.m4
@@ -0,0 +1,381 @@ +# gettext.m4 serial 60 (gettext-0.17) +dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The +dnl default (if it is not specified or empty) is 'no-libtool'. +dnl INTLSYMBOL should be 'external' for packages with no intl directory, +dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. +dnl If INTLSYMBOL is 'use-libtool', then a libtool library +dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library +dnl $(top_builddir)/intl/libintl.a will be created. +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value `$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_included_intl], + ifelse([$1], [external], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) + define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + ifelse(gt_included_intl, yes, [ + AC_REQUIRE([AM_INTL_SUBDIR])dnl + ]) + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not + dnl documented, we avoid it. + ifelse(gt_included_intl, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + ifelse(gt_included_intl, yes, [ + BUILD_INCLUDED_LIBINTL=no + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + ifelse(gt_included_intl, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH(included-gettext, + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings;], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + ifelse(gt_included_intl, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include <libintl.h> +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *);], + [bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + ifelse(gt_included_intl, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + BUILD_INCLUDED_LIBINTL=yes + USE_INCLUDED_LIBINTL=yes + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE(ENABLE_NLS, 1, + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE(HAVE_GETTEXT, 1, + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE(HAVE_DCGETTEXT, 1, + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + ifelse(gt_included_intl, yes, [ + dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL + dnl to 'yes' because some of the testsuite requires it. + if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then + BUILD_INCLUDED_LIBINTL=yes + fi + + dnl Make all variables we use known to autoconf. + AC_SUBST(BUILD_INCLUDED_LIBINTL) + AC_SUBST(USE_INCLUDED_LIBINTL) + AC_SUBST(CATOBJEXT) + + dnl For backward compatibility. Some configure.ins may be using this. + nls_cv_header_intl= + nls_cv_header_libgt= + + dnl For backward compatibility. Some Makefiles may be using this. + DATADIRNAME=share + AC_SUBST(DATADIRNAME) + + dnl For backward compatibility. Some Makefiles may be using this. + INSTOBJEXT=.mo + AC_SUBST(INSTOBJEXT) + + dnl For backward compatibility. Some Makefiles may be using this. + GENCAT=gencat + AC_SUBST(GENCAT) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLOBJS= + if test "$USE_INCLUDED_LIBINTL" = yes; then + INTLOBJS="\$(GETTOBJS)" + fi + AC_SUBST(INTLOBJS) + + dnl Enable libtool support if the surrounding package wishes it. + INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix + AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) + ]) + + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST(INTLLIBS) + + dnl Make all documented variables known to autoconf. + AC_SUBST(LIBINTL) + AC_SUBST(LTLIBINTL) + AC_SUBST(POSUB) +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
diff --git a/popt-1.16/m4/iconv.m4 b/popt-1.16/m4/iconv.m4 new file mode 100644 index 0000000..66bc76f --- /dev/null +++ b/popt-1.16/m4/iconv.m4
@@ -0,0 +1,180 @@ +# iconv.m4 serial AM6 (gettext-0.17) +dnl Copyright (C) 2000-2002, 2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], am_cv_func_iconv, [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_TRY_LINK([#include <stdlib.h> +#include <iconv.h>], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_func_iconv=yes) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_TRY_LINK([#include <stdlib.h> +#include <iconv.h>], + [iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);], + am_cv_lib_iconv=yes + am_cv_func_iconv=yes) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [ + dnl This tests against bugs in AIX 5.1 and HP-UX 11.11. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + AC_TRY_RUN([ +#include <iconv.h> +#include <string.h> +int main () +{ + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + return 1; + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + return 1; + return 0; +}], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE(HAVE_ICONV, 1, + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST(LIBICONV) + AC_SUBST(LTLIBICONV) +]) + +AC_DEFUN([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_MSG_CHECKING([for iconv declaration]) + AC_CACHE_VAL(am_cv_proto_iconv, [ + AC_TRY_COMPILE([ +#include <stdlib.h> +#include <iconv.h> +extern +#ifdef __cplusplus +"C" +#endif +#if defined(__STDC__) || defined(__cplusplus) +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); +#else +size_t iconv(); +#endif +], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") + am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) + am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` + AC_MSG_RESULT([$]{ac_t:- + }[$]am_cv_proto_iconv) + AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, + [Define as const if the declaration of iconv() needs const.]) + fi +])
diff --git a/popt-1.16/m4/lib-ld.m4 b/popt-1.16/m4/lib-ld.m4 new file mode 100644 index 0000000..96c4e2c --- /dev/null +++ b/popt-1.16/m4/lib-ld.m4
@@ -0,0 +1,110 @@ +# lib-ld.m4 serial 3 (gettext-0.13) +dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision +dnl with libtool.m4. + +dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + acl_cv_prog_gnu_ld=yes ;; +*) + acl_cv_prog_gnu_ld=no ;; +esac]) +with_gnu_ld=$acl_cv_prog_gnu_ld +]) + +dnl From libtool-1.4. Sets the variable LD. +AC_DEFUN([AC_LIB_PROG_LD], +[AC_ARG_WITH(gnu-ld, +[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], +test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(acl_cv_path_LD, +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +])
diff --git a/popt-1.16/m4/lib-link.m4 b/popt-1.16/m4/lib-link.m4 new file mode 100644 index 0000000..e3d26fc --- /dev/null +++ b/popt-1.16/m4/lib-link.m4
@@ -0,0 +1,709 @@ +# lib-link.m4 serial 13 (gettext-0.17) +dnl Copyright (C) 2001-2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_PREREQ(2.54) + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + undefine([Name]) + undefine([NAME]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. If found, it +dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and +dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + define([Name],[translit([$1],[./-], [___])]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + LIBS="$LIBS $LIB[]NAME" + AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + LIB[]NAME[]_PREFIX= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + undefine([Name]) + undefine([NAME]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl acl_libext, +dnl acl_shlibext, +dnl acl_hardcode_libdir_flag_spec, +dnl acl_hardcode_libdir_separator, +dnl acl_hardcode_direct, +dnl acl_hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + dnl Tell automake >= 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE(rpath, + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + dnl Autoconf >= 2.61 supports dots in --with options. + define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix], +[ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib + --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + LIB[]NAME[]_PREFIX="$basedir" + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +])
diff --git a/popt-1.16/m4/lib-prefix.m4 b/popt-1.16/m4/lib-prefix.m4 new file mode 100644 index 0000000..a8684e1 --- /dev/null +++ b/popt-1.16/m4/lib-prefix.m4
@@ -0,0 +1,185 @@ +# lib-prefix.m4 serial 5 (gettext-0.15) +dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing +dnl the basename of the libdir, either "lib" or "lib64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. The current + dnl practice is that on a system supporting 32-bit and 64-bit instruction + dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit + dnl libraries go under $prefix/lib. We determine the compiler's default + dnl mode by looking at the compiler's library search path. If at least + dnl of its elements ends in /lib64 or points to a directory whose absolute + dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the + dnl default, namely "lib". + acl_libdirstem=lib + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi +])
diff --git a/popt-1.16/m4/libtool.m4 b/popt-1.16/m4/libtool.m4 new file mode 100644 index 0000000..671cde1 --- /dev/null +++ b/popt-1.16/m4/libtool.m4
@@ -0,0 +1,7360 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool 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. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 56 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl +_LT_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\[$]0 --fallback-echo"')dnl " + lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\` + ;; +esac + +_LT_OUTPUT_LIBTOOL_INIT +]) + + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +cat >"$CONFIG_LT" <<_LTEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate a libtool stub with the current configuration. + +lt_cl_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AS_SHELL_SANITIZE +_AS_PREPARE + +exec AS_MESSAGE_FD>&1 +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to <bug-libtool@gnu.org>." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +if test "$no_create" != yes; then + lt_cl_success=: + test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" + exec AS_MESSAGE_LOG_FD>/dev/null + $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false + exec AS_MESSAGE_LOG_FD>>config.log + $lt_cl_success || AS_EXIT(1) +fi +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_XSI_SHELLFNS + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES +# -------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX +# ----------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_SHELL_INIT + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[_LT_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +[$]* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(lt_ECHO) +]) +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], + [An echo program that does not interpret backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[AC_CHECK_TOOL(AR, ar, false) +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1]) + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line __oline__ "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include <dlfcn.h> +#endif + +#include <stdio.h> + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib<name>.so + # instead of lib<name>.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[[3-9]]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Add ABI-specific directories to the system library path. + sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break + ;; + *) + test "$with_gnu_ld" != yes && break + ;; + esac + fi + done + IFS="$lt_save_ifs" +else + lt_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$lt_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT($LD) +else + AC_MSG_RESULT(no) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +_LT_PATH_LD_GNU +AC_SUBST([LD]) + +_LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) +])# LT_PATH_LD + +# Old names: +AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) +AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_LD], []) +dnl AC_DEFUN([AC_PROG_LD], []) + + +# _LT_PATH_LD_GNU +#- -------------- +m4_defun([_LT_PATH_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 </dev/null` in +*GNU* | *'with BFD'*) + lt_cv_prog_gnu_ld=yes + ;; +*) + lt_cv_prog_gnu_ld=no + ;; +esac]) +with_gnu_ld=$lt_cv_prog_gnu_ld +])# _LT_PATH_LD_GNU + + +# _LT_CMD_RELOAD +# -------------- +# find reload flag for linker +# -- PORTME Some linkers may need a different reload flag. +m4_defun([_LT_CMD_RELOAD], +[AC_CACHE_CHECK([for $LD option to reload object files], + lt_cv_ld_reload_flag, + [lt_cv_ld_reload_flag='-r']) +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac +_LT_DECL([], [reload_flag], [1], [How to create reloadable object files])dnl +_LT_DECL([], [reload_cmds], [2])dnl +])# _LT_CMD_RELOAD + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method == "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + AC_CHECK_TOOLS(DUMPBIN, ["dumpbin -symbols" "link -dump -symbols"], :) + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:__oline__: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:__oline__: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac +AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE(int foo(void) {}, + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + ) + LDFLAGS="$save_LDFLAGS" + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + AC_MSG_RESULT([$_LT_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], + [[If ld is used when linking, flag to hardcode $libdir into a binary + during linking. This must work even if $libdir does not exist]]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [fix_srcfile_path], [1], + [Fix the shell variable $srcfile for the compiler]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_PROG_CXX +# ------------ +# Since AC_PROG_CXX is broken, in that it returns g++ if there is no c++ +# compiler, we have our own version here. +m4_defun([_LT_PROG_CXX], +[ +pushdef([AC_MSG_ERROR], [_lt_caught_CXX_error=yes]) +AC_PROG_CXX +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_CXX + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_CXX], []) + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[AC_REQUIRE([_LT_PROG_CXX])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach <jrb3@best.com> says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + gnu*) + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]]* | *pgcpp\ [[1-5]]*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +]) +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_PROG_F77 +# ------------ +# Since AC_PROG_F77 is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_F77], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_F77=yes]) +AC_PROG_F77 +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_F77 + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_F77], []) + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_REQUIRE([_LT_PROG_F77])dnl +AC_LANG_PUSH(Fortran 77) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${F77-"f77"} + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_PROG_FC +# ----------- +# Since AC_PROG_FC is broken, in that it returns the empty string +# if there is no fortran compiler, we have our own version here. +m4_defun([_LT_PROG_FC], +[ +pushdef([AC_MSG_ERROR], [_lt_disable_FC=yes]) +AC_PROG_FC +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi +popdef([AC_MSG_ERROR]) +])# _LT_PROG_FC + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([_LT_PROG_FC], []) + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_REQUIRE([_LT_PROG_FC])dnl +AC_LANG_PUSH(Fortran) + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + CC=${FC-"f95"} + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC="$lt_save_CC" +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC="$lt_save_CC" +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_XSI_SHELLFNS +# --------------------- +# Bourne and XSI compatible variants of some useful shell functions. +m4_defun([_LT_PROG_XSI_SHELLFNS], +[case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $[*] )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + +dnl func_dirname_and_basename +dnl A portable version of this function is already defined in general.m4sh +dnl so there is no need for it here. + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[[^=]]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[[^.]]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$[@]"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]+=\$[2]" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$[1]=\$$[1]\$[2]" +} + +_LT_EOF + ;; + esac +])
diff --git a/popt-1.16/m4/ltoptions.m4 b/popt-1.16/m4/ltoptions.m4 new file mode 100644 index 0000000..34151a3 --- /dev/null +++ b/popt-1.16/m4/ltoptions.m4
@@ -0,0 +1,368 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [0], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/popt-1.16/m4/ltsugar.m4 b/popt-1.16/m4/ltsugar.m4 new file mode 100644 index 0000000..9000a05 --- /dev/null +++ b/popt-1.16/m4/ltsugar.m4
@@ -0,0 +1,123 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +])
diff --git a/popt-1.16/m4/ltversion.m4 b/popt-1.16/m4/ltversion.m4 new file mode 100644 index 0000000..b8e154f --- /dev/null +++ b/popt-1.16/m4/ltversion.m4
@@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# Generated from ltversion.in. + +# serial 3012 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.2.6]) +m4_define([LT_PACKAGE_REVISION], [1.3012]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.2.6' +macro_revision='1.3012' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +])
diff --git a/popt-1.16/m4/lt~obsolete.m4 b/popt-1.16/m4/lt~obsolete.m4 new file mode 100644 index 0000000..637bb20 --- /dev/null +++ b/popt-1.16/m4/lt~obsolete.m4
@@ -0,0 +1,92 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 4 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
diff --git a/popt-1.16/m4/nls.m4 b/popt-1.16/m4/nls.m4 new file mode 100644 index 0000000..7967cc2 --- /dev/null +++ b/popt-1.16/m4/nls.m4
@@ -0,0 +1,31 @@ +# nls.m4 serial 3 (gettext-0.15) +dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ(2.50) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE(nls, + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT($USE_NLS) + AC_SUBST(USE_NLS) +])
diff --git a/popt-1.16/m4/po.m4 b/popt-1.16/m4/po.m4 new file mode 100644 index 0000000..0734762 --- /dev/null +++ b/popt-1.16/m4/po.m4
@@ -0,0 +1,449 @@ +# po.m4 serial 15 (gettext-0.17) +dnl Copyright (C) 1995-2007 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. +dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. + +AC_PREREQ(2.50) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.17]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat <<EOT +$* +EOT + } + gt_echo='echo_func' + fi + fi + + # A sed script that extracts the value of VARIABLE from a Makefile. + sed_x_variable=' +# Test if the hold space is empty. +x +s/P/P/ +x +ta +# Yes it was empty. Look if we have the expected variable definition. +/^[ ]*VARIABLE[ ]*=/{ + # Seen the first line of the variable definition. + s/^[ ]*VARIABLE[ ]*=// + ba +} +bd +:a +# Here we are processing a line from the variable definition. +# Remove comment, more precisely replace it with a space. +s/#.*$/ / +# See if the line ends in a backslash. +tb +:b +s/\\$// +# Print the line, without the trailing backslash. +p +tc +# There was no trailing backslash. The end of the variable definition is +# reached. Clear the hold space. +s/^.*$// +x +bd +:c +# A trailing backslash means that the variable definition continues in the +# next line. Put a nonempty string into the hold space to indicate this. +s/^.*$/P/ +x +:d +' +changequote([,])dnl + + # Set POTFILES to the value of the Makefile variable POTFILES. + sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` + POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` + # Compute POTFILES_DEPS as + # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) + POTFILES_DEPS= + for file in $POTFILES; do + POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" + done + POMAKEFILEDEPS="" + + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. + sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` + ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` + fi + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + # Compute PROPERTIESFILES + # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties) + # Compute CLASSFILES + # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class) + # Compute QMFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) + # Compute MSGFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) + # Compute RESOURCESDLLFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + PROPERTIESFILES= + CLASSFILES= + QMFILES= + MSGFILES= + RESOURCESDLLFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties" + CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class" + QMFILES="$QMFILES $srcdirpre$lang.qm" + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + JAVACATALOGS= + QTCATALOGS= + TCLCATALOGS= + CSHARPCATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" + QTCATALOGS="$QTCATALOGS $lang.qm" + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" + done + fi + + sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" <<EOF +$frobbedlang.msg: $lang.po + @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ + \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } +EOF + done + fi + if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <<EOF +$frobbedlang/\$(DOMAIN).resources.dll: $lang.po + @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ + \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } +EOF + done + fi + if test -n "$POMAKEFILEDEPS"; then + cat >> "$ac_file.tmp" <<EOF +Makefile: $POMAKEFILEDEPS +EOF + fi + mv "$ac_file.tmp" "$ac_file" +]) + +dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. +AC_DEFUN([AM_XGETTEXT_OPTION_INIT], +[ + XGETTEXT_EXTRA_OPTIONS= +]) + +dnl Registers an option to be passed to xgettext in the po subdirectory. +AC_DEFUN([AM_XGETTEXT_OPTION], +[ + AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) + XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" +])
diff --git a/popt-1.16/m4/progtest.m4 b/popt-1.16/m4/progtest.m4 new file mode 100644 index 0000000..a56365c --- /dev/null +++ b/popt-1.16/m4/progtest.m4
@@ -0,0 +1,92 @@ +# progtest.m4 serial 4 (gettext-0.14.2) +dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper <drepper@cygnus.com>, 1996. + +AC_PREREQ(2.50) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in ifelse([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +])
diff --git a/popt-1.16/missing b/popt-1.16/missing new file mode 100755 index 0000000..28055d2 --- /dev/null +++ b/popt-1.16/missing
@@ -0,0 +1,376 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. + +scriptversion=2009-04-28.21; # UTC + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, +# 2008, 2009 Free Software Foundation, Inc. +# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. + +# 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, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and +\`g' are ignored when checking the name. + +Send bug reports to <bug-automake@gnu.org>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# normalize program name to check for. +program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). This is about non-GNU programs, so use $1 not +# $program. +case $1 in + lex*|yacc*) + # Not GNU programs, they don't have --version. + ;; + + tar*) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $program in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te*) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison*|yacc*) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex*|flex*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit $? + fi + ;; + + makeinfo*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar*) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# 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: "UTC" +# time-stamp-end: "; # UTC" +# End:
diff --git a/popt-1.16/po/Makefile.in.in b/popt-1.16/po/Makefile.in.in new file mode 100644 index 0000000..fecf500 --- /dev/null +++ b/popt-1.16/po/Makefile.in.in
@@ -0,0 +1,429 @@ +# Makefile for PO directory in any package using GNU gettext. +# Copyright (C) 1995-1997, 2000-2007 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU General Public +# License but which still want to provide support for the GNU gettext +# functionality. +# Please note that the actual code of GNU gettext is covered by the GNU +# General Public License and is *not* in the public domain. +# +# Origin: gettext-0.17 +GETTEXT_MACRO_VERSION = 0.17 + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +SHELL = /bin/sh +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +gettextsrcdir = $(datadir)/gettext/po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) +MSGMERGE = msgmerge +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +UPDATEPOFILES = @UPDATEPOFILES@ +DUMMYPOFILES = @DUMMYPOFILES@ +DISTFILES.common = Makefile.in.in remove-potcdate.sin \ +$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) +DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ +$(POFILES) $(GMOFILES) \ +$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +# Makevars gets inserted here. (Don't remove this line!) + +.SUFFIXES: +.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update + +.po.mo: + @echo "$(MSGFMT) -c -o $@ $<"; \ + $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ + +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ + cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all: check-macro-version all-@USE_NLS@ + +all-yes: stamp-po +all-no: + +# Ensure that the gettext macros and this Makefile.in.in are in sync. +check-macro-version: + @test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ + || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ + exit 1; \ + } + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, stamp-po is a nop (i.e. a phony target). + +# stamp-po is a timestamp denoting the last time at which the CATALOGS have +# been loosely updated. Its purpose is that when a developer or translator +# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, +# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent +# invocations of "make" will do nothing. This timestamp would not be necessary +# if updating the $(CATALOGS) would always touch them; however, the rule for +# $(POFILES) has been designed to not touch files that don't need to be +# changed. +stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch stamp-po" && \ + echo timestamp > stamp-poT && \ + mv stamp-poT stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed + if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \ + package_gnu='GNU '; \ + else \ + package_gnu=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + --files-from=$(srcdir)/POTFILES.in \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_gnu}@PACKAGE@" \ + --package-version='@VERSION@' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + for file in $(DISTFILES.common) Makevars.template; do \ + $(INSTALL_DATA) $(srcdir)/$$file \ + $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + for file in Makevars; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +install-data-no: all +install-data-yes: all + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +install-strip: install + +installdirs: installdirs-exec installdirs-data +installdirs-exec: +installdirs-data: installdirs-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ + else \ + : ; \ + fi +installdirs-data-no: +installdirs-data-yes: + $(mkdir_p) $(DESTDIR)$(datadir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(mkdir_p) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +# Define this as empty until I found a useful application. +installcheck: + +uninstall: uninstall-exec uninstall-data +uninstall-exec: +uninstall-data: uninstall-data-@USE_NLS@ + if test "$(PACKAGE)" = "gettext-tools"; then \ + for file in $(DISTFILES.common) Makevars.template; do \ + rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ + done; \ + else \ + : ; \ + fi +uninstall-data-no: +uninstall-data-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +check: all + +info dvi ps pdf html tags TAGS ctags CTAGS ID: + +mostlyclean: + rm -f remove-potcdate.sed + rm -f stamp-poT + rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + rm -fr *.o + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f stamp-po $(GMOFILES) + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) +dist distdir: + $(MAKE) update-po + @$(MAKE) dist2 +# This is a separate target because 'update-po' must be executed before. +dist2: stamp-po $(DISTFILES) + dists="$(DISTFILES)"; \ + if test "$(PACKAGE)" = "gettext-tools"; then \ + dists="$$dists Makevars.template"; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + dists="$$dists $(DOMAIN).pot stamp-po"; \ + fi; \ + if test -f $(srcdir)/ChangeLog; then \ + dists="$$dists ChangeLog"; \ + fi; \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + if test -f $(srcdir)/ChangeLog.$$i; then \ + dists="$$dists ChangeLog.$$i"; \ + fi; \ + done; \ + if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ + for file in $$dists; do \ + if test -f $$file; then \ + cp -p $$file $(distdir) || exit 1; \ + else \ + cp -p $(srcdir)/$$file $(distdir) || exit 1; \ + fi; \ + done + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: + +Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ + cd $(top_builddir) \ + && $(SHELL) ./config.status $(subdir)/$@.in po-directories + +force: + +# Tell versions [3.59,3.63) of GNU make not to export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT:
diff --git a/popt-1.16/po/Makevars b/popt-1.16/po/Makevars new file mode 100644 index 0000000..8e5083e --- /dev/null +++ b/popt-1.16/po/Makevars
@@ -0,0 +1,41 @@ +# Makefile variables for PO directory in any package using GNU gettext. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=POPT_ + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = <popt-devel@rpm5.org> + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES =
diff --git a/popt-1.16/po/POTFILES.in b/popt-1.16/po/POTFILES.in new file mode 100644 index 0000000..187372c --- /dev/null +++ b/popt-1.16/po/POTFILES.in
@@ -0,0 +1,11 @@ +# List of files which contain translatable strings. + +# Package source files + +popt.c +popt.h +poptconfig.c +popthelp.c +poptint.c +poptparse.c +test1.c
diff --git a/popt-1.16/po/Rules-quot b/popt-1.16/po/Rules-quot new file mode 100644 index 0000000..9c2a995 --- /dev/null +++ b/popt-1.16/po/Rules-quot
@@ -0,0 +1,47 @@ +# Special Makefile rules for English message catalogs with quotation marks. + +DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot + +.SUFFIXES: .insert-header .po-update-en + +en@quot.po-create: + $(MAKE) en@quot.po-update +en@boldquot.po-create: + $(MAKE) en@boldquot.po-update + +en@quot.po-update: en@quot.po-update-en +en@boldquot.po-update: en@boldquot.po-update-en + +.insert-header.po-update-en: + @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ + if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + ll=`echo $$lang | sed -e 's/@.*//'`; \ + LC_ALL=C; export LC_ALL; \ + cd $(srcdir); \ + if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "creation of $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +en@quot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header + +en@boldquot.insert-header: insert-header.sin + sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header + +mostlyclean: mostlyclean-quot +mostlyclean-quot: + rm -f *.insert-header
diff --git a/popt-1.16/po/boldquot.sed b/popt-1.16/po/boldquot.sed new file mode 100644 index 0000000..4b937aa --- /dev/null +++ b/popt-1.16/po/boldquot.sed
@@ -0,0 +1,10 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g +s/“/“[1m/g +s/”/[0m”/g +s/‘/‘[1m/g +s/’/[0m’/g
diff --git a/popt-1.16/po/cs.gmo b/popt-1.16/po/cs.gmo new file mode 100644 index 0000000..6f58e77 --- /dev/null +++ b/popt-1.16/po/cs.gmo Binary files differ
diff --git a/popt-1.16/po/cs.po b/popt-1.16/po/cs.po new file mode 100644 index 0000000..3887c58 --- /dev/null +++ b/popt-1.16/po/cs.po
@@ -0,0 +1,142 @@ +# Czech translations of popt +# Copyright (C) 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the popt package. +# Milan Kerslager <kerslage@linux.cz>, 2001. +# Petr Pisar <petr.pisar@atlas.cz>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-12-08 19:55+0100\n" +"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n" +"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "neznámé číslo chyby" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "typ volby (%u) není v popt implementován\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "chybí argument" + +#: popt.c:1713 +msgid "unknown option" +msgstr "neznámá volba" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "požadovány vzájemně výlučné logické operace" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg nesmí být NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "aliasy vnořené příliš hluboko" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "chyba v quotování parametrů" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "chybná numerická hodnota" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "číslo je příliš velké nebo příliš malé" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "selhala alokace paměti" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "neznámá chyba" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Vypíše tuto nápovědu" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Vypíše krátký návod k použití" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Zobrazit implicitní volby ve zprávě" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Ukončí volby" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Volby nápovědy:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Volby implementované přes alias/exec poptu:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NONE" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Použití:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[VOLBY…]"
diff --git a/popt-1.16/po/da.gmo b/popt-1.16/po/da.gmo new file mode 100644 index 0000000..864f464 --- /dev/null +++ b/popt-1.16/po/da.gmo Binary files differ
diff --git a/popt-1.16/po/da.po b/popt-1.16/po/da.po new file mode 100644 index 0000000..0fc90b9 --- /dev/null +++ b/popt-1.16/po/da.po
@@ -0,0 +1,142 @@ +# Danish translation of popt. +# Copyright (C) 2008 popt. +# This file is distributed under the same license as the popt package. +# Martin Hansen <mah@k64.dk>, 2001. +# Joe Hansen <joedalton2@yahoo.dk>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt-1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-09-15 00:00+0000\n" +"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n" +"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "ukendt fejlnr." + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "tilvalgstype (%u) er ikke implementeret i popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "mangler argument" + +#: popt.c:1713 +msgid "unknown option" +msgstr "ukendt tilvalg" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "de ønskede handlinger udelukker hinanden" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg bør ikke være NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "aliaser er for dybt indlejret" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "fejl i parameter citering" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "ugyldig numerisk værdi" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "nummer for stort, eller for lille" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "hukommelsestildeling mislykkedes" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "ukendt fejl" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Vis denne hjælpemeddelelse" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Vis kortfattet brugsanvisning" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Vis instillingsstandarder i besked" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Indstillinger for afbrydning" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Hjælpeindstillinger:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Indstillinger implementeret via popt alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "INGEN" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Brug:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[TILVALG...]"
diff --git a/popt-1.16/po/de.gmo b/popt-1.16/po/de.gmo new file mode 100644 index 0000000..b1ba19e --- /dev/null +++ b/popt-1.16/po/de.gmo Binary files differ
diff --git a/popt-1.16/po/de.po b/popt-1.16/po/de.po new file mode 100644 index 0000000..03d3173 --- /dev/null +++ b/popt-1.16/po/de.po
@@ -0,0 +1,141 @@ +# Translation of popt to German (Deutsch) +# This file is distributed under the same license as the popt package. +# Robert Scheck <rpm@robert-scheck.de>, 2004-2007. +# Roland Illig <roland.illig@gmx.de>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2009-11-10 19:58+0100\n" +"Last-Translator: Roland Illig <roland.illig@gmx.de>\n" +"Language-Team: German <translation-team-de@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "Unbekannte Fehler-Nummer" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "Optionstyp (%u) ist in popt nicht vorhanden\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "Fehlendes Argument" + +#: popt.c:1713 +msgid "unknown option" +msgstr "Unbekannte Option" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "Gegenseitig ausschließende logische Operatoren" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg sollte nicht NULL sein" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "Aliase zu tief verschachtelt" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "Fehler beim Quotieren der Parameter" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "Ungültiger nummerischer Wert" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "Nummer zu groß oder zu klein" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "Speicherzuordnung fehlgeschlagen" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "Unbekannter Fehler" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Zeigt diese Hilfe an" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Zeigt eine kurze Verwendungsinformation" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Zeigt die Standardeinstellungen an" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Optionen beenden" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Hilfe-Optionen:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Optionen über popt alias/exec implementiert:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NICHTS" + +#: popthelp.c:202 +msgid "VAL" +msgstr "WERT" + +#: popthelp.c:206 +msgid "INT" +msgstr "INTEGER" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARGUMENT" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Verwendung:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPTION...]"
diff --git a/popt-1.16/po/en@boldquot.header b/popt-1.16/po/en@boldquot.header new file mode 100644 index 0000000..fedb6a0 --- /dev/null +++ b/popt-1.16/po/en@boldquot.header
@@ -0,0 +1,25 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +# +# This catalog furthermore displays the text between the quotation marks in +# bold face, assuming the VT100/XTerm escape sequences. +#
diff --git a/popt-1.16/po/en@quot.header b/popt-1.16/po/en@quot.header new file mode 100644 index 0000000..a9647fc --- /dev/null +++ b/popt-1.16/po/en@quot.header
@@ -0,0 +1,22 @@ +# All this catalog "translates" are quotation characters. +# The msgids must be ASCII and therefore cannot contain real quotation +# characters, only substitutes like grave accent (0x60), apostrophe (0x27) +# and double quote (0x22). These substitutes look strange; see +# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html +# +# This catalog translates grave accent (0x60) and apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019). +# It also translates pairs of apostrophe (0x27) to +# left single quotation mark (U+2018) and right single quotation mark (U+2019) +# and pairs of quotation mark (0x22) to +# left double quotation mark (U+201C) and right double quotation mark (U+201D). +# +# When output to an UTF-8 terminal, the quotation characters appear perfectly. +# When output to an ISO-8859-1 terminal, the single quotation marks are +# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to +# grave/acute accent (by libiconv), and the double quotation marks are +# transliterated to 0x22. +# When output to an ASCII terminal, the single quotation marks are +# transliterated to apostrophes, and the double quotation marks are +# transliterated to 0x22. +#
diff --git a/popt-1.16/po/eo.gmo b/popt-1.16/po/eo.gmo new file mode 100644 index 0000000..428dc21 --- /dev/null +++ b/popt-1.16/po/eo.gmo Binary files differ
diff --git a/popt-1.16/po/eo.po b/popt-1.16/po/eo.po new file mode 100644 index 0000000..3674b48 --- /dev/null +++ b/popt-1.16/po/eo.po
@@ -0,0 +1,140 @@ +# Esperanto translation of popt +# Copyright (C) 2008 Felipe Castro +# This file is put in the public domain. +# Felipe Castro <fefcas@gmail.com>, 2008 +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-08-03 15:50-0300\n" +"Last-Translator: Felipe Castro <fefcas@gmail.com>\n" +"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "nekonata erarnumero" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "la opcia tipo (%u) ne estas realigita en popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "mankas argumento" + +#: popt.c:1713 +msgid "unknown option" +msgstr "nekonata opcio" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "reciprokaj logikaj operacioj estas postulataj" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg ne devus esti NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "kromnomoj estas ingitaj tro profunde" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "eraro en parametra citado" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "nevalida numera valoro" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "numero tro granda aŭ tro eta" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "malsukceso dum okupado de memoro" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "nekonata eraro" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Montri tiun ĉi helpmesaĝon" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Montri resumitan mesaĝon pri uzado" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Montri la implicitajn valorojn de la opcio en la mesaĝo" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Opcioj pri finiĝo" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Help-opcioj:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Opcioj realigitaj per popt alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NENIO" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Uzado:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPCIO...]"
diff --git a/popt-1.16/po/es.gmo b/popt-1.16/po/es.gmo new file mode 100644 index 0000000..afce612 --- /dev/null +++ b/popt-1.16/po/es.gmo Binary files differ
diff --git a/popt-1.16/po/es.po b/popt-1.16/po/es.po new file mode 100644 index 0000000..1d05248 --- /dev/null +++ b/popt-1.16/po/es.po
@@ -0,0 +1,141 @@ +# Spanish translations for popt. +# Copyright (C) 2007 Free Software Foundation, Inc. +# Leandro Lucarella <luca@linuxmendoza.org.ar>, 2007 +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.12\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2007-12-28 12:22+0100\n" +"Last-Translator: Leandro Lucarella <luca@linuxmendoza.org.ar>\n" +"Language-Team: Spanish <es@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "errno desconocido" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "tipo de opción (%d) no implementada en popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "falta argumento" + +#: popt.c:1713 +msgid "unknown option" +msgstr "opción desconocida" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "requerida operación lógica mutuamente exclusiva" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "alias anidados muy profundamente" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "error en cita de parámetros" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "valor numérico inválido" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "número muy largo o muy pequeño" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "error desconocido" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Muestra este mensaje de ayuda" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Indica el modo de uso resumido" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NONE" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Modo de uso:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPCIÓN...]"
diff --git a/popt-1.16/po/fi.gmo b/popt-1.16/po/fi.gmo new file mode 100644 index 0000000..6320ea4 --- /dev/null +++ b/popt-1.16/po/fi.gmo Binary files differ
diff --git a/popt-1.16/po/fi.po b/popt-1.16/po/fi.po new file mode 100644 index 0000000..015b4c6 --- /dev/null +++ b/popt-1.16/po/fi.po
@@ -0,0 +1,147 @@ +# translation of popt-1.14.pot to Finnish +# Copyright © 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the popt package. +# This file is put in the public domain. +# Jorma Karvonen <karvjorm@users.sf.net>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-02-21 18:19+0200\n" +"Last-Translator: Jorma Karvonen <karvjorm@users.sf.net>\n" +"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: KBabel 1.11.4\n" + +# errno - number of last error (defined by the ISO C standard) +#: popt.c:47 +msgid "unknown errno" +msgstr "tuntematon errno-virhenumeroarvo" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "valitsintyyppiä (%u) ei ole toteutettu popt-ohjelmassa\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "puuttuva argumentti" + +#: popt.c:1713 +msgid "unknown option" +msgstr "tuntematon valitsin" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "pyydettyjä loogisia toimintoja ei voi käyttää yhdessä" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "”opt->arg”-valitsinargumentti ei saa olla NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "liian monta aliasta sisäkkäin" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "virhe parametrien lainauksessa" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "virheellinen numeroarvo" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "numero on liian iso tai liian pieni" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "muistin varaus ei onnistunut" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "tuntematon virhe" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Näytä tämä ohje" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Näytä lyhyt käyttöohje" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Näytä valitsinoletukset ohjeessa" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Lopettamisvalitsimet" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Ohjevalitsimet:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" +"Valitsimet toteutettu ”popt alias”-määrittelyillä tai ”popt exec”-" +"määrittelyillä:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "EI MITÄÄN" + +#: popthelp.c:202 +msgid "VAL" +msgstr "ARVO" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT-KOKONAISLUKU" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG-KOKONAISLUKU" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG-KOKONAISLUKU" + +#: popthelp.c:210 +msgid "STRING" +msgstr "MERKKIJONO" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT-LIUKULUKU" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE-LIUKULUKU" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARGUMENTTI" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Käyttö:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[VALITSIN...]"
diff --git a/popt-1.16/po/fr.gmo b/popt-1.16/po/fr.gmo new file mode 100644 index 0000000..5d61fc2 --- /dev/null +++ b/popt-1.16/po/fr.gmo Binary files differ
diff --git a/popt-1.16/po/fr.po b/popt-1.16/po/fr.po new file mode 100644 index 0000000..7e3c14f --- /dev/null +++ b/popt-1.16/po/fr.po
@@ -0,0 +1,147 @@ +# A French translation for rpm messages +# Copyright (C) 2003 Free Software Foundation, Inc. +# This file is distributed under the same license as the RPM package. +# RPM French Translation <rpm-fr@livna.org>, 2003. +# JBJ : THANX A LOT !!! +# +# N'hésitez pas à m'envoyez un courriel si vous avez des +# suggestions/corrections. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2003-06-22 23:43+0200\n" +"Last-Translator: RPM French Translation <rpm-fr@livna.org>\n" +"Language-Team: RPM French Translation <rpm-fr@livna.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "errno inconnu" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "type(%d) d'option non implémenté dans popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "argument manquant" + +#: popt.c:1713 +msgid "unknown option" +msgstr "option iconnue" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "opérations logiques mutuellement exclusives requises" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg ne devrait pas être NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "les alias sont trop entremellés" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "erreur en citant les paramètres" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "valeur numérique invalide" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "nombre trop grand ou trop petit" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "échec de l'allocation de mémoire" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "erreur inconnue" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Montre ce message d'aide" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Affiche un bref descriptif de l'utilisation" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Afficher les valeurs par défaut des options dans le message" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "RIEN" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "ENTIER" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "CHAINE" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOTTANT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Utilisation:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPTION...]"
diff --git a/popt-1.16/po/ga.gmo b/popt-1.16/po/ga.gmo new file mode 100644 index 0000000..662ae7c --- /dev/null +++ b/popt-1.16/po/ga.gmo Binary files differ
diff --git a/popt-1.16/po/ga.po b/popt-1.16/po/ga.po new file mode 100644 index 0000000..feed9ce --- /dev/null +++ b/popt-1.16/po/ga.po
@@ -0,0 +1,141 @@ +# Irish translations for popt. +# This file is put in the public domain. +# Kevin Scannell <kscanne@gmail.com>, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-04-10 06:21-0500\n" +"Last-Translator: Kevin Scannell <kscanne@gmail.com>\n" +"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "errno anaithnid" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "níl an cineál rogha seo (%u) ar fáil i popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "argóint ar iarraidh" + +#: popt.c:1713 +msgid "unknown option" +msgstr "rogha anaithnid" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "iarradh oibríochtaí loighciúla comheisiacha" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "níor chóir rogha->arg a bheith NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "ailiasanna neadaithe ródhomhain" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "earráid agus paraiméadar á chur faoi chomharthaí athfhriotail" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "luach neamhbhailí uimhriúil" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "uimhir rómhór nó róbheag" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "theip ar dháileadh na cuimhne" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "earráid anaithnid" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Taispeáin an chabhair seo" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Taispeáin beagán eolais faoin úsáid" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Taispeáin luachanna réamhshocraithe na roghanna sa teachtaireacht" + +# Terminate not a verb here +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Roghanna scortha" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Roghanna cabhracha:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Roghanna a cuireadh i bhfeidhm trí ailias/exec popt:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NEAMHNÍ" + +#: popthelp.c:202 +msgid "VAL" +msgstr "LUACH" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Úsáid:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[ROGHA...]"
diff --git a/popt-1.16/po/gl.gmo b/popt-1.16/po/gl.gmo new file mode 100644 index 0000000..4da47f3 --- /dev/null +++ b/popt-1.16/po/gl.gmo Binary files differ
diff --git a/popt-1.16/po/gl.po b/popt-1.16/po/gl.po new file mode 100644 index 0000000..1311148 --- /dev/null +++ b/popt-1.16/po/gl.po
@@ -0,0 +1,138 @@ +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2001-01-17 01:01+0100\n" +"Last-Translator: Jesús Bravo Álvarez <jba@pobox.com>\n" +"Language-Team: Galician <trasno@ceu.fi.udc.es>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "errno descoñecido" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "tipo de opción (%d) non implementada en popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "falta un argumento" + +#: popt.c:1713 +msgid "unknown option" +msgstr "opción descoñecida" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "solicitáronse operacións lóxicas mutuamente excluíntes" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "aliases aniñados a un nivel demasiado profundo" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "erro nas comiñas do parámetro" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "valor numérico non válido" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "número demasiado grande ou pequeno" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "erro descoñecido" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Amosar esta mensaxe de axuda" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Amosar brevemente o xeito de utilización" + +#: popthelp.c:90 +#, fuzzy +msgid "Display option defaults in message" +msgstr "Amosar brevemente o xeito de utilización" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NADA" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "CADEA" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Uso:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPCIÓN...]"
diff --git a/popt-1.16/po/hu.gmo b/popt-1.16/po/hu.gmo new file mode 100644 index 0000000..9fe3810 --- /dev/null +++ b/popt-1.16/po/hu.gmo Binary files differ
diff --git a/popt-1.16/po/hu.po b/popt-1.16/po/hu.po new file mode 100644 index 0000000..f681c30 --- /dev/null +++ b/popt-1.16/po/hu.po
@@ -0,0 +1,143 @@ +# Hungarian translation of popt +# Copyright (C) 2007 Free Software Foundation, Inc. +# Gabor Kelemen <kelemeng@gnome.hu>, 2007. +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2007-06-21 00:45+0200\n" +"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n" +"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "ismeretlen hibaszám" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "a kapcsolótípus (%d) nincs megvalósítva a popt-ban\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "hiányzó paraméter" + +#: popt.c:1713 +msgid "unknown option" +msgstr "ismeretlen kapcsoló" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "kölcsönösen kizáró logikai műveleteket kért" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "az opt->arg nem lehet NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "az álnevek túl mélyen vannak egymásba ágyazva" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "hiba a paraméter idézésében" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "érvénytelen numerikus érték" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "a szám túl nagy vagy túl kicsi" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "a memóriafoglalás meghiúsult" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "ismeretlen hiba" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Ezen súgó megjelenítése" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Rövid használati utasítás megjelenítése" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Kapcsolók alapértelmezéseinek megjelenítése" + +#: popthelp.c:92 +#, fuzzy +msgid "Terminate options" +msgstr "Súgólehetőségek:" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Súgólehetőségek:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "A popt alias/exec segítségével megvalósított kapcsolók:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NINCS" + +#: popthelp.c:202 +msgid "VAL" +msgstr "ÉRTÉK" + +#: popthelp.c:206 +msgid "INT" +msgstr "EGÉSZ" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "HOSSZÚ" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "HOSSZÚ" + +#: popthelp.c:210 +msgid "STRING" +msgstr "SZÖVEG" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "LEBEGŐ" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DUPLA" + +#: popthelp.c:215 +msgid "ARG" +msgstr "PAR" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Használat:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[KAPCSOLÓ...]"
diff --git a/popt-1.16/po/id.gmo b/popt-1.16/po/id.gmo new file mode 100644 index 0000000..7f07ada --- /dev/null +++ b/popt-1.16/po/id.gmo Binary files differ
diff --git a/popt-1.16/po/id.po b/popt-1.16/po/id.po new file mode 100644 index 0000000..6622520 --- /dev/null +++ b/popt-1.16/po/id.po
@@ -0,0 +1,140 @@ +# Indonesian translations for popt package. +# This file is put in the public domain. +# Andhika Padmawan <andhika.padmawan@gmail.com>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-08-26 14:18+0700\n" +"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n" +"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "errno tak diketahui" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "tipe opsi (%u) tak diimplementasikan di popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "kehilangan argumen" + +#: popt.c:1713 +msgid "unknown option" +msgstr "opsi tak diketahui" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "permintaan operasi logika eksklusif secara mutual" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg tidak boleh NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "alias disarangkan terlalu dalam" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "galat di pencantuman parameter" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "nilai numerik tidak sah" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "nomor terlalu besar atau terlalu kecil" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "alokasi memori gagal" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "galat tak diketahui" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Tampilkan pesan bantuan ini" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Tampilkan pesan penggunaan singkat" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Tampilkan opsi standar dalam pesan" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Matikan opsi" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Opsi bantuan:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Opsi diimplementasikan via popt alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NONE" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Penggunaan:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPSI...]"
diff --git a/popt-1.16/po/insert-header.sin b/popt-1.16/po/insert-header.sin new file mode 100644 index 0000000..b26de01 --- /dev/null +++ b/popt-1.16/po/insert-header.sin
@@ -0,0 +1,23 @@ +# Sed script that inserts the file called HEADER before the header entry. +# +# At each occurrence of a line starting with "msgid ", we execute the following +# commands. At the first occurrence, insert the file. At the following +# occurrences, do nothing. The distinction between the first and the following +# occurrences is achieved by looking at the hold space. +/^msgid /{ +x +# Test if the hold space is empty. +s/m/m/ +ta +# Yes it was empty. First occurrence. Read the file. +r HEADER +# Output the file's contents by reading the next line. But don't lose the +# current line while doing this. +g +N +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +}
diff --git a/popt-1.16/po/is.gmo b/popt-1.16/po/is.gmo new file mode 100644 index 0000000..4bca033 --- /dev/null +++ b/popt-1.16/po/is.gmo Binary files differ
diff --git a/popt-1.16/po/is.po b/popt-1.16/po/is.po new file mode 100644 index 0000000..f775a1d --- /dev/null +++ b/popt-1.16/po/is.po
@@ -0,0 +1,137 @@ +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2001-06-08 01:35+0000\n" +"Last-Translator: Richard Allen <ra@hp.is>\n" +"Language-Team: is <kde-isl@mmedia.is>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "óþekkt villunúmer" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "rofagerðin (%d) er ekki studd í popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "vantar viðfang" + +#: popt.c:1713 +msgid "unknown option" +msgstr "óþekktur rofi" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "beðið um rofa sem slökkva hvor á öðrum" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg ætti ekki að vera NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "alíasar of flóknir" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "villa í viðföngum (gæsalappir og svo frv.)" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "ógilt tölulegt gildi" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "talan of stór eða smá" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "ekki tókst að taka frá minni" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "óþekkt villa" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Sýna þessa hjálp" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Sýna stuttar notkunarleiðbeiningar" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Sýna sjálfgefin gildi rofa í skilaboðum" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "ENGIN" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Notkun:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[ROFI...]"
diff --git a/popt-1.16/po/it.gmo b/popt-1.16/po/it.gmo new file mode 100644 index 0000000..2898d0d --- /dev/null +++ b/popt-1.16/po/it.gmo Binary files differ
diff --git a/popt-1.16/po/it.po b/popt-1.16/po/it.po new file mode 100644 index 0000000..1441d42 --- /dev/null +++ b/popt-1.16/po/it.po
@@ -0,0 +1,143 @@ +# ITALIAN TRANSLATION OF POPT-1.14 +# This file is put in the public domain. +# +# Sandro Bonazzola <sandro.bonazzola@gmail.com>, 2007 +# Vincenzo Campanella <vinz65@gmail.com>, 2008. +msgid "" +msgstr "" +"Project-Id-Version: popt-1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-11-28 15:32+0100\n" +"Last-Translator: Vincenzo Campanella <vinz65@gmail.com>\n" +"Language-Team: Italian <tp@lists.linux.it>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"First-Translator: Sandro Bonazzola <sandro.bonazzola@gmail.com>\n" +"X-Generator: KBabel 1.11.4\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "errno sconosciuto" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "tipo di opzione (%u) non implementato in popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "argomento mancante" + +#: popt.c:1713 +msgid "unknown option" +msgstr "opzione sconosciuta" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "richieste operazioni logiche reciprocamente esclusive" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg non dovrebbe essere NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "alias nidificati troppo in profondità" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "errore nel quoting del parametro" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "valore numerico non valido" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "numero troppo grande o troppo piccolo" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "allocazione di memoria fallita" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "errore sconosciuto" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Mostra questo messaggio di aiuto" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Mostra un breve messaggio di utilizzo" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Mostra le opzioni predefinite nel messaggio" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Opzioni di terminazione" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Opzioni di aiuto:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Opzioni implementate tramite alias/exec di popt:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NONE" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Uso:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPZIONE...]"
diff --git a/popt-1.16/po/ja.gmo b/popt-1.16/po/ja.gmo new file mode 100644 index 0000000..8679391 --- /dev/null +++ b/popt-1.16/po/ja.gmo Binary files differ
diff --git a/popt-1.16/po/ja.po b/popt-1.16/po/ja.po new file mode 100644 index 0000000..3c8a87a --- /dev/null +++ b/popt-1.16/po/ja.po
@@ -0,0 +1,142 @@ +# rpm ja.po +# Copyright (C) 2003 Free Software Foundation, Inc. +# Yukihiro Nakai <ynakai@redhat.com>, 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2003--8-25 19:00+0900\n" +"Last-Translator: Yukihiro Nakai <ynakai@redhat.com>\n" +"Language-Team: Japanese <ja@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "不明なエラー番号" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "オプションタイプ (%d) はpoptには実装されていません\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "引数がありません" + +#: popt.c:1713 +msgid "unknown option" +msgstr "不明なオプション" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "排他的な悪ぺーレーションが必要です" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->argはNULLではいけません" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "エイリアスのネストが深すぎます" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "パラメータのクオート付けでエラー" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "不正な数値" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "数値が大きすぎるか小さすぎます" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "メモリ確保に失敗しました" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "不明なエラー" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "このヘルプメッセージを表示します" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "使い方の概要を表示します" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "オプションのデフォルト値をメッセージに表示します" + +#: popthelp.c:92 +#, fuzzy +msgid "Terminate options" +msgstr "ヘルプオプション:" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "ヘルプオプション:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "poptのalias/execで実装されているオプション:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "なし" + +#: popthelp.c:202 +msgid "VAL" +msgstr "値" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "文字列" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "使い方:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[オプション...]"
diff --git a/popt-1.16/po/ko.gmo b/popt-1.16/po/ko.gmo new file mode 100644 index 0000000..694f8ca --- /dev/null +++ b/popt-1.16/po/ko.gmo Binary files differ
diff --git a/popt-1.16/po/ko.po b/popt-1.16/po/ko.po new file mode 100644 index 0000000..cfd2896 --- /dev/null +++ b/popt-1.16/po/ko.po
@@ -0,0 +1,137 @@ +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2001-09-06 20:06+0900\n" +"Last-Translator: Jong-Hoon Ryu <redhat4u@netian.com>\n" +"Language-Team: GNU Translation project <ko@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-KR\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "¾Ë ¼ö ¾ø´Â ¿À·ùÄÚµå(errno) ÀÔ´Ï´Ù" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "¿É¼Ç À¯Çü (%d)Àº popt¿¡¼ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "Àμö°¡ ÁöÁ¤µÇÁö ¾Ê¾Ò½À´Ï´Ù" + +#: popt.c:1713 +msgid "unknown option" +msgstr "¾Ë ¼ö ¾ø´Â ¿É¼ÇÀÔ´Ï´Ù" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "¾çÂÊ¿¡ ¹èŸÀû ³í¸® ¿¬»êÀÌ ÁöÁ¤µÇ¾ú½À´Ï´Ù" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "¿É¼Ç->Àμö°¡ NULLÀÌ µÇ¾î¼´Â ¾ÈµË´Ï´Ù" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "º°Äª(alias)ÀÌ º¹ÀâÇÏ°Ô ¼³Á¤µÇ¾ú½À´Ï´Ù" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "¸Å°³º¯¼ö¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "À߸øµÈ ¼öÄ¡ °ªÀÔ´Ï´Ù" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "¼ýÀÚ°¡ ³Ê¹« Å©°Å³ª ³Ê¹« Àû½À´Ï´Ù" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "¸Þ¸ð¸® ÇÒ´ç¿¡ ½ÇÆÐÇß½À´Ï´Ù" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "¾Ë ¼ö ¾ø´Â ¿À·ùÀÔ´Ï´Ù" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "ÀÌ µµ¿ò¸»À» º¸¿©ÁÝ´Ï´Ù" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "°£´ÜÇÑ »ç¿ë¹ýÀ» º¸¿©ÁÝ´Ï´Ù" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "±âº»ÀûÀÎ ¿É¼ÇÀ» º¸¿©ÁÝ´Ï´Ù" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "¾øÀ½(NONE)" + +#: popthelp.c:202 +msgid "VAL" +msgstr "°ª(VAL)" + +#: popthelp.c:206 +msgid "INT" +msgstr "Á¤¼ö(INT)" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "Á¤¼ö(LONG)" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "Á¤¼ö(LONG)" + +#: popthelp.c:210 +msgid "STRING" +msgstr "¹®ÀÚ¿(STRING)" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "¼Ò¼ö(FLOAT)" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "¼Ò¼ö(DOUBLE)" + +#: popthelp.c:215 +msgid "ARG" +msgstr "Àμö(ARG)" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "»ç¿ë¹ý:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[¿É¼Ç...]"
diff --git a/popt-1.16/po/lv.gmo b/popt-1.16/po/lv.gmo new file mode 100644 index 0000000..8beac75 --- /dev/null +++ b/popt-1.16/po/lv.gmo Binary files differ
diff --git a/popt-1.16/po/lv.po b/popt-1.16/po/lv.po new file mode 100644 index 0000000..70f350e --- /dev/null +++ b/popt-1.16/po/lv.po
@@ -0,0 +1,145 @@ +# translation of popt-1.14.pot to Latvian +# Copyright © 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the popt package. +# This file is put in the public domain. +# +# Rihards Prieditis <RPrieditis@inbox.lv>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: popt-1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2009-04-12 16:34+0300\n" +"Last-Translator: Rihards Prieditis <RPrieditis@inbox.lv>\n" +"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.3\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "nezināms kļūdas numurs" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "iespējas tips (%u) nav ieviests popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "trūkst arguments" + +#: popt.c:1713 +msgid "unknown option" +msgstr "nezināma iespēja" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "pieprasītas savstarpējie izslēdzošas loģiskās operācijas" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opcija->arguments nevar būt NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "aizstājvārdi iegulti pārāk dziļi" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "kļuda parametru citēšanā" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "nederīga skaitļa vērtība" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "skaitlis pārāk liels, vai pārāk mazs" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "atmiņas iedalīšana neizdevās" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "nezināma kļūda" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Rādīt šo palīdzības ziņu" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Attēlot īsu izmantošanas ziņu" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Attēlot noklusētās iespējas ziņā" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Pārtraukt iespējas" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Palīdzības iespējas:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Iespējas ieviestas caur popt aizstājvārda/izpildāmais:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NEKAS" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VĒRTĪBA" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "VIRKNE" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARGUMENTS" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Lietošana:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[IESPĒJAS..]"
diff --git a/popt-1.16/po/nb.gmo b/popt-1.16/po/nb.gmo new file mode 100644 index 0000000..0ddea37 --- /dev/null +++ b/popt-1.16/po/nb.gmo Binary files differ
diff --git a/popt-1.16/po/nb.po b/popt-1.16/po/nb.po new file mode 100644 index 0000000..8ec9331 --- /dev/null +++ b/popt-1.16/po/nb.po
@@ -0,0 +1,137 @@ +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2001-06-27 11:05+0200\n" +"Last-Translator: Kjartan Maraas <kmaraas@online.no>\n" +"Language-Team: Norwegian <no@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "ukjent errno" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "flaggtype (%d) ikke implementert i popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "manglende argument" + +#: popt.c:1713 +msgid "unknown option" +msgstr "ukjent flagg" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "gjensidig eksluderende logiske operasjoner forespurt" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg må ikke være NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "aliaser med for dype løkker" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "feil i parametersitering" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "ugyldig numerisk verdi" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "tallet er for stort eller lite" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "minneallokering feilet" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "ukjent feil" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Vis denne hjelpmeldingen" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Vis kort bruksmelding" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Vis forvalgte flagg i melding" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "INGEN" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VERDI" + +#: popthelp.c:206 +msgid "INT" +msgstr "HELTALL" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRENG" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLYTTALL" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Bruk:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[FLAGG...]"
diff --git a/popt-1.16/po/nl.gmo b/popt-1.16/po/nl.gmo new file mode 100644 index 0000000..bb54524 --- /dev/null +++ b/popt-1.16/po/nl.gmo Binary files differ
diff --git a/popt-1.16/po/nl.po b/popt-1.16/po/nl.po new file mode 100644 index 0000000..09bc176 --- /dev/null +++ b/popt-1.16/po/nl.po
@@ -0,0 +1,144 @@ +# Dutch messages for popt. +# This file is put in the public domain. +# Tim Van Holder <tim.van.holder@telenet.be>, 2007, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-02-20 19:26+0100\n" +"Last-Translator: Tim Van Holder <tim.van.holder@telenet.be>\n" +"Language-Team: Dutch <vertaling@vrijschrift.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "onbekend foutnummer (errno)" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "dit optietype (%u) is niet geïmplementeerd in popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "ontbrekend argument" + +#: popt.c:1713 +msgid "unknown option" +msgstr "onbekende optie" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "elkaar uitsluitende logische operatoren werden gevraagd" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg zou niet NULL mogen zijn" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "aliassen zijn te diep genest" + +# of toch beter "quoting" behouden? +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "fout in de aanhaling van parameters" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "ongeldige numerieke waarde" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "getal is te klein of te groot" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "reserveren van geheugen is mislukt" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "onbekende fout" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Deze hulptekst tonen" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Een korte gebruikssamenvatting tonen" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "De standaardwaarden van opties tonen in de tekst" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Opties beëindigen" + +# of "Help-opties:"? +#: popthelp.c:191 +msgid "Help options:" +msgstr "Hulp-opties:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Opties geïmplementeerd d.m.v. popt alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "GEEN" + +#: popthelp.c:202 +msgid "VAL" +msgstr "WAARDE" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +# TEKENREEKS lijkt me niet gepast; dus ofwel STRING behouden, ofwel TEKST +#: popthelp.c:210 +msgid "STRING" +msgstr "TEKST" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +# of hier ARGUMENT van maken? +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Gebruik:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPTIE...]"
diff --git a/popt-1.16/po/pl.gmo b/popt-1.16/po/pl.gmo new file mode 100644 index 0000000..616f8cf --- /dev/null +++ b/popt-1.16/po/pl.gmo Binary files differ
diff --git a/popt-1.16/po/pl.po b/popt-1.16/po/pl.po new file mode 100644 index 0000000..e59b2e1 --- /dev/null +++ b/popt-1.16/po/pl.po
@@ -0,0 +1,140 @@ +# Polish translation for popt. +# This file is distributed under the same license as the popt package. +# Jakub Bogusz <qboosh@pld-linux.org>, 2002-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-02-18 00:30+0100\n" +"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n" +"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "nieznane errno" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "typ opcji (%u) nie zaimplementowany w popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "brak parametru" + +#: popt.c:1713 +msgid "unknown option" +msgstr "nieznana opcja" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "¿±danie wykluczaj±cych siê operacji" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg nie mo¿e byæ NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "zbyt du¿e zag³êbienie aliasów" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "b³±d w cytowaniu parametru" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "b³êdna warto¶æ liczbowa" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "liczba zbyt du¿a lub zbyt ma³a" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "b³±d alokacji pamiêci" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "nieznany b³±d" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Poka¿ tê pomoc" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Wy¶wietl skrócony sposób u¿ycia" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Wy¶wietl domy¶lne opcje w opisie" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Opcje zakoñczenia" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Opcje pomocy:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Opcje zaimplementowane poprzez popt alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "BRAK" + +#: popthelp.c:202 +msgid "VAL" +msgstr "WART" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "£AÑCUCH" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "PARAM" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Sk³adnia:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPCJA...]"
diff --git a/popt-1.16/po/popt.pot b/popt-1.16/po/popt.pot new file mode 100644 index 0000000..e1be585 --- /dev/null +++ b/popt-1.16/po/popt.pot
@@ -0,0 +1,141 @@ +# SOME DESCRIPTIVE TITLE. +# This file is put in the public domain. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: popt 1.16\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "" + +#: popt.c:1711 +msgid "missing argument" +msgstr "" + +#: popt.c:1713 +msgid "unknown option" +msgstr "" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "" + +#: popthelp.c:202 +msgid "VAL" +msgstr "" + +#: popthelp.c:206 +msgid "INT" +msgstr "" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "" + +#: popthelp.c:210 +msgid "STRING" +msgstr "" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "" + +#: popthelp.c:215 +msgid "ARG" +msgstr "" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr ""
diff --git a/popt-1.16/po/pt.gmo b/popt-1.16/po/pt.gmo new file mode 100644 index 0000000..cc3f034 --- /dev/null +++ b/popt-1.16/po/pt.gmo Binary files differ
diff --git a/popt-1.16/po/pt.po b/popt-1.16/po/pt.po new file mode 100644 index 0000000..3f56a71 --- /dev/null +++ b/popt-1.16/po/pt.po
@@ -0,0 +1,137 @@ +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2002-02-13 18:32+0000\n" +"Last-Translator: Pedro Morais <morais@kde.org>\n" +"Language-Team: pt <morais@kde.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "errno desconhecido" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "tipo de opção (%d) não implementado no popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "falta um argumento" + +#: popt.c:1713 +msgid "unknown option" +msgstr "opção desconhecida" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "foram pedidas operações lógicas mutuamente exclusivas" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg não deve ser NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "'aliases' demasiado aninhados" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "erros no 'quoting' de parâmetros" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "valor númerico inválido" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "número demasiado grando ou pequeno" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "alocação de memória falhou" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "erro desconhecido" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Mostrar esta mensagem de ajuda" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Mostrar uma mensagem de utilização sucinta" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Mostrar valor por omissão das opções na mensagem" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NONE" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Utilização:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPÇÃO...]"
diff --git a/popt-1.16/po/quot.sed b/popt-1.16/po/quot.sed new file mode 100644 index 0000000..0122c46 --- /dev/null +++ b/popt-1.16/po/quot.sed
@@ -0,0 +1,6 @@ +s/"\([^"]*\)"/“\1”/g +s/`\([^`']*\)'/‘\1’/g +s/ '\([^`']*\)' / ‘\1’ /g +s/ '\([^`']*\)'$/ ‘\1’/g +s/^'\([^`']*\)' /‘\1’ /g +s/“”/""/g
diff --git a/popt-1.16/po/remove-potcdate.sin b/popt-1.16/po/remove-potcdate.sin new file mode 100644 index 0000000..2436c49 --- /dev/null +++ b/popt-1.16/po/remove-potcdate.sin
@@ -0,0 +1,19 @@ +# Sed script that remove the POT-Creation-Date line in the header entry +# from a POT file. +# +# The distinction between the first and the following occurrences of the +# pattern is achieved by looking at the hold space. +/^"POT-Creation-Date: .*"$/{ +x +# Test if the hold space is empty. +s/P/P/ +ta +# Yes it was empty. First occurrence. Remove the line. +g +d +bb +:a +# The hold space was nonempty. Following occurrences. Do nothing. +x +:b +}
diff --git a/popt-1.16/po/ro.gmo b/popt-1.16/po/ro.gmo new file mode 100644 index 0000000..d757c80 --- /dev/null +++ b/popt-1.16/po/ro.gmo Binary files differ
diff --git a/popt-1.16/po/ro.po b/popt-1.16/po/ro.po new file mode 100644 index 0000000..7f0a72e --- /dev/null +++ b/popt-1.16/po/ro.po
@@ -0,0 +1,138 @@ +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2000-06-14 23:23+EST\n" +"Last-Translator: Cristian Gafton <gafton@redhat.com>\n" +"Language-Team: Romanian <ro@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "eroare necunoscuta" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "optiunea de tipul (%d) nu este implementata in popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "argument lipsa" + +#: popt.c:1713 +msgid "unknown option" +msgstr "optiune necunoscuta" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "recursivitate infinita la optiunile sinonime" + +#: popt.c:1721 +#, fuzzy +msgid "error in parameter quoting" +msgstr "eroare la insertie parametru" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "valoare numarica invalida" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "numar prea mare sau prea mic" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "eroare necuinoscuta" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Afisare mesaj de help" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Afisare mesaj sintaxa sumar" + +#: popthelp.c:90 +#, fuzzy +msgid "Display option defaults in message" +msgstr "Afisare mesaj sintaxa sumar" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "" + +#: popthelp.c:202 +msgid "VAL" +msgstr "" + +#: popthelp.c:206 +msgid "INT" +msgstr "" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "" + +#: popthelp.c:210 +msgid "STRING" +msgstr "" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "" + +#: popthelp.c:215 +msgid "ARG" +msgstr "" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Sintaxa:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[OPTIUNE...]"
diff --git a/popt-1.16/po/ru.gmo b/popt-1.16/po/ru.gmo new file mode 100644 index 0000000..47f922b --- /dev/null +++ b/popt-1.16/po/ru.gmo Binary files differ
diff --git a/popt-1.16/po/ru.po b/popt-1.16/po/ru.po new file mode 100644 index 0000000..ec65e6d --- /dev/null +++ b/popt-1.16/po/ru.po
@@ -0,0 +1,144 @@ +# translation of popt-1.14.ru.po to Russian +# This file is put in the public domain. +# This file is distributed under the same license as the popt package. +# Eugene Kanter <eugene@blackcatlinux.com>, 2001. +# Yuri Kozlov <yuray@komyakino.ru>, 2009. +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2009-02-01 13:30+0300\n" +"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" +"Language-Team: Russian <gnu@mx.ru>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "неизвестный errno" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "обработка параметра (%u) в popt не предусмотрена\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "пропущен аргумент" + +#: popt.c:1713 +msgid "unknown option" +msgstr "неизвестный параметр" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "запрошены взаимно исключающие логические операции" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg не может быть NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "превышен уровень допустимой рекурсии подстановок" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "ошибка помещения параметров в кавычки" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "неправильное числовое значение" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "числовое значение за пределами предусмотренного" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "не удалось выделить память" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "неизвестная ошибка" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Показать эту справку" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Показать краткую инструкцию по использованию" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Показать параметры по умолчанию" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Завершает параметры" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Параметры вывода справки:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Параметры, реализованные через popt alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NONE" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Использование:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[ПАРАМЕТР...]"
diff --git a/popt-1.16/po/sk.gmo b/popt-1.16/po/sk.gmo new file mode 100644 index 0000000..35c8e12 --- /dev/null +++ b/popt-1.16/po/sk.gmo Binary files differ
diff --git a/popt-1.16/po/sk.po b/popt-1.16/po/sk.po new file mode 100644 index 0000000..f5030ce --- /dev/null +++ b/popt-1.16/po/sk.po
@@ -0,0 +1,141 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 1999-08-04 21:40+0200\n" +"Last-Translator: Stanislav Meduna <stano@eunet.sk>\n" +"Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "" + +#: popt.c:1711 +msgid "missing argument" +msgstr "" + +#: popt.c:1713 +msgid "unknown option" +msgstr "" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Vypísa» túto správu" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Zobrazi» struèný návod na pou¾itie" + +#: popthelp.c:90 +#, fuzzy +msgid "Display option defaults in message" +msgstr "Zobrazi» struèný návod na pou¾itie" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "" + +#: popthelp.c:202 +msgid "VAL" +msgstr "" + +#: popthelp.c:206 +msgid "INT" +msgstr "" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "" + +#: popthelp.c:210 +msgid "STRING" +msgstr "" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "" + +#: popthelp.c:215 +msgid "ARG" +msgstr "" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr ""
diff --git a/popt-1.16/po/sl.gmo b/popt-1.16/po/sl.gmo new file mode 100644 index 0000000..01320b2 --- /dev/null +++ b/popt-1.16/po/sl.gmo Binary files differ
diff --git a/popt-1.16/po/sl.po b/popt-1.16/po/sl.po new file mode 100644 index 0000000..3e499ff --- /dev/null +++ b/popt-1.16/po/sl.po
@@ -0,0 +1,137 @@ +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2000-09-05 12:30+0200\n" +"Last-Translator: Roman Maurer <roman.maurer@hermes.si>\n" +"Language-Team: Slovenian <sl@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "" + +#: popt.c:1711 +msgid "missing argument" +msgstr "" + +#: popt.c:1713 +msgid "unknown option" +msgstr "" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Prika¾i to sporoèilo s pomoèjo" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Prika¾i kratko sporoèilo o uporabi" + +#: popthelp.c:90 +#, fuzzy +msgid "Display option defaults in message" +msgstr "Prika¾i kratko sporoèilo o uporabi" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "" + +#: popthelp.c:202 +msgid "VAL" +msgstr "" + +#: popthelp.c:206 +msgid "INT" +msgstr "" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "" + +#: popthelp.c:210 +msgid "STRING" +msgstr "" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "" + +#: popthelp.c:215 +msgid "ARG" +msgstr "" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr ""
diff --git a/popt-1.16/po/stamp-po b/popt-1.16/po/stamp-po new file mode 100644 index 0000000..9788f70 --- /dev/null +++ b/popt-1.16/po/stamp-po
@@ -0,0 +1 @@ +timestamp
diff --git a/popt-1.16/po/sv.gmo b/popt-1.16/po/sv.gmo new file mode 100644 index 0000000..ae2ec35 --- /dev/null +++ b/popt-1.16/po/sv.gmo Binary files differ
diff --git a/popt-1.16/po/sv.po b/popt-1.16/po/sv.po new file mode 100644 index 0000000..2992c2c --- /dev/null +++ b/popt-1.16/po/sv.po
@@ -0,0 +1,143 @@ +# Swedish messages for popt. +# Copyright © 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the popt package. +# Göran Uddeborg <goeran@uddeborg.se>, 2008. +# +# $Revision: 1.4 $ +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-02-23 20:15+0100\n" +"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n" +"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "okänt felnummer" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "flaggtypen (%u) är inte implementerad i popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "argument saknas" + +#: popt.c:1713 +msgid "unknown option" +msgstr "okänd flagga" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "ömsesidigt uteslutande logiska operationer begärdes" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg får inte vara NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "alias är nästade för djupt" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "fel i parametercitering" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "ogiltigt numeriskt värde" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "talet för stort eller för litet" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "minnesallokering misslyckades" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "okänt fel" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Visa denna hjälptext" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Visa en kortfattad användningstext" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Visa standardalternativ för flaggor i meddelande" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Avsluta flaggor" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Hjälpflaggor:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Flaggor implementerade via popt-alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "INGET" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VÄRDE" + +#: popthelp.c:206 +msgid "INT" +msgstr "HELTAL" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LÅNG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LÅNGLÅNG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRÄNG" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLYTTAL" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DUBBEL" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Användning:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[FLAGGA...]"
diff --git a/popt-1.16/po/th.gmo b/popt-1.16/po/th.gmo new file mode 100644 index 0000000..dc2b6d2 --- /dev/null +++ b/popt-1.16/po/th.gmo Binary files differ
diff --git a/popt-1.16/po/th.po b/popt-1.16/po/th.po new file mode 100644 index 0000000..864c3af --- /dev/null +++ b/popt-1.16/po/th.po
@@ -0,0 +1,142 @@ +# Thai translation for popt. +# Copyright (C) 2008 Free Software Foundation, Inc. +# Seksan Poltree <seksan.poltree@gmail.com>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-02-19 15:53+0700\n" +"Last-Translator: Seksan Poltree <seksan.poltree@gmail.com>\n" +"Language-Team: Thai <translation-team-th@lists.sourceforge.net>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Thai\n" +"X-Poedit-Country: THAILAND\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "เกิด errno ที่ไม่รู้จัก" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "ตัวเลือกชนิด (%u) ไม่ถูกอิมพลีเมนต์ใน popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "ไม่พบอาร์กิวเมนต์" + +#: popt.c:1713 +msgid "unknown option" +msgstr "ไม่รู้จักตัวเลือก" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "เกิดการร้องขอร่วมกันของการดำเนินการด้านตรรกะอย่างเดียวกัน" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg ไม่ควรจะเป็น NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "นามแฝงซ้อนกันมากเกินไป" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "เกิดข้อผิดพลาดในการอ้างอิงพารามิเตอร์" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "ค่าตัวเลขผิดพลาด" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "ตัวเลขมีค่ามากหรือน้อยเกินไป" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "การจัดสรรหน่วยความจำผิดพลาด" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "ความผิดพลาดที่ไม่รู้จัก" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "แสดงข้อความช่วยเหลือนี้" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "แสดงข้อความสรุปย่อการใช้งาน" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "แสดงตัวเลือกมาตรฐานในข้อความ" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "ตัวเลือกการสิ้นสุด:" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "ตัวเลือกความช่วยเหลือ:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "ตัวเลือกที่ถูกอิมพลีเมนต์ด้วย popt alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "ไม่มี" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "วิธีใช้:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[ตัวเลือก...]"
diff --git a/popt-1.16/po/tr.gmo b/popt-1.16/po/tr.gmo new file mode 100644 index 0000000..fdc79ba --- /dev/null +++ b/popt-1.16/po/tr.gmo Binary files differ
diff --git a/popt-1.16/po/tr.po b/popt-1.16/po/tr.po new file mode 100644 index 0000000..3910b08 --- /dev/null +++ b/popt-1.16/po/tr.po
@@ -0,0 +1,141 @@ +# Translation of popt to Turkish. +# Nilgun Belma Buguner <nilgun@technologist.com>, 2000. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2000-02-11 13:01+0200\n" +"Last-Translator: Nilgun Belma Buguner <nilgun@technologist.com>\n" +"Language-Team: Turkish <tr@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-9\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "bilinmeyen hata no" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "seçenek türü (%d) popt için geçersiz\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "argüman eksik" + +#: popt.c:1713 +msgid "unknown option" +msgstr "bilinmeyen seçenek" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "birbirini dýþlayan mantýksal iþlemler istendi" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "adlarda çok fazla içiçelikler" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "parametrelerde týrnak iþaretleme hatalý " + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "sayýsal deðer geçersiz" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "sayý ya çok büyük ya da çok küçük" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "bilinmeyen hata" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Bu yardým iletisini gösterir" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Kýsa bir kullaným iletisi göster" + +#: popthelp.c:90 +#, fuzzy +msgid "Display option defaults in message" +msgstr "Kýsa bir kullaným iletisi göster" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "YOK" + +#: popthelp.c:202 +msgid "VAL" +msgstr "DEÐ" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Kullanýmý:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[SEÇENEK...]"
diff --git a/popt-1.16/po/uk.gmo b/popt-1.16/po/uk.gmo new file mode 100644 index 0000000..c443f2f --- /dev/null +++ b/popt-1.16/po/uk.gmo Binary files differ
diff --git a/popt-1.16/po/uk.po b/popt-1.16/po/uk.po new file mode 100644 index 0000000..62e0fde --- /dev/null +++ b/popt-1.16/po/uk.po
@@ -0,0 +1,141 @@ +# Translation into the ukrainian language. +# Copyright (C) 1999 Free Software Foundation, Inc. +# Yuri Syrota <rasta@renome.rovno.ua>, 1999. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 1999-09-30 16:54+0200\n" +"Last-Translator: Yuri Syrota <rasta@renome.rovno.ua>\n" +"Language-Team: Ukrainian <uk@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=koi8-u\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "" + +#: popt.c:1711 +msgid "missing argument" +msgstr "" + +#: popt.c:1713 +msgid "unknown option" +msgstr "" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "ðÏËÁÚÁÔÉ ÃÀ ÄÏצÄËÕ" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "ðÏËÁÚÁÔÉ ËÏÒÏÔËÕ ÄÏצÄËÕ ÐÒÏ ×ÉËÏÒÉÓÔÁÎÎÑ" + +#: popthelp.c:90 +#, fuzzy +msgid "Display option defaults in message" +msgstr "ðÏËÁÚÁÔÉ ËÏÒÏÔËÕ ÄÏצÄËÕ ÐÒÏ ×ÉËÏÒÉÓÔÁÎÎÑ" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "" + +#: popthelp.c:202 +msgid "VAL" +msgstr "" + +#: popthelp.c:206 +msgid "INT" +msgstr "" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "" + +#: popthelp.c:210 +msgid "STRING" +msgstr "" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "" + +#: popthelp.c:215 +msgid "ARG" +msgstr "" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr ""
diff --git a/popt-1.16/po/vi.gmo b/popt-1.16/po/vi.gmo new file mode 100644 index 0000000..f140ad2 --- /dev/null +++ b/popt-1.16/po/vi.gmo Binary files differ
diff --git a/popt-1.16/po/vi.po b/popt-1.16/po/vi.po new file mode 100644 index 0000000..9132e69 --- /dev/null +++ b/popt-1.16/po/vi.po
@@ -0,0 +1,143 @@ +# Vietnamese translation for POPT. +# Copyright © 2008 Free Software Foundation, Inc. +# This file is distributed under the same license as the popt-1.14 package +# Clytie Siddall <clytie@riverland.net.au>, 2007-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-02-18 16:20+1030\n" +"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n" +"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b3\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "số hiệu lỗi không rõ" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "kiểu tùy chọn (%u) chưa được thực hiện trong popt\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "thiếu đối số" + +#: popt.c:1713 +msgid "unknown option" +msgstr "tùy chọn không rõ" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "các thao tác hợp lý loại từ lẫn nhau được yêu cầu" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "« tùy chọn->đối số » không thể vô giá trị" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "các bí danh lồng nhau quá sâu" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "gặp lỗi trong lời trích dẫn tham số" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "giá trị thuộc số không hợp lệ" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "con số quá lớn hay quá nhỏ" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "lỗi cấp phát bộ nhớ" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "lỗi không rõ" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Xem thông điệp trợ giúp này" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Hiển thị thông điệp cách sử dụng ngắn" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "Hiển thị các giá trị mặc định của tùy chọn trong thông điệp" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "Tùy chọn chấm dứt" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "Tùy chọn trợ giúp:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "Các tùy chọn được thực hiện thông qua popt alias/exec:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "KHÔNG CÓ" + +#: popthelp.c:202 +msgid "VAL" +msgstr "GIÁ TRỊ" + +#: popthelp.c:206 +msgid "INT" +msgstr "SỐ NGUYÊN" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "DÀI" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "DÀIDÀI" + +#: popthelp.c:210 +msgid "STRING" +msgstr "CHUỖI" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "NỔI" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "ĐÔI" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ĐỐI SỐ" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "Sử dụng:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[TÙY_CHỌN...]"
diff --git a/popt-1.16/po/wa.gmo b/popt-1.16/po/wa.gmo new file mode 100644 index 0000000..72ca0e7 --- /dev/null +++ b/popt-1.16/po/wa.gmo Binary files differ
diff --git a/popt-1.16/po/wa.po b/popt-1.16/po/wa.po new file mode 100644 index 0000000..b842e10 --- /dev/null +++ b/popt-1.16/po/wa.po
@@ -0,0 +1,145 @@ +# Translation into the walloon language. +# +# Si vos voloz donner on côp di spale pol ratoûrnaedje di Gnome (ou des +# ôtes libes programes) sicrijhoz-mu a l' adresse emile +# <linux-wa@chanae.alphanet.ch>; nos avons co bråmint di l' ovraedje a fé. +# +# Copyright (C) 1999 Free Software Foundation, Inc. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 1999-03-18 23:11+0100\n" +"Last-Translator: Nobody yet\n" +"Language-Team: walon <linux-wa@chanae.alphanet.ch>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "" + +#: popt.c:1711 +msgid "missing argument" +msgstr "" + +#: popt.c:1713 +msgid "unknown option" +msgstr "" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "Mostrer ci messaedje d' aide chal" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "Mostre on court messaedje so kmint vos è siervi" + +#: popthelp.c:90 +#, fuzzy +msgid "Display option defaults in message" +msgstr "Mostre on court messaedje so kmint vos è siervi" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "" + +#: popthelp.c:202 +msgid "VAL" +msgstr "" + +#: popthelp.c:206 +msgid "INT" +msgstr "" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "" + +#: popthelp.c:210 +msgid "STRING" +msgstr "" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "" + +#: popthelp.c:215 +msgid "ARG" +msgstr "" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr ""
diff --git a/popt-1.16/po/zh_CN.gmo b/popt-1.16/po/zh_CN.gmo new file mode 100644 index 0000000..eef17cf --- /dev/null +++ b/popt-1.16/po/zh_CN.gmo Binary files differ
diff --git a/popt-1.16/po/zh_CN.po b/popt-1.16/po/zh_CN.po new file mode 100644 index 0000000..3c1d943 --- /dev/null +++ b/popt-1.16/po/zh_CN.po
@@ -0,0 +1,142 @@ +# translation of translation.po to +# Simplified Chinese Messages for popt +# Copyright (C) 2005, 2007 Free Software Foundation, Inc. +# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005. +# LI Daobing <lidaobing@gmail.com>, 2007, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.14\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2008-02-18 20:16+0800\n" +"Last-Translator: LI Daobing <lidaobing@gmail.com>\n" +"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "未知的错误" + +#: popt.c:1290 +#, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "选项类别 (%u) 没有在 popt 中实现\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "缺少参数" + +#: popt.c:1713 +msgid "unknown option" +msgstr "未知的选项" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "需要 XOR 逻辑运算" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg 不应该为 NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "别名嵌套太深" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "参数引号错误" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "无效的数值" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "数值太大或太小" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "内存分配错误" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "未知的错误" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "显示这个帮助信息" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "显示简短的使用说明" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "在信息中显示默认的选项" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "终止选项" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "帮助选项:" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "通过 popt alias/exec 实现的选项:" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NONE" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +msgid "LONGLONG" +msgstr "LONGLONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "用法:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[选项...]"
diff --git a/popt-1.16/po/zh_TW.gmo b/popt-1.16/po/zh_TW.gmo new file mode 100644 index 0000000..cbf95bd --- /dev/null +++ b/popt-1.16/po/zh_TW.gmo Binary files differ
diff --git a/popt-1.16/po/zh_TW.po b/popt-1.16/po/zh_TW.po new file mode 100644 index 0000000..b73e734 --- /dev/null +++ b/popt-1.16/po/zh_TW.po
@@ -0,0 +1,141 @@ +# Traditional Chinese Messages for popt +# Copyright (C) 2005 Free Software Foundation, Inc. +# Wei-Lun Chao <chaoweilun@pcmail.com.tw>, 2005 +# +msgid "" +msgstr "" +"Project-Id-Version: popt 1.11\n" +"Report-Msgid-Bugs-To: <popt-devel@rpm5.org>\n" +"POT-Creation-Date: 2010-02-17 13:35-0500\n" +"PO-Revision-Date: 2005-04-08 17:52+0800\n" +"Last-Translator: Wei-Lun Chao <chaoweilun@pcmail.com.tw>\n" +"Language-Team: zh_TW <zh-l10n@linux.org.tw>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: popt.c:47 +msgid "unknown errno" +msgstr "未知的錯誤" + +#: popt.c:1290 +#, fuzzy, c-format +msgid "option type (%u) not implemented in popt\n" +msgstr "選項類型 (%d) 沒有在 popt 中實作\n" + +#: popt.c:1711 +msgid "missing argument" +msgstr "缺少引數" + +#: popt.c:1713 +msgid "unknown option" +msgstr "未知的選項" + +#: popt.c:1715 +msgid "mutually exclusive logical operations requested" +msgstr "需要相互獨立的邏輯運算" + +#: popt.c:1717 +msgid "opt->arg should not be NULL" +msgstr "opt->arg 不應為 NULL" + +#: popt.c:1719 +msgid "aliases nested too deeply" +msgstr "巢狀別名太深" + +#: popt.c:1721 +msgid "error in parameter quoting" +msgstr "參數引號錯誤" + +#: popt.c:1723 +msgid "invalid numeric value" +msgstr "不正確的數值" + +#: popt.c:1725 +msgid "number too large or too small" +msgstr "數字太大或太小" + +#: popt.c:1727 +msgid "memory allocation failed" +msgstr "記憶體配置錯誤" + +#: popt.c:1729 +msgid "config file failed sanity test" +msgstr "" + +#: popt.c:1733 +msgid "unknown error" +msgstr "未知的錯誤" + +#: popthelp.c:75 popthelp.c:86 +msgid "Show this help message" +msgstr "顯示本說明訊息" + +#: popthelp.c:76 popthelp.c:87 +msgid "Display brief usage message" +msgstr "顯示簡短的使用說明" + +#: popthelp.c:90 +msgid "Display option defaults in message" +msgstr "在訊息中顯示預設選項" + +#: popthelp.c:92 +msgid "Terminate options" +msgstr "" + +#: popthelp.c:191 +msgid "Help options:" +msgstr "" + +#: popthelp.c:192 +msgid "Options implemented via popt alias/exec:" +msgstr "" + +#: popthelp.c:200 +msgid "NONE" +msgstr "NONE" + +#: popthelp.c:202 +msgid "VAL" +msgstr "VAL" + +#: popthelp.c:206 +msgid "INT" +msgstr "INT" + +#: popthelp.c:207 +msgid "SHORT" +msgstr "" + +#: popthelp.c:208 +msgid "LONG" +msgstr "LONG" + +#: popthelp.c:209 +#, fuzzy +msgid "LONGLONG" +msgstr "LONG" + +#: popthelp.c:210 +msgid "STRING" +msgstr "STRING" + +#: popthelp.c:211 +msgid "FLOAT" +msgstr "FLOAT" + +#: popthelp.c:212 +msgid "DOUBLE" +msgstr "DOUBLE" + +#: popthelp.c:215 +msgid "ARG" +msgstr "ARG" + +#: popthelp.c:649 +msgid "Usage:" +msgstr "用法:" + +#: popthelp.c:672 +msgid "[OPTION...]" +msgstr "[選項...]"
diff --git a/popt-1.16/popt.3 b/popt-1.16/popt.3 new file mode 100644 index 0000000..5d5a556 --- /dev/null +++ b/popt-1.16/popt.3
@@ -0,0 +1,772 @@ +.TH POPT 3 "June 30, 1998" "" "Linux Programmer's Manual" +.SH NAME +popt \- Parse command line options +.SH SYNOPSIS +.nf +.B #include <popt.h> +.sp +.BI "poptContext poptGetContext(const char * " name ", int " argc , +.BI " const char ** "argv , +.BI " const struct poptOption * " options , +.BI " int " flags ); +.sp +.BI "void poptFreeContext(poptContext " con ); +.sp +.BI "void poptResetContext(poptContext " con ); +.sp +.BI "int poptGetNextOpt(poptContext " con ); +.sp +.BI "const char * poptGetOptArg(poptContext " con ); +.sp +.BI "const char * poptGetArg(poptContext " con ); +.sp +.BI "const char * poptPeekArg(poptContext " con ); +.sp +.BI "const char ** poptGetArgs(poptContext " con ); +.sp +.BI "const char *const poptStrerror(const int " error ); +.sp +.BI "const char * poptBadOption(poptContext " con ", int " flags ); +.sp +.BI "int poptReadDefaultConfig(poptContext " con ", int " flags ); +.sp +.BI "int poptReadConfigFile(poptContext " con ", char * " fn ); +.sp +.BI "int poptAddAlias(poptContext " con ", struct poptAlias " alias , +.BI " int " flags ); +.sp +.BI "int poptParseArgvString(char * " s ", int * " argcPtr , +.BI " const char *** " argvPtr ); +.sp +.BI "int poptDupArgv(int " argc ", const char ** " argv ", int * " argcPtr ", +.BI " const char *** " argvPtr ");" +.sp +.BI "int poptStuffArgs(poptContext " con ", const char ** " argv ); +.sp +.fi +.SH DESCRIPTION +The popt library exists essentially for parsing command-line +options. It is found superior in many ways when compared to +parsing the argv array by hand or using the getopt functions +.B getopt() +and +.B getopt_long() +[see +.BR getopt "(3)]." +Some specific advantages of popt are: it does not utilize global +.RI "variables, thus enabling multiple passes in parsing " argv +.RI "; it can parse an arbitrary array of " argv "-style elements, " +allowing parsing of command-line-strings from any source; +it provides a standard method of option aliasing (to be +discussed at length below.); it can exec external option filters; and, +finally, it can automatically generate help and usage messages for +the application. +.sp +Like +.BR getopt_long() , +the popt library supports short and long style options. Recall +that a +.B short option +consists of a - character followed by a single alphanumeric character. +A +.BR "long option" , +common in GNU utilities, consists of two - characters followed by a +string made up of letters, numbers and hyphens. Long options are +optionally allowed to begin with a single -, primarily to allow command-line +compatibility between popt applications and X toolkit applications. +Either type of option may be followed by an argument. A space separates a +short option from its arguments; either a space or an = separates a long +option from an argument. +.sp +The popt library is highly portable and should work on any POSIX +platform. The latest version is distributed with rpm and is always available +from: ftp://ftp.rpm.org/pub/rpm/dist. +.sp +It may be redistributed under the X consortium license, see the file COPYING +in the popt source distribution for details. +.SH "BASIC POPT USAGE" +.SS "1. THE OPTION TABLE" +Applications provide popt with information on their command-line +options by means of an "option table," i.e., an array of +.B struct poptOption +structures: +.sp +#include <popt.h> +.sp +.nf +struct poptOption { + const char * longName; /* may be NULL */ + char shortName; /* may be '\\0' */ + int argInfo; + void * arg; /* depends on argInfo */ + int val; /* 0 means don't return, just update flag */ + char * descrip; /* description for autohelp -- may be NULL */ + char * argDescrip; /* argument description for autohelp */ +}; +.fi +.sp +Each member of the table defines a single option that may be +passed to the program. Long and short options are considered +a single option that may occur in two different forms. The +first two members, +.IR longName " and " shortName ", define the names of the option;" +the first is a long name, while the latter is a single character. +.sp +The +.IR argInfo " member tells popt what type of argument is expected" +after the option. If no argument is expected, +.B POPT_ARG_NONE +should be used. +The rest of the valid values are shown in the following table: +.sp +.TS +lfB lfB lfB +lfB lfR lfR. +Value Description arg Type +POPT_ARG_NONE No argument expected int +POPT_ARG_STRING No type checking to be performed char * +POPT_ARG_ARGV No type checking to be performed char ** +POPT_ARG_SHORT An short argument is expected short +POPT_ARG_INT An integer argument is expected int +POPT_ARG_LONG A long integer is expected long +POPT_ARG_LONGLONG A long long integer is expected long long +POPT_ARG_VAL Integer value taken from \f(CWval\fR int +POPT_ARG_FLOAT An float argument is expected float +POPT_ARG_DOUBLE A double argument is expected double +.TE +.sp +For numeric values, if the \fIargInfo\fR value is bitwise or'd with one of +\fBPOPT_ARGFLAG_OR\fR, \fBPOPT_ARGFLAG_AND\fR, or \fBPOPT_ARGFLAG_XOR\fR, +the value is saved by performing an OR, AND, or XOR. +If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_NOT\fR, +the value will be negated before saving. For the common operations of +setting and/or clearing bits, \fBPOPT_BIT_SET\fR and \fBPOPT_BIT_CLR\fR +have the appropriate flags set to perform bit operations. +.sp +If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_ONEDASH\fR, +the long argument may be given with a single - instead of two. For example, +if \fB--longopt\fR is an option with \fBPOPT_ARGFLAG_ONEDASH\fR, is +specified, \fB-longopt\fR is accepted as well. +.sp +.RI "The next element, " arg ", allows popt to automatically update " +.RI "program variables when the option is used. If " arg " is " +.BR NULL ", it is ignored and popt takes no special action. " +Otherwise it should point to a variable of the type indicated in the +.RB "right-most column of the table above. A " POPT_ARG_ARGV " arg will +(re-)allocate an array of char * string pointers, append the string argument, and add a +.BR NULL " sentinel at the end of the array as needed." +.RB "The target char ** address of a " POPT_ARG_ARGV " arg should be initialized to " NULL "." +.sp +.RI "If the option takes no argument (" argInfo " is " +.BR POPT_ARG_NONE "), the variable pointed to by " +.IR arg " is set to 1 when the option is used. (Incidentally, it " +will perhaps not escape the attention of hunt-and-peck typists that +.RB "the value of " POPT_ARG_NONE " is 0.) If the option does take " +an argument, the variable that +.IR arg " points to is updated to reflect the value of the argument." +.RB "Any string is acceptable for " POPT_ARG_STRING " and " POPT_ARG_ARGV " arguments, but " +.BR POPT_ARG_INT ", " POPT_ARG_SHORT ", " POPT_ARG_LONG ", " POPT_ARG_LONGLONG ", " POPT_ARG_FLOAT ", and " +.BR POPT_ARG_DOUBLE " are converted to the appropriate type, and an " +error returned if the conversion fails. +.sp +\fBPOPT_ARG_VAL\fR causes \fIarg\fP to be set to the (integer) value of +\fIval\fP when the argument is found. This is most often useful for +mutually-exclusive arguments in cases where it is not an error for +multiple arguments to occur and where you want the last argument +specified to win; for example, "rm -i -f". \fBPOPT_ARG_VAL\fP causes +the parsing function not to return a value, since the value of \fIval\fP +has already been used. +.sp +If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_OPTIONAL\fR, +the argument to the long option may be omitted. If the long option +is used without an argument, a default value of zero or NULL will be saved +(if the arg pointer is present), otherwise behavior will be identical to +a long option with argument. +.sp +.RI "The next option, " val ", is the value popt's parsing function +should return when the option is encountered. If it is 0, the parsing +function does not return a value, instead parsing the next +command-line argument. +.sp +.RI "The last two options, " descrip " and " argDescrip " are only required +if automatic help messages are desired (automatic usage messages can +.RI "be generated without them). " descrip " is a text description of the +.RI "argument and " argdescrip " is a short summary of the type of arguments +.RI "the option expects, or NULL if the option doesn't require any +arguments. +.sp +.RB "If popt should automatically provide " --usage " and " --help " (" -? ") +.RB "options, one line in the table should be the macro " POPT_AUTOHELP ". +.RB "This macro includes another option table (via " POPT_ARG_INCLUDE_TABLE +; see below) in the main one which provides the table entries for these +.RB "arguments. When " --usage " or " --help " are passed to programs which +use popt's automatical help, popt displays the appropriate message on +stderr as soon as it finds the option, and exits the program with a +return code of 0. If you want to use popt's automatic help generation in +a different way, you need to explicitly add the option entries to your programs +.RB "option table instead of using " POPT_AUTOHELP ". +.sp +If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_DOC_HIDDEN\fR, +the argument will not be shown in help output. +.sp +If the \fIargInfo\fR value is bitwise or'd with \fBPOPT_ARGFLAG_SHOW_DEFAULT\fR, +the inital value of the arg will be shown in help output. +.sp +The final structure in the table should have all the pointer values set +.RB "to " NULL " and all the arithmetic values set to 0, marking the " +.RB "end of the table. The macro " POPT_TABLEEND " is provided to do that. +.sp +There are two types of option table entries which do not specify command +line options. When either of these types of entries are used, the +\fIlongName\fR element must be \fBNULL\fR and the \fBshortName\fR element +must be \fB'\\0'\fR. +.sp +The first of these special entry types allows the application to nest +another option table in the current one; such nesting may extend quite +deeply (the actual depth is limited by the program's stack). Including +other option tables allows a library to provide a standard set of +command-line options to every program which uses it (this is often done +in graphical programming toolkits, for example). To do this, set +the \fIargInfo\fR field to \fBPOPT_ARG_INCLUDE_TABLE\fR and the +\fRarg\fR field to point to the table which is being included. If +automatic help generation is being used, the \fIdescrip\fR field should +contain a overall description of the option table being included. +.sp +The other special option table entry type tells popt to call a function (a +callback) when any option in that table is found. This is especially usefull +when included option tables are being used, as the program which provides +the top-level option table doesn't need to be aware of the other options +which are provided by the included table. When a callback is set for +a table, the parsing function never returns information on an option in +the table. Instead, options information must be retained via the callback +or by having popt set a variable through the option's \fIarg\fR field. +Option callbacks should match the following prototype: +.sp +.nf +.BI "void poptCallbackType(poptContext con, +.BI " const struct poptOption * opt, +.BI " const char * arg, void * data); +.fi +.sp +The first parameter is the context which is being parsed (see the next +section for information on contexts), \fIopt\fR points to the option +which triggered this callback, and \fIarg\fR is the option's argument. +If the option does not take an argument, \fIarg\fR is \fBNULL\fR. The +final parameter, \fIdata\fR is taken from the \fIdescrip\fR field +of the option table entry which defined the callback. As \fIdescrip\fR +is a pointer, this allows callback functions to be passed an arbitrary +set of data (though a typecast will have to be used). +.sp +The option table entry which defines a callback has an \fIargInfo\fR of +\fBPOPT_ARG_CALLBACK\fR, an \fIarg\fR which points to the callback +function, and a \fIdescrip\fR field which specifies an arbitrary pointer +to be passed to the callback. +.SS "2. CREATING A CONTEXT" +popt can interleave the parsing of multiple command-line sets. It allows +this by keeping all the state information for a particular set of +command-line arguments in a +.BR poptContext " data structure, an opaque type that should not be " +modified outside the popt library. +.sp +.RB "New popt contexts are created by " poptGetContext() ":" +.sp +.nf +.BI "poptContext poptGetContext(const char * " name ", int "argc ", +.BI " const char ** "argv ", +.BI " const struct poptOption * "options ", +.BI " int "flags ");" +.fi +.sp +The first parameter, +.IR name ", is used only for alias handling (discussed later). It " +should be the name of the application whose options are being parsed, +.RB "or should be " NULL " if no option aliasing is desired. The next " +two arguments specify the command-line arguments to parse. These are +.RB "generally passed to " poptGetContext() " exactly as they were " +.RB "passed to the program's " main() " function. The " +.IR options " parameter points to the table of command-line options, " +which was described in the previous section. The final parameter, +.IR flags , +can take one of three values: +.br +.TS +lfB lfB +lfB lfR. +Value Description +POPT_CONTEXT_NO_EXEC Ignore exec expansions +POPT_CONTEXT_KEEP_FIRST Do not ignore argv[0] +POPT_CONTEXT_POSIXMEHARDER Options cannot follow arguments +.TE +.sp +.RB "A " poptContext " keeps track of which options have already been " +parsed and which remain, among other things. If a program wishes to +restart option processing of a set of arguments, it can reset the +.BR poptContext " by passing the context as the sole argument to " +.BR poptResetContext() . +.sp +When argument processing is complete, the process should free the +.BR poptContext " as it contains dynamically allocated components. The " +.BR poptFreeContext() " function takes a " +.BR poptContext " as its sole argument and frees the resources the " +context is using. +.sp +.RB "Here are the prototypes of both " poptResetContext() " and " +.BR poptFreeContext() : +.sp +.nf +.B #include <popt.h> +.BI "void poptFreeContext(poptContext " con ");" +.BI "void poptResetContext(poptContext " con ");" +.fi +.sp +.SS "3. PARSING THE COMMAND LINE" +.RB "After an application has created a " poptContext ", it may begin " +.RB "parsing arguments. " poptGetNextOpt() " performs the actual " +argument parsing. +.sp +.nf +.B #include <popt.h> +.BI "int poptGetNextOpt(poptContext " con ");" +.fi +.sp +Taking the context as its sole argument, this function parses the next +command-line argument found. After finding the next argument in the +option table, the function fills in the object pointed to by the option +.RI "table entry's " arg +.RB "pointer if it is not " NULL ". If the val entry for the option is " +non-0, the function then returns that value. Otherwise, +.BR poptGetNextOpt() " continues on to the next argument." +.sp +.BR poptGetNextOpt() " returns -1 when the final argument has been " +parsed, and other negative values when errors occur. This makes it a +good idea to +.RI "keep the " val " elements in the options table greater than 0." +.sp +.RI "If all of the command-line options are handled through " arg +pointers, command-line parsing is reduced to the following line of code: +.sp +.nf +rc = poptGetNextOpt(poptcon); +.fi +.sp +Many applications require more complex command-line parsing than this, +however, and use the following structure: +.sp +.nf +while ((rc = poptGetNextOpt(poptcon)) > 0) { + switch (rc) { + /* specific arguments are handled here */ + } +} +.fi +.sp +When returned options are handled, the application needs to know the +value of any arguments that were specified after the option. There are two +ways to discover them. One is to ask popt to fill in a variable with the +.RI "value of the option through the option table's " arg " elements. The " +.RB "other is to use " poptGetOptArg() ":" +.sp +.nf +.B #include <popt.h> +.BI "char * poptGetOptArg(poptContext " con ");" +.fi +.sp +This function returns the argument given for the final option returned by +.BR poptGetNextOpt() ", or it returns " NULL " if no argument was specified." +The calling function is responsible for deallocating this string. +.sp +.SS "4. LEFTOVER ARGUMENTS" +Many applications take an arbitrary number of command-line arguments, +such as a list of file names. When popt encounters an argument that does +not begin with a -, it assumes it is such an argument and adds it to a list +of leftover arguments. Three functions allow applications to access such +arguments: +.nf +.HP +.BI "const char * poptGetArg(poptContext " con ");" +.fi +This function returns the next leftover argument and marks it as +processed. +.PP +.nf +.HP +.BI "const char * poptPeekArg(poptContext " con ");" +.fi +The next leftover argument is returned but not marked as processed. +This allows an application to look ahead into the argument list, +without modifying the list. +.PP +.nf +.HP +.BI "const char ** poptGetArgs(poptContext " con ");" +.fi +All the leftover arguments are returned in a manner identical to +.IR argv ". The final element in the returned array points to " +.BR NULL ", indicating the end of the arguments. +.sp +.SS "5. AUTOMATIC HELP MESSAGES" +The \fBpopt\fR library can automatically generate help messages which +describe the options a program accepts. There are two types of help +messages which can be generated. Usage messages are a short messages +which lists valid options, but does not describe them. Help messages +describe each option on one (or more) lines, resulting in a longer, but +more useful, message. Whenever automatic help messages are used, the +\fBdescrip\fR and \fBargDescrip\fR fields \fBstruct poptOption\fR members +should be filled in for each option. +.sp +The \fBPOPT_AUTOHELP\fR macro makes it easy to add \fB--usage\fR and +\fB--help\fR messages to your program, and is described in part 1 +of this man page. If more control is needed over your help messages, +the following two functions are available: +.sp +.nf +.B #include <popt.h> +.BI "void poptPrintHelp(poptContext " con ", FILE * " f ", int " flags "); +.BI "void poptPrintUsage(poptContext " con ", FILE * " f ", int " flags "); +.fi +.sp +\fBpoptPrintHelp()\fR displays the standard help message to the stdio file +descriptor f, while \fBpoptPrintUsage()\fR displays the shorter usage +message. Both functions currently ignore the \fBflags\fR argument; it is +there to allow future changes. +.sp +.SH "ERROR HANDLING" +All of the popt functions that can return errors return integers. +When an error occurs, a negative error code is returned. The +following table summarizes the error codes that occur: +.sp +.nf +.B " Error Description" +.BR "POPT_ERROR_NOARG " "Argument missing for an option." +.BR "POPT_ERROR_BADOPT " "Option's argument couldn't be parsed." +.BR "POPT_ERROR_OPTSTOODEEP " "Option aliasing nested too deeply." +.BR "POPT_ERROR_BADQUOTE " "Quotations do not match." +.BR "POPT_ERROR_BADNUMBER " "Option couldn't be converted to number." +.BR "POPT_ERROR_OVERFLOW " "A given number was too big or small." +.fi +.sp +Here is a more detailed discussion of each error: +.sp +.TP +.B POPT_ERROR_NOARG +An option that requires an argument was specified on the command +line, but no argument was given. This can be returned only by +.BR poptGetNextOpt() . +.sp +.TP +.B POPT_ERROR_BADOPT +.RI "An option was specified in " argv " but is not in the option +.RB "table. This error can be returned only from " poptGetNextOpt() . +.sp +.TP +.B POPT_ERROR_OPTSTOODEEP +A set of option aliases is nested too deeply. Currently, popt +follows options only 10 levels to prevent infinite recursion. Only +.BR poptGetNextOpt() " can return this error." +.sp +.TP +.B POPT_ERROR_BADQUOTE +A parsed string has a quotation mismatch (such as a single quotation +.RB "mark). " poptParseArgvString() ", " poptReadConfigFile() ", or " +.BR poptReadDefaultConfig() " can return this error." +.sp +.TP +.B POPT_ERROR_BADNUMBER +A conversion from a string to a number (int or long) failed due +to the string containing nonnumeric characters. This occurs when +.BR poptGetNextOpt() " is processing an argument of type " +.BR POPT_ARG_INT ", " POPT_ARG_SHORT ", " POPT_ARG_LONG ", " POPT_ARG_LONGLONG ", " +.RB POPT_ARG_FLOAT ", or " POPT_ARG_DOUBLE "." +.sp +.TP +.B POPT_ERROR_OVERFLOW +A string-to-number conversion failed because the number was too +.RB "large or too small. Like " POPT_ERROR_BADNUMBER ", this error +.RB "can occur only when " poptGetNextOpt() " is processing an " +.RB "argument of type " POPT_ARG_INT ", " POPT_ARG_SHORT ", " POPT_ARG_LONG ", " POPT_ARG_LONGLONG ", " +.RB POPT_ARG_FLOAT ", or " POPT_ARG_DOUBLE "." +.sp +.TP +.B POPT_ERROR_ERRNO +.RI "A system call returned with an error, and " errno " still +contains the error from the system call. Both +.BR poptReadConfigFile() " and " poptReadDefaultConfig() " can " +return this error. +.sp +.PP +Two functions are available to make it easy for applications to provide +good error messages. +.HP +.nf +.BI "const char *const poptStrerror(const int " error ");" +.fi +This function takes a popt error code and returns a string describing +.RB "the error, just as with the standard " strerror() " function." +.PP +.HP +.nf +.BI "const char * poptBadOption(poptContext " con ", int " flags ");" +.fi +.RB "If an error occurred during " poptGetNextOpt() ", this function " +.RI "returns the option that caused the error. If the " flags " argument" +.RB "is set to " POPT_BADOPTION_NOALIAS ", the outermost option is " +.RI "returned. Otherwise, " flags " should be 0, and the option that is " +returned may have been specified through an alias. +.PP +These two functions make popt error handling trivial for most +applications. When an error is detected from most of the functions, +an error message is printed along with the error string from +.BR poptStrerror() ". When an error occurs during argument parsing, " +code similiar to the following displays a useful error message: +.sp +.nf +fprintf(stderr, "%s: %s\\n", + poptBadOption(optCon, POPT_BADOPTION_NOALIAS), + poptStrerror(rc)); +.fi +.sp +.SH "OPTION ALIASING" +.RB "One of the primary benefits of using popt over " getopt() " is the " +ability to use option aliasing. This lets the user specify options that +popt expands into other options when they are specified. If the standard +.RB "grep program made use of popt, users could add a " --text " option " +.RB "that expanded to " "-i -n -E -2" " to let them more easily find " +information in text files. +.sp +.SS "1. SPECIFYING ALIASES" +.RI "Aliases are normally specified in two places: " /etc/popt +.RB "and the " .popt " file in the user's home directory (found through " +.RB "the " HOME " environment variable). Both files have the same format, " +an arbitrary number of lines formatted like this: +.sp +.IB appname " alias " newoption "" " expansion" +.sp +.RI "The " appname " is the name of the application, which must be the " +.RI "same as the " name " parameter passed to " +.BR poptGetContext() ". This allows each file to specify aliases for " +.RB "multiple programs. The " alias " keyword specifies that an alias is " +being defined; currently popt configuration files support only aliases, but +other abilities may be added in the future. The next option is the option +that should be aliased, and it may be either a short or a long option. The +rest of the line specifies the expansion for the alias. It is parsed +similarly to a shell command, which allows \\, ", and ' to be used for +quoting. If a backslash is the final character on a line, the next line +in the file is assumed to be a logical continuation of the line containing +the backslash, just as in shell. +.sp +.RB "The following entry would add a " --text " option to the grep command, " +as suggested at the beginning of this section. +.sp +.B "grep alias --text -i -n -E -2" +.SS "2. ENABLING ALIASES" +.RB "An application must enable alias expansion for a " poptContext +.RB "before calling " poptGetNextArg() " for the first time. There are " +three functions that define aliases for a context: +.HP +.nf +.BI "int poptReadDefaultConfig(poptContext " con ", int " flags ");" +.fi +.RI "This function reads aliases from " /etc/popt " and the " +.BR .popt " file in the user's home directory. Currently, " +.IR flags " should be " +.BR NULL ", as it is provided only for future expansion." +.PP +.HP +.nf +.BI "int poptReadConfigFile(poptContext " con ", char * " fn ");" +.fi +.RI "The file specified by " fn " is opened and parsed as a popt " +configuration file. This allows programs to use program-specific +configuration files. +.PP +.HP +.nf +.BI "int poptAddAlias(poptContext " con ", struct poptAlias " alias ", +.BI " int " flags ");" +.fi +Occasionally, processes want to specify aliases without having to +read them from a configuration file. This function adds a new alias +.RI "to a context. The " flags " argument should be 0, as it is " +currently reserved for future expansion. The new alias is specified +.RB "as a " "struct poptAlias" ", which is defined as:" +.sp +.nf +struct poptAlias { + const char * longName; /* may be NULL */ + char shortName; /* may be '\\0' */ + int argc; + const char ** argv; /* must be free()able */ +}; +.fi +.sp +.RI "The first two elements, " longName " and " shortName ", specify " +.RI "the option that is aliased. The final two, " argc " and " argv "," +define the expansion to use when the aliases option is encountered. +.PP +.SH "PARSING ARGUMENT STRINGS" +Although popt is usually used for parsing arguments already divided into +.RI "an " argv "-style array, some programs need to parse strings that " +are formatted identically to command lines. To facilitate this, popt +provides a function that parses a string into an array of strings, +using rules similiar to normal shell parsing. +.sp +.nf +.B "#include <popt.h>" +.BI "int poptParseArgvString(char * " s ", int * " argcPtr ", +.BI " char *** " argvPtr ");" +.BI "int poptDupArgv(int " argc ", const char ** " argv ", int * " argcPtr ", +.BI " const char *** " argvPtr ");" +.fi +.sp +.RI "The string s is parsed into an " argv "-style array. The integer " +.RI "pointed to by the " argcPtr " parameter contains the number of elements " +.RI "parsed, and the final " argvPtr " parameter contains the address of the" +newly created array. +.RB "The routine " poptDupArgv() " can be used to make a copy of an existing " +argument array. +.sp +.RI "The " argvPtr +.RB "created by " poptParseArgvString() " or " poptDupArgv() " is suitable to pass directly " +.RB "to " poptGetContext() . +Both routines return a single dynamically allocated contiguous +.RB "block of storage and should be " free() "ed when the application is" +finished with the storage. +.SH "HANDLING EXTRA ARGUMENTS" +Some applications implement the equivalent of option aliasing but need +.RB "to do so through special logic. The " poptStuffArgs() " function " +allows an application to insert new arguments into the current +.BR poptContext . +.sp +.nf +.B "#include <popt.h>" +.BI "int poptStuffArgs(poptContext "con ", const char ** " argv ");" +.fi +.sp +.RI "The passed " argv +.RB "must have a " NULL " pointer as its final element. When " +.BR poptGetNextOpt() " is next called, the " +"stuffed" arguments are the first to be parsed. popt returns to the +normal arguments once all the stuffed arguments have been exhausted. +.SH "EXAMPLE" +The following example is a simplified version of the program "robin" +which appears in Chapter 15 of the text cited below. Robin has +been stripped of everything but its argument-parsing logic, slightly +reworked, and renamed "parse." It may prove useful in illustrating +at least some of the features of the extremely rich popt library. +.sp +.nf +#include <popt.h> +#include <stdio.h> + +void usage(poptContext optCon, int exitcode, char *error, char *addl) { + poptPrintUsage(optCon, stderr, 0); + if (error) fprintf(stderr, "%s: %s\n", error, addl); + exit(exitcode); +} + +int main(int argc, char *argv[]) { + char c; /* used for argument parsing */ + int i = 0; /* used for tracking options */ + char *portname; + int speed = 0; /* used in argument parsing to set speed */ + int raw = 0; /* raw mode? */ + int j; + char buf[BUFSIZ+1]; + poptContext optCon; /* context for parsing command-line options */ + + struct poptOption optionsTable[] = { + { "bps", 'b', POPT_ARG_INT, &speed, 0, + "signaling rate in bits-per-second", "BPS" }, + { "crnl", 'c', 0, 0, 'c', + "expand cr characters to cr/lf sequences", NULL }, + { "hwflow", 'h', 0, 0, 'h', + "use hardware (RTS/CTS) flow control", NULL }, + { "noflow", 'n', 0, 0, 'n', + "use no flow control", NULL }, + { "raw", 'r', 0, &raw, 0, + "don't perform any character conversions", NULL }, + { "swflow", 's', 0, 0, 's', + "use software (XON/XOF) flow control", NULL } , + POPT_AUTOHELP + { NULL, 0, 0, NULL, 0 } + }; + + optCon = poptGetContext(NULL, argc, argv, optionsTable, 0); + poptSetOtherOptionHelp(optCon, "[OPTIONS]* <port>"); + + if (argc < 2) { + poptPrintUsage(optCon, stderr, 0); + exit(1); + } + + /* Now do options processing, get portname */ + while ((c = poptGetNextOpt(optCon)) >= 0) { + switch (c) { + case 'c': + buf[i++] = 'c'; + break; + case 'h': + buf[i++] = 'h'; + break; + case 's': + buf[i++] = 's'; + break; + case 'n': + buf[i++] = 'n'; + break; + } + } + portname = poptGetArg(optCon); + if((portname == NULL) || !(poptPeekArg(optCon) == NULL)) + usage(optCon, 1, "Specify a single port", ".e.g., /dev/cua0"); + + if (c < -1) { + /* an error occurred during option processing */ + fprintf(stderr, "%s: %s\\n", + poptBadOption(optCon, POPT_BADOPTION_NOALIAS), + poptStrerror(c)); + return 1; + } + + /* Print out options, portname chosen */ + printf("Options chosen: "); + for(j = 0; j < i ; j++) + printf("-%c ", buf[j]); + if(raw) printf("-r "); + if(speed) printf("-b %d ", speed); + printf("\\nPortname chosen: %s\\n", portname); + + poptFreeContext(optCon); + exit(0); +} +.fi +.sp +RPM, a popular Linux package management program, makes heavy use +of popt's features. Many of its command-line arguments are implemented +through popt aliases, which makes RPM an excellent example of how to +take advantage of the popt library. For more information on RPM, see +http://www.rpm.org. The popt source code distribution includes test +program(s) which use all of the features of the popt libraries in +various ways. If a feature isn't working for you, the popt test code +is the first place to look. +.SH BUGS +None presently known. +.SH AUTHOR +Erik W. Troan <ewt@redhat.com> +.PP +This man page is derived in part from +.IR "Linux Application Development" +by Michael K. Johnson and Erik W. Troan, Copyright (c) 1998 by Addison +Wesley Longman, Inc., and included in the popt documentation with the +permission of the Publisher and the appreciation of the Authors. +.PP +Thanks to Robert Lynch for his extensive work on this man page. +.SH "SEE ALSO" +.BR getopt (3) +.sp +.IR "Linux Application Development" ", by Michael K. Johnson and " +Erik W. Troan (Addison-Wesley, 1998; ISBN 0-201-30821-5), Chapter 24. +.sp +.BR popt.ps " is a Postscript version of the above cited book " +chapter. It can be found in the source archive for popt available at: +ftp://ftp.rpm.org/pub/rpm.
diff --git a/popt-1.16/popt.c b/popt-1.16/popt.c new file mode 100644 index 0000000..a1c38a5 --- /dev/null +++ b/popt-1.16/popt.c
@@ -0,0 +1,1787 @@ +/** \ingroup popt + * \file popt/popt.c + */ + +/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING + file accompanying popt source distributions, available from + ftp://ftp.rpm.org/pub/rpm/dist */ + +#undef MYDEBUG + +#include "system.h" + +#if defined(__LCLINT__) +/*@-declundef -exportheader @*/ +extern long long int strtoll(const char *nptr, /*@null@*/ char **endptr, + int base) + /*@modifies *endptr@*/; +/*@=declundef =exportheader @*/ +#endif + +#ifdef HAVE_FLOAT_H +#include <float.h> +#endif +#include <math.h> + +#include "poptint.h" + +#ifdef MYDEBUG +/*@unchecked@*/ +int _popt_debug = 0; +#endif + +/*@unchecked@*/ +unsigned int _poptArgMask = POPT_ARG_MASK; +/*@unchecked@*/ +unsigned int _poptGroupMask = POPT_GROUP_MASK; + +#if !defined(HAVE_STRERROR) && !defined(__LCLINT__) +static char * strerror(int errno) +{ + extern int sys_nerr; + extern char * sys_errlist[]; + + if ((0 <= errno) && (errno < sys_nerr)) + return sys_errlist[errno]; + else + return POPT_("unknown errno"); +} +#endif + +#ifdef MYDEBUG +/*@unused@*/ +static void prtcon(const char *msg, poptContext con) +{ + if (msg) fprintf(stderr, "%s", msg); + fprintf(stderr, "\tcon %p os %p nextCharArg \"%s\" nextArg \"%s\" argv[%d] \"%s\"\n", + con, con->os, + (con->os->nextCharArg ? con->os->nextCharArg : ""), + (con->os->nextArg ? con->os->nextArg : ""), + con->os->next, + (con->os->argv && con->os->argv[con->os->next] + ? con->os->argv[con->os->next] : "")); +} +#endif + +void poptSetExecPath(poptContext con, const char * path, int allowAbsolute) +{ + con->execPath = _free(con->execPath); + con->execPath = xstrdup(path); + con->execAbsolute = allowAbsolute; + return; +} + +static void invokeCallbacksPRE(poptContext con, const struct poptOption * opt) + /*@globals internalState@*/ + /*@modifies internalState@*/ +{ + if (opt != NULL) + for (; opt->longName || opt->shortName || opt->arg; opt++) { + poptArg arg = { .ptr = opt->arg }; + if (arg.ptr) + switch (poptArgType(opt)) { + case POPT_ARG_INCLUDE_TABLE: /* Recurse on included sub-tables. */ + poptSubstituteHelpI18N(arg.opt); /* XXX side effects */ + invokeCallbacksPRE(con, arg.opt); + /*@switchbreak@*/ break; + case POPT_ARG_CALLBACK: /* Perform callback. */ + if (!CBF_ISSET(opt, PRE)) + /*@switchbreak@*/ break; +/*@-noeffectuncon @*/ /* XXX no known way to annotate (*vector) calls. */ + arg.cb(con, POPT_CALLBACK_REASON_PRE, NULL, NULL, opt->descrip); +/*@=noeffectuncon @*/ + /*@switchbreak@*/ break; + } + } +} + +static void invokeCallbacksPOST(poptContext con, const struct poptOption * opt) + /*@globals internalState@*/ + /*@modifies internalState@*/ +{ + if (opt != NULL) + for (; opt->longName || opt->shortName || opt->arg; opt++) { + poptArg arg = { .ptr = opt->arg }; + if (arg.ptr) + switch (poptArgType(opt)) { + case POPT_ARG_INCLUDE_TABLE: /* Recurse on included sub-tables. */ + poptSubstituteHelpI18N(arg.opt); /* XXX side effects */ + invokeCallbacksPOST(con, arg.opt); + /*@switchbreak@*/ break; + case POPT_ARG_CALLBACK: /* Perform callback. */ + if (!CBF_ISSET(opt, POST)) + /*@switchbreak@*/ break; +/*@-noeffectuncon @*/ /* XXX no known way to annotate (*vector) calls. */ + arg.cb(con, POPT_CALLBACK_REASON_POST, NULL, NULL, opt->descrip); +/*@=noeffectuncon @*/ + /*@switchbreak@*/ break; + } + } +} + +static void invokeCallbacksOPTION(poptContext con, + const struct poptOption * opt, + const struct poptOption * myOpt, + /*@null@*/ const void * myData, int shorty) + /*@globals internalState@*/ + /*@modifies internalState@*/ +{ + const struct poptOption * cbopt = NULL; + poptArg cbarg = { .ptr = NULL }; + + if (opt != NULL) + for (; opt->longName || opt->shortName || opt->arg; opt++) { + poptArg arg = { .ptr = opt->arg }; + switch (poptArgType(opt)) { + case POPT_ARG_INCLUDE_TABLE: /* Recurse on included sub-tables. */ + poptSubstituteHelpI18N(arg.opt); /* XXX side effects */ + if (opt->arg != NULL) + invokeCallbacksOPTION(con, opt->arg, myOpt, myData, shorty); + /*@switchbreak@*/ break; + case POPT_ARG_CALLBACK: /* Save callback info. */ + if (CBF_ISSET(opt, SKIPOPTION)) + /*@switchbreak@*/ break; + cbopt = opt; + cbarg.ptr = opt->arg; + /*@switchbreak@*/ break; + default: /* Perform callback on matching option. */ + if (cbopt == NULL || cbarg.cb == NULL) + /*@switchbreak@*/ break; + if ((myOpt->shortName && opt->shortName && shorty && + myOpt->shortName == opt->shortName) + || (myOpt->longName != NULL && opt->longName != NULL && + !strcmp(myOpt->longName, opt->longName))) + { const void *cbData = (cbopt->descrip ? cbopt->descrip : myData); +/*@-noeffectuncon @*/ /* XXX no known way to annotate (*vector) calls. */ + cbarg.cb(con, POPT_CALLBACK_REASON_OPTION, + myOpt, con->os->nextArg, cbData); +/*@=noeffectuncon @*/ + /* Terminate (unless explcitly continuing). */ + if (!CBF_ISSET(cbopt, CONTINUE)) + return; + } + /*@switchbreak@*/ break; + } + } +} + +poptContext poptGetContext(const char * name, int argc, const char ** argv, + const struct poptOption * options, unsigned int flags) +{ + poptContext con = malloc(sizeof(*con)); + + if (con == NULL) return NULL; /* XXX can't happen */ + memset(con, 0, sizeof(*con)); + + con->os = con->optionStack; + con->os->argc = argc; +/*@-dependenttrans -assignexpose@*/ /* FIX: W2DO? */ + con->os->argv = argv; +/*@=dependenttrans =assignexpose@*/ + con->os->argb = NULL; + + if (!(flags & POPT_CONTEXT_KEEP_FIRST)) + con->os->next = 1; /* skip argv[0] */ + + con->leftovers = calloc( (size_t)(argc + 1), sizeof(*con->leftovers) ); +/*@-dependenttrans -assignexpose@*/ /* FIX: W2DO? */ + con->options = options; +/*@=dependenttrans =assignexpose@*/ + con->aliases = NULL; + con->numAliases = 0; + con->flags = flags; + con->execs = NULL; + con->numExecs = 0; + con->finalArgvAlloced = argc * 2; + con->finalArgv = calloc( (size_t)con->finalArgvAlloced, sizeof(*con->finalArgv) ); + con->execAbsolute = 1; + con->arg_strip = NULL; + + if (getenv("POSIXLY_CORRECT") || getenv("POSIX_ME_HARDER")) + con->flags |= POPT_CONTEXT_POSIXMEHARDER; + + if (name) + con->appName = xstrdup(name); + + invokeCallbacksPRE(con, con->options); + + return con; +} + +static void cleanOSE(/*@special@*/ struct optionStackEntry *os) + /*@uses os @*/ + /*@releases os->nextArg, os->argv, os->argb @*/ + /*@modifies os @*/ +{ + os->nextArg = _free(os->nextArg); + os->argv = _free(os->argv); + os->argb = PBM_FREE(os->argb); +} + +void poptResetContext(poptContext con) +{ + int i; + + if (con == NULL) return; + while (con->os > con->optionStack) { + cleanOSE(con->os--); + } + con->os->argb = PBM_FREE(con->os->argb); + con->os->currAlias = NULL; + con->os->nextCharArg = NULL; + con->os->nextArg = NULL; + con->os->next = 1; /* skip argv[0] */ + + con->numLeftovers = 0; + con->nextLeftover = 0; + con->restLeftover = 0; + con->doExec = NULL; + + if (con->finalArgv != NULL) + for (i = 0; i < con->finalArgvCount; i++) { +/*@-unqualifiedtrans@*/ /* FIX: typedef double indirection. */ + con->finalArgv[i] = _free(con->finalArgv[i]); +/*@=unqualifiedtrans@*/ + } + + con->finalArgvCount = 0; + con->arg_strip = PBM_FREE(con->arg_strip); +/*@-nullstate@*/ /* FIX: con->finalArgv != NULL */ + return; +/*@=nullstate@*/ +} + +/* Only one of longName, shortName should be set, not both. */ +static int handleExec(/*@special@*/ poptContext con, + /*@null@*/ const char * longName, char shortName) + /*@uses con->execs, con->numExecs, con->flags, con->doExec, + con->finalArgv, con->finalArgvAlloced, con->finalArgvCount @*/ + /*@modifies con @*/ +{ + poptItem item; + int i; + + if (con->execs == NULL || con->numExecs <= 0) /* XXX can't happen */ + return 0; + + for (i = con->numExecs - 1; i >= 0; i--) { + item = con->execs + i; + if (longName && !(item->option.longName && + !strcmp(longName, item->option.longName))) + continue; + else if (shortName != item->option.shortName) + continue; + break; + } + if (i < 0) return 0; + + + if (con->flags & POPT_CONTEXT_NO_EXEC) + return 1; + + if (con->doExec == NULL) { + con->doExec = con->execs + i; + return 1; + } + + /* We already have an exec to do; remember this option for next + time 'round */ + if ((con->finalArgvCount + 1) >= (con->finalArgvAlloced)) { + con->finalArgvAlloced += 10; + con->finalArgv = realloc(con->finalArgv, + sizeof(*con->finalArgv) * con->finalArgvAlloced); + } + + i = con->finalArgvCount++; + if (con->finalArgv != NULL) /* XXX can't happen */ + { char *s = malloc((longName ? strlen(longName) : 0) + sizeof("--")); + if (s != NULL) { /* XXX can't happen */ + con->finalArgv[i] = s; + *s++ = '-'; + if (longName) + s = stpcpy( stpcpy(s, "-"), longName); + else + *s++ = shortName; + *s = '\0'; + } else + con->finalArgv[i] = NULL; + } + + return 1; +} + +/** + * Compare long option for equality, adjusting for POPT_ARGFLAG_TOGGLE. + * @param opt option + * @param longName arg option + * @param longNameLen arg option length + * @return does long option match? + */ +static int +longOptionStrcmp(const struct poptOption * opt, + /*@null@*/ const char * longName, size_t longNameLen) + /*@*/ +{ + const char * optLongName = opt->longName; + int rc; + + if (optLongName == NULL || longName == NULL) /* XXX can't heppen */ + return 0; + + if (F_ISSET(opt, TOGGLE)) { + if (optLongName[0] == 'n' && optLongName[1] == 'o') { + optLongName += sizeof("no") - 1; + if (optLongName[0] == '-') + optLongName++; + } + if (longName[0] == 'n' && longName[1] == 'o') { + longName += sizeof("no") - 1; + longNameLen -= sizeof("no") - 1; + if (longName[0] == '-') { + longName++; + longNameLen--; + } + } + } + rc = (int)(strlen(optLongName) == longNameLen); + if (rc) + rc = (int)(strncmp(optLongName, longName, longNameLen) == 0); + return rc; +} + +/* Only one of longName, shortName may be set at a time */ +static int handleAlias(/*@special@*/ poptContext con, + /*@null@*/ const char * longName, size_t longNameLen, + char shortName, + /*@exposed@*/ /*@null@*/ const char * nextArg) + /*@uses con->aliases, con->numAliases, con->optionStack, con->os, + con->os->currAlias, con->os->currAlias->option.longName @*/ + /*@modifies con @*/ +{ + poptItem item = con->os->currAlias; + int rc; + int i; + + if (item) { + if (longName && item->option.longName != NULL + && longOptionStrcmp(&item->option, longName, longNameLen)) + return 0; + else + if (shortName && shortName == item->option.shortName) + return 0; + } + + if (con->aliases == NULL || con->numAliases <= 0) /* XXX can't happen */ + return 0; + + for (i = con->numAliases - 1; i >= 0; i--) { + item = con->aliases + i; + if (longName) { + if (item->option.longName == NULL) + continue; + if (!longOptionStrcmp(&item->option, longName, longNameLen)) + continue; + } else if (shortName != item->option.shortName) + continue; + break; + } + if (i < 0) return 0; + + if ((con->os - con->optionStack + 1) == POPT_OPTION_DEPTH) + return POPT_ERROR_OPTSTOODEEP; + + if (longName == NULL && nextArg != NULL && *nextArg != '\0') + con->os->nextCharArg = nextArg; + + con->os++; + con->os->next = 0; + con->os->stuffed = 0; + con->os->nextArg = NULL; + con->os->nextCharArg = NULL; + con->os->currAlias = con->aliases + i; + { const char ** av; + int ac = con->os->currAlias->argc; + /* Append --foo=bar arg to alias argv array (if present). */ + if (longName && nextArg != NULL && *nextArg != '\0') { + av = malloc((ac + 1 + 1) * sizeof(*av)); + if (av != NULL) { /* XXX won't happen. */ + for (i = 0; i < ac; i++) { + av[i] = con->os->currAlias->argv[i]; + } + av[ac++] = nextArg; + av[ac] = NULL; + } else /* XXX revert to old popt behavior if malloc fails. */ + av = con->os->currAlias->argv; + } else + av = con->os->currAlias->argv; + rc = poptDupArgv(ac, av, &con->os->argc, &con->os->argv); + if (av != NULL && av != con->os->currAlias->argv) + free(av); + } + con->os->argb = NULL; + + return (rc ? rc : 1); +} + +/** + * Return absolute path to executable by searching PATH. + * @param argv0 name of executable + * @return (malloc'd) absolute path to executable (or NULL) + */ +static /*@null@*/ +const char * findProgramPath(/*@null@*/ const char * argv0) + /*@*/ +{ + char *path = NULL, *s = NULL, *se; + char *t = NULL; + + if (argv0 == NULL) return NULL; /* XXX can't happen */ + + /* If there is a / in argv[0], it has to be an absolute path. */ + /* XXX Hmmm, why not if (argv0[0] == '/') ... instead? */ + if (strchr(argv0, '/')) + return xstrdup(argv0); + + if ((path = getenv("PATH")) == NULL || (path = xstrdup(path)) == NULL) + return NULL; + + /* The return buffer in t is big enough for any path. */ + if ((t = malloc(strlen(path) + strlen(argv0) + sizeof("/"))) != NULL) + for (s = path; s && *s; s = se) { + + /* Snip PATH element into [s,se). */ + if ((se = strchr(s, ':'))) + *se++ = '\0'; + + /* Append argv0 to PATH element. */ + (void) stpcpy(stpcpy(stpcpy(t, s), "/"), argv0); + + /* If file is executable, bingo! */ + if (!access(t, X_OK)) + break; + } + + /* If no executable was found in PATH, return NULL. */ +/*@-compdef@*/ + if (!(s && *s) && t != NULL) + t = _free(t); +/*@=compdef@*/ +/*@-modobserver -observertrans -usedef @*/ + path = _free(path); +/*@=modobserver =observertrans =usedef @*/ + + return t; +} + +static int execCommand(poptContext con) + /*@globals internalState @*/ + /*@modifies internalState @*/ +{ + poptItem item = con->doExec; + poptArgv argv = NULL; + int argc = 0; + int rc; + int ec = POPT_ERROR_ERRNO; + + if (item == NULL) /*XXX can't happen*/ + return POPT_ERROR_NOARG; + + if (item->argv == NULL || item->argc < 1 || + (!con->execAbsolute && strchr(item->argv[0], '/'))) + return POPT_ERROR_NOARG; + + argv = malloc(sizeof(*argv) * + (6 + item->argc + con->numLeftovers + con->finalArgvCount)); + if (argv == NULL) return POPT_ERROR_MALLOC; + + if (!strchr(item->argv[0], '/') && con->execPath != NULL) { + char *s = malloc(strlen(con->execPath) + strlen(item->argv[0]) + sizeof("/")); + if (s) + (void)stpcpy(stpcpy(stpcpy(s, con->execPath), "/"), item->argv[0]); + + argv[argc] = s; + } else + argv[argc] = findProgramPath(item->argv[0]); + if (argv[argc++] == NULL) { + ec = POPT_ERROR_NOARG; + goto exit; + } + + if (item->argc > 1) { + memcpy(argv + argc, item->argv + 1, sizeof(*argv) * (item->argc - 1)); + argc += (item->argc - 1); + } + + if (con->finalArgv != NULL && con->finalArgvCount > 0) { + memcpy(argv + argc, con->finalArgv, + sizeof(*argv) * con->finalArgvCount); + argc += con->finalArgvCount; + } + + if (con->leftovers != NULL && con->numLeftovers > 0) { + memcpy(argv + argc, con->leftovers, sizeof(*argv) * con->numLeftovers); + argc += con->numLeftovers; + } + + argv[argc] = NULL; + +#if defined(hpux) || defined(__hpux) + rc = setresgid(getgid(), getgid(),-1); + if (rc) goto exit; + rc = setresuid(getuid(), getuid(),-1); + if (rc) goto exit; +#else +/* + * XXX " ... on BSD systems setuid() should be preferred over setreuid()" + * XXX sez' Timur Bakeyev <mc@bat.ru> + * XXX from Norbert Warmuth <nwarmuth@privat.circular.de> + */ +#if defined(HAVE_SETUID) + rc = setgid(getgid()); + if (rc) goto exit; + rc = setuid(getuid()); + if (rc) goto exit; +#elif defined (HAVE_SETREUID) + rc = setregid(getgid(), getgid()); + if (rc) goto exit; + rc = setreuid(getuid(), getuid()); + if (rc) goto exit; +#else + ; /* Can't drop privileges */ +#endif +#endif + +#ifdef MYDEBUG +if (_popt_debug) + { poptArgv avp; + fprintf(stderr, "==> execvp(%s) argv[%d]:", argv[0], argc); + for (avp = argv; *avp; avp++) + fprintf(stderr, " '%s'", *avp); + fprintf(stderr, "\n"); + } +#endif + +/*@-nullstate@*/ + rc = execvp(argv[0], (char *const *)argv); +/*@=nullstate@*/ + +exit: + if (argv) { + if (argv[0]) + free((void *)argv[0]); + free(argv); + } + return ec; +} + +/*@observer@*/ /*@null@*/ +static const struct poptOption * +findOption(const struct poptOption * opt, + /*@null@*/ const char * longName, size_t longNameLen, + char shortName, + /*@null@*/ /*@out@*/ poptCallbackType * callback, + /*@null@*/ /*@out@*/ const void ** callbackData, + unsigned int argInfo) + /*@modifies *callback, *callbackData */ +{ + const struct poptOption * cb = NULL; + poptArg cbarg = { .ptr = NULL }; + + /* This happens when a single - is given */ + if (LF_ISSET(ONEDASH) && !shortName && (longName && *longName == '\0')) + shortName = '-'; + + for (; opt->longName || opt->shortName || opt->arg; opt++) { + poptArg arg = { .ptr = opt->arg }; + + switch (poptArgType(opt)) { + case POPT_ARG_INCLUDE_TABLE: /* Recurse on included sub-tables. */ + { const struct poptOption * opt2; + + poptSubstituteHelpI18N(arg.opt); /* XXX side effects */ + if (arg.ptr == NULL) continue; /* XXX program error */ + opt2 = findOption(arg.opt, longName, longNameLen, shortName, callback, + callbackData, argInfo); + if (opt2 == NULL) continue; + /* Sub-table data will be inheirited if no data yet. */ +/*@-observertrans -dependenttrans @*/ + if (callback && *callback + && callbackData && *callbackData == NULL) + *callbackData = opt->descrip; +/*@=observertrans =dependenttrans @*/ + return opt2; + } /*@notreached@*/ /*@switchbreak@*/ break; + case POPT_ARG_CALLBACK: + cb = opt; + cbarg.ptr = opt->arg; + continue; + /*@notreached@*/ /*@switchbreak@*/ break; + default: + /*@switchbreak@*/ break; + } + + if (longName != NULL && opt->longName != NULL && + (!LF_ISSET(ONEDASH) || F_ISSET(opt, ONEDASH)) && + longOptionStrcmp(opt, longName, longNameLen)) + { + break; + } else if (shortName && shortName == opt->shortName) { + break; + } + } + + if (opt->longName == NULL && !opt->shortName) + return NULL; + +/*@-modobserver -mods @*/ + if (callback) + *callback = (cb ? cbarg.cb : NULL); + if (callbackData) +/*@-observertrans -dependenttrans @*/ + *callbackData = (cb && !CBF_ISSET(cb, INC_DATA) ? cb->descrip : NULL); +/*@=observertrans =dependenttrans @*/ +/*@=modobserver =mods @*/ + + return opt; +} + +static const char * findNextArg(/*@special@*/ poptContext con, + unsigned argx, int delete_arg) + /*@uses con->optionStack, con->os, + con->os->next, con->os->argb, con->os->argc, con->os->argv @*/ + /*@modifies con @*/ +{ + struct optionStackEntry * os = con->os; + const char * arg; + + do { + int i; + arg = NULL; + while (os->next == os->argc && os > con->optionStack) os--; + if (os->next == os->argc && os == con->optionStack) break; + if (os->argv != NULL) + for (i = os->next; i < os->argc; i++) { +/*@-sizeoftype@*/ + if (os->argb && PBM_ISSET(i, os->argb)) + /*@innercontinue@*/ continue; + if (*os->argv[i] == '-') + /*@innercontinue@*/ continue; + if (--argx > 0) + /*@innercontinue@*/ continue; + arg = os->argv[i]; + if (delete_arg) { + if (os->argb == NULL) os->argb = PBM_ALLOC(os->argc); + if (os->argb != NULL) /* XXX can't happen */ + PBM_SET(i, os->argb); + } + /*@innerbreak@*/ break; +/*@=sizeoftype@*/ + } + if (os > con->optionStack) os--; + } while (arg == NULL); + return arg; +} + +static /*@only@*/ /*@null@*/ const char * +expandNextArg(/*@special@*/ poptContext con, const char * s) + /*@uses con->optionStack, con->os, + con->os->next, con->os->argb, con->os->argc, con->os->argv @*/ + /*@modifies con @*/ +{ + const char * a = NULL; + char *t, *te; + size_t tn = strlen(s) + 1; + char c; + + te = t = malloc(tn); + if (t == NULL) return NULL; /* XXX can't happen */ + *t = '\0'; + while ((c = *s++) != '\0') { + switch (c) { +#if 0 /* XXX can't do this */ + case '\\': /* escape */ + c = *s++; + /*@switchbreak@*/ break; +#endif + case '!': + if (!(s[0] == '#' && s[1] == ':' && s[2] == '+')) + /*@switchbreak@*/ break; + /* XXX Make sure that findNextArg deletes only next arg. */ + if (a == NULL) { + if ((a = findNextArg(con, 1U, 1)) == NULL) + /*@switchbreak@*/ break; + } + s += sizeof("#:+") - 1; + + tn += strlen(a); + { size_t pos = (size_t) (te - t); + if ((t = realloc(t, tn)) == NULL) /* XXX can't happen */ + return NULL; + te = stpcpy(t + pos, a); + } + continue; + /*@notreached@*/ /*@switchbreak@*/ break; + default: + /*@switchbreak@*/ break; + } + *te++ = c; + } + *te++ = '\0'; + /* If the new string is longer than needed, shorten. */ + if ((t + tn) > te) { +/*@-usereleased@*/ /* XXX splint can't follow the pointers. */ + if ((te = realloc(t, (size_t)(te - t))) == NULL) + free(t); + t = te; +/*@=usereleased@*/ + } + return t; +} + +static void poptStripArg(/*@special@*/ poptContext con, int which) + /*@uses con->optionStack @*/ + /*@defines con->arg_strip @*/ + /*@modifies con @*/ +{ +/*@-compdef -sizeoftype -usedef @*/ + if (con->arg_strip == NULL) + con->arg_strip = PBM_ALLOC(con->optionStack[0].argc); + if (con->arg_strip != NULL) /* XXX can't happen */ + PBM_SET(which, con->arg_strip); + return; +/*@=compdef =sizeoftype =usedef @*/ +} + +/*@unchecked@*/ +unsigned int _poptBitsN = _POPT_BITS_N; +/*@unchecked@*/ +unsigned int _poptBitsM = _POPT_BITS_M; +/*@unchecked@*/ +unsigned int _poptBitsK = _POPT_BITS_K; + +/*@-sizeoftype@*/ +static int _poptBitsNew(/*@null@*/ poptBits *bitsp) + /*@globals _poptBitsN, _poptBitsM, _poptBitsK @*/ + /*@modifies *bitsp, _poptBitsN, _poptBitsM, _poptBitsK @*/ +{ + if (bitsp == NULL) + return POPT_ERROR_NULLARG; + + /* XXX handle negated initialization. */ + if (*bitsp == NULL) { + if (_poptBitsN == 0) { + _poptBitsN = _POPT_BITS_N; + _poptBitsM = _POPT_BITS_M; + } + if (_poptBitsM == 0U) _poptBitsM = (3 * _poptBitsN) / 2; + if (_poptBitsK == 0U || _poptBitsK > 32U) _poptBitsK = _POPT_BITS_K; + *bitsp = PBM_ALLOC(_poptBitsM-1); + } +/*@-nullstate@*/ + return 0; +/*@=nullstate@*/ +} + +int poptBitsAdd(poptBits bits, const char * s) +{ + size_t ns = (s ? strlen(s) : 0); + uint32_t h0 = 0; + uint32_t h1 = 0; + + if (bits == NULL || ns == 0) + return POPT_ERROR_NULLARG; + + poptJlu32lpair(s, ns, &h0, &h1); + + for (ns = 0; ns < (size_t)_poptBitsK; ns++) { + uint32_t h = h0 + ns * h1; + uint32_t ix = (h % _poptBitsM); + PBM_SET(ix, bits); + } + return 0; +} + +int poptBitsChk(poptBits bits, const char * s) +{ + size_t ns = (s ? strlen(s) : 0); + uint32_t h0 = 0; + uint32_t h1 = 0; + int rc = 1; + + if (bits == NULL || ns == 0) + return POPT_ERROR_NULLARG; + + poptJlu32lpair(s, ns, &h0, &h1); + + for (ns = 0; ns < (size_t)_poptBitsK; ns++) { + uint32_t h = h0 + ns * h1; + uint32_t ix = (h % _poptBitsM); + if (PBM_ISSET(ix, bits)) + continue; + rc = 0; + break; + } + return rc; +} + +int poptBitsClr(poptBits bits) +{ + static size_t nbw = (__PBM_NBITS/8); + size_t nw = (__PBM_IX(_poptBitsM-1) + 1); + + if (bits == NULL) + return POPT_ERROR_NULLARG; + memset(bits, 0, nw * nbw); + return 0; +} + +int poptBitsDel(poptBits bits, const char * s) +{ + size_t ns = (s ? strlen(s) : 0); + uint32_t h0 = 0; + uint32_t h1 = 0; + + if (bits == NULL || ns == 0) + return POPT_ERROR_NULLARG; + + poptJlu32lpair(s, ns, &h0, &h1); + + for (ns = 0; ns < (size_t)_poptBitsK; ns++) { + uint32_t h = h0 + ns * h1; + uint32_t ix = (h % _poptBitsM); + PBM_CLR(ix, bits); + } + return 0; +} + +int poptBitsIntersect(poptBits *ap, const poptBits b) +{ + __pbm_bits *abits; + __pbm_bits *bbits; + __pbm_bits rc = 0; + size_t nw = (__PBM_IX(_poptBitsM-1) + 1); + size_t i; + + if (ap == NULL || b == NULL || _poptBitsNew(ap)) + return POPT_ERROR_NULLARG; + abits = __PBM_BITS(*ap); + bbits = __PBM_BITS(b); + + for (i = 0; i < nw; i++) { + abits[i] &= bbits[i]; + rc |= abits[i]; + } + return (rc ? 1 : 0); +} + +int poptBitsUnion(poptBits *ap, const poptBits b) +{ + __pbm_bits *abits; + __pbm_bits *bbits; + __pbm_bits rc = 0; + size_t nw = (__PBM_IX(_poptBitsM-1) + 1); + size_t i; + + if (ap == NULL || b == NULL || _poptBitsNew(ap)) + return POPT_ERROR_NULLARG; + abits = __PBM_BITS(*ap); + bbits = __PBM_BITS(b); + + for (i = 0; i < nw; i++) { + abits[i] |= bbits[i]; + rc |= abits[i]; + } + return (rc ? 1 : 0); +} + +int poptBitsArgs(poptContext con, poptBits *ap) +{ + const char ** av; + int rc = 0; + + if (con == NULL || ap == NULL || _poptBitsNew(ap) || + con->leftovers == NULL || con->numLeftovers == con->nextLeftover) + return POPT_ERROR_NULLARG; + + /* some apps like [like RPM ;-) ] need this NULL terminated */ + con->leftovers[con->numLeftovers] = NULL; + + for (av = con->leftovers + con->nextLeftover; *av != NULL; av++) { + if ((rc = poptBitsAdd(*ap, *av)) != 0) + break; + } +/*@-nullstate@*/ + return rc; +/*@=nullstate@*/ +} + +int poptSaveBits(poptBits * bitsp, + /*@unused@*/ UNUSED(unsigned int argInfo), const char * s) +{ + char *tbuf = NULL; + char *t, *te; + int rc = 0; + + if (bitsp == NULL || s == NULL || *s == '\0' || _poptBitsNew(bitsp)) + return POPT_ERROR_NULLARG; + + /* Parse comma separated attributes. */ + te = tbuf = xstrdup(s); + while ((t = te) != NULL && *t) { + while (*te != '\0' && *te != ',') + te++; + if (*te != '\0') + *te++ = '\0'; + /* XXX Ignore empty strings. */ + if (*t == '\0') + continue; + /* XXX Permit negated attributes. caveat emptor: false negatives. */ + if (*t == '!') { + t++; + if ((rc = poptBitsChk(*bitsp, t)) > 0) + rc = poptBitsDel(*bitsp, t); + } else + rc = poptBitsAdd(*bitsp, t); + if (rc) + break; + } + tbuf = _free(tbuf); + return rc; +} +/*@=sizeoftype@*/ + +int poptSaveString(const char *** argvp, + /*@unused@*/ UNUSED(unsigned int argInfo), const char * val) +{ + int argc = 0; + + if (argvp == NULL || val == NULL) + return POPT_ERROR_NULLARG; + + /* XXX likely needs an upper bound on argc. */ + if (*argvp != NULL) + while ((*argvp)[argc] != NULL) + argc++; + +/*@-unqualifiedtrans -nullstate@*/ /* XXX no annotation for (*argvp) */ + if ((*argvp = xrealloc(*argvp, (argc + 1 + 1) * sizeof(**argvp))) != NULL) { + (*argvp)[argc++] = xstrdup(val); + (*argvp)[argc ] = NULL; + } + return 0; +/*@=unqualifiedtrans =nullstate@*/ +} + +/*@unchecked@*/ +static unsigned int seed = 0; + +int poptSaveLongLong(long long * arg, unsigned int argInfo, long long aLongLong) +{ + if (arg == NULL +#ifdef NOTYET + /* XXX Check alignment, may fail on funky platforms. */ + || (((unsigned long long)arg) & (sizeof(*arg)-1)) +#endif + ) + return POPT_ERROR_NULLARG; + + if (aLongLong != 0 && LF_ISSET(RANDOM)) { +#if defined(HAVE_SRANDOM) + if (!seed) { + srandom((unsigned)getpid()); + srandom((unsigned)random()); + } + aLongLong = (long long)(random() % (aLongLong > 0 ? aLongLong : -aLongLong)); + aLongLong++; +#else + /* XXX avoid adding POPT_ERROR_UNIMPLEMENTED to minimize i18n churn. */ + return POPT_ERROR_BADOPERATION; +#endif + } + if (LF_ISSET(NOT)) + aLongLong = ~aLongLong; + switch (LF_ISSET(LOGICALOPS)) { + case 0: + *arg = aLongLong; + break; + case POPT_ARGFLAG_OR: + *(unsigned long long *)arg |= (unsigned long long)aLongLong; + break; + case POPT_ARGFLAG_AND: + *(unsigned long long *)arg &= (unsigned long long)aLongLong; + break; + case POPT_ARGFLAG_XOR: + *(unsigned long long *)arg ^= (unsigned long long)aLongLong; + break; + default: + return POPT_ERROR_BADOPERATION; + /*@notreached@*/ break; + } + return 0; +} + +int poptSaveLong(long * arg, unsigned int argInfo, long aLong) +{ + /* XXX Check alignment, may fail on funky platforms. */ + if (arg == NULL || (((unsigned long)arg) & (sizeof(*arg)-1))) + return POPT_ERROR_NULLARG; + + if (aLong != 0 && LF_ISSET(RANDOM)) { +#if defined(HAVE_SRANDOM) + if (!seed) { + srandom((unsigned)getpid()); + srandom((unsigned)random()); + } + aLong = random() % (aLong > 0 ? aLong : -aLong); + aLong++; +#else + /* XXX avoid adding POPT_ERROR_UNIMPLEMENTED to minimize i18n churn. */ + return POPT_ERROR_BADOPERATION; +#endif + } + if (LF_ISSET(NOT)) + aLong = ~aLong; + switch (LF_ISSET(LOGICALOPS)) { + case 0: *arg = aLong; break; + case POPT_ARGFLAG_OR: *(unsigned long *)arg |= (unsigned long)aLong; break; + case POPT_ARGFLAG_AND: *(unsigned long *)arg &= (unsigned long)aLong; break; + case POPT_ARGFLAG_XOR: *(unsigned long *)arg ^= (unsigned long)aLong; break; + default: + return POPT_ERROR_BADOPERATION; + /*@notreached@*/ break; + } + return 0; +} + +int poptSaveInt(/*@null@*/ int * arg, unsigned int argInfo, long aLong) +{ + /* XXX Check alignment, may fail on funky platforms. */ + if (arg == NULL || (((unsigned long)arg) & (sizeof(*arg)-1))) + return POPT_ERROR_NULLARG; + + if (aLong != 0 && LF_ISSET(RANDOM)) { +#if defined(HAVE_SRANDOM) + if (!seed) { + srandom((unsigned)getpid()); + srandom((unsigned)random()); + } + aLong = random() % (aLong > 0 ? aLong : -aLong); + aLong++; +#else + /* XXX avoid adding POPT_ERROR_UNIMPLEMENTED to minimize i18n churn. */ + return POPT_ERROR_BADOPERATION; +#endif + } + if (LF_ISSET(NOT)) + aLong = ~aLong; + switch (LF_ISSET(LOGICALOPS)) { + case 0: *arg = (int) aLong; break; + case POPT_ARGFLAG_OR: *(unsigned int *)arg |= (unsigned int) aLong; break; + case POPT_ARGFLAG_AND: *(unsigned int *)arg &= (unsigned int) aLong; break; + case POPT_ARGFLAG_XOR: *(unsigned int *)arg ^= (unsigned int) aLong; break; + default: + return POPT_ERROR_BADOPERATION; + /*@notreached@*/ break; + } + return 0; +} + +int poptSaveShort(/*@null@*/ short * arg, unsigned int argInfo, long aLong) +{ + /* XXX Check alignment, may fail on funky platforms. */ + if (arg == NULL || (((unsigned long)arg) & (sizeof(*arg)-1))) + return POPT_ERROR_NULLARG; + + if (aLong != 0 && LF_ISSET(RANDOM)) { +#if defined(HAVE_SRANDOM) + if (!seed) { + srandom((unsigned)getpid()); + srandom((unsigned)random()); + } + aLong = random() % (aLong > 0 ? aLong : -aLong); + aLong++; +#else + /* XXX avoid adding POPT_ERROR_UNIMPLEMENTED to minimize i18n churn. */ + return POPT_ERROR_BADOPERATION; +#endif + } + if (LF_ISSET(NOT)) + aLong = ~aLong; + switch (LF_ISSET(LOGICALOPS)) { + case 0: *arg = (short) aLong; + break; + case POPT_ARGFLAG_OR: *(unsigned short *)arg |= (unsigned short) aLong; + break; + case POPT_ARGFLAG_AND: *(unsigned short *)arg &= (unsigned short) aLong; + break; + case POPT_ARGFLAG_XOR: *(unsigned short *)arg ^= (unsigned short) aLong; + break; + default: return POPT_ERROR_BADOPERATION; + /*@notreached@*/ break; + } + return 0; +} + +/** + * Return argInfo field, handling POPT_ARGFLAG_TOGGLE overrides. + * @param con context + * @param opt option + * @return argInfo + */ +static unsigned int poptArgInfo(poptContext con, const struct poptOption * opt) + /*@*/ +{ + unsigned int argInfo = opt->argInfo; + + if (con->os->argv != NULL && con->os->next > 0 && opt->longName != NULL) + if (LF_ISSET(TOGGLE)) { + const char * longName = con->os->argv[con->os->next-1]; + while (*longName == '-') longName++; + /* XXX almost good enough but consider --[no]nofoo corner cases. */ + if (longName[0] != opt->longName[0] || longName[1] != opt->longName[1]) + { + if (!LF_ISSET(XOR)) { /* XXX dont toggle with XOR */ + /* Toggle POPT_BIT_SET <=> POPT_BIT_CLR. */ + if (LF_ISSET(LOGICALOPS)) + argInfo ^= (POPT_ARGFLAG_OR|POPT_ARGFLAG_AND); + argInfo ^= POPT_ARGFLAG_NOT; + } + } + } + return argInfo; +} + +/** + * Parse an integer expression. + * @retval *llp integer expression value + * @param argInfo integer expression type + * @param val integer expression string + * @return 0 on success, otherwise POPT_* error. + */ +static int poptParseInteger(long long * llp, + /*@unused@*/ UNUSED(unsigned int argInfo), + /*@null@*/ const char * val) + /*@modifies *llp @*/ +{ + if (val) { + char *end = NULL; + *llp = strtoll(val, &end, 0); + + /* XXX parse scaling suffixes here. */ + + if (!(end && *end == '\0')) + return POPT_ERROR_BADNUMBER; + } else + *llp = 0; + return 0; +} + +/** + * Save the option argument through the (*opt->arg) pointer. + * @param con context + * @param opt option + * @return 0 on success, otherwise POPT_* error. + */ +static int poptSaveArg(poptContext con, const struct poptOption * opt) + /*@globals fileSystem, internalState @*/ + /*@modifies con, fileSystem, internalState @*/ +{ + poptArg arg = { .ptr = opt->arg }; + int rc = 0; /* assume success */ + + switch (poptArgType(opt)) { + case POPT_ARG_BITSET: + /* XXX memory leak, application is responsible for free. */ + rc = poptSaveBits(arg.ptr, opt->argInfo, con->os->nextArg); + /*@switchbreak@*/ break; + case POPT_ARG_ARGV: + /* XXX memory leak, application is responsible for free. */ + rc = poptSaveString(arg.ptr, opt->argInfo, con->os->nextArg); + /*@switchbreak@*/ break; + case POPT_ARG_STRING: + /* XXX memory leak, application is responsible for free. */ + arg.argv[0] = (con->os->nextArg) ? xstrdup(con->os->nextArg) : NULL; + /*@switchbreak@*/ break; + + case POPT_ARG_INT: + case POPT_ARG_SHORT: + case POPT_ARG_LONG: + case POPT_ARG_LONGLONG: + { unsigned int argInfo = poptArgInfo(con, opt); + long long aNUM = 0; + + if ((rc = poptParseInteger(&aNUM, argInfo, con->os->nextArg)) != 0) + break; + + switch (poptArgType(opt)) { + case POPT_ARG_LONGLONG: +/* XXX let's not demand C99 compiler flags for <limits.h> quite yet. */ +#if !defined(LLONG_MAX) +# define LLONG_MAX 9223372036854775807LL +# define LLONG_MIN (-LLONG_MAX - 1LL) +#endif + rc = !(aNUM == LLONG_MIN || aNUM == LLONG_MAX) + ? poptSaveLongLong(arg.longlongp, argInfo, aNUM) + : POPT_ERROR_OVERFLOW; + /*@innerbreak@*/ break; + case POPT_ARG_LONG: + rc = !(aNUM < (long long)LONG_MIN || aNUM > (long long)LONG_MAX) + ? poptSaveLong(arg.longp, argInfo, (long)aNUM) + : POPT_ERROR_OVERFLOW; + /*@innerbreak@*/ break; + case POPT_ARG_INT: + rc = !(aNUM < (long long)INT_MIN || aNUM > (long long)INT_MAX) + ? poptSaveInt(arg.intp, argInfo, (long)aNUM) + : POPT_ERROR_OVERFLOW; + /*@innerbreak@*/ break; + case POPT_ARG_SHORT: + rc = !(aNUM < (long long)SHRT_MIN || aNUM > (long long)SHRT_MAX) + ? poptSaveShort(arg.shortp, argInfo, (long)aNUM) + : POPT_ERROR_OVERFLOW; + /*@innerbreak@*/ break; + } + } /*@switchbreak@*/ break; + + case POPT_ARG_FLOAT: + case POPT_ARG_DOUBLE: + { char *end = NULL; + double aDouble = 0.0; + + if (con->os->nextArg) { +/*@-mods@*/ + int saveerrno = errno; + errno = 0; + aDouble = strtod(con->os->nextArg, &end); + if (errno == ERANGE) { + rc = POPT_ERROR_OVERFLOW; + break; + } + errno = saveerrno; +/*@=mods@*/ + if (*end != '\0') { + rc = POPT_ERROR_BADNUMBER; + break; + } + } + + switch (poptArgType(opt)) { + case POPT_ARG_DOUBLE: + arg.doublep[0] = aDouble; + /*@innerbreak@*/ break; + case POPT_ARG_FLOAT: +#if !defined(DBL_EPSILON) && !defined(__LCLINT__) +#define DBL_EPSILON 2.2204460492503131e-16 +#endif +#define POPT_ABS(a) ((((a) - 0.0) < DBL_EPSILON) ? -(a) : (a)) + if ((FLT_MIN - POPT_ABS(aDouble)) > DBL_EPSILON + || (POPT_ABS(aDouble) - FLT_MAX) > DBL_EPSILON) + rc = POPT_ERROR_OVERFLOW; + else + arg.floatp[0] = (float) aDouble; + /*@innerbreak@*/ break; + } + } /*@switchbreak@*/ break; + case POPT_ARG_MAINCALL: +/*@-assignexpose -type@*/ + con->maincall = opt->arg; +/*@=assignexpose =type@*/ + /*@switchbreak@*/ break; + default: + fprintf(stdout, POPT_("option type (%u) not implemented in popt\n"), + poptArgType(opt)); + exit(EXIT_FAILURE); + /*@notreached@*/ /*@switchbreak@*/ break; + } + return rc; +} + +/* returns 'val' element, -1 on last item, POPT_ERROR_* on error */ +int poptGetNextOpt(poptContext con) +{ + const struct poptOption * opt = NULL; + int done = 0; + + if (con == NULL) + return -1; + while (!done) { + const char * origOptString = NULL; + poptCallbackType cb = NULL; + const void * cbData = NULL; + const char * longArg = NULL; + int canstrip = 0; + int shorty = 0; + + while (!con->os->nextCharArg && con->os->next == con->os->argc + && con->os > con->optionStack) { + cleanOSE(con->os--); + } + if (!con->os->nextCharArg && con->os->next == con->os->argc) { + invokeCallbacksPOST(con, con->options); + + if (con->maincall) { + /*@-noeffectuncon @*/ + (void) (*con->maincall) (con->finalArgvCount, con->finalArgv); + /*@=noeffectuncon @*/ + return -1; + } + + if (con->doExec) return execCommand(con); + return -1; + } + + /* Process next long option */ + if (!con->os->nextCharArg) { + const char * optString; + size_t optStringLen; + int thisopt; + +/*@-sizeoftype@*/ + if (con->os->argb && PBM_ISSET(con->os->next, con->os->argb)) { + con->os->next++; + continue; + } +/*@=sizeoftype@*/ + thisopt = con->os->next; + if (con->os->argv != NULL) /* XXX can't happen */ + origOptString = con->os->argv[con->os->next++]; + + if (origOptString == NULL) /* XXX can't happen */ + return POPT_ERROR_BADOPT; + + if (con->restLeftover || *origOptString != '-' || + (*origOptString == '-' && origOptString[1] == '\0')) + { + if (con->flags & POPT_CONTEXT_POSIXMEHARDER) + con->restLeftover = 1; + if (con->flags & POPT_CONTEXT_ARG_OPTS) { + con->os->nextArg = xstrdup(origOptString); + return 0; + } + if (con->leftovers != NULL) /* XXX can't happen */ + con->leftovers[con->numLeftovers++] = origOptString; + continue; + } + + /* Make a copy we can hack at */ + optString = origOptString; + + if (optString[0] == '\0') + return POPT_ERROR_BADOPT; + + if (optString[1] == '-' && !optString[2]) { + con->restLeftover = 1; + continue; + } else { + const char *oe; + unsigned int argInfo = 0; + + optString++; + if (*optString == '-') + optString++; + else + argInfo |= POPT_ARGFLAG_ONEDASH; + + /* Check for "--long=arg" option. */ + for (oe = optString; *oe && *oe != '='; oe++) + {}; + optStringLen = (size_t)(oe - optString); + if (*oe == '=') + longArg = oe + 1; + + /* XXX aliases with arg substitution need "--alias=arg" */ + if (handleAlias(con, optString, optStringLen, '\0', longArg)) { + longArg = NULL; + continue; + } + + if (handleExec(con, optString, '\0')) + continue; + + opt = findOption(con->options, optString, optStringLen, '\0', &cb, &cbData, + argInfo); + if (!opt && !LF_ISSET(ONEDASH)) + return POPT_ERROR_BADOPT; + } + + if (!opt) { + con->os->nextCharArg = origOptString + 1; + longArg = NULL; + } else { + if (con->os == con->optionStack && F_ISSET(opt, STRIP)) + { + canstrip = 1; + poptStripArg(con, thisopt); + } + shorty = 0; + } + } + + /* Process next short option */ + if (con->os->nextCharArg) { + const char * nextCharArg = con->os->nextCharArg; + + con->os->nextCharArg = NULL; + + if (handleAlias(con, NULL, 0, *nextCharArg, nextCharArg + 1)) + continue; + + if (handleExec(con, NULL, *nextCharArg)) { + /* Restore rest of short options for further processing */ + nextCharArg++; + if (*nextCharArg != '\0') + con->os->nextCharArg = nextCharArg; + continue; + } + + opt = findOption(con->options, NULL, 0, *nextCharArg, &cb, + &cbData, 0); + if (!opt) + return POPT_ERROR_BADOPT; + shorty = 1; + + nextCharArg++; + if (*nextCharArg != '\0') + con->os->nextCharArg = nextCharArg + (int)(*nextCharArg == '='); + } + + if (opt == NULL) return POPT_ERROR_BADOPT; /* XXX can't happen */ + if (opt->arg && poptArgType(opt) == POPT_ARG_NONE) { + unsigned int argInfo = poptArgInfo(con, opt); + if (poptSaveInt((int *)opt->arg, argInfo, 1L)) + return POPT_ERROR_BADOPERATION; + } else if (poptArgType(opt) == POPT_ARG_VAL) { + if (opt->arg) { + unsigned int argInfo = poptArgInfo(con, opt); + if (poptSaveInt((int *)opt->arg, argInfo, (long)opt->val)) + return POPT_ERROR_BADOPERATION; + } + } else if (poptArgType(opt) != POPT_ARG_NONE) { + int rc; + + con->os->nextArg = _free(con->os->nextArg); + if (longArg) { + longArg = expandNextArg(con, longArg); + con->os->nextArg = (char *) longArg; + } else if (con->os->nextCharArg) { + longArg = expandNextArg(con, con->os->nextCharArg); + con->os->nextArg = (char *) longArg; + con->os->nextCharArg = NULL; + } else { + while (con->os->next == con->os->argc && + con->os > con->optionStack) + { + cleanOSE(con->os--); + } + if (con->os->next == con->os->argc) { + if (!F_ISSET(opt, OPTIONAL)) + return POPT_ERROR_NOARG; + con->os->nextArg = NULL; + } else { + + /* + * Make sure this isn't part of a short arg or the + * result of an alias expansion. + */ + if (con->os == con->optionStack + && F_ISSET(opt, STRIP) && canstrip) + { + poptStripArg(con, con->os->next); + } + + if (con->os->argv != NULL) { /* XXX can't happen */ + if (F_ISSET(opt, OPTIONAL) && + con->os->argv[con->os->next][0] == '-') { + con->os->nextArg = NULL; + } else { + /* XXX watchout: subtle side-effects live here. */ + longArg = con->os->argv[con->os->next++]; + longArg = expandNextArg(con, longArg); + con->os->nextArg = (char *) longArg; + } + } + } + } + longArg = NULL; + + /* Save the option argument through a (*opt->arg) pointer. */ + if (opt->arg != NULL && (rc = poptSaveArg(con, opt)) != 0) + return rc; + } + + if (cb) + invokeCallbacksOPTION(con, con->options, opt, cbData, shorty); + else if (opt->val && (poptArgType(opt) != POPT_ARG_VAL)) + done = 1; + + if ((con->finalArgvCount + 2) >= (con->finalArgvAlloced)) { + con->finalArgvAlloced += 10; + con->finalArgv = realloc(con->finalArgv, + sizeof(*con->finalArgv) * con->finalArgvAlloced); + } + + if (con->finalArgv != NULL) + { char *s = malloc((opt->longName ? strlen(opt->longName) : 0) + sizeof("--")); + if (s != NULL) { /* XXX can't happen */ + con->finalArgv[con->finalArgvCount++] = s; + *s++ = '-'; + if (opt->longName) { + if (!F_ISSET(opt, ONEDASH)) + *s++ = '-'; + s = stpcpy(s, opt->longName); + } else { + *s++ = opt->shortName; + *s = '\0'; + } + } else + con->finalArgv[con->finalArgvCount++] = NULL; + } + + if (opt->arg && poptArgType(opt) == POPT_ARG_NONE) + /*@-ifempty@*/ ; /*@=ifempty@*/ + else if (poptArgType(opt) == POPT_ARG_VAL) + /*@-ifempty@*/ ; /*@=ifempty@*/ + else if (poptArgType(opt) != POPT_ARG_NONE) { + if (con->finalArgv != NULL && con->os->nextArg != NULL) + con->finalArgv[con->finalArgvCount++] = + xstrdup(con->os->nextArg); + } + } + + return (opt ? opt->val : -1); /* XXX can't happen */ +} + +char * poptGetOptArg(poptContext con) +{ + char * ret = NULL; + if (con) { + ret = con->os->nextArg; + con->os->nextArg = NULL; + } + return ret; +} + +const char * poptGetArg(poptContext con) +{ + const char * ret = NULL; + if (con && con->leftovers != NULL && con->nextLeftover < con->numLeftovers) + ret = con->leftovers[con->nextLeftover++]; + return ret; +} + +const char * poptPeekArg(poptContext con) +{ + const char * ret = NULL; + if (con && con->leftovers != NULL && con->nextLeftover < con->numLeftovers) + ret = con->leftovers[con->nextLeftover]; + return ret; +} + +const char ** poptGetArgs(poptContext con) +{ + if (con == NULL || + con->leftovers == NULL || con->numLeftovers == con->nextLeftover) + return NULL; + + /* some apps like [like RPM ;-) ] need this NULL terminated */ + con->leftovers[con->numLeftovers] = NULL; + +/*@-nullret -nullstate @*/ /* FIX: typedef double indirection. */ + return (con->leftovers + con->nextLeftover); +/*@=nullret =nullstate @*/ +} + +static /*@null@*/ +poptItem poptFreeItems(/*@only@*/ /*@null@*/ poptItem items, int nitems) + /*@modifies items @*/ +{ + if (items != NULL) { + poptItem item = items; + while (--nitems >= 0) { +/*@-modobserver -observertrans -dependenttrans@*/ + item->option.longName = _free(item->option.longName); + item->option.descrip = _free(item->option.descrip); + item->option.argDescrip = _free(item->option.argDescrip); +/*@=modobserver =observertrans =dependenttrans@*/ + item->argv = _free(item->argv); + item++; + } + items = _free(items); + } + return NULL; +} + +poptContext poptFreeContext(poptContext con) +{ + if (con == NULL) return con; + poptResetContext(con); + con->os->argb = _free(con->os->argb); + + con->aliases = poptFreeItems(con->aliases, con->numAliases); + con->numAliases = 0; + + con->execs = poptFreeItems(con->execs, con->numExecs); + con->numExecs = 0; + + con->leftovers = _free(con->leftovers); + con->finalArgv = _free(con->finalArgv); + con->appName = _free(con->appName); + con->otherHelp = _free(con->otherHelp); + con->execPath = _free(con->execPath); + con->arg_strip = PBM_FREE(con->arg_strip); + + con = _free(con); + return con; +} + +int poptAddAlias(poptContext con, struct poptAlias alias, + /*@unused@*/ UNUSED(int flags)) +{ + struct poptItem_s item_buf; + poptItem item = &item_buf; + memset(item, 0, sizeof(*item)); + item->option.longName = alias.longName; + item->option.shortName = alias.shortName; + item->option.argInfo = POPT_ARGFLAG_DOC_HIDDEN; + item->option.arg = 0; + item->option.val = 0; + item->option.descrip = NULL; + item->option.argDescrip = NULL; + item->argc = alias.argc; + item->argv = alias.argv; + return poptAddItem(con, item, 0); +} + +int poptAddItem(poptContext con, poptItem newItem, int flags) +{ + poptItem * items, item; + int * nitems; + + switch (flags) { + case 1: + items = &con->execs; + nitems = &con->numExecs; + break; + case 0: + items = &con->aliases; + nitems = &con->numAliases; + break; + default: + return 1; + /*@notreached@*/ break; + } + + *items = realloc((*items), ((*nitems) + 1) * sizeof(**items)); + if ((*items) == NULL) + return 1; + + item = (*items) + (*nitems); + + item->option.longName = + (newItem->option.longName ? xstrdup(newItem->option.longName) : NULL); + item->option.shortName = newItem->option.shortName; + item->option.argInfo = newItem->option.argInfo; + item->option.arg = newItem->option.arg; + item->option.val = newItem->option.val; + item->option.descrip = + (newItem->option.descrip ? xstrdup(newItem->option.descrip) : NULL); + item->option.argDescrip = + (newItem->option.argDescrip ? xstrdup(newItem->option.argDescrip) : NULL); + item->argc = newItem->argc; + item->argv = newItem->argv; + + (*nitems)++; + + return 0; +} + +const char * poptBadOption(poptContext con, unsigned int flags) +{ + struct optionStackEntry * os = NULL; + + if (con != NULL) + os = (flags & POPT_BADOPTION_NOALIAS) ? con->optionStack : con->os; + + return (os != NULL && os->argv != NULL ? os->argv[os->next - 1] : NULL); +} + +const char * poptStrerror(const int error) +{ + switch (error) { + case POPT_ERROR_NOARG: + return POPT_("missing argument"); + case POPT_ERROR_BADOPT: + return POPT_("unknown option"); + case POPT_ERROR_BADOPERATION: + return POPT_("mutually exclusive logical operations requested"); + case POPT_ERROR_NULLARG: + return POPT_("opt->arg should not be NULL"); + case POPT_ERROR_OPTSTOODEEP: + return POPT_("aliases nested too deeply"); + case POPT_ERROR_BADQUOTE: + return POPT_("error in parameter quoting"); + case POPT_ERROR_BADNUMBER: + return POPT_("invalid numeric value"); + case POPT_ERROR_OVERFLOW: + return POPT_("number too large or too small"); + case POPT_ERROR_MALLOC: + return POPT_("memory allocation failed"); + case POPT_ERROR_BADCONFIG: + return POPT_("config file failed sanity test"); + case POPT_ERROR_ERRNO: + return strerror(errno); + default: + return POPT_("unknown error"); + } +} + +int poptStuffArgs(poptContext con, const char ** argv) +{ + int argc; + int rc; + + if ((con->os - con->optionStack) == POPT_OPTION_DEPTH) + return POPT_ERROR_OPTSTOODEEP; + + for (argc = 0; argv[argc]; argc++) + {}; + + con->os++; + con->os->next = 0; + con->os->nextArg = NULL; + con->os->nextCharArg = NULL; + con->os->currAlias = NULL; + rc = poptDupArgv(argc, argv, &con->os->argc, &con->os->argv); + con->os->argb = NULL; + con->os->stuffed = 1; + + return rc; +} + +const char * poptGetInvocationName(poptContext con) +{ + return (con->os->argv ? con->os->argv[0] : ""); +} + +int poptStrippedArgv(poptContext con, int argc, char ** argv) +{ + int numargs = argc; + int j = 1; + int i; + +/*@-sizeoftype@*/ + if (con->arg_strip) + for (i = 1; i < argc; i++) { + if (PBM_ISSET(i, con->arg_strip)) + numargs--; + } + + for (i = 1; i < argc; i++) { + if (con->arg_strip && PBM_ISSET(i, con->arg_strip)) + continue; + argv[j] = (j < numargs) ? argv[i] : NULL; + j++; + } +/*@=sizeoftype@*/ + + return numargs; +}
diff --git a/popt-1.16/popt.h b/popt-1.16/popt.h new file mode 100644 index 0000000..a8b3b4b --- /dev/null +++ b/popt-1.16/popt.h
@@ -0,0 +1,744 @@ +/** \file popt/popt.h + * \ingroup popt + */ + +/* (C) 1998-2000 Red Hat, Inc. -- Licensing details are in the COPYING + file accompanying popt source distributions, available from + ftp://ftp.rpm.org/pub/rpm/dist. */ + +#ifndef H_POPT +#define H_POPT + +#include <stdio.h> /* for FILE * */ + +#define POPT_OPTION_DEPTH 10 + +/** \ingroup popt + * \name Arg type identifiers + */ +/*@{*/ +#define POPT_ARG_NONE 0U /*!< no arg */ +#define POPT_ARG_STRING 1U /*!< arg will be saved as string */ +#define POPT_ARG_INT 2U /*!< arg ==> int */ +#define POPT_ARG_LONG 3U /*!< arg ==> long */ +#define POPT_ARG_INCLUDE_TABLE 4U /*!< arg points to table */ +#define POPT_ARG_CALLBACK 5U /*!< table-wide callback... must be + set first in table; arg points + to callback, descrip points to + callback data to pass */ +#define POPT_ARG_INTL_DOMAIN 6U /*!< set the translation domain + for this table and any + included tables; arg points + to the domain string */ +#define POPT_ARG_VAL 7U /*!< arg should take value val */ +#define POPT_ARG_FLOAT 8U /*!< arg ==> float */ +#define POPT_ARG_DOUBLE 9U /*!< arg ==> double */ +#define POPT_ARG_LONGLONG 10U /*!< arg ==> long long */ + +#define POPT_ARG_MAINCALL 16U+11U /*!< EXPERIMENTAL: return (*arg) (argc, argv) */ +#define POPT_ARG_ARGV 12U /*!< dupe'd arg appended to realloc'd argv array. */ +#define POPT_ARG_SHORT 13U /*!< arg ==> short */ +#define POPT_ARG_BITSET 16U+14U /*!< arg ==> bit set */ + +#define POPT_ARG_MASK 0x000000FFU +#define POPT_GROUP_MASK 0x0000FF00U + +/*@}*/ + +/** \ingroup popt + * \name Arg modifiers + */ +/*@{*/ +#define POPT_ARGFLAG_ONEDASH 0x80000000U /*!< allow -longoption */ +#define POPT_ARGFLAG_DOC_HIDDEN 0x40000000U /*!< don't show in help/usage */ +#define POPT_ARGFLAG_STRIP 0x20000000U /*!< strip this arg from argv(only applies to long args) */ +#define POPT_ARGFLAG_OPTIONAL 0x10000000U /*!< arg may be missing */ + +#define POPT_ARGFLAG_OR 0x08000000U /*!< arg will be or'ed */ +#define POPT_ARGFLAG_NOR 0x09000000U /*!< arg will be nor'ed */ +#define POPT_ARGFLAG_AND 0x04000000U /*!< arg will be and'ed */ +#define POPT_ARGFLAG_NAND 0x05000000U /*!< arg will be nand'ed */ +#define POPT_ARGFLAG_XOR 0x02000000U /*!< arg will be xor'ed */ +#define POPT_ARGFLAG_NOT 0x01000000U /*!< arg will be negated */ +#define POPT_ARGFLAG_LOGICALOPS \ + (POPT_ARGFLAG_OR|POPT_ARGFLAG_AND|POPT_ARGFLAG_XOR) + +#define POPT_BIT_SET (POPT_ARG_VAL|POPT_ARGFLAG_OR) + /*!< set arg bit(s) */ +#define POPT_BIT_CLR (POPT_ARG_VAL|POPT_ARGFLAG_NAND) + /*!< clear arg bit(s) */ + +#define POPT_ARGFLAG_SHOW_DEFAULT 0x00800000U /*!< show default value in --help */ +#define POPT_ARGFLAG_RANDOM 0x00400000U /*!< random value in [1,arg] */ +#define POPT_ARGFLAG_TOGGLE 0x00200000U /*!< permit --[no]opt prefix toggle */ + +/*@}*/ + +/** \ingroup popt + * \name Callback modifiers + */ +/*@{*/ +#define POPT_CBFLAG_PRE 0x80000000U /*!< call the callback before parse */ +#define POPT_CBFLAG_POST 0x40000000U /*!< call the callback after parse */ +#define POPT_CBFLAG_INC_DATA 0x20000000U /*!< use data from the include line, + not the subtable */ +#define POPT_CBFLAG_SKIPOPTION 0x10000000U /*!< don't callback with option */ +#define POPT_CBFLAG_CONTINUE 0x08000000U /*!< continue callbacks with option */ +/*@}*/ + +/** \ingroup popt + * \name Error return values + */ +/*@{*/ +#define POPT_ERROR_NOARG -10 /*!< missing argument */ +#define POPT_ERROR_BADOPT -11 /*!< unknown option */ +#define POPT_ERROR_OPTSTOODEEP -13 /*!< aliases nested too deeply */ +#define POPT_ERROR_BADQUOTE -15 /*!< error in paramter quoting */ +#define POPT_ERROR_ERRNO -16 /*!< errno set, use strerror(errno) */ +#define POPT_ERROR_BADNUMBER -17 /*!< invalid numeric value */ +#define POPT_ERROR_OVERFLOW -18 /*!< number too large or too small */ +#define POPT_ERROR_BADOPERATION -19 /*!< mutually exclusive logical operations requested */ +#define POPT_ERROR_NULLARG -20 /*!< opt->arg should not be NULL */ +#define POPT_ERROR_MALLOC -21 /*!< memory allocation failed */ +#define POPT_ERROR_BADCONFIG -22 /*!< config file failed sanity test */ +/*@}*/ + +/** \ingroup popt + * \name poptBadOption() flags + */ +/*@{*/ +#define POPT_BADOPTION_NOALIAS (1U << 0) /*!< don't go into an alias */ +/*@}*/ + +/** \ingroup popt + * \name poptGetContext() flags + */ +/*@{*/ +#define POPT_CONTEXT_NO_EXEC (1U << 0) /*!< ignore exec expansions */ +#define POPT_CONTEXT_KEEP_FIRST (1U << 1) /*!< pay attention to argv[0] */ +#define POPT_CONTEXT_POSIXMEHARDER (1U << 2) /*!< options can't follow args */ +#define POPT_CONTEXT_ARG_OPTS (1U << 4) /*!< return args as options with value 0 */ +/*@}*/ + +/** \ingroup popt + */ +struct poptOption { +/*@observer@*/ /*@null@*/ + const char * longName; /*!< may be NULL */ + char shortName; /*!< may be NUL */ + unsigned int argInfo; +/*@shared@*/ /*@null@*/ + void * arg; /*!< depends on argInfo */ + int val; /*!< 0 means don't return, just update flag */ +/*@observer@*/ /*@null@*/ + const char * descrip; /*!< description for autohelp -- may be NULL */ +/*@observer@*/ /*@null@*/ + const char * argDescrip; /*!< argument description for autohelp */ +}; + +/** \ingroup popt + * A popt alias argument for poptAddAlias(). + */ +struct poptAlias { +/*@owned@*/ /*@null@*/ + const char * longName; /*!< may be NULL */ + char shortName; /*!< may be NUL */ + int argc; +/*@owned@*/ + const char ** argv; /*!< must be free()able */ +}; + +/** \ingroup popt + * A popt alias or exec argument for poptAddItem(). + */ +/*@-exporttype@*/ +typedef struct poptItem_s { + struct poptOption option; /*!< alias/exec name(s) and description. */ + int argc; /*!< (alias) no. of args. */ +/*@owned@*/ + const char ** argv; /*!< (alias) args, must be free()able. */ +} * poptItem; +/*@=exporttype@*/ + +/** \ingroup popt + * \name Auto-generated help/usage + */ +/*@{*/ + +/** + * Empty table marker to enable displaying popt alias/exec options. + */ +/*@-exportvar@*/ +/*@unchecked@*/ /*@observer@*/ +extern struct poptOption poptAliasOptions[]; +/*@=exportvar@*/ +#define POPT_AUTOALIAS { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptAliasOptions, \ + 0, "Options implemented via popt alias/exec:", NULL }, + +/** + * Auto help table options. + */ +/*@-exportvar@*/ +/*@unchecked@*/ /*@observer@*/ +extern struct poptOption poptHelpOptions[]; +/*@=exportvar@*/ + +/*@-exportvar@*/ +/*@unchecked@*/ /*@observer@*/ +extern struct poptOption * poptHelpOptionsI18N; +/*@=exportvar@*/ + +#define POPT_AUTOHELP { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptHelpOptions, \ + 0, "Help options:", NULL }, + +#define POPT_TABLEEND { NULL, '\0', 0, NULL, 0, NULL, NULL } +/*@}*/ + +/** \ingroup popt + */ +/*@-exporttype@*/ +typedef /*@abstract@*/ struct poptContext_s * poptContext; +/*@=exporttype@*/ + +/** \ingroup popt + */ +#ifndef __cplusplus +/*@-exporttype -typeuse@*/ +typedef struct poptOption * poptOption; +/*@=exporttype =typeuse@*/ +#endif + +/** \ingroup popt + */ +/*@-exportconst@*/ +enum poptCallbackReason { + POPT_CALLBACK_REASON_PRE = 0, + POPT_CALLBACK_REASON_POST = 1, + POPT_CALLBACK_REASON_OPTION = 2 +}; +/*@=exportconst@*/ + +#ifdef __cplusplus +extern "C" { +#endif +/*@-type@*/ + +/** \ingroup popt + * Table callback prototype. + * @param con context + * @param reason reason for callback + * @param opt option that triggered callback + * @param arg @todo Document. + * @param data @todo Document. + */ +typedef void (*poptCallbackType) (poptContext con, + enum poptCallbackReason reason, + /*@null@*/ const struct poptOption * opt, + /*@null@*/ const char * arg, + /*@null@*/ const void * data) + /*@globals internalState @*/ + /*@modifies internalState @*/; + +/** \ingroup popt + * Destroy context. + * @param con context + * @return NULL always + */ +/*@null@*/ +poptContext poptFreeContext( /*@only@*/ /*@null@*/ poptContext con) + /*@modifies con @*/; + +/** \ingroup popt + * Initialize popt context. + * @param name context name (usually argv[0] program name) + * @param argc no. of arguments + * @param argv argument array + * @param options address of popt option table + * @param flags or'd POPT_CONTEXT_* bits + * @return initialized popt context + */ +/*@only@*/ /*@null@*/ +poptContext poptGetContext( + /*@dependent@*/ /*@keep@*/ const char * name, + int argc, /*@dependent@*/ /*@keep@*/ const char ** argv, + /*@dependent@*/ /*@keep@*/ const struct poptOption * options, + unsigned int flags) + /*@globals internalState @*/ + /*@modifies internalState @*/; + +/** \ingroup popt + * Destroy context (alternative implementation). + * @param con context + * @return NULL always + */ +/*@null@*/ +poptContext poptFini( /*@only@*/ /*@null@*/ poptContext con) + /*@modifies con @*/; + +/** \ingroup popt + * Initialize popt context (alternative implementation). + * This routine does poptGetContext() and then poptReadConfigFiles(). + * @param argc no. of arguments + * @param argv argument array + * @param options address of popt option table + * @param configPaths colon separated file path(s) to read. + * @return initialized popt context (NULL on error). + */ +/*@only@*/ /*@null@*/ /*@unused@*/ +poptContext poptInit(int argc, /*@dependent@*/ /*@keep@*/ const char ** argv, + /*@dependent@*/ /*@keep@*/ const struct poptOption * options, + /*@null@*/ const char * configPaths) + /*@globals fileSystem, internalState @*/ + /*@modifies fileSystem, internalState @*/; + +/** \ingroup popt + * Reinitialize popt context. + * @param con context + */ +/*@unused@*/ +void poptResetContext(/*@null@*/poptContext con) + /*@modifies con @*/; + +/** \ingroup popt + * Return value of next option found. + * @param con context + * @return next option val, -1 on last item, POPT_ERROR_* on error + */ +int poptGetNextOpt(/*@null@*/poptContext con) + /*@globals fileSystem, internalState @*/ + /*@modifies con, fileSystem, internalState @*/; + +/** \ingroup popt + * Return next option argument (if any). + * @param con context + * @return option argument, NULL if no argument is available + */ +/*@observer@*/ /*@null@*/ /*@unused@*/ +char * poptGetOptArg(/*@null@*/poptContext con) + /*@modifies con @*/; + +/** \ingroup popt + * Return next argument. + * @param con context + * @return next argument, NULL if no argument is available + */ +/*@observer@*/ /*@null@*/ /*@unused@*/ +const char * poptGetArg(/*@null@*/poptContext con) + /*@modifies con @*/; + +/** \ingroup popt + * Peek at current argument. + * @param con context + * @return current argument, NULL if no argument is available + */ +/*@observer@*/ /*@null@*/ /*@unused@*/ +const char * poptPeekArg(/*@null@*/poptContext con) + /*@*/; + +/** \ingroup popt + * Return remaining arguments. + * @param con context + * @return argument array, NULL terminated + */ +/*@observer@*/ /*@null@*/ +const char ** poptGetArgs(/*@null@*/poptContext con) + /*@modifies con @*/; + +/** \ingroup popt + * Return the option which caused the most recent error. + * @param con context + * @param flags + * @return offending option + */ +/*@observer@*/ +const char * poptBadOption(/*@null@*/poptContext con, unsigned int flags) + /*@*/; + +/** \ingroup popt + * Add arguments to context. + * @param con context + * @param argv argument array, NULL terminated + * @return 0 on success, POPT_ERROR_OPTSTOODEEP on failure + */ +/*@unused@*/ +int poptStuffArgs(poptContext con, /*@keep@*/ const char ** argv) + /*@modifies con @*/; + +/** \ingroup popt + * Add alias to context. + * @todo Pass alias by reference, not value. + * @deprecated Use poptAddItem instead. + * @param con context + * @param alias alias to add + * @param flags (unused) + * @return 0 on success + */ +/*@unused@*/ +int poptAddAlias(poptContext con, struct poptAlias alias, int flags) + /*@modifies con @*/; + +/** \ingroup popt + * Add alias/exec item to context. + * @param con context + * @param newItem alias/exec item to add + * @param flags 0 for alias, 1 for exec + * @return 0 on success + */ +int poptAddItem(poptContext con, poptItem newItem, int flags) + /*@modifies con @*/; + +/** \ingroup popt + * Perform sanity checks on a file path. + * @param fn file name + * @return 0 on OK, 1 on NOTOK. + */ +int poptSaneFile(const char * fn) + /*@globals errno, internalState @*/ + /*@modifies errno, internalState @*/; + +/** + * Read a file into a buffer. + * @param fn file name + * @retval *bp buffer (malloc'd) (or NULL) + * @retval *nbp no. of bytes in buffer (including final NUL) (or NULL) + * @param flags 1 to trim escaped newlines + * return 0 on success + */ +int poptReadFile(const char * fn, /*@null@*/ /*@out@*/ char ** bp, + /*@null@*/ /*@out@*/ size_t * nbp, int flags) + /*@globals errno, fileSystem, internalState @*/ + /*@modifies *bp, *nbp, errno, fileSystem, internalState @*/; +#define POPT_READFILE_TRIMNEWLINES 1 + +/** \ingroup popt + * Read configuration file. + * @param con context + * @param fn file name to read + * @return 0 on success, POPT_ERROR_ERRNO on failure + */ +int poptReadConfigFile(poptContext con, const char * fn) + /*@globals errno, fileSystem, internalState @*/ + /*@modifies con->execs, con->numExecs, + errno, fileSystem, internalState @*/; + +/** \ingroup popt + * Read configuration file(s). + * Colon separated files to read, looping over poptReadConfigFile(). + * Note that an '@' character preceeding a path in the list will + * also perform additional sanity checks on the file before reading. + * @param con context + * @param paths colon separated file name(s) to read + * @return 0 on success, POPT_ERROR_BADCONFIG on failure + */ +int poptReadConfigFiles(poptContext con, /*@null@*/ const char * paths) + /*@globals errno, fileSystem, internalState @*/ + /*@modifies con->execs, con->numExecs, + errno, fileSystem, internalState @*/; + +/** \ingroup popt + * Read default configuration from /etc/popt and $HOME/.popt. + * @param con context + * @param useEnv (unused) + * @return 0 on success, POPT_ERROR_ERRNO on failure + */ +/*@unused@*/ +int poptReadDefaultConfig(poptContext con, /*@unused@*/ int useEnv) + /*@globals fileSystem, internalState @*/ + /*@modifies con->execs, con->numExecs, + fileSystem, internalState @*/; + +/** \ingroup popt + * Duplicate an argument array. + * @note: The argument array is malloc'd as a single area, so only argv must + * be free'd. + * + * @param argc no. of arguments + * @param argv argument array + * @retval argcPtr address of returned no. of arguments + * @retval argvPtr address of returned argument array + * @return 0 on success, POPT_ERROR_NOARG on failure + */ +int poptDupArgv(int argc, /*@null@*/ const char **argv, + /*@null@*/ /*@out@*/ int * argcPtr, + /*@null@*/ /*@out@*/ const char *** argvPtr) + /*@modifies *argcPtr, *argvPtr @*/; + +/** \ingroup popt + * Parse a string into an argument array. + * The parse allows ', ", and \ quoting, but ' is treated the same as " and + * both may include \ quotes. + * @note: The argument array is malloc'd as a single area, so only argv must + * be free'd. + * + * @param s string to parse + * @retval argcPtr address of returned no. of arguments + * @retval argvPtr address of returned argument array + */ +int poptParseArgvString(const char * s, + /*@out@*/ int * argcPtr, /*@out@*/ const char *** argvPtr) + /*@modifies *argcPtr, *argvPtr @*/; + +/** \ingroup popt + * Parses an input configuration file and returns an string that is a + * command line. For use with popt. You must free the return value when done. + * + * Given the file: +\verbatim +# this line is ignored + # this one too +aaa + bbb + ccc +bla=bla + +this_is = fdsafdas + bad_line= + reall bad line + reall bad line = again +5555= 55555 + test = with lots of spaces +\endverbatim +* +* The result is: +\verbatim +--aaa --bbb --ccc --bla="bla" --this_is="fdsafdas" --5555="55555" --test="with lots of spaces" +\endverbatim +* +* Passing this to poptParseArgvString() yields an argv of: +\verbatim +'--aaa' +'--bbb' +'--ccc' +'--bla=bla' +'--this_is=fdsafdas' +'--5555=55555' +'--test=with lots of spaces' +\endverbatim + * + * @bug NULL is returned if file line is too long. + * @bug Silently ignores invalid lines. + * + * @param fp file handle to read + * @param *argstrp return string of options (malloc'd) + * @param flags unused + * @return 0 on success + * @see poptParseArgvString + */ +/*@-fcnuse@*/ +int poptConfigFileToString(FILE *fp, /*@out@*/ char ** argstrp, int flags) + /*@globals fileSystem @*/ + /*@modifies *fp, *argstrp, fileSystem @*/; +/*@=fcnuse@*/ + +/** \ingroup popt + * Return formatted error string for popt failure. + * @param error popt error + * @return error string + */ +/*@observer@*/ +const char * poptStrerror(const int error) + /*@*/; + +/** \ingroup popt + * Limit search for executables. + * @param con context + * @param path single path to search for executables + * @param allowAbsolute absolute paths only? + */ +/*@unused@*/ +void poptSetExecPath(poptContext con, const char * path, int allowAbsolute) + /*@modifies con @*/; + +/** \ingroup popt + * Print detailed description of options. + * @param con context + * @param fp ouput file handle + * @param flags (unused) + */ +void poptPrintHelp(poptContext con, FILE * fp, /*@unused@*/ int flags) + /*@globals fileSystem @*/ + /*@modifies fp, fileSystem @*/; + +/** \ingroup popt + * Print terse description of options. + * @param con context + * @param fp ouput file handle + * @param flags (unused) + */ +void poptPrintUsage(poptContext con, FILE * fp, /*@unused@*/ int flags) + /*@globals fileSystem @*/ + /*@modifies fp, fileSystem @*/; + +/** \ingroup popt + * Provide text to replace default "[OPTION...]" in help/usage output. + * @param con context + * @param text replacement text + */ +/*@-fcnuse@*/ +void poptSetOtherOptionHelp(poptContext con, const char * text) + /*@modifies con @*/; +/*@=fcnuse@*/ + +/** \ingroup popt + * Return argv[0] from context. + * @param con context + * @return argv[0] + */ +/*@-fcnuse@*/ +/*@observer@*/ +const char * poptGetInvocationName(poptContext con) + /*@*/; +/*@=fcnuse@*/ + +/** \ingroup popt + * Shuffle argv pointers to remove stripped args, returns new argc. + * @param con context + * @param argc no. of args + * @param argv arg vector + * @return new argc + */ +/*@-fcnuse@*/ +int poptStrippedArgv(poptContext con, int argc, char ** argv) + /*@modifies *argv @*/; +/*@=fcnuse@*/ + +/** + * Add a string to an argv array. + * @retval *argvp argv array + * @param argInfo (unused) + * @param val string arg to add (using strdup) + * @return 0 on success, POPT_ERROR_NULLARG/POPT_ERROR_BADOPERATION + */ +/*@unused@*/ +int poptSaveString(/*@null@*/ const char *** argvp, unsigned int argInfo, + /*@null@*/const char * val) + /*@modifies *argvp @*/; + +/** + * Save a long long, performing logical operation with value. + * @warning Alignment check may be too strict on certain platorms. + * @param arg integer pointer, aligned on int boundary. + * @param argInfo logical operation (see POPT_ARGFLAG_*) + * @param aLongLong value to use + * @return 0 on success, POPT_ERROR_NULLARG/POPT_ERROR_BADOPERATION + */ +/*@-incondefs@*/ +/*@unused@*/ +int poptSaveLongLong(/*@null@*/ long long * arg, unsigned int argInfo, + long long aLongLong) + /*@globals internalState @*/ + /*@modifies *arg, internalState @*/ + /*@requires maxSet(arg) >= 0 /\ maxRead(arg) == 0 @*/; +/*@=incondefs@*/ + +/** + * Save a long, performing logical operation with value. + * @warning Alignment check may be too strict on certain platorms. + * @param arg integer pointer, aligned on int boundary. + * @param argInfo logical operation (see POPT_ARGFLAG_*) + * @param aLong value to use + * @return 0 on success, POPT_ERROR_NULLARG/POPT_ERROR_BADOPERATION + */ +/*@-incondefs@*/ +/*@unused@*/ +int poptSaveLong(/*@null@*/ long * arg, unsigned int argInfo, long aLong) + /*@globals internalState @*/ + /*@modifies *arg, internalState @*/ + /*@requires maxSet(arg) >= 0 /\ maxRead(arg) == 0 @*/; +/*@=incondefs@*/ + +/** + * Save a short integer, performing logical operation with value. + * @warning Alignment check may be too strict on certain platorms. + * @param arg short pointer, aligned on short boundary. + * @param argInfo logical operation (see POPT_ARGFLAG_*) + * @param aLong value to use + * @return 0 on success, POPT_ERROR_NULLARG/POPT_ERROR_BADOPERATION + */ +/*@-incondefs@*/ +/*@unused@*/ +int poptSaveShort(/*@null@*/ short * arg, unsigned int argInfo, long aLong) + /*@globals internalState @*/ + /*@modifies *arg, internalState @*/ + /*@requires maxSet(arg) >= 0 /\ maxRead(arg) == 0 @*/; +/*@=incondefs@*/ + +/** + * Save an integer, performing logical operation with value. + * @warning Alignment check may be too strict on certain platorms. + * @param arg integer pointer, aligned on int boundary. + * @param argInfo logical operation (see POPT_ARGFLAG_*) + * @param aLong value to use + * @return 0 on success, POPT_ERROR_NULLARG/POPT_ERROR_BADOPERATION + */ +/*@-incondefs@*/ +/*@unused@*/ +int poptSaveInt(/*@null@*/ int * arg, unsigned int argInfo, long aLong) + /*@globals internalState @*/ + /*@modifies *arg, internalState @*/ + /*@requires maxSet(arg) >= 0 /\ maxRead(arg) == 0 @*/; +/*@=incondefs@*/ + +/* The bit set typedef. */ +/*@-exporttype@*/ +typedef struct poptBits_s { + unsigned int bits[1]; +} * poptBits; +/*@=exporttype@*/ + +#define _POPT_BITS_N 1024U /* estimated population */ +#define _POPT_BITS_M ((3U * _POPT_BITS_N) / 2U) +#define _POPT_BITS_K 16U /* no. of linear hash combinations */ + +/*@-exportlocal -exportvar -globuse @*/ +/*@unchecked@*/ +extern unsigned int _poptBitsN; +/*@unchecked@*/ +extern unsigned int _poptBitsM; +/*@unchecked@*/ +extern unsigned int _poptBitsK; +/*@=exportlocal =exportvar =globuse @*/ + +/*@-exportlocal@*/ +int poptBitsAdd(/*@null@*/poptBits bits, /*@null@*/const char * s) + /*@modifies bits @*/; +/*@=exportlocal@*/ +int poptBitsChk(/*@null@*/poptBits bits, /*@null@*/const char * s) + /*@*/; +int poptBitsClr(/*@null@*/poptBits bits) + /*@modifies bits @*/; +/*@-exportlocal@*/ +int poptBitsDel(/*@null@*/poptBits bits, /*@null@*/const char * s) + /*@modifies bits @*/; +/*@-fcnuse@*/ +int poptBitsIntersect(/*@null@*/ poptBits * ap, /*@null@*/ const poptBits b) + /*@modifies *ap @*/; +int poptBitsUnion(/*@null@*/ poptBits * ap, /*@null@*/ const poptBits b) + /*@modifies *ap @*/; +int poptBitsArgs(/*@null@*/ poptContext con, /*@null@*/ poptBits * ap) + /*@modifies con, *ap @*/; +/*@=fcnuse@*/ +/*@=exportlocal@*/ + +/** + * Save a string into a bit set (experimental). + * @retval *bits bit set (lazily malloc'd if NULL) + * @param argInfo logical operation (see POPT_ARGFLAG_*) + * @param s string to add to bit set + * @return 0 on success, POPT_ERROR_NULLARG/POPT_ERROR_BADOPERATION + */ +/*@-incondefs@*/ +/*@unused@*/ +int poptSaveBits(/*@null@*/ poptBits * bitsp, unsigned int argInfo, + /*@null@*/ const char * s) + /*@globals _poptBitsN, _poptBitsM, _poptBitsK, internalState @*/ + /*@modifies *bitsp, _poptBitsN, _poptBitsM, _poptBitsK, internalState @*/; +/*@=incondefs@*/ + +/*@=type@*/ + +#ifdef __cplusplus +} +#endif + +#endif
diff --git a/popt-1.16/popt.pc.in b/popt-1.16/popt.pc.in new file mode 100644 index 0000000..a86437c --- /dev/null +++ b/popt-1.16/popt.pc.in
@@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: popt +Version: @VERSION@ +Description: popt library. +Libs: @POPT_PKGCONFIG_LIBS@ +Cflags: -I${includedir}
diff --git a/popt-1.16/popt.ps b/popt-1.16/popt.ps new file mode 100644 index 0000000..e744ac4 --- /dev/null +++ b/popt-1.16/popt.ps
@@ -0,0 +1,7963 @@ +%!PS-Adobe-2.0 +%%Creator: dvipsk 5.58f Copyright 1986, 1994 Radical Eye Software +%%Title: book.dvi +%%Pages: 11 +%%PageOrder: Ascend +%%BoundingBox: 0 0 567 702 +%%DocumentFonts: ZapfDingbats Palatino-Bold Palatino-Roman +%%+ StoneSans-Bold StoneSans Palatino-Italic PPCode +%%+ StoneSans-SemiboldItalic StoneSans-Semibold PPCodeBold +%%DocumentPaperSizes: Letter +%%EndComments +%DVIPSCommandLine: dvips -k -o "|./fixappendix book.ps" book.dvi +%DVIPSParameters: dpi=600, comments removed +%DVIPSSource: TeX output 1998.03.23:1523 +%%BeginProcSet: tex.pro +/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N +/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 +mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} +ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale +isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div +hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul +TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} +forall round exch round exch]setmatrix}N /@landscape{/isls true N}B +/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B +/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ +/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N +string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N +end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ +/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] +N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup +length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ +128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub +get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data +dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N +/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup +/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx +0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff +setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff +.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} +if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup +length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ +cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin +0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul +add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict +/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook +known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X +/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for +65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 +0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V +{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7 +getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false} +ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false +RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 +false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform +round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg +rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail +{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M} +B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{ +4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{ +p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p +a}B /bos{/SS save N}B /eos{SS restore}B end +%%EndProcSet +%%BeginFont: Palatino-Bold +% @@psencodingfile@{ +% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", +% version = "0.6", +% date = "22 June 1996", +% filename = "8r.enc", +% email = "kb@@mail.tug.org", +% address = "135 Center Hill Rd. // Plymouth, MA 02360", +% codetable = "ISO/ASCII", +% checksum = "119 662 4424", +% docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." +% @} +% +% Idea is to have all the characters normally included in Type 1 fonts +% available for typesetting. This is effectively the characters in Adobe +% Standard Encoding + ISO Latin 1 + extra characters from Lucida. +% +% Character code assignments were made as follows: +% +% (1) the Windows ANSI characters are almost all in their Windows ANSI +% positions, because some Windows users cannot easily reencode the +% fonts, and it makes no difference on other systems. The only Windows +% ANSI characters not available are those that make no sense for +% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen +% (173). quotesingle and grave are moved just because it's such an +% irritation not having them in TeX positions. +% +% (2) Remaining characters are assigned arbitrarily to the lower part +% of the range, avoiding 0, 10 and 13 in case we meet dumb software. +% +% (3) Y&Y Lucida Bright includes some extra text characters; in the +% hopes that other PostScript fonts, perhaps created for public +% consumption, will include them, they are included starting at 0x12. +% +% (4) Remaining positions left undefined are for use in (hopefully) +% upward-compatible revisions, if someday more characters are generally +% available. +% +% (5) hyphen appears twice for compatibility with both ASCII and Windows. +% +/TeXBase1Encoding [ +% 0x00 (encoded characters from Adobe Standard not in Windows 3.1) + /.notdef /dotaccent /fi /fl + /fraction /hungarumlaut /Lslash /lslash + /ogonek /ring /.notdef + /breve /minus /.notdef +% These are the only two remaining unencoded characters, so may as +% well include them. + /Zcaron /zcaron +% 0x10 + /caron /dotlessi +% (unusual TeX characters available in, e.g., Lucida Bright) + /dotlessj /ff /ffi /ffl + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + % very contentious; it's so painful not having quoteleft and quoteright + % at 96 and 145 that we move the things normally found there down to here. + /grave /quotesingle +% 0x20 (ASCII begins) + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question +% 0x40 + /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O +% 0x50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o +% 0x70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /asciitilde + /.notdef % rubout; ASCII ends +% 0x80 + /.notdef /.notdef /quotesinglbase /florin + /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft + /OE /.notdef /.notdef /.notdef +% 0x90 + /.notdef /.notdef /.notdef /quotedblleft + /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright + /oe /.notdef /.notdef /Ydieresis +% 0xA0 + /.notdef % nobreakspace + /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft + /logicalnot + /hyphen % Y&Y (also at 45); Windows' softhyphen + /registered + /macron +% 0xD0 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def +%%EndFont +%%BeginProcSet: stonesb.pfa +11 dict begin +/FontInfo 10 dict dup begin +/version (001.002) readonly def +/Notice (Copyright (c) 1987, 1990, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Stone is a registered trademark of International Typeface Corporation.) readonly def +/FullName (ITC Stone Sans Bold) readonly def +/FamilyName (ITC Stone Sans) readonly def +/Weight (Bold) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /StoneSans-Bold def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/UniqueID 38782 def +/FontBBox{-158 -250 1540 946}readonly def +currentdict end +currentfile eexec +405149B573AEC9378BAE46685AAF7849E5C9A5C8C876748725589FB14A049808D39A75D55F6464 +11A9C3526F1887AA2BAE53EE4BA6377CB094098BB2590828DB96FFD3A289579524DBBC79D9597D +47A79192E01C360F06B93BFF89A3C642BC410337D743499A7F8B1E476FA1BDB0B198F67CAE3F57 +49A1ACC4879F6EBCD84740D62C5248595B530E6C3D3CDC3AF54369EAFDEDCD9848E2D38CD091BF +2ACAD10DF1C87872AABD086D60475ED6046E240F2232FE2F00259225931518B7B429137B14384D +15F582467A818C20C1C6316C56736C19F1D7464231D69800D94CF5013DC237DA1EC16FD63D3154 +4FADF83F152D1496E3E1B50E657D51952A65DA2224AE3C290A948226F005C37ABA2F6CAA732367 +9D03A1F924A332FCF713C3AFF685DCD14F950A9F50F46939759F915F780F68EB1E8A2A6DD370DD +DEF5A51652CD0C5DECBCC94396962904B19069ACAB227B6D4D14852A65362D2BFE3B3936D8AB3F +2318A99A46913D868EDF1984F868785E3B1107643BC4E58206E8E5E71E5E13A822A289A7C7559E +07BBD8822847C56EC0DDB12202633CACA990B5844B5253EBF7218C2C491211D1879A4F36BAD9B6 +9353D636506C52F24818E4464E02C41AAA17AF7BF09FBC37C335A7BCA40481C1371828D4ADE630 +8DF09DC08C641377295CD75485DC14732819C2DB21CC499733FECAE1CA94907A1F144F0EB9BFC2 +98E471AF304BC3628CD390202FFF59A7BD14D9F9CC99368826DE6446CD40A68ADEDBBE8C388798 +0FE574448B196E987C2A392DA865DA46E652AAC8F9A4826D5AD1776FE2E5D2DEEFA011507BE935 +9E19E2AF34643135691E3A221B4B0AB0D18DC3993F6465489CE5EFA0D2FEC087881927A434E51F +99683AA0463697BB9614B6CF5247330BB7393F836A789A3774629B27E1F82AE4C01EDBE95C237A +0EAC78A5A7FFCC2332DCDB725BDE9101A9DE53A6CCA64A98429471BA8018A3E3C2D287B6316FBF +08C3D2BB5A611D1BE846B17C2F0CAAE2955BBA7EE4D84DBFA6BB5D54B5D90E23C21D34562144DA +4F5A49E666C1E6F7F18B2B33B2BC4A7FE722440D272CE53354B39442F3BC89E5F939B7175448F0 +02D6A60BC297C770745222FDACC9D456B4F869E7BD4E802C01D517AD752BA533DF1ECF4F9A6CF0 +DE8306C55A90405F23D1834D76D2B4452E4504AA953A8B4DDA4F0C967329D922A68615B1B71F73 +E8BB682ECBE3C7417A218DC386B0095B38575EBBA55581F768BA5D5F203A7625FE78857EF2B919 +BAE4DE0116506FE2C476A6423414FEF5833DFE00D3EAD6C6B5F31625CD76FB0A49D04C1DD85A7E +692BECE0CC32C9A8C04AC209B5D1D77B7BD213B71855FBE81F757F46127E7253823E732A609DCF +16C79412D1F0A1517288A81B42165B47DA66ECA5E8E1F6A39A474486A3D4B669BC65CF63136AC9 +243E7A492CFE222CB4F55C2ED4BAA7556DEDAD425BD706AEED895EAC76704AF6366295EFB4A91B +548C2176D4A30B1026489E70D8D981D110DE46E0D5DF3A287059220142DB0100092FBD9E16484B +7CDFBAC2B595FD35359D65D5351D5AA1AF8EE94E6A259A568F3D6219F2538EB9E31E88D2A7D8B2 +15F88C581AFAAAE67AF587343AB6AB3636AE519CAB00CD0A79EAE4DBCB56E76E46F14DD7F03759 +D10A4F78BC714B60E3CC56BC04C4FE68C5549BC1A4577F2AF578F1441EEE9178E6788CE03EE16C +8C3E80DEE3F0D016AC09B0B62B46EBE547F0C10466E8BC9C3AC235F91F599B244F8DAC3B9FA661 +8A09D9A62E9E904CCE33BB1DA1F6FC81E1F97A1C56A2107F721F837180DF24FF110C7AED628E7D +0B465D5064A6DB0E178C400B65E23951E7562A8C890BAB0774C2ACCED07E487D54E688E5AF3546 +661B13336EB1A4EF484BFE4CAB61BFA47B7F232D46EFAF50D5E31A8305EF727DB091AB0B93430E +61FB938F721390EE271D2BA5D8B33BAFD5CB3F24C7A4ADEFF6C0E42D93E1B9DABD25F891811A09 +457BC94E13F1B71F628969679740D91C1971598A1D4C248F840BBEF2BCF74FB1EAC6D3D58306DD +607CAEB18A8B19EB775BCBC6602DED6DC273D4A0190EF8D30E05675BC7B3EE1F6D584311C681F0 +C9B7D60D25BECC3CA7BC83B17E7D42832D92CB66345668F455F86A39D59534B84967D5542D288B +0018FA183A4271150F549D0532E692C31077ACD8F905293CC16C9901DEAAE6B326680A59493707 +895264F881D693BBCA955A6F03B58AE0D81540E26BC9A2104D4AB20C5CD1D4FA3DB09A38246425 +E5B1FE1EFBE6C32AF609EBE71CA5DE4E24D8CDCAF1C3C84359126DAA6AD0098BF74284455943F5 +115360799F10BDD657D00FFBC2039816785AD6E5EFA8444F3AEAA8DB52E2F3CBEA815C4EC09076 +1D03E87401317A12567DA35A9DED959746FD5613E1D7497D04F80CAA3463D3F3EB7912CCB6EF87 +8B487485A275D154E2549F3C424A730F66F66AC9E6FAE099E71504AD5B76B4F97C7BE15D70E4A4 +3CB01E09CD47F41BF047757436C886A36B9C5F2C51B161A397DFC5494C2ECB5A4CCCC075DBE2D2 +E37B22F14C3665182200830F6796C1C9841F24453286515E3F6B701EF8C0BE65B8305A3D2A0522 +CA5A30CFE5CBFC50A9B6E7D3925E532AB5A58D4C6CEA5FAE1C1EED2E39C815E64BCC96DE2AF85E +F5BC1831EDA3B1BA541B7DB5EDF6E042246A8534353B20E99A0ADDB46B32AF11DEDC2FE1B32263 +F054E752F68427F5A1B71ED953FC272FDDEA55506CC8FDE8F35C619E37296048024FA6303A9FFE +6C9BE3EDE4BE5794AD1A8E761B3CDF137C7A29C64D0D8EE1CF071F9096DEE843ED40F1D4A543A8 +CE28F7043D38A74E929EAEAB6BA95CDD17E51BDD77691F0846F9EEE48CD5CAF905CE0814F3C7DF +A17F430384CF1B2004F31E07975CE4A6BC88CAD0A805CF89D167BDD15C9F0F8442166DE3DFA687 +5FC08A35D221A151698B803BD67064571AE57B67797B5F0618B6B8F3D14829B87ADA7838D65BCE +D527CE2FF9984555B8A6B915A68263E64141408FCB7BBF1FF7B8C043705A8803ADB84397B861BD +64A3A7BA781C44C847A68F1A9E8FF6ED7BE881B08C8ED3A2BAFAB919D7D36D36772DAAF812A74A +EC368EA622DB6903CBA3134E755C63B0020EE72EA699A3975BA4B1CF7030E66B36BDE8A66BD0B2 +70C7A2EC084B8383D023269B931B9CA036FCA362A9DA6DC9DDDFC11F715B1F2A60098C56B6B68D +52BAF33BF0AEE2D8551F0C8809342894F60D3490D9DAD1317AB2F70E313924E9D680C610D41CC3 +1924E1458AD220FFE0B384404DF3AA67E7305A0836C5C195513EC3D0686B368A65DD3DE9AEF5D4 +EA28376B4ACC1D00EB38F6D4EED7E025EE17A1D157C1E71879DE16BF46D58E1BB46B2CF9CBA082 +C0A94567A5C874E8E6477A3CD0D6E48F8CD4E4AC3730E33EC8079B4CCE0EBDDA5E48ED13626F90 +888A2892448DD075EA3A846D1C8E6E3F0FF03B8D63D04AEDFC659840A949275394EB21B85E544C +28BF0C2AB7113EBE4A8A3D0579EF48C15D9D82A09E96347422073A45E3197490D59FE5E9818697 +065A419E95768DAF768E1D938414ECDE5159281F4BB35EED8D65D3651906217FFC08AFBB075474 +D0F6B7519CE3668090B115A350DC3E90DB350A290822405C7AD6713F3BC29FEE0A4E32F9C85FDB +232A458F55DB1CA335FC94A472C390A322422CAD609443F5645E6C45238570B689A7AB307B63DB +B598FCF2EB2A70F6C4C9CB5DC3076938C4D2C400930DC2625285EB4483294509A4B018002B8261 +AEF571B06D8E9BD86E8AA40CFED8E92D055D1F653FF68F2EDF9463796B070A2B366BA274A07CA8 +283B30CF79231CDDE4A2949F47D8C18C1583673FBC5AE18E0A54D32B095322CFF5DF3831F91068 +E9DC713EF1B280D41C4BBEFB26095FCD57A5FF745E0A24C037B8093FFF2E10DA7F6F6A481260D3 +237158CE50618A8BDB1CE1CF5551B4598917E4D40137E67993D96D75D6C3850D92D5373541D7E6 +5E7CCA1478A5F3D117AB8EF2F80F02489E7D9899A46B4B1C30E61D657AED848A144DC24F11A1F7 +18202029C81926AA76D9F7E4B8CDE38848E702EC6841115A0F585334F42445AEAAE787BF272A26 +3594E4F62358E7EDAAAA63028DE788724EE04D1751A59BD95D9DC2F2EDF0256CB44ED3E2210A9B +AFE82833926ED6DABA60141D740DB0318FDD9A7D3B4CEC8F2C95E3FA6EF6013737F0B1D48D24D6 +FE389C2EF5BD12AD8C6D2ABAF9016EFC7DE8DBDA6FDA21727EF8E007B155D311D7B279757167F4 +D1B2473534C2408E402AA0504F853ACBBB5CEDE208137F2DA6C21230FE2715C45EF003AA9013F8 +54A5534F3AD3F8FF0550BAD3716449DFB3A6A4F460C72EFE3EC5AA220E902C3C9F062E8EB41069 +5B3D602545BBC24D616F0975B16E8C7D3415F792555367704B92CEC9BFD6A851C81F5D9714AF8B +E6F8C992AB1C13D51F46C5E32F79731EA32D9C526D2AAA0A1584692A024E0F85BF9E1383CDA1C8 +FC6BE36CA3C12E4FF34F11BA62D9596B39836EB59B61BC5F5DA97D803215BA1D4343337FBB5D72 +0CDEA081EC40329FF31057BEA7698AE4DE1F0B75D4D9027F741F587B4B524EB12287DFD0B90AC4 +BEB27538A7855B7966576B68F1682B990CB5FF4BA294F278DC98956C58FACCBAF383B708FE4666 +52761E94BB3E5E65C7E904643D54C68920C0B1072B790AEF99229D1F7745CB403F07C023FA6A30 +E0A00D4ADE7051A8B59ADB29D44130AB03B7FB303650E9EF55C49978A94A583974B6B91A0A4065 +B47DBA34BCEDA19D44A3FD83E7FD23CBEB6D1699023B704B8C0E2FA801CE15A98ECDBB0498BBA2 +23B444C0A75E0E4DD995D40AA4F9F03C0AF85BC5742182D628B3C0D1F76A1A9C7E02CB2295CF26 +A2F73760BC472E2278CAE54D9762FA27A9246965326A0CDBCAE997608D0A1D5326E78B6780E15B +AE688827665DD786E6275969448E303012486BCBE4130D848B46666D660D0793559AE3E984DDD1 +04C4D56A066787B4AA4E1DE8183B078A8DE42F0663D33D35BACB19A2D82A62C52BE6D3C6EA6C5E +3DC9C49BB74FB1E430629F437DFE67DB4DAC73590258873B6D808E8DAD4FFFE660F09D5207AA7D +7F45EEDE6ECC32EA8F8BAA075EF236C72F9759F44F59FDB478EB818768EF740B9C892398B35B89 +C6F44EFA1E3BAF384D4BEC68D817AE7C449DE061D53C7568F2714365D5C807298D6F72E4D5D8AD +B87ACE19E4057E218811ED12F84906F4FF9BED46607263AF1CE4E4FC1A7D06D59725BFAF9B191C +17D912C67726D88CE805ECF93081A1BEE281A0364EF0CEFBA92FCD6433B4A44AC83C44935901D9 +2E32184A31FE7661B7636B70FF62D97AE9D7440A3A612A68DFD7176445F07346FD25DA5D910070 +5B7AC6F906BCBCAFE2BB3A3E296D580660B5F7B2B829951D291A759CE5DABC47E9021C14AF80D4 +E259EE13169257EE24C0373A7CAC17B9549A3940FC658BC35FC6366C7A9EADFDB6FF15CFCE038D +B5F1E0B2A33CB8C45D78CE03E8394E0EA9D67708C11F7E25ADA4298D5C89D977BF17555AC70570 +BE07815C8CD204E3CCCD3E89A6A4B9BB1A05FD6DD4A56DDC0AE56D7F58381246095E86245055B7 +762D09811480E9A1700FB390BBD45FD05F1054EE65A9FCA82B28F1453D719D8EA1E38E1475D94D +3D1B16F65CC4582CC32CBF5B9DE90E96D92A39F667090B8B47E0EACBBE85F885FB55F83B19B030 +52D4ED552C1CA7780A4ABF0DB02F476D6A494B363998B4BE832CFDBDFB28E0D2F6DBDF04291E53 +F8CEE97D6057E668F359475FA575441BC77FA6FF3170621D1002B1AB40C155B8F40F74DC822B9A +9CEEF7662C9CECE1082AE269953ACAE2E78E3EB011F721E6D65B897699DF6BE1D143989FE07BE9 +E1EEAC4A7FAB2BB88841E33E9AF0E109A186F72B6D958D2DBD92E070B61FA8AC9DE60D3B0BE089 +50C597D02551B3B10A0E52E40571BF6AF4047B1914FA5651EAF0DE0D332EE959F58F4DDE1D8D4D +6D847DE50E4A47AC0C2EE73FB67CE7FA22F242D4E69EDF2CC050DADDB25F8959E9060AF0E2ABCD +2E0225A1B9C4792EE988517B3A567DA09F3E12E052ECDC91A5737C44026513E46D7B0C7399B006 +B1505F3B7F41883A14BA5B180E80C63DD5D37EC5E90C38F46DC88F11FD5C1570455941949606CA +598CA2010568DC0B49FE5E5EB5DFB7E3AF195A23F51F87F5898D10A34043F23409A95519356617 +073EC83CD312AF6961EEA40377EAB0B0C159C3906F0492E94414ABB8FF34F1FB6D33594DCB5A64 +FAA7A02C749799BC14552F205122E22208EDB633FA50311B398B98EFFC0FEB5CAE8B0953CD1D0F +05701C2919D5DE58EEA2CA4AEDD06444915B16925504D159F050AAA203473C29805EDF5A71AAD2 +06C601266ED2B909E68887F94B7614E723950EA9818F7793040BB8F7E3500BE44898B92E1BDC97 +BCCF312D35A85E667669F15BDB42884E7A258C36C7CF4947852864FF46EFCD56817C58A7BDF29F +3111A188A5F9F255FE04255B1427CCD9D0CAF6D9992C6FD493E11AAA81E13FC69C569A573A79CC +D3D2859B051B7EC7CB55A2929E515FC15B08ADA50369C10808B83EFB6445B4E57E8BBBD75D6A6A +62F722875C6A65BA355BF24CDDF4F5611D4918ED9DDC52E527C49A2843BA3646F37B0103ED0838 +5D68834783F29C21FC66F55A7B11CDD154810310CB0C05367D2F12D749F5BAFCA86AF16160E90E +1E6609DBFEB302BB7393237731FF90EF555E1A194F88BB05FCEBB6B057372731CF1D14CB47E47B +69A3E1158F1741DA4505541A832D0362CD4D16EC54BB16E40CC682CE6132E369C0BAA2ABD7A35F +C27999881B02D9C22DFDD56CD7520CB83A8CFCB4A17DC799043F25D69BF3460DEEBF18C2579F05 +2B69B9FE5E6B7467A15DAC10F3D3500B7EB0D41E8CBB0D3DD7A69D28458373C681FA763BAFFC57 +24E1B59F21AA8830E7391E8BF8CD649F7F3826264914505A3B36705655AF3C3FF506332A43D753 +D15BF0A415D6C7F8F653EEC0A66840E7B9E78C8AB0556417071CADB861D9CE959CD4641EF2CDEA +B450587752B4ABE8F1E61732C49C57241746E913B99D23568F627AA7A22B9D3372F24A9F1B8AC3 +427E598809084D4BCDCC8E29B975020E737FBDE1BE1AF74CD02BDD781388F39A189F6583075A57 +A5B21E1A5E93AD170C3767B543BFCC152E326B768D98BDDD403FCAC07EA395A019E645065B0DD8 +DDAD3398299AABE61D20D85E99FB81C63C15212B496A3E23F64F40ABE60BD8527F85A7890BB7C1 +A31F9FAD5776CBF852DDF9099630A0B110DD1FDB87FA074EC5493BB2188940F2979A01C1463ADE +B688A3C3339293B0E1EA7FEB5203335D2558EBB8BDB65F13DC2EB8EDD6C2784D902D6B20135F7C +88662991CDC91E2B9980FD68B17B62E44693984B766247A9F121A12E280AEC4D3C765F2857338C +887102660537AE28EBC7771D402BE381E6AC75D071D6E66BD53CC02EC96851B7F6ECA7A9464834 +70F2AF182592F53FBCF7F3D0878E14BD3A7263346187FB3250F17266F11062BDE774AA3997E810 +2BA9C7BC37A0B69DCD788070725DE7D8DDE804B3B538024F2D67DF7B9E009A20C23FFA5B36CEF1 +F23D7A12F667A1750BBF2B222C8ED82498A9C644AAE7AC259840F3881747F2B4EADE7D961E74EE +A17863B740E1A672F270972873EF3BCDA4294E7008AE3F470A89159005431D9CBD1BDEB0B34202 +41D418687BD044B9DEA09F4801BF1193B10A6B96478C938AA67CBE3580187F2CC2604912BE6AB1 +CC9D10E15DD2D02C55C6EF824E4E8DCD1C1F92871AAE4A33455F15D71B4359E15CFB29F8FFB1FD +F088978B92B436A8F42CF8061DC98694A7627EA06872DD24FD5F6CAE4A09106B82AF6D0A4F131C +1D25A062649FE8B6FA16929384D4C15C301875B05B78481391A497DEF3D6E24776985E7B9D0111 +8452B33EEE084A1A5CEB8866A8E7F7016D82D0588C9EC00671DB79F22BBC904204136F2A97B27D +B1E20A571A89312F7F1FDAE1F9AA66EEB6C7B473FEC90FFE75EDCBB53CD4F4625D3E09C79AF8A9 +08279757AC4995AB575DC4762B33B6608A8A85D5EB39C52C1CA452047ED183A031142AE061D2C1 +1C8A8FAC48B5239D27E196AD19613158C2B24BF66EF5EB040C571B67791996F18E7C5E4125B9CB +52591132501D4E3E9A43B111BE76EC06E70867494C4DD27C137E6BE35C32CAE9CA4F5CE3934ADA +865F18C152697C6B1CF0604517AD8C6D2AF4CC00D3E354E2D285EE2F06237C9FCB02A3A4A60157 +CCB0A0F35915569AAA64A95C7DDA00EE2718E2C6072F7E5D88A88B57021DE4FEC39C4744600073 +B2D81A668109A6516670A1F3EF78BF46518E95D02243089D89A49FDD78A8EE183594EF936F71A1 +8FB5F93318602D6496FF35FFFF79FEAE2236386F07AA84300B067A9ED4FEBF51B69FDFBB973FCA +62125FEE4463A06B8FFCF5C662984C1CD4CADECC275709268C4FFAE774E12B617973760E369D1B +8C79F00471310EDBB3569022BE0FAA2E9DEB12E81C40A8ED3803FF3E400933B50905F3EB231547 +157887148738845667817FEBEB00D17698DBA9D1E236D596DDF3EBDF46A3346757CC012657D0E6 +A0DC78399FF4CA83B2545CF3E374F16DB2A5DC36B3DF9AE0FAFEDAC9379F0EEA3FA175CA0E9FD6 +2E11F10369B21FAB99D721EDA9B13519822DF999B512A8061582F7C0E836112D023C4617848C2C +6F923F8BBE27017DE7CEAB3C857F6A151BD998266DF62D7885A3C38363F5986614191D68C29877 +567B1408D4DA1C5ADA91A75A1A5CB07C7D5843CF7246233BFB323FFF495EEAF72D96A8EDD8C320 +57674536B08E76040742EAF65EB0FEE50D4B0BFC661B1ED5A436D6601A813F360BC1A6C8D8DA34 +DD1560F864868C88A4B72C95C82A0328D416EA6A2A75E5F9AE658D6239E54E7866CF8C7E37F911 +7E9D940F1A2439924EA630C310416D1A1B95C3E8BCBD0F1DA6BB3F5AC9342FAD145EDD96C4250F +89B5B5E5F1067D4B2E2E52A182FA383AD44BC4DECA1D2074BB6EB1DFBE7DF25AF3B0271B027B11 +BF4B0F1B56E834A0667A8B30C9B61E3B44283D571A11667A4DC10F7B6E3B334764CB10357090B2 +74F7BF6B9A19ECBAEAC0A942F95F82A604C50DD71F2CFE5B1B868E69C077CDDF5C8299CA6C1816 +93AB0E43F89ADBF3BB94E2E3CFB01DE47BEC9FAA59EDC5B6D50765B6EB09995755C6074C2106A6 +FB148FB983CFE06EB4EABE827F98CF158375A7C9C745D3F7907C6952D0CBF28F5F1DDDA31A8BC5 +5A24FA35E5584F61F4ACA25773D86C46B7A042BF003086D8879505FB4E4A88B37724276E5AEE09 +FD82429814C0B601CE29F7681BB3903E64619BA57D4C7399E3BB738105C6404165D1FF2E4DB654 +272C11185886B9F9CBB94FE1D1F7CCBA6E0E4944D6C59EAB5BE7F69FDC1496A779C63391E1FA6A +38ACD11E86F688600FE1CB3984B527FD856DA02F8F0D1D247DCFC17221139C312498ACF8D9E812 +4A64A511ACB6501EADE9F8790D4F6E9C3B42BC04C23E6AD2A6E6A54178BC38DC684B00FB549A92 +81627056F46B6836A68898211876058394D5BB263201BC69E68F050DA038B7F86EECC117C37C74 +AAB0C9C4F8B4652E2F83F0927ADB2A7BE9033255C631956DDCB17DB2FE375D79BD810AC43A2FE0 +8B51D7BA961935B3D9BBC785B0DED68D84C90D3DC3B22541C2B3C1A53DE99DA16E6EC6D1476CBF +5514E3BCAD427C9C8875AEC591BB5E21A2CA43C14051D72C18BED73612CE5B88A8A71C114A5623 +7FEFC54583A3041A6E871C8E7DCB4CC457BAE7390DE674992EF2E3DC5ACC808CEF1B6F3D58214C +F5024417BD901343F2F096157CE31EC0EA6CBE808C8E508E6000F01670E552DE00A4EB4D7BD254 +F840CA6EE6C75BD96E944352D9AEDEE6941CE3EE8DA3E851D811309E3B5ECC610E98DDEE262473 +3D61DB9635312259CFDA8953DF4D01A9B857DB6532CED5DEF2ADB5830ACDAC3BDC89B95834255C +4413100B19CF49A5475C5C985F82D1C43750E933C59CBC3F92F5785EB54339CF742F44A2B4D77F +694592CE2F926DAFE1F3D2CE52F43C16A2331E027FF3E24C102D09411B578B143582B55103247F +7866B1B87127763EAE9BA063746B785E392ED11E8D4A6C25AE39DA7AF6F12506BF9AFCAB89D77E +14C6757A6E806C0F1A16A0E42EECDCE19996ADEDE43E477B84E503C7ADE84B1D79EAA8C3E0D4CF +943416B55EACF4D3E62178A29486A8F3119072820F37B204A1BD4825E758650E4B06609B867CDF +A36E50A8236CB9FC87FD813D8E847294B5B5DD63DB7A553917D58383EAF69BD096ED658536CA9C +B83DA967ECC467E8329EBFC450FC86C960D23ABFE0A6698287A5405F54083D5C6A949F73C05ECB +DF521BFD0A3583CD38AD7B2324FE57958212B44EC6CBCFBE6491D5F27F91A7C68BF7AE91239BC1 +06A37D144F728A9F9452A17C3E3C81501E6198BAE958E37C9B50C1AF27C18DFC14579772F9F876 +9D1C4BA1CE86A88B1EB0D5EA9F51DC08DDEB5737ACDD58D856698795B1B3EE25E7BDAC9E50C6C3 +D6CE65FB34AF4C93A49796324B7DB4410A50680392BFA5AADF234DF2586176BC99A04FBA7E2A07 +9F5F79C7D8AD68F93B2F3B7BEAEAC1CD4E4338A9CD0203D1E04BC0FC3165FCA4103EEB71DFD119 +50547340AC83605B885C2F2B235BB1FA1F8FA0CAC2EB64615DF5C24FB2CFA2554B7FC2C5CF7440 +3C5DCEFC22C719E98553B0ECA1D08481A130FDAB6199CFD5FCBF610D4E2F51A17632270A096A70 +F1ED2345E196844CAFAB1A979FA1CBA54518AFFB507C58E86E2CCA4178172B488D7AD610B532E7 +FB106F94E90C062FFD67FDD18A72B3F2652453807901737DB8859035884D289266E402BF8F4718 +53AAB6806BE1BC39FFD97552B02BB080926F9095D56F2EC2CB04980A76F6DED32B9F879034AE2C +A622E0E2147E33584EDEA5D003AF751255B51959956D1E27CA108C6EDA9CF5CAF53CC464986123 +B9582D0176B6689904D5744B925F12AEE17492ED3FFF048E076119FD1F8FD2A4A1B70A6369312F +64F44664D1AC519464A0F2ADF3018B39A88AF07C52B3CCBC9DEBD9937FB2330928C1E5FF56BD73 +C4EBB943A3003E42D913C15EFE52EC17F01C7F263F795462BE605A2910CEA79C6B72495CC58F81 +CE83297B2106319EC6097C38A7394378164B7735500453974ABA5E3BE04542893AE15CD5B34AD5 +032B8D1F2AB683C743B7DD3CEA1C39A0014E9264E7655651539003A2BDC587F31B62E3BE1B7F9D +5F134AE76949F5AA629D5A63FC239920180246EA1FF6176DD482E33AD258B155D55CD66B44A281 +723CD3CCB66A362F11E4D58F9DD006CF1651D6AFD903AF87E72544CD3725670232D7DDA8AB193D +2C08736A49D1FAAAE861A664A9DA429772947107F2917D7E7717A4535D464D34B3C65B1E77444A +470EACA68E4DAB122420F01F8A7D213D0041908A864CAA6A621F14C14E407F0BC5CC70CF0BC4FC +CD2FAF8CD0C5D5FB2080010E038C0F118D762C09898686D8DBFC29CCDD46F08EFD599328101BF5 +16A5736F20ADD4AC1C150BD3BEAD585D1D362261C735F24CFBBD4B64682E34926CB04F9D31E09C +A6335AEB3C47DE39D1600D7F62213A71C74A0F81965DC5B1B3D7227636690B882F38126D901A9C +E418BC6D3D923FBB801761FE7B81A55DE3F2E42688246A06441FAE14F23DDB993671901F97450C +EA6DB10B0DB13A23CE0E21C27C1CD6AB524D25EFC13DAA450FD80BBDC6376065A14D749D48EE1E +8C83B833B510027F9C89F7319B1509B699162B7F9C5B8A739ACC1006639C297C23B8A66213F47E +A873F87F1CC19F581EC026DE584BC049C49BDCFE89C001504F41DE17D84F973826886F4E5246BF +FB87ADF0726CEC7A4F167E0384B91526894C2D0090D38EAB1461C607EF359E74628854DEE1AEC0 +5DA8945995A3D68671E8BDD9946C222294B0C4680EF2FDC224A0C7AFA9E5466C7B1457CE3DC7B8 +7B0C3517DB833EDD302BACF3C37BAE4617BA6206D5D1C77DD53547A7BBE0C948D217246C294C70 +5B254A960CC5C2F5E35120036356D760452887237D70D1E2F3D6B64A0171FC578859ABB62C1444 +D3FE0719DD85E7A8812F7A5C0B8BEA7207E31C7C55280348172DC5EB275898044C00C2D92545A3 +362F7B42E073C75BF179D13B0BE76B4836D069FE01C287B367D02DDCEC9412C2FBEC3D4B327A10 +76586750C8994ACE0DE17327B01F74A3813D3EF9FBB9C9C5414F2E9CC1DD9D06297D174DFD2DE9 +CE7BC95F580B4F3F26832AEE535AC16A087A012DE47BCC692B7C05B6015CEE221323F7EAA191EB +86FA94DBEACF0996A8C8D013301A7BF64C2436135C3CCF2294B1E2246184261B9A6BD2F4B98A91 +E41EEF9BD07018F5CB9B0060AA76651CE1405E08E455BA689CD2E6A3127007BB4B311C23804689 +ECF60DA7972373D96525042C360F5DE09DCFF940E72CD5DC0A9154B631AC1F2E38AA2B8551BBC9 +AD5CB74CD86F5388AA75B6D92B1E37A4F875A6714908377D78BC96DFAB7EBE047BE4D42C416FDE +50A33FCA9E65600A2C7A7575D6059082C3FA0DF3C31E82D3FA3969CE43965EA49F0663CF2A2C71 +EE4AD5C7D853B52B6AA0F41AB3D47E510D8BF64AFB1E8B8F782C98CD287DEB9AFED39335520B72 +B8B5CFE2A6BB7C1AB0EB746ECF6F7AF86C183612B0DCD583FAC678D9602957E61C187F39B3A654 +B20C792BDA9D81FA974A9E8864C1A86F9AB72918FEBFE47516299AE1E9B27F46F3C2959C5AAAD0 +A5C3C3065114E89956F5FA36E16174470DB8DB2FE08396EA5ED7D50AF989D8D1433E0DE7115A41 +0115ADE0BA74E8A4DBCE3D9B87CA767AE380280D51FEA9A0F623AB175C3462B9482DF6D0BE8F8D +420782DBA63D5F43966A88E3752B270048EAFE8BA291E70B8BDF8FB433A5A57C669B4F7D35C8D7 +3C52700DEFBD4CD42E1F2C8E442D19C030CB35AD66AEF7EF0233BB4E08FCB48C872399AF859938 +A02BE5F96391FC64E297AC790D70302D51979CF5459F4DF2A41B27592D0538DBAC394C37ECF0E2 +C116D0A2A2C6ADAB5B0542F86CE5436CF989A869566ADE4D764E423BE583ACB1278C7ED362C023 +F8AC485529006A1893DD5A98D050565543ED6A4F3B03092E27E8913765E5DEC1FFFBA80982340D +AAADCA7A95A24EB5F392DA99FE3E6C34948DD4CBC469BF2B53A50F162D05963D73E79EC88A9D94 +052099431793CF8A0CCAEA5C95B17460616A13927532043BE9FA79FE0231D57FE861FC0D32DF90 +E9F3EA5D028E06281618E984A169F5006756341C1B2CCB9BB5C6CBD2EDF71A5244EE646DBECD26 +0F547B8CF03F2689EB7FADE56D3643AB8DC7B89A5194419818FB67DD5C66E7866EBB012C365E27 +BD4BEF4A6FA8ABE429BEE38715AF35AA3F2751E0FD980DCF6AF94A8CD6A7694B6FA71F2FC2FE61 +87884D029EA7BB951EC1FEC36C100395943C8A040E5F1325EF8EB668B08999F0431C2B36761FFA +F6E21790E51113526B92DF76AB22B9761B11A0A6673C8E093ADBEFB1B18FB7CF80F43D1D38F176 +78597B4F6390764D60A1C797DC0926DD01B7D09448C671FA5B51B93A58640EEB62E80C4F3810E9 +9AC99950D8AE3189152BA0AC7D8FA8431DFF1EA3CD4FD07B272A563E67C3FDC3188BD621BCF0BE +40AEE192A02BA5EC36C5A45E1E16097F4284B74AFCD8690B24ED8C14D25C7EDA7CB639043A2317 +8A58094733FE73887F7FBBC995150B6E54F5CADE65338A12A0F3824984F5B16AA0CBDFF330A408 +7116EFC179DD03CDFC2312EF49FCD501732875A961DFA75DF2AFEC0711DD8A215C69B9EFDE095E +B03261C63C88B6C66C3DBEDA2223420713192FC38AF0DD9C4E42F3BAD9E1306AC8471AFAB8951C +10CC3FA51E096AF28D73FAC5CFAF410F83EDC08F7AF86A280A23367743FECA7106EE0D460261C9 +AEDE826D3C1B16DBE4C0DE0EFF9F744CA26246DFF950B0FD6F14602503F58A4F3B776D94E3CF47 +CDA03C04D31E71BD0281C2A66F2D8021A5EB2500A70D73B55519AAB87DFD94143A623FB250D0CD +31B38D8ED2C5EE5C5A78DB0220CC5A081003F68D8367F350115FDB24F2A191AFE85B9F8C9DA654 +84C3FDC994889F42D561638404CAF88B831E65D6D2623AA8E82A050DA727F886EAA7DBC4012ACA +51FB15CC48016AAF9F82012ECC6B3A4B5C9F628795858DB725B8397722749C1BF0682683A8CD6C +55185A30C3A219136C8530CC32C8E57CD3F66677549EF3A9C58B036C2CE21EA3AED58900230176 +8FA1CFEE2A5AF414A09F5DC3CA77C70AC15720BA08B5C498A5C6F6C521C36475DB6E7677819295 +AEEF95E2FC891E1C45CE729C8A1032E02201C1E112DBD74C3203E2FBE389322D266DC2EE15519D +1E7F0907C615F228733D2427B55C0D3735AF25A15F0EB0A7F3374755454869CF8D825C98B8EFA2 +45A44FA726AC7FDCCA1B8585A6EE64897643137B6568C0D6EC985902C870783F2602D570176590 +0E79FC7BC5A40DC29E96FE65575CC63DF1E4F39425B0EC10CC37045A0B5FAED247C17EF9180492 +4C888A39DAA1D8F28F2A682A9A522D5B8AE6668C02E9E04E2FDD936E2A0CAD1DAC3CCD6E36F0AC +1D26F9BB256A7ABDD0B532B7B487C1BCB93A6114821A1FC85EA6DAE4FA889F555680A9EB893B2B +8E60F99734383EA0605A48A2BEA0752D0C7A42C36D0EC252A522E55361BE4409BEDBBC55004289 +ACEFC8E11CC989609521CF8F55612F25030C5A388340FCCA791F1E4C14F2AE3333581B0D81911A +A06D22E43A5CD564E81EFC098F3D8DCD107DC84B27B6CAADBF6CEB735783CF453943F60897660C +818E1457017A56512DAD80C6485F6749724B83DDDEEE0DC58A0FFF9EC71F0FCCD93DE9B2DF070C +766CF1CD3062962CF1AE2299ECD90924A8D7C48641A0764D000DBCFCBEA3205DDFF6465C146EB2 +2E99078EA6CB6F62D687BD731E56EE7081570935FB43F39FEEE8F86EF910FF0B944CEA878990AC +F46C486B976D8DFE8905BAC6F2B01C6954166F5086C44804C7FF640D689697E1BF6ECD2D6FF20B +1C695C96C78B923630B8C2064F4CF574249BD8124985ECC0D762ED0BFB52E2042EB900010DAB18 +135274109FA10157710FF3B695FDA0211F2D7E4CF7EA38DBED585FD4A5A6D4FFF460FA2C22AB15 +052D40EF60A35F36265642502FD0C37A2681301C86081A4016E981E3F6A184A5133F4A196F35D6 +23440CFDEA99F58C51A974C15A3A6B96EFCA25D17B0081E6441AB2EDFA2548565B9E71642290BD +7C1A7077DCB34616A8FFF35EE4EAE3627D2F1DAF52023E17B184EE4F74C2B6FBA63D21FA3433F1 +44B521564B81FC2B20D64236DE7FFC097835AC3F9E32362F04E3061DF88B6A9901C31840E31BC2 +C590706B4B734416543C3B2477E80DC0F4FE95187B36E5EBE02075350FFF86486C485443D48DCD +1FF4AF1862403011EA630A04034E0A34AA7DCD1926A2A4A1B5160B78B313445161F0A5BA656D0B +69A25F9CA32BADC2AB0A5076D4C6357C3903A4D45741D44A5E4000F85102FEFF45137595C438B2 +8FC2A5E5EC2A9DF3B48B08A99EC2EA715DE23C37AA603D9FC4FD76AAB1A3583263876544F7AFCB +9B699CAA51755B1C4871A8746FFB6183339AD853C28CE7207E772F3286F801908795BD8C701030 +0AF15345F574684D87807A8D0BF7B015030E92116E5A09CDB315460BC3B598D59ED7F3B551C1F7 +C96152DFF7BC8FD356B2E391B0CB9270FAFB986E11C8EA2350B672BD6AA36F0967F57DFE98CEBF +A9ABFBC7B5D2EEEE99539951699BF9EDC5CF21B4E7C66A92E1C48A0220A6DE1DC08435BE94B7EE +92AD6D4822963FFF8156E9EDF524132C17FD236E35580DD6D81A201BF80F2D893C9D56B536F4CD +2C063C0AA735CE8441017B49602753B776A28BA50E3342681C66A881BAED494C31D0657049E479 +1C0B18F7190B1CD4FFBD0A045C9704CAEA9292FBA6B62CFA2E5F8674BB14AF84CBCA42FF3DB5CB +B5A37F20926B170667111616309E2B0A4494AB2F628C9FC0D626F02CC9AA894CD2E6C4FBE40727 +37168091AB9536E3EE6D0D73F551E30538D7BD7F914D9E816044B3C37BB37B22F0221AD5F715B6 +F1288D7E4DF2FE4DAF4C65D097B2A757F0EA97565B8437B42F866FCC1B6EFD2EFDE8AE9D88814B +5BBDBABAAFB6067F1382ED5A59C803BE5A8F37DDA199177E1AD0EAA48E1249288B65D281DEB21C +051FBEA7165AE5EE8DA9C35896B5008A683C96ACB41F891DAF6B07ABD8F8CE8C0B60F0244D4F47 +FC30F84AD079795E6C9CD35D5255C60E8E0FF736EE58BBBAC019DDF370992F98D0E595FA92E911 +7659B7667EBC12D2B01158E78231E68936AC8003A1B60B20A85E89F62546110E09A7514B447C74 +447D6C7707FEDA3636F3B00C470CE0D4A23336C56BB8B3532C3D7B9D7EE4A94684DD78B7462634 +1F9683AD4D80A358B684F522E84975D1396F0163A4858FA2C175421977E62EB51E7A733758B76C +6F378BF235860E808D90433BFFDE01EF094803CDBE5853D6B7A4B30A85E83FEF5F4353FC1F8143 +E13A2556002169F86049446D92C54856D25A90F270EF963627BC7890A0156C21F3A2AFBDC45BD0 +0C7A4BCE6C04BBE19032C9CF72E26395D9A31E3C5DBD061C7108283830D4CB0CEE7D6DEFC0D642 +DE38333BB72132C9E956FD58DF4B48C74BAE5D8E9760ABEA97520994A6F98C42C01760011B19B9 +E3DC79789A9BE75052477C96F781D309C7CA44939A3D0A458EF25D5475F99380492E508CC36D4A +2BB1AF87B8D7B062750D8FC1F87C774A4CD5EDFA0A7A04E7F9F273F90317E2B0174C398F3E583F +085AB4E582008470352743572A76A6EAAA2DE3D0FB2517FAA832EEF087721D2092FA43C6165DAB +F090F59BF9E1DF2EA4717211285B51C7CECF3EDB98B4F417CA0156888F4A95DE67B73219256EF5 +4F553038D4DBDC64DF7B704F2B8EA7A36EA5A4670E3A12CE6E2686DB8EE651C6F5F30871835304 +54CADA03630DBAB407B45723846C399A2E47C9F7EAC95C86F4AD2119D49B616D28205CB8817E47 +4A91CCB58629BC9B2DE0A143E3EA70DE2429FF83A2972ADF4B8CEE0DBF0B22BF47AAE643627DAA +565FF473C4F1F7BDFD8D320ECE472352BF037152855FB9046705D8319D78C3E8D0D6A095565C4D +AEB2C2A621EF81616FEA46CF8B51D0B23A9A47A9B6A7046EC2F52E1A9F1EA612576E6B026CDE02 +9CB1A0168DDE4A729DDBDB7D9DDD253500C644E0D4D680F37A079319BDEBFC9C247C675E8202D2 +B09669E3D90F6F2DFC7C6899E8FC9E48167D291BA9D0B33BA0F1F331AB6578734F2A4D27B9BE40 +93C1A1351F950E99A805E2F16C900C61B7A1FCB3B3B66F66C5D07402159BCDBD15F30C59917316 +255B77E0EBAA3B4F81D5AED438B32BF815C94772FDDA123EA4BDF29081422CA934A8BEFBA9FAC9 +3EBA6194265AC59FBE0B5BB3BB056E96055A961D5629D0CA88EE0A672B9946542CA1AE83F1BAD5 +BEEC57336E491E8067EF260EB8BDE634E8163D2A263BC815968DF9EB7770486519C13207E3ADA0 +09A7580055D7E04FB72AE364FA5144122CD7A50AAF1870571A0A7F19B52805956C78062B17FB71 +58A3193F7CEEA96A18A05F6AE2ED484820C402BD0DFDFAEA48238E37F428371FEF79A1B93F1F2B +BC02F2FDAA126D8904E6E4CEEEADD7F6ED036A2E7D1B6F5DA7F598FDCC7AC7BB175DEC45D4FCDC +4A86E2E3A9A51D00B33945DC7E38771532F3A75B9017AEBE1FDD745356EEB54C1C310EF6C1B85D +B0D09B0C61BE3AAB080B58E279383D8627966802686283B507143022BA281165BD9955C833B1FC +69A3A2071A5F5D664A2E7E9DBDC85B64A48684A2DC6EE9913B5633A98F19A546DCA6727361010F +217E60ACD1946D0D1A2B0A31A6103D8E7438FAF554341192E2B33FC22C57757680B0C44147AA09 +27CB41E464E94E0E0DD8EBED1873F9FDCA312A4ABF1464822DE5E6CA723B8B2F3B23B7368B1DA2 +DADE8C2B58EF71B068BEBA33DED1B278D3B81D8AD44DFBAB72D4AADBCAC1D01FFA901CC3FDC56D +DBEF40BDEC4BEAB64916F9CFDF21F5B118433B672BE308267F1A8AAE85EF280834FF8FC6138A2C +41773FBA3761250AF744BA0686B6BE8DF369748CB2A30EC33448ACB1A704D1BA01C2365FB1207E +98DEFDCC61CDA54B120A74061F8B3244D12F6B31BEFBE2AC4629E6B8009C8239D427DB2AC9CC5F +70F54870D58C286C8DCE0DE89B6E2D0B6319AD1A10D91F13C8FE61D7A3B2E1EA19E38F12733BF5 +3732B4F3FC6A8E12FB01C0F03C38F645E81E64E163B4C3E3DB7B6DE0321E78726C0775E3AF0E65 +54B037B3192ABF1D688812BBBD4E643301BFBDFE27DE4C9CED8D9A705C94A22F599CD4AB72D512 +423B3D4396B42C901C42B958C46882672449440F0C78BB33236860770B96008D7863D374D05C79 +B221B20329064613A7B7FE1828E5A80EC45C64EB08563574F992B5673E53456CA3E8D4FDB81E15 +6A83869BA95C8A6E8EAB804438EB5BC5B6B73FD493E18E4C95E217B847E422A947D9ADB14FF0D2 +066F4325A50BA07F68802D86D51653B264832B4D6102107FE04994F8DB0464C37F3B0DC87D45AD +FCBF95B1BB20620F07AE420AA66D7585EE84A3AB73FC8F1E5FAB3CF2FF384DA9669DA91B0132D6 +9BCA7BC21EB7AFD82902CCD9F642849B0AB620A90B3B57554A57C17EEF51A8312F428022D5EBE0 +F23B52C06A7C3F17D4BC56700C6701F2E003BD1343B416AE36CBE6D6D062EACAE4569FD55B59D1 +55EB2E0801D8C8212113A9BB7BA5BF4AE89D434B2B838C911D84540CAE1E2BC95DD28A278F3570 +404D91D3C18BE468E6F54BA6B84D6307A2DD5587DAD230AB2383E6957E9AC1A75EC6DB0835F248 +C9EE480318E1BFB00AB0ECBB1F160300E0B6B2C562D1B856F549275F98FE1480B9409A26BB55DD +F5E67AEF16288B3F4C9FEA584A8AA61664B73BEE0A62A5D8BABF1844F97F7ABFB73B3CD19025F9 +FE7C089B9630BF55C22DD14849FB3543122CFB669B51533C29F78E51F53C494B2201CD5FDEA488 +F259C54F7912E765360A0D143B59F49B935006066209D11FF9F9541F11AE4F7C70ECC4FF78FE8E +0205E1F97D90FAAAD7D12E239C009CB97B1AA7F707B7D018F12563CFF65AC2FB14D7EA63901062 +2D5E3D2A74CB8EFBCA34DB240D10C9FC1F2EDCD48CE098AF1FC01C3FB49A27957405DA89307A1E +A877E1D4B0AFC98CE0235AC2C21D2D73B5DBAC68A0DD0796ACDA76A1928412EEA5053F1E2EC78C +65D44277C258A9B211ECB8A3D49C34C89ADA99482ADD3FCF5AC7495AC483F92CC8074AF6B57972 +6B497D5A437E7D37B4CC7913FE23047D886152C041AE3B5D70063649C8AA7335AD3BFC105B9140 +C5C4BEF7DDA3156EB8841A07064AA2A0EA5E7E6828A66CB2284A6D5D4189B6DF9BE74555B881B6 +F826917B2D09DF633FCAFA52B6E3A8B0E670623AE825A746BB7EA9EF3F52EE05F0A7E870A61401 +96D50B0FE206436714B74DC7B3673D9356F885DAA7F79A73676912B84579F0F4978F327CCBE063 +D09D22DB01222AFB4434045C90A17D0B526657958070F7A6AB555961DB6D78F479331E37305D5A +2072AE199C9C31B12DD61D10E31889E6DE5BFDBB51C90548BF7F501BD33DD33B5F679F8E846007 +BE09C39050AAF03464A57CA70FD083E2EDC2BAF5DD3E0CB375DD3A2782898273518D7AE09B5AFE +27F2560FD76891282F7B68909C6FB9F549AB9B4E664CA259E0652E66CC58C250D285FD2535660D +7C9F4EDCFD874F4AFDC67D1B909E0576D159DE69FBB4DA307FE37CCB01E7B7C6682872FAFFD590 +2F31BAC68E68CB3A03BB824B5F35616EC0EB43427BE7B3976906B6E72F9D70B8D69758D4D4ED1B +D9AB405B0E9E32400EB6C5E7FB006997D5AC5265FB5571DE4D1E3E3123A725F37153C874439407 +8D1786B9C246339903DF1855649FF1B97C919A818A3C986AEF298F2C901F47C44E726BCDD16ADA +2DE467F348F273364242E82E6C702C771B8B0612380BBDBE29760F190EA7EF8F1C2B9991B701DC +2D1838AA8282856F3EFCEA274718A393B129C768D50D71B5849ECA68CB1316FA6D1B83CA9FFBAE +C468178396258E077393F0EA6EFD239C554A72252290EC1CED243062B1C421473185D4E07FFBA4 +11A2AA16A0A64AA3550F97D778BD7FDA6962BDA0BD96F359ECEEDDA3506249FD0795EAD1B4A8D7 +68BFA198955F360BD1F57ED9D936E1A765EB2A13FD7392874D1AFB461600D077BEA83175F7BC4D +732334CE6F0C8556414C35E3A8F2626ECD852399DFB783520F91807822F34BF1C99AC5A89594E5 +5CE25CA47D9AB411D74C489842C85109C12AB25B0105F6D816CD963AB532323F9239CB3861BA22 +B11139F35A4E9B843D2D9B832DC81CEBBB06405B0F6F19832E97EBD56B58739C83D2B015CED279 +276C9EAC0C1D92B10986ACB410A46D0C3BD16B34B4A48C8E2D5E47461959DB03D0F2D76A375535 +AE8818EAEDEC1EEAD181B1930C5828751FD1002A18087A03D2874E20EB7C49A02901C92973C235 +0901DBD7F2965BB17ED78F3CD12568AF15BF04C9D366380DC3C184A97E4A72E9F8CC02CFB7EE7F +4956CA929A6E32AA2B2807AF372894AF2E9C37A372F51D9E45E68601FF6F06524210F0567B779C +976618A30B59D269B808741DDA7B003659072374691101D3D09D505C60ACBAF7C122BF8FD6EAD5 +7328E60B69168080719B6DBFBE65A31C27FA3C456F3CFF4BECD6B32048CB20BE477BFD3371A014 +0C22AEFE9B13B0C7189ABFB43699E43E5B2D4AD7316012F759EE6CD498284C81AA5ABA819CF9F4 +C833C7F62B2AE7794FE888F0CE0F0D7FA21A6C6A8CDB1AAD802FE6D85777ADB6DC1CC95587F2FD +A84AC265A1849F66873F14BE84753C499562579F2361751FB7AC809107F02CD3D953E47EEFEEDD +38178FDA90A2FD01B7FAE52395B970AB7B4F923175FAE29828CFDD824E21CE9FCCBDB9DF984B1B +F640D8995C1D32DC65AF28A899C5E97B828885704E68A0EAF6058191C1F6D7C6687F2019DE8A4F +B5F65A0469BD823E77E6EF6DF177517AC774DFE568923C474C9E7C5FCEAA7EC1241960093ADC9F +3ECEFA7B3344F5E064B8FF023E9E1DC18566CB1FF960DFBE470F4222210C5A41EC3E8D4C56CF9C +B99E68CFB0A26D9D698DBBE95D407FBC77F9AB3E33B94DDD2299CBE40B0F208672AAFBC36ABF07 +F39ECEECE3A2AE0EDA34A78CB38993668B60909FF1A9FB10EE7416D9A16A7711B76B7BA03D010D +AE04581FE01A379536E4A7C913B741E8A6135B6398300B22B8E07D3B14A93BA76195AC03A1EB1F +E0FE1DCCCD048D16294F365178FA853BF76E7B92207DF27A4D1EE5873C9A40EBB42E18CB7DE812 +1BA54A479EC96A727EE581DE55F46F536CD947FED706B0C2CBCB2ED4C2399FC8D4B649CA5CB8DD +6B3D8AD64D6BB395D945E133E24BA57377E4B82B77C729AC7D5EE9153B2E0C1AF4014CDA86476F +EAF1E56B7D86421814071886EE30DD8E6EF3F31B0B179367F745A5291CC6300A535E82912E84B5 +27A283DD1363C8D6B52CB2FC2FEE59D9509395A38A46F235A1B433843A87C2F07A66BC120066AE +CD6BC0936806051001BEED1A1359E626D77A9782412197DE172BA23D071E930D13E0DBCF59C3E6 +7967829F6C90B500D2D76AE3FB5E6C9240EEE88AFDE5F2CCB04B036B7C9FAAF679E65C8CC7C013 +339B56BE285D5F985408DAC02AEF10A865ED1FD34CFC03F087C175509B2EEFB3744C580B31B097 +328F360E99A480FBD7A877DDBE758E65749A753ED8801F6450488BB80C5303B05011EF5C6820F5 +008B71DA3E62761B559843C59ABB7E95E413688C40903538F452430B65BC1B9CFDC77051BAAE60 +9C413E0370E64B57C59E7E02B7B07768DA84326221C61E8ADC0B8F7E3B3F02897330F8397BA319 +94A075119999893505F5B665A93498E98C78EFA8AB7B267B99C7E070CE2D26929052498BE336BC +EE7A81FD448572E302D1779B413A8AAAFC1D005461E3DD63B64ED694CEA82CA9618421FF465B84 +69739A5F2BDD2F80FDCC64A2A6B77B164E8F0490A3FE7197971C0E27BD1459C7CB756B5A3460DB +F914C8736D7FD74A4371741F670840C7C154D70EBABB2B040DC864483CBA1AE8B630F38699BE8C +0316BF5E25E81ACE6482B084E70F000D6121F280437EA0E43B3F14B5052A61BF06C3974E753FF7 +557E11F70D70FE2965238AF15DE3A4A9684271358E81347ACDE824480D51006211840661D48E0B +758662086C5688065A7C5C03217124073495E3E7FED72383FCB8AA246F29739D3A83DAAF8CB964 +A023DFD131F022123BFCC782CC237CD7C8C0611AE1D8FD8CC15211FAEE13D69487F99695FC32FA +2D2D0EEFA3671F58BE5A10517F787FFBA050B9410D0DE4E4AC2F671A23F1A3730F9E53CE1F073F +F6D824FD4B742B8509CEC73A8BC3D7901981E5C4606E5DF31CC4208235FA0B0ED784D1B47172F5 +B8BE1AE460FE145F3DAD2835161C29694D087487DB7A23F81A21862609E7567CD922BC4390EB1A +698F0719AB66EA001E88F9717765164FF582E75B934CF66EBC1921A00DFE652940500C4C58B89D +B6A3485AD807B9053424966833847B9D9BB309530A81E1EA8180253E108E84EE70FFFE81880870 +EF69908DF92A48030BF62403067494C09D98A896240E848E3DC408FC45D237679F8C715BE9C031 +317DB88A8C1E3985580BEE4B9C1D2094CBB62FE6A5D6C5A37C38F80A410D267D2D0BD502F61C89 +E937C67F142AE87FDB1353CDF29106F432F9DA2410F69BC1B2A9F2F6E56F3BED2C37BAAC4A95BE +7746A98BD9ADF3F42E81B77C72ABA739195A18852145964A18EEE242F1DB858FB978AEDDEDB5A0 +C735F127E6F26B414672D727FD01754D1F4E6F1F763F6F14380D83BF01BFC4E525A510579C5AB7 +3040F7EFB1BA7E0AF11D81483E295C467F57600D9CEB1C9036513A51DD2D23FE5B461B9A6118F6 +8B506BDD1357FDDB254DCBD2F288B4DE89C305E02B654EF11AA0A8DE529B093BDF75BBF495A574 +FE2273C98036E3D990956C3FB832D8A52E848645F1F3703A907BDFE522A0E40A46F62C661C0B75 +E9266C9DADD811EC8ED6D6751F1DFE4E327CDCB0B3962C6A2B6D5AA780A0FDE819C1870111F788 +018DD53F1A7728B430EAF1D959B3E1A51AF26CCFD26EAE9C4083AAAB283D1BDF94DBFE17255B53 +2EAAFE1A0B9FB9535C3A7612CED818685447D04AD983C299BE0FF10121CB167244AF833BFA84A5 +5853718D75FD51F83EEBB99840701579C8565588C0FB4291B9B5CDDF19AF7B1C6793D74B0DC80E +468AB356715265055050F4AB55567C69BAFDD7E617E935BF6682F9E2C4CC243244CC2472670174 +6BA3E743A9603C43095BB8E6D98600717D452C5DADB237036889C9778F7BB8BB16D6C27B9D8447 +8E6905B517BBF627455CC21A52452D4D97BCE4CC389922DED1E950C66F833CA1EC4B135CA504A1 +F120995338D0C3A9A81BFC81D63FF9E6C53E4EF6A07C511214F5E4D7BB9DD6032454542AB649F7 +6FF1DA38FFF98F9D104F5E038C2074C2C4D972CF84D813C5D5136AFD204D10CBF2B5865040C03B +1889ADFD00C8AE361254856476B81FF8704C94D6EDCE7E9C644AD69791D51978F1E18F7D43F320 +00F61B06835233F9EC73AA1EFBB134583C0B2DE39837A5A3B652829CE3E3C4FC29C17C37925658 +CAEEF53D597C675E609C19CB59A05224F47C77D799A7EC5BE0F8EE94271AB4E0B2C55737FE5E35 +6927DFAF2E79F815C2FCB98C194F27612684E4C335B8A95FD79EA9A5C59FCB761A0D85C3D1FE24 +1863FADCB7B832FFF9B3B892A1EE1F00BCBB5242035E40D678F8552AB46105370B5DDC49D30FF1 +E38C3878102499EA9789A5E17670117CD4448E5A04DA68E66705C1B5EFC74B50AB556700834255 +29029CA07D645BEF30A0B14E17398D5BF4FE90A819EA00B07FBDC8454F90220386799C89D3F556 +BD6B0DF31CE7EB6D637BAC5ECEF42D4CBE437CA8C3E9750CFD597CD5A66119AE45DE3418702EB4 +7CD7ECC900E2183E0D3C9C139B8A7551B9D5BDBB4AB17EED765D1CABFA4B3F5134378B30FDF696 +FE060B6D823A7F6D35B866527610B29B5E69D5711FC834E2C60C11857888EBE2AA9DCDB985AD5E +44007AEB89E11DA08F666B0494ABBEE4C0348692A6A9902BB7E4D1474E48A410928D2155986968 +2B48BAAC10090F2F8585D46BB13612220241763766433A7F23599A462C5E39AEB8DB71299DC8EF +A268EE3B0B8A522B5A08619483AAD6A04CF107E268DA6751AB04954241CAB87F679FCB04140D1A +7B4E6EB6A75B76525A86A1E527CE56C546E6DE3F6C42C171537C8C86B046AFA338AA9A76C97FB1 +E7BFB161FA57EE38B3A75C23FDC4B49BBA3C34E3490A0A040E5569E2456AE40D28946784408E6F +1C75D8BF81319E3D3A946B2867E884B58DCC97F846674AC93F2570126480A0932D1CC3DCB94EC6 +E91AE1DC4C442A56B15BFC0B22AE5E86A403CB8A2E7EAAAC996DA8F8DA5F7D145830C06A7B50E9 +913A8DAF63D596871C232EBAABFD6CBAFC9ADBEDED8C7662EB39BD306A9E38C9CF9F71FD718FAE +D88B4409E64AFF7B6E07EAD81D3A50712193F9CC234303C55CFDFFB0A3A7829942C4FC55A89697 +79961AC53CF1FB2566A8510AD810989D6CF9067A4D72B20C0EB1E8F440394B71A083F864DEA2B0 +476B807459AEB77D0DC68454F226D04C3D4BEE54C9D1F7F9013A8AE01E37435CB90472F35786E6 +4FBB0771BDB2FCE0AD057F907DEDF18A9D8706A48A288D82A421D126DB42111C7BCA2333C7BA91 +0F79B673AC27DC2B1C0452621F0BC8EAF88C7EDDEE8EA88A31B3BD7AE509D68959102E9FF3CFA3 +CFE81BEDBCCDA6A742C3107D57FDC93D4EFB328C80A5F652B4C5B607A7D3685DA5FDD54F2F0D26 +F2B3D719858E3E902B7FB49E06B1B5DC7A3A3C2CE5DDC471816C739AFE8C5A617F6A109D6D412A +299B78AF99707A66D58EC406155BF9E1340B0CDC7ECFB4FF1AD3DB0A0D0519FBB5EC6513F98011 +DE0C37C65E97CB7CC6D68C224B1D4AD96EA971270BC9C2306D0FBD61F579DB318289EDCCB6530C +36834B3960DF38BCD0B7F7239E84A0A64EC64C1C6CCC087AB6858708687C8D008316863917306A +9ECFBBF7261FCAE77E10AA18112EF3C463CD86A6B8CCBFF9E497C94D142F4441CD30DF0777A115 +6E396EE054B0C30021F3DD9B5CDAEC67564264F3AA2F12A5900F8DAD85542EAE0344B086A6F17D +28C23FD9CA2FFB0E747B8F7B47AE99469E5AE89BC8D3AF806C37D3EBEE79828CEF262293650372 +83C96428B1A468653C1EC96A31FDE279681371C263AB5A18F0EA86E47111EF072C72AECAC25841 +3FD8E828F5CA38CC3FFFB847148C68DCCA9051CCC5A971C83F30987B874C66424FB910B5588196 +2671960A7A95A0D535D007980A56E5AB2A2CD05E994B2C71556F38964161D4965275E6712338C6 +14D4846FD86BFFAB7AE8D2BE1C58C259D46F7CD47DB33135B37E2CFFA757C976F8617B6BB007B4 +EC39B277958616DAD13C0C9FEFF88F4B0AE1DAF877D71081474DFA48F6F2577340A85EF71C4CD6 +8665D355229E84E308D762243BC0ED385F18AC14EB66FD31AB6F24FD75609F389B07C02FAA2F37 +6A8897C2869F0B4CF1607DE38FD41CFF171B0D4B39CE2A28B2C395A7FCE3E04F0D7AE6F0BB5D23 +9E620DDE79B2CFD5BDCB5540BBF3D2F7C5ABB1F4C376DB2D16BE823DEC48F64BF928EB89F1DFFB +22845BF97740C01D56B321312F26CE890CFF8985D163F406268AE4318B103125089319287FB192 +3F9FAA877DC3ED863861ADCFCDAE7618FAFFAB358111DE8420A5B6E59CE6A1B487A5EDB28FA813 +6FC573077B8F36FB0017E3119B56023B2E0E0F28F4423C11A264B9BEA5E6446AF7E9099B14FECD +B29A0F8884A8828087A60CFB69FBF6334C5C6E9D754EDD403BFE0075961AFF6E9745A047F6710E +4D94E2C43318E6ED0AA680B707C768588A6716660CB66352C8F6E4B8009BB761611D755E72234B +45BD35D84F57559441A571399830CE485008C2CD35C2F50BE38DE7443FE1862756E6577626E13F +38B0CFB5E904C6A5117E36A7AEA41A0BDACC25B0DCA61381AAE1359A98D398B8C04ED3060F9E69 +A81640BEE6D2D97C3003069B763C1A024F476C8215576763F4C8EA61D5182AA3E34B03E814C8AA +18A950C0F9F5E7212BB0823A697709DA6433E9E0FC8D86FFBCE94D8B0E249A605E4F3B38FC049F +BBF400E9A320ECBE127AC50CAA9FB1F5AC1207A9E6E7BF44DC94D008709E696711B87EF745E17A +8D5B38611D83E5E26D8720EEDF4AD6455E8794326E3DCCB04167935CB73984C72DCD036B24190F +2B4FA6896E01B01777DC6032C7017132829FE9B370C49C25620600A999F87F1A7C7790D047D960 +4EC7A0746BFD0D85E02A626D15130921699A33ED39D18634F56FC81402E589E6644D605412E53A +FB366D5A9977E2204FF7DC949FB7587E76950F0127CEFF8F3CADACD67D3D3B4430E375E80F3E17 +9C31E69D33F2034D62CEF97112A2230A4EAADCA36C7157C4894245C6D60753AAACEA6149F5646D +BEA6DF57918E3CE20A184D65C22EF37E6C1C7B61845743CF8C52DE42D1216C22870C0E7AA2F5C1 +81F7A15DDC57020A30AFF8D4F6462B38DA7E72C1E29021F0277235F8A199089B5365E7E67E5B0A +3FA6C22091BA0E96ECF49D7161D134B7FD1701350FBB2F99B54A51B418B567B5647D7F9AD7B4EE +5DD670DF8469FC18774E8AB4D6EF4B4F5751CF01220AFA5C3DEFA5CFCC29F7C181B667FB9C8632 +5BF4BAC10AF238AB2D2A744A509427F654F9B85FC908FDDA60B31CC92E837A78D38684C84DF38B +F014430BC49A304457B2E7D9B739B0902D6BEA0492D6C143B7DCB462BDA7DF0C54C3C76A52E355 +4F3A1749656D1520121948102ADE605E6597936D7CCCA51AB7D80A4DAAA09992B905A491099AC7 +120FEDA88CA561A199CAF3ECD6AEC7B99994A8416EEFBBF9A1BDCEC671A6B3FF8DEC59C9DFD795 +DDB249247B918BE637A204C275D43DB5506EE8DC787525B3E679CCCD3ED43B58096281E2BAB358 +C5303465E46DBEF697B5DD33EF8A648DD7053234A53B179539C455EB9E1A17B72F707FE30CB95D +0C28911F8643389CC6995C58C6B83C88AFD3C594052F37367882C26A8936A479E426997D89FE0C +3AB9091E480DAF918BC26A87CAEF7BD1C6582C73F75B85D59B708D9C76F953376341CBAFD20F1C +8876F6EE538F61283D03FDABB3CB2888C5F3942A670517E8DDC98B6204397038B951E023B4651D +8E3F19733C8D6610827348881B570571FA359C840568DEDBAFE941B9DC7DAD8C3E1B190606420E +1DACF3965337C51A6BEAF2F2E5EC60CDF839E2DEC9B130C23BEE9F65B46626D20273A3A5BD39E3 +BB247B1DE1CF9295C409B91AF47B38D47200E0DCD317B4DE3ACD751E967AAF9DA7F6C026D01171 +3EE0F875EFD7B31B73ACD66C6B95948492B54A7B9865B3F32DD722913F3D9EFB40E4F03FF9E928 +AAE3AC1C4F239DD88BAD50A2BB442D1A0661B3F47CE2BCCF1A76A8604C7910873BDE2C2EFB4112 +60C98C75198EDF5846EF6EBC1BF94250D34F646A43D00E3A42ACC4E3E1A44A2B0B7FD74003C61F +00ABC9114B6936A50C67544EF62FFB2F19CD1E5AC55EAEE547C46ED91A13C76025AA7AE95E0B0C +4D2408E53D7EC48409D21B2DEBB04C7121487C50AC7FA8790A2ED577A9AB6E4063F1DB7BDC77BB +4542EC15573C3F2E3CB767DE52DE2DCCE04F38A58F06F08F0A541A98D3538CB41AA5DAB04538DC +EAD1BD6B41C71542ECD834F82184A7F51A4B50B595E50E04A5234094049F10A1E91BCA8C2F7BFA +AB638BBADF6DD02D49B2CC406E9FD40B734BA772A0429BD99CCD01F112E1EE95CB7E9F48D5A9BA +584636A03B52F94FBC0724A1ED0E5E0520E5BAA4301773EB98709AB035AF28D615230D3EE0DEDF +CD33056CE8C22A1FC8B7B3C2256BF7B7C7C8D1CD669AB358E57A1F6A400D18FA59FD5DEB0C2601 +02C59112216BC6E8C0817EB5BE3420BA0C2A4363021E57FF83F09B5026526B949BFA3342A70DC8 +81DD588833BEA53E06D29254B4802018B002B06B63374A6C6F335562479D0347DC7C14E2E3872B +4C4C55E198EA28B35A3B94CFA88DD3F52C3C192475B6C8B6968B49D2FB1623855E1D166294E1EA +C8337B3DF9B1B3F28114286FA24C7A56731F05417C40872DF09C55C3E81D93C4DD017BAC9A2CB7 +4ABD13E9622D3C533EC60B4A6C03E253A3E586D831D70E47501A1B521E2DA5D67BB1949503CBC1 +693D693925130928BAEC639F80DB420DF10C8553385E79FF75D8BD970041474757184020FA03C7 +97ECE10C8B54E3AC56F330144F2253B816441D75D0EA55D7342E7CD74B3B5311896B43F4BD1DD3 +82A6A8A0C3799DF24BE4D658E6AA2AAC51215C3495A79CA323927A69034959CB01D5978EE1DA9F +B298845A4A2B40EFDF7B85996094756C99DDA3C835EAC39826C048FFD5C5C582D8698188048254 +66387EC1CB16BC506533D624BF2333CA56C37295BBD41EA5C87DAEC80C3687C37BC3E514BCE48F +B4AFE9BB5B16E36321B1C0A29A423AD9ADF15718BC946D720AF5C20C1922A68DA0F36838D02DBF +7CF4D017BD2CBB96AB1B54BC8B75130109AB57CE4E13712CFB4FF099CBE8282C07D3C614179433 +B263696E7E3E4543E489A9BBDE0AEDE6EC0F1723214AC0C1C8F662DC05586E7564D405DDEA9BB0 +9D727AF5E75D7A5F970FB410E1DAD52BB13E79FBFD73340150E2FA08EBA94C59100D7CC76BE3DC +5AF4C5811E175E4DA3C857320593C5E38D66E565F1C06FCFE9A1B8C885A01EC3021D4A2E6A7AEC +24CF832A6E731732835FC0B67E4D726D8F22FBECE5AA64EF972407DB407EC9F9876AAFF2FCAC35 +4BAFE47FF75F06A17D2FC0B05A29ED963C73F0461AA599E0051E47F5854C974724A5A53B738908 +24D0B458A299A994807596DCEF07A1E40C5FE7557E9499D6BFF774B7916F04D584B818F0DA128A +FF856B494385F9A9B2AEDC4680A6F972E2544CA24E95273D394FD5BE8D9083F9EA81A8FBF44EE2 +94771767D6FAE60617B8997417EC6BC796EB0209E6B8D878DACA641EC329B0AF94E303A0AD611D +5E2C2C8C900857730D1EF11E218DF7F0EACF7E55F10B5F7C56E6AF414B060453C0EBE48118B964 +56D38C8A923F42AC5797F13C86955F7C1FFE29881AB82449377F3C8E9E08967B6F66FE925E9B7D +474CF80BF4F9A24E41583484A0AEDB8EDB0075DD3B7569E3261A1706F8A95C6621C61EA99DC672 +7BF50CA75E34A612D004C7CB81941AA450FB826EF9A51AF8D3FA17DF1A184CEFAE33F9C7E63BD7 +04527954200FE436220F2CACF234BB088B5DEFB52B2449238C0875D395F8E22FEAEF096EDBF392 +AFD6FF6C07ED04288FB73C401E29AFC2A76D4C3D02C4F48955A8F32D323857333ABDF3022BAEA0 +AE6E4531C18ACF750416C54C834D25E246333C13456F2B866B958B929ABB8E497917622365B5E3 +86FF235574876767588CB24A8C06FE0D495AA32835CC6365A481788EA24972FB8BE12659ACD8F2 +287C231396647371351498647CEE9F62C2670E8EF48788530BB5B006D93A29CD4A2E354D2C85AA +0AB2C800AAFC81F24C80A58C6FBBB89A887260D00C59EF402176C80DB3CF44B0A281BC6042BDC3 +3AEE88AD8A57674F65290386C73193346082F9477EB04A921B3EE960349BDAB9E5326B5C57E223 +527B1A3173183393ADF86267F127B52C49320B6ED36285E8ADAD07C0C91E479373698E709A1870 +C3B9F6655DF4E5B96E92D0E2F2A15C5D6F3D88ACAF6F95E9BCC52241799EB711DCE15A68DD5244 +6E832F500873B045AABAB816EB68FAA75E0E18B5F32002F283D6BE121582758CA59A65CA43C28A +68BB9E407E8F767152A35E8A90E6A6DEECBEFEFA2CE779BCCB97862240FA72B92C2E3428294DC5 +4AD4F7C6611E2D6B25DB3EB4995E894D5A17863D4C88304E77EF696633AE6F224342D391F7E3D8 +2FDC24E2887F43F4834EBEC3F2B32AD1339995822553AC68FDA951DB4BC95B0355A996113E4800 +8A387EB8CDDA0C4D0B2409BF9CEE2B37E1F6F4B55E9BE2096B8DB5A617F1CFE12BF91A21BAC921 +453E42E4DD5ECB5A479078FF8688BCFF56A4CD5047ABE1BB4D3EAA9FA03CD48FB4A283FCE6FFF1 +1885DAE6AFBF1C72E8399988C0EE6010DC41DD596530FA76EAE5662CFFA35146A75E55444049DF +1B20C6A99D838B6F8C411BA022D50ACC847EF94E52908E83B6293E719C43E2C42C953A7EB1395F +D52AA1B6E66F7764B77CA3ED37C606EFB9317CD27929413345C76AEA4619C08A4A00EF770200B2 +6BE73815970961AF7F2F7914B64F84A1BD43F9D186ECEA8656B8EBDCC7EFA35AD35D5EBAB0CA02 +A199BF3F7514478D89EBA07B282F00B55BEA90D4E8543FEA7E6D489944054880B09EADA41DB4DB +0659B8D96CED67C8A7C18DD5C41C50D8149E85A90CC1787E86375ECC386369420DE75AB44AEBC8 +A1D034DC8045479389E231882BE69C17EE57EABE00848F12D404E0C44340E21FCDA95E7A7515D6 +F606C600A488337B4FE30FDE40B19F3294A8102DBF57109F494C2459E9325766DC71375C418B11 +4B00620BB7E2B38CEFA679010069DB5C6B4CEB7D31716AC05E0AB8C411C89918A19F89578D7BC5 +10CA86BA996F4263D2B7C98AB5C8ADE8E7D5B96D467EA484958C8B514E175741AF715187F0E807 +B9C5B19B632BB42B745187681714526877EBFB568B3133F4C86EC3DE0C6D7DAE1660F1E1044521 +CEDE6B8ED3B03C16031A7DFC67C32C87FA83A5E29898375A5A5C3F208BB3CA718AD06D0E7BF2D1 +07E7F67DC639C5D956B79FB22BDC372846646F60760855A4F9F135F6CB1BB0EFEED0033B09FCF3 +A34E1AA76560F361157E0C2A1675BD94E0BDD1C7293E7699516A1304CD3A0DA5646ACCC954856B +3A62D38EA879EB0B0726447D0E198535124551BF6F9821054D8B845C441A9C2481E1AC3E542AAA +553691D7D6E4B303859A5086A7ADE18106F174745F38F6E3182F9260FE9E9C19EEF45359D6B9DF +DD0031D1F87DA89151B1BE4AF54B6670EBD558BB318F2184ECEE9152ACA35E099940F094AA2AC7 +564835E69E5C9C47DC7D9625ACB1D4243FF1D993CF854639C126DD8CE21A0224119ACA731346A6 +4AC8C18AA22FB1A1968B0A6B05CF3A1D5B24D3EAA7C8D2376D422902643D3FAB3F8E7DC8B24161 +3DBABB170238A1A19B4C8A4703E2B0A2A033E71723F557C314DB42B159E784B1822BE1F990D167 +0E522B9FB1B3A602B10AE08A8E7E3B2CFE51236D76B744456E5A68995294758A42F1004E8863CA +0D3AE455ECAD13501669A1DB41F7E853BB1531A4B949AA5BF0A5E478A5705D5EE45104760C727A +068E7057A808DDA30CFBC03157E141AC5E9E0A315967C2117EEDB38F9C66A34E138B29E3DE6A03 +C34D0A37740DD04EF8F9D08E545FDEBC571043A02165E6086389DC7BA3BFFA52D94BD4C1A27B85 +9B8ECC67994EBD370270B5998B8F246EA4FE0EA6963AE3E3398845A62856068A8A878B6F894A7D +28041BD30CF4F0BBB5053AA7DD86A2B94F3794C78F615C669274629F392FB2D320BB82EDA9845A +66B0EF0384985B938FE8A3F47B00C2DC575949B8B932F3AF423E17F72BC3BB9B63A81945CA133B +CDA5EBC9CB8B8B969ADB5CE60CA6F746C63DA5C516DB410F86DBF878902E753A338D3FB08C60E9 +41AC304DD767BF47D49BA7FBA110398BE21E0F9F01B6DF4CD3256A7803E5BA935DD6CDE11750D5 +DEE0607C14A9A4DD037B685F830094C5BACD2283D5854F5360ECC924108F4C129176AF6E624458 +BAC41E0436912CC5281EA94AF791219F1D04CA3069F30B50AE79BD8B8576B9AB76E6033787CE32 +3BD25240C00FA03FAA253BD83EFB8FECD2DC45C1FD7CC194FB61CBBEC88047CE8AEDDBD920666B +C2676E21A3919986FD56AF5440280E7083F04987F0272BEECF8F3B5261007203702C9F82B640AD +2E6ECF9D0BA81E5DAA95688D654873DC9177A2E7162DD21A7B40CB3C85AB49469ABF8F133F808B +3C2DA2A5008E25A13A6D0E49FCFFC0C8D3E5A257A8C8D6B1124D7017CC0263CD94F50D32DAE125 +C66A0AA717839BDAFBE889083C01D5E41994B7CD52E63A5FBD4D89631A93B377040DAE99C5BDBF +68C2142FFF3F2B53DD5E182FF6AD34A0BF6DF19F58E0584501239815495DAD144DCE748744899A +656000E283A237E74ED58E2452F1B6E73A2DC626C3E52155036822984E5E72C667C2E3D790FFAB +5C0A4AAE0325872AE9488437762F4C70BC0A369C091EAB8A3E8F404464B99D26D6C35B042E10D8 +97E029A10443074CF73949EAD0DCB7E0B8D39BF3806F39D3E3C204527C17198F21FC76FA5ABD6A +BAFB21C942146413F03E0CDE247A8CCD7C726E993976F2D730E43054229A45C0FEC09DBCCA98FE +C2C49B2C6B015D34881254CF11246521D785DA12C48A4731C3AF1353F99B0DB96953F5E42B3C37 +EA460876FD7EB036F7BC5D8630354CA18901C561A46A9E201C30E62F23F3F7B0DDDFF596E13D7E +00D256E6833495BAFDE723AF59E70D841B5028261FAC723AE4E37ADACB02772DFD6321FEB65729 +D65CCD58B312FA68843ACFAB7EDD78D31ADDB734B647E87C7CE25A0436A0D49499FA272FCC88F2 +E0CE5D7382D8CBF7930467AA3C2B1BF67E683573DEB3EB57D9EEA5E185786DC9721A4B95ACF32F +09D5AD2C06629198D15A74FD41D8972E1FD77CB71A933D235E37E893E0A4DE1D50717E125365A9 +CBC2B8291D7375AE2340833939BB0F139FA392F293472766A2ED405095BD990660CC6F40954E96 +71F9557D584266C6F3BF41F4FF6E0BB7ABEB272AF99D0A4438BDB4AF6789B90431B7DEDCCB0D5E +35BF872600670B0F15C19F34BCBFC59C4A2BE3978F6A184DB4A4745B401BACB8C77DB62D3ABB85 +FDA212912325C55C5A6D33A24D76C7BF72A6A710DAA7392A7F7CB0A6339505AC935D346C9B5E2D +D2E85608392B3A25237337EC8F5856BF3F3ED6E1514053F4FACD12A94DAFD1C12249A67E3F0805 +08CBE6916B2DF3D9478C737A141AF7C54E8832DE822817364EF3609658C65923ED666D86380B99 +ADF7EA02C9DAE111DCF399878CEA60F5D5B7C18D244AE76D6B978BA17DDB71D3DFC12252202B39 +6B03E36E376A54E1305A00D074419A8D04D53C3DA828A36C8F40C439CD7D58A48962E7BE992A9A +A82EC8537B268AA13FD1B88275D87BF0244D7B61533B16730BB9EFA643A5B96C4E9C10755A85A4 +F4C71AC4C3DDD308DFFA066162B8B7F75F7BEC8DA40C5194B759736381349A621C407A34B9088E +9EBE34650582CD758E269847328AC43EB79B5725FD7E516B8A974289D8C5BE90C301323DEEFCC0 +A18AF6632AA8B80C8D188CEC275A93F68CF87FB7C6C19BFF2C0703CFD15ECCA16160ACD6E3E16B +00FBC27616CE003FF9A60569634DF6D43997A4DC23AFAA8C2CE9C446B673581FE9F30A9A2323E4 +C28C7C9FBA27A3B5EAFCCA82D85B05CDB6B39A7C6B3584F48F4E3A1F013ADE47023830E47ED8C9 +5CFF3F648C38BEA1AF9135E16C87A42311995E09E7FB51F06A87102BFA8263C32067B26B0941C8 +4F2F62035D58E9153D89D808AB71545A1BADAD1817D0DC2836C6204A0A0418A2D62EFC2FAA63C7 +A9D0A5CDAA5F0E491269B127B5C716C3D5CEE6BAE7FD8C4F86C0632AE757AEA55F15CC0F95D7CC +C41EE9B1AD9349C4F81F0998ED10B1F686272E373860AC2EBB986C2558DE989DFAD95DBBF9EB54 +56384A0078C133E91AC9CF5365A1E733834B0701B4FE43964517F0AA1C011BB6A7029F8D5A2333 +B67DA3E019F0D8D7D533AD3291C2CBB1EE920E953128D06BBC517C518AE9A2DD49B933E915AEED +9810C619035ABF9DC147F653ADB1268169002E032A42501200A685D19070F12F9137BB1D9F2A8A +45C5B52F5577305AF94D9C511E5E82AC67A22164833471CBB8668DDC88D9C500917183C5E14A82 +F1D9A0AA3DF2D7BE4DE844BEDE55700A2478E121555C7F6529FFBB052026C80776B447F1F5BE0E +85AAF2CF09BA3B0917252D68D671005D0FA328BD225553D98F2C476E080BE8E03AF4A7651563FB +FE08C230F3A956F2FAF7ABF868C08CE33A7FEADBB8E6D6AF38A821CCD8B4EFFC02FE23A37C691F +6927D45F5710DD5FAC7505FB3A0DC31C766842B482BB77DDB3990346F627E0E1657DA8ABC8EA77 +963D6CB838D9C4E58C943C3A272582B3E63771070A6F62BBE7A4B11B8CB550547E17ED5DE6EE16 +1BD9116CBA0E0EEE910F98948F740E7A5430176722BBCDC4AB66BD3541443B096063C839E53B05 +A55E72235BE223D286C4319FD5A516325C8BD480D1867F2013599844FD2478B3B52542815CE945 +FFC8FBEAAF9B072CB4988253EF70E42A1ED315FE2C7571367E5217ADF3AE4FB67575CF49B1A269 +15E653B5A86E3FAE1C7D04E1AC21CA5D7E7BDBEA0F58C9962B40A168FD7A24B4BF109645481EB1 +18D49BB99B3541756E0DAC0E2327D1FACAED9F7A7693FC1A15A5715F1FD1BFBCA7D232FCF9663F +B0CB352570A5807D170E5B6C6727F7828F87FDC9D9301A842C53A38C62C804CBD611992B3A1C8E +C7103E76294F7E6A50916B8CEA82BE5B7EB777AB2E7A8C955414C8C61EA330BD18C741D5EB6E15 +A6DA46B30345F4D56CEA595CC4838BBF99339BCE82582316847513CEF43B7DEAAA17C7F3DB82A1 +3471CE81BF7894721B80F8165BCC3F7601D5D3DF17D2F37C58C5E9D87F3990E838E55E8BFF7087 +BB79A1DFC321602B386F98D1D97CBB07F6D7B06F900A77E4847CCD689B23C277E6476300D4D9CE +2B5BB5CA2062BFF0EF2BB3D4ABE2A9F990DCF74568D7CDB717E4CDB07B97614508EF34EE901BAB +B477F75C41B2AAEA8F46B218DD0DE5BD82F1717F96E14ADF8D7366274F3C077681E0CF33ADD953 +8922D539077C56431909EE8C1EFF7467C9A5E215350278534E5A92C6BEC72D4C34D8D13CC545BE +543BBC371443F2D346737A3C390A0F7E284D9C4669D374839D3ED8A4023F1F99FD93598755005B +C2A34DFCC4D19CBD422ED4E857D419BE3B9E12E01D0327C51D3589E83325896018C9B0417FD876 +0AEBC5E0DC8367CBAB11B2989F4ECC1AEF87D935722912F180A70DFCE940DE3882A416E29BA14A +9C86E77380CE464583F385FF16F7FBDB607AA7455DA70CD8A0D9714963BF791D2D5E2E550D10DD +105F88DAB1BC1F688B1EE8B40151E533B6D56FAC3A4A98BAD8801864709AFF6DFB3D3EED5A532B +83E91CD8125A7A7AB6668F066AB79683C6A3F129C5ADA9431B06ABF37A724380CEA251D67B5FD2 +B9C97334297B9DB8E85CBCCD13911AF8DC2415D1D8E7804838D3D03F9D143B923F5C5B58E28B74 +8238665065A15A54B43CE96089B8E7DB9069B2B53210F5A03D1ECD2F83E1044AA561AE65683A43 +9FFA3E1FB60C1CB64F32FA71E3FB557DF3CABD87FD2F945EB3C6960228808E1F77B23DF8C7B5B1 +889BB4C2738EE5D607759C33D5D6174194AA9F8F90D969EA3DAE834B381A2E08E5DC9EB540679F +94D490F773A109D262E08CAE60E2E57690E8CF756F9AC112844CACE02AC96F51231FD83BB9FF70 +102FCFE3DCACC8BF9E99BD7A9C9CD9279B64B3602442624EFFA606326BF96DB9EEDD16A515452A +7F25ED3E78ACE15FEA2CF9F1D3C6A0541D441A9D94ED9FBE947AF35B70B21CDBC02529C265072C +99642EDC878D92A7664F37F5D9DC173F6C28F900586C48960241E2932F113984BA534FE2457F45 +16E7FEBC7A7673E8BCD4C8B05A8D9C738164A43DB7F581FAA8724D12035573BE800C032AADB23D +9A277BEC387E29F201E5F4091A4DAA4792ABFFD65762E6637E355B8834791370DB79FFBAE99108 +92036B5713F64A2875092825616C64C6827BFC60F8C0D1EB0FAF0516348A7846B657C809030112 +1FE3B0F1EB992ABE73F0842A5EE10D6436447471044EB7D9247B169C3F7C37B5109A5E7650ADD1 +16E52C21022FC991756B93D210C65F5B7F67CD38B4863F90D3A1742875DF8E6B24D9E27D726521 +432CBD225E0DF36DC33B8E8BED9FE897E77098832B9156725DC38EE82595481A76D166B37055EE +84EEF1899D249DE4280F7F15C76C044565949E9E4D438F327E05265E34FAF812E661770658F2F2 +BBBFCC933AEDAE7BE17A40880A153409C357F830F1F847D9111135468D7A36BCB1E69CCFF57E26 +20D97D988669D732A9A4F4ED0B1B6B542D729C9D2FE15DD8584ECD458A1305DC729C47714B6DA0 +33A0D0E221570397F61E67C056F66EF50BE591A6DC3E3246908B8EF4973F76C4403B17175B046D +230F17B98A217D346F0796A77B6F19B4B0889F09A03B4F7BEF3B241218A85B5C34C4420B87F0E8 +AD942D0A232B66FBBE49D2864F7AC2E5652CCE91C0FA6FAE79971F2D00E972151B61191190F9E6 +9CC7A51B7777AF0EFCAE0B2FBB626235D0B942134A85ED0168D2E0E58654D94BCFAD1D0EAADC00 +11939052259F193324DBA479BF57AFDE05237A08444888F08F9BA119175C776402490DB29FA96E +B0BDC684CAA8E0CB48ECC0F40A0C8F18E37ED04122007CE4E11E1FF389EBC7DE9F07888EC1DEB9 +A5C083E57830C1D303D03473CF649C83D03B17045F3B74A32458FB96C5856F02B72826B64D4866 +13C7F07D2A3441C71542ECC56D65F2A80B5744608D0DCDC14204BC00ED8EFB67F7C31794011C03 +93C64585EC8B7427B82467EA32A902FA1BDE691FC77CC61952C72F86B2FBA240D9D0CC565D8006 +4B0D9525CE09FBC1F7A6104EA5F5AF9CAC4A1C1892BF78ED5500FB5AFEC29532AE7ED991CEC28D +F9B076E95C64B91E0D262D4EAFE1C27E244C36B527646652F54C23E3BE59E6A0A2B123BB3101FD +D91BB2F3B313CA0B00B1132A3886172ADA0A234D805CD95B2D +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndProcSet +%%BeginProcSet: stones.pfa +11 dict begin +/FontInfo 10 dict dup begin +/version (001.002) readonly def +/Notice (Copyright (c) 1987, 1990, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Stone is a registered trademark of International Typeface Corporation.) readonly def +/FullName (ITC Stone Sans) readonly def +/FamilyName (ITC Stone Sans) readonly def +/Weight (Medium) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /StoneSans def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/UniqueID 38777 def +/FontBBox{-179 -250 1297 943}readonly def +currentdict end +currentfile eexec +EB7EEB89BB946F143739A83529DE3381F3784CC049D9A232E7E0884F0F277E8C6E6B0C95F5E3CD +DFEFF2F460CE06E2FC85C687B2452F666493AB6C55A2075C61F4DAFFB054763B9492E624F5E4A3 +8F11E3BC76EDDAA5C228BCD20F1BF2283E8133F07F5AA91BFF96808985D8C1736E8BC758781338 +F12CC618819D476B7674CBF6A7B3F1025A7291C7C074B3055F282498484C6F0FF8F641D0CF6FF8 +8E1ABD832961B8995838C9C0F6BD075924512885439B9369B37ABD9F474BF8646BF9DAD5C5EC17 +79AB8DE82C3D098E6A6637D9B4CC7174ABDDEFBD3180F0E62E1E650CF2DADAA7C7A6B1991EF9C6 +B5046693AFD8B1CEC70D85407027864F714E599DF9E4E6776CF8467214DAB6902ED5B40FAE4244 +82ED45A7BECB26941727281F8E0B3C15EC045133440070AD72736F4D87A96335CCAF8E6AA38229 +8CB7EDA49F963A9E119CB70B9520E5D7AAEDD5498F0ED1C8B3902637E71734A7D7E2412D5EB792 +B7B60BA9355628BEE3DFDA5E93B3026EC2886D40B22685C8E9BE5E38DE31FAB551A978D095C55C +E3FEC4D6ED65C708F3676F4CE5F83F614C02C8F109F1A7FE93C6030D303227AF0EF843C45F15B2 +2797852CFEA26D79AE2934E8B683732B306F9125ADAA1A802C8B82605D7395D0F22C77CD1B20E2 +02BC082015E293C8F1D8D78A0E4565540371EB3B51256BA7276B2FABA2CDF47D34C445D0255A4B +23A88CB443B997813EACEBFF51F5B8C9B1B8EC5968A18CA26BDAE2F00AE034DDBE4DDD598ECE60 +52A9BAEC420FE278B08F64BEF1069BD1FD4AB8B2A13ED3DDCFF8076501BC8A0156715EC132F636 +711EE9D0D8C89C932EE5D16F8096A9C456DCE7F59517F85FA409B6110DFC22A2391A005492BFF0 +C8610A9204D39AEE51271D355CE201A5719842112C88632AFB097C368EAB897DC1957B02962E2B +3E4732F6527C25BC76AC043B7300CB153F6971C0335FD3C6AE5AF7C5DA5621D03FAEFD3B8ADB98 +8272C6380708210BF140809E4A191193F3547B2E4D43D4E981F7140B94473B939BE458E3B69B89 +33ADBB82DA80BA01B2FF9878BE938D7E1E4A6E79B21C0B53EE510D6377E178E8E3556125E44D97 +32ECF7A7C591AD28B9C651629CC5A56BF611E2C2199DEC57D61C099E5DCEF5527B9B2299FA64DF +B3410193B77CF603A073D0785E1BA9CB1E3F0AB8859A87278769BB6FCB0C01EBCB40F80BEEC4EE +0283CB480E2B31863C2128ED5AA95944ED748805F9BBC70FA79F7A40C175F8A655C11C01FA9C2B +9E0A6A8FE5AF5D6E342ED1504BC332EA0F1788081808AB8A493A078AECABABB7D0D7183AD0ABD6 +576119456D0B50B0AC6C6C3DDD44C64D4D11A76D2C3F5FC53E626B12E92D22B757E89749A1CE26 +2C81F7646D9F24EE0350C309C0D9A65D134FBD216D3ECEB54845BE6FA7D67E2DD6B1F1262AEEF0 +A134A6E639A2E3A6C8110004057BF9DA48728F50D486160122FB7DE6587D432589600363CB7620 +728E10405C9B5CD7520F43F6472F4CF71FDF8CD95E78950422DEA82BBAD2A37EFC01B77C2960ED +9A6F213334183C34B5BC8F905BF35CA1604F593F1939B7582423B19864F33C720DE6D3B23B3D80 +674761CA59B1561F6094E433714EDB17523D29307950FE67B11FDE2AC1E48303DBFEF06EF1B00B +57201D7C78CA9EC0797600215132ABC35FC81840920A311E8C7B3B191C20F76D668D0838E5A2BD +713D8FEAB68CEAC365AFEB987480C5A742B3F85D2C6B3DDC46E2BC1C27B316F6C2E94489E6D6A8 +90A8C22B71A74B897210E143BFD17EFF558BB67EFD214F69BBA2A346AF95338409318A9C95D8F7 +76749854A7CC4AEF404CE41529C318C2165E2820DBA6B20E6C42318396522FAB8027289A93B316 +9FC3ECEAD61D09953D206A81630BF18B6F11E28C748F71B5FD105F913BE26FCE927F0611C7D202 +AABA714B47B754E8E8ACA58CFD7421C5B8793C83236D375EF5EC59BC71B5A63C2D4FD01AB72064 +634A3592BF1214E192F52389F6AB4A89DC4CBC1A9F4B267A0BCB6137487F813EEA0C6310CEECD7 +DAB781A8C18E08A1B20BD2CDF58DC72C9D57EC472254ABFB157EE54C969150DD97A30EC7A78B9C +F8C163FA6185B1E399CFD0B9316B70FC11A152F71DC4B9C902BD05F1AA7A655ECB1E69FFBF7CED +71B6640AA8C529AF822FD4D173CACF66DB19F35ABA3AEBCDDCEEEA061B06011553B86A129187F9 +26D18FD644660001C7C1EBB02C3344EF0E88F93ADC8F334EC4ABD15D45C33221A5BBEEC48A3213 +2BEC257F4A154E2B0401454138B8348C9B52789E1ECB5C01F7E8B0EAB2AF39B81FF4A7A0699643 +267D78C1B794243AE7E4A5E5972D2653BE8529FF3ADE15B8D2D9CEDB5B127E8EADD74D2E45FB4B +4704B2BC7DC6B900A66B5F19F4A92DF92D3433A7104B869E31EED01101DAF9AD5E424A855CBD2A +9F24042AEF767196166674AEA9B4D8B871F84EA776ECDF5F981AEBB58D139B33F188AB2A99B816 +1EFF8D88E6A57C45956E7ECDFAD1D35D6F51B3BD62F69E15FEA564355A05563A133DAE3E8251AD +6BBE5C2E59CD006D8F87A51BCE072BC40098DE0BDC3078C1705CA2B52C7A3629762F5997C62EB7 +92AD52E5F51A035A947110B41DAF2C3D40F45E5C7CDE09B53880B161590B706DAFD3A98436F82E +78E7F7C0DFCB6804B719EF0AE76637C38D02F8075DC63FD48D85AA8D6598DA1D489BDA2BD9137B +56EFB6BB37221F73DE7BBF07A1E6D4657AC56EE2BCA53565ABB572C84A0D023AC945681EEE5B8F +56679E554B713EF277D843CD9972AFE851D7A213824FEBCAEF2F159D1D944DEFD0C7F2FF014568 +5A0F7709376FA7755FA0E9E2EAF5827E2F23A452502F0C69C51A92BF01C3CCF947B5604164CEB0 +F6519224017D8F0AC8887C6E83F0FFCBD0DAA57523D209ECDC27C6CDC6A709D384AC24FA3350F2 +72593C5FC05FCFB4F2EB0D5424B958F3E5B83D2462C8E318A994B50C1E2AE1D0FF798837C6E5C8 +23D4D6F8D34043CFB2FE9A942711982BC114D1424B7E358F297B224DDCC63AB1303DC8675F12A7 +B38838D8F3495D20AF3D452026397A002E112B8266AA76AA4C8066DF43647FB2DBF74E8D371466 +EF6C05BB4CFF36C3B46D661BD0BEDCA753CB06DF07EC3E8F2F39488A87A77B9FD0DA47787D4E84 +3905DEAC2A83FEEFAA0C2F8A18D756855B3FF02188FDA6F555140E2235281F1EB0ED0E0F6F2645 +C36A423579A7ED352738AAD1B59FDC7262326E580D3926A6BCFB733DF70FE8A55CB948B7B9CA5D +FD3ECA598D7238033216C0384018317592F26E170859177D6EC285D368A72620105C4F64753BB3 +CCDDF78133952448DDEAF1D99D413A3192556D5ECDA605FF75ED0635D5874F3DCCA46FCBBDCC46 +B883F716B6C444D78CE26DF742A90D9C8687F4C7B939F46ACCC4D9281C21DC00A5C744CCB54CE5 +9292129F027AE072B48AB2F550C1FA4B36B990180F6EB6EF887660D516A5AD905AAAD94C7E892C +E8017CAB4108D1FF94010662DED658C6AB7B02600F84FE7D9907DB213C91C324B2515D831F99AE +5A1E0B8521B9FED12309EA0E6AA13D1CD9A5D6A4943A26473AA23F175349490A4F9DA795ABEE16 +B14F8BAC8A2AD6C6646AE2B482B8B2DC016AB1429DAA697CB315CB15B587A1B4927F345C778631 +99DD342D2E85C218F741AB44B821978AC869DE25347886D163A80CCCE3EBB841B7D66F9F4E1706 +FA90DC2A261ED49D69AA21E95C4F20436359877F390E26ED8E7AFD37163201BE434B89AA7144B8 +3E8977D40D873C15FCD136E711B13292C8FA0B594598ECF8DFF5A696EE868754C626281444C30D +3167DBF9B9440AE0DB8A937EA6A11834D4726A5C21388C9ABF54DA82FFEDA5B72FA53E6704C916 +387B8EC36085F419A3AC796D4CAF4C321EC5F5BED7612F5C8410F9F4C584E762C4FD61B36965DD +6D3C4A58F15BFDF83C565F457F56DE3F8BFDE36CFE964A70E8E05D31A6CB87B03A4A8CED980551 +5BC7F8535D23CD753CF9D1CDF90A7142045E5CEEB9D8BC2A8EE2F4B7A49CF6D6A0FFA204BB5788 +F7AC5BA57985BEFAA983150974FC1048E824D87506B7874387FED6820F0E812FA536DF5AF4D780 +449BA54D1B2A4489E0F881557200C80A7E9605F750BFC92A30A38943FF6C4D3972797C97C9327E +7E4D974D44044794B3667CEF0871CEE807C70C8A727DD93844B4EC636AF2208B1F4F40770F4519 +7C7C3BD36B0E1662FF507E6728E86D3599549839707397E1B6E837FB56E747DE68FF8CCABC8358 +95F95178428D165AFD9E63B4F33277731469C0F3BA2CF304EF696E73347CC336F538581E4E6FD3 +87FFB3A5160704577E0116E5327AF130219ADA85AC52CDE0884F0F73576F1504A020C752F8BF83 +8BCA1C6ED0B14B381FB02CCAE42C64A8A65A82B3C9EC9D8716C086121D8A6B18F0E411BFE177CF +B18F9B9BCD53C2ACF975A1872CFACAE3089844A8A3B6AE02ED3DE4D2077C7C3776946E2A5D0D3D +19072DBC148498F04F23F8B17F4B294EC939F36FDE1DE681453B77F7A1BFE2D7840A32481524AB +3186B06CFEA6D7593557AAA640618F83D8C22F3E05645C4785AEA94A736AC92BA08902FCDD0895 +EBF975371EB7DF013A59E51E333727EA160B5FCCA003E27BE7CF665F4CA4BBE7B14FC75815E053 +20DCEAC6D032D7148B9DBEA9D62724B5C52D499900207DAAADC0AE9B2CCD81B4C99B901B3488BA +0ECC27514A730AAB58A7A60937B55BE3D29F68B5B9C776DCBF4BC713FEA091BA6083CB20C9C0B0 +18D94C10122DD4CC7C042171B2554A84FD489009B86F080526B82073D98D1D36C411386242D600 +10A5844AF91DD3C955205AB0DFC8CAA1B29C0FBDB0EEBC69815D9D3C72B525582431C700F09579 +90FEC2A06E31679795FF0B0F83AAF834AA24862F0576D306FDC27F90330EB0430548D45EF75CF1 +859BA98439583F9FCDC02DA426C98955D6246E4D5F1471C4AC4FFB1947AC9FF7FC0CA41FBF01D2 +2B828CEAC7030A6F56F8B05764489653A77159ABA4DEE42B2110A6634DA1542188D5E577021950 +694B571AC3550E3BC2CB3A802A2E830A3B5C7DB77516BFAC3A7C827D79ABD75F10B7EA5BCA52B6 +90FD19E0426D2526FC591A3454266B4E38114D0F1651DDDE0995C4CE9A6DF8FB0EF02E74535C34 +F1F563EC948231CD159E2C172A8473E7C08BC59FF3D0810C0EC0D1D9D1038E882F05C7E3A0BE1E +F98F9DD2A60AF98C2DBF32B9F5003FE3B09BA01A7744BFA8C369B7B7F73CA6915CDEEBA1D71F84 +9DF4DA23FE0195DFB6AA471EA109D6E4D7E801AC77CFF73F4ED589D00906AA0845B84D44D78188 +9B4B5B94758F013EA141171525AE140044C8DCDB37476BFAC92628FA17723CC434C822EF307BE2 +4D72955220B4DABF37959B46AD9C52FC0F5FB3DEC72BE5F5E5F0BC1CFFC09D8DEF5CC6BC94A456 +F37AAAD9A62E705B6DD844C564B2708BD8B7FE5F3C62104B349A2D88FC10EBC1D4900A5EF6C53F +8C18250DBC4BC51173364B6033E1E5D3543AD95EDC3A07C60273E9B052C600431F63D1E4DE0BFC +E860537BE0537A0A2C9BC539114BDDB5A3951437D8CCF457DD1EC0B0FFB7B9AFB2405AFFE33AA8 +5F33FD06CD72B382D0A6C6DB40BEDD3A16C68DB98AE6AD82CBB60D1BC20DA932BFA4FA70333459 +A28D3B99966B9B4F2E993E8DE780B890ABEA37F7143F9702E99E1F59F8EE27AB15CCCC0515A2A4 +7DFF56DD8C39E14425FBB2B33115D7865ADB66973CD14446E5350B281CA2D855D2312D3DF5F58E +69858CBBB058096484ED8CA8DB534EF103834B8EF33834B8179D9A6143B88B244F5F8773728405 +8D35186A83A15CDC9CB32C8A5885B5EBA4F73B81EA4128D24481870B7223A0F0F2888E77DC01B0 +2AC8337846C2A5035724031D7437FD11806260C2BE7EF64409E7A75AD047F7AEB1CE3FCBD53DEB +0F39BA5A63B6C0EF90C9A3D21683396A250BAA37ED3C81DBDFDB2253EC0B09A188D791168222B6 +6A05F00C133F4220239F65A88112717E8B318E905BF28D58ED1849084719F1FB0176D26C56AC81 +28680D1AD07D3EFC11925DC45CB786E53F135B7DBBF610554B6D9BC0BD36226E55C23FC87351A3 +3C2416C8F2817B3CA69FB0D332CED8C0E33C6F40DBF85DEED10A7E9E2948513F3190DEE93132D5 +32045CBFF6E43DA145CDE2D561E3BA078B72F950A8017025AA5F2FCEE08AB4E79D8D17D422C978 +1656988AD6205DE69035EDBE516D7E52A8249B4FED4E5D177D87188FE3515C51B09E8DA573FC1F +86B3193EE935CE27E52131720D8264C580AC087218262B37A194EE8589B8AB308545C2E5AE23B1 +BE4EE3BC9E99C8890CD4A17CCCEB740F766D9195DFC958BC4CEBD291D04FE691DCC4BA7DC20CB6 +2938F0AA9C4A51FA7D6E213E1B36B0E319F1E98BBDF2999C9325EAEB86069F3158C2F2E79365F2 +28BEF0D90948D07E53B9C45F826F8A8783F49CF037D4CB2C92F2F6E66C104343A8995A86E3DC0A +A9A62577FFDECFECA2D7D27833E903FB049B91783E41D35D216DF3697FF03B51EC3ACCA17E9187 +C372377490839E490136CB3343C87D5A04AD6C137A5FCEAA91FCBECA2629C132CB2BABE3909C70 +EC55A8FF1DDA05B8B2A0D2A51BC7411B6A6F35609E6EE0C607DCC6EAF95E43E62F1042DD0DAF91 +E9ABC212D2E2A8FEEAD0D310BC8DF43202891540BF07FCA2EAD1A24BCAE5E4A617E726AC4E9215 +E01F7EA2CF768B7158110E3D16010D27B952E88A32E445743C6BF5984970D518998221CC95A47A +9F627AF0DE14793C97C1DE55B85A062816ADADF23CEBC43916B1C966EDAA1424B23A552E51504A +08AFBB8182E9A11124E129244B19C7BAE1CAAE2CE34906075DBF74CC87E478272541DFFFCD32E3 +C07CF960F654F674459FB136FE6D18121FED87B90DC05C2478DBD121D3A48A687DA0BF5A882A00 +1490B83ABC932CC011E458D64A6E3D2CE0F5C9B1D69BC7DE68CA0DF317362FF81BD27F6FD9961F +93D9B11499B8ECB95428EA007A4649B16033E8D591FFC7B4CB6EE07E6F70687996A3D2E85EDC31 +C1DEEB5D84C169079C16297540CA0CBA130924AA7CB75C357B592E08E47716205CEC9A0178F54C +928A30CDF5F2E976FF0174012508F26EED03417E397332FD806E11B486649BF17F2EE9A0B860AB +CA44C31784DF25B56825790847CB9411B2488FBAAF03B0B0FA2CC1B0C5D320B69FF98713A878AB +3F656AB45FC561F61D0090301FE7CA7CEEE6B76E57AB223D13AFD584384D0BB5F07E6991551E1D +2B3C5232039377A66F1143DAF25E823774B8689729176CE54F0D53AA21E7BF6457ABDA6710D593 +247E93A5CB23C24D53EB0D6C7FD73E94BA15B6D443B10A838D34D966AEAE81B8A20895E39B8198 +D07DF85FE9D0638B27454E54D849C83E31499C75B2D2E851D5B896608361FB5623FC0FA85C2630 +298B75D3BF1D53D7762119EDACC38EFAE4126DCF29B3D71C0EFC75AA2DF1E95672B6C7D1DF74F9 +388B7CD3CB21FA46F000E330D3A556326A6F37ACDE0045C0D8D00ABE8A868FB4DDC21C3DD9C7D6 +22F0B80165CC4D84227B7AE9927C936DF7FE8F893E319C45BB9F9DC5E61D37AEDF9E522CBBB20C +2405A137842266B48F2BEDDCB9320664BDD6679B72030E1B01B5E6979C592D649CA2DA56C019BB +09F6E139803AC012D3293B1E4CC91E86284AA6841B6B9EAD31D672714039D73336E02389732ABD +ABB8C147DA9CF40711405A1328EE19E0E6E1EA65DFA8921994F2BF310FB85A08F4BAA7FC59DBDD +350006200DF27C099F2229862CA5E9C0851BE4E32D00475F258334359010D8178CA4DBEE82232C +D21C3CF666A0EBF4BD20300C0A70016807E42D15F9EE24A194ED04B4C6AED884DC7088B6E37851 +FAFD7ADFCF7FABB0E633946B9029160F10B62613289B8C46B2B74FDD47BD4F4E7B53E96DF8F9C3 +69925508D342E15A4D0943B22365B8D8F9CB8F5D00DE6A42FCF9FF43D364C02DFD2F44F72819E6 +16B788A4DCBEC1B5F9AEBDE4F38A254B4EEA4A34DCAEA85DCB7F9F2BF47BB87E9552402C372628 +956EE58A01E86BAE1E083D7129B7837D6E57B7DE8C179BDDE6524D9F75618725026854C0B1A18F +A662CD6324285AF65E4D1F8665F1538F2D85FF7D502B3BFD4D310A3088A8EE6780D541D9AC4687 +31A27DD7DA80FEBB6F60C27BBCA02DC98AC540CF45E3B6D52DE46B7C6E98508DDDFCB020AC5533 +12F08C2ABF27B6C34AD9F841EB78373F2F367A28EE3E21D2BCFCE4C14C34C3638978C40B136AC5 +8D747EE06E197AB07ADF3709E73833BC786917D3EC0465EE48948E397F8F7256ED4D261794B28E +39D6D4EFFCEE6DCF0C14256DF68026BAA0D50A737E303923E6D956DF3FCE2983FF443BC1EE1595 +EC57E86E3770F73B802A152FBCF6B4394EE2DB30DABA69F0124E6A74BFED7715E469150C2553D6 +4FCB56786D334F335F4EC6836A613A261529FA85B53469585A683BB9CCADC24AC57E35BBA6B086 +F3881161327906B185E958E700A70BE82627A8F4F49DA22024BD5F6D0EF3357EAC2414615D4ED2 +130D3D8DF23C52D2B57372BAA68BF1901B863E6A36EA23094971BCE262FDD5A68B0B20F0E9FE0B +0DAE30CA56FAD94C9CE49875A4D06E774CDC46845866BCD61122887DB85B207E28803535687E39 +028F82D9439FB6B7F34FFF1BD8E3C8E1C7DF03DFF8E3C06028405F2E6AAF97A54075B2A1EBCE61 +3A5CF7C73042D74824A04D5B2066730348B07F188A8725EAB0F076BEF25DA8B82B36B061F866A7 +BF23E609780A8CA6C1E7A52AA2DF4D5EA22E6C6491B5C4A648F37838A7B1F7BDD98840653372A0 +86A7AFD56CE2B973B5FF224E34930ADFA3071DBD339618B245AD27BAFC805BF2A49A4E296F17D9 +EB25700F8E8F0C9E8548FABB23D2CD8CEBE8621DFB66115E60630A1FAE3897FD72269B27503841 +5943D7A2B5729A5DC87E2F8EC82586D2A2979033C3189EE5CECC97C276B751E7A269047C0B4731 +9E38C8A5EFCFB0BD90C545563971F7DDFB76C28DD5D297C7907D20C7D020F04557F557AD66E51F +9D42F796736997BC648883144CDD9EB477431AB9583C58A94FB7395E5F7CC0FF9434A97F591580 +48509B7008168B6E877CBFE14083C1CC2B197CDCD93068D035102B025D52A8AA4721E019DD02A7 +993E5C74A64CC4D422DC03210A264F7356514F13B555C373566A5D78E627065AD36C26513246E0 +01C9C15952357A8D8E7581ECC8C0A86A880C73AC519BB10C1B9720DF6501FEFDCE55CB1CDBDFAD +42C3F2148EA35861C391478B9A8D058FA121B4A2639E7A626550F6E18920DA07940F573AA299F7 +043F3ECBFC626C16BEF92D9346946A0E7BCAC528AE264EA379732957AC35E2C7DEFB417FDFBCF4 +B29CAAF11335C1BDAC50D95C0A3F06E367FA0CC48317ACD72DAA35A76CA3A1AC2975BA3E369015 +F4AB8CAAE9B804DC42B7E19EF9B73C3EF3968B4CBF4C7097A4ADDF8359DAB1C6E2C440788F8BCF +D272D8366C232B70D50E209E766134F0C1F1ECDEF25E05200D9E66FD6D0E6A6DF5CD1A62A4E7FB +DB54B495CDE5DB0FDA85EDA4D628374E0E6EA451EAE67459D92AC84E38FFB5156D1FC0ED264D9C +05319276361F5192B3FE3AC052154E2425D77666E387B88841F2AB8062F98CC11AEE58717BE867 +6C26ED1D06839FB862D2D6F14217EDFC44D3628090D4E4AE6D8D08C2925DEC62CC2DEE4CDEDA65 +F1FCB22D50D5734956692CBBAF25A518D2112F54E6D38F9C2B9CD66A38BCA0E82AAE3DDE45C3AC +E761B9A12B135772589E425A3B4E229E0E8249069328B6A222C46DAF4F7C61FDAC1967C7AF6E13 +C38293F4A0AE3DF700E40C2DE9F8BC802686F239F7F0C7B47E0261F4BE8B5C174EE86AFB248F08 +D0CD94578867F47316170A909C05019915343C6C4CE0C994AA105F70E58E576564A4B2B08944D3 +180CEBE66BE894C842C096F92CA53E6704C916387B8E374D1B71761F3930422B0DF8A4E24785C1 +4EEE920E3C8D697279814A6D0276FECD66EDF127411A07EF9D22EBAFE7AF43C6B6122CB0B14DDC +D3367C8AAC559AF893AE9BB73F784BB10E6657F344AD69330C24A4E3C446E86E07F5B596D2C984 +4C24CBDF51CCAEEDD4D62FF48C7D9F74C90451FC90F485F2C2F6C125556A5992BAD8C87DFFDD9A +7C092ADC9AC2220C0ECCBABA1B4C494A4DF40CE6BC412D37D27FAFC83F9554C664B7E15B2C4F9A +6BCE172FFDC885C8D5A6E4309D47031CC1A57D15CF30F413C700445A1180587836396ECF7A4526 +BB0ACA51F2906CE146F8C84A1B1FE2454EDEE16570D594E79B894CFC3AB160A019E507347E763A +B6CD3ADF46393E0579BA424DD850246B872E88169EFFD26E590A192EF3535DFFD7C547F2358042 +FC5C9838B3AED01F1096BBFA3565ABFFB6F13DA0880B562662EDDBD14FE710EDBE66A3EA1FD804 +85DA5390D3F9AA7D2FC7A6CE67AD78A181BB8524B7D2243A22D936D631FD3A38B6D7EE4210E3F9 +67E536D724B5E9506F2C2F8ED984D0A76B28CEF61809EF49D7C198BFEBBB91233026504A558CD4 +7B7985A1458B14A570F2B22B196AA0E939D5F8B4439C53D8C17864376C53751328E391BA09D254 +062AA26CBA634DAFD7EAB4A20697D9D66EF59A3718FF3BCA0A69A203EE0A70CC564264EBF4567A +71A95898634CB768E85C1C94194E6C8B0320735DFDEC860D110A9E0F0F1D0B3528B24DE5C85021 +7F28D4203F560BD19DCF145E8A28F9064C2459D4FC80AAA81AE12DE4BE12420641D1F82D60416C +DDCFE782984955A10B576FD1A38C1652431FBEA0F6A00C43DEF505B15777DBFFCDCDECBCB846AE +5701D4F94CBD835CEB98BED6EE73E101CC55501637EF6009357709493A3B3A1092F0AC896369FB +EEC887B2DC9CF507920634A6A7EA49C5D06D6A73D06FCD850B49375A0C6E94CDEACFE6A345D0F0 +2220E71FD289093B0301CE9D3A00062E1B16825F6B448E2B97631BF7EFE74AFF831571DD8C6D64 +340D2D74983EF1931B0E8B1D1914DBED22638B4202E414BDC090B26BF37E9900D8691CEE82BB15 +CB2FBD7D87120DC1BCE6086E6CBF6E5ECAA3B954D5FB14F987F178A4520F6C0BD631A3C9FC2D7A +27A87FD6466C71F99093D457B237807480A0BBF9B3E9A932F2B54DDE064DF608855B57293344B6 +EE678188C820AA974CC93CDD19C2AFADAB7109CC357CFB633C3AC6E94C377604A97143B2C46E34 +EBA624F9E8D0EE2F70730931D18EF48BC2E9D89BCCEDF440AD21BA0ABBF07F1F3AEE91C680BB30 +35E117FEA187699C643279553652859B4E4F14F108EC17C13BC4F4F0F1A4F3EB8E107070EDD80B +654968570D10DD96E3AF3D1CE7E91880119C0C13BA19596B2762F018E4B5131C929C7B210DA2FC +16100FCD8CDA361DCF91C9431D15CDF19EA61912DB91001A0ABE636DBB31BAEDCB65F8D40C7435 +CE8A188169F00D5CCAB0750EA37D20F18386072B5E053DD1F2C1C815E50430D084D226E108C782 +2BE4025C7B6FAFA4492D1A6B9AEC8CCBAD96398A3A028181059DC32901D9B65A4CBC970C11DEA1 +4564C832F41C5C278D97AAE899FD1581F0295EA908CDC45FBFE469730F76A665705B3FA8AC301B +4030ADC8B08206693ECCCE509FBC9C40163949E45D2E072BBDF6EC17B56E39B49C5565C4928833 +44F507E92684C64BE24D370FD1BCD2E804FC32C5DC3C6CD2D2C8C4221820E7DBF24285E0DF7663 +A348C7A90BBECBDEF321D9128DCFD1657680C06696084A2D1782CFA4F5F0A82CC85930147ABCF2 +60BC54181A50AB12BDF5249650415A26D09AA1F55A0BADF12B760A333D3D35F15DAE68BE585605 +76DA6E572711F09192B1C50572BEA623EC86E33D2D5158516099230EF8D4A03F4AE29CFE2E419D +ABE89C2EFF27B79A0117615961F8475F9AD70D2CA6FFD2B8CB629A2166106159095FDA78878083 +38E349CEB72069DAC742FC81267347D088CF9D76C993FE7078C8FCF3672C5688C6F6CADD6C1818 +17EDC6FA67F1D8B6E428608B667BF69C7D3B3E06E762756CD9A205102729A62BD0D065790E4814 +A2BE825BBE29467CF13439AF8DDBD712CAED51AE8023EE2EF3E82A32211C152A3B00FB59E3AD06 +169117FA059995B85827C70736E5C5B92A7A050AF586E4274E2B8EB301B1A44A78BDFB7A1CD5BD +20419B46A7BAC72D8B76AB79F43DDCF7388CE69953B07229CB08537841753A779F8DB35058BCB7 +9FE0B92C95EF2F5BB4FF92A17CCC17C7547EE812BE02DC87A97B70A07B47F25096CF7FB28EEA95 +93332D8FD4C05499C0F0B5DC16B60486C7945A24C8F5EF24ECF26BE37DC1BD16CE08D9F96BC485 +73C1D7A8872A390A4FD5E23765845C68ED59456D66EB4BE697F454B71BF6E976BFD7C7819BDFA1 +4D8DD7F777B499773AC457902DC130544A32957E723AAF0EE83D46DC6AC1578EE03C55B89F3FDB +AF60C8ADB5CE10DAB600BDEFB5F793B0AD8A4757A65AA493BBBBB603CFDADB0878CD83043370B5 +7F1C19E02D5EC43D7F2128C8FC9B2AEC4C8CB386DAB602969A06ED499954C0FAAA273BE17C2C70 +59895A7961C9105FECDC152A1CDE6814EBA6E3BFBA8CE110393E1046FD51A103BE194F4B9B5BF7 +12396DBA012BDCA0ED38F61394BDA8862DCD70C820D301A400B57F10F1117A4B09373E9BF4A72B +E6204C3F56CB9661CD175F72B2351A6CAA6401CB569CE3339429015AB1C6984F518C6C0D6064D7 +A3DAF6EEF949EC633A67070D58707D6E6E01F266D3F552B77721A0D59E8DDC86F98833009D7342 +8FD37CBB0DE9C894E99662819C196E8A9FDCCE47C4A4BA1F1ED1D90DC230A540B26C218B9B30E3 +8C226A23B28823DC6D84D49A6E346CB2F7F9F71FB106A5DFB36C16CDFF1D651A9756BB3B0F00EF +0A70D28DEC781FED5AD41784469E88ECDB870CF88CE99FF8B8C99478300A31DE8105455CD5A6B7 +6A3DBB519C87C1B61B15EF254B3848288968789C1F5D479B10AD9272FB77435766BA40AC988913 +07D8A40C14ED0B782934491ACC82A284A886D204D45F1D571AD143ACA7C7481FCADC2366F8AA14 +DE19B82574B2FD9EED7153A5B47877D3D579C74F8B91D5155AF0F34882C9E2C7EB3206B1B41209 +9E776DDD4E2E24FDAA98557E7C87347F56E1B1D6DB7861848966B6D0DD232FC2CCF89EBA52600F +20842317BBF4F8B44AC4ACBFE0A4B777228237E52D22DE4A3B8E3AD3F864567F785750B2064EAB +FF9657B3622E5D39F6BADFCB6903DD7DA935018CB36C69456D2C82ED6954E406942D0EE310CA34 +803309603D77BD4BA248C02FCE335BA95DEA94FF84DD80542966C5000B610A55918AC2CA86D837 +0C9C9F4B541287555D3B123A27A83545DF28C7970FBBDB7D7214C727AE687D03485EA555B4BEDE +C4588F41F1195BA7518C66FD454A95DA6BF1444C06BFEAA75470FC5A9196568A9FC73DB2849D98 +871CE0055312847F376D7C105B95FB41AAE629BFE241E52AB913BAA5A4F675CDF2564630041627 +E2A9D8CC14489083864E8121DDF31C6BE9E0C1F28F2E43716B48B2C850A6AE4DEFE4C72B43FFBC +7ADC307437041F908763BC8762C735AD2854FC4964B8789ED825B468FA72D2AEA6E0FB487E67B0 +8C30119ADD2C0DEDB0739870EA020C3AEFCC306B4657EF727C7B9D44E9EFA9D1E94EF45F0432A0 +1CA34DF372D1286639D3D621BBEA0A279DE17FABACF7C3700EE0AB96B91E9C65D00307AF5B7D3C +C5FE44E749CC99745EBC1DAD4EE4FA3209A8F6B79D51BCB14D16E716E57349CC7270F7563DD891 +1F61EA3D587E0A7AB6D5F52C51CEEE500E1A5B87E4698F85872A78D268DC589EDF2359559576BE +6DFC17ACB3AF21CCEDDE9E2EAC577921D4B664CB3A9916214F14E0EE0A5A794F52AEB2A85C1FDC +75448F6E8B28583C84995D2353459539FDBD3A78704047A9CA4F8BFEE8FC414E6BA85F0DF1D97D +0234DCE2ED68EE0E96ED572B66D1DAFD2DD2F0FE7BECCB4C851298FDB9F894CAD858AF4968CF9B +001FA15AE4C7E38FE246039FD834CCEFC94652ED013AE6D4FBF4A419C4D1AEE18AD681E8CC8672 +4B9EB1C5DB13E839B218BF6B71AEF9AB230D37D8494A69705C470ACB47875C3880946546A56944 +981602AC22B37947BCD1A3614F8695DE3147383302C0F1DBD3A41DAD361381E25F51C4922922E6 +4555CA63B2F506E4C1EA7FBCD707A1C2879EE4E9EC48C0AB93FA7C1C9D9940961B6EE73BA29D48 +07CDD8CFE05AAAE724AB718B2F0F3E6C50F5F53D9BA572FC14EC63878AECDAF990A7F50EBC31A7 +163A517F11721CC862F5156A689234860BA2CFF19D6FB30E6272F8AE9925CA6BA95F543233B63F +2EE746EDD725F5F2F51516F1DF1439F9062A1B2B3204434F2C21888D38A4FF676A6B850E3A6817 +0491F5323116EA11BE10A0490470F592044CD42AEE17491F2574DC22932E7583190E93D182FD72 +5FD6EE01A63BCB014019A690277E8E422CFA4B0A50FAE072E36F4C6F14193D544FBE216A78A3A4 +689A4C6ECB8BB149CB8F6EB6DB0029409A48CB7B454FDD796D638A7EC743A15EB5EE65DD93D6A2 +3DFDA04B8B040B856B766FEA465E7ACD05CAA8A3F13BA4D2B04AE5539D424BFA34227090FD1831 +7EAAA83528B3D40E5C108E39EB2ECFF231DA14E9903EFECE80713FDBCBAC9077344FA86D7F7732 +535A26EBD89A80649B26F247C710D725361278E7731870095AAEBCE9B9C04A73698A28CE509F9D +A1D88E9A8CECCD0203C3A3B8DBFC56063ECB17DAE60C26A80814F71FE12B23EB15BA5743B4F9E1 +24FCDC99D47D8A449A4E7BBE7DE8CA36D946756DD0B94438EE80A6743E683B57223EC6F2062B31 +042313ECE2A8E646361EE5E278EE597D79CD16DFDC24034C0F2E03C54DDA9132B37AD93D598651 +59DDA793C2CAFC765287F7B943191B068B520CFACC134F47D454121EF1753065678760D9A6B924 +C90D7C9D432967E4DE06BC5AEE12554DBCBE36619C0865B19C9E939F286677D4649C62DC79AAB5 +24AC9B6A8CCA66C46C8EE2E5DDD4E113B8BC0E356867B001AAD992F1C85940CB2573621C9986B6 +2E830E0823FA46FB64AE9EA7A67CEBF0B8AF5D3AD6AB366E52D60B5036222DF65F5078F70236A1 +25A65BFC345F6A400A81DEECD07183FB5D10A2640F6D21D98B8C2E0650C2DDB8AD539B7719D030 +B220B91E17FF3A5FFFDEE4D66D0C4586D9E4EDD15A64393DE612A8A2087991A726CBB59176AE3B +D48C79F0D7C884E833DAB2944995098257F300D27C4504E3ADA71F4CD9C306D82FA15C11FC7098 +1ECDB59E8DC578788317BBCABEA79DA888290734DCEB8E5ED8F7D51C64104281EE00D95077D4A5 +8CE902A8D3DB6297CFBAB9B4E0EF77DB323E34A52B1A938CE951A1989640EA4935A471D10749EF +728947386DA5EAA9BE0117E40CFCD805ADC01EF3B152819BCD332DFE5FACE16C23669371E61081 +94783614CD46A6885E543C00355B1B81AC917D05325FD395BF6195876D4F46CF739D7482657607 +C7AE98C7DE6D397F6055DF67F1884836E2D685C8064D834A7718EB41A843D994E070D5488E2842 +3A30068CDF01F84A34EA2C47A4341FA98C9011FAEE51CBD98DAB25C98B78C0957A0FFD022BCC97 +641F858DC445715AB461116AE956953F2048FB1A990D7752D3EF1CB67697583681F96B385FD870 +3CE35EEE611E80DFB0A992F87BEB5B724EAB130B2553F4B0599E795C4743AB312460B65CD53DFC +648E853C032F0A9D760F241F6174710CD1602CD78DC405316B0DA43D5E2D4EADA1E3688F32C6B9 +4F02EE29ED79848C459891187432957A0F428D256E015E86C12E68696AFA4D890FB842254822E0 +79AA320BC1BD480C0A2F276D833FB3C9D8746B52EEF4D0DC0B63D01F61F9512C0DF6E911A4125A +CEAEF49AC488F1A395843F760DF01838339AC5B53E760EBE256A04F092CCEBAFD9218ADD4169E1 +82D2F20753200859A776B236E6E5400C4255E7CDD22D1D6135480E16592FB680142E5ABB09BC0D +7B643BBE0888EE5D5A0008815748B2356E717813AB3AEB20A58C291C4559083EA547E6BDA07521 +342AE1D489F0EC7E9AB4A24AA98CC448AF3A198910E46CF829CB35182DB53CC04EA000E05F44BB +495A679736E1D3AD78859C18A9C82E9B6DA96ADF439DAC12269DE2B745841525C5B39DEF3FF4DE +405C7FFA30C29BF9EA979B9741DD9C0720C25BE42DFF13BAD91327D15FCF90E7588201B64C2E73 +DE8138737F1B4740B3C54B78FB4580815C5D47AB1870A548DBC20D118F8A8A7EFA5D5383D7069F +E0A3F7EDE43AF1E411F3E419F18F347ED5153D9B8AB2EB584DF2A8747060145C074CC2D308FEFB +B63841EAFE56C905B4A4B13A9FE80E9CBDE42DFCEE6A3F5BC986C2C740401B450939A6EC44E58C +CBA7955B7A29ED3DD28C7D63FBB04F8FC825A60C6399DA762D045C5182F240A8EE7AF4F4040390 +9942C8F533B3BC5C763B0DC95A834D1E5EF0F90BAD07EC07380E75A95F57B8C1C46A28ED6A455A +3CDB05C56981DA10068EB0BD9EEF0B3B31A76F660E9D340D377B3D8B6068A7228F7386D8F0D410 +3701DDFCE5F678CBF6E70FDAABAF86B95E2A731487DF06B4D011E38120BECD6B8C9DAE22C98C39 +1FF8D019FAC578069F6F9EAEEBDDC67AABD4126764D16B89E4F8A99C93A961B93122A4D9B389AE +1C664C3388E1E7F9071321F5A22D91802B5B96BB89AB7D0D853248B01EB77E52B26463AD317F78 +47C62881F21D2578CBB2855AA02A50BEF5579D09AAECAF59835E9E949245A1CF53983E67CD5F7F +CA5DBA5F4BA741E7E49C406522C380A50A3633342042EC32F80CDCFD725C9072B271AC83722F73 +4B3A98F7C516C7CDA806A1FAF97CE46210C4153A844A352791E6AE594619F51C656CF07B783D61 +64BFFED8809A1E502A533CA3C12727FFF4852C098D1C2F0F925B3A029EFB6FFF80DAB8DCF7C9CA +FA5F7D958A8504DBE2E7A2C3F261D736CD4894FE0009C6C24BC7F7A9EFD12E6AEB4D1A60AD6257 +4B8F8B7C54954ED1CAE95511F16886E5109A9933D84FF266EC4D94DA89619C82D376A63507CF4E +233BC70BE0D660B6EB472F4EB6B8D85C96108C5D02D0D39A6D02429D60D010E1C13A81E1AB0012 +9FDDB1C0900EAD7845B30B1CC795520A343E0FAB8BCE4D9F642EC7F51846F5FF3B87EEC40423E1 +A91931FDF73BAFDF383E55B255566679979F37E256D606121F0C3116BEE00897A7C1C2980C785E +A37E05F2E3070181F17D8DF9C1040221970F628202ADFBCEA6CCECDA61637E40ABAD6B0F639C21 +735298F35EABD37FAD3126247309EF9570AA4D7F2AFF959894C089D77878EB5D3705F8FCB748AC +00CD77535B672FFD36E162D85370139C0F8E7645A665C1D23C6C45C0CA06A89F2CF2F23C27A5FD +070F575439A5FF88D9235DF579D854962E025C347077256A5F4DD3C5FAE10A5C2801F93C08E022 +9600CE5CB001CBF71E813E116C56147304976CC25801BC0239EE6D12AF2D2A10E728A4BEC249E0 +BE5342272F6A508264226CA8479BD946E2BED405379D0748D4A707E0EFF6175D5E57117A04FD98 +C03405381AF44333FD7346DD7D46F71CF5AA1A87205EEF8D7B1CCE971F9BDDA467629BE1556CA4 +FE479DD77380F22E93685C12D641EC3227FA98C90D9265D7504B7CDB3CCD092F4AE0487E89CA75 +DC017DAF9C9C94778FDFC7CF2419D317AEF2D70857E527A5F49FA26FF3EE577A0A44EF541C7D64 +062F7DF3EFBBD0FD7BA63F5D4F1FFF4013F149215521F5E91092553F2973E0BE1AFF6B5876EE61 +3A081917A4198292455DF7A337954234E2A441275E5F4A47EB19B3362778BA70878847F478E341 +BE09257DD9823BB058512D588FA8266911C5846EA5AFC886549538721E4775EEB8354F64E20DAD +4B9129C6E9370241408BA4AE1E09059A0F2C5E4443FAFFC762D2ED2CAC9F6EC244666212178440 +A2D3074A8B5DCBD810FAC51627A81FC9D40FC32581CC1BA438B50865050765EAAE1F1E99C1D89A +A6CD3838A5459FBF8DEA20C9531801C037D5288F6CE19AB8073B5951D7699D3D3C7F937B5B521A +35AE12791102871A0C27AAEF9631192182A5C40B9C83959A96207802DEE92611FF3778664DB1AD +D309BFAF5EBAAE4B8A4FF008C0BE42F1151E9D1F460CCF018C42703E1A2836CCDABF26B4744DEF +9E111C4FB81FE89B4B9BC15E2880857EB34B21952C55F8C62E8254EC300FCE1CD5D46657B902A1 +D81ACDAE92E4CCDBE4C39DF747BF9CF8B1CFA3314C453FDE23F52E3AB1AFD66AFE12F6DD53FC5A +F236F1228EEC9DC8C8ADE81733D6BFABA66989EDC6762475F0E70228009D1301DD5AC6583BE108 +37D90EC1D0E4C543DDA6645969FF34C7BA21DF2AD3B9527EB104B70498EE9E61FFFB2FB3843404 +F8DC322C8946359464AC057370C76A90ED3C0254D38EFB516B8B99E1560857EBB5CB88566AD269 +56652F1D334F01FC8F018546A7F49FD17103BB5EF2A6A3B6C26F9CEBFFC7419D71F62AA5B222F9 +93EB5A227C73E310A3F34C19A3F7CE9A10536DE50BD81C4118222C163D0CEB8A16DF6B4EBF2B06 +840DED08106F28DF93E33AC2C4075B43723690F9C890D4F91CF5AC874B4CA7BCE2F2962E532526 +F4DAB744F83CF905AA4377BE6F05758EB44612BCBD52A5692B60BDE10586A1113005D915A74DFB +5E419210B2E5A86E5814ED34D5DAED6EEC3802851169615B6A2744A5BCBA5B67E933FE2D3D7398 +056D7A316A4C7D0A7790405C7A3D0517E174831AA7983A87FBB4C5D24F2DFFBF8577A8B30A209B +27466732F600B60FF503AE5BCEF08B29A9715EDD7EBC3DA4E15218B76D8FD60664B61E2B682B1F +56CE4B5B13AC1B0EA4EDD6AD77244AB166ACC23B103790FCF32F41B7C1E15D786A85BD3B81A44D +3774387CFBD41B43B4678AF42174ED76B9C70F4BC183D01C525ECA7560A7DC12E0804F8A6FCE05 +760361B90A156915EFB95CFC55AD4DF99D77A6537686A2A60D9F926DD9BA3FBD8B651D5B69BFD5 +ABED7D2C8B32539D75134615761FAF783A6EE4C31B47204808C9156A6EC2D70049DB35A7207447 +B346DA2435DBF46AF7B24C6E4BE1B75B30E5F68683A03052B05BB2DD75A5127CEC4FE11284F03C +A9C4102A9BB0130EB99933A7479DB597960640A3EB90BF0EDF89D93A8B73921E9E7C4F782EDFB0 +7233772D2343D90E1E581FF20F5181C67E050A14AE40EFAA16FCD62FD9AAD419E301D6893E2291 +8BBA31345A9D947208EA23924B9257EE753A7104E41EA10D72B6E72E507053AE35BC20AE5F369E +B0D780E537406780A55AE7C113A81F4E1008FAF276F598E276399B4DF11AFE51CF8D22A35B1BCD +247DA70377CBF7A96E8DCEC19658F88D6A214D3FAD356BADC650A41B36F12B11EC9B149FB6A491 +10DEF203B8F8672FCBA317974F17EBAF2C81CB398A06B62F635EE010E194A38ED4AB30C7E7079C +AD51EFBA8E069B811A35B459B3537D6801D747BFDEC5F89F465FD296CE396F8944922D5F82A12A +ADFAE34B6D723828C8A30292E9E8AD8FB8D97ADBD9AB22E5E45523BDFF4C1723688163BC7ECDDF +44052B696167C0ACA1B4A81135E0B837ACCD22DABB5DFE46765ED4BC0556B7FB27239812FD3089 +FA483EAE60C10CE6D3B8FB0AE33F07022F96E1B95DC818C67AEDA1D41BE11712548D0568A062B5 +26A4569B9BB5F6EAEC2D176F924ABFC9978E3AFC427EB2BA46C768F83E86F3B8178704E6AF4AD2 +EA4DF47E8989F327D85812790EA888CDC920D15B80E51F7CFC44A1189127D2C9468D50231CA805 +03DF2C2007EF27DA9C498C778F3837735EE5EDAC47F4A01C2A391BE023004156652349F062B1EB +504E5ABC82282A423E47342002009770D646EA50F933F0BC5E6143FA4B1733DFC6DF6ED7DE6DD4 +FB8388C7CA81C9210EA0A98B0275B74A0E0F510C90DF71C93B3A9FDB6A86DFF2921382352C8FEE +1A0A2E6003B005465C1F31B667F5BDD9ACE74531D0FDD56CEABBBF5E0A55633E28F750A7C2571D +27FCBE1B01C387F6F36D225A30C68BD185843F487C2E98B5629A6287CBAF2267880B2F48596320 +D7A1EC87DCE5C5283E034AF582F592B7E0B185209AB07480A98E676603F7F92F96F9AE6EBE80A9 +5E625EF7F4B469458B2A7DAA4B8FAE9103652663F353C35F88FFFEC41296809D52104E1D629998 +735E1CA4D36442BB8BD6C02EE6E27374B25CBAE97051FDE7E3EB81EA7F6D8CBDDA45F29232456D +C1C70B60869D63A509E9AA33DD00187BED5AA122AC8ACAE5B5A02C85A4C0B68193B2F4355EA779 +DF44F488272E92297DF1C8E7FAECC4EFB031E0232EC032F1ECD4F6C37B6707A28F1CF9A2683FC8 +3B9725F1948D020931065CB521B34934D2CEFE9458A1CC7EC5528A183F270AAC08CE8184B90482 +6221CBCA4DAFDCE880D391D6C4D8289BB45ECC73C94DEBAABBCFD529ED9B5FE55E5D6A48EB0969 +EA03E15B8D7DA8D54CB15E0370C8E39CB80158C6B7D40C2951D73345BF3D82E49C976A0E918B10 +1C22FFD551C685A3C7AD17DC9915A80815EB114550E9BADFAC2EAD17C29D0C834871CD88563F9C +C2CD8B190D02EE346A82C537DF2999722584A95845BB367E4F7D675FD067DC42FED595473C9B55 +1911A54B14DD130BC7CAD78C469DBA966096FA69FB9027C1542B8B95BDA4FC22683DAF22C8EBA8 +E358929EAE6C198C7F9730C5D3BAD63196515C4BEAAD27C26844398BD64D750BB06A240397BC91 +492ACE0DA7F6050BBB15740DCBBFC2DC67CC740AE8EE915192715BD472A45BBF33AA5E3E93FE6F +6C39E09D8EF3068D3E7D2BE768632B6C2F1F2B0F08844C5BD7AF2EFA6CED285646750F70EA819B +18B0371B3DF7BC4DA2B90E8FFB9E3DC066B9ECDF01A02BDBD882AB88EFD7FCF2467D4B8CC32024 +1FD68C6C9742C5E250BA662A856DA7194C0ADE36BDFB36562C29132DED3BAA0A87A761669CE3B2 +56E11A6CC42BDC6F0AE09F87C0D7FE688EF8948F69210ACB148A93F59FC2EF5B21B8E81B71D185 +D37E0CF36B2F33BBD77CD36047E9988704B0629FCAA318000ADFC4B370FA5B218A161AE7A8D99B +88907029BC83134CE9F92B21735BA15F0FE547EA79F5B2D8CC96D10E1B0373A13ED18500EEF460 +DDF2CAECB0F44A4F88A6090D660E879ACC03FD85B4909082DDFB7C90428E2A9FE8B60377DD1ECA +3D0885C5400473CF212DFC2EF3099C73A37B3886DA8C139FBEFF84911687D1DA963D0E9690BEE3 +F191A5E1F7B9D3FEB0A497ACACE68D42660D94CEA5825A19B65C1A394CAAEB68BED5B886F94D70 +8407C6DFE818448A49AC3A9BE10C8991BFA5DA3C94BF608FECCC0606BF6AA0F1ED1AEFEEADF0A4 +D5226523C4C6A77F0FC9A6C7318826AB8FA286324228ABCD26D1DF2FFF1650BD71879AE5D92337 +EB6EABF9A599308899752219FF8C97CA72C11246DD111F348646F23A62980F6445DCCFE035AA4C +5B2E973A787EF8EDA260BF8298794B76FEF7F6CF79DCA923F9ADC2B0524D9A2D4D4269EA709C39 +5D75E3F23F92FFDCF7E8BF8691D52DF133297E4AEB9B1668AC097409428411C7887427DE9C03AC +1F229BB983325258E3D36E93D300F3A31E1B4861A1A31D61731359044FB1076E98C2CAF24C77D2 +459356156E1D9570D9B7F8ED30E14C95D8638AF5410EAE34C41A35E552802248DA923BEAA153B1 +4E62735BD5E09E23E5616F10F5B66FE1D238EA59E293F0459043E42538E17AEC76BB09C4A6353C +30E4B756A89E40B9D9CA6FE1D40566769CC6FE3B14428997ED4A24B23961EF21A61D879A2967DA +CFF909180F52604AF8C4BD47F6A9474C42A752861E832B7B93161BC1224B8673A53BDC7F663BCC +DC71A9ACAA594486607C180C30384881C324554357685C149A0D96AF6A37E4E3D20D5021F11238 +1D4CB1F8674035071FC634638076C2480B0EACD306A62FD22EA859903F2F30F1F99C87F3245DFE +A4AB5141D280C5EEAE69F44D47D359A011A1D01FE8BEAF3B43478F8B47A4F37508861A2DDD7708 +B9D4742B6FFA156B64EBC0CD8FF5624FB80902DCE59B7806A43C862006869D0CFCA3EB13473952 +492CFDADE1E458A55DB078B1EF58DC5D6C303EAAA415F43DE9F19A508147FABFFBFAB69862E527 +19523DF01BDF22CA779D587055D37539BBF8D8BD6853E4E699E65F7EC6E5D096601D09340BD116 +38544A45AD6E58663A1C495DCC1FA79C8351D69D298B498382AE4725F18F86F315C588BED8BFCC +6655CF2E4ABB439281D199994BF21E47A2E84DBE37D3637DB32E961B5C40BEDB345C82197D324C +350BC344F2EF90E6B496BDBC1BB4A359B70633B0A35076FB86BE1343CBD39E6DD77671AF671CF4 +364C1CD9BC7BC151FC0FEDB137911CA590F377B35990099AF3756C1FF218656D1769B2E5ADE7F7 +571E7132CFBEFB6F0BCD9F4164C33738CA62934E138EE5A5FA5E81C3C1E04D1C1ACCAEAD8D15AC +4FCBB0FFEBE577342272A8BE5FDE606830C0289ADC41418C7282B0CB5234D8B75D668823A32B73 +E140228E8E803115DF38D1D6213718BFBFCB22B0405108A5C8BD3009D60BFEED1B15E7A5D21F11 +98F091E11B839C2BA809A22652F57B3007DEE6827AC22A96556394CF9051B91B1CC42A20EAFB8A +2D3F95B7090DA79AA3F4342045EDE247AC63D8D8006FE4C2A617C9B0AEBF2753042473762E5050 +20627409AE8F975E0547C07D414105ABFEE496985C3423E1F3AC71076FAAD97783CA4250951AB3 +379B4562F2A7744F41FC40E045A796A3C756981D7F35A38B6A57C12B8F8772EF0753591C65F632 +729732EFE7F053C27A4DAC9907FEBA0403CE8A902F71A278DE9A5616463256914C1BD117A66B8D +62928A00B7FBB66E33299D673B682BDB6A30790C2A2DD06F3D82E19CF49C1B9C676A4413CD4E70 +718F92FC0089A7257268F75CB3E53F8D4781C37E8D5E37D2C919C619A33B4C7141CA7107D1DAC7 +69016355C89C1DF2DB782723B71357CC0AF674F0F36E18485088AD08B8B995D5A9CDFD5070CEFE +37424C2909A38BD66DBE6440396D02DC2980F1C013E9C2C161F927C7B803B34EB7C57FB2349FB2 +788515885B7B2E5BCC7001A108FBD473F34810C2774E5493501FA2882BA5985EA9AE84AD076807 +AEFEFC8081AC8B99F8837197EEBD2D734EF78086F020091F44045823CF70462A856C5921583DB6 +B209473494E78D1D81F285B850052B1784373DB62FA6CE8EDFB70EACE4C2A01CCA9BB86EC61E54 +5E4399466233F7714392F53EAF823788E7F475E066E718A3A54A81805058B31244739B9E3D5BAE +D896901D9F014FF62728847AB719AD2CA332D98F99532D7A93C7030271F5BA5230095BEE8106A7 +D33D16D2D3BD76064AD26431922B7CF433BCF3AF02C53C59D39872478227E645828F2FF1C4B3B5 +9BED9F8061C74F79348AD639C4F3A67E27FF99959B909E3ADDDF985B719359F803938798E36DE5 +655448E65472CCE2D6A7537A5F855A5046C5D7C64D77F636E318592B3040981110E664FABB5FEE +B9B14C48D74E7A4582274D3BE07E8D67C2F294D2591796A2880C3253060BA26AFF00C503D614DF +72BF8B91E80E722C5F4F7496A17AD6B5357DE01C5AC8136A3F4B7F722D08EAFB3419CB76638A29 +BDF242BC6ED4FB7127D76F51B8E77850C77A3D9FFD94E814DD072C6AAE901F1CB99961E79324D4 +AD0D97CE00F7A4CDCCBFD7D5A9A82270B2FC7E88757747FEAFE917ACC9C07507F2C87530465B2F +7BE3B62047F11EEB0FE7513C9A7ECBAEFDB678F295CBF7B55CDD07FDC11A9764A31C1A77887D3C +F9C13DF7D987E725C4BD1E7F80A8438F54FC3668E2CCAE42A58A08354825BB87BD1424A1919973 +3B49B6A3A5467B3A99F70B63ED38549168DD5FEF0A6620BD5B8050968377C7ECC4DF6A43C852C5 +72339C0E54F99547240AAF9487B748CA87AB2278B162291991556DFDCB595C28DB05D6D5510824 +9613DCAD7144A1EC6DA259E16FDACE7122CE1A171FA0346A9155B25DCA8E6BA7300451891DC21C +7DB92E3AD2183BB4DDA70C669F1F55FCC191B59823B017E55D15E9C0EB799BBADBB8935AD90CBD +FBA156CB503A2333A4EBA92CA2DCE92C5B687A4E43F73BB7F09B62FA6BE7E1495318CE4E7BA343 +D08A7CB53E32B05F63D836D8B5629651AA4C2DC68AF2E13F49276450F66B56C1EF299604CF0933 +4C7B154C923D4107D055AC7EF0F28478FD06C54F663B170DD58A41F293904EC7AAF6C8E4DFDCC3 +7B08702BBD8FFB33B007044ACEE7ACE3464D5433A53AFB6B7EE754CED830A1C540EB5778C227C4 +5CC7BFB94850544DE6C0D1960874574284B1D0256BFB7E5483FDEDAF31ACF7822A2B9DD27EA1A2 +BA891D72C9AE28F074211D528758C6E168FBBB1274199289ACA037D1A641ADED7F300A4B27C954 +63BEF8A9BD49D496300655C1ACB70A2A3FF89E065BE79F5F292EC6F6BD6F8987B7A8E2F6642E91 +18ABAB71DC705981C30C51C7FE6A10828A8EFEFC43EFCBB6BCC5A8492E0169F03492968D7F0EA1 +C4339519EE36A1E91034670A85B193F5DB6037C59B5E46183FFE468BDCB794918BBC8AEB2BA715 +0908DA0B63653C0BDCCF80BB64F36D0E5E8D4685B80CFC7E3E6F4DA4FDD4BB8CA8DE4ABF16503B +D9F6C3C3B6F8F9CB292C9DAEFCC68EFAB16388AFF922B32B5257B033C9D8FC078AD296D49CB8A3 +3A32AF01FC192BA792C3A15E6C5B7A4AFB1C2FB00DF18076229550ADD4A991037C5D91B7CFD4A3 +5D08E8FA85D16CC2C48F3F32BA894CCBA2C6A3F964BDCB8BC4FB9226C7F8899900C267C70E3ED3 +C0797FD7377D3044D43C0E8172BB0FB746A706296D70CD23A5CE25885158C83FA2C9F10AC1E0BD +8C88DD6D581289CE14AA88B102A47D4E52546EC6FFE7E8450AFE3F01706B2E3AFDDCCE4DAAB431 +5638E28FA4668458CAB2466768C1F3F8881CEA9E9A7ED57AE7AFB53DC590E601AD11ECA0E5CB2E +4BEA895F6271B875D09EDB9D5B8D92647B67954824F0AD4DF1CC9E82F97DB638BB17322EA26C6E +C4A5E02433D11B6A37D2AC10DA6D1035B23F1C6C80B7C382F1EFAC4622C040D108EEE91C397CAC +E1EDC761C1EBDAFFCD6127B48621E666A5A5C33A3BD4F559C7C2CA7FF3C4BDDB288A3043E09441 +D35CB54F1218FFC4097D1FA60911189496A16B40D34EDA64A9225EF00B875885127D2A441DECEC +B2BF6F14F6A3815A780A4DFCB6227C7355B377EA61F928E94486CDC0D42EE92494D5063ABE2DCD +4D29E8967835BE5894D38F09399E70418D21DBD8AC679367EA9DEFA70BAF625F94F56CCD1DA6DE +ACF583E9763BCD0EBCD9EE5810CD9330FEAF5FE60BE3AF8A15A1D58CA2A9B0785BC09ABC53F86A +66CCBD8815F3F8B9B18396B045DE3B4A00D59D47F52B52DE7A52AB26F5DDA05E3B9751EE11A6F7 +926654FC7F909EBB7423295385044B8C44A2032031D462049FFD77CA8F31787268F64FDF00397A +A89494308AD9EF15DCEF55BA0C5AC4E4435A52D2225BFEB438C9230CC6912DB18FCD0A6D7D4C89 +BB6B69974B0CDC28D0974C94C05A611EECE866140A00F4BF9828C5363D9A6FA8FC974368370378 +2EEC189B4AB960A8BA75EF432D7F7B8051B2D012FF76F1A55BABA16DB9EE5C9BDD57DA9A87ACD1 +D1872EB5677A14CC20F83739D95AAD0B3F26506976B1C822AA8CB4A96960220CB2453DFBB6EE67 +67FC6C154EA927FA01E697D2FDE73F9840043480A584337E7F466F5248570841A7344A37232CBB +F088ECBBBA9ADA89A8B8D00EA7AD8FA02A4F79AF21FB8FC487528E3F7B31F11C3F2646FD78155B +FB10245978554D8C95BA599252815A4995A507026348758626CA386F31748F70C2DF1482B6C987 +5CB7546B3B1B756F3169EA3589A1D0A543FB165795234464243A6DE12AFA76D577EA55A4B764D0 +21BBB4F203ED66A4FEC3B51333A57776A2127DFC59EE28229200C9B93A1FD1E84B9D5BA8A22FC0 +24C844FF8351256EBDA28CD78C9DC782E5BB85D188B4FAE6A427C251BE2C794D8C77CA39296039 +9EBC8BE84DB9C78319BD38A441158A999A74B04C4C5246D6982EF7DCF8D8ADB304A8511267FFAC +C1ABE46C9EE1CBCAD63665AC606CAC7D56E9BC3609B3EF72176B49B63C90A0130CD183B90A6A40 +796E4CB9091BBA0FFC8D0F8CF2B016800B1B439B5DB6FEA0C399F8C1A22B1896E0487A08476F65 +F505717AE2BCA312EC891BAF95B43F49C5F71C3BF4A8B3E0E37D93A70D06C2FBBBDD77E7A0637E +BBDA27C27C539EA3AD7936E4544583DCCFBFAF737A61557B0FED52471B5A5733A1558C9B53FD57 +D361306945A6150D1C0FC5EDF521F17F4D724348D5EFB86E8FA808D2CF01977B431D3E9F4E8A3C +CB1CCB4B1750CA2936A362A610B05C73E382D76118024E58ED512B212B1DABEECDA7196C75BDEF +3049455278956F60FA00D450729CCD0F01B4A63AD30D92B0C14C158B183647B655AEDEA612CFA0 +BE89F79C22F1F2D6AAB20CC382355B1159D16B7C29EDBF06E6831B395EA7A4102C99E400F911A3 +F306589C5DE6C3FCCD402B4E25E85C65B301C396ADA09D6A4577F38D21EEA6FBA8D50B5FC31C95 +740A9A7446B9FCB5D37ADC301000AABC7D8EA8DD59A63DA0FA8F7038BB1D9B2948635424C80BD1 +CAFCB11FBB85497BC4C3BCAE2A24B9373CBD005681835D6FA7798A45FB01C51DB842B6D4737901 +8349AE7D8C5A4805028B1DB4F634869A3BCA06029E8BEA02832397627DDFE8BAA44B05D5EB55B9 +2655A387E3407308E34AD2038C78037995339E047D9310B8EEA85FE275636D6C5C19586701FA21 +EBB7434A4915CA71BB0E833C16712BC63DE98B5209B0A730180C5D6012FA81EAE001E1C1E14D80 +34CE642A31EFA12B3A15EA53BD89C492CD6670538B7BFDCC629ACBFCAEE4FC4CEA070CCFCB7560 +B4F933E3D9D259F70CC3697901929A1F1605EE8A0E01EE85D4FFFB167DE6D916F2630DEB8CF317 +F494C4CAC3EE73BE392EF96FBD232E4A776022EE04146552F0E1D66B4BC14302986FCEF76F1B7E +196753A2B4BCA87F804896B7392FF8E5183448899617F020386E688E7E26286CE5D060B00B485D +ED264D191A5B528A4E516832640354C31D61EC4F7FA70125B5C6349FDE30694E9504C0A080D252 +B922305874F39354A0FC1A196021E29C516D62A783AC2594C28F69F6803314F6745AE6685E381B +FAF83F14B8464D7DA4198BE48E76011BE6B3171EAD370CA699E7076071B2FF1856F6BDC61F3F01 +034ADDDDF56CC4914AD74282859C632B9B14293CDBBD9FF8FD4403CFDB761D3CBEFF84391E3D5A +06B5D932DEF0861EBE6DD885C9C31DA765FCF358847333C966FD39E5000E9835A35F3BA93FA20C +4C459A8F4DAEDE2C99EFBA13EC0B82AB546CFDF7A97879642D97F69C21737B22283B636494C9EA +129A161BD8C9DD565BFB2A35503B5BF8A95AA69627E2A1BBBBF5BBEAA74A58CCB11F7CFA420B5D +70B3E392D54A52FE59EC9A3017BD2D83B4E90E24D9FCC6D816E975544B96BB1F4443CDB81918A7 +7FDDAB25D9BF72D20DE17689121EC5757BB18324AC0D5F324DBD89B72F2271FA362BC8CCACFECD +CC25331BE8AB8FED46A6E691F3AA6B0701F582CA8753F648828CD3FAB6E43CC92A924F245FC608 +350F82CAFF77EC9E2E24F985436ECA4AD84EB24435A5C4B330198B23E825D1ECC7DC5582886E90 +D2EA7CBAC9037B11B156ADB8110B6FB795BFC6D397B39FF79D8FBBD42A00C6020C63B011CDE2DF +269F4754E89CF3F18F2B9DEBE3850A86AAC0F5006B528CE30BFF055110D8AFA688BA3B9F0D24AE +50143F09D6EE6926BFA2E460B5B3C486F3810C5CF68F67FE2A9DD7FE9B39BDBB24D6E59D12108C +5016007BB9FC22791622C044132BE6BB8F7F9C278C755DEF004E310EACD8F39933A6DF56BEBC5F +B72B4DC33EB255B645CEDFEDB900B6E8B1FAA4ED152222A3E6FEA8D8BFC7C477EF8D7557B70E48 +693F8C0DCD118EF544E782C23DD3AA3D66C90851AC05B5818831E3AAF1C4DE9529275DFACAF48A +2A87BEBCF4EE948415341227461D8627D2187CC9184DD3343F554DEBB268B65AD8314996BCAD55 +F75B5983F62EFDF10C580AE478B6C3C92595490A9E3AF8D279246AFFFCA3F3F7E79FEDCB652CFC +57CC31B89E18AA6C5F839DDC3ECCEA0264794CA316EEE24A93A25E2DD12F0115B6CB650227FB26 +30AF4CF55F7AE4701310E11636A39C9FD1D3436524C57AAF409D24276DCC0A5CBE47EAE624D814 +A3A094C5C960C3566778E850BA04CCB58E5016CBE399A201B788A448F9969CB1C89EBD958AD83E +4E9E2001D5A7120E73DF0D722AA3DC1CD06F11B2F8E911B794E50B50FAA29B49AE01B5C361F08E +27BFF8DBC16F4E4EC034B3AB15F06C08C9EF4B5B054327BB3A5D25E41F3EDD53E2FF4EF38413EC +F5E693225C255A9E1F4060B1FFF8E38357D06549C517F458B62A8E123985988726DB8DE3C9DB37 +8480DF0D731B1009516437512F2C7F898628330B0B2B2960CF815AAD9171E8097C933EAFCA026B +1EDA2FD5E1E5FEA1CD7604124234CD04F50AB59DBFF1318423E4FA6FCC6B7E91E4FBDA149404ED +E8E13993F65F12ED80B63FB137717990F4502A61C00DABD9345E94F043133ABEE22D2B7FF0DF21 +C4195C3E2F7ABD639941E47882470A6CAAD0B4A8C96B4E4E1DB918B8A926AB40E1859D719FD381 +FDA3F1490076EAF5D17311CBB59A26D198CF036B5D6A551664E2C206C910F8A7369183BB95329C +097A7DCB992507F479CF546D645D52F2BBB452EBCAB40FD4109464D160B97ACAF226DF763FB024 +9AC97B71F735CBFA56D2E6ACD7710CE9BC2189FE53F5BB41C58C0FF1A1C5442FDC76D21E6273F4 +1896D7394CEA6C7500950AB85FAC5C8D4CF1766680A0CFA243A00B7DE2D180DCD1417CF25D7A30 +5A1B17534FD1D8595FE704A36B402F868E534FE7CACAD039E13CFF4CE59D382C107FB9DD98623A +0FC04F9337010031AA47B7938F111335EB68AFCC86E477D5E76A1E4758C7319938944850E71333 +0F20E9A9DF969173018CFF594871676420136BB1A3E0CC89C2327F68B0A487D95463D183ECCF07 +4BA6870EA9332FF8B264AA779650A00A04CD5D443CA09453DC961D3193BD222D1F80BA0B9C4162 +D20CB801B1D6E8DD3D97CF05B841BAB3DF22DDBB06DD6A682C6A1E3CE595A28CAAD9840757EC6F +8BE66D6B9CA3F6EDD5BEB6324873C0EC7B8B108731F3E6BC6588D69E4C7573D47BBDD93D03E050 +076B9A0EEBD7C020BDC64127AB58424291B1BC70A9F3D326C67D93AD24F67CE9AE6BDC829D7DD1 +61EF3C1A47991F54A807C08AE0AF24D6B952E66CB8E9196EA00F3AFDCB1413A33763E24109759B +CDB59C2257C2864C458719BE17D929911C7FD72148815791A12EC2D2A3DD6407330CE0B4DFC3A2 +440FF0D6974B92B81FBF04B0FC4E4429B009C388FA8FDEA029AAD70151F5BF76B13933D3F55B5A +C00DFDCEA91ADC73D3DCEF29EC261E07B96421E64865FDE1F8EFB7B5AB1273D5C2BD5261ACEADD +7851504D19A91F295D664B440AA61636B62D02A341CEF145920C396C42244CF13EBB21D4BC85D9 +95A57563CBA0D4D046AC0B0D1B40D1BCDB26E5AB86A1720005504BE3D73EE22018F3642B1D8CF6 +4596A15ABA888916E9F12BCB15EB823337DE90015FFF5D1B87DE84495F696BA7E1704B428133DB +54916A4BB7E31BF36CC74AC1B1C1AACC176E44B45CE6864EBF724D28819CA80FCD1BCAC9C6E92C +E62D304E2D18A3C882074DEAFEDF1C55104F629481E6E42EE45072BBAB3074EB5AA1D4958BFFB6 +E541FC1849E6F5402165F5C4F750F72CFD90BA03CCED7C5014745B0F9642E271FBF6645AF430D0 +E92984BB4F96C993E3186C0D8C2897B692C0A0D198FF9E44C648FC2723F8D8A547F7ED08E89E02 +C00D26A50BC8A1C714BDE534580176C7F5D3153514FCA23C2D9CF3B6EFF7CF683712BB7AB3C7D2 +A3E66427ED0B625C088A2A57EEAA2C467FAF0AC5728495451ACA08AE5506F5410411D2B0912D3A +F6A391FC7A4D7108C1B2FF0D1F9D09C2396CA85ECB4885B386F5FF5061AB78D9D915B2D3AA05CC +192CE2751B8E1C99B043B24950F25D58BE9377DC1B9198C5DFB5FD6A0B91EB90A5F01257ABB15D +DE8B375B0DD55CB18B8A42594724844FBB89FCA2215536BD9CAD8661CA6C92E32AD432F581383A +90CDE05F34FAA585FDE7DA42889EB34752AB26D21D13918BBADC23D9C35B88C6FDE31EAC2A4295 +F4159CE1CC942B9830129A1B9474F154A175F3A71D86F1BDB4BBF15066948984B4FE902C3F8F3C +0A46E6A51D86054D683C0A11ED0F151F7905DE73C589339153E8B4708F6D94CE02581C837C41F2 +D65556F5A706C06FFAD43669CCDDB2FFFBE01DCD46380EDC16E08945EBD749AD2AEDD7CBC7C2E2 +E3E4F666AAAE7A718AB5FB6A67297D8F9FF768FD216E4DB4645383EC452F33C1043B23ED9783C5 +C76331017EDEA82E29CCA8F436DB73156A71333E8851CBCAF2A721B7A57800CD72AADF40B6620F +B932435AFE3FE986720FE713D424A3F0E936168960E171B9B5B8721B699C39B70E42C8E0430E66 +9BDD2870B7C4C66440C106DBDBA7665838F9C6CF6746E15DB725F500AD3D3E2BA2C7997FF0D513 +C91BB5C4824D51B89E7FF3CE26EED35E9A2DDA7420026D89674F7D3184E6C76D4B6D32F28B170C +A928B58CA925E69F04A22E85E1EBB862C5AB0996F05C62E6DA8DB0B6195B72D473EA23CB8F9900 +3C7F35D51D480D0547BABF993B9235493D447232B362D382FF92BA13559F69A7E95C17976A5A1A +979EA687227BD969D06E73018FB097319FA62D7CEC8B04419DDB4435972382C04FF9C5705DFBA6 +548561D31CE00457559534E531377193169A844152CD042223B47B7166A6CEED2B746AC21251EB +900F93FC6F625D8FDE6E1D5374950F4DDD817548EBDDEF20123FCED4C3DF7A7F7CE65E9B5FC3D4 +F079B281D7C03DCBE9B8D87935D42CAE3ECE54EEBE41C00CFC98E64780935AD675962BE9DD9905 +9BC1DB597DE778C168F4492C26167085032E511484ACE6FDC8CF885DE200FF0A990226D0640BF3 +D78F53576875200E856089B11A57A657D37E0BC5B6046670377114396B8C740B5C166E15ADD5F0 +9BDD0CC3BD11C342B69C2D90E5507D83D3F6FD3DC144A2D2C80A02F455143F15949B81374BD436 +0E3591F0EE260233F84B50CAAC5013D6AB612837119AC3ABB6B2DBF0ADC06EB4D4295E48F1B6DF +60E6C98332A380BB997B769F7C699827A6EACB9E14B79CFBF83E11AA8B96A3EE90A2AED4035296 +05834F1489CCE75443E75382D1B413D8E0AB4F8AA7C69A3E499FC0077DFC9C8AE155F5EB403579 +B6293E80BE372197F33AE16B3F41F75FD0350E3267D963D7D39AAE9F6741EB1D242B3F9CB3997A +0577421B816164A5259457F56724E7FD562AE67136D5BF75AAE92934F73240C98F289C566B8582 +EFFF34771E9A1C04FA01AA96C258A3C7055087721981F4343CB87F07FD49B9576C4F9429BCECA0 +20027987609F6A49D73984819C940AA1701A6C70086BDE720E1FCB0C6FFF14E15978E462A3D5AB +4D0F222A990EFB6D09EC67B467EFC88275DF2598F595186DE91F398AD8CA3D232EE6FBBF2B9595 +0735E0F625B709CD4ED126C063894BFA5FAC4F4B7A8091FB9D94D294E3C284781482184D9AABD8 +1F723B1F9D8AB2C7157F8E4A636F253CCE3EAD18A0F7D8C38B76B88913B8E8DF121902BCA1EE8C +4CA2B05EFB5FFD8C1EE4702885EBE96755A2D581378F71646886DC140216D13AD4C3B3F2C0D2CC +D8DCD4D9EF6995135D6214EC4E3D653FEB11C22F5EBFF43EE55230A86B8E78E312B7ABAAB7B749 +F7C73718504B28687AEAF731FB83EA4C0B9B5477CC52A5D0BD4252FAB095F558553FAEA5784B94 +1683E0DDE43A3C7B19A6C8A4D39FDFBE50F967095B202F5A184244C31C2149E73CCE7E0D32FEE2 +58425D0BCEDF9BD2FC249608C6ECBAD4B7EAA64D7D01F333AE334D173E859F163396A88A1E09A3 +96F47A3FD445731F18EA7BD26C621E349E314159B99DC4432ABC9FC2E5CBD8E162D9CBFC7F5D8A +90B7A195A7B517A91BD8AF517EB26A8EBFE30CE667BC376870E405F4DEEA3CF4331B1A89B142A1 +DDF343B52419528628040D173EB0828C7B00BA62BF5DE4956B23FE62F555DC6EADAFE18315F268 +15D3DE1AD5B9808F3A016DB66B1969992BE7CC676EDC26B87A11A89278A82DB04BF41CB21C805F +2D2CBB9B4E781F6B4DC755880EF054C74870B847332B344DD056F1A3D7319162E782A625E1110A +C80DE10CB26F7E670BF997EEEBC31C0DC875BA67BF7EE96C70347DFE02FC64F4F7632B2CD1D82D +026A2D7C14536E7C8ADD18491CF2C03B94BDF4A54511B7C9A515F3EFBF120491113E7EB58FED08 +1F16BE32EE7D1BD64CD134834F206E636F9DA1DF7E393659821490E92A81CAD875736713D6EB26 +93E0906C4347699F5632A7D3FEE62C5BD09564AEBECC0A09500F1216B2BCC8D9ACCE85910BC406 +71670117EC279DD3AE212329B50E55DE1DFA4D34EEEB533AF5407331CE8FCB2D39F2DC59654FBB +90A8145689145414A95951C2E41A64375B3B7C7EFE850FC152DB2226F511906CB01C4D487DC7D4 +667678482DA2A0B57728BBBE04FD7420C49289831DC8A627C82236B3764DCDA399D5C8EB0E0917 +0A1CA8E43B4CC2C0ABEC5B60A0AEE5DF738B76C08B354372BC28A1E398159B9B6863458EF40BDB +810731A45996A64EC80889B94A12C6C5E3CFCE7FEE0931AD3BEAD31C60E07B73B1828C86916979 +54602AA6226A830902BBBCC8D25494A7B24A67CE2B258A8050B9659D3FBD3E3B0499A7FAD90851 +0DAA4E0A8FC39BA6A871905BEC3535032BD2FC641F53274ED8A47B8D8F693E722E28480B33AF79 +780F246979C0BA9112071E45C735AC38E0A2FAE61ED8CEC4813065EBD1EB31FB5F0DF37322B3C4 +79D6D8ABE7D3022E1B10991F9DB03D3394BD71AD7763D8A287A2F11A3F4CB87F0A4D1DFC11C936 +7769660BF060965154FBC0255D6CD41E77ABF528922809D141A80678B1F564850937342011C2CD +A7193A4BDDCA3FB1773FECD40B37F367507EBE2C4F69778BDDE54DF9EF70583DC98F80EE984ECF +29646467A48115B5B40DC2C725100A5BDCF8524EE61B841A45C1583236ED7BD97F37E0A9486902 +55A78A4563F25BBC1957E267BCC2932B59EE9F62FD7EC053041AE90A165E4DC412F3B5525932A0 +5D1B729EE049E95FD7DDFC41289ED305430CB9A0BA0E2983C4966AD1E4C634E67899C15CAE84D6 +C6A0C2D6A2742D741EE5FB897E004FA6AA48ABA7332FBDF0971A4148FE73AF6D4094889A87AB06 +FEFB97E11ED78C3FAD76376C3620DEEF80BBF7B286290165F59B78E21F96FC2EF036D65B01589C +14DC300CA2BEF5E5C9414A4B7F4E2434DFCBAE0510C7CAAF5F86A917BDCC85A0C7D0BCA0ACEF48 +E54BE1D943324E826E1E9D3F0A54D36474F74300F94E0D7391A13884440915D1F91F5BAF310230 +9DC18A2A75E87DA722764E799A11CE89833205B9DFF25948E5D1F3A3CB1E611CE299DB7343F320 +00F26A10C4E6358358A5F655D15D381A6D98002D83DE29B1AC943A4C6F428D76E607702B7774CD +DAA3ED711F352F5A65DF01BCB0B7B25CF801E24A4E3977840D0C6C42D71C75AAA00F265CD259B7 +CA0EC27CF0B120395152F29EC1734FE5F40AEB4BCCB6D9AA0C5D38FE7324FEECAC5013446EB3BC +E7DD468047D0B7705FEC89870073E5EF829D4B782A8C67E134ACA1FD7FF4405E1D399F876F9361 +4EF88E2F65E13B1CCB0D9149C59129391843150AD4925CD95A3CD05787EDC236B5FB0072DDAB14 +A148053A4E06169980490BA0E5B8BD46DCCD063AEDF19BB4AC6F1396296435C49756D043B11CED +CE66E71108FB6A5F297A476EF414AF75D812D4E4830A80894809235EF1C43528D0AFE3938728A9 +5685049D31548CB5FBE281C3501D050E8A3EA525A55506FFA31F0164919B30A9B4AFC70225048E +93517E234B0D671A9F74AE8DD155D35DD72C6C8FD359B5023EF5BC74A59D159E26BA68F3D0D7D1 +D90F1B64A4CD270C1DB67832C814B44AAB2447DCB00F73C1DD5080C7616111ACB6289A0362B5FE +C39B09D62F924A98C37F1C3D3D18B7018E6F6D6F851436AF6CEB6669143D30C85F958DB2747213 +77B5B73738F9442586008C38B843E9A567F7EA876A3A33E1827F12B67516AB2A678F131D8FAF62 +DF923BD6C4C5C2DE0B9B229541A02E9185AB6C7A56F4DCFB59128881D87C7A8866140AEF0C6C4A +B253B190E048A310F524CE453EBA70D967627143843FC4D19E4E71CCFD3FA84B72C51BD211B2D6 +E96951EA3AA1E9B66E55E0117A43F0DF8E5CAAFAA6BFD38C71D68AEB84BE2AA3B8C0E451405836 +59703D79568B7DE8D955D1AF3146F514E5D87CCEE9F308ED802B49DAF342F8F4555309BDC09B3B +9A1D13EF3FE6DB875B775AA3A27B2C1AAF68398D1D7EC8750B7BCEC2B76F27EB16F5E496DF2A24 +D14B6D6C3830616E326BD0C4500DB16474F5703C9556E760E93F7101E251D14F1E425BA8BB73BA +12F576A778BDEF7742BEB228BAEE59D42E05656281C48E982FD069917825F2A06D917C39A6E990 +60B57037A8798A3C9BBF361C826F6D0E565CD4A465770908259DECA452D45922E87DBCF7CC9687 +AC7A2E57B39B9C916C00EEE3422B79529847A11ED8E3EA4BD652240339959B19961077219C7D3D +7AA153CE334B9288A4CFC5BD378C8D1AB42E6DA7AFE9A3DA92832A235D615AADB414DF33A7880C +4757587CCDC298137211644466C077618B6A8B54484D62400B9CFECBEAA1ABCDB7EE78022DF46B +A3BF4E36DAD7520AC16DBBD895FAA89CE06A3FC283153CC862DF5419ACBC27DF53A1C32B4B50B9 +34DD753227AAD35DAC0F77855524BE8BA3C0C11511E9E85AC4DFC9F4BB97BDA77864B162DBBB36 +2A9C08B76048A88E88FFD0987CD09D166954C59CCB66AC61A651E42DA851D7D7273E60FA8DC330 +D11A6D8087CB2765AF085C09CE05CAE89B110C6AD2C452FD4ED326CB66A48E0F09CD6D0C5287DD +DFEE9E7368BF41E1935DBA23267C999793F2EF9B8DF8260A73642F322E3BF0C79B1EB998076D09 +DE104F146E6EA6EFEFD842635631AB2AE364615CD32894CADDA2E679354BB4ADEDA35763FCB18A +2FE174762D316F10790EA888CD76726DA3D13458E7A6689A149B5709B455866567712D21E5819C +5A7B8C4FD95377A28B73033E10AC486C72076A616813F056B1B39CD9279B64B9A382B506F3F252 +FD0F5107B9CF36D78B5EF60DD9784CA70E0BDEEFF677F50F506EC83EF33F832344AFB67F9AB4D3 +3DB24BE3D7A00B8A60EECC7EB5FC913C05F641C71542ECC9229F67809B8AA0175EF31ECDF682DA +393A9343FA19C4AAB52E8FD310F1A2EA4987EF6ECA0D6EAFA414545AF99376FB13BD744D1A2ECE +30E2DD47B5878DE5E6312EA76D699AD6C217BADCF535B46E2EB7800A84D3083A6270BB2C5A5D1C +0057B424531EB48EEB29E445B1BAB27637FD4955535F62A1ED59C807F3816D46A96AA3B0160190 +5FC7F23AF175CCDBAA060ED6CC1AAE155F18C0FA0D8439BDB73C35BF41571142F8C8A696787041 +99B302C49AF02C4CD929D2CA7F0403BCCB6BA8B3DD12B081A9610487436274F0AC8C21B722C539 +22611009B8581352D989EE065FB2D1A8191C1B0B712C702C4FB566A19F382B4AC8E840DC2DC456 +BD91F7BFE2F1EB225F6AE1562F6DE9D4D6D46BB2426126ABA9E7BBD21F158B3FA9A040A18528D5 +946E6C5B4322070B392403AF18CE0DE9CA09FFCED6F66F7C646C3DF14F5121B34E41DBBA653370 +5497A448C4115DF01E7DF753EF61D9B8618796AA26E0A8E783A6DF +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndProcSet +%%BeginProcSet: ppcod.pfa + + + +% Generated by Fontographer 3.5 + +% Copyright (c) 1987 Adobe Systems Incorporated. + +% ADL: 712 288 0 + + +%FontDirectory/PPCode known{/PPCode findfont dup/UniqueID known{dup + +%/UniqueID get 4303738 eq exch/FontType get 1 eq and}{pop false}ifelse + +%{save true}{false}ifelse}{false}ifelse + +17 dict begin + +/FontInfo 13 dict dup begin + + /version(001.000)readonly def + + /Notice(Copyright (c) 1987 Adobe Systems Incorporated.)readonly def + + /FullName(PPCode)readonly def + + /FamilyName(P)readonly def + + /Weight(Medium)readonly def + + /isFixedPitch false def + + /ItalicAngle 0 def + + /UnderlinePosition -90 def + + /UnderlineThickness 36 def + +end readonly def + +/FontName /PPCode def + +/Encoding StandardEncoding def + +/PaintType 0 def + +/FontType 1 def + +/StrokeWidth 0 def + +/FontMatrix[0.001 0 0 0.001 0 0]readonly def + +/UniqueID 4303738 def + +/FontBBox{-1 -288 606 1046}readonly def + +currentdict end + +currentfile eexec + +D9D66F633B846A97B686A97E45A3D0AA0525392EECAC163E584A9104D99AD0BC1B1F3F7121D1D0 + +F2C60DD206B0D3C8C450620B47320CA0AEB8937511E456AADE8E66B301B1E3E9DFE17E2F79ECFE + +A709FF3DAE19B4C169DF6773EDA414D02915A6F0FAF8B24FBB0777C697BE8A37D63A390AD9DAE4 + +95BB7E626721FF2FD3FB147C80D22BEAC37C2624D818D58C8DF0209F5CE76ACDDE57A303D9042B + +F0A674D095697F925F532D1814BEA8F8A5B5223A32BC4A95402F2C843181758752FC330970E817 + +3977418EB4F64FD5E455C3E4165C9AB3D8504D946F6B5C3F4929D463E1D6E6B5810DAD6C7A6529 + +0CC6DB960A1F943400A8F6364DB3742BE96B5CB4B78CDC5634A9EB3C62FDC481C9C101E045C629 + +3CD9D491B77482D32797F4CC0BFF20576C2605ECADADD775B2165FEF0FFA0F4D88522D1BFBB05F + +BC5062AF54BB3FE2C0B371E8C7BEA0C644A32A3DAFFBC08BB63A97C18A266B310B1C1B92094348 + +60478D282D394123AE06D8EF457278BD26FD6EEF9B95B5CC7D31E1FE462D8A5FACAF5CE5F42B45 + +E1395A3DC60F37F5CC752CD81906F28D3953D61F55075081E14745FDD659B5B0A271C8A423A0F6 + +78B1CE24E573A24B10A5BC378A9E4410298EADD90C159525B358F72149D24291C923F2C91D77A1 + +32347F5F471F1139B9938E880CC5B3409B33859FE870D28B882B96D8B537BF229EDAFDE8C3F6CE + +7CF51F18C5B50E315E93E4896B85D998A43D47BC2560160139FA04813B3CC5C4CAD527A8BF8A21 + +751D1FF032610410865DC43C499080E3162C1BF74077F8FDD45418BA7D690C23FEBE5E9DBC7DFE + +0ABBA430AE206C166FDCCACEA3D4D346F919FF8293111FF626461C28A9EF2072B2957D98A12B7D + +4072EA28F07755AE9D83B5D86DF4B2EC81023BDB5DE262D1AF3FD844E9496FBFCB61DA20388909 + +7CC13CA9BC695FF8EB10B59ADE5384D2FBE0E741F97DD10CFCF168DF343075F34F63C2582A53B9 + +2CEAC572EDFFEF54B2F8FF5D617ACEDDE59046C4D2D7AAE0F147D8D2FC3769AE15904DEDE6CD4E + +1A944E5ABAB181450C36C74B93D8CFFEEB3B5876F9FA7B3530A0E6DF9670E2BA9CE7675F9F1346 + +EF3F5D38202A50A8CD6AD203250F2932EFC08C8A4F7894A4DC1C80F2B2BB2C71682D218D1481B1 + +18964F33B16F5BD3522D16F9F3739F063D8D05463037060433CE5F2F84231EBFD1A0524497555E + +41856D173C70AE0E3DB9E1BF4C2CCB9458B0C4FF393BF62FBE4E4E78C53F67629ED378ED695916 + +52083BFD432D05F8FCEA0FAA5BC1B4CE9EF698EC2345871944DF7AA4C4FC3616AD44E9785E2B43 + +B738159C84261FFD04ABAD0F82033F1D367737F04F70CB2812630D170A08E9D6976F134838E22B + +82DC60CB4B93215515DF5AE0BDD7D9F150B1364A49F886F7B196DD4A358715CAD8EC282F9062A0 + +6D6F2CE0BE1FB718F4F0C0242416FDA7A9CFAD1A67001DF7AB7AC3840F776A47D0519A7116374A + +D7620CF527DE6343948A7CE6763311FCE7F3180304C3DF53CCE7DF85E9B21A8A56ED2CB0070C85 + +56468DC6D6EC4758F34423F6AE9F1F973FEE394769B5ADA4A08C90AABD5D07E0F07E893580137D + +09CE94A6CF3B8CD2A650A6F8C42F33A5BF02A2F04CC0DA224FEEDFA59F313E8E5BA98A2B95C59E + +081047EA172DA8569345A62FC12ADE17DEE499CBE08ECD7B18A79553B3F391DD7C9699FF209B4B + +8174D217DEC328C0A8939197E6C40C6153F6A49E69AD7A7333386B30303FDAD868DB58A9E5A13C + +AC55EB76A2D241F93234508B436D0081783E64B9431260115720ECA10156AFC676E012A737EFA5 + +0EDFEA396E2C125CDB78BEC266F894FE814DDFBD24F2D1DDD68A9773334FD39E7A72C023EBE0CC + +A6E5D6E0E3C67F3187B4FAB906302EB810BBC5ACDEBD482E00F281DAC4A87C83FDF08F2E15BD17 + +8A77A4792F69C23486FED2344DF26043D76F4C9BBF54B2BF425180445D9563D99DD8FEE3F8D2C1 + +A660AAEBA6E0ACFAB5CAFA7742ABF17244EC9BD43B74E64659D03369F252851340976AA18BEA26 + +2B9287566460ED054923D82797A31C3E4BD14FCDF9F30C94B50364368C1BB18A10BCF47325D833 + +F3DDD815725F628E9242CC62155550D54E1B698FE66DF29B79817757E02D05190CEA5B78C35D05 + +FF87E5B2ACA9E7E91FD5233DAA7F5378919BD11028F25439E1E35A5DDDD8CE710F4DE16C1CC0CF + +FB1A9BB9F2B8635609DE6479E83BEE8FAA4DE3E28932BD18E07EDC326B1428901A77A3D23E8B72 + +66796CDB8B5B180E779FDD9DB73AEE5F45F72FB55CEA6B9E52A2F72497A0D8C12C4E176060F398 + +7584E5C0A8F6B74935349C153AFC56434F27F0E248CBF9E6009900A7B23315A0D835CA08DD3A34 + +697F381E3DF8CE655DC3B2D383B002DEB4E87B0B7BE14130F54CC3B433CCCC9034E021709B6F7F + +8C25DAAE692BCB399595DCB00978FAE3454D48EA1052369B0FBB4B340D3AC6C3279AABC6526F99 + +362C7693B0C0167A539CF4C8EE7C4B6FDBE6235D0669FF525E05E127A0E2FBEDAAFAA82E843EE9 + +0CC32A9A80ED98542E23D7819F5551D8B065628D4532081B00B728CE2C67855045475D9D1432C1 + +C83F12A3A628D302697B418D6699C9E4380704D05C0270A736015A59B2C4AF2EC384CF0F05496F + +01C977FD39C6E778F38D5E438DB5B6B05E333AA6F4D7DEECC6CB4B098E1E5138E9829D93B21F05 + +FCD3B5A316BB3452C516B2B8935B1BE80E64A7A7227BE6AE842AF11BFAF372AE4E41F8D99D2810 + +427F709B97E3CC0DE4C8CF59A4B59582F9B9385B4F8E822107A79CA447B9F885477DC4B65B7BAC + +30A40B5141A9A3FBAE99F68B27A3CECB7419103BADB770EF627B2AE0C4F6F368B1C5B9AEF0804C + +FECD822D6D8EDE9F42E17EE2A6D385FB06EB17C1DFFA25626E6699C4D3B791FD65F2EE5D69DFBF + +4CC6E06F7F4EDE642B163699B239830DE0D120E1F496F4026A31D469E86C35B01310D9B521F5D8 + +614AD281F159E197F8A66C5325A2946216CCCA969C4F6D2FC05080BD50AC3D43026B89C2E640A3 + +5964555A073495388D487E919C7A40086217B32FE8B5215A212204D44728E1F245C913806693C1 + +CC8FED12BFAF14C4DE4DE0BA32D76AF52F6B316E9E64538A72BD461DD2E24158C75362031800CA + +20F70387543BCFCFEEF0D1B3E7E108E106D8B172B4BC40F83AE4D58CF8CCB1230D6981AF00A712 + +9FA1ADDC1EEDF23A339DF93DF45A3FBD7829BD840CE86EA2CA24E020A0FDDC24664EA42BD15C32 + +A2CD1D7C327CF329480B7211926FDF44FF1F73FD248D980956CE170271C77DEE57164BA2FED513 + +5C3777E10956C9E382D02B888261BA22FBA3D5374BD2130013FF2EAFA4CE4C1235DD5128FDDAB1 + +63059F4A7B911B96C587526533BE7255749EFB41AD032CC00CAA20C2531E4DC09EAC48AFBE0425 + +431FC29CA48A3749AC9B012CBB209F77D931599EEC8645EF18793E79D35C63D4F1A7134284BE50 + +00DFB32EAF9021D3C8DEC2B119E376B3F2E94731B23FDBF8BF6D36AD9174F56756B90207511267 + +8DB30EF2F34F7921AEEB3A00B6EBE69D18F6D1D10C5B5F5CA5F37FEB97546191F17E1F897637D2 + +9AC366148A9D7F09B0614F630F829F155ADDA8E704EC5C49F963BAE89A9A6611177655EB85D2CA + +0075DF5658FD68641AA7B31B8E1EEC8F715D6DE9D422274BCD8382082D625BC812F5DC3F86EC0A + +376BB596C233F01C6F54780909671694E902CC1B96EFB0AAF2B42BC8BCA01FF6DB2348EF7DAD3E + +7E9661189FC27D69122447BF81F9466A73EF04D4D4BA628B63BFB84AE88B472965ECAFDD34F7AF + +8BCA51077C2CF364F152A65347488BCB948F87E99E10F430B2B0964ED6114CB69AC8186E486D37 + +6F57C438B8959C360FBC3550A3FC6B973B603F64D2EF99455C82E1107434A0EC3EE4E1FC1129A9 + +FF12A23246B410C74E13FFB07DFB6A6227A73A0B6B4518A0BA2FB6007B21AA81A7EC747C525F2A + +8E6C2569A9E950E0BAA17A5C9D9A1E5155147EEA4DDE831AD8CF69C7814D76B503933D91AA93E9 + +A97508AAF29839E177898D79BFD277005819AD87D9338CAF02ACAC44F891F92813E7DA69C82D7B + +6EA717564BCB1D470B090DDBB1EFB308613AD61F5D27338FDC8172B258009CB7A5FFB872E43C88 + +20FC3B8DAE2EACF870D7C5A88D4261982800AAB36E94968A4C5C24EC5B0E538170E8C6F9AD61D3 + +E6C713B6319E8DBE7074CC2228770AE51649228A9FC184AFC1BB7C67628FF30360459352EAD6B4 + +A2A69A3D39182E56CBB2864A2C1180A7C777E7269C5743D5A739B53D3A2C5BBC9ABE8337C35679 + +6BDA40101D11EEB43BB8EBFA73E4E7007A2EA443AFEDA678E1B14A2AA2AE6A06D12398E68D6371 + +A457859C0FF25A81C5DEC3AF48272CC5FAC044AF2E71D510E5BAAAC8A50542D9379880AE7C9D2D + +1C822B5477DAF5150B84FB9A1A062C9AEF9C03F89E0269637F056BF65A92CEADE31F2E3D4C9589 + +0701A4A064605CF79E933A85185B50D14A4766563A952D5A3C99C16CE7A50BA68CED98549DD395 + +F6698BE4F7976AD5A00E737AA33CA51F4C7308B66B10BF636B3C4DC8866F1509B081B178059340 + +BD9849AB487CAA004B8E60241125457C922340B1BC817885B703914B0FC58F1391016FE1E3DA04 + +AB5F2056AE0DC8A681C8DE6CF5FA125D2C7F5967DE841F076AEE8791E6C17D7F698F2052A9C641 + +04924F9FD85BBAF77D9EE8711F147D730A6F89DB2965CB450F0820402C2E52CB57977BA0A77E0B + +7682845F3E4266B77304F163AB2CFD49494917D2C5963A704CFE46C643EA7ECE441F82E272444A + +8242BFA6CB813B661CC9431DA9C1E1E9C6A861C6C0EB3053D1D62CB774209A7586F9694B558DCD + +625B55A0E9FBCE5C15A9A002BC9478908553E95302BAD1E4DC9C250AEF170495FC898FDEBA345B + +B4AF706334CEC5091F8AC4A23821D0FEDC6167A15F45633A30DDA88EC3C8C6E235A5A3C1BF1BBF + +03A896CD7804C297D6BAE134DFE4E388872A05B92034AE70DD0CEBCD571655B15078A2719AB32A + +528E613F2BE3D5AC5F3C938D23BA20DDFF1422560726B62BCB1B9EA09DA1A28EDB55F5CA2D4E05 + +50E1231157A81978E7B05FCEBC855E54A936DD4053A42ABABF820E3E4D37278909ED49E49C6213 + +9575862EDB983BE4EAFFA6B946CF4DE068FEB740927C19935D25DCB15E817847214774F290CF03 + +E862E76335CD1CE46188CA3969F0B3F9F1DE174C9E480C4782CD5DD6DA4F19B51F5F09B78CCBD3 + +D5AC80DE849278DD5A84BE0F9D67229113FC4BCC4829F89EF61E8EEB93D48F263098073996CE72 + +05435589588FBDEA91C18F8BF53C81DCD10C74A6139B5A68ECE7ACD3A485723224DF00177B1D6C + +48D7D92D0A5A9E550D5E061765B49616C65305916E9C0C527F6A8EB6CE031EB88311A9686158AA + +B526BDC7B0ED01EF2E84E495D10A50C7BF87536C4D4BFAC22CF95C58462A7DEE8E671752E98429 + +8DED64452AB8463A8D4D98CB7E2121DCE680D13CD52B4CADC738692F6C5C32AB378CB2FE4FFD68 + +11B2F99A6D0BB9BDEBCDC827DD77603BA5814226F39DB9AA83AE2B91C0C6020E934190DC610136 + +AC6CFC5B6B5E86A66DA2582406364FD1AFB14360CA16EBD4FEE6DD5B5C42E7ADCDE9B54661CD25 + +1464D5C7F89B62C99EDAA697A96AE85C1D280BEA6F700110B2E39C0D09BD14A548D2978881EF1A + +38DAFB197BD78D62A17C343873F279EA84155D79E17887C8C56B8E7DED38D064EB811A953BECB0 + +39C9EFA45424D6455B869EEA5A252D940CF0E43D5162EE408E75F2EF0BE2DFCEE6448DDA529BE7 + +57CE4DE31B80A4676D23FC0E901B89CF02AA0562BE66185F91037B1B56809FF1046A6FC39C9B9B + +7EC27BA4ADF238760A575A472273BB64C5E2CB776207F00315B73534A539764009372A74CC7612 + +9DA6188A383967DC1165C07C7B1F93B39C6C201449106A0EA1276634A6162AAFADD21C61C1D560 + +1BAA67902785CB90C87B611D3A6A3B947013BAD8C60A3D4D339A3025BEC74B6DD387B7AFAB831A + +87B7A71A37D251523C48642B1D479D8368EB31F8BB8355EFCCE5DDD1323FC99A56B1089B752A13 + +52770BC7E1821A398890B31650E8EE14B0D49BAA92458C15C2941E434787EC4BD034C40BB0E209 + +6CB29B175387729ABF0962EBD02424F0BB509687B03A39A3BE9658761F0703C5D839B60C4F98FE + +FBFBAE07202E2CA22AAEE145DDC10409010E2A59B934401EAF67B8EB499ECB92B375CFE8D54125 + +CB6B20C9968BAFC45D1A8BC65D98D7B702E624794EBA8C1EFC9433FF2BC3972F57D8FABF27CE44 + +2FA32AB83AE5DBADAE01EDD183403D272AE3FCD75BCC750C90DF7D0B5255518AAB0C92D30A0164 + +59D9821BD7E1D4C4F464E19B0AEB78276190D726C1D7674708D0A74CD05920C2A8FCCC8581FEB9 + +998D735D811623780F129F0AAAF113F75EB28F383C9B8C0C7A2221C3A4BF641961F38DE9DABD33 + +A803E9436E5B9842503581B3F5445AFA039CB10C936C8B0C08DD49BEAE1190AD611F3F23FA77BD + +71A80A1F91B7F3760F5FA35BCD76D8030FAC872C637217B07CAA452C72DE3F805F58820BF1ECCE + +231229FC5B68E5F1B20259DC92AF481FDA92D07F276077D783AA45349915B5F81C8C969739DB56 + +F4522D02D547DC76240D69CCF2D684242020DE60ECA37D7E2846C5045F6B2D105B7D5A3CA5DE6E + +73A56715D5DE5F3EEE3559E657A5EA13C9716E3A7AC0DE25E1720D52ECE8A84D5D1AEA04DF0F7D + +D846549BAEB5C5032CF3C251A5A63A99DF1A33D0548A72735FD9DA8267BB4B57A5C58D4457BB12 + +42B5152703E62B64C02AFA682C65C4112B2838D9BD8CEC6BD9D1BEA882E5090046E9F22087E6CA + +B69F5325F0C69A4874EE820D18B64DCCAADE6EDBA3AC758E54A7C9B6EDBC40550DBD4758017842 + +1A8C5B6967D858DB9836184459E26340BCCA7636A84B7B3CC9596A907528455F4646B5BD789E94 + +9DD0D1F40C0AF21E3971996FAAFFBCC14E19030924D0D38A948EA552971BA65045F2817564D593 + +4C2990C6CCDE26329F23D8B369F3AAF74A125CA1FD552BC7122D21109FFB36CFE387F22CD09CD3 + +CCD47EFDF7F671397CDFCB3F457B2E6FD2E2273AA268C4C394B36145131EF2D4D10729F64ABDC5 + +EBC7B20BD072EC170432982280341735297A7CDDCBDEF8483F34AF7A797160402B10CCA1C78AE3 + +9AB6170CF6DDA19EF0F22BEB283277E06544881B6B0D525936A84EE91FE0BA8C2985B6E32AF94E + +DF33E6CC70408F3BC67070A90E0641BC68B8CE8FDB46BDE2FE80BD7070F0A9505B0959B1509E84 + +CC666CA7CE4EEB631B6E8D19816611B5ACE957E104CCF3439C2C27741CECA6F2956B0C5E0BD7C2 + +B417C375B630D4CAEF428A88584A3D1962330A316B9058BB1324FCD908781ADB47B39425A9FEF7 + +6ADAF499775F68F98F65EAF80BBC9D4015D05E816D2EF9A1FA91B01E05B69B9E1BF75130B4C7D9 + +AB29D95C07A4C3F2DE00C7C2108F7BDD2F103D8A7BE02AFD12D1ED26A01AEF6B18CD6336765899 + +805618E0405C18CE7F06EFD796EC9532ECAF6966F76EE335419454FF647FF14162CFE1ACEADC15 + +A22FD4E6DC78A93D51A6076553C2D707399D27E5AF882813BD3248B9110ABA3CDE8D3E6BCD23F1 + +DA141BE6D45A9E6E36FAE1DB0C0819270676536536EA13DA4F07D5BB6277F7E4C609E4E16E2EAC + +8806F28F4191E71096E2495E64DB238E20E0D1301B3F34D9FB4E6E6106C03B6240E10C0FD01B6C + +352E9BB9300C246D0C020F2B418D76A0456784E58A75AA5C725E5F9269392A90D185DBDB5CE2FE + +AE31ECDB3B63843AB2958241BBFEC3C04CE0AA147C504A45DBE05503DD493A03857BCD7E4B37AB + +E8572892AFF4E271F510C7E0649C58B3E3CF75B8C3BC08EB34AB5F765813E99F99ADE259C45327 + +2672F9DC25F031797C4269E8CAECBC3E92D1A59FD1285B46500F9A2D679EBECE480945D79A50B9 + +D5D1AE90727DDFD6F8C5EB03B2EA70C169828FC755BC4193CD027EB52EA2DC7AF09C0865695106 + +5BD78AF57C289697655A3432A457792BBC88949C40F4BDC071793853F9E8777839C7D7F93639CF + +42F1E4520FCBCAEBC3BCC53C83334033C25E50C72A3BE0F337CD14996326C169B3921E3442CCDE + +1A444C94AC8D2ECE632908AED4A162A74021555CA73B235715B965CC867727E48C3B6B39B989E5 + +33B92BAE40A0FADFC8BCE85D2A7EB6A1C4CEE21472345421F9B80C5EE641C91295448A51306CAA + +41916DE9DB4A78C7381067314A8B39B13F54022882286724BCA2C10687988E4C4DDBEF5E2D36F4 + +36C9F6495E0D40AB6F35E7D0D5CB8C2A753B4C355D0CDADF49FBEEBA5239A90A56D826A9BE12BC + +62677F07CB1CA5AD3A8A39E10577E5FD95E82F2EECB4D4F7B55DFF835663822851B7B66FB4CA4C + +758763437BD7FFA955914B267C18A55D7C913C4B8BBACE885F5806BA7265167003198F3C3236CC + +982EBA78D01F4270AF563611B84C839F9F414A0FDB4CE0E3AC0A6629378741B5993B40CA190243 + +C30C55759CD545B2843404994D02ED271D807B212D4D39067624C5685D04935F7C936EDC0D6F9D + +DA112228AF05097780EF6B3F7E3765B7D3B9D9B292400D7E931CF98B84E5AE51D6FD741E6F8401 + +D026309DFA92510CD2254EB234E6B2A04AECDF39C03227D07096C4BEA57866D91099E8CF5F0E19 + +A587A498D6BB3B492EDCE600E463A0B6CEDD0C33C270F99FF12906EED6625C61442D7AE3A8060D + +85121920E6B940EB9E55037F40D977C675DF6E825CE46FD9A1A3938D9A1476C0E0A575270004D0 + +B56126C50A62FC211DE28D34C404BE017A823352676609A5000182EFC3DDA67D03A12CBB25C99A + +6182C6D3D92CBBB2F3B2D3F3B7FC90DF0C60144A233E71ED22D4113EFD9542081802AA7A678C9A + +F6811790ACB3654DFDF82714598756E365182A7BDEE311B7468FE07C2F9B829B65F287D55440FE + +32240CCE521E38D71999A84ABD6F6C1FAC23945BDE97D1B2EE8234A2A12F4F61AA9316C7949D74 + +660C459E2AF21699FD334FB41D5A2CB869A45551BE062EF3363808ACA5B861C5CC05A0F74DC620 + +B762CF1260100F7AF497555E3A387DA9B836F2B1FA44654CD5B9C3C6F11D5B5552E2D824B7B1ED + +9E2597B1849DFAC61041287E996855B0ECFD21EEF4A0AEDB4928569D34613C74B46D7F46B55ED7 + +5532217BC77B1E075A4B5F782D2FE5748F12B50F7146AEF506A41A6A3364854D8AE4CA18448626 + +6368E181874148970B89AF75967E61EA7212081F85AB17DFDEDC6F0FAF7F415B3CCDE75688E85C + +1DC939D767755DCBA622BDB3631E120BEFBA3733F8BDB0A9D4DF8737240385A6ED642A3B6BFCE2 + +D3B06B16F994CE49BDDF355A5E8F28C4DCB6AFAF6354A97D490B54B8BFB9EE2CBF5AAE669E3149 + +4461E70A60156764F25520EA13F12623F3280343822876660A7F6603B59AC39D425B38217AB4BD + +E12120EA6119F32E080CDE4AE8DFA21E23DBFAB037421B20C3A51F4AE2FB5DF4585ED289147427 + +683F43ECC822E0688E6AB47619038D4B9404CBBD9324BF32773E8C95F9CDB0CD68748DF066970C + +AD2BF8E4424940CF6C6E41DF2BA07DF4085A0E6DA6080FD43FFEA0A71AA7D00169D8283C910BC6 + +F00646DC8FA6522C85BF46A863836F64CE73A6FBC0538E30BE63930B0EC1E4AC40A1220A99640C + +39F811C42AB78325AF974A27A0C2A1A2785A36EC316048E56867A1F85F78B36171F126B77C114C + +B7A8E05AD92DC6860D5893964E898998C63836CB5CACE1EEA1C9C837A1E22AFDC4B35E149FB0E1 + +BF248A25847604DD6961DF3AECD1A9F61C36E3E1E4AE1B9F28FAF351FDA113664BBFECE0B7C5E2 + +3183F8425BE6906A56398E33913033E51E06408E001D9C862E36A93039AF47F5F301B6B5F3775B + +4B2D4258B866559001066C6EFC48C55F4C3F0CDDD8EF525EDFAD6FC06213819A9BAE2E5577D404 + +6E4656BA2F34227C5E37F0D77E964779AFDBC6840616CF02936F281FD353F2A5D8E7814AC6B28A + +71BB57253F852810B7DDD5590A522C50B56BE251DC7641E0D1E271F8C4CCEBAB65B6E70F86A7C8 + +32D55AA3E61DCAE504EC4ACDA7C274AFE9BC7E75610C861ACDDFA5DDC4E8EBCA24A771BF0CA3A9 + +8B88A6ECE52EFA7C8D55CF0EE850A99C9239A4466B558B6D020FBEA8D22BC6AAE4292B90C9A983 + +6F7F4C5A588E6CC3DA3313F5FEBD4E5D2F7E454EBCC9939742C67E7C01E510D507EC30C6E6D340 + +510EFF3493B2209A7AC43B484921872315657D3BAF59CAE38DEA48F394E4DF3A8C930C61C54610 + +300D66A423A4CE2392A7A422883EDF08766119C2D7B7C7384821BD6FCD1B77B1BEC14DB15F1087 + +E89ADF4672311FF368EAB60CBB6ECEAD34A7507A781B1DAD557ED19C7A5B5E334851268DC21824 + +53CFB7EF47D15BACA68453301E95125A5CD35FDFF1E6EDB85AE7C228180424A2842ED475B31AF6 + +240A480B6F6D7D3652808F8872F859843843D862E81E3594AC3AF577E79F647322392E4E63CC08 + +937C2976FF749E16C58DA39B9035D802D0F0A9D1DDAC1894FA71BA3E41849C133445191D41D25C + +B37A8337C876A5973EA13567389FF89C668E0D13E225964DDDC3DBC949B46E0E75A2BABB6E2AF4 + +53F65ACDCD45A394BF20630802BD9B9418459BC7736E37244F9215F2D6F534FEEBB1F841962737 + +D48DA7D6B30A71BC4173B6E00ADB4EFBA91CE6332CC517B39701E07670D3D1A9A86A7102E6A80D + +C1EC6CD644F5511D0938DA096F80B49CA3444C0D96DD79D3F8832D0410F0430128C6056DD09F34 + +4CD7E8D743789BF3AEDB8181DEB1A211AA5320FCF790489732CE6A982B1403CC9E2AE6BB9AB5C6 + +863C320929B3861AC1011FA62C44CA18B10CDD9DEDCEB73E9145B73C471C6F828DD188804F96EF + +DC3D226A2A5D7155F7F8BE7821DD39EF450B5DFB14DB6C4F568CADCFED8C702675BA1C04CE6D62 + +839727FE6F8AEF59693BA38A2B900D0D02C56D2C632833D2D360ADE07ADCD4CBB620517D7D0B28 + +E3462E6EE2D30856BDA53DF4D97FAB059B0657E815921ACB16E1AB6CC72FBAFB9290A1ED432A32 + +CEF7D8CA1938582785D12C9D9B108DC564A9F80B8C75B5B02A1E1C9C5B793526CBBAB9042F479D + +AB1D9EE9C18184692C81AFE2CDEF26CA418800474E6B742BB45CF02ABCD86C52BE10C777DFF981 + +464D624A7B6E455F6F8D5B7F84FABE288DE3FC4CE4A23766F3D771463AB1E555F2E1ECB61B6A2C + +987B43C53B636DD466B57EFAD09811C728ED313B950789B262A17EA932A745EF43A8EFDA16D05E + +9BE49D3B05D7EE630434645AD245BBB5600B8AACE3241F3706A3D5B9EFF0A793C56A8650EC4CC2 + +55E4A001356BF728103F59890540DB9B3F2CACF788495F63BAF1D36B4FE10B86287F213695E48D + +5BE20EE7025222C8AEE4F5A17D7633232460621F7F395A225D994AFF8D06C8351FC83F0C7FBFEE + +32352C1A3E35651D219713019CBFF78EBC3B14C5C3E25695BC44582008FC053F6E7FA8359E8554 + +A7C4EA90632259302ECFB9B5F1F9721A37EDE9B6ACE78BD7C68C73A960346D608CFF7152681EDA + +81656541AD4EF64B4B88FBE98106AFF6F2051A871F7AAC5337A8AA2A16F59B10447EADD084FB03 + +C36E5F0A4781E4D83402944714F176FC9420E21EF3A28FE65CC9CACAE128401BAB4E3322D6301A + +18FEC595C05BBF5C44C65D027FC3698F66A07A567937123D59F16B9290B70B838FBD4C6D12C460 + +69309881DDE50DE0224F10231A0FBBC19F57E7B6B288622F40676D53F4DAE27C6E30DD31759A32 + +EC0315875DB779486C9B4F7336516C52C537F6F25950DC671AF3C749E2357A48E99D032DAC9F90 + +25B162D672A01908842B28C2A9E8FB13BC5411CB1375A3B25871E7737C2B1FEE4D43949DB1567D + +E2AAE44C1505871690062358088294E4929D552847A6A94A075B7D0B89D7DBA645D26B86F7F7F6 + +40D7AE4B47956DD5AA054DE194A5756B95122F182D1D02504BEDBEE0ACEDAFCA0DAD84092582FA + +0603F025240375B11E8C252A5417FA1AA4C96DD1C4A369C2E594B2089A3EFB9D936224DE25A421 + +588718E6177C8E320679EA1C639ABD3E4BB653DC17AEE5264E991BFF63769A7C07EEF6B0E6C1A7 + +371B889B8BDD14DA43EEB252FCD82555752C25DDE92DEA11E3100C8BBB0E2D8D38C29E7ED42338 + +9811C21E4BD162FD75AB1A0E5A579352CFDE9CC8FCD3A4CC2B5C4D84CB5A6E2E52A52A3D8EF445 + +37C6F812694DA5119CE9B78A2C5F12454B1BA8AD6BE5D2088906C3A11A4CA80B2120434E92B526 + +173D07C530EAFF61A2712F7BCE3618197B8B6175CEAE93186B7308CAA90BD20054D9F48D13B40F + +2CB81A08D202195F3B03EB7E14A17F5415E44C981D47E4CEBD46FC2CE82B3D0F4EBD242985AE51 + +0BB6F3C1A702E86ECD278CA322575D75ECD86898F013499D0A7FC1FC127A6A69463BC44097D47E + +8ABC50ED36E4EFECB6E5553C35CB6CF6BB4779CF22F5F6970F15F54159FE5BAD7D57B5DD5B5BA2 + +B2E25069EE77B06977BEFF18D21594E6DDDE2D44C7DF12A80121FB9A23BFA16F4A7EC7AC2B2AA6 + +DBC7515E18CE39BABC04ACB1CB8C0A01A3AF169181C47AACAA0F0D803EE4C40FF0C0FA10963102 + +330F0BA056DEEA02A240568D8DFC3F01DBC42DA2AAD17CC9A5F1DF12DA33BF5CAF8B22BD521DE2 + +EA2B831135417E80412B244644B0E6DA40DD3E5C2A283A75950F686167719EA69AE1DBB00D7356 + +FAF3310D24066D4941EF70686DC859CD533BEAFE9D5BB4E470F38B09104FD6B63A1BC61CFB27B6 + +710EF092DEAC78313249BF66608DB507F08D8B9CB55BBEE1CAF79C83D616648163D56DF637E506 + +D06CB45CB70CDAB90CD87FED934E0AEADC8C56B70C687B44C30B84376A02C04870E0690F7F43C9 + +6536324092C7F4CF7B64990EA4C5DB456FDD7346FCF55121A5265A4B3169FD5D8ADC14A175F75E + +F8E86DAF70FC4F1E7A03181ADC6F0F9CDE42DD2B4A853E81E9A40E17AE8B0B95FC60E635C7B460 + +477B582E7F45B00D78A4703414A5AB2A33456DAB7247513CACC1370A02D3E0B1BBDF5991385FA2 + +9E03F7CA21DC18DAF612FCAFA8E35DB3663850181E046954938715B24C4F3F569442B5814F22BE + +89C60D912408D5051FAB8C57722FF6942D045A2D62B2A696867DEF3915EE1973561E8ED1654B49 + +3E99B2775605066B36BD156A1347E06B30DB129214BEBFEED880C0B58290C5F6295D243EC46C6E + +122F6E2EEF4C7DB5AD9EFA493CFB01173C8C92A76A5F900DF0203032C490208EE5E8C0088704A6 + +BC1D69B4CD2FE122FD8DE579801B110C76FD8FAC88C24558B127BB90743DDE71FDE97B1DAC7B96 + +4C4E5DD8EAD9F0E99D451ED92B4DDDF8B76643727F8D011F3E527A16A703CD8A597F18685AE00C + +D44944A77B69D092B3A61EC940DD8F64C1850AF7C8D17B690239707000BA1A0C0C1D23648838A2 + +1C0BFF9240EBA6DB5832214ACC8CF022BAD305F6594A9C5B7FBFC3881958A170B0267870E4B831 + +F68951BB9952F79107BCDF24BA4B41EE2FC31C07E4A4A7340B36B1CD121789D633AA958563B80F + +A6CB56F11EAC5B468839E95666A96B7DF9D3EB16F56D69BD3DD6DC6D34458B3D56D55EE9BB2E52 + +EB357887DB2B8C12D064EF31E2B53EC48A4964FEF00DDF0CB26E6B2FFA5F5866649BC3415C0E65 + +10C09814158C8B391B74A3D7A07EF7385193BCBAAF26ED086191FFB8328BF3511B4CD54C636877 + +A916866174DF0260801639B3024B9C965116B2A68DEC8E171A620AB471F673391A31B081665F27 + +826E9AC2A33DCB0565134E407C618715E146CECFD58EAF40D1575A805DF12B71AC3D3BBA4913CA + +D84185BB7FDB6A2EDC904EC0FE8D95255FC50174A506DF939FC0FE8C6DD4D27566C32569EA2339 + +583D4FAA82E00FF9DB8D3235D00AC3C1AC58306D2E02D65D54DEE6DF6ECF33726E2444F60DBFA3 + +DFF4F6FD4AE88376B507E721C9E9FE030D77B95AB29C6DB703FA45515A424B212ACF9D658D848D + +120883DEEE78345A35679BF82D7C26297259D8697A0C221E26C6EABF3A727D951221CEE74DFDF1 + +5A33360DEA36DD0063515B5DD17C204E0F4D4935FD0BBEE775DBFFAE232AA018A04A5E59EC63DD + +DD0B8B11450FFF9DA0D4894778877E0C63C82489D3F7CF67B61EE08A61130FB77E15B50B7E87A4 + +2F6F837D50FA3665528DF916B187B11955B0424A7603F1F6DC1E2BF41EAC6E98E9F0F5F44580A0 + +AB8C649EDD4F960F4759CBC2995DB0C0E07A8F773EF9F58EA54429779B7D085FB46A519CA89BCB + +0340AF843ECB37A8208B7736AC27481172728C360DB17CFE81E3635794CA918C2BBD6654D2D4B7 + +4006053EE17D1DD7EFB8EA882CD055BB5FC9BAAAEE63089A6F20BF88ED9EA643AC27DCE9BC1F1A + +B9F15B40172C7E4C0602D13D13216CF0F2D57E51B751AFCF8160835FD4E3D21A58898401425961 + +69271E2DC95D72E6F075F413C96DB7DD17B3FF2608809D0877E212A7D1D17E74CB4FF48B65645C + +B8126D05AEBBF1A6EDC704787CCF57F9B7CACD75F748A5A6A1C4EC863CEEB2BB1D9A4A207B4E0B + +901060D0E3A9879970AE98464D8D67F9B4D7C6E582F030B8D8D62E15FDDBBA25CCA8A9EFBC02EF + +C304CAEE902670819463DCB0414B3D185AA6DD370B81CA9145C75AD4F7A47411F2BD0CA1507488 + +117868458C0802010078CB4EC2BE0308C9DC22AEF5B2E9294EC00BB5568916164DA18CE69D170F + +A3641D29D0DFD08B5AF6E1F1951CD9257C0699B3FC1B6CC19422F433CEBCC7CC1E0D30CCA1C6F2 + +D3FFB1384F5A1D32681A5DDF49933629F7B044E45DD748DE8509257E688F1CB637FB766269CBFE + +E206B2C1560CC3A84470CDCE8FA0C74274DF5094D413D5A51D1ABDFAA66D9C9DD627D72C29A9D2 + +B0A3552789774110481FF3F7E0CB583C7AC5634F0922C53FD81601497E96B81008D9C5B49F4ED4 + +01FC2CDC9744C2E31941BB1DA34F6F6CB63DC2C23A4BE17D3D13D413188A2AF77143021D376E61 + +7EB1B2D30CF5A1C2C76EEDEBEB710C0C4158958C3D2BA289895F79E3DD45B030D90B12640961B5 + +030D1FFC621B54A8693493B5FBDD1905132ED26F9799370A67B0D90F7F9DFB080E141F643936CF + +DA810EE85201704A15B92C4419D65C0BD1ADAC4F157958D52B528A84BCC69F57A25123A04D2202 + +319067B8B8E80FEA80DDBA9FC075AEDC480E8209111F9444742A8707F576A7C7A1DDB894A33813 + +C2D6FFA7B08E2DDC1309EE20B1D80BC387F9DF1BB786BF6E82640D775F084ABCB86C07DF15413A + +0475F26FF62960ADD1B94F20FFB2A908AAE2C79AC4EC3899425855D80262B2758E76A4488D3A47 + +0058CE7BBBE7C991183499EBD2C550C2918EDAB5BD9D43273C44DD192024F73468BA0EAD2825D4 + +99EFF4A9B1C2FC64AE2222A17116C1F8CD61622B08BD573036C48956C3513A6A3B9F066915378C + +2A41B3163689952847ADB7F624303785E9F61ADD7C2E647D2A171A5A0471E76C9C6DE4909B015E + +3BDFC9836DB884492F5C9CD77F5E29DBBC80F5B836684E82900FACC7A2CC1D20E6FEE60BEEAE93 + +DB98DE238B66D13BDC858590654F960FD6AAA779F00DB7736C7F18808FFC167AE32421FB975E94 + +7FC49A2320DDCC4B6841F54EA228A58383D420A25C21E85C99664C8BB20AAC66390BA46B49BA7C + +6834E8F18CB31FDB92FCACF11FF1A9C53F06D6992B06BF0C01DA2082E6EA705224841A7C6AD02B + +015C2AAD19C8BBF1AE2506B08D57CFBC0B291402BDA5C95693AD65902F96B910D465CB935CCAFA + +D731C9F30B40EC59AF12446C1800C80AC60F4D4CE68B8044B5725727B3089ABBC6E9631A4BA5F6 + +589891A2085C74E31A4A2C4F057380016F5083AFAB6D089E4EDA177045BFDF1682E848BEEF2D1A + +FD4F8F9DF6831FCA22CD7C4A351CFE770635DA22FD11B3326FF9AA79DE76EAFE99B699FF1C73C7 + +12EBFFC1D84B0142914E1DFE990605E73CEE7D0E88B0498604C17966FF23C922FE70C522036200 + +F5BEA081CDF8BCA8559CB22F108DB527AB6ABAE1B452967E50F712CCCBD11250C55825741F4767 + +043411EF4D02A1B26E633CBB09E0DC3E68FEA33A257C26BC022769F71F2667776A57887DDC05B0 + +69C1424F908D8AF85968055739D0E766DA997B2E5C53B9022CFF01B004EB0FDD59BD59A030E6C8 + +291EE9D771DABBD55EF78B6F2C46B77A7DAF429037B45535865C7F2147D604491D39647E4FCCA1 + +B5668B1006B0C8F6214D7E5EB5519BE843927C3BE4C3C236F102A1A1EE8B82E5DF34BC8FFDACDB + +79B2DB91A52FEE4892F7F2452B903DD6361ECBAB07138F356959B832819C88ABE9A6B999BADA2E + +1A3C32B04F731E75C727472E231B1BD79E040BDB72175327250905570FCD9D9D71D627D7914AD4 + +FA536AA6461D5F512E2E1EB7475AF6A83C10930568DF48BF2794490B1FD7269473E8E56DB81219 + +5127ED78E500ABCA9D2603EB463248B1B3F6EE7E0C870083849AC7D83B848E819175C4075BDF51 + +40901761E951EAD19DBE2AB491AD9EB5D124A20CBABBECF05FAC7AD608A1ACBCE7FD1C8848E614 + +FC989A31D0010EC3A11CD6797EEE941D0546E0A594AAD95738EA0BD0BD7F55CDC0BF8DA082C0E8 + +CEF349971D13CCE9246B74B6C552479B1E51C7B309AC025897E910B00746C1307BE2C531217E0E + +76CE8A47072D08CDA116B65E7568154BBD2D67F5723C187FD46E541977ABBA662BB08079D93BED + +78E924C2482B39861FBE1AD338DDF1364736B6030DB2FFF1E8965DD7631276D516A96DDFFC89DD + +2D3480422AFB31E9AB81EF1557AC5C723051096C41EA7D40BC7A1A2902E782DF8872DE2F27CC30 + +0C645D4EF886716F2999815C1AF6372C359BF84C209C42B939185C6CBE14510B9DC029970BFDAD + +BFC7E2F4FB0F5060D69CFB0FF71026949BCC15FC179A4DC9BCA64CC4407B694EDBC54720323E4A + +271AD388529B07CF23B21886DE7D4CE721BDD11C18C8CD3D1D5261954840E2DEF872F0C711CBAE + +5155957BD2E9C4F927B7E8FC19B04608FD411C1301F46092A62F3F0A525436D9918AD9C47A7671 + +F40AA31896C6DE827DC12FB7E7C7B5A9EAF931BEBF1A4AA4F28F9287C16AB78085A44C56338863 + +92A9360C188383E33FF598CBCE34703AA4DB85B61B4B79D5387D5576128B22947976617B66FA9E + +C3D80E8A0EFE2570FB460060BDFBFD81FFA8A8986F56D26652AB29AD6EB2A4881FC48B023122C9 + +22DAFA65337110C76490CE3F41BA4AA05F63C6FCB31AA5C399ED01FFF3948AB690BF01A3A1981C + +B120DD5BD1C45D2C57297689AEE480685BF23FEDBF665178A1BB54F9A5DA23F72314EC9FD0C697 + +7CC96078461E48625C87A29D0D144E27A1D4D76E18024D0F6E90DBCEC4A13B7DB75A8E95E715DF + +3D73007071FB30FEE9F552D968BEA9B8FB822CCD6DD3383CA9A1E6FE8088C0DCEA9A5D38C0418E + +8868115A2BFE6D055580AFEFDF70D512C8488C3C1389F26ADFC767330451F77D20627F9563E919 + +E5182ED2C8E07DA540EE2C6925D1E5C6AE5D10FAA84DFFE90AD8B882FDD431DDFE36B513614543 + +18FB47C39FACA4D661785920A8BBEBBD72DBBCAAC1B66C944AEDA018BFF8F15CD5917BE4A1C799 + +D7F96C69B5B79F11AA36ACFB9A39639D7506E18800A8612D1D2C918F3CD4B977C1FCF1771918CA + +7CE4E550A24DC0F9A45971B27AF2D68A8641A4A209B4FD72857710BE6066B5DAB23146AC868043 + +A04E8152C51CB0FF7DFE41576CFB42998E63F793A33F1B61280BB61597C0E3B176DED299919E72 + +F6F3FA4C138D20E40B91988EF9DFAF307064C9C307C9F4F2E9AA4D52154E7BDD6196987C6F6E88 + +0543802347427FAD9EAF1C879928A5404DF240E865383DC007581DC29B28FC18F1E6BA840CB19F + +E639C67070A110B07DB6519A5A0729A7DE82A3CDDB03765E1A7C817EC62225A7D2850101E07D22 + +9C7CBCE0B46A2B335CA90372DADCEE984BD75B0CEF13F1CF7237E15925C7B54B261236E2620874 + +ACEFB5978C00E066A03A57816A73D8F559FBE006A944E0F026D8CCF319866693B4A62FF4810A2F + +D29AC35F429BA0438A7472DA76510937F799B42D962F3F196E15B2335996A92304C4BDDF7127EA + +2F09FB7C779525029B0EC86F86C7E415B81D5042714FDFBD2457FDBD5AC6C1D4382D593586E2E2 + +AE9660529DD0FF72D2C77A9E4B76689F8EE5C9BA72D300271B8CB2BBB36F10F57309344C3114D2 + +31762FC68BAA5C482B338F847E4EF63F50A9A71BBDD8214C67A9FDCD1CDE72CF070376D80B0BFC + +BEFBA9C930942D35E84CA28EA2857ADBA216D89775E45FFB47AC29B41138CA03BD79122A78B991 + +431714404223B0D01EE8F13800C8346AFFFD8631D4CB1A6AF4653A68819FC2545591D8CBA85E3E + +620C816F89B8AA543923139859E0DCF0830C02BEA236E6AC40069CD4BCCED8885CDA68DBDB9071 + +CE61C61718FE318090B0C2D6CD1058CF9F9A06B81D114215F15D3411327BD48AA846F18E33D9AD + +1425CA8487AFB33BF900B4AB8D9DAE545A4EF203F4844F7001C04EB3E5BBF668827A2D12BE4209 + +31CDE4E81A3AE0501EE4E8E7DA116DB6441152FF89F045150D3EE7929D88E345102EA7F20E714A + +0405B415972B1650D5C9202066C813703D202469FD0ED3483875D2CD955E75A892991E446F1418 + +5558431A076FF440F40CB59D0A9EE40687AEE1CC7336B9D7B9ABF172E4DC863F1591D4D24290AA + +8580AF3A3ED5B7E79D8FF6DAB6811B1027FDA887469877304EF1801E8186AF988D0CB892EFF7F0 + +6A548FF6D5A5A382FFC1A338CFD62DEC1F389A01E26D0F0526AB2B15A7252F1EB03C188D0FE73B + +6F4524B4F437840704040AAEA38154526039EFDB651313EFEF1682FD844D6B8126844FD6A19587 + +A134552833F7AA7E3681EEFFC2589677A4363E8E95469F3C6656E77CF69572D3408E9B6D8436F3 + +CDB926A3A57EA54276050C4B3CD8964678667AC0785C9E900991117627D435FF038F799DE089E6 + +DF28E2A40980D7F7256FAA2928EBA12A8D6FDD80551B0CF3AA442D840A11C951B444E519C19F2F + +D0F1DE472FAC0E2EA0BA899A3E70313D28B48A6AC362F9C7EA5D5ACF5D04376DE6C88436B760FE + +8BF694ECDD6C366AC31D34469000FBF31BAE9C14FB2030F15A2965B917021780EC469F00B0828B + +E2FB98E545B2E430921B855036CCFEC6EC9B4FF0EBB69A91495383154AB84F331A3213BDD95158 + +20BEDEFF4975E076AA8BD9A4899B5BE7ADB271C17823B18488D7B387B1AFC7106C87D219DDF96A + +E866F1B06760765BB2AFDDD952FE0BCDBB6318345F8DAD1A782AA536F7148ADC2D3BF5EF6C6A62 + +9DAC5A49BF18F9F21E9AD7DEBD237C229286FE2370560139569338D455D8D3A913D329E8072E63 + +A07660176FBEFEB9D88FC1C2D9D76C51CD30781E4EE59F8BF4F436D9AA13A39CED387CB57324D7 + +26ABDAEB30DB1B1E14769F5F4DC72ADC8BD757906FC443BF6DFDDDF2CDA866402363DFD9BE8B88 + +A68DA3D0E0B3BAA404A97F551A0B6C90D349FB9F17DE955FF5FCF807C3889FE10DCA11AC73E855 + +B7D92A26E64BE1971AB93582F7F53F1C7B1FE401D7F0EB0EB121266CFF5E23B3332D8B4102A4CE + +F30634C7107FF9780A8BFEFEB13FE5EA78D8E5C9E2E88E22353D24FC45889CA12FFA14D370900F + +257B14E761D49C74FC19B97412120E4BE4EAD094398E92BF1DEF4D34E1DC258A85BC623547B871 + +04FBB02F402204024A66BF66EDA4DB5F667FDFD7C0CB6FFD799288DB110EA1FE7D7C3CF3A130B4 + +29D2450D87507E68C68F2F130A3414B4478AFB1ED6BD55AF66EC53E627B0F27649D5C5AA59A791 + +92DE139AAC89A378F0DA22A328BAED591D66035B958B33971B67D736B119732A5244562CE932AD + +36ED9C9BF9A0756DD63E909527114D58061879508B9C043A7018AC3F1BCFD070C7C6DB879CBC5F + +305BCB24C16F43D8E9B77B5D2A0D3737536E645049A64ED555C99909AF80F60B2F2307EC58EF91 + +479E1C447A57EFA5AD0652F78F952E6508A768A88F8DDEC8549865B9266B54D03AFB1929F71DD5 + +177D05DBDB4553A8C3EBA11F284D9F6C8A235372F75C9C06A1359733978AE5F9653F015741E648 + +26EB92F4AE59D11405A59954475D559ACB8D098CD4C026A95D678AFD85A9F2031F6D242A285486 + +1385CD2BED55B6E54261AD3A95C6AB4626FBC5D6C4F6A60992976D406FEECDB792211CA133C433 + +28F8D43FAFAB9A4489DD1E1E8884B4BA0B258660FB8B8BEA218DE0A7D9E5DCEAE8BA1FFA236268 + +7AE463303E16C6DBAD3E2FBDC0C904B83DBA9134B3C72EC1FCF6855C08E973E00BA8D37E864EF2 + +0B6748A6625C854116C3E32D5B24F584963D5B492F6666A284D16A2F3E32E5D7792DCC1E5605B4 + +CDBE4E0D62DFE84B351B24A509A5DC9D1C2132B81C682096DF4ED7CE6A3D6DC517C6FEE8103DA7 + +3B5D841D2B4BBAADCD7D1316EAC6809F76B99FE16EA92272782AE3930F1A0052078D98AA17367E + +7041C383C730EE085D6089164AADC4637D3CC6A61F292E581DB0D37B7D1214A8F12852FFB636D7 + +2F2FD9E6AB2AE1F967E2A750AC0AD364E64207669A2BAEBD191E494D1B087448F6DBD8B2293A27 + +C115E34DEEF3DF79AE1AB33201E0AD653ACA72CC06AD15575314DE4B76009F761B8A1C6788A672 + +2D20DE46026772117F42171B5D09E5414A54EA45D760DD3FD47FB5458A78E5FFC83B59AEE4F8C2 + +4106E0D76B719F7C1295DCBC71AD46DEF7E2472BE922047D8B633D386102BCBA4964A90A5247C0 + +D24CCA298D38A3C513D260EE4821B58391984253385BC61429658E328D86DC61B5FE047705C8DE + +C93170F92376BB4CE94B4C92B8CE638FEC140832DFD8583430EE39137342CA0F529737A8F9E184 + +264AE2A1E172377E931C6A8C0141D36F6446011A9715D4B6BBE1DDCA53E3AC72A71F60ED86EC6C + +FDA227E05534991E76E9AA48522EA4261F4A5670276C8048A4AB9500719D92F04080D318B156FF + +FC216BC1BE00C8E3160752BF5B029BAA85780C51C4CA162C7840E74507D433CC9D71C62B4CAE14 + +A3AB4ADB2729C7538B2ECBEC4E69A1F77903BBC68CFED0BE0DEE9C690E7CE74B5BB9C27A5F115D + +B17015C39A8E60435E00056879745A41552F95F7A540D535A02F29061AE5D30DDEB8D30D9FC2BE + +B04CD49DFD2363C4C7FE8384E90F98BA8C26381D9D3428029CBB9933AB471CEF18F3F8EE585309 + +29731EB100908BBC1F074F399AA39CCF5D12DA38CA38F464C958887C155A4A77A002F91090DDA2 + +00B815AD1E02C03F44844628BD703E2E0D6AB53C819373A94ADFFFA6579160E69AD0F1EC130930 + +22F0B4D2F710CFB0F734B01F625E407F9F7E0F143131C1713D770144664EA989BE0B9ECC3B9FB1 + +45C1043F02B481D8CABCF21DC134553FC4C1D4353E7180EA4CB1FCEABEF74D6FE5BBEAC7F30B08 + +1D88EB0A0626622A557DF6E860E54537A8FE0D2ED0B974B994406AE52D47E94FB8E29EF6B02DD9 + +4A37DC770DA855A59B74BAAE1685BA3EAE24FEF55B06A6036A3D4F5109F1ED4B59AA6218629C1F + +455145479611A2B9FA83A7AB1C8A80C5BAEDE37E7BE195C68E36FD18E20BEC787BB13B8E1C9806 + +747D85C64A42181637E86CA28FF135CED22E4D4535CDE74E2AD4CA93F9A30E7940F28DB59AC1A4 + +1F8CA12CB965E0BB5C45A5F1D0A5DBCDA210433733384A75CBA8EB93BCFF05AEE3444587FF31CF + +6495FF8CAB4CECA16FEB0C81EB48571D30040A90CC422043B8EA732A4DAFE4E552374153124B4E + +B3D35C56EE5B4A146111BBC6D9630DB2C9E04D26EBDADB46139C259319C7C9A750FF2945134676 + +87DE68BAB7BA6DECA22FCAF2E5F20867A9C17AB3E3DCAC03A8DB896D2C0243E95652529875518C + +CE050A49DE34F59F3A3422C3C6E4A57FB343A0458858C6B676F920857EABD9941924C5710C6768 + +C5A0081FB8F47E9BC9ECB701BF097F033C4AAC3E18B02EF9222867D25FDA8FD291F930D163F344 + +5EE38B44FADC0E830F93560E1BA52EB9CE9B375E9F0DFD60627BFC8368BC0B7C4C443D8D91907E + +9FDCD0666EE6A9D9642809314652EFD4E5769A164B50DFF8486F208903CE4F5176C86C3642DB60 + +AC3FA2DE9C104E36BB76D56DA593FB796036C17A04A65F2BE8BB9B37055DCD6F79E18AB00BDCBA + +AAF3FA95C49A84A69EF4C11D60658C35205D97D3AC3003B6592EE366A16AA0D1F9D32E9EEB5B88 + +08AFD6123CF756C524E15C7E5DD0FE7CFEA135BE1BE85201EFEDF61F046C652A48D435A2F6024E + +A310E4FD3CBEE0A9C6B1CD02B1F3A1C8C973C5F281C86194501BD03EB5C3E2A30C9EBB8E4EFB16 + +63EEDC0969C48C6724A5C126E05B9579C0310869DD1EC88A7BF8562EED99C57C115419E6599BA5 + +8323324867E2BD6E972632380D2D271E332C52E1A87BB45C4F66C9F83693E6A9A25BC0B1BB7570 + +18FEE261F8D4529D93F23289C0B75CFB0BB6A55545712C945707FBC29CBB70A4C9C3976C1DD0F6 + +171E579A75FBAB3821A2C5DE45D8C17EA16FA4BE1069D7549E57E5922BFA18286A1BAAD644161A + +02AB843CD5626028C3E6A52BD3CDC7599627A49AD4880EA5AB56936656A87BADB828C6C9200E28 + +270D8041269ED78A655718099F099E9F17FE27A71DF161D4F1606090F192E561ACA5F32B827854 + +2611632F21CCEB3225334427D9EAF9AD3D9696AB3B0596598D2DA1912EADD2A7D0859AB26D6CFA + +2276B79C826353CAA0EA34F690D6396768EFA8BD8A65CAB43232723324CD05FC517F317D8C5E0C + +809FFE78C393F7E8BD88141D1AFAE885E02BB0203C7D726310F6EDDDE8B38C1FFFF342D4E81EFC + +1CC68D072F68A0FAC14BF5A90EB7F07604479489CC57209796969D62C92134B59ADF264EB1B158 + +56AF2B32CC769ACA670351EAD8D3E59117E613A4FD5845C38AA0AD375196F2628920F299B94EC2 + +363847CA4707A9506C8DE4EA9B0C38DA88567FCED40BC94E7465C39D3F627EF70429548C38C2E1 + +F007005DFE7BAA7701B183A2CFDEB36CF84091242A3CDD8C5947513BCF7FAA462A92F1E84B3196 + +E3CFB019320485FED7DB231ACBC56C0EEFCF344525F0DE150AA8933A4D1AEFC4C2699C4B1E5FBC + +15AA3A894023FD3F0C75D797E710FC1B41C48BAC6F5AA0BB2CB178B705C103B68F7E8436C4DD02 + +F054C2B4B6C38736D99C5BD8C57AFAE676FC8B4F078DB83EE6FEA0C97BD434061BF572F6615B37 + +419EF5250E32C4F0F48EE779E500E7E3C4D2AFF699A4077473A29CE8C2A2FB92646107576F42E4 + +8DE1233ABA4720564DE68990425D6B4990FD198243277457A42693457CC7AAFB358184F6AAA4FA + +1FEBC93C5733812A1B308DA509F473760D1F2E846F8EB2D52FD55CB220F4C198204BD21EA2DF0B + +31434616F86D529DE5CBCAC53FDB7EEA6972691E9B8981521087C25F1574576BF799569E3699EB + +74618DDFCD5F01E6BAB0FF513EC7E2B3003006D96E4095EF5009044A5F1C3B006AEB4D15ECDE5D + +53C1C76D35D87AF201BB47C94DAB1BCC182C4F48747AA7E1ED991C4B62D9F9D08D4283EED5D288 + +7EE21B7DE249F731509FB6B9089543F4791C41F3BC0EEFA197923DA86308DEC8D632BE0221294C + +A4AED2F61C297D167045E5E5A3012E223D6C348899712C550638351F12FEB3D67368959EAA8B00 + +90996E39EDDC5B3B1684E2DF4DFCDBC89A6A6F9B0AFCCB2115217316A48812C168B243734B57B9 + +CBD7F05A1CCE9E325F0FBDA791EAE7E666D1FD7F2D5F085165D2BB10387513ACF9A900F84934CE + +93A66CD1BED3F990714AD938BA8572A71E5B2557C294C1D1A20F27E51B355FB37112345DC33707 + +73FE750D5C2330781E0A05636DF0F283046B973D1B124D92A21A3E0ACEA879849700D5901093F2 + +7B3F90460D82194CDB01A2CF38FAEF964374EB11D0E150A2297D8CA4A5A5C55BEA93B00ECC919E + +7246C289404CAD3466EF6BF2810CF1EF740D285D3302B5B3363A607491871FCD181E8CED5C0C30 + +19FA33F165CD9630D130917C2A246F2D5003657DBB2FA8A7E3FA840482CF21E574AB74B9EB5027 + +387DA40FB3EBBA1894297CD356E20ACF7D956A3E142248A5899FE940A25BD5C812C0E8DC923EFE + +27E49644938E3BD99A086AD697F0AC758390B364B52C049BB1B32376F3AEFC15CB4DB333C148BE + +9CA5C18DB38B9EB1F39F07C3C2EAE2AFB0238F687583ED7FE04F55632541AC572E0BB7C7659AA3 + +999D8CA12D6267FDB0F1CD720C174CC28EE37C78CD803B876B8168205F36687C12C0A2D35D1DE4 + +B86F4E865A741E82EEA9C8E4383AEC599D1DB85C6BF3883C3218BBC0AB643CD51B8D51A34492F0 + +CB4C1BA4781929C2784C11F84DE699B0C84C35A504C35E672E941F1D6BA54960F6C519F11028DD + +CF0E0991E18A77F772C43CE95BDEDDA9C8D85633EA60A7358E0645D4B64F751B11AE8AE27ECB17 + +CB385DE259BA1FD78EA8A55DBFECC2670DA3C0140479B61ACD99A59ADC50849C6AA787C7A9B975 + +D84E2A30529AB8FAE0995DD66BBB5C6053E3B96C567156A4696B1736C2F6E1834B8B8EE42CDB90 + +315692D6BE299D714C6E43CE13DE4282B261C5188ED6C6D875B8D308D844152BEB15A3B15A8B6A + +924DCF7285FB858973671B972AEEE6774A57526F21FC7EED805693A007B2B43694D5D30C9DA604 + +B3FA6278114DD98744698D885FF714743BBE7F81F2FBABE454BFFD74CB601AE106AAE61E099486 + +1754E4CF312A1DDC7BD0F85D854D15FDBBF296317ABB0D0B2824CECE362E2137A2F5792279EF05 + +D0FA6B7DDD4FEF69FFF97AD07FA95F3CB393C4B0DB2311596AB63974B6B761CC98407731AFF2DE + +1A522753315EDC07F72CC73BF7B55D769E024A09710F141A21BF94E9B71C8812CDD8C7F7C3AC60 + +618ECCE4AC81F7D86B75E126736A904256F5558ECE41A471E8F77B5FBD1FE2FF4CF0FE56861223 + +24C1D13CAF1576306ADCAC1927686139882609FCE3367171FBD0F017DCEDFC909B4039643C3FAE + +F5946EA31312460BAA458F5AC3A3E57E5247AA390ECA4F29EA32324F06AA3C376CB5C680DD16F3 + +8434566DC54E7D4C6D6390124BB69EF6D9AB265D1ED2C68335870B09DF57C137E603A0F8D26E77 + +A4B18B7E7225B0A92AF92C4F22D43AE053EECAEB3F8981A8ED13D504E6467D266BF7244C0A1A30 + +A59700C1EB9E18131263AF51A9460C1B753316A1BC587FAFE3B5A7EC6E86626D5FBE6BA3113FAD + +E67631B83301424CA27AFC6164414F8262E3FE28270F8ADA96AF0232FFAFE64D37F510741EAB4C + +116E09780A2C64AB82C655B1EA221EEF257C667938E34A4F956B7DD951D10D2344D228DF2B59CB + +E9AB72822ACE270789F972426D56A03686EADE28431C07B3BD73F6BE22FDF7688E3B77128CF74F + +DE98734C3390EDB78740F24452ABC545AD08057CEF1323338C0CF3F0210A9D50CF7D4591D22DC4 + +76E429B462B76E965583146684B0E2A8C6D40AC7F42D595478C94C01F9AFC8A1ADBE2D4B13E02D + +D52A19886A3978CCF3C9C9E391FD66039C5622839CC60120408839E5558136C57E4BEA2761F38A + +6D00F4951267377F369B7782C92D7BF00C6F812962F86BBDAA43DA7DF4680EE852F4EF9D82BB34 + +5BC1F8F76A9B7C09820108BFE054C80AB56B88B438489D0CC0972081255C9EFACDAA08BC81E0B7 + +E04C201A1212D597628BB82894EA711D739161E513994A67C0C63597117736CF1A9048D244E09D + +4804C10483D047433F0A69259DCF999558AFFB6739D372221E490EA8B106D0AFC78EAD9BD50E52 + +FCDACA4C0F3ED13650B73EC4F8D0C6C4B0BE299B4AB253DD4ABCD28A96F762CE45787FEFA89D7D + +F5675D0DE092FA7097198538F031A75BFA2E91A64D1206AB59C5FDBC24C80FA54CD168E19541EF + +79736FC6D00896D75C64E79D93C6658A002A91B5BAC71583518C604973652220CF1CB626DAD853 + +8C16645C699F5785A8626BF1A62FEAB57CB263881B102891B5D886B09F678AE801CBFFACA29067 + +C1126BB0136ACDDE81D07F2F9199FE439D3553A8152E9E2C31EBA2E0754BBBA72DCF525A85B08F + +FC52CAB7135E2A3C849DFBCA86FA0C2217B9CFF755542FB4C145A561696D3561B5C53F570F617F + +60CBC31A1EE0F570099C4FC2C4703E1B2AE86C72A3EF8A138EE9CCAC2814533DA20E4AB5D170D9 + +BB2A2A4FE1C14A95E18DBF3EFB0400A835EC1F50004CBDA8FFE73347027B9151C0E00111C3DB3B + +15447D000CB0E6FD0FE985AD70AE5243EC8DCCE1E5E70018087A36A725DE1A6B6EA02A9CC323CA + +943BCFC546B5FF43D3EC315817DD6593B6AC7C52035E06629509EBE7CF9B5F9B24E291C06952C8 + +CC8AF9A5FEBDF8D16B22D7BB518E1191A1E0DBA68066F1CE159C5E7609EC3AC7F4A052EBE5E027 + +07124CDF8418DB9C026563402764B44B0E8AF31F2BD60DA60E42C0B329EE32C0344D409E155FD9 + +3A6F2995F965DF6855222AB0996B185DEC4790642BA10D3B97B1028D9AE6943B7DE5F2C7A9E15A + +D670FD350CB7A63316DF50950773AFBBF7F7BFC8BC910EF3A955708830C13C931E85CF7D165DAB + +7A927810963307FCC2254AC2CC9CE5B83293AFDFB9A5DD00800AC68B431C08B2E92BB2BFB6FF55 + +6D70512CA099BF840CEE70CF163131BAFDC2D36F9089E090DC660A94F170C0ED6F5BB6EE2AD769 + +BE951B40DC1E46180B2E557289C9F13CBD9D331F208462A20C269629AF7E181B9776335CD34A9E + +AB4B1D8196899BBBE946FD56C8180C42C178536E72A131A4D087ACD38B9662CF3E0BC2C04E9384 + +8263F8D64EDC6B3C511C30EF4A782DA27E530F96AA0E1CA4D28EA1062FF4643065DDF958DD9124 + +BD975D27D6BC79EA3A1963B9930B5DC0297AB9E3F02745BCFEBF83BB9DAB46E2D3423DEFBF0527 + +7013D6FCD08EAA5407CCEE0F91B8D6B4DC89E3A467759B81C81379952E3621D57E86B79605EC10 + +59A9D46BB301EBBECCCB615DF91D7A0A92B17EC4C8716C4F1E67DE7D069F7CA1E4566F6D9DB96A + +E3BAABFCB6E2DF6005182B7BBBA7F96F99315CA76E12497BB76B2C94B85543F7F1819D3F53F2CD + +B6DABCC5C8E7B80995DCD3D04A5F47EF30D725EB6158A7A32EC17D4970A1159455B23075774DBA + +95CF0DF8F15FCB4AADE80C8D0C92762597461A7B04384AC2556486B3A521B44718911083B06224 + +3BD1D54A4C8CAB43D207FA4661AAC7CF4A0A421C01111A02AEAA3A98EAF39B15298EB75E16C3F6 + +7BE08948F016C922EF7489B3369817780C7FBA1712B8F1260EFE02F0A7F112DD0E85C62026CF63 + +C30633F1C55843AB7EBCC38F38E2517E35D257D7220BFF5BE2C6CCE34BB73EC225CAD182E702B3 + +C03740D558DFCBC5FCED3DB10AEC7AF1E6AE84B54D5D4CA79F56DD690DAFC5AE7F9383EC2232D3 + +4BBD2B125CB78E2B2012712B3C51849867665C98CA25F3E6B9E02EC89B5B376D7905F7302CD6E2 + +8C33470C0B343160BF0F1B3A9CA0A47B6065B6537AFEBC1CBCEF795083CBC98CEAF9A60D9CEF8E + +E6F487CECD88484BB4F149807CC4B896F511C2C530EF292AA50A9D5E55C935209300AE63A15A7D + +7FDD1179B2F57525B70F6EF40036BD66B6C26A998077D5BB50BBC122B806D45AC248B52CAA6E4F + +B9E039E30BEB78CDADDE810534751F7A32356A51065CDE5424750CEA579D034A6C6CBCBA2B2638 + +89B767879DAAA9923F0FA769ADB474373CF8EAEE7CB465F859DFE1E70085F5FC946C31354F1E24 + +4F31C7E9B5F7903D92D73886ACAE7666F2CDD1CE3AAF67079DC4E919119230DA6B369AADDF240C + +E90DBCD8AB3972CE09E5710B95963C6A62EE56E09164EFA77ACA7E0EC5FCEF4D37A2DBC54A9783 + +DB9E21045860D59321743522C7BDD14F073DD55B613F7F15065EF97456D1C930E6B8FB5D9EC44B + +1110AC075443459EF10C48EF8E4FAC4493BE949B75ED0EBBCCB03E091144C18F1EA0239F90FD71 + +E24B2C06AF13BBDDCD58CEE4C5A2926C873099D187219D067FE727B61C1859716C3DF07CF14CE5 + +7D6A7925E329840D68F0AD61DB3FEF91B20DA41EB6F28352A9C49F7A141C6F43056A6CFC254E4A + +47A3F967AF9714F52459C5039CE105795612155576BE080701A77F0026FDDB2DA5B7F82D1CAC32 + +C4EF60268870566A6C3CCB2FCCF0E11AB60FD644DACA696895FFA2CF72270C190F482EAE5753B5 + +BFCD1AD6E2E8B10535DA012954D085C9A14DE998985E08F17446D8159DF61E0CDA6435147D4B6D + +8A2D2B115F49D2E10ADDD4EB66CA42161A5E9005A736D954244AB3D6520741CF1E3AC63930F40B + +3048F7801E18AFE557DFBF50C6E2C10D4F285F05B2C2C574D327C43A91501E6ACA45048C0DBCCE + +E966C28ADE74E461BFF1CF584F406E32BA473E0742B4329A76663D92B680E80A4BAECACCA837A1 + +8C98D88F12039D80E6A8B7B0B206BFF62B073AB5961BEE45DAADC5493193780DA81792BF4E76B0 + +A5542E5C973919D0EE1DA1DE5A5FA269862BB0D4694652849B612681CDCC7505CAC95B8FD72E26 + +51B7E4C955608060FD1B5E4F8AB8ABCA6809FFE151203A5CA905849F629BDDD14899A9BBE3B175 + +8AFDBFBD82ECA5B35F2C2B35D5C267E82E009CDDC6BE35E99E7918A69F28D1B7738B93916FB7BE + +CACB82727E263453F41D1CAE5F38B6C3709F00DE49573135553DEF7699FA6F96416AD567D971B3 + +1893714A09B5B356D44783393FA1DF7EC6FC33FE5018454EBBD5B2ACF6AA6080565FCE674F3DA1 + +DBD77DABF0DC6B34E1949BA2C010C5481009DA4337F7383D269DED79711A08E787228E09F0C3DE + +98C0EF82715C4FABFBC760775BFD1CEC7CCC8163331341A7D08209D3EDE45D78AB2A05D5726E2B + +D669043E02AF274385E1613F6A42E7E9B94B7662A5904C2669C827272ABC96ABE376DF7094ED2C + +21EC501CC30E631B2CD3B0F4BAB8C3CF2025130A99B93C704DF2F015A46874B5BCC8E65619FA50 + +0D1AE2BCBD4C27F92447CD9E423EC5B67E35DF04CE30ACD6628A13FA20C14B518DD0301D3BEADA + +0A9C14B8DCB278170C97E107B4BADBA1B25B17F268F8B52B89575627478E28EF59F2D856C8CAA6 + +0376C53E95BA854FC059EA938575276CE4716B7A19CD980998AAA79EC8ED57D56EE2EA80D2AB7C + +9B18100DA2A7EFA70ED40A32AB292129D897ADCD1CEBF6B30BB768ACABACC480AD6BF1E701E332 + +B1A9746CEDDD127441C695C3A424A6DD84BF684A90B027B68EFBDEC98AA5B9CD97FAFAAAFC195D + +DC5468876B28F56E2F3AAB74D97366441B28CBAC0D328EB8FD98DF06E9980E21CA7F62345F00D3 + +8CA82A1CBFE954CF8C5C77017A5E5CB6ECED90222B5B15D5D7310B3E24A98A64644EEAE0B0CB22 + +BDC7FCC983CA94104C3AFAE71A75A3510CED1C210379E289C721BD4EFF82673565275826A41EA5 + +3008BD6C1882E9C82346DA91E8DDBF092E78BFC009A0BCB0097E977881BF3C81BB6DE2784AFEF9 + +BB0FE52CA91CB1EBBF01024B1EF941144229B0127599284FBF6EA7809BF36FABACFABE3FBA41A6 + +CCDEEA1FF6656805CD945439E36F771DBF56F85AC6C9759FD7741FCA38CC362811962882428A9A + +29F9E788312B6751E4CC6AF15CB517E8F17A320BA4335D4C869C76FCAE7BDE59334C72B578B055 + +AF5850D19199F26388B46D9E9F2940DAC3D9A43F45C5F7643CBA2D391672509102A883AADB998D + +1CBCB888D5BB71D740582F7B2BE1EDE7D6EF4A914DDF5368D547DADA2BE55971619AFE8D3A6728 + +8C8F0A7FE9EC44E4E016091F7B14F79E81A4CD8C2599F6AE776136D38222AF1F61E18BD8BD6D6D + +23191E2D3AA63217C913C8D62A0940516E70996A30473621B8A257465D1E6B2966BAD8B447FA8D + +8E2EC2BE15CFAC9637A5BE198D2EFE6D8C204CDDF85399B98CA6911C9C8ED5F248F06CC8E9C27B + +6EBCCC8B2E54C4D15CE46A6BF3812CBDD67FFE2C83370EE792FB17C63C4222FB5EA5C363C296C4 + +F9D174E62A3E8B6B7FE35BF4663E3D83D921486909441F1FDC95990C9189837094455BFAD987D9 + +220E44CBFF2E4968E3D7D1D77AFCE67966B8E9FD11E13A66DE61C5F23DD00C6C48AE0AD7DE4DEA + +0BBB2C604E443FB88448FB6FC61D8AEEBD52C4937F5D28F611A758C111D1D57CBC262DBD0BC8DF + +A11E299C28240EDA643CC06A101FC0E45A3518E34F8BEBC4964DD5A84679F1E4C0A29284FD2C9A + +87E7DC0D1F3DBF68EB177C9C1CD6781A23372D3FBE655CC4DFEAC5134DEEDCC6F330176765D791 + +D495ACEE8CB6FC15ED913A28706B538D9F97E986BC628DEEB1EFC820936E431BD5D0914C1E08AF + +D179571600350488E4342F7277F789A7BDB974A3D06DD9ACF9BC645FD11C253A92773F95CDF4AF + +911A7DD810A717617CEF422F7E2079CA35D7996D5D52A50F220E9B26A65A0A17B7DA4A864FCC2C + +DDF5CC26FE1E551A202F625941BAA8093A40E42FEFFB17D0262277AB9A9E41723ABC73817FAB73 + +A7B59E306C148E2E9865DCA0DE0A03E46EA6938B53E030694F02F1CE0F8AFF7A89FAE33C8C7EA4 + +72AC3BA8680AC06E61C60026F1C589E8381B3A54A86155156D20332FF2E5573755F0B980967BB6 + +BE86A858B6EC486862BA702AD117185081B22A0359C811CEFCE9718AC2C3512A65AC63281BC018 + +88849D996D8E1AA12002732CDEF0B8CF3911F71D905D52D9BEECECFA4A2DF8290C8A47021A6FA1 + +146FF38E6424E588B4B4E10031F60C512DF082F09B539C18D08F18A4239FA9B64848CE318B0F9C + +B9F6A28D6BF1E788C16D6A7FB9201642206044F470D2AEC35DE8562C17DD7F522AB733E796B870 + +4E05485F865355E55EEECF60E4A2B4E4CFA8E9822685C87A60562AC1459E246C7DA17F174E9E07 + +2101975144EE4F24CDE6ED9254FB8ADEB415F895D3A71C68972628B39A058803DB85F07BC492A4 + +72283DD3D27DB2359F881E1038324B38FF7C4EEF91EF1A00B741B51158199736473984D2080099 + +CE737B03325F39D77EE2D5E7BBF1301207FEB963EDD88B52EAE4920A0CB758FCDCAD0411200A46 + +48E657C26A41E7577D7E876A6A9DE16B2879A6CC6DBF8940BA4CF861579586F7AB2381F1D24404 + +90BFD3FF6747FA93F3DED4671AECDF1C40344E75BC741CA78A2079114C7A94ADC560264E79464A + +2DDBA4D4E7848A2553FDE1CB51F51F9E6F10AB1AC4AC4D2FDF5D492AB9B8B71C6834F0DC3B239B + +E38621785C63DF6038B74D7D537BCB41147EA857BBDBBA40EA5550EA85935456D4BC945C7F56EE + +D375E22086CACA75B3E199125114EE9FA656FF5E9029566A72E9BA4C2DB5B83A5CA6CF2E1368B9 + +B8B2D0B1E2ED6EE8B6EC56E3518019D92B6C062A92F77C09CA192E1E527626EEC78E553876EFAA + +0CDF14EAF92512C71FF6F00BBC63D8BC5093C0C343B927A4F233C0A1ED7961426D7B0296698F72 + +51C051E3F28231FD3021485E3D8228C86299064AB9DAD2E63E59B995A4C6FA0F453114E83232F5 + +982866D16EA1F35437C64807F8A72FA8DCDA4DC33B31840EDE22CC80F9C32F08F11683EE696204 + +457280B39A2891ACE3433CCEA80465F0C07BE27115473FBB411CCEB8E3E532E8125AEA0026CE4D + +9F5054D296974F2D0A93D2E6526E88C266A54E937097572F03B66DD7F1939A82A8F4775EAB1CB2 + +47E9DFEAE00C8A859F39103B149CA33BC6F932103736E727420201F3D38959ABAED09D9D0BA171 + +F16344A49320062D4B0C30B82434A6482E23B0455E822358C76941E2EC6A8F574755551A771786 + +07011FA2F4D0FFA7ABCA64205B4301CC8C47B1CD035947BAC00C26C1255EC01A6D90C58F760EBE + +7D7B40DB25E978CD72CDB8CCD13255D5DEB867043AC221CD32D78F60F8D9ACFC95340546DD7B7E + +A6CCFA481052C58BB41B35DD03B8D1ACC9BD8BC0A8C80CA72D9617AA6A151715263574F9665D62 + +998818D755CD50A2D92DF966C05D28EA03FB5AE5709B93498EF66EA2D96681003E9F3316200A12 + +DA96964D6B0BB42077A5306B713C46349C18EE4228EC1A9C29C10BA58218DF587BD534F08C044D + +6F09A5F103648BEF06337D3834709A69818F3D6234ACCB4A068F96048819D1D7A023A56903F894 + +D378281BFA2339FE1A7483B72BCA52F6305A74A1421162BBA1253634EB7450149DF2FE3E10C6FA + +1235C24F82DACBDAF11986D3657067ACE1A8E2DE104EB4E101B6491FBD67EC70551DA5694BD122 + +E35443DF164D0BAC413DD3DC1787AB92FDEBF0806942163B26EB3D142B03EEF3581CD3C32E53C3 + +57205AA5214D723E4CE6939A9A093329C535621AD0E903411F755E71536C7E37A63B9952A9ABE9 + +E892ACDC24716EC93661BB9F5A327AD098464D92A180475EAE5F209F0EBDFD799F7E9827F657F4 + +8D39787ABD496491C8893E1C0633E5AC2E4F75A5A960CD535F0FC96E8F4FE555795C96055E05F7 + +A05E82F5376513452591618FBB94860D90C701BC8525AF9C1967D97B853BA4ED48D095E995F77B + +140C4E1569AE44DD12AABC68801C014987F88DCF2B0191AEABCED90CAC275BEA617387D0F7A1AE + +58FCDBAB5D752D318EA1482BF580F7EAFD882B6864BF03CB2E4D59C179A0146C1BBC701F78B715 + +5F3222AD0C1E76868106DCCA0D5DB602D83CD2DC870EE6E41F5610835B8F2FE2EC730EF9DE0BBB + +FEF4308A9AA0392BF0DF1C92CDE4F4ADE95DA0D13951476559CD3B4B7DEA14DF44597A9969BEB5 + +33D87C8C19518219C64767DDFA5FACF173D64CCF96A36F962D53EE1580B823AFCF9E6E290454FD + +1C6C31C45DDE4220F04F3D85343A2B34EFEA529364D6CFDE58A5F225F7EF5076EDC22350F86176 + +60DC8F9D72E7EB826A5E83CD1B2F0DACDF0195C67D4EE726870111F1A8766D73FFC89440046421 + +958479D56FD0C78CA5EA7801EB645E593229031821AAC4664B5C814A88F58DCBD1CD44F83364C2 + +2FB9EBEEDA09F97539843F54DB7FFD4AB3216DF6AC305F5D80EC63250C33E403385AE009B5AF1F + +5D831549B2ADD5ED946A694091D140F2C024FEA22BEA365E7EF7FF6F60E5F3B3769B667D2EE5A3 + +358DD5602BCE6196CF32EB0270990FA05D9523712ABC8D8D24B5DBC77F05F5AF74C174D375061E + +A5F97DA12FD34223D84D14B547EB49B40CACE1755A4B09AAAE1AC31C5F62B57911DA81BD2C3C47 + +FADCD221D9D04C2B4947E665A2B3D2A207DCB35213374C103A910DF8505ACECB1CD8349CF17ACB + +5EA463F040ED7649C718CEC21C6C82BCA30EE6CEB79C0A6F1FDBE16BA09CFAC34F7333ED1D189C + +1C0D872FD3182F329AAE3DF72BA0A0CDBE264DAB1AA8199CF5BC15678DB215657925C69DE05327 + +102970108B4A5C67C280FD6C50F731E89672BBA79AEEDD3E623745E576452EB6C15733EC62B3C8 + +D3D56D6FA18B50A21F6F318C2C36B5178E2D7E438D6590DA1C8FCBFDE177AD48E6673E1DAD7B60 + +F4438F1AB360F2D40F1A30A0F87D7BAF53E6EE78BBF5B5A9565CABAD7E825D03847430C6422E39 + +9F0858019AEB3056F2294EE96E4E9F182EC45FFC4EA98E0D499987FF218DC95D051EB30D65B088 + +9CACA6EC7CD83118AF21E4D77E2A25B21F721105960025213131BB9E0BCEFD8DD79ED1BC39B0B9 + +07A4ED456A9C51DDE3430010EC11D39A5317451B3777CC60CA9E02A50D3F66054DD668D016CD47 + +C80EDEFD4A2ABE850D4322243FAE5B169CDD09BD253F3F24AB0B69B2DBE9A79E76CD393B71B942 + +67883E9306E4AC25FC7C9BF66DC685B51348B0382F971242A764758437675D706FDFD6C14C0F0D + +DED0A5AACC1A23CF11ACD2F3B3098B3D2B4F0D34B045D78F98874EB2CCB25115CC47672C970844 + +24C65A68AFDA977DBA9E519F280C3245AF8E89D0A3AEF334480056A1F203E1BFA0208BABD9BBF5 + +0423E569F49BF4AAB4425E9D7C3C1FF9DCF6E32E53F881F2F880E1C0336D953A0D068B7DA33E16 + +3E35DA07B9B5A3B5B9CD266B61E1E4423311A03709840309FFDDDFF0D0035E2D4F5793E6E916F3 + +DBBDEA8E86C8C7381C16CC6901BA6C0D06DD0FF643AE6B59CA5506793D2B012A19CDE7A0D8B81C + +2FACEAC32BB2380C115F9A50FEF2E60AF7590E42138599F6E7637902B10571C4159EEA7B058E4D + +7392531DD1B2A3B1A5BB178454CF365AEE4997DE8267DAB239A8DDF7AB69F92CE805B56C336860 + +C26529AC6FB987488B844957870B40E2A8B3B29FC3FCAEF0B3A6C02570F8661F4E4E455AFA1AE2 + +52316BECB2C88FD34CCD6F6EEC6B703FBFFF5BDC8BAF056E5590F16BF93564722741FFF344CC8C + +86A1DE8AFAA4E2F58B5FD916D163D287327553EC1012183C46DCD9200011053ED4DDF774036C1C + +5DCF958B8E09B86CAE24E44B4ABCCB05DCACA0CF4B81998FB73E4E43582D2F204CA8D97882DFCE + +EEEF643AA39B5D4C9EB3EC3886A9D54E6ADCC2549E53AEBA70CA4CFAB465EC0D336D15870A2738 + +72810C24C079AAB893AC53C3A2B42F39A4935E10F1B3F299E9BB3486D00ED66A18F03BA2DCBB04 + +30DEC8D40D0077686CCBE52FC550EA96DA10223D1F1F098449643364615AE98BC26DDAF2D02508 + +F66AC81C781625A272BC836106422FBC3DA4AC1CBD775E4AC13382DC49FA54445D82E6A16BAF81 + +4035BD2B0C9F7E5FCDD50E3B8BE0ECEE39C5B983DFE84645392C40EAFCAAE07C10E209FD228380 + +5CAD7C989BDEE2B3287DB6D725838513F3F95E50D5A09FC34C62285C1AD743F0C9AD485861740F + +462AD426D6CC9741CD14D97DF79533032217E213C572AD9D6D2E179FB877FC5CCEE2D16DC40195 + +E3C8779A89B3164BBEC207F44FF66518E48CF96BCCFAF7A18F5F7E0FBB94E8D4F5F5A74E95F299 + +101632B5A24EE041175A0725D30CB9D6D5C57CF41465BD63ECB8A65C400445B095D14A1DF726E9 + +E1FE72F5EB25F426132783984FBA2AAE965106728C99F6B1F7D7BAFCABE55F09C476DA10D2948E + +4CF07E65D4B78DA6F9E9BBB5921BD2E753B8B692C315FEB2A10CA117584A65B6162360CFDDCEF9 + +17EBC862229E2EAA9097AECE9A591E9BADF8C69BC5EC02674D2B58B7BC7F5CFDFDCC7A337BE52F + +6CEFAAFDE5D1394A39B1C188F91ADE1ED940F539D5310EBB5F7E1B11E8F2B0522FC676AE772D90 + +F55C3DB9589466717F3BB1AE6163CCDF77BC0FD61F8BECE7491C13FA6ED8FAB9E02E39E4B4CBB6 + +3B15E5CCD4381B15899F601210A376C6246484B046B6EE619B43853D7AD133E4252662C6190E20 + +76AD846146A03CACA144C018C937FDBACDCC6809952FFD94A6F8E0C8042EF060F4182FE779DB01 + +CF8B80F3545122FF6DB429E6EAAD3BA9A9267A6227D337D60274AB361C082A551B0B7A32EA7C3A + +6E371EA6EA9479B4911D5841432E2F75BFF1099272955D7864DDBF4C88C29E33DBA0A90BFE33F4 + +4EC5C60A07514E78F9A72F8127A3A9EC2B575BCDB2302B9AD6549862C2A1F4FA9925B484D2B1D1 + +1D5E4600D97A1C64251D00F4DEB37BB96718226A9EFD6E6B07E5808E35E1D10065C6AF64BFDCA5 + +D413AE31FD92905EF6A15753902837120A1F978EE341910665A15F4DBBD7C06888A11A0C640661 + +0ACA8E025D381A8FE29323DA62A6D70E8ED434A48FFBDC96CC763664147C3DEEC58440854ADD44 + +8C4F25033AAC3401589980C968B2AE1896B4C495EF798CB46403F21E1918F2D251666D43D09C9C + +3F1A65D08BC55771EB3E6E4082B7F9B42440794240B24AEC9F4B9ECA0D79219C53405917D48123 + +69588C23133C985984EC4EA17BB0B85EEA7F629BC9E2E10A5E829E770B8810776779A33A833A4D + +DD24DE64AB6CD5A089A82E7F293A24874C8C4125CE45E86CE263ACBB108DEF685139208A592A27 + +774F3D7B92250FEB4A22883CC403C4D97DBA67ED0CEFB246809BAAEF201A54F921D34D222C5685 + +709ADBFC96A7774037AB2F2995B7C93D2308631281DEFDF6A657BAB09E193D0C9F759B03F3F50B + +4A5F4BF39F4118342F5186C4E9DE29DFFCB7A6D63E0C306777BB9243648A1BE25660F9184DF9DD + +32D1FBF11D09D09E71899538291790F889E5C7EA2328E5FFD88134D33719BFE0048B80E85C08A0 + +BF0C513D3FF7B870A67E6D22A06C7BF15F832F01FD8A435074AAA1A3B40B4C4BD374C8F566CC5A + +6527A447B0B225C216FD16F4F7402140D09DA108C0FF3DA5B26012B83F1D7083FE273444DE9639 + +089695BE2017631819961A63563DE94EAAA502461C10766A7CA9474A41E9297AF9C880DCA16E00 + +1A98170D8D608B6325FE42699CCBFD934B87D2315047964FBF11FAD2FD8A289C11606C25E99022 + +707C03B0945C407677A712635C3B50D7FFDD7A52DC849AC925D7A9DD636AEA9749678D6AB2274B + +6176548E3E7C34BB6CF289849EB77F7E1976291375F04B3FF3AA011F9A0B0A0EC8183A82581BDF + +BEA1BE4D6AC556AE8281216EA0A9CDE765E680BB4FCFC077194CEBFB76F60FC4DC37B77FAD7C46 + +4741E63E673157435FB5DABD170198280A17F4864D92EB0412174427EB7B9CAEFFD7DAF34D2D75 + +548D35E5783E5560DBBF5DBF736E1C10F24BE83F60A47615C4245A78395E0A83ED0A777DFEDD17 + +25FF5734167784A1743238FBA588FF933E4ABE573BF17EBAC0132309E4587D242BAE716E093866 + +5407784400508A0556CE0E23347CEA2BB550039E65E433F5E569D1BFEB47CD0068293924959911 + +B00641A69EE50D6BACAB05452C6A193C02CC9B36B7FA312AB51794A639DD781F1C8B9E1C0AA995 + +339C495588D88153661120A9ED50012A656ED0C9FF481639A51EA0A010B1561F92CAE1540C38FF + +DB9373A5C83643A135B6571D51287A31616F6AF105BD17C9B64B6A325C88F30E144DCB9D160F1C + +26E3DD65A6C3DC155052EBFF51B51381D022AB1DF1C2F34DCADC6561A251BACA0BA18C3B320FAC + +5275C70D1B5E13D5719A7BD7D1EAB3ED382EDC5CF062A063ADAEDDD15386BAFEDF60B935F948DE + +75064E94322F056395E95FB70980EF8C9ECD27B222A4990859A2B8FAC51F3DE1AC4BF7677CEE26 + +03269DB448319257794B9AD5E708505D0DA7287D530DDA959E08CD84FB971B99B8D1968806E7B8 + +B01F228A4E9A8934E661F403B63164A84713B901268C31A8062C005B00E63981E953FA3E6FA0F4 + +78E9D0B3DDCAEBB0AA0FAE657BE30AEAC18BCE7C83C2C68B0E32CBB159CA25B799304773BF8940 + +05FB893C1D6298A911B2DF1717A1B92CB7A2ED777070B8E293EEF4C7000E9E496A707000BA1A24 + +BE0F784FA98BA543585845B09D855C3AEA622714083F0B1F0501AE74A849345CEE19E2B7CD6D07 + +EA3681F07774F0F8442E7E38040E6E211D693944A30E27D6242181C2626AAA4A8F541215DB185D + +56384EB94AB0D4EDB49655D55DAB89F52663088884D24947CDCC0FD81A09AF0450C60FC665C736 + +49DEE4922E00C3EE943A01FB05F2983367E6BFC4BC418D7A51E14527BD0F5A0A955C9426F0FD56 + +08C00A464D1AB4B46969558626AF6ACE2D99EBED930628720BDAFDB59E8943B7C9598FF9478269 + +49D586AAF14F169DFE8EC9DA41582FF4832FF01642BED1EF244D46C308D4687822ACBC3DEB2E11 + +347473A74CFF5B58BA27D3D3D36AA3543F2DCA041D42B60D8C9D7483F13983B2E372078EBDADBA + +265C67A12243E49C35096198B50D1C5D45AAEEA72E4BC6EC92338E01CEB8491B4B72682C35AAFF + +935F8EA76C942EE4BBB31C8E45B17B829686C23D68F64442FA935DED175687B5C042857EA07651 + +324871B7E8EDC589805DF972FBCF79E92AD1CAA1AC6335D91F0119CAB046620A802475FDC75E50 + +1F2E6B77954BE3EA96F11E17565734A0EA702A4E8189D95795015F8B0F7E9CAC4492BF9B8D0102 + +556851FD5C68E589F99FCF51B5EA0DBA3D3889EBB2013ADAB0355740C8750B18285328F01D2DBB + +1B0768C2F15134BD6D42D43E34A9F0A870636E26F2455E3ED900F66B8255F3AF0A6F221526C277 + +50DCB86D5C2C9ED7C826B7EF29A11DFE45B0AACD6742081D2D80F769AB8B4638BA71BC4D987600 + +DD4D04CC52BA26F407441E1ADDF4D7273A7516EE189A2567EC8E55D1D3019CF717FFC996557BC6 + +1199BDD52F72EF3184698745427378A58C266FFAD746B397F0528C435DDFEE2C61C8E24C6FCBCB + +A30CA2C94A8A341E0B8879D6863C7A7FB805F12A2530BC9747B6BFA7EA057DA41AFCD8046ECF04 + +6C2552DA5E419F15E60339A6EC547383C4B639FC7A7E086EA69BA499F5A953543CE620E159D1A9 + +1BB2C6AD22D6F9770F9D2CF719D7AD68417C8F38E9C7911330ECA2E34F843BB97E69869316D993 + +649F91694F8FB9696DF7531F7B3324F9D9BFB52EBC276320C5832ABD9D0A3DA94D8013DB90EA2D + +F35D0E1CB37CD7DB05FFC514F510EB8935BF55C0AF6440464BFEA1D92EC44A821DA822E3870538 + +AECC146D3CDD5CDA324BD82CC9099C90F2D54CD124435E275AEBCCA0838C7FC25028D56DDBFABE + +30B0FBB1EB7C8BD6F948D5FA8C4FBA1C10121FB20F490A57C013C6541C56D0882A37339252274A + +B2777DCA09CEC4E499911DCE4532A6C4D35464CE5C15853DC1D29F02BBA5667B7AD3CB0518A908 + +1960356181C42760C10CEDBB46417FE0CFE1B545CA8B129B67F9254683AB5F8F5684B50E702D0B + +A293258D81F07557E83F6EDCB5F50B0A9D57F6A802178896383EBB28D2749DB397CFEEA8B3AC7D + +1861D489E7D8E02B01B477429D28209A16487327DC3C532E35E4F4AB1D87A0E1A0F8402A067BBB + +30D4D992B5F2997445201C78DDBBB31806EE302E96E353DB30E79A341B38AF3242B3EC8701A381 + +BD4EEDC5654231312D5D4D2555A2E8E2C2FB4C53679581B57EDB6F01C7AEDE0399C4CC5EFEC89D + +021301B96B168E3D3BA15E0A2C2516EDDF2E9B78BCE983C8200B18ADEC5CE6BFEA019397525779 + +2378C8BF841BD3332096891A3F82DE8FD460F43DC75CCC596B82EDF546F8AC025ED30DA6EDDE44 + +7EBE6A271739B51AAF5AF52460A86942D94F1D91816D2CFA059C04E3E73F278418492D54989EB7 + +CE1FEC9D311AE6918035144F07BF987909D6BCC2ED889178EAB7F33F589A711CE4928297D9F378 + +E50775202217EFCE83AA3C83B731C1F98CE4A78816E7F6D9EF2C58AD5CF26A4CDC84075EBF3A5F + +D978DAE6E50726670AA683FD3BD51D1F2A66A15D42E3788DF4C53F3CA6E2C59A0F2C1D6BAD369E + +2D468A8D5FB8D82C6B95E1DDC75071E563E9B43EB1F2F7B68D76D54E791D81BD11B0D4F88B4E24 + +B8E08A04350D03F577E228D7319ABCDFA4A29A7FA9FB2D99C5450A69ECF4748F601F15FBD9ED84 + +5AEFC029565FE3A98857F197E4B4A2C3C77121BA2D78527ADBC50120B99667816FAF5C65D2F0C1 + +5901B2968DD2DCC5335BD5DC870E637EFCCF3726FBADCF98F72C143909109DB1B89017A026F455 + +CD37D656C82A0CA07D5E9A31F28BB27E27C65B2B422BD9EC12FD0D6B5046CD8BC7D27604D3D146 + +C23C4093F6DF9402D31758D677C6BB5BC1F59B0B8A69E295516C640722196052792DC40E4E3C48 + +03267398D6144CB5C206999107D67F76794AF501D35B8B77482395F72790D788B076A417991BC0 + +C4A3602F19F2C0431616901DBD72680A9591F30745A6D4F9A8D4B9D69116B4E8CBED2FB8F08243 + +22156A60CE2FCA834B805E2F867BD06B69B566E09EF21C3B7C2B3E5BA34109C8B64F7B609DF6AF + +03C23CEEA4B8CB123BE7C9637AA4619C29348A1E71382C78A76B7D97E1C91E63278D257E2E2EAD + +8D16F62BE741D59EFFD606666ADB7BB0A319BBC9450C11EDEBE337C5E053CFC58112F8BE67EBC9 + +D7E87A768516E1A971E419FD4903143B6E1B5F9CF4755B5B5B9EA2AF6652A376AAB6FD54DD08BD + +31D3DA9C0BA7C28801C048B43D4BB689B3E2A7BBCEE9E9D80D3BD78A7D4D94893379A7228EE5CC + +932330B51B0DAD909D06DF4B9FF925F875D4EE1EB2692ECF1A0024417273969913AD25DDB8ED11 + +BA2401E5DA83EC452C78FC49E5BA3AF8EF0AAE2D55DBED6AB21B5C9358B1CE08A45E87C10C6F31 + +801F823E6BA0AD8806065DECBFE00B9C9AA3F300B2765D4D4E9C5D2AE87AF05FAB207CB5A901D3 + +DB5B284048A8AA2F0C8F50BC298356444D2672B6E11ADD136E4B6926F470763109FEF3AAF1E210 + +895CBF77137A6142EEE9583D32C06BD780550212CC9BCA18B494A0B0A095F23E4EC2CA622CD565 + +49ED8AE9A82B4E60FFD7C73F6D1C462094F4946E16418D023208D8BAF445E27C7ED9F39A7FC11B + +D4A58A0BC9967E1C581EC18F866F5AEB8698E710750FF4A0CD695C314CA2483BF3F5DF14888D57 + +58758788F0D3D3AF357E04FC45DB58EDE15AD64C7F06364E1B2C64DC14CC0346AD2855780A8CE7 + +FA539AF1728483FFCE82B389C546E554FE631406A791A01A1CF899555E34634B52F039AA95086E + +D64B50534DCA54012FDF867A4173D97D420E9F5C970642CB12A9FE90A975EE7C3D27C4357DB9E8 + +DB9A9AF78DFC5C0543C926856BD4BDA98338875FD95ABADA260C21858B378D0391F6BBF15AB0BD + +7025E657588D9E6364DE1EFA088107828FA4250E53E7487F8BF891962F2783FE305002CED03D24 + +CEFF5F6E9C3E3211E0D40FE7A9E83314FB9F72F1DAA7FD5B87E4475FE78F542CD22ACC4E40933C + +15CBF16B240040414AAFF829371A67B3F6DADCB7281410035E7024B56604356F8D24D879CF4B92 + +C312CE5538C27D326D56CDA2DB52D7BFA0184EABC7C1160DCDE65444A1F3D29387A8E2C41B632E + +778813D3F1E335F8A04F277F1416DC304315958E3641A7D7E5ECC68CD3DD54043CAFACB9B307C9 + +58D6239E6754920A0C80807835A2F137ACB3D1F828ECCBBDD9A55AFC646EF93EAC3AFF1136567E + +DA8F741E24604FD4322B20FBA39E03748BE0274DBC6AA8957D30D7853EB96A65A9878DD94E259C + +38C3A144E1269CACA56B0B956C5C40A6B596426F495E438ABF3A54B4BBF161299F594EC305F95E + +8BFF2FB788E066420B9C6EF72F6C28536D66E6F00309BB69E396FC864626E67E84D88DF4E74422 + +A846C2987CC18E70A5B41E26B897F2DE79EFDA6CD99F594564DA946EC13972AB6F7DD737DBB14C + +940928E7839DFCC0352F7FF60574C4284398159E47D0487D2D94D21E92BA35BFF04FC74C43652B + +26405133714CA12AAF211EA2E7C397AF11E9D775C61462A742ECF9992B69FED0C152FED5AA9707 + +2479F58F8D0E2829A1F79A52EC7A0DA312FAE6B2010BF70D0AF8CB998F626FD26FE3C53FE4DCEC + +916DF0E9FADFA2802ABE944F0BBFD166CD39EBAD3FA4CE2C9ABF007893699FF2C2106004F3F477 + +242068A7FCCAE79B8795F7394102536DDEFC1CBD662514233B5DCEF1C3F715637BD695B1E07136 + +E40007C7235CCDCA991BAF173D915D5C5F33C4FDF653D51166997B6A14E9D2F1BC288B34E44DDA + +A8DE55AA85627374988A08D965A3E1C8487C310AF32D2C0B8E5D377D4B6752954E4DEFE72FD701 + +1615D7C3EA25A6733EF7EDEAABC9996D7F6C2DD3CA62A247E2E3DA8114AB3630AF8728A9854E84 + +429A276126D18756E12454095E8D30BEE5D3327AED59C1BFFFCCAEBAB02444A38A89DE6DD3AD89 + +4ED7E4A5C761C8BB77CA39F4CC3DA7A70852E27E88A4D6200E922AEF593F0912263CF4381A12EB + +D8F94AE22EABBD239EC5E7AF03EA9120F4DC2E8253D5551CCE8CA6336714F7B4A4C4B4CE565F71 + +2685E13676A3B488311729432EF24CCF8BA48265ABEEDB2FBA53FF2087BB9CB9682E9DDC99918C + +008FB0EB28EB1B5D9FE67EA9D2D4FDE1A8FE1D87CB82F8125850A60D924161FDD4E7E7DA595430 + +2339CF6C6194894845CE5ADBC97883CAD7D3695746856ACF2EFA21DA5EAD33D4FF8694298FF8A5 + +AFE9CBB1C6FF1743179F3EE82ACE5AD2BF86489383A97F05FBB1809889D9EA33544C2632F33EC2 + +7119B3670824332E7FBCF59C71C080A8E59A3ADCA3925C69D4BF18F1E2B1F7F9C184FAF7B47DF2 + +1D7905B78EE91A8BD733D755A046626B2586516CD3527B6EC09A90784F5C22BE5465C24961E421 + +B8F33A14F280CE7BB0B23F9702360F58C37EE4CA98ACB47E3EF8BB1A8A73F9B083586309407BC6 + +1B34D67A54157E3728EDE5A6A9D2DA811BCA521D97C66FB44C7725B69AAC358528FBDB674B2555 + +7F02DAA19EB4EFC71423C89F8277372B00DB45E783DB261BDE6A737F6972018E58FC36FAB72B82 + +E4EB48BA45FBD6DA8078F758FDC1155C06BA7BB4969EB82A5EA607F257B0BB642B9235C414CBC9 + +DC882E4B0012B9A6024B584FE68ABCB0F60C8BCCF8E181ACB7783DAEC99BC7A3A8AF028BDDCD0F + +410C945F07790C06EA63899F2012327AD160562DD0390DE564D90040AC3037598C4443F095FF6A + +3F5250D4BE09418EA43158B27661BC2500EA7BBF3B911C47FE854A819213813684DC597FE59AB3 + +EDB4B29AE1E51AF8DF5A97EA5B2A385B0219CAA2413E77C8FFF0AC117AD07DDD1054474EF08CE2 + +6986CB7DE00A01089347E16F36C06D6083642EBBDE402A98AB48F87177AF5F6B8F0234E33FC98B + +02E3C78C0813A74677AD524A329233A4C89A691D7569BC5E25C5E46D160FCC69D95A9B1BC47CC8 + +06917EE441546FA3450A9B30CC4C4BB4E7CB461ECFEC7115891A252DEB29F206D1FB73309B5257 + +6A9C1FFA48C81739167A93394604B1A91E86CBBB6D164E5D76545C75152DE2E0B4B09F65BEF3F3 + +85B84F29FA7FD0C9434C93533D7ECC4DD8E1AEDAA8B1A231EFF6266B661EE5F4ECD4DEEB154FAD + +7026AC8FEE670838AC986D48ADBB160A873F9CC9F687F4F40A5B6A082710A63D10F92391F341D5 + +11477AFC88994E4016BCF6D1E7600D55AED6E02BF01B5CCFBF0DEFBBBB697FEAB3C9B012882ABE + +E024332330DB02CE61EB5C43C5EBDF96FF799249BF64102FF670B8DBA29F4815C1A4FBCCF23B16 + +5AD9E8E57F596A8BCF4C1DD10EE5A3DD10CA20B1675809A1D28AFF85A5C4E93D5020DC7A45A050 + +C722AF53D42EEC29DFF0E924F8A54F75F9611D6DF05E1A436AC01BEC09DC0143156FFD47F32265 + +9E0F6968FE2FD63074EE77BFE8A4A866132833930E128C91B1CCEEC71BC02BAE80DD2598452CB8 + +4B0D756E8D0DDCA3F64D2E64AB21C482FFED6A859BC3B5D61F1DB812FEE1AF0D482239FCB8A4C9 + +BEEF632069637AD48050DAE012F91AB4A244751403C980C50EE44BE38D33D766A2424268597BBE + +D36E39B595693EFA00CBB6482372B2C20ED89563983C6CEDD5D288196D49D8DFE4670C4B5F457C + +21CAF9D89CA7AC9E008B3F867763A0A23494D4F3DE229F983FC9A133525A5BA33BAB184B73AC44 + +AD85102FF1AA6915D62EF10B992E9B7154A6DCCC474DF36FA6641FE747B1E80FEA80DDBA9FC008 + +A71E1552A30F87956A6FE298D5737BCE285DAB1F746622B6140E56328DD0B343BB7F6EA4CB73A1 + +AE1448CCD1BBD1AE7B9F5AEE2A96C55D4B511B2C3489D964F6CAFB705B1587192C1B93613DE261 + +49F623A979B1FC8F840590CF22DA6BD562E61C116D6C5B5460029CB5F46C2663F814284F51C18C + +0AB1F994BEF08CC775B87E0660D8E396E48F754676836176B568034D26B5E32F9C00B5FC06CBE0 + +0C1005957D22C75DE14C8A65707F8081A12955D4EA5663F6AB823ED3C709627777BB77AACF3E9F + +7D44303AE7931A01AC33464911946FA792706A38AAA64502526C06548D2226B10FC45AB3378EF8 + +A2B7A9E7960E08D72EE08E71E63E149EA56A941ECCA938D7E0E4A9469B85FF3239F20E3FE90A9F + +359AAAB7623C8FA21BCED7B41D9397E7C97627C20E229F268D3FCBF543DEC734297153E916574C + +C4723CE548DF8CC187A5DF384484C81A921A90E91E6CCA0F9CB1127F03CBC0E018476242812FD4 + +C75A24E675EAD79F6261504E71CCA3E5235FC7EB47982540AA5A754D1E29621369D1EA8EDF0BE0 + +8D2094288D03D77CFEA85F04D17B3F41B07E6E576490BF131D3F78227D569F3691F0135FDD6FF2 + +D2B212D7D41211A1B7EA2C9FE2D2FB79065DB5301498802B6E1E81944C5799AA78E3DC6FC71B99 + +5A8C569501D4F24437DF3B510A238FBA8120AAFF58227285C6A10D0756F04E51710D34C5B3EC11 + +632A86BDDDA8AA12A8C5F48948E367FE5EDCD3D8EB85E3D295602DE19BC1F5DAE96E1A7A9CE192 + +F9F9DAD0B921A9572ED1D92DAA9AFACA5761879400FC1F11F3AC0C1D3EF9BE5EAE7F7BC963CC1F + +15A3D36B4A4B2725AA8DBC77C61905EA820AA3CC1EACAFB817CA530C32F6D281F0F9C45F18DE77 + +09ABF3051B58B5B857350BCF7D83D621B89A6917F2D31FCCA33D7F849A78A02411A16805B542CB + +BB9ECA087CF320DC8A4E4EF6A1B1913A543E62D3611FD1194B019987FC1B454037C74773AA5DB8 + +3A916AFBD587C03CAE2ED7BDE4A738706041B2D2332039A7DCAFCC47DABADFEAD27FCF70713DC1 + +751AE3681267961EE2CCA1B21599C2BA3F3448DF4BD0BF6D01D8ED2B2B70E6A42586D985DFFD70 + +A65B65AA2CE5AA16DB6F5B92284449BD7C72D802B384CB63EF7B7AE51ACF16BE575068005EA1C1 + +2899873E9FA76CBB626632AF47AD7A0FB3AA6499DEFF547629910A1B30078F23C65396446C5399 + +84BBD0E416430798CEF8196D093E31B5FA6650574F30D3FC479179F00A3507199BDE82BC7173B0 + +4EC8015675AE42E92E0CC0EF7D9D809EDC6FDB103658DA78DED075FC61CD2CAE4EAFF1458F1261 + +D9BE261642DF329C0B0DDB57103C38E823E3BF09C59881388AAF7E8E8BE4190B811CFF83AE84B9 + +664ACB308AAEE24253DB0A595203BD305A19F2A41A054A616CF02850AD4D00045EC034792A7012 + +6E7F10CD39C919C5E6B77B2F63108266AC3882B6FE5ACD730C4A79EB4549604D31B70BB81F9DA3 + +B3D8BFAE1C2A7A000A5884CEC025FF417D20362A9374ECF40936E93EB77362CE66370F16927135 + +74F60E956A69CFBB70BB59A0CC497BDCF9108748B54660ABAF3AF7BC57E70BAB19C4EC67381C0A + +36709042AFF9404CD6039CC2077C9BBA55249C65097978D20E5AE9CCE1A27A74752EBCD4C53546 + +3C74B8D6EA187C2D575E89D5CF9038DABA4E5B6B240C5A826235FDAE0F22E8B4D29E4A8CDF4ED6 + +A91876FF06F5A901B6F34C9C8132E27AC01B6B57AE1B312FC1C2780E9630286C933FC5AD84BCE2 + +CFD3DCEA1C7F621A1C9695D65895C32F9226D14EF31B461FBB98D4ED3C2EE62477D665B99993A8 + +0F42885A12E454CF8F45C96E002BADC7215DE3B1341C11DD5B78167D76D13546307B890F87A199 + +FC2CDB95064BCED8FC5E0B502E7A589EA6CC36F2B935E05D6B4CBD38E0C3BB71441F05FD1F234C + +549054AF7FD8065277AFDB89149FDB6CF64A4E5375D3EA609D90D945E87A8A2AADF7D59667ADD8 + +16E8C3D9F93B053488F4408177048EA77A05F8B383E249022ED3853D6FAFD875FA39759AD3BE7B + +EA6A28C49312D6820EF2BEAAEC2058CF9756C9EAE517FC06BFB98141266D70F1F651B90A069DEB + +3A2E6588D9BFCEB3F4B5A8E30C2E82829376BEC979A6BCF3E4DC69A6FE7BBBF05B6639B9719136 + +1AAA099F4BC409C179E252452E8C802A1517D9C6FDA3FB306ECBBABB2DD07174484776687F4EBF + +9A09AB5F3216D9EB85508125B239FA22867D8C47D2919390E6F5606DC9DDAC2A2C4E445FA8FCF7 + +4E73B06C6C88085B116EE2876E1DA820F2C4A2EC29E036068E5E52BD82FBEE47D671B040D75772 + +A93314AF9297753A01212FD2A7624DF89A306A194125926626491A3AFB70CCA5ED0FB14F6169A7 + +34FACC3D1BC693871985D51B09DA75DE927B0F5E5996BB3FE38532250D76A6B87678AF13331A0F + +F7A37700BAB3171C511DEC88E998D2500FE0D72D7E63DD35AFA982664065FD2FDC5998C9DF8E51 + +69C3F035299A5D7C54490B175CA41E43883839A6C8DDEC8210CE131695777A606133E23D36E643 + +330DE0D7205D53B88D6ECB5BE6D95790CC7EB7A33F545FA2B1B1FCD7E8878CD6CB5E042DEE4FE0 + +879CBB8F0B21C155588B0672DC6C8F832648E299519258016319B3BE725D58684C4BE5D692FD50 + +25891223A54FE34F10DE816C40E5B4947006ACD835DC01B2AF84BF4380A2D0D580AC3878F5D476 + +DE2564F315213F7DCD6678524094E85CA49BA82499A5CD69B597871ECCFB05CCC4791B8BBBE45D + +E820E1F402885D947F1AE6225451E5C33C8E65F7D7714C6A6E59131E8599A4B16EBBEFD2A86FE8 + +E26D9C76E35F85FD9F8DB6ED3760B12224ED38974CA38F894F0322CEF8634FCA6F4C5643B5EAA4 + +D9E65274BB5A2A381DBE8A128BC88CB4F6E04C2C5C4425F347479D86164BAA3F19000505CBBD28 + +B52CD3C8A33774F45999129F51A7BF18A54B71738C534C5FAAE501315EA5869C6D1CFC67D0AB9D + +584B40294425ABE35F2E923025A7227637876ED3B746B6674D52CC4DA679D5317DEF0ED57B3C4D + +930A96C0FB692DDD2CBCD113799FC4C80147197B7BC9F9514AA0A96E078C3601B32A9F690DC3AE + +70F481DD4968995AF645FC0E97AAA22C991AC11BF3A58DF46FF84CF8B76E248B23B9985038E737 + +0FE65E0AE557865F0EEC63ED7F4A9641CF02810E34B87675FD08EBC880368491FC6C7D1C9BD273 + +5544BDC95CE0DA3FF11BF88E9680A8C8F91EFD65FD04C0094DC94C29D006738CD340EAE0585F0E + +658DE2D9907218612B217228CDFB8FB489AEBF7D5C05C5962F67E0A39974C5665B332353FAE341 + +9B105839849CDB843E908EF184D0DEA3F4B1C7669A97C035A86FBECF2D2DA905E683831319D626 + +3895DDBE238CD5493C79F9EA19958545FBFF8B088E86F6D85BAB6CD7FA03CB86CB3AB905329B6B + +538456A1C68A260C137E497F2D7A627C38D57030271209DBE4BBF2A484745E6FCB9FA930ADBB61 + +9F64118E77620925449DD6BFA4AD8838AF81BEDD3FE9D0C15E37BA48B33D6201C6710BCC3064B3 + +16B535E07AFFD6065CD5A2739DFD061C1C464B4AC5526C4E93D4F32B1D09CA4200DACB79DC8DF2 + +8AEA6C1E9BE2446222E8FE141786FE5146A30801C0449D9E7143226948863D5402710AFEC43F9C + +30D85915E0354B96E9BF438E62F9FC3E74B5599555D0C72481FCFBB5136D4C2E064F9079E72552 + +15C9E4166EE130BAD8EA3159F1558E48A4D998DA8DA1B002C72EFC4F38E8DB7396DE031DE548F9 + +76DE8E0C11AD4CD396D4A11C5B73C8E04FE0746AC300D2CD04D7E9CEDC1D78FB9E12A84EE2296D + +856B8908EAA722DBCD9C7E72A2EA45751FE235B48879BA76129F41231FF3B6A31AA51E0F8FBCD1 + +65B88DBB7A353F0B04C55729BD3851A4FF32B75AED59CC9AD498511A6C105E49F0DFC5687E8291 + +C30A6A826DFD3C09A0CA876B4BE48A222CECBBA390C5DD83BF51E6D1C72AE463ACA5AF5DE93DE2 + +5727A4D70E7A267FB7A0C10D5EC341CDFADBD56905E74BB02F446F9198CC8DC903C51ABABE98F7 + +6E75857E1D8F1220109A8BC565D2CEB7E3B809E16D89A83DCA2D9DE0A155522502FD36E9DD8CC9 + +17540D4DEC8CE209F12C6D6078470A6E5D65DC685C30EA581E3AE53AFC872993940F0D0C89FFD4 + +1F74A8FA730BBA82F0296A9A8F133810B4BDD8903E722C5F95A887B4131E8C6AFCD14F29FF4200 + +6F04ACD0F2570C103F154DDD4A5CF09169AD56542855195091C05B71352134A655E6BC84F37643 + +93A106057B73F58D8E7F99DC9B0B16E1BED4845CCFAE63250299F0B456BB2CC8B90999E6073C92 + +A9EFD24BB2F239844E412A15C7780BE3A60FF2A686779440B11E9DE0C42547B3D89B055629C260 + +DA798922BAA55FFFF2D1253A85DA9389C9284A2E47B61F9A5CBB20E9E3C906AA94B211677F0716 + +707C28C39676943314E52FC250DE49E8A3DB1E042443B66568AA37D0709DF04EF1362E5B9BF083 + +D59CD3BCDFF50BBB26B7C8CE35A8C4DE96F2E40DBD9D3CC04C39841844F30B31DD25829BEBB731 + +8D2E1DB290960F54D1498095D20C6F05F7DB57A3A9FDCE5D154FFEBF36ED418BF5FC0965BF7BEB + +D16AA8DD31E562095B0CD721F8349C1476693D8EE368EE149C3D243698F54FBB5CF83F65A6F169 + +3BF15017754259994C993C676D5D3B5E0E805ABD5B5175EC55C3D1AEE6EE769BB1C614426D3E2F + +2A3167EAF2B0AF5BB68F024C35125487C3AC670227FC4B781BE2C5DDB6310B59817ABD82D5EAFD + +5ADD7BA4EC0C89DBC68D03C12EFBFC051218179494B0B01DA523165717D1DEB70656C573BF7002 + +A66CAE4E69B42AB76D22E6D5C2DA043103604F06A2945930F421AEF9BB28FF1067C297A6D10E56 + +6208A1E001BC8E2514DC6A94B559039F10381A5B031CFC73B959FE1D270E07FBC2C4D2ACBE88A6 + +88E1AA4D9F441B831B6E1E83ED4C1001B2F393264948235312E83F12FF24A33AA8A332292EBEF8 + +95269B793562730486747AFB79938BA78BEF925CE4C994D1D58C5115296D27D7275BC4358A9DA8 + +C8D521C2B55F5057C2854CBFAE0AD361AED083F8A63723F7E535C84FE255043984D5AC389F6550 + +20A3FBAE4883366AFFB9DC7D37F4BE42A3A40AA747721D763F3E8209385F823AC1D7076DB81C8A + +00A33998CBB2E574D9C65563E4C24429DFFC0B992BF3477A90891AD6C67BF26AC0DA33ED3A26BF + +9A523DE4A8A24A4EECA3581BBBA6B182961EB7AF4FC2F56904C27837A00373C0A49F8121B9BD21 + +97F0BC65592EE0F1EB1DF93E87F4514BC5D760576E3A39B18684682C0DD8496FAF939D5FBC907C + +F77683792DDEB86AA902C8B223ED2CD95D9AD9DBD52215AA05E690FA22831EC1E2308C97B882AF + +2F10D56DE08EC526B4ED696A160E139B5407268F1E17A710BA4F71A83DF53156A95B1224E5DD16 + +B4F3EADE07B57D9FA064DD487F4E84EAF04C69CEE2BB8DB8411849B883ED8138E2023B82CCA222 + +823E24F80B8816935AC30BCE18E9056B4E6098C7A78A252973AA19A6FD0A87D48617291C3E86C3 + +C6140CD225B139070B2E55F4BF2BD1E752DD2F7C2C0163938B1CADE6B80EE0E4A2AB811639157B + +01E8B11BB02F4C3D09F86F6A178D0DE5FDF804F102F48D66F5850CB685748FC3DE7E0A657EB77E + +7311E98CA80D96E7D60A6A1921EDE854415C36444FC1C4E90AAA32D675BF6B36EA87818616EA80 + +0CD1259EACEA4105F1FAF0D38AAFC1BC427A4B3AB9C83FB22ABE8BC2E607C1EE5D38720081EC4A + +63A2174E4CDB46EAEDC1D53771E72C763C7EF98F9CE9E6D93BE98E503571CA19910667E9900DC1 + +65D78EAD10F8748D2C6C7BD9AA5571DF798B626E0CCD391415EF22D78ADFB11AC182147C50A14A + +153FB3DCB091D37290891C3D1C44012716E84E7AA39B55089D1337181950DA5BF52E39707E1A75 + +435818E44FC0269F6FA4E034C18B94CC0C6D4750B4372D28F24B982927E5BCC910C66F8264F6AD + +B5DD11AA46534F6F057CCF650EFD8F1E56667C7B9958D5629B227E12037C098C7AB5D5986BC0D1 + +2AE5AE552981FFBEA1C00CB6CC5EA988A2944C7F3A238886831C48DC81F179B9F8F686D7D0D1AE + +436A0897AA6255D3041C1EFE7FC6AEE65AD8608DBACB2C40BA3C8E178E8F0BC04D27343E39C3B5 + +93498FAC8856ED317A15CEABB1D9880D1A156B4CA0E2AE90D4A42F2383523C21DECE7D1A92EEF2 + +09E811F44C4701C1737E7C8951C140F446AC0991FCBACB9A5D8A9A36C29A7DF9FCB5405034A98D + +556900B7238A29E4D1C46770FB85A1C9D345F54D3F01FA966F6A1DB9213C2142AE6C6E883BA5A6 + +307D428A5AFC0E09AC26171AE5B358ADD11AE6702095BF832A35C33A26E22C06B60E7B217E4346 + +0979399270F5559A38EA86986306211BF37D01BC0990C38BC4CEB03C76A9EE984A6BE19E096D33 + +CD5D1977DD237C9600F18FFED04BBBEFF024BB062C73EC12FB00E5E1D5EA32149093454EF270C1 + +4F94446B55CE56C9B700A12AE7119E7812A1472BC70B52B67E30608D8DA81331EC9E0F2587A8FB + +34F3DF3DF0476046832B371F210F6FC8268C67F07ADEAE026CFC1921BAE4052680CFCB37305806 + +529EBF63D8327A1D924A7EDEE1955B944510FEC9E243C872F10F5301B1D03C2BA248B57D1E1024 + +2B266A9A61691E1E9E0421A89E0D267C1C87DEDA11F25EAB86A6920B90DA63DA5245AF639CB69F + +C4E8F12C91CAA26610A1B321F91F90C79771C91DC4D2F6887868D82C928E4574C0A395CA1FD582 + +549D601F9274AE55DD6F146BD2A444088947EE9D191FC5AD9F5CE52D3A267FB165D55BF70A6A82 + +12343E7328FEFBF3083AF528FEC8396228678AE2153557F93399DE55B880B020A921687B4B4719 + +DE07EC57F00B2BDFE003A95E3211119BC72F468AED00ED92A1843A28AE104175231F8A246BD8C5 + +E0F2FEADF643547ED3120BF4950FCB71AB33C590C74006A8F829D43A9C72EADBC7E8A48EE3E4EF + +2CE847D275F1D06B305DCA0A7F0234D241A187A3A9D7CCF390EAD305E5D89110B5D0453B2E29DD + +2E0E5313F8E5F824DD52DC515C46A4CF4E7E5D622C590A8854C9DFE724CB377F268508677B701F + +4CDCFF3502D072E597E3F9D5F3DFED8BCD42AA7EFA96B6A93A42642088203B075EC5CB9732EDCE + +4483518EA6BC04A9BD531FA9D0ED65256EA3FAE0B1493FF2CB8FBA4C7E5D8AE1CC244C834E00E5 + +694594EE9A5A9325C8FE95C2F6FF849446E417918D88E00E86D59664E1D965310D354199BEDBAE + +5366C183DF1D5D1CCA5E64A434C50675CA4F1ACA9704215BC5A1FCD4C3A296CD22389DD808CCD0 + +87AAB921F5ED11F34D2D0334861F214083BAC9541C05D78ABE5AB9DF253E7EC40AB3A8E69CE730 + +AEAB610EF92AFEB93733C9CD9590B1B1D8A3A5E44D22B9528E429CDE7AC4123C0D7A8739ED8BC6 + +7C5583EED7903FA0395171EFF44973DB1CF052DFF83B4D7FCB6B9FEF7EF08A4D7C0FAB844F2F90 + +48513A6A3D39A407C33DD521409724A79F8E88DD6838298E17473829A20495C863867DB9729F83 + +92CDECD291B601ACB55BCF9BB18D873364ED03F51631EE887246D5480A1B601FC792DA6B6D398F + +FB580A32E659BA4B0764654023426E0F5E51045943D2EDF0557DFC8FEF287CB77B8EA3208E2466 + +330E762C53D8F19E173708FEC484CA6EF090A0A65A190370A8030F84CD4CD698F65E81248ED13F + +91A0C21C3B0D7C6337887BBCA9E5D65CA6507C58960367D36810E813B060EF9BE7D34D4AC15774 + +06E97640F04B87D203DF42BD651229C56681D296DA1BA7C09AF38583C090D0409828F445B6A9DF + +429A374CF2DEE68FDB5FA4A2BDD4D2CC25E46FE69AA3C34A592288DA4DC1702592FB052DDF00D1 + +4AFF4FFCE9E4B74DB410EF990CFF606BEB6B90AD35D3179CDFF285581A3D161D96F4DE69E5D40E + +B344E5D23D6F0B47ABA92D0A3EFF67C8F16D33DBA4EFF89C73B34450D13B48B4F04C87D167FA8F + +70E9AB17D603C4C1AD07873BF336760E655CBB6AC3A197D62551ADEA5B7C1ED5303D8598000FC4 + +B9E738E2679F5AA08DF07BA994253000366157FEBCCE0EA475AA022B046461187C1ECD85FDEB97 + +7B2DF4970EE03C99E8C24804484D7B7A426ACF82B05AFE51D5083CAD68F160ACC9033CB7706CBE + +68D44997ED54DD0D7523A032036EDE50B2200CD44F9B89A1DD0F541D977A17AD49E4F82FECB9E5 + +FF7C525196746E8F49906B9B2014BF6E1A9A6F356DCB5CBDB427394FCAD8588FF2A0ED67430F15 + +75B2E1617F7F7DD17E5F12E0406834B28002DC7E74C2C4EBAB48AFF4306CFB2D17301CBB238AC3 + +85A414CA84B988C5EC5AE293F3A6A947E70EC4C7F0956AE123EB78E46C8F9B2E7DFC75DAE6E509 + +19892249014BEDA7FD06645E6DB918A608EF4C373E7179921DD6FD94832C0FD9C15F56F784694A + +7788FB33B9FBA7EB9B1A19CFE576CA993F0FFC31398C89167D5F1D6BD886701B07E787851910D6 + +B0BF96B51CC1C8BD3D0BBA00FBD00857E4329C1E9092E20E4395909BDBD334B027250BA8597F55 + +79DFD55CCFB5721FC7A555412ABE49E3DDBF09F722120D681B6B19FA0026CDC30978976DE83887 + +69C68B3C321B6113D3AE32FD1BDB7C1F1FF8F4DDAE81FFC131AB8316FAB33B6FDEBEEE2F1C496A + +805E4B920F3816BDA8E41677DE36EE413E80C500B9FE4E3EEAD0114630BB1A955D0F5C7760183E + +68C226060B051729F6E1F46C75168392D0ADFCC3DC52F2903849C5C1F1CC4A39486FD84401112D + +C1F94EBEAA3A3BD4F282978AF8C2FDEA3364ACB1121EB5F593F332D8BB3E280530F9B1A58041BE + +6350704391190C24BF0DAA05FF8768F084E6870401FF346AC73EAC8A6906290AB2BB58AA7D2C0C + +901BFD714C45188C75096057AECE6CF453B98520AA7346E42E449549EBDE4B70B16F66F48655B8 + +7F0ED4935D108E9349F57C5745EDFA02D83EAA7EE7BE7D7FADBE66D6287A61CAA1F468DE9DF58A + +DCD7D4667A341F6748A35C19031767CC2E0B25B6010CDB31DDD3A81410B782B4A6CB5C9DEB3B09 + +26D2E86C69C63BAF17055ABA5AF39B237C53D3A79C5639C3AC638E1592A5C742B3F7A65C557F76 + +0CA2E68A0BB27D0DB493DF5353D75849304F3B15D42115F55717203817D1F6CE5567359CCE7085 + +371BF23A60851B9BC7DEE19BBE40B8BFEEB85D20C7886CB89B21BD4DD57414958ECD3B5CCD40F5 + +7825372CB8929AD26821F280FC5BF3F909B8454248665F39E87AC12679023561D2E4C17215CC80 + +163600FBC3B2A3637FE8AEC7E6E9143939A96F9AFF544944EE914BA054D6B5D0070C16C99D3EF1 + +0A5CA635C83A154D5799B7FDC311827C9E9DD651CBA5DE32A3ECB4327BAF08D924EEDBA059C33B + +3E7EDE159E83DE71EE0894C2A7201618AA39F39CC3574DFD644CB41618A668BD8D1BF07FCE3AB2 + +80E3AACBD9FCB90C4D8A43BE3B72AEB9E6785DEC6E09A6CBDD95A2AC7A0BBD49D86D29B08E8F2B + +99137B2C31EDC27DEE6A7F5FAA39D1FAF0BDB9E047C83FE596C958A01F835149369B0641F8EA6F + +F0DB303EBE57724E6B1048FFD7F31682DAFEBC1103852273DD19BC98C1C5452F841D5ED7C2F746 + +6893D23CC5D6DB45B53C9150845D7EB3F4227CB5363E3A3BF5DAFD68D415E2836B4AB53621125F + +D7CBD6B551B3D0BD14D6377DACD47787738EF0BE98F687C6CDDCEF0D780A1DD8CE08BC9C018E95 + +AE44424AF1080F5D245D42A3A4C17D3E19CE340E97C722BD7EC55B09735AACF13FB2FB9906802D + +0B34CAB1C02758CB4FE31FCF2758B3A6CF8353E3C51F399AF3ECAC2E109C999BD15DF1148E38D1 + +A3CEF647225CA8CC45B962A67731C7DABD9B756DAEE7DC5E4074E3DD818E3DE911C1FFA8B6C1A5 + +4F279C8704A61C629733BBF2F227F171512AD7FB5E72B267EB0A7B6C86C0EE6BECB416A9C4867D + +C3716826448DEC3B8B2FC172FEF52C39A0574B976B9F3BFC53422A20313F0B058638EF1870587A + +A02D9C4B96AF4F5536562FFF26C1CBDEFAB5A6CE81F25084E902F56B840318847B5E31883647A0 + +3063673BB2D0A7B2C128AFD261C434D1D4CFB08C50081C216927C28954A79149AF111705E57FFB + +F8C8A138AA343F16D540E138ECB9817F91B040FA65D90ADA642DFC98E414D3C909BEBF1A442F68 + +0AE92F829D0F10BD99BC1F00E7345D05133CA2F3BAEDCC63ED6DD92DA86DF4C85C9D77FB4B1D95 + +E64492CC0E8F0468D3E55D11D97595876CC2225416EB2D1042FD8FA07A6FDD408F619A0C84B65C + +20876A38638DBFE973ED7DCB6A8CE7ECAC0BC71349AB2DFBC8682C1D5E8AC8FAC86BA95A46E391 + +1135602A147C7205C4B4951998BB1D70BC7D30E7004F3C81CFA4A1364CA1CB728859F57095A068 + +33FA57B2AE6AE004592AE87D6A57BFEE4BFD39B77C34416E2316A739A27084E2FDB9A9A8A260B1 + +E928D144FB43AE5A89B05997380E30987D31414EC916E3BD338D0D8997529A17BED8AF01CAD6D1 + +CD4EE06CB6C0563E91B919903BB5C0EF8C79ACFBA7CD0DB8984603F729672DC47F6D840D911BCC + +3FF3F22F561AA5EDA2783B5DFF8DC573A06E8383C1B7420003FEEBD754B62BC461D314B383D483 + +CB33660B681B6A0424D4C16B730F9759D1C5B8CDC769D96E67817016CA5356C8D45836C297E5C0 + +CF80818E5DDF6FD6B3D96212A6E3F124AB2B2281C7E32B5A11F737C6CD9A886B2DBCEFCADE6D8A + +F8A392705B8EEB3EE7716BE865CA9946158402333E4345A143ABCC24FFB9280D22A2E538FC8C08 + +14A9F82CCBBB350FDE047DF917E34B7F9A3D520C9776A501225DFB8A5440F91980155C69D69C1E + +8B772AC1BEDD870F516A25628445A68793EB46FF327E233DE2EF2428505D78FBCE1E933500BC08 + +75EF2A659105BFB84D62CD8849B13A0A2AC5D32700C660460BBCBC508A644BC21C02915D44D071 + +E6997552F1A43E771C41D9A70E52FAFAECD73AF8F50F7F38D85F9E968E178FEE686F76C17B5FB5 + +C1235E74EC812433155856677C8A01CE329718B01E8469165B54DB6D861658E073D407FA7D295F + +69DFBF4CC6E06F7F4EDE5C9FE04907DE0EAF8BBDB73AE24313F1442614FA91CECDD1FEEAA36FEE + +969131B200334EEDA47A7B029B872A79EBF7CBD108388C90ACC3A2E0328ED70106CC5D962BA72B + +4FA1D5E01B7476375227CAAD08CC669F7EDE398FCD48E4C98A6FE592C60D262D9A814F364871AE + +8B9D881029CDEBEA22805E58C1AC88EA3D2A14C06C99A6995236CD5B66759521D1C63CAC33E631 + +8C9441B20AE51F6C5484CD5C92301CDEDBB6ABD32BECC3273921900D13303220DB46042C720348 + +F8F5660C96354994A9F4BC8814FD4DE786526E7629D41F523F92E612EDF64C0810600493369F06 + +32ACE4BABE4488FB2292BF6B5629DF5062FD7D2038CD9856A13430FCF7E9440267AE07A4EDEFA0 + +03B83DA367DBBC33F449F987AB4C90C6B54F2FB5DC614D50C803E6A85F4BDAD9F31C3C83F8C84D + +B51960F42978F59784756FF9D04C14899C601681615360B34077E110C6FB5EB7EEC81FD21C8ADB + +F5086B027D11DB853324339403A157DD593C0C482CFD6E41AD59E58C9A9481A391152151C5232F + +FC9F164757A08F5DBFD5F239E218915F410197D59AD84B43AA34B577E9EECF694086ADFDB4E8BD + +9255550D0E6DCC0F7F22C34E63678545F2B34400ABE7E4E3131D20CF0B01A3A266EC454E3F4D58 + +24E46732C9B304EB4B7F6AE660A0DEF74EB7A35624C4F8EB8D467A0176DE9AE457EF670B5564C2 + +749B545B284F63087A2EA02CA97C1142A7E6E81AC7F441D5C4AF68F37E85198CBBA2D509A36A92 + +95F02A4AB6C08E001E691577FE7512B7AE437BA23D023E26320FDEF262A5B7C32C51AAE5437983 + +1083D5CB84789619A605ADACB5CD0FA5DBE2A4DBB7A5287C151696D2DEC6BE0AB1122F19C026C8 + +9FE4A49BA8298C0528677326F0D41CFC2BB67EA9DEF70722D6E3DF3E738668F4A9CB2E6A97E81B + +A717B59718A78192C70EE9E7EA06CCDBB40EA7711D05DEE264ECAF9CA47CA542EC5B17D968CF0E + +E334272DE264B243DBEC490A3FCC3AA34638DB49C12C2574BE206F53331429E242061F029399D7 + +4850FAC2B14C69EE8DBB6187D782AA0F9A40C5B4C6E663474E7BF45C32FD4593BAF723BDB8B866 + +315A898E1D429A9BA89D618836430FF6603137334E7C9F03E7DB7A68CD78A1FF11566D55063A0D + +3BF30A87727130E7FB50293794AF5BC45F5818E8949A1F4B806924BF629EC443C5AA6E173BA126 + +22A346D8B071F91E1D305D1540FA83CA8DEA7F09DC80305B9D392BA31D6E71722D0B947C26F73A + +71661F801A9D08A7DE62886A390361FDEA22F1FE67EEC2153F999653DEEC688F25B4B9D58C815C + +A456804360DE294BFBBFE5D745B94511C304BD5388FBB84DA4B31E650178CC257316674C5A3EAD + +9081770D88683A103CCD12982465A7CAA1C903CEECA6EAA1169637BD370F1900C9143FC32DF44B + +BB2D6A4C4C88EDEEC16C598545208401D0985347AE8B2A16F98BF92CB495D0CAA9F137DD534D87 + +9D8902DF0B44848B3EAC1C381B8A771F9F826A1D33D12FD45C220E94D1C18B630C46D41659F485 + +16BF6C1A52E1951AED115AE9D4C65BA9F7D436802A5673923E65E8BAB985D09484607D6997929E + +09EB1DBA1DFB33BA2999AC6460734312C6827467C70EF061FF8509CD8D79180FA0C92A30B8FF54 + +59ED13CD5158AF3CB913DAB4CB70ABE18FE0366003499020F996B787FC5BB4A767EF25E3417B4F + +C66EC7706E689A551B0E4AA157565C4AC5EA44511D9084CB45B3A5F8EC1C827CA408B1622E5170 + +3A6720D74D1CB45B5C4EA56076203F3235B5D17E02F195511AC3B1D213C01B604529477E30B1C5 + +7751808676C3F3103918FA224B3C2C65E0338CC81E11A9ACD2C9F6F995042E654C3DEA26FC3CF0 + +A094BAF63822CB3004F2786EE74C86FB8FC6542BEF71D96183A1A4C94F01F8CDB0AE1DDAD192D6 + +1B7AD708D3498B0EE123ED66225976E91267D45C184148C61F99BCFC11DDDFD21ED76D0FC861BF + +79 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +cleartomark %{restore}if + +%%EndProcSet +%%BeginProcSet: stonessbi.pfa +11 dict begin +/FontInfo 10 dict dup begin +/version (001.002) readonly def +/Notice (Copyright (c) 1987, 1990, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Stone is a registered trademark of International Typeface Corporation.) readonly def +/FullName (ITC Stone Sans Semibold Italic) readonly def +/FamilyName (ITC Stone Sans) readonly def +/Weight (Semibold) readonly def +/isFixedPitch false def +/ItalicAngle -12 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /StoneSans-SemiboldItalic def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/UniqueID 38795 def +/FontBBox{-153 -252 1303 950}readonly def +currentdict end +currentfile eexec +A62390F2B60376DE25E6D63CFB2BE19C185EE64A6BAC29C353295355E2953CB3AA6671B8B948FA +FE62D34F0DC7D617819CCCCFA9D276C723914F28DF9F5A1BBF644109266411A6B99CABC920970F +EF157AF4F67AFD6B8256D30B6EC249D3D2D31311F781E50A6CF1A677285290833E96072D8D1EED +B8E7402A588F7818A3DF24AEC6EF5BA6A37D1F478AB266ADC2F139FA5B069ED780AC237BD2D560 +57ADE351BB17DDDA706520BEC386806E3D20ABB33E703B0383CE7EBD20AEA40CD1F3AF80DC63B7 +5672BB9756C84BD572171B717974500FF4A18AEF19B1C787A742E6BD5239D4CE1EA9F43F4881B6 +2A36C01609947E97CEE999B0E57F752F0091BCDDDCE6FACDF38D98728FA069D326B0BF3F03061B +8FCE80D7B17E69BD16F034750BF510B9D36C193E853643A7968E043A0B6C68348297E52B7194DC +86390AA0A39414FB9F278A72BB4D38D3DE6F311EE0B4EC0C38AB490D3BAECC5F9C9C3CF970127E +8C31A6587F7B3A2AC206B60D81BCA82D7BF803849B86D987E5A0F487A25252D9F5F24FF52EB9FA +E8F5DD1D4F1AE6BCD7F119970D83662824A17F518F3BA7C0E355630ECF16D1B2930AB700F859F5 +F79B58D5AA5AFD043451EF0E21896E9BAC697C99A006F8502AAE0F32557BDF9C3E88B5866BF280 +AFBB6309C4A6C56DDC93CBDA5BAF9D4C9C33CC5CC9614236425B9170151C3BA70FAA2B8822F999 +2902B23E11A8DAE99CA765649FFFEE734CD45A096246CC418F4DA104A0E360D84AF8413AB6315C +F7B2D93458EFD2CF75CE8E429B4FD9A0D9E2625B56B2307C5BAA8AA4209ADF3AEFF11C2FF9CDC9 +8BC55A81AD0B8975D77B79259ED26DFDB7B48E6AC2BDA8C5DBCD573BE8BF758DCE552BD8D7B9C5 +C3EFFEEC0FEA01A3596C038750DBBDE019DD061AAC75C6DF81EA05D6C6BA940EFEBD0904EA64AD +CD9A299FC2A677BC166B910146703C4AC77A37D1E35275DF13F0C89B921C2B33905DFB79B21455 +B76CC84D7EFDCCBE9EAD6C4548AFF3EA59A7003A5B0BE359C8B5990DB15451748D00B6658F1C1D +3C02C9010E586E9EDA7403E03288F939C5A56E56B038BDEA3DBDDEED59953B5D5F3ECDBB9A7B20 +6E97E19EB486E666D22AF8E81C65ECA005599297CC09B83DAE12A4957252A92452C829A33E5864 +3AED6D1A5538BADB723346F28C1FFB55737AAC3B6B95AAB2BFC31B8CFEFC1238F36B24B5E0AF4E +201DC4B4F8C584CEE2B66A8BFEC755CEFDACC6BD46D1ADC9353BB4CD9F59867A8B9750BA0D836F +4126BFB96360523DD5EB41BDE2B6442D53B6DB3825AB19A5B8122D39AD6EDDFFDBE959A149E9F6 +5532FC70C32F297A56F4288E355D9E916225C80E4564FF3AFF4E04C65346BF983822CF047F27E9 +58AFE046332F5F8F122A687FD0BDD81032331699C60EFF44DAD7CFDD98EAB24D314013209467D5 +A80786375AB9285D7E4DA5D0B32ACC0AB990B4448822AF1D132563C579C28B38622BCE48919C23 +E4002D6563D365236ACBBC278545CE28ACC29A6DE5A9380A4AF6D2863C0283F75C864A8B5869BB +FDECA25E17EBF3CE78C0903B393A024C3807236C92B89611B70EBBB96D672132CD28B0A402F98D +D6475F2F9E471D9CF1D965E56EA4D0D6ED3344120D8D1ABDD8887EB839F7A2A9E0DACBF2555874 +A9200A29C081EB4562F10958353FB72F2E0486F479ADBD4767284E6339BC2DEA6A05556366FAC7 +D8C19CBC7CF415308FC33AC6763E2F450EB9FF4B86CA7ADB2A7BE9033255C445936A2C970D1FA3 +1BBD650E10EEEBB018212EAECC4D4D03046CD14B860BC6BC7FECB4C70BC60456295803399795DA +D15E5A7F2A3B8EC7BFF9558A0EFDDF178752D7D2BE6DF7CC32212E7F3C632B5ABCF9F440CA4195 +E50F3407DC05ED8EEE3C6EF5D927A304063D2C5927558E212087231C485A118433BEA5D0314C3A +B3DAA2631617367D5A8B79CF0C1E7982953C575C363FAE2DD20207D5F57398035825BAC5FB0280 +47C7D907B3F9529B9BA37245CA1F50488CB4F3106260D4C324D23E061A2E2E88941D56633B98C8 +75E93770FC0B33209248C5290539C23EC3E072AB079719D3417EFEC7272F496F0CED0AF2A58B93 +45F5A779AA54A0B05F80DB1908F6F4B91C0DF41AB56ECC0B54EA9BDF6929B1C791475CF0864E5B +A00DCA62280FFE6A4C62629117C989D332FFBC25530BDF4F08592741656B60D82F0CA39A3CF374 +5A626475D1E9783378E940659ABA7211587DE18504C4B300F40434CFE719CA3CDC3D89BB226F5C +1E345A3C9186716E03C222440EC5A9D9B585F9D10F9DA18A94F927EC32E73E8449FFE392F703B4 +18B525F5F8F765CD63824896DC2F81FA75DB733A417247F990FE6BF0861F1B463EEF1B727085AA +39E36B48F69CD2AF2F05A3D328B3F0565049C19481287AD0515A52B323C141789D08CE15D0D792 +FF2E8F498BA4DE090B6603D7270D993A152232F4D0E37739FE269E40E8EA92872180B67347522B +D93ADA3C3B4414004711C25276B1D845571181FFB4EAC47EB2B3E7412593A80D0AB953BBAFEB64 +A0DA73607A207B8E2CF3F1CB47B74F1D31BDFAA5F6E556D270E00DDFEFDFDFCD0BD59CD03C2590 +7A4EB0E2CBDE294AD274F29646BCBCDE44BE8AED41E878557F30E81A0842AB388637F7A212E953 +8AB2119B28C51FBFE4E75EA17AC233949A232B015F748A5C51B30ADB0918D69EC641BBAA574588 +CD45AA7791AF88AEAB4F82FFA0929BA72ADD4EAA58A00EEF780036B65D279A10240515ACBF696B +90F919ED5D9CD9B65D85450356521278D2F8367228C09507A6B52AE413183521BD2454A755E150 +784E446EAFE3CB12F35A4A92D7F5534260CB84A4D61980C535D23FD091706B2BAFC60047ED1388 +2D3DC00BB1E006A2D678CFB3C2F2921A30A8090F303BAB9225DC241F9CCFDC1860A062EA1FF404 +7A2706F42C1AB7893334548876ECEED621CB105D30E03EF0F5F2701824D1CEB599C47DE9CE2274 +A41E3D4ED68C56D8130877E21EE161E863CF27413FDC0A9FBACC6D518A767CDC7102B786FAA8BE +413F625031C79934879D9F0D0E82B5339BE5EF972F4B545293743F0E31647B6A022550B1CCEC31 +86297B1E8EF9A0AF76D6B144C84A2FFD5AE4BD4BBE6BE084BDB4E503216837D229CB80E4E2CC6E +3BA702B3E23BAE1E96309D919A3DBD5F30D78C57598EDC3BEE4A8374E4DB7623E2E6F1C3215B36 +31AE53A2911298A952631D88884A477BA09F526070AEB8E0E9E1FFB8E694DCB2CBBE4E531A7575 +DE9D35B8EB87DD5FE44D4044B674BCEC038F5D4D9324C5DCA1C0505DB20497C28F345A28313B11 +0BE19BF4C12A4242FD01CE385362C273D4A01F234642D9687DC930CD66263344161EC08B49C30A +0E39176E07272C5FFAD0E3A3489261A070DFEDCE9F27E5DBC8DAF699344C070B6C030339222DEB +C1F625AF6DB875C69FEDB4D6135811005354B26FAF284CA2B92F7398E24D8887C8E70A151A0538 +9883EC77EAE6F2F7D6CFA77C52D81AC221EB6711EE5F11C621EB3AD2ED5755F7B055C19744B937 +4AF98B9D178FF7AF4EAE1F54F49B4C9B76A3947D647941A5C3FB9C3E5B5C57E4EDEBCE7832B16B +DFE73FD84582E1AF57A393404FBDB07DF4344FF5837D825804ADBF5BF85682D9C2177ADA261501 +39B05AFE65678753EFFCAD4F871A3C7CDE919F7B677D93ADE141F0778C1DA0D25E4A8367089E09 +8C8E74EBC70BB5CB7B8717A2F23496BC24B00085E830EADA44B528E8A0CEBFA870140598F2F680 +40C237ED915D4E9C5158B1FB5D8ACE3B66E429E6B50C22FBC4D289A15BFF52BBCF71FDD36C6679 +5A9DA5303654B84EDD27CBF199A2C564F080D8F5781D39A32B21BEBBC978FF8C4C3694C4396725 +69811D60A95EC32A232FC0DF1276DA0DD6A2548FFB6CAD2197BA3C704D0A67FB83D05087C9C1F2 +94BBCF0F72EEE91833B9A625C6A749C3666C6A777010E05F26AFCCCC1A6D6CA26EDB8D12A713EA +43F0CB9692E6AAFB2470787CB207D7F3D297158E4E37CCFB67EF01177C36BACF5512919E62C884 +DA155BFE257B820AB36E88A9F8BD590642E6EE18D295A53B84342E7FCFAC64C21E681D3A974856 +9A1E33FB4633FEB2DE5727872201763A5E649991664C40C76907AC876DF566911F4F151C815091 +BF3116EE7C60CBD379D3737C42FC35CEFFD725492A80FF0AA17FAFCCBE5DBD30B3310319570182 +02E91FF3813E5BF41F7986BB970808FF802C02B31B896CB480A5082334BDF9A390CB20EF03C1BB +FB64288B244655AB9ECB8BF8B9EA61571AB2FD3B1E2916D38C247C21F4A4AE03F7E1CDD1A28307 +1AE0359B960FD9C45AE39794FCE5D73CA1A507FC6D0EA06CEED17A4083A5B6AD4AC63B9ECC0375 +0B799F3BB6F86E190BFD47CE7A697C6B1C89C3B55C2EC058F3CFEF2EB53B35CDE7749E79531D82 +0A1583DF38B2FC0A4EFDC5C30AA5D1DD77DD8196DE5170101A4AC8C8B9DDFDA93E9FDC07F3F572 +E1577A6E0BB03D5BEDC5B3AFACDE1F015534695942E9FCF6E3C8D7C70BE56738862E3A62922390 +F31AE5391D55D125680F3FC0DC392C7F696CB9CCE6EDFF20A3EA4C38EC16B2D33893E148DD373F +A3090AA01FFD3A37C1BC80531B4310AA42B7B0FBE02762A656C69A1285003093158CC2D13054D7 +A192DA888380C82D4EC01A77EE962B78D05373B37AC588BD5F8FCCDE19C800D68499E9B07BD329 +70691EB6AB21FF4CEDC94C96E55720728B5D54AE5F8A7905D6B18EBB184992C2D4B4ED1204D6F4 +56AB648076C24864A8A7E3ECA52D5C73E760A442F1D1A162F15593442E0C37855B51FEAACC4B20 +993D9D9B3EF693CC68CA75E449F1E32B00231A484F110AAA2066A4348D8DC5D6AC1FD374E404AB +96E308BB2A159901B6AAE12E1B5B6674C0D820841B4335CDF20F2C64CCFC7EB064FA0A0F07B125 +8CF9FA6DE9AF57B0ECF09E2DFE96F8F78B83C9F689F1A10D0BD87FE9930701583171FFDC30BB7A +BADBAB5B079086A7943A3C6EF5C9F652F9BF035916B76764B7B53EEEE54D8A33D5846FC6A6B64E +99FEF43C7FE90DFEBF83CE4356610C65C771426E7D28BB600E743A575F88E5A3F1A61B5F53D431 +151516B8D247E642574B409CE4191FB6EA040586F49FD9116FCC9B602F76F6298FA74221B350EB +F69F6854D0E8E2E8BA50D2DCF7C04D3B9B63C7022006371DC3FB8E114F44A501C28A5D63383925 +3896C3CA6A65A9C0B0976A9C5FFF29EE1D27B0B6A1CD2A33928F779CAB654187FF00CAAD0FE27C +793F5B1A1EAADB7574B2B007D9AC5F341E8AE471088DDFB6CDACD0437D1A75FD7530150DE40419 +E144C7772C5866DD09FFDF928EA4991963E0A5784961B467110E4B126D0F05CACF3AEDCC00B559 +9C789174F96D2018ACC8B58BCBCB827D694B5A4E1F8C4310F7FF5C50FB3E774173D21ECD4D276E +B02E08A6091D1201FC1176F046466E4D685692D97EABED3699AC741FD506C10B90DCAA6B936E57 +2A4D7E6862198B29AF57010188941CC7668EC6CE860F416D4AB95C44E0B1685804BFB329919D2C +0AD9837587A380C6FA3F605EE3C84A14F4E8E5702A1F5057317E2C3A70C4DA53FF1703BD88B18A +07A68C2622BA3AFD610A4C3AF73B7EA0965B34C69AF7216F9E9A00CB609AC4567EFFEAB245AFE9 +02506B811227AF036E8985A0D8931B7DAD9C0DDA01A88BD5E40C6DFE3FAD7D268A41D93EE38D2C +B5B8ECF6B7F295D107B2217B0555A439E9586B2B2526934DC922C5D75C4A5469F8B3ACB722BE01 +39318429105A4F5AC2657ABB4AF11ED67213AD16120EFC6026480FB15AEC28F3B0C0AC5B82AB55 +322A9E0E6DE39AC103C1B4EE3F6235ED6D9AF0AD4A2949C61C182978D99464DCE81462A75DBE9B +369F0DAEB667948727B721D4B6C7AEB0E72E86896AC6BE3F8948E5A8C3A2A04FB8867515ADB92A +B1D0C77B5A29D871B6E3406D44B6C4AF4A2907418BB99FF4912FD5E2171D141B09C3818595070D +580411ABC386329991F4D86FC7EDAABC817A74BFFE39093115F826345A48E966674B0D3290A6BF +1B6F634D002F7E17AE7C065DC6FB4A18897E2C25C96B9B34A6BCE88AF1F0D2A83D87C4F7EBECB3 +9F90AC1594D395F785CB0FDA4BCB7E16CC78E582525C5EA073E9611BB5B729A372DBB80ED0A53B +7D44E35E65BA5B50E383F932F7D0C38B4BCE43C7EEF4CB1DB16AD5C3BB741AE73DD00C0F5F949E +1C4FE879E7DDDCCD475197917D4DF3CF62CCCFCECB31137B0D807ACA9A0242898FAC954C382214 +66BB36BC54B1DD6B927924A5BE1EF65B6697FC6F0B621AB5499C03CE4AEE3CD7DFD1CA369DFEFA +F421BA01A8D5794F63B05625CE02513B4C84B8C0189DB3368E7A7568B422DEB07D7E34D10D37A3 +1CF59111FA54E490867BBB45EE635D4E69116F4F008120FEEC6FB7B7FDB5F921381CC520C816D7 +4DC29EBEAF41EA6230982E486E4916B285CC6656EB7EB2A1E13817ED22FE119E49452AA0BEA8CD +DF0457B8450FAA7CA6863B47B297F00AA6F039941D89626153D5FE7F54ED02FD02BD68EAB40836 +55C11306E38E89F4853E911696896232D12A0800113DC0066AEAC6E10AC5CFD56DBC4BB36BAAEA +B1A821CD7DD5FEF17884F46BE82040B53705D3541ECFFF57F379E9BE619F52436017F6C677E2A7 +8C105CDC276A7E12224BF30284A8BE1AE06231CEE80398F16040FC720934E33E46F4E4CFB410D6 +2B37C95CCF6A5D0B205865DFD1345204A3D2AF5AABE6C5CFC16E97FC3CF27BAAF54F4F3DCF1388 +1C9916B9BAF8D160DB5573F16C5A1F95DE88F878461BFE98ACF137C14268DD8882B20A0859914C +DDDE2899CAAA419F561C04FF0DC290F40E319210300E91628801ABBD1DFFBADC685040272DFE90 +7F3DC0C0A5C419FD17FBD4E7B60DC1EC1B69D83F4EDE8B8C6A4DCFD2D419BA88BDB4D9CA0504F6 +DC28F5071E73D2BA95D15B8AF01527B2321837CF1F66DCB58B6071349D5EC951E98B0A3E2945FD +FA928D6393D852024CE0D9F5AD1C0D4CD275328F1263A965B539F9F77A11D9601C70FEC6109E3D +525269B54AC7AE10ABD7E9DFE6D2C116ADCA04887F9A61236B2B6CF07BF6629B4F91272921006E +B73CA6695943828C8B6B6AE6C74DE26D00874B0CAC27B8B6CE2AC29FCEF2DD06520113482B9E97 +B0A65BBE14572E8ED5D698C4B30B31EF4A68659CB178DC79AEB9C37A069280F10E838075F383B3 +E59B8FA6FED1E85AE260C5C9612F65722A6EEA9E0E92188738019A3AAD25E746791DD8FD92AE15 +818BD278F2E27DF6F5E9F410E419935E8829990C1A46BA2912483D48DD5BE54A42FE3360417AC4 +86D19633867EACF8CDE5865F2A5DBCEBEBBBAAEA670AAFC86ECF234FAAE825A47014913BBC29A3 +FE6F4B8AE09F62D2F8B6E54D5D1691D8C1ADE6EBADD268DCFDDC4A58484BA72D6970F4DA7905ED +8070960225D73B77923C5DBBC359E34822348387C309B17E4F36324A2EA1C2F305D6E2C7573AC6 +63091F2F8396458371BB62B1BA041D418BCC0394B6974AAF6BE37E8E9AA7DA543EDE9F83F6DE06 +177E60C98680B8E4D6DFDCC921B6F044366539BAA9813A6ACD48D0F0229BB93AF244DD191A2B3F +26FE28BBF4CA9BA5D2E17CE8F45B35D595220E46BDBCC47484911869E700D8229BDE2DD45775C8 +5679A730C00766EB8E69BA8ACD2D903BF01B9F8164E3CC7C9545590C55B5CC1733BCABA7B07A76 +EA61A0315A077A53626EC56D1C2DF338DF09B4DD375FC15260808C2DB4F9659D52F56D474C588E +0A775743A7238461042BC9C40F1C4F5AC640F5467DF8C171E74FE670B331E57D7799F0A8D519F4 +88BDA299AAD86638A9983172D09EC8ACA7B7C0819CE7528FAF394569E04F54D5A6086E7588FAFB +65AF7E6904D5409B62DA57A2C3E26184D68D5FFF28E8A0027EB5C128C9C12F1C1CDDF08D8C9D12 +E057AD30CFD90F3A29CEF4525EBA05396370DA91A7802A51E40C331F5DE2DF4A39558CD6682640 +03D174A42C50B6A5B2AB72016B2B5E39FCBBF5029D39712BE03171F1208BE5E1A945AEC3AFCB9A +7A5E6058F70C3A1C2CDA74DB0C43A09422E11CD2A57CE4CCF0FE58E5E2E7E3051E401C1F34606E +616FFB4F4442DB141B9BE426BFBD43D14581EA4128D244818F85B6424C800DC117D6B7BD469321 +0D72550340B1DD1C432B05EC414922C899B75559D25A63A44223A149ADB574EA515320E678DF66 +6AA9D619B3C4831B00F96F1C02712C395381CD0383B63BC53C1FA4C5CD4D00862F6819B491D260 +4A4AE4955F7615D87C298396C8278075FDC008CAC25473C9F9CB28A507452B7EADFA56A3DAA7C9 +16AD4F090123C8C885D9D1ECBFF8D074C98BE8F18C0FDC2510A4305E9CC8BA571374BBB7BBF75C +F1CC9829D5A1A252E4730D1AE3210AB074B67B00C54391328CE1147F205502DFE3A6EC47A4D63A +B7D2637B2DB121E63FAC1FEC68888A2001840A05AC90B07B577E11D97644517394AEC07CD40D02 +CDB9BE567DA3F4135B0253D503D50EC566F422182DA173AD62E2B94D31A5B4F2099F9FCA252246 +6862BEF6585E1A189565958B38A64CFECA4BE515E6E2BD8BC5EE44FCA593A2B868544321948E7F +A4AFC1F5A2868CFFE363C7C6E88165444E13C8C47C65E72C9C8B28CA496B49A2E46D81B52B48C5 +7B3C8011BAB8E8DC9A14767153CCD8FF4A2166FB00A60402FE0AE3F0691B572766FA4BCE607508 +3B2B1C3E16CF4C9108462AF1E6A48F4D7A1A41645FA27677281022949500483B46BA23F1755B5F +EF0578E5F2E5BFCEE2F713B3324A8390ACE191D51408022C3C8F3A207766EACC05A14E3C3EB6E4 +85FF87CE4C62FAE3C6BAD0D26ACC8E7E584A8CD7A25A9AFB42DA6106F07A65C261671202ADAD69 +542EC6D1CC5B1EEB605E474BC949BA7B2E8A64D4F5BD7BBB326C06F9630D4F99B9729CF4205D29 +12BE9CF81FB114541EF8D7D5CE4DD1951CBFBB5B2FF5A9896202D438C7225B8B0F4C985B5A94CA +09448A46C2E3F04674A59F55BA9851BA61427380930BF2747CCA7CB932388561969DF7F5D9545C +5195E52A847EF2BF4FE33255606BAF3AD695544CA0FA7681034517640D5611AE1A5F1178CE695C +223E29C41A4017760F3651122B7BDA4E967BF5D76FB93984A52773C518BBC71DB32FC51FCC2F27 +BF59622C8907241A16D31079AAF1F310041D63C7750872F8FE294C06C483852399414A03D4B684 +44289717B3D097324EA791B963A273D0331714F1F912FD6262B81FC89A5050A5F341E91500CB00 +E970CEE22C6C28ED153A44CF43E9DA55FCFED8B953F9412A1FE477104DB3BC46A897682B4912AF +1DDE7F20A6B9A4365060CADBE5316B805AD0C5C32D55B8458C47B5D47FC1B4140E0F6B42B78FC0 +BD262313F96DFBEF9EFA5A4F590BCBA3C484A151C05113E4DB9C56FA187CE5D07BFA5DA8EBDE83 +3E75C6AE8D8E651654E11008172BFBEC0C59F83BC1D6AD9C4DE8EEAB779C1F8DC479ED084B76D6 +D582DCFE08BC4397ED71F2562575232D9B41EA2B5F23722DA40231E9AB85677C29A6BC37FC36E4 +DC4414661CC627EBF94AF2B13CA571DBF0105D08632CBF640BE1A6F4B33046238D62D1189692A3 +6EC37D0299B2B43D8DCC06D374EAF0B5D000A8B144A954A37CB7BA6B7ABA3617BE2F719FB95410 +5179899FD2187BC906ED19D54D8BAD2B970E7B62AE8EE1B17989E26F340BDAE188F7FF4213A1ED +758FEB0DE33A33FCEDD3B874791B6DA5F63B91A2ED5DCD67180D374562A2ADC73359CE9EDF88CE +824AAC15079441A95D8F0EAAA18E6CFE4016326A75A76C210347ACAFBB90C3E14C7732C8F5CE97 +CC4A9CC6E2F1444DCD170DB12A9BF832CA1A238A29C61E519E9F00F0F5090E84933F35FB7E717B +B64991ECBE650E4864B24ACA929743EB77591F64487789EBFF2A2BE399C5097D6C673B6C5A2179 +BB3E846F49F2F83F3B1F360FBB2DBA6AA4A516EA1BDED50A497ADF520F2D18846BB30AFA1B732D +761B6760080B448963D77676D9BACC127E5E033E4F1215F0DFFBF74247404B276201C39D187DB5 +9886A597E04E4CC05DBA500A24C9F2237D5BDD93F9089B92C653E47AF8EF00E62F5F22FF8AADDA +CCF1CEEE6350F3348792912DC6131FFC1DB93FFCACF5B88C96F5DEE570008CE39B1E002A24BBFD +C3B0A09767B24644216BF8905E02EC1FE6477575E3C45DA5A05BE475C20DAA7BCABB43B4A9F16E +6C5FF5483E0F5178E320CA3938736CF32569B61BE5BBC724D2AE0F970AC88A3B4AC2DBA8DE8ED0 +D42D0215D47CB49E69FE1D7D7E40E87D0354C835F45735760AC02A1324ED7816D9838D28578098 +DE0F1C6505133B000164083310573BECAEB20CC880EE592845B6CB4D3F2C94DD06E3AF43242499 +56C2DD51FE2D2208E32FC8A837B4705B71CA68D7214E92F2996066AD6BA8672A2B09652B3E1861 +7F6B1B60CE18F9EE5BEA3616C3EDEB9AB79ED7DBCFF05AE6C5E03F33C4B20C5D2AC8B049B09A80 +1EA83D3E1CC5C3CBF608B39FF2662369B85478EBDD4565AC7E6D79CDCE0A36E913FB6A6A098B4B +A16EDD7BF1415DBC0A31DE30909DDB588C573FA54C3A7C703D76BE975079B781073CDFD60EAE69 +6BF991B69DB54FE24CDDB02A44CA8C32F0935E77A5B8339F60FC8630A0E921A444643D68501E25 +F64813FD94AF45F9040B148BF0568C1963D9B26D70995169483B011D865DD264225322C45FC65C +5172DEC70D0B2B792594A9CACB21A225E8D07908A052AE4F0FBD3918F7F9AB0D7D2EBDA5F0E07C +D043048C5DA8F0A38C225D2C15A5E03689049D80463B7CC35A54E202FB2333707E0A3682B85150 +1BE15715A94AAFDB49BF6BE5F80D83FCAB28B0B800D685E658D41286D4BD421DF10428C40577AC +36386FC6B76FBB98BFB6A13FB6FA40C6837680CFB1520C0706254FCE622D14AEBF58781E0BF2A6 +222F54C43704D4E370D0AB3C91F4D5501DCF69FCDB8A08CF7706DFA456A11913C42F61A832AEA8 +B189409E146557338AB059AC7BA9CFEEF2AA969C5561B677414A91680649CC3DAFF576FE686F9A +B9931A749AD17F6C0C90120AF8A9584535F1F0B7C31134C09C8CB07D857395F00D98384D8BFAFA +FE27566AF9E96915870C87499EBF243D8EE8291E60DC73C8ADC2886E4D9808A39964D24B8EA30E +F93B04DFBDA5A5B868D29E3945030AC0A394EC4657B4FAD9D2E2C7965DC7EA916A3E20E67BBB7E +99D52554D224938DEB35B11676F91F5ED24BA6670F574537BFBCD403F09212C3DFC3B8F4DD9EEF +DE27656AFA41B69D9094FD23779B37D6E54DFB6A654923AA9093006B23CCDD68DE0D6DC6E8B232 +464DF25412DA32486A81887450891CE49172CF0033C3CE0206B02A9BC94FB609491BD3B8F2D7D9 +080102AF684EF93913160A07FE787B1FE843A9064DCE5E29612129DFEE055646FB5BD78019058C +8E32F297215AC6313022C40FF4BC9A38529CE8F574DBC54DCEC0FB37F1E99A50166F8D7FC40AD9 +283482952E0692D21C6B8FD7592B48D77BD3487EDFF6935DA9F4A926B5CB625C994B2365A39688 +095B9C4663254C7304617D2ED79F333F5769BECCF0B88287F1708FFA7211BC0CF9BB5715EDB733 +6F009A6A797EB3656F8B82AC930695A511B8E45E200BA82B81F3378BBE2196B4B6CFA19B829D8F +8FDDA6006EE028965C34CFFC5D71ECE1E9864D5C770B66828B9CF8783AC1413371FE27FAFAF46D +992047F64C1FBCDA55FC6525FE5CF16E681FCB6F35786E262034E1B1B4F09CC4AF3A478A30B408 +498D192C627B06AAF0D88E87D4FE13DC14A9A8A20F9EA404F8DC89C122423FFB5B0E3B88F25C4A +44C799449D13B169E28A60C86E1738477256CE22E016A0319B60DC8A9D0426BE137616962BC736 +6BE6780942955BDDE4CF4CEF3177E9FCE58E706B3BB8A013BAEE39506E7378A9C5A1F9AACA2EF8 +224186542501B765F002B6B35A79ED7A2A77DE1192250A3D119B687D0AD2CD269348C65075AFAE +D8DD82ECEF51DCBC18C374D8A092D99BAD3AB5C29A8FD28FB41C02EF3E4D095B7082E6D5EE1A5E +4306C9E877A7BE348FCA240527B4C349FF7FF84901A5D22428B27AC34B44EC507447644BBD5501 +8FBA01EBA3693418EA2F6906EF3C1577D91B63CD0BD2C519597EE07D98297942D80B0B65C25987 +949083FB0642DFFBBAD74C22C3C10102E57C7AC0DF4099C97873DEF713944BAEB920287B8E093A +BCE51BD52CE45DB3C6A737A55E1A00AEAB50E71F5D5B0CDFE61551DC7CC3BD03934DF272BE1944 +EEC621EAC02DAAD8E54E04DDD2C3F02CEACC947C799424EFD1A6C75C7A35BDCAD1DBCB9F19BCE4 +12BB019CBC7525536C5CE21E32E9B9AA0685C7D3BFF3D82EEFD684E8D63A526018F4305D137CF4 +6B97BDFFC1E28B7745C808293C24C849C9C61E93CC64D99820FFBC5F1D9F016DDA621C97FA8418 +A0410F78DDF4531885509464E55C2EEBE23AD17C60961699668EE76C6E44E0D0BCC839B808ABDC +B6FBB586C87A957136216953315981AFB2089C1105EF07DC47E5B3670EC1664CD13718B8DBBC51 +746750AAA374E71D4ABDC31F8E8AC3804E908597CAB8B3E70EB42AC67A0B5B1E2E628796BC3A69 +F3DFB63DB7DE4E40411CDBF98B86688AF4CCD8647AAE4E1D608A00E0834E7D34CFDAD8C95DF21F +AF62404643BDE3700514BDDC81BB34DF75C7F8EDA704B146D20E14EBC98B9D0A11218EC8578BF5 +239E5633605C769EF3EF6855F48DF16DD8DE5320E1851E7C17311CEB2F9A2811424DDCC0E6BD36 +E45BB5191D890197657B66FEE05B83ACB88E12BE1A48D66949188080A0F2DF71DA7A2E3B072B23 +FE94F176216AD5F8DBACE0791061056E5BA4364BB74273A93B853DB23E396116B8C1C3F3F8C545 +A42F02D45DA7DD2EAD34C01EDE163FC5B9400C0D39BF0CDE1B1FCCBB68D47B44885EB0AB14D205 +A30D1F2E4E1825D9742DA3EBF4E47F6F2F750562400C54330F792A998FFC158650940C0B115282 +D8C22CD34F8CD532ED3B94A5496C33B3802AC5D627B5F0A8706311191EC4252549D813C92A01A9 +804B39402660B489095F9441D958FE3873CD6E6FD3EA91EDFFFFABAF460B71F1C1EB9703A7D9AC +AAA34337C306B67E7460AEE1AF02E7E2E49A332599BA8CF2309AF2703631B4D91CBED26AF49410 +830CCA7023A7581E2ADB97387A7DBA23189AA993B86BEDEF59A72F246A4F58EBE354992D91514F +130AB2C167717A97D647A157BB6B1D968AC86C9A97E8FBDE9B2E141DA7A1EFCE2139D13F0B7489 +51CE73B1AE93B19E93B456C491363E045CD5A4C79EAE5174F332A36A9BC1001B793022983DA2A1 +8A8C7FAF236DA88415A4C7A262CA714E373A7333B366AB35B9E39C7389A9D3DC385EE951F66879 +188C6A50C3D9556CF70C19F3308ECAE12009C324F93F69E8208A2A8E9686EDBB141B1010368ADA +78EBF3E52BF05827E453A9B2318A7A31B681148419434CB738A5A36A9A3905DB00F459B265C793 +41331A9661352E40157221BF0D3EE9A3D7E109BD2FAED3FDFF58C8B17DD8D41EEA780A090B6A61 +E84CC84E0B5A07B7F176E3E3B21FA67A6E51B154DB1422AEBB3F11DE57E3A2928440BDB1005BC8 +58598D8D77F30628DE258F26674CADC2AC1E150981DE5FCDF9A8134859EFC953524A83C1E5F4B7 +0AB82678DA8798AB558C1981DC65545E9669AECC21EFF0F428709FC457833E593AF584435C6D49 +7239E2E6FE9F99A4456AB8CC54056FE1ABB9C591E11B8E1FA72ABD1C07F23BC65D83BDF2914F02 +7711C1B5405FC84371A9050FF9B85F1338CF24D44DB280A284F9DFD368816027C9B21F41BD7B43 +1AA73797585FC93C0A5EF1353B9012FDAB80EA8DA648A32BA684437E904793FA4BA37F83A86CDE +B9AB4FE06B5DB0172012CF27613FBFEFE108B459EF13ABD1F266E5921B51ADB35235A90B8E646C +FC94B8A2D25E295055827B734D965E91B5520601415F93BA0CA60767C60AEAAC82678E59BAE9F0 +8C33C925768CDA423369006B6A84E9ECF4A9576C94FBDFDAC3281E13E88603DA9913BA1E148A6F +9DDCD19E24E39B221001F6C824806A04747CB305F9FB7B22AC6C5EB18E68473959A5DB0FEB5EA4 +38AA8D7292AEAFFEA89E9ADE49034E0F03C2EDDB57D15C1106F2C50FC19E2760B8C8D1F3F21CC2 +306485BF437BAE4B710FC4DA3A7AA53F9A5B0EC13488649448249348B7A1618F5645404E04EB48 +D809DC0BD68CB12AD22F4B46FF2E9B8992B812F2CFC9F6B45FAC4B6180479E76FEAC7946FD6DA3 +965085CAA176FDA9881036220E289F6124632367CF7660E0CF5341E675A3E7914392421C1CA647 +103D4B9DD026337C4FC5A148C39F231151D9E0CD4413DE03379CF0DD10D829B95CFF70A88BF541 +6B6088529B04031C12B75E601BD72A1C1CFC52B5D377C5B80490105A0BDD5B6FE5821FF77E1A74 +DEE5AFA5ADEF8E473975360965C97BF48CFBF7F04DAC7878D0B2190A66596E10934EBC1DA5575B +B5851D04C34BAB17979B35DF56F5E3DD914D6DE19F22310854513C2766AB6A6C58481B0993CCA8 +95B73C3D45414803FDA3D413F9220AE10097FBE7A9A6CDD150CA0F8575F8806B7F8E35D17DBA0E +C9B5B827B8B28E634D4DFF5890D40268C96A752A8D03EEB11F06C7736EB608B101C21E71CEEC70 +73B54CB639C23D11344393FA857ABE72BDA7D0B8C1B47C92A18514EA4446E6BCF3C71305E53963 +9A0AE965D8E0E14B51DE79531EA5C3A1C0A9F8B8CBE42A24180E09AC811A85811A536C568DB390 +8F117D5A06C075C452CC2226A9DF157D84570A65DE6119CD69BC0936A0A4E2495330A023EC6C79 +EB8845454A88ADA1D22B3147AD972537CD6C8B7F1D41B4138FD6E89DFB65D12BBAA25C0E182077 +755AF5F0B4147DE8D18C59FF1EB4677FDDCAF2FEFCC49C0B3206BA2616118A86F85FCDE41058CC +F8BAC9045AECC291C5AFB4B92B067315BBA38295C256FDE9B4D77B99470DBB0B9240E682CE9DFF +ADC7DEA34BE240F6432DF291C19C1F2A4FFF206C0832BE628EF15672A3091B7AE7967980D10E03 +6EAC6DA540C09501ADDF9860C59E6D721E559F3BF80BDD9ED0F5EE3E95130ACF6C4EC7161B7190 +CA4D9F74FFDC060CC39FA20811C6A1725CDC2F61C080036181AA26C43E056D8FF2660F492C9989 +351B3844CC210FEF0694265282DAFBBB6AABFDFD6148B3F2982992AD34BAF3E34BC1E2DAF2F45A +BCFF9A9888412158C73F0289F44F7793B09AE11D7788B2DF2539EC09F0FC7EE91DFC836070A38D +F12DE1B86901966497AE0EFB1C403F81DA5CD37041F0242B55718A9B4855345EAF4DFEB6A0020B +3996618CEC58C0948B8D68042A87343E81FAA82A20F15AFDCE6856281D80E7082799B654355EB1 +C515B0EDB842F153A30EF109F3280EEAE70BD11079B3F339E218A77A5E73E55F7738A0C81D25FD +E5A24EA899FAD8D7D5F156BCA8DF019AB31BE0BE898D521D93E02BCA53F7AFCB1825A07BE7675D +44BB8868354416FA3CB072E032ED4E14397D89689D998AB3540F3851F4D271F0950270A726A885 +5FEB558AD353308D5E1448B3487F895CD02A9F1FCF7164D32747CFBFD7BBFA63470E84A40ECD60 +DDD9D4A140C1818C9B19A67F4BA7D4CC9582445E58F4A9E72BE3FA66F09FEBDDC41AE995525840 +94B372CFF3CCB76A6DECC20991E38C49B70834E1649CADED29C7A3368A93F19D19C8F7BFEE958C +021F54731E5E6379292C2EE8898058633DF19BC5F7463B48BC12DC2DE92C3AEBE2E7EF273172A6 +B064B6073BA7950D9B203119411494E694098803849CF3A2757ADD758C726291407085D17B054C +0B5AB36B843AB10E40BC1D556E42F6D12A4934AD98AA1DCE1F3B5E36B3CFE961DE91EF6D242AA1 +93D20582798DE7146964842BA49934D8117536BCDAA1BF4CFD39FAD56FD110128506F3911A2F80 +0CFA2AF2B6F7F931645F8F7A48A29341BD7D503513600E8CE18A086578C158BEF4222141BA1AB9 +748293483AB5BA75094CAC69D6B48D9A598A22843322D71FE4E54D016CBD139F1FB38730A137C2 +B56FDC38FDCF4B911AF65D9666FE871A0184EB3C8677AC77D20B658D211956B101396C72C63821 +5C21FCF514615F7FBE4EEB17DA9E79AA2DDB6BCD486A5B3DB522C49E78154749D9656EBDE63007 +21DDCF2D738EC88B96E2018A76BB47F71ECC6D2EA330796BCE78C1502AE033D1B936ACF4B14FA7 +DA665A97E4FA3AC09F9C269DCD5422C20B8E5E1E45322663041DA01CFA72787E903D4D3974790F +EE22666ECC6C89AAD89F01E5C683D31B69D298D5C82341E17737413B44B8CDD121705A4BC6BF67 +2CEEEB7C9F8B13E1ECB760A7EFFC1CE62249DAAD1A5F02D65FE2DD8D76B964D1EA8BAF9AA2428A +020CE6AAA48034D0FCE36CAD982A46428D2A2B2741DEA674C018C12713289A89A60860719463D0 +B35C76FBFF9C39A73B3277B357493C704E1BFBCFB86BF566ADF70F0DDC5D3E01A0413511358924 +2CC8DB3107E229733968608BE00ADC1E0DE80427C65C74F696BD256A9E74731EFA182028D00EF8 +E686A53676FBAE9870E93CDB7C3AE6AC9F4F629E40D209EFBB2961F89ACCDE817C4906DE2050E5 +DE9646B216E31A4FA02F9941A9A104F656807969E5ED4A639000C7BECEA5499B6BED13B00C7FD1 +1473BF322B3A56BBB290C230C67FD50EFAE3DA7C2D8FDA27B0BC66941F8012FD4A40D7E65E7CDD +4498B63C452F159BA17E2B938BFA3439BB0DC71F4551EB5DD196C8B7C0ADAED1C255883DFBF900 +94740283291693C9DC77C514F450552C6612222538C52B6474C077D71E1369263ECB4948194514 +CDA6A491EBA464C262D90C11FD4706D39EB5F3F4EEF27AAF150DF2EEAD7EA06E99358ADEE0F1D5 +9A24DCED2FB72DB849F4EACD52393C6EC86E9CDB78D36B6B3280BD7B1C3DF08DB3BE73687232DE +A4B6B585CBC3748164C055F3D7F53C33D9F76B5DC7AD74263EC362D9E2FA9BF9E4247BB900C4DC +60E9B4898530DDEAFE2E316827E1CB13E9E7CF88D9FE0E5043A55B8A5B10CE654D2D31504135A8 +5EB566691B4812D6E05F34BE2DC6C1BF70CA19A6633000732FEBCE0EBF4E28721B78A12F23F79F +AF43F2C600D41EB4E3690B7EA24FC1AA3092B5EA5AA8F479F4F54B2C7721351992C114B8A79636 +FD235EE91D6B5B1BD5CD918EB3436C929DC151CB5C42EF4F62D21604F0F1EB3E01AA78487B4B93 +85D0E09B8E2531D936F5D3ED4D8C244B838B8E72416F9D4716C41C89E2980DADA92B50AC976D38 +7F9E320775EC1E9B09AC93914E01A71566CA9343E853CD63F9C0ACE1FFC41E00B5003AC5FB68B8 +0DAE5FBEB6CD8419E2434DBE40D017FBCDF617F3A8B916EE5D8ACD3689A9FA438F54C5AE5C02E1 +CC6604C021400A437E729C6FA9BEF55A049C7056DF91C68DA0C2F7990B97994A10DCD49260FCC8 +BA315238CC2DEFD07651DA975DEC1889723FA502E4BFA7ADDD25138C84BC049E4ED25885B9AA66 +4BA18B23764C3AB41213A43393EEB6FB839AF29F9E4B7AF4317E455C7F37543C668AF9B8B6DAAC +068370E787B7D64AFD0E8C010CCE9BB2C0D67A6D8CA0CCD2F6DE3FBCDE1BC6CF9F7AE893F93AE2 +9BBE9AE62921C176C9D87DCA4608DAB3A42EE9C2E1F3180D200CFC2CC9706295BF2BC5B41F7641 +1E073C36D501F7B2F2A482D3DE67FE2A65AF72A909539D1109E70800A0126315441464BA5D1685 +0D04455746B4BBDC085E7D15BF2CA5CD8E717DDE8415C1766057473F53F74E544CAFBA17D5A4D3 +F784383FC5CAF153263794C8DEB9C06157407A0D65B0DFDCC20381CA0B54120E874D8154CBC016 +6F015A25CFCDD50A79929B2A9374BB734D3FCE5A72E270089CCF6ECC0FAE93FA7397DB79AC9303 +161BEC51B8C599881706B13A67324F029F62DABE8BD38D6FC5400FE28EB90033CFD5A1C4A2271C +8375AA995192E491436E96AC474DC3A055E5D0DB75116C88E3E4A25810B15E82CA0FAB77546305 +7AEC6DFDB569A2ABBF5F61EBFB535CFCC451DEDD1001DC891A73BBC3726592543D15A2C90D8744 +01B996B839AF5AFE5AD85A2781A769D69B079486D4B5BDC1019CDB69046E4192EF67EF3004715D +7E2D48FD1000DA93C2D7A963FB80EF45A0D53E7055D5A8EB872BD9191C8AA544B8BF2FAAD68531 +3909249571656A63EF113AB89AAF3D12F1A2793197962910D41C5C69100348C5B486EA8C35429D +11225142A70A578B5D4AFEA33D6C6A6C20CEE87CBA9CBC30835067EBD602C4B7EA3C7A41CF8061 +B337EE9C4E279E200C924B1DA0D81C70BE1830487DE961BB8943008D6FBA2F5F5C0A0E319D0EE2 +3C458A69D687FAA5FDDA985B3593CEB75D0998736EF26BE2DC2F7ECF417A5D140A51953D9F06B6 +F7EEFE5EF1B13DC525EAF8A203D4371144548DB8D849005BD175354B9E0834213EBF25581765DF +7B4D2214568C79A2E0E2DB79B6D9A330B5D58D9323CC21654ECECBDF7BA36ABC9F3025AA414A12 +F4A08034AF437BD4A184811B8C861D21D68C89E1D18E51AC98A308F91D7CDE402449FFFB4D92AA +7CC3EE25DCD81D03712C0CB1666DAA5669C7552C19679A2F1367A222634A3B3EFF7CB21FBBC0F6 +BC37C62BAC7FC3DA19533344EDB5CE57C8CDD8A6637A75CBBF8100B8049C1F1BDCB695FE052A13 +478D5B16E025975EDA0599E6BE78F345CCF99A3494F610FE4614CF6D7F495167F8624E5A837157 +41C98DCCE432A70222F4BDB2C946E804BF5901E43222D84FDBACB5059DD9BC9A874C498230D3F2 +5699F647C873D6017488990C25F4A84EC4C38ADD46ABAB93A0272201CE3FA3B1CF239FCA8FF519 +8DE7474518CE05F3F0D9E72DA446589CD7C084B3567D23BCE3049FE59F05F542A29728B08A9BD6 +E853F3637A4CC9865196A24C9C6C38B97E2D2005C2CD395E94260AA7530A6C136BBCFEC333D0FE +74014E6FF97BB72CD076ADA21B960462B0EC7097A7812EE3044B15293A02E3E0C71F76E10ACDA1 +73F29CECD6D9AAB7CFCA3405772463CBE2BA6D23A270755C3C740A5BC4AD27C35B95932BCD8B81 +5F2E8786A8FFA7746DA891C83A962A3D88A7B62C720A0C7360397A4AC79D32EF020C843A1AD856 +14FCEA427D7D452ED6D25227BFD6A7C49340E178906A09D616337FE7A3B44854B7B449A4856F6F +AD157366517850666FEF127EE87E97234BE5E8059E1975261DAE35308F31C3E14DBAC56FD7C055 +BDEA02837FA4183F158F87150821DA50FE1A57A76484FAB98F808C98BDDD40661FAD8BA00E64C9 +2517E259179EC40DF9EB005F517EE72BE7A3F3F2274C6FFE3712A4BDAA872E19D93D8C01056474 +41D72B163B460947977F93206CDA0282D63F3B5DB0D8911B5F921D5054081B460CF6B213D2547B +24BC46CCDBFA3E7AFDE74501B68A31BE5ECD011F4CE6CFFD3D762B2D90005BA732F15581AB6EF2 +E99264A0E055EDF3A2D8C9CFCFC0989ABE3B2E9B8FF08A2BA1EAE1FA92D49BDE5C447C5C156CF0 +E5D5EF4A45A1CFA72554B0AD77520C7256FDC2A7056492D52D6CB45FEDD5D627A28956397B0869 +AFBFA53B5D3D113E7ECEA051A0E3FAB7CD8E62BDC94F8B482EDEFE3FCF9D391E59777DE81E5609 +D92EB704435B291E31CAA685E21AF491ADCB2E2CB67E42803B9B84A6479C149206CB57503F6669 +323DBC71800844D05C335D966398B4BAB12079965768236D29994B9B4E3B5794D6A8976D2C87A9 +1AD31BE5D9603A7C3A061C3EC9827E6E48D105F093CF11E188F236815D7D04B879AFCF4536C9D7 +9972181F3B7741E48C7081CFEF5A7CF0E1927E80DD08E3EA3613F5C8671753A00718BE42EA6746 +D9532D5A9C6C705FBA16822E7A847E8B1C178024754B812F6B08CB7B679B5CE29D044E9A2F41E7 +CE6DE6B088B3C1D3CA882EE6692CB18DD9B5070CAC224C95BD3BE0F0FB07218947A9B398C40D55 +D0E09AFC788D43392F122DF3CD74612A2226FBD74A50C53456D344E3725E21DB2E2E196FE1532E +0EA5CD3772C9A0B3A3AE8C3C64DFEAE4C21D12F570A92A84C75A878084EBFAD870C1A5DA372DEA +433EAFD79F350EBB0EE20822E5A52C92730FD2A0D08F9A004DD087853A48D49507AA5B1A127D19 +921DBCE86CDD407B5B4358E098AEF334A9FF7E4AB3DE94D3414E47D758A4F37998BA6323A27385 +0DB0D41F9580341570A4CA7149EC6E4F5D952E5DF8024F86D2FB962D7A717AEDB7C95968D3DD41 +DE45F380836F03B9228401B5A0EA8BA64D7AB60C5B45B8A25050B985F63F66BADE6AF149C0BE52 +59D368ED1716D125BF6B5587D443C6D5ED7257C28CAA747120565FDDC0078D4D805BA937244772 +37927A822AB6E08DAD4A672F28C0A1159F061F46E41606A1E00AD0C9BFDC0DB57114083E319A71 +E150F6F2B5AC289425F6A7A440A83202D4AA8B4DE7492A95FD347B281D7EDF6342756511758D6C +FBAAE5E073F5D15A378F36DD1898ECAE4580C3BF89D6416CB521506F86A2FAFA04A91A93B191B0 +ABD5D7725EEDB2B5983C17333B78D7DC84EBFB7E4A849D3DEB1676A44DF21535931FC16D9D818A +0C5A8FE5E44279E12BC1CA2E8B2EBF90576CEBA9656E2EBED725643AB26341D9DA080EE57098A3 +26B69EE4CEC5EE684C61D03876FBEEBE651D980738CC23CCCC7376328314F5A6D1083552631627 +1C01A50150FE8547B4BCA181E1D887EEC465E2AF3CA26D4FFA699B0ECB9EAB0DA71A590AA1CECA +FB8DB0CCDA18AA76335DB7874BDC49224D1DA363011B0F7187D2E0D8FD19189A5C82C4FFAC4CB6 +0FA7B0521BA5194D1222D0779C74EDCE672848C275C8F8E9AF39E0DA3D8BE9B1BD4118D9B11DA9 +D233D9CBE8C5AE5D2A60FFF7D28565A660D27F515D6FA0897CEAD04C6D6E253E0ED5E56DC1F005 +FCE2AD618F79CDA6826875D91262CC6D6A64BFD70E7FDC965CBA9C6BD6F251748A5A42BEE4AB29 +0E0262A4DB580249A00C69D1CBDD49E3AC700CB973BC9358ABEF8A116CB5D8D4668C302EBDF06C +9504684D7D18E522F7C42EC6A77171552B873E753C1A1888666D23E6F9225D092C6DBF6A0D27C7 +6933632C5F1C5E01C8E139A9EB9BC084828F85095BD9E6EFA0224F86977DCFE653F00AA693623D +CE04693A7EE2384A285A6BD7AC8767166FDE75194E326CAF447FEBD242CBFC71B637486F9934BD +1AA8BFE3CB85F3DD258E079EE910AFA64770D5E30CA9B289A4D7FB7CFC48A7040774D36E8CD061 +AB06FCD9234D5032EF68AFC943850E53C1C3980017563C67E89393B8EE4D93585A4EF1533D5F0C +A40FAB6EBE8721F58D05AA69D6067C2D6CB03FDF0B83DBDB696D4D4AAF3130A98729DA58CCF546 +AB2202D0B4ADE6B4845A1202D3F2456E34A1100FD6D445203153A1D11F3A2511CDA83C936AEF3A +B05B5FB32B76029153B7FBE02057AF6993F47149E90080A3AF7CB29762148D6F94520A343E525D +9646C0C79F1C79E75470D232E2B2CCC04AA8990909E0D26DC540582B699A71BB516DC2860CAF4F +6F0BFC7B5292052DA41DB92BCD030863A117378B93DF7CD9B0252964BB4D80004EF8B3011E9550 +DAAE2D24F2D965E90342D847B3685DB05631D550C1FCD76C3B3903ECEBA1A2496F0DF28F4FA367 +C9A9FDB48E5E1410E815D7E93511EF7C94224686BBE827C833E4C121747AF79C69A27A0DCD982F +91AF0BAF9EF3F9921B795BF42B817D93DD4D816DC698D063AFB306CC2000B37AE93105AB2E6DAE +32F9DF44C09E7466A62B2AD48B216374610994CB120724D0000AB54F6837DC64ED4F6CE8684B14 +16D7EDB9D9A399D39274FEE6FD41D8E412B158A26C304FBD7CE0C4F96D01F5AB8A20B1FC4F00A9 +D33AAD2C656B31053198EB4704460D476FF2F505321212903FD21E2059C470643152B99B2E903A +491E8E394BBCB2C0411D6D86210D5C3A43BFC2E01EAFDEA712F6CCCAA90ADC2A358AC62718D482 +FC31914E0157733283BCD29DF6D2AFF094C2496BAB6AA72265215A4BE34363EB879889E7727AAD +054F90172C1D6858C8A338DF6C1EFCD64DCA8ACF46038F48392E75DD0BFBCFDE8EE0791CA2C0A2 +8AFD16AE56382ACCAFEE2BDFE97DCF38532C19BC5E36F9E5D82806D26171267BECC9FEAFF3000A +005686633FE25967BED0096843C464BCA03314F1C5971FDEC8E24B80D0FD97B7E5763B427EBD26 +FD8BD086A2C45FEDF23218CCD381BF364EFCAABE04DA6687241805E37AE866786DF98C62745FCE +9E0D6332F2BB90C0B2EFF14D08E8EEA6BCDF650D8996F48355D26CFBB859CDB418973A65AE2C3A +767758AB288A038807F4F6469A823A9EAD746560130A2A5308AD0C3675CA8642B2B9FFCA8382C6 +E61D7959D9BB369AFFAD1C69BE31E00F0B23FB8DF407C5EC68F3BF298A35351844EB9653C83A01 +EDBEE75F792C502DF53257121DC8A8F2670AF1FC747229B53B7100D02E73821E176CF5B7518D53 +B420B1BDA8B70CEAE801D745C66231E62797084CB320DDB021BD5830BA1D3F49E03864E6A6CD35 +34511FBFAE8A4EC4E3EC817228C40F7F87F524790C4A3C4C90C010CD965016345018C27A1325AF +E7F8F4A0F0342632D1C5F9E6728CF930F789A0F3C740FBE88015E052168A0D722B1621ED710BA6 +6842BE691E91F33EFB0708E3EA188DB42E8F4A54F77D61725731FA2E2D61F245745AC1DBE231B8 +460C3323CEC60BD1CE92CE7D1A2640D1594D24683D5E139164A26568544FD89F144F57905DB9B7 +EF81A36BD91999CCAE2192FC87C88F33B01C609A981D675A3AE8B13DD05E2622808826ECE05EEF +3A36E25D90EA3723BF34BC6D86CE95EDBC4DD3D088869BDB105A5334B5108FADF1F336605A734F +17044A5EABF468F4258F9E9A3E69551ECF0A4E8124EDB178B800D2708B95C2882A757568CCCC73 +C40671BA1B7737F55DE6ADACB84E87889738603A6D8BA0DB1D4C5B3730C169DA35017D477758E8 +9A33FCF009BE53F959C3F22973887E920427A968730DB8576A07C801969F89C93338A605B8A961 +54C62036EF908C81E65DBE441031994CACB043755E76A2E55BBAF6628B1AEBFEC81EB727662E1D +C9DFD4149217DFE632606ADD92D2CA4E14443DC01CFE7EC166A4A2BDE3A06BCDF16500E12CDD2F +6982F19E9951AD81302D2D0A20F070E75C0A3EDEF40AEB126DAF98250F6F3E38F4BC1B626E99DC +647644AE6E4EAB48DA046C826AC7FECE466C63F75B872EE71F4F3A2122A383BEFE7103107A6169 +76C4FAECB19EBB850844FBEBBC161506715C357B35B83DEE1852B7268C65F87F4C2F96C3FECE37 +88A902F46571F0994A6586E7E582AACD11EF5EAA69097CAE24C610BEB303387CBBA1DE0D075FF9 +0BD4BE7E07C795A248FE321B468E02B84573D7486D59CCDF8325F94033EC633D2BF2867A42C0D1 +E0B0745EF8D9049D18B2AB3172093793F4CBB9DA888AD43FC22C933FF5C4DEE3D890AE21B280EF +2DCBDAA03AE4EAB52F81A14412F26D2D3F0D49C8335D8EC4CAA6B3596238A28BD62261094E78DE +BB0ED51CEBDE25878E1AF705C61D37A71FF60AA47FA39DB6DDB5EBEB281584A5E67B971502716E +668FCD2A7589DA07917A048F796BD1C8512894F9DABCF712C8CFBD9B5C7760C6CBB3BC6031F288 +235BD791475907E5BCC6B1F300069EBCDAB1C3DC52E49D5C8D95994F880C5415124BFDD673C492 +CB6E77C8C44EFA04F7C5FD357CDAD23CA3642AB4359A52DFD2341072E368CC76125C0BD7607B11 +A7607D35F1A97F0B30BB56D4FBDFC9FF4BB4DCF7D670E7F5615AED6CE0BFF78E3180767C48ABB6 +18F85CF1328ADA21E937FDF0F4BEDF9688870775AD55A0B19B20948BBBA1B75C1DDEF0C2293B4D +AE1F54F4A99D98F9B40C915990A6A08D5464AFA2F33B186DBD382D01F8B7F4341914311CBE2507 +DA3D40A333890E08236DBB4060CEBEBEE427A4DB8169E748CCE7917C4632FB85434C2AB79DEA36 +5394EA461720AFE26B51367BFBBB310A3CBDF0509EC75C97D6EC15489F3E2AD54D5E76FFAD6809 +C8992975D9C694EEF17EC52E78EFC3669B570D69ACCE61E5A7D6E73FB37823D64CD9A16BDB485B +9642ACF32BEC3FFC593E03C3CB71867A0CB57DD13A93DCB093276E85D153CD83920D560DA50C21 +443C72B521DA546F12857BCFD5D372E71E0AF1C98EF482F04FE2A1B577505C602F0413A71B070F +131E9DEF87869FC219DE59A1CC19AE38EFEFDE2B69F52708B60E48EF686EB362C690DE5C031D62 +E9ADA7469297531BD01F6E39DC78B7C6830AAD04277AA98EBA1D82FC0C00F5A6A1E108CD6835F5 +53346E921D728F1B4EC0B9930255A68F3E9031F360CCBDF01C9681D602A5B9F0BE055269D419AD +73FFF504DBD4953CA30D4CC5B4C57E7921D6E648E57449E189CF7820BAD4274555CA45C66EF0DC +34DE52D3836812264986B454C9612AE8F4B1A93C86B5E4B7DE304AFBF080BCAEF1C62FE35BB3BD +335910FFD496760CFFD002A20637C45690466EDE85A4F28965CAC5C66F323D3960DE8389F1A758 +027BD0C3188F249FD61545C1EB9D78A0EBD81E5F5C2C8445EE82C0CB969D788F1FA267B18993FD +ACE99B21A214C69670C77D920617074059D92819D79FB4BB4497F4E2BE1D8243AE0DFDDA0603EF +E51D1F3D47135D354D9D7F756CAC72E35BD4E8DECB1ABD53CE2ABA5DC1526A10DA69DA2FBE9328 +A334381E0CB929266765898FD38B74039766985C88C2BB9C448B767264353A0BC63B0FD1645D71 +026DF2C08449A9F32F25C4F432119BD9A7014AE3B43DEBF621C9CB92346ACEEB5C2B599D553708 +2E054C3A5680A08191D7B87991C2ADB192BD11545BA9F5096CAF2DD7B7EB290E70AB4FDD3989A6 +B7CC123DDAE328E922100ED8C7FF95867E9A168F1C9752557AA023C8154E9BA970FA0219A9889A +5CA8D001AECABC4CA840322BE9EC9F6072E6E7363C258789D3096875DD236CC02B078B22484767 +D7A0CE87394536A796A6498708C287DA9691B1472D4597DBD49F4204A05191265F836EAAC4E5E1 +B1D7687BEC630C3CA744A044993C03D4B935E1CC730FCEA68A2C0F5CCF52FC1A274AA67B3B6177 +F4B87DCED4856E14FF00FBBE8DB4E027751B367722ED0B39CC88216177F2CA955958CCE0A9FE85 +71CF8A1EBF64D2BB3F177F3F0EBA581AF9ED746E16CA9CCC2B5EECED7A0A2254E766B36AB84A25 +4987727F130AA391B5CC2FBB9854AE66876FF09A387F98EEF39D3DDA94CA2DF149EBFB59EA4D4C +CBA5B5F464C4C094CF7D1F8970F8F5BF27E4C7EC99D5C8DB1CA55DDC6DC5C7DD72B62A7E5C7B17 +D5379A6CD2B6F666FF6CDA9BF690A8839E234EDF6E81BF3969F0DAE3CD69D48A6F5B0E57660BA4 +B57406CE46E3C36C0D348EB44C1116878449F9182F23BCB7F33F944D33D15BE83EF3989FB9909C +3D5DF3442D7CB7FF592CE9AFCFBF8B1CE63B02309212969E39B9C1A933628FB38AB7565C3362FF +803A159C82B0FB6D9C8F1E7BCE0DBA8C43C8A269DE2E684C9E20FC4818BEC7F307B6D34661D4AA +FF8A34AB31A2B3A349D706A34831BC61ADB414C7B75B78D08A6C748715B7B2FC84D94B73EAA2D9 +F1DC97E78A3A4D3375821FCBF80E1D329289CD698DEFE021DC2C620D1558F0D2444AAA9A18419B +CF2AD07529D307CFB11ACD08EDDF9371DCF540B2B9AB5D005068E50EBB6F9A0FBE98DF6ADE3D4D +F2F0733C8B094202AE749953495FEB3E9E9A645647CB6755B59E7349A1E338C4FA8E4BFEAF951F +407EB9F9CF1698C1B253D471FE553D8DA0C21829EC10CBFA7E4411DEC7167531B006BF1DC11E5C +8BB96793B69BB78081D677DB08C3FA70D050219DE116C05B3FFD88853496D73CA094E3F373C39D +F8D8F16BBF9F858CE416D17797EE7FFEEBB0428B15EADF7C2DC0DCB6532CEBDA1C07169820170E +13C5FC90DE91C9D95DCB23831370A5B4B798F0B748C3B80645EC427965D6A24FE712F199405812 +EFEEB8DDBA2AA91AB87EAD349C87248122B510A0DF27EE46408416D8CEDB7E69EE2138DD95E526 +37D44375ABF3B9C266EDDD81C562501AFF0D4241304A04E71346ED178289E1F1CE61772E1C7EC0 +01E94564CD5C9F3ED640D8DAF6C1082CD8844653F78F8000ABBC4F34828085291893D690403573 +888EF8347F6723A5F5B7B49AF74B93F731C83BE6AAB8323D2265932ED00046B5A825E1729FBBB1 +BA18D48413A9ECDA400E75722E01C74D6BE5DF26B17DDF10C370083A20EF2D1080BA9F2C2E71DC +9C78D0202B9D82EDCC7BA3A8940ABBA51BE105FD8516D8C092EB4BC9297768351FA0BB13722516 +110B2C72FB731641B3B15347CD68C894DCF2281D7A028BEDB6D3001D1D62A00A260989511C8FA8 +0C3F154B12B63BA7B639E6A111504D0B0865B08F0D9973500C3664B374916760F8588C1DA9A6AF +74E9827194A893D0E419164521AC72B2EF626E544C3461F9A29791BA69814944DDF7032D2D1BD0 +D173D18D3E06BA08C209B20C71BA776B7F44240187996B3F4C42A797CF50F1512047A6359BE499 +F65E639D59877E7263BB0CE25B005E7A387173483CAAFFFA0DA53DDB86CA12DDCAF8E415FFD59D +1E00855F837CC1087F18471F2146E0E0CC1901F9D1B968C13BA2209DE45FA7FA4863B159EFAC29 +982D64DC60F248DB16FA9F08F9959E6FB01543A77679AFB705B7E03995D309B901BBF9860F96AD +7715E7E3F0B66395C953DD21380D8CB1B1791F353D06CC045C457AD2FEE593C32D77DFE63FE9E5 +9F25556892714F2C5E319C7FC1051AF2E69A0A557F26C46A9F9B4F176C5CC1B10AA4F00CDCF75B +3541154818360F6063491BE10311BAECC1E27C38F7349B50ECD72B81F5BDBBE7C2F2994BCF843A +B06FF3FC7D37D6A5E83FB2B42F884E3BB14D7CE1B181142D558762DD7CA511A79DF94ACE080D91 +A001536BE0848CBB9B54FD29B1AD29AB5C7CAE5257AD8D5462DA2A9D2187267CDC5D71AE4899EC +FCBD408177396FC553884D50EBB82E5E490A646CE133F06FCA26733A5B8AFC13DE5F3ACBFCD267 +ABE6490790BF990FA258D7B1F5E513A92F5438C99D8158512001538C085259CE8552A617855AFF +7EBD71DDE3C0C04B15AF98F776E001200DB7E94D50E7812A5D32315AAFEC430EC116CA41489C87 +8E19DE768A2EE390E610F92ECEFEFB5D63113078420EE807194A218DA54D186C412C9906BB725C +D4380FBD73236A727895C0BE672D5EF49E5C2714454504E87A8D1B2AC808AD09BB47A8165105CA +27813EC651185F63C5A9EFCC9A7516DF4125E43893622BDBBC8973C8C321824AB1EA53090DA7F1 +B3EF9AC4BD5F4F7D65339D0B32884CC14826EF4860B28E0B1CC119BAFD0EF0BB890A020728DD1E +EF3D898E25610AAB5FCC83C9FD677387305D4BAF65A7CC9CCFDA17A42E24BA625580F0708FF9B9 +9A87CDF87452E87644CD9F59AF16A8E62A9B76BC3385692D4D3C0294EC71E3B662D53BCC95291C +3513C55594FAC96ABCF86A421674B92A8610251D3D6E0BCF60738FAFF64D2024538FCC4FBC588B +843665FC4FC64F6092C6EE7B682A3E5FA272E38C8FAA1CFEA55EF235F5D67D48A46A00FF58E47F +F96263D4FEF92F333C71AA3D6E0D3D0325DAB33F60234E980A5E0B8DB77F85D628A693C81A532E +BA7B90C071F8B7BB261947D43D70F7B54EDBD1D6F30B8509035FCF19F1AD8779C9088ECC6F9D1D +EA48694ED5F7814DFADDC430EB361CB26B9AEB430C31B2D8ECB1D995DCA939E2613CB48C0BF401 +F2369329C215B3814BD135E573471527958A3DD8971694A02B812A33F4F5588F06CB0FE949CB3F +648475AF8C778DDBEE0A7E522FC9309A6496489856BE72B91D6408CA7F0F388767C8A6B0710069 +23097353EF934B0C6A9646054B06B4FFBA632813676CB24CEEC3E28D3D63C8D13A041DFDCE0158 +72A4E2DE2B4735363CE09E06E4E7F8F6A9ECE06F8BF82937A8D893043B7438832F17F9D5E7B082 +92D68D0E0617B22E126E740E1B67F3595CEAFBA8DF47059EB6AE1FB15F2DA5A8981CC9B8805929 +F1564555CD055614CD94A5DB5487B39636DAC4FFBBDD59665AFDBC5253B475316EEA6888309F27 +AD14C2316F997372D5688DFD804F6B6034B57885B76705D2E3484CAA5078FE95592118C453FA65 +A99BFF295671C1E9BD2E6AABF1F48A71503613D3A98FB047FB5278A456A6FDFE328CED49A2121F +0D1285701F7400A96D6F11FB99C6A456CF1D792CED72652CACF93B60B273006C83DB3741441BB9 +35A5481CECB254F410103A6DD01882097C8D19EFE4990951CCA88394A0FDEE1D763F6381391C85 +F78B9A2986AE3A4622E9FEB55B38ECF4F0E0F83DAFF187A734C752F579906668A745D4E7DAC7B2 +C7731A61252E51B8FD85E077174BD9E623F7AFB78DC102CC6368E8E115423F4CD2CC4212F4199D +C5D6AE755191D6E6BC040EFF9DD381C15FC4659992FF8990A4847A4A11B50A241031194229B54F +00B1DDB9D1AC575529629A161A0F1C98B248C605ED6F85A9EAD6EFB098EEF9810C320AAD530901 +5125E1D5887C25E222450A0C606116F1DC2ED89D3F2D3A6C666171371E59F1DD1D5891DC3AC02E +572B135BADCC453EF126F15C986499CF1F3DC7B9F7C9AA47399022CF9DFA28899C679F76BE2B00 +1FB281208719E23C5301941786E1873CF7CB4DA0F5F92753624C7D8157683F6E957805EF570618 +6E9EB09162F9AAA04D7907990296F899F1621A4976734F9DCAE11CCD969F9ADA669D86ACF1FD71 +98D23A1BE3915D8ADE29D8CF640D5349FD3799EF45E6BF86FC60A384AC7D6F508CD17A4B274B37 +4B37645B25E34304C2D82B2A31170FBEB0A68966793674C1B3A4B6A117BB2F1E9F7CBD52E590ED +D32BBE4CC0F75D0861D37651754D3BB1F3FACEBBDA42355D301510C9D1C35B8DB1ACEB5DF35D6F +76CCFAC79F3BF0C5C7F797C894FED365267B0A33514B8F7600424CC7D6E7FBBE0B0D3C8B6CC8ED +3CE2B4520E2FBE35A154107E6B84CDF46828D6720F62235AE2457D0DCDCF91010BF15D3CAF95B4 +A236019BE0AE1A2E8F78F5DEA56FBF1016234F75423D307BE491D29F6C27EFDC11BCE180B20F39 +EF0C4A9C72F8ACB61DB425A5376330DCFDAC700910AF3BD767BC87C4B9691C3DAEC8DAC7C226AC +36AF7E444BD30E11EAFBC8BB77181EEA3264FAB7F63142BECDF37B8A5F63807249E618458D29AD +0E1FEEE567EAE1B4B513A447E822A688C5D87D64C8ACD804AD1C81815E287F50BF5630CC631A93 +F95C59CBA596DBAE1EE8502E3073D76525FB2D4F94C5203569B02F94593778E8775A87CBAD08C8 +256C51A19CF381C24180D4980EE17E94B01AC761F910D6AAF09C5027B79293FC87A1DC3CB7080F +6EC0AB763CDF14F6D7B1899D529C42A262B579A3BB96B693BD793F0BF7AFC8D1B60289BF239224 +35CC3DE78EAB44542EDEA0F24828922A702E7A11FCF529925FEAFF53751502F9434B72978AB7A1 +2B64E7BD6DA9917C9196EAACB3999225501410C818472B097C708523C310A3FAC7521BF6AB6A4E +9E1DB38DF4D93F9C12BAF67BC8B70AFD8D08FD6F898B96629A913DA0DE669678FA1EE7086A1C3C +0D45AD5C63433C574BDD8BA625897262A06F5AA47FDA71805868B9BBD7914D7BE697BC90C74785 +30DBE5F5576058767B5C302CCF7DC6460D44FB635B5AB595F216C13E7A4D54029C1E9281444B5E +3B1FB3D8C7D72BA0201C51F4ABEB9CA263D4AED86B5B0CEFD0EB142FADEE40A950CF441F547B7C +71427C30CA22C161DE130AF5210E5BD0D58AFD748D574B46A2B4EB4D6CCD31F4DAF0CCF94C7DCD +80B0268DCE4E69D97E6F3CCB731536528B5CFE9AC0133871CEAB7FD6B1EDA4FC19F8B3E7D9A92E +9DB50F198B792A13986A2368DE33CCE717ADE5B0FC6F76BE8B4EDE6AB157E014C6C48CFAC5D507 +53067E9330A2FE7737A0A8F259E5FFA7A030D85FEB857D785866CA8C6A5043ECE4C1CF30E76C0A +071FEF8FB30CC9BF26CF5DD8ADB87A0C03494876AA1A2E9AEFAA45A98CD71E78608F7523B6D686 +EBD8048BC96F91397A4CAB1D5A496B43042C5DE6C1C439B8D09F6381E88F825A08E818297AA27C +1D37FFD541F6A9E5D4B7E8DD8D13F8268C83135C9631A603C69DD22E6D3B76063E5B0BF7158C9A +BC9FCCB946AC24995228C48BD031D0A959944181482739EFF6CF2330A6A6C6FB906EB123E44488 +F42AC2BE237CB30C441B5051C028B94D9E6B7E57F5A3FF5504756D7EC411CF61073763A5E72FC9 +DDA6E3345F58646B69EA140E1C711D794E083623B84A4FE110256FB8543D32A2D5535B7DA0A73B +D171049412FED79B84BEB56962E1FFE1A12F9BE4FBC72CFDB9EF92BD60B200AE8D66AEA30B158F +E9FE278D8833111AC805ECC90D65909787737E1E1FFC88DE07B8D79996C9F5685F57102C65DA61 +97513F85B173200E3222876AAB83941CB066E3C642AD23958B00B17516A2CC8D8BCB0C802CF34F +A97851C037E656C30C446C740422991832129889EABB35F5661A430E5A503F99F5381C5F26692B +D8DB7E9F6D312A297B697E93831A06F386AE2BFA2BFD9361F2E366E18EBCEE56B82C16B2DA0017 +95CCD97D67ACCABD22DDF00898B3C39C7442F1488552BA46D4634CB330D428A19351E401F91819 +708A82D856DE3C29180FDC56C6CC7038302E55FAA5B777E8CC6CF4BE2ADBE59BD270658F168C11 +096178AC07B7B830C0E782D41F97EF221B7B91BBCBD1EFE3A7AC3BDC0CD61C74638DF410AA53EB +AC35A079D6D3914F380F4A376B50892AF20CF28F4FA355C6364C614A9DB092DB38D768211FA16C +A991684DFC8F257AB0AB3F18F3D7C89934FCCEC089E6709BAD37B935E875E34AE5AF4561138D54 +9A725F4AA92A66364DAD50D00B1E251FDEEA8C145DF1ECF74D59981948C6A393D7DE3EDD731D2F +EFDE29D89E9A4D94C69835050FC3D8513ED2C39E9FBFFBB741437DFB73277E227523A45E6362D9 +1DD5739D82821CE0DD3963D0A4F01563A82A94BCA4282563F1371322943A286FB67742953B9152 +7B377F49334141DE26AD5D170CAE36767A380A794C755A708E339635DDD2F6E7FEB4DC851502E6 +F4500CC83DE2F216304D0095190E3D405643D609921A6A895DE6F2EDD003CC4D30A5F131803822 +5EE6E072374BF755D5C0D3B59888F5B06D0167BBE0A6C5D8E5504000E4CB71C0F18E01CD5EE76F +102DC77084D2EFCE8D85A8C2C38867F10C945C8F13B12F1470B0260612C69D494AC06D92DD3EEE +A0CFE25CFDF09AE8C96ED32836E28E5583D60A8469AC220A4EF63123D4905890EE48B617C6F16A +7976BC855AE0BA10E37261AB4752C6C9BC43FDC20F2355E07BDFCA70F7F15744A973425A4B7DD2 +26A11FC9D40FC34A38EF3A05FECECB29D1AB4BE73CB14CB3F6D43542D3A4821D626A3D5EA1691D +C39F4E066C1B6C332E7611F13E27BBB6D7147ACDB573E9BCEBCF7E35FD3149BB0362E701FAC28D +7F4D114A358D286E750F364CC2FCE36D3E6E9DDF6739FA1D1710439B28F159AD6C53AF63CF1D9B +43D23CF6B8BA2A6F0EBCE50C5B730CC550ECAC630A328BB269E26DBEDA5FCC6C1AC14FE5485FF1 +8945D6C33657E86812E1483AFDDCCE4DA1F2CCD18703CAE39AFD732A4C26D65E29699848C2E396 +64BC127F88BB774A3088AC0A1414B0E44B194EEBA2055140374AA338D6B9D49B4BBB64FC859031 +9589D4166EF38F1B5DD8E4EEC2B39251FA156B8D00C07353C2B038322D130FC9EFFA6BEFD47BFD +D6CC1924AE5046C077AAC80B29CFFEEB825187DB1B72BFB4689673F10EB0DA0AB3B63A5E2E8C7B +39854700F3534AF6854E0C381A051301D24D4182A9FF745437639A4C61AC7C0505D62263A29E5F +E0C7DD0702459061330FC9F72DF43336BC1F6AA1B5630E74C6F723098DD22B7A1DF9D710C10D3A +96F90A36693D97F11F285CE3A4C7C799B3C3F28FC99504D54479A6C3D027B48D3B31EF23FA1A11 +24840092A41E72E08C3146E22B110346B2DA7BDB75505658E66F493BCC1250A8A7EB41836A2655 +DA0E9FED1AB3AB8065695873CCB358322BFFE548A17D79FEB4CF4D4E8A12E6ED79CD0065E1804B +201A45A6F757809D5CE810C02A3EACABC8C28E1C766501B886152AC027E75EFEEA7E1827FF276A +39ED79181CE3B2D94145710CB53538E8BF3B0DE5CD3EA0EC4F7D2BB917BEB5D8856C935A00A4E3 +4FFB22842279D7B2993B4213B01B71108D2B6516F1C229FE83CEB9D330B64A9CB9884339AD50F2 +14891BB3AA89A6B63193E54F641D0F8416D0D32A1D9E849B51EF1414A7214A65DEAA37C6559CF3 +A8E16299F42EC5CFA325B8B40712516E7C9DD6D9E3E1A62559FAF2A49D5002F6DD4113F5CD58D2 +A03C8DAD6B18960A806A3335B4D2A4A8BD7C09421B7B5DFBBBAA57A10E3B8034768A634565CE44 +B6C0F84FB5AC4DD6C1905F544B830DF14E56E5B8E33CC75917FCA0F4F8C878ABF607E971F8AA6C +E6BA24E970A7AE710E56331D3F9BB7C2EEFB6C09835DB23F1EE6942E464B7ADB1C9E08CE5194E4 +948223D4C3445D4D91A9D884BC57D305C1E71331FD869E412FBBB3701AB9F114837AEC737C10BA +624F1B234ABEBCE05B6D7DCF8C4FA44952DBC825FC41A934D71A23B4752DDAD280B5EC799278B0 +AEE5BB83051B5DA60F34951FA7B90189DFC0D53C0D2B7303EF0839EAEF0A096AB442E5176E91EA +A754466D1807B1290DA0D3B3A675EA2EF9D1AD02D177195D670AB368EBA57C4B75ABCDD4D603B7 +7FF892E2210DDEDD429D6B12FD7078A0A04C02ABCF10B169660D0A7E184CAA2EFCDC98A2212692 +EE0914895248F7FBB690CE2A465AC90971CF57271ED4DE777D8B345259AB02B0DACA97E184E319 +8ABB5DC33E9BC6F92744EAB9DB5C20DFFA36B6C0CE1041ABBA09E50D8BAB6B5B3520FB34DF68EE +B43B674879201EA95DE7DA8500DEBF253D5A81DD13AD3E7CBCB30200E003C27BEE141ED856C11A +2210D12B1470804733AE89A0180211F81E25C422A95406C8A8743798B4AF102EFEA47BFC2CC2DC +349599A4C00037A9EC03D2810B50A52AE9E5CEBEA3E2B4B6EAC0EA06046AF69CD718B57044DBF0 +DF5EA36A9B8DC51037C3396B2D0959DE97AFD35C17503FA02A313F5FFD50BEFB383E9BB672C535 +54154710BCBAD171A654C879F500BB7DAD189B1E307001B046D98C3737F906226342072DA7B7A2 +4FADAB5381426AFE402C42B338627709900EEBC77F90459492BE27041A126AAD9E44A12CE03C83 +09A407163A04F667F256CFB1066BF03F317179E57C2762DE417C5EFAA880B35E7B424BE96CE0A1 +1660F85B8FCBAA45E8F2262814ABC86C58864CF1E843F2733642C72D9AD13718A9A81C1CB4DEEF +130614E91B8852FC6793BA0F55C42867951A1E39F5DDB1DFD30270438FF363974633862C75335D +BB602C94FA037434DC319E6A0019350200782CCBDC96910DD18FBA2711A2534B08087E83A96C91 +3CB856FD45AA3658B76CE7041A57D46B019C76B3ECA0D757AFD0534B7C6CEF2939918CEB5DC524 +9B5601CA37D0FBE8D90EA9302DF998E37BAEECE630F4019FA8E602D460D6EB8682D115EB3F2C5C +8AB39639E1FBBB1109A31DB5A19F116068518C3C98FB4E91144B893A403E6601D4D81DB1C1F00A +80E837116CE3EDD313100D0B8BFD3193E20CA90AC3CB107733B6499A690F2C8D336FB29E144470 +2A5217E1E91852F5EE0B2F30B61CF661109D0ED6687D7DE2FCE90622DCDB176CBF18C9852FF3C2 +B02F9FD7AAAA692E9162349E766EC29CB98034D3A8731F4912193F1F480B657BA84E282540D2BD +7AFE547D10936B1739CBFED239A9C3FB8DF52E9BA1F38FF0F34E703B16F87C48EC50662078FAEF +9FC4EF4526F90740FAD6481AD3B4B5795C9E57DFDE09DF24CE8773B1FB4CEF1C95E73DA6F72018 +CA0E16DB42DDFE16C6697FE4D7E0AB517AB0A93C85EF5E7CE2C44137A6AB15159738728C6FC2A5 +BE3E799D5C832DAC601477C9FE8C24FB368AD1C6092C0DB6F516CC8556A481CDDFF1D26640647D +01516E38275E27B2013434E4DF83335EB166395405F9DCFBF6C2CE886DD59B1AE605690493CFB3 +708BD1295A114D79A26F74CC11F49EE90EE9A364B514967C0B379E676BE00FF0073CDF0CCB5756 +E66B04AA0FEE5EE376C0258E2841D90176CC6694F5CB6369BFE4453236B4F5ADDF98B86C6C8F0B +74832F6BB6684050D22CB28CCF9087B59ADB30838930E2BDB1FDB955C560D4D617EAE79064F742 +7F1DF3E2A20E413C7BA3E9AD26CA814295FB331D1080B45F006513F359AB822C8C9AFDE0B2CE30 +8936A66FC5C3033567C489565A58767D251D29DFEE44EEDDC59DEA50457A258FE68F7EA61208C3 +238C7EFD69F09A5C8FCD557380A6B4BD82D659B26CB4DCF180CF0057D120D6A6E0DC291C40DAE2 +833F4E84A18F10F2F32924BD93C5C70C207E5620B60E172E238EAF0198D7A1249FFB788D6C1AAA +4E7D0B433D58C79AEB3E5CAC751B78B55E2C2F2382F2F04A71C044B98330E16D9B74481FC55496 +AF2FFF408157D99115A38BF0767039211D6841345BE3F6D624EDAEA4602BCBC3A87C8013595D9D +09E7207197FE87FD585244060418EB2CB09EF369B785EA8B401798695B473AB58965057887EFF0 +A6585B3629E87D700C8E0835F1E35C280D61FB49871EDEC7C4E5C770C3D8DE717FDFAB7EACF7AA +E78A1A4F0772EE38346482F021A95688E1D3121DD80A88A349258ACCD8D094F403A674E1710F61 +46DE9507C73D51C77354C475B37F3E266ADEF2D739A17EA5E8BA5F65C314D57579BAD77D37E765 +DF196FE16397CC58CD8B21C21BF2E92A0D0A4893D679AC9012757602EE65A70B93CEA9D02F8DA2 +29C783474CCAB3F8D3A06B2DEECCAD27F621D6852932D43FAB8D81167A47D16D86837B68B910FE +3D97E07239B767FEFE692990A4F3600F7BFC55B7B137073467FB722D45EF59362B11B7AA72C101 +401FF5216F48329E7217AC572CC736B77BAD3B863FD622F46CF547EBAC0ED63BC0AF3DC86B816E +D1B862A0A172539AFC23ED6201627BD18A317F6A2C5797591EED54D9AC7E5336402DA66965E311 +768EE74D1DBA42FBE2C59848F405DB9CEA39C7AF0D13B6F0CB99160A2CBED0ECE55B21982FDB7D +59FA99649EF7F00ABFB9AF764DEADD60DC3BEA997C182A9E5857B1A9E3D1305A57F608807A12D9 +045236C18F174A63BB2F66F006915F701A7F6BED3120A63438B5B2EF4F7DF4A5F422FC1E61D395 +88F0A865B710D1E9165CF6D152210C7165B392E35B72D1239A18D59DE31A08676686D4C739D500 +D15D2DBF84C0C18880F41BFD757C3E2D15CF68A2444B863F6FFA3C9765637463FD9212ABFE1B5F +03A882E46D4236052D3A270D25A26457A4C9F348B6C8F0819F3BB5BA54B09071326369AC2E7CA0 +66D472F6F7DF7D4D1EA9FDDD0717973A72257DED260FCD992C0830581EBFD02CD4941EA7EEC4B8 +5C8ECCDCCA777FEB024288604350D53F97CE23A7C2EC292EB69D3B2B75DA47C65C2C0CFE3BE097 +F9287AF9C926292CE9385A45DCDD0314B2DBDE5AAD2E6A61964D96DCAE2217BC4B5A056AE24FAD +4A0708F63594BFF486CD18B55C44A8FDA7054B0C9A20F3C3799B8F7647DDD9B1E5A5E6579B95C9 +EA4F3E0DE8556789FB080C7019134841F44B7C9E526EF858F8ED5C0112CFD2E3C1C1F382B766D7 +310529696AA7A533D5B0B5D3532C11B3562C6DA713DEB04A5BF022058772C94CB22BB4FAA3295F +CCA609D18EA85146A89C046FC60B0DA65A416E2A71AB5CF8D536138F2A85DD04AEDA42AEF41754 +232C92F1F79B303DB4F2ECDD3018D9C683A4BD7D60A158CEAE71D5C231165962BC3E88C2C3C0F2 +9CA2EF9070F8C0E99BC9F3652FD5599BE3911750BCBA6E5C5934EDEB6C85074B11A895A874EBB0 +E59043499D026A6C062B4F86FFD4EAD2C9A31D4E63D09EA1F00C55653A5A68717D0BCDA0961ED7 +608398841C26E307749A5C2766B0D5671AD7407C0696577DC0347FFE8CCE0772750D4D6E13A690 +E4A5EB935FCCBFCBCA751BFED56FE38A181016F87A05B90873FD8C9D843748647894AF1FC2E48F +E408F7BA4CFC9C1A8898AC99ED230E985173B829DC2FD21F35C50103C053DDCC9F98357191CE1E +19D6566727996460781069EFF33CA451A1088E81956DEF8E8CF997E292FBC63F99A84AB2C23A52 +09922836B072AFF17EC0343CAD1B847851CC31510C8CA59913CC8DE2B0CDAF99846F7F341E23E1 +C7727550EF11476472B3D082ECC47EA7E2B56A747E6A7777E2E1AD4F4F2209B5329F4111D8F7E5 +383D76382F8B5FA0D65F7DB47A1A080567023EE270833CBD88B00EB79DF491674B5742D27E6875 +D68C127262657624764AAE5B6A8775965A179879D4ECE7EE9D77BA6DC8D917216FADD9A26CAE9F +9F5B135F6B6AA3DCBC7715B33EAF70717561E6C201513AB2303374 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndProcSet +%%BeginProcSet: stonessb.pfa +11 dict begin +/FontInfo 10 dict dup begin +/version (001.002) readonly def +/Notice (Copyright (c) 1987, 1990, 1992 Adobe Systems Incorporated. All Rights Reserved.ITC Stone is a registered trademark of International Typeface Corporation.) readonly def +/FullName (ITC Stone Sans Semibold) readonly def +/FamilyName (ITC Stone Sans) readonly def +/Weight (Semibold) readonly def +/isFixedPitch false def +/ItalicAngle 0 def +/UnderlinePosition -100 def +/UnderlineThickness 50 def +end readonly def +/FontName /StoneSans-Semibold def +/Encoding StandardEncoding def +/PaintType 0 def +/FontType 1 def +/FontMatrix [0.001 0 0 0.001 0 0] readonly def +/UniqueID 38792 def +/FontBBox{-179 -250 1405 950}readonly def +currentdict end +currentfile eexec +05D2542F9F75EC0822B36BE6F0DEDFC8DEA486830878B9EFC0865425093E0C2E69D6F33CC9AE23 +DF5EDBC1E5D079FB4764B9F54C1CB100A936A445065CB97D7CE6C0C4370B3ADE577ACD273EAED6 +15C410480C863CB75FFCE0E72EDB5035D97674731BBB8E694C0302E84C5CA55F405C83E06FA42A +DEAA89CE21DDD2BC9F048F7501C2124566D55A81E16EBD047DA68CCABDA9D52A3880295FD057C8 +C7900A8A31BA7C4990680FF1F74D5699C19DC8359898F7A25196FDBE5DA6A0E5C6DB74B7BBE88C +542FC0E458D64D52230079CEB32C6644A8809436BD133207FCB1E7165359DEC653C7EE65AE80A1 +92C83B6CF310F74AF760499DD67A4DCE97CCD1DD538308BFA46A992B18C02B8A332869E677523F +E7C2597865F352B2BEA414020204762126749DC095CC55AA76E9C67A97692D14826DBBBDF5538D +99E15D4C082726916270333E380EC6C71B2B79A5D15D9B928F63A48C4314E5CC3CE2BD2352533F +5BBA3DECE7526814138B51B898666E823291D0142ED689AA36B326FB41E67DC29C46A7CBCF563C +63B52680C9BAEE2BB55409547DCA64033DAF803CCD32E3768FBA08543D80A937F61B8C95927BC2 +A08F4A257D03AEF025F3877B798E55DFEA17A2C3A484BC6C6ABD60A2723446E2C67FE0BA1831E2 +D7D42EF86439263917CA19CD8F5A0A65AA7003345D13743E757A7B1D9BBCEAB6FE0022B4ABC17C +108C913B1066A7B5218861EE2942E39E1DABCE1D16CB666B14C7421B9A58F1DAA519E6E96570D2 +AC187446F67438F56E1A80DF7A72A6A76CFC27FA07D10B624E8E1C53F71720B3351A9649A6F261 +FCCDE6BC61C0587E7CC6217F98D04986EE9AD86B0BEB09C24BA7A3F4CC66482EC7FD60F4D93D4E +82272616392166AE09582F1A6146AF9932DF4AD2C45FB468B5D2B9E119E93B4E18EE963DAF1AF6 +FD876B362B31E36BB0A876A49D82AE89E0CAC13DE3DBF29FB96C8788CBC011CCCF04734C1CBA5A +6C18343EA1B0DCE808382C9FFB44F1A7752C5F9AC6E7DAA59C08130034A8CEDCBA8D48881E79A1 +7BF5749F136078DA9FEC9CCFB09C85C63FD964D722ADB32B1040DB91B1508E460CD08FCB7A9E42 +B74AB09EB3F836CF46648BDD92E8DD2D48F8EE8F80FB1EED24E901DC294DD024D25A72642225D3 +028FF69FBA04392FD415B775F0B132D75D56CDE9C0CEE44C29F8F1692EE002A973C5114B03AAC6 +D1AC009184D50790D83CF803F2B36D94A8D7F3E1C56A0C924447F56925F09395CBB1DE38C5F13C +1C7D563C43EFF5E8538C2BE12C8E214B774000FE4E2751DC6F3E2CC8DF5E4633E090E4C34C0CC6 +F06BD829B1105B50429205B2C4BA32480035CF513F4039B69EB475F16EA439E277D5CB93D7BA17 +41696ADBA069DF046232169134980DF13D2C75FAF57582B548FE67F7215D7673077168B733DCA1 +51B0A7591C1C2D7B1E93E485F54799AE111F272C49ACFDF6993996A7C5699B250CD2A9D82B7A4F +60F990865A5A21C394ACC4D61BE0D9DDBF8DC253D156265FAA5E5163DF739F013C1BE519F5A616 +6FCDC3938E14D17D7B4CE878481D5DC2DE545CC29C88CF043EE98C4BFA6E747DC626152B6807A5 +640EA39CE6802541E5B4E80F6AAB41B13F6E8C0906556279570D7B3C5509237EFF4A98680295ED +7BD3789DD532E12C47E9D26AB9831688E6A9D98715419BBA7AE390D6EEE7E913E98FCBA6B268B6 +C958424D98BAB18372C925ADC53415508AE4AFBF212D66A20066928CD81E5FFE5ABA34802522B8 +C49CD00CD0F7156859F14A254566578BE1E0986A86738BDD7E81EB8249A3C2B4FC522886C22209 +00BDB96EDA972558EF18E9408E6FA8B59B5E557CDBC6B9008E018089976A83157637EBCFB60E46 +0BE12F9E92FA8AE384E2E27B58A4DD46B6AEF078F17410B64296BC43BFF1AA720AC0D575B0A4A4 +685F533A846D1C8E6E3F0A8929DA9A4DD039AEC0908EEE629B28F8516836DDA89AA7E033974759 +7BAC32B7F65A47E875D6575930E4561B1077A8B6D4EBA710A60EBF8BD7F90D5966DDF217676838 +C714B7D0A1013CE649629797335E4F1E736A452FF105F1E31DB1F105F51C5DACFE14DAE5C385B9 +A493AF229268DE313F00275F6EF4E995D8E104133ECD3BCB1378B69FE0DDB100CD4481F3F7FFEB +6B696096BFDDEEF1268BD9ADF681B57381896F851EB12534FB05EDC89ACE59E7CDBEBCDD622953 +4E12BA0C675260841609CB656B05D37CC7FCCBCC92BEBC4C2C3112AE2CED5590518438B2775DD2 +78DF847B5F3677934099A8D34B98E9F793E6C86C76B1CB0E42EC4EA2E9ACB22EEBC084026DB163 +40F8CD9CE194D2F6EA2403255DA218EC31EF12888D3C4ACE4C84910C6DD17C8321533B65496C0A +67EF9AB8BB49D8A9DE10694D21FA679AEDFD56DF18C915FD82B3EAC5F279D4CCBF02183DF4EEF6 +11F5266108A01D054321E6F5922F2E1F78D48DA966549F37EA876C71BA109FE81719822315C2D4 +EDDC0B3B0C2564BF6D2E2BC3AA020B462F0A42C562C1FD135DB84A51ED677D2EC962C8A86DF9F1 +2B4487AF45584603D517D6BD04B66659ECDF446CAB71D768A9B4B3F58293A6DDCA895309CC045F +951AE11077FD1AAF79DC80C0CACD362EAF1744455DB964EAD2D65F03B4F7A01AB2FB41AF084012 +C199738AEF935CF46E659DF852A78D343063014A75399F5FEC92B75DE7E04C6E42DD6D6CF84D35 +820297B7D0A4E072D9F5944E7EDABFD4E309016B6BB3450E2942DD131E7420AA2CA3E766BE9CB9 +44C28330F2DFE1518C2FBEF785AF8D9080EEF0F9E1553C2E855AA68EA71D8F5A16815D1F210430 +25E893E408B006DE432D9A1F5F3E45531785B3F8CE6B175E2F39B99945382E63C3F31C748BFC26 +B7D14060043017B3ED93E27E1728E264303B21BE3F78DF47DAA1395361BA0B84BECF2F8568AD27 +67314C0BC80A9B733D96515CF586CF038630707D2933EAF664665C7692563B2B8707B2C21EAFE7 +33C96C5CBF7970C1310EAE671F9893091706FA128B2DAADA95F26D0EB2999BC294A22A61883E19 +4222815929D7DF0683B5C8056C4D1FA0E3716C155D1ACD225D6B68976EE1A42171592A90EBC10D +93FD735DE0FAAB691A4098239213F97BF81A8CDDB5880CBA714F22230D208AD96B9B73305B90D6 +C94697D3AE9FEE5A52503D844CDE1FC15112897C62A9C9EFBC3D775C40BAF7844AF7034669B332 +70533EA71BF0A9C27BC03A02D7040926DA1F10906D26E6431606907E8522BF6581A311A1EF1075 +B697053B59020B7FF83D0FCB0BFDF143FA8E645C5340B9226D1FB3D03E892BB24D7F5438D7B87E +FE337343C1876CC99495707F87D96E1234B58C71A450F62CA5CE3B895B52328AC1739D3967DB01 +26EE475B5A609982C31B8FF352E959E417E907D5B9C076A27018849AC10E6113C1A0F816582683 +727477CBBCDE1222F9EBBB5648D29517E72496D1F0A44CCDB34106A53521EE8F61358A267105EF +49577892389BFB701520AA73E6B8070DE634B853F3A61818A4B8B33264416C1C3C83FC0C8BE091 +F30252A8691D193456620B3BF471D4CCE9397558C7EAC8104C8C6A13CD716D916211A12C443F2F +04EF0C31FAAF043729B6159B57826CDBDD6205932B251089385E4E30C4D51744A45D96FC284097 +2007ED353D62D3CDB6FC755C11BE98E8FFBB40560C93CBCECBA7C09692F817DCE1BA4526A81179 +2F2C19A169C91C025938E2B26A803682CD9921844BF9AAB1A14514BD26F046E8769D79B3604ABE +0B786F60D424B2C6323520A982E906CC3E92D3B52AF04530708DD782134F4052EBF95339F50CF4 +5496B70B52B59CB6F54DF382CD9F4BB11F629861133B4F585B816EF197B60C5A2D9FCF7E20BFEA +366B42D5F9B2BB0F67B045A5B57C185F621EEC91932855E0C91770A5E4FBDE4ABB9CD137C88B4E +E499D432FA6DB2B87C71A03AD23BEFBBC5A8FB3E2130F451B0A0DD40E84783C26E573B43B15615 +4F7EEB8B381E1F97C54C48EB5AD4A1545391EC3F6650A0E43F4C23750DD58157AFAC738C07D296 +EB9AFAB0C0FAC38CE8566293C584B2256E79544A5B242834BDB31A8646DEB04C95EE80EBC2F845 +BE0536A629E8A0D23D355CE4D35E5F74A2D4E08CA6D47CFB1E0F4F98EDD2EF3DC779B69BADEEF6 +AF06F1C6CD36EED1C09E800CD723689A001000F4201D365DA557D11F057E858520DE75F5C8F354 +69A9DDF5A29D3651EFFFAF4FDBED2A9C1275DB764ABA6FF74B789DD65C8D082D9A9FC800873132 +FFAC9E782291EE6696D483D41C1398E8C65306DA0D306BB9EC713AFB4C3D55A4C38D865381DFB0 +E630628FBB7CF51922E547D8975301E2A81E0D429FAD1C65993544AA5431B880BE4F314C4981A3 +FEFB2A37BC1BEFB267FEC47737819C14C04486943CC1432135BD844A34617ED7E4140431AAE948 +E989C5C72B6B090AE889B62662E8D30D7C633110F08600F8F3DEBABE1B8272571B1550FE35C252 +818F856FFD8231E801321CFA4E088D1D6A4F56F2CA81A909D0D565B33F5B2574FC52FCA1107E4E +94E7237D994DCA0E5C13348B6ED835AD7279D78CE290B38FD42876FCE44471AE6E20E6369C638E +6E4B49B00B68497F912FA6518016ACE6DCA8E865184CD563E1713D7EADF64E52BBD13CE5CE54F1 +9EC5974E9F59D287F76F03F756AB42FA3CDFACA79792679B7ECA516D1532A1BF1AF2B04002A029 +AC8DC0F34527E917D6A559974DFBF9A5E13E2E1ED526F7AE17BEA04640705CAEB05F06544A17F7 +B44BF54B6B80594D71AEDAAD17079CFE2B6C65744655418B1527D51D4C45E5F321D52468C168FC +A515979287566DFF26C061FFD7039C232FE1ACD9377C58850C99BDAE145F949F4F504D74E4278B +3CB2EE53252AF7805F3143F0999C8C0D17CCD2E922375E563EAD698D9AE6D0DABAE5A8340497C2 +1238F9FC9FC05B76A47DA0CCFF8D108D1A188F5DB575E5C08219A04CF78E06AF124FB3FC3B4E78 +2677F3C09F9D892AB294B4EA15241CE2899514EB4D1BCF51D294737089EB4AC56AC7852E498217 +7B804241177353670637376D4D1BE4F13A6107A6A6E5A73679E687F5512801B07F67568F737B3E +00FF13F7F8DE9C73EB3A2865B07094AF6FC8710BCBF6915BE2E2416B9A866BFC513E29E92898FB +80F81130E4AB9E5C5D559576BEE4AE5B01BD28748240E7B2D7441E57053F934628A99CAC7F4C72 +F0A343B7937E295BBAB9DAE5CEFDD103DFF935B2454E4AE0AF39776A3C0F40701DFECB27C6DDBA +4D97972C03109A209C6F98C1E6FD3C81AF5CFCF5223866A5E58514FE8D5DEC95945865FB6F6FBC +51FDDDDADAB1DBC68F35F756426EB29A6A415AEC11D2EC09BC523713ED44466FBA3FDDEA873A14 +85D7C042E490BEA7512D46705A9C77B52BF575BB1C849C76D0E32033A9F59C62D3646725627CB7 +948C2F72EDA3D5D27E83C2F379B12CBB6D7ED2DCF3BDA29728F99126E56A36CC9D7FCD83F2A4FA +DBD5C188379CC6A56073F57E75221E5BA328E84EBB6ADCD9D258DE03E5ED83123DB1964511B792 +2730D692F96B2E93273AC148ECF069362F5EABBDD6C577D0DD1D724BDBD804250DB2EB3A2B5F44 +E7DFAC5457D117F3A1B132A68C61A35179B3349A1F412C0322CB415256FE517FCB0C206CD576D0 +181CF1ED3A068444F2A19D9EEB5324CE071472AEE02E225C747913392E43331C5DC96BA985E2E1 +605A3BC09FC92CDBE4A516E1BD248D34FD85023F9D738EE10B2DC23ED8A1A2FA207A1A474B94A0 +B78694D7B9C386302B2BC7029442E574B6258F9BAAD8A099C5002BE366649A771A94A533B4D336 +695DDD599DFB4FA963B04628C52D6DD937BBCED417FDFE925CA54B9CCF44EC78D2CEA9AFABBA6A +8D0D7479EE60204CF38D1E9B425BD3BD37519D0D64E154CC6CAE7CFC7209F4AF4E66A9DFBD1934 +E82D1209E12C44CBDF4C3E902931C6C983E712DA93F45DE79A58BEF6E742EB63D7D0C187D4037B +9C1FDE3F204509EDCDCAA5075E3B8B4C5E62C18C2FA01040A4D153C58F0D6AA66335ACF7C455F5 +855AB3DB0A1241287856574DB170DA0C55A9AE190FDBF3049987C8CE26C501D0F3A15E9915EB5A +9AE4A49860DA936CC61228A21C343DF6B0CCE324FA00C32653DE16F9BBAE85E9C7673159434D14 +2E25928D2EAD8021BFB2DB4F0AE93900577C5937A7A0E292546C66D9D30759EF06120604689FAE +F808522BEC56BA62621F728E9A4A4D31DB7F7D82DDDFAB127E50E72F95EFA44D40ED9A82A1A3D2 +14AE275930F795AD74375A989D78EF0F3B28138D35A20F516C8546081BA4BCD6B493B49FAB5ADB +C841C48AC8B22EDB9131BBAD00425D3601F4928F72F60AF6BA2845DFF2C1C46C8C0919481C2F02 +6E71627A0EEA7C1233BFC67B16DEA00AD0524FF2FD04E49266652DDA742E2770504C22430004AE +F8CD94E6E54D1E8989264B7C22D770D9363899F97A900B8637C42CBE9DA0CAF97D69FF39910919 +155CC68FC81208F9C7E9B7B67BBEF02D65930444E9319D98A3C063EE56B907CC5B2B054965BD22 +074FF61F8F74ED5734C46BE532C9BA883C55AA5FAAF5EE80853D1BF06E260679732E7712619C39 +9DFC4225E71B878CB758C6C3DEB5347C5AD64A22F0C6BF2C692F5EC354FE9EFB940AFEDC511F8B +1A12BD18C1FF14B354748DFA4553A396DD8457234FB1D6BBF2E58ED6A4BE5356E3402E69531BCE +0D57E7632D2D3D9A7E7B54499CBAB807514330C566D104C48A4FBFD7F3674EDE64D674DF126856 +1145F8D649CFF1C069414667867EA7B65A012658F1376E7EAB4525EE1788B25C348850809E61E8 +CCDD2FF708C1A61EE0E2D6B5D1B85B2095185668B37836FCAEC18D5444D0C00EB6D75E811D3C50 +9DFEEDBE86B8052D0021B187A93D1EA1FE0147D11D75DB5B63536410DD74040D77F930292D00E0 +8351F7DEB63D98D55F11AE5AEEEB05D00D7E7FDD769ED33F1C61BF087C300BF8D5BCE34B479D62 +8231B9ACEF19EFCF675BB4EC2833458A151C340BA5DAB949917CCD8C455D30F4333A834519785B +53938865FCE3D7D524C7152E03DE2F84D82F6F90682B0198BF688B2A63213CB432297AE92FCB56 +7D0C3EA22C28C373D3448D402719D0C68C3686CBAE4C45A6958D1E89E61EA8FBD3D1F63366AC59 +9490CC2118148017C72FB239F1540216397DDF36E41DC49BE4F3836B09C674454C1044A02704E6 +FF7FCF78AA85B1003C1B0EB2B5021F8F2640A68E4799E75CF40FFFC212AD560131330489555A48 +828EEDD440BDFF3FCBC860080992A3367E850F9D9D20AF1A0055D4AD13505245725BC3DFD7261A +B7770CC41C6B908872FF99758DF7EA19CCCB8120AEA32C5E5CEACC05A0C40300C8BBA3EA16ACD7 +3C9331026D850FDE83996CA03F642F5DE54818540014EF65571190394D94FC2973A6C92CF674DE +2AD9DDFEA8B93F556E59B61AE558E6E86824F23F6A0A72FC79A48CD14FD7BCC76011A39D8CC9AE +F8E72402DB96DF0DF48885881F508C7C59AF6D06102FAC84718630870516EFC9429A3E95376956 +314E65ABA124F92AE11682F9788E493379F83FADF340783150C51739EE87A866D352B99E6C1F4E +AD8191B7DBF364260CED3274A261C3AAF908D473C2175D15AA932D88DDE57C2EAD27B4D0F05C9E +5137A409334D0954180CAB64372166266FAA5A22506D85A4928E240AFFF318EF63B45C26D23237 +6C465AC9FCF64D9DCCF13B6D5103C1F66574CCC968EE0F6CCA773B28D53ED94BB7B42287A6D3EC +102143F52720CC5396EA524575C1CDB437487288B5587D24BFFF1B82ADD45AFECB4D747A628948 +623E61664F3655BBB1DE782B7ACBF256875DF5FCC20BB7506910D12BE7291EA0648298FD361737 +0458AD089170A005942639F7AE5BE8D1FB6B95662FF074FBCF92776E6F4C7D241D1EFAEEE40DDF +E8D88DC1EDE3D9E0768B8E0FD38BCD9310F8A74CC0C671B0FCD404739FBC68BB02B1D90BC4D91B +F5C24E72D98D1D36A0611BA9961B74CCE43411DA5BF2659414D74BCFE8E277EEC4A11F71342A97 +6291C52A21737F224178B619F048F2A44E9F42BD5530846E10C4F05624026E355FE623223DBF42 +90DD504ADC56051A92578CA2E00BEC120E0812E0EEEE934FB9E7FEA6B4925B4F5118F30C5BFF35 +F8A1F069B1FCC24694519FD9E817E01799FE1FB9FFBDD28222663A74E9AA253F573FB3631BAFEC +D327514A43947F04F31BCB22C98CF9E050732BE8574BCEEBFB9938AA74FC68A3B2ECD6ACCDF22D +E9F46AC3589AAB1C352538DAA0E1CA320694F79D7E5E6934128DE7EE3E3328D4D494B5E85EE40F +F2032E44AE58770E78188177FCF23CDD200280A39EDB76E4D7BA6F728CE8784507F7DA164F062C +349E325C145976D0102E65DA171F95A04A3D550EE3DEAA4A564767ECF3E7D0D5D2BD6D06CFABC4 +1D1BE5A5F1C478DE08343F2D9D6A74BEA3DAC953BF38183EB9BF9B188F88459496BC74A3EF6514 +12307AF69D68A1BD9678C642D11B75A7B5C113EA8036580596FA193F2FE45E52274F20583F6D0E +7D7C17CA09022D07573E33F52394FF499ED067EDDF122A4AA44B9B4CD53C04304BD53BDB734D78 +5866891CFCCB5CC4ABC2EA2BE6EB432BC0EB22D9EC45BD31EC11244F9C7ADF81BCA29A70EEE439 +4A3AC5C2BCBD2E82A26B06A348542A4C56D778D2DFF2944B5EE2B2CC32762FEEA2E95D18075847 +6E18E6596B9ABB3F36745BD8228EC356BD8DFE89F8180277C50DDA883A59F1D9A21704ED019070 +7E87D30672973F4EED6C744C2E71BA35E887C0EA1503A941EA20902177DB1F5054175A215A9D4B +FEBEC521B22F9A2924F76ACBE573E216B1C97D5D7ED322DFDFBDA1049A219EE3736B9B763538CE +0B1BE3E253175A515DB0EB877A547C4929C9EFBF4DBC586BB076ECD7575930E4561B10A56E0F92 +165E415F78ACAF1A99AF4A1A8625CF03B6FE564CEAA6CAF2FB247541CABA278DC1966B6DA19A1E +915024184832E33129DAA8F37C57EA8FA66B1D7C1E03945627F9807513EAA0F87CD55676460692 +E76A71885A1A37BFC0ABFDEDFF655DED8A9FC81F57912EA87ED5FB28E6FBF283FB6832C10704FB +B1B46D7E1BEC70B5DA8F5CDB58D19E8FAAB5702A3A726EB077895D36CB6338378A3412922016E6 +5C45D77C3D7439705970C5772DEE02821F1BD236AFDB9982C1986DF161665D7A927412507700FA +B2D873E77BF818713A257FC7FC29DD7D4987249D535E3582812CCEF3CE72B60D23F33436D1DA42 +BA60496719774783F395C42C1B44C77F6A66620F1F92367B56777A57BAC024874680CD1049EE3C +458B24210627C745559087033EDF0CFE14485FB79D541888D97CBF9AE6BBEF9CE0DC02BBBC83B4 +C2BC26313CCE46371C60BFC33758C6BD3343C0984E58D4CE5133511898D7860DAEF04DABC44731 +7AE3A18BC898833130CF72EDD91A4E42D85F4B897D0F9E9DB4477E73063189161916DE6F34FF73 +11FA695AFA2F897334FD81DFFC505BEA5C13A3AC792569C6935611E95B74D41D9DE36140620979 +205FA7859E1585B1124DFE4B04D880615CC2198A67D47B64851A642F40CC16A8E8AE202EEC55E1 +008E3879241A61E6673C9EDF77EFB2A43F7E85E196BEA0043898FED01FBAAA47894EE7392B1DB5 +2B9433D88980461A7F6BEABE6B752600B758F0F2529EA26D57BF2894910AFC67FC6D190F359058 +517766C9403B404D50865CF632F371AA67319B6262F09A92A65E86AEDEDAC504BA901B8A19FA14 +F7C6659B209845E9665474981EF9513115B93DA16991B5E31A70DF01DB06D47BF089EB184CE039 +3A1C2C08A2B05625CE02513B4C82D026C903DCCB3135FE88A6A4CECFD2D5808CCC99BFFC43DF9C +FA2EFE9875C3491320D62FA3A54558F298E3854DC3FC8D60EB09C534E6A14102F4953AF79A57E8 +7748A2E01C683B8ECCFE4AA681D943C3758FE70625227DE214CCACD35F15B4782100BA3C0AED4D +523681438AE195D5B58D4F61B9807EFB12B162FBDEE63C22CE05D99E4E289EF01463DCBD748D9C +6CA0270DB111495B0E7BA377CB34163DA6E3B7F5FE89FC9FED9960F3EB9FC42F1CD39BFAC8A36B +F0ED0CB3B6D8503E78432EBF42C0EC6D608241DDAB2F32540AB22CEFDDBBB10077154846AD5253 +835558E1A30C426F9E7A488B88C1699ADDE69F0821342C60042D0CD505799BF1A4D86D94DC49A3 +046236CDF462CA6367220E041FF8EFE18CA65B989E865FD237A7E120EEE95915295F4FB8D0508F +A98A2B7737D6088047521E6B740311BAA5FF402754CB1193C329B7A74AF5ABD596E5AB66C242C9 +F6F89DA12065DB01AFAE32A7CC6156B8DFF94B72C8A5F415C738963B112DF996165F52CC48C2AE +FC903178931044B9095A09A9691668AACA9118D67E122B70BC19A511759544CE3A9BFCB73A6504 +D77E24A350FE52FB0107AEE12F59AD32C120B1205B69D0165E7BF98C9F17A04DD46649EF7E363C +7F52F573A1B99733E5303BED19FA3CF306879C7498B18ED8EE01E8E87715A44DCEC5D259E95767 +0A469D3C4E5EC2043F6EE288ACE1E3B39084529455E1F8389186F7662F96E3E1B053073CF04D2F +F322CFDB6263588B3802327318A8DCB9A61C9D1B1DD2F8070F214DFB2198650D14A77C14FC1AA4 +06EC487149B86B997DAF22E30CAE968971664A10A0CC346961FA49062E617ED3DD0DF737B41437 +B1DC2B0670890F9ED97E406B46A94B05A538E8240572BCCEFDE21F41A66520CE5ECDD3C0CCDB3F +19332FD94654A9EB7D7D5175013094AC79B92D1FB0BA86F209A3283DDA9DB25B4F5A0A03E72FFE +A45F914757E8C50B8F0F8176FA8CF44C271A584F7BE700A0D36572FAE05EF6FF23C8BB33EF6BA3 +3186583E4F55D1256072B53B91047AF7868B31CB6150F5456FD4FFB8B4B2EC3EE1148E8DB34353 +B3BFA4F84B8C3001E575372BA3F7BDF1BB6C4B82C2FAD7575E12E287EB971ED3D91404221137A2 +53026C8989FC472143DDDE9E2D49A413F1D6A409179CDC3CBF544A093FA05985E0BE71CD6018D4 +2127D0AEB4388FA7ABC8558172396885A8A42F0A0C768A4B0EC2B4D1862AFC4FF363F3668A33BB +6F788A5D9E9CEA2BFADD7A4C611BA217D15A1F6BEB135F8F7C9FB011642B6240181494A6C192A5 +756766F62D7331C142C551AB0E64ED8CBC57EF3C295DDF2DDBD265816761F199ABA1D2E5349684 +94E676D10461C34136FB87B9FDC817DB731419278301DF86C91D21662BFB36615D4F85DF3793E2 +9BB4A86F1AEDC061B1593F59DF133E4C97B744F6AA19EE0E23ED826D0AAB5EC479F2F131DDAE26 +0F4482E8215F2A06C33152F1E26EB4F7EFE862846A37A084D6090216A1A9E111D416629AA37375 +C4924FD96E87673C5B41F627F5C1BF682E6C411725CF5414D7ED4328B94EB8EAD9EA991D0F120E +872CD1397D36D5C2DB03164F2E5D414519FDB61DDB3E27D5BC7017CABAC9EB67BCB6A5FC451C13 +E7A3B944C1795ADE61894809B085AB4D8C046486714D086043C8E504B57476C5AFFDE8473CB6F2 +2DE06BF6FEFD368D6F8D0E00292B825EEE18F1FD3DB34DA347F1B13ABF19F22F10313E6D646809 +90E4B8D166499128BA14D2F2200C86045C731B8ECFD52B2400C2CE1BDF0958C4FCE83EAC4B757D +CDE1F5CF4455FCB27259E3AA102E4CA642122D5DB237BE915E606850D47CD77AB07BE7B676DC86 +B5E0CE1FFFB177E2A84023F7845B5B570227433638DA173C086730C2C647096473C22DE7A47F1C +C33E00434946AD9847A55A6D54295BA6B2F80E80A055A02A8E80D28685FFA0B766430531AE79D5 +BCA0C699624502B43A3EA10D8E3FE63AFFD751828FEE69C0769BD331FF2F4367FC4F8AEB2C06B8 +7CA3D251DBC6E81F7159862845712248FB86A0F73B767EA8784EEDFB538E41334A8F4280B64E34 +9C2260B1917657651DEE10B78C60E941AC56992BD61B84200E942F341C37C7D73D9F2AFEE845A1 +A8ECADF6BF3DD77D17517AA99FD9A0C87E735F998C2B05716746159EFB439B619C7AAB02C607E2 +911A203FA36C15B3ECECC6C72037D49F15E550FDBA5DE6A7BAA71AF83459ED20A331037F0E25D7 +177CD16B4CB572C2257700F150F03FE9EB44E9C840EA81BC1D9B9E6FACF6D05C01C1709E5D78F2 +BFBEBBCE08C5E32067CDC71FD50042FF254BF62E5E3923B66ACBAC43DEB6541EF98E1CD9B122DF +C371CCB970C345006847880DC6814CCEC5B5955B63786B4EA225CA81C5A19487C518C8FD98568F +13B79EDEB465CC2B0FFBF5379C4A2C0FCFB018995107224DD43754E55F7017E973F4DDFC2A14D0 +97C8C5DBD92A5D161C25B6488D53E52C4EDAD89203B0A2B5048D55EE9E577FA75E46E7648B5430 +09523BE6D66603F7A2E317FA7AC44E45342A977E76D5384B6763FE2186383F10711F36E5AAB801 +11B02699085C3222F6622C201B1C1F975721CEE86419E9DF365F1603641DF7A5905BEA0C54D3A1 +8BDCE0C892C8CEAAD1F6AE0E727B792AAEDB30390CD4C17D072B82859C0B6E6574E8F2B4F4AE03 +DCFD278B90DED764C0E6F262CCFAD7257C7D2E2733D0E9BEC3C6DF0BF779B516E41506BC084928 +3724C876682C1C6F36340AE8072AFDB1F710C2810E808C8E789DC3962174978E020DBC1A16F129 +AE110E7C701601D120702B0AEA98FE3B9EA28CD175B9E445920BAF32BCBB13652BB33B62147859 +765CD15B51A63FEE61FF92F458AC28849BAB775FD42123658F31F6DC0F896F2E37CB0BD310B098 +E7B1A6F473D0624E3D8EB7BB91E00BD164A088EAC207F0ADE1D9150D546E00F3CD038D792F42D1 +9625A14D30E8B972B263433BCED195E8FE4F200C672A1F167F969B2E067E32B7D69765823620D3 +E68894BD03C3D5E614FAE9B173C21A946453428B22C009E0BD4AD69D94BCE76303775FAF74C151 +A6D0C5A3F8703CD5BDFCA2A469BF6A42A8FA8678390B9BD516C76C2D6F358C0A28BEBF971F4C4D +1D81CD15D913C4E3C1F934847081BB1897CA19DAF87B9D5EC72A7C26B65563514DC162CC129088 +0CF4FC0C115CF2768075CA07B04340F228E862A40F35AAD4484B109FEE50E26655A8C699205D70 +C2BE4D2368E3F7F927F64DA140F979B299B50DB1B9224E6750A7D1AA909A4921ACBE1F47C8B6B7 +0CD46EC98C9BD56C35D3FB61AE9BCD3CCC39141C92786B8C7CA61E06B88B9A1742EF6D5CD417F4 +282F220212D30EF97DCCB70CB1153E8912131C9E2E89B490BA9967CEDA089AA7D7E2925C4005AD +5624A294E63F54235F579488A705D0D13BCD668263122CC591D2417CEE1B1C220BF4BE45722F3C +4891858DCDCD88B67AA9E69D045F25841C0D8A4A8DE5078A22088425A6027A9FD1063F2243600B +AAB3479833220D38F365C95EAD2B8E37E6784EA29A4D54C4445C52F3939B1A61F05FC9E5DA8FC0 +84B9B5FF7AC76B07EBDFA6EAD5E70210CF795768EA6408DF4E7EEFA5FBEEB3FFF0357F61EA6061 +06619C14EC6E4EA347AC6F96F3C852459965CD29328C3FC164F570A646D514A1FBD9C2E08A4C41 +A0539C8D5C0849A1C6173E4DC9B2B039F7B5AAFB46A98A7A9431D70388D06AB90B58BBAEC86E75 +17F25C7674A633324E1CDBBA4827A775BD6CA1A9A8AC24A51E6FD163CC0B47A00AD11EB05B3AF4 +F9F971F04F4865EABFF9EF599DB3982C62FB91915916D87E40458552EDFD00A10FDC75F86938AD +E38ECEB82CBF2944ABA9E99BEB9856D58BEC9F1E0F52C64BC2B7B19D9B2999D16CAE02E5D12FBA +62B9ABDCF95C664FB4550E890AF732E7EF278ADB9A945EAB167FDEE52993986949551159B3FBDC +E8763E8795989CF46DCE7D53F9CDC713B79DD75F38D26813A6B31FE0E48777401F6FD86DA5DC18 +3F9625DD30EC75282B831CC151F4A90426BDC43EF2CEA37468363519CBC10EEDE7453F7FACA12C +0F927B78922A81C3E78212D89AEA5006C789425A01A0F382EB35E61A15846A7C934AA1F164D44D +E80418740CCA9364A9CB96CD01BFC91C4BB35F0F854235E98E8DFEAE7DDD7ABCD18AB84E78C00D +D39A4F53B52B14E570D9E5377328F43BDD82936E5992A745123B42FFEBBBCF196744F193F57A40 +38B5AF3D5B1769C10EB947B4C2D6FAC578ABE2C4E682F63971EF5346C62DEFE184DFFC039C233D +AA977CE3224DC9E989E49FFCCC73BADAE85B2A9BFDA4F848009237ABC481993FD7C358AAEB62E5 +2685C4597C9BDDC55C6CEEA1B44A2BC0A27061D08B4EFD8B97664CF2FB251B94D4900F135A952C +46F5FA13A30F6AA5C1150A186678B610526C764054DDCB5FFAAB0B31A92B8BE1AC60F5829A927F +006F619D10B59F59F137FA60D01ED6EE71E6544EA7CF8C8F81075767F7F88D7A2402EA33F8DF20 +9A8345776CDFAD3315FAFCF94A9776BB34697262D3856B8F72E238E8331F2CD4EBFA2CD0C2F633 +D67CFE012E32F7E1F199983EDAF394189E72D6398F48B8988668FBE0B6B1F307A9D127AB640767 +69F7856F28B8F979093B752A753AFB5E5371C66192D884FFF00A97B30FED991A46BB7F982B7858 +68BFCCE7593D432861C55AA6C48A2EDA8FAF4F9D23FEB5FD1F477AE532237A372D425664970BD6 +67080775EB9A3D080B10593CBC271FA9D8C95F9A7C89DAA54F7815F7C7126F640CD773E702037B +2FCFCFF8BE9C6AEBBEF95A50790D25D1B289F25B43B959E9C2F94F2BB66382F299FF5E88AC003F +2A04095AE808A6FC812C3F488B5783DACB58ABC15F81B8420C37B7797FF551B10DAC03FC1950B1 +734F753A722E9EBAAE5FC6140D800D1E3655D89B89726BB8100C00E57FB85D229E64EEF50CE010 +1699E721B94CFB42F3CCDDFE876B10B49A7A38FE69F8552D631DE6CFA9F0CCE3144AED6AD00214 +36ECD9044A3DF2B9944BE491C3F3282C38AD3839BEEC9485B30582C9D8C20986A9D2DEBA760B14 +6D541841D42FA9F46C329C5679C31BB32F89B7E4FB817A02B1CDC7ECEEEB84818B60540DBCCC0F +3144C673320E3DDBE6E31F1677479B75C18968B766C924461482B35754DDDB9E43C81D226C91DD +E21768A54CF64FE29980317C6864FADA228D2A972152ED1412F9498CE60B7C3B50B9890AED723C +795934409C5EB2C727A8872C6A0DA820CCBB506CF0D78AFAD64C06891A8B570732AF12F60D456E +17871E5E3ECDD6B3CBD8F86234C38E4FD00CD39457419A169E59EF4EE625DD40748BAE47CDC39A +9BAAF4B65FC6C5511D9061DA352E981880F6340D6B6A20B839754663D26F6F53EFCD6EA6EC963E +581E42331B236409F2F98C43445BA0D7D0EAA52150636AF735BFB6C475C904FD4754034ED58E1B +B4DFAC824B3669D3AC473BD833B3CE889323987BF1EB3CA1A0872ED5388460F360FE9D1400FC8F +10833946F68832978B0F75CB14E9FF75E7C5B9464512BFD5D5C4BDDD7530FAE0B397948FD5721A +0D7B38FD5B67CAE166EA2DDCDFA1ABF4F8E1195913D222AC3A7CD5BA9C07304FC477FD91FD35CB +C784826AFED5D80AB7C968036E868930508F4F1C6D7488094B78990BA4B79384C4E55E09FBD28E +CAD7764DF404A1832B243EFF8B0F344F46A3D772E6F0507A50CF120C74DD6674DE4A72531A33E6 +28A5B1AC079AE7A41D62C723D90B7A3E999486CDCE2B64BCAF7443BCC37A9445C1B4681BD26DDB +C451658A1981B327DDF00E3C9AC34735605595466472C34636749C436773BAA155E51ACE57A294 +62812D2F6E396F57E8A6CF5A739308FD478C69528D86B3CC1442761531D6BB1FF48A513DAA1BEB +617A418AF696988E29538D9EF0DD8E16588D9157E619AE1226F4C2F37146DC6A49685C492578F3 +EED7B8DEE2FCE03460ADDB91C37F7A29E2D3276198740B73C93161A75FE0D83F02ECBF1B5AED93 +086DA0545EF10000706305D2911EE39ADACECBE06C1B5FE941EA8BCC6C2B6E9485674E7DBCEF3A +65E8FB59E25C291AEC3158AE9D7C2FA661224B2CFB87970A84538F0370ED6DE4AC43BE23F914A4 +D67FC71AD27ADD384CE9099C65AD89980735B046C9F37CDB29BA5BFC3530CB1658DFEA94D70360 +F63781D87F4501875647342791EA609FD1CAC8A338BC25D296A80F4BE0A24A847ABE708BD8B7ED +150C3E071BF0F8469A994072DCFC16BBA90FB24A71CE8E7F76ECE95DAA5BF3E78D0AFC22435753 +B94EA390CD95C19BE6C739FCB37F7051A879915507F6F4CA85CB9C5C9B1DE6EDC1A59D0463EC09 +EBDAAC2E5969658111004711C2C3769609BE35F8461BA30BD7E68321505A14B30E0BE54B29DDA6 +4ACD1D186E57F16A15A1211EAD0CC317B8B7705060E18140358F950B050A232E2E24FDDF74F90D +F1D288F3171A38351A141DF305B3FD32F5A47C25337C252140D3D529700A391F5176134F6E4752 +7452F76E16B9D5025A0D9C4BC0A8873A9D8BA4AA0E323E1E635EE715E09E3782A64B1B578C4FB0 +489D594558A9DFDEC479A9898B3D2002EF6A3F0AACEFB4F4CD8261172C27D15D3C8A6D8BBF8550 +B5A72672A513F340492536A1C57EBA1E56138A6EB1FC138BAA1DEE14D8334BA2D8368E1B1BAEDD +F4413490723E24933659A2C2AA76918B347ADCEA2DA773F4A90399B0D12E6D9697CCA9743D2B9B +B2E347841AF2FFD3B2ECB2F52C6E84E249A98164940093C6B0F7F3EDC12FDB0E28458321EA539E +D53AC5A8A6581D13899666E387F45611E6DF6FB6A912DF34837CD02A7CBD449DB6D76AE8E0B9D6 +674A78ED831CC52B501783FF61B3D6012C7FD091F78BE568A2D9CE4F30FC6B5762295DCBDA1F53 +54569F381386187186EEFA58E583D9476A4C2CEDC6B952315BC3AAA66AC4A0FF34DC46268C5B47 +7F98F170B5CA4CE9188FB5A7DE9B6C706F0E13693EDD06B359EF8B71C9CD93A55DFD9E9FFBDE43 +A8992E61E8037865318C26858FD577096730334BF64D160FBAB4B4A5D0E126E1F74F866D5B84DB +3ED0283CC471ED7420D5C7029417256C39A3DAA6282A87C42EAF85EDED92D9D2C68B7508F9B401 +6C1C52576F20AEBF17D4FAC5D2C26C30E4F0B0DCF82914A294B01A711A06702946A90876AFD511 +E4DA8B1E2DBD6277F42BC77D6E51DCF5F682214D77BDDA36632D7024E05D01A80336C3BBA5D1EE +6668CE16AC8BC11AC5075376590EC99818AA74958B818247ED7313B3D07D0D5D8C303483F0F0B7 +5B46246F62AEEC7DC00DCE07F5C4659B18BF0D157736575022524B7188F8BF5B5F4615E507C9C6 +8605571DF81A00715BF3D4F9AB6BC5CCFCC10496FD7EAE80D65FC97A9A5A1B82D85BBDEECA1E94 +0ED39A49C5CD3263FF051456CC785663437D56DF6FB1539C46C351FC0FED4F6C3B53E1D6010F91 +2B925DF6E2A25A7FDFEB8BB6F7FC2839467EB15668B2195DE2083B17CFB9A6B1822833DB7BE3A2 +DB6A97DEB48813C13D4BB2D257459FA71A67D1CA5672F01211EF9ABB0C16F378418F20C77F5F76 +2FA56B0F84DA79EBDF728CDB72277CFB44938799CF307E6ADFA8AA564530716D5CA8677C8710EC +846C6E87E63BC962D59117B661D1EB2B16B8E13484DC1C7E6DF23B21C6AC4C69BF61C41ACF593F +D36A9119969F5075A5D428BDB46620CB9B3BD16ED48E3E78C8A900FCD978DF20D16E2F895B149A +53FE7AE1A14B0901BA3A9C2FEA002FAE3DD25BA0C1C1918FCF1C85751C4778B8D4FF71FD4275ED +9C3E711FA12D503B0C05469AE2F0F82E9D6F7E1CF0AD5BE1BA3985CB588524AE771AD942A6C2BD +8BBF08E9C77EA4BDD54820BD8A0FCB35A5C93C0E1A3BB507E003DB5941B7950940BBA323E45FDB +322585D4792B5BFA97BEEC138D4CA56FA3022D3AD99E30F80557D9B531747E9F4429BA9809CB30 +D20005BC24E3A3488178526464E8A950C7D04C787225FB6DF51C3A38229C33FE52848F4DDD9665 +7B61FF9E0690EA6BB963F879D170F2EFD592D12731890BAC9AD2FEA407B161DF19EB30D6B833C2 +7ACBCE55FA0556E2F991564C15ACAE23647C57BF1885C1FD0A80C1A9EF044AF1F6C6C20B3BB5C3 +0B94C38F718696C127F3D0BBFEB64F6D2CDD82620640D7E1A7BC954D97D19B1BAD7B6EA8965E77 +EF54B80632B9CD9F8BB6028DAEE40D5965299407A01E09CCA11CC830B66135F80D5CFE6BB4CB3A +6C8FDC309EAA940B1401C268C635AF7167B9CCCF3E7BEBA89F73B721000F8B0EC19B0F572A5B6B +262C8FD862DE10BF92854FE705A5C5911AD6D01E83B9F15A0B7F411FA37DFD64608D0611FA75FA +355737F0A5F1A2736D071AFBA31A2AC2F41F8748A9AC1D61AA643FF10DF9C7F0310B861F74B504 +C53739BF454C0BFAB07552B85879DBFE4CD367B3E96ADE0C3604A4AC44BA440055D572F06E86E4 +375E88A47DCE391EF8DE0C730D340AAA2BB2A486517D7A30FEF8E49B70094284FB20079BE3C8D5 +049F0B631B76D2DF986520063E0BC6AC94DBBCDEF79ACDFB022CB575C57AF8F4ACA52FD00F08A2 +BEBDDD5C7CE5F0121F2861B95C416F82BE06778D14275D4A486665A639DE1BE871DC7E2F8F0DFA +340DEBE03F9C33622B0BE67DCD88760CF15732527B29120BAFF09DAA09DA45E32DE6B8A2339D35 +0C94DAA47D0C749C250CE7CB211BB390C521404E68F8FFF10D8CC2EC293A1322A3A6F3E3818D0B +248A90D38612061328DE74A3D22D0BE467974BB7D3FB9A1937AC08A0955DE27876236AB3FB780C +CCCBB0419C81982DE65ADCEEEF7230CD442C4C4A9C093AAE35A02797FD96AC49C8694FC72D0C88 +1420112C26FDEBEE7A305AC36D0658F01E1D8E685479AA8924F3FE5088642C02658CE696894DE6 +004CF81CF629C9DBDD43EA44DBC758935838CE09BB1F91250DE21F3B1AD55F3BDC8E6C95271DCB +7811EFFEBE9CF3382176869B3A618E3B7BBAA72158B6AC5749118DDCF030AF00E74624F17D422A +969CEFBF127BCA9A3198C2BCA0C8CCA866A809172E90E464733C9A270B1C3D2DFCA7FEC58CD753 +9D077BD744B94C9554453BA9D1BF9E6AAA7005846FD4B55CF15D60C06C3F2445758F28BD335E23 +5556B5C01A38A730607C3517698B63AF6924074CE49F290DF73CF429E6DF2FAE37A2CBC2624F9A +6D0927C9D450BDB81C352FBE1D31871E7DDDBA1358532FE253371C8D2D8BF8C4CA863676D15E57 +C5321368FE4E7042937EC55138C4A8C27A6EA262CD0D91C0D2C685C0A066C21EC0209E391A5E2D +49E2C48FC53EE4BBECFF04A7F8766681837A85238EF4B5A9692F28830CC59D70B5FDA03F42E0AC +58A955D18D3596333C816F59D9E145095A83617021B47057885086A0348B573766CE83A8275C23 +6D0FD66F945C3648A154C23AFBAAA66FADAF1F8FE11921E4917558D001F26F984EFA75A37FCDFF +CFE38BC3A587D49FDD012653EC979E65B8A52E461772A6F0C50CD9E1948FBFEEB9F3B217B4FF7C +E5F2C86F011B8CFFA027499E5E2DA96D2C1C83E517B5B6ED1925259E97FCDBCCF1D84D0A63B4F8 +06B3EEBECBF6B25C52F78B81AD948142669990E80047ADDA3CB0B9125F1FC99F141581E0F98FFE +91006E83866ACEE9BD48C5D79D8476BFE670EA9A60B4713D8FEA9A1A75DBBB3C36C69E2E9EE598 +33458FB987DE5E00733C954D610DA3C504A678DBF248E061FD83DE507D44BAD90D8A4DD5D9D92D +B0C60AE2A706F7EF6FA4D17E1EE1F47AD5A399D5D53DBFBC651544EED9E39692749EC9D096B7C5 +E461B8AAF039F663B092B4D2E7A36C12A39A419CA6F3EF7F4D1D2AA1387B701030AE94ED8288C3 +BBA3D4514886BEC46BD8A25292A919E9893E7487512DCDF3B8269F6BACB5BB38CCF0801CEA8944 +F38209BBEFE1789B30069280119C67CC9BE0F77B19340466D2A2BA2C4B75F38A4F8AAA832F3063 +D93C514B7E1D22A6D63DA4CD7AEC46DCCF98E787BE93240CBF28E56EB757B3A8AB68486EC15134 +08680E0C765DD06C6339E87F8633653A7581C52FE8D0798664FEE6191F8CB5CBC9258E30FAB211 +6A6373890BB95884DE4BAECD590203EC4D8428007193C1113070C39DACE584F19363CBBF4DB4EC +D870BA78008B2BA2E5D0124D6EE28AFCAE0097A8C7836DF5F6B2ACE881905C5765C5D7C68FED00 +D71A5C713335947713FDD49E117866F02C1A4588FC1518EF6E1CD9406CFAD6B5A9DCC50514F5BA +F1B5259C93A8D917EA76E357DEF2B8D27DE40886959220898D59769523A74A73955842C0B44634 +7C9A1F335454A23C72F092DA2AC404CDADA9928530393880988810EEF73F80080011F1E6C3A27E +E2804DA5CB3E1DD0CEA4D5B484F631F63474BD9EFB277C12A1F92A071A52C5E986E87EE69A567B +44E6E1288E03D9023BA7A2222168D5FAB8D47211F7C52EE10C5DEABAC98FD192B609073F4225FB +D035AEFDC4C9C6A042BD0A6D13AF241117E9F20E8E7CB2C068528D21D0F89E342B892A4A72FB18 +195D716AD02571E213373C608E13038D3FB474C0630999338D65C637FECCC5F1AF4ED5F9190894 +585989C690A83C63A0EE07ABCF2215055ED665D5423111218FB924C0BCCAE7BE3D634C9510D118 +E87B8AB3B7D92B8044FF15B7A0C8E1DD8A950D94958CD2082E8101ABA7447B038CF39D3099A952 +7E76B3CD1A5736F76B44FB16DE786063CA53D7F72C17326DA5B257D73B6DB82ED224FBF8CD8AA7 +42B2EA5126072AB706ED6F008DD7B59A274412BCF6DA28F9A3909FBFDAECE3F8BC302A94A6E376 +BDFF98E2B9E5C476C01FCE90A4E92176EC88FDE2A09180E0E1A21F597412480BF19F4D02CFC87D +95343BDB16F1DA15BADFAE941A331CDADF42D591F0CB59F117DB2A1BB22D7C299936CB6DF37C47 +B37D4570C512142801E810BF82978CCFBA35761C64FB236D7CBA3755ABDB2FF5F94CFD74FF2C58 +E3B9EB02CBDC8EB3D1CF25D1460C3D8AC1FAB52410FBBBC323D2C1A99B54906E7ADCD33749F347 +51B9CACC97269AD7A879C646489A1794657BA4127F94CF8E266289979CDE7A3227742F1F4967F2 +5A49EBAB5E0B3FF4D78D558DC86B446553AFFF75B75590157EF4E4B670D4D5508ED790E39884B8 +9A0881CAF324D84772B53AE4080AC52DEE29C8506FE6F3AFDC9ADC7D1775DC59C83D09D9AEDD9F +BC849545D80B11FD15A4FDF2ACBC494EE00259AC37FE497C6F35A4EF51B25C67C5212AE50430ED +8D6BB73FC89E34F2E760296047AFAB9BFE89BD2FAB47E7639F04DEBB92208578E6BA025F180411 +1AE7985966A5D2AA7084640FD7C7F96578321D74E9B508903E6D5D3C16CD3FC9788FF487B31632 +5FE044A262CB14D4B97250A935124F8024D1340F58E6FD6D7B0411E3AD19E62522906BBDC9428F +E31F00E1A0CD96DBE93F1EE73119AFE7C71F059A90D9DDBAFE00A4173E1FCF74BA97FAE28EC8E2 +45B972AF106D1FC0ED3574D1C713E0E955C4917745DE163E12B345B00A832F7F7B70CFCEB76F1A +88C0CF050EC5D2C9331BA0D84B9BB9D0ACE85F021553DDB0EF3485B056421587241844DD64623D +30C7EA91B5685E61D6D713D0867D8FF904E254D89B3A6F6E44239E8AFB210C2A5D741E0976BAC6 +5F07CFF611153E2DD8370D4E924459F571CC9D8B9C4BA56C0BF6BC1F6D20AA042CDB0EDD617148 +22A7A57F3B7030A9D055A8B6D5CEC8E83F471D692278EAA138FC371AD98D772D210B0F874799CC +9D7F29C2349897B7C77353D86CE4D17F970531A57FDB7E7642702D853AB8DA5F580690262AC019 +BC2672A5238FE43BD2FEFF2D2338D71028EA1DA10A987E610F0C527D6C5E7D0960AAF5D8A77FE9 +88B1C30C6AE41A073DE7DE2053B99031214A3C69E66301B2B2C12770C070F80DC986F255D3C766 +7C4AC0C85FF653193CE6369C8AA8143B99AF8C21F58E08A77CB575369E455EB094F4D180C645C2 +0368477129CAE48C36F4396E82E18903313AD0F39E666479E88C7CA4F99089120135DBCCE047F1 +97FEA92C118A0C3F936E4D12CF469FF2C1546C6559ECDE6BC9ED971CE2ACEEE6B4541B97DB48C1 +491689E0CD883F221B58F2E3C13336176A1D2FD31524E4E56D5DE01527EA3BF596A9EC4163DC9E +E300D6D8FB2A806A2568FCF190903D5FF08442C191980ABCE30178BBB7A0D51DC2F39850D2CE51 +8F5DAC1055CD93EB1E67AB262460646A235A14B6A2E2DC1FDF9079877D90F1997A01D7ECE1E0AC +3C69979C7A92D318F6B93051CB55F1992A0A737A3520C553AEABADC17FF5603F23712E31985E40 +167EB338F9F96444B908723C5D906B67556B0DC088E808A239757304673DB8634E5B049A25BA86 +2491EB65EB2FD1AC1793BC94E806B22F06031902BB37F75B16E12FC28593E171F45E8B5C076370 +EB2522791038C864354C495FA67640FAE6296C953A004B68BAFDAD61F9C095768E4496B3120EB7 +718DCFECD3B6D6D506F32561E435FF2AD83FDCBB6CDEA0669F0345F651712FE000D80952151CA8 +CBE574B5828FA7D2599A82BD6B458B4F462A6C09F1D7F335AC4D8919DFC8D2BE73284691A78F83 +605E0E1818030DC666D458E168F389F9DC51A71F232C4BB3F1CEDAC17E9A751D2A496A49BE94A9 +D806656CFD620842FB76BDEE39576136D7D3B2DD8B1D2FF9A6A288EDB4128C71FF0A8BE2D140E7 +B2DE893BD3F1878631401D13156D6992FA8DF287978A8AF5052A33E7FC68EB9D2487D47B0AA43E +B25625953FED6F4AA641604367E30E94BB66CC4EB3EA2497DFE7CC0874CB031A0635AAB2ACB504 +E70FD9D9C1F1D634D041425688DC6D4669E9ACC514A08BEC99A7F5928E98943CEC9968A09BF757 +38AB42F50308407B95DE4AD69EC9EC52D1E9C589F8B52B52091AE3872812CD55F633DF67209A25 +9FFAB05696B34096EE79AEF64B59B589E2BB49E2908FBA309167DB66F7F5D47C3873E7BD213B1B +48E966145D40DFC0541FE4F3C382A8E15AE837DD4C7B92C53E7285DB1FE32F605B89AB71DAD229 +D4921534DAB151E4AF32840F33B9C7F3866ECCB6B53D232934CFD94C8C59BA87D62BDA859472D2 +B3CF283E94783B1D3BBD1B35AA9C10974011BA857A8772462F1B2AE8130E1263BFCE41489F5532 +3CF207FC6F8B299AF55E6762CA918374FECCA6B5B55F2732FD908D25AAC3E703A05C0D6A70289E +ED5329628E968989AB3FE634F471EDECAC8F7056685B61DCEC44772089482AFA3CF96204E0440A +04E570C105F1A79F592AC40F5559FA0D29178F424C0A051B92E4684B6E90DE462083F33A7A08B4 +63E12BFE98B2DC6021FA61140EB257FBD66F085AAAD4C6FB0C089B1FEF91FA820B7A2DCDA6147F +AA85C6279992741ECAA61EB6913F437CD0E9D94B54319C12BA6EB71D8791D04D40DD386558FF9E +DE3883C324528EF3F428D01A175B7DED3A48D184420DB29E352D025FEF804E16396F186FB68775 +5F6C9277A0555B1D4FABAB02A6D40AF88BB5C9D82C32E577CAD2054FDF64ADAC782FBD31593A6A +65DA02FBD1ABD742C73B7634FE90DCC689489780A297B29BB3C175B3448D331B73F307751CEF96 +BB6C0C48403B1A0C7977AD7839111486EFC50AE2FA28666A0AD657F686018464001811DF596F8C +E4ADB26B2F717A2C520AA033A184048ABD8C9DB5D0D518B00AEFEC2E6E0507FCAC2D5D09AD941C +8B04D61233C49770640BEF7CE0B1E1424F191680A0FC4E93B5CE99A406E262D325E952D3F96EE5 +A67E22C686170726A86B6C5C72F8A8511AA6F92BD57C9A7524CE47DB120AE506E577106DACE83C +52595127133D310397646E3E75A3B9D3B2F49C2E7DB6B0B0BE7F0392B897BDCA28461A272ED2AF +E554A375CDB58649C07E6FB9ED7EE571FA41B8B0A7A6EE02667449ED8C079B688438BB0FAF2169 +40AA668C7771D84D4FABE67A893048C3EED90182CC236CEB3A2EF960A92EFC282964EFD400EDD4 +DE7B86DF8D18E8100DA9409CE31FE6B7360D9238DAD7590FBDE2E6686CAA620E5B578596E810E6 +AE10CA734AEE65FACEC38270F72A484C6386F37BC9122D036B531682B16CCE84C2038A58324826 +D5FE912EF4A17B59075C8FCB2C949902CBC3D948B1F8EF3EA31F6CE0E4352F3D643DF65116979F +FB9C6BC403CF123AFD13364947D9C1B95ECA218B17F8C515108B9527E4390BCE3A9AC2C2100707 +6E97A45317B5B56FB1C582985C853A4C0C88FE31BC32E497DE73C57FBEFBE91E549C3BA19486B1 +60B5A5C3E05300E553E8036C4D831F4A65AE9D489BE07EE4BFDCB3543015C173A416B1696093E2 +DCAF9410F4A2DA057162B0193D3C03F600106F767E245191CAFBDBDA048CFE83C441E3DD223EBA +0863BCAB6A9BB64365CEF19CD8EB1F328B17E2A3536407DB189CB5D4C8FFAB9CBAC077F4041EB9 +A73AECFE166891570C0747E94E4EBFF4914F1B986364817231471AEA4D2136FE16A83BD7CAE91B +721499F40F7D7AA61FF7864FDC514CE91EC8608A135D8DAB5B0FC96F72362994E5E20E328EBA8E +58F0DB8835FCD34C1757B99A98202AF46DE08761C367B2C8FFAD3063CE2F1419DF8E01CE2AA8CC +C7148BA74AFC479746419CAF20E4E195AB8BA6950C24DF0BA732192FD61B2CFB8A65BB9B83A9FE +9CAC67FF11B57AEB8AA1CF29F05D3A8D5EECD156D6423ADCBE34C2BE9E6E7D6B5F7551763C5DBF +AFBD02021310B5E3699436F86F449A1B8A9C9E89C39F541FEAA3EF045E2E5088388618DFCF52A5 +7921F88D6C2D2DC2C50274B46EA6900D295720CCA3B23DC55E0B03C30A74CB9C8F77E95A3BEAD8 +8CD80B9118CF0E295CF02AD0CBD484AC35C804735A540E173D4955D033EBF28EF625403505199B +F1B82F35648B70345550BAC06F01696C4B81C27BAEFA5E7A6A0ACBEEF1D6F83B0707787D8E98FA +DBF67B75AD26538D7EEFAAC57DEC507158DE3EA39D3C88D3AC9E73AE988B1790C343E49EBF0070 +C3245FA4BE1480DD9E041087F87AD0520791D9BB20AA78FEEEDF0772E1749F5FD4F0FD46265B73 +815CCDA191731F7E973EB698D3FFEABB83956EC55D6A7517643906224EA5C8962DB69EB0EBBD38 +66BC8F4951F9C6CC0C156F514DC6CC91F4E0AD9AFDA4CE3D4A67E1D09D29D9B7AE386CE2428AAE +6255AC616F9681DAB06ECE72282B0806D82947C2A680E8A3B56B0538A39AB4C55B9DB329697234 +FED1FF4298DDBB758F5B79979109A8A37CE495251311BFFBE9E0660B80C41F9A61CF994F3EDA36 +DBD67A1E44FA9C778A34E5C974E82087958B23817CF594718FFFF3423DB1FE5E7ACD4C4922402E +2178531BD057406134E8F65CB088C3B9D40DCEA5BE9AAF5CC8E1818226852442A7F9E593688F18 +1CA6651D1073C402EFDB48F0A177E654B9CDF18B3EB01B8B70EB368FA25206DDA4AAD4131503ED +72F6EF1647101805A062140F08B74794CEA728087D532A5C96B89660E664024D1F0FCF96447261 +32733580D9EAC90466ACAA47F0BA5113B9E462C66F7B17DD46F6EE4E1CC446EF9287A947FEA7C3 +0F4709A72C88E7C9BEAA57FAD2A7FD53EEDCD929D7013803F481F982737A6CC1879E5D3080EF8A +4B6759E75A56443D49A8F2CA2CC55D1FB2DAD56D5B5A0D7C3C7D0A31BFC7BB377FB52DCE2C8E99 +CD3938DA37177ADE7F069E92A6DF8767377F30213677EF1C20B00A4F5DDF8E12121AA48171F7E8 +DEC03DBED1C65067784A79F0389C1739E633BA9D28EE2CA792314470255BE7248D40E3587C0A0B +B6DB277A41BE95AE6390273E8A0B07FB13E5B530E27227F48D1298B40ADDE2E7035F94D10A2A50 +AA3A3CEED67AE00BEEAB2D163396F3DA8F68828FAB9D5E9615BD0A302AFE9775E684BC97121D80 +AD3B42C18C37FB1DAD5903B97E892160C7464813D891856E08E1ACD27A40760B7627A49F58F7EE +8B3D3660C3DB676B6B9B71DF2968750B9F1A80DD62EE3BD32C3B47DCC6C140E5F11B27F60F7927 +F1840E9C6EADB2D6D77A1C4DEB0FA8F892B44EA91AA4094C908250B6F4F6AF2CD54AD502384C9C +AA119D4D06DA553B03FB85AFB400F78AC92D8788DAA55B1C31944556D5ACF3AE6B4C58066E5CC8 +D618A8A49B984F703C797755145EBC8662AEDF8313522DC68C6F14C053708FA4DDBA689C43C77D +05056D8E55E4AFFE1896E0A6C26FF013ED34E9FF62AD8C7379F6188CD1EC8AE0EF98FEA0908ABD +2BB72119EB4D4C747152047E26AD4B14DF75F09AAA6157BFF0FB8AA220D96F2367280FF2BB17C3 +A9A738428BFC2318757A70E80E6FE8570787969C8AEEAC42A75677FDDE995476986E9EC26D17F7 +FB5F3ACBD535FDD13853DB3BAAD3F2E24370A4E8837B3EB483C395945722B35DFD7E2FDB46F2ED +44909C5DEDA732C2039ED60989264739690320E034B23ECEF5828BB96F8F2BA4397C7B68B7F72F +F82851184FBD2C4C392F3B5C59E5B4EDD83353CB47FCD432AD7AFC3C7E26B55928F0064993DBFD +9FA7E89D665C7A041C18E1304D5DE61801A0DCF44D7E317954ABA6C94365661347030CCFCDFE67 +19E6722145F2CD8E1D92AE1D78C60E301EEBF94B631032E0452206B1F478B3363B7B683EEAF821 +3B8156D95EA88CD65E6844AFAE9BF59F61649AFE540A9FDE690FD5F5C328E302C9EB43456AFC10 +7E3296AEF81303FCB9CF186A6C96FDB7513D2F6F84BE3EE195FE18FEA6F2EDC04C44F266D8220C +C201A5C84B9A81C2437B8D2E85EB7992F9FEE955FB316EA6BD40E7292F6733B9C561BF467FDF52 +B7C54D3B05D6D404F3348748E3D0FA42E5BA7BC2811139A7162181B5B13E9921701C60B0FE3F08 +9EFD39BEF19E4C8216EC556225337CB50701612C86EA1E0B85B9447D30A850D9AF35E039A1177F +E44023F345DEDEADA693EF0FDC26468411ABAC5EDD43D9B81B42F6E4DAC35F4C68B25096004025 +87F4AD458294720EA0038D75092D449980584FE7136E22F9C170477CCB97E543CB997F84331A0E +5AB5051B7143E86E80D13F163FE9D0B90EE9C6604B71397210300A1A098E70A27C591941A20463 +C242F2087396954BF9193E634998AAD4EF62C4ECA6A5A6B4FA755E9680F427D86A06BFE58AC515 +ABF75AC0D8F2843B39699850402D84EA6231D69A9F74F7DBB1311358AB6EAF9B965F2135257F26 +A328482E47922F23364FEC67DB123B0732BBAAAA4F88B66D08D6AB23CC9B123AE8B652378741C9 +5DEAAB8C553857883C37890ACDA07DA6996B3BB11E8AAA56F7C0BF9896CE207928BA8478F99ED2 +FF729969504DC5901265184C5606EE177FB5ADEACC7B02388D4E960F0EC674726410D099B490FC +6B851CF9085D8BD736F82E76DF6DFFFEF79221D00370C6EED9C23EFED4FE3AB85D0A52B32B0C3B +3FD5987A39B2BF2C89DF867E07A3C767A25F5279136E1F2E0B8636F9ECA61F03789D2ADF3C9739 +5FBA915DA068B96AF8C8F12F1D5E509B873574ACD34F2593EC309CAD1452BDCBCC3C30FAA7D023 +F44F742ED67CDED191B8C6FD26FC85E9263D174B9DE982200E94A6E4F63FB0ED4398D4A3906D70 +796A29649F70D77A8D63B1970D609BC84B93B1E4583FB5D1849C46D6C00B9643ED635626A37088 +36184EF0FB6D0DE5D537CD398F9A9361BB33DDC174E2F9C4C6D8E05648F2DE96FA713D8502678D +D64FB9B5597F78778A22D1747EF5B40913390ED8D2704A83362AEEFD90AB39396273826BED27D9 +8FF6B4AF9700D3AC5688BC4327C8EB6973B85218C0D00020B59B57DE1735A2815372646625076F +5278E827179D08372B9BA679ED92F3FD55CFF8B69EBDF7F8093703384E48D974AA64C5CF88C1DB +103CADE052E80605E70F6ECB32C4639CA413744CA95E29F76DE480F988CF2B52C1DB780593C310 +7A4E8C7914DAFC82B98F853981FBB896DF909BABC9CC1A1C008C3ECFFDDD656D481D7DFEDC42FD +C71905F15F665F800AAEC67C03403A153D46B305A45A1E05AFE40BF394D3C8A071CD5EEBF305FF +5A371BD1F117670DF1A49C2B5D1CC83DB21FD5389BDC26601627D729D6D2BB18A843F361CCEC75 +D151A8CADCF2E49A33316165D44EDE2CAFB3179E0E2AB8B5E0A3DC050D986D073BC7413D036AA9 +8962867022EC234CDDF1EB6769054D8A2D165A873164946C614CB9AE481E6B55B2801D9D6114C4 +F3CC16833999E6662FA63B7FFFFFC21BD209B69FCEA1C26B905362105807F12C9E68F9FA012E6D +C8DDF21969D38A19EAD13C5D49407DB5380AC40902044149070F9D7D251895CC5F8A597F45CF23 +7692FA7FF33355A31E26E7BB97CCF0E0DD2AA36AB210268836E819E45DE8518C8EE54E1719B483 +1FF5D90DE03C4E4C864057144EB4654B908EB052772160C8ECF1F862C3F504504F9E15628A4A4D +16B01F543C677ADA28A132F8BF5F758CC086DEE7C146B83B4C6476C3A550C6218675F4C33F1ECE +DCAB0C3112BDCFDD94A3032A73C6124451397A08EAF12937E980425DF411FA762E7817755EB367 +1A999A785D410301145F7DF41CDD1E3C642ED64B3E3A352D1C65ED1E62B2C9F40C9398CB30F77F +7EA88CDED5A5D51106D81DA03475B3F2525DA1AD4AD55379682868E4B37897D04A8BAE8B474A8C +60A51695076E91FAF2FD3E6FDAE7A633EC5A83242E224E1546EBD0A6BE6A1C21619A5226BA46DE +C4A93E212FEA0531C74115BD39C52665E51001D9D0C01AB67FF7E3A25D4D644BABC17EA0300ED6 +70B5BF65DFB5F3DEE45189F185B494498A6C1ED336C60901A8E36AB95F56CB53410928DE6816E3 +CA8FCC48C1C30B86CC6E2B3E265EBD4C5C888574A9987A037053B98BD86AD429CD752C92E38982 +4E9C1E441828C53CC495BEDAB0FCC65612F4BACDF7566DC2D9794275D3C64E88E4A70886FA6C06 +F6E6CDA24F4C5258D56E3E0F647325C176D28287327B6486818334B4BEFC9226FD828184E13A7B +44CDE166E10D44EC74EB1FC336470717BE9CC57B6DBAEBA117730124DED41270AA7A20D2CC5E82 +6F8E3A56B246E9EF62CACC7E4DFBAE4FC117D6CE6BD747FAF7E65FFAB333BAFC276A8615E36B2F +9D2C245729CF4F37A85B67CB71C33998503C619321A3F1E965FA60CEB0409780BC2C85E141C044 +1A52DC12D01583932E878BC3898756C8B70615310AB72E0032D58452F0844553D86BC4710BA757 +E0F8B346F08CEF5E11AEACA08ED7923116591DFF79A2004AE9E36476CD523085E52BF5F584E99A +A8F98416F11E7BE5CF0ED19B9ED53A8F5FACBCFE684C67AA615C58969FC9778C170D5AA4B495C2 +7FCE92D4BBB4A6DDCC03D57FECC625BAE1F8EF1BB450A617828AB945775A9A453CE791D118D7E3 +82DC1777BE65E6E8B7C5D6D53BEA31A4849314E6AD576437AD7BF724CECB0C5F82ED0CCCCE6A2C +07064D4857001B3BC90DFD3CB563750C1F85E1BEF1D504351E02F136A6846F3E3766CE83A820B9 +B00E4030E0D0AE46D1259ECC0F222FC261A59D458FC690A4F3AA9CF130C75089706BB44D0E11AF +80AEE0D30AB29AAE0C4F15DC3EACFDB17F2C398B32F1BEF376003ABC5C20A093203D44D3C1D3C9 +6730A0E2DFFDEBA332266CE06F31A3682230593B1441D5293F251509B06F2A623997A6F2E9E4B8 +F98EF0FCEB693AEBA92FE01768EB6417610228D5F164775FC17579D231AC3F37A781B960B2D28D +F7ACA6DBE948731798A429A8B13A9E50B55A39CFD2538214C79C6A6AEA31B4A6E00CC31A59A772 +2B850CC0E56F624FCC9538EA5536A1129D3AA5A2982D4A09BE412E10263225FDA8EA1F8E42C57F +0DAB402551A3504DCC450516FC8BE30B4835849A969A30986FA1D70A35159DC3838ED699721F10 +2758530FB4DC7D09F9491D6651755EB0A2297B4ACBD7D39A5FDBB18C09860EBB8B758AEA34934A +E398402DB1E678368AC44F3EDA1D0D0D9D4F622098A7954DE9AF40A4BB212036DDA8A547883F09 +EB4928ABB2FE16B20AD3C4DA1E433DA1A6A79DAAAF015AC57988E75428D0FA0F2439BAE2D632C2 +46C9518D02D8AFCF2BCD48B6ED4ED70A6E84E3B41C0C4C0A3504BBB7C8B1EBF881211BEB2D6F5B +821A773211A4275A88ACB6802899EEEE4E749383F4C8B05C364A0FD51C0BD79A29A44D79614CA5 +88142C955394E2E6947EB28568E84EFFBC1E53126B0AA649C5DAB9FD3812A82F36938DB423C744 +787DAF1E3615B14346FC285AFBEFF55619CA9C42FFEF7249E963A4940BA5523B63440014470723 +D98680E944C61D52C24C93D8D310CCCA583AC522257F9FD187239C5CD8F6C8F3ED9147EF975ADA +69C88A6E9837FC60EBD23BF6353B191B9A60D35E783D9C404F92860FCACCEC13A520D874413DFC +9E49B9665C6B4E571DA5F798661428A59B3E85DA5C1CF692794A19AE33921341D21BB8D4781D04 +704D31D3698CD619E18F671E767307AAB05095A47BADD8A9F3119A3BCEFCFB96B67F19C285CD45 +04479B251D4C1848636F7AF7E4E2F3450523C66C06ABBF9EBE571BF6079C53ED599684D7017F58 +33CA60357274C5D77BA844613955DC41F1257B8934D89624C66297AAA60FA3D8FE51B8071A55C0 +2B974BF714A4787154E2BE39EEA83C9CCC78E179BEE40491A7B1A69E9769065173C888DA32BAE7 +1C48A75B1ECA34460C5E7FAE5A6A0897C716A938E503D7569EEE2267314934144DED48A7376DC9 +95F1C3B89CE79946A39FF428F16CBF65E8006C9A1CBDF2D7553D4B71F884408415964AE608390B +CA3901704E39A68928D810C8815CF7A86FA3DE326CA7D506FEE41CAE47731B2834048D25FA5F93 +78F42F336F89062F42FBC4ECE7A2D005A72204F28F0F0DEEFD83A7E2123FD8374E9B24109E00BE +717395EBCF0692924216E3BF281AFD254E2A68FCE1344196031455C86E3800CF42DB12F84D03BB +F9DCC70446B94AE2F67CC4847378F33FD748C76BD7D70AE4D03AE6C0230BCA80E436C2126940B5 +CC9AF92BAD3B7D52BB30A24862089644AB0E8815856B4AAE6A930240F8B6E357A040907A3D3F2D +8DA2BDA625F5D4A2C2D7DCBA663EE58EF285FE140BFA75D28FCFF911E4F19819970268494C8285 +EBB9E85A662302D91D5B5725D508F55C1EFD3090305A904BFC3D9A7CA9D80DFF1EA435A846437F +86DBCA41BE2F5B4C63588E3FAA3AA34EE18AB77680F551E0E81F94822ED3606A36409FF601B7B1 +2D5893C206B985F234EB22D8144DF148E73081A4EA57308D5CE68061B213862CF80C8798ED436B +98CEF59156CED23B0718D240B9964074BBCA5EB0BD2A4F16651755078C28851D9575DBB137C2F4 +3B4AFBC5AB51F921BD6D50CA1A12B2F01C0D6501324C929D2D8CB56A83C82FC5041A4277A07EC2 +08612B09BF3D963D3A19CA82822DAA99699CC068284878829A27BE978C031EF4CB21E0F8886FEB +70BA0EC4A6A906EFB02B9F03D0058ED7518F7343D1A6EDFF6D3912A82939B3CB06BC34F978555E +749AA8FA24A7F9FC2D594083D139FEE84EC6523D878172D8E65BBF5FAD490090094A49456F4CEA +EFE5413F93E50ED2AC3CB2FA53E498671F274EDE57B451C541B044282E4AF9A3760762EAEB0835 +7447709C3311E05978E4EE8CFE0802F52ED18C051690F1BDBFB0AB8FD9017FFA728BEDBDB2430A +147847EC3711232297B0A463A705C53A36D7C6FC08949BDE34D494F550256EB1E083BBE7F5C703 +514B16AFF5D1930B3DACA9FCD03CD06409E51FEA90E950C6D93A8A1E0DC7B2CA228F56EC206860 +C8697516327C9D31D23D59F80FE2E81726DF71B43D67E94D00E841B5BC14445DA2E194700E5A60 +98EFD9983507E8AA4CFCEECC8BB43E41671B0AE88D8B0F5397F2168A2A7F5C9B9F2A4338AC7F88 +701DE489AE5932AF0AE9E4817C4C72ABEA740489E344BDCBD832A3A8B6A9AD5BCFA6A93595D2F8 +E2A784D313E058C60F62535013530C77B8559CE9A91F2F1569ECEB7662C34CB86C0B1579C83A6F +71B3D80C2FFED3AAB2D76E71EFAF3287AC7710B9879D65298D28CFE6EE1E3714A96259D72ECB44 +838AE9623CA9D4F57CAAFCCC7EBE292C1D2960A51DE1B4AD960650DF179115BBC3B78BF5D90086 +A503818AE875F025BC5026061453503D3AA579CB0E9C809E31E7512480BCE4E0CC1C69EAE3F202 +B2D9DEC3FC0A23D11B906CD73E5B735422371413350FBFAFA051584E1463A94816DB6BB48ADE15 +5D9A1F366D3246E0645BFF4959C6385344A9A9FFD935A413A27BBE68CEF39C66DF14F56E36FC9C +90DE20E82E1E5AAEBB441EE68CFD766F410C1622F2C1D72CC428F12E99E02D2C733F238B9902F9 +CE1D502D85364A2C4096C4FEB1639CC9D69F92D12C7AEE78D074B8808CD0BAC8086C401B0F4CD5 +0E49304ECA860A49BFF8874F2318561689AB5F7B2E5F1C5272FB75D5ED19E4136A91A3AF905856 +3D4B83865CF15078CB0C2B967E3AA549DB591A3EA0C1521DD7B2E222C171BF8EBE765A32A4A578 +4C611BA2C61B241F2AFA40E49712C919401968D84197A731B799D5397BD2B937329D299C8F0047 +DA451992E606BFE30A8E1814907A87FE84119AFB93703D9787D4C1C413F5A76236B78AECD7CBB5 +90408A312F60BC1BB63423E10312C80A121A154722994138BFB16B0393A07AFEC716EA6977071A +22AB3ED600A094E5C6DD73F6D7F0AD132355E7AEC4E301E821E11FAAA66D70A8E3AC5253AEE552 +186B6F6378B62C14EC41AC9451513A4B27AEBD66959C41D778F3EE8C6597A0E2A48A4EE9D14F2D +A3802830D791A3D045E94071071E8BEA8233805BBF35906CE76DD68F0B738A042708D796EB4EDE +C17CA860D8578157D85F550F31D3BFA8D28B763E9C634F61F42FD978EC125E90C71E2F537EFAF5 +283D4F97E572F1664912F61F69A1BC5314076FA5211C400DEA3C4132AB9CB8192080D78B7EC39D +14FAAA15298AB6C80A800957B2BDA1B2705FE6EFBA0CE5855F7E746797F964799EEC86675CC0EB +30B447839C99713D0D4D665D0F1BAC68DAF266267A57AF2CA066FDE9600E4623613B4564C58A6B +7343AB9DB446DC7FD45795FBAC9E7A7031AEA78EB8507BACADBFD9390EB90FC198391CA7E15CC2 +9B7C7DC6964E210FAD7808E92397B86E25500354FE8F749ED4C9A98A48B6E5BEFF2B2D6D1AE9EE +19F82E1A144192CE87E28731AF8DF82CDD1953D73B63D54416A87F4FB927F6C99EA8EB5291B10D +C519E5E60F8C5DB071F46F1A308B8F7DFA353C6CEF2578034B31C3B7537568B4C23657775503CB +2F9E829D8B5CF892EC4D405F215AB48056C1ADC9E2D7195463DDBCA169F84060C6BA9D89D3CC01 +0A58D845F687B148F35C17CAE7D627E63616C3ED8E3F7FCA1A2A894E0A11918F25C97C608B02C8 +94AECDD3981577E0F550145E18FD99EE2ECDEE940C7166BEFF60771C04C8093A0E74BD30551793 +15358C2203ADD885313B9C4AFE031A15116B4DB5641871F6078BAF130457D50547A0FC4872A9EC +C4C8BAB98AEE3EADB728523F5A1137DD046CD438E3D6C1DEFDF53C667A76570EC5F2BEC0DBD668 +5E18B204685A3C29826E79CE98555295CD1B17B29B46D52AE264C5D713DF91E38161717BF1BC52 +FCED4EF0F9E8E7384351530E4E1FA42EE19403E64D2B8C335E4585A32FECC7D3860819ECC40484 +EAF73F3CD89A56C7D2EF439C8C4E773C136898AD7492444FDA8FDB8C35223969CBE88BB5998C2B +B30F46081A706ECA4635B16B0EDE89901B3A7FA30A87AC59F0E3242314229267537F9F4BBFB5B6 +29C9665AE09B0A3BBCDFFEA35422E7ACD6776786BC165811A457AF8FD7BCD4624FCEECC83B2416 +B225A6047E6103BB737A668E6EDBC8825302E013B73543A6114132CFFFEECD1F9A9E2FA449BCF9 +85BCDBFDDB0AF49E2E42AC2511D4767C9C63198F03EF3733F3965A2C057528644179793910DBA4 +E78749FC2D2DEFBA1974E3A16C06B97C32B0DC0BCAC4B76564F7A1E6959B26CA35C806C11B02A9 +8D32629F3CC7C90786DB3E1A70C7F3C43906860630BEBF14CABF8B6D694B27138D633A338BA1A6 +0EF170D8EF499E3FB9D58C3C723A4293D4248AC65741884D5929B77EFCB3568500A991C00B58AD +2BD6C4D7DD017B05D02FF6E21E1C0FE24824EDF08945C7C6DB0EAF97200D3F0FF3DEB6405A5E9C +DB4610837769F1DE543A137CB2508051E95C322328E550BEC8E72EF8CEEF6F8EC850326CE919EC +2D66D961A3A872F086340B00ED43E63D714F2B26BF48D1A934411D909B4C1BF3B5512638036326 +5E2C49843403EBC73B3D5BB924D285E9F4B2DA3ED5D25DF840F95A089ED664C47B4ED2067E7107 +D5A83C5C25E981DECEF5C42FC7E7E210A1415FA477A5BA8DF602E04B026303757CCCFF6C2EAF53 +A95F621469BB567842F70C2D26118A6B017AA2D8DEB49DFBA75E8CDA1A6980408071A8B3152B62 +8B5DB74790313CCD0ECEBA0BD8632C7192853A41BD44759009D034F25EB1AD27A12630128AB4AE +A7FC3B39B6BA97ADE40DD2B76AB10CADC51978D5F3F366AFCFABFA031AAFABC1B8309571DCE7EE +20710F7282C77DAD16C1917864109E40D1B789356E45F8180126FC628850A95FAFD346B9B386E2 +C5FDAADB80844361C5D65DAFA9E305136624E7AF744E8A6831639C06C74E1DFEE49E52C3FC77FA +601F194D97FBF6D8EF0F948F8197854CB5C7509375660EB1AFF2C385966225CD1F7566895033F3 +C4DE4CF0081EE470F4AAD53F3165939CE32132509671FC167E8168C8DEF6B595F7E32CE6EDD833 +976F27556545C800B400F31173570A54E824CA84093346AD43761204C2647F8A105A5646E7A5A4 +0697BEFB5B5E50355A84B9F0AAE34EDDC377F3AB3A6D922E2BCE9CD5420219D0D5DF8B1D26A719 +2E20D7A1CEAA433F058E34879748CF4CBC1E6A6725102D3375EF3D6785A753F73E92F78590015C +2B3EB46F173A4CAD6E397DB0C30BE0EE57DBF27622A21E6C465C5EEC4B07112FC2D3259214E034 +229E2CAB1076CFA2CFBD0902CCDC5492A3B4C3233CD4FE6786077898E47411256FED19766B5C12 +2EDAF0206AF06CF8158A38BA554C1F1024D781BACABCDA739C87ECAFA132301160822F3C58C3A4 +B760464A89D990AE9CCEA67D3A5406355E5339F699AC6A775F15172914E55E2C8F8BB2EAF2FDA7 +E7D78411DAFE61A15B9858E980183C13F082C69D4E996DC59D5BC53AE66C50B2713510A5346FCE +DC3A53FF738B3AB8F6E7F12DCE034394CE40490D95FD9F5F484B4E965B1A39996E3F0DD6E5FA6B +5C238E858B92EB4E9F4FA3310F5E5135E75A7806613414C6EB5191645FDDDE7DA90936E1D4AD4B +B096E47A5575094AACEDF7A8AE46C1572BF6C273CDC7DCD2E9845AFB9E5531E91C21BA0FD3AFF5 +02155654713ED807AF7D55EF534CAE7456FA608A3C270018A85D80522EEED986BAB71CA2FF56F7 +A5B1DD9205489BD0E19C14C585F56622EFA9DDACDF3D1C956B2BFA7469EB513998DD71B0C8745F +F8665F2926825FE1 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000 +cleartomark +%%EndProcSet +%%BeginProcSet: ppcodbol.pfa + + + +% Generated by Fontographer 3.5 + +% Copyright (c) 1987 Adobe Systems Incorporated. + +% ADL: 712 288 0 + + +%FontDirectory/PPCodeBold known{/PPCodeBold findfont dup/UniqueID known{dup + +%/UniqueID get 4303737 eq exch/FontType get 1 eq and}{pop false}ifelse + +%{save true}{false}ifelse}{false}ifelse + +17 dict begin + +/FontInfo 13 dict dup begin + + /version(001.000)readonly def + + /Notice(Copyright (c) 1987 Adobe Systems Incorporated.)readonly def + + /FullName(PPCodeBold)readonly def + + /FamilyName(P)readonly def + + /Weight(Bold)readonly def + + /isFixedPitch false def + + /ItalicAngle 0 def + + /UnderlinePosition -90 def + + /UnderlineThickness 36 def + +end readonly def + +/FontName /PPCodeBold def + +/Encoding StandardEncoding def + +/PaintType 0 def + +/FontType 1 def + +/StrokeWidth 0 def + +/FontMatrix[0.001 0 0 0.001 0 0]readonly def + +/UniqueID 4303737 def + +/FontBBox{-28 -288 631 1046}readonly def + +currentdict end + +currentfile eexec + +D9D66F633B846A97B686A97E45A3D0AA0525392EECAC163E584A9104D99AD0BC1B1F3F7121D1D0 + +F2C60DD206B0D3C8C450620B47320CA0AEB8937511E456AADE8E66B301B1E3E9DFE17E2F79ECFE + +A709FF3DAE19B4C169DF6773EDA414D02915A6F0FAF8B24FBB0777C697BE8A37D63A390AD9DAE4 + +95BB7E626721FF2FD3FB147C80D22BEAC37C2624D818D58C8DF0209F5CE76ACDDE57A303D9042B + +F0A674D095697F925F532D1814BEA8F8A5B5223A32BC4A95402F2C843181776EA6DD8FF9EE5F34 + +89051FE34AE898ACF3201433CCCE8B93D5627B76114F999C81A0C554599F115C89AFA9221F963B + +6A2DA89342621244ABEB0E794C885F335E4EF8188C4B15B1E6630A405DA50578DDB37C96B3C8A5 + +6A7F70B55BC23606EC03C231B2380A83E0F0467A4C6F858A0548AC5AAC2F1117E7A4EA7A8C52D2 + +01B33626C2BEBCCA6DD9211D6C88F609BF2C6B133E55FCE6D8860090AFB3C065835D7B4F34AFF9 + +D8E0F4E0841E4367FF8604092704E1E3626FE8CB4A48EB13E45CBFEECBDFCBFCBE64323566C437 + +6AF858ACD9ACDC42A1C9285F253C3113122BC9AC460E2473581F9C1F210B6FE7B9D486E6C96BCD + +0CF9C52A89D2FA2D30D14D0FCC9A2470A3B91A0CAA9620CB376C417573860071332BF012305488 + +2289CF2A52934FB7F32BCD94337AD1EFE57BEB43E4A661FF8EF5DBA38FA3C924E8517AEC114103 + +11E79D6DF861159AC74C9620888EDA3AF4CA08A15623B5F3D1AEDA88B1BCCE8F057173C0337C67 + +CA2A599F1F4BA039BBB26179F54A57A8797A9C4EFAC228FEDF1E2C50A951EB19770525AF2C6850 + +5660A6C5F4E7C7AB39D5755DDDEB1BC4D04EB10CC09F907E6BFBB68807A874392E443C9867046F + +4B020E5D79BA450B63BDC0FB38AECDEA91251673C5327EEB74821505993A490133B73F7A4D90F9 + +9D4B3778E50274762FD18E87F7CA1D009DBF4EA8CDFDAC1494B7E78C17B43A9DBCAEE0CD5FFBD0 + +E0443DB5CB70E71D7C95AA35B42CF90830969A8C84802E49EDA9528B7D0FDD9175A6D41F7E3496 + +7B2E93815955A9B14B34D2A37E6E88F80C7C11DD39ACDFB1F10A1237A0FCB1BB37221F7160ACA1 + +9037AF794A3183554C07C03CF9DB3FACE33A2FB584A30A81578E99B6A625861D2D2957D5EB8789 + +CD0934A41FCA23C935BDB7094848B0FBBC592067A34FB3AD564BE71D20074C2A4B624945ACFC71 + +131694C4056E464D43E3249BA1FB106DA6E67BBC6DCF542801C73446A921ADABA4B4BCFE6368E4 + +543739A1AB352A54F734ECD3CDDBC89F014F59682E3C521B33CA0F9FBC23758DCB3446724DC4F2 + +45B6D123E904451D2030B0BA2FCBB3E58711779949740AED1F2E2B36C78EBBCCFBCBB6FA25EFDD + +0A9CA000C67D6BE7B0B3618E10ECF1FA5279A7D16462F5382AF104B5043777194F0138CF09DD2E + +F53D8F4735BBA9B1493FB2DEC4D33B35CF18813FF6BF9E9EE78E2AF93566F0FCBF4D6BFA7CA307 + +E7B29BAF1B4F4743B14074BF91055E3FF84C3AF83C6642271BAD1430C7AFB976832E88471FCD13 + +ACFD0E867F5BFCE3CEEDBE63EA33A440B1A28111E39EBED5D08BC3957C95C33C2F3BA027005CD6 + +FDE60CC4471657FF6FADD89450AAB5DC9668195FB9D8F7510F13CC8EEDAA6D0915898CC619DCDE + +8BAFD257D6B74F1ECC62599FF345702AEC4EE7BA242C73CF8A361C72595F6824240DB10F50A8A1 + +2E605636FDD4DEC8C7F7247E1924DD13FE0953677E86CFCB8A10F15E60C79DA019FFE0F748497F + +8D7D92B07FD2946BF908AF2B6CA40285C966D7767A14FF85E7F43B49E0F8EE1DA6B4E666347026 + +4743E0AC871379CF8A079EDC65C1D84896329990B60D9A33C724E01756DDBD8B9906AD18D1E11A + +095085675AF9723C0DE46F78E04790916CA89B4DD5EA57619B59E71BA530B694598648D332FC78 + +EDB34358805B64DF60C5D47AB82F3AC87B5385C39116B03017C3E4BB4556B96DE5F266B379EC69 + +9F4FC8A9F854C41E8BB03C9BD7C003883A90226992C67B2D02DBA92242B94D21566C83FAC1B4C1 + +2ADE6FFAA049BF6805AE76A6A6ED48144DACABDC8D2F35CB5C08158A73A0A1006667738CC471E8 + +29D9487E22DFEC30DB6DD281931E9BE9C84859D6FA932A76F9D85A1E99AFB5F5905BFED6FFD762 + +5654649757EB640B5B3C0D18019BECD629162091B69154DC0BDA1D08F0727AC851BB43503EE396 + +D3682541A730EE450C30F663187C3B5004D24173F962CFEA8E04F5DD664D5F6DD515224F7E256A + +4EA07B5CA823456D75708998097267BE5D77D20E71BBA0BEA3F327865A7A0C5746289AA653EE2D + +2157C2AF3330A45557F5F825A8D75284FC69BC15E1F73AC0F5A11B26D47210D195F557B265E9E3 + +0F6AC77C5D3AB084743E6B758365757B81D430549EF513E79AEBBA539A745F24D48AE8E728F028 + +4DF28984F5DB1203F0BD66628756565393F1629191C50347C0A48205DD807B0E6CFD353E22BA43 + +1CC6ACD8C6B4E97D691F743DAC69CD0881AA81CB3A48A08CAF9C32E4400A77F94A52F9AB18B4EC + +ADCA4F073DA5B3BF4079E0125B3064685FB783E1565D4A7779290BAA734052AE798F5CD75C9127 + +B338A49E2CDFFD9F0A429F662D170AA8851250713E3D19928D974B9A7CE6987DCCB07A53ACC32F + +D217991C80C5834BBAA796A7F9B206368542218701D93279E1E197D68CB0FD0313D7672A1327F7 + +06250FEA4DD4C623CD568F1F6BA0468D5C98B4E9C963E9E9B21BE58922750A5076449C8B9DAEA2 + +1C46E2384EF871C9456ECC739C1B3CCB5A85CDB66E90108C860B180EC7D4DD769214FA963F26AC + +66E28EF2DA1CDE21B3EF93714E42E7AAD53346F23EE3985B1A3F871D49CD56A0F041FD19A4688B + +5C18B14C93AC2D30E55B902ACC35DE79C6B3D3BC8DF6EC35570AF34D3472C24EECB4C07AD7DEEC + +6429F96942BFACA4B7CFDBBCEE6FCB8D5B542E289599F9FE1C2FE2B1E0E18F135722CB2118933D + +7743673DD8ADA0AEAFC20C36E0157B724771B00DC2FCD821C26EADF429ECF0A24CE808ED06CB80 + +EDDFFDD8300AC5FEB7C1B7CB59054D1A4F04267EFF030E171533ACEA869E8E93792D339FA96C6D + +648A9D4CC88C7D0C1B036DA7D452007A50EC5F0CF8F4C622C7078CFA3CF4BA424A63906BD510E0 + +A580C22AA1F0279F9BE03B7E1B6C714ABFA2FDF4EC8E14714970FAF1BCA49C71C91C46B2F31A8B + +C338180AFFE97E0A4FA6BC9FE4750A84620E2CF23AABC6CDC4097140480D2A09C231BD32738D57 + +26BF12435640C3978CD4C855484D6CCA4482834FD761EA4153B1984D0578B776CDB21D48918012 + +86B6466492608DE797A7B951A979A2DCBEFFD69297C46F2B372F8ED2CCAE9372BD4AF6455DA71C + +65FFAEA6E84523ED098DC49D560C5D6B60BD5C19F0E61BE5F7859665295150E152FC3E885800D8 + +C832757ED77F7C53B30FD7EFB7C2258DF6EF3AFE23109D7A342F9B348FD6F36EF63C9571A96F6F + +8DDA17837E72A6FE0598FFB8E0D5C220DA3D3938510923C93DB72B25726A57885D418E8D6C049A + +F6EDE3A1DFCA9B10B28EF6F1D077D4B375D9CB33CCABDBE849FCC158E603ECBE7A90622598C99E + +88B32C2DD4DE614CCFBCFD9C2726DC3B26544A3989F1E47398FA46ED9378FB048ADE2A5E4D3620 + +708AE4B210FB4D97D3D6FA9FA4403515584D86F7C3CBF2F743CF2A63201ACD67E589B6F54BB05A + +4EB85B91328B9F2375E571622742681DB4F9447A2E0FBC4B4CB51FD7F8BDE4AD2D5278A472D2BD + +B5D88B77982B01786C035B57F85E89DE40E6368728B7283F542F3A93D3F5A7B1F6C982BB43A5B2 + +FDEEF5BD8C61831865349BD6D41EB3D2B0F94CD10E6D75C370667831119311B9888D0BE9E84BE0 + +F180960AFDFC65AFADCA3A9C145695CDF8C8AF9150B7BE09E5C0EE64FA511B2C8C6F5C1B206297 + +E3C7C9733875DD3976A6D7A2CFFA5CAE810C02FCBF2349D346370B5C95F00FC99A7FBC91083A6E + +4901E21F99159BCD464196651D39E6209557B52F604FA6144437DACC5DCB92FE8F81913B2EE3F6 + +B4206E0DA6A01F381D34242902678BC68F4D8B1AE7FA11A799D06C72A376197DB2527F45E2A1D8 + +50D47D835CEC8F963A6FF0A80778E46917E6DCDD841DDE904E3FA961EDFB8E6A5B7B47275581D4 + +1EEC0452DB032189B0F40207B11607D1427D50211D76966122832C980F9B9715DF2A25DB8B7940 + +9783565A3A325C5CA68A248E7148944844EE8A2CDB2ACF7D8A462775555E348914DF3238F0EEA0 + +657623EE65C29B7AD07C8B6413F78A0A4E9FC5307E427305C95FEF098E53E308703D757F37F193 + +7489AD1131582087D24BFF50A916A0F8E6E71C335E50B31650CB2FE42388473C55213346737CF0 + +A5D880D0A56E3E19B753411E92045A0E5C0073F378E9002DDBE0B10EE177F32FD9871B98E023E4 + +3AA3666F4594591F6AAD8C3FFD37804A451F21C86E794E657FF50F549B9F32E4B0281C36ADEA91 + +854944606176A6B3B7C55DBCB560D82D57D0AC1341F03240AC56A15D878EDC113A61277C4DFE71 + +DB85C6D82658105052EF0EC3AF873F5F0D1881B97CAF0CE52167C819FE01E00DE7B448887A30DE + +453A38BFE37CFCCA4F41E7EEA5A415F33052FEE64F7D2108C09F79E97DBA6998A3E3D5DC37A352 + +9333CFB254FBCB62F90A0A80BDB3606FD94A5D69A32A5EA004E94E45976A514BBCAC041DCCD593 + +CA673BC3EE1B8E4F904C3BBA2E19E1B55518C7D69B662C115859D51137FBF2D3DC019A8CD6E6A0 + +C14E4311B15FA670091B9CF8ABB1C196B4E0FC824BC2EBA76C62A23FE8C8A38D313F992FFAAB30 + +594798EE9C5C216D6E95411A825FA4F29AE05E0D883C07D24C4F5108839F131395731DF39486CF + +4D8D668B85F7A55DF83F5ED35F9B494B0989878C33A0817B8C7537388C5C6A658014866EC07D54 + +C89A80AF83A7C4DA21DE447206DD4C2F21A39C8CDDCF3B58A332805714F82B1E966180F5ECA958 + +27ACDC40A4A6EC8FD9BB024D3068C94FEF25E4D6337E40D2A002494EEDC7905E6BAE38426B344F + +5B36EDE8FFE894652422B11A320285916F4EE5D61E5EC9869D49729A0CAB13873BB3E0F20FA518 + +B812E5D24A641796E38A1766D805A89D9D9FB642143C377B365EC45BA6C193B3124C069C525517 + +6F35EC85546C1933F25B093DD56C78AD86E502A235D2773ABE3B7BD49E3DC78A6AECF20CE9DA4C + +87AD7C7E75BB4AAB78797EB93819A5C8DE68638EFF281B141662A463135DDA0D2D236DF0EEB709 + +AAD9A549CABBCAC4E577B1955BDD8BEB42650780CE2B1EAA47C35993E1E1F05051145A94C89D2F + +4162BFE23A2C91B7844885AD346BB88E9C9F8FAEDD20B6D6E54A9FCFE3C185401EFE58F29CD4AF + +8D9DEA6EBFF427E9AE18DDD3D1BFFE2A17A7137B596E239B7426CE38B5C48C81D17FF85462B648 + +70A3A7C9F2F3AEE9884D03CDF387F90C5CDB807E222A744A617317038707BF3130ECAE267926D1 + +52154FB423E2FCFC438AB660738148882BC686DB56C50D092D60428D9B0371704D3FB8FBE75D56 + +9E22B0E9D767A5A8EB7702C34F7320C30FF142DCEB9D9157678645C51391647F9F7329B39C2432 + +00A8D0527940F8DA37A300C0182CF76F3220B1E62EAC18E8FE0A8C93A0A5A373386E38093B81BD + +3EC3CFD5BF2E88C51321D4540733173592661D85F1AFD04739543C397E368C73500456264B2625 + +37B8EA6D147D264E48E65FC6694D277E5970B0FB471D76280A74008B10CC5A216ED07F21A24BD5 + +DBCEA5A4E0ADA483F04ACD7697AB7A0A901C0192581D4FABBC24489E3CF535737040B0C15BF2CA + +997026FCC37E36088D513CC20B68C8D8709E5D5811B5C510D6193A81323A271620D239CFA32F96 + +3AF5F3B5857AC680D1491DE3F22A8BBD2952EEE5B49637F24BDE92B5A994CF5E0271CA9ADB47F5 + +C298A391BFCB60C630312AE893AC48F202568DE1B43DD986A38A0F478AE6465F83B0FD3ABD7FFE + +3EE06BF88D5016BEE2E90D4238722A604448708748D608295E3B435BF2B47C91FEF385F2731E95 + +1F73FABCC88CEB8BA48A087BEA2DFFA9301B60C4AB426BDC104A2411ED838085FC06CE3E4E6906 + +4D7EF3F301DD3CA3EAEF498E6A7B4B1A36E9790E7F69ECD5E8967050835CE779E3B44014C27AC0 + +456A96B9E28C71F30031B49FB00DA195A32C4175B6BFB279FE435EE92D4FD5963E42FE99D95438 + +7400706C17567B1FB65C4E90AAC10CA628032E0493A971BD55D83E1AD70B240BFB6EEDDD625D4E + +4CD6D4895668B1446DDD235E8DE44B694F3F93AAC2BC0D04C871FFBF5DBA1C7EEE0BF66C949A58 + +B16F55497E82ACD40BE356CAD3EBD707C0020ACD410DC6FFC7CC460525C2001A0B4A8B7B114932 + +3A65FB65BB7C20CBA305E53A312E9719A15C45C39C85A4F1F008C361B1757DC0BD8C10204B0218 + +AEAE29D3FC55C12E9985EF36A45046F46606924636F7F76480FEF7F8D264C73266C05A6DE699B2 + +37F6C1DF777306BEF1E0AC48A6B1548ED41B7EDCE706CC8A66B3D9437210C9FCFAC978C8F9FEEB + +8E220D024C04DAC2CE62DC8AFBE7AD4540B5ED3668E7B59FBA28A7F8D822DBEF84DFDB72566EC5 + +D6223A165959443A2F980F6D16C8187AD321C27AACF884336F7D8154D06FA46E3FF51D2DC26313 + +FA812F9F1507FD75B80411DEF69FE268B9A4587195E45B1FEACB0295C63BA8A4CFD47E7C711511 + +AEB00E93C0B359EA0DFDAFF5DFC0854E2FC63AEFD37DF473859C040D6E8D82F640C1815D3F9A53 + +AB3E1D5E1F0B0E125510F2C6D503C4CA518BD36892B83AD31B3734804F72600562F9246FA2B5B8 + +56BD55212CA27D700A7913AF505BBEB9BC3B2EEC13D7289997ABEC078808C79F65939B07A2619C + +0EFDE6FF7BAEAEBB3A4A321846F639A7096E4F7688E523DA1901EA3FFB6A71110B6CA2C45D1FC5 + +49AC32F03FA5AA7915EF43770A13AA68C43F4FA3DED55D2940F76648076D955B509217254128F7 + +46C3A2AC47D683FBFBE12057454435941CDE662220AA7B356E4718D591B81A06C04DCA83A814E5 + +AFBBB758EDF1E8DF1BF622D4E4BB637E017E4E66F6067CEF0650EED31BCBDC6947DADB3982329D + +E902E52062CEDBEB77715735E698E40448FEC00842BAE3BAA207D2B28ED3BFE1C1FE428439470F + +4E1D8358E35E4B97D61EC6A128B4383EA0276A947BC9D16794C3A3D7DB0BB59FF649875E0AFA43 + +E6586F8B4CA921C1AAFC0E2D1C970B380977CBA505B3D531F3789282E21D1B5D9D3376EAD7E4E4 + +00085C47CB858DA960B55BEA07E0B012BE3F5620DBA167C105B95FF9B5FDD28D5354C877E56710 + +1D45F9AA471D27183A55AB9B34D626815D32CD824A4C46772D8FC4931341E227309E8307835FD2 + +5359A10F84AD5744B8181DAD59176B6B466595B42331683F57546ACA60106654C9A1E5F1BD47DA + +F9F93598E75CF032198D69A1C4B152A29586209903C7BF126BDEE5A3806BA1766BB02F5D75E33D + +B2B011106FC3C964F8FAA9E9857BCAF903463FA7FC37294E4F0FF98BEA22FB44F7AE5E6789658B + +BAB5C30D6C32D5E24E268B54353D1245ED78D1D7385EBEEA49ECE496A4261F992F67B664776D6E + +CA1C8352499BF3CEEF365E152582F98590B8D903867B6557200B1070D91EA32EFDAB0580559EB5 + +56A835F74BF458693F093389EE1D1B1FC1BD2AC1146EA9C5E4B14BF26AB3EFA0BA0AA1813E6C61 + +B7011AC330B293A5CCDDB41412F97BA02D38E502D596912D165F6B0300228891210DB700E975BB + +47427388D5F3246D80CB9703FE5F2B2CD40873AE0521850D4D656174B52F24C06AF1D9FE4ABBF9 + +8B432B6150B0725E328E54BE382A16D5DF6C47D9DD14751B96E2DBCAF4C9858336F527238E263C + +58730C7E27DA1B21AADBB48154CE5E9C92660394D7282FC07917C91D0E91DAE3FF7DECFD5E8082 + +563E1673A15CFC069E08D554E3B8DF570209D567C65F3D26F251B405FAE5F6106637728BDEF735 + +EC2D5E7AA3F00434EB58C3307D221C12FEF6D741ED87081DD6B93D2E9282D09A7262EFFCCAFFDE + +CEE8C4E942AFFD8215B84FA57D41F5815F3A3191BC379EDC454252E688EB9788A551A17876AF1B + +0A5ED5A62E92E7DE332ED89A9B4F406552F9B706A6FAD59A433F72AB6D4401E25CC37C0FF91713 + +4C838E5CB3CD5AEB8556443B1BF513900F293B9BCF33F96608D1B108CF9BC7DE95F4B518A86987 + +28F20729D60E75E53476868220B64E905BBFBE8E26808EAEB0A46A1E096EF868EE4410EBC87D36 + +46037AFC6D177F42F8DAB8D5C88200AEA14388AF09EAF5CA24D72A172D654BE198CB426949C4E3 + +D23C7D49F4AEE4D20124B5830480D0A8CD0F7EFCA3FD251C609D124D0BB4E7A6CE89EA7C92E0E7 + +B9CB870E127E0337A2E645AEC27D1B0D85C57D27F0F7AA1E849CF1F4E9BDF02297C3E61290010D + +4EB0F30697D30ECCD1EDE1766BC137F2E2A3D7CED25B1BA259D100BA16AC3D29C01DF83DFE5B24 + +DCC9FFC2B80F61E91D2E41560241C00E79DA970A09D8AA229CC2F5C114E0713EAAB560442CCE73 + +993EB9882E7C0292F248C00717E3A1DA46ABF3FC716226EAAE35E8F20726B1A045A20F80B02473 + +8B7B93D0E79C6FA11780A6C94E64DE53FEAE019E4D838607A05C7746A3385C9728CA29D8F64373 + +B25307272A77028815D80451061B010EC8E82B0B70243F66B97ABED264F7B53B163DE8204796BC + +C593CA9BE3F43E26713DCBD9E3449FD300F6111A50EDD2F9CCBC6D0012A973B5F6A1651074FD14 + +76BF69456870C5228599FE7CC0959F6804497A28E3AAB129024816FBD3C0101A9B709DDE0A92AB + +F0B2948E096624D067F17A8CF2E8251A40969E857D86739883B6B46967EAC2286BD451F26B4A16 + +026FC5F3A087F4BE21A90D336B69C5117F3AD532AF6E3FE9C8A484D372A1C8C1A342264D3C3782 + +4F3B582D2885642D2B3442121A7F3BFCBCA35D09DAFC4B8AA8BA4E0C1139E3F29ABEDEA82732D6 + +3810F7FB2A462E11A32DF2E74904AC7C5704C545FD6D08D6D1F6F07C69BD5418E82F6B33C36A99 + +5044BA660ADDEB24C7AD10889CB785169960F8E6EEE9A321BAA78794AF0860DB5270193CDC9C0D + +5DAC45A1E67FD6063A1998D0624A5DDDEBADC8C42318929535A693677673B24CD2CD2869148DBA + +C1EA486DEB1B0D83E7785F1E1EE65B9AE3C839C7427108C13C4B7F657BA9669D1FD3E3BE5FEE50 + +AA20946EE173BDC0A9B940744AEEA3847D56DE7E86ADDD6F63000CB048407070AF65E4BC097347 + +CD82F6084D20C529E35490492E5293F97554F9979405CC6FF7F801CC3DEA50DAF9BFEFE8623B2C + +8C7560766C4115EEFA40BF980647F6D3187A689294060DFC214E22441044CBFBB2B6274EDD44F5 + +218057869A46C517138E4F848DAD69F24208896C8DF860F0FF71EF89310F2D82EB7ACE6A72928B + +07CC57A2DF6443761D91283B59BD006650CDFDCEF8BD64A0F626CEAD770572D489E916AFA1AC26 + +8F6D22F3F37B63928472B81EBD287F6619900AB5B291A047906AAEE2CD93F7FDBF1658DFEB8D8C + +D7EF987D0D1235FF8DF202F9E83AD154500909996FEDECDE0EBB2F95F69805EF1F774D4D143AAE + +9A50B64BD514D83D00F05715F163BC7F64B90663C5971D6A5393C1D6011978EEFFD57A7B93FA57 + +E6CE1CBBA31DD510696A344EBDFACDB87AFDB6F425BCC13AD245E9264467960F951AD797AE9D9E + +631265ED0F12D4ABB0F6189FD9433A236F00D01FA038D5BCFB3DF68397610708A777FC3021B685 + +448445D326EA7649406A88DA392857FEA6156684E3547E8C757BC38223C0CA2569BE438D03B575 + +70E815D58BD82C2EEC861020C1DBF073EFD9C8136ABF263461D3AF77D057F50214904DDE51C3A0 + +61A3A1E1CFE413E9A148F05A8108608EF7FDB96F392E74EEBC5A4D354BA2AE5678D28AEC014979 + +128630984EF3D5586DB8783F0603D7210782DE979C07BE8DD589C710DD44394569B8BDE770BD90 + +35FAF3CFA48070C5CDC8CBEA2B5AB2620D4C40818AD740966B733B99E8CBAB4909F5EF5B5575ED + +0A8CE4635FBE9D69E57999B2739F281CA4BEED6FF2948B8670446BBB30D0BA6679AA38C2DA2A30 + +960687F2DCF0C741539102968C8D6582E55974811630B0FD2091B63477747F45CA0ADC23221AB4 + +C2E94EDAD6F862119F127A79A2BC073254E941B37B830E5FB504B26E580320DCFD5B2D03A5A6BE + +3C9350031D7A58F7B351A9F917ADEFA72D81490B325C4C1E39175D1D3F7394A009D04A7B706E1D + +3B6F61BEA096CF4DC50E4C72999667EEC869125B3EB152E3E7240968F9B93BDC91CC5E62654D7B + +46E2E60A4D2260322B563C543D9E171D5F1E816E73222709A1E2F14112209089554DDEE17CCB1C + +F066D0AA1387524FC4B2BB47071407428903A1B9721D6CE4046EC2FE43B9CD9409BAC41B76A27B + +8D4CF3DA42F9DD8A8A751DAD103F169A1524D0780022F764C49FE9B44AF80FABFE48BFE40D62D4 + +1AA0618245AD7BFAD7C105A3C064493B109F765EB06BFF5C1C8138296C635AD6258FB0894C2DDD + +BD37C46FD22311D265AE50CF391C85F6ADF59181EEAB5B65D1F81149AA5425B1C11A432032CAA0 + +3EB2FA8204E9BB6736998DE9B12E9E37EC651560F4E906B342A725E21021B82B84249D5C0F6D96 + +33C4196279E569DB16585843D65FAD0B5D893BB0A9D381324F76B61DA88DB8188E59C4BA15EE5F + +B2892E7260F9EA9861E44921ECC1A27D79B25050615852C838BC3BDB4D9A3B81AB2DFE7667E2AB + +0592E4D8AC4172031E12760F14AE1C058F986A22699E024E6C6CB50A43066F1A0304AA67AC44CB + +379814C791103B6C2D4C1439FC3046B611F6326A5BBE697384A976D0D01815B933EB4734966D07 + +E1D509471BFAEEFBD3F9689EAF82B0E9AADC2368AE52AA48F0318AA1BCC81C3F2B89D48C08A1F9 + +BA4D7CE86C5E913A87A0563D7790C471DD47CBDB273AA37CD4DE6BFDBA407483DE275FF57FAF93 + +22591A8523E77A3343CB6100AFB6035223E05EF3530313885FFC63A8D72DE099C50A774A603098 + +59EDCB3C4E424C9073E0B5B32D988FAD04EB486E65A3EA7FF7DB3D2FDFABBC92DF6C742EB6F09D + +2A78387DC0CA8561743CB9C8AD949472DAEC66ACADD435C818D28127770A8DA2A5090CECCBE16A + +516D7985D7A49C7EE9D08854435008ADF25041E8BA5744591AB7E22D3705EACBD1D9C6378F172D + +B82B2C7BC51293F40064306F69103E6A0BC1C1046C2A0AFA2E038550C194354EB8E263085E5390 + +749E2C98F43EA68D466E40C5FEFE6764939CFF817814B85BA928C5859D20709D78CD50B957E809 + +0F37CAE36B181C37E80E9E8690D2B9F0C34D204B8E4A5A164CAF2FA4FC6ADCD77509EAA5236233 + +6E9DBFD1FDA1CF32A9E980DCBF4B7C338CD18399ACE5108435767FEA8414585DE7C3E08590B37C + +CA0318A82C69ADDFCEAE156E5D1FE3EF9526515FEFF356E0351CDD1D3AD340E7727A478264DF2D + +491259F05A6504093949502E8D10250556B87ACBCA7EB938C62BE0D0DDA4D02A93E18769B895C0 + +4E5FC1B229FF4A3D7070A0856290BBFF3460C5E1AF92346E7879F27DCCD8A5338791656C376128 + +421DA4B07A5F96160F0421AE10C1F1675D396A80635B7CD1BFA4CC564263DA5C0C84F3787DC8D0 + +8ACAEDE11486C155BB1B16806303B9D21974CA19516C63402A8F0067CEDAF682EB2A2127348DBB + +5A662B5E87A5375B396B1153B843303501ED93534DF7C7FCA09EFB0261311155FCBA2EA97668A4 + +65A7751F91BCA566E4946565BA1D664CD8FED19E84E7563205DD7AF77E2A4CBC6846EF5ADBD11F + +1958E086FD7673D5AC997867EB0217314F32D60342FAAFFFF957F60D9B0AC57E611137AC695DEF + +E313BEB5334B838F83A54C3ED76AC55C67571F367A409DA052A0354837BDEE4D11B426DC9DCC74 + +61A6F422B95DF3894A002B02BDDFE3FEBA8D8E3BB7556F501A83A10FB0137F428FC522260E0A4B + +1655399490DA83CCEACED148AF1F447C9BBFE3B159399C82EAB257BE568A4DAD68A664D7397342 + +AAE7D38223CD9AEFCFE5E399F1D70404D470A1CE10D46CAFF5D522352C50DB8FABD7348FC6CEC8 + +34D5A82C04DDA105F85F450E7363E4E989C6725E6BBCF7AA6680C97D128FAAF4D6E3859F03B0F5 + +A3A8A70E0C9DAEE84BB95F41931A30AA18D6C51D9DD3D3B0ADC7D0B5FF0D0A889A944C4468F96B + +9E59515BBA5C86BDC5394BC40B80CBDA19857E9DFF41E75802D2A2C0247122CE94A7D5DD8F5846 + +27ACA0BE5C042A02FB7362C34614BCD17350AFB1F0EFDB09AE2F1C37FF21E007CD4DF1729AD932 + +FA20A8F85C06201F9623D959B9E4A90CD04B6E4AE2C1795828B022D990D939D5D1992CB2DB807D + +072CEE580FA9A79F07FD6C4980C997EC524B57B350DCE4F9013B5BB07165DD6FA1902868328FA8 + +0D3CD770B783818DE508E59383C96A05FBBA840831E129F0DBDD7B4AB05801E99E968EEB7A0106 + +5AF04F11C641CADBE745EB6EA76CEE1AA8524E405F23A9D0683974A78879299600BDD0924FBF18 + +908625872A63C38B4DDBBC8C764EBD99F0877FADB59B5F1D4FD9FD2FC1FC8C4F068B7B21B3787F + +728CD8CF5F52CE4A760746241C4A696F6BDBAD58A4D35041D744FBABDA2F883CB475E5F75D1ECB + +9056C3E52878FA0DDDAA30357906543F8440D1FEBC000297676E3C5AD462F825F1D302A2C7021D + +5A62595363A791A8EDBB22EDB9DB968BA0EEB4DF66E4622A04EB9FDB041DFB527CD404D62E4898 + +D5E7ED464B0C24D58DAFCA7E891481363761D803A9457B7A2403E1816FC67167571D44E27469E7 + +B1BC3AB85CAF808BB4043537D1B80CC490970D87A20857D868CBE901076419436A4E3C95C7C9B6 + +0E3CEAC7DB19859EDE149FF3F07BA586BE12698F5C0CC9815FF2A6C62F7DD98DAC639084CA7003 + +C99B9196CE6A6DC59CA0B202C9AF54620E38A0712AAC6E01D2711D40D012F15DCC51647721D4F7 + +F31E29E6CD7EBB59842B01BFF8C7C424F0E58D4FD15D56DAE60A6450AF2254D368CCD09CC3FA90 + +123C44ED4DDCD7F09D46C1354E5FC1A6C1901EFBDFBD4D6AD80EE95EA1B726B2309C0720424CD2 + +5F72D9E5BF38B51271FD23EEA93013114B356370A3C9D438EBFA0590158654E2A3B7D4C887921C + +F6538D1BB294CBAC75CA66CCDDF0B7F7DF1748942A908C07EA13E6B809B1350B9D73CECADC98FA + +35933A81A34B7A6F8EDC7DC2AF60B2F0632962B401AAFE06CBC8EA4DC636406F2CED5FAE7AD0D9 + +ED5023813855A83119423E4A114B413C3A016969A7481CE45E4E061ED9980FD961404B895D5A7E + +167B4D32E153DC778FCF5DA5EDEDF68D5707671B23DF2871C63FDBD6F9B9BCA9E7BB776B37107C + +38484453F24B4A3421A21D8797DB822236CA1A15D8719726C59D51F7332259E7CF23F28F1D903F + +100F9B0E8D8DE56CA3A99CA5B40D0622CC4D5AE6BA77112CEA79B10D0D5A808DA20D76B56FC499 + +206587F6A0EBECA10AF73F8E091D82622BFABC52A28DCC8C295A24041869E6363CF589670D3471 + +1F3BE64D02C861059FA9D10081FD2A0EA137C39ACFB2A83DCC9486195E40E99C0F28418B2C29C2 + +9C01A8CE4D98F29A22E58CAA51E9ECAF4CA85FB59E18C2E53873A642E31BE8E47591DA6EC6D7C4 + +E13055B8D08D6D1F0608A1080A38831280C98D7D47CFEBD3258432AC396BBF95B77E9470BA4B6C + +9A052CC8EBD7277C3B78514BDC491570B7D7B473C15CCEECB4D312C775BD8D99E46EBECF6C3533 + +FFFD3E5BEF8D7B9424447999A91CE1880918D750EA345E6A10771DBEBDB1B4CCCE1474C07A9C4E + +A894017BC593024CC16B595DBC835F4EE8D9ADF7FE8671E0BDF36613FE7844C598A789CA784B9C + +97AD2361D7CDCB2E9BD45032A38D6B0EFDFC8F67FED8EB3CDE280D81C6DC9348BD48CC580D2958 + +5658ACD4C3DBF2D7D85A78BCE9512D7F7BC2EDF7B76699545F3B1BCC202F53C8123B15F46D8F88 + +1070F1232CC8FD212F15785FECFC6B83C0F439716A859B64239C1FA880D32F62376EEB12EC6C00 + +235C9D550AFE84C981329B4B3DF17BC0E57E72D89058D1D3E6EDA91ECFEC0ECF0B802D41B4AFCC + +8DD250C13AECEDEAA1A0A6EE26F3351572849FF5E637A898D7B0A099D87012E274396A27E29A21 + +DB29584ED72FB614A317E47C6177A9FBB2E5320BCD90CC086B7DCDE6ECEE01F597738AADDC7D9D + +33B02A09CECA2A389F16AADCD2FB02EF257BAB1265ECD97E25F0DE1C8E7526FB5F8C328FE37078 + +A9D0F30D81B90A97A752505C8A2F8C9C7226E248AFC5B4318EB407B6A5DCE33FF5309794073737 + +F72CB55D73FF66EE1C055B9A3E49302C11D7248F36CE257FB051674274D51CA4C0DE1F927A882D + +F54C567B73FF1D38556CD22716A3F269B9FDDD261FBAE4A916E0818EFA5C193AA00456DB6F7845 + +FE41F715A8C0000E6FA8151895B3F21DD9BEF98D9CF674A60C8A1088502C6E09899D6456F4AEC9 + +5875068E29E2199ECCB632F7A459324512A3BBE6E65132263EE3A4E2FB4205580F5DEE083FD84D + +48ABA8E3CFE81FB1465D3027FC69C260594ED380C47B6AE3DC2E35661906D98C0126FB7A80FA3E + +9A2DF727AE36048F6B083D8D8D8B1A8028B073B96CE4B5447050665BD926D5A1151F3E0CD63C60 + +FA77FF2746D4A9E3E0F295770408CF348672EAC4772458125A8976BAC75469025B5AE8BC55540F + +41308CE31D273690C95D1173F05D953FBA2902E364885F821E14FB8153C749EFF100247E4AB315 + +321D9C192E68B3FD7B51549B2224183195A549016D2A4BF943F37184743D6E5575F5A192E23290 + +CA227E29F9BF15ABF4FAD388A9FB689A807AADD44048193B5B5B81CA9F9D7195803AE02D1A6A49 + +00074E47313554A4F3B842F080510CE27645B65B57761A364D0F890115D8834EEBDFA247923AE1 + +33AEDF8A46F1D1D410296E25E79C01F664136D8D219D324FA9B3349B1D5D180C025481EF9E7BF1 + +100F242EE16EF433054913E0ECF29C4A0830E93FA9898F7B5505F87BDCC02101531C7C9C107BEB + +0BDECAE5A49BEB45D3BC0D869B441BB41A64A229DF5A40CF258B0178203F91318D97D529D922E8 + +A82D36F34FFF98F0B0DC0984903B9DFE86932D96BC16C766FBAA4EE8449DD1BA7DE9ABEAD68989 + +8BDC2155360C631458568E63B929DEF983C6E56B563394B25A44B25DFE2CBF86244D266E44B6D2 + +DA18ACB4B2F537DB64110FC5187ECE20A514CE61209956A6555B35818E40A7036B8402C6E7F957 + +0BA69BDDFD8CD3C77478ED8491C1B721DC66078C59097F4F328BA45D7711D5F105AB8E5C0D3C5C + +F88CC85A2AD9D61B39B7D5BFD41DD227E50AC8244A00D9EFD6C13679B415B0A0DAFEF87F2D0E9C + +E1FD835736DF865C151628CD950E7DBC216AB359D4575BC46D610D6D4A0B50351966541D60D075 + +D98C1E28A0602F0876C3877050292E2469B66C8473420266AA8555F39F01A8C1EA343E3B42E1A8 + +F362DEC13E6B1CA2150B54A2896D413CBABC37515587400994662F9D892B1ECC5617D309DE995B + +F881BB27B0D1EB7EC8318ADC767A76ECE369E01BA8DB3E4797A78FC81A0852DC3FF3758A51589D + +BB0C8981CBF74076E83F42109DB8E11C9FA042A13F7866D34137D02681CCC2A8A24BDA46E9DBAC + +BF8D771B9EFEA416168992D4A0C5489848C5FCEEB6FEED260DF9D39F576EE08492B5BE18E34D1B + +7C4F05A828B2A8205634428F0169B58C95D6019B899FCD1910B4518D0B62861FC1803083617858 + +3D3273555D54206AB9624DE4658CCAF3FF2DA8DDB07A006F569F05AE0EC5E8BBA69E336B5A1BB0 + +A62C4DEA0ACFAB694374484EB3F531805445023CCB2A58832AA92DA536F0563AFC31B0C539C566 + +82633366B4D9DD8AFFD07071B8A172123901EE104E0A6AE2E3FE7AF22F23C3E4420F3B1C26CDFF + +255186F1002FA7836BD49637C480DF686F2FCE81C3CAD72EEC91046A3F2573F3A6844418FA4333 + +96D24B40272E3B580B66EFB2ADA4DEFAB6DAD03B7C2BED09108A353FC68A77014365BCED57FB50 + +5FC75F59C2402FDC24A886CF7B64B9FA13AB380DDA7DBF27B6B04C7FF37F61C9997B969654F75D + +A9929395371BFFB0D5B4FFFAC278C1E3D26E9D02C81891E8FABEFF9935FB2B6EAA225B6A223D0E + +D3DA70173215D25D7A3EE298AC98B9B3433A7060B52B9B1783F85E18602832228D139A86B37C3A + +FFE85F8552437DDEF469ACB48B86FB731379EB31940B6835CD47C640600082F3EB2E526B22F49C + +504721A32906DCF84888E8D0612435994D7475E23B0D6E6F829A5997812E8B53DB03116767DCC1 + +90F373E1C58A786564AB2846C95CE3A63DA0C9BF7B5F41C2A16201E2F2232BF05E4E7015E0B898 + +E410C7934616D499B35E96E4FB738165B8ED6708F9028114F3EFBF5B4C9288422F206AD6324AEC + +120A3BC0AFB1EBBA7639C8D0209DB2C432155ED7124110F3599D8E6CB9167435A06057308743D7 + +DB1CB5CA1F1774FD4AA3BE52C7B8B04234CB4B92293DA24ACB5C03E38AD4ACF2D5BF78378A52B1 + +D0443A548FADE2ACD6ADDCA315674D917CBFFDD48FFD4360721A9F3FA0F9F9EAF194996A33A524 + +C8B374AACE6A364F15560886F4378F5679AF393C195C56817CFC26ADA9679180274303DDD38A41 + +820954702774A160227CD496E147859CF2523466F8951D1BDE79AA7D21195BBEBD2DF3DBD12942 + +2A11241FA8009F43421BF7973045343BC959CFE22530A9C3B9AE5F271BC9273756171B19885793 + +97D4863133AF782A9B15B2714C77C6FD56077C00902C057184AD01B10B5556A6E07B6B062647AB + +22C783519B87E2D9A2BE689E32A95DFBD2865E585CFB0116A4110D40DAFCD0DD87709DDEC40B87 + +4433B29CF6AA9F9406CE62FFEA07A59AFEF28E49E7BBA32C7F6066995414E9EE5E2048A298177A + +13DAC03E5DF94334EB6E124E86E837880746D2E63D2C49B4D0D5872991431447CE8E242A35DE34 + +6C1D2F3DE7443EA05C2ECAE2518B883A55DDDBF53BD64A7351930C6137D351D4A88908E133A914 + +4ED0D2001D7BF8F4CAB42242FD0B38BE90FA76816D816797A73D3B9891A0FB1950723BBCB97E15 + +1116E7DAA5B18FED8DBBBD2FFA0B6115E256EE6755E172DE0C8F2515A494E698CCBDE81D710514 + +AE7F732992096454BFA76172EA259DD9CB0FA5EC1BE1050C1553B34EE9C206B540DC4F53173C88 + +B80A88B183B63949CCBCFFC64E0B9C2A9C4BC838DBD2B48AAAA1BA7B40EF4311E0AEA51E8BB2DE + +3508BE43E33D63D13BE33FF9546259D0EA541CDCB46321AD22773DE75726823F32EC1D37ED1122 + +65BFBD416D0EF743B0420B73E0D73E1E8101D53E63279FBCC03B580E00066348440569704E32CF + +D40AED353FFC3ED3FE2D0A145867EE27FCB184E4FC03AF5F9F01767F9B2456281D326DB639BCA6 + +6223ABA7CC63CD678F663F61B0408F1A1976EDE9F96FCCFBCB0AD29C8E27CCD81CC6C5E697B304 + +97DD51F00F3FE7FE33F931A17FB7540263D7F749A34007D2C7CB2EE57A075C4333E2214B866661 + +743E487ED761B8774E076ACBF9C2DE66992C70189A1EEB61B49068F413CB3851E1ED18257407B8 + +ECB78EA381D5E423907B194E7FD9DA950C1A502A0A61ABAA12E71102792F7CF05AE65A7C631A96 + +37679B2C4BC651E21DEF22EE339204DB722D1FDB119F9798C718E4EC9439C472D89D99612F71C9 + +F49890C596C28BA324C5A79535AD77A5E36E1841F829DB7477CC63A944DC16DF273D376B230653 + +C50A97F5B9590DA325210B935B68DB01B80CA6596ED2AC5BB0243FD75EF8F6891EF0A3C01EBF21 + +FD96DAF4DAA83A5A89485490A6FC9BC693B28B0553EFFFE574A8B3C5BBEC36E657C2CDF4DF45F2 + +47C59AB1EE5980725C51C43DC289E21FE69791D9436B49DFC122C44BE918733E70E3844CEDE633 + +4932C5207898D707AFC2BE3AE1322CE0BC8A58F8101166B048CD6E94B392A54BA88115F08C1066 + +4F417025B8AD2756EA62C9945999E536D1576B5E1D3327D516609D1B371A0E9B0B9FFA934B8578 + +0D51EA2AD2AEA9FDB6419DD0485B95AF90A38B1EF5F68A1CC5C7319E4A53BD9BDD208FCD59B264 + +BB05DF3D7E571E81547EA4815683CFF432345F717CAF3E20E627CB39B9C434F659AF97760230C8 + +4D0C809A9F86EC721FF113D84D94FA2F37ACA9A8C4C6A2763E2F28C9A7C8220FE7F8A99209E094 + +ED621B684B69FDA9194A7CCCD51FA49933EA157061FA23DD5FB90265E4EC9A818C1379D5E50809 + +FC7EEE1F12D5B1DB33C6C21DF11F0D9B49A3A2D2A9F39E056B0604B6FE0FAE6F09B18F59B2C197 + +6592E58B746D3A99AF56B1D5F2AF93A40E43CF30E1CA184D1E898C94802FF9B2365AF38D0CEDEF + +638B210931772BC190E4D40F4C5A1212DB95EA596DB64C7C0609C6814459DFA2286EBB5EE178FE + +C6AFFC3B9B520DB8DDB4EB5D4222D869799FD198C5D64E4F3887583EDFCA2B8F511F90B0D29FD0 + +40D1427FF12F09664593E7EF1C0B426DC41061F34ECE69367F852FCD723499E564C77614CE2434 + +5C0D41011AAE7960ADCD3E2D63EE16177D198975EF288842FA5714AFF9E533597855A0827FA444 + +CC687E8027EC98CDB3606FEC5A045E2AC87E90EA0050768699C9598057B50310D387E91055E974 + +AEBB7C9136C6986B279BBE5E05AA3091E97C7104E1EEB0BCE9D3448D86644340A0D11D9AC4B6CB + +DB4BE4D6CFF130833FAE4F03249C45298571455480603F5EFE2C1892875737ED1D561C3938689E + +7CB30DF5E26D479083CA61017650592ADB01BF6DD12807B65F2BEB6C8FC949AC5A1FFBE8079817 + +934BC8897E251F4C6B27E7B6B5247F5E48C39C84AB8B70B14A868553B5F205F79B8160DEDE2172 + +A0FF07AEF0735780736E5EBEF7E8187645578989518E1337D352BDB192AF61858778D21D7B44A9 + +7C26F44564852788556E84D60619D1CC84E4B4A0F49CAD9B7B713930C957C632117674C503120F + +C564A3318560C1C57CC76F78B8E1FCA4E24EFE078FDE51A24D12CE1B799A07230441A08EACF0C7 + +9D514169E543ADE9B97EEEFBC6C50CEA20D5AF481E8F2D5B623C444B409FCB1CAED7C3EA7754D6 + +AD14BBE11D707D6FD3A70384E275DD06A809793B873E646BA143BE816971139F62FE007C313F7C + +C7370E1A3EFD18FFF7BDD8BCC1C67761A6D1EAECC7D953C58596C0B54113C8EB522FE6FD8068F0 + +02D60C7EE92491E2F8D509A6EB872197C9FED96D963C65FC98F3DDFA3748D33A2A82C22CA4DFB7 + +DDD49F7D622E859FE8F0DDF95144E6BBE906167CCED0D65EF05332E59D739066859809F0795E07 + +DF9064968C5648134F527337CC5F610D5B941F0AA975F6817B920A3118EA63DE7FFF3D59BF1451 + +E2474BFE57C94E03AC416CFDFCA559481BB587A9F8366260A884A22CE93FA8A172AB770C2DC5B0 + +0B73C9FD9FDF5E242BA9B845FA4DB9CDCA2149A4479EA77E69E9F3742AB5711517BFCDB1B3C194 + +7231C437D9E50C42218C3568ACD953D742D9E093DEFD04C07F2D5F151D00B1CAD086EFD5B10446 + +748524C070123F21A09EEA839E381527DF98DE1B735C1111628A0FCD75AD863AE47A34207DF2C7 + +8D1A50E7AF312BCC999DE49BE0F54AE7337B2B5D83C4F5507A5355C2CE2900CDE51D25A41B7407 + +2134074708F558DDC22C14C7424A611E281413FEF9A438C8DE4BBA6BC67A6F26F0E1ED9254513D + +20EFE361A7426B2E9BAD4889152298ED397C6AE1B7E0AA1F93A4A717C13439B02399C773DE87E5 + +A7ADA2B1514424939F44F114E0E663AEFFBF7BAED51670D789A671862566777C93E61E4BB5E744 + +FBFAED947BD896DA9E1C947A1E9D328D6B2B38B23CF0ED78BFC399B9BC395F08DBF457FAB6E43E + +84744858F94A729DE846AA8E888C1A215C23A297C2D7A69F3C60DA53ED12FAE643A7FC15FBB680 + +3A8ED275DB3D1E0199A71F203C8FE1F58F39289303BF7AEE928C0927EF34F1614C23C89E6FE3FB + +13AB6FB91EB3DC4718A8C031D3C7EC111F09AC79AE3F6245D0940A4284FACCEDA645A129A5241D + +91E81B627189E1809E4E4CB8690D7D16845C0E97EEFD7F88FEA959FB55F70830659CB2002C6913 + +7870DA6E061210344B5CC6B9D03AC7B5441BDAA81C25508E3D5DD7645F7FDBE1C0E9D2360045AF + +2D76F46EE26CD703717A7C2E83406AF63A4378F1340357735D13B6C6A1E9437087FAE7C42E3CC5 + +EB89EB2184DA87E6B523163D16CB221FB546C039774F1C7E4C2D19C648FF1D078691CB7A90524F + +AE0F1990289F3A01BE5B4BE31544102DB04EB64950A6D633E6DD1E70C1B5B50FE00D1270AF7DA1 + +C5AE22EE0BC7D63D6ED9EDBBC2DB21A657B7C6E39284551B66E959EF624DAE21EF0598E598E5FA + +D8DEEE0B87AE1CA77C8902CC8927E74B0599B8DF867DDB285F30817639243DB7F97191FC15AFCD + +34FEF8ACFAF926AE60C13DF70ADEEE70B4D2DEF56DD6890CACA39E94CACB2E01BDCE1A29E96643 + +CC9329028C931A5F748426032CD586E6D759033F1E46833E93EFCA0AD895CEF1311380B8782B6C + +15EDFFC736A939C6CA53BDF65F88484E4053B076358780D1549CD6FD0234587A4616A008E6FAA7 + +E5D9EC458FB293B143AF0858A8532FC6B9E6F69797CC27548F1961877B9C749362C2E3BD41056B + +68E284267156C72A8909A86037F6A755A82DF34999C6957C415212D060C15114D5FDAFDF01B3DD + +563428B401E85105D7BDD9AA98E54670561354D082B5AE3C370EF9E2AB1BF8A8E3BF61B4348C0C + +C6AD2795B453F8F81D36DBA8847143DD955203C9A0DFA23E32EC2355AFD6678A2B05FE6E46CDAE + +3E8E85ADB4AB71B7F84D1266EC92A846F08170694AD6657CA47F560535D0FF5725C41CD0FB3219 + +B9BCA5F9545658248D79896A8B5DDF1968D4D95A37ECEC7F44F2A4D6888214FB19541ADCA69F72 + +94BEF62C0520E95CBA4A2B14D12BAD004E6468DC136C89AC5065719B9175B8A1192C83A43595B2 + +66A196E820EAC6CA3547374FB3BF23CDF14D939B67DFC5DEA9F98D80545BF93CA67240F97A1A5B + +CD137F2A42BDEE7552968623E6CA659FA42EC5C2CBBEF2E2706D06E0E2CEA225482214B9B6C45D + +97DAF24899EE8BC6D8A980E5621075B9CE837B724340066B74C013E8AD806241DA5A18BC3E9657 + +EFFD4A1443704B90FEAFE0A407C7C2E880FE970560BAB064935F209B1971E03C33B2B37AFB4428 + +01A9C4D63A6A93910B607D424416620559E7B95A50E879A8A0607A2CFAB26D40858B955C8CBE4C + +C55B6736F20EB7439B1CB96CF00E91690659147C7D1608E5260A2E84D749D90708BFDA92BD5834 + +FC22619A51764DB4D8CAE6463AAE80503F42CB4E7830BE796E4DCB10A1EADD636C79DD1C174C26 + +DD44830C38E92BB25DFA70DFCBBB2D0B692D3C5917FB669BB36AB2C2C26ABF2B35C0B581F76D77 + +64644DF89EE87862DE3D5BC1EDC74912E4F2799836023EF89E5E817DF6252B4F953DA4FD0BC02A + +4E22FA762048837FA8C99439BB1FCBF5E215B5B4368575E8D6769E3D01A9A252D7B20327B9B315 + +95C01BACCB65A38FF04A5613698AF2FA63B36BC6942ED241E1ECEB7A9F2E8E381D300329CBD4E3 + +1B19BA0AFF6415569F8774B28CF9E6D343413AA0D41DC3C3F686843BB1B7DAA242A635CF345137 + +B3FD4B6162A9DEEA6BFF1E719DF602A8D79CD5A60BB11F26D437BE8B4A039D6C2D64ABED520C07 + +F09E8037A8D76D7E3ABB5946D4837F1B12274D0AFAB29A44E027B2A8C81574B846A7BA94756AD8 + +F33D2B76C79FE4D94CB3749A64ECAD8AE9D4D4EE219D5FE4524EC95CCB89BA3C73F219A88F674B + +2D40E2C5B4497903FAEA7BC3C7F22590F8F2D6B62151885382150E9611BBC33D9ADCE695FBF947 + +2AF79EBEA09169FA0047E09D9499D7A977ED74E4DEE3BFEF1EFE0193AAAF9B8A2E285ACE63FCB0 + +4DD5AA4FD311EB8005E81DF970D2C3927B9327C4093236BC98FEAC8E130001239A81C426D477C7 + +B68AAC466820F7E655251550CC979079F3200F12B6DC35C84DC5A19EB0630BBF3CBB2539AED37F + +4EABC464CC5A8BFE75593C7F3AA5BEBA6CEE1AA2DC43E40AA823232D66714C058F36A012A922EB + +0FA0B58510C1239004B84730C1C69AEB4A38084B6E465D9EA04580B8110C9B1B023CBD1EA44753 + +F7C87390A884BFAC825D84B93CE4AB5136264B8A1E0C3166E94E8EFA9072A10AFB760FF2265012 + +A254F0755F81E1E42ACE3CF03D443D81F237D7DD9555F2447155DD76DC076F3BFC492392828705 + +3EE6BE05DDFE30AF2016FEA53154ACA91A6089E9807455A536753078B7294411751450CE4ED63D + +0DA4C9907DA2136DE96A5289B783346CE7E6DD2C1D85395F91373C139B3CFFC5DF1A2C47F32537 + +232691820BE497E818BCA561345707AD98249DC40062E30D647FA979EFAF4FA50AD9CC270D47ED + +68E1E462F54EB69E6D734C6DDB41B5C2B1D6281AD3B9F497B3B96D0C94AF938E9E785A96DE5DEE + +9ADFF8340600B3C173B6939B5B06B8F1341276F727EA16933151D7DA8F254786EBD6A0372B10E2 + +79058D2327F2620B039C9453EFA9B859BB5BD459E7CCCC36B80221932668403F62BD00D1E31758 + +E647FEC1FB816B6C52451E6FFC50EA8D52277178E3C4AF5B2A59F383B271FD132E216945B69A34 + +B13650F5EEF129A972A695FF2BA138E10935A564AF918A66C2D51CD942DE7F843127A3DB82875F + +1A14662B0C3A15BE4BBE1D875F8CBE54C7488F4131074822FD47C59AA4ACF18DA9714E2619C8D1 + +8A9EBD5098AAAA1150D83681A6E8CCB070784B128F736BFB43CAF5F239E9934878C02328BD3084 + +CF52EEB20A26BC36E76A8DFB36C9C1397B16D16224DBB9C64ADED191E0E53C61BE7D056355F20A + +1AD4EE38E1EC8C1927C2CAFD36FFAC24240BF07CE01FF3B5CC5866B4A3FED0BEB8695E23C1E16D + +6DE2883B8A66A2400313B263EC2EE6348BE002BE0AC2B5B406E392C53FD41A144F7FF24BDE9892 + +7AED17BDE620D5EE8F0495A9E915FC0F7FC69F8655023F3D00E3309342340AFD3F00CE76D50B48 + +5E1AF9DCA4D3F2A40F7B02558949DDEB6DD69A5E67B8B5DAA3956EF97E710CC1BAA7476B8B534D + +48596240555C7A220CB029664AD274F478903E94AF66026F8562CD6C19837CE9265CB6AE578217 + +0336FF4C7A0EA5C28E069006CC760D3B535867BD376C0E6BFA43A9DE5F6D888211DB06B6F3E5DD + +AA666609CA7E2291EE0596731E4CE79F34FE0559AE8E1C29E8D60015A445C34F8E643B53372EB0 + +5331E58197096478DFC49B7F092A6209A2D209DC02EEB1B7D7B12E89A0551C06D1C3F3793D745E + +BC6D2D6C57628E5BDFAE09936976D7C9AFB653CE4E6E198572CE46180FF9EB009CFE450BA26BB5 + +705525051655C355B5D61145A7EE06DFA487B311DE72A975945FBB64810434F8D739FE95632601 + +A46C6C95C8BE365245A89CF7634735DA14CC68E23F4E9E82AC0E0F85ADE8628BA1BA4F9118F800 + +7237990280C19061A305B87BDE6FBDABE71A72740E338925AA871C918D927F28ABB19FFD2A1261 + +C82CD3A47B76248828300E14D71C75B777375D2970DF345C37F3BE01E56A047C99D27F41D81DF0 + +43C1103352FBA194EAAA50055DAB070346A20F39FB007BEBA34627337C1B71465DE82D2221194D + +D5A61B666683F09E21F76418A8086FA4B2ADF0C94D5A702A2BE6BBA71D2A9F8767B2A390229450 + +EB9867BEA6859EAD686C61FB52157036BA8F62468CB934E10DA07C43942B964A92C279E3DF2635 + +541FF403CC50F7DAF1F1146783B0D2906F674273388085A1F697E6DD821649569B8CEA2920830E + +95A966358FC6BD7F8BA0B93495D054967B4DBF8D92EB337F50BE0DD9A03C23D2F5B5D9C73DFA4F + +7E01125425EE62ED9CEF7810C88553CC671A7DF9295F50DC482440E40D65D093FB5A39C4084B5A + +39A7C13B426BD9BA5E8DE29FEFCF03915C4DF570CFD8546B274B875FD0F80F57F1A0DA69F09DCD + +F98D279C0001AE6DEACE32E3B2D3443524C5FE1CD2770D7F873201442B1CC63F3CC33D2EDC0E14 + +9327AE6C9E9720B346A3D783A0EB6D39E10C6D8C42E310C37AE06BE77056F58ED39D35BB2BE86E + +EC0BAABE99682DE457316B7226E0C968807D33772A20D50658353D2A6F0804E6F22584AF5887E3 + +6AA4E7EF9D470153A11759AD42DA6EB9FC0AB5496547CAD0EB7243D0371AF330E9DEF3BBDE115B + +C312D0784932BE630ACF1853BC7CB9724EF91B5BBC42ED211A9FBF9105ED50DBEC61EEA28858E4 + +B579EF2929F285ACC101311E182A27DC8F05A8BB074C559C37083D5AADA202B0BC3BEAFB7831E8 + +79916C5FAA116BF4B4DC68DF94403DB1134D96A72A81F70D2F16FAC5768B4BB454C8DCED202A31 + +221B25B2E3F8DC912C38FC8087F2C88B2A54F9937FD257110AB63FFED01D85D4B1161F08420F22 + +2725FEC4B5DC4D2AF65A8EDBD3B59E4ADBFC2478E9850B6ABA868553DCB23313BBF6D03D178FF2 + +FDCF3393B051F799D6C60AB7D57D62FD23A3F076915882B9BE1E3ED0A3DA893D6BB69A9BD15C8C + +607F0213D34673F8FEDA8187DF8C28E6E4A7B1FB92B11E92294203A36F95790EAD1B41CC833673 + +3FB6A0189356C16636BE965A20E8959474834794E4D8363443CA4678901141D8BFDCC31B94BFD3 + +CF9E54C566723BB52BFC868EC02AE2B96C657FB4FE9FBBAEAB700075588C874F559F3C85E007AD + +CF76B3E0372ED97E3E9775CFCE89DB79D3968DE2F396DDF4C6F2B65C909A191431F5E2134BB886 + +3A620E2D537719D2F82FBD802C388EA66C454B8DEC27B7D6624FFAA31F85C5B13DA941EE9A7C93 + +A5F9EE3C537B709656696929840CC05D2E60B285CE114018F19D856DE6A1408246C3A2ED085ABE + +E10C7B7D1A8080BDE2AAEC62F5D30C6EEDB6733EB97B626435C9CAB5FB56810E3E1924AB170102 + +AEB24699661DB27C5A92F40E4BD4A88697EA623A3F2F80E3F217D59B50649085753E9F16C55BD1 + +C45D2C57297689D12F55F62EA348B5FF6580B48DA85B9BA058349024D1DDC77BBA000AC0C2B635 + +DE122E3A9EEC3434BC9B97B3546BC7850C3A472101002CF05AECED688C38D5AB82966E45AC4CF7 + +FF266AE0F68669B5EA49C65A65ACDBF9A830988BB625A8263E570EA2C6D6A786277345EE7BD28F + +675AA6474ADD78E016D599B415B054F67EB1DE9BE57710DF2122405B482018D248B29619860EA3 + +A268C586775761E62651D1BCCD3775647DFBE84A97C4EB66D204CE839B6DF81E8970834C193FAB + +73FD40FDAD28D249C3A086759D0F7A23457B91240AA045FB450EBF2F5DF24E5123DFFBC7A633EF + +723081ACBBEBD8D99C41B7ABD6C1B3CBB52ECA4976F7487AD77808052D81CE6F128109881C32F3 + +827F5EF59022301AE7917B2D2E5C56FC82386CC1E0684FB6B43A67B51AE8B12E5B82C5214EB798 + +38A004A4D704E03BA65038B87399EE1F93EA4CDFFD2CBFA0AE1C1E81073BD88202015EB9ED570E + +DB33E01777343DE3F8598EBF0CE1C79F8DBF49AC9A6E26ABE56D4E36D7452E6BF7CD81A990B6AB + +B05824BA2C2988D509E98E9A9ECCE3F869E1A301E7A8D69C293FC60506C762A65E66A333731BB7 + +7886E82DFFAB187E264BB8E939125244A658DB0EF727428969C86E4240B8603F6CEF7467BA500B + +FB2A0461F8929E652EB7C684B6356A4F1B01317BDE4C0E278BC9C0D19D7F0F1066B7915C15482D + +347EA313239390884645B9D9216096257AA199425944B88B8E60D1C9D818E6C7FA57484E573FAF + +2681901CFFA7B03837251BDCA42963597D59F5C47CCF4FE61963D6997E88DAA6A80189F54108AD + +91A615519EBCAA0294CE0D2A3D6D51BA23AA538561AACB1859F9D8E7C7FBEEDFFA59FDA30C4930 + +F3C70288AE3B7DB6835613D7975AFBF1254ED80A293C286A400E74816D07AEB927730C397EB1CF + +041153FC821EE357CF8D9C1C55CA1B578B603A9946E8B623AB642F227041A18A987C8A826B8E67 + +7F8DEF5B1A7A896F2D04CA19703A9492C35748A0EB34614843CB6435E36650B1D0311D8862E78F + +A870CBCF6A1A6DA31FC1BCBE97B02B9F9D063975A8F4B681CEF8D7170C1D66C41BD8BBED7C4DE4 + +5ED8EA4D5DDE0FBC9B11349AFFFABF8C7C62CF72064F93CD36EE781E45938513E6517D325137B3 + +C8B07F6C85CEC99FEE73C19E3319C4DE54973E9F237FD4F5F522A1E247D13A5A3F76D9A223C1DC + +05DD98AF2F2870DDEECD1D17816F6362BA4E4C3E767823496297BD60D5AE5F3BB16C47946E1B9D + +599EE1945DE81896C20E0E1EE5BCCA3A817F140DAB9106C6A39396356440E28C8C37F09083C2B3 + +8C0AF322A5A6E9911963BCB674D63BFDF08FE2A7378DFC5292CAF29E29F2C6EFF00299E23673CD + +BF97B919E4DEAB76A52BB588CFF489D6C984BE6945121555D2D11D5760935A18C7ED5794A8590C + +A9EE7CC716E12E5E50604E4DE26AE7E8198EF72323B8B449C7059831FE2B32C0B7ED4F977D455A + +74AC42335F92FABFC69BF798F3505987E10E6EA4B1EBA7DACDF2D8F76A14031698506F920439B5 + +542E334FB3880BEC75609926EE99529C4E923E39369D453A4C86CAE241DAD49999819B6D3CC8ED + +7F99C4816DD01065DD385D47A56B3FED36E1FB26174E0428677D4BC535A2CB35646C17AC6214F9 + +3C68C7B702D168B4439FD66A44EA76BA805180535EB32DBBFEC29D4B453317C6F35E21CB482490 + +74F1C89B3DC6A53FE588F8DB408EBA1C60C9F2EA013F1517A8DB3CC9A097A2643C0CE53EFFE5A5 + +E5B26CF40D3A9324F0BD35B6F526E83D2A381E976E00AF14E7F4FE22ADBB71236A5068E297C7D7 + +0994672D86FFBDBED454659F54CAF5A364FEC8265ABA8F4F2A047D54B883E81AD48D094DE78A0A + +D1389F5F7BD0B36B3FA11F8864D21E57F453ACBE2A892EB6F126C9881799C021502428B0BF483D + +304777DC0AFB7BACCFA42AAE43121A245FAD4CE23248102CAF93C72016942B556CE59A2856BDD8 + +7CAB9A22FC690B30ECF8926699E101D8F74D98F2759E819148E54EED6392F0B22030AFA655E07B + +E6B0F6A58266D5AAD8365D279FA51584ED4BDF5E981E31732868789362A13F68D7EEC3ECCF46D9 + +1857482DCA018944AABF993F90635C6028012240D8C670BE48E4BAD29BBC118DA0B733E2019502 + +09F2C608798E3FC6CD3699B61D207753A5C7E31D5ADB610F7A9FF36C6E73442569F025EA5E8A4D + +FA89E43F10B44C907024316F07B4183B202E8677F4449520CC06361F075BCC065A0C4911373281 + +88FAC72EC24B9B52500D103737D40A311D5752EBA5F06EB593B56147F708914D474B7E67EC48C7 + +32D40AB7C8671E0C80295DE3B2CE69C9759B536520EBDA938729214C68FFEFCA119B865C2A4BA5 + +15986323AD149636791AD00B328E0E2D47AECF406A43D94FC87CD50AC65C5D4E55EB24F48938E2 + +8305E1DF0C6ADA42CA47691246860F50A2A6292F0590D6F8C4076F3C6325AD25FAA56A361C03C2 + +03694A39103DD209C04B85E5B740CEC222993C676750BF937448E4B0EFC94903FA04A658951108 + +DDDC3DECCB7B71B544D030E6DDCDDDD5D8ABBE90862E8CB4E65C298F2AE4D6AB773091F637CF8C + +CA75568E46C5C3F6D837954E7C1E4AED3C449FBDC85A31C87D457485D0C1FB4C97957925EABCAF + +80AAB9607881FD1EE9DDB9869273A69AE28EE67E694A7AC15B38BCAE76120E84A3A570466AF88A + +C140243B90CE2A0A206F726ACA103D4AADEF97E5B5E4C753FB08381820EC8056288BCAF86DD714 + +BC55BAE80E8670802A30B24361B4830E55563A74E5DB9862CE0C5AE972EF9188A9D961ECA5EFE4 + +45DD11FF240B19766D261CAC32F2FA24B8DF95DD9A5AE6BC5ABD66E0883DE81DAC808EC9E64D82 + +06BF34D3D418CD1502C1BF865FB89046BF228323C9B259FEDC44A24B41AFF7D4E6227F33CBC59D + +BB33633D31BA0F654F48762DE5D7B0A03079E67206C4661BC410F3D5F46DF102741C5949AF61C8 + +BDB8552BA01AEEBAA183ED57681FA2FD92DD4C40E8AB10AAD4857888DDEFA5B8490191A629C0DA + +6F099607F85ED12417E879D770E016D297ED31E4D36082B67002F833561227A28891B6D2BDC3CA + +CF3F6CA3D833E8B1E587B4900F5BCDB295DD1626BFCD5D9BC31B8CA086E264F25599BE42E07D58 + +ADA6E054970DDBEBA58D7185EB003AAA869138FB31EA477C881E556A0B35841AC095E226523B32 + +773E128F541068A77B43F61BA7891F37781FC627C39589BA4DBCA4DD98C7BFA311A7CB6EBC7EF0 + +A2A25393D7BD84D00D951D4CF9D9A1834038838830A50352DF68C9701D0CE7584626BA1ADF1D00 + +B592F34897EBEC6280DA5223E46A0DB875CB10BB772B7CD16F26AE19CB1F2E554374E89CD4F7F2 + +7485D9169FD48354317B1646578D956553430BFF2090217B15BAB550A8E0F36DFD6088A5E9D52D + +6B5303D9E2C0AEB607749384DF0CE76644334FF36C35387D76FF85B8064460C28FC895AA0B9994 + +C3670EA26E8335BF331F4B406836CB7EA457258912C6DF48042050C7D333BC02FEE4748909FB45 + +8DD5D55E7FD04497CE34DBE82E88D6AE641250863B8A57B11624E62CEDD80E05FEBADBA6466363 + +ECECB921D11DF5939891E5B5CABB36FBDF822EBF17D950EFF3F4E850CEDC5F0FFFC97AA162BFF8 + +A67CD77EEDDCF5D5FC48A303DEB2EE716B0C6F53469EE23B553D65FC4CDE004A2940C71E4BA72C + +1482B2FD2ABFC6E8A877A807486D86DA69611ADFAB9E76527E6AC15006E26DFDCC3314F24D277C + +53305160A9EFD4372258C69E8457EB24AE163AE997DA692DDBD6F9F6B4A0A80AC2C2AFEC71BEE1 + +3C8EDF43F7A622B2BF0C860FCD6405704D60B6C71642F27DDFC08A8A02C6108B9036B5F7CAFBA0 + +BC0DD2EE4AD2A3D063E2AA078FCE226B11467BAF992719B55DDF5FFCE2B34466D4CBFA8FC5647C + +222EBD11EE60BC567F05AA38704DDAFEC8937469A83D09643F7B798EB28E5DA823B9A06B7BC8A5 + +C05DC705F0A1194FE17D7948940395617AC25BC922B3C838C507C1CAA95B65A2A5F41929D75D3B + +1EDC261930CE41163219C8827803ED5AC50BF85AF7C69D57286E5120C0F08114BDC3278FCDF774 + +3FC7D8D5EA3B4D3F2B2F3B7B6C4D62D20A7D98AABDB9B9DD7739561B15FCEE8139B81EE60331D0 + +939E99099F2B167A0AAA9E85D803062ECC6ED36916C75EB58243C2825BE97F3021D23D73A15615 + +12EA904A94924AE1B66F5AA60AFE3E47E5A37E5BC53572BBD578AE923C5465F824056703DD1A1F + +5EFADD557CFA322C46BC944199190C9ABB2604DF2A7B55480C5D7035AFB7C7A7459A0A236573B9 + +91F462ADEF5953AB2F45CD837DB21CADA6D39CFFDBA3554C166BA7F1FD28953FC38B853627FA21 + +75537144A6627035A512B2D36DA71BDA234132D7C2CEC4F29750C14FB8196D256F05922F26A3DA + +E22E4E14B52196F8CF7261CE0CBABDAC1A2C2E0541B0ABBC8E09B1731DDEBDD541D9557AFBD90F + +3D84A8789EED596F6DEFD34E4651B7FF9DE1CC419FC7FAF1A3E7D7EE147D60686EFD5F55F5D911 + +EFDD55C4E0BA647AD599E0CE1405F71669FAB6791F465E7FC1C247AB4E52C64FB2E6A18D4463B9 + +95CF637998CB91BEB1B68A8C3E4460F8F1E35169F78FAC2D6677E243854D6F6C8685E5199D8FB7 + +25E383CF338B276FE785954434EE8768FB95311D47FD3273751E4CDECF0CDE3F77A7513B39E319 + +186B4495016FB97B4D996F4FB86AFD00EC9F54AC44AC519BBA5DEBFD5F39286817B25695750E1A + +4F210DC8C06A862F1F88CE3AD7D5764581E588D472B8B407CD074A5CCB39D6E138FC3E58C9C096 + +4B8C0195847A7BC0E58E796EE60A10FE003F26231EA0F0EB7E100DD6890F6AFB8C2290290A97DE + +4EF1F5BFFC07292D2B4D2618A430FF3E115BFB35116835891EEDEF4D9456DCC8A25DF5429BDB52 + +7151CA42570F44CF36D6FD31A10D58631F5966579495D6217A21DC436B7E26ACE1C03E62CEAEA0 + +7C09A6711FA6B7F34504C4E0799E797D4D2775FFD0E9C2CED9DCC8F64F8639DF8B20EA979708C5 + +81BFC54F08BABE9F5384E357885C54AC33E0FED272154843631CE03EFD93DF01D1600BE65877B1 + +51C41219367641ED0192E12F26F871B13ECB2582F75CA7F1BAB3DF0B89942BAD036E9AC7A4C72D + +6EBB0BDDBAF2F6F9AD284CFDDF2934B4EB86E94999D1433EFA2E278394DDF686188AA8E6C15179 + +AA232AAD24D5036A39A49C84BF33AC864FD76BC91D8E915F0A604B8A4AA99836DEE01D72E06596 + +88FBD19195D92F5C7FD98C86804E7D3F7E818CC61B377ED48B5DBD744351564FD4E82B6DEB1A73 + +B964684985FCBAB97AC903DDE810E01B27C44267B9D6C3CFDA7400CB922F6DCC6B711C045C7C1E + +BA276EE915936643A0A6CEB49C0DEA87B0D67B4294F21F30FFD59626D777D5E63B5400B1EB92A4 + +03CB688B5341C40A69C4D413FF4B317750531EADD11F88851F6345669F58C53EC8B764AA666BD6 + +E54B48E4743B2EEC13D7161C5203433FDADD9A4CB3E69641D3795A2E810A45BDAE3532B97A52C4 + +9DB552A876C1ABAAB2E3AC102C9879D203D62B1BD4C23BC52E3F0C94A557959C6C575155F7AF65 + +0542B5C10247CDB5409454C6BD7F56C13230C7F5395E211CF2FCD872FBBC1ACD687206EE59D6BB + +4EE63E2441869F875AE35680356EFE5A08AC504CBCF36F97743F06740E5137D17832DA142933F5 + +709ADF6DF5177A84D22BEDE4CB3E6D30B11B3C91BD0D202352BDC767106C4A8719DA2C75A355C3 + +53C67CC53775EE192E31554AE02399EC3E5CE779AED77D112F3C7059D3C6A316179EF3C3AE04F2 + +3ACA411387E1E9D0930E9C1F3752315D631E556936CCC6EFEE77DCB7E705779F8302848EDFFE70 + +D12A5C7BE23CB6ED65DDD47F0E0F082160A2538E1B032AAE17C97CF7F97217972F997CB20AF71B + +897B0CE19C8972A909EF1380692B82E9B09C257A0CA5CE07F272B56BD321D9EAEEDEEBD08634D6 + +B9EC03320D2CE208D823C0D02D5BCB9A991AF784FD705CA331662621D3D793C8C311F7645FAC00 + +BC8CAAF74F3FB8D3323639082601587B7816499FA4CD956628B7806CC407815BA0CB9E26145300 + +A915F7B546222E5B4969BD44D9DF5194D7719A0A7BF72B0FA4DBA8B23BA02DC8441A9E4C57C7DC + +CCC2F5BE59786F3D79D070C1F2D02003160BE4B02E6767C5876973C786E10F567A1128C675DEB7 + +46183DB34DAE298E07F0F78A48FBCBD6EDE2698639ABC2E5A1B2E467D93A69BD2D67F41F62593B + +8242C4A4068BEBC4FA7165B60BCD07A8752579FE46CE7D0494B06D0CC2E7568EDED60D0F9CBEC9 + +D3D4032E650741BC21A83962700144F1CBB68AF25BE0C0D5EAA9DE8DD8A68DA7E0F6AFF1BD8FB2 + +8278226A2EDDE7E0B33BA6D2A0514D4F90B48FD6300FFA9B7479DC934BF3AAAAB95B2AF9564E9D + +6EC39957E772FC5F24816637820B68B880CD84CB0C50B4DA212A20E904D37B360E29DDCA2CFB57 + +EF239A5FAE7F964C72B1FAF64972E4969337018D26C9CB9D68B6CAC4E3CD2D3893145C9432FC6F + +0FF8C062C3F0F1C3AB0ED8D6B5505BD16EE6A15AAE57BCE07333465501867F2DEFBBE0274E4673 + +8FFE8BD1B4211FEF4A8C28208E98CB4D72DEC559127AADAFEACBC0D98817239180BCB43DD239F6 + +91A3EEDE515A3370AF5739841AB9C91DB77B91441E4A6F0FE113B4DC509E4BC951C800CE788526 + +9E836A5AE595A7277AAC851330CD3CDAE4DD4569994E1F4CFCC75E459BC9E1BC7F215BC2D6926F + +5DD509A09CF22C506EBF22D2304870C3905D94609F8295D0C55B403A7572FF4C0DA600A74D3641 + +DE4DC0CF14AE350CE94E713A2AD831422F2171777187840069F414CBD31F3648F88287C50E4277 + +32054F5DFA1FABEA57EECB8FDC8019D37336D8D0E840FCECD0FDF19E56A386C3521E28726C3F0D + +B6DA49210F72C66BCC1E5CAB15FF19A8B25C5442A0F9E0D41FAF824078FC6F6EBB3778C6FFDE69 + +8EE021C353B2A00F83903E001A1716E75308A08A8A8978CB4A99D379C76629EEFF65B926EE3338 + +54144F43B04F838AB5003FC36505325D3E4E4B5FB75A1221B32DCAC4CFD3588FE0DA34AF3AAFAC + +A3955CAA04856A196ADDA16171AAB7E21C34CC447741E506F153B7F466871342AC72D798B63572 + +3F4947AF84E679D4A9145EC26064F02388C731B2DADA26977C56FDE09BBDE051AF895A9CC4A80C + +E9AAE79F06BF913CBAA69D445B12023AF1A7BFD584D44CCE04F50D77E92F39294AA1BDB08FC656 + +7218CB7FA34A09E1574F7AE40DE43FFB717625F2C5629AFD71ACD8D80B88832C24D8DF82279D88 + +32811AFCD634C52E321A4778FF066508A0A63CFB3905EA75F5821DD568B90D1128BBBA44223C7E + +75DC8F780568FB2E603962125CB02C1A492FCA0A0096A5BA8B7D0CB1051A94EF617DA1E5771B0F + +DACDCD877D0699E01650F8CAE7027A20AC308B7B71F8D2709CED981541B50456D7D1724D28FDC7 + +4B5FD05BF71A98DBA1B27D269436C9BC668FECBA8D660DDB7CF7F7F961BEF05FA62E49421619C4 + +4CA720C2426A1D486C95E026416DD8534C85AA200F95B8EBD4A452541629E1FDE2FE11D84D969B + +2AA01A9B7F546A64F598183C23E26D38D86F47E29C8289C5ABEAF1D5ACABCE10DE46C50E3D25D9 + +80D079E8BBA99515AFD9DB25CA8D34984D5D96ABA65E2850482F264D8316ED3868D5357AE02AE7 + +3CD5282DC1908A666F9EAF15FBB2E19D3EA3509C5781ED0690A20621BDD31AD2D80F7787C5E678 + +B7171B945C5AED7918DC313E011653D4AB5CA151B48144A0A6B2C2DCFF361F711811DB6F249BE7 + +6579A43ED363306D6811D6E5801D6A84D4C892956F0D00A98CBF568A4BE481325AC9F0972FBD5B + +6CE323B0FC432288501276BDDA4D50505BCEA44A5C7DFFE118F1EA9FB0A01CE3B7D8D042CB8C40 + +FA31C0C7F5D650D856C6CA864BE3BB46D88752D81EB1500923F9DB47C86B86998C8B1DA70776AF + +72BD3CEE2F22FF7F132DEEDF8E1FAD96D242863252F03322B458428A5D996852B1A862C57CF087 + +C1ADE9803FAF24D25ED54C9CAE1C3175E752EBF0DFDD3DCE002BBEED1A185F2B968F1789645D13 + +D83E3FB15F24DF44E85B303F32C681762D23ED813ABB75551A32C8D35C60FB3784E926AF187F45 + +E98DF1FE17EA91AD0A11EBCF14BB22BFF19BB52452E8E06CE322B2959CEAAFD992054CFE95C7F2 + +45F56ECBAC06595F4202A5272B7AFCD40C99EF3F78DC9FEBD552DD4913570438351CB76ED69147 + +B46AF589E77DC42EF021804940ABB395F549AE7661B0E28E180C8B24B82BDB77AA17D8FBB1BFBB + +B16ADD5B48DA8ACA8321A66B606E67F0D64215BC3E25E74E26E6908DB19E966F94B1F3FF872642 + +5380FD722B02C251D57E301016F29A98416D90B1945837E265A284FF2B8D655891D769DAAD74B5 + +EB5A3274FF9140D36EBFD08A5BF579BFE5B3BA96856ABC7C4871A0A8F76D0734725F6F1D42EB9B + +B1EC84AE290BBC3DE601801002B8E5F075A15D81F958EA446DD2DB8F5DA10E7729AEFF94D5CDE9 + +9E4B923722567B86EC81999EFA2F713E597AE8D971586DB1FB89AC63D3D4A6137053B4B9C9186D + +29994F5E4C70172153BE37E3AB1B9388A6765ACD2B02EFC8DEB50670EEF79FDBDB3494D32E9687 + +A193AE6DB2B7B73C43876FF32D8CE6420096D9B7F8A9850812881A1E18054D57B98403A323D05D + +DFF6CD7AE59F4EE5FE466CD63C27D7FB6FB63885D05F4AC74951392F0BAA27B08CF886860D4484 + +415E1DB8EDCAA39CE758F8DCB80F961BD4306E4A462AD7AA3332195002B32D53E5C212C01C9949 + +FE30E8A3EED6747E7657A567639006F3B411985444AC3E1BD133241D58DD32A27803343E8DA969 + +60AF85010E9B3B16AC4CFED28F3500D558CEA50C507F7A89A7F069B1FAE873584D6CFA0D4F1C29 + +C46207EB676782B203C55279B677716D754E0C14F15711975054D94ADC8210EACD30208E0FCE47 + +F84E120C545DC0F1A4861199D42E5A809B531D42AB092C9C42167DB6303C5A334DE18DDA7E79D8 + +ADC546A81AF4BF03695662A9CFCFE6FA469DAC6056242A8FEB87929F978909C6D4C93DD2D60BE1 + +60FEFDAB92638872C3E6518746C1B1DAE17AA967DE79876999615075B2FFDA67EE9B743E2CD560 + +EBBA5608A98A05DA37D8F21C1618C02D8E978423DA80D7C38CF562610E85DD0F1775D8021C9432 + +7CBB1F5C20EA41E8CA19A4E6D50A3BD5129E21101E312A9C8F470E1EB12D038E5AE4DE537F4327 + +B77091667D196C3612BC6925A24E66E2BBCFBF6A4C938457FEE36DC1FF74ED7A9C8F6483C58F2F + +27B7065F35663227EE4492E3F06B6071CEA45739ACB943BF0EFFBCB99D03233C5312703E74CFA3 + +5288182D9F371E3F22257964F86472AAEBA8061BF039C98C0B8DF14C70FC8A313DCDEB943E6253 + +5234AEE628B9F97660A768CFCD04701A0F4C818BA5C0219E70B37570DB0D625E4DE3F220EEAB0F + +A19422A17124B098EB4C9C9E71E2AA0BF536A81161C2788973EB56CA0A8064D6025E64C5726523 + +265C2E6AECF2E044D0969508CFD4DEA7AAFA7177FB797A5E58205C094BE985FBD4CCD2D249ECF4 + +B2D76689EC33F64889F2AC40092F47B9BC6D5CEDD1A9F83A0832096B81BF7629E46591C109F57C + +4018EAAB78FE716D76EB3C35129BB163C13F3AB7651E389713513BE66A06E082E90FD2BB0C5CCC + +51D229B3BE5AFDD175DC9791EAC0C2BA4B32CB0427AA15BB506BD677907CE43D58F929C0E711F6 + +FC95778515C25FE9B892BCB8448EC6EC0BE48861D1D57E0B36F62CCD687D82404CCD52A38AF266 + +E42D201953249DD0E84308C0CE4A6056B0952F25084C684D3EF20C608FA6F4C4E3A1A274307747 + +4E903EC46735429FCE1E1EBA363D509385AC067FEE1027282F6C735768B965F26E542C4A66A62C + +C134DFF94C692401FB96E63F3FDFBE3F531A26414275CAAAB1468E2B46049CB39989523D2268DA + +DB1B9DF4BFAE94F06F71FB2FBC496A687E62CE86572B9ACED7A6C65F9850DAA52EB296F7DE332E + +C44FF1E0EF2E2256A1B53BD9C55E75B81AA96830B1EDDA395C6FA74E0D2D509A5D77204BE7E17F + +8E4EE6CB1763728002991C68357AD3882B9C216B8A75746E29680B4A807386364E8E5CE44FD163 + +4DC1EE5BA8F95AC20135A4344E1A9A367FD474C3572818FF643DBCE8C8D0C00DD800CA9EAC582D + +C5EF87C4D13408759DBAB4E8AABE8E77CDE2CA89BB581FF57D7DD284BB8297985444DB074D299B + +3B71A8F9B586E153A23F750B66F396B6312CD221F44172A6BA22449582A9294ECDBDFDF0917B66 + +0A2DFA1E643188A0395C2E73B35FBF25A957A456791AABE4713C2BD33F82E0B3DA41D141FDF28B + +94B72AE08A0D3982864E8A565FFE5BF9DB4A49F721ED28CE94DC27DAF503154B2AEF8D4C3B52DE + +AFA794FBFA63941E9AA7F14D8FD4A3971D399BDA0797776D69C0F65FDEB09F54FB732C4EB24A1E + +74DF30F098C59BD853E4AEF3DD4719D883F38EF4131EAD84DC3E23B7A35825F39F603A1F8F10B6 + +FB7FCAF52A1A7E315E4A8B9DB9568C2F23482E9641F80073330E8D1B0280AA09793F1D93D8B5CB + +7841A1EA9C923275103B63215B439F7C23C2EE2A4CE38DB0B7FBAEABB44123F0FAC8A5FF1DD555 + +1F4CF7B3313D6A392B58BE872FCE3A867D502834B56AB141814BD0453D048D6D114F938C8514CA + +62060978E9B954F45FD68845DADCF5B8992BE49B25022BF659A06B65D4E7182565A3D9009B62E0 + +D1AF3E897D35CF76F5AC69752DECC7E3AE398832F4EC4208A1249F3175E65964F4E183C8DE2F07 + +ADF37CC73A111890AA07F12B9E5FA53CC3FEC2AFA98281D95DBBDA5AFE7709857B98F21176C381 + +5B765AD80E38658EA89A6F88354C3B1C906749F4770F1D97C1785998D591C001C437B231508398 + +1DD933C182F3FEFE22C6B9817715BD0B0929A1C96EC3342C31A2582B9F900CDD60F0835DB71597 + +4DD0844893C13D12728093531390082BF3ED1D4C7FF399CAF014BF996745142BB3B49CCE64613E + +5274252DD36C90C714EC02E6560E0AD5EFE5412B6784421A7C12A4C0EB9B079E0A2CADB5951A92 + +A6783053658AD4705F321A326164CFC717A214534EFD49097672A9076B3473560FC6D0BC1DE474 + +713D41F68B804DF99ADFD2E19382305989E25FDE33356E3D8C4574BA41FE107BE34D322A1C50B7 + +3B964707DDA438017226D5BB4E2FB498D50C9A7CE93E6D52473681008B733D494BBEC7683FED8D + +31F20172314B781FFB9FB79DEA628109340C92ACD967D4673126C95FA8C6E2A8035C919C3DC2CD + +A6787DCD041223A1F555BF011BF3A0024D8D3418B4CFA68389FBC545E1B37AA102D91EF40397F4 + +E2C4564FBD4CC394C0A1153C3A0D51433725D358253B37567EC595609B2BC0FEA0AE65DF4E1D20 + +73481EAB5035A7B91377E50C19A261EA0AE9BCFE4DCFC78E426646D64A546CC03A8F29B6A513F8 + +8496EF201D7A9A3345454A497A06F57BCF060C8064472A7A6C156FFB96A9CD663C807F4DFC6B7C + +7DF42A95FC91FBEF4E27D1AB6010C76B016AC1EECB98184E501C7750500819FA4A36A50EAAF09C + +A8A0282200D23F769418E8421A940B894208860A5FF525EDB804AAA456EEBDCA2D57D5E45EDF16 + +75B3A693F1D7A6961724420BBA61CE91F5DDC953C698ECF6CD185BB510B05E056F87E6EA729CAB + +38168E57A52153A5BB5938C085533E50E6FDF30AE4C5CD5F61B31BA06E5B069D76A95CDCC64E7D + +FCB162DFEE4836C38AB16CDCCCFECF1810EE561DAB5F5A9059D6321EF09863A1627F5C3F339A5B + +54CF627D5C45B794DAC46B9E57FEA489603A9D2315CB9A42CB24ABB75555BFDD2147E0DB0A7F58 + +0BDE81C7C70C3FF6FD6CA304D719C189D0D7D991CF3E87E15240411FA94237B9FB145FDD4380FD + +3A5EE1843BF55C6C9F640F7B9E42AAF1D96FFC44D53719B83F9C11CFDFFE51BC454F50F20D4F62 + +5516FE4FFB1EE798C85AFDA53319185A2CE94EB37170BD3B949582ACF20F43B0F1C4211843D50D + +4C0FB615107A5985F2CE49CE2F7B159C4E566E617B1C446198F48DEE3D31E9194AFCA71CE2870C + +6526AB1B0614C1B894FDC0DB2F2356082B8C311CBBFC4422AE45B90852326DE98A17CA8F5EB9D7 + +492404916C61367BB9DF4FAAC2FE30C6A739CDD73E0AA1ABD14BB2D7663C86BA2598AF8B553602 + +DF5A032CF80F79DDD04D3630DED47B48E58EE74EAC81A5BD90236954A02D98A3DB705DFBCBDBD7 + +598D774A29200632F546A159A2656B85982FFAD6E2668069663CE017D158B7CBC1310BBB867053 + +B300E8FF4A5BCF286D6D77CE5F5890D3E3FDA72C5DA30D7D72CA3E040DEC3792FEFDA71CEDDBF8 + +58F17396BD5B8DC99EDC09E9A2B98877AA79665E1E43CFF02030BEFDE9E1497C822AE458BB6B15 + +0F6AA44D7064E68294BB84CC34535060053D36A75B75B7DE664D281406FF31BFC907174B76FC51 + +1164602EAEC09AD19A0DD24F003C17FE377B75CDA898A38A4291EE50C5D9C69F4ACDC239477849 + +C60F0099822EDD6E3BB567ACC171F7AC87C775E56B079147BFCA802075DDD839B869C4A71F63B6 + +B2C65E4B9EB1CB8BDF55BD6EAAE1F290B52D712C14F365D3805E29A3B5643BB90EA7E1CF8D9B42 + +FD09FFBA06CE9941885CA6F91F0D1CFE91A94A9BC6164634FD7CA2AB88952FAA0D249FCF47ED81 + +B9B520ED9A59CEBA8993932D67C4F9ADB27871E711B7F0F3A4845510C423845F396AC3938DE83B + +0304054192A788E343D51381E622E5D46FEAD67D853BF1C8C269D90D21B6267409A20E24ECEA5B + +1E0838A434585814C7E5128BE6D0C248CAA2014165A8B97AAA6BA8A3BD868361E8AF0C120EADBB + +C229EEA78227188AB22D8E85F638373E74CBEA7197BAA9847D8EBF16145726AA706C0BA81EDA7C + +FF7E88B39F19609165640246A4A9B7F261A5C93A5AD64D933C4A8EF9D026F2297F0EFAD595D0FC + +87C1393EBB9581D91814C47A0A3B06E5CC450CC22EE1B201752258453D4F145567F7D83CD99920 + +B5C5C19B0C8BCDA6948298B6771A50CAFEC673F44A6080F89880EF0F766DFE9FE1D9C850B0CB7A + +6CCCA280698E832649CF604CB549CAEB31CD8356ED106F365321CE6809E2BF26C186497CDF2D18 + +698762E4749A90F6C1D95B8EA7EC96319113C87116118100FCEA0D550F2832C57A8BF5E1E1C847 + +F0C90EB114C7CD6C3AC2C2C5D7A7B56598739CD0CEDCF8D069EDC437C7CEAE5C0CDFD46BB57F23 + +BD0D61B1AC0B9205FF34194628D5FBEA6CF56DDE45943EA188825138341713796874E10896757D + +93ED98E7B60AD890DB2AB682330AE8E15572490001C91EB2A8D7B56B33BC7E0599D4DD3A5692DC + +D2E05FC5DEFEB9102505392A008ACEE79CE7B2BE2A2B0AB1E783F353183BE0FC9D19C00474E0CB + +8817352AD755C63145D7C965C0E742F1909653FAF30C41875C6B7ED342141DB4E74512EFCC5B64 + +A91468C89A8E692F0EBFBB4BAA6264E31702817C9AD8EB8BF75104E4D4ABDAD1FD5A81166FCB17 + +A54E71767343F36C47D47FDE07FA3B7F943C2074622BFAFBE75603A0A117C1BD679113900992DE + +63C0FFAD063B669BABFF040F372B03A3030D1D1AE05188B73933127E8EE73625FC75DF1138F055 + +C815FCA4AED0873CB6BC13414731FEFD7EFE52E3EF824C75E0A0561DD0D7BFDC5808F1B78B7D9D + +B562B3F0697A11379D087D49CBAEBABFFB60402E35DC6FD4D20D3C2FC88651291C379E4E8F1BC0 + +924BA435EDE740137583CE6241C8C2FE4DCAA17103C8C8F40A37D27428E81B370788FA30C814BD + +1501D07654C470FD5E94CF0C0C52B5FD6E510EAB08D8869B108849B9003E7CFE8A256DF7268EB1 + +DBF4ADE9FAFA0963B1A6A9B8AD40011E721B992A9FC9C998D26400ABA8C5B9D521C28642728063 + +D9D0668B2B639E625D4B4F2FA3786E57E7938F995C893E7D332621716C6968004F7C302889C4BE + +46046983225AE2D1BC276683744800DF9683E960A8689338789ED2D2FEA1D639804EDD686295D9 + +0128130940AF251D6B7803F0AD941F3F3D999C5459AAC5765C743BEB8CB02461B54EE0281A6006 + +3AA762187D3B03EDD3B0B1F4EC416DA20DDD0D89CF302F6377CA73A36FD44E86C4DC6DAE2F5A64 + +AFAC62536CDBA2C86D6AC1C6AC679E50B557045B2EB802C4C7AEBED40623B17A93ED24B65AFA01 + +0C3FD297B52B2647355A411ACED255CD4EE2ED397B3DBBA4FC2745960491AE76F826EB9C3442A1 + +661D656C27C486B3568A63F0D6DB571B17380652333C2D262A69FE1AC016D6D67C854A1AE0D72D + +ECA2AA38E6A3A3EF52B4EFA56B1913C0154BC1722016BCB3BE5B4EB5160DC9CBC068BA3EEF1F68 + +7B663D25789E03D465A88B93A47404AB2CABB24AEA4337A79DED69CECA3E5616F3A1BC6E923B21 + +2F58DFA41730543D0E484D43621E697DD091D3BE143A85895824C13FE5B2FC2AEC9CE8B4899197 + +8019B6AA777AB5EB24FA352CA317C7C7F1E9549501DCE4C016AB22CF3FE5F1B911C5FFCBBC7969 + +2D54AB0B0C92A5DC73A5BEB28FF8D2963CF66AFD981EFFC7A1246653E07A5A071442F0F5F719B8 + +D60022D82643527C424D74F130544FC363F9D4F771B846337902AAE901C881130559CFEC5630F3 + +767A1E1200A4DE082427A6D0DFD4CAA59DA510C73F7ED165A7FCAAAE1B541F1778A6B8FE223F28 + +597743986FF80C2142BB9E347892AF7AEFEDD29ADCEAC1498B31F5FCEE94BB9E48750ECAF7DD52 + +A39E793D99C03D875B9330FB1BE085B968C3B4EDFA0F050CF84405D3A42EC8732AF0DAC9C86661 + +337B70929CB485028EEE81C0B465842EB01DF15C1EC0BBA5805FF3E900576E749187C0D94FAEC7 + +E3F93F1F30D11242E7F65FE0EEF91676419B2E43223C0061E46C41FCF5FC82C011D2490D7A840F + +F0A8DD6CD0AB1CA81C273E1604A9F54AC6EA6BE04E6D14FEB14DEB14DC7CDF5878F35224C5EA7D + +EC76C8C5CDF816164BB47F9C6020D371F30419198AF45BAD5792D148F915BAF0DD0841169B77E4 + +5AB50CDF50B98B4C54CD0BF91269D9FA67F74EF71BCC462AB9EC71939D361EC20AB52BD906BDA5 + +FED00D420E32CF30AFB953C4DAAA807D5A5D3F24A353E9B0EDCACEBFC69A29E65A5CDD1B61FB66 + +5003FCBF372FAAA06019F9945FBF32D62C461F4F4E89A400F9E0B3A46BDCA99EEA1AEAC92B3ECD + +C7B14616345D9A3FD1837FA24F916881004CC27351A131400D7634ECAE7DBFEE4553C86A9B1362 + +E3BEF463D3B2923B45F5D8241F43533EC0E81168EA76DC28DC20F6A71508EF1C0EB6B946C220DE + +FA265F3E8F35EBA374D0865539B3857C9A21B1D43BED4EFF755B1E2C2EBDEF2A3652F19729DBE0 + +59D94FB5448BE1F8EF205E070199F7C1D55394968A1FF745AE925EFB7237FF79FBAA77731C6C47 + +F6866815020AA41F7F3051C7ED028518628522AE80FAD972B0A988F5793BE8D421444A2D2C0061 + +8C6061A4CE81A807ED81987248D637B525C4E2A3D24E8AB6EB11FD36E9BCFE5432E46B89B2192B + +AE685D7EEF494C82A45EABA1363D2F4B7973AF5B2050B3F5471B2027511F816F1A3775861673F4 + +B292E3425234A41A3D270A0D0C0139C105731A6F5F845685B77876B46F5ABB4DD64B669323967E + +D11E40E3A1837B060A6685FDCE58D2DD31D0C9A9AC68203E78A787FC6508B4604DF609D14D7AF3 + +0E0D2CC07A4905339F7AE4522D6061FA6A7E4CB7A5A8B2B5C49D7A72DA46892AB0C82AF7D3AE1E + +6D882BDA8C266984230CCCB95AD2F5A0E33685BB93DFA60D8FF703C76887C32D93E53DE648C72F + +25128565DF4F410D1B2E8C9D569B706CB99542A27BA685DF09C752286021C18F9BD2B9C582E827 + +745D6901DD99C4336C0268C0E8A85BE9C523DA1E4D0BA4571EADE80C88A14BF4E7450A1BCEA1BB + +FF95BDDF2AF1BEFEBBEE7429A4FFA5F72FD40A7AC1B70F8EDB8325AA8A611E37B0BCDC846C6C13 + +CAA9A830E1F090059C6E3405378DF90C1AF48288481268DB2AF862AF3AF7A9C71EB60DBE819839 + +6083CD2F545C7D78A37B90CC3B9F35B30F8D424EAC374DEB8EC893715791EE8B0CF8F899A4582D + +C9F2F738232B983AD8A77855D1E61065C4471EF0CDF72C0C8AC6AAAEEE1A767E8F7F0035DC77AB + +95BC1E2AD39914DF3E13725D8C3B5DE747B0EDF1FF3F80FD160D9A2055B4F2FF20F4626AB41979 + +5E1FB1F382A07639342A4439A6E2F18F3832BADDE63DA1D78FB63557261C6C86C6E99FC9D252D8 + +95A9B653782A4CAE61A6DE512CE97EC46442BE27746A90474800725E95307825739592D585054C + +07680680F1B60D37D64A5B0A69C84BFB05CAEFE941AFF94CD357A53C9C3E26FED2205B11F82F79 + +64DFD8FF16D5A3CE12905945BF41C8A56A599877615B23E436DAEBC71B45BF0163A4E6D13238C0 + +479C3DB9EC99FF0B74CD22248651F2E1BC7860ED0336E6C078D0ED4FC72F494D3F136528B25CF1 + +53D41DEAA0761EC1E8F31F90DF1D73EB3A5BA9B52D829EDAE98000B6116072AEFEAE4D861E8928 + +FF9DE376C856EBAB1A189F4248318A44CC3E073B855A13916073162D7A26C08BB55BB39A12033F + +93B55DB97CEAAAB975A7372C15D32D66578A6539ED61097D4E019CAE33119870E96C3E409E44BA + +E5F9C92F044BCBBD1B1041C5C68C45B766BC1FE51B57D74C11682E6FB6245DB5B24840FF1AD084 + +4B98342B17E18B42B9FF61430B3A703D97EF8FC75B5F8462F404CACCDB2E6D947C1FCE7DBB0388 + +DCEFF510B06216C218BE38F9460726FADC19D133E046C9057198C1C25DF85D45EAE84F3A66D339 + +D9A1C0CD7FB6A8C706A9BA062E6415BB11BCA1923732B2A9BA984FEA53490547A03063673BB384 + +D78CF48782AD45111EE91BAEC2128DF1A273F9143A3D28AA3E1F22DB7220092047E22268AEA219 + +D0037677A57AA98432E3749FD577DA26285AD0E67E231F5E208385F4757D217C7070692E6AEB04 + +EAD85FC981AD586A35293854C147A62230A8790822589C62C1BC182F9E07B7E0C5B1D02E9A73CE + +222AEBDB0AADAACA9685B12D914220637855F928B1C95251080DC17BFE674938D33E6C92C047F1 + +BDC22EDE502AEEB780D6FE78304E0AEB47F39A7AA01C8B3074FA0A423B603BFB29D99F1C125E41 + +42D310FFFA16CBF8EC7C2B09E7B088FC222706993BB4EF41C9329CF0AC1EF60DB5BCD8A7FEAC1E + +9DC111540A7E1633F36B0D94CB0B15A8E307CA19B3CD877BAC7AB9038CEB293CFA0EDC053AA4CC + +5049CF239A0841C6391A1ED537B49655EA5395477646BAAD042A98B61DD270973665497FD5CC42 + +4B30C3911C5589231559DBD1FB713E1A384DC62A16816558A15CFCA84CF4BAA29835107C113B60 + +04BD88E1D4B6F0EF035083AE58040791F8249B764C341064E95D788B90695E3FA9E547E456F5D4 + +7995046BC81D5473E66C374FC360B4410670E527BC95332D6FE7DB8B8DC47AC472F37E83240AFB + +3800FCF5AA3279E672B3DA63FD22384CCD852C2516271892E923B9932B6DD432BE49C90DC0B554 + +23EDEFD604A08963151679A94E3FB3E64340399F075A21DEF7843CBDC9D2D347D59CB072F12962 + +7BE7828A6E9DF46877235D035DCB1B38BBC44BA3E7E8FCA39B5B34CC649152D23095F93B74BB7A + +ECD3BBD7E4087854CB47132679FB573AFE2A091FEC294B2B9E730625F68291EE7DC28C3D554037 + +F62B30B05121A5A55D37081BA4E6DF3CD6E7347C8072E518250DC7305555487BA229F7A35CAE7A + +7E53417AB93E9630F6CED04F3A8C0B3B5417DB9E1D48C63EF34AF5EFD4F13AB7697F7DBB88B437 + +A26532070E89E418AEB58759CA2EA0403C3D4EE2260F1DBB3CE9F1F06EE4B9147F9DE988324791 + +E1C111877A6825DD08E8902A9555D2FC7B8B746C4B214AB4721F6A8251CA4D62F8E33CB4A7EB78 + +C6C55F215314612AD89D5DBD8D5F614C8DF58AA798C7C9324FD435F059A1E94E90B2BD5EDFBDB1 + +FDC906CEA9F5CC1204A0EE9FB244AC48B3F85593C45FBAC2DB4273AC81C68EBCD7B95E13B3D8D0 + +87399C5EBAD86963453E54A2DD3BCD91ADEA9F0B13457B456ED9432C9EC1F4A34AB0FA8235C26F + +23838D53275CAC1491BD8A45026446F39EAFF0CA3CDF787D3F75EDF0D90260801639B3024B04FB + +4D0DA03D4FD56A2C45AA94062D92354212BDB7E62DB57BA0F08EB3727D5452E5B70B6F0FAEB0C5 + +B8CD99011D992514D5C1D108E7E6E3DEBA9753D96DDE02BD87FCC830DF9AF89D97D6FDD9A6C77C + +489EE06A1B453F8A7B3776F11DCB71C9304899A22FF393F8DA55460CDD2EA1C8C70F4931FA109D + +5139EDD0FC9E323D0F8E323449D12470316A1D5022DD855EE9357A35C0673A093023DF988F52BD + +6438574B5FF0EDFAAFE12DF3747300456ECDE2814B5CB39EBBAC8198B3FD21D1FE47D7E9326A67 + +99AB4CD5072584F774E95C55EC967AD6EBC94C45E3E2571F982379234E5FBFCAF666ADF6C64763 + +B99496497A44A1E300928736B77011039A31CE6BA569B19AB447A6F1C95D5CB423D6A6A9FCEB77 + +4C184F45EE6105F702B25E6586296EE177A97F5C508393206A15C40BF1EE90C1DA654EA12BB4E9 + +C0F1D8074EBF22BC4FFE94DB00BBC01DA692DC6E72F3976C6184B7F17066B6C0B913577705EFEF + +F28C430A0D20E9CFBF3F1BA2F378FDD07CF7C4DAC021FF0A65E82A784F5B4DB061440032007E3C + +CBC4919B756235DB7988A17F76C9F16739F3202102D84484CBBFE5BC2927B020CC123121EE247A + +A03AC0859B54231C345116314A453E35E1C0E9FD30434915616F1B6CA42073D53EC446F4DE65A0 + +4060367D2AE61F4B71945D3F00438E98BE840AB4254A55FF730BD897F592C5308A41351EE39650 + +D71D24B8F2500392B68CF88C25DC357CBF0A515124336BBDFE42A9DA2AE5ADCF5F74B4B6285C0C + +6BF38283EC0CB48981C142E7072713506B6A38E991B507DF8F0927CB86CC86C7102446EDBB9DA4 + +019CA4754FB67324019837E8DB09C4FC33CFE423DA1F2FF32CC343409C2DD71C814B930F59FE25 + +E81AA8EDC97BCB05C03A51C48438020816EA31E6CEE57E394F6019945ADE3F9BBE5238F5AEE297 + +82896EAFDB40CB42876BCAB6F37CBF8C05B9A84AE9D7215774682C0F32E23FFE0D61A04CB9E74D + +1D04B3AFEAAEF7B94251576B80EB8F15619B409AAD454613FD50AA7D4F3ADFFAB7332595EFACFB + +9655039A8D13519DF9E8B259E342F45501FD9414D9A1CE8A1DB2170C0E635497A54BDD296E4414 + +46DFC16311669B81EAA99EF9E9F9DC6173ADECA4E9FD1D4D924A6FDF1A619D83D5AD745BE22CE0 + +74AA80A93FB804241573C4AA99B435C0C553B6A34C1CA2420D4AD5AECF101D0C220117F52FEF1E + +A6A7C2E6C5ACB12F4CFE0434D38A7B80D457299CAA7BEB22401F6F41BFCFF1B73074DB204AA4F7 + +4BF21DF02FBCFCED325450A316F3D0E19A9E578EFF6E36AE9B9FA83AC2761D9B0799760774555A + +CA3DC87F8FEF04FF41729AC36E78730AA4FDC9B200DD19E55A2EEB2914BC4A7AB668576E842FE2 + +4BC3171AC6FDE3B12CA0A5CE473CA9B16AAEEF1E038F3CD0CD46FDECE92D31989529AFF640EB74 + +4534262B1C4E74BE8E23D394A492BDEEFC7CF549C29298CCB93C99F5E7EF12F0F31F94BDD5571F + +A1393D675F0F7FD577F13B8A650627B83D1377E1D5BCA502A977CB56B3238D907336D392005BFF + +92FC98D953772DCB25A3353D07B7A21E21744A996725EBAA1C4E9359DDB16EA30F8B7B054F4338 + +D80BC231101800CF513329DF073BEE3A9E99ACC65C4661660AAA6B2466E06BE9C9123A663F9BD0 + +4705A874392E443C986778FDE4DBB2AB0AA855471E6D01BBE7B21F00725454FE21747084EDDA95 + +A23AFAB912899C1155F94CDED48C003C3E06755DDDE45BC868865D5B5E6B33F441848EF915146A + +843A1B0F83BE8A3BCDEC8F7C33D0A6C80C17A39CFD9E466A4130862C8C9C6213593ED513B82E12 + +7739B18A26A31884C99E43CB69082E710679FE9EFA6E57ED06B79BE2AD684EA2927843B289A1D5 + +E54BC9B5C03EA51F5150B1B1E878D467E6062CE785053F1BC01922BFA0EF1527758F2DC5C97E84 + +D64408424A58B069EC173390844E0DCDE2A14E874BB99D4A237BDEEF2867158C1DC360EE8D1CCA + +3578F9434A856C06722CF9FEA30AA6E923EB7FA1E4669732473F04A4F22282782B18B530C50616 + +807BBB1250E64CE29BC8EAD8023A47DFD73125952ADF218E0503E6B26F09629757773511B97661 + +28BDB57D2644C1AA9411C2BD09A1C184648ED435E61F0A8E6A3CFE2B19F7756604A32CBD27DE9E + +B083BEA7B9E505AB72E8A011BD3B38D71943044D552B8A2C6A9529C74C03461BA230DC1FA15BDF + +8EE5E8C00AA2519F2768CB41B29EE521879E4F5D33022E4F44E8BA54D9E952D730C60E283C0456 + +9B2A7E0293E622DB7AF03759F4F6C873CE2D389C99398524E8A277E0124F42A701EB9748232621 + +AC50CE70BAF6DEBA4CDFB47332DE090F1E6616D7457AB01CD96029F8E690231882F653F26FB2ED + +07DC43E96DEF70FFDDF5FF0802C87F60FDCD5C263A8AACEDD785454C63D7D1E4F0550081B30C1D + +460D7E7855548ACD4E31BF10893E793CA56A9E2B36E95C17E7B1ADFB825827FE2A6C00888BF692 + +FB608A4B5B21ACB5E539667DFA247A7C108118D73E45581E53A30924061EC53D1E8C96527FD228 + +91040578E10FA9B1B897230214B7224AA95BAFDBA6DB7DA9A65C6D19BB494D4C10E50425E88A05 + +8DF29637BD37DE8482816F8EA5718639DD5C80671E52B9EE96470204F17C938B861718430AEC84 + +04A67E719EDC2CFF1996B71FFEBFE745C5A3007545CB68716B04939633B6EADF766BD82AB8AA4A + +58917F66B20858E8B824432028EB5D44B20ECF9A394A7D2CF0C0AA6662C93442C8E081852C778C + +E8B3EDF6742CBB82412477FCDE7668A431F255A09D89558D6A95DB4C16E4A8EB40421FBA484DDA + +6371DFFA62972FEE696BC1C87CBC8A0A7854F9C53B52140C41F3E41A7CA5818821AF96C7DC4194 + +EC0CBC08B2E7B3457FEA3E52C46467EBB84C739FB61BAFF1EA3341E1CBB563B9B8A31474AA8A0E + +AEC04C792AE8C1EDAB97142259FF325918D503A884CDF665D0494FDCD6E8958FA02373AC28AFA2 + +62EC087EA4E120D22D291092834025B8D5D5B1FE22887017160C00A48BF7EABFBA436E2286EF68 + +3FD641B1BDEA05A364B62E434B9E28A15FF9BA9EC7EE3E280FFBC79FD45A29F41B40F09CFC29B2 + +688D662F156261913B3FA356A05EFC9D6CA122FB208B49BB38EC7543754CD60BB69C451E1CEE9C + +16A6C8900F6AC44EB8E8956B9E9FC43339F6AB2EFD67CC9943D3E9B957E2AC707FB9C035B89300 + +81DB24B6A862189ED78C6B265B5BA7E0F4BE520CA0C6D0AA4E2F06F2E3CB1000B62494E924D03D + +081FE8FA8041E6455E0D2BE15FD5D9839F8E9D1C449EFBF81340456A7C11D3ACC1F17ECD601AD9 + +83D228A1442FE934E61F2FEAAEB222A4DC974A49CA8AA64FA58A0E9CC64E1D19E8CBD37EA99E61 + +CC37399CE7A4B002F36128D90D48DD0D929C150A9B791E1380494723712D4E9627689B21CACFF6 + +535E6FFAD9CBB45FF42251DBFE4ABC9603ACC441AAA23D6D4CC515928A5B16A8E8EA265A3D50ED + +1570D38FA8CF1F52CED44AE32C669A6A334061D4C17EE9594B18EED1CF49C9DC20CE59CF966938 + +3A6035B828AEDA54CF8EE35AB11ADE0CAA017103EA1A16F8289DC481FE7A027E9D56170F6AB618 + +81FD9E6315E6F4AD853209C0720140237E3C444B714A417794975B942458C1965BF8BED420FF2E + +12C0BB6E977625AF3F10A16250E6033DC439D6962C59C77E5D9B99FAE6BDA21B09B82E4A832BC5 + +04B4065400697262CD99A9C38259BC9522A66C2E2F4EDC8928CAAF77B9BF050E361DBE9D4DE7E1 + +77F84C815F668F8BC2EFBD86E4C5C5F55CA9DC514EB07CE415BF56EE372335DE73D12DC9E67BBA + +6E5DFBBB7897D4AA214E51FA314E48DEADBA951330CFC54818C0205529520926A2074DF651C200 + +BAB99792B3FB589FA7A81FBB417F94BB0478FF5A0DCB3CC649C00DF54686D76B6AE61AD0BFFA96 + +F45EFBDB7EAF8D1CA349243B6126B26A8EFA36BF30904FDDF5D5FF102D67E5520B33989D196D70 + +03297395971793E0C20A3C12029EB0CFC829D37D775452A9C4479BF6CE9AD9C2552530DE9628AA + +6EA46FC1EF19DA37F7EB79DDA088186832C8176864EC7BFC5E18E5E75C57995B77614CA213C0D9 + +1F618C2B899E8BA93065C470475E0E914D39908C528CA0CFB179F7D88B369B0FE607020B2685FF + +308D779F2E22D9291A2B2BB5745E7311841F95DB8F929566A3A7FC36425891AFD5DE997A23F8B9 + +9DECFAA1EB0A65155677B5EB5133DB8F3DDAD0745DA9BA572519C915B353985676734A828C70A4 + +6A903A48F92C843C3C6BF42623C4281DB0B4294243A830EBCC4B4C722B9D795F875BDDA31AF7DE + +68640730185361F2B704F0C3ACE021A08A13393E95F0C153AC305BD3D6B1F9CD1BFD4E930AE7C6 + +6D92DBAE21878D307C5B03AD9AC113581E5625A05D195A503F8460C00093AD8AC2155898D64D56 + +07EF4022640582C97265A2F0D578DC7C33B2A8A28DC11DF55C90F2C39FE6BD29A5E0C2C9CD82A3 + +136F63E603E53791354EFA93AE3A60903A3B284D0555602352199046F7E6380AD34E593A473D6D + +DE2B28CFAD3A75041083AEE4FB12D9EB4B069E405BCFFF5A98E3C2223CAC88F773A5C0ECBB16CF + +12A483641862009037D5C54A82FDD90D40D8FD663EBEC7C91B5947DB2FBF4718A627B10C078307 + +699142374725125BE0A11DF893D8975D43BDF8AFB1476A2DFB2C8381E13CB69A8B494A6A8B0033 + +9253323E3E285E05A9835FCF4FE2AFCD4D782A03FF8311F15A51E7F50385C4A1EFAA23950E7919 + +D107F81C9DE9D4A10F64EAFBE8CAD85C0287CC4D4E815B561493D74FC62FEF72B5AE05812035CF + +4D8841974D9CE41B711DA438D00EC602C911274F7C7E0DD5F23035C5F1737EB151D12BCC736DCE + +4B2ACB25697D79DFD9F594B4DAF1DB7F540E11FA9D4A15C868C595BC35B4F74490624365948143 + +51A771E4864CEBD6E92378E709463C6FE7BEEBE0F325613BD93094EFEC8BAAC89772FBFE654075 + +351E62B844B80131E751AC4F39505DB26C8C34422C66A40316AFB198649802319D1FE4E1E66040 + +1AB234971207ADED6B4A806F0CFE971D3577C7EC801355E5F84ACB3A33CDF296CB33CF42E74ACC + +003117D8F700FBD84F34EB9ADA38EE0716E1AC8ACE9882C10BB4B3633A6D877DD6578C1DB035B6 + +DD9E4E2B2349350085E0428AAAC17759771BC4EDDA1A2D40FE0B15B65A8EBB4C28A526A49C56D0 + +C24FD235653C78F2C40379AEE793937ED6F0BF8F4CCA825C305C0F3FDEEBDE8ABA6352F1DBF049 + +55DF7695BFAA59E1894C1C57CBE29E48EC2F44DE77E3C449E13A25359126925E4C6C4649F0436B + +0188451E473513DF34C4FB2A9A37141E27811C6B33952D9C3BB0336E622DE192649C5BCB761700 + +CE9423E9B52B20B7E29B6CA470221D593AC0C5D8951EE2A56FED99A8A3D018473C0CA28E4A4831 + +D6A861A76C7165314BF7A299DCCB57F7D4CE2AEFD997AD21C55647DBE4F0FBBA1F413667B19604 + +69FE97B144BF2DD823CF23E22313E8B89AB25CE9C1746F141E2046DE217ADBE18BCC3BBBE0468E + +03F277D3F95B56CAF8E2C51A0AAEDCDFA2294666A853088EF97BC279FB51FA78419DA0AA83BF6D + +8EACB8118E0462E0401EA83023DBAE6AD5420BBD25E3DEA46FB3B7C9376373C8E362E74B01AE0C + +E9D59C6945E108E0E92C23F62661BFA54700E203627BCAD11E7895AD59BE1859A9FFB6F7B01685 + +23CB111552301916107D7D2A403543CB84AEFE404B8F170EE5B408981A88A65C335B3FC3454C00 + +153FA92CC442BE0590766F765E30F82FD41499DE688DAE2748D5709BA47A89E825813BEF4DA6FA + +EC5D7EF6E9CB0913B5BC6A6776BF9AC7668485DE88E6265F5CDF0A854FC86DEB070E40A41A1251 + +1291E1A6419C7694ECA5EBAC9DACEAC303C3E9FE8A62A64521E18B49B56B3ECA6EB0FFA148B2F5 + +E558857426424288BB54DE15453E1B321D4B04C8D728B30B756B0597AE61F92447B3A757131539 + +8701AA4F8A6B46B4283D50E26F5770EC6427592F16A66CAA8199AF84FF05A24A5FBFD1588B6114 + +E24CDF39A99E7A6CD0BCD44E0E8776C9465D86CA3E3CDE34B33D317EC75D953411C90450003B0B + +941881686C9B4A3260C1DC4FE31F0A53577D4A4750AC7CDD52EB3274B61597DD5C111AF441456F + +E090821BC7B29806714CAC0EF5B8DE2DC813D42CDC8530F6EB1DD82657EE1B6DC39B0E2BADC17A + +7A13E4EDF2A893B41CDA754D6EB684D6A8D496DF331401FFAFEDAF3FD80BF1A35C2ECA54F42BA4 + +9DB8C7CD73D81F5F1060515D47E6FC08717B9E9299B255536241DBFBC673945A38839B35D9C8EA + +1AA449CDA80805C4B14A54087EAE9E4EBF0E61C83A1BCC6C8243313F5C6FBFFECFC6BDC4368DEE + +7AFD489FD48DAFD34C59FA6D2DFAE7E2C8C95BE05D2AABA6D989D41C7F0A4307D118828963F2CF + +A652BCFAC33B22991E4F6D80D851C0722205702155EDB00053B5DAEC50744AE55E9184BEADA83B + +F76964F7D394FC27AB82DA1A65FDA56D3648D9F5AA1FEFBFA71BDC4B66E8C4A9DE4935F0FCBE47 + +958493161696480DED3314B7079901FE5AEB10F89D9F153D654A0F0E58D70B922ACB969BD800A0 + +F3CE421FCE37319D377D903741A60F8D83AE8FAB1C999BD8C391316A1C0CE6B3F181DEA3D2AFBF + +02ABE1237934194E9F42A973AB4971D3E3CB63ADDDCFE9A47BE78F24468F83E652E7E67D853F4D + +5020D7ACDBED250D1CDBE86D5801CD56913C20F8101F509C90F97263FAC6FFDD6C8705CBA0EFFD + +5EEAE1BE11841DC48401A7C41A5F0ED59FAC3CDFB8A2DFD2AC0F3C12CC0E964B25B344E1B6246A + +292D4E9EE6FA18BF71F1BB7A91EB5B8F0E20A4FD8593B803335980224D372417E3662D96305524 + +F200B70168AA3B485BD83DF7A42A5771882FA599F0FAD36C9B4632E56D751FEB579F530A6A4C20 + +A909765CADF9065E4BC80BC52FDA6A2186E22B2559017A626F230522DE708219012351E9205F6A + +45E968D94D4116EF55E13EF921B3740CDF45596206BDA272B14A8B2F6C6ED744BCCC8BFEAB9B50 + +6088DBB57D8FEC837B4B00F57959EF515CE8A9802F54AF1DE01F071146D9A68BEB382FE03DD7DE + +AA00AA32BD552D2FD1B09E92E31E3623434A5A34E702ED0375E1A97F8B09AA52DC4FAB8A15F09F + +ABF0BE47AD03D997236B6B556AFA9C4A3E4135DB4956DB38F914446D7E0FC6AA21D4232B0BF5EC + +66F43214EEFC8CF98854BBD625668144478959A983A01DCB4FA2BC8FCDE08F3D4DAB474E05C3AA + +80B91FE4F53F103EFDFB1A509696E0B66830DE466CFE8243292DE34D4E9AAE50EFD539C120BB3D + +C0F7D3EAD1C033EF7EABBE1294276C0F78C7C089C76A1024870EBB09D493D9A4F16A3E65B5C5C9 + +F380DBF5365BBE83AE13AD4E96C852274FA6CC8370CE8FAD45449D9050E7D2EAF352F169CC7EFA + +67B1BBECE485C2DCB608AA7B2B6F2762B7E4682BCC33EA0E305CC395A3D7A2C2F7E0EFCF2B1055 + +F30E631757BB5BEA22D9074FF2D73588F9E9DD12477D44BEECB9A03DD5439C472CFEEDE2BAED9A + +FBD67AFF806759BA0AE34CDCB12CA52332C9328633C42F1894DE5F9EC50136AA1293C9D8937160 + +0DFB14E2E95490853B0601AC7522BE8E519786C87AA5E1ED2B96CE221009AA9C55BC60AEA4E8CE + +FDB977B28F0551C306C22FF4016728BAB789B65CE07F611B9C84808837F8765E5D94B9C867C0E3 + +AFB0EA4A21A324CC0A3BC3501C39A9BA928B09E9A87408314DE63B783392D5BD9B3ACF56CCD70B + +4933C1724732379A616012DFF9A9E14D5A55F50D841333958D6F36B56926228F4796421E470735 + +4FAB7431899445114BCCE5D27117BFEA65EE1118505765132B7833FE9978899AAA1BE3E3F8AFCF + +0E9E1140A26FC9CA154A6BBB84C3E5FD6CD8B82732BE0179DEBACAC5340C79493A18FA2E5DF58A + +5F0C6546F5A5836BD61C904A8EBAF16CD933A9BC7FA72FA72F319A0A6EE86AD23C84E672D18CBB + +0696F22E1C69ECEFD15FA52706E5DCF3CB5311B28D9A614446CE033547EC0EF5FFAECF2A04F1A6 + +C3DE91ED2B3FBA94DD7796E45D26AB00B99B3E295751BD6473F0BF36EBCA28FFAB2451E93DF4E0 + +26BF0844FABC6A12EF15EBA64A5CA0E97C6DD06B94BA1CB29DFCDAD8C203C1CB6F7A1FAF4F3B58 + +5BDD0BF922549CB45DF8F2196C709F2B9A35A43DB0043E2BD0287A3C313EE3C33F119F09A5619F + +B350F4011A93100CEE0847F1BDE12FEE8E323C8FAE34D535DB5A0DC8475DE8299E3C9CD6D8B0CF + +D6481619C68E77D92FA10D9EBCC13E474AD22B1F47D3F362FC968CFC1B5B52EC24F19BA894967E + +ED811F37525C260AFE0E2F9B302D6FFD019754EBCC14E053A9EED1905F402BA7BD3D8AFB09D2A8 + +E94D0ADBC3C2ADFAFD2A4052256D58B221D0A20995F9C394F3A3AD6436CFE4F0030C7E8C2094E2 + +092F5191C2C721CA9433369AFC221D01872BF68298677841A0656772649E7EBAAC8B1B81A38E75 + +5B02DDA4D08B2F357C0C10E1060632FF74F7EDD5CFE7F9DBB232C3A231D128A3368C4D9872404D + +F45719B3EA0455836B893F07E07762F0A2FA9E011010A0872353F0CD2243E1860EC33F72E15EB2 + +EDEE1A91397FE6D2729FED1B3A66FD009EA8DDDADD1FFDC8CD3603876F8D0C7AD60164A96A6C73 + +B8A8B50985E1FBDA3ADC50018D341F285036B5EE255D975F6C3B5698AC4A94B2317BAC65889783 + +4DB7BF52E9B8D20FD4981515FBEF23963A7F8636D0897E7EA88901CFAE1FDD18DA86C246507A34 + +7672ABB116ED605AC9B4B6E899B9E8F6867140BE89DF5CD52C65C27E860170AEA6CAF303C860A6 + +80A85394DE6896CF928BED76171F8904C5BBF4196BAD906569AC5C7057ED1201F2AE8393CBF704 + +009124A6E5231D323C3FCE6C48CA239F169DFF496B951332DEBA5F06CEE48B6BCF824F0FB4BFE5 + +4C1147BF208C2A9D44132D0895FA7A87F6FAD780DDCF94545F7030EF1808B30EC659FA2B6EA011 + +A3C06070388BBAEBE45F8EAA75F72BA5B4E56380FB7FC3179BDB55A9A7CAF8D7FB60EAD6DA939B + +09E69159432671C88E22B34D115B6DEC54955454D622857094B70C3359D6A22C239FE03853CFD9 + +9B7FA73D4EE3CD34124486F01F5CF05A423FFD794F577F50DE6776779107BD58808EEFA24DE1BE + +94BB27F82A19068D7F9DC695EC8473341F73FED626A4A6E89B58D4ED2024F78AC7678829FA40B7 + +C8AA7400EE3CEFE125F64E1AB49CE67FA2F2D1B81FC322AA64F16463C134AF51AA9C3A154C7FD4 + +30BCF4531EA9B6211F92006AC1C61894A7DD5C38E6CB8CC68D6A05BB95B0BDAF66971D357EFCAD + +89BCB8109462B796927389567F797E58823706AB224FF927A7616F0E4527D90B0DB9689D850D4B + +4F147080CBBF3493E564A1CC43627075E79BF3C3091E4650B8E607F4CCCBCAFCD3F778B7A1464B + +14A4E229FD41B5BC4A98880F008ED63FD25AE4504EE8BD38B641F65D0F3F65961AC315F4D68139 + +7C2470E88813BCFC7E41FDA99AEFE170E274D53DD3D858D8BBDA154BFC93482C65FEAE4AD7E9A4 + +7AC9530F0A82FF46E8BF22EC64B3A8B69527E92245B3B272C311FCF9946E93476D838EC0AE54EA + +8CB899087794A67E6B4E96664AFDD619FC074FA089F83A02FA4FCBB5BE698E508F87BC0F48051A + +8AA4DE3EBF3FD93ABCF58C1FB64257027AF8FD69B7CEF07498F48F393B4B4E9BDD6519332A780A + +E72152CE168E399E75DB4414618B9EFFB4986B85A94CBD0B912E3D5CDDBA6B784EAC660969A83C + +CF3AF928B6E84586B5F1CF353EFDF022DA5DF130E7FFD1698A9A7C26C83F135FC39E9CECB8855D + +9601A08D9E5ADC5397EE9E639A198A61A79B3CF5960AFC41584B56B0EF5C604E42BDD021E716B7 + +3718AA7FA7002D329F22E3898B52F3111E975D5054C8C1BC491EDD67CAF876517901CB7805FA84 + +4279435B26A2B54C086FE443C079A373B630528664C8F262D147F44F19B3760D4CB4D3A38B8E7B + +8492F3FC910E45A201FFBB8B3F06F80CD135C321EF51B7A7C30AFB5A14D5EA851E4B23232B3F0E + +272603125DE99C6B1755C9D3E8B9E92D33AA4EEB55D07D06158FFF93BCEE921CBE6A9B6605BE3A + +D1C203AB903AED90A1F735D32846EE9BF7ACBD7BC479FDAD8204F0A5601477E2CA092C7CD57671 + +E2B179B60A72794FB3DEBEBE9E41EF333F97007BFFDC1A1C55C79EB9CF85AC2DCC23700F48D6EE + +621D02FAAB7D7E7C512B939362AADB1ACDB25B75FE1B935F15F922AE4E03632EC9AC1CCE112FD7 + +CC8510B86921209CEF5E66F52CAF4EAFD83E772A653B0B10EA7DE38174A6458228F90146A1C5E5 + +F057D384CB5CE531C02F7BF2BD20517F182597310157AED68C2325CCABC22F9D38A32AF1575707 + +DEA5139E0363677162DB6EE9D46619DAC88D9D97902D5C58339FF9B7E3DDBDB7226DED36C1CB51 + +B50BA744CB2DE5964126918879DBE7D2FA616FBA9D4D2965021EDDA8A88FDFC08853DC1FE99614 + +15C741B21FA7D79A6F0281BD054E49C6F1893A2A4B3708E7272F42C6AE8A5E7C95CD6879466150 + +CB99F4110B392DA7DF91419571EE31C926B3571DC0FD7302E271263C4AFCF7553525651D8D5587 + +7AA4E1333092ED52A9672990BF34A1B60EC243241530E67E9F1D7CCBBA1B511A24793F2511F3E4 + +763B02D4084CFF099BD83408FEAD0403E33A6BEFBCAD9564232FAB7BABC8BCAF785A6EA74AA882 + +B74DE229A6C9D140E617F10E988467704D31695637106825DE0F31C3BBAD7EEC317C2CBF7CA7B2 + +E25A5365C8234B9C57C9E3853C7A581972B3186AA87046C09DAA4429DCC56C7CF7F9750428B974 + +49E6D9E0EE104BB2E80D05797D61C71F7751C5726E1FD7C441176ABD32613B6D7EA98B4262F9F5 + +664AA8D4E9422AA0F44C4A1C79C32140F6F38ABD0FE9D7CD85997A357C999A37674F4603609349 + +BEBA4F86D818290F6D1E75CC70555D68A717EC063B92931F2278E460A24A53377D85322FAC03BA + +D008ED6402F3768A75CEEF4EBF73852A2512C1499B3D4502E05E9C4C77D962708DE7FB406265A7 + +A7B0AE38E879BE8922C585EF4ACDA2A4459C27DEAC5909ABCC15064EB6B974EED95702286F8C04 + +E59187241E357BF0FA2F1B1D2576366DD96B15E40891041435D3542344DDDCEA9982E7850BCF12 + +BF60093F0BB91279E8AC2A40DB5C7F0586422A9B7519B5A14F0E5BE49BC0818137D0D512A2BD6E + +475855EAFBEF470190721A6E90966CD8F47F801780B6181C92B6D401BB70A64C95B12AE7DDD980 + +D32323EF569C05105ADC3AB5DE127B421EE1453DF7FC5BE2275E5941FC9C7FEE09F931039DA70B + +920604D40703369B47D8014E95F827563234D32A08FCF8B99073FBF7E87A34D7FA1AF9E6B5C5C0 + +8802250ACB7E943DA108BB2485A41324819CE85AD51CA83FC7575FD5E8EE353AB8C6B9C2F3DB8E + +B3DED45F22711190321A2F6F95097DD6A0ED91E0DA54AAFD05A6B9D399239525CD833E9AA6231C + +D4F835B730E5459C399DF7693DC4C1CAEFAD6416BC95F8B9F0533C0A27D86B42D8480FC908AA91 + +C0468F0BF73CC5E260E5F00D82C439E9A581B19A61B5014606D57D186D9F9469217B4472DB1609 + +FED1949D29FF3E2E3FAAB536FF7949A26042B9FC5408B7B059EE35B0E287F4D8CEE50E540DB716 + +6802EFBF0FB60F18E5A1FA942A4E3E66EE68EA44B8FF66B3B0669E59A81C6166312987164E6DC4 + +DB7509B11444287A5BEC5BEA9FF656D5A42C0DCB10F83B14DF02BBFE729E9839E594895DA80448 + +B760D7AB5E58B675ADA42098929FBED35D62A54737FE6E612569B8DE4EB603F1DD6DBFFE8F79D6 + +AEA1B0599913AA70083EB94E251DB277BE9F492E4D13B2E42FCCF825B3589EC4F9427BA659A59B + +73DACC3C9D2E9CD77267DEFCFDCF2117F5207AEC4198130B1B585875A49B6E01C8A5FE5EBC4678 + +2BDBC438BE32A1CAF134E9B53D82761E9B682E0A198A812F296E193C296412596978DD3C5EEF0F + +BE7B353568C5627BC6467C767F9ED8412EE405C24F6DFE95AF72437D1AD9B992FF30459D232491 + +645E845FFF03214949D33E1A48EF2A99DB29DE6FF82E72050E0E6E08E863DB570ADF515D82931B + +AE70437E49C397767874E34513417A49234BBD89F19FFC3EE3CD9F5BA7112A4BEC07012C709585 + +97ECA5A501365E3524A500FA8A43A7BA90F91E8CD5825F65940825DE80F5EF11198952A258B5BB + +EC5AA244F8674BE1764B526DB6B9D244C886980B25C7EE4ACFEBF79349E26F2D2D65FA2810D1CD + +4B39233F9638546A3FF1E8D017EF458F182CF228392AD30A6E7DF715CD0B55FA377DFA6880F554 + +367A6E3728065DF65CAD30AD927943963973F6596C1C1DD29C2C84B224F81361D4CA2ED2CC6483 + +A59F833CB8A964C281B0BA2C834783C5752986B8E70583E6C9AA33132BFC67998B992F249D0AD7 + +6C02BDD2925B39501A69E4E00DD3534C474D0715C913E23660BB765C2E5FE37F445AC605F62DE9 + +C533EE924EFE205C528C372403696885DDD6BADAF602993F3DF49957E21B2EE409AA6336A8103E + +BCC0B33B8FFD8C818F2D25D22E3B0E4E874CF4ADE03F69C1B017DA9CED9EAFC6CBD86780C819A9 + +CE03C2AA203CABD299251B9090F2659C3245A845B50EB36BCBC07AD6FE0A191D3E8BD0C9B9700A + +706EA3028E8055B585A6D8F305C80DD5ADBE1DA433669E1D9F459EA105B5F6D756A9FF3DF71607 + +9FDA77312E447F764C0F178B7F128DA4ACE17F8D4F213864C2AAFAB0D5BCE40A19AC92FF21D7B1 + +F1F3CEC338951D7292147937ED0BDB0CEC2578D0BFE12F7F21B4D76ADD1F557E8A5761399591C2 + +D4A2CB1F0D9564586567AE9165451DFF5D61E08F0421A8606E49A552E19F8CCDC90CA92C4BC2AD + +2FC3DC29DFF6E56BA85D8E7B0388962DB5BB107CBAB4FD4170F24C21DFE2A3EF29DDB82C02EF32 + +4B9DB2AC09C1A5EA7C71B1547573B68FF8C3215B803CD3EDE122DE1D71492BD3B71C5A6DE52D50 + +8E98676560ED273403B9D655F239579007706C078EA3EDC120EDFECAF4F13379A4526FB3731A08 + +9690CF6D74F2E95E332D1DDB36DF458771F0F7BF321E524447B6E04AC33011E855A0E25582F104 + +69F1B6C19089AF013C38F2624826A5730641 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +0000000000000000000000000000000000000000000000000000000000000000 + +cleartomark %{restore}if + +%%EndProcSet +%%BeginProcSet: texps.pro +TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 +index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll +exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics +exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub +dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} +ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict +end definefont 3 -1 roll makefont /setfont load]cvx def}def +/ObliqueSlant{dup sin S cos div neg}B /SlantFont{4 index mul add}def +/ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def +end +%%EndProcSet +%%BeginProcSet: special.pro +TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N +/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen +false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B +/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit +div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ +/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ +10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B +/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale +true def end /@MacSetUp{userdict /md known{userdict /md get type +/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup +length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} +N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath +clippath mark{transform{itransform moveto}}{transform{itransform lineto} +}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ +itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ +closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 +0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N +/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 +scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get +ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip +not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 +TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR +pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 +-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg +TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg +sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr +0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add +2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp +{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 +div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} +N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict +maxlength dict begin /magscale true def normalscale currentpoint TR +/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts +/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx +psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy +scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR +/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ +psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 +roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath +moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict +begin /SpecialSave save N gsave normalscale currentpoint TR +@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial +{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto +closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx +sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR +}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse +CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury +lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath +}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ +end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} +N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ +/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX +SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X +/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad +yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end +%%EndProcSet +%%BeginProcSet: crop.pro +TeXDict begin /cX 18 def /CM{gsave TR 0 cX neg moveto 0 cX lineto stroke +cX neg 0 moveto cX 0 lineto stroke grestore}def end /bop-hook{cX dup TR +gsave .3 setlinewidth 0 0 CM vsize cX 2 mul sub dup hsize cX 2 mul sub +dup isls{4 2 roll}if 0 CM exch CM 0 exch CM grestore 0 cX -2 mul TR isls +{cX -2 mul 0 TR}if}def +%%EndProcSet +TeXDict begin @defspecial + + /arrow { save 4 1 roll 14 dict begin /y exch def /x exch def /D exch +def currentpoint /b exch def /a exch def /dx x a sub def /dy y b sub +def /arrowlen dx dup mul dy dup mul add sqrt def /angle dy dx atan +def 0 setgray a b translate angle rotate /xp arrowlen def /m xp D sub +def 0.5 setlinewidth [3 1] 0 setdash 0 0 moveto m 0 lineto stroke /back +D 8 div neg def /up D 4 div def m 0 moveto back up rlineto xp 0 lineto +closepath fill m 0 moveto back up neg rlineto xp 0 lineto closepath +fill end restore } def /drawtriangle { -144 72 rlineto 0 -144 rlineto +closepath fill } def /cropmark { 2 copy moveto 0 -18 rmoveto 0 36 rlineto +stroke moveto -18 0 rmoveto 36 0 rlineto stroke } def /fillpage { .9 +setgray 0 0 moveto 0 792 rlineto 612 0 rlineto 0 -792 rlineto fill +0 setgray .25 setlinewidth 18 18 cropmark 18 684 cropmark 549 684 cropmark +549 17 cropmark } def /showpart { 10 -22 translate /StoneSans-SemiboldItalic +findfont 140 scalefont setfont dup stringwidth pop /sw exch def sw +neg -46 moveto 0 setgray dup show sw 4 add neg -42 moveto 0.7 setgray +show sw neg 0 translate /StoneSans-SemiboldItalic findfont 30 scalefont +setfont dup stringwidth pop /sw exch def sw neg 0 moveto 0 setgray +show sw 10 add neg 0 translate -600 10 moveto 12 0 10 arrow } def + +@fedspecial end TeXDict begin +37298252 46178789 1000 600 600 (book.dvi) @start /Fa +133[33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 +33 33 33 33 33 33 33 33 33 1[33 33 2[33 33 33 33 33 33 +33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 +33 33 33 33 1[33 1[33 3[33 33 33 33 33 33 33 33 33 33 +33 33 3[33 33 3[33 36[{.82 ExtendFont TeXBase1Encoding ReEncodeFont }73 +66.666667 /PPCode rf /Fb 1 14 df<000001FFC000000000001FFFFC0000000000FF +FFFF8000000001FF007FC000000007F00007F00000001F800000FC0000003F0000007E00 +00007C0000001F000000F000000007800001E000000003C00003C000000001E000078000 +000000F00007000000000070000F000000000078001E00000000003C001C00000000001C +003C00000000001E003800000000000E007800000000000F007000000000000700700000 +0000000700F000000000000780E000000000000380E000000000000380E0000000000003 +80E000000000000380E000000000000380E000000000000380E000000000000380E00000 +0000000380E000000000000380F000000000000780700000000000070070000000000007 +007800000000000F003800000000000E003C00000000001E001C00000000001C001E0000 +0000003C000F000000000078000700000000007000078000000000F00003C000000001E0 +0001E000000003C00000F0000000078000007C0000001F0000003F0000007E0000001F80 +0000FC00000007F00007F000000001FF007FC000000000FFFFFF80000000001FFFFC0000 +00000001FFC000000039357CA842>13 D E /Fc 140[135 6[135 +3[135 3[135 2[135 97[{.82 ExtendFont TeXBase1Encoding ReEncodeFont }5 +274.999988 /PPCode rf /Fd 144[37 2[37 7[37 1[37 98[{ +.82 ExtendFont TeXBase1Encoding ReEncodeFont }4 75.000000 +/PPCodeBold rf /Fe 1 12 df<00003FC000000000FFF800000007E07C0000000F801F +0000003F001F800C007E000F800C00FC0007C01C01F80007E01803F00007E01807E00003 +E0380FE00003F0300FC00003F0301FC00003F0703F800003F0603F800003F0E07F800003 +F0C07F000003F1C07F000003F1807F000003F380FF000003F300FE000003F700FE000003 +FE00FE000003FC00FE000003FC00FC000003F800FC000003F000FC000003F000FC000003 +F000FC000003F0007E000007F0007E00000FF0003E00001DF8183F000079F8181F0000E1 +F8380F8007C0F83007E03F007CF001FFF8003FC0003FC0000F802E267DA435>11 +D E /Ff 82[28 51[42 42 60 1[46 28 32 32 1[42 37 46 1[23 +37 23 23 1[42 1[32 42 34 38 37 11[65 51 4[65 2[46 5[46 +51 65 17[42 42 49[{ TeXBase1Encoding ReEncodeFont }30 +83.333337 /Palatino-Italic rf /Fg 140[61 2[61 61 61 61 +61 61 2[61 2[61 61 61 1[61 55[61 61 40[{ +.82 ExtendFont TeXBase1Encoding ReEncodeFont }14 124.999997 +/PPCode rf /Fh 134[53 1[53 53 53 53 53 53 1[53 53 53 +53 53 53 1[53 53 53 53 53 53 53 1[53 1[53 11[53 6[53 +29[53 4[53 53 40[{.82 ExtendFont TeXBase1Encoding ReEncodeFont }27 +108.333331 /PPCode rf /Fi 134[37 37 3[37 37 37 1[37 37 +37 37 37 2[37 37 37 37 37 37 37 37 37 1[37 15[37 8[37 +70[{ TeXBase1Encoding ReEncodeFont .167 SlantFont .82 ExtendFont }22 +75.000000 /PPCode rf /Fj 134[43 43 43 43 43 43 43 43 +1[43 43 43 43 43 2[43 43 43 43 43 43 43 43 43 1[43 8[43 +43 2[43 2[43 43 43 43 2[43 2[43 43 1[43 43 43 43 17[43 +6[43 39[{ TeXBase1Encoding ReEncodeFont .167 SlantFont .82 ExtendFont } +39 87.499997 /PPCode rf /Fk 134[74 80 118 74 86 62 62 +62 88 88 84 88 132 43 84 1[43 88 88 57 76 88 69 89 79 +7[91 98 145 96 96 84 74 89 103 86 103 99 129 74 1[44 +44 101 99 69 74 101 89 89 99 6[42 84 84 84 84 84 84 84 +84 84 84 76 42 46 42 2[59 59 32 39[{ TeXBase1Encoding ReEncodeFont }66 +133.333334 /StoneSans-Bold rf /Fl 82[30 24[46 46 25[51 +47 76 52 55 30 39 36 1[55 50 53 81 27 51 1[27 53 51 30 +44 56 41 51 46 11[71 4[55 3[56 2[31 26[23 1[23 2[30 30 +37[55 2[{ TeXBase1Encoding ReEncodeFont }35 91.666666 +/Palatino-Roman rf /Fm 82[32 3[71 46[48 53 48 80 53 58 +32 42 37 58 58 53 58 85 32 58 32 32 58 53 37 48 58 42 +58 48 8[64 95 74 74 64 58 69 80 58 80 80 95 58 74 37 +37 80 80 53 58 80 69 64 74 6[24 48 48 3[48 2[48 1[28 +24 1[24 4[27 36[58 2[{ TeXBase1Encoding ReEncodeFont }62 +95.833334 /Palatino-Bold rf /Fn 134[138 149 222 139 160 +115 115 115 1[166 158 165 247 80 157 1[80 165 166 106 +142 166 129 166 147 10[180 180 157 139 166 1[161 194 +185 241 138 1[82 82 189 1[129 138 190 166 1[185 19[87 +45[{ TeXBase1Encoding ReEncodeFont }42 249.999994 /StoneSans-Bold +rf /Fo 134[181 2[181 1[136 149 140 1[218 211 215 319 +94 2[94 1[218 1[191 218 167 217 188 12[207 194 2[207 +3[181 4[266 1[189 263 2[233 65[{ TeXBase1Encoding ReEncodeFont }25 +349.999988 /StoneSans-Semibold rf /Fp 141[25 2[37 38 +55 3[17 1[38 1[31 101[{ TeXBase1Encoding ReEncodeFont }7 +66.666667 /StoneSans-SemiboldItalic rf /Fq 129[37 37 +37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 +37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 +37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 +37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 +37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 +37 37 33[{.82 ExtendFont TeXBase1Encoding ReEncodeFont }94 +75.000000 /PPCode rf /Fr 129[43 1[43 1[43 43 43 43 43 +43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 +43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 +43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 +43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 +43 43 43 43 43 43 43 43 43 43 43 43 43 33[{ +.82 ExtendFont TeXBase1Encoding ReEncodeFont }92 87.499997 +/PPCode rf /Fs 82[28 50[42 46 42 69 46 51 28 37 32 51 +51 46 51 74 28 51 28 28 51 46 32 42 51 37 51 42 7[55 +55 83 65 65 55 51 60 69 51 69 69 83 51 65 32 32 69 69 +46 51 69 60 55 65 1[37 4[21 42 42 42 42 42 42 42 42 42 +42 25 21 1[21 2[28 28 23 36[51 2[{ TeXBase1Encoding ReEncodeFont }71 +83.333337 /Palatino-Bold rf /Ft 134[53 57 85 53 61 44 +44 44 1[64 61 63 95 31 60 1[31 63 64 41 55 64 49 64 57 +10[69 69 60 53 64 1[62 74 71 93 53 1[32 32 72 71 50 53 +73 64 64 71 7[60 60 60 60 60 60 60 60 60 60 55 1[33 45[{ + TeXBase1Encoding ReEncodeFont }55 95.833334 /StoneSans-Bold +rf /Fu 133[62 65 70 104 65 75 54 54 54 77 77 74 77 115 +37 73 1[37 77 77 50 66 77 60 78 69 7[80 86 127 84 84 +73 65 78 1[75 90 86 113 65 82 38 38 88 87 60 65 88 78 +78 86 6[37 73 73 73 73 73 73 73 73 73 73 67 37 41 37 +4[28 39[{ TeXBase1Encoding ReEncodeFont }65 116.666669 +/StoneSans-Bold rf /Fv 134[41 43 65 41 47 29 32 29 50 +50 48 49 74 20 40 1[20 49 49 25 42 49 40 49 42 8[54 77 +49 57 46 43 46 66 45 66 65 77 40 49 23 22 58 61 40 41 +61 57 48 51 6[24 48 48 48 48 48 48 48 48 48 48 32 24 +28 24 2[29 29 17 39[{ TeXBase1Encoding ReEncodeFont }66 +83.333337 /StoneSans rf /Fw 82[28 20[28 83 42 1[42 42 +22[50 1[42 46 43 69 47 50 27 35 33 46 50 45 48 73 24 +46 19 24 48 46 28 40 51 37 46 42 23 42 1[28 1[28 55 55 +55 83 60 65 51 44 55 65 50 65 69 79 51 60 28 28 69 63 +46 51 64 59 51 65 5[21 21 42 42 42 42 42 42 42 42 42 +42 50 21 1[21 50 32 28 28 23 5[23 29[50 50 2[{ + TeXBase1Encoding ReEncodeFont }86 83.333337 /Palatino-Roman +rf /Fx 173[33 24[25 25 25 25 25 25 25 25 25 25 48[{ + TeXBase1Encoding ReEncodeFont }11 50.000001 /Palatino-Roman +rf /Fy 82[32 50[42 48 48 69 48 53 32 37 37 44 48 42 53 +74 27 42 27 27 48 48 27 37 48 39 44 42 8[69 90 69 74 +58 53 64 74 58 74 74 90 53 64 1[32 74 69 53 58 74 64 +58 69 6[24 3[48 1[48 1[48 48 1[28 24 1[24 58 1[32 32 +27 74 35[50 2[{ TeXBase1Encoding ReEncodeFont }64 95.833334 +/Palatino-Italic rf /Fz 135[50 1[47 12[23 105[{ + TeXBase1Encoding ReEncodeFont }3 95.833334 /StoneSans +rf /FA 82[32 20[32 95 48 58 48 48 24[48 53 49 80 54 58 +31 40 38 53 57 52 56 84 28 53 22 28 56 53 32 46 58 42 +53 48 1[48 1[32 58 32 64 64 64 95 69 74 59 50 64 75 58 +75 79 90 58 69 32 32 79 73 53 58 74 68 58 74 71 42 3[24 +24 48 48 48 48 48 48 48 48 48 48 58 24 1[24 1[37 32 32 +27 74 4[27 29[58 58 2[{ TeXBase1Encoding ReEncodeFont }88 +95.833334 /Palatino-Roman rf /FB 134[149 149 2[166 100 +116 116 1[149 133 166 1[83 2[83 149 149 83 116 149 122 +138 133 11[233 183 166 2[183 233 233 1[166 2[100 1[216 +2[233 199 183 216 17[88 47[{ TeXBase1Encoding ReEncodeFont }33 +300.000000 /Palatino-Italic rf /FC 141[42 2[48 2[30 2[30 +3[42 3[48 13[60 11[78 2[84 21[27 46[{ TeXBase1Encoding ReEncodeFont }10 +108.333331 /Palatino-Italic rf /FD 82[36 21[108 29[60 +56 90 61 65 35 46 43 1[65 59 63 95 31 60 1[31 63 60 36 +52 66 48 60 54 19[102 2[36 36 1[82 1[66 22[27 1[27 44[{ + .167 SlantFont TeXBase1Encoding ReEncodeFont }32 108.333331 +/Palatino-Roman rf /FE 171[112 84[{ TeXBase1Encoding ReEncodeFont }1 +183.333331 /Palatino-Italic rf /FF 139[24 32 30 1[45 +1[43 1[22 2[22 1[42 32[42 4[58 7[37 37 6[37 4[19 44[{ + .167 SlantFont TeXBase1Encoding ReEncodeFont }14 75.000000 +/Palatino-Roman rf /FG 1 14 df<00000003FFC00000000000003FFFFC0000000000 +01FFFFFF800000000007FFFFFFE0000000001FFE007FF8000000007FE00007FE00000000 +FF000000FF00000003FC0000003FC0000007F00000000FE000000FC000000003F000001F +8000000001F800003F0000000000FC00007E00000000007E0000FC00000000003F0000F8 +00000000001F0001F000000000000F8003F000000000000FC003E0000000000007C007C0 +000000000003E00FC0000000000003F00F80000000000001F01F00000000000000F81F00 +000000000000F81E00000000000000783E000000000000007C3E000000000000007C3C00 +0000000000003C7C000000000000003E7C000000000000003E78000000000000001E7800 +0000000000001E78000000000000001EF8000000000000001FF8000000000000001FF000 +0000000000000FF0000000000000000FF0000000000000000FF0000000000000000FF000 +0000000000000FF0000000000000000FF0000000000000000FF0000000000000000FF000 +0000000000000FF0000000000000000FF8000000000000001FF8000000000000001F7800 +0000000000001E78000000000000001E78000000000000001E7C000000000000003E7C00 +0000000000003E3C000000000000003C3E000000000000007C3E000000000000007C1E00 +000000000000781F00000000000000F81F00000000000000F80F80000000000001F00FC0 +000000000003F007C0000000000003E003E0000000000007C003F000000000000FC001F0 +00000000000F8000F800000000001F0000FC00000000003F00007E00000000007E00003F +0000000000FC00001F8000000001F800000FC000000003F0000007F00000000FE0000003 +FC0000003FC0000000FF000000FF000000007FE00007FE000000001FFE007FF800000000 +07FFFFFFE00000000001FFFFFF8000000000003FFFFC00000000000003FFC0000000484E +7BBB53>13 D E /FH 82[25 51[37 3[42 25 29 29 2[33 42 1[21 +2[21 1[37 21 29 1[30 35 33 16[46 3[42 7[58 50 67[{ + TeXBase1Encoding ReEncodeFont }20 75.000000 /Palatino-Italic +rf /FI 82[25 21[75 37 27[37 42 39 62 42 45 24 32 30 42 +45 41 43 66 22 42 17 22 43 42 25 36 46 33 41 37 6[50 +50 50 75 54 58 46 39 50 59 45 59 62 71 46 54 25 25 62 +57 42 46 58 53 46 58 6[19 37 37 37 37 37 37 37 37 37 +37 45 19 1[19 4[21 58 2[37 1[21 29[45 45 2[{ + TeXBase1Encoding ReEncodeFont }75 75.000000 /Palatino-Roman +rf /FJ 147[26 108[{}1 33.333334 /ZapfDingbats rf /FK +134[37 39 58 1[43 26 29 26 2[43 44 67 18 36 1[18 44 44 +22 38 44 36 1[37 12[42 39 42 1[40 59 1[69 4[53 2[37 55 +51 43 46 20[21 44[{ TeXBase1Encoding ReEncodeFont }33 +75.000000 /StoneSans rf /FL 134[46 50 2[53 38 38 38 1[55 +53 55 82 27 2[27 55 55 35 47 55 43 55 49 7[57 1[91 2[52 +46 2[54 65 62 1[46 2[27 1[62 43 46 63 55 55 62 7[52 52 +52 52 52 52 52 52 52 52 1[26 29 26 44[{ TeXBase1Encoding ReEncodeFont } +49 83.333337 /StoneSans-Bold rf /FM 140[63 59 2[82 87 +1[43 83 1[43 87 2[72 1[66 1[75 9[149 2[92 6[141 1[108 +50 4[91 22[37 46[{ TeXBase1Encoding ReEncodeFont }18 +150.000000 /Palatino-Roman rf /FN 135[174 1[194 213 116 +3[213 194 213 310 116 2[116 3[174 1[155 1[174 20[213 +7[290 2[271 65[{ TeXBase1Encoding ReEncodeFont }16 349.999988 +/Palatino-Bold rf /FO 139[89 89 115[{}2 100.000003 /ZapfDingbats +rf /FP 135[133 1[148 162 88 3[162 148 162 236 88 2[88 +3[133 1[118 1[133 20[162 7[221 2[207 65[{ + TeXBase1Encoding ReEncodeFont }16 266.666669 /Palatino-Bold +rf /FQ 139[67 67 115[{}2 75.000000 /ZapfDingbats rf end +%%EndProlog +%%BeginSetup +%%Feature: *Resolution 600dpi +TeXDict begin +%%PaperSize: Letter + +%%EndSetup +%%Page: 445 1 +445 468 bop 0 0 a @beginspecial @setspecial + gsave .50 setgray newpath 278 10 moveto 0 100 rlineto 132 0 rlineto +0 -100 rlineto -132 0 rlineto closepath fill 1 setgray /StoneSans-Bold +findfont 12 scalefont setfont 296 19 moveto 3 0 (CHAPTER 24) ashow +grestore + +@endspecial +299 355 a Fn(Parsing)84 b(Command-)299 654 y(Line)g(Options)299 +1557 y Fm(From)21 b(the)f(forthcoming)i(book)f(entitled)f(Linux)h +(Application)g(Development)f(by)299 1669 y(Michael)35 +b(K.)h(Johnson)h(and)e(Erik)h(W)l(.)g(T)-11 b(roan,)39 +b(copyright)d(\251)g(1998)e(by)i(Addison)299 1781 y(W)-7 +b(esley)38 b(Longman,)43 b(Inc.,)f(to)d(be)f(published)i(in)e(April,)k +(1998.)77 b(All)38 b(rights)h(re\255)299 1893 y(served.)c(This)24 +b(material)e(is)i(made)g(available)f(with)g(the)h(permission)h(of)f +(the)f(pub\255)299 2005 y(lisher)-5 b(.)34 b(The)21 b(publisher)5 +b(')-5 b(s)23 b(permission)g(is)g(required)f(for)h(reproduction,)g +(storage,)299 2117 y(or)h(transmittal)f(of)h(this)g(material.)299 +2329 y(For)g(more)g(information,)g(see)f(http:/)-14 b(/www)-9 +b(.awl.com/cseng/books/lad/.)299 2541 y FA(Most)41 b(Linux)e(pr)n +(ograms)h(allow)f(the)g(user)g(to)h(specify)h(command\255line)e +(options.)299 2653 y(Such)23 b(options)h(perform)g(a)f(wide)g(variety)g +(of)g(functions)g(but)g(ar)n(e)g(fairly)f(uniform)h(in)299 +2765 y(their)31 b(syntax.)60 b Fm(Short)33 b(options)g +FA(consist)g(of)f(a)g Fr(-)h FA(character)e(followed)h(by)g(a)g(single) +299 2877 y(alphanumeric)25 b(character)-7 b(.)43 b Fm(Long)28 +b(options)p FA(,)g(common)g(in)e(GNU)h(utilities,)g(consist)299 +2989 y(of)f(two)g Fr(-)g FA(characters)g(followed)g(by)g(a)g(string)g +(made)g(up)g(of)g(letters,)h(numbers,)f(and)299 3101 +y(hyphens.)34 b(Either)24 b(type)g(of)g(option)g(may)h(be)e(followed)h +(by)g(an)f(ar)n(gument.)34 b(A)24 b(space)299 3213 y(separates)19 +b(a)f(short)h(option)f(fr)n(om)h(its)g(ar)n(guments;)h(either)d(a)i +(space)g(or)g(an)f Fr(=)g FA(separates)299 3325 y(a)23 +b(long)h(option)g(fr)n(om)g(an)f(ar)n(gument.)299 3537 +y(Ther)n(e)c(ar)n(e)h(many)g(ways)g(of)h(parsing)f(command\255line)g +(options.)34 b(The)19 b(most)j(popular)299 3649 y(method)k(is)g +(parsing)g(the)g Fr(argv)f FA(array)g(by)h(hand.)40 b(The)25 +b Fr(getopt\(\))g FA(and)h Fr(getopt_long\(\))299 3761 +y FA(library)40 b(functions)h(pr)n(ovide)g(some)h(assistance)g(for)f +(option)h(parsing.)86 b Fr(getopt\(\))299 3873 y FA(is)38 +b(pr)n(ovided)h(by)f(many)f(Unix)h(implementations,)j(but)d(it)f +(supports)j(only)d(short)299 3985 y(options.)d(The)22 +b Fr(getopt_long\(\))g FA(function)g(is)h(available)e(on)h(Linux)h(and) +f(allows)h(auto\255)299 4097 y(mated)h(parsing)g(of)f(both)h(short)g +(and)f(long)h(options.)299 4309 y(A)33 b(library)f(called)h(popt)h +(exists)g(speci\002cally)f(for)g(option)g(parsing.)62 +b(It)34 b(includes)e(a)299 4421 y(number)22 b(of)i(advantages)g(over)f +(the)g Fr(getopt\(\))g FA(functions.)3232 4699 y Ft(445)p +eop +%%Page: 446 2 +446 469 bop -187 -116 a Ft(446)118 b FL(Chapter)29 b(24)83 +b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 +4 v 128 83 a FA(\225)100 b(It)33 b(does)h(not)f(make)h(use)f(of)g +(global)g(variables,)h(which)e(allows)h(it)g(to)h(be)f(used)286 +195 y(when)22 b(multiple)h(passes)j(ar)n(e)d(needed)g(to)h(parse)g +Fr(argv)p FA(.)128 407 y(\225)100 b(It)22 b(can)h(parse)f(an)g +(arbitrary)f(array)g(of)i Fr(argv)p FA(\255style)f(elements.)33 +b(This)22 b(allows)g(popt)286 519 y(to)i(be)f(used)h(for)g(parsing)f +(command\255line\255style)h(strings)g(fr)n(om)g(any)f(sour)n(ce.)128 +731 y(\225)100 b(It)30 b(pr)n(ovides)h(a)f(standar)n(d)g(method)g(of)g +(option)g(aliasing.)52 b(Pr)n(ograms)30 b(that)g(use)286 +843 y(popt)c(can)f(easily)g(allow)f(users)h(to)g(add)h(new)e +(command\255line)h(options,)h(which)286 955 y(ar)n(e)k(de\002ned)g(as)h +(combinations)f(of)h(alr)n(eady\255existing)e(options.)55 +b(This)30 b(allows)286 1067 y(the)h(user)h(to)h(de\002ne)e(new)-9 +b(,)33 b(complex)h(behaviors)d(or)h(change)f(the)h(default)f(be\255)286 +1179 y(haviors)23 b(of)h(existing)f(options.)111 1453 +y(Like)h Fr(getopt_long\(\))p FA(,)e(the)i(popt)h(library)d(supports)j +(short)f(and)g(long)f(style)h(options.)111 1665 y(The)29 +b(popt)j(library)d(is)h(highly)f(portable)h(and)g(should)g(work)f(on)h +(any)g(POSIX)g(plat\255)111 1777 y(form.)68 b(The)34 +b(latest)h(version)g(is)g(always)g(available)e(fr)n(om)i(ftp:/)-14 +b(/ftp.r)n(edhat.com/)111 1889 y(pub/r)n(edhat/code/popt/)111 +2100 y(It)33 b(may)f(be)g(r)n(edistributed)f(under)g(either)g(the)h +(GNU)g(General)f(Public)g(License)h(or)111 2213 y(the)24 +b(GNU)g(Library)f(General)f(Public)h(License,)h(at)f(the)h(distributor) +7 b('s)23 b(discr)n(etion.)-187 2541 y Fk(24.1)131 b(Basic)40 +b(popt)j(Usage)p -187 2626 3413 5 v 111 2888 a Fu(24.1.1)59 +b(The)39 b(Option)h(Table)111 3099 y FA(Applications)d(pr)n(ovide)f +(popt)g(with)f(information)f(on)h(their)f(command\255line)h(op\255)111 +3211 y(tions)24 b(thr)n(ough)f(an)g(array)g(of)h Fr(struct)42 +b(poptOption)23 b FA(str)o(uctur)n(es.)111 3417 y Fq(#include)35 +b(<popt.h>)111 3633 y(struct)h(poptOption)e({)258 3741 +y(const)i(char)g(*)g(longName;)f(/*)h(may)g(be)h(NULL)e(*/)258 +3849 y(char)h(shortName;)292 b(/*)36 b(may)g(be)h('\\0')e(*/)258 +3957 y(int)h(argInfo;)258 4065 y(void)g(*)h(arg;)440 +b(/*)36 b(depends)f(on)i(argInfo)e(*/)258 4172 y(int)h(val;)551 +b(/*)36 b(0)h(means)e(do)i(not)f(return,)f(just)h(update)f(flag)h(*/) +111 4280 y(};)p eop +%%Page: 447 3 +447 470 bop 2237 -116 a Fv(24.1)82 b(Basic)23 b(popt)f(Usage)119 +b Ft(447)p 0 -76 3413 4 v 446 71 a FL(Table)27 b(24.1)84 +b Fv(popt)22 b(Argument)i(Types)p 446 103 2820 4 v 446 +120 4 17 v 1167 120 V 2775 120 V 3262 120 V 446 219 4 +100 v 532 190 a Fs(V)-9 b(alue)p 1167 219 V 502 w(Description)p +2775 219 V 1160 w Fq(arg)20 b Fs(T)-7 b(ype)p 3262 219 +V 446 236 4 17 v 1167 236 V 2775 236 V 3262 236 V 446 +239 2820 4 v 446 246 4 7 v 1167 246 V 2775 246 V 3262 +246 V 446 249 2820 4 v 446 266 4 17 v 1167 266 V 2775 +266 V 3262 266 V 446 365 4 100 v 532 336 a Fq(POPT_ARG_NONE)p +1167 365 V 240 w Fw(No)21 b(ar)o(gument)f(is)h(expected)p +2775 365 V 688 w Fq(int)p 3262 365 V 446 465 V 532 436 +a(POPT_ARG_STRING)p 1167 465 V 166 w Fw(No)g(type)g(checking)g(should)h +(be)e(performed)p 2775 465 V 169 w Fq(char)35 b(*)p 3262 +465 V 446 565 V 532 535 a(POPT_ARG_INT)p 1167 565 V 277 +w Fw(An)21 b(integer)f(ar)o(gument)h(is)g(expected)p +2775 565 V 410 w Fq(int)p 3262 565 V 446 664 V 532 635 +a(POPT_ARG_LONG)p 1167 664 V 240 w Fw(A)f(long)i(integer)f(is)g +(expected)p 2775 664 V 652 w Fq(long)p 3262 664 V 446 +681 4 17 v 1167 681 V 2775 681 V 3262 681 V 446 684 2820 +4 v 299 933 a FA(Each)34 b(member)f(of)g(the)g(table)g(de\002nes)g(a)h +(single)f(option)g(that)g(may)h(be)f(passed)i(to)299 +1045 y(the)29 b(pr)n(ogram.)50 b(Long)30 b(and)e(short)i(options)f(ar)n +(e)g(consider)n(ed)h(a)f(single)f(option)i(that)299 1157 +y(may)k(occur)g(in)g(two)g(dif)n(fer)n(ent)f(forms.)65 +b(The)33 b(\002rst)h(two)g(members,)i Fr(longName)e FA(and)299 +1269 y Fr(shortName)p FA(,)25 b(de\002ne)g(the)g(names)h(of)f(the)g +(option;)i(the)e(\002rst)h(is)g(a)g(long)f(name,)g(and)h(the)299 +1381 y(latter)d(is)h(a)g(single)f(character)-7 b(.)299 +1593 y(The)21 b Fr(argInfo)g FA(member)h(tells)g(popt)h(what)e(type)h +(of)g(ar)n(gument)g(is)g(expected)h(after)e(the)299 1705 +y(ar)n(gument.)33 b(If)23 b(no)g(option)g(is)g(expected,)h +Fr(POPT_ARG_NONE)d FA(should)i(be)g(used.)34 b(The)22 +b(r)n(est)299 1817 y(of)i(the)f(valid)g(values)h(ar)n(e)f(summarized)g +(in)h(T)-9 b(able)22 b(24.1.)2355 1783 y Fx(1)299 2029 +y FA(The)j(next)g(element,)g Fr(arg)p FA(,)h(allows)f(popt)i(to)f +(automatically)f(update)h(pr)n(ogram)g(vari\255)299 2141 +y(ables)21 b(when)g(the)g(option)h(is)g(used.)34 b(If)22 +b Fr(arg)f FA(is)h Fr(NULL)p FA(,)g(it)f(is)i(ignor)n(ed)e(and)h(popt)g +(takes)h(no)299 2253 y(special)18 b(action.)33 b(Otherwise,)18 +b(it)g(should)g(point)h(to)f(a)g(variable)f(of)h(the)g(type)g +(indicated)299 2365 y(in)23 b(the)g(right\255most)h(column)g(of)g(T)-9 +b(able)22 b(24.1.)299 2577 y(If)42 b(the)f(option)g(takes)h(no)g(ar)n +(gument)e(\()p Fr(argInfo)h FA(is)h Fr(POPT_ARG_NONE)p +FA(\),)e(the)h(variable)299 2689 y(pointed)21 b(to)g(by)f +Fr(arg)h FA(is)g(set)g(to)g(1)f(when)f(the)h(option)h(is)g(used.)34 +b(If)20 b(the)g(option)h(does)h(take)299 2801 y(an)16 +b(ar)n(gument,)i(the)f(variable)e(that)i Fr(arg)g FA(points)h(to)g(is)f +(updated)h(to)f(r)n(e\003ect)g(the)g(value)f(of)299 2913 +y(the)23 b(ar)n(gument.)34 b(Any)24 b(string)f(is)i(acceptable)e(for)h +Fr(POPT_ARG_STRING)e FA(ar)n(guments,)i(but)299 3025 +y Fr(POPT_ARG_INT)19 b FA(and)h Fr(POPT_ARG_LONG)e FA(ar)n(guments)i +(ar)n(e)g(converted)g(to)g(the)g(appr)n(opriate)299 3137 +y(type,)k(and)f(an)h(err)n(or)f(is)h(r)n(eturned)f(if)g(the)g +(conversion)h(fails.)299 3349 y(The)33 b(\002nal)g(option,)38 +b Fr(val)p FA(,)e(is)f(the)f(value)f(popt's)j(parsing)e(function)f +(should)i(r)n(eturn)299 3461 y(when)26 b(the)h(option)h(is)g(encounter) +n(ed.)45 b(If)27 b(it)h(is)g(0,)g(the)f(parsing)h(function)f(parses)h +(the)299 3573 y(next)23 b(command\255line)h(ar)n(gument)f(rather)f +(than)h(r)n(eturn.)299 3785 y(The)c(\002nal)g(str)o(uctur)n(e)h(in)f +(the)h(table)f(should)h(have)f(all)g(the)h(pointer)g(values)f(set)h(to) +h Fr(NULL)299 3897 y FA(and)i(all)h(the)f(arithmetic)g(values)g(set)h +(to)g(0,)g(marking)f(the)g(end)h(of)g(the)f(table.)p +299 4234 897 5 v 299 4315 a Fw(1.)29 b Fq(getopt\(\))g +Fw(connoisseurs)j(will)f(note)g(that)f Fq(argInfo)f Fw(is)i(the)f(only) +i(\002eld)e(of)h Fq(struct)46 b(poptOption)391 4407 y +Fw(that)29 b(is)g(not)g(dir)o(ectly)f(analogous)i(to)f(a)f(\002eld)h +(in)g(the)g Fq(getopt_long\(\))d Fw(ar)o(gument)i(table.)53 +b(The)391 4498 y(similarity)22 b(between)e(the)h(two)g(allows)h(for)e +(easy)h(transitions)h(fr)o(om)e Fq(getopt_long\(\))e +Fw(to)j(popt.)p eop +%%Page: 448 4 +448 471 bop -187 -116 a Ft(448)118 b FL(Chapter)29 b(24)83 +b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 +4 v 111 85 a Fu(24.1.2)59 b(Creating)39 b(a)f(Context)111 +297 y FA(popt)31 b(can)f(interleave)e(the)h(parsing)g(of)h(multiple)g +(command\255line)f(sets.)53 b(It)30 b(allows)111 409 +y(this)e(by)g(keeping)g(all)f(the)g(state)i(information)d(for)i(a)g +(particular)f(set)h(of)g(command\255)111 521 y(line)22 +b(ar)n(guments)h(in)f(a)h Fr(poptContext)e FA(data)i(str)o(uctur)n(e,)g +(an)f(opaque)h(type)g(that)g(should)111 633 y(not)h(be)f(modi\002ed)i +(outside)f(the)f(popt)i(library)-11 b(.)111 845 y(New)24 +b(popt)h(contexts)g(ar)n(e)e(cr)n(eated)h(by)g Fr(poptGetContext\(\))p +FA(.)111 1051 y Fq(#include)35 b(<popt.h>)111 1266 y(poptContext)g +(poptGetContext\(char)d(*)k(name,)g(int)g(argc,)f(char)h(**)h(argv,) +1104 1374 y(struct)e(poptOption)g(*)h(options,)f(int)h(flags\);)111 +1586 y FA(The)26 b(\002rst)h(parameter)-7 b(,)26 b Fr(name)p +FA(,)h(is)g(used)g(only)g(for)f(alias)h(handling)e(\(discussed)j +(later\).)111 1698 y(It)h(should)f(be)f(the)h(name)f(of)h(the)g +(application)g(whose)f(options)i(ar)n(e)e(being)g(parsed,)111 +1810 y(or)e(should)f(be)g Fr(NULL)g FA(if)g(no)g(option)h(aliasing)e +(is)i(desir)n(ed.)36 b(The)24 b(next)g(two)g(ar)n(guments)111 +1922 y(specify)g(the)f(command\255line)g(ar)n(guments)g(to)h(parse.)34 +b(These)22 b(ar)n(e)h(generally)f(passed)111 2034 y(to)37 +b Fr(poptGetContext\(\))e FA(exactly)i(as)g(they)f(wer)n(e)g(passed)i +(to)f(the)f(pr)n(ogram's)h Fr(main\(\))111 2146 y FA(function.)50 +b(The)29 b Fr(options)f FA(parameter)h(points)h(to)g(the)f(table)f(of)i +(command\255line)e(op\255)111 2259 y(tions,)33 b(which)d(was)h +(described)h(in)e(the)h(pr)n(evious)g(section.)56 b(The)30 +b(\002nal)g(parameter)-7 b(,)111 2371 y Fr(flags)p FA(,)21 +b(is)g(not)g(curr)n(ently)e(used)i(but)g(should)f(always)g(be)h +(speci\002ed)g(as)g(0)f(for)h(compat\255)111 2483 y(ibility)i(with)g +(futur)n(e)g(versions)h(of)g(the)f(popt)i(library)-11 +b(.)111 2694 y(A)26 b Fr(poptContext)f FA(keeps)h(track)g(of)g(which)e +(options)j(have)d(alr)n(eady)h(been)g(parsed)h(and)111 +2807 y(which)h(r)n(emain,)i(among)f(other)f(things.)47 +b(If)28 b(a)g(pr)n(ogram)g(wishes)g(to)h(r)n(estart)f(option)111 +2919 y(pr)n(ocessing)23 b(of)f(a)g(set)g(of)g(ar)n(guments,)g(it)f(can) +h(r)n(eset)g(the)f Fr(poptContext)g FA(by)h(passing)g(the)111 +3031 y(context)j(as)f(the)f(sole)h(ar)n(gument)f(to)h +Fr(poptResetContext\(\))p FA(.)111 3242 y(When)j(ar)n(gument)g(pr)n +(ocessing)h(is)g(complete,)h(the)d(pr)n(ocess)j(should)f(fr)n(ee)e(the) +h Fr(popt-)111 3354 y(Context)22 b FA(as)h(it)f(contains)h(dynamically) +f(allocated)g(components.)35 b(The)21 b Fr(poptFreeCon-)111 +3467 y(text\(\))32 b FA(function)g(takes)h(a)f Fr(poptContext)g +FA(as)h(its)g(sole)g(ar)n(gument)e(and)i(fr)n(ees)f(the)g(r)n(e\255)111 +3579 y(sour)n(ces)25 b(the)e(context)i(is)f(using.)111 +3790 y(Her)n(e)g(ar)n(e)f(the)h(pr)n(ototypes)h(of)f(both)f +Fr(poptResetContext\(\))f FA(and)i Fr(poptFreeContext\(\))p +FA(.)111 3996 y Fq(#include)35 b(<popt.h>)111 4212 y(void)h +(poptFreeContext\(poptContext)31 b(con\);)111 4320 y(void)36 +b(poptResetContext\(poptContext)30 b(con\);)p eop +%%Page: 449 5 +449 472 bop 2237 -116 a Fv(24.1)82 b(Basic)23 b(popt)f(Usage)119 +b Ft(449)p 0 -76 3413 4 v 299 85 a Fu(24.1.3)58 b(Parsing)39 +b(the)h(Command)e(Line)299 297 y FA(After)26 b(an)g(application)h(has)g +(cr)n(eated)f(a)h Fr(poptContext)p FA(,)f(it)h(may)g(begin)e(parsing)i +(ar)n(gu\255)299 409 y(ments.)34 b(The)23 b Fr(poptGetNextOpt\(\))f +FA(performs)i(the)g(actual)f(ar)n(gument)g(parsing.)299 +615 y Fq(#include)35 b(<popt.h>)299 831 y(int)h +(poptGetNextOpt\(poptContext)31 b(con\);)299 1042 y FA(T)-9 +b(aking)44 b(the)h(context)h(as)g(its)f(sole)h(ar)n(gument,)k(this)45 +b(function)g(parses)h(the)f(next)299 1154 y(command\255line)34 +b(ar)n(gument)f(found.)65 b(After)34 b(\002nding)f(the)h(next)g(ar)n +(gument)f(in)h(the)299 1266 y(option)29 b(table,)g(the)f(function)g +(\002lls)g(in)g(the)g(object)i(pointed)e(to)h(by)g(the)f(option)h +(table)299 1379 y(entry's)18 b Fr(arg)g FA(pointer)h(if)f(it)h(is)g +(not)f Fr(NULL)p FA(.)g(If)h(the)f Fr(val)h FA(entry)f(for)g(the)g +(option)h(is)g(non\2550,)g(the)299 1491 y(function)h(then)g(r)n(eturns) +g(that)g(value.)32 b(Otherwise,)20 b Fr(poptGetNextOpt\(\))f +FA(continues)i(on)299 1603 y(to)j(the)f(next)h(ar)n(gument.)299 +1814 y Fr(poptGetNextOpt\(\))g FA(r)n(eturns)h(\2551)g(when)f(the)h +(\002nal)g(ar)n(gument)g(has)h(been)e(parsed,)j(and)299 +1926 y(other)20 b(negative)f(values)h(when)f(err)n(ors)i(occur)-7 +b(.)33 b(This)20 b(makes)h(it)f(a)h(good)g(idea)f(to)h(keep)299 +2039 y(the)i Fr(val)h FA(elements)f(in)g(the)h(options)g(table)f(gr)n +(eater)g(than)g(0.)299 2250 y(If)48 b(all)f(of)h(the)f(command\255line) +h(options)g(ar)n(e)g(handled)f(thr)n(ough)g Fr(arg)g +FA(pointers,)299 2362 y(command\255line)23 b(parsing)h(is)g(r)n(educed) +g(to)g(the)f(following)g(line)g(of)g(code:)299 2568 y +Fq(rc)36 b(=)h(poptGetNextOpt\(poptcon\);)299 2780 y +FA(Many)21 b(applications)g(r)n(equir)n(e)g(mor)n(e)g(complex)h +(command\255line)f(parsing)g(than)f(this,)299 2892 y(however)-7 +b(,)22 b(and)i(use)f(the)g(following)g(str)o(uctur)n(e.)299 +3097 y Fq(while)35 b(\(\(rc)h(=)h(poptGetNextOpt\(poptcon\)\))31 +b(>)36 b(0\))h({)446 3205 y(switch)e(\(rc\))h({)593 3313 +y(/*)g(specific)f(arguments)g(are)h(handled)f(here)h(*/)446 +3421 y(})299 3529 y(})299 3741 y FA(When)f(r)n(eturned)g(options)i(ar)n +(e)f(handled,)i(the)e(application)g(needs)g(to)g(know)g(the)299 +3853 y(value)21 b(of)h(any)g(ar)n(guments)g(that)g(wer)n(e)f +(speci\002ed)i(after)f(the)g(option.)34 b(Ther)n(e)20 +b(ar)n(e)i(two)299 3965 y(ways)d(to)g(discover)g(them.)32 +b(One)18 b(is)i(to)f(ask)g(popt)g(to)h(\002ll)e(in)g(a)g(variable)f +(with)h(the)g(value)299 4077 y(of)28 b(the)h(option)f(thr)n(ough)g(the) +g(option)h(table's)f Fr(arg)g FA(elements.)48 b(The)28 +b(other)g(is)h(to)f(use)299 4189 y Fr(poptGetOptArg\(\))p +FA(.)p eop +%%Page: 450 6 +450 473 bop -187 -116 a Ft(450)118 b FL(Chapter)29 b(24)83 +b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 +4 v 111 170 a Fq(#include)35 b(<popt.h>)111 386 y(char)h(*)h +(poptGetOptArg\(poptContext)31 b(con\);)111 598 y FA(This)c(function)f +(r)n(eturns)h(the)g(ar)n(gument)f(given)g(for)h(the)g(\002nal)f(option) +i(r)n(eturned)e(by)111 710 y Fr(poptGetNextOpt\(\))p +FA(,)c(or)i(it)g(r)n(eturns)f Fr(NULL)g FA(if)h(no)f(ar)n(gument)g(was) +h(speci\002ed.)111 1073 y Fu(24.1.4)59 b(Leftover)38 +b(Arguments)111 1285 y FA(Many)24 b(applications)g(take)f(an)h +(arbitrary)e(number)g(of)i(command\255line)f(ar)n(guments,)111 +1397 y(such)j(as)g(a)g(list)g(of)g(\002le)f(names.)40 +b(When)25 b(popt)i(encounters)e(an)g(ar)n(gument)g(that)g(does)111 +1509 y(not)k(begin)f(with)g(a)h Fr(-)p FA(,)h(it)f(assumes)h(it)f(is)g +(such)g(an)f(ar)n(gument)g(and)h(adds)h(it)f(to)g(a)g(list)111 +1621 y(of)i(leftover)f(ar)n(guments.)55 b(Thr)n(ee)30 +b(functions)g(allow)g(applications)h(to)h(access)g(such)111 +1733 y(ar)n(guments:)111 2007 y Fr(char)43 b(*)g +(poptGetArg\(poptContext)d(con\);)411 2119 y FA(This)35 +b(function)f(r)n(eturns)g(the)g(next)h(leftover)f(ar)n(gument)g(and)g +(marks)i(it)e(as)411 2231 y(pr)n(ocessed.)111 2443 y +Fr(char)43 b(*)g(poptPeekArg\(poptContext)d(con\);)411 +2555 y FA(The)15 b(next)h(leftover)f(ar)n(gument)g(is)i(r)n(eturned)d +(but)i(not)g(marked)g(as)g(pr)n(ocessed.)411 2667 y(This)39 +b(allows)g(an)f(application)h(to)h(look)f(ahead)g(into)g(the)f(ar)n +(gument)h(list,)411 2779 y(without)23 b(modifying)h(the)f(list.)111 +2991 y Fr(char)43 b(**)f(poptGetArgs\(poptContext)f(con\);)411 +3103 y FA(All)16 b(the)g(leftover)f(ar)n(guments)g(ar)n(e)h(r)n +(eturned)e(in)i(a)f(manner)g(identical)g(to)h Fr(argv)p +FA(.)411 3215 y(The)j(\002nal)g(element)g(in)g(the)g(r)n(eturned)g +(array)g(points)h(to)g Fr(NULL)p FA(,)f(indicating)g(the)411 +3327 y(end)24 b(of)g(the)f(ar)n(guments.)-187 3680 y +Fk(24.2)131 b(Error)41 b(Handling)p -187 3765 3413 5 +v 111 4027 a FA(All)29 b(of)g(the)g(popt)h(functions)e(that)h(can)g(r)n +(eturn)e(err)n(ors)i(r)n(eturn)f(integers.)49 b(When)28 +b(an)111 4139 y(err)n(or)d(occurs,)i(a)e(negative)f(err)n(or)h(code)h +(is)f(r)n(eturned.)38 b(T)-9 b(able)24 b(24.2)h(summarizes)g(the)111 +4251 y(err)n(or)f(codes)g(that)g(occur)-7 b(.)34 b(Her)n(e)24 +b(is)g(a)g(mor)n(e)g(detailed)f(discussion)i(of)f(each)f(err)n(or)-7 +b(.)p eop +%%Page: 451 7 +451 474 bop 2329 -116 a Fv(24.2)82 b(Error)23 b(Handling)118 +b Ft(451)p 0 -76 3413 4 v 421 71 a FL(Table)27 b(24.2)84 +b Fv(popt)22 b(Errors)p 421 103 2870 4 v 421 120 4 17 +v 1399 120 V 3287 120 V 421 219 4 100 v 507 190 a Fs(Error)p +1399 219 V 785 w(Description)p 3287 219 V 421 236 4 17 +v 1399 236 V 3287 236 V 421 239 2870 4 v 421 246 4 7 +v 1399 246 V 3287 246 V 421 249 2870 4 v 421 266 4 17 +v 1399 266 V 3287 266 V 421 365 4 100 v 507 336 a Fq(POPT_ERROR_NOARG)p +1399 365 V 386 w Fw(An)f(ar)o(gument)f(is)h(missing)h(for)f(an)g +(option.)p 3287 365 V 421 465 V 507 436 a Fq(POPT_ERROR_BADOPT)p +1399 465 V 349 w Fw(An)g(option's)h(ar)o(gument)e(could)h(not)h(be)e +(parsed.)p 3287 465 V 421 565 V 507 535 a Fq(POPT_ERROR_OPTSTOODEEP)p +1399 565 V 164 w Fw(Option)i(aliasing)f(is)g(nested)g(too)g(deeply)-9 +b(.)p 3287 565 V 421 664 V 507 635 a Fq(POPT_ERROR_BADQUOTE)p +1399 664 V 275 w Fw(Quotations)22 b(do)f(not)h(match.)p +3287 664 V 421 764 V 507 735 a Fq(POPT_ERROR_BADNUMBER)p +1399 764 V 238 w Fw(An)f(option)h(could)f(not)g(be)g(converted)f(to)h +(a)f(number)-6 b(.)p 3287 764 V 421 863 V 507 834 a Fq +(POPT_ERROR_OVERFLOW)p 1399 863 V 275 w Fw(A)21 b(given)g(number)g(was) +f(too)i(big)f(or)g(too)g(small.)p 3287 863 V 421 880 +4 17 v 1399 880 V 3287 880 V 421 883 2870 4 v 299 1132 +a Fr(POPT_ERROR_NOARG)599 1244 y FA(An)c(option)h(that)f(r)n(equir)n +(es)h(an)f(ar)n(gument)f(was)i(speci\002ed)g(on)f(the)g(command)599 +1357 y(line,)40 b(but)d(no)g(ar)n(gument)g(was)g(given.)75 +b(This)37 b(can)h(be)f(r)n(eturned)f(only)h(by)599 1469 +y Fr(poptGetNextOpt\(\))p FA(.)299 1680 y Fr(POPT_ERROR_BADOPT)599 +1792 y FA(An)26 b(option)g(was)h(speci\002ed)f(in)g Fr(argv)g +FA(but)g(is)g(not)g(in)g(the)g(option)g(table.)41 b(This)599 +1905 y(err)n(or)23 b(can)h(be)f(r)n(eturned)g(only)g(fr)n(om)h +Fr(poptGetNextOpt\(\))p FA(.)299 2116 y Fr(POPT_ERROR_OPTSTOODEEP)599 +2228 y FA(A)f(set)h(of)f(option)g(aliases)g(is)h(nested)f(too)h(deeply) +-11 b(.)34 b(Curr)n(ently)-11 b(,)22 b(popt)i(follows)599 +2340 y(options)30 b(only)f(10)g(levels)g(to)h(pr)n(event)f(in\002nite)f +(r)n(ecursion.)50 b(Only)29 b Fr(poptGet-)599 2452 y(NextOpt\(\))23 +b FA(can)g(r)n(eturn)g(this)h(err)n(or)-7 b(.)299 2664 +y Fr(POPT_ERROR_BADQUOTE)599 2776 y FA(A)15 b(parsed)g(string)g(has)g +(a)g(quotation)g(mismatch)g(\(such)g(as)g(a)g(single)g(quotation)599 +2888 y(mark\).)62 b Fr(poptParseArgvString\(\))p FA(,)33 +b Fr(poptReadConfigFile\(\))p FA(,)g(or)g Fr(poptReadDe-)599 +3000 y(faultConfig\(\))22 b FA(can)i(r)n(eturn)e(this)i(err)n(or)-7 +b(.)299 3212 y Fr(POPT_ERROR_BADNUMBER)599 3324 y FA(A)38 +b(conversion)g(fr)n(om)g(a)g(string)g(to)h(a)f(number)f(\()p +Fr(int)h FA(or)g Fr(long)p FA(\))f(failed)h(due)599 3436 +y(to)28 b(the)g(string)g(containing)f(nonnumeric)f(characters.)47 +b(This)28 b(occurs)h(when)599 3548 y Fr(poptGetNextOpt\(\))c +FA(is)j(pr)n(ocessing)g(an)f(ar)n(gument)f(of)h(type)g +Fr(POPT_ARG_INT)f FA(or)599 3660 y Fr(POPT_ARG_LONG)p +FA(.)299 3872 y Fr(POPT_ERROR_OVERFLOW)599 3984 y FA(A)g +(string\255to\255number)f(conversion)g(failed)g(because)h(the)f(number) +g(was)h(too)599 4096 y(lar)n(ge)41 b(or)h(too)g(small.)88 +b(Like)42 b Fr(POPT_ERROR_BADNUMBER)p FA(,)d(this)j(err)n(or)f(can)h +(oc\255)599 4208 y(cur)28 b(only)h(when)e Fr(poptGetNextOpt\(\))g +FA(is)i(pr)n(ocessing)h(an)e(ar)n(gument)g(of)h(type)599 +4320 y Fr(POPT_ARG_INT)22 b FA(or)i Fr(POPT_ARG_LONG)p +FA(.)p eop +%%Page: 452 8 +452 475 bop -187 -116 a Ft(452)118 b FL(Chapter)29 b(24)83 +b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 +4 v 111 83 a Fr(POPT_ERROR_ERRNO)411 195 y FA(A)36 b(system)g(call)f(r) +n(eturned)f(with)h(an)f(err)n(or)-7 b(,)37 b(and)e Fr(errno)g +FA(still)g(contains)g(the)411 307 y(err)n(or)23 b(fr)n(om)h(the)f +(system)i(call.)34 b(Both)24 b Fr(poptReadConfigFile\(\))d +FA(and)j Fr(poptRead-)411 419 y(DefaultConfig\(\))f FA(can)g(r)n(eturn) +g(this)h(err)n(or)-7 b(.)111 656 y(T)e(wo)38 b(functions)f(ar)n(e)h +(available)e(to)i(make)g(it)f(easy)h(for)g(applications)g(to)g(pr)n +(ovide)111 768 y(good)25 b(err)n(or)e(messages.)111 1042 +y Fr(const)43 b(char)f(*)h(poptStrerror\(const)e(int)h(error\);)411 +1154 y FA(This)18 b(function)g(takes)h(a)f(popt)h(err)n(or)f(code)h +(and)g(r)n(eturns)e(a)i(string)f(describing)411 1266 +y(the)24 b(err)n(or)-7 b(,)23 b(just)h(as)g(with)f(the)g(standar)n(d)i +Fr(strerror\(\))d FA(function.)111 1478 y Fr(char)43 +b(*)g(poptBadOption\(poptContext)d(con,)i(int)h(flags\);)411 +1590 y FA(If)32 b(an)e(err)n(or)g(occurr)n(ed)i(during)e +Fr(poptGetNextOpt\(\))p FA(,)h(this)g(function)g(r)n(eturns)411 +1702 y(the)38 b(option)g(that)g(caused)h(the)e(err)n(or)-7 +b(.)77 b(If)38 b(the)f Fr(flags)h FA(ar)n(gument)f(is)i(set)f(to)411 +1814 y Fr(POPT_BADOPTION_NOALIAS)p FA(,)e(the)i(outermost)h(option)f +(is)h(r)n(eturned.)76 b(Other)n(\255)411 1926 y(wise,)31 +b Fr(flags)e FA(should)h(be)f(0,)i(and)e(the)g(option)h(that)f(is)h(r)n +(eturned)f(may)h(have)411 2038 y(been)23 b(speci\002ed)i(thr)n(ough)d +(an)i(alias.)111 2275 y(These)16 b(two)h(functions)f(make)h(popt)g(err) +n(or)f(handling)g(trivial)f(for)i(most)h(applications.)111 +2387 y(When)26 b(an)f(err)n(or)g(is)h(detected)g(fr)n(om)g(most)h(of)f +(the)f(functions,)h(an)f(err)n(or)g(message)h(is)111 +2499 y(printed)35 b(along)g(with)g(the)g(err)n(or)f(string)i(fr)n(om)f +Fr(poptStrerror\(\))p FA(.)68 b(When)35 b(an)f(err)n(or)111 +2611 y(occurs)26 b(during)e(ar)n(gument)h(parsing,)g(code)g(similiar)g +(to)g(the)g(following)f(displays)i(a)111 2723 y(useful)d(err)n(or)g +(message.)111 2929 y Fq(fprintf\(stderr,)34 b("\045s:)h(\045s\\n",)405 +3037 y(poptBadOption\(optCon,)d(POPT_BADOPTION_NOALIAS\),)405 +3144 y(poptStrerror\(rc\)\);)-187 3475 y Fk(24.3)131 +b(Option)42 b(Aliasing)p -187 3560 3413 5 v 111 3822 +a FA(One)21 b(of)h(the)f(primary)g(bene\002ts)f(of)i(using)f(popt)h +(over)f Fr(getopt\(\))g FA(is)h(the)f(ability)f(to)i(use)111 +3934 y(option)30 b(aliasing.)49 b(This)29 b(lets)h(the)e(user)h +(specify)h(options)g(that)f(popt)h(expands)g(into)111 +4046 y(other)22 b(options)g(when)f(they)h(ar)n(e)f(speci\002ed.)35 +b(If)22 b(the)f(standar)n(d)i(gr)n(ep)f(pr)n(ogram)h(made)111 +4158 y(use)j(of)g(popt,)h(users)f(could)h(add)f(a)g Fr(--text)f +FA(option)h(that)g(expanded)g(to)g Fr(-i)45 b(-n)g(-E)g(-2)111 +4270 y FA(to)25 b(let)e(them)h(mor)n(e)g(easily)f(\002nd)h(information) +e(in)h(text)h(\002les.)p eop +%%Page: 453 9 +453 476 bop 2298 -116 a Fv(24.3)81 b(Option)22 b(Aliasing)118 +b Ft(453)p 0 -76 3413 4 v 299 85 a Fu(24.3.1)58 b(Specifying)40 +b(Aliases)299 297 y FA(Aliases)18 b(ar)n(e)e(normally)h(speci\002ed)h +(in)f(two)g(places:)32 b(/etc/popt)18 b(and)f(the)g(.popt)h(\002le)f +(in)299 409 y(the)25 b(user)7 b('s)25 b(home)h(dir)n(ectory)f(\(found)g +(thr)n(ough)g(the)g Fr(HOME)g FA(envir)n(onment)f(variable\).)299 +521 y(Both)33 b(\002les)h(have)e(the)h(same)h(format,)h(an)e(arbitrary) +f(number)g(of)h(lines)g(formatted)299 633 y(like)23 b(this:)299 +845 y Fj(appname)42 b Fr(alias)g Fj(newoption)g(expansion)299 +1057 y FA(The)24 b Fj(appname)h FA(is)h(the)f(name)g(of)h(the)f +(application,)h(which)e(must)j(be)e(the)g(same)h(as)g(the)299 +1169 y Fr(name)e FA(parameter)g(passed)i(to)f Fr(poptGetContext\(\))p +FA(.)36 b(This)24 b(allows)g(each)g(\002le)g(to)i(specify)299 +1281 y(aliases)e(for)h(multiple)f(pr)n(ograms.)37 b(The)24 +b Fr(alias)g FA(keywor)n(d)g(speci\002es)i(that)e(an)g(alias)g(is)299 +1393 y(being)h(de\002ned;)i(curr)n(ently)f(popt)h(con\002guration)e +(\002les)i(support)g(only)f(aliases,)h(but)299 1505 y(other)i +(abilities)h(may)g(be)g(added)g(in)g(the)g(futur)n(e.)52 +b(The)29 b(next)h(option)g(is)g(the)g(option)299 1617 +y(that)d(should)h(be)g(aliased,)g(and)g(it)g(may)g(be)f(either)g(a)h +(short)g(or)f(a)h(long)g(option.)46 b(The)299 1729 y(r)n(est)29 +b(of)h(the)e(line)h(speci\002es)h(the)e(expansion)h(for)g(the)g(alias.) +50 b(It)30 b(is)f(parsed)h(similarly)299 1841 y(to)f(a)g(shell)f +(command,)j(which)d(allows)h Fr(\\)p FA(,)h Fr(")p FA(,)g(and)f +Fr(')g FA(to)g(be)g(used)g(for)g(quoting.)49 b(If)29 +b(a)299 1953 y(backslash)22 b(is)g(the)g(\002nal)f(character)g(on)g(a)h +(line,)f(the)h(next)f(line)g(in)h(the)f(\002le)g(is)i(assumed)299 +2066 y(to)28 b(be)f(a)g(logical)g(continuation)f(of)i(the)f(line)f +(containing)h(the)g(backslash,)h(just)g(as)g(in)299 2178 +y(shell.)299 2389 y(The)i(following)g(entry)h(would)f(add)i(a)f +Fr(--text)g FA(option)g(to)h(the)e Fr(grep)h FA(command,)j(as)299 +2501 y(suggested)24 b(at)g(the)f(beginning)f(of)i(this)g(section.)299 +2713 y Fr(grep)42 b(alias)h(--text)f(-i)h(-n)f(-E)h(-2)299 +3068 y Fu(24.3.2)58 b(Enabling)39 b(Aliases)299 3279 +y FA(An)21 b(application)f(must)i(enable)d(alias)h(expansion)h(for)g(a) +f Fr(poptContext)g FA(befor)n(e)g(calling)299 3391 y +Fr(poptGetNextArg\(\))33 b FA(for)i(the)g(\002rst)g(time.)68 +b(Ther)n(e)34 b(ar)n(e)g(thr)n(ee)h(functions)f(that)h(de\002ne)299 +3503 y(aliases)23 b(for)h(a)g(context.)299 3777 y Fr(int)42 +b(poptReadDefaultConfig\(poptContext)e(con,)i(int)h(flags\);)599 +3889 y FA(This)d(function)f(r)n(eads)h(aliases)g(fr)n(om)h(/etc/popt)g +(and)f(the)g(.popt)h(\002le)f(in)599 4002 y(the)29 b(user)7 +b('s)29 b(home)g(dir)n(ectory)-11 b(.)53 b(Curr)n(ently)-11 +b(,)29 b Fr(flags)g FA(should)h(be)f Fr(NULL)p FA(,)g(as)g(it)h(is)599 +4114 y(pr)n(ovided)24 b(only)g(for)f(futur)n(e)g(expansion.)p +eop +%%Page: 454 10 +454 477 bop -187 -116 a Ft(454)118 b FL(Chapter)29 b(24)83 +b Fv(Parsing)23 b(Command-Line)f(Options)p -187 -76 3413 +4 v 111 83 a Fr(int)43 b(poptReadConfigFile\(poptContext)c(con,)k(char) +f(*)h(fn\);)411 195 y FA(The)17 b(\002le)h(speci\002ed)h(by)f +Fr(fn)g FA(is)g(opened)g(and)g(parsed)h(as)f(a)g(popt)h +(con\002guration)411 307 y(\002le.)68 b(This)35 b(allows)f(pr)n(ograms) +i(to)g(use)f(pr)n(ogram\255speci\002c)h(con\002guration)411 +419 y(\002les.)111 631 y Fr(int)43 b(poptAddAlias\(poptContext)d(con,)j +(struct)f(poptAlias)g(alias,)g(int)g(flags\);)411 743 +y FA(Occasionally)-11 b(,)37 b(pr)n(ocesses)f(want)d(to)h(specify)g +(aliases)g(without)f(having)f(to)411 855 y(r)n(ead)24 +b(them)f(fr)n(om)h(a)f(con\002guration)f(\002le.)34 b(This)23 +b(function)f(adds)i(a)g(new)e(alias)411 967 y(to)39 b(a)f(context.)77 +b(The)38 b Fr(flags)f FA(ar)n(gument)h(should)g(be)f(0,)42 +b(as)c(it)g(is)h(curr)n(ently)411 1079 y(r)n(eserved)21 +b(for)g(futur)n(e)e(expansion.)33 b(The)20 b(new)g(alias)h(is)g +(speci\002ed)g(as)h(a)e Fr(struct)411 1191 y(poptAlias)p +FA(,)j(which)g(is)h(de\002ned)f(as:)411 1388 y Fq(struct)36 +b(poptAlias)e({)558 1496 y(char)i(*)h(longName;)439 b(/*)36 +b(may)g(be)g(NULL)g(*/)558 1604 y(char)g(shortName;)476 +b(/*)36 b(may)g(be)g('\\0')g(*/)558 1712 y(int)g(argc;)558 +1820 y(char)g(**)h(argv;)550 b(/*)36 b(must)g(be)g(free\(\)able)f(*/) +411 1927 y(};)411 2139 y FA(The)d(\002rst)h(two)g(elements,)i +Fr(longName)d FA(and)g Fr(shortName)p FA(,)j(specify)e(the)g(option)411 +2251 y(that)23 b(is)g(aliased.)33 b(The)22 b(\002nal)g(two,)h +Fr(argc)f FA(and)g Fr(argv)p FA(,)h(de\002ne)f(the)g(expansion)g(to)411 +2363 y(use)i(when)e(the)i(aliases)f(option)h(is)g(encounter)n(ed.)-187 +2716 y Fk(24.4)131 b(Parsing)41 b(Argument)f(Strings)p +-187 2801 3413 5 v 111 3063 a FA(Although)21 b(popt)i(is)g(usually)e +(used)h(for)f(parsing)h(ar)n(guments)g(alr)n(eady)f(divided)h(into)111 +3175 y(an)e Fr(argv)p FA(\255style)f(array)-11 b(,)20 +b(some)h(pr)n(ograms)g(need)e(to)h(parse)g(strings)h(that)e(ar)n(e)h +(formatted)111 3287 y(identically)30 b(to)g(command)h(lines.)52 +b(T)-9 b(o)30 b(facilitate)f(this,)j(popt)f(pr)n(ovides)g(a)f(function) +111 3399 y(that)f(parses)h(a)g(string)f(into)g(an)g(array)f(of)h +(string,)i(using)e(r)o(ules)g(similiar)g(to)g(normal)111 +3512 y(shell)24 b(parsing.)111 3717 y Fq(#include)35 +b(<popt.h>)111 3933 y(int)h(poptParseArgvString\(char)31 +b(*)37 b(s,)f(int)g(*)h(argcPtr,)e(char)h(***)g(argvPtr\);)111 +4145 y FA(The)19 b(string)h Fr(s)g FA(is)g(parsed)h(into)f(an)f +Fr(argv)p FA(\255style)h(array)-11 b(.)32 b(The)19 b(integer)g(pointed) +h(to)g(by)g(the)111 4257 y(second)33 b(parameter)-7 b(,)32 +b Fr(argcPtr)p FA(,)h(contains)e(the)g(number)g(of)g(elements)g +(parsed,)j(and)111 4369 y(the)c(pointer)h(pointed)f(to)h(by)g(the)f +(\002nal)f(parameter)h(is)h(set)g(to)g(point)g(to)g(the)f(newly)p +eop +%%Page: 455 11 +455 478 bop 2154 -116 a Fv(24.6)82 b(Sample)23 b(Application)115 +b Ft(455)p 0 -76 3413 4 v 299 83 a FA(cr)n(eated)28 b(array)-11 +b(.)45 b(The)27 b(array)g(is)h(dynamically)g(allocated)f(and)h(should)f +(be)h Fr(free\(\))p FA(ed)299 195 y(when)22 b(the)i(application)f(is)h +(\002nished)f(with)g(it.)299 407 y(The)i Fr(argvPtr)h +FA(cr)n(eated)h(by)f Fr(poptParseArgvString\(\))e FA(is)j(suitable)f +(to)h(pass)g(dir)n(ectly)g(to)299 519 y Fr(poptGetContext\(\))p +FA(.)0 838 y Fk(24.5)132 b(Handling)41 b(Extra)f(Arguments)p +0 923 3413 5 v 299 1185 a FA(Some)33 b(applications)f(implement)h(the)f +(equivalent)e(of)j(option)f(aliasing)g(but)g(need)299 +1297 y(to)39 b(do)h(so)g(thr)n(ough)e(special)i(logic.)80 +b(The)38 b Fr(poptStuffArgs\(\))g FA(function)g(allows)h(an)299 +1409 y(application)24 b(to)g(insert)f(new)g(ar)n(guments)g(into)h(the)f +(curr)n(ent)g Fr(poptContext)p FA(.)299 1615 y Fq(#include)35 +b(<popt.h>)299 1831 y(int)h(poptStuffArgs\(poptContext)31 +b(con,)36 b(char)f(**)i(argv\);)299 2042 y FA(The)k(passed)j +Fr(argv)e FA(must)h(have)f(a)h Fr(NULL)f FA(pointer)g(as)h(its)g +(\002nal)e(element.)90 b(When)299 2154 y Fr(poptGetNextOpt\(\))39 +b FA(is)j(next)f(called,)k(the)c(\223stuf)n(fed\224)f(ar)n(guments)h +(ar)n(e)g(the)g(\002rst)g(to)299 2266 y(be)g(parsed.)87 +b(popt)43 b(r)n(eturns)e(to)g(the)g(normal)g(ar)n(guments)g(once)g(all) +g(the)g(stuf)n(fed)299 2378 y(ar)n(guments)23 b(have)g(been)g +(exhausted.)0 2707 y Fk(24.6)132 b(Sample)41 b(Application)p +0 2792 V 299 3054 a FA(Robin,)28 b(the)g(sample)g(application)g(on)g +(pages)h(274\226281)d(of)i(Chapter)f(15,)i(uses)f(popt)299 +3166 y(for)36 b(its)i(ar)n(gument)e(parsing.)73 b(It)37 +b(pr)n(ovides)h(a)e(good)i(example)f(of)g(how)f(the)g(popt)299 +3278 y(library)22 b(is)i(generally)f(used.)299 3489 y(RPM,)31 +b(a)g(popular)f(Linux)h(package)g(management)f(pr)n(ogram,)k(makes)d +(heavy)f(use)299 3602 y(of)23 b(popt's)g(featur)n(es.)33 +b(Many)23 b(of)g(its)g(command\255line)f(ar)n(guments)g(ar)n(e)g +(implemented)299 3714 y(thr)n(ough)30 b(popt)i(aliases,)g(which)e +(makes)h(RPM)g(an)f(excellent)g(example)h(of)g(how)f(to)299 +3826 y(take)36 b(advantage)g(of)h(the)f(popt)i(library)-11 +b(.)73 b(For)37 b(mor)n(e)g(information)e(on)i(RPM,)f(see)299 +3938 y(http:/)-14 b(/www)-9 b(.rpm.or)n(g)p eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF
diff --git a/popt-1.16/popt.spec.in b/popt-1.16/popt.spec.in new file mode 100644 index 0000000..3ed71ba --- /dev/null +++ b/popt-1.16/popt.spec.in
@@ -0,0 +1,82 @@ +%{expand:%%global _pkgconfigdir %{_libdir}/pkgconfig} +%define _libdir /%{_lib} + +Summary: A C library for parsing command line parameters. +Name: popt +Version: @VERSION@ +Release: 1 +License: X Consortium +Group: System Environment/Libraries +Source: http://rpm5.org/files/popt/%{name}-%{version}.tar.gz +BuildRequires: gettext +BuildRoot: %{_tmppath}/%{name}-root + +%description +Popt is a C library for parsing command line parameters. Popt was +heavily influenced by the getopt() and getopt_long() functions, but it +improves on them by allowing more powerful argument expansion. Popt +can parse arbitrary argv[] style arrays and automatically set +variables based on command line arguments. Popt allows command line +arguments to be aliased via configuration files and includes utility +functions for parsing arbitrary strings into argv[] arrays using +shell-like rules. + +%prep +%setup -q + +%build +%configure +make + +%install +rm -rf $RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT install +%find_lang popt + +%check +make check || : + +%track +prog popt = { + version = %{version} + url = http://rpm5.org/%{name} + regex = %{name}-(\d+\.\d+\.\d+)\.tar\.gz +} + +%clean +rm -rf $RPM_BUILD_ROOT + +%files -f popt.lang +%defattr(-,root,root) +%{_libdir}/libpopt.* +%{_includedir}/popt.h +%{_mandir}/man3/popt.3* +%{_pkgconfigdir}/popt.pc + +%changelog +* Wed Feb 17 2010 Jeff Johnson <jbj@rpm5.org> +- release popt-1.16 through rpm5.org. + +* Fri Apr 10 2009 Jeff Johnson <jbj@rpm5.org> +- release popt-1.15 through rpm5.org. + +* Tue Dec 11 2007 Jeff Johnson <jbj@rpm5.org> +- release popt-1.13 through rpm5.org. + +* Tue Jul 10 2007 Jeff Johnson <jbj@rpm5.org> +- release popt-1.12 through rpm5.org. + +* Sat Jun 9 2007 Jeff Johnson <jbj@rpm5.org> +- release popt-1.11 through rpm5.org. + +* Thu Dec 10 1998 Michael Johnson <johnsonm@redhat.com> +- released 1.2.2; see CHANGES + +* Tue Nov 17 1998 Michael K. Johnson <johnsonm@redhat.com> +- added man page to default install + +* Thu Oct 22 1998 Erik Troan <ewt@redhat.com> +- see CHANGES file for 1.2 + +* Thu Apr 09 1998 Erik Troan <ewt@redhat.com> +- added ./configure step to spec file
diff --git a/popt-1.16/popt.xcodeproj/project.pbxproj b/popt-1.16/popt.xcodeproj/project.pbxproj new file mode 100644 index 0000000..f41c984 --- /dev/null +++ b/popt-1.16/popt.xcodeproj/project.pbxproj
@@ -0,0 +1,545 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXAggregateTarget section */ + 0D006A101125FBE800A2FA32 /* testit.sh */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 0D006A171125FC1C00A2FA32 /* Build configuration list for PBXAggregateTarget "testit.sh" */; + buildPhases = ( + 0D006A0F1125FBE800A2FA32 /* ShellScript */, + ); + dependencies = ( + 0D006A141125FBFD00A2FA32 /* PBXTargetDependency */, + ); + name = testit.sh; + productName = testit.sh; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 0D00699D1125F0C400A2FA32 /* lookup3.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3C31125E529001C69E6 /* lookup3.c */; }; + 0D00699F1125F0CE00A2FA32 /* poptconfig.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3C91125E54B001C69E6 /* poptconfig.c */; }; + 0D0069A01125F0D100A2FA32 /* popthelp.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3CB1125E553001C69E6 /* popthelp.c */; }; + 0D0069A11125F0D500A2FA32 /* poptint.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3CD1125E55B001C69E6 /* poptint.c */; }; + 0D0069A21125F0DA00A2FA32 /* poptparse.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3D11125E584001C69E6 /* poptparse.c */; }; + 0D0069A31125F0E900A2FA32 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3EA3D51125E5A6001C69E6 /* config.h */; }; + 0D0069A41125F0EC00A2FA32 /* system.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3EA3D31125E58E001C69E6 /* system.h */; }; + 0D0069A51125F0F100A2FA32 /* poptint.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3EA3CF1125E56C001C69E6 /* poptint.h */; }; + 0D0069A61125F0F400A2FA32 /* popt.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3EA3C71125E53F001C69E6 /* popt.h */; }; + 0D0069C61125F60200A2FA32 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D0069C51125F60200A2FA32 /* libiconv.dylib */; }; + 0D0069EE1125F81900A2FA32 /* test1.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D0069DD1125F73600A2FA32 /* test1.c */; }; + 0D3BAD131126031E00B3E80C /* popt.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3C51125E537001C69E6 /* popt.c */; }; + 0D3BAD141126031E00B3E80C /* popt.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3C51125E537001C69E6 /* popt.c */; }; + 0D3EA3C41125E529001C69E6 /* lookup3.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3C31125E529001C69E6 /* lookup3.c */; }; + 0D3EA3C81125E53F001C69E6 /* popt.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3EA3C71125E53F001C69E6 /* popt.h */; }; + 0D3EA3CA1125E54B001C69E6 /* poptconfig.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3C91125E54B001C69E6 /* poptconfig.c */; }; + 0D3EA3CC1125E553001C69E6 /* popthelp.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3CB1125E553001C69E6 /* popthelp.c */; }; + 0D3EA3CE1125E55B001C69E6 /* poptint.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3CD1125E55B001C69E6 /* poptint.c */; }; + 0D3EA3D01125E56C001C69E6 /* poptint.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3EA3CF1125E56C001C69E6 /* poptint.h */; }; + 0D3EA3D21125E584001C69E6 /* poptparse.c in Sources */ = {isa = PBXBuildFile; fileRef = 0D3EA3D11125E584001C69E6 /* poptparse.c */; }; + 0D3EA3D41125E58E001C69E6 /* system.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3EA3D31125E58E001C69E6 /* system.h */; }; + 0D3EA3D61125E5A6001C69E6 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D3EA3D51125E5A6001C69E6 /* config.h */; }; + 0DB920BA1126181E000277F8 /* libpopt.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 0D0069921125F03400A2FA32 /* libpopt.dylib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 0D0069EF1125F83000A2FA32 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D2AAC045055464E500DB518D; + remoteInfo = libpopt.a; + }; + 0D006A131125FBFD00A2FA32 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0D0069E91125F80A00A2FA32; + remoteInfo = test1; + }; + 0DB9209B112616A9000277F8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0D0069911125F03400A2FA32; + remoteInfo = libpopt.dylib; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0D0069921125F03400A2FA32 /* libpopt.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libpopt.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + 0D0069C41125F43900A2FA32 /* popt.3 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = popt.3; sourceTree = "<group>"; }; + 0D0069C51125F60200A2FA32 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; }; + 0D0069DD1125F73600A2FA32 /* test1.c */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.c; path = test1.c; sourceTree = "<group>"; }; + 0D0069EA1125F80A00A2FA32 /* test1 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = test1; sourceTree = BUILT_PRODUCTS_DIR; }; + 0D006A061125FADD00A2FA32 /* testit.sh */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = text.script.sh; path = testit.sh; sourceTree = "<group>"; }; + 0D3BACFC1125FF5300B3E80C /* popt.ps */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = popt.ps; sourceTree = "<group>"; }; + 0D3EA3C31125E529001C69E6 /* lookup3.c */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.c; path = lookup3.c; sourceTree = "<group>"; }; + 0D3EA3C51125E537001C69E6 /* popt.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 7; path = popt.c; sourceTree = "<group>"; }; + 0D3EA3C71125E53F001C69E6 /* popt.h */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.h; path = popt.h; sourceTree = "<group>"; }; + 0D3EA3C91125E54B001C69E6 /* poptconfig.c */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.c; path = poptconfig.c; sourceTree = "<group>"; }; + 0D3EA3CB1125E553001C69E6 /* popthelp.c */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.c; path = popthelp.c; sourceTree = "<group>"; }; + 0D3EA3CD1125E55B001C69E6 /* poptint.c */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.c; path = poptint.c; sourceTree = "<group>"; }; + 0D3EA3CF1125E56C001C69E6 /* poptint.h */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.h; path = poptint.h; sourceTree = "<group>"; }; + 0D3EA3D11125E584001C69E6 /* poptparse.c */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.c; path = poptparse.c; sourceTree = "<group>"; }; + 0D3EA3D31125E58E001C69E6 /* system.h */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.h; path = system.h; sourceTree = "<group>"; }; + 0D3EA3D51125E5A6001C69E6 /* config.h */ = {isa = PBXFileReference; fileEncoding = 7; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; + D2AAC046055464E500DB518D /* libpopt.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libpopt.a; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0D0069901125F03400A2FA32 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D0069C61125F60200A2FA32 /* libiconv.dylib in Frameworks */, + 0DB920BA1126181E000277F8 /* libpopt.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0D0069E81125F80A00A2FA32 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D289987405E68DCB004EDB86 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 08FB7794FE84155DC02AAC07 /* popt */ = { + isa = PBXGroup; + children = ( + 08FB7795FE84155DC02AAC07 /* Source */, + C6A0FF2B0290797F04C91782 /* Documentation */, + 1AB674ADFE9D54B511CA2CBB /* Products */, + 0D0069C51125F60200A2FA32 /* libiconv.dylib */, + ); + name = popt; + sourceTree = "<group>"; + }; + 08FB7795FE84155DC02AAC07 /* Source */ = { + isa = PBXGroup; + children = ( + 0D3EA3D51125E5A6001C69E6 /* config.h */, + 0D3EA3C31125E529001C69E6 /* lookup3.c */, + 0D3EA3C51125E537001C69E6 /* popt.c */, + 0D3EA3C71125E53F001C69E6 /* popt.h */, + 0D3EA3C91125E54B001C69E6 /* poptconfig.c */, + 0D3EA3CB1125E553001C69E6 /* popthelp.c */, + 0D3EA3CD1125E55B001C69E6 /* poptint.c */, + 0D3EA3CF1125E56C001C69E6 /* poptint.h */, + 0D3EA3D11125E584001C69E6 /* poptparse.c */, + 0D3EA3D31125E58E001C69E6 /* system.h */, + 0D0069DD1125F73600A2FA32 /* test1.c */, + 0D006A061125FADD00A2FA32 /* testit.sh */, + ); + name = Source; + sourceTree = "<group>"; + }; + 1AB674ADFE9D54B511CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC046055464E500DB518D /* libpopt.a */, + 0D0069921125F03400A2FA32 /* libpopt.dylib */, + 0D0069EA1125F80A00A2FA32 /* test1 */, + ); + name = Products; + sourceTree = "<group>"; + }; + C6A0FF2B0290797F04C91782 /* Documentation */ = { + isa = PBXGroup; + children = ( + 0D3BACFC1125FF5300B3E80C /* popt.ps */, + 0D0069C41125F43900A2FA32 /* popt.3 */, + ); + name = Documentation; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0D00698E1125F03400A2FA32 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D0069A31125F0E900A2FA32 /* config.h in Headers */, + 0D0069A51125F0F100A2FA32 /* poptint.h in Headers */, + 0D0069A61125F0F400A2FA32 /* popt.h in Headers */, + 0D0069A41125F0EC00A2FA32 /* system.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2AAC043055464E500DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D3EA3D61125E5A6001C69E6 /* config.h in Headers */, + 0D3EA3C81125E53F001C69E6 /* popt.h in Headers */, + 0D3EA3D01125E56C001C69E6 /* poptint.h in Headers */, + 0D3EA3D41125E58E001C69E6 /* system.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0D0069911125F03400A2FA32 /* libpopt.dylib */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0D0069991125F07600A2FA32 /* Build configuration list for PBXNativeTarget "libpopt.dylib" */; + buildPhases = ( + 0D00698E1125F03400A2FA32 /* Headers */, + 0D00698F1125F03400A2FA32 /* Sources */, + 0D0069901125F03400A2FA32 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libpopt.dylib; + productName = libpopt.dylib; + productReference = 0D0069921125F03400A2FA32 /* libpopt.dylib */; + productType = "com.apple.product-type.library.dynamic"; + }; + 0D0069E91125F80A00A2FA32 /* test1 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0D0069F31125F84F00A2FA32 /* Build configuration list for PBXNativeTarget "test1" */; + buildPhases = ( + 0D0069E71125F80A00A2FA32 /* Sources */, + 0D0069E81125F80A00A2FA32 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0DB9209C112616A9000277F8 /* PBXTargetDependency */, + 0D0069F01125F83000A2FA32 /* PBXTargetDependency */, + ); + name = test1; + productName = test1; + productReference = 0D0069EA1125F80A00A2FA32 /* test1 */; + productType = "com.apple.product-type.tool"; + }; + D2AAC045055464E500DB518D /* libpopt.a */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "libpopt.a" */; + buildPhases = ( + D2AAC043055464E500DB518D /* Headers */, + D2AAC044055464E500DB518D /* Sources */, + D289987405E68DCB004EDB86 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = libpopt.a; + productName = popt; + productReference = D2AAC046055464E500DB518D /* libpopt.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 08FB7793FE84155DC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "popt" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + "", + ); + mainGroup = 08FB7794FE84155DC02AAC07 /* popt */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D2AAC045055464E500DB518D /* libpopt.a */, + 0D0069911125F03400A2FA32 /* libpopt.dylib */, + 0D0069E91125F80A00A2FA32 /* test1 */, + 0D006A101125FBE800A2FA32 /* testit.sh */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXShellScriptBuildPhase section */ + 0D006A0F1125FBE800A2FA32 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# shell script goes here\nexit 0"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0D00698F1125F03400A2FA32 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D00699D1125F0C400A2FA32 /* lookup3.c in Sources */, + 0D3BAD141126031E00B3E80C /* popt.c in Sources */, + 0D00699F1125F0CE00A2FA32 /* poptconfig.c in Sources */, + 0D0069A01125F0D100A2FA32 /* popthelp.c in Sources */, + 0D0069A11125F0D500A2FA32 /* poptint.c in Sources */, + 0D0069A21125F0DA00A2FA32 /* poptparse.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0D0069E71125F80A00A2FA32 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D0069EE1125F81900A2FA32 /* test1.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2AAC044055464E500DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D3EA3C41125E529001C69E6 /* lookup3.c in Sources */, + 0D3BAD131126031E00B3E80C /* popt.c in Sources */, + 0D3EA3CA1125E54B001C69E6 /* poptconfig.c in Sources */, + 0D3EA3CC1125E553001C69E6 /* popthelp.c in Sources */, + 0D3EA3CE1125E55B001C69E6 /* poptint.c in Sources */, + 0D3EA3D21125E584001C69E6 /* poptparse.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 0D0069F01125F83000A2FA32 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D2AAC045055464E500DB518D /* libpopt.a */; + targetProxy = 0D0069EF1125F83000A2FA32 /* PBXContainerItemProxy */; + }; + 0D006A141125FBFD00A2FA32 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0D0069E91125F80A00A2FA32 /* test1 */; + targetProxy = 0D006A131125FBFD00A2FA32 /* PBXContainerItemProxy */; + }; + 0DB9209C112616A9000277F8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0D0069911125F03400A2FA32 /* libpopt.dylib */; + targetProxy = 0DB9209B112616A9000277F8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0D0069931125F03500A2FA32 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + EXECUTABLE_PREFIX = lib; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 2; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + INSTALL_PATH = /usr/local/lib; + OTHER_LDFLAGS = "-liconv"; + PREBINDING = NO; + PRODUCT_NAME = popt; + }; + name = Debug; + }; + 0D0069941125F03500A2FA32 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + EXECUTABLE_PREFIX = lib; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PREBINDING = NO; + PRODUCT_NAME = popt; + ZERO_LINK = NO; + }; + name = Release; + }; + 0D0069EC1125F80A00A2FA32 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + INSTALL_PATH = /usr/local/bin; + MACH_O_TYPE = mh_execute; + OTHER_LDFLAGS = ( + "-lpopt", + "-liconv", + ); + PREBINDING = NO; + PRODUCT_NAME = test1; + }; + name = Debug; + }; + 0D0069ED1125F80A00A2FA32 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + PREBINDING = NO; + PRODUCT_NAME = test1; + ZERO_LINK = NO; + }; + name = Release; + }; + 0D006A111125FBE800A2FA32 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + PRODUCT_NAME = testit.sh; + }; + name = Debug; + }; + 0D006A121125FBE800A2FA32 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + PRODUCT_NAME = testit.sh; + ZERO_LINK = NO; + }; + name = Release; + }; + 1DEB91EC08733DB70010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 2; + GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H; + INSTALL_PATH = /usr/local/lib; + "New Setting" = ""; + PRODUCT_NAME = popt; + }; + name = Debug; + }; + 1DEB91ED08733DB70010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/lib; + PRODUCT_NAME = popt; + }; + name = Release; + }; + 1DEB91F008733DB70010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = NO; + SDKROOT = macosx10.6; + }; + name = Debug; + }; + 1DEB91F108733DB70010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = macosx10.6; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 0D0069991125F07600A2FA32 /* Build configuration list for PBXNativeTarget "libpopt.dylib" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0D0069931125F03500A2FA32 /* Debug */, + 0D0069941125F03500A2FA32 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0D0069F31125F84F00A2FA32 /* Build configuration list for PBXNativeTarget "test1" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0D0069EC1125F80A00A2FA32 /* Debug */, + 0D0069ED1125F80A00A2FA32 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0D006A171125FC1C00A2FA32 /* Build configuration list for PBXAggregateTarget "testit.sh" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0D006A111125FBE800A2FA32 /* Debug */, + 0D006A121125FBE800A2FA32 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB91EB08733DB70010E9CD /* Build configuration list for PBXNativeTarget "libpopt.a" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB91EC08733DB70010E9CD /* Debug */, + 1DEB91ED08733DB70010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB91EF08733DB70010E9CD /* Build configuration list for PBXProject "popt" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB91F008733DB70010E9CD /* Debug */, + 1DEB91F108733DB70010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; +}
diff --git a/popt-1.16/poptconfig.c b/popt-1.16/poptconfig.c new file mode 100644 index 0000000..7840d0c --- /dev/null +++ b/popt-1.16/poptconfig.c
@@ -0,0 +1,582 @@ +/** \ingroup popt + * \file popt/poptconfig.c + */ + +/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING + file accompanying popt source distributions, available from + ftp://ftp.rpm.org/pub/rpm/dist. */ + +#include "system.h" +#include "poptint.h" +#include <sys/stat.h> + +#if defined(HAVE_FNMATCH_H) +#include <fnmatch.h> + +#if defined(__LCLINT__) +/*@-declundef -exportheader -incondefs -protoparammatch -redecl -type @*/ +extern int fnmatch (const char *__pattern, const char *__name, int __flags) + /*@*/; +/*@=declundef =exportheader =incondefs =protoparammatch =redecl =type @*/ +#endif /* __LCLINT__ */ +#endif + +#if defined(HAVE_GLOB_H) +#include <glob.h> + +#if defined(__LCLINT__) +/*@-declundef -exportheader -incondefs -protoparammatch -redecl -type @*/ +extern int glob (const char *__pattern, int __flags, + /*@null@*/ int (*__errfunc) (const char *, int), + /*@out@*/ glob_t *__pglob) + /*@globals errno, fileSystem @*/ + /*@modifies *__pglob, errno, fileSystem @*/; + +/* XXX only annotation is a white lie */ +extern void globfree (/*@only@*/ glob_t *__pglob) + /*@modifies *__pglob @*/; + +/* XXX _GNU_SOURCE ifdef and/or retrofit is needed for portability. */ +extern int glob_pattern_p (const char *__pattern, int __quote) + /*@*/; +/*@=declundef =exportheader =incondefs =protoparammatch =redecl =type @*/ +#endif /* __LCLINT__ */ + +#if !defined(__GLIBC__) +/* Return nonzero if PATTERN contains any metacharacters. + Metacharacters can be quoted with backslashes if QUOTE is nonzero. */ +static int +glob_pattern_p (const char * pattern, int quote) + /*@*/ +{ + const char * p; + int open = 0; + + for (p = pattern; *p != '\0'; ++p) + switch (*p) { + case '?': + case '*': + return 1; + /*@notreached@*/ /*@switchbreak@*/ break; + case '\\': + if (quote && p[1] != '\0') + ++p; + /*@switchbreak@*/ break; + case '[': + open = 1; + /*@switchbreak@*/ break; + case ']': + if (open) + return 1; + /*@switchbreak@*/ break; + } + return 0; +} +#endif /* !defined(__GLIBC__) */ + +/*@unchecked@*/ +static int poptGlobFlags = 0; + +static int poptGlob_error(/*@unused@*/ UNUSED(const char * epath), + /*@unused@*/ UNUSED(int eerrno)) + /*@*/ +{ + return 1; +} +#endif /* HAVE_GLOB_H */ + +/** + * Return path(s) from a glob pattern. + * @param con context + * @param pattern glob pattern + * @retval *acp no. of paths + * @retval *avp array of paths + * @return 0 on success + */ +static int poptGlob(/*@unused@*/ UNUSED(poptContext con), const char * pattern, + /*@out@*/ int * acp, /*@out@*/ const char *** avp) + /*@modifies *acp, *avp @*/ +{ + const char * pat = pattern; + int rc = 0; /* assume success */ + + /* XXX skip the attention marker. */ + if (pat[0] == '@' && pat[1] != '(') + pat++; + +#if defined(HAVE_GLOB_H) + if (glob_pattern_p(pat, 0)) { + glob_t _g, *pglob = &_g; + + if (!glob(pat, poptGlobFlags, poptGlob_error, pglob)) { + if (acp) { + *acp = (int) pglob->gl_pathc; + pglob->gl_pathc = 0; + } + if (avp) { +/*@-onlytrans@*/ + *avp = (const char **) pglob->gl_pathv; +/*@=onlytrans@*/ + pglob->gl_pathv = NULL; + } +/*@-nullstate@*/ + globfree(pglob); +/*@=nullstate@*/ + } else + rc = POPT_ERROR_ERRNO; + } else +#endif /* HAVE_GLOB_H */ + { + if (acp) + *acp = 1; + if (avp && (*avp = calloc((size_t)(1 + 1), sizeof (**avp))) != NULL) + (*avp)[0] = xstrdup(pat); + } + + return rc; +} + +/*@access poptContext @*/ + +int poptSaneFile(const char * fn) +{ + struct stat sb; + uid_t uid = getuid(); + + if (stat(fn, &sb) == -1) + return 1; + if ((uid_t)sb.st_uid != uid) + return 0; + if (!S_ISREG(sb.st_mode)) + return 0; +/*@-bitwisesigned@*/ + if (sb.st_mode & (S_IWGRP|S_IWOTH)) + return 0; +/*@=bitwisesigned@*/ + return 1; +} + +int poptReadFile(const char * fn, char ** bp, size_t * nbp, int flags) +{ + int fdno; + char * b = NULL; + off_t nb = 0; + char * s, * t, * se; + int rc = POPT_ERROR_ERRNO; /* assume failure */ + + fdno = open(fn, O_RDONLY); + if (fdno < 0) + goto exit; + + if ((nb = lseek(fdno, 0, SEEK_END)) == (off_t)-1 + || lseek(fdno, 0, SEEK_SET) == (off_t)-1 + || (b = calloc(sizeof(*b), (size_t)nb + 1)) == NULL + || read(fdno, (char *)b, (size_t)nb) != (ssize_t)nb) + { + int oerrno = errno; + (void) close(fdno); + errno = oerrno; + goto exit; + } + if (close(fdno) == -1) + goto exit; + if (b == NULL) { + rc = POPT_ERROR_MALLOC; + goto exit; + } + rc = 0; + + /* Trim out escaped newlines. */ +/*@-bitwisesigned@*/ + if (flags & POPT_READFILE_TRIMNEWLINES) +/*@=bitwisesigned@*/ + { + for (t = b, s = b, se = b + nb; *s && s < se; s++) { + switch (*s) { + case '\\': + if (s[1] == '\n') { + s++; + continue; + } + /*@fallthrough@*/ + default: + *t++ = *s; + /*@switchbreak@*/ break; + } + } + *t++ = '\0'; + nb = (off_t)(t - b); + } + +exit: + if (rc != 0) { +/*@-usedef@*/ + if (b) + free(b); +/*@=usedef@*/ + b = NULL; + nb = 0; + } + if (bp) + *bp = b; +/*@-usereleased@*/ + else if (b) + free(b); +/*@=usereleased@*/ + if (nbp) + *nbp = (size_t)nb; +/*@-compdef -nullstate @*/ /* XXX cannot annotate char ** correctly */ + return rc; +/*@=compdef =nullstate @*/ +} + +/** + * Check for application match. + * @param con context + * @param s config application name + * return 0 if config application matches + */ +static int configAppMatch(poptContext con, const char * s) + /*@*/ +{ + int rc = 1; + + if (con->appName == NULL) /* XXX can't happen. */ + return rc; + +#if defined(HAVE_GLOB_H) && defined(HAVE_FNMATCH_H) + if (glob_pattern_p(s, 1)) { +/*@-bitwisesigned@*/ + static int flags = FNM_PATHNAME | FNM_PERIOD; +#ifdef FNM_EXTMATCH + flags |= FNM_EXTMATCH; +#endif +/*@=bitwisesigned@*/ + rc = fnmatch(s, con->appName, flags); + } else +#endif + rc = strcmp(s, con->appName); + return rc; +} + +/*@-compmempass@*/ /* FIX: item->option.longName kept, not dependent. */ +static int poptConfigLine(poptContext con, char * line) + /*@globals fileSystem, internalState @*/ + /*@modifies con, fileSystem, internalState @*/ +{ + char *b = NULL; + size_t nb = 0; + char * se = line; + const char * appName; + const char * entryType; + const char * opt; + struct poptItem_s item_buf; + poptItem item = &item_buf; + int i, j; + int rc = POPT_ERROR_BADCONFIG; + + if (con->appName == NULL) + goto exit; + + memset(item, 0, sizeof(*item)); + + appName = se; + while (*se != '\0' && !_isspaceptr(se)) se++; + if (*se == '\0') + goto exit; + else + *se++ = '\0'; + + if (configAppMatch(con, appName)) goto exit; + + while (*se != '\0' && _isspaceptr(se)) se++; + entryType = se; + while (*se != '\0' && !_isspaceptr(se)) se++; + if (*se != '\0') *se++ = '\0'; + + while (*se != '\0' && _isspaceptr(se)) se++; + if (*se == '\0') goto exit; + opt = se; + while (*se != '\0' && !_isspaceptr(se)) se++; + if (opt[0] == '-' && *se == '\0') goto exit; + if (*se != '\0') *se++ = '\0'; + + while (*se != '\0' && _isspaceptr(se)) se++; + if (opt[0] == '-' && *se == '\0') goto exit; + +/*@-temptrans@*/ /* FIX: line alias is saved */ + if (opt[0] == '-' && opt[1] == '-') + item->option.longName = opt + 2; + else if (opt[0] == '-' && opt[2] == '\0') + item->option.shortName = opt[1]; + else { + const char * fn = opt; + + /* XXX handle globs and directories in fn? */ + if ((rc = poptReadFile(fn, &b, &nb, POPT_READFILE_TRIMNEWLINES)) != 0) + goto exit; + if (b == NULL || nb == 0) + goto exit; + + /* Append remaining text to the interpolated file option text. */ + if (*se != '\0') { + size_t nse = strlen(se) + 1; + if ((b = realloc(b, (nb + nse))) == NULL) /* XXX can't happen */ + goto exit; + (void) stpcpy( stpcpy(&b[nb-1], " "), se); + nb += nse; + } + se = b; + + /* Use the basename of the path as the long option name. */ + { const char * longName = strrchr(fn, '/'); + if (longName != NULL) + longName++; + else + longName = fn; + if (longName == NULL) /* XXX can't happen. */ + goto exit; + /* Single character basenames are treated as short options. */ + if (longName[1] != '\0') + item->option.longName = longName; + else + item->option.shortName = longName[0]; + } + } +/*@=temptrans@*/ + + if (poptParseArgvString(se, &item->argc, &item->argv)) goto exit; + +/*@-modobserver@*/ + item->option.argInfo = POPT_ARGFLAG_DOC_HIDDEN; + for (i = 0, j = 0; i < item->argc; i++, j++) { + const char * f; + if (!strncmp(item->argv[i], "--POPTdesc=", sizeof("--POPTdesc=")-1)) { + f = item->argv[i] + sizeof("--POPTdesc="); + if (f[0] == '$' && f[1] == '"') f++; + item->option.descrip = f; + item->option.argInfo &= ~POPT_ARGFLAG_DOC_HIDDEN; + j--; + } else + if (!strncmp(item->argv[i], "--POPTargs=", sizeof("--POPTargs=")-1)) { + f = item->argv[i] + sizeof("--POPTargs="); + if (f[0] == '$' && f[1] == '"') f++; + item->option.argDescrip = f; + item->option.argInfo &= ~POPT_ARGFLAG_DOC_HIDDEN; + item->option.argInfo |= POPT_ARG_STRING; + j--; + } else + if (j != i) + item->argv[j] = item->argv[i]; + } + if (j != i) { + item->argv[j] = NULL; + item->argc = j; + } +/*@=modobserver@*/ + +/*@-nullstate@*/ /* FIX: item->argv[] may be NULL */ + if (!strcmp(entryType, "alias")) + rc = poptAddItem(con, item, 0); + else if (!strcmp(entryType, "exec")) + rc = poptAddItem(con, item, 1); +/*@=nullstate@*/ +exit: + rc = 0; /* XXX for now, always return success */ + if (b) + free(b); + return rc; +} +/*@=compmempass@*/ + +int poptReadConfigFile(poptContext con, const char * fn) +{ + char * b = NULL, *be; + size_t nb = 0; + const char *se; + char *t, *te; + int rc; + int xx; + + if ((rc = poptReadFile(fn, &b, &nb, POPT_READFILE_TRIMNEWLINES)) != 0) + return (errno == ENOENT ? 0 : rc); + if (b == NULL || nb == 0) + return POPT_ERROR_BADCONFIG; + + if ((t = malloc(nb + 1)) == NULL) + goto exit; + te = t; + + be = (b + nb); + for (se = b; se < be; se++) { + switch (*se) { + case '\n': + *te = '\0'; + te = t; + while (*te && _isspaceptr(te)) te++; + if (*te && *te != '#') + xx = poptConfigLine(con, te); + /*@switchbreak@*/ break; +/*@-usedef@*/ /* XXX *se may be uninitialized */ + case '\\': + *te = *se++; + /* \ at the end of a line does not insert a \n */ + if (se < be && *se != '\n') { + te++; + *te++ = *se; + } + /*@switchbreak@*/ break; + default: + *te++ = *se; + /*@switchbreak@*/ break; +/*@=usedef@*/ + } + } + + free(t); + rc = 0; + +exit: + if (b) + free(b); + return rc; +} + +int poptReadConfigFiles(poptContext con, const char * paths) +{ + char * buf = (paths ? xstrdup(paths) : NULL); + const char * p; + char * pe; + int rc = 0; /* assume success */ + + for (p = buf; p != NULL && *p != '\0'; p = pe) { + const char ** av = NULL; + int ac = 0; + int i; + int xx; + + /* locate start of next path element */ + pe = strchr(p, ':'); + if (pe != NULL && *pe == ':') + *pe++ = '\0'; + else + pe = (char *) (p + strlen(p)); + + xx = poptGlob(con, p, &ac, &av); + + /* work-off each resulting file from the path element */ + for (i = 0; i < ac; i++) { + const char * fn = av[i]; + if (av[i] == NULL) /* XXX can't happen */ + /*@innercontinue@*/ continue; + /* XXX should '@' attention be pushed into poptReadConfigFile? */ + if (p[0] == '@' && p[1] != '(') { + if (fn[0] == '@' && fn[1] != '(') + fn++; + xx = poptSaneFile(fn); + if (!xx && rc == 0) + rc = POPT_ERROR_BADCONFIG; + /*@innercontinue@*/ continue; + } + xx = poptReadConfigFile(con, fn); + if (xx && rc == 0) + rc = xx; + free((void *)av[i]); + av[i] = NULL; + } + free(av); + av = NULL; + } + +/*@-usedef@*/ + if (buf) + free(buf); +/*@=usedef@*/ + + return rc; +} + +int poptReadDefaultConfig(poptContext con, /*@unused@*/ UNUSED(int useEnv)) +{ + static const char _popt_sysconfdir[] = POPT_SYSCONFDIR "/popt"; + static const char _popt_etc[] = "/etc/popt"; + char * home; + struct stat sb; + int rc = 0; /* assume success */ + + if (con->appName == NULL) goto exit; + + if (strcmp(_popt_sysconfdir, _popt_etc)) { + rc = poptReadConfigFile(con, _popt_sysconfdir); + if (rc) goto exit; + } + + rc = poptReadConfigFile(con, _popt_etc); + if (rc) goto exit; + +#if defined(HAVE_GLOB_H) + if (!stat("/etc/popt.d", &sb) && S_ISDIR(sb.st_mode)) { + const char ** av = NULL; + int ac = 0; + int i; + + if ((rc = poptGlob(con, "/etc/popt.d/*", &ac, &av)) == 0) { + for (i = 0; rc == 0 && i < ac; i++) { + const char * fn = av[i]; + if (fn == NULL || strstr(fn, ".rpmnew") || strstr(fn, ".rpmsave")) + continue; + if (!stat(fn, &sb)) { + if (!S_ISREG(sb.st_mode) && !S_ISLNK(sb.st_mode)) + continue; + } + rc = poptReadConfigFile(con, fn); + free((void *)av[i]); + av[i] = NULL; + } + free(av); + av = NULL; + } + } + if (rc) goto exit; +#endif + + if ((home = getenv("HOME"))) { + char * fn = malloc(strlen(home) + 20); + if (fn != NULL) { + (void) stpcpy(stpcpy(fn, home), "/.popt"); + rc = poptReadConfigFile(con, fn); + free(fn); + } else + rc = POPT_ERROR_ERRNO; + if (rc) goto exit; + } + +exit: + return rc; +} + +poptContext +poptFini(poptContext con) +{ + return poptFreeContext(con); +} + +poptContext +poptInit(int argc, const char ** argv, + const struct poptOption * options, const char * configPaths) +{ + poptContext con = NULL; + const char * argv0; + + if (argv == NULL || argv[0] == NULL || options == NULL) + return con; + + if ((argv0 = strrchr(argv[0], '/')) != NULL) argv0++; + else argv0 = argv[0]; + + con = poptGetContext(argv0, argc, (const char **)argv, options, 0); + if (con != NULL&& poptReadConfigFiles(con, configPaths)) + con = poptFini(con); + + return con; +}
diff --git a/popt-1.16/popthelp.c b/popt-1.16/popthelp.c new file mode 100644 index 0000000..4859980 --- /dev/null +++ b/popt-1.16/popthelp.c
@@ -0,0 +1,925 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ + +/** \ingroup popt + * \file popt/popthelp.c + */ + +/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING + file accompanying popt source distributions, available from + ftp://ftp.rpm.org/pub/rpm/dist. */ + +#include "system.h" + +#define POPT_USE_TIOCGWINSZ +#ifdef POPT_USE_TIOCGWINSZ +#include <sys/ioctl.h> +#endif + +#define POPT_WCHAR_HACK +#ifdef POPT_WCHAR_HACK +#include <wchar.h> /* for mbsrtowcs */ +/*@access mbstate_t @*/ +#endif +#include "poptint.h" + +/*@access poptContext@*/ + +/** + * Display arguments. + * @param con context + * @param foo (unused) + * @param key option(s) + * @param arg (unused) + * @param data (unused) + */ +/*@exits@*/ +static void displayArgs(poptContext con, + /*@unused@*/ UNUSED(enum poptCallbackReason foo), + struct poptOption * key, + /*@unused@*/ UNUSED(const char * arg), + /*@unused@*/ UNUSED(void * data)) + /*@globals fileSystem@*/ + /*@modifies fileSystem@*/ +{ + if (key->shortName == '?') + poptPrintHelp(con, stdout, 0); + else + poptPrintUsage(con, stdout, 0); + +#if !defined(__LCLINT__) /* XXX keep both splint & valgrind happy */ + con = poptFreeContext(con); +#endif + exit(0); +} + +#ifdef NOTYET +/*@unchecked@*/ +static int show_option_defaults = 0; +#endif + +/** + * Empty table marker to enable displaying popt alias/exec options. + */ +/*@observer@*/ /*@unchecked@*/ +struct poptOption poptAliasOptions[] = { + POPT_TABLEEND +}; + +/** + * Auto help table options. + */ +/*@-castfcnptr@*/ +/*@observer@*/ /*@unchecked@*/ +struct poptOption poptHelpOptions[] = { + { NULL, '\0', POPT_ARG_CALLBACK, (void *)displayArgs, 0, NULL, NULL }, + { "help", '?', 0, NULL, (int)'?', N_("Show this help message"), NULL }, + { "usage", '\0', 0, NULL, (int)'u', N_("Display brief usage message"), NULL }, + POPT_TABLEEND +} ; + +/*@observer@*/ /*@unchecked@*/ +static struct poptOption poptHelpOptions2[] = { +/*@-readonlytrans@*/ + { NULL, '\0', POPT_ARG_INTL_DOMAIN, PACKAGE, 0, NULL, NULL}, +/*@=readonlytrans@*/ + { NULL, '\0', POPT_ARG_CALLBACK, (void *)displayArgs, 0, NULL, NULL }, + { "help", '?', 0, NULL, (int)'?', N_("Show this help message"), NULL }, + { "usage", '\0', 0, NULL, (int)'u', N_("Display brief usage message"), NULL }, +#ifdef NOTYET + { "defaults", '\0', POPT_ARG_NONE, &show_option_defaults, 0, + N_("Display option defaults in message"), NULL }, +#endif + { "", '\0', 0, NULL, 0, N_("Terminate options"), NULL }, + POPT_TABLEEND +} ; + +/*@observer@*/ /*@unchecked@*/ +struct poptOption * poptHelpOptionsI18N = poptHelpOptions2; +/*@=castfcnptr@*/ + +#define _POPTHELP_MAXLINE ((size_t)79) + +typedef struct columns_s { + size_t cur; + size_t max; +} * columns_t; + +/** + * Return no. of columns in output window. + * @param fp FILE + * @return no. of columns + */ +static size_t maxColumnWidth(FILE *fp) + /*@*/ +{ + size_t maxcols = _POPTHELP_MAXLINE; +#if defined(TIOCGWINSZ) + struct winsize ws; + int fdno = fileno(fp ? fp : stdout); + + memset(&ws, 0, sizeof(ws)); + if (fdno >= 0 && !ioctl(fdno, (unsigned long)TIOCGWINSZ, &ws)) { + size_t ws_col = (size_t)ws.ws_col; + if (ws_col > maxcols && ws_col < (size_t)256) + maxcols = ws_col - 1; + } +#endif + return maxcols; +} + +/** + * Determine number of display characters in a string. + * @param s string + * @return no. of display characters. + */ +static inline size_t stringDisplayWidth(const char *s) + /*@*/ +{ + size_t n = strlen(s); +#ifdef POPT_WCHAR_HACK + mbstate_t t; + + memset ((void *)&t, 0, sizeof (t)); /* In initial state. */ + /* Determine number of display characters. */ + n = mbsrtowcs (NULL, &s, n, &t); +#else + n = 0; + for (; *s; s = POPT_next_char(s)) + n++; +#endif + + return n; +} + +/** + * @param opt option(s) + */ +/*@observer@*/ /*@null@*/ static const char * +getTableTranslationDomain(/*@null@*/ const struct poptOption *opt) + /*@*/ +{ + if (opt != NULL) + for (; opt->longName || opt->shortName || opt->arg; opt++) { + if (opt->argInfo == POPT_ARG_INTL_DOMAIN) + return opt->arg; + } + return NULL; +} + +/** + * @param opt option(s) + * @param translation_domain translation domain + */ +/*@observer@*/ /*@null@*/ static const char * +getArgDescrip(const struct poptOption * opt, + /*@-paramuse@*/ /* FIX: i18n macros disabled with lclint */ + /*@null@*/ const char * translation_domain) + /*@=paramuse@*/ + /*@*/ +{ + if (!poptArgType(opt)) return NULL; + + if (poptArgType(opt) == POPT_ARG_MAINCALL) + return opt->argDescrip; + if (poptArgType(opt) == POPT_ARG_ARGV) + return opt->argDescrip; + + if (opt->argDescrip) { + /* Some strings need popt library, not application, i18n domain. */ + if (opt == (poptHelpOptions + 1) + || opt == (poptHelpOptions + 2) + || !strcmp(opt->argDescrip, N_("Help options:")) + || !strcmp(opt->argDescrip, N_("Options implemented via popt alias/exec:"))) + return POPT_(opt->argDescrip); + + /* Use the application i18n domain. */ + return D_(translation_domain, opt->argDescrip); + } + + switch (poptArgType(opt)) { + case POPT_ARG_NONE: return POPT_("NONE"); +#ifdef DYING + case POPT_ARG_VAL: return POPT_("VAL"); +#else + case POPT_ARG_VAL: return NULL; +#endif + case POPT_ARG_INT: return POPT_("INT"); + case POPT_ARG_SHORT: return POPT_("SHORT"); + case POPT_ARG_LONG: return POPT_("LONG"); + case POPT_ARG_LONGLONG: return POPT_("LONGLONG"); + case POPT_ARG_STRING: return POPT_("STRING"); + case POPT_ARG_FLOAT: return POPT_("FLOAT"); + case POPT_ARG_DOUBLE: return POPT_("DOUBLE"); + case POPT_ARG_MAINCALL: return NULL; + case POPT_ARG_ARGV: return NULL; + default: return POPT_("ARG"); + } +} + +/** + * Display default value for an option. + * @param lineLength display positions remaining + * @param opt option(s) + * @param translation_domain translation domain + * @return + */ +static /*@only@*/ /*@null@*/ char * +singleOptionDefaultValue(size_t lineLength, + const struct poptOption * opt, + /*@-paramuse@*/ /* FIX: i18n macros disabled with lclint */ + /*@null@*/ const char * translation_domain) + /*@=paramuse@*/ + /*@*/ +{ + const char * defstr = D_(translation_domain, "default"); + char * le = malloc(4*lineLength + 1); + char * l = le; + + if (le == NULL) return NULL; /* XXX can't happen */ + *le = '\0'; + *le++ = '('; + le = stpcpy(le, defstr); + *le++ = ':'; + *le++ = ' '; + if (opt->arg) { /* XXX programmer error */ + poptArg arg = { .ptr = opt->arg }; + switch (poptArgType(opt)) { + case POPT_ARG_VAL: + case POPT_ARG_INT: + le += sprintf(le, "%d", arg.intp[0]); + break; + case POPT_ARG_SHORT: + le += sprintf(le, "%hd", arg.shortp[0]); + break; + case POPT_ARG_LONG: + le += sprintf(le, "%ld", arg.longp[0]); + break; + case POPT_ARG_LONGLONG: + le += sprintf(le, "%lld", arg.longlongp[0]); + break; + case POPT_ARG_FLOAT: + { double aDouble = (double) arg.floatp[0]; + le += sprintf(le, "%g", aDouble); + } break; + case POPT_ARG_DOUBLE: + le += sprintf(le, "%g", arg.doublep[0]); + break; + case POPT_ARG_MAINCALL: + le += sprintf(le, "%p", opt->arg); + break; + case POPT_ARG_ARGV: + le += sprintf(le, "%p", opt->arg); + break; + case POPT_ARG_STRING: + { const char * s = arg.argv[0]; + if (s == NULL) + le = stpcpy(le, "null"); + else { + size_t limit = 4*lineLength - (le - l) - sizeof("\"\")"); + size_t slen; + *le++ = '"'; + strncpy(le, s, limit); le[limit] = '\0'; le += (slen = strlen(le)); + if (slen == limit && s[limit]) + le[-1] = le[-2] = le[-3] = '.'; + *le++ = '"'; + } + } break; + case POPT_ARG_NONE: + default: + l = _free(l); + return NULL; + /*@notreached@*/ break; + } + } + *le++ = ')'; + *le = '\0'; + + return l; +} + +/** + * Display help text for an option. + * @param fp output file handle + * @param columns output display width control + * @param opt option(s) + * @param translation_domain translation domain + */ +static void singleOptionHelp(FILE * fp, columns_t columns, + const struct poptOption * opt, + /*@null@*/ const char * translation_domain) + /*@globals fileSystem @*/ + /*@modifies fp, fileSystem @*/ +{ + size_t maxLeftCol = columns->cur; + size_t indentLength = maxLeftCol + 5; + size_t lineLength = columns->max - indentLength; + const char * help = D_(translation_domain, opt->descrip); + const char * argDescrip = getArgDescrip(opt, translation_domain); + /* Display shortName iff printable non-space. */ + int prtshort = (int)(isprint((int)opt->shortName) && opt->shortName != ' '); + size_t helpLength; + char * defs = NULL; + char * left; + size_t nb = maxLeftCol + 1; + int displaypad = 0; + int xx; + + /* Make sure there's more than enough room in target buffer. */ + if (opt->longName) nb += strlen(opt->longName); + if (F_ISSET(opt, TOGGLE)) nb += sizeof("[no]") - 1; + if (argDescrip) nb += strlen(argDescrip); + + left = malloc(nb); + if (left == NULL) return; /* XXX can't happen */ + left[0] = '\0'; + left[maxLeftCol] = '\0'; + +#define prtlong (opt->longName != NULL) /* XXX splint needs a clue */ + if (!(prtshort || prtlong)) + goto out; + if (prtshort && prtlong) { + char *dash = F_ISSET(opt, ONEDASH) ? "-" : "--"; + left[0] = '-'; + left[1] = opt->shortName; + (void) stpcpy(stpcpy(stpcpy(left+2, ", "), dash), opt->longName); + } else if (prtshort) { + left[0] = '-'; + left[1] = opt->shortName; + left[2] = '\0'; + } else if (prtlong) { + /* XXX --long always padded for alignment with/without "-X, ". */ + char *dash = poptArgType(opt) == POPT_ARG_MAINCALL ? "" + : (F_ISSET(opt, ONEDASH) ? "-" : "--"); + const char *longName = opt->longName; + const char *toggle; + if (F_ISSET(opt, TOGGLE)) { + toggle = "[no]"; + if (longName[0] == 'n' && longName[1] == 'o') { + longName += sizeof("no") - 1; + if (longName[0] == '-') + longName++; + } + } else + toggle = ""; + (void) stpcpy(stpcpy(stpcpy(stpcpy(left, " "), dash), toggle), longName); + } +#undef prtlong + + if (argDescrip) { + char * le = left + strlen(left); + + if (F_ISSET(opt, OPTIONAL)) + *le++ = '['; + + /* Choose type of output */ + if (F_ISSET(opt, SHOW_DEFAULT)) { + defs = singleOptionDefaultValue(lineLength, opt, translation_domain); + if (defs) { + char * t = malloc((help ? strlen(help) : 0) + + strlen(defs) + sizeof(" ")); + if (t) { + char * te = t; + if (help) + te = stpcpy(te, help); + *te++ = ' '; + strcpy(te, defs); + defs = _free(defs); + defs = t; + } + } + } + + if (opt->argDescrip == NULL) { + switch (poptArgType(opt)) { + case POPT_ARG_NONE: + break; + case POPT_ARG_VAL: +#ifdef NOTNOW /* XXX pug ugly nerdy output */ + { long aLong = opt->val; + int ops = F_ISSET(opt, LOGICALOPS); + int negate = F_ISSET(opt, NOT); + + /* Don't bother displaying typical values */ + if (!ops && (aLong == 0L || aLong == 1L || aLong == -1L)) + break; + *le++ = '['; + switch (ops) { + case POPT_ARGFLAG_OR: + *le++ = '|'; + /*@innerbreak@*/ break; + case POPT_ARGFLAG_AND: + *le++ = '&'; + /*@innerbreak@*/ break; + case POPT_ARGFLAG_XOR: + *le++ = '^'; + /*@innerbreak@*/ break; + default: + /*@innerbreak@*/ break; + } + *le++ = (opt->longName != NULL ? '=' : ' '); + if (negate) *le++ = '~'; + /*@-formatconst@*/ + le += sprintf(le, (ops ? "0x%lx" : "%ld"), aLong); + /*@=formatconst@*/ + *le++ = ']'; + } +#endif + break; + case POPT_ARG_INT: + case POPT_ARG_SHORT: + case POPT_ARG_LONG: + case POPT_ARG_LONGLONG: + case POPT_ARG_FLOAT: + case POPT_ARG_DOUBLE: + case POPT_ARG_STRING: + *le++ = (opt->longName != NULL ? '=' : ' '); + le = stpcpy(le, argDescrip); + break; + default: + break; + } + } else { + char *leo; + + /* XXX argDescrip[0] determines "--foo=bar" or "--foo bar". */ + if (!strchr(" =(", argDescrip[0])) + *le++ = ((poptArgType(opt) == POPT_ARG_MAINCALL) ? ' ' : + (poptArgType(opt) == POPT_ARG_ARGV) ? ' ' : '='); + le = stpcpy(leo = le, argDescrip); + + /* Adjust for (possible) wide characters. */ + displaypad = (int)((le - leo) - stringDisplayWidth(argDescrip)); + } + if (F_ISSET(opt, OPTIONAL)) + *le++ = ']'; + *le = '\0'; + } + + if (help) + xx = POPT_fprintf(fp," %-*s ", (int)(maxLeftCol+displaypad), left); + else { + xx = POPT_fprintf(fp," %s\n", left); + goto out; + } + + left = _free(left); + if (defs) + help = defs; + + helpLength = strlen(help); + while (helpLength > lineLength) { + const char * ch; + char format[16]; + + ch = help + lineLength - 1; + while (ch > help && !_isspaceptr(ch)) + ch = POPT_prev_char(ch); + if (ch == help) break; /* give up */ + while (ch > (help + 1) && _isspaceptr(ch)) + ch = POPT_prev_char (ch); + ch = POPT_next_char(ch); + + /* + * XXX strdup is necessary to add NUL terminator so that an unknown + * no. of (possible) multi-byte characters can be displayed. + */ + { char * fmthelp = xstrdup(help); + if (fmthelp) { + fmthelp[ch - help] = '\0'; + sprintf(format, "%%s\n%%%ds", (int) indentLength); + /*@-formatconst@*/ + xx = POPT_fprintf(fp, format, fmthelp, " "); + /*@=formatconst@*/ + free(fmthelp); + } + } + + help = ch; + while (_isspaceptr(help) && *help) + help = POPT_next_char(help); + helpLength = strlen(help); + } + + if (helpLength) fprintf(fp, "%s\n", help); + help = NULL; + +out: + /*@-dependenttrans@*/ + defs = _free(defs); + /*@=dependenttrans@*/ + left = _free(left); +} + +/** + * Find display width for longest argument string. + * @param opt option(s) + * @param translation_domain translation domain + * @return display width + */ +static size_t maxArgWidth(const struct poptOption * opt, + /*@null@*/ const char * translation_domain) + /*@*/ +{ + size_t max = 0; + size_t len = 0; + const char * argDescrip; + + if (opt != NULL) + while (opt->longName || opt->shortName || opt->arg) { + if (poptArgType(opt) == POPT_ARG_INCLUDE_TABLE) { + if (opt->arg) /* XXX program error */ + len = maxArgWidth(opt->arg, translation_domain); + if (len > max) max = len; + } else if (!F_ISSET(opt, DOC_HIDDEN)) { + len = sizeof(" ")-1; + /* XXX --long always padded for alignment with/without "-X, ". */ + len += sizeof("-X, ")-1; + if (opt->longName) { + len += (F_ISSET(opt, ONEDASH) ? sizeof("-") : sizeof("--")) - 1; + len += strlen(opt->longName); + } + + argDescrip = getArgDescrip(opt, translation_domain); + + if (argDescrip) { + + /* XXX argDescrip[0] determines "--foo=bar" or "--foo bar". */ + if (!strchr(" =(", argDescrip[0])) len += sizeof("=")-1; + + /* Adjust for (possible) wide characters. */ + len += stringDisplayWidth(argDescrip); + } + + if (F_ISSET(opt, OPTIONAL)) len += sizeof("[]")-1; + if (len > max) max = len; + } + opt++; + } + + return max; +} + +/** + * Display popt alias and exec help. + * @param fp output file handle + * @param items alias/exec array + * @param nitems no. of alias/exec entries + * @param columns output display width control + * @param translation_domain translation domain + */ +static void itemHelp(FILE * fp, + /*@null@*/ poptItem items, int nitems, + columns_t columns, + /*@null@*/ const char * translation_domain) + /*@globals fileSystem @*/ + /*@modifies fp, fileSystem @*/ +{ + poptItem item; + int i; + + if (items != NULL) + for (i = 0, item = items; i < nitems; i++, item++) { + const struct poptOption * opt; + opt = &item->option; + if ((opt->longName || opt->shortName) && !F_ISSET(opt, DOC_HIDDEN)) + singleOptionHelp(fp, columns, opt, translation_domain); + } +} + +/** + * Display help text for a table of options. + * @param con context + * @param fp output file handle + * @param table option(s) + * @param columns output display width control + * @param translation_domain translation domain + */ +static void singleTableHelp(poptContext con, FILE * fp, + /*@null@*/ const struct poptOption * table, + columns_t columns, + /*@null@*/ const char * translation_domain) + /*@globals fileSystem @*/ + /*@modifies fp, columns->cur, fileSystem @*/ +{ + const struct poptOption * opt; + const char *sub_transdom; + int xx; + + if (table == poptAliasOptions) { + itemHelp(fp, con->aliases, con->numAliases, columns, NULL); + itemHelp(fp, con->execs, con->numExecs, columns, NULL); + return; + } + + if (table != NULL) + for (opt = table; opt->longName || opt->shortName || opt->arg; opt++) { + if ((opt->longName || opt->shortName) && !F_ISSET(opt, DOC_HIDDEN)) + singleOptionHelp(fp, columns, opt, translation_domain); + } + + if (table != NULL) + for (opt = table; opt->longName || opt->shortName || opt->arg; opt++) { + if (poptArgType(opt) != POPT_ARG_INCLUDE_TABLE) + continue; + sub_transdom = getTableTranslationDomain(opt->arg); + if (sub_transdom == NULL) + sub_transdom = translation_domain; + + /* If no popt aliases/execs, skip poptAliasOption processing. */ + if (opt->arg == poptAliasOptions && !(con->numAliases || con->numExecs)) + continue; + if (opt->descrip) + xx = POPT_fprintf(fp, "\n%s\n", D_(sub_transdom, opt->descrip)); + + singleTableHelp(con, fp, opt->arg, columns, sub_transdom); + } +} + +/** + * @param con context + * @param fp output file handle + */ +static size_t showHelpIntro(poptContext con, FILE * fp) + /*@globals fileSystem @*/ + /*@modifies fp, fileSystem @*/ +{ + size_t len = (size_t)6; + int xx; + + xx = POPT_fprintf(fp, POPT_("Usage:")); + if (!(con->flags & POPT_CONTEXT_KEEP_FIRST)) { + struct optionStackEntry * os = con->optionStack; + const char * fn = (os->argv ? os->argv[0] : NULL); + if (fn == NULL) return len; + if (strchr(fn, '/')) fn = strrchr(fn, '/') + 1; + /* XXX POPT_fprintf not needed for argv[0] display. */ + fprintf(fp, " %s", fn); + len += strlen(fn) + 1; + } + + return len; +} + +void poptPrintHelp(poptContext con, FILE * fp, /*@unused@*/ UNUSED(int flags)) +{ + columns_t columns = calloc((size_t)1, sizeof(*columns)); + int xx; + + (void) showHelpIntro(con, fp); + if (con->otherHelp) + xx = POPT_fprintf(fp, " %s\n", con->otherHelp); + else + xx = POPT_fprintf(fp, " %s\n", POPT_("[OPTION...]")); + + if (columns) { + columns->cur = maxArgWidth(con->options, NULL); + columns->max = maxColumnWidth(fp); + singleTableHelp(con, fp, con->options, columns, NULL); + free(columns); + } +} + +/** + * Display usage text for an option. + * @param fp output file handle + * @param columns output display width control + * @param opt option(s) + * @param translation_domain translation domain + */ +static size_t singleOptionUsage(FILE * fp, columns_t columns, + const struct poptOption * opt, + /*@null@*/ const char *translation_domain) + /*@globals fileSystem @*/ + /*@modifies fp, columns->cur, fileSystem @*/ +{ + size_t len = sizeof(" []")-1; + const char * argDescrip = getArgDescrip(opt, translation_domain); + /* Display shortName iff printable non-space. */ + int prtshort = (int)(isprint((int)opt->shortName) && opt->shortName != ' '); + +#define prtlong (opt->longName != NULL) /* XXX splint needs a clue */ + if (!(prtshort || prtlong)) + return columns->cur; + + len = sizeof(" []")-1; + if (prtshort) + len += sizeof("-c")-1; + if (prtlong) { + if (prtshort) len += sizeof("|")-1; + len += (F_ISSET(opt, ONEDASH) ? sizeof("-") : sizeof("--")) - 1; + len += strlen(opt->longName); + } + + if (argDescrip) { + + /* XXX argDescrip[0] determines "--foo=bar" or "--foo bar". */ + if (!strchr(" =(", argDescrip[0])) len += sizeof("=")-1; + + /* Adjust for (possible) wide characters. */ + len += stringDisplayWidth(argDescrip); + } + + if ((columns->cur + len) > columns->max) { + fprintf(fp, "\n "); + columns->cur = (size_t)7; + } + + fprintf(fp, " ["); + if (prtshort) + fprintf(fp, "-%c", opt->shortName); + if (prtlong) + fprintf(fp, "%s%s%s", + (prtshort ? "|" : ""), + (F_ISSET(opt, ONEDASH) ? "-" : "--"), + opt->longName); +#undef prtlong + + if (argDescrip) { + /* XXX argDescrip[0] determines "--foo=bar" or "--foo bar". */ + if (!strchr(" =(", argDescrip[0])) fprintf(fp, "="); + fprintf(fp, "%s", argDescrip); + } + fprintf(fp, "]"); + + return columns->cur + len + 1; +} + +/** + * Display popt alias and exec usage. + * @param fp output file handle + * @param columns output display width control + * @param item alias/exec array + * @param nitems no. of ara/exec entries + * @param translation_domain translation domain + */ +static size_t itemUsage(FILE * fp, columns_t columns, + /*@null@*/ poptItem item, int nitems, + /*@null@*/ const char * translation_domain) + /*@globals fileSystem @*/ + /*@modifies fp, columns->cur, fileSystem @*/ +{ + int i; + + if (item != NULL) + for (i = 0; i < nitems; i++, item++) { + const struct poptOption * opt; + opt = &item->option; + if (poptArgType(opt) == POPT_ARG_INTL_DOMAIN) { + translation_domain = (const char *)opt->arg; + } else + if ((opt->longName || opt->shortName) && !F_ISSET(opt, DOC_HIDDEN)) { + columns->cur = singleOptionUsage(fp, columns, opt, translation_domain); + } + } + + return columns->cur; +} + +/** + * Keep track of option tables already processed. + */ +typedef struct poptDone_s { + int nopts; + int maxopts; +/*@null@*/ + const void ** opts; +} * poptDone; + +/** + * Display usage text for a table of options. + * @param con context + * @param fp output file handle + * @param columns output display width control + * @param opt option(s) + * @param translation_domain translation domain + * @param done tables already processed + * @return + */ +static size_t singleTableUsage(poptContext con, FILE * fp, columns_t columns, + /*@null@*/ const struct poptOption * opt, + /*@null@*/ const char * translation_domain, + /*@null@*/ poptDone done) + /*@globals fileSystem @*/ + /*@modifies fp, columns->cur, done, fileSystem @*/ +{ + if (opt != NULL) + for (; (opt->longName || opt->shortName || opt->arg) ; opt++) { + if (poptArgType(opt) == POPT_ARG_INTL_DOMAIN) { + translation_domain = (const char *)opt->arg; + } else + if (poptArgType(opt) == POPT_ARG_INCLUDE_TABLE) { + if (done) { + int i = 0; + if (done->opts != NULL) + for (i = 0; i < done->nopts; i++) { + const void * that = done->opts[i]; + if (that == NULL || that != opt->arg) + /*@innercontinue@*/ continue; + /*@innerbreak@*/ break; + } + /* Skip if this table has already been processed. */ + if (opt->arg == NULL || i < done->nopts) + continue; + if (done->opts != NULL && done->nopts < done->maxopts) + done->opts[done->nopts++] = (const void *) opt->arg; + } + columns->cur = singleTableUsage(con, fp, columns, opt->arg, + translation_domain, done); + } else + if ((opt->longName || opt->shortName) && !F_ISSET(opt, DOC_HIDDEN)) { + columns->cur = singleOptionUsage(fp, columns, opt, translation_domain); + } + } + + return columns->cur; +} + +/** + * Return concatenated short options for display. + * @todo Sub-tables should be recursed. + * @param opt option(s) + * @param fp output file handle + * @retval str concatenation of short options + * @return length of display string + */ +static size_t showShortOptions(const struct poptOption * opt, FILE * fp, + /*@null@*/ char * str) + /*@globals fileSystem @*/ + /*@modifies str, *fp, fileSystem @*/ + /*@requires maxRead(str) >= 0 @*/ +{ + /* bufsize larger then the ascii set, lazy allocation on top level call. */ + size_t nb = (size_t)300; + char * s = (str != NULL ? str : calloc((size_t)1, nb)); + size_t len = (size_t)0; + + if (s == NULL) + return 0; + + if (opt != NULL) + for (; (opt->longName || opt->shortName || opt->arg); opt++) { + if (!F_ISSET(opt, DOC_HIDDEN) && opt->shortName && !poptArgType(opt)) + { + /* Display shortName iff unique printable non-space. */ + if (!strchr(s, opt->shortName) && isprint((int)opt->shortName) + && opt->shortName != ' ') + s[strlen(s)] = opt->shortName; + } else if (poptArgType(opt) == POPT_ARG_INCLUDE_TABLE) + if (opt->arg) /* XXX program error */ + len = showShortOptions(opt->arg, fp, s); + } + + /* On return to top level, print the short options, return print length. */ + if (s != str && *s != '\0') { + fprintf(fp, " [-%s]", s); + len = strlen(s) + sizeof(" [-]")-1; + } +/*@-temptrans@*/ /* LCL: local s, not str arg, is being freed. */ + if (s != str) + free(s); +/*@=temptrans@*/ + return len; +} + +void poptPrintUsage(poptContext con, FILE * fp, /*@unused@*/ UNUSED(int flags)) +{ + columns_t columns = calloc((size_t)1, sizeof(*columns)); + struct poptDone_s done_buf; + poptDone done = &done_buf; + + memset(done, 0, sizeof(*done)); + done->nopts = 0; + done->maxopts = 64; + if (columns) { + columns->cur = done->maxopts * sizeof(*done->opts); + columns->max = maxColumnWidth(fp); + done->opts = calloc((size_t)1, columns->cur); + /*@-keeptrans@*/ + if (done->opts != NULL) + done->opts[done->nopts++] = (const void *) con->options; + /*@=keeptrans@*/ + + columns->cur = showHelpIntro(con, fp); + columns->cur += showShortOptions(con->options, fp, NULL); + columns->cur = singleTableUsage(con, fp, columns, con->options, NULL, done); + columns->cur = itemUsage(fp, columns, con->aliases, con->numAliases, NULL); + columns->cur = itemUsage(fp, columns, con->execs, con->numExecs, NULL); + + if (con->otherHelp) { + columns->cur += strlen(con->otherHelp) + 1; + if (columns->cur > columns->max) fprintf(fp, "\n "); + fprintf(fp, " %s", con->otherHelp); + } + + fprintf(fp, "\n"); + if (done->opts != NULL) + free(done->opts); + free(columns); + } +} + +void poptSetOtherOptionHelp(poptContext con, const char * text) +{ + con->otherHelp = _free(con->otherHelp); + con->otherHelp = xstrdup(text); +}
diff --git a/popt-1.16/poptint.c b/popt-1.16/poptint.c new file mode 100644 index 0000000..83fa7d6 --- /dev/null +++ b/popt-1.16/poptint.c
@@ -0,0 +1,199 @@ +#include "system.h" +#include <stdarg.h> +#include "poptint.h" + +/* Any pair of 32 bit hashes can be used. lookup3.c generates pairs, will do. */ +#define _JLU3_jlu32lpair 1 +#define jlu32lpair poptJlu32lpair +#include "lookup3.c" + +/*@-varuse +charint +ignoresigns @*/ +/*@unchecked@*/ /*@observer@*/ +static const unsigned char utf8_skip_data[256] = { + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,6,6,1,1 +}; +/*@=varuse =charint =ignoresigns @*/ + +const char * +POPT_prev_char (const char *str) +{ + const char *p = str; + + while (1) { + p--; + if (((unsigned)*p & 0xc0) != (unsigned)0x80) + return p; + } +} + +const char * +POPT_next_char (const char *str) +{ + const char *p = str; + + while (*p != '\0') { + p++; + if (((unsigned)*p & 0xc0) != (unsigned)0x80) + break; + } + return p; +} + +#if !defined(POPT_fprintf) /* XXX lose all the goop ... */ + +#if defined(HAVE_DCGETTEXT) && !defined(__LCLINT__) +/* + * Rebind a "UTF-8" codeset for popt's internal use. + */ +char * +POPT_dgettext(const char * dom, const char * str) +{ + char * codeset = NULL; + char * retval = NULL; + + if (!dom) + dom = textdomain(NULL); + codeset = bind_textdomain_codeset(dom, NULL); + bind_textdomain_codeset(dom, "UTF-8"); + retval = dgettext(dom, str); + bind_textdomain_codeset(dom, codeset); + + return retval; +} +#endif + +#ifdef HAVE_ICONV +/** + * Return malloc'd string converted from UTF-8 to current locale. + * @param istr input string (UTF-8 encoding assumed) + * @return localized string + */ +static /*@only@*/ /*@null@*/ char * +strdup_locale_from_utf8 (/*@null@*/ char * istr) + /*@*/ +{ + char * codeset = NULL; + char * ostr = NULL; + iconv_t cd; + + if (istr == NULL) + return NULL; + +#ifdef HAVE_LANGINFO_H + codeset = nl_langinfo ((nl_item)CODESET); +#endif + + if (codeset != NULL && strcmp(codeset, "UTF-8") != 0 + && (cd = iconv_open(codeset, "UTF-8")) != (iconv_t)-1) + { + char * shift_pin = NULL; + size_t db = strlen(istr); +/*@owned@*/ + char * dstr = malloc((db + 1) * sizeof(*dstr)); + char * pin = istr; + char * pout = dstr; + size_t ib = db; + size_t ob = db; + size_t err; + + if (dstr == NULL) + return NULL; + err = iconv(cd, NULL, NULL, NULL, NULL); + while (1) { + *pout = '\0'; + err = iconv(cd, &pin, &ib, &pout, &ob); + if (err != (size_t)-1) { + if (shift_pin == NULL) { + shift_pin = pin; + pin = NULL; + ib = 0; + continue; + } + } else + switch (errno) { + case E2BIG: + { size_t used = (size_t)(pout - dstr); + db *= 2; + dstr = realloc(dstr, (db + 1) * sizeof(*dstr)); + if (dstr != NULL) { + pout = dstr + used; + ob = db - used; + continue; + } + } /*@switchbreak@*/ break; + case EINVAL: + case EILSEQ: + default: + /*@switchbreak@*/ break; + } + break; + } + (void) iconv_close(cd); + *pout = '\0'; + ostr = xstrdup(dstr); + free(dstr); + } else + ostr = xstrdup(istr); + + return ostr; +} +#endif + +int +POPT_fprintf (FILE * stream, const char * format, ...) +{ + char * b = NULL, * ob = NULL; + int rc; + va_list ap; + +#if defined(HAVE_VASPRINTF) && !defined(__LCLINT__) + va_start(ap, format); + if ((rc = vasprintf(&b, format, ap)) < 0) + b = NULL; + va_end(ap); +#else + size_t nb = (size_t)1; + + /* HACK: add +1 to the realloc no. of bytes "just in case". */ + /* XXX Likely unneeded, the issues wrto vsnprintf(3) return b0rkage have + * to do with whether the final '\0' is counted (or not). The code + * below already adds +1 for the (possibly already counted) trailing NUL. + */ + while ((b = realloc(b, nb+1)) != NULL) { + va_start(ap, format); + rc = vsnprintf(b, nb, format, ap); + va_end(ap); + if (rc > -1) { /* glibc 2.1 */ + if ((size_t)rc < nb) + break; + nb = (size_t)(rc + 1); /* precise buffer length known */ + } else /* glibc 2.0 */ + nb += (nb < (size_t)100 ? (size_t)100 : nb); + ob = b; + } +#endif + + rc = 0; + if (b != NULL) { +#ifdef HAVE_ICONV + ob = strdup_locale_from_utf8(b); + if (ob != NULL) { + rc = fprintf(stream, "%s", ob); + free(ob); + } else +#endif + rc = fprintf(stream, "%s", b); + free (b); + } + + return rc; +} + +#endif /* !defined(POPT_fprintf) */
diff --git a/popt-1.16/poptint.h b/popt-1.16/poptint.h new file mode 100644 index 0000000..80cbaca --- /dev/null +++ b/popt-1.16/poptint.h
@@ -0,0 +1,222 @@ +/** \ingroup popt + * \file popt/poptint.h + */ + +/* (C) 1998-2000 Red Hat, Inc. -- Licensing details are in the COPYING + file accompanying popt source distributions, available from + ftp://ftp.rpm.org/pub/rpm/dist. */ + +#ifndef H_POPTINT +#define H_POPTINT + +#include <stdint.h> + +/** + * Wrapper to free(3), hides const compilation noise, permit NULL, return NULL. + * @param p memory to free + * @retval NULL always + */ +/*@unused@*/ static inline /*@null@*/ void * +_free(/*@only@*/ /*@null@*/ const void * p) + /*@modifies p @*/ +{ + if (p != NULL) free((void *)p); + return NULL; +} + +/* Bit mask macros. */ +/*@-exporttype -redef @*/ +typedef unsigned int __pbm_bits; +/*@=exporttype =redef @*/ +#define __PBM_NBITS (8 * sizeof (__pbm_bits)) +#define __PBM_IX(d) ((d) / __PBM_NBITS) +#define __PBM_MASK(d) ((__pbm_bits) 1 << (((unsigned)(d)) % __PBM_NBITS)) +/*@-exporttype -redef @*/ +typedef struct { + __pbm_bits bits[1]; +} pbm_set; +/*@=exporttype =redef @*/ +#define __PBM_BITS(set) ((set)->bits) + +#define PBM_ALLOC(d) calloc(__PBM_IX (d) + 1, sizeof(__pbm_bits)) +#define PBM_FREE(s) _free(s); +#define PBM_SET(d, s) (__PBM_BITS (s)[__PBM_IX (d)] |= __PBM_MASK (d)) +#define PBM_CLR(d, s) (__PBM_BITS (s)[__PBM_IX (d)] &= ~__PBM_MASK (d)) +#define PBM_ISSET(d, s) ((__PBM_BITS (s)[__PBM_IX (d)] & __PBM_MASK (d)) != 0) + +extern void poptJlu32lpair(/*@null@*/ const void *key, size_t size, + uint32_t *pc, uint32_t *pb) + /*@modifies *pc, *pb@*/; + +/** \ingroup popt + * Typedef's for string and array of strings. + */ +/*@-exporttype@*/ +typedef const char * poptString; +typedef poptString * poptArgv; +/*@=exporttype@*/ + +/** \ingroup popt + * A union to simplify opt->arg access without casting. + */ +/*@-exporttype -fielduse@*/ +typedef union poptArg_u { +/*@shared@*/ + void * ptr; + int * intp; + short * shortp; + long * longp; + long long * longlongp; + float * floatp; + double * doublep; + const char ** argv; + poptCallbackType cb; +/*@shared@*/ + poptOption opt; +} poptArg; +/*@=exporttype =fielduse@*/ + +/*@-exportvar@*/ +/*@unchecked@*/ +extern unsigned int _poptArgMask; +/*@unchecked@*/ +extern unsigned int _poptGroupMask; +/*@=exportvar@*/ + +#define poptArgType(_opt) ((_opt)->argInfo & _poptArgMask) +#define poptGroup(_opt) ((_opt)->argInfo & _poptGroupMask) + +#define F_ISSET(_opt, _FLAG) ((_opt)->argInfo & POPT_ARGFLAG_##_FLAG) +#define LF_ISSET(_FLAG) (argInfo & POPT_ARGFLAG_##_FLAG) +#define CBF_ISSET(_opt, _FLAG) ((_opt)->argInfo & POPT_CBFLAG_##_FLAG) + +/* XXX sick hack to preserve pretense of a popt-1.x ABI. */ +#define poptSubstituteHelpI18N(opt) \ + { /*@-observertrans@*/ \ + if ((opt) == poptHelpOptions) (opt) = poptHelpOptionsI18N; \ + /*@=observertrans@*/ } + +struct optionStackEntry { + int argc; +/*@only@*/ /*@null@*/ + poptArgv argv; +/*@only@*/ /*@null@*/ + pbm_set * argb; + int next; +/*@only@*/ /*@null@*/ + char * nextArg; +/*@observer@*/ /*@null@*/ + const char * nextCharArg; +/*@dependent@*/ /*@null@*/ + poptItem currAlias; + int stuffed; +}; + +struct poptContext_s { + struct optionStackEntry optionStack[POPT_OPTION_DEPTH]; +/*@dependent@*/ + struct optionStackEntry * os; +/*@owned@*/ /*@null@*/ + poptArgv leftovers; + int numLeftovers; + int nextLeftover; +/*@keep@*/ + const struct poptOption * options; + int restLeftover; +/*@only@*/ /*@null@*/ + const char * appName; +/*@only@*/ /*@null@*/ + poptItem aliases; + int numAliases; + unsigned int flags; +/*@owned@*/ /*@null@*/ + poptItem execs; + int numExecs; +/*@only@*/ /*@null@*/ + poptArgv finalArgv; + int finalArgvCount; + int finalArgvAlloced; +/*@null@*/ + int (*maincall) (int argc, const char **argv); +/*@dependent@*/ /*@null@*/ + poptItem doExec; +/*@only@*/ /*@null@*/ + const char * execPath; + int execAbsolute; +/*@only@*/ /*@relnull@*/ + const char * otherHelp; +/*@null@*/ + pbm_set * arg_strip; +}; + +#if defined(POPT_fprintf) +#define POPT_dgettext dgettext +#else +#ifdef HAVE_ICONV +#include <iconv.h> +#if defined(__LCLINT__) +/*@-declundef -incondefs @*/ +extern /*@only@*/ iconv_t iconv_open(const char *__tocode, const char *__fromcode) + /*@*/; + +extern size_t iconv(iconv_t __cd, /*@null@*/ char ** __inbuf, + /*@null@*/ /*@out@*/ size_t * __inbytesleft, + /*@null@*/ /*@out@*/ char ** __outbuf, + /*@null@*/ /*@out@*/ size_t * __outbytesleft) + /*@modifies __cd, + *__inbuf, *__inbytesleft, *__outbuf, *__outbytesleft @*/; + +extern int iconv_close(/*@only@*/ iconv_t __cd) + /*@modifies __cd @*/; +/*@=declundef =incondefs @*/ +#endif +#endif + +#ifdef HAVE_LANGINFO_H +#include <langinfo.h> +#if defined(__LCLINT__) +/*@-declundef -incondefs @*/ +extern char *nl_langinfo (nl_item __item) + /*@*/; +/*@=declundef =incondefs @*/ +#endif +#endif + +#if defined(HAVE_DCGETTEXT) && !defined(__LCLINT__) +char *POPT_dgettext(const char * dom, const char * str) + /*@*/; +#endif + +int POPT_fprintf (FILE* stream, const char *format, ...) + /*@globals fileSystem @*/ + /*@modifies stream, fileSystem @*/; +#endif /* !defined(POPT_fprintf) */ + +const char *POPT_prev_char (/*@returned@*/ const char *str) + /*@*/; + +const char *POPT_next_char (/*@returned@*/ const char *str) + /*@*/; + +#endif + +#if defined(ENABLE_NLS) && defined(HAVE_LIBINTL_H) +#include <libintl.h> +#endif + +#if defined(ENABLE_NLS) && defined(HAVE_GETTEXT) && !defined(__LCLINT__) +#define _(foo) gettext(foo) +#else +#define _(foo) foo +#endif + +#if defined(ENABLE_NLS) && defined(HAVE_DCGETTEXT) && !defined(__LCLINT__) +#define D_(dom, str) POPT_dgettext(dom, str) +#define POPT_(foo) D_("popt", foo) +#else +#define D_(dom, str) str +#define POPT_(foo) foo +#endif + +#define N_(foo) foo +
diff --git a/popt-1.16/poptparse.c b/popt-1.16/poptparse.c new file mode 100644 index 0000000..d196cc8 --- /dev/null +++ b/popt-1.16/poptparse.c
@@ -0,0 +1,230 @@ +/** \ingroup popt + * \file popt/poptparse.c + */ + +/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING + file accompanying popt source distributions, available from + ftp://ftp.rpm.org/pub/rpm/dist. */ + +#include "system.h" + +#define POPT_ARGV_ARRAY_GROW_DELTA 5 + +int poptDupArgv(int argc, const char **argv, + int * argcPtr, const char *** argvPtr) +{ + size_t nb = (argc + 1) * sizeof(*argv); + const char ** argv2; + char * dst; + int i; + + if (argc <= 0 || argv == NULL) /* XXX can't happen */ + return POPT_ERROR_NOARG; + for (i = 0; i < argc; i++) { + if (argv[i] == NULL) + return POPT_ERROR_NOARG; + nb += strlen(argv[i]) + 1; + } + + dst = malloc(nb); + if (dst == NULL) /* XXX can't happen */ + return POPT_ERROR_MALLOC; + argv2 = (void *) dst; + dst += (argc + 1) * sizeof(*argv); + *dst = '\0'; + + for (i = 0; i < argc; i++) { + argv2[i] = dst; + dst = stpcpy(dst, argv[i]); + dst++; /* trailing NUL */ + } + argv2[argc] = NULL; + + if (argvPtr) { + *argvPtr = argv2; + } else { + free(argv2); + argv2 = NULL; + } + if (argcPtr) + *argcPtr = argc; + return 0; +} + +int poptParseArgvString(const char * s, int * argcPtr, const char *** argvPtr) +{ + const char * src; + char quote = '\0'; + int argvAlloced = POPT_ARGV_ARRAY_GROW_DELTA; + const char ** argv = malloc(sizeof(*argv) * argvAlloced); + int argc = 0; + size_t buflen = strlen(s) + 1; + char * buf, * bufOrig = NULL; + int rc = POPT_ERROR_MALLOC; + + if (argv == NULL) return rc; + buf = bufOrig = calloc((size_t)1, buflen); + if (buf == NULL) { + free(argv); + return rc; + } + argv[argc] = buf; + + for (src = s; *src != '\0'; src++) { + if (quote == *src) { + quote = '\0'; + } else if (quote != '\0') { + if (*src == '\\') { + src++; + if (!*src) { + rc = POPT_ERROR_BADQUOTE; + goto exit; + } + if (*src != quote) *buf++ = '\\'; + } + *buf++ = *src; + } else if (_isspaceptr(src)) { + if (*argv[argc] != '\0') { + buf++, argc++; + if (argc == argvAlloced) { + argvAlloced += POPT_ARGV_ARRAY_GROW_DELTA; + argv = realloc(argv, sizeof(*argv) * argvAlloced); + if (argv == NULL) goto exit; + } + argv[argc] = buf; + } + } else switch (*src) { + case '"': + case '\'': + quote = *src; + /*@switchbreak@*/ break; + case '\\': + src++; + if (!*src) { + rc = POPT_ERROR_BADQUOTE; + goto exit; + } + /*@fallthrough@*/ + default: + *buf++ = *src; + /*@switchbreak@*/ break; + } + } + + if (strlen(argv[argc])) { + argc++, buf++; + } + + rc = poptDupArgv(argc, argv, argcPtr, argvPtr); + +exit: + if (bufOrig) free(bufOrig); + if (argv) free(argv); + return rc; +} + +/* still in the dev stage. + * return values, perhaps 1== file erro + * 2== line to long + * 3== umm.... more? + */ +int poptConfigFileToString(FILE *fp, char ** argstrp, + /*@unused@*/ UNUSED(int flags)) +{ + char line[999]; + char * argstr; + char * p; + char * q; + char * x; + size_t t; + size_t argvlen = 0; + size_t maxlinelen = sizeof(line); + size_t linelen; + size_t maxargvlen = (size_t)480; + + *argstrp = NULL; + + /* | this_is = our_line + * p q x + */ + + if (fp == NULL) + return POPT_ERROR_NULLARG; + + argstr = calloc(maxargvlen, sizeof(*argstr)); + if (argstr == NULL) return POPT_ERROR_MALLOC; + + while (fgets(line, (int)maxlinelen, fp) != NULL) { + p = line; + + /* loop until first non-space char or EOL */ + while( *p != '\0' && _isspaceptr(p) ) + p++; + + linelen = strlen(p); + if (linelen >= maxlinelen-1) { + free(argstr); + return POPT_ERROR_OVERFLOW; /* XXX line too long */ + } + + if (*p == '\0' || *p == '\n') continue; /* line is empty */ + if (*p == '#') continue; /* comment line */ + + q = p; + + while (*q != '\0' && (!_isspaceptr(q)) && *q != '=') + q++; + + if (_isspaceptr(q)) { + /* a space after the name, find next non space */ + *q++='\0'; + while( *q != '\0' && _isspaceptr(q) ) q++; + } + if (*q == '\0') { + /* single command line option (ie, no name=val, just name) */ + q[-1] = '\0'; /* kill off newline from fgets() call */ + argvlen += (t = (size_t)(q - p)) + (sizeof(" --")-1); + if (argvlen >= maxargvlen) { + maxargvlen = (t > maxargvlen) ? t*2 : maxargvlen*2; + argstr = realloc(argstr, maxargvlen); + if (argstr == NULL) return POPT_ERROR_MALLOC; + } + strcat(argstr, " --"); + strcat(argstr, p); + continue; + } + if (*q != '=') + continue; /* XXX for now, silently ignore bogus line */ + + /* *q is an equal sign. */ + *q++ = '\0'; + + /* find next non-space letter of value */ + while (*q != '\0' && _isspaceptr(q)) + q++; + if (*q == '\0') + continue; /* XXX silently ignore missing value */ + + /* now, loop and strip all ending whitespace */ + x = p + linelen; + while (_isspaceptr(--x)) + *x = '\0'; /* null out last char if space (including fgets() NL) */ + + /* rest of line accept */ + t = (size_t)(x - p); + argvlen += t + (sizeof("' --='")-1); + if (argvlen >= maxargvlen) { + maxargvlen = (t > maxargvlen) ? t*2 : maxargvlen*2; + argstr = realloc(argstr, maxargvlen); + if (argstr == NULL) return POPT_ERROR_MALLOC; + } + strcat(argstr, " --"); + strcat(argstr, p); + strcat(argstr, "=\""); + strcat(argstr, q); + strcat(argstr, "\""); + } + + *argstrp = argstr; + return 0; +}
diff --git a/popt-1.16/system.h b/popt-1.16/system.h new file mode 100644 index 0000000..51c58f9 --- /dev/null +++ b/popt-1.16/system.h
@@ -0,0 +1,103 @@ +/** + * \file popt/system.h + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#if defined (__GLIBC__) && defined(__LCLINT__) +/*@-declundef@*/ +/*@unchecked@*/ +extern __const __int32_t *__ctype_tolower; +/*@unchecked@*/ +extern __const __int32_t *__ctype_toupper; +/*@=declundef@*/ +#endif + +#include <ctype.h> + +/* XXX isspace(3) has i18n encoding signednesss issues on Solaris. */ +#define _isspaceptr(_chp) isspace((int)(*(unsigned char *)(_chp))) + +#include <errno.h> +#include <fcntl.h> +#include <limits.h> + +#ifdef HAVE_MCHECK_H +#include <mcheck.h> +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#if defined(HAVE_UNISTD_H) && !defined(__LCLINT__) +#include <unistd.h> +#endif + +#ifdef __NeXT +/* access macros are not declared in non posix mode in unistd.h - + don't try to use posix on NeXTstep 3.3 ! */ +#include <libc.h> +#endif + +/*@-incondefs@*/ +/*@mayexit@*/ /*@only@*/ /*@out@*/ /*@unused@*/ +void * xmalloc (size_t size) + /*@globals errno @*/ + /*@ensures maxSet(result) == (size - 1) @*/ + /*@modifies errno @*/; + +/*@mayexit@*/ /*@only@*/ /*@unused@*/ +void * xcalloc (size_t nmemb, size_t size) + /*@ensures maxSet(result) == (nmemb - 1) @*/ + /*@*/; + +/*@mayexit@*/ /*@only@*/ /*@unused@*/ +void * xrealloc (/*@null@*/ /*@only@*/ void * ptr, size_t size) + /*@ensures maxSet(result) == (size - 1) @*/ + /*@modifies *ptr @*/; + +/*@mayexit@*/ /*@only@*/ /*@unused@*/ +char * xstrdup (const char *str) + /*@*/; +/*@=incondefs@*/ + +#if !defined(HAVE_STPCPY) +/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */ +static inline char * stpcpy (char *dest, const char * src) { + register char *d = dest; + register const char *s = src; + + do + *d++ = *s; + while (*s++ != '\0'); + return d - 1; +} +#endif + +/* Memory allocation via macro defs to get meaningful locations from mtrace() */ +#if defined(HAVE_MCHECK_H) && defined(__GNUC__) +#define vmefail() (fprintf(stderr, "virtual memory exhausted.\n"), exit(EXIT_FAILURE), NULL) +#define xmalloc(_size) (malloc(_size) ? : vmefail()) +#define xcalloc(_nmemb, _size) (calloc((_nmemb), (_size)) ? : vmefail()) +#define xrealloc(_ptr, _size) (realloc((_ptr), (_size)) ? : vmefail()) +#define xstrdup(_str) (strcpy((malloc(strlen(_str)+1) ? : vmefail()), (_str))) +#else +#define xmalloc(_size) malloc(_size) +#define xcalloc(_nmemb, _size) calloc((_nmemb), (_size)) +#define xrealloc(_ptr, _size) realloc((_ptr), (_size)) +#define xstrdup(_str) strdup(_str) +#endif /* defined(HAVE_MCHECK_H) && defined(__GNUC__) */ + +#if defined(HAVE___SECURE_GETENV) && !defined(__LCLINT__) +#define getenv(_s) __secure_getenv(_s) +#endif + +#if !defined(__GNUC__) && !defined(__attribute__) +#define __attribute__(x) +#endif +#define UNUSED(x) x __attribute__((__unused__)) + +#include "popt.h"
diff --git a/popt-1.16/tdict.c b/popt-1.16/tdict.c new file mode 100644 index 0000000..b2e0859 --- /dev/null +++ b/popt-1.16/tdict.c
@@ -0,0 +1,132 @@ +#include "system.h" +#include <stdio.h> +#include "popt.h" + +static int _debug = 0; +static int _verbose = 1; +static const char * dictfn = "/usr/share/dict/words"; +static poptBits dictbits = NULL; +static struct { + unsigned total; + unsigned hits; + unsigned misses; +} e; + +static int loadDict(const char * fn, poptBits * ap) +{ + char b[BUFSIZ]; + size_t nb = sizeof(b); + FILE * fp = fopen(fn, "r"); + char * t, *te; + int nlines = -1; + + if (fp == NULL || ferror(fp)) goto exit; + + nlines = 0; + while ((t = fgets(b, nb, fp)) != NULL) { + while (*t && isspace(*t)) t++; + if (*t == '#') continue; + te = t + strlen(t); + while (te-- > t && isspace(*te)) *te = '\0'; + if (*t == '\0') continue; + if (ap) { +if (_debug) +fprintf(stderr, "==> poptSaveBits(%p, \"%s\")\n", *ap, t); + (void) poptSaveBits(ap, 0, t); + } + nlines++; + } +exit: + if (fp) (void) fclose(fp); + return nlines; +} + +static struct poptOption options[] = { + { "debug", 'd', POPT_BIT_SET|POPT_ARGFLAG_TOGGLE, &_debug, 1, + "Set debugging.", NULL }, + { "verbose", 'v', POPT_BIT_SET|POPT_ARGFLAG_TOGGLE, &_verbose, 1, + "Set verbosity.", NULL }, + + POPT_AUTOALIAS + POPT_AUTOHELP + POPT_TABLEEND +}; + +int main(int argc, const char ** argv) +{ + poptContext optCon = NULL; + const char ** av = NULL; + poptBits avbits = NULL; + int ec = 2; /* assume failure */ + int rc; + +#if defined(HAVE_MCHECK_H) && defined(HAVE_MTRACE) + mtrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ +#endif + + /* XXX Scale the Bloom filters in popt. */ + if ((rc = loadDict(dictfn, NULL)) <= 0) + goto exit; + _poptBitsK = 2; + _poptBitsM = 0; + _poptBitsN = _poptBitsK * rc; + + optCon = poptGetContext("tdict", argc, argv, options, 0); + + /* Read all the options (if any). */ + while ((rc = poptGetNextOpt(optCon)) > 0) { + char * optArg = poptGetOptArg(optCon); + if (optArg) free(optArg); + switch (rc) { + default: goto exit; break; + } + } + if (rc < -1) { + fprintf(stderr, "tdict: %s: %s\n", + poptBadOption(optCon, POPT_BADOPTION_NOALIAS), + poptStrerror(rc)); + goto exit; + } + + if ((rc = loadDict(dictfn, &dictbits)) <= 0) + goto exit; + + av = poptGetArgs(optCon); + if ((rc = poptBitsArgs(optCon, &avbits)) != 0) + goto exit; + if (avbits) { + poptBits Ibits = NULL; + (void) poptBitsUnion(&Ibits, dictbits); + rc = poptBitsIntersect(&Ibits, avbits); + fprintf(stdout, "===== %s words are in %s\n", (rc ? "Some" : "No"), dictfn); + if (Ibits) free(Ibits); + } + if (av && avbits) + while (*av) { + rc = poptBitsChk(dictbits, *av); + if (rc < 0) goto exit; + e.total++; + if (rc > 0) { + if (_verbose) + fprintf(stdout, "%s:\tYES\n", *av); + e.hits++; + } else { + if (_verbose) + fprintf(stdout, "%s:\tNO\n", *av); + e.misses++; + } + av++; + } + + ec = 0; + +exit: + fprintf(stdout, "===== poptBits N:%u M:%u K:%u (%uKb) total(%u) = hits(%u) + misses(%u)\n", + _poptBitsN, _poptBitsM, _poptBitsK, (((_poptBitsM/8)+1)+1023)/1024, e.total, e.hits, e.misses); + if (avbits) free(avbits); + optCon = poptFreeContext(optCon); +#if defined(HAVE_MCHECK_H) && defined(HAVE_MTRACE) + muntrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ +#endif + return ec; +}
diff --git a/popt-1.16/test-poptrc b/popt-1.16/test-poptrc new file mode 100644 index 0000000..9d5370f --- /dev/null +++ b/popt-1.16/test-poptrc
@@ -0,0 +1,13 @@ +test1 alias --simple --arg2 \ + --POPTdesc=$"simple description" --POPTargs=$"ARG" +test1 alias --two --arg1 --arg2 alias +test1 alias --takerest -- +test1 alias -T --arg2 +test1 alias -O --arg1 + +test1 alias --grab --arg2 "'foo !#:+'" +test1 alias --grabbar --grab bar + +test1 exec --echo-args /bin/echo +test1 alias -e --echo-args +test1 exec -a /bin/echo
diff --git a/popt-1.16/test-poptrc.in b/popt-1.16/test-poptrc.in new file mode 100644 index 0000000..9d5370f --- /dev/null +++ b/popt-1.16/test-poptrc.in
@@ -0,0 +1,13 @@ +test1 alias --simple --arg2 \ + --POPTdesc=$"simple description" --POPTargs=$"ARG" +test1 alias --two --arg1 --arg2 alias +test1 alias --takerest -- +test1 alias -T --arg2 +test1 alias -O --arg1 + +test1 alias --grab --arg2 "'foo !#:+'" +test1 alias --grabbar --grab bar + +test1 exec --echo-args /bin/echo +test1 alias -e --echo-args +test1 exec -a /bin/echo
diff --git a/popt-1.16/test1.c b/popt-1.16/test1.c new file mode 100644 index 0000000..e0586b9 --- /dev/null +++ b/popt-1.16/test1.c
@@ -0,0 +1,362 @@ +/* (C) 1998-2002 Red Hat, Inc. -- Licensing details are in the COPYING + file accompanying popt source distributions, available from + ftp://ftp.rpm.org/pub/rpm/dist. */ + +#include "system.h" + +/*@unchecked@*/ +static int pass2 = 0; +static void option_callback(/*@unused@*/ UNUSED(poptContext con), + /*@unused@*/ UNUSED(enum poptCallbackReason reason), + const struct poptOption * opt, + char * arg, void * data) + /*@globals fileSystem @*/ + /*@modifies fileSystem @*/ +{ + if (pass2) + fprintf(stdout, "callback: %c %s %s ", opt->val, (char *) data, arg); +} + +/*@unchecked@*/ +static int arg1 = 0; +/*@unchecked@*/ /*@observer@*/ +static char * arg2 = "(none)"; +/*@unchecked@*/ +static int arg3 = 0; +/*@unchecked@*/ +static int inc = 0; +/*@unchecked@*/ +static int shortopt = 0; + +/*@unchecked@*/ +static int aVal = 141421; +/*@unchecked@*/ +static int bVal = 141421; +/*@unchecked@*/ +static unsigned int aFlag = 0x8aceU; +/*@unchecked@*/ +static unsigned int bFlag = 0x8aceU; + +/*@unchecked@*/ +static short aShort = (short)4523; +/*@unchecked@*/ +static short bShort = (short)4523; +/*@unchecked@*/ +static int aInt = 271828; +/*@unchecked@*/ +static int bInt = 271828; +/*@unchecked@*/ +static long aLong = 738905609L; +/*@unchecked@*/ +static long bLong = 738905609L; +/*@unchecked@*/ +static long long aLongLong = 738905609LL; +/*@unchecked@*/ +static long long bLongLong = 738905609LL; +/*@unchecked@*/ +static float aFloat = 3.1415926535; +/*@unchecked@*/ +static float bFloat = 3.1415926535; +/*@unchecked@*/ +static double aDouble = 9.86960440108935861883; +/*@unchecked@*/ +static double bDouble = 9.86960440108935861883; + +/*@unchecked@*/ /*@only@*/ /*@null@*/ +static const char ** aArgv = NULL; +/*@unchecked@*/ /*@only@*/ /*@null@*/ +static void * aBits = NULL; +/*@unchecked@*/ /*@observer@*/ +static const char *attributes[] = { + "foo", "bar", "baz", "bing", "bang", "boom" +}; +/*@unchecked@*/ +static size_t nattributes = (sizeof(attributes) / sizeof(attributes[0])); + +/*@unchecked@*/ /*@null@*/ +static char * oStr = (char *) -1; +/*@unchecked@*/ +static int singleDash = 0; + +/*@unchecked@*/ /*@observer@*/ +static char * lStr = +"This tests default strings and exceeds the ... limit. " +"123456789+123456789+123456789+123456789+123456789+ " +"123456789+123456789+123456789+123456789+123456789+ " +"123456789+123456789+123456789+123456789+123456789+ " +"123456789+123456789+123456789+123456789+123456789+ "; +/*@unchecked@*/ /*@null@*/ +static char * nStr = NULL; + +/*@unchecked@*/ +static struct poptOption moreCallbackArgs[] = { + { NULL, '\0', POPT_ARG_CALLBACK|POPT_CBFLAG_INC_DATA, + (void *)option_callback, 0, + NULL, NULL }, + { "cb2", 'c', POPT_ARG_STRING, NULL, (int)'c', + "Test argument callbacks", NULL }, + POPT_TABLEEND +}; + +/*@unchecked@*/ +static struct poptOption callbackArgs[] = { + { NULL, '\0', POPT_ARG_CALLBACK, (void *)option_callback, 0, + "sampledata", NULL }, + { "cb", 'c', POPT_ARG_STRING, NULL, (int)'c', + "Test argument callbacks", NULL }, + { "longopt", '\0', 0, NULL, (int)'l', + "Unused option for help testing", NULL }, + POPT_TABLEEND +}; + +/*@unchecked@*/ +static struct poptOption moreArgs[] = { + { "inc", 'I', 0, &inc, 0, "An included argument", NULL }, + POPT_TABLEEND +}; + +/*@unchecked@*/ +static struct poptOption options[] = { + { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &moreCallbackArgs, 0, + "arg for cb2", NULL }, + { "arg1", '\0', 0, &arg1, 0, "First argument with a really long" + " description. After all, we have to test argument help" + " wrapping somehow, right?", NULL }, + { "arg2", '2', POPT_ARG_STRING | POPT_ARGFLAG_SHOW_DEFAULT, &arg2, 0, + "Another argument", "ARG" }, + { "arg3", '3', POPT_ARG_INT, &arg3, 0, + "A third argument", "ANARG" }, + { "onedash", '\0', POPT_ARGFLAG_ONEDASH, &shortopt, 0, + "POPT_ARGFLAG_ONEDASH: Option takes a single -", NULL }, + { "hidden", '\0', POPT_ARG_STRING | POPT_ARGFLAG_DOC_HIDDEN, NULL, 0, + "POPT_ARGFLAG_HIDDEN: A hidden option (--help shouldn't display)", + NULL }, + { "optional", '\0', POPT_ARG_STRING | POPT_ARGFLAG_OPTIONAL, &oStr, 0, + "POPT_ARGFLAG_OPTIONAL: Takes an optional string argument", NULL }, + + { "val", '\0', POPT_ARG_VAL | POPT_ARGFLAG_SHOW_DEFAULT, &aVal, 125992, + "POPT_ARG_VAL: 125992 141421", 0}, + + { "int", 'i', POPT_ARG_INT | POPT_ARGFLAG_SHOW_DEFAULT, &aInt, 0, + "POPT_ARG_INT: 271828", NULL }, + { "short", 's', POPT_ARG_SHORT | POPT_ARGFLAG_SHOW_DEFAULT, &aShort, 0, + "POPT_ARG_SHORT: 4523", NULL }, + { "long", 'l', POPT_ARG_LONG | POPT_ARGFLAG_SHOW_DEFAULT, &aLong, 0, + "POPT_ARG_LONG: 738905609", NULL }, + { "longlong", 'L', POPT_ARG_LONGLONG | POPT_ARGFLAG_SHOW_DEFAULT, &aLongLong, 0, + "POPT_ARG_LONGLONG: 738905609", NULL }, + { "float", 'f', POPT_ARG_FLOAT | POPT_ARGFLAG_SHOW_DEFAULT, &aFloat, 0, + "POPT_ARG_FLOAT: 3.14159", NULL }, + { "double", 'd', POPT_ARG_DOUBLE | POPT_ARGFLAG_SHOW_DEFAULT, &aDouble, 0, + "POPT_ARG_DOUBLE: 9.8696", NULL }, + + { "randint", '\0', POPT_ARG_INT|POPT_ARGFLAG_RANDOM, &aInt, 0, + "POPT_ARGFLAG_RANDOM: experimental", NULL }, + { "randshort", '\0', POPT_ARG_SHORT|POPT_ARGFLAG_RANDOM, &aShort, 0, + "POPT_ARGFLAG_RANDOM: experimental", NULL }, + { "randlong", '\0', POPT_ARG_LONG|POPT_ARGFLAG_RANDOM, &aLong, 0, + "POPT_ARGFLAG_RANDOM: experimental", NULL }, + { "randlonglong", '\0', POPT_ARG_LONGLONG|POPT_ARGFLAG_RANDOM, &aLongLong, 0, + "POPT_ARGFLAG_RANDOM: experimental", NULL }, + + { "argv", '\0', POPT_ARG_ARGV, &aArgv, 0, + "POPT_ARG_ARGV: append string to argv array (can be used multiple times)","STRING"}, + { "bits", '\0', POPT_ARG_BITSET|POPT_ARGFLAG_DOC_HIDDEN, &aBits, 0, + "POPT_ARG_BITSET: add string to bit set (can be used multiple times)","STRING"}, + + { "bitset", '\0', POPT_BIT_SET | POPT_ARGFLAG_TOGGLE | POPT_ARGFLAG_SHOW_DEFAULT, &aFlag, 0x7777, + "POPT_BIT_SET: |= 0x7777", 0}, + { "bitclr", '\0', POPT_BIT_CLR | POPT_ARGFLAG_TOGGLE | POPT_ARGFLAG_SHOW_DEFAULT, &aFlag, 0xf842, + "POPT_BIT_CLR: &= ~0xf842", 0}, + { "bitxor", '\0', POPT_ARG_VAL | POPT_ARGFLAG_XOR | POPT_ARGFLAG_SHOW_DEFAULT, &aFlag, (0x8ace^0xfeed), + "POPT_ARGFLAG_XOR: ^= (0x8ace^0xfeed)", 0}, + + { "nstr", '\0', POPT_ARG_STRING | POPT_ARGFLAG_SHOW_DEFAULT, &nStr, 0, + "POPT_ARG_STRING: (null)", NULL}, + { "lstr", '\0', POPT_ARG_STRING | POPT_ARGFLAG_SHOW_DEFAULT, &lStr, 0, + "POPT_ARG_STRING: \"123456789...\"", NULL}, + + { NULL, '-', POPT_ARG_NONE | POPT_ARGFLAG_DOC_HIDDEN, &singleDash, 0, + NULL, NULL }, + { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &moreArgs, 0, + NULL, NULL }, + { NULL, '\0', POPT_ARG_INCLUDE_TABLE, &callbackArgs, 0, + "Callback arguments", NULL }, + POPT_AUTOALIAS + POPT_AUTOHELP + POPT_TABLEEND +}; + +static void resetVars(void) + /*@globals arg1, arg2, arg3, inc, shortopt, + aVal, aFlag, aShort, aInt, aLong, aLongLong, aFloat, aDouble, + aArgv, aBits, oStr, singleDash, pass2 @*/ + /*@modifies arg1, arg2, arg3, inc, shortopt, + aVal, aFlag, aShort, aInt, aLong, aLongLong, aFloat, aDouble, + aArgv, aBits, oStr, singleDash, pass2 @*/ +{ + arg1 = 0; + arg2 = "(none)"; + arg3 = 0; + inc = 0; + shortopt = 0; + + aVal = bVal; + aFlag = bFlag; + + aShort = bShort; + aInt = bInt; + aLong = bLong; + aLongLong = bLongLong; + aFloat = bFloat; + aDouble = bDouble; + + if (aArgv) { + int i; + for (i = 0; aArgv[i] != NULL; i++) { +/*@-unqualifiedtrans@*/ + free((void *)aArgv[i]); +/*@=unqualifiedtrans@*/ + aArgv[i] = NULL; + } + free(aArgv); + aArgv = NULL; + } + if (aBits) + (void) poptBitsClr(aBits); + + oStr = (char *) -1; + + singleDash = 0; + pass2 = 0; +} + +int main(int argc, const char ** argv) + /*@globals pass2, fileSystem, internalState @*/ + /*@modifies pass2, fileSystem, internalState @*/ +{ + int rc; + int ec = 0; + poptContext optCon; + const char ** rest; + int help = 0; + int usage = 0; + +#if defined(HAVE_MCHECK_H) && defined(HAVE_MTRACE) + /*@-moduncon -noeffectuncon@*/ + mtrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ + /*@=moduncon =noeffectuncon@*/ +#endif + +/*@-modobserver@*/ + resetVars(); +/*@=modobserver@*/ +/*@-temptrans@*/ + optCon = poptGetContext("test1", argc, argv, options, 0); +/*@=temptrans@*/ + (void) poptReadConfigFile(optCon, "./test-poptrc"); + (void) poptReadDefaultConfig(optCon, 1); + + poptSetExecPath(optCon, ".", 1); + +#if 1 + while ((rc = poptGetNextOpt(optCon)) > 0) /* Read all the options ... */ + {}; + + poptResetContext(optCon); /* ... and then start over. */ +/*@-modobserver@*/ + resetVars(); +/*@=modobserver@*/ +#endif + + pass2 = 1; + if ((rc = poptGetNextOpt(optCon)) < -1) { + fprintf(stderr, "test1: bad argument %s: %s\n", + poptBadOption(optCon, POPT_BADOPTION_NOALIAS), + poptStrerror(rc)); + ec = 2; + goto exit; + } + + if (help) { + poptPrintHelp(optCon, stdout, 0); + goto exit; + } + if (usage) { + poptPrintUsage(optCon, stdout, 0); + goto exit; + } + + fprintf(stdout, "arg1: %d arg2: %s", arg1, arg2); + + if (arg3) + fprintf(stdout, " arg3: %d", arg3); + if (inc) + fprintf(stdout, " inc: %d", inc); + if (shortopt) + fprintf(stdout, " short: %d", shortopt); + if (aVal != bVal) + fprintf(stdout, " aVal: %d", aVal); + if (aFlag != bFlag) + fprintf(stdout, " aFlag: 0x%x", aFlag); + if (aShort != bShort) + fprintf(stdout, " aShort: %hd", aShort); + if (aInt != bInt) + fprintf(stdout, " aInt: %d", aInt); + if (aLong != bLong) + fprintf(stdout, " aLong: %ld", aLong); + if (aLongLong != bLongLong) + fprintf(stdout, " aLongLong: %lld", aLongLong); +/*@-realcompare@*/ + if (aFloat != bFloat) + fprintf(stdout, " aFloat: %g", (double)aFloat); + if (aDouble != bDouble) + fprintf(stdout, " aDouble: %g", aDouble); +/*@=realcompare@*/ + if (aArgv != NULL) { + const char **av = aArgv; + const char * arg; + fprintf(stdout, " aArgv:"); + while ((arg = *av++) != NULL) + fprintf(stdout, " %s", arg); + } + if (aBits) { + const char * separator = " "; + size_t i; + fprintf(stdout, " aBits:"); + for (i = 0; i < nattributes; i++) { + if (!poptBitsChk(aBits, attributes[i])) + continue; + fprintf(stdout, "%s%s", separator, attributes[i]); + separator = ","; + } + } +/*@-nullpass@*/ + if (oStr != (char *)-1) + fprintf(stdout, " oStr: %s", (oStr ? oStr : "(none)")); +/*@=nullpass@*/ + if (singleDash) + fprintf(stdout, " -"); + + if (poptPeekArg(optCon) != NULL) { + rest = poptGetArgs(optCon); + if (rest) { + fprintf(stdout, " rest:"); + while (*rest) { + fprintf(stdout, " %s", *rest); + rest++; + } + } + } + + fprintf(stdout, "\n"); + +exit: + optCon = poptFreeContext(optCon); +#if defined(HAVE_MCHECK_H) && defined(HAVE_MTRACE) + /*@-moduncon -noeffectuncon@*/ + muntrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ + /*@=moduncon =noeffectuncon@*/ +#endif + return ec; +}
diff --git a/popt-1.16/test2.c b/popt-1.16/test2.c new file mode 100644 index 0000000..8414b90 --- /dev/null +++ b/popt-1.16/test2.c
@@ -0,0 +1,149 @@ +/* + Popt Library Test Program Number Too + + --> "a real world test of popt bugs" <-- + + Copyright (C) 1999 US Interactive, Inc. + + This program can be used under the GPL or LGPL at your + whim as long as this Copyright remains attached. +*/ + +#include "system.h" + +char *PathnameOfKeyFile = NULL; +char *PathnameOfOfferFile = NULL; + +char *txHost = NULL; +int txSslPort = 443; +int txStoreId = 0; + +char *contentProtocol = NULL; +char *contentHost = NULL; +int contentPort = 80; +char *contentPath = NULL; + +char *dbPassword = NULL; +char *dbUserName = NULL; + +char *rcfile = "createuser-defaults"; +char *username=NULL; + +char *password = NULL; +char *firstname = NULL; +char *lastname = NULL; +char *addr1 = NULL; +char *addr2 = NULL; +char *city = NULL; +char *state = NULL; +char *postal = NULL; +char *country = NULL; + +char *email = NULL; + +char *dayphone = NULL; +char *fax = NULL; + + +int +main(int argc, const char ** argv) { + + poptContext optCon; /* context for parsing command-line options */ + struct poptOption userOptionsTable[] = { + { "first", 'f', POPT_ARG_STRING, &firstname, 0, + "user's first name", "first" }, + { "last", 'l', POPT_ARG_STRING, &lastname, 0, + "user's last name", "last" }, + { "username", 'u', POPT_ARG_STRING, &username, 0, + "system user name", "user" }, + { "password", 'p', POPT_ARG_STRING, &password, 0, + "system password name", "password" }, + { "addr1", '1', POPT_ARG_STRING, &addr1, 0, + "line 1 of address", "addr1" }, + { "addr2", '2', POPT_ARG_STRING, &addr2, 0, + "line 2 of address", "addr2" }, + { "city", 'c', POPT_ARG_STRING, &city, 0, + "city", "city" }, + { "state", 's', POPT_ARG_STRING, &state, 0, + "state or province", "state" }, + { "postal", 'P', POPT_ARG_STRING, &postal, 0, + "postal or zip code", "postal" }, + { "zip", 'z', POPT_ARG_STRING, &postal, 0, + "postal or zip code", "postal" }, + { "country", 'C', POPT_ARG_STRING, &country, 0, + "two letter ISO country code", "country" }, + { "email", 'e', POPT_ARG_STRING, &email, 0, + "user's email address", "email" }, + { "dayphone", 'd', POPT_ARG_STRING, &dayphone, 0, + "day time phone number", "dayphone" }, + { "fax", 'F', POPT_ARG_STRING, &fax, 0, + "fax number", "fax" }, + { NULL, 0, 0, NULL, 0, NULL, NULL } + }; + struct poptOption transactOptionsTable[] = { + { "keyfile", '\0', POPT_ARG_STRING, &PathnameOfKeyFile, 0, + "transact offer key file (flat_O.kf)", "key-file" }, + { "offerfile", '\0', POPT_ARG_STRING, &PathnameOfOfferFile, 0, + "offer template file (osl.ofr)", "offer-file" }, + { "storeid", '\0', POPT_ARG_INT, &txStoreId, 0, + "store id", "store-id" }, + { "rcfile", '\0', POPT_ARG_STRING, &rcfile, 0, + "default command line options (in popt format)", "rcfile" }, + { "txhost", '\0', POPT_ARG_STRING, &txHost, 0, + "transact host", "transact-host" }, + { "txsslport", '\0', POPT_ARG_INT, &txSslPort, 0, + "transact server ssl port ", "transact ssl port" }, + { "cnhost", '\0', POPT_ARG_STRING, &contentHost, 0, + "content host", "content-host" }, + { "cnpath", '\0', POPT_ARG_STRING, &contentPath, 0, + "content url path", "content-path" }, + { NULL, 0, 0, NULL, 0, NULL, NULL } + }; + + struct poptOption databaseOptionsTable[] = { + { "dbpassword", '\0', POPT_ARG_STRING, &dbPassword, 0, + "Database password", "DB password" }, + { "dbusername", '\0', POPT_ARG_STRING, &dbUserName, 0, + "Database user name", "DB UserName" }, + { NULL, 0, 0, NULL, 0, NULL, NULL } + }; + + struct poptOption optionsTable[] = { + { NULL, '\0', POPT_ARG_INCLUDE_TABLE, NULL, 0, + "Transact Options (not all will apply)", NULL }, + { NULL, '\0', POPT_ARG_INCLUDE_TABLE, NULL, 0, + "Transact Database Names", NULL }, + { NULL, '\0', POPT_ARG_INCLUDE_TABLE, NULL, 0, + "User Fields", NULL }, + POPT_AUTOHELP + { NULL, 0, 0, NULL, 0, NULL, NULL } + }; + + optionsTable[0].arg = transactOptionsTable; + optionsTable[1].arg = databaseOptionsTable; + optionsTable[2].arg = userOptionsTable; + +#if defined(HAVE_MCHECK_H) && defined(HAVE_MTRACE) + mtrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ +#endif + + optCon = poptGetContext("createuser", argc, argv, optionsTable, 0); + poptReadConfigFile(optCon, rcfile ); + + /* although there are no options to be parsed, check for --help */ + poptGetNextOpt(optCon); + + optCon = poptFreeContext(optCon); + + printf( "dbusername %s\tdbpassword %s\n" + "txhost %s\ttxsslport %d\ttxstoreid %d\tpathofkeyfile %s\n" + "username %s\tpassword %s\tfirstname %s\tlastname %s\n" + "addr1 %s\taddr2 %s\tcity %s\tstate %s\tpostal %s\n" + "country %s\temail %s\tdayphone %s\tfax %s\n", + dbUserName, dbPassword, + txHost, txSslPort, txStoreId, PathnameOfKeyFile, + username, password, firstname, lastname, + addr1,addr2, city, state, postal, + country, email, dayphone, fax); + return 0; +}
diff --git a/popt-1.16/testit.sh b/popt-1.16/testit.sh new file mode 100755 index 0000000..2a7b4aa --- /dev/null +++ b/popt-1.16/testit.sh
@@ -0,0 +1,179 @@ +#!/bin/sh + +run() { + prog=$1; shift + name=$1; shift + answer=$1; shift + + echo Running test $name. + + result=`HOME=$builddir $builddir/$prog $*` + if [ "$answer" != "$result" ]; then + echo "Test \"$prog $*\" failed with: \"$result\" != \"$answer\" " + exit 2 + fi +} + +run_diff() { + prog=$1; shift + name=$1; shift + in_file=$1; shift + answer_file=$1; shift + + out=$builddir/tmp.out + diff_file=$builddir/tmp.diff + + echo Running test $name. + + $builddir/$prog $in_file > $out + ret=$? + diff $out $answer_file > $diff_file + diff_ret=$? + + if [ "$diff_ret" != "0" ]; then + echo "Test \"$name\" failed output is in $out, diff is:" + cat $diff_file + exit 2 + fi + rm $out $diff_file +} + +builddir=`pwd` +srcdir=$builddir +cd ${srcdir} +test1=${builddir}/test1 +echo "Running tests in `pwd`" + +#make -q testcases + +run test1 "test1 - 1" "arg1: 1 arg2: (none)" --arg1 +run test1 "test1 - 2" "arg1: 0 arg2: foo" --arg2 foo +run test1 "test1 - 3" "arg1: 1 arg2: something" --arg1 --arg2 something +run test1 "test1 - 4" "arg1: 0 arg2: another" --simple another +run test1 "test1 - 5" "arg1: 1 arg2: alias" --two +run test1 "test1 - 6" "arg1: 1 arg2: (none) rest: --arg2" --arg1 -- --arg2 +run test1 "test1 - 7" "arg1: 0 arg2: abcd rest: --arg1" --simple abcd -- --arg1 +run test1 "test1 - 8" "arg1: 1 arg2: (none) rest: --arg2" --arg1 --takerest --arg2 +run test1 "test1 - 9" "arg1: 0 arg2: foo" -2 foo +run test1 "test1 - 10" "arg1: 0 arg2: (none) arg3: 50" -3 50 +run test1 "test1 - 11" "arg1: 0 arg2: bar" -T bar +run test1 "test1 - 12" "arg1: 1 arg2: (none)" -O +run test1 "test1 - 13" "arg1: 1 arg2: foo" -OT foo +run test1 "test1 - 14" "arg1: 0 arg2: (none) inc: 1" --inc +run test1 "test1 - 15" "arg1: 0 arg2: foo inc: 1" -I --arg2 foo +POSIX_ME_HARDER=1 ; export POSIX_ME_HARDER +run test1 "test1 - 16" "arg1: 1 arg2: (none) rest: foo --arg2 something" --arg1 foo --arg2 something +unset POSIX_ME_HARDER +POSIXLY_CORRECT=1 ; export POSIXLY_CORRECT +run test1 "test1 - 17" "arg1: 1 arg2: (none) rest: foo --arg2 something" --arg1 foo --arg2 something +unset POSIXLY_CORRECT +run test1 "test1 - 18" "callback: c sampledata bar arg1: 1 arg2: (none)" --arg1 --cb bar +run test1 "test1 - 19" "" --echo-args +run test1 "test1 - 20" "--arg1" --echo-args --arg1 +run test1 "test1 - 21" "--arg2 something" -T something -e +run test1 "test1 - 22" "--arg2 something more args" -T something -a more args +run test1 "test1 - 23" "--echo-args -a" --echo-args -e -a +run test1 "test1 - 24" "arg1: 0 arg2: (none) short: 1" -onedash +run test1 "test1 - 25" "arg1: 0 arg2: (none) short: 1" --onedash +run test1 "test1 - 26" "callback: c arg for cb2 foo arg1: 0 arg2: (none)" --cb2 foo +run test1 "test1 - 27" "arg1: 0 arg2: (none) rest: -" - +run test1 "test1 - 28" "arg1: 0 arg2: foo rest: -" - -2 foo +run test1 "test1 - 29" "arg1: 0 arg2: bbbb" --arg2=aaaa -2 bbbb +run test1 "test1 - 30" "arg1: 0 arg2: 'foo bingo' rest: boggle" --grab bingo boggle +run test1 "test1 - 31" "arg1: 0 arg2: 'foo bar' rest: boggle" --grabbar boggle + +run test1 "test1 - 32" "arg1: 0 arg2: (none) aInt: 123456789" -i 123456789 +run test1 "test1 - 33" "arg1: 0 arg2: (none) aInt: 123456789" --int 123456789 +run test1 "test1 - 34" "arg1: 0 arg2: (none) aShort: 12345" -s 12345 +run test1 "test1 - 35" "arg1: 0 arg2: (none) aShort: 12345" --short 12345 +run test1 "test1 - 36" "arg1: 0 arg2: (none) aLong: 1123456789" -l 1123456789 +run test1 "test1 - 37" "arg1: 0 arg2: (none) aLong: 1123456789" --long 1123456789 +run test1 "test1 - 38" "arg1: 0 arg2: (none) aLongLong: 1111123456789" -L 1111123456789 +run test1 "test1 - 39" "arg1: 0 arg2: (none) aLongLong: 1111123456789" --longlong 1111123456789 + +run test1 "test1 - 40" "arg1: 0 arg2: (none) aFloat: 10.1" -f 10.1 +run test1 "test1 - 41" "arg1: 0 arg2: (none) aFloat: 10.1" --float 10.1 +run test1 "test1 - 42" "arg1: 0 arg2: (none) aDouble: 10.1" -d 10.1 +run test1 "test1 - 43" "arg1: 0 arg2: (none) aDouble: 10.1" --double 10.1 + +run test1 "test1 - 44" "arg1: 0 arg2: (none) oStr: (none)" --optional +run test1 "test1 - 45" "arg1: 0 arg2: (none) oStr: yadda" --optional=yadda +run test1 "test1 - 46" "arg1: 0 arg2: (none) oStr: yadda" --optional yadda +run test1 "test1 - 47" "arg1: 0 arg2: (none) oStr: ping rest: pong" --optional=ping pong +run test1 "test1 - 48" "arg1: 0 arg2: (none) oStr: ping rest: pong" --optional ping pong +run test1 "test1 - 49" "arg1: 0 arg2: (none) aArgv: A B rest: C" --argv A --argv B C + +run test1 "test1 - 50" "arg1: 0 arg2: foo=bar" -2foo=bar +run test1 "test1 - 51" "arg1: 0 arg2: foo=bar" -2=foo=bar + +run test1 "test1 - 52" "arg1: 0 arg2: (none) aFlag: 0xfeed" --bitxor +run test1 "test1 - 53" "arg1: 0 arg2: (none) aFlag: 0xffff" --bitset +run test1 "test1 - 54" "arg1: 0 arg2: (none) aFlag: 0x28c" --bitclr +run test1 "test1 - 55" "arg1: 0 arg2: (none) aFlag: 0x8888" --nobitset +run test1 "test1 - 56" "arg1: 0 arg2: (none) aFlag: 0xface" --nobitclr + +run test1 "test1 - 57" "arg1: 0 arg2: (none) aBits: foo,baz" --bits foo,bar,baz,!bar + +run test1 "test1 - 58" "\ +Usage: lt-test1 [-I?] [-c|--cb2=STRING] [--arg1] [-2|--arg2=ARG] + [-3|--arg3=ANARG] [-onedash] [--optional=STRING] [--val] + [-i|--int=INT] [-s|--short=SHORT] [-l|--long=LONG] + [-L|--longlong=LONGLONG] [-f|--float=FLOAT] [-d|--double=DOUBLE] + [--randint=INT] [--randshort=SHORT] [--randlong=LONG] + [--randlonglong=LONGLONG] [--argv=STRING] [--bitset] [--bitclr] + [--bitxor] [--nstr=STRING] [--lstr=STRING] [-I|--inc] + [-c|--cb=STRING] [--longopt] [-?|--help] [--usage] [--simple=ARG]" --usage +run test1 "test1 - 59" "\ +Usage: lt-test1 [OPTION...] + --arg1 First argument with a really long + description. After all, we have to test + argument help wrapping somehow, right? + -2, --arg2=ARG Another argument (default: \"(none)\") + -3, --arg3=ANARG A third argument + -onedash POPT_ARGFLAG_ONEDASH: Option takes a single - + --optional[=STRING] POPT_ARGFLAG_OPTIONAL: Takes an optional + string argument + --val POPT_ARG_VAL: 125992 141421 + -i, --int=INT POPT_ARG_INT: 271828 (default: 271828) + -s, --short=SHORT POPT_ARG_SHORT: 4523 (default: 4523) + -l, --long=LONG POPT_ARG_LONG: 738905609 (default: 738905609) + -L, --longlong=LONGLONG POPT_ARG_LONGLONG: 738905609 (default: + 738905609) + -f, --float=FLOAT POPT_ARG_FLOAT: 3.14159 (default: 3.14159) + -d, --double=DOUBLE POPT_ARG_DOUBLE: 9.8696 (default: 9.8696) + --randint=INT POPT_ARGFLAG_RANDOM: experimental + --randshort=SHORT POPT_ARGFLAG_RANDOM: experimental + --randlong=LONG POPT_ARGFLAG_RANDOM: experimental + --randlonglong=LONGLONG POPT_ARGFLAG_RANDOM: experimental + --argv STRING POPT_ARG_ARGV: append string to argv array + (can be used multiple times) + --[no]bitset POPT_BIT_SET: |= 0x7777 + --[no]bitclr POPT_BIT_CLR: &= ~0xf842 + --bitxor POPT_ARGFLAG_XOR: ^= (0x8ace^0xfeed) + --nstr=STRING POPT_ARG_STRING: (null) (default: null) + --lstr=STRING POPT_ARG_STRING: \"123456789...\" (default: + \"This tests default strings and exceeds the + ... limit. + 123456789+123456789+123456789+123456789+123456789+ 123456789+123456789+123456789+123456789+123456789+ 1234567...\") + +arg for cb2 + -c, --cb2=STRING Test argument callbacks + -I, --inc An included argument + +Callback arguments + -c, --cb=STRING Test argument callbacks + --longopt Unused option for help testing + +Options implemented via popt alias/exec: + --simple=ARG simple description + +Help options: + -?, --help Show this help message + --usage Display brief usage message" --help + +#run_diff test3 "test3 - 51" test3-data/01.input test3-data/01.answer +#run_diff test3 "test3 - 52" test3-data/02.input test3-data/02.answer +#run_diff test3 "test3 - 53" test3-data/03.input test3-data/03.answer + +echo "" +echo "Passed."
diff --git a/popt.tar.gz b/popt.tar.gz new file mode 100644 index 0000000..598c52b --- /dev/null +++ b/popt.tar.gz Binary files differ
diff --git a/popt.url b/popt.url new file mode 100644 index 0000000..cd91d63 --- /dev/null +++ b/popt.url
@@ -0,0 +1 @@ +http://rpm5.org/files/popt/popt-1.16.tar.gz
diff --git a/popt.version b/popt.version new file mode 100644 index 0000000..e715196 --- /dev/null +++ b/popt.version
@@ -0,0 +1 @@ +1.16