| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Reported against Autoconf by Todd C. Miller in:
https://lists.gnu.org/r/autoconf/2022-12/msg00001.html
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Sync from Autoconf master.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Copy from bleeding-edge
Autoconf. Don’t define if Autoconf 2.72 or later.
* tests/test-stdbool.c (bool, false, true)
(__bool_true_false_are_defined): Do not require these to be
defined. C23 still requires __bool_true_false_are_defined but
marks it as obsolescent, and it’s no longer worth testing.
(WORKING_BOOL): New macro, which also tests __STDC_VERSION__.
Use it in tests for working bool.
Test for bool instead of for _Bool, which C23 says is obsolescent.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is useful because Autoconf macros defined in *.m4 files can be
AC_REQUIREd. In the configure file, they are then expanded before
gl_INIT, i.e. at a place where it is not known whether they are required
for the lib/ or for the tests/ directory (or both).
* m4/gnulib-common.m4 (gl_CONDITIONAL_HEADER): New macro.
* m4/alloca.m4 (gl_FUNC_ALLOCA): Set GL_GENERATE_ALLOCA_H instead of
ALLOCA_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/alloca-opt (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/argz.m4 (gl_FUNC_ARGZ): Set GL_GENERATE_ARGZ_H instead of ARGZ_H.
Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/argz (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/assert_h.m4 (gl_ASSERT_H): Set GL_GENERATE_ASSERT_H instead of
ASSERT_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/assert-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/byteswap.m4 (gl_BYTESWAP): Set GL_GENERATE_BYTESWAP_H instead of
BYTESWAP_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/byteswap (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Set GL_GENERATE_ERRNO_H instead of
ERRNO_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
(gl_REPLACE_ERRNO_VALUE): Update.
* m4/perror.m4 (gl_FUNC_PERROR): Update.
* m4/strerror.m4 (gl_FUNC_STRERROR): Update.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R, gl_FUNC_STRERROR_R_WORKS):
Update.
* modules/errno (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/execinfo.m4 (gl_EXECINFO_H): Set GL_GENERATE_EXECINFO_H instead of
EXECINFO_H. Drop AC_SUBST and AM_CONDITIONAL invocations. Drop AC_LIBOBJ
invocation.
* modules/execinfo (configure.ac): Invoke gl_CONDITIONAL_HEADER and
AC_LIBOBJ.
* m4/float_h.m4 (gl_FLOAT_H): Set GL_GENERATE_FLOAT_H instead of
FLOAT_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/float (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/fnmatch_h.m4 (gl_FNMATCH_H, gl_REPLACE_FNMATCH_H): Set
GL_GENERATE_FNMATCH_H instead of FNMATCH_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* modules/fnmatch-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* modules/fnmatch (configure.ac): Likewise.
* m4/getopt.m4 (gl_FUNC_GETOPT_POSIX, gl_GETOPT_SUBSTITUTE_HEADER): Set
GL_GENERATE_GETOPT_H instead of GETOPT_H. Set GL_GENERATE_GETOPT_CDEFS_H
instead of GETOPT_CDEFS_H. Drop AC_SUBST invocations.
* modules/getopt-posix (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/glob_h.m4 (gl_GLOB_H, gl_REPLACE_GLOB_H): Set GL_GENERATE_GLOB_H
instead of GLOB_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/glob-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* modules/glob (configure.ac): Likewise.
* m4/iconv_h.m4 (gl_ICONV_H_DEFAULTS, gl_REPLACE_ICONV_H): Set
GL_GENERATE_ICONV_H instead of ICONV_H. Drop AC_SUBST and AM_CONDITIONAL
invocations.
(gl_ICONV_H): Update.
* modules/iconv-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* modules/iconv_open (configure.ac): Likewise.
* m4/ieee754-h.m4 (gl_IEEE754_H): Set GL_GENERATE_IEEE754_H instead of
IEEE754_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/ieee754-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/libgmp.m4 (gl_LIBGMP): Set GL_GENERATE_GMP_H instead of GMP_H. Drop
AC_SUBST invocation.
* modules/libgmp (configure.ac): Invoke gl_CONDITIONAL_HEADER.
(Makefile.am): Use GL_GENERATE_GMP_H.
* m4/libtextstyle-optional.m4 (gl_LIBTEXTSTYLE_OPTIONAL): Set
GL_GENERATE_TEXTSTYLE_H instead of TEXTSTYLE_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* modules/libtextstyle-optional (configure.ac): Invoke
gl_CONDITIONAL_HEADER.
* m4/limits-h.m4 (gl_LIMITS_H, gl_REPLACE_LIMITS_H): Set
GL_GENERATE_LIMITS_H instead of LIMITS_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* modules/limits-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/monetary_h.m4 (gl_MONETARY_H): Set GL_GENERATE_MONETARY_H instead
of MONETARY_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/monetary (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/net_if_h.m4 (gl_HEADER_NET_IF): Set GL_GENERATE_NET_IF_H instead of
NET_IF_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/net_if (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): Set
GL_GENERATE_NETINET_IN_H instead of NETINET_IN_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* modules/netinet_in (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): Set
GL_GENERATE_SELINUX_CONTEXT_H instead of SELINUX_CONTEXT_H. Drop
AC_SUBST and AM_CONDITIONAL invocations.
* m4/selinux-label-h.m4 (gl_HEADERS_SELINUX_LABEL_H): Set
GL_GENERATE_SELINUX_LABEL_H instead of SELINUX_LABEL_H. Drop AC_SUBST
and AM_CONDITIONAL invocations.
* modules/selinux-h (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdalign.m4 (gl_STDALIGN_H): Set GL_GENERATE_STDALIGN_H instead of
STDALIGN_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/stdalign (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdarg.m4 (gl_STDARG_H): Set GL_GENERATE_STDARG_H instead of
STDARG_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/stdarg (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdbool.m4 (gl_STDBOOL_H): Renamed from AM_STDBOOL_H. Set
GL_GENERATE_STDBOOL_H instead of STDBOOL_H. Drop AC_SUBST and
AM_CONDITIONAL invocations.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME): Don't require AM_STDBOOL_H.
* modules/stdbool (configure.ac): Invoke gl_STDBOOL_H instead of
AM_STDBOOL_H. Invoke gl_CONDITIONAL_HEADER.
* m4/stddef_h.m4 (gl_STDDEF_H): Set GL_GENERATE_STDDEF_H instead of
STDDEF_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/stddef (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdint.m4 (gl_STDINT_H): Set GL_GENERATE_STDINT_H instead of
STDINT_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* m4/inttypes.m4 (gl_INTTYPES_PRI_SCN): Update.
* modules/stdint (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/stdnoreturn.m4 (gl_STDNORETURN_H): Set GL_GENERATE_STDNORETURN_H
instead of STDNORETURN_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/stdnoreturn (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* m4/sys_socket_h.m4 (gl_SYS_SOCKET_H): Set GL_GENERATE_SYS_SOCKET_H
instead of SYS_SOCKET_H.
* m4/sysexits.m4 (gl_SYSEXITS): Set GL_GENERATE_SYSEXITS_H instead of
SYSEXITS_H. Drop AC_SUBST and AM_CONDITIONAL invocations.
* modules/sysexits (configure.ac): Invoke gl_CONDITIONAL_HEADER.
* modules/sigsegv (configure.ac): Set GL_GENERATE_SIGSEGV_H instead of
SIGSEGV_H. Drop AC_SUBST and AM_CONDITIONAL invocations. Invoke
gl_CONDITIONAL_HEADER.
|
| |
|
| |
|
|
|
|
|
|
| |
* m4/stdbool.m4 (AM_STDBOOL_H): Require AC_CANONICAL_HOST. Set STDBOOL_H
to non-empty on Solaris with a non-GCC compiler.
* doc/posix-headers/stdbool.texi: Mention the Solaris issue.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each /archive/html/ part can be replace with /r/.
Run this to induce the change:
git grep -l archive/html|xargs perl -pi -e 's,/archive/html/,/r/,g'
* ChangeLog: Perform that substitution.
* Makefile: Likewise.
* STATUS-libposix: Likewise.
* build-aux/bootstrap: Likewise.
* doc/maintain.texi: Likewise.
* gnulib-tool: Likewise.
* lib/allocator.h: Likewise.
* lib/argp-ba.c: Likewise.
* lib/argp-pv.c: Likewise.
* lib/canon-host.c: Likewise.
* lib/canonicalize-lgpl.c: Likewise.
* lib/float.in.h: Likewise.
* lib/fstat.c: Likewise.
* lib/getdelim.c: Likewise.
* lib/getprogname.c: Likewise.
* lib/glthread/thread.h: Likewise.
* lib/intprops.h: Likewise.
* lib/mbsrtowcs-state.c: Likewise.
* lib/safe-read.c: Likewise.
* lib/signal.in.h: Likewise.
* lib/stat.c: Likewise.
* lib/stdbool.in.h: Likewise.
* lib/stdio-impl.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/sysexits.in.h: Likewise.
* lib/timespec.h: Likewise.
* lib/wcsrtombs-state.c: Likewise.
* m4/alloca.m4: Likewise.
* m4/extern-inline.m4: Likewise.
* m4/fstatat.m4: Likewise.
* m4/gnulib-common.m4: Likewise.
* m4/lib-ignore.m4: Likewise.
* m4/printf.m4: Likewise.
* m4/regex.m4: Likewise.
* m4/stat-size.m4: Likewise.
* m4/std-gnu11.m4: Likewise.
* m4/stdbool.m4: Likewise.
* m4/sys_types_h.m4: Likewise.
* m4/threadlib.m4: Likewise.
* m4/vararrays.m4: Likewise.
* pygnulib/GLImport.py: Likewise.
* tests/test-exp.h: Likewise.
* tests/test-exp2.h: Likewise.
* tests/test-expm1.h: Likewise.
* tests/test-fflush2.c: Likewise.
* tests/test-getopt_long.h: Likewise.
* tests/test-intprops.c: Likewise.
* tests/test-log.h: Likewise.
* tests/test-log10.h: Likewise.
* tests/test-log1p.h: Likewise.
* tests/test-log2.h: Likewise.
* tests/test-printf-posix.h: Likewise.
* tests/test-regex.c: Likewise.
* tests/test-snprintf-posix.h: Likewise.
* tests/test-sprintf-posix.h: Likewise.
* tests/test-stdalign.c: Likewise.
* tests/test-stdbool.c: Likewise.
* tests/test-vasnprintf-posix.c: Likewise.
* tests/test-vasprintf-posix.c: Likewise.
* top/maint.mk: Likewise.
|
|
|
|
|
| |
* users.txt: Remove mention of 'newts'.
* lib/localename.c: Update comment about LANG_SOTHO.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
|
|
|
|
|
|
|
|
|
| |
Problem reported by David Seifert in:
http://lists.gnu.org/archive/html/bug-gnulib/2016-06/msg00005.html
* NEWS, doc/posix-headers/stdbool.texi (stdbool.h): Document this.
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Make the check
more-forgiving for C++, in that it requires only 'bool'. Be a bit
stricter about checking that bool and _Bool are compatible in C.
|
|
|
|
|
| |
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL):
__bool_true_false_are_defined is still defined, even with C++11.
|
|
|
|
|
| |
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Port to C++11.
Copyright-paperwork-exempt: true
|
|
|
|
|
|
|
|
|
|
| |
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
|
|
|
|
|
|
| |
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date.
* all files: Run 'make update-copyright'.
|
|
|
|
|
|
| |
I ran 'make update-copyright'.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
|
| |
Run "make update-copyright". Compare to commit 1602f0a from last year.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
| |
Run "make update-copyright".
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* m4/alloca.m4 (gl_FUNC_ALLOCA): New automake conditional
GL_GENERATE_ALLOCA_H.
* modules/alloca-opt (Makefile.am): Remove alloca.h if
GL_GENERATE_ALLOCA_H evaluates to false.
* m4/argz.m4 (gl_FUNC_ARGZ): New automake conditional
GL_GENERATE_ARGZ_H.
* modules/argz (Makefile.am): Remove argz.h if GL_GENERATE_ARGZ_H
evaluates to false.
* m4/byteswap.m4 (gl_BYTESWAP): New automake conditional
GL_GENERATE_BYTESWAP_H.
* modules/byteswap (Makefile.am): Remove byteswap.h if
GL_GENERATE_BYTESWAP_H evaluates to false.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): New automake conditional
GL_GENERATE_ERRNO_H.
* modules/errno (Makefile.am): Remove errno.h if GL_GENERATE_ERRNO_H
evaluates to false.
* m4/float_h.m4 (gl_FLOAT_H): New automake conditional
GL_GENERATE_FLOAT_H.
* modules/float (Makefile.am): Remove float.h if GL_GENERATE_FLOAT_H
evaluates to false.
* m4/fnmatch.m4 (gl_FUNC_FNMATCH_POSIX): New automake conditional
GL_GENERATE_FNMATCH_H.
* modules/fnmatch (Makefile.am): Remove fnmatch.h if
GL_GENERATE_FNMATCH_H evaluates to false.
* m4/glob.m4 (gl_GLOB_SUBSTITUTE, gl_GLOB): New automake conditional
GL_GENERATE_GLOB_H.
* modules/glob (Makefile.am): Remove glob.h if GL_GENERATE_GLOB_H
evaluates to false.
* m4/iconv_h.m4 (gl_REPLACE_ICONV_H, gl_ICONV_H_DEFAULTS): New
automake conditional GL_GENERATE_ICONV_H.
* modules/iconv-h (Makefile.am): Remove iconv.h if GL_GENERATE_ICONV_H
evaluates to false.
* m4/netinet_in_h.m4 (gl_HEADER_NETINET_IN): New automake conditional
GL_GENERATE_NETINET_IN_H.
* modules/netinet_in (Makefile.am): Remove netinet/in.h if
GL_GENERATE_NETINET_IN_H evaluates to false.
* m4/pthread.m4 (gl_PTHREAD_CHECK): Set PTHREAD_H here. New automake
conditional GL_GENERATE_PTHREAD_H.
(gl_PTHREAD_DEFAULTS): Don't set PTHREAD_H here.
* modules/pthread (Makefile.am): Remove pthread.h if
GL_GENERATE_PTHREAD_H evaluates to false.
* m4/sched_h.m4 (gl_SCHED_H): New automake conditional
GL_GENERATE_SCHED_H.
* modules/sched (Makefile.am): Remove sched.h if GL_GENERATE_SCHED_H
evaluates to false.
* m4/selinux-context-h.m4 (gl_HEADERS_SELINUX_CONTEXT_H): New automake
conditional GL_GENERATE_SELINUX_CONTEXT_H.
* modules/selinux-h (Makefile.am): Remove selinux/context.h if
GL_GENERATE_SELINUX_CONTEXT_H evaluates to false.
* m4/stdarg.m4 (gl_STDARG_H): New automake conditional
GL_GENERATE_STDARG_H.
* modules/stdarg (Makefile.am): Remove stdarg.h if
GL_GENERATE_STDARG_H evaluates to false.
* m4/stdbool.m4 (AM_STDBOOL_H): New automake conditional
GL_GENERATE_STDBOOL_H.
* modules/stdbool (Makefile.am): Remove stdbool.h if
GL_GENERATE_STDBOOL_H evaluates to false.
* m4/stddef_h.m4 (gl_STDDEF_H): Set STDDEF_H here. New automake
conditional GL_GENERATE_STDDEF_H.
(gl_STDDEF_H_DEFAULTS): Don't set STDDEF_H here.
* modules/stddef (Makefile.am): Remove stddef.h if
GL_GENERATE_STDDEF_H evaluates to false.
* m4/stdint.m4 (gl_STDINT_H): New automake conditional
GL_GENERATE_STDINT_H.
* modules/stdint (Makefile.am): Remove stdint.h if
GL_GENERATE_STDINT_H evaluates to false.
* m4/sysexits.m4 (gl_SYSEXITS): New automake conditional
GL_GENERATE_SYSEXITS_H.
* modules/sysexits (Makefile.am): Remove sysexits.h if
GL_GENERATE_SYSEXITS_H evaluates to false.
Reported by Karl Berry and Ralf Wildenhues.
|
|
|
|
|
|
|
|
| |
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Renamed from
AC_HEADER_STDBOOL. All uses changed. Do not define
HAVE_STDBOOL_H, as gnulib does not need this. This change is
imported from the latest Autoconf git. It was motivated by Emacs,
which uses gnulib but does not need HAVE_STDBOOL_H.
|
|
|
|
| |
Run the new "make update-copyright" rule.
|
| |
|
|
|
|
| |
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Resync with autoconf.
|
|
|
|
|
|
|
|
|
|
| |
* m4/stdbool.m4 (AC_HEADER_STDBOOL): Resync with autoconf.
* tests/test-stdbool.c: Enable more tests if using the system
<stdbool.h> instead of the gnulib replacement.
(main): Move xlc bug test to a runtime test for all compilers.
Reported by Anders Kaseorg.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
| |
Use the same procedure as for 2009, outlined in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
99% of this change was performed by running the following commands:
git ls-files | grep '\.m4$' | xargs perl -pi \
-e 's/(AC_\w+\()([^[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_\w+\((?:\[[^,]+?\], ){1})([^,[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_\w+\((?:\[[^,]+?\], ){2})([^,[()]+?)([,)])/$1\[$2]$3/g;' \
-e 's/(AC_\w+\((?:\[[^,]+?\], ){3})([^,[()]+?)([,)])/$1\[$2]$3/g'
perl -pi -e 's/\[\.\.\.\]/.../' m4/onceonly.m4
The remainder were to add Copyright dates, increment serial numbers,
undo some changes in comments, exclude m4/intl.m4, and add quotes
around the "1" in ",1" where the unusual spacing prohibited the
above regexps from doing the job. For more details, see
<http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/16175>.
|
|
|
|
|
| |
test for C99 conformance; (bool) 0.5 is an integer constant
expression, but (bool) -0.5 is not.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
promotes to int, not unsigned int, to catch the AIX 5.3
compiler bug.
|
| |
|
| |
|
| |
|
| |
|
|
|