From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#9169: gnulib import for MacOS, Irix, Solaris, etc. Date: Mon, 25 Jul 2011 10:10:01 -0700 Organization: UCLA Computer Science Department Message-ID: <4E2DA369.8000604@cs.ucla.edu> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1311613897 16806 80.91.229.12 (25 Jul 2011 17:11:37 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 25 Jul 2011 17:11:37 +0000 (UTC) To: 9169@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jul 25 19:11:31 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QlOgZ-0005Ac-IF for geb-bug-gnu-emacs@m.gmane.org; Mon, 25 Jul 2011 19:11:30 +0200 Original-Received: from localhost ([::1]:43683 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QlOgZ-00041U-2R for geb-bug-gnu-emacs@m.gmane.org; Mon, 25 Jul 2011 13:11:19 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:35953) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QlOgN-000412-UY for bug-gnu-emacs@gnu.org; Mon, 25 Jul 2011 13:11:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QlOgJ-0005rL-06 for bug-gnu-emacs@gnu.org; Mon, 25 Jul 2011 13:11:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:32887) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QlOgI-0005rH-SR for bug-gnu-emacs@gnu.org; Mon, 25 Jul 2011 13:11:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1QlOgI-0007Q9-LT; Mon, 25 Jul 2011 13:11:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 25 Jul 2011 17:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 9169 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.131161384028494 (code B ref -1); Mon, 25 Jul 2011 17:11:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 25 Jul 2011 17:10:40 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QlOfu-0007PW-7p for submit@debbugs.gnu.org; Mon, 25 Jul 2011 13:10:40 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QlOfp-0007PG-9V for submit@debbugs.gnu.org; Mon, 25 Jul 2011 13:10:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QlOff-0005pF-2C for submit@debbugs.gnu.org; Mon, 25 Jul 2011 13:10:27 -0400 Original-Received: from lists.gnu.org ([140.186.70.17]:50334) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QlOfe-0005p6-Vn for submit@debbugs.gnu.org; Mon, 25 Jul 2011 13:10:23 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:35849) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QlOfa-00040d-1r for bug-gnu-emacs@gnu.org; Mon, 25 Jul 2011 13:10:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QlOfT-0005o5-M0 for bug-gnu-emacs@gnu.org; Mon, 25 Jul 2011 13:10:18 -0400 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]:38631) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QlOfS-0005nB-Gw; Mon, 25 Jul 2011 13:10:11 -0400 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 0C3B039E80D2; Mon, 25 Jul 2011 10:10:08 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cSmla7Yku8Bk; Mon, 25 Jul 2011 10:10:02 -0700 (PDT) Original-Received: from [131.179.64.200] (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 2804139E80DE; Mon, 25 Jul 2011 10:10:02 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110621 Fedora/3.1.11-1.fc14 Thunderbird/3.1.11 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Mon, 25 Jul 2011 13:11:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:49604 Archived-At: Here's a patch to the Emacs trunk to bring it up to date with gnulib. I plan to test it a bit more before installing. This fixes some portability issues with MacOS X 10.5 and later (large filesystems), Irix, and Solaris (signal mask handling), and some crash problems with 'configure'. Since gnulib has revamped where it puts some of the files, this patch also moves some files around in Emacs, using a new build-aux directory to remove some of the clutter; this affects the Windows builds too so I've made the obvious minor changes to the Windows files. I considered trying to leave the file locations alone, but judged that that the extra complexity in importation of changes would be more likely to cause problems than to cure them. # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: eggert@cs.ucla.edu-20110725164139-stn0jk0db4uf9wy4 # target_branch: bzr+ssh://eggert@bzr.savannah.gnu.org/emacs/trunk # testament_sha1: 40b72f5ebfcd921d4490257c7a6e5345e2babaca # timestamp: 2011-07-25 09:57:36 -0700 # base_revision_id: eggert@cs.ucla.edu-20110725164039-ci3qe140s8583o5k #=20 # Begin patch =3D=3D=3D modified file '.bzrignore' --- .bzrignore 2011-07-06 17:58:37 +0000 +++ .bzrignore 2011-07-24 22:15:47 +0000 @@ -15,23 +15,17 @@ *.exe ./aclocal.m4 autom4te.cache -./compile confdefs.h -./config.guess -./config.sub ./configure configure.lineno conftest* core -./depcomp DOC DOC-* emacs-*/ -./install-sh makefile Makefile Makefile.c -./missing stamp-h1 stamp_BLD subdirs.el @@ -40,6 +34,12 @@ cxxdefs.h info/* admin/unidata/unidata.txt +build-aux/compile +build-aux/config.guess +build-aux/config.sub +build-aux/depcomp +build-aux/install-sh +build-aux/missing leim/leim-list.el leim/quail/*.el leim/changed.misc =3D=3D=3D modified file 'ChangeLog' --- ChangeLog 2011-07-13 10:36:12 +0000 +++ ChangeLog 2011-07-25 16:26:30 +0000 @@ -1,3 +1,35 @@ +2011-07-25 Paul Eggert + + Merge from gnulib, using build-aux to remove clutter. + * m4/largefile.m4: New file, so that Emacs does not mess up when + accessing files with large inode numbers in MacOS X 10.5 and later. + * m4/nocrash.m4: New file, to avoid triggering background debugger + and/or create core dumps during 'configure'. + * build-aux/move-if-change: Renamed from move-if-change. + * build-aux/snippet/arg-nonnull.h: Renamed from arg-nonnull.h. + * build-aux/snippet/c++defs.h: Renamed from c++defs.h. + * build-aux/snippet/warn-on-use.h: Renamed from warn-on-use.h. + * build-aux/snippet/_Noreturn.h: New file, for draft C1X _Noreturn. + * .bzrignore: The autogenerated files compile, config.guess, + config.sub, depcomp, install-sh, and missing are now in build-aux. + * Makefile.in (epaths-force, sync-from-gnulib): + move-if-change is now in build-aux. + (GNULIB_TOOL_FLAGS): Avoid threadlib; this is now a prerequisite + of gnulib's pthread_sigmask module, but Emacs doesn't need it. + (mkdir): install-sh is now in build-aux. + * config.bat: c++defs.h is now in build-aux/snippets. + * configure.in: Specify AC_CONFIG_AUX_DIR with build-aux (the + usual parameter). + * lib/gnulib.mk, m4/gl-comp.m4: Regenerate. + * lib/makefile.w32-in (ARG_NONNULL_H): arg-nonnull.h moved + to build-aux/snippet. + * lib/pthread_sigmask.c, lib/stdlib.in.h, m4/extensions.m4: + * m4/getopt.m4, m4/gnulib-common.m4, m4/pthread_sigmask.m4: + Merge from gnuilib. This fixes porting bugs on Cygwin, Irix, and + Solaris, enables MacOS extensions, and enables nocrash during + 'configure'. + * make-dist: Adjust to new build-aux and build-aux/snippit dirs. + 2011-07-13 Jan Dj=E4rv =20 * configure.in (GSETTINGS): Check for gio-2.0 >=3D 2.26. =3D=3D=3D modified file 'Makefile.in' --- Makefile.in 2011-07-09 00:18:49 +0000 +++ Makefile.in 2011-07-24 22:15:47 +0000 @@ -300,7 +300,7 @@ -e 's;\(#.*PATH_X_DEFAULTS\).*$$;\1 "${x_default_search_path}";' \ -e 's;\(#.*PATH_GAME\).*$$;\1 "${gamedir}";' \ -e 's;\(#.*PATH_DOC\).*$$;\1 "${docdir}";') && \ - ${srcdir}/move-if-change epaths.h.$$$$ src/epaths.h + ${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h =20 # For parallel make, src should be built before leim. # "export PARALLEL=3D0" is for SGI's Make, to prevent it from @@ -339,6 +339,7 @@ mktime pthread_sigmask readlink \ socklen stdarg stdio strftime strtoimax strtoumax symlink sys_stat GNULIB_TOOL_FLAGS =3D \ + --avoid=3Dthreadlib \ --conditional-dependencies --import --no-changelog --no-vc-files \ --makefile-name=3Dgnulib.mk sync-from-gnulib: $(gnulib_srcdir) @@ -350,7 +351,7 @@ cp $(gnulib_srcdir)/build-aux/texinfo.tex $(srcdir)/doc/misc cp \ $(gnulib_srcdir)/build-aux/move-if-change \ - $(srcdir) + $(srcdir)/build-aux cd $(srcdir) && autoreconf -i -I m4 .PHONY: sync-from-gnulib =20 @@ -688,7 +689,7 @@ done ; \ icondirs=3D`echo "$${icondirs}" | sed 's,$(srcdir)/etc/images/icons,$(D= ESTDIR)${icondir},g'` ; \ umask 022 ; \ - $(srcdir)/install-sh -d $(DESTDIR)${datadir} ${COPYDESTS} \ + $(srcdir)/build-aux/install-sh -d $(DESTDIR)${datadir} ${COPYDESTS} \ $(DESTDIR)${infodir} $(DESTDIR)${man1dir} \ $(DESTDIR)${bindir} $(DESTDIR)${docdir} $(DESTDIR)${libexecdir} \ $(DESTDIR)${datadir}/emacs/site-lisp \ =3D=3D=3D modified file 'admin/ChangeLog' --- admin/ChangeLog 2011-07-07 13:55:12 +0000 +++ admin/ChangeLog 2011-07-25 16:26:30 +0000 @@ -1,3 +1,12 @@ +2011-07-25 Paul Eggert + + Merge from gnulib. + * notes/copyright: The files compile, config.guess, config.sub, + depcomp, install-sh, missing, and move-if-change are now in the + new build-aux subdirectory. The files arg-nonnull.h, c++defs.h, + and warn-on-use.h are now in build-aux/snippets. New file + build-aux/snippets/_Noreturn.h. + 2011-07-07 Juanma Barranquero =20 * unidata/makefile.w32-in (charprop-SH, charprop-CMD): =3D=3D=3D modified file 'admin/notes/copyright' --- admin/notes/copyright 2011-03-25 07:00:36 +0000 +++ admin/notes/copyright 2011-07-24 22:15:47 +0000 @@ -143,7 +143,7 @@ lib/Makefile.in - copyright FSF, with MIT-like license =20 -install-sh +build-aux/install-sh - this file is copyright MIT, which is OK. Leave the copyright alone. =20 etc/refcards/*.tex @@ -545,16 +545,17 @@ alone (may import them from Gnulib again). These are: =20 Gnulib: - arg-nonnull.h - c++defs.h - compile - config.guess - config.sub - depcomp + build-aux/compile + build-aux/config.guess + build-aux/config.sub + build-aux/depcomp + build-aux/missing + build-aux/move-if-change + build-aux/snippet/_Noreturn.h + build-aux/snippet/arg-nonnull.h + build-aux/snippet/c++defs.h + build-aux/snippet/warn-on-use.h doc/man/texinfo.tex - missing - move-if-change - warn-on-use.h lib/*.[ch] lib/gnulib.mk src/gmalloc.c =3D=3D=3D added directory 'build-aux' =3D=3D=3D renamed file 'move-if-change' =3D> 'build-aux/move-if-change' =3D=3D=3D added directory 'build-aux/snippet' =3D=3D=3D added file 'build-aux/snippet/_Noreturn.h' --- build-aux/snippet/_Noreturn.h 1970-01-01 00:00:00 +0000 +++ build-aux/snippet/_Noreturn.h 2011-07-24 22:15:47 +0000 @@ -0,0 +1,10 @@ +#ifndef _Noreturn +# if (3 <=3D __GNUC__ || (__GNUC__ =3D=3D 2 && 8 <=3D __GNUC_MINOR__) \ + || 0x5110 <=3D __SUNPRO_C) +# define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <=3D _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn +# endif +#endif =3D=3D=3D renamed file 'arg-nonnull.h' =3D> 'build-aux/snippet/arg-nonnul= l.h' =3D=3D=3D renamed file 'c++defs.h' =3D> 'build-aux/snippet/c++defs.h' =3D=3D=3D renamed file 'warn-on-use.h' =3D> 'build-aux/snippet/warn-on-us= e.h' =3D=3D=3D modified file 'config.bat' --- config.bat 2011-05-20 09:47:59 +0000 +++ config.bat 2011-07-24 22:15:47 +0000 @@ -275,10 +275,10 @@ cd .. rem ------------------------------------------------------------------= ---- Echo Configuring the lib directory... -If Exist c++defs.h update c++defs.h cxxdefs.h +If Exist build-aux/snippet/c++defs.h update build-aux/snippet/c++defs.h = build-aux/snippet/cxxdefs.h cd lib Rem Rename files like djtar on plain DOS filesystem would. -If Exist c++defs.h update c++defs.h cxxdefs.h +If Exist build-aux/snippet/c++defs.h update build-aux/snippet/c++defs.h = build-aux/snippet/cxxdefs.h If Exist getopt.in.h update getopt.in.h getopt.in-h If Exist stdbool.in.h update stdbool.in.h stdbool.in-h If Exist stddef.in.h update stddef.in.h stddef.in-h =3D=3D=3D modified file 'configure.in' --- configure.in 2011-07-13 10:36:12 +0000 +++ configure.in 2011-07-24 22:15:47 +0000 @@ -25,6 +25,7 @@ AC_INIT(emacs, 24.0.50) AC_CONFIG_HEADER(src/config.h:src/config.in) AC_CONFIG_SRCDIR(src/lisp.h) +AC_CONFIG_AUX_DIR(build-aux) AM_INIT_AUTOMAKE =20 dnl Support for --program-prefix, --program-suffix and =3D=3D=3D modified file 'leim/ChangeLog' --- leim/ChangeLog 2011-07-23 17:29:42 +0000 +++ leim/ChangeLog 2011-07-25 16:26:30 +0000 @@ -1,3 +1,7 @@ +2011-07-25 Paul Eggert + + * Makefile.in (install): install-sh is now in build-aux. + 2011-07-23 Yair F =20 * quail/hebrew.el ("hebrew"): Additional key mappings. =3D=3D=3D modified file 'leim/Makefile.in' --- leim/Makefile.in 2011-06-12 09:01:24 +0000 +++ leim/Makefile.in 2011-07-24 22:15:47 +0000 @@ -221,7 +221,7 @@ =20 install: all if [ ! -d ${INSTALLDIR} ] ; then \ - umask 022; ${srcdir}/../install-sh -d ${INSTALLDIR}; \ + umask 022; ${srcdir}/../build-aux/install-sh -d ${INSTALLDIR};= \ else true; fi if [ x`(cd ${INSTALLDIR} && /bin/pwd)` !=3D x`(/bin/pwd)` ] ; then \ rm -f ${INSTALLDIR}/leim-list.el; \ =3D=3D=3D modified file 'lib-src/ChangeLog' --- lib-src/ChangeLog 2011-07-09 10:32:42 +0000 +++ lib-src/ChangeLog 2011-07-25 16:26:30 +0000 @@ -1,3 +1,8 @@ +2011-07-25 Paul Eggert + + * Makefile.in ($(DESTDIR)${archlibdir}): install-sh moved + to build-aux. + 2011-07-09 Andreas Schwab =20 * update-game-score.c (usage): Update usage line. =3D=3D=3D modified file 'lib-src/Makefile.in' --- lib-src/Makefile.in 2011-05-25 07:13:57 +0000 +++ lib-src/Makefile.in 2011-07-24 22:15:47 +0000 @@ -229,13 +229,13 @@ $(DESTDIR)${archlibdir}: all @echo @echo "Installing utilities run internally by Emacs." - umask 022; $(top_srcdir)/install-sh -d $(DESTDIR)${archlibdir} + umask 022; $(top_srcdir)/build-aux/install-sh -d $(DESTDIR)${archlibdir= } if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` !=3D `/bin/pwd` ]; then= \ for file in ${UTILITIES}; do \ $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/= $$file ; \ done ; \ fi - umask 022; $(top_srcdir)/install-sh -d $(DESTDIR)${gamedir}; \ + umask 022; $(top_srcdir)/build-aux/install-sh -d $(DESTDIR)${gamedir}; = \ touch $(DESTDIR)${gamedir}/snake-scores; \ touch $(DESTDIR)${gamedir}/tetris-scores -if chown ${gameuser} $(DESTDIR)${archlibdir}/update-game-score && chmo= d u+s $(DESTDIR)${archlibdir}/update-game-score; then \ =3D=3D=3D modified file 'lib/gnulib.mk' --- lib/gnulib.mk 2011-07-09 00:18:49 +0000 +++ lib/gnulib.mk 2011-07-24 22:15:47 +0000 @@ -9,7 +9,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=3D. --lib=3Dlibgnu --source-b= ase=3Dlib --m4-base=3Dm4 --doc-base=3Ddoc --tests-base=3Dtests --aux-dir=3D= . --makefile-name=3Dgnulib.mk --conditional-dependencies --no-libtool --m= acro-prefix=3Dgl --no-vc-files alloca-opt careadlinkat crypto/md5 crypto/= sha1 crypto/sha256 crypto/sha512 dtoastr dup2 filemode getloadavg getopt-= gnu ignore-value intprops lstat mktime pthread_sigmask readlink socklen s= tdarg stdio strftime strtoimax strtoumax symlink sys_stat +# Reproduce by: gnulib-tool --import --dir=3D. --lib=3Dlibgnu --source-b= ase=3Dlib --m4-base=3Dm4 --doc-base=3Ddoc --tests-base=3Dtests --aux-dir=3D= build-aux --avoid=3Dthreadlib --makefile-name=3Dgnulib.mk --conditional-d= ependencies --no-libtool --macro-prefix=3Dgl --no-vc-files alloca-opt car= eadlinkat crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dup2= filemode getloadavg getopt-gnu ignore-value intprops lstat mktime pthrea= d_sigmask readlink socklen stdarg stdio strftime strtoimax strtoumax syml= ink sys_stat =20 =20 MOSTLYCLEANFILES +=3D core *.stackdump @@ -52,54 +52,6 @@ =20 ## end gnulib module allocator =20 -## begin gnulib module arg-nonnull - -# The BUILT_SOURCES created by this Makefile snippet are not used via #i= nclude -# statements but through direct file reference. Therefore this snippet m= ust be -# present in all Makefile.am that need it. This is ensured by the applic= ability -# 'all' defined above. - -BUILT_SOURCES +=3D arg-nonnull.h -# The arg-nonnull.h that gets inserted into generated .h files is the sa= me as -# build-aux/arg-nonnull.h, except that it has the copyright header cut o= ff. -arg-nonnull.h: $(top_srcdir)/./arg-nonnull.h - $(AM_V_GEN)rm -f $@-t $@ && \ - sed -n -e '/GL_ARG_NONNULL/,$$p' \ - < $(top_srcdir)/./arg-nonnull.h \ - > $@-t && \ - mv $@-t $@ -MOSTLYCLEANFILES +=3D arg-nonnull.h arg-nonnull.h-t - -ARG_NONNULL_H=3Darg-nonnull.h - -EXTRA_DIST +=3D $(top_srcdir)/./arg-nonnull.h - -## end gnulib module arg-nonnull - -## begin gnulib module c++defs - -# The BUILT_SOURCES created by this Makefile snippet are not used via #i= nclude -# statements but through direct file reference. Therefore this snippet m= ust be -# present in all Makefile.am that need it. This is ensured by the applic= ability -# 'all' defined above. - -BUILT_SOURCES +=3D c++defs.h -# The c++defs.h that gets inserted into generated .h files is the same a= s -# build-aux/c++defs.h, except that it has the copyright header cut off. -c++defs.h: $(top_srcdir)/./c++defs.h - $(AM_V_GEN)rm -f $@-t $@ && \ - sed -n -e '/_GL_CXXDEFS/,$$p' \ - < $(top_srcdir)/./c++defs.h \ - > $@-t && \ - mv $@-t $@ -MOSTLYCLEANFILES +=3D c++defs.h c++defs.h-t - -CXXDEFS_H=3Dc++defs.h - -EXTRA_DIST +=3D $(top_srcdir)/./c++defs.h - -## end gnulib module c++defs - ## begin gnulib module careadlinkat =20 libgnu_a_SOURCES +=3D careadlinkat.c @@ -362,6 +314,87 @@ =20 ## end gnulib module sigprocmask =20 +## begin gnulib module snippet/_Noreturn + +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all Makefile.am that +# need it. This is ensured by the applicability 'all' defined above. + +_NORETURN_H=3D$(top_srcdir)/build-aux/snippet/_Noreturn.h + +EXTRA_DIST +=3D $(top_srcdir)/build-aux/snippet/_Noreturn.h + +## end gnulib module snippet/_Noreturn + +## begin gnulib module snippet/arg-nonnull + +# The BUILT_SOURCES created by this Makefile snippet are not used via #i= nclude +# statements but through direct file reference. Therefore this snippet m= ust be +# present in all Makefile.am that need it. This is ensured by the applic= ability +# 'all' defined above. + +BUILT_SOURCES +=3D arg-nonnull.h +# The arg-nonnull.h that gets inserted into generated .h files is the sa= me as +# build-aux/snippet/arg-nonnull.h, except that it has the copyright head= er cut +# off. +arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/GL_ARG_NONNULL/,$$p' \ + < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES +=3D arg-nonnull.h arg-nonnull.h-t + +ARG_NONNULL_H=3Darg-nonnull.h + +EXTRA_DIST +=3D $(top_srcdir)/build-aux/snippet/arg-nonnull.h + +## end gnulib module snippet/arg-nonnull + +## begin gnulib module snippet/c++defs + +# The BUILT_SOURCES created by this Makefile snippet are not used via #i= nclude +# statements but through direct file reference. Therefore this snippet m= ust be +# present in all Makefile.am that need it. This is ensured by the applic= ability +# 'all' defined above. + +BUILT_SOURCES +=3D c++defs.h +# The c++defs.h that gets inserted into generated .h files is the same a= s +# build-aux/snippet/c++defs.h, except that it has the copyright header c= ut off. +c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/_GL_CXXDEFS/,$$p' \ + < $(top_srcdir)/build-aux/snippet/c++defs.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES +=3D c++defs.h c++defs.h-t + +CXXDEFS_H=3Dc++defs.h + +EXTRA_DIST +=3D $(top_srcdir)/build-aux/snippet/c++defs.h + +## end gnulib module snippet/c++defs + +## begin gnulib module snippet/warn-on-use + +BUILT_SOURCES +=3D warn-on-use.h +# The warn-on-use.h that gets inserted into generated .h files is the sa= me as +# build-aux/snippet/warn-on-use.h, except that it has the copyright head= er cut +# off. +warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h + $(AM_V_GEN)rm -f $@-t $@ && \ + sed -n -e '/^.ifndef/,$$p' \ + < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ + > $@-t && \ + mv $@-t $@ +MOSTLYCLEANFILES +=3D warn-on-use.h warn-on-use.h-t + +WARN_ON_USE_H=3Dwarn-on-use.h + +EXTRA_DIST +=3D $(top_srcdir)/build-aux/snippet/warn-on-use.h + +## end gnulib module snippet/warn-on-use + ## begin gnulib module stat =20 if gl_GNULIB_ENABLED_stat @@ -634,7 +667,8 @@ =20 # We need the following in order to create when the system # doesn't have one that works with the given compiler. -stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_N= ONNULL_H) $(WARN_ON_USE_H) +stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ + $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @@ -708,6 +742,7 @@ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ + -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ @@ -1040,25 +1075,6 @@ =20 ## end gnulib module verify =20 -## begin gnulib module warn-on-use - -BUILT_SOURCES +=3D warn-on-use.h -# The warn-on-use.h that gets inserted into generated .h files is the sa= me as -# build-aux/warn-on-use.h, except that it has the copyright header cut o= ff. -warn-on-use.h: $(top_srcdir)/./warn-on-use.h - $(AM_V_GEN)rm -f $@-t $@ && \ - sed -n -e '/^.ifndef/,$$p' \ - < $(top_srcdir)/./warn-on-use.h \ - > $@-t && \ - mv $@-t $@ -MOSTLYCLEANFILES +=3D warn-on-use.h warn-on-use.h-t - -WARN_ON_USE_H=3Dwarn-on-use.h - -EXTRA_DIST +=3D $(top_srcdir)/./warn-on-use.h - -## end gnulib module warn-on-use - =20 mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ =3D=3D=3D modified file 'lib/makefile.w32-in' --- lib/makefile.w32-in 2011-06-21 08:45:39 +0000 +++ lib/makefile.w32-in 2011-07-24 22:15:47 +0000 @@ -213,7 +213,7 @@ PRAGMA_SYSTEM_HEADER =3D \#pragma GCC system_header PRAGMA_COLUMNS =3D NEXT_GETOPT_H =3D -ARG_NONNULL_H =3D ../arg-nonnull.h +ARG_NONNULL_H =3D ../build-aux/snippet/arg-nonnull.h =20 getopt_h: - $(DEL) getopt_.h-t getopt_.h =3D=3D=3D modified file 'lib/pthread_sigmask.c' --- lib/pthread_sigmask.c 2011-07-08 20:20:19 +0000 +++ lib/pthread_sigmask.c 2011-07-24 22:15:47 +0000 @@ -20,10 +20,50 @@ #include =20 #include +#include + +#if PTHREAD_SIGMASK_UNBLOCK_BUG +# include +#endif =20 int pthread_sigmask (int how, const sigset_t *new_mask, sigset_t *old_mask) +#undef pthread_sigmask { +#if HAVE_PTHREAD_SIGMASK + int ret =3D pthread_sigmask (how, new_mask, old_mask); +# if PTHREAD_SIGMASK_INEFFECTIVE + if (ret =3D=3D 0) + { + /* Detect whether pthread_sigmask is currently ineffective. + Don't cache the information: libpthread.so could be dynamically + loaded after the program started and after pthread_sigmask was + called for the first time. */ + if (pthread_sigmask (1729, NULL, NULL) =3D=3D 0) + { + /* pthread_sigmask is currently ineffective. The program is n= ot + linked to -lpthread. So use sigprocmask instead. */ + return (sigprocmask (how, new_mask, old_mask) < 0 ? errno : 0)= ; + } + } +# endif +# if PTHREAD_SIGMASK_FAILS_WITH_ERRNO + if (ret =3D=3D -1) + return errno; +# endif +# if PTHREAD_SIGMASK_UNBLOCK_BUG + if (ret =3D=3D 0 + && new_mask !=3D NULL + && (how =3D=3D SIG_UNBLOCK || how =3D=3D SIG_SETMASK)) + { + /* Give the OS the opportunity to raise signals that were pending = before + the pthread_sigmask call and have now been unblocked. */ + usleep (1); + } +# endif + return ret; +#else int ret =3D sigprocmask (how, new_mask, old_mask); return (ret < 0 ? errno : 0); +#endif } =3D=3D=3D modified file 'lib/stdlib.in.h' --- lib/stdlib.in.h 2011-05-29 21:52:18 +0000 +++ lib/stdlib.in.h 2011-07-24 22:15:47 +0000 @@ -89,11 +89,7 @@ # include #endif =20 -#if 3 <=3D __GNUC__ || __GNUC__ =3D=3D 2 && 8 <=3D __GNUC_MINOR__ -# define _GL_ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) -#else -# define _GL_ATTRIBUTE_NORETURN -#endif +/* The definition of _Noreturn is copied here. */ =20 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ =20 @@ -120,7 +116,7 @@ /* Terminate the current process with the given return code, without run= ning the 'atexit' handlers. */ # if !@HAVE__EXIT@ -_GL_FUNCDECL_SYS (_Exit, void, (int status) _GL_ATTRIBUTE_NORETURN); +_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); =3D=3D=3D modified file 'm4/extensions.m4' --- m4/extensions.m4 2011-01-09 06:57:07 +0000 +++ m4/extensions.m4 2011-07-24 22:15:47 +0000 @@ -1,4 +1,4 @@ -# serial 9 -*- Autoconf -*- +# serial 10 -*- Autoconf -*- # Enable extensions on systems that normally disable them. =20 # Copyright (C) 2003, 2006-2011 Free Software Foundation, Inc. @@ -67,6 +67,10 @@ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif +/* Enable general extensions on MacOS X. */ +#ifndef _DARWIN_C_SOURCE +# undef _DARWIN_C_SOURCE +#endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE @@ -95,6 +99,7 @@ test $ac_cv_safe_to_define___extensions__ =3D yes && AC_DEFINE([__EXTENSIONS__]) AC_DEFINE([_ALL_SOURCE]) + AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([_TANDEM_SOURCE]) =3D=3D=3D modified file 'm4/getopt.m4' --- m4/getopt.m4 2011-07-08 20:22:17 +0000 +++ m4/getopt.m4 2011-07-24 22:15:47 +0000 @@ -231,8 +231,12 @@ [AC_LANG_PROGRAM([[#include #include #include + ]GL_NOCRASH[ ]], [[ int result =3D 0; + + nocrash_init(); + /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mi= ngw, and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10. */ =3D=3D=3D modified file 'm4/gl-comp.m4' --- m4/gl-comp.m4 2011-07-09 00:18:49 +0000 +++ m4/gl-comp.m4 2011-07-24 22:15:47 +0000 @@ -28,8 +28,6 @@ AC_REQUIRE([AC_PROG_RANLIB]) # Code from module alloca-opt: # Code from module allocator: - # Code from module arg-nonnull: - # Code from module c++defs: # Code from module careadlinkat: # Code from module crypto/md5: # Code from module crypto/sha1: @@ -52,10 +50,15 @@ # Code from module lstat: # Code from module mktime: # Code from module multiarch: + # Code from module nocrash: # Code from module pthread_sigmask: # Code from module readlink: # Code from module signal: # Code from module sigprocmask: + # Code from module snippet/_Noreturn: + # Code from module snippet/arg-nonnull: + # Code from module snippet/c++defs: + # Code from module snippet/warn-on-use: # Code from module socklen: # Code from module ssize_t: # Code from module stat: @@ -82,7 +85,6 @@ # Code from module u64: # Code from module unistd: # Code from module verify: - # Code from module warn-on-use: ]) =20 # This macro should be invoked from ./configure.in, in the section @@ -148,6 +150,7 @@ gl_FUNC_PTHREAD_SIGMASK if test $HAVE_PTHREAD_SIGMASK =3D 0 || test $REPLACE_PTHREAD_SIGMASK =3D= 1; then AC_LIBOBJ([pthread_sigmask]) + gl_PREREQ_PTHREAD_SIGMASK fi gl_SIGNAL_MODULE_INDICATOR([pthread_sigmask]) gl_FUNC_READLINK @@ -451,9 +454,10 @@ # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ - build-aux/arg-nonnull.h - build-aux/c++defs.h - build-aux/warn-on-use.h + build-aux/snippet/_Noreturn.h + build-aux/snippet/arg-nonnull.h + build-aux/snippet/c++defs.h + build-aux/snippet/warn-on-use.h lib/alloca.in.h lib/allocator.c lib/allocator.h @@ -528,6 +532,7 @@ m4/md5.m4 m4/mktime.m4 m4/multiarch.m4 + m4/nocrash.m4 m4/pthread_sigmask.m4 m4/readlink.m4 m4/sha1.m4 =3D=3D=3D modified file 'm4/gnulib-common.m4' --- m4/gnulib-common.m4 2011-06-08 16:26:45 +0000 +++ m4/gnulib-common.m4 2011-07-24 22:15:47 +0000 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 26 +# gnulib-common.m4 serial 28 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -12,6 +12,19 @@ AC_REQUIRE([gl_COMMON_BODY]) ]) AC_DEFUN([gl_COMMON_BODY], [ + AH_VERBATIM([_Noreturn], +[/* The _Noreturn keyword of draft C1X. */ +#ifndef _Noreturn +# if (3 <=3D __GNUC__ || (__GNUC__ =3D=3D 2 && 8 <=3D __GNUC_MINOR__) \ + || 0x5110 <=3D __SUNPRO_C) +# define _Noreturn __attribute__ ((__noreturn__)) +# elif 1200 <=3D _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn +# endif +#endif +]) AH_VERBATIM([isoc99_inline], [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it sup= ports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics= of =3D=3D=3D added file 'm4/largefile.m4' --- m4/largefile.m4 1970-01-01 00:00:00 +0000 +++ m4/largefile.m4 2011-07-24 22:15:47 +0000 @@ -0,0 +1,104 @@ +# Enable large files on systems where this is not the default. + +# Copyright 1992-1996, 1998-2011 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. + +# The following implementation works around a problem in autoconf <=3D 2= .68; +# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5. +m4_version_prereq([2.69], [] ,[ + +# _AC_SYS_LARGEFILE_TEST_INCLUDES +# ------------------------------- +m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], +[@%:@include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[[(LARGE_OFF_T % 2147483629 =3D=3D 721 + && LARGE_OFF_T % 2147483647 =3D=3D 1) + ? 1 : -1]];[]dnl +]) + + +# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, +# CACHE-VAR, +# DESCRIPTION, +# PROLOGUE, [FUNCTION-BODY]) +# -------------------------------------------------------- +m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE], +[AC_CACHE_CHECK([for $1 value needed for large files], [$3], +[while :; do + m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( + [AC_LANG_PROGRAM([$5], [$6])], + [$3=3Dno; break]) + m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( + [AC_LANG_PROGRAM([@%:@define $1 $2 +$5], [$6])], + [$3=3D$2; break]) + $3=3Dunknown + break +done]) +case $$3 in #( + no | unknown) ;; + *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);; +esac +rm -rf conftest*[]dnl +])# _AC_SYS_LARGEFILE_MACRO_VALUE + + +# AC_SYS_LARGEFILE +# ---------------- +# By default, many hosts won't let programs access large files; +# one must use special compiler options to get large-file access to work= . +# For more details about this brain damage please see: +# http://www.unix-systems.org/version2/whatsnew/lfs20mar.html +AC_DEFUN([AC_SYS_LARGEFILE], +[AC_ARG_ENABLE(largefile, + [ --disable-largefile omit support for large files]) +if test "$enable_largefile" !=3D no; then + + AC_CACHE_CHECK([for special C compiler options needed for large files]= , + ac_cv_sys_largefile_CC, + [ac_cv_sys_largefile_CC=3Dno + if test "$GCC" !=3D yes; then + ac_save_CC=3D$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) + AC_COMPILE_IFELSE([], [break]) + CC=3D"$CC -n32" + AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=3D' -n32'; break]) + break + done + CC=3D$ac_save_CC + rm -f conftest.$ac_ext + fi]) + if test "$ac_cv_sys_largefile_CC" !=3D no; then + CC=3D$CC$ac_cv_sys_largefile_CC + fi + + _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, + ac_cv_sys_file_offset_bits, + [Number of bits in a file offset, on hosts where this is settable.], + [_AC_SYS_LARGEFILE_TEST_INCLUDES]) + if test $ac_cv_sys_file_offset_bits =3D unknown; then + _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, + ac_cv_sys_large_files, + [Define for large files, on AIX-style hosts.], + [_AC_SYS_LARGEFILE_TEST_INCLUDES]) + fi + + AH_VERBATIM([_DARWIN_USE_64_BIT_INODE], +[/* Enable large inode numbers on Mac OS X. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif]) +fi +])# AC_SYS_LARGEFILE + +])# m4_version_prereq 2.69 =3D=3D=3D added file 'm4/nocrash.m4' --- m4/nocrash.m4 1970-01-01 00:00:00 +0000 +++ m4/nocrash.m4 2011-07-24 22:15:47 +0000 @@ -0,0 +1,102 @@ +# nocrash.m4 serial 2 +dnl Copyright (C) 2005, 2009-2011 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 Based on libsigsegv, from Bruno Haible and Paolo Bonzini. + +AC_PREREQ([2.13]) + +dnl Expands to some code for use in .c programs that will cause the conf= igure +dnl test to exit instead of crashing. This is useful to avoid triggering +dnl action from a background debugger and to avoid core dumps. +dnl Usage: ... +dnl ]GL_NOCRASH[ +dnl ... +dnl int main() { nocrash_init(); ... } +AC_DEFUN([GL_NOCRASH],[[ +#include +#if defined __MACH__ && defined __APPLE__ +/* Avoid a crash on MacOS X. */ +#include +#include +#include +#include +#include +#include +/* The exception port on which our thread listens. */ +static mach_port_t our_exception_port; +/* The main function of the thread listening for exceptions of type + EXC_BAD_ACCESS. */ +static void * +mach_exception_thread (void *arg) +{ + /* Buffer for a message to be received. */ + struct { + mach_msg_header_t head; + mach_msg_body_t msgh_body; + char data[1024]; + } msg; + mach_msg_return_t retval; + /* Wait for a message on the exception port. */ + retval =3D mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, size= of (msg), + our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_POR= T_NULL); + if (retval !=3D MACH_MSG_SUCCESS) + abort (); + exit (1); +} +static void +nocrash_init (void) +{ + mach_port_t self =3D mach_task_self (); + /* Allocate a port on which the thread shall listen for exceptions. *= / + if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_= port) + =3D=3D KERN_SUCCESS) { + /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port= _insert_right.html. */ + if (mach_port_insert_right (self, our_exception_port, our_exception_= port, + MACH_MSG_TYPE_MAKE_SEND) + =3D=3D KERN_SUCCESS) { + /* The exceptions we want to catch. Only EXC_BAD_ACCESS is intere= sting + for us. */ + exception_mask_t mask =3D EXC_MASK_BAD_ACCESS; + /* Create the thread listening on the exception port. */ + pthread_attr_t attr; + pthread_t thread; + if (pthread_attr_init (&attr) =3D=3D 0 + && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED= ) =3D=3D 0 + && pthread_create (&thread, &attr, mach_exception_thread, NULL= ) =3D=3D 0) { + pthread_attr_destroy (&attr); + /* Replace the exception port info for these exceptions with our= own. + Note that we replace the exception port for the entire task, = not only + for a particular thread. This has the effect that when our e= xception + port gets the message, the thread specific exception port has= already + been asked, and we don't need to bother about it. + See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_= set_exception_ports.html. */ + task_set_exception_ports (self, mask, our_exception_port, + EXCEPTION_DEFAULT, MACHINE_THREAD_STAT= E); + } + } + } +} +#else +/* Avoid a crash on POSIX systems. */ +#include +/* A POSIX signal handler. */ +static void +exception_handler (int sig) +{ + exit (1); +} +static void +nocrash_init (void) +{ +#ifdef SIGSEGV + signal (SIGSEGV, exception_handler); +#endif +#ifdef SIGBUS + signal (SIGBUS, exception_handler); +#endif +} +#endif +]]) =3D=3D=3D modified file 'm4/pthread_sigmask.m4' --- m4/pthread_sigmask.m4 2011-07-09 08:56:25 +0000 +++ m4/pthread_sigmask.m4 2011-07-24 22:15:47 +0000 @@ -1,4 +1,4 @@ -# pthread_sigmask.m4 serial 7-emacs1 +# pthread_sigmask.m4 serial 11 dnl Copyright (C) 2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -8,20 +8,240 @@ [ AC_CHECK_FUNCS_ONCE([pthread_sigmask]) LIB_PTHREAD_SIGMASK=3D - dnl gl_THREADLIB is not in use. Assume the application wants - dnl POSIX semantics. - if test $ac_cv_func_pthread_sigmask !=3D yes; then - gl_save_LIBS=3D$LIBS - AC_SEARCH_LIBS([pthread_sigmask], [pthread c_r]) - LIBS=3D$gl_save_LIBS - if test "$ac_cv_search_pthread_sigmask" =3D no; then + + dnl Test whether the gnulib module 'threadlib' is in use. + dnl Some packages like Emacs use --avoid=3Dthreadlib. + dnl Write the symbol in such a way that it does not cause 'aclocal' to= pick + dnl the threadlib.m4 file that is installed in $PREFIX/share/aclocal/. + m4_ifdef([gl_[]THREADLIB], [ + AC_REQUIRE([gl_[]THREADLIB]) + + if test "$gl_threads_api" =3D posix; then + if test $ac_cv_func_pthread_sigmask =3D yes; then + dnl pthread_sigmask is available without -lpthread. + : + else + if test -n "$LIBMULTITHREAD"; then + AC_CACHE_CHECK([for pthread_sigmask in $LIBMULTITHREAD], + [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD], + [gl_save_LIBS=3D"$LIBS" + LIBS=3D"$LIBS $LIBMULTITHREAD" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #include + ]], + [[return pthread_sigmask (0, (sigset_t *) 0, (sigset_t= *) 0);]]) + ], + [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=3Dyes], + [gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD=3Dno]) + LIBS=3D"$gl_save_LIBS" + ]) + if test $gl_cv_func_pthread_sigmask_in_LIBMULTITHREAD =3D yes;= then + dnl pthread_sigmask is available with -lpthread. + LIB_PTHREAD_SIGMASK=3D"$LIBMULTITHREAD" + else + dnl pthread_sigmask is not available at all. + HAVE_PTHREAD_SIGMASK=3D0 + fi + else + dnl pthread_sigmask is not available at all. + HAVE_PTHREAD_SIGMASK=3D0 + fi + fi + else + dnl pthread_sigmask may exist but does not interoperate with the c= hosen + dnl multithreading facility. + dnl If "$gl_threads_api" =3D pth, we could use the function pth_si= gmask, + dnl but it is equivalent to sigprocmask, so we choose to emulate + dnl pthread_sigmask with sigprocmask also in this case. This yield= s fewer + dnl link dependencies. + if test $ac_cv_func_pthread_sigmask =3D yes; then + REPLACE_PTHREAD_SIGMASK=3D1 + else HAVE_PTHREAD_SIGMASK=3D0 - elif test "$ac_cv_search_pthread_sigmask" !=3D 'none required'; th= en - LIB_PTHREAD_SIGMASK=3D$ac_cv_search_pthread_sigmask fi fi + ], [ + dnl The module 'threadlib' is not in use, due to --avoid=3Dthreadlib= being + dnl specified. + dnl The package either has prepared CPPFLAGS and LIBS for use of POS= IX:2008 + dnl threads, or wants to build single-threaded programs. + if test $ac_cv_func_pthread_sigmask =3D yes; then + dnl pthread_sigmask exists and does not require extra libraries. + dnl Assume that it is declared. + : + else + dnl pthread_sigmask either does not exist or needs extra libraries= . + HAVE_PTHREAD_SIGMASK=3D0 + dnl Define the symbol rpl_pthread_sigmask, not pthread_sigmask, + dnl so as to not accidentally override the system's pthread_sigmas= k + dnl symbol from libpthread. This is necessary on IRIX 6.5. + REPLACE_PTHREAD_SIGMASK=3D1 + fi + ]) + AC_SUBST([LIB_PTHREAD_SIGMASK]) dnl We don't need a variable LTLIB_PTHREAD_SIGMASK, because when dnl "$gl_threads_api" =3D posix, $LTLIBMULTITHREAD and $LIBMULTITHREAD= are the dnl same: either both empty or both "-lpthread". + + dnl Now test for some bugs in the system function. + if test $HAVE_PTHREAD_SIGMASK =3D 1; then + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl On FreeBSD 6.4, HP-UX 11.31, Solaris 9, in programs that are not= linked + dnl with -lpthread, the pthread_sigmask() function always returns 0 = and has + dnl no effect. + if test -z "$LIB_PTHREAD_SIGMASK"; then + AC_CACHE_CHECK([whether pthread_sigmask works without -lpthread], + [gl_cv_func_pthread_sigmask_in_libc_works], + [ + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +#include +int main () +{ + sigset_t set; + sigemptyset (&set); + return pthread_sigmask (1729, &set, NULL) !=3D 0; +}]])], + [gl_cv_func_pthread_sigmask_in_libc_works=3Dno], + [gl_cv_func_pthread_sigmask_in_libc_works=3Dyes], + [ +changequote(,)dnl + case "$host_os" in + freebsd* | hpux* | solaris | solaris2.[2-9]*) + gl_cv_func_pthread_sigmask_in_libc_works=3D"guessing no= ";; + *) + gl_cv_func_pthread_sigmask_in_libc_works=3D"guessing ye= s";; + esac +changequote([,])dnl + ]) + ]) + case "$gl_cv_func_pthread_sigmask_in_libc_works" in + *no) + REPLACE_PTHREAD_SIGMASK=3D1 + AC_DEFINE([PTHREAD_SIGMASK_INEFFECTIVE], [1], + [Define to 1 if pthread_sigmask() may returns 0 and have no = effect.]) + ;; + esac + fi + + dnl On Cygwin 1.7.5, the pthread_sigmask() has a wrong return value + dnl convention: Upon failure, it returns -1 and sets errno. + AC_CACHE_CHECK([whether pthread_sigmask returns error numbers], + [gl_cv_func_pthread_sigmask_return_works], + [ + gl_save_LIBS=3D"$LIBS" + LIBS=3D"$LIBS $LIB_PTHREAD_SIGMASK" + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +#include +int main () +{ + sigset_t set; + sigemptyset (&set); + if (pthread_sigmask (1729, &set, NULL) =3D=3D -1) + return 1; + return 0; +}]])], + [gl_cv_func_pthread_sigmask_return_works=3Dyes], + [gl_cv_func_pthread_sigmask_return_works=3Dno], + [case "$host_os" in + cygwin*) + gl_cv_func_pthread_sigmask_return_works=3D"guessing no";; + *) + gl_cv_func_pthread_sigmask_return_works=3D"guessing yes";= ; + esac + ]) + LIBS=3D"$gl_save_LIBS" + ]) + case "$gl_cv_func_pthread_sigmask_return_works" in + *no) + REPLACE_PTHREAD_SIGMASK=3D1 + AC_DEFINE([PTHREAD_SIGMASK_FAILS_WITH_ERRNO], [1], + [Define to 1 if pthread_sigmask(), when it fails, returns -1 a= nd sets errno.]) + ;; + esac + + dnl On IRIX 6.5, in a single-threaded program, pending signals are n= ot + dnl immediately delivered when they are unblocked through pthread_si= gmask, + dnl only a little while later. + AC_CACHE_CHECK([whether pthread_sigmask unblocks signals correctly], + [gl_cv_func_pthread_sigmask_unblock_works], + [ + case "$host_os" in + irix*) + gl_cv_func_pthread_sigmask_unblock_works=3D"guessing no";; + *) + gl_cv_func_pthread_sigmask_unblock_works=3D"guessing yes";; + esac + dnl Here we link against $LIBMULTITHREAD, not only $LIB_PTHREAD_= SIGMASK, + dnl otherwise we get a false positive on those platforms where + dnl $gl_cv_func_pthread_sigmask_in_libc_works is "no". + gl_save_LIBS=3D"$LIBS" + LIBS=3D"$LIBS $LIBMULTITHREAD" + AC_RUN_IFELSE( + [AC_LANG_SOURCE([[ +#include +#include +#include +#include +#include +static volatile int sigint_occurred; +static void +sigint_handler (int sig) +{ + sigint_occurred++; +} +int main () +{ + sigset_t set; + int pid =3D getpid (); + char command[80]; + signal (SIGINT, sigint_handler); + sigemptyset (&set); + sigaddset (&set, SIGINT); + if (!(pthread_sigmask (SIG_BLOCK, &set, NULL) =3D=3D 0)) + return 1; + sprintf (command, "sh -c 'sleep 1; kill -%d %d' &", SIGINT, pid); + if (!(system (command) =3D=3D 0)) + return 2; + sleep (2); + if (!(sigint_occurred =3D=3D 0)) + return 3; + if (!(pthread_sigmask (SIG_UNBLOCK, &set, NULL) =3D=3D 0)) + return 4; + if (!(sigint_occurred =3D=3D 1)) /* This fails on IRIX. */ + return 5; + return 0; +}]])], + [:], + [gl_cv_func_pthread_sigmask_unblock_works=3Dno], + [:]) + LIBS=3D"$gl_save_LIBS" + ]) + case "$gl_cv_func_pthread_sigmask_unblock_works" in + *no) + REPLACE_PTHREAD_SIGMASK=3D1 + AC_DEFINE([PTHREAD_SIGMASK_UNBLOCK_BUG], [1], + [Define to 1 if pthread_sigmask() unblocks signals incorrectly= .]) + ;; + esac + fi +]) + +# Prerequisite of lib/pthread_sigmask.c. +AC_DEFUN([gl_PREREQ_PTHREAD_SIGMASK], +[ + if test $HAVE_PTHREAD_SIGMASK =3D 1; then + AC_DEFINE([HAVE_PTHREAD_SIGMASK], [1], + [Define to 1 if the pthread_sigmask function can be used (despite = bugs).]) + fi ]) =3D=3D=3D modified file 'make-dist' --- make-dist 2011-05-24 04:00:56 +0000 +++ make-dist 2011-07-24 22:15:47 +0000 @@ -283,18 +283,16 @@ ### tar file; this means that people can start reading the INSTALL and ### README while the rest of the tar file is still unpacking. Whoopee. echo "Making links to top-level files" -ln INSTALL README BUGS move-if-change ${tempdir} +ln INSTALL README BUGS ${tempdir} ln ChangeLog Makefile.in configure configure.in ${tempdir} ln config.bat make-dist update-subdirs vpath.sed .dir-locals.el ${tempdi= r} -ln config.sub config.guess install-sh ${tempdir} ln aclocal.m4 ${tempdir} -ln compile depcomp missing ${tempdir} -ln arg-nonnull.h c++defs.h warn-on-use.h ${tempdir} =20 echo "Creating subdirectories" for subdir in site-lisp \ leim leim/CXTERM-DIC leim/MISC-DIC \ leim/SKK-DIC leim/ja-dic leim/quail \ + build-aux build-aux/snippet \ src src/m src/s src/bitmaps lib lib-src oldXMenu lwlib \ nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ `find etc lisp -type d` \ @@ -346,6 +344,15 @@ rm -f ../${tempdir}/leim/quail/tsang-b5.* rm -f ../${tempdir}/leim/quail/tsang-cns.*) =20 +echo "Making links to \`build-aux'" +(cd build-aux + ln compile config.guess config.sub depcomp ../${tempdir}/build-aux + ln install-sh missing move-if-change ../${tempdir}/build-aux) + +echo "Making links to \`build-aux/snippet'" +(cd build-aux/snippet + ln *.h ../../${tempdir}/build-aux/snippet) + echo "Making links to \`src'" ### Don't distribute the configured versions of ### config.in, paths.in, buildobj.h, or Makefile.in. @@ -373,12 +380,13 @@ ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/s) =20 echo "Making links to \`lib'" -(build_aux_h=3D`(ls *.h)` +(snippet_h=3D`(cd build-aux/snippet && ls *.h)` cd lib ln [a-zA-Z]*.[ch] ../${tempdir}/lib ln gnulib.mk Makefile.am Makefile.in ../${tempdir}/lib cd ../${tempdir}/lib - rm -f `(echo "$build_aux_h"; ls *.in.h) | sed '/[*]/d; s/.in.h$/.h/'`) + script=3D'/[*]/d; s/\.in\.h$/.h/' + rm -f `(echo "$snippet_h"; ls *.in.h) | sed "$script"`) =20 echo "Making links to \`lib-src'" (cd lib-src =3D=3D=3D modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2011-06-07 13:55:22 +0000 +++ msdos/ChangeLog 2011-07-25 16:26:30 +0000 @@ -1,3 +1,8 @@ +2011-07-25 Paul Eggert + + * sedlibmk.inp (CONFIG_CLEAN_VPATH_FILES): Adjust to snippet moves + from top level to build-aux/snippet. + 2011-06-07 Eli Zaretskii =20 * sedlibmk.inp (PTRDIFF_T_SUFFIX): Edit to nothing. =3D=3D=3D modified file 'msdos/sedlibmk.inp' --- msdos/sedlibmk.inp 2011-06-07 13:55:22 +0000 +++ msdos/sedlibmk.inp 2011-07-24 22:15:47 +0000 @@ -569,11 +569,11 @@ s/^@GL_GENERATE_STDINT_H_TRUE@// s/^@GL_GENERATE_STDINT_H_FALSE@/\#/ /^arg-nonnull\.h:/,/^[ ][ ]*mv /c\ -arg-nonnull.h: $(top_srcdir)/./arg-nonnull.h\ - sed -n -e '/GL_ARG_NONNULL/,$$p' < $(top_srcdir)/./arg-nonnull.h > $@ +arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h\ + sed -n -e '/GL_ARG_NONNULL/,$$p' < $(top_srcdir)/build-aux/snippet/arg-= nonnull.h > $@ /^cxxdefs\.h:/,/^[ ][ ]*mv /c\ -cxxdefs.h: $(top_srcdir)/./cxxdefs.h\ - sed -n -e '/_GL_CXXDEFS/,$$p' < $(top_srcdir)/./cxxdefs.h > $@ +cxxdefs.h: $(top_srcdir)/build-aux/snippet/cxxdefs.h\ + sed -n -e '/_GL_CXXDEFS/,$$p' < $(top_srcdir)/build-aux/snippet/cxxdefs= .h > $@ s/^ [ ]*{ echo \(.*\); \\/ djecho \1 > $@-t/ s/^ [ ]*{ echo \(.*\) && \\/ djecho \1 > $@-t/ s/ \&\& \\ *$// =3D=3D=3D modified file 'src/ChangeLog' --- src/ChangeLog 2011-07-25 16:39:39 +0000 +++ src/ChangeLog 2011-07-25 16:41:39 +0000 @@ -1,5 +1,9 @@ 2011-07-25 Paul Eggert =20 + * Makefile.in (gl-stamp): move-if-change is now in build-aux. + +2011-07-25 Paul Eggert + * bidi.c (bidi_dump_cached_states): Fix printf format mismatch. Found by GCC static checking and --with-wide-int on a 32-bit host. =20 =3D=3D=3D modified file 'src/Makefile.in' --- src/Makefile.in 2011-07-08 20:20:19 +0000 +++ src/Makefile.in 2011-07-24 22:15:47 +0000 @@ -439,7 +439,7 @@ gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES) @rm -f gl-tmp $(libsrc)/make-docfile -d $(srcdir) -g $(SOME_MACHINE_OBJECTS) $(obj) >= gl-tmp - $(srcdir)/../move-if-change gl-tmp globals.h + $(srcdir)/../build-aux/move-if-change gl-tmp globals.h echo timestamp > $@ =20 $(obj) $(otherobj): globals.h # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWaY+BrAAMaX/gH//YA1//= /// /+//7/////5gSH5zPtvE597vrFiC6ufQvvr7u7Ka1NUYp5tzvnuwk2aDvvTqr72Ru758+83wb= Mfe d7reJFXWe3u0Cnvbj2D1uyRtr0wDuztg9ucVbbsDvb0F7i+C1Vl1Uh3dzXuaSp76DE+3vvITP= r0H by1fLXCb09tl7rzi723LzbnV3OdjzmUpe7edeDez00oNGtNd261ou12Oju4coDp009ene7qVQ= Pvf Lvvqytdb3y3eRloaQQlfCSIgExA0CZNMImBNMmmQTEyTBTxNJ6meo0n6mkepo0eoYEoIATIQj= QgK bQ0mkbSaZGjI0AANAAAAA0DTTQgU1NMU9KnpG3qT0poMh6T0yEPTUaAA0AAGh6ho0GQSaUREm= 0Ez USbNSbAo3qZT01DTE2RNqD1DJoGg0NMgNAAIlCCaaBBk0BNDJoEyaNCPU01NTJtRptqQPSeo9= QZA APQSJBNAIBA0TEyaGpqnpoGp6j0mJoBoNAGgB6QAHRzrpkID6YAI0Q4utpJEUqEAkkkkSRTt8= Hzz 8x/vr23eMP4uD/GzokIJ8oFKQ/2/35/v/Fx/i29oBYWGgvKG+xv2DH6hmf5696fZ65Ht7uMbr= efK n91TPYBtYe/jvbv6vI4VcA8o8vm83uc8+4Tze0dQe73q3MNgVLI9jSMrM7ixMsDH3YoY6tP99= EIf 00z1d1DUXgnZFTA9P/rfnRxzGTc/1jyU11DnzxcVXNp+huFm4dUdPE3FK8GUM531n1l1hnI/7= PQn wLaSNLEdJpGrc825+3gSpssJhkQbnT5ms6aWmrPHw6Hzdx7SvVH3AWUuNufqe/8HdjtU5y6lZ= ZLz VV03dW7XeOHNTttsK5suBErWseKRtvwzZyShVTwYqifULB5q/1S8VUf7HPbG/ZmtVnX4jWhX+= EaE 8pc0DEVNhfS3eEc24vSnO95y8PT40sSrTG+Lwye4UTe/GJW3vYXOVjAvhUPtXji5WA0Yw9Xqa= tSc lB3+uKlq/FoWiekua9M3Nn5IW1blPHGzaoVXtTaLJEZ2/H93lhNw3nIdtEd8klfA68dbhH+T/= 7QT keV6tfF5T9fZuW4vn5HiMuCOqxvobv6Y2s7xuUHqsLw4GHivmw98jso+/p5MnxLDMuUtUqZ4d= VLq TpE/S66vPmerm2vFMI+3Cky/Z8un5Dm0lyzobPn39GzPNxZHd4HUl1rFZMMKJz2rFMNIJDDrP= h57 dUEgjOR4o7m1KNo8nsTEylK3pyaoVAmZ6ZIQZtckSmaAEh3q7ujqSw9upnjCd9ku27Fj0bu+n= 7vG 7MBMSKHPeUQ4RbVpCIcYnClONbSqjsIrYzSuKSd6CW3Pt7cdk4kk8ZSEWc3ZME3dwzbdW3PuE= jYH m/ApFhDhyePKEJdwSwn0OyELU6gKlZ53NNWiA0vt2C0X0afBmLRUVObnAYZc1lC0ti9EYqhDU= 81U CSMpK1t2PS8AgaasbnjAYGfsy/57cuMaUpVVGJ48E28vmV8GOQvW4wJ9lAvkA+TiHSpAVVN6C= GiB +MGRGQFkkVTwghIEig75qCDaGpE5vPos3PuRjQK3vOPUtFsh+sYDcEFTl1d/tdPp//0ORm+jy= fg+ HjrTEU/9k9s1CebobRwHw4G+A47jjvTNvn2GIX/6xqCgd42F/B4I0bsWCb/gh6eQnXcvM+kWN= LaW 9p0RMSMJPLGWAPZSfwmU9s2/ucdPEkIwLlIYv7n/09FAfxmHNRj1TLGMlh3X55j2l6IzGuSUd= CI0 3BgF+nH6LraOBVWdPPhuwz9dXj9LtU/9s0DnOjpRoRwoetr7nAif6OWaTBzbrqrPQWVuJw66f= JBM HlRPmASQkISRWEFkCIKoqqCxUYskVSLIM7lqJAkEkhH48xcu/QenV2MLvUfiCflBU/H6frCoc= vuZ b6jno8vPnfSMlIwZRWMZD9/MadwOU5cdD0/9s+/Z+D7GvZclWeVx4wK830AkqOXiDo8yi8OIN= yHd 0DDkEYejeQSM4tVS4s5MTz37x8ngRQsvG10x9OpUNtm/G+vDez/3i6UFXE2GUiphdlzyuhRu7= tea SMGDY9b45TNjg5MnDhwHF3FzMWvDK+UOXETE0c2yaOSibB6iQmQqheAbZq0h2Y6aHYWu4Lvip= 1lh a0kWJa2HJJJd7WbCgyIyMoQRc606NyM41V+fnI0MVWjn0geG+bGlKE2UVeuHpA3ekZpE+4aaC= zdJ v71x8e94JWZ6SO/r5jcUO2xsOogqhZCLwF+j8p5/Dux95bhVd2yYxsE7Y39Bo/udRgWHqf3nr= Hqh 4KBydYTXdDkDx6CSfX2zQnTpfJZ8brkXOM1KNmvumki8MK2fYUlMXeYVr79lqYxpYMj1ZGu1o= /GY DuT56HUmF67TnG76zOjb/pp3UUMxQTf8VxDZ5TF2ITwEcUFoSVxWSQ47wIw85F4xURSQllf1C= gkH OtauF4Ge73S8S0FpfGbEt28ZAwb0+4S5UBs6Al7Jms+79ZYeRWndydXNOtu/lE+iqRJjvuedZ= /fJ xPmL/V9sgHymm5LpXSfhOSBHwPePMj4DOk6inp1gXZhiRAIn6sB+rNPvL0D3elcPf3eK0vHXP= aZB QzRRg33FTnMMJj1gjA2E5lyLuVCpyT9N0gJbwPAaZjwK+y7SW2mxqKHlOYfgkp+lwTyElGtA7= lJY JIc+qEIehPJ7hb+yv3bEU4a8oay82fGLks41ZNNsuM0dBKWFQcbbCEel3vmBiiJr4bQSGCQ55= GW6 A8yw6BJIi/gU7LJLR+woOOw2cNctxnz7DG3lFs+2V4eZBKh9UxWM2AvutDYMp4KnYU8EXYUS4= tud +hLeUqjMNy/PTIhgtWgXIxaIGgZ12pPyeKbefu0Dqxp0fgvKTwo22PsKFPSLa648Gt0yEPDfn= 9oZ lohjE15KArH4c9/WL0Za6mtWa+sWkShU5JnlfA2IhSiCyBhYpCEleJTTnopSoWZSSczyjsnsq= Ukq 8xjGxkIus0YkymDBHdCOeZlOQeMxBuWGodLVUWYNhZXVlq0D1qb2q49N0ZmowZyZBC6Y8JeTj= Rau 4rDt0+MzQu1OmxRelOUDY2NjvOrjedBQwC80+1HQ1l4IEbZBxcTz9h07i+nLauReY0/dcsGlD= L05 ORrAQ2wbQqJhfQbqO8K6VSFUge5Q6D0fMiZRTd/mwQrYvPDkEjGRQmdEBDyeeTerwLhJTQ/LQ= H0O O5Wk/R6P2PZVyFMi6YXqySIQR1YmnOM7+ck6ONtUfQHKXDS19acUgXds7slL3b5XbPRQug0cG= Qau Gvo4kV6r1kk/O1oSSRQZBOImy9IG4vjRWtS3H8ntwa78+7bH1XUlMxEhwcOS7N6IJ89PQREDf= Y8O 6Tp6tI0zZ7QdgvRBs2HlqPdQsHclfMWuAhpFGDed+mDXtoW0nkHIIRFEGX9AXQcpyBQeMD7Mx= Mir iYmx+/HiTUzaXpoNbX7fTr7fDAOBvhnLR6YmRMrwIfT7pnwQgtLYiO2OTiucUoZyv0EWjBGMk= m8W /eImKL3pB7416iSvYsCJbq2X273aNPqPZ5+M+9DC6d5J7XGZm3F3nO07zwo9q9xA7PlTzDeuM= ZCE g/iJ6Jk0Xn95kAPUkUNBxQLLSnRGQ6h4fc9FU5Yz8/t7x4P3wG3C9X1e5jJzyPS7dQuieLcHE= Vl5 7hwF4MGcXGcYeOuMudLyEOKbEFBSLARNUO8uvMSu+W2/42nNlbWON2fGlZGOWUqxljEe72NsT= E00 vv74JCC7Zs1SMzNbVZd15Hza9diAvjCNLJJAOyBQD2CT1EMQYsCp4QQEGSVgYQihBGHwIfMhP= 0z1 dNPqw80xPCMKqHCwnYTVxtwYa8DDEAz7C2KokVJ4Lw5uRkNkEpxQeo/jifBPPe1JH9afGgX9x= zTC sQYn57OtFfnXzDeXg4gqJ2DiZGJs/o9VRHuExWfQH9dsUgxsHgEzX4Jr7iNQMqGHFbbxRRHqr= uKP 0++NXof8DA1y2n1pnHrYm7BuKc573KftzFhNU5s2ajPnGRGY2zGCkBnt/FDrodrh/Ngw+ZNfS= B8l 25XWz6h0cP8gxg0Vf0Dg7z70l9J8XxUfm2nwvxNTK9xz82B1U0/6i9bYGMxP3xXCiVyQNeKgy= +vJ VgIMhHQWBeIczN9x1k+irfNfkXNfy6czE2hiknyUsLM3o5Vu8Xi7JClSwLVVVVWKqqqqNbyd8= 7d0 lP50LH4DgLfd2Q8x/N/w57/uBKERDAl5aMvi8WAdqfc+v6XJGDXEc6WQHHUcfVxQkSspsjiJ/= oKi G4j0/P9L4tgc9U3hTA6Hcr6H92b43JKllJzFxkO0vQOEiMDmYdyC+N0T8cuHsCeTeUHEaAyYM= 0h9 5L4MqZWZ5fdpkbXWSsXYHVxXu7Ud3Np6erxkR2TgyYYQbUlwftrxadPCfkYE2iZerOODEkXFo= JTN 84hg30dzMRXltGaT1tZMl6X1npFxIBQgZ96HcWCEKtChcfTf2BcdpvIGGcFj8slM5GYSY3pcS= jUh BmmIXBFsxalWixIuLeHqDYORcApeEBDeMgH9QneCdBVATjneSIcA5umoFiXUnSylAZiBTKVdf= Z+n VGtciAsZISGDPgpr4r+L5Kx7g/U35YBvW8LrdU0s14J928MSqcMNuZDMaeE2CNAVbBEgihJW2= qVW CwpOlZLLtmvohhIcAaoRb/MJY8wLg5ogaxTv1Lntzz4IH2iOBV6Il4X4YcC+xBgJ8RPRRhEiN= +wC JjC/aemvGzfwcYUeX5EJ/EnqUyK0b3z+eqPxDxes2byWCv9ynbe7zHVPh7/g4Yl9ceOSIh35R= bha Vj0x7ofPKMcOkq/GTCeQIa2r7nL8uQpuIfZAqUN0ME8jrT7WWdmGgli4uLbx7fE+SDpnZ5pCZ= pYs +zHZw4MjLEjZgWwWkWxZUcgITDQLMwlm7SMM1s6wnSSTuHCSd3JRC9aETDO7aYh2KIMp0veNI= S0v AQcIIBJB3SSRLD46CEQEEEOngjpJh+u3b1U1m53dYBfG+/Ffj2REKmlBjfZDUGbStV/tWpAgK= KOQ IkSRB5KlSxgB9Y3EVvxTZrAqog7g+/Sm7YibVZ78jDHWP3P8vwhEi0hy+zoZtNd759v1/BUoE= dh2 He+ZnZJRmfQpJeDqDOGrQrIYMyROnw2ior9MqaJTgNQ8naN2p3vAqqqrxkAtWiiIv7XmDY2eR= BcJ yO+haaKj8jxsSGh2bK+QZlijdCmyVl9y9EmhCoXEsZO7z3JFPicXQeH4B439fxB+FyunkBBef= H+n AwL4m2GYABFgAizWikgKyLWJfdRDEoUcLWsVgnTTH54CfrmQJiuS1w/DJzvvG5aWu0l445nUZ= zJy 0NL4fcOAxgBBcdJAh0wtgUL0A0IQE4RE7tYSxMCKO4lCZTHU2dZUczcagriowoSbSPYy30GxI= NYJ DlRXIjOikFwTKIRVEmqRKbFrFUPzPjRAsBDBVEgZrdBAImzm00aUTY0SH4JIz3QGgXBw0QHRP= MYl ehyKZFcwWLEDHvMITRXNzMi2xO1AJx195BJNaqJpKIIFiCbMloDheYVEqRBQzZbMoXkqbM6GJ= BCu SsioGrUgqenIzkUvwki8UpoIQiTaSAZNiLJZEYlMS3B4mlYOBbcGxAlUEAUFQygh4JzwWWxTY= ubj J4agOX0aGsOP95E5RIlNiXIvTYxtPYjo0OOvwEmRHOh925sbS0M5wYM5+kOpSwpVEK8iDrzKW= Cc8 s5SX9wH4kt4t9PNqNKnHylXIai1KhwHwqZGRk+WBHaiVIaIADTdxXcdmEB32gE88pOoL87QNS= znw u2DcsAz3dpLIa0nKcPJA0Qyp3NLKDUNg/YQxliwKNJje3Gsx+1OtULUql+QzCarpeQs7FTqEs= 68G 5E6s7mtIs+7dUMls3EXUWFqxyAMJJCe0kYCoqjBB2AjfRu0G8RVeKJWTQcgRHWV4lRWrAixQF= 8NY bkQOnnyDeZdUkICWQwdMHwJXDq9FY3iOAjhoeW5nbp8paxk7G3Iq2Og81F6nEBQ6OeSS2zd+0= jgf sQGzaJYoSLk2qa6LvDYeOdOcdoxa8R23ut4veFaxYp1vzCtIvVNnEOohKhEl8+5anUflPNMio= klR zRuQgIx3Zlgrsa6WAqXGQmE7HI1qWrM5Ar53qmuvBCS2K4oY2SpeT4s6E2rgzJLaKg6mTxLdI= fMI eQh2ic80JlVqoVLNOcqoeJGwwGQyCheDDE0AQ6k1vRKEKHYnfJyf/Sik1OhpE0GkgiObbAhaQ= eZ4 lI35ZA3LnDZuaq6DU5b77hOEssIDuWfgsa5pl1tUHSeSARTBhfSek3BIgjIljsIqdBXc/BwXK= bYe RZBAIvbWJqYpSvSqyKq1uUUvneRyOZYxL0EAi9GRJB7lsDdLLiGLxhMJDIUj6SJY2koLTERJC= 844 mCuT6u21xeVMjDM4AkGQwJr42JnQZnuqGDBYbBL4YPI4gOXYkTkdM9XD3GyUJdvBPskRiHpt5= bum F7OyKhHZy6pRR5skzCTGSDU3JqxG8JDddwmNsPFT0XgQwOrYgIkklrF9M29dQ8G2tih266SUT= Uid R/NiLx3Uq8kvCV7VCnssRsSQG5TUUPwRiIAYdcMDQROY5M26pyIgVOpdYKnosjgk1SxfpjglU= JpW YKSMhAmlbIAjwkX0JpVNI576LukbChcXo22MlI3kGdagJF/YSCcxT3lg7FNzqKlkukDJOJXlQ= apA c0nW3UgWF6GxDRY6MYmvAmxOKJDbIgFpsAiHB6Jocv1DJycYJnQtubkrmTPygnVkTRzQFTefM= wqI BQQcPDci0iBrcxAY4NyAipkFaARgghsKpwcJLZxTYpPqaBCaFJjSH0+LqSsYAjqpRzoTYOVSI= +w5 olA2IIxEZIHBmTz2FzW5UUrDHo7hiKZwqJpZmREYmBUt8NxCoCBTCe7xOCoxU4GOwvLHJoUmK= ccn AuyMOepAEI7p0GyagdNOL29UyFzBkUc2ffywz1RtKSELSXCYaptwZXS3OcZwJAiKbpSy3xreY= DAg ejvm2U9lMbdXEwx7KTWnaqimRrNixfAQn5D11ulTFGaxX1422SDAgzuEX85DJGIHoN6w8cjaY= 6O+ 5axLzmK5J9YwO2kaaWsxQNjRPZgzEwN1XVFe0myI2GiTwOxXIQF5fGJA7h9BC+QHsEeF5PLPX= WHB PZSi8NxKQ806nefObK02l3GXEnOReEW8yOPEtqtgaY6V3dBgZzS7ia9D0V5plDAxV9qwtaGwa= NSI bcDwhrMVNy05VUy8zbIudxehjBuqqVdBCKpSCzkOkI2LN6IDJDgaFSxzg54wWntmqQEdSVCQ+= 9Br 9NjkskkBSPqSakI0sPtA0KdbJA4obkeNFiRsRLl3TBCJMsPEwWJUNzci2SiROnqkFpjFTccoa= GU6 h8ETgSeZKQvBYX1m6ONbiUN6uyZlgBGyhKS9snNSixr1ngqend12RIRabvJkOjL2kkRL4m9fK= DEs NIlMNOAVquDq4zR3XIN66SkB2LWAXF9yud5alohKuU6BIooLSS7SAoawlsKiAM9MZpWLvbDsT= LVw JdLnnw4UIsElBKCIA3ieJxaEVN1IO7Ta5UdARD2QOTGaoopo5wTW1GOMjQFFIYMyPBYqFiHqr= 4Fc DstnQUQgMpEEqnEvM0ukw0T4SL+FatKRsD5NnCzGbDuWIaa8ZU365ZOCGjXNxWTwuQL8nBQe0= Rlr YhGAxQ4Gmp78SpNAEFDenJ2kWcg52IqaqSKjkhoGx3salCWCZQ33PDAydDAaVKOgMYisYGetW= OU7 mw7ATqEyEzBgnQoPN59mLgulqSptCuZM8VBI4pmN2jZykbjeWUEjUtwMwxOSq3joXKi3LFhSl= zue lNHUoSh7N6yyZOH0Pb0VDcyFugOxLEN0xdgaAs1MFu4yewcLqXKu7iKZZ0FQk4pmdFpvjFI3x= a+O g2fItwfI1ECwwFoAVSolQnK1TE0Li14yvYkGXhDGoabTabTaBtNg5g/NSOoz60tsPxM+vfXXv= neb jQN4xIkjB0O2VhEQngVHPMgOQgxkkdoyK0Gml7Si1giA+ChQmRJqIWx2Tk4sQOq8JMpSraZi6= JI0 bwKCoAhQuQK7lS5UfASAlUZkfW3BREgaJSgXJm1PJ2KkiZgzlyxlwe7JPJyNKRIKkDLy5ilgk= YRN 7aiW4dKEMjmmexgbKyrZMmieSY8EwweCIx19Kkwd8HzzkFF0Mmybw3N/cPx2Qi3UgHBAu3B4n= U7K UGJEHFIkyxMY5JDEED7VhZmCpo4NiJQ8KU52IGx9lBAOOZYwPAODyD0rzHPDvDszeBiiBz7cJ= zEn F35LeY7K24PcYvMmwfEGbWhYsoIu6FV8ZVLXKCgfClV2YkDkRxfX64bGBaHoURGJuODwMWUWL= qUs kmGnMg2LeRPwNHBCiehrfJ6bbaRkSBTaSWzAkFwTBE3DIZMZUqQdeqXgvrleCJYKrjG7nBYJW= gIs BzQjQw0COW8XYZHKYH42sNqTI3LGCHXrsZVTxN/AntVF36boxQiwuaDH1qcEva55okKRUO5yV= SPA 3cd6l9DHNSh8xLGDwk2BntCxPdZntEJTBUQE94bEc5PWfEFI6PEjzkU8BcUPgHHexAyQByhM9= 0B5 lSxQ0nj6eMKHUUcUmTgUKU2mcSNB83ycT10rtA268jFPoDCSBCnWWJeM1pXohydcuFWjyYICw= VQf FLgiqiwlyQmaSaODAs5JicTervec13cxOCGyWbDBgwQFkF00qEdFZiJwQvK0YDQkUvzJQpspp= 30S oMRjhLPSVBZNdg0uRgX36OGULGMiSSoDAQqlhhAHChXalF2VXFRfjiR9O3y0o5w71MJQm86tw= ans IKlxUcjpNDYsrMTPUbEKHJA9nWeF22BajnbESJtEyaPaiR4UlJfE29h2MHfY9bX7G/UJdORvJ= EkH tEZoSVuWsXljoKm40ORmW1g6Bl5k7DmCUid5CjDlt2PUqYNiY1fEiXJeYG+DQh53DL+VcNS5C= A59 y9SR8PXZkl63pckAjllp5gosZsuBi0dOcrDsGBJtNS8s/Y4gYkozZWDSpOjQmsAqQ60eooqXt= Gg0 0Lnv4I0idz7MDXf4GzMo74vzVhgpm02czQoC7ZpUM6HYYk17jBoUyDAwVWRCacsMvPJdc2Ire= swp QScMTlJblK+IOcc8kyKXFxyRUjgwkxJFihsdN0JWU3tXfxRuCy5D3KepOngROcjl2OenI5FMV= L/D fjaJIua76I4ZuhTsXei8EjtSpE6ljohyYRNCGp/WEJxOyJA30QNKeJkuYQwaJHYiFyMSRXYWh= fRH wMkKimwULuSVOnW2oFKYNjgyOjxc1kzkkHj1koutHBzwZl9dEsconz+1MN8SkqYx0RzjzMzaD= PyA T2RwHZ7Ve8q8DDTeYbFTNmloaALiAxYQKrQxubXDnENoQU0hLZQOnIzuFAqKMKmGxM8iIhBUT= 0ID 4PIkeJDa+8sDqlyJeUMEp0VcGdfQ3Qumkx665kG6WOA0qqY57b5Y8hy7EDoZzHxNjZzm0NGrp= zKD UH3OSZJNESU4FGiaV6qQvLp05vNJ4HlmgpIopbZLqOsxarrYkZI+ghVRDteu5kcfgUoWBlOvW= 5vM 5mZHilRjkUc4YoU6wFInARKkDbm5ciVVVT6JkjBUXYk/yyO0RjRMUNAhXIehM80SAa+VF5pUS= 3qY EF59/W36v4L7/Gli0WR3GRMJFBMKDE45IPIObnFBiToWAWSgQ6O9gFUfkrtKCYT1l7zCRbhO9= oAJ kDA7xOwSVEqldAllRqJRFYJgJephXBQdAq42EglBNhu/3HXX9Va+axWQZxjnNMeHl4bbFifTX= alv RJqmcau37YmNVJ/WeuFPMWc9O0kiNtkt8bJ25jjPbEXd5eu0nyjIeUZIMAiBOsHulSHxJRNGp= gTA GQzMiFGs+18Pdgb94dBCyWMUIsBYxREFWDAOuAsW2g2VYSqrYJOsQBEiuHAWqibyWkBYKoKKq= rAV U/P3OoG3vcIG6AeLK546JWp0MaGqvfbao2hGeJJ6UquBxmGGPmQk4oAlAY60sJtp+QHw65RDn= UQe 85Mfn/PCEEyCOQJDEBV9nvXzozfawv2pK+eKf6jHGAwxjjwytYsy5f9MKy9uL722Yn7kf8TFH= W3H /wmrYf5x2/gH3KhUARcqliCHV+VN/Y2CoVSQqqfwLS2pb04htU8UDUJCEihGBAIkgwAIgwZpM= iH8 PRqH/CHvsga5NrtlPlNALxsOuDGam/GLZSdjJNU76u23V0+SnH/2JeTlhxf5KJqGXjeMAP4Xj= E/k 2MUtRdpP+evBr89A42MChfvyuzGIB6EAVTEsCQfOhZgpTRjlKOA6jKi5BHLdqTbULYR6k7qBk= 2gA d+yA/+LXeL8NR+Et4V5HALlMiUymsX9dZd1wCLkPtdRz7jKtgLYmgWg1i6TPES55ba8Evg6wj= 90q X00bbY1ECzgTQ0X3J//blzC6ZW27KaNosdZFUHtcgqK9D5gbKI3j0QBtbKbzwEUOKYJRjc0GQ= HOh QvhaNeiwYibjZkd+9XFiVD5FX8TKyDUe02Bl2NxXWWqFYbNIECkdTQ15AzWezy/+7OCuGHFUO= Olo Fy7iXHBENeImBsgrvZCME4BFNByppcEskND0qC4S9x2rmFQrOEC8pgdEREhzA+hplgL72w4O0= IUN 6JERgU1sxE3xhzBN8Ns5wFzvVOxa4IgSLXdiGNtXQQN/H1ckyOBNdnIqzdBJEzHt3iaiykTWl= 473 oDAm5LUbvSjUMDc/ygavdBxHTAaRd2FTi6goO0TS5AHdYr4Cdba+NYHPN84RpN0G2GEGHUjAJ= Ri9 mpqy0EoVvaJsA1LdOxbOODgwHRyhICaIJ/63yVp3EYTmaEAgpU7hcmwigRU4lQKUXMZ/MZNtO= S9q 8sQNvikcL8Urwu+B82OIWRGpctOPhMD5ZlZCB8m2PhhumJdQhyDCBcBlxDN3hcc6mZg8omURc= LYA bfX6X141TKLYtASnfkHQaKhYpYVwDIRIsTVBQaAr7V7Fs6JCuFKCCfVEChSJj23T9B1QU6iOs= cTW YVDFLw1uv1QmCDShCamyjZTSOwJwK0S5kiUBIGk2i5mXbB7vNR5dDyhNIEZXsykBpTO5EtAPi= M5C FOCYRLk8REF6yuPqD0AaLrm6lIlXfx7JknIoF7uGonGdKH2KYg29gjgtUMvIxV3FI5LAoiXpg= tDQ oEOe0gHRKEcTn1ZimW8WHG9fWMJEODoDqBhiEqyrRiuSXL+fBeNxuxcYdMvbCbLcOOwxDoec/= fIH xiPY9UPTGR58hTsZCG+IDxAkhuv4fXMwOg93+ixh2ErtTAV4vK6JMzQxSq2dB8rDMI/Vc5L9f= 8ia PO/kbd8++0wcBh82KDfZVZtk+Lw8OH4/V4sSxH7qP4la3/joL9S8jv+LcuOWUeMMjx6YyPHfe= /Vg 3YHNfFsrpj+8o8PPQspk4zydHw04vl5JjX4/guy6Q6uwFgWpZ12SuwSdfmMycz8uNRgtBIlzp= RrE xBJq6D2qsrYZ5UE3nXqCjSeawclhUvmWMz4xRlrjziBuJRJYSBnFDGtQMLhLH3BwFRY3ihby2= qzW OxLE1lsLITD8bCHwyRuMTP85kEfiqvgDAh1MqJyAhOvSgUiFNESlebjbQS/GFhS1DLKoTo0Im= LxA 96zl8mkzEwe40GRZxkDH7Oo7QuIHr/H4yfUr4kMBMbz752FQOSUl/8kCkLWGOKgZRESBggksA= ZGK ggJwT3YjDAKKgkleNouS/v0GRUPb5al4XjVRVQw2O2CmzWOrAwuLxuddyoaxQvgIUVDhAKPwB= Al+ gtPvw2UJyS0C5NDobQdlZmZmZmZ3f1fjlx/7nvIIvjAvyq9d/LeRakIF9Kk+I0h7CJ935DlJM= UBF KA9RP7snuzDFZJWUWzzS0UISU9bpIH4TJQ2uZIH8xGiWK2KGDIuXGY/PgRKXNyAZCBvVIUF2G= DW2 3CVLFMmw2BZmiJIcgKmSJcmVIlSBwZyQLbzP1rkiGxt6FtHS6ZnYc9ajpUn/OkJhQiangscld= 0Lb HCfMOQyZInQwsphWhzbjUUevgRWEiXjLxZjvGaQX4BT9zj+oc/XnMTGMvn4ex7j+CQW5N3Sti= /Ly TCoyJIy6BwQj7fIzr65qintMaB9TvX0Bp3GZ2ncdB6DW5unv5IjYVa/Ox9Ycmpq3w5qf215R1= tE9 ISKxGGjwfEHIuv3jpIWACwSFcGXrd5utmAgQ7+RJXA7/FZY6j+xnDdwdAg89xTIHSDUM3+5MS= oml U8PCliUpEtwvJiEu8l/PwKrhU8fddefnWAWSLoNaXMAXn/0eQffHRCB5QpHcUDFRlurmLJmA4= b88 zp2X3hQhEj+g2r3T7eoP59aBvEHXFJFSMHRPdXTWFieUEtFxS4TYad1+qpYo6RhD0XF6cgYiV= WuB SFcTL/uGrsHB7VTtcG5/QgZBAVNlQyOAF3QFgvDudZeQ4nDxOZIySYGEK8Mkq1ynnPGVHWaDz= xMZ yzkZ6p+yY8DakgKsRYOgr9BqWLi8cj2msh6jNAqXGZMql5k8H9sBPtnMjYegpxksfWRIGiRwb= mih oWpwZFqQOCRvlTRHcLGnIDTRzTmDqiVGc1NheZFydTVWOxefcC7Q+dFTQyNpBvO5LI2TnXMTs= Yb6 XhQ6Lpi4pJCs9MhqJ1jSmLSwyH5tz04C8R/LhkMXtR1mb2FjsOXaQTC8maFEsu76wWKU65bGu= Oe+ ColQuJg3oII20pUEy10inqZE4+QhSnkZ3fQyHIDZmHiVPGnlQ6P6+9rkJ3/rqqzANKYhpaCYs= sto xltYCDbZPYkchMseIIirDxh1oQGMIgdFFDkdgwunEarEgQTMi5iuIYAc/KnxnkHQzRpgzSCGs= YVJ xnlScswbFBolQkzAmGEdJtLBuM2c/VMXXT9rSHGK2PoPsfEgx5zlg/IChEkXo0iwx9J65ZwW3= wPA /NBDY222FJG5AiLXRruQKRPYTJE+hommDLlzmBwcDpckaBxim5cwkjA8KXs4xdj19udbDyEDx= QEU iidw86nQvx9QUOSRGXBHskThpG/nFw5eQ/16eXfKUE45o2qs1nBnL5Ks2syPdQcBwjotDnV69= eNZ xaC+RHOA458QkdWQ2WkU5QVF9LgGnedBpx8SsGlxW320JbyTHY3mRG7hbzWPA3CPnziFZcptI= G9y YQhCEIQhDsOzvwzeK3KhP1MFM4akBTRxAjmiQyFChei3JCBUmMqIWBUH6I7iOIjIO8+hKPnGc= ioi C85TclGDGd70KeQNNHEg1SzjVmwRCPrIbzkokT/sog+pATmTnhyORfGonDoDQlTBLFAHeaLa+= S34 2TxCCAfAP0TlpBADaoJS2KdfkmDBM0lhGMgzSIPZxDBjV0MmWzNMR4jboZeTTGzKYdgSEoUVQ= 9NB uge5eGR5+Ni6RvyEaFx7wZQ8feVMC7zDEuK4Pn9fqiG48fiamWGkd0Tew9BYljqcF5cB+X4iG= jMM Hz9dy8xrLWuOYbj7l6Oc4cQRjXm5jiiuofyO5M8O5c8jI2/c0IUMGDw0ckyBgYwR0ECoaQwE/= DkA Bda5UX5RahgSDGVZiovkCzIXG3hvj/JyloWhbmMeYWjAYjKZ8BoJi4kSQE4zwcCUycJjKDF19= a5V NKEjpqdORlN7DpVt+/zEL0Ea4m0L9JHDU4HUtpdHuM5DLqnE6RPBRZegwLxpc/sA+SaFzGEMb= ncb qkl8PHzlsRy9c+ynYcJxcRjyEmdLPiEtiQKwtgzVmrMCKvkMRgP6GEcmemhjUk1YEIXmf7w9v= nWo 5DsQjikT3/tP4nZnr/YotvF68RMlcYxi4EzT5r8lxMumuC2eTC4j6o+tLEkSSLymDrx4lpuA5= RG7 5CnoEUghIYiD5ysUIBrqiBlYtjn+WmYh8S307bF+3trGd7PE3kXlMbOU0rcRRIooxvmXgKy+r= zxC RiPeEJRjYhYDspEETXlL9vrj8JW6QXFIMYa0lg5B2YF0RCpaEGGdtlkiRC12NrWtrMa2CHKjB= owO lZJeeY4BlEwl6xvKpmk4rmIRUaZh0ijgGTLziFZPeN1mLOGdmhUIoZkGYxzlpalJl7Iu3/ecg= oYF UrmTZmWg+AoJlESKb27argGFdFgxrW267EvwCIkAugMCCSIEd/QNjG8Yd53kB8JsMhDrKzPJ5= IkJ DLPvms2XQ0ZtGSs9KtNCBjCDFEMJwYj1ei4z3FNJMTkSUkYfOWKGTt3KDYqd0x45xbHn8r9/L= aDd /O1Y+rPn018K+yucvJsFlPDyS0GIwXtd30SZMr6DSZskpeGNJScLZKCUqlKYNGJ6ypEnANyRA= ie0 6kTJc+anqPd7mL7lD3JY26FDM1CRz2mVysHZrxXeHj70kDAR1FYa0QFySBENsEiERpIYi93mx= ZCD eWqgkFWPRmcab+U5jk6bGHIGmPfApEKRESJBCqYWneZXnrI3lhzrUX9JSMRKBvmxYDKW5bfDo= LBY 6lsnKMjA4HGcBuY1JSqRWIohGKcIGjhA5H7RTyQoxMuQgVHuVd3idjYTsS7wLd5mixhB/xRQY= iBo D8yGRxyKHcdfgeGnSeEXKToHUR4ogbnlE3ebr9XTjeavKgnQD2O8DsiS3l4+PVidJwOo5yhpb= YHA 97uPLgEIAxIkTAT94whruSyAb/hOUA9w5qBS0KWhS0KWhS0KWQBIBSCWhSyJLASjfUkicJbwj= jMo RtMteFSSnJry5semnPHdMI16NNm29qckmESzxodtjVVfoInBF/Ki41aAWMQtvf/XwH9PpoLvU= 9kk J2lAyY3ZLqgGy1DCV8X88A8QMjcVD4GoKJEoagM1LOoNWKg4+/0X2KCtSiJLutT9pzTToI2s3= GhL zhAUlq81z2jvQsEOFuaUo2hKQjEl22onYFfv9vCLjnD85whqNqafzF4pudJbHkT9nJykhZwEB= cUx Ehna+clDbFJmO1LE/eTDnkQxbQrzkFFDDJt+/f9kPm9NIjBlFtNvU9p6CgRGjQdqv8IWEwvqc= hwC wU3xkDljZCCcEiI9tW+BUiYk+/I2JkBYgSpPMJJUmwdJAVB/oAwcXX6Q2COTM5q2iIBPiAkQv= qq2 Qbvm4COYeg0H2b1CODMWdzJzo51MZQ8ElNj17coZpAp1se167ux1JskkqgHcZlOc4y7jYeYzd= 05R NyVWkWkicK77xIV+c9BUWJ3HYdr7nznRihbqilaMeaJa+5+jIkRODJwfndiVlO3bc6nIx1Mkx= boI B8TRIM6HGLMHQZByLeorzq2hmb927Oj3njcMOeq4nAZQ2nQPaeFhzEzr2JFJXickfA8FmUOop= Akl Dzydu2kQEqRNCIG46amJz7Otl5uKhw3bFBxTl43vH35vj8P0Wt69K1gelVsZ930VCqVCQgwQM= EEi UQT2EuiNIlRGSH2hufeGSZF39cPsglJI/uhpMminaJh5VP7oofPbRTExED0TufBMj3dQ3ahOd= ByT kO0O2hpyPMRd8APvgmbWaFSVxWhQQppAomCmwJelV9JSgeu5SDHN+LwhDE4Qy8MIKCFipUpCt= klK CrEcqiNndzEdZY9ICLjYPb9rKJ7ziavJzf3qmpRBq7rA1CDifX+3TmfrLj0v80Yf/h0+8dP9Y= 468 Y7k9GQozoP1loCR3QHFwZZEIvFoRx0FDdWrJLCYB1L+l4BUZ3B9gFwf41xG9Tj7h9AXKdcFkY= lSg /CNCPnLFFBMFKqWZzcxxQPVYaDImfZDBDQhFJBllpRPI9ux4XiXi6II5YtggmUoAjcm+qB/aj= BW1 QLkT0UNAP42D9hAjEEigowViqiE2ML5Ju2B4927TPDtRgRCNMSpVJ9W7+ZsZsdl6YCQJAmvkW= 96w 6qBfPQ6mqz1s+lUVbt4PO3NTaHuD6w6CD9ioPMV7BPLgupTEyb3WvJw4GoDWepMSYfJFdSwHo= YL9 cFuDHWv5FmVKl5dyYiVbeAWhIJJsE9S+YFSoWcdd4mfZdny+nWE9A1YjAhZwPT8jswVnzumGX= 9m1 SuNKP7O2MDErl3GRvqoPvXZQlg77ip2m8E+8KLzKwVSOcKCWU5e0fEQWvSQ7SUiodEKwSoQQA= gwE sdTn29+gOYO7SqZmw176IcptmCkwcCSGTvBQMzRM6SnbEDtjJcFd6mjgqfXlTqpuFXnVKE7qH= HE5 uWoVOqhKlR2NltJAIRdHAx7b6KzKgrDCiI6u8R2CgJYXz0bEnSNDlgVyPyE+oTETcc6BuIwSE= UhE EjBIhCJIwjE505lRNJcQna1pOPsBTeyHJs68oiAwRYwEiMWECUDmtzZ+SoGY9aH5Bemw5goVr= CHo MzBqbC6hBJikbirzkZJHMYb7zG72q4RmEjWTfxYpjoPdWp6rlaTAoAIbfvVxl/y0o7Lc/MLMH= 2Am ongVMxwekPI5n2L2mRn7JRDsi9EJC0JKWhhIIkTBDZglgOIJPGU5yembBOvevIFuJmGQjglGG= nI+ dn5lrpfSxaIA62srkn3CSUSg3BgSy8QUUJXl51cRIDhhSYXKkB3FikTORr5jnqliQ1qkbmAyS= tXR rXCGBAwkzxFNJpE1lsAsTYYDlKiNEnTTABOcHZziAXLeJcAnANrXHSI98Asog6Qqa67wd5qnr= +/2 yFU5kxwDRXx3hqL9UgKNxE3RKkeZgCT7KNCVhEIl2pTAkK7C0hA60KUkgp1OczNVn53Vu04ci= SYN UGkMaMhhZao8td/Nfp4XsaEIOwIGiFciCUGqFDhvWx5mCY3Jeiyu2r01Kdoy7tcfiZ6jRqFyF= x7z UnIG0ChIXUIZw/ZrgIgX6JWJMvv169oxqQWiFOQelGw+Tq9hgbqsknrXEShpLtzpEnrGwjc40= PIr fxDqy5S0CmweYaRJhQCBEaUyarPaD8u6K9ywXn5FaCcSgSp7l9B0oen5JL8D7Ce4zZwe9Dq8B= mF4 qa3W1VVFd1O/NOnadKTofot1GsSQEsQIVrVFrEr0Cm++pEzB97p6NjHAvlRB1Ti6E9wlwliCY= FPW 6C9My7iYGQlB8E6TgfE0Zg9ru0umAHBd2ChsNYtobgnQpCZ8Y5vrZMYOIPRLFaakIGIxSBUhB= CsV 5QUiud2KVTnxfCEE22oVCnijArMRyKIeKTU2CHKMFjwWneyZTN9LQAzuxDBgUmf2I6NDIzIWF= 1vM kmNbpjRxBM5y4CpMuDRznKI1stMGJSJ4x0xk4LkQBIYJBJBxbrEMiwQ0gmYBcYS8Q70BLvagJ= 8Q1 M+sE6E819y6n7V1ai4tEEpWBCiNFilIQfqPJ2p4hdEOKCZWA7meKBTzlgTh0N5BKEmIYMAlYx= gNR VlA8JGSwhlZZcpIu/1SudkiFaFRLwKe9Ljt8MKuCAXsIDCKEi6BFj4rtE+oNJiqJrL1hAihGM= NSI 0NB2xQPq321PjH+DqLm+xAh65fSQpuOSmoMVDgRDQUHyPUF6JlMoieDyICZJ2IgZJuU5olkoB= FSP 2hAop0UUoRBIEIwIwVlglCsRXWqdp6igicRXUFiw2JLcr5dXO6PavcKXo4NzQDggqwk1VgZVP= zhW 8D5E5Y30CweK+vkdqIHvXy0AbDGaNZROsIuuFguLxfh+xPGoQuIobD1vtJeQadAt290t4xgM4= YT4 oWIQsRfS9AbUIh5eI5XLKEvzO7v0gBxSF7h8T8rgU+ofO5CQpKSQSBCE/zeXTUHzikO0Ypugo= Gi7 GekSSQHQbKKwd4krAEBBX83SeloBDSJ5CvlquGrceggFl1rwD2khEP9+GiqFGmgVanJNmTQ2D= +5G EWEWH4AN6JZUuDZvBaiAe9NBz7F4JGnE2QQz+UOjpxhauTTY2YOQvfvh/KHdpNMJzoEYNoVNK= hro dNS6e/PBawCCdJS15TqmfPDJPhMFhlIeiXJ4982kDN+UNP0EogkRWUDpX40XIzVH46d4+ReaD= OEE v60RPo+wu2wzcM0cDT+035mJfez1JYX+sp0/iZDPJDGJjIILkkI0Wavz7PS68ZmyJG8Ag6WYR= htK eF3lVjiaYkDZ8qGf6vNJ9bIcHkjIR8vgi4tUwSGm7cwgqzoDjn0qYDM9BxwPoQS4+i+pED9T0= 969 uK9j40/Quea+T4dnb5ZOk6TZJgOxaMTjsstKJ2+9TAgMucYSBCVrQa2hoVKUYbgoNrqHGCZLt= DAx LBTQMaQm50Cr391vS5kCwPwQLAbgeiJIbTh2y+zrc5ChxYwQzhMmLcwZbDHgyUNyguqlHLMdg= an7 IYZntCBDRm6q1n1h8iOw7OpYmsgTUYSTOTIsofIkuOmPVJ+Gn9A1CQ/rq0RPatEvh8BPyEooP= jz6 zFUgLIuYsT/LFcUI1S4Mttir7rRZD6JzmEIcnAxT9/R/SYOxE852H8Hm/2b7xTWT4uhF1CkQe= YKF E2aw2jzRewQPVvzspkY+d0+Llu2BrHIHWQPcUojYgkV9MoogxhDRRkEoYkCdkUPysXEuBpBTU= GKl jkPK/bAHids90GPEP4EVF5CYvXkSmEPHTQE5Ay8ltgciAqYdsm0tCfKVpKDFgYp4xkY30xoQm= mwV ERrFoRgyTkZT3tcU1VZBtBGIj1fObimqSqUkPV4kB05Rk43tODUBShCF9vtg9kYjPyOj9NbKJ= T0z q5rgrZQAoYX3RSqLtqQgXVMuNOEG7R8l3P9Cc67y7AaqQhyygc5kZQc5Sy86PqtT6gPITpQ8w= cp6 5tCXFUIxFITZgqSjoJxFylNqfQznq5Jm3zQcsIc5ahx3zwcJj2fIt1zsyR61esCAYeJEChaPe= Bwz JikqQ0F6SoyrMyPEdVDnGREGTcB27DfzTRgoKEEYqrIwiZqhUzl36d1nBj7pzkMVEIH60gVj2= 0KB 8/OHSRSpDsBPCKDDrAo8DSqGupygBO2SHWYLFFFFFiyLFIZXeztMm7nbl6KMSBQgxikYDIEIA= 27A 8AOVAIfbucFmccKrHtyK8E0SkqMLMAf6zJTmgvw5AoSDA4H7qj0ReDc0l1KpKyDZcqAjMmIzx= 3fN I5pcYpgRzTdGRv3p5HaK4M9Q9wq8NFxdRlNpSfm4chtXB7YZZvhqDQlQy8Bxi+qgWPIA+lgvh= jw9 jY4YzgQsYTCYBlJkUIMeYpgeZMpLn2yEKh8UkUHMOjFnLCfI/1QKrZrw+gdZNmITY2aNmvVOR= AbA jO6rAYcWsKEEXsJBl7XFxnEYgPiGDtgqNzbn1YjFixKQLpJ2ZWtirWFxcZJe2BEWCDOzzIlCA= lLi E8CemBAoHU8XKJ0SiEu04/OqNQSdC6PYlWVF8vDGgmdAUGo7VEobqBg1OAqFxQjhpwJSdQRc0= Lp8 sP14mCo1czrGFmkbgONGwbDEjpciBnwULYIoXFqrYwasWlRM+AQnECvWYnJWQgmszeRW8/q21= FQ6 xL/eujiO1TgYCndJBH84C6i42JSoB3Ng6ap8aaArFkAE6ZtL9z3kvDAjsF0xYcVKfPnu9gIzy= lcx fT1juJoJnyQcSiyHGhljIdmf35JiQNiu12CvgHl8jO7CnTIVodEwYaNspwiCwV4Sus0gkIJjt= bq3 VDwiecsFmpoa1DgJVC0uLoXkmESJShg5wO9LxSqhJdP012l6RyblOrL15uKi3MescUtr7+h8Q= +Z2 bjd1EhrBCCKkWEEaolCHa+z7rKnHWped42K/JRB57CPFY3fHajkP4d74MD8cqCC6jEPcyodap= 1ei 7QalDEUC4S9u9R+WH7cA5uYMncHLzo4gsElSA/7PKaKbkg6pQfIOSVuOrFSI4j0xKt4fNvUXo= GGM 3HRUZJCiPMRaL/TxcQnH4ZGw6gjSUKEDz/p1PIRA8YmwiikyXeeQPBWLI5yAh1zTzoAYMhrG6= MuZ jaFiEBC4nJRxAxUoAQDURc6TCklCHTvHIE0p0WhYQSQGUzyhFHboIMMnIODTOtptvIpBMkFT6= TgY N6OENBIusVZwCuDjYgzB6XdbXCEDJfDalBKQrqg1pskig96Ze134G1hrMtaHik0DeZh5gL34M= 6EQ MP1Q75EDwPI5VtoPYKB8u7n+wHWO7xBPtQ9MJF4MWRRSx5O8uNxtC9cC7ei9iaweFTSN5wD+w= sM8 TtX7DmLcXWYKA3BVfUmJ5+M8STZ5FTlMtn22OHeDxqPI5EdFN6QRJBx2EU+bJ9KzCxh5N4IvY= qm1 nggESBkV4v3MzHOcYHStZ9M7EcmMLGN4QMoXysTovE8W94VH6g7Kglg8k+QHmXkBo5QG42EUC= OVL ZrXKlQgETXhGtF1ZqDKe4Y9vYBfNCf7CrJ7Q9Bddk2GjHT37ZPjcz/4u5IpwoSFMfA1g