diff --git a/ap/lib/libcurl/curl-7.54.1/src/CMakeLists.txt b/ap/lib/libcurl/curl-7.54.1/src/CMakeLists.txt
new file mode 100644
index 0000000..e6004ce
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/CMakeLists.txt
@@ -0,0 +1,79 @@
+set(EXE_NAME curl)
+
+if(USE_MANUAL)
+  # Use the C locale to ensure that only ASCII characters appear in the
+  # embedded text. NROFF and MANOPT are set in the parent CMakeLists.txt
+  add_custom_command(
+    OUTPUT tool_hugehelp.c
+    COMMAND ${CMAKE_COMMAND} -E echo "#include \"tool_setup.h\"" > tool_hugehelp.c
+    COMMAND ${CMAKE_COMMAND} -E echo "#ifndef HAVE_LIBZ" >> tool_hugehelp.c
+    COMMAND env LC_ALL=C "${NROFF}" ${NROFF_MANOPT}
+            "${CURL_BINARY_DIR}/docs/curl.1" |
+            "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/mkhelp.pl"
+            "${CURL_SOURCE_DIR}/docs/MANUAL" >> tool_hugehelp.c
+    COMMAND ${CMAKE_COMMAND} -E echo "#else" >> tool_hugehelp.c
+    COMMAND env LC_ALL=C "${NROFF}" ${NROFF_MANOPT}
+            "${CURL_BINARY_DIR}/docs/curl.1" |
+            "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/mkhelp.pl" -c
+            "${CURL_SOURCE_DIR}/docs/MANUAL" >> tool_hugehelp.c
+    COMMAND ${CMAKE_COMMAND} -E echo "#endif /* HAVE_LIBZ */" >> tool_hugehelp.c
+    DEPENDS
+      "${CURL_SOURCE_DIR}/docs/MANUAL"
+      generate-curl.1
+      "${CURL_BINARY_DIR}/docs/curl.1"
+      "${CMAKE_CURRENT_SOURCE_DIR}/mkhelp.pl"
+      "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h"
+    VERBATIM)
+else()
+  add_custom_command(
+    OUTPUT tool_hugehelp.c
+    COMMAND ${CMAKE_COMMAND} -E echo "/* built-in manual is disabled, blank function */" > tool_hugehelp.c
+    COMMAND ${CMAKE_COMMAND} -E echo "#include \"tool_hugehelp.h\"" >> tool_hugehelp.c
+    COMMAND ${CMAKE_COMMAND} -E echo "void hugehelp(void) {}" >> tool_hugehelp.c
+    DEPENDS
+      "${CMAKE_CURRENT_SOURCE_DIR}/tool_hugehelp.h"
+    VERBATIM)
+
+endif()
+
+transform_makefile_inc("Makefile.inc" "${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake")
+include(${CMAKE_CURRENT_BINARY_DIR}/Makefile.inc.cmake)
+
+if(MSVC)
+  list(APPEND CURL_SOURCE curl.rc)
+endif()
+
+# CURL_FILES comes from Makefile.inc
+add_executable(
+  ${EXE_NAME}
+  ${CURL_FILES}
+  )
+
+source_group("curlX source files" FILES ${CURLX_CFILES})
+source_group("curl source files" FILES ${CURL_CFILES})
+source_group("curl header files" FILES ${CURL_HFILES})
+
+include_directories(
+  ${CURL_SOURCE_DIR}/lib        # To be able to reach "curl_setup_once.h"
+  ${CURL_BINARY_DIR}/lib        # To be able to reach "curl_config.h"
+  ${CURL_BINARY_DIR}/include    # To be able to reach "curl/curlbuild.h"
+  # This is needed as tool_hugehelp.c is generated in the binary dir
+  ${CURL_SOURCE_DIR}/src        # To be able to reach "tool_hugehelp.h"
+  )
+
+#Build curl executable
+target_link_libraries( ${EXE_NAME} libcurl ${CURL_LIBS})
+
+################################################################################
+
+#SET_TARGET_PROPERTIES(${EXE_NAME} ARCHIVE_OUTPUT_DIRECTORY "blah blah blah")
+#SET_TARGET_PROPERTIES(${EXE_NAME} RUNTIME_OUTPUT_DIRECTORY "blah blah blah")
+#SET_TARGET_PROPERTIES(${EXE_NAME} LIBRARY_OUTPUT_DIRECTORY "blah blah blah")
+
+# Add the postfix to the executable since it is not added automatically as for modules and shared libraries
+set_target_properties(${EXE_NAME} PROPERTIES
+  DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
+
+#INCLUDE(ModuleInstall OPTIONAL)
+
+install(TARGETS ${EXE_NAME} DESTINATION bin)
diff --git a/ap/lib/libcurl/curl-7.54.1/src/Makefile.Watcom b/ap/lib/libcurl/curl-7.54.1/src/Makefile.Watcom
new file mode 100644
index 0000000..25cd3bf
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/Makefile.Watcom
@@ -0,0 +1,234 @@
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 2005 - 2008, Gisle Vanem <gvanem@yahoo.no>.
+# Copyright (C) 2005 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.haxx.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+#***************************************************************************
+
+#
+#  Watcom / OpenWatcom / Win32 makefile for curl.
+#
+
+.ERASE
+
+!if $(__VERSION__) < 1280
+!message !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!message ! This Open Watcom version is too old and is no longer supported !
+!message !     Please download latest version from www.openwatcom.org     !
+!message !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!error Unsupported version of Open Watcom
+!endif
+
+!ifndef %watcom
+!error WATCOM environment variable not set!
+!endif
+
+# In order to process Makefile.inc wmake must be called with -u switch!
+!ifndef %MAKEFLAGS
+!error You MUST call wmake with the -u switch!
+!endif
+
+!ifdef %libname
+LIBNAME = $(%libname)
+!else
+LIBNAME = libcurl
+!endif
+
+TARGETS = curl.exe
+
+CC = wcc386
+LD = wlink
+AR = wlib
+RC = wrc
+
+!ifdef __LOADDLL__
+!  loaddll wcc386  wccd386
+!  loaddll wpp386  wppd386
+!  loaddll wlib    wlibd
+!  loaddll wlink   wlinkd
+!endif
+
+!ifdef __UNIX__
+CP = cp
+MD = mkdir -p
+!else
+CP = copy 2>NUL
+MD = mkdir
+!endif
+!if $(__VERSION__) > 1290
+RD = rm -rf
+!else ifdef __UNIX__
+RD = rm -rf
+!else
+RD = rmdir /q /s 2>NUL
+!endif
+
+SYS_INCL = -I"$(%watcom)/h/nt" -I"$(%watcom)/h"
+
+CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -s -fr=con -w2 -fpi -oilrtfm &
+         -wcd=201 -bt=nt -bc -d+ -dWIN32 -dHAVE_STRTOLL             &
+         -I"../include" -I"../lib" $(SYS_INCL)
+
+!ifdef %debug
+DEBUG  = -dDEBUG=1 -dDEBUGBUILD
+CFLAGS += -d3 $(DEBUG)
+!else
+CFLAGS += -d0
+!endif
+
+!ifdef %use_ipv6
+CFLAGS += -d_WIN32_WINNT=0x0501 -dENABLE_IPV6
+!endif
+
+!ifdef %use_ssl
+CFLAGS += -wcd=138 -dUSE_OPENSSL -dUSE_OPENSSL -I"$(OPENSSL_ROOT)/inc32"
+!endif
+
+!ifdef %curl_static
+CFLAGS += -DCURL_STATICLIB
+!else
+CFLAGS += -br
+!endif
+
+#
+# Change to suite.
+#
+!ifdef %zlib_root
+ZLIB_ROOT = $(%zlib_root)
+!else
+ZLIB_ROOT = ../../zlib-1.2.8
+!endif
+
+!ifdef %libssh2_root
+LIBSSH2_ROOT = $(%libssh2_root)
+!else
+LIBSSH2_ROOT = ../../libssh2-1.5.0
+!endif
+
+!ifdef %librtmp_root
+LIBRTMP_ROOT = $(%librtmp_root)
+!else
+LIBRTMP_ROOT = ../../rtmpdump-2.3
+!endif
+
+!ifdef %openssl_root
+OPENSSL_ROOT = $(%openssl_root)
+!else
+OPENSSL_ROOT = ../../openssl-1.0.2a
+!endif
+
+!ifdef %ares_root
+ARES_ROOT = $(%ares_root)
+!else
+ARES_ROOT = ../ares
+!endif
+
+OBJ_DIR  = WC_Win32.obj
+LINK_ARG = $(OBJ_DIR)/wlink.arg
+
+!include Makefile.inc
+
+OBJS1 = $(OBJ_DIR)/$(CURL_CFILES)
+!ifndef %curl_static
+OBJS1 += $(CURLX_CFILES:../lib/=)
+!endif
+OBJS2 = $(OBJS1: = $(OBJ_DIR)/)
+OBJS = $(OBJS2:.c=.obj)
+
+RESOURCE = $(OBJ_DIR)/curl.res
+
+DIRS = $(OBJ_DIR)
+
+all: tool_hugehelp.c $(DIRS) $(TARGETS) .SYMBOLIC
+	@echo Welcome to curl
+
+clean: .SYMBOLIC
+	-rm -f $(OBJS)
+	-rm -f $(RESOURCE) $(LINK_ARG)
+
+vclean distclean: clean .SYMBOLIC
+	-$(RD) $(OBJ_DIR)
+	-rm -f curl.exe curl.sym tool_hugehelp.c
+
+tool_hugehelp.c: tool_hugehelp.c.cvs
+	$(CP) $[@ $^@
+
+tool_hugehelp.c.cvs: .EXISTSONLY
+	$(CP) tool_hugehelp.c $^@
+
+$(DIRS):
+	-$(MD) $^@
+
+curl.exe: $(OBJS) $(RESOURCE)
+	%create $(LINK_ARG)
+	@%append $(LINK_ARG) system nt
+!ifdef %debug
+	@%append $(LINK_ARG) debug all
+	@%append $(LINK_ARG) option symfile
+!endif
+	@%append $(LINK_ARG) option quiet, caseexact, eliminate
+	@%append $(LINK_ARG) option map=$(OBJ_DIR)/$^&.map
+	@%append $(LINK_ARG) option res=$(RESOURCE)
+	@%append $(LINK_ARG) file { $(OBJS) }
+!ifndef %curl_static
+	@%append $(LINK_ARG) library ../lib/$(LIBNAME)_imp.lib
+!else
+	@%append $(LINK_ARG) library ../lib/$(LIBNAME).lib
+	@%append $(LINK_ARG) library wldap32.lib
+! ifdef %use_zlib
+	@%append $(LINK_ARG) library '$(ZLIB_ROOT)/zlib.lib'
+! endif
+! ifdef %use_rtmp
+	@%append $(LINK_ARG) library '$(LIBRTMP_ROOT)/librtmp/librtmp.lib'
+	@%append $(LINK_ARG) library winmm.lib
+! endif
+! ifdef %use_ssh2
+	@%append $(LINK_ARG) library '$(LIBSSH2_ROOT)/win32/libssh2.lib'
+! endif
+! ifdef %use_ssl
+	@%append $(LINK_ARG) library '$(OPENSSL_ROOT)/out32/libeay32.lib'
+	@%append $(LINK_ARG) library '$(OPENSSL_ROOT)/out32/ssleay32.lib'
+! endif
+! ifdef %use_ares
+	@%append $(LINK_ARG) library '$(ARES_ROOT)/cares.lib'
+! endif
+! ifdef %use_winidn
+!  if $(__VERSION__) > 1290
+	@%append $(LINK_ARG) library normaliz.lib
+!  else
+	@%append $(LINK_ARG) import '_IdnToAscii@20' 'NORMALIZ.DLL'.'IdnToAscii'
+	@%append $(LINK_ARG) import '_IdnToUnicode@20' 'NORMALIZ.DLL'.'IdnToUnicode'
+!  endif
+! endif
+!endif
+!ifeq USE_WATT32 1
+	@%append $(LINK_ARG) library '$(%watt_root)/lib/wattcpw_imp.lib'
+!else
+	@%append $(LINK_ARG) library ws2_32.lib
+!endif
+	$(LD) name $^@ @$(LINK_ARG)
+
+$(RESOURCE): curl.rc
+	$(RC) $(DEBUG) -q -r -zm -bt=nt -I"../include" $(SYS_INCL) $[@ -fo=$^@
+
+# suffix search path - vpath-like hack
+.c: ../lib
+
+.c{$(OBJ_DIR)}.obj:
+	$(CC) $(CFLAGS) $[@ -fo=$^@
diff --git a/ap/lib/libcurl/curl-7.54.1/src/Makefile.am b/ap/lib/libcurl/curl-7.54.1/src/Makefile.am
new file mode 100644
index 0000000..950a7ba
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/Makefile.am
@@ -0,0 +1,145 @@
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.haxx.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+###########################################################################
+AUTOMAKE_OPTIONS = foreign nostdinc
+
+# remove targets if the command fails
+.DELETE_ON_ERROR:
+
+# Specify our include paths here, and do it relative to $(top_srcdir) and
+# $(top_builddir), to ensure that these paths which belong to the library
+# being currently built and tested are searched before the library which
+# might possibly already be installed in the system.
+#
+# $(top_builddir)/include/curl for generated curlbuild.h included from curl.h
+# $(top_builddir)/include for generated curlbuild.h inc. from lib/curl_setup.h
+# $(top_srcdir)/include is for libcurl's external include files
+# $(top_builddir)/lib is for libcurl's generated lib/curl_config.h file
+# $(top_builddir)/src is for curl's generated src/curl_config.h file
+# $(top_srcdir)/lib for libcurl's lib/curl_setup.h and other "borrowed" files
+# $(top_srcdir)/src is for curl's src/tool_setup.h and "curl-private" files
+
+AM_CPPFLAGS = -I$(top_builddir)/include/curl \
+              -I$(top_builddir)/include      \
+              -I$(top_srcdir)/include        \
+              -I$(top_builddir)/lib          \
+              -I$(top_builddir)/src          \
+              -I$(top_srcdir)/lib            \
+              -I$(top_srcdir)/src
+
+bin_PROGRAMS = curl
+
+if USE_CPPFLAG_CURL_STATICLIB
+AM_CPPFLAGS += -DCURL_STATICLIB
+endif
+
+include Makefile.inc
+
+# CURL_FILES comes from Makefile.inc
+curl_SOURCES = $(CURL_FILES)
+
+# This might hold -Werror
+CFLAGS += @CURL_CFLAG_EXTRAS@
+
+# Prevent LIBS from being used for all link targets
+LIBS = $(BLANK_AT_MAKETIME)
+
+if USE_EXPLICIT_LIB_DEPS
+curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBMETALINK_LIBS@ @LIBCURL_LIBS@
+else
+curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBMETALINK_LIBS@ @NSS_LIBS@ @SSL_LIBS@ @ZLIB_LIBS@ @CURL_NETWORK_AND_TIME_LIBS@
+endif
+
+curl_LDFLAGS = @LIBMETALINK_LDFLAGS@
+curl_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMETALINK_CPPFLAGS)
+
+@CODE_COVERAGE_RULES@
+curl_LDFLAGS += $(CODE_COVERAGE_LDFLAGS)
+CFLAGS += $(CODE_COVERAGE_CFLAGS)
+
+# if unit tests are enabled, build a static library to link them with
+if BUILD_UNITTESTS
+noinst_LTLIBRARIES = libcurltool.la
+libcurltool_la_CPPFLAGS = $(LIBMETALINK_CPPFLAGS) $(AM_CPPFLAGS) \
+                          -DCURL_STATICLIB -DUNITTESTS
+libcurltool_la_CFLAGS =
+libcurltool_la_LDFLAGS = -static $(LINKFLAGS)
+libcurltool_la_SOURCES = $(curl_SOURCES)
+endif
+
+BUILT_SOURCES = tool_hugehelp.c
+CLEANFILES = tool_hugehelp.c
+# Use the C locale to ensure that only ASCII characters appear in the
+# embedded text.
+NROFF=env LC_ALL=C @NROFF@ @MANOPT@ # figured out by the configure script
+
+EXTRA_DIST = mkhelp.pl makefile.dj Makefile.b32		\
+ Makefile.m32 macos/curl.mcp.xml.sit.hqx macos/MACINSTALL.TXT		\
+ macos/src/curl_GUSIConfig.cpp macos/src/macos_main.cpp makefile.amiga	\
+ curl.rc Makefile.netware Makefile.inc Makefile.Watcom CMakeLists.txt
+
+# Use absolute directory to disable VPATH
+MANPAGE=$(abs_top_builddir)/docs/curl.1
+README=$(top_srcdir)/docs/MANUAL
+MKHELP=$(top_srcdir)/src/mkhelp.pl
+HUGE=tool_hugehelp.c
+
+if USE_MANUAL
+# Here are the stuff to create a built-in manual
+
+$(MANPAGE):
+	cd $(top_builddir)/docs && $(MAKE)
+
+if HAVE_LIBZ
+# This generates the tool_hugehelp.c file in both uncompressed and
+# compressed formats.
+$(HUGE): $(MANPAGE) $(README) $(MKHELP)
+	echo '#include "tool_setup.h"' > $(HUGE)
+	echo '#ifndef HAVE_LIBZ' >> $(HUGE)
+	$(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) $(README) >> $(HUGE)
+	echo '#else' >> $(HUGE)
+	$(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) -c $(README) >> $(HUGE)
+	echo '#endif /* HAVE_LIBZ */' >> $(HUGE)
+else # HAVE_LIBZ
+# This generates the tool_hugehelp.c file uncompressed only
+$(HUGE): $(MANPAGE) $(README) mkhelp.pl
+	echo '#include "tool_setup.h"' > $(HUGE)
+	$(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) $(README) >> $(HUGE)
+endif
+
+else # USE_MANUAL
+# built-in manual has been disabled, make a blank file
+$(HUGE):
+	echo "/* built-in manual is disabled, blank function */" > $(HUGE)
+	echo '#include "tool_hugehelp.h"' >> $(HUGE)
+	echo "void hugehelp(void) {}" >>$(HUGE)
+endif
+
+# ignore tool_hugehelp.c since it is generated source code and it plays
+# by slightly different rules!
+checksrc:
+	@PERL@ $(top_srcdir)/lib/checksrc.pl -D$(srcdir)        \
+	-W$(srcdir)/tool_hugehelp.c $(srcdir)/*.[ch]
+
+if CURLDEBUG
+# for debug builds, we scan the sources on all regular make invokes
+all-local: checksrc
+endif
diff --git a/ap/lib/libcurl/curl-7.54.1/src/Makefile.b32 b/ap/lib/libcurl/curl-7.54.1/src/Makefile.b32
new file mode 100644
index 0000000..a60b3db
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/Makefile.b32
@@ -0,0 +1,154 @@
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 2000, Jaepil Kim, <pit@paradise.net.nz>.
+# Copyright (C) 2001 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.haxx.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+#***************************************************************************
+
+############################################################
+#
+#  Makefile.b32 - Borland's C++ Compiler 5.X
+#
+#  'BCCDIR' has to be set up to point to the base directory
+#  of the compiler, i.e. SET BCCDIR = c:\Borland\BCC55
+#
+############################################################
+
+!if "$(__MAKE__)" == ""
+!error __MAKE__ not defined. Use Borlands's MAKE to process this makefile.
+!endif
+
+# Borland's $(MAKEDIR) expands to the path where make.exe is located,
+# use this feature to define BCCDIR when user has not defined BCCDIR.
+!ifndef BCCDIR
+BCCDIR = $(MAKEDIR)\..
+!endif
+
+# Edit the path below to point to the base of your Zlib sources.
+!ifndef ZLIB_PATH
+ZLIB_PATH = ..\..\zlib-1.2.8
+!endif
+
+# Edit the path below to point to the base of your OpenSSL package.
+!ifndef OPENSSL_PATH
+OPENSSL_PATH = ..\..\openssl-1.0.2a
+!endif
+
+# Set program's name
+PROGNAME = curl.exe
+
+# Setup environment
+PP_CMD   = cpp32 -q -P-
+CC_CMD   = bcc32 -q -c
+LD       = bcc32
+RM       = del 2>NUL
+MKDIR    = md
+RMDIR    = rd /q 2>NUL
+COPY     = $(COMSPEC) /c copy /y
+
+CC_FLAGS = -5 -O2 -tWM -w -w-aus -w-ccc -w-dup -w-prc -w-pro -w-rch -w-sig -w-spa -w-inl -w-pia -w-pin -Dinline=__inline
+LDFLAGS  = -q -lq -lap
+
+SRCDIRS  = .;..\lib
+OBJDIR   = .\BCC_objs
+INCDIRS  = -I.;..\include;..\lib
+LINKLIB  = $(BCCDIR)\lib\cw32mt.lib $(BCCDIR)\lib\ws2_32.lib
+DEFINES  = -DNDEBUG -DWIN32
+
+!ifdef DYNAMIC
+LIBCURL_LIB = ..\lib\libcurl_imp.lib
+!else
+LIBCURL_LIB = ..\lib\libcurl.lib
+DEFINES = $(DEFINES) -DCURL_STATICLIB
+!endif
+
+# ZLIB support is enabled setting WITH_ZLIB=1
+!ifdef WITH_ZLIB
+DEFINES  = $(DEFINES) -DHAVE_LIBZ -DHAVE_ZLIB_H
+INCDIRS  = $(INCDIRS);$(ZLIB_PATH)
+LINKLIB  = $(LINKLIB) $(ZLIB_PATH)\zlib.lib
+!endif
+
+# SSL support is enabled setting WITH_SSL=1
+!ifdef WITH_SSL
+DEFINES  = $(DEFINES) -DUSE_OPENSSL
+INCDIRS  = $(INCDIRS);$(OPENSSL_PATH)\inc32;$(OPENSSL_PATH)\inc32\openssl
+LINKLIB  = $(LINKLIB) $(OPENSSL_PATH)\out32\ssleay32.lib $(OPENSSL_PATH)\out32\libeay32.lib
+!endif
+
+.autodepend
+
+.path.c   = $(SRCDIRS)
+.path.obj = $(OBJDIR)
+.path.int = $(OBJDIR)
+
+# Makefile.inc provides the CSOURCES and HHEADERS defines
+!include Makefile.inc
+
+CSOURCES = $(CURL_CFILES) $(CURLX_CFILES:../lib/=)
+OBJECTS  = $(CSOURCES:.c=.obj)
+PREPROCESSED = $(CSOURCES:.c=.int)
+
+# Borland's command line compiler (BCC32) version 5.5.1 integrated
+# preprocessor has a bug which results in silently generating wrong
+# definitions for libcurl macros such as CURL_OFF_T_C, on the other
+# hand Borland's command line preprocessor (CPP32) version 5.5.1 does
+# not have the bug and achieves proper results. In order to avoid the
+# silent bug we first preprocess source files and later compile the
+# preprocessed result.
+
+.c.obj:
+	@-$(RM) $(@R).int
+	$(PP_CMD) $(CC_FLAGS) $(INCDIRS) $(DEFINES) -o$(@R).int $(<)
+	$(CC_CMD) $(CC_FLAGS) -o$(@) $(@R).int
+
+all:	$(OBJDIR) tool_hugehelp $(PROGNAME)
+
+clean:
+	cd $(OBJDIR)
+	@-$(RM) $(OBJECTS)
+	@-$(RM) $(PREPROCESSED)
+	cd ..
+	@-$(RMDIR) $(OBJDIR)
+	@-$(RM) $(PROGNAME)
+	@-$(RM) curl.tds
+
+$(OBJDIR):
+	@-$(RMDIR) $(OBJDIR)
+	@-$(MKDIR) $(OBJDIR)
+
+!ifdef WITH_ZLIB
+tool_hugehelp: ..\docs\MANUAL ..\docs\curl.1 mkhelp.pl
+        groff -Tascii -man -P -c ../docs/curl.1 > tool_hugehelp.tmp
+        perl -w mkhelp.pl -c ../docs/MANUAL < tool_hugehelp.tmp > tool_hugehelp.c
+	@-$(RM) tool_hugehelp.tmp
+!else
+tool_hugehelp:
+	if exist ..\GIT-INFO $(COPY) tool_hugehelp.c.cvs tool_hugehelp.c
+!endif
+
+$(PROGNAME): $(OBJECTS) $(LIBCURL_LIB) $(LINKLIB)
+	@-$(RM) $(PROGNAME)
+	$(LD) $(LDFLAGS) -e$@ @&&!
+$(**: = ^
+)
+!
+
+
+# End of Makefile.b32
diff --git a/ap/lib/libcurl/curl-7.54.1/src/Makefile.in b/ap/lib/libcurl/curl-7.54.1/src/Makefile.in
new file mode 100644
index 0000000..2644fe2
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/Makefile.in
@@ -0,0 +1,2051 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 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@
+
+# ./src/Makefile.inc
+# Using the backslash as line continuation character might be problematic
+# with some make flavours, as Watcom's wmake showed us already. If we
+# ever want to change this in a portable manner then we should consider
+# this idea (posted to the libcurl list by Adam Kellas):
+# CSRC1 = file1.c file2.c file3.c
+# CSRC2 = file4.c file5.c file6.c
+# CSOURCES = $(CSRC1) $(CSRC2)
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+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@
+bin_PROGRAMS = curl$(EXEEXT)
+@USE_CPPFLAG_CURL_STATICLIB_TRUE@am__append_1 = -DCURL_STATICLIB
+subdir = src
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
+	$(top_srcdir)/m4/curl-compilers.m4 \
+	$(top_srcdir)/m4/curl-confopts.m4 \
+	$(top_srcdir)/m4/curl-functions.m4 \
+	$(top_srcdir)/m4/curl-openssl.m4 \
+	$(top_srcdir)/m4/curl-override.m4 \
+	$(top_srcdir)/m4/curl-reentrant.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/xc-am-iface.m4 \
+	$(top_srcdir)/m4/xc-cc-check.m4 \
+	$(top_srcdir)/m4/xc-lt-iface.m4 \
+	$(top_srcdir)/m4/xc-translit.m4 \
+	$(top_srcdir)/m4/xc-val-flgs.m4 \
+	$(top_srcdir)/m4/zz40-xc-ovr.m4 \
+	$(top_srcdir)/m4/zz50-xc-ovr.m4 \
+	$(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/lib/curl_config.h \
+	$(top_builddir)/include/curl/curlbuild.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libcurltool_la_LIBADD =
+am__libcurltool_la_SOURCES_DIST = slist_wc.c tool_binmode.c \
+	tool_bname.c tool_cb_dbg.c tool_cb_hdr.c tool_cb_prg.c \
+	tool_cb_rea.c tool_cb_see.c tool_cb_wrt.c tool_cfgable.c \
+	tool_convert.c tool_dirhie.c tool_doswin.c tool_easysrc.c \
+	tool_formparse.c tool_getparam.c tool_getpass.c tool_help.c \
+	tool_helpers.c tool_homedir.c tool_hugehelp.c tool_libinfo.c \
+	tool_main.c tool_metalink.c tool_mfiles.c tool_msgs.c \
+	tool_operate.c tool_operhlp.c tool_panykey.c tool_paramhlp.c \
+	tool_parsecfg.c tool_strdup.c tool_setopt.c tool_sleep.c \
+	tool_urlglob.c tool_util.c tool_vms.c tool_writeout.c \
+	tool_xattr.c ../lib/strtoofft.c ../lib/nonblock.c \
+	../lib/warnless.c slist_wc.h tool_binmode.h tool_bname.h \
+	tool_cb_dbg.h tool_cb_hdr.h tool_cb_prg.h tool_cb_rea.h \
+	tool_cb_see.h tool_cb_wrt.h tool_cfgable.h tool_convert.h \
+	tool_dirhie.h tool_doswin.h tool_easysrc.h tool_formparse.h \
+	tool_getparam.h tool_getpass.h tool_help.h tool_helpers.h \
+	tool_homedir.h tool_hugehelp.h tool_libinfo.h tool_main.h \
+	tool_metalink.h tool_mfiles.h tool_msgs.h tool_operate.h \
+	tool_operhlp.h tool_panykey.h tool_paramhlp.h tool_parsecfg.h \
+	tool_sdecls.h tool_setopt.h tool_setup.h tool_sleep.h \
+	tool_strdup.h tool_urlglob.h tool_util.h tool_version.h \
+	tool_vms.h tool_writeout.h tool_xattr.h
+am__objects_1 = libcurltool_la-slist_wc.lo \
+	libcurltool_la-tool_binmode.lo libcurltool_la-tool_bname.lo \
+	libcurltool_la-tool_cb_dbg.lo libcurltool_la-tool_cb_hdr.lo \
+	libcurltool_la-tool_cb_prg.lo libcurltool_la-tool_cb_rea.lo \
+	libcurltool_la-tool_cb_see.lo libcurltool_la-tool_cb_wrt.lo \
+	libcurltool_la-tool_cfgable.lo libcurltool_la-tool_convert.lo \
+	libcurltool_la-tool_dirhie.lo libcurltool_la-tool_doswin.lo \
+	libcurltool_la-tool_easysrc.lo \
+	libcurltool_la-tool_formparse.lo \
+	libcurltool_la-tool_getparam.lo libcurltool_la-tool_getpass.lo \
+	libcurltool_la-tool_help.lo libcurltool_la-tool_helpers.lo \
+	libcurltool_la-tool_homedir.lo libcurltool_la-tool_hugehelp.lo \
+	libcurltool_la-tool_libinfo.lo libcurltool_la-tool_main.lo \
+	libcurltool_la-tool_metalink.lo libcurltool_la-tool_mfiles.lo \
+	libcurltool_la-tool_msgs.lo libcurltool_la-tool_operate.lo \
+	libcurltool_la-tool_operhlp.lo libcurltool_la-tool_panykey.lo \
+	libcurltool_la-tool_paramhlp.lo \
+	libcurltool_la-tool_parsecfg.lo libcurltool_la-tool_strdup.lo \
+	libcurltool_la-tool_setopt.lo libcurltool_la-tool_sleep.lo \
+	libcurltool_la-tool_urlglob.lo libcurltool_la-tool_util.lo \
+	libcurltool_la-tool_vms.lo libcurltool_la-tool_writeout.lo \
+	libcurltool_la-tool_xattr.lo
+am__dirstamp = $(am__leading_dot)dirstamp
+am__objects_2 = ../lib/libcurltool_la-strtoofft.lo \
+	../lib/libcurltool_la-nonblock.lo \
+	../lib/libcurltool_la-warnless.lo
+am__objects_3 =
+am__objects_4 = $(am__objects_1) $(am__objects_2) $(am__objects_3)
+am__objects_5 = $(am__objects_4)
+@BUILD_UNITTESTS_TRUE@am_libcurltool_la_OBJECTS = $(am__objects_5)
+libcurltool_la_OBJECTS = $(am_libcurltool_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libcurltool_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(libcurltool_la_CFLAGS) $(CFLAGS) $(libcurltool_la_LDFLAGS) \
+	$(LDFLAGS) -o $@
+@BUILD_UNITTESTS_TRUE@am_libcurltool_la_rpath =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am__objects_6 = curl-slist_wc.$(OBJEXT) curl-tool_binmode.$(OBJEXT) \
+	curl-tool_bname.$(OBJEXT) curl-tool_cb_dbg.$(OBJEXT) \
+	curl-tool_cb_hdr.$(OBJEXT) curl-tool_cb_prg.$(OBJEXT) \
+	curl-tool_cb_rea.$(OBJEXT) curl-tool_cb_see.$(OBJEXT) \
+	curl-tool_cb_wrt.$(OBJEXT) curl-tool_cfgable.$(OBJEXT) \
+	curl-tool_convert.$(OBJEXT) curl-tool_dirhie.$(OBJEXT) \
+	curl-tool_doswin.$(OBJEXT) curl-tool_easysrc.$(OBJEXT) \
+	curl-tool_formparse.$(OBJEXT) curl-tool_getparam.$(OBJEXT) \
+	curl-tool_getpass.$(OBJEXT) curl-tool_help.$(OBJEXT) \
+	curl-tool_helpers.$(OBJEXT) curl-tool_homedir.$(OBJEXT) \
+	curl-tool_hugehelp.$(OBJEXT) curl-tool_libinfo.$(OBJEXT) \
+	curl-tool_main.$(OBJEXT) curl-tool_metalink.$(OBJEXT) \
+	curl-tool_mfiles.$(OBJEXT) curl-tool_msgs.$(OBJEXT) \
+	curl-tool_operate.$(OBJEXT) curl-tool_operhlp.$(OBJEXT) \
+	curl-tool_panykey.$(OBJEXT) curl-tool_paramhlp.$(OBJEXT) \
+	curl-tool_parsecfg.$(OBJEXT) curl-tool_strdup.$(OBJEXT) \
+	curl-tool_setopt.$(OBJEXT) curl-tool_sleep.$(OBJEXT) \
+	curl-tool_urlglob.$(OBJEXT) curl-tool_util.$(OBJEXT) \
+	curl-tool_vms.$(OBJEXT) curl-tool_writeout.$(OBJEXT) \
+	curl-tool_xattr.$(OBJEXT)
+am__objects_7 = ../lib/curl-strtoofft.$(OBJEXT) \
+	../lib/curl-nonblock.$(OBJEXT) ../lib/curl-warnless.$(OBJEXT)
+am__objects_8 = $(am__objects_6) $(am__objects_7) $(am__objects_3)
+am_curl_OBJECTS = $(am__objects_8)
+curl_OBJECTS = $(am_curl_OBJECTS)
+@USE_EXPLICIT_LIB_DEPS_FALSE@curl_DEPENDENCIES =  \
+@USE_EXPLICIT_LIB_DEPS_FALSE@	$(top_builddir)/lib/libcurl.la
+@USE_EXPLICIT_LIB_DEPS_TRUE@curl_DEPENDENCIES =  \
+@USE_EXPLICIT_LIB_DEPS_TRUE@	$(top_builddir)/lib/libcurl.la
+curl_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(curl_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = 
+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) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(libcurltool_la_SOURCES) $(curl_SOURCES)
+DIST_SOURCES = $(am__libcurltool_la_SOURCES_DIST) $(curl_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.inc \
+	$(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+
+# This might hold -Werror
+CFLAGS = @CFLAGS@ @CURL_CFLAG_EXTRAS@ $(CODE_COVERAGE_CFLAGS)
+CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@
+CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
+CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
+CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
+CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@
+CURLVERSION = @CURLVERSION@
+CURL_CA_BUNDLE = @CURL_CA_BUNDLE@
+CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@
+CURL_DISABLE_DICT = @CURL_DISABLE_DICT@
+CURL_DISABLE_FILE = @CURL_DISABLE_FILE@
+CURL_DISABLE_FTP = @CURL_DISABLE_FTP@
+CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@
+CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@
+CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@
+CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@
+CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@
+CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@
+CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@
+CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@
+CURL_DISABLE_SMB = @CURL_DISABLE_SMB@
+CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@
+CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@
+CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@
+CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@
+CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@
+CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_SHARED = @ENABLE_SHARED@
+ENABLE_STATIC = @ENABLE_STATIC@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCOV = @GCOV@
+GENHTML = @GENHTML@
+GREP = @GREP@
+HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@
+HAVE_LDAP_SSL = @HAVE_LDAP_SSL@
+HAVE_LIBZ = @HAVE_LIBZ@
+HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@
+IDN_ENABLED = @IDN_ENABLED@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+IPV6_ENABLED = @IPV6_ENABLED@
+LCOV = @LCOV@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBCURL_LIBS = @LIBCURL_LIBS@
+LIBMETALINK_CPPFLAGS = @LIBMETALINK_CPPFLAGS@
+LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@
+LIBMETALINK_LIBS = @LIBMETALINK_LIBS@
+LIBOBJS = @LIBOBJS@
+
+# Prevent LIBS from being used for all link targets
+LIBS = $(BLANK_AT_MAKETIME)
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MANOPT = @MANOPT@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+# Use the C locale to ensure that only ASCII characters appear in the
+# embedded text.
+NROFF = env LC_ALL=C @NROFF@ @MANOPT@ # figured out by the configure script
+NSS_LIBS = @NSS_LIBS@
+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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKGADD_NAME = @PKGADD_NAME@
+PKGADD_PKG = @PKGADD_PKG@
+PKGADD_VENDOR = @PKGADD_VENDOR@
+PKGCONFIG = @PKGCONFIG@
+RANDOM_FILE = @RANDOM_FILE@
+RANLIB = @RANLIB@
+REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SSL_ENABLED = @SSL_ENABLED@
+SSL_LIBS = @SSL_LIBS@
+STRIP = @STRIP@
+SUPPORT_FEATURES = @SUPPORT_FEATURES@
+SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@
+USE_ARES = @USE_ARES@
+USE_AXTLS = @USE_AXTLS@
+USE_CYASSL = @USE_CYASSL@
+USE_DARWINSSL = @USE_DARWINSSL@
+USE_GNUTLS = @USE_GNUTLS@
+USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@
+USE_LIBRTMP = @USE_LIBRTMP@
+USE_LIBSSH2 = @USE_LIBSSH2@
+USE_MBEDTLS = @USE_MBEDTLS@
+USE_NGHTTP2 = @USE_NGHTTP2@
+USE_NSS = @USE_NSS@
+USE_OPENLDAP = @USE_OPENLDAP@
+USE_POLARSSL = @USE_POLARSSL@
+USE_SCHANNEL = @USE_SCHANNEL@
+USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
+USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@
+VERSION = @VERSION@
+VERSIONNUM = @VERSIONNUM@
+ZLIB_LIBS = @ZLIB_LIBS@
+ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+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@
+libext = @libext@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.haxx.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+###########################################################################
+AUTOMAKE_OPTIONS = foreign nostdinc
+
+# Specify our include paths here, and do it relative to $(top_srcdir) and
+# $(top_builddir), to ensure that these paths which belong to the library
+# being currently built and tested are searched before the library which
+# might possibly already be installed in the system.
+#
+# $(top_builddir)/include/curl for generated curlbuild.h included from curl.h
+# $(top_builddir)/include for generated curlbuild.h inc. from lib/curl_setup.h
+# $(top_srcdir)/include is for libcurl's external include files
+# $(top_builddir)/lib is for libcurl's generated lib/curl_config.h file
+# $(top_builddir)/src is for curl's generated src/curl_config.h file
+# $(top_srcdir)/lib for libcurl's lib/curl_setup.h and other "borrowed" files
+# $(top_srcdir)/src is for curl's src/tool_setup.h and "curl-private" files
+AM_CPPFLAGS = -I$(top_builddir)/include/curl -I$(top_builddir)/include \
+	-I$(top_srcdir)/include -I$(top_builddir)/lib \
+	-I$(top_builddir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/src \
+	$(am__append_1)
+
+# libcurl has sources that provide functions named curlx_* that aren't part of
+# the official API, but we re-use the code here to avoid duplication.
+CURLX_CFILES = \
+	../lib/strtoofft.c \
+	../lib/nonblock.c \
+	../lib/warnless.c
+
+CURLX_HFILES = \
+	../lib/curl_setup.h \
+	../lib/strtoofft.h \
+	../lib/nonblock.h \
+	../lib/warnless.h
+
+CURL_CFILES = \
+	slist_wc.c \
+	tool_binmode.c \
+	tool_bname.c \
+	tool_cb_dbg.c \
+	tool_cb_hdr.c \
+	tool_cb_prg.c \
+	tool_cb_rea.c \
+	tool_cb_see.c \
+	tool_cb_wrt.c \
+	tool_cfgable.c \
+	tool_convert.c \
+	tool_dirhie.c \
+	tool_doswin.c \
+	tool_easysrc.c \
+	tool_formparse.c \
+	tool_getparam.c \
+	tool_getpass.c \
+	tool_help.c \
+	tool_helpers.c \
+	tool_homedir.c \
+	tool_hugehelp.c \
+	tool_libinfo.c \
+	tool_main.c \
+	tool_metalink.c \
+	tool_mfiles.c \
+	tool_msgs.c \
+	tool_operate.c \
+	tool_operhlp.c \
+	tool_panykey.c \
+	tool_paramhlp.c \
+	tool_parsecfg.c \
+	tool_strdup.c \
+	tool_setopt.c \
+	tool_sleep.c \
+	tool_urlglob.c \
+	tool_util.c \
+	tool_vms.c \
+	tool_writeout.c \
+	tool_xattr.c
+
+CURL_HFILES = \
+	slist_wc.h \
+	tool_binmode.h \
+	tool_bname.h \
+	tool_cb_dbg.h \
+	tool_cb_hdr.h \
+	tool_cb_prg.h \
+	tool_cb_rea.h \
+	tool_cb_see.h \
+	tool_cb_wrt.h \
+	tool_cfgable.h \
+	tool_convert.h \
+	tool_dirhie.h \
+	tool_doswin.h \
+	tool_easysrc.h \
+	tool_formparse.h \
+	tool_getparam.h \
+	tool_getpass.h \
+	tool_help.h \
+	tool_helpers.h \
+	tool_homedir.h \
+	tool_hugehelp.h \
+	tool_libinfo.h \
+	tool_main.h \
+	tool_metalink.h \
+	tool_mfiles.h \
+	tool_msgs.h \
+	tool_operate.h \
+	tool_operhlp.h \
+	tool_panykey.h \
+	tool_paramhlp.h \
+	tool_parsecfg.h \
+	tool_sdecls.h \
+	tool_setopt.h \
+	tool_setup.h \
+	tool_sleep.h \
+	tool_strdup.h \
+	tool_urlglob.h \
+	tool_util.h \
+	tool_version.h \
+	tool_vms.h \
+	tool_writeout.h \
+	tool_xattr.h
+
+CURL_RCFILES = curl.rc
+
+# curl_SOURCES is special and gets assigned in src/Makefile.am
+CURL_FILES = $(CURL_CFILES) $(CURLX_CFILES) $(CURL_HFILES)
+
+# CURL_FILES comes from Makefile.inc
+curl_SOURCES = $(CURL_FILES)
+@USE_EXPLICIT_LIB_DEPS_FALSE@curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBMETALINK_LIBS@ @NSS_LIBS@ @SSL_LIBS@ @ZLIB_LIBS@ @CURL_NETWORK_AND_TIME_LIBS@
+@USE_EXPLICIT_LIB_DEPS_TRUE@curl_LDADD = $(top_builddir)/lib/libcurl.la @LIBMETALINK_LIBS@ @LIBCURL_LIBS@
+curl_LDFLAGS = @LIBMETALINK_LDFLAGS@ $(CODE_COVERAGE_LDFLAGS)
+curl_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMETALINK_CPPFLAGS)
+
+# if unit tests are enabled, build a static library to link them with
+@BUILD_UNITTESTS_TRUE@noinst_LTLIBRARIES = libcurltool.la
+@BUILD_UNITTESTS_TRUE@libcurltool_la_CPPFLAGS = $(LIBMETALINK_CPPFLAGS) $(AM_CPPFLAGS) \
+@BUILD_UNITTESTS_TRUE@                          -DCURL_STATICLIB -DUNITTESTS
+
+@BUILD_UNITTESTS_TRUE@libcurltool_la_CFLAGS = 
+@BUILD_UNITTESTS_TRUE@libcurltool_la_LDFLAGS = -static $(LINKFLAGS)
+@BUILD_UNITTESTS_TRUE@libcurltool_la_SOURCES = $(curl_SOURCES)
+BUILT_SOURCES = tool_hugehelp.c
+CLEANFILES = tool_hugehelp.c
+EXTRA_DIST = mkhelp.pl makefile.dj Makefile.b32		\
+ Makefile.m32 macos/curl.mcp.xml.sit.hqx macos/MACINSTALL.TXT		\
+ macos/src/curl_GUSIConfig.cpp macos/src/macos_main.cpp makefile.amiga	\
+ curl.rc Makefile.netware Makefile.inc Makefile.Watcom CMakeLists.txt
+
+
+# Use absolute directory to disable VPATH
+MANPAGE = $(abs_top_builddir)/docs/curl.1
+README = $(top_srcdir)/docs/MANUAL
+MKHELP = $(top_srcdir)/src/mkhelp.pl
+HUGE = tool_hugehelp.c
+all: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.inc $(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 src/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign src/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;
+$(srcdir)/Makefile.inc $(am__empty):
+
+$(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):
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; \
+	locs=`for p in $$list; do echo $$p; done | \
+	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+	      sort -u`; \
+	test -z "$$locs" || { \
+	  echo rm -f $${locs}; \
+	  rm -f $${locs}; \
+	}
+../lib/$(am__dirstamp):
+	@$(MKDIR_P) ../lib
+	@: > ../lib/$(am__dirstamp)
+../lib/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) ../lib/$(DEPDIR)
+	@: > ../lib/$(DEPDIR)/$(am__dirstamp)
+../lib/libcurltool_la-strtoofft.lo: ../lib/$(am__dirstamp) \
+	../lib/$(DEPDIR)/$(am__dirstamp)
+../lib/libcurltool_la-nonblock.lo: ../lib/$(am__dirstamp) \
+	../lib/$(DEPDIR)/$(am__dirstamp)
+../lib/libcurltool_la-warnless.lo: ../lib/$(am__dirstamp) \
+	../lib/$(DEPDIR)/$(am__dirstamp)
+
+libcurltool.la: $(libcurltool_la_OBJECTS) $(libcurltool_la_DEPENDENCIES) $(EXTRA_libcurltool_la_DEPENDENCIES) 
+	$(AM_V_CCLD)$(libcurltool_la_LINK) $(am_libcurltool_la_rpath) $(libcurltool_la_OBJECTS) $(libcurltool_la_LIBADD) $(LIBS)
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	@list='$(bin_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
+../lib/curl-strtoofft.$(OBJEXT): ../lib/$(am__dirstamp) \
+	../lib/$(DEPDIR)/$(am__dirstamp)
+../lib/curl-nonblock.$(OBJEXT): ../lib/$(am__dirstamp) \
+	../lib/$(DEPDIR)/$(am__dirstamp)
+../lib/curl-warnless.$(OBJEXT): ../lib/$(am__dirstamp) \
+	../lib/$(DEPDIR)/$(am__dirstamp)
+
+curl$(EXEEXT): $(curl_OBJECTS) $(curl_DEPENDENCIES) $(EXTRA_curl_DEPENDENCIES) 
+	@rm -f curl$(EXEEXT)
+	$(AM_V_CCLD)$(curl_LINK) $(curl_OBJECTS) $(curl_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+	-rm -f ../lib/*.$(OBJEXT)
+	-rm -f ../lib/*.lo
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-nonblock.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-strtoofft.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/curl-warnless.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-nonblock.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-strtoofft.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/libcurltool_la-warnless.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-slist_wc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_binmode.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_bname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_dbg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_hdr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_prg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_rea.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_see.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cb_wrt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_cfgable.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_convert.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_dirhie.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_doswin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_easysrc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_formparse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_getparam.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_getpass.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_help.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_helpers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_homedir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_hugehelp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_libinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_metalink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_mfiles.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_msgs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_operate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_operhlp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_panykey.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_paramhlp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_parsecfg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_setopt.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_sleep.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_strdup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_urlglob.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_util.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_vms.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_writeout.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl-tool_xattr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-slist_wc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_binmode.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_bname.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_dbg.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_hdr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_prg.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_rea.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_see.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cb_wrt.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_cfgable.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_convert.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_dirhie.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_doswin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_easysrc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_formparse.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_getparam.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_getpass.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_help.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_helpers.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_homedir.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_hugehelp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_libinfo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_main.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_metalink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_mfiles.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_msgs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_operate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_operhlp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_panykey.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_paramhlp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_parsecfg.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_setopt.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_sleep.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_strdup.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_urlglob.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_util.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_vms.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_writeout.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcurltool_la-tool_xattr.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+libcurltool_la-slist_wc.lo: slist_wc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-slist_wc.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-slist_wc.Tpo -c -o libcurltool_la-slist_wc.lo `test -f 'slist_wc.c' || echo '$(srcdir)/'`slist_wc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-slist_wc.Tpo $(DEPDIR)/libcurltool_la-slist_wc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='slist_wc.c' object='libcurltool_la-slist_wc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-slist_wc.lo `test -f 'slist_wc.c' || echo '$(srcdir)/'`slist_wc.c
+
+libcurltool_la-tool_binmode.lo: tool_binmode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_binmode.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_binmode.Tpo -c -o libcurltool_la-tool_binmode.lo `test -f 'tool_binmode.c' || echo '$(srcdir)/'`tool_binmode.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_binmode.Tpo $(DEPDIR)/libcurltool_la-tool_binmode.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_binmode.c' object='libcurltool_la-tool_binmode.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_binmode.lo `test -f 'tool_binmode.c' || echo '$(srcdir)/'`tool_binmode.c
+
+libcurltool_la-tool_bname.lo: tool_bname.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_bname.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_bname.Tpo -c -o libcurltool_la-tool_bname.lo `test -f 'tool_bname.c' || echo '$(srcdir)/'`tool_bname.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_bname.Tpo $(DEPDIR)/libcurltool_la-tool_bname.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_bname.c' object='libcurltool_la-tool_bname.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_bname.lo `test -f 'tool_bname.c' || echo '$(srcdir)/'`tool_bname.c
+
+libcurltool_la-tool_cb_dbg.lo: tool_cb_dbg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_cb_dbg.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_cb_dbg.Tpo -c -o libcurltool_la-tool_cb_dbg.lo `test -f 'tool_cb_dbg.c' || echo '$(srcdir)/'`tool_cb_dbg.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_cb_dbg.Tpo $(DEPDIR)/libcurltool_la-tool_cb_dbg.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_dbg.c' object='libcurltool_la-tool_cb_dbg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_cb_dbg.lo `test -f 'tool_cb_dbg.c' || echo '$(srcdir)/'`tool_cb_dbg.c
+
+libcurltool_la-tool_cb_hdr.lo: tool_cb_hdr.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_cb_hdr.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_cb_hdr.Tpo -c -o libcurltool_la-tool_cb_hdr.lo `test -f 'tool_cb_hdr.c' || echo '$(srcdir)/'`tool_cb_hdr.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_cb_hdr.Tpo $(DEPDIR)/libcurltool_la-tool_cb_hdr.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_hdr.c' object='libcurltool_la-tool_cb_hdr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_cb_hdr.lo `test -f 'tool_cb_hdr.c' || echo '$(srcdir)/'`tool_cb_hdr.c
+
+libcurltool_la-tool_cb_prg.lo: tool_cb_prg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_cb_prg.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_cb_prg.Tpo -c -o libcurltool_la-tool_cb_prg.lo `test -f 'tool_cb_prg.c' || echo '$(srcdir)/'`tool_cb_prg.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_cb_prg.Tpo $(DEPDIR)/libcurltool_la-tool_cb_prg.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_prg.c' object='libcurltool_la-tool_cb_prg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_cb_prg.lo `test -f 'tool_cb_prg.c' || echo '$(srcdir)/'`tool_cb_prg.c
+
+libcurltool_la-tool_cb_rea.lo: tool_cb_rea.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_cb_rea.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_cb_rea.Tpo -c -o libcurltool_la-tool_cb_rea.lo `test -f 'tool_cb_rea.c' || echo '$(srcdir)/'`tool_cb_rea.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_cb_rea.Tpo $(DEPDIR)/libcurltool_la-tool_cb_rea.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_rea.c' object='libcurltool_la-tool_cb_rea.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_cb_rea.lo `test -f 'tool_cb_rea.c' || echo '$(srcdir)/'`tool_cb_rea.c
+
+libcurltool_la-tool_cb_see.lo: tool_cb_see.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_cb_see.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_cb_see.Tpo -c -o libcurltool_la-tool_cb_see.lo `test -f 'tool_cb_see.c' || echo '$(srcdir)/'`tool_cb_see.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_cb_see.Tpo $(DEPDIR)/libcurltool_la-tool_cb_see.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_see.c' object='libcurltool_la-tool_cb_see.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_cb_see.lo `test -f 'tool_cb_see.c' || echo '$(srcdir)/'`tool_cb_see.c
+
+libcurltool_la-tool_cb_wrt.lo: tool_cb_wrt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_cb_wrt.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_cb_wrt.Tpo -c -o libcurltool_la-tool_cb_wrt.lo `test -f 'tool_cb_wrt.c' || echo '$(srcdir)/'`tool_cb_wrt.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_cb_wrt.Tpo $(DEPDIR)/libcurltool_la-tool_cb_wrt.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_wrt.c' object='libcurltool_la-tool_cb_wrt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_cb_wrt.lo `test -f 'tool_cb_wrt.c' || echo '$(srcdir)/'`tool_cb_wrt.c
+
+libcurltool_la-tool_cfgable.lo: tool_cfgable.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_cfgable.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_cfgable.Tpo -c -o libcurltool_la-tool_cfgable.lo `test -f 'tool_cfgable.c' || echo '$(srcdir)/'`tool_cfgable.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_cfgable.Tpo $(DEPDIR)/libcurltool_la-tool_cfgable.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cfgable.c' object='libcurltool_la-tool_cfgable.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_cfgable.lo `test -f 'tool_cfgable.c' || echo '$(srcdir)/'`tool_cfgable.c
+
+libcurltool_la-tool_convert.lo: tool_convert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_convert.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_convert.Tpo -c -o libcurltool_la-tool_convert.lo `test -f 'tool_convert.c' || echo '$(srcdir)/'`tool_convert.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_convert.Tpo $(DEPDIR)/libcurltool_la-tool_convert.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_convert.c' object='libcurltool_la-tool_convert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_convert.lo `test -f 'tool_convert.c' || echo '$(srcdir)/'`tool_convert.c
+
+libcurltool_la-tool_dirhie.lo: tool_dirhie.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_dirhie.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_dirhie.Tpo -c -o libcurltool_la-tool_dirhie.lo `test -f 'tool_dirhie.c' || echo '$(srcdir)/'`tool_dirhie.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_dirhie.Tpo $(DEPDIR)/libcurltool_la-tool_dirhie.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_dirhie.c' object='libcurltool_la-tool_dirhie.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_dirhie.lo `test -f 'tool_dirhie.c' || echo '$(srcdir)/'`tool_dirhie.c
+
+libcurltool_la-tool_doswin.lo: tool_doswin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_doswin.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_doswin.Tpo -c -o libcurltool_la-tool_doswin.lo `test -f 'tool_doswin.c' || echo '$(srcdir)/'`tool_doswin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_doswin.Tpo $(DEPDIR)/libcurltool_la-tool_doswin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_doswin.c' object='libcurltool_la-tool_doswin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_doswin.lo `test -f 'tool_doswin.c' || echo '$(srcdir)/'`tool_doswin.c
+
+libcurltool_la-tool_easysrc.lo: tool_easysrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_easysrc.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_easysrc.Tpo -c -o libcurltool_la-tool_easysrc.lo `test -f 'tool_easysrc.c' || echo '$(srcdir)/'`tool_easysrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_easysrc.Tpo $(DEPDIR)/libcurltool_la-tool_easysrc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_easysrc.c' object='libcurltool_la-tool_easysrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_easysrc.lo `test -f 'tool_easysrc.c' || echo '$(srcdir)/'`tool_easysrc.c
+
+libcurltool_la-tool_formparse.lo: tool_formparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_formparse.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_formparse.Tpo -c -o libcurltool_la-tool_formparse.lo `test -f 'tool_formparse.c' || echo '$(srcdir)/'`tool_formparse.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_formparse.Tpo $(DEPDIR)/libcurltool_la-tool_formparse.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_formparse.c' object='libcurltool_la-tool_formparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_formparse.lo `test -f 'tool_formparse.c' || echo '$(srcdir)/'`tool_formparse.c
+
+libcurltool_la-tool_getparam.lo: tool_getparam.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_getparam.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_getparam.Tpo -c -o libcurltool_la-tool_getparam.lo `test -f 'tool_getparam.c' || echo '$(srcdir)/'`tool_getparam.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_getparam.Tpo $(DEPDIR)/libcurltool_la-tool_getparam.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_getparam.c' object='libcurltool_la-tool_getparam.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_getparam.lo `test -f 'tool_getparam.c' || echo '$(srcdir)/'`tool_getparam.c
+
+libcurltool_la-tool_getpass.lo: tool_getpass.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_getpass.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_getpass.Tpo -c -o libcurltool_la-tool_getpass.lo `test -f 'tool_getpass.c' || echo '$(srcdir)/'`tool_getpass.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_getpass.Tpo $(DEPDIR)/libcurltool_la-tool_getpass.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_getpass.c' object='libcurltool_la-tool_getpass.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_getpass.lo `test -f 'tool_getpass.c' || echo '$(srcdir)/'`tool_getpass.c
+
+libcurltool_la-tool_help.lo: tool_help.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_help.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_help.Tpo -c -o libcurltool_la-tool_help.lo `test -f 'tool_help.c' || echo '$(srcdir)/'`tool_help.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_help.Tpo $(DEPDIR)/libcurltool_la-tool_help.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_help.c' object='libcurltool_la-tool_help.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_help.lo `test -f 'tool_help.c' || echo '$(srcdir)/'`tool_help.c
+
+libcurltool_la-tool_helpers.lo: tool_helpers.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_helpers.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_helpers.Tpo -c -o libcurltool_la-tool_helpers.lo `test -f 'tool_helpers.c' || echo '$(srcdir)/'`tool_helpers.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_helpers.Tpo $(DEPDIR)/libcurltool_la-tool_helpers.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_helpers.c' object='libcurltool_la-tool_helpers.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_helpers.lo `test -f 'tool_helpers.c' || echo '$(srcdir)/'`tool_helpers.c
+
+libcurltool_la-tool_homedir.lo: tool_homedir.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_homedir.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_homedir.Tpo -c -o libcurltool_la-tool_homedir.lo `test -f 'tool_homedir.c' || echo '$(srcdir)/'`tool_homedir.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_homedir.Tpo $(DEPDIR)/libcurltool_la-tool_homedir.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_homedir.c' object='libcurltool_la-tool_homedir.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_homedir.lo `test -f 'tool_homedir.c' || echo '$(srcdir)/'`tool_homedir.c
+
+libcurltool_la-tool_hugehelp.lo: tool_hugehelp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_hugehelp.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_hugehelp.Tpo -c -o libcurltool_la-tool_hugehelp.lo `test -f 'tool_hugehelp.c' || echo '$(srcdir)/'`tool_hugehelp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_hugehelp.Tpo $(DEPDIR)/libcurltool_la-tool_hugehelp.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_hugehelp.c' object='libcurltool_la-tool_hugehelp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_hugehelp.lo `test -f 'tool_hugehelp.c' || echo '$(srcdir)/'`tool_hugehelp.c
+
+libcurltool_la-tool_libinfo.lo: tool_libinfo.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_libinfo.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_libinfo.Tpo -c -o libcurltool_la-tool_libinfo.lo `test -f 'tool_libinfo.c' || echo '$(srcdir)/'`tool_libinfo.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_libinfo.Tpo $(DEPDIR)/libcurltool_la-tool_libinfo.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_libinfo.c' object='libcurltool_la-tool_libinfo.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_libinfo.lo `test -f 'tool_libinfo.c' || echo '$(srcdir)/'`tool_libinfo.c
+
+libcurltool_la-tool_main.lo: tool_main.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_main.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_main.Tpo -c -o libcurltool_la-tool_main.lo `test -f 'tool_main.c' || echo '$(srcdir)/'`tool_main.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_main.Tpo $(DEPDIR)/libcurltool_la-tool_main.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_main.c' object='libcurltool_la-tool_main.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_main.lo `test -f 'tool_main.c' || echo '$(srcdir)/'`tool_main.c
+
+libcurltool_la-tool_metalink.lo: tool_metalink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_metalink.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_metalink.Tpo -c -o libcurltool_la-tool_metalink.lo `test -f 'tool_metalink.c' || echo '$(srcdir)/'`tool_metalink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_metalink.Tpo $(DEPDIR)/libcurltool_la-tool_metalink.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_metalink.c' object='libcurltool_la-tool_metalink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_metalink.lo `test -f 'tool_metalink.c' || echo '$(srcdir)/'`tool_metalink.c
+
+libcurltool_la-tool_mfiles.lo: tool_mfiles.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_mfiles.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_mfiles.Tpo -c -o libcurltool_la-tool_mfiles.lo `test -f 'tool_mfiles.c' || echo '$(srcdir)/'`tool_mfiles.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_mfiles.Tpo $(DEPDIR)/libcurltool_la-tool_mfiles.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_mfiles.c' object='libcurltool_la-tool_mfiles.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_mfiles.lo `test -f 'tool_mfiles.c' || echo '$(srcdir)/'`tool_mfiles.c
+
+libcurltool_la-tool_msgs.lo: tool_msgs.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_msgs.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_msgs.Tpo -c -o libcurltool_la-tool_msgs.lo `test -f 'tool_msgs.c' || echo '$(srcdir)/'`tool_msgs.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_msgs.Tpo $(DEPDIR)/libcurltool_la-tool_msgs.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_msgs.c' object='libcurltool_la-tool_msgs.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_msgs.lo `test -f 'tool_msgs.c' || echo '$(srcdir)/'`tool_msgs.c
+
+libcurltool_la-tool_operate.lo: tool_operate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_operate.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_operate.Tpo -c -o libcurltool_la-tool_operate.lo `test -f 'tool_operate.c' || echo '$(srcdir)/'`tool_operate.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_operate.Tpo $(DEPDIR)/libcurltool_la-tool_operate.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_operate.c' object='libcurltool_la-tool_operate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_operate.lo `test -f 'tool_operate.c' || echo '$(srcdir)/'`tool_operate.c
+
+libcurltool_la-tool_operhlp.lo: tool_operhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_operhlp.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_operhlp.Tpo -c -o libcurltool_la-tool_operhlp.lo `test -f 'tool_operhlp.c' || echo '$(srcdir)/'`tool_operhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_operhlp.Tpo $(DEPDIR)/libcurltool_la-tool_operhlp.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_operhlp.c' object='libcurltool_la-tool_operhlp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_operhlp.lo `test -f 'tool_operhlp.c' || echo '$(srcdir)/'`tool_operhlp.c
+
+libcurltool_la-tool_panykey.lo: tool_panykey.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_panykey.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_panykey.Tpo -c -o libcurltool_la-tool_panykey.lo `test -f 'tool_panykey.c' || echo '$(srcdir)/'`tool_panykey.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_panykey.Tpo $(DEPDIR)/libcurltool_la-tool_panykey.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_panykey.c' object='libcurltool_la-tool_panykey.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_panykey.lo `test -f 'tool_panykey.c' || echo '$(srcdir)/'`tool_panykey.c
+
+libcurltool_la-tool_paramhlp.lo: tool_paramhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_paramhlp.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_paramhlp.Tpo -c -o libcurltool_la-tool_paramhlp.lo `test -f 'tool_paramhlp.c' || echo '$(srcdir)/'`tool_paramhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_paramhlp.Tpo $(DEPDIR)/libcurltool_la-tool_paramhlp.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_paramhlp.c' object='libcurltool_la-tool_paramhlp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_paramhlp.lo `test -f 'tool_paramhlp.c' || echo '$(srcdir)/'`tool_paramhlp.c
+
+libcurltool_la-tool_parsecfg.lo: tool_parsecfg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_parsecfg.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_parsecfg.Tpo -c -o libcurltool_la-tool_parsecfg.lo `test -f 'tool_parsecfg.c' || echo '$(srcdir)/'`tool_parsecfg.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_parsecfg.Tpo $(DEPDIR)/libcurltool_la-tool_parsecfg.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_parsecfg.c' object='libcurltool_la-tool_parsecfg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_parsecfg.lo `test -f 'tool_parsecfg.c' || echo '$(srcdir)/'`tool_parsecfg.c
+
+libcurltool_la-tool_strdup.lo: tool_strdup.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_strdup.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_strdup.Tpo -c -o libcurltool_la-tool_strdup.lo `test -f 'tool_strdup.c' || echo '$(srcdir)/'`tool_strdup.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_strdup.Tpo $(DEPDIR)/libcurltool_la-tool_strdup.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_strdup.c' object='libcurltool_la-tool_strdup.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_strdup.lo `test -f 'tool_strdup.c' || echo '$(srcdir)/'`tool_strdup.c
+
+libcurltool_la-tool_setopt.lo: tool_setopt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_setopt.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_setopt.Tpo -c -o libcurltool_la-tool_setopt.lo `test -f 'tool_setopt.c' || echo '$(srcdir)/'`tool_setopt.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_setopt.Tpo $(DEPDIR)/libcurltool_la-tool_setopt.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_setopt.c' object='libcurltool_la-tool_setopt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_setopt.lo `test -f 'tool_setopt.c' || echo '$(srcdir)/'`tool_setopt.c
+
+libcurltool_la-tool_sleep.lo: tool_sleep.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_sleep.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_sleep.Tpo -c -o libcurltool_la-tool_sleep.lo `test -f 'tool_sleep.c' || echo '$(srcdir)/'`tool_sleep.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_sleep.Tpo $(DEPDIR)/libcurltool_la-tool_sleep.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_sleep.c' object='libcurltool_la-tool_sleep.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_sleep.lo `test -f 'tool_sleep.c' || echo '$(srcdir)/'`tool_sleep.c
+
+libcurltool_la-tool_urlglob.lo: tool_urlglob.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_urlglob.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_urlglob.Tpo -c -o libcurltool_la-tool_urlglob.lo `test -f 'tool_urlglob.c' || echo '$(srcdir)/'`tool_urlglob.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_urlglob.Tpo $(DEPDIR)/libcurltool_la-tool_urlglob.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_urlglob.c' object='libcurltool_la-tool_urlglob.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_urlglob.lo `test -f 'tool_urlglob.c' || echo '$(srcdir)/'`tool_urlglob.c
+
+libcurltool_la-tool_util.lo: tool_util.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_util.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_util.Tpo -c -o libcurltool_la-tool_util.lo `test -f 'tool_util.c' || echo '$(srcdir)/'`tool_util.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_util.Tpo $(DEPDIR)/libcurltool_la-tool_util.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_util.c' object='libcurltool_la-tool_util.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_util.lo `test -f 'tool_util.c' || echo '$(srcdir)/'`tool_util.c
+
+libcurltool_la-tool_vms.lo: tool_vms.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_vms.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_vms.Tpo -c -o libcurltool_la-tool_vms.lo `test -f 'tool_vms.c' || echo '$(srcdir)/'`tool_vms.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_vms.Tpo $(DEPDIR)/libcurltool_la-tool_vms.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_vms.c' object='libcurltool_la-tool_vms.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_vms.lo `test -f 'tool_vms.c' || echo '$(srcdir)/'`tool_vms.c
+
+libcurltool_la-tool_writeout.lo: tool_writeout.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_writeout.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_writeout.Tpo -c -o libcurltool_la-tool_writeout.lo `test -f 'tool_writeout.c' || echo '$(srcdir)/'`tool_writeout.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_writeout.Tpo $(DEPDIR)/libcurltool_la-tool_writeout.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_writeout.c' object='libcurltool_la-tool_writeout.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_writeout.lo `test -f 'tool_writeout.c' || echo '$(srcdir)/'`tool_writeout.c
+
+libcurltool_la-tool_xattr.lo: tool_xattr.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT libcurltool_la-tool_xattr.lo -MD -MP -MF $(DEPDIR)/libcurltool_la-tool_xattr.Tpo -c -o libcurltool_la-tool_xattr.lo `test -f 'tool_xattr.c' || echo '$(srcdir)/'`tool_xattr.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libcurltool_la-tool_xattr.Tpo $(DEPDIR)/libcurltool_la-tool_xattr.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_xattr.c' object='libcurltool_la-tool_xattr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o libcurltool_la-tool_xattr.lo `test -f 'tool_xattr.c' || echo '$(srcdir)/'`tool_xattr.c
+
+../lib/libcurltool_la-strtoofft.lo: ../lib/strtoofft.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT ../lib/libcurltool_la-strtoofft.lo -MD -MP -MF ../lib/$(DEPDIR)/libcurltool_la-strtoofft.Tpo -c -o ../lib/libcurltool_la-strtoofft.lo `test -f '../lib/strtoofft.c' || echo '$(srcdir)/'`../lib/strtoofft.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/libcurltool_la-strtoofft.Tpo ../lib/$(DEPDIR)/libcurltool_la-strtoofft.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/strtoofft.c' object='../lib/libcurltool_la-strtoofft.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o ../lib/libcurltool_la-strtoofft.lo `test -f '../lib/strtoofft.c' || echo '$(srcdir)/'`../lib/strtoofft.c
+
+../lib/libcurltool_la-nonblock.lo: ../lib/nonblock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT ../lib/libcurltool_la-nonblock.lo -MD -MP -MF ../lib/$(DEPDIR)/libcurltool_la-nonblock.Tpo -c -o ../lib/libcurltool_la-nonblock.lo `test -f '../lib/nonblock.c' || echo '$(srcdir)/'`../lib/nonblock.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/libcurltool_la-nonblock.Tpo ../lib/$(DEPDIR)/libcurltool_la-nonblock.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/nonblock.c' object='../lib/libcurltool_la-nonblock.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o ../lib/libcurltool_la-nonblock.lo `test -f '../lib/nonblock.c' || echo '$(srcdir)/'`../lib/nonblock.c
+
+../lib/libcurltool_la-warnless.lo: ../lib/warnless.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -MT ../lib/libcurltool_la-warnless.lo -MD -MP -MF ../lib/$(DEPDIR)/libcurltool_la-warnless.Tpo -c -o ../lib/libcurltool_la-warnless.lo `test -f '../lib/warnless.c' || echo '$(srcdir)/'`../lib/warnless.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/libcurltool_la-warnless.Tpo ../lib/$(DEPDIR)/libcurltool_la-warnless.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/warnless.c' object='../lib/libcurltool_la-warnless.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcurltool_la_CPPFLAGS) $(CPPFLAGS) $(libcurltool_la_CFLAGS) $(CFLAGS) -c -o ../lib/libcurltool_la-warnless.lo `test -f '../lib/warnless.c' || echo '$(srcdir)/'`../lib/warnless.c
+
+curl-slist_wc.o: slist_wc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-slist_wc.o -MD -MP -MF $(DEPDIR)/curl-slist_wc.Tpo -c -o curl-slist_wc.o `test -f 'slist_wc.c' || echo '$(srcdir)/'`slist_wc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-slist_wc.Tpo $(DEPDIR)/curl-slist_wc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='slist_wc.c' object='curl-slist_wc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-slist_wc.o `test -f 'slist_wc.c' || echo '$(srcdir)/'`slist_wc.c
+
+curl-slist_wc.obj: slist_wc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-slist_wc.obj -MD -MP -MF $(DEPDIR)/curl-slist_wc.Tpo -c -o curl-slist_wc.obj `if test -f 'slist_wc.c'; then $(CYGPATH_W) 'slist_wc.c'; else $(CYGPATH_W) '$(srcdir)/slist_wc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-slist_wc.Tpo $(DEPDIR)/curl-slist_wc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='slist_wc.c' object='curl-slist_wc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-slist_wc.obj `if test -f 'slist_wc.c'; then $(CYGPATH_W) 'slist_wc.c'; else $(CYGPATH_W) '$(srcdir)/slist_wc.c'; fi`
+
+curl-tool_binmode.o: tool_binmode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_binmode.o -MD -MP -MF $(DEPDIR)/curl-tool_binmode.Tpo -c -o curl-tool_binmode.o `test -f 'tool_binmode.c' || echo '$(srcdir)/'`tool_binmode.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_binmode.Tpo $(DEPDIR)/curl-tool_binmode.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_binmode.c' object='curl-tool_binmode.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_binmode.o `test -f 'tool_binmode.c' || echo '$(srcdir)/'`tool_binmode.c
+
+curl-tool_binmode.obj: tool_binmode.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_binmode.obj -MD -MP -MF $(DEPDIR)/curl-tool_binmode.Tpo -c -o curl-tool_binmode.obj `if test -f 'tool_binmode.c'; then $(CYGPATH_W) 'tool_binmode.c'; else $(CYGPATH_W) '$(srcdir)/tool_binmode.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_binmode.Tpo $(DEPDIR)/curl-tool_binmode.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_binmode.c' object='curl-tool_binmode.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_binmode.obj `if test -f 'tool_binmode.c'; then $(CYGPATH_W) 'tool_binmode.c'; else $(CYGPATH_W) '$(srcdir)/tool_binmode.c'; fi`
+
+curl-tool_bname.o: tool_bname.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_bname.o -MD -MP -MF $(DEPDIR)/curl-tool_bname.Tpo -c -o curl-tool_bname.o `test -f 'tool_bname.c' || echo '$(srcdir)/'`tool_bname.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_bname.Tpo $(DEPDIR)/curl-tool_bname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_bname.c' object='curl-tool_bname.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_bname.o `test -f 'tool_bname.c' || echo '$(srcdir)/'`tool_bname.c
+
+curl-tool_bname.obj: tool_bname.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_bname.obj -MD -MP -MF $(DEPDIR)/curl-tool_bname.Tpo -c -o curl-tool_bname.obj `if test -f 'tool_bname.c'; then $(CYGPATH_W) 'tool_bname.c'; else $(CYGPATH_W) '$(srcdir)/tool_bname.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_bname.Tpo $(DEPDIR)/curl-tool_bname.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_bname.c' object='curl-tool_bname.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_bname.obj `if test -f 'tool_bname.c'; then $(CYGPATH_W) 'tool_bname.c'; else $(CYGPATH_W) '$(srcdir)/tool_bname.c'; fi`
+
+curl-tool_cb_dbg.o: tool_cb_dbg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_dbg.o -MD -MP -MF $(DEPDIR)/curl-tool_cb_dbg.Tpo -c -o curl-tool_cb_dbg.o `test -f 'tool_cb_dbg.c' || echo '$(srcdir)/'`tool_cb_dbg.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_dbg.Tpo $(DEPDIR)/curl-tool_cb_dbg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_dbg.c' object='curl-tool_cb_dbg.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_dbg.o `test -f 'tool_cb_dbg.c' || echo '$(srcdir)/'`tool_cb_dbg.c
+
+curl-tool_cb_dbg.obj: tool_cb_dbg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_dbg.obj -MD -MP -MF $(DEPDIR)/curl-tool_cb_dbg.Tpo -c -o curl-tool_cb_dbg.obj `if test -f 'tool_cb_dbg.c'; then $(CYGPATH_W) 'tool_cb_dbg.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_dbg.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_dbg.Tpo $(DEPDIR)/curl-tool_cb_dbg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_dbg.c' object='curl-tool_cb_dbg.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_dbg.obj `if test -f 'tool_cb_dbg.c'; then $(CYGPATH_W) 'tool_cb_dbg.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_dbg.c'; fi`
+
+curl-tool_cb_hdr.o: tool_cb_hdr.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_hdr.o -MD -MP -MF $(DEPDIR)/curl-tool_cb_hdr.Tpo -c -o curl-tool_cb_hdr.o `test -f 'tool_cb_hdr.c' || echo '$(srcdir)/'`tool_cb_hdr.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_hdr.Tpo $(DEPDIR)/curl-tool_cb_hdr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_hdr.c' object='curl-tool_cb_hdr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_hdr.o `test -f 'tool_cb_hdr.c' || echo '$(srcdir)/'`tool_cb_hdr.c
+
+curl-tool_cb_hdr.obj: tool_cb_hdr.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_hdr.obj -MD -MP -MF $(DEPDIR)/curl-tool_cb_hdr.Tpo -c -o curl-tool_cb_hdr.obj `if test -f 'tool_cb_hdr.c'; then $(CYGPATH_W) 'tool_cb_hdr.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_hdr.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_hdr.Tpo $(DEPDIR)/curl-tool_cb_hdr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_hdr.c' object='curl-tool_cb_hdr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_hdr.obj `if test -f 'tool_cb_hdr.c'; then $(CYGPATH_W) 'tool_cb_hdr.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_hdr.c'; fi`
+
+curl-tool_cb_prg.o: tool_cb_prg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_prg.o -MD -MP -MF $(DEPDIR)/curl-tool_cb_prg.Tpo -c -o curl-tool_cb_prg.o `test -f 'tool_cb_prg.c' || echo '$(srcdir)/'`tool_cb_prg.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_prg.Tpo $(DEPDIR)/curl-tool_cb_prg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_prg.c' object='curl-tool_cb_prg.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_prg.o `test -f 'tool_cb_prg.c' || echo '$(srcdir)/'`tool_cb_prg.c
+
+curl-tool_cb_prg.obj: tool_cb_prg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_prg.obj -MD -MP -MF $(DEPDIR)/curl-tool_cb_prg.Tpo -c -o curl-tool_cb_prg.obj `if test -f 'tool_cb_prg.c'; then $(CYGPATH_W) 'tool_cb_prg.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_prg.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_prg.Tpo $(DEPDIR)/curl-tool_cb_prg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_prg.c' object='curl-tool_cb_prg.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_prg.obj `if test -f 'tool_cb_prg.c'; then $(CYGPATH_W) 'tool_cb_prg.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_prg.c'; fi`
+
+curl-tool_cb_rea.o: tool_cb_rea.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_rea.o -MD -MP -MF $(DEPDIR)/curl-tool_cb_rea.Tpo -c -o curl-tool_cb_rea.o `test -f 'tool_cb_rea.c' || echo '$(srcdir)/'`tool_cb_rea.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_rea.Tpo $(DEPDIR)/curl-tool_cb_rea.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_rea.c' object='curl-tool_cb_rea.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_rea.o `test -f 'tool_cb_rea.c' || echo '$(srcdir)/'`tool_cb_rea.c
+
+curl-tool_cb_rea.obj: tool_cb_rea.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_rea.obj -MD -MP -MF $(DEPDIR)/curl-tool_cb_rea.Tpo -c -o curl-tool_cb_rea.obj `if test -f 'tool_cb_rea.c'; then $(CYGPATH_W) 'tool_cb_rea.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_rea.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_rea.Tpo $(DEPDIR)/curl-tool_cb_rea.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_rea.c' object='curl-tool_cb_rea.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_rea.obj `if test -f 'tool_cb_rea.c'; then $(CYGPATH_W) 'tool_cb_rea.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_rea.c'; fi`
+
+curl-tool_cb_see.o: tool_cb_see.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_see.o -MD -MP -MF $(DEPDIR)/curl-tool_cb_see.Tpo -c -o curl-tool_cb_see.o `test -f 'tool_cb_see.c' || echo '$(srcdir)/'`tool_cb_see.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_see.Tpo $(DEPDIR)/curl-tool_cb_see.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_see.c' object='curl-tool_cb_see.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_see.o `test -f 'tool_cb_see.c' || echo '$(srcdir)/'`tool_cb_see.c
+
+curl-tool_cb_see.obj: tool_cb_see.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_see.obj -MD -MP -MF $(DEPDIR)/curl-tool_cb_see.Tpo -c -o curl-tool_cb_see.obj `if test -f 'tool_cb_see.c'; then $(CYGPATH_W) 'tool_cb_see.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_see.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_see.Tpo $(DEPDIR)/curl-tool_cb_see.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_see.c' object='curl-tool_cb_see.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_see.obj `if test -f 'tool_cb_see.c'; then $(CYGPATH_W) 'tool_cb_see.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_see.c'; fi`
+
+curl-tool_cb_wrt.o: tool_cb_wrt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_wrt.o -MD -MP -MF $(DEPDIR)/curl-tool_cb_wrt.Tpo -c -o curl-tool_cb_wrt.o `test -f 'tool_cb_wrt.c' || echo '$(srcdir)/'`tool_cb_wrt.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_wrt.Tpo $(DEPDIR)/curl-tool_cb_wrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_wrt.c' object='curl-tool_cb_wrt.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_wrt.o `test -f 'tool_cb_wrt.c' || echo '$(srcdir)/'`tool_cb_wrt.c
+
+curl-tool_cb_wrt.obj: tool_cb_wrt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cb_wrt.obj -MD -MP -MF $(DEPDIR)/curl-tool_cb_wrt.Tpo -c -o curl-tool_cb_wrt.obj `if test -f 'tool_cb_wrt.c'; then $(CYGPATH_W) 'tool_cb_wrt.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_wrt.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cb_wrt.Tpo $(DEPDIR)/curl-tool_cb_wrt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cb_wrt.c' object='curl-tool_cb_wrt.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cb_wrt.obj `if test -f 'tool_cb_wrt.c'; then $(CYGPATH_W) 'tool_cb_wrt.c'; else $(CYGPATH_W) '$(srcdir)/tool_cb_wrt.c'; fi`
+
+curl-tool_cfgable.o: tool_cfgable.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cfgable.o -MD -MP -MF $(DEPDIR)/curl-tool_cfgable.Tpo -c -o curl-tool_cfgable.o `test -f 'tool_cfgable.c' || echo '$(srcdir)/'`tool_cfgable.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cfgable.Tpo $(DEPDIR)/curl-tool_cfgable.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cfgable.c' object='curl-tool_cfgable.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cfgable.o `test -f 'tool_cfgable.c' || echo '$(srcdir)/'`tool_cfgable.c
+
+curl-tool_cfgable.obj: tool_cfgable.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_cfgable.obj -MD -MP -MF $(DEPDIR)/curl-tool_cfgable.Tpo -c -o curl-tool_cfgable.obj `if test -f 'tool_cfgable.c'; then $(CYGPATH_W) 'tool_cfgable.c'; else $(CYGPATH_W) '$(srcdir)/tool_cfgable.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_cfgable.Tpo $(DEPDIR)/curl-tool_cfgable.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_cfgable.c' object='curl-tool_cfgable.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_cfgable.obj `if test -f 'tool_cfgable.c'; then $(CYGPATH_W) 'tool_cfgable.c'; else $(CYGPATH_W) '$(srcdir)/tool_cfgable.c'; fi`
+
+curl-tool_convert.o: tool_convert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_convert.o -MD -MP -MF $(DEPDIR)/curl-tool_convert.Tpo -c -o curl-tool_convert.o `test -f 'tool_convert.c' || echo '$(srcdir)/'`tool_convert.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_convert.Tpo $(DEPDIR)/curl-tool_convert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_convert.c' object='curl-tool_convert.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_convert.o `test -f 'tool_convert.c' || echo '$(srcdir)/'`tool_convert.c
+
+curl-tool_convert.obj: tool_convert.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_convert.obj -MD -MP -MF $(DEPDIR)/curl-tool_convert.Tpo -c -o curl-tool_convert.obj `if test -f 'tool_convert.c'; then $(CYGPATH_W) 'tool_convert.c'; else $(CYGPATH_W) '$(srcdir)/tool_convert.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_convert.Tpo $(DEPDIR)/curl-tool_convert.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_convert.c' object='curl-tool_convert.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_convert.obj `if test -f 'tool_convert.c'; then $(CYGPATH_W) 'tool_convert.c'; else $(CYGPATH_W) '$(srcdir)/tool_convert.c'; fi`
+
+curl-tool_dirhie.o: tool_dirhie.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_dirhie.o -MD -MP -MF $(DEPDIR)/curl-tool_dirhie.Tpo -c -o curl-tool_dirhie.o `test -f 'tool_dirhie.c' || echo '$(srcdir)/'`tool_dirhie.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_dirhie.Tpo $(DEPDIR)/curl-tool_dirhie.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_dirhie.c' object='curl-tool_dirhie.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_dirhie.o `test -f 'tool_dirhie.c' || echo '$(srcdir)/'`tool_dirhie.c
+
+curl-tool_dirhie.obj: tool_dirhie.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_dirhie.obj -MD -MP -MF $(DEPDIR)/curl-tool_dirhie.Tpo -c -o curl-tool_dirhie.obj `if test -f 'tool_dirhie.c'; then $(CYGPATH_W) 'tool_dirhie.c'; else $(CYGPATH_W) '$(srcdir)/tool_dirhie.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_dirhie.Tpo $(DEPDIR)/curl-tool_dirhie.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_dirhie.c' object='curl-tool_dirhie.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_dirhie.obj `if test -f 'tool_dirhie.c'; then $(CYGPATH_W) 'tool_dirhie.c'; else $(CYGPATH_W) '$(srcdir)/tool_dirhie.c'; fi`
+
+curl-tool_doswin.o: tool_doswin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_doswin.o -MD -MP -MF $(DEPDIR)/curl-tool_doswin.Tpo -c -o curl-tool_doswin.o `test -f 'tool_doswin.c' || echo '$(srcdir)/'`tool_doswin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_doswin.Tpo $(DEPDIR)/curl-tool_doswin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_doswin.c' object='curl-tool_doswin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_doswin.o `test -f 'tool_doswin.c' || echo '$(srcdir)/'`tool_doswin.c
+
+curl-tool_doswin.obj: tool_doswin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_doswin.obj -MD -MP -MF $(DEPDIR)/curl-tool_doswin.Tpo -c -o curl-tool_doswin.obj `if test -f 'tool_doswin.c'; then $(CYGPATH_W) 'tool_doswin.c'; else $(CYGPATH_W) '$(srcdir)/tool_doswin.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_doswin.Tpo $(DEPDIR)/curl-tool_doswin.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_doswin.c' object='curl-tool_doswin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_doswin.obj `if test -f 'tool_doswin.c'; then $(CYGPATH_W) 'tool_doswin.c'; else $(CYGPATH_W) '$(srcdir)/tool_doswin.c'; fi`
+
+curl-tool_easysrc.o: tool_easysrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_easysrc.o -MD -MP -MF $(DEPDIR)/curl-tool_easysrc.Tpo -c -o curl-tool_easysrc.o `test -f 'tool_easysrc.c' || echo '$(srcdir)/'`tool_easysrc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_easysrc.Tpo $(DEPDIR)/curl-tool_easysrc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_easysrc.c' object='curl-tool_easysrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_easysrc.o `test -f 'tool_easysrc.c' || echo '$(srcdir)/'`tool_easysrc.c
+
+curl-tool_easysrc.obj: tool_easysrc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_easysrc.obj -MD -MP -MF $(DEPDIR)/curl-tool_easysrc.Tpo -c -o curl-tool_easysrc.obj `if test -f 'tool_easysrc.c'; then $(CYGPATH_W) 'tool_easysrc.c'; else $(CYGPATH_W) '$(srcdir)/tool_easysrc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_easysrc.Tpo $(DEPDIR)/curl-tool_easysrc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_easysrc.c' object='curl-tool_easysrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_easysrc.obj `if test -f 'tool_easysrc.c'; then $(CYGPATH_W) 'tool_easysrc.c'; else $(CYGPATH_W) '$(srcdir)/tool_easysrc.c'; fi`
+
+curl-tool_formparse.o: tool_formparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_formparse.o -MD -MP -MF $(DEPDIR)/curl-tool_formparse.Tpo -c -o curl-tool_formparse.o `test -f 'tool_formparse.c' || echo '$(srcdir)/'`tool_formparse.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_formparse.Tpo $(DEPDIR)/curl-tool_formparse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_formparse.c' object='curl-tool_formparse.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_formparse.o `test -f 'tool_formparse.c' || echo '$(srcdir)/'`tool_formparse.c
+
+curl-tool_formparse.obj: tool_formparse.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_formparse.obj -MD -MP -MF $(DEPDIR)/curl-tool_formparse.Tpo -c -o curl-tool_formparse.obj `if test -f 'tool_formparse.c'; then $(CYGPATH_W) 'tool_formparse.c'; else $(CYGPATH_W) '$(srcdir)/tool_formparse.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_formparse.Tpo $(DEPDIR)/curl-tool_formparse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_formparse.c' object='curl-tool_formparse.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_formparse.obj `if test -f 'tool_formparse.c'; then $(CYGPATH_W) 'tool_formparse.c'; else $(CYGPATH_W) '$(srcdir)/tool_formparse.c'; fi`
+
+curl-tool_getparam.o: tool_getparam.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_getparam.o -MD -MP -MF $(DEPDIR)/curl-tool_getparam.Tpo -c -o curl-tool_getparam.o `test -f 'tool_getparam.c' || echo '$(srcdir)/'`tool_getparam.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_getparam.Tpo $(DEPDIR)/curl-tool_getparam.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_getparam.c' object='curl-tool_getparam.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_getparam.o `test -f 'tool_getparam.c' || echo '$(srcdir)/'`tool_getparam.c
+
+curl-tool_getparam.obj: tool_getparam.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_getparam.obj -MD -MP -MF $(DEPDIR)/curl-tool_getparam.Tpo -c -o curl-tool_getparam.obj `if test -f 'tool_getparam.c'; then $(CYGPATH_W) 'tool_getparam.c'; else $(CYGPATH_W) '$(srcdir)/tool_getparam.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_getparam.Tpo $(DEPDIR)/curl-tool_getparam.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_getparam.c' object='curl-tool_getparam.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_getparam.obj `if test -f 'tool_getparam.c'; then $(CYGPATH_W) 'tool_getparam.c'; else $(CYGPATH_W) '$(srcdir)/tool_getparam.c'; fi`
+
+curl-tool_getpass.o: tool_getpass.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_getpass.o -MD -MP -MF $(DEPDIR)/curl-tool_getpass.Tpo -c -o curl-tool_getpass.o `test -f 'tool_getpass.c' || echo '$(srcdir)/'`tool_getpass.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_getpass.Tpo $(DEPDIR)/curl-tool_getpass.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_getpass.c' object='curl-tool_getpass.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_getpass.o `test -f 'tool_getpass.c' || echo '$(srcdir)/'`tool_getpass.c
+
+curl-tool_getpass.obj: tool_getpass.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_getpass.obj -MD -MP -MF $(DEPDIR)/curl-tool_getpass.Tpo -c -o curl-tool_getpass.obj `if test -f 'tool_getpass.c'; then $(CYGPATH_W) 'tool_getpass.c'; else $(CYGPATH_W) '$(srcdir)/tool_getpass.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_getpass.Tpo $(DEPDIR)/curl-tool_getpass.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_getpass.c' object='curl-tool_getpass.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_getpass.obj `if test -f 'tool_getpass.c'; then $(CYGPATH_W) 'tool_getpass.c'; else $(CYGPATH_W) '$(srcdir)/tool_getpass.c'; fi`
+
+curl-tool_help.o: tool_help.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_help.o -MD -MP -MF $(DEPDIR)/curl-tool_help.Tpo -c -o curl-tool_help.o `test -f 'tool_help.c' || echo '$(srcdir)/'`tool_help.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_help.Tpo $(DEPDIR)/curl-tool_help.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_help.c' object='curl-tool_help.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_help.o `test -f 'tool_help.c' || echo '$(srcdir)/'`tool_help.c
+
+curl-tool_help.obj: tool_help.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_help.obj -MD -MP -MF $(DEPDIR)/curl-tool_help.Tpo -c -o curl-tool_help.obj `if test -f 'tool_help.c'; then $(CYGPATH_W) 'tool_help.c'; else $(CYGPATH_W) '$(srcdir)/tool_help.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_help.Tpo $(DEPDIR)/curl-tool_help.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_help.c' object='curl-tool_help.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_help.obj `if test -f 'tool_help.c'; then $(CYGPATH_W) 'tool_help.c'; else $(CYGPATH_W) '$(srcdir)/tool_help.c'; fi`
+
+curl-tool_helpers.o: tool_helpers.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_helpers.o -MD -MP -MF $(DEPDIR)/curl-tool_helpers.Tpo -c -o curl-tool_helpers.o `test -f 'tool_helpers.c' || echo '$(srcdir)/'`tool_helpers.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_helpers.Tpo $(DEPDIR)/curl-tool_helpers.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_helpers.c' object='curl-tool_helpers.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_helpers.o `test -f 'tool_helpers.c' || echo '$(srcdir)/'`tool_helpers.c
+
+curl-tool_helpers.obj: tool_helpers.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_helpers.obj -MD -MP -MF $(DEPDIR)/curl-tool_helpers.Tpo -c -o curl-tool_helpers.obj `if test -f 'tool_helpers.c'; then $(CYGPATH_W) 'tool_helpers.c'; else $(CYGPATH_W) '$(srcdir)/tool_helpers.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_helpers.Tpo $(DEPDIR)/curl-tool_helpers.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_helpers.c' object='curl-tool_helpers.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_helpers.obj `if test -f 'tool_helpers.c'; then $(CYGPATH_W) 'tool_helpers.c'; else $(CYGPATH_W) '$(srcdir)/tool_helpers.c'; fi`
+
+curl-tool_homedir.o: tool_homedir.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_homedir.o -MD -MP -MF $(DEPDIR)/curl-tool_homedir.Tpo -c -o curl-tool_homedir.o `test -f 'tool_homedir.c' || echo '$(srcdir)/'`tool_homedir.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_homedir.Tpo $(DEPDIR)/curl-tool_homedir.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_homedir.c' object='curl-tool_homedir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_homedir.o `test -f 'tool_homedir.c' || echo '$(srcdir)/'`tool_homedir.c
+
+curl-tool_homedir.obj: tool_homedir.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_homedir.obj -MD -MP -MF $(DEPDIR)/curl-tool_homedir.Tpo -c -o curl-tool_homedir.obj `if test -f 'tool_homedir.c'; then $(CYGPATH_W) 'tool_homedir.c'; else $(CYGPATH_W) '$(srcdir)/tool_homedir.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_homedir.Tpo $(DEPDIR)/curl-tool_homedir.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_homedir.c' object='curl-tool_homedir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_homedir.obj `if test -f 'tool_homedir.c'; then $(CYGPATH_W) 'tool_homedir.c'; else $(CYGPATH_W) '$(srcdir)/tool_homedir.c'; fi`
+
+curl-tool_hugehelp.o: tool_hugehelp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_hugehelp.o -MD -MP -MF $(DEPDIR)/curl-tool_hugehelp.Tpo -c -o curl-tool_hugehelp.o `test -f 'tool_hugehelp.c' || echo '$(srcdir)/'`tool_hugehelp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_hugehelp.Tpo $(DEPDIR)/curl-tool_hugehelp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_hugehelp.c' object='curl-tool_hugehelp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_hugehelp.o `test -f 'tool_hugehelp.c' || echo '$(srcdir)/'`tool_hugehelp.c
+
+curl-tool_hugehelp.obj: tool_hugehelp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_hugehelp.obj -MD -MP -MF $(DEPDIR)/curl-tool_hugehelp.Tpo -c -o curl-tool_hugehelp.obj `if test -f 'tool_hugehelp.c'; then $(CYGPATH_W) 'tool_hugehelp.c'; else $(CYGPATH_W) '$(srcdir)/tool_hugehelp.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_hugehelp.Tpo $(DEPDIR)/curl-tool_hugehelp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_hugehelp.c' object='curl-tool_hugehelp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_hugehelp.obj `if test -f 'tool_hugehelp.c'; then $(CYGPATH_W) 'tool_hugehelp.c'; else $(CYGPATH_W) '$(srcdir)/tool_hugehelp.c'; fi`
+
+curl-tool_libinfo.o: tool_libinfo.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_libinfo.o -MD -MP -MF $(DEPDIR)/curl-tool_libinfo.Tpo -c -o curl-tool_libinfo.o `test -f 'tool_libinfo.c' || echo '$(srcdir)/'`tool_libinfo.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_libinfo.Tpo $(DEPDIR)/curl-tool_libinfo.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_libinfo.c' object='curl-tool_libinfo.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_libinfo.o `test -f 'tool_libinfo.c' || echo '$(srcdir)/'`tool_libinfo.c
+
+curl-tool_libinfo.obj: tool_libinfo.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_libinfo.obj -MD -MP -MF $(DEPDIR)/curl-tool_libinfo.Tpo -c -o curl-tool_libinfo.obj `if test -f 'tool_libinfo.c'; then $(CYGPATH_W) 'tool_libinfo.c'; else $(CYGPATH_W) '$(srcdir)/tool_libinfo.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_libinfo.Tpo $(DEPDIR)/curl-tool_libinfo.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_libinfo.c' object='curl-tool_libinfo.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_libinfo.obj `if test -f 'tool_libinfo.c'; then $(CYGPATH_W) 'tool_libinfo.c'; else $(CYGPATH_W) '$(srcdir)/tool_libinfo.c'; fi`
+
+curl-tool_main.o: tool_main.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_main.o -MD -MP -MF $(DEPDIR)/curl-tool_main.Tpo -c -o curl-tool_main.o `test -f 'tool_main.c' || echo '$(srcdir)/'`tool_main.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_main.Tpo $(DEPDIR)/curl-tool_main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_main.c' object='curl-tool_main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_main.o `test -f 'tool_main.c' || echo '$(srcdir)/'`tool_main.c
+
+curl-tool_main.obj: tool_main.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_main.obj -MD -MP -MF $(DEPDIR)/curl-tool_main.Tpo -c -o curl-tool_main.obj `if test -f 'tool_main.c'; then $(CYGPATH_W) 'tool_main.c'; else $(CYGPATH_W) '$(srcdir)/tool_main.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_main.Tpo $(DEPDIR)/curl-tool_main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_main.c' object='curl-tool_main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_main.obj `if test -f 'tool_main.c'; then $(CYGPATH_W) 'tool_main.c'; else $(CYGPATH_W) '$(srcdir)/tool_main.c'; fi`
+
+curl-tool_metalink.o: tool_metalink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_metalink.o -MD -MP -MF $(DEPDIR)/curl-tool_metalink.Tpo -c -o curl-tool_metalink.o `test -f 'tool_metalink.c' || echo '$(srcdir)/'`tool_metalink.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_metalink.Tpo $(DEPDIR)/curl-tool_metalink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_metalink.c' object='curl-tool_metalink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_metalink.o `test -f 'tool_metalink.c' || echo '$(srcdir)/'`tool_metalink.c
+
+curl-tool_metalink.obj: tool_metalink.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_metalink.obj -MD -MP -MF $(DEPDIR)/curl-tool_metalink.Tpo -c -o curl-tool_metalink.obj `if test -f 'tool_metalink.c'; then $(CYGPATH_W) 'tool_metalink.c'; else $(CYGPATH_W) '$(srcdir)/tool_metalink.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_metalink.Tpo $(DEPDIR)/curl-tool_metalink.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_metalink.c' object='curl-tool_metalink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_metalink.obj `if test -f 'tool_metalink.c'; then $(CYGPATH_W) 'tool_metalink.c'; else $(CYGPATH_W) '$(srcdir)/tool_metalink.c'; fi`
+
+curl-tool_mfiles.o: tool_mfiles.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_mfiles.o -MD -MP -MF $(DEPDIR)/curl-tool_mfiles.Tpo -c -o curl-tool_mfiles.o `test -f 'tool_mfiles.c' || echo '$(srcdir)/'`tool_mfiles.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_mfiles.Tpo $(DEPDIR)/curl-tool_mfiles.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_mfiles.c' object='curl-tool_mfiles.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_mfiles.o `test -f 'tool_mfiles.c' || echo '$(srcdir)/'`tool_mfiles.c
+
+curl-tool_mfiles.obj: tool_mfiles.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_mfiles.obj -MD -MP -MF $(DEPDIR)/curl-tool_mfiles.Tpo -c -o curl-tool_mfiles.obj `if test -f 'tool_mfiles.c'; then $(CYGPATH_W) 'tool_mfiles.c'; else $(CYGPATH_W) '$(srcdir)/tool_mfiles.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_mfiles.Tpo $(DEPDIR)/curl-tool_mfiles.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_mfiles.c' object='curl-tool_mfiles.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_mfiles.obj `if test -f 'tool_mfiles.c'; then $(CYGPATH_W) 'tool_mfiles.c'; else $(CYGPATH_W) '$(srcdir)/tool_mfiles.c'; fi`
+
+curl-tool_msgs.o: tool_msgs.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_msgs.o -MD -MP -MF $(DEPDIR)/curl-tool_msgs.Tpo -c -o curl-tool_msgs.o `test -f 'tool_msgs.c' || echo '$(srcdir)/'`tool_msgs.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_msgs.Tpo $(DEPDIR)/curl-tool_msgs.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_msgs.c' object='curl-tool_msgs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_msgs.o `test -f 'tool_msgs.c' || echo '$(srcdir)/'`tool_msgs.c
+
+curl-tool_msgs.obj: tool_msgs.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_msgs.obj -MD -MP -MF $(DEPDIR)/curl-tool_msgs.Tpo -c -o curl-tool_msgs.obj `if test -f 'tool_msgs.c'; then $(CYGPATH_W) 'tool_msgs.c'; else $(CYGPATH_W) '$(srcdir)/tool_msgs.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_msgs.Tpo $(DEPDIR)/curl-tool_msgs.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_msgs.c' object='curl-tool_msgs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_msgs.obj `if test -f 'tool_msgs.c'; then $(CYGPATH_W) 'tool_msgs.c'; else $(CYGPATH_W) '$(srcdir)/tool_msgs.c'; fi`
+
+curl-tool_operate.o: tool_operate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_operate.o -MD -MP -MF $(DEPDIR)/curl-tool_operate.Tpo -c -o curl-tool_operate.o `test -f 'tool_operate.c' || echo '$(srcdir)/'`tool_operate.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_operate.Tpo $(DEPDIR)/curl-tool_operate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_operate.c' object='curl-tool_operate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_operate.o `test -f 'tool_operate.c' || echo '$(srcdir)/'`tool_operate.c
+
+curl-tool_operate.obj: tool_operate.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_operate.obj -MD -MP -MF $(DEPDIR)/curl-tool_operate.Tpo -c -o curl-tool_operate.obj `if test -f 'tool_operate.c'; then $(CYGPATH_W) 'tool_operate.c'; else $(CYGPATH_W) '$(srcdir)/tool_operate.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_operate.Tpo $(DEPDIR)/curl-tool_operate.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_operate.c' object='curl-tool_operate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_operate.obj `if test -f 'tool_operate.c'; then $(CYGPATH_W) 'tool_operate.c'; else $(CYGPATH_W) '$(srcdir)/tool_operate.c'; fi`
+
+curl-tool_operhlp.o: tool_operhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_operhlp.o -MD -MP -MF $(DEPDIR)/curl-tool_operhlp.Tpo -c -o curl-tool_operhlp.o `test -f 'tool_operhlp.c' || echo '$(srcdir)/'`tool_operhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_operhlp.Tpo $(DEPDIR)/curl-tool_operhlp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_operhlp.c' object='curl-tool_operhlp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_operhlp.o `test -f 'tool_operhlp.c' || echo '$(srcdir)/'`tool_operhlp.c
+
+curl-tool_operhlp.obj: tool_operhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_operhlp.obj -MD -MP -MF $(DEPDIR)/curl-tool_operhlp.Tpo -c -o curl-tool_operhlp.obj `if test -f 'tool_operhlp.c'; then $(CYGPATH_W) 'tool_operhlp.c'; else $(CYGPATH_W) '$(srcdir)/tool_operhlp.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_operhlp.Tpo $(DEPDIR)/curl-tool_operhlp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_operhlp.c' object='curl-tool_operhlp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_operhlp.obj `if test -f 'tool_operhlp.c'; then $(CYGPATH_W) 'tool_operhlp.c'; else $(CYGPATH_W) '$(srcdir)/tool_operhlp.c'; fi`
+
+curl-tool_panykey.o: tool_panykey.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_panykey.o -MD -MP -MF $(DEPDIR)/curl-tool_panykey.Tpo -c -o curl-tool_panykey.o `test -f 'tool_panykey.c' || echo '$(srcdir)/'`tool_panykey.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_panykey.Tpo $(DEPDIR)/curl-tool_panykey.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_panykey.c' object='curl-tool_panykey.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_panykey.o `test -f 'tool_panykey.c' || echo '$(srcdir)/'`tool_panykey.c
+
+curl-tool_panykey.obj: tool_panykey.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_panykey.obj -MD -MP -MF $(DEPDIR)/curl-tool_panykey.Tpo -c -o curl-tool_panykey.obj `if test -f 'tool_panykey.c'; then $(CYGPATH_W) 'tool_panykey.c'; else $(CYGPATH_W) '$(srcdir)/tool_panykey.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_panykey.Tpo $(DEPDIR)/curl-tool_panykey.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_panykey.c' object='curl-tool_panykey.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_panykey.obj `if test -f 'tool_panykey.c'; then $(CYGPATH_W) 'tool_panykey.c'; else $(CYGPATH_W) '$(srcdir)/tool_panykey.c'; fi`
+
+curl-tool_paramhlp.o: tool_paramhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_paramhlp.o -MD -MP -MF $(DEPDIR)/curl-tool_paramhlp.Tpo -c -o curl-tool_paramhlp.o `test -f 'tool_paramhlp.c' || echo '$(srcdir)/'`tool_paramhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_paramhlp.Tpo $(DEPDIR)/curl-tool_paramhlp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_paramhlp.c' object='curl-tool_paramhlp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_paramhlp.o `test -f 'tool_paramhlp.c' || echo '$(srcdir)/'`tool_paramhlp.c
+
+curl-tool_paramhlp.obj: tool_paramhlp.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_paramhlp.obj -MD -MP -MF $(DEPDIR)/curl-tool_paramhlp.Tpo -c -o curl-tool_paramhlp.obj `if test -f 'tool_paramhlp.c'; then $(CYGPATH_W) 'tool_paramhlp.c'; else $(CYGPATH_W) '$(srcdir)/tool_paramhlp.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_paramhlp.Tpo $(DEPDIR)/curl-tool_paramhlp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_paramhlp.c' object='curl-tool_paramhlp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_paramhlp.obj `if test -f 'tool_paramhlp.c'; then $(CYGPATH_W) 'tool_paramhlp.c'; else $(CYGPATH_W) '$(srcdir)/tool_paramhlp.c'; fi`
+
+curl-tool_parsecfg.o: tool_parsecfg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_parsecfg.o -MD -MP -MF $(DEPDIR)/curl-tool_parsecfg.Tpo -c -o curl-tool_parsecfg.o `test -f 'tool_parsecfg.c' || echo '$(srcdir)/'`tool_parsecfg.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_parsecfg.Tpo $(DEPDIR)/curl-tool_parsecfg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_parsecfg.c' object='curl-tool_parsecfg.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_parsecfg.o `test -f 'tool_parsecfg.c' || echo '$(srcdir)/'`tool_parsecfg.c
+
+curl-tool_parsecfg.obj: tool_parsecfg.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_parsecfg.obj -MD -MP -MF $(DEPDIR)/curl-tool_parsecfg.Tpo -c -o curl-tool_parsecfg.obj `if test -f 'tool_parsecfg.c'; then $(CYGPATH_W) 'tool_parsecfg.c'; else $(CYGPATH_W) '$(srcdir)/tool_parsecfg.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_parsecfg.Tpo $(DEPDIR)/curl-tool_parsecfg.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_parsecfg.c' object='curl-tool_parsecfg.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_parsecfg.obj `if test -f 'tool_parsecfg.c'; then $(CYGPATH_W) 'tool_parsecfg.c'; else $(CYGPATH_W) '$(srcdir)/tool_parsecfg.c'; fi`
+
+curl-tool_strdup.o: tool_strdup.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_strdup.o -MD -MP -MF $(DEPDIR)/curl-tool_strdup.Tpo -c -o curl-tool_strdup.o `test -f 'tool_strdup.c' || echo '$(srcdir)/'`tool_strdup.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_strdup.Tpo $(DEPDIR)/curl-tool_strdup.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_strdup.c' object='curl-tool_strdup.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_strdup.o `test -f 'tool_strdup.c' || echo '$(srcdir)/'`tool_strdup.c
+
+curl-tool_strdup.obj: tool_strdup.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_strdup.obj -MD -MP -MF $(DEPDIR)/curl-tool_strdup.Tpo -c -o curl-tool_strdup.obj `if test -f 'tool_strdup.c'; then $(CYGPATH_W) 'tool_strdup.c'; else $(CYGPATH_W) '$(srcdir)/tool_strdup.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_strdup.Tpo $(DEPDIR)/curl-tool_strdup.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_strdup.c' object='curl-tool_strdup.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_strdup.obj `if test -f 'tool_strdup.c'; then $(CYGPATH_W) 'tool_strdup.c'; else $(CYGPATH_W) '$(srcdir)/tool_strdup.c'; fi`
+
+curl-tool_setopt.o: tool_setopt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_setopt.o -MD -MP -MF $(DEPDIR)/curl-tool_setopt.Tpo -c -o curl-tool_setopt.o `test -f 'tool_setopt.c' || echo '$(srcdir)/'`tool_setopt.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_setopt.Tpo $(DEPDIR)/curl-tool_setopt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_setopt.c' object='curl-tool_setopt.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_setopt.o `test -f 'tool_setopt.c' || echo '$(srcdir)/'`tool_setopt.c
+
+curl-tool_setopt.obj: tool_setopt.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_setopt.obj -MD -MP -MF $(DEPDIR)/curl-tool_setopt.Tpo -c -o curl-tool_setopt.obj `if test -f 'tool_setopt.c'; then $(CYGPATH_W) 'tool_setopt.c'; else $(CYGPATH_W) '$(srcdir)/tool_setopt.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_setopt.Tpo $(DEPDIR)/curl-tool_setopt.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_setopt.c' object='curl-tool_setopt.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_setopt.obj `if test -f 'tool_setopt.c'; then $(CYGPATH_W) 'tool_setopt.c'; else $(CYGPATH_W) '$(srcdir)/tool_setopt.c'; fi`
+
+curl-tool_sleep.o: tool_sleep.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_sleep.o -MD -MP -MF $(DEPDIR)/curl-tool_sleep.Tpo -c -o curl-tool_sleep.o `test -f 'tool_sleep.c' || echo '$(srcdir)/'`tool_sleep.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_sleep.Tpo $(DEPDIR)/curl-tool_sleep.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_sleep.c' object='curl-tool_sleep.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_sleep.o `test -f 'tool_sleep.c' || echo '$(srcdir)/'`tool_sleep.c
+
+curl-tool_sleep.obj: tool_sleep.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_sleep.obj -MD -MP -MF $(DEPDIR)/curl-tool_sleep.Tpo -c -o curl-tool_sleep.obj `if test -f 'tool_sleep.c'; then $(CYGPATH_W) 'tool_sleep.c'; else $(CYGPATH_W) '$(srcdir)/tool_sleep.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_sleep.Tpo $(DEPDIR)/curl-tool_sleep.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_sleep.c' object='curl-tool_sleep.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_sleep.obj `if test -f 'tool_sleep.c'; then $(CYGPATH_W) 'tool_sleep.c'; else $(CYGPATH_W) '$(srcdir)/tool_sleep.c'; fi`
+
+curl-tool_urlglob.o: tool_urlglob.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_urlglob.o -MD -MP -MF $(DEPDIR)/curl-tool_urlglob.Tpo -c -o curl-tool_urlglob.o `test -f 'tool_urlglob.c' || echo '$(srcdir)/'`tool_urlglob.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_urlglob.Tpo $(DEPDIR)/curl-tool_urlglob.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_urlglob.c' object='curl-tool_urlglob.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_urlglob.o `test -f 'tool_urlglob.c' || echo '$(srcdir)/'`tool_urlglob.c
+
+curl-tool_urlglob.obj: tool_urlglob.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_urlglob.obj -MD -MP -MF $(DEPDIR)/curl-tool_urlglob.Tpo -c -o curl-tool_urlglob.obj `if test -f 'tool_urlglob.c'; then $(CYGPATH_W) 'tool_urlglob.c'; else $(CYGPATH_W) '$(srcdir)/tool_urlglob.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_urlglob.Tpo $(DEPDIR)/curl-tool_urlglob.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_urlglob.c' object='curl-tool_urlglob.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_urlglob.obj `if test -f 'tool_urlglob.c'; then $(CYGPATH_W) 'tool_urlglob.c'; else $(CYGPATH_W) '$(srcdir)/tool_urlglob.c'; fi`
+
+curl-tool_util.o: tool_util.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_util.o -MD -MP -MF $(DEPDIR)/curl-tool_util.Tpo -c -o curl-tool_util.o `test -f 'tool_util.c' || echo '$(srcdir)/'`tool_util.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_util.Tpo $(DEPDIR)/curl-tool_util.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_util.c' object='curl-tool_util.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_util.o `test -f 'tool_util.c' || echo '$(srcdir)/'`tool_util.c
+
+curl-tool_util.obj: tool_util.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_util.obj -MD -MP -MF $(DEPDIR)/curl-tool_util.Tpo -c -o curl-tool_util.obj `if test -f 'tool_util.c'; then $(CYGPATH_W) 'tool_util.c'; else $(CYGPATH_W) '$(srcdir)/tool_util.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_util.Tpo $(DEPDIR)/curl-tool_util.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_util.c' object='curl-tool_util.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_util.obj `if test -f 'tool_util.c'; then $(CYGPATH_W) 'tool_util.c'; else $(CYGPATH_W) '$(srcdir)/tool_util.c'; fi`
+
+curl-tool_vms.o: tool_vms.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_vms.o -MD -MP -MF $(DEPDIR)/curl-tool_vms.Tpo -c -o curl-tool_vms.o `test -f 'tool_vms.c' || echo '$(srcdir)/'`tool_vms.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_vms.Tpo $(DEPDIR)/curl-tool_vms.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_vms.c' object='curl-tool_vms.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_vms.o `test -f 'tool_vms.c' || echo '$(srcdir)/'`tool_vms.c
+
+curl-tool_vms.obj: tool_vms.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_vms.obj -MD -MP -MF $(DEPDIR)/curl-tool_vms.Tpo -c -o curl-tool_vms.obj `if test -f 'tool_vms.c'; then $(CYGPATH_W) 'tool_vms.c'; else $(CYGPATH_W) '$(srcdir)/tool_vms.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_vms.Tpo $(DEPDIR)/curl-tool_vms.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_vms.c' object='curl-tool_vms.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_vms.obj `if test -f 'tool_vms.c'; then $(CYGPATH_W) 'tool_vms.c'; else $(CYGPATH_W) '$(srcdir)/tool_vms.c'; fi`
+
+curl-tool_writeout.o: tool_writeout.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_writeout.o -MD -MP -MF $(DEPDIR)/curl-tool_writeout.Tpo -c -o curl-tool_writeout.o `test -f 'tool_writeout.c' || echo '$(srcdir)/'`tool_writeout.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_writeout.Tpo $(DEPDIR)/curl-tool_writeout.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_writeout.c' object='curl-tool_writeout.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_writeout.o `test -f 'tool_writeout.c' || echo '$(srcdir)/'`tool_writeout.c
+
+curl-tool_writeout.obj: tool_writeout.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_writeout.obj -MD -MP -MF $(DEPDIR)/curl-tool_writeout.Tpo -c -o curl-tool_writeout.obj `if test -f 'tool_writeout.c'; then $(CYGPATH_W) 'tool_writeout.c'; else $(CYGPATH_W) '$(srcdir)/tool_writeout.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_writeout.Tpo $(DEPDIR)/curl-tool_writeout.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_writeout.c' object='curl-tool_writeout.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_writeout.obj `if test -f 'tool_writeout.c'; then $(CYGPATH_W) 'tool_writeout.c'; else $(CYGPATH_W) '$(srcdir)/tool_writeout.c'; fi`
+
+curl-tool_xattr.o: tool_xattr.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_xattr.o -MD -MP -MF $(DEPDIR)/curl-tool_xattr.Tpo -c -o curl-tool_xattr.o `test -f 'tool_xattr.c' || echo '$(srcdir)/'`tool_xattr.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_xattr.Tpo $(DEPDIR)/curl-tool_xattr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_xattr.c' object='curl-tool_xattr.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_xattr.o `test -f 'tool_xattr.c' || echo '$(srcdir)/'`tool_xattr.c
+
+curl-tool_xattr.obj: tool_xattr.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT curl-tool_xattr.obj -MD -MP -MF $(DEPDIR)/curl-tool_xattr.Tpo -c -o curl-tool_xattr.obj `if test -f 'tool_xattr.c'; then $(CYGPATH_W) 'tool_xattr.c'; else $(CYGPATH_W) '$(srcdir)/tool_xattr.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/curl-tool_xattr.Tpo $(DEPDIR)/curl-tool_xattr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tool_xattr.c' object='curl-tool_xattr.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o curl-tool_xattr.obj `if test -f 'tool_xattr.c'; then $(CYGPATH_W) 'tool_xattr.c'; else $(CYGPATH_W) '$(srcdir)/tool_xattr.c'; fi`
+
+../lib/curl-strtoofft.o: ../lib/strtoofft.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-strtoofft.o -MD -MP -MF ../lib/$(DEPDIR)/curl-strtoofft.Tpo -c -o ../lib/curl-strtoofft.o `test -f '../lib/strtoofft.c' || echo '$(srcdir)/'`../lib/strtoofft.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-strtoofft.Tpo ../lib/$(DEPDIR)/curl-strtoofft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/strtoofft.c' object='../lib/curl-strtoofft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../lib/curl-strtoofft.o `test -f '../lib/strtoofft.c' || echo '$(srcdir)/'`../lib/strtoofft.c
+
+../lib/curl-strtoofft.obj: ../lib/strtoofft.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-strtoofft.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-strtoofft.Tpo -c -o ../lib/curl-strtoofft.obj `if test -f '../lib/strtoofft.c'; then $(CYGPATH_W) '../lib/strtoofft.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strtoofft.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-strtoofft.Tpo ../lib/$(DEPDIR)/curl-strtoofft.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/strtoofft.c' object='../lib/curl-strtoofft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../lib/curl-strtoofft.obj `if test -f '../lib/strtoofft.c'; then $(CYGPATH_W) '../lib/strtoofft.c'; else $(CYGPATH_W) '$(srcdir)/../lib/strtoofft.c'; fi`
+
+../lib/curl-nonblock.o: ../lib/nonblock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-nonblock.o -MD -MP -MF ../lib/$(DEPDIR)/curl-nonblock.Tpo -c -o ../lib/curl-nonblock.o `test -f '../lib/nonblock.c' || echo '$(srcdir)/'`../lib/nonblock.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-nonblock.Tpo ../lib/$(DEPDIR)/curl-nonblock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/nonblock.c' object='../lib/curl-nonblock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../lib/curl-nonblock.o `test -f '../lib/nonblock.c' || echo '$(srcdir)/'`../lib/nonblock.c
+
+../lib/curl-nonblock.obj: ../lib/nonblock.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-nonblock.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-nonblock.Tpo -c -o ../lib/curl-nonblock.obj `if test -f '../lib/nonblock.c'; then $(CYGPATH_W) '../lib/nonblock.c'; else $(CYGPATH_W) '$(srcdir)/../lib/nonblock.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-nonblock.Tpo ../lib/$(DEPDIR)/curl-nonblock.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/nonblock.c' object='../lib/curl-nonblock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../lib/curl-nonblock.obj `if test -f '../lib/nonblock.c'; then $(CYGPATH_W) '../lib/nonblock.c'; else $(CYGPATH_W) '$(srcdir)/../lib/nonblock.c'; fi`
+
+../lib/curl-warnless.o: ../lib/warnless.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-warnless.o -MD -MP -MF ../lib/$(DEPDIR)/curl-warnless.Tpo -c -o ../lib/curl-warnless.o `test -f '../lib/warnless.c' || echo '$(srcdir)/'`../lib/warnless.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-warnless.Tpo ../lib/$(DEPDIR)/curl-warnless.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/warnless.c' object='../lib/curl-warnless.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../lib/curl-warnless.o `test -f '../lib/warnless.c' || echo '$(srcdir)/'`../lib/warnless.c
+
+../lib/curl-warnless.obj: ../lib/warnless.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ../lib/curl-warnless.obj -MD -MP -MF ../lib/$(DEPDIR)/curl-warnless.Tpo -c -o ../lib/curl-warnless.obj `if test -f '../lib/warnless.c'; then $(CYGPATH_W) '../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../lib/warnless.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/curl-warnless.Tpo ../lib/$(DEPDIR)/curl-warnless.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='../lib/warnless.c' object='../lib/curl-warnless.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(curl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ../lib/curl-warnless.obj `if test -f '../lib/warnless.c'; then $(CYGPATH_W) '../lib/warnless.c'; else $(CYGPATH_W) '$(srcdir)/../lib/warnless.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+	-rm -rf ../lib/.libs ../lib/_libs
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	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-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	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"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+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: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) check-am
+@CURLDEBUG_FALSE@all-local:
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) all-local
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: $(BUILT_SOURCES)
+	$(MAKE) $(AM_MAKEFLAGS) 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:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+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)
+	-rm -f ../lib/$(DEPDIR)/$(am__dirstamp)
+	-rm -f ../lib/$(am__dirstamp)
+
+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-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-libtool \
+	clean-noinstLTLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ../lib/$(DEPDIR) ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+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-binPROGRAMS
+
+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 -rf ../lib/$(DEPDIR) ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: all check install install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \
+	clean-binPROGRAMS clean-generic clean-libtool \
+	clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-binPROGRAMS 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-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
+
+.PRECIOUS: Makefile
+
+
+# remove targets if the command fails
+.DELETE_ON_ERROR:
+
+@CODE_COVERAGE_RULES@
+
+# Here are the stuff to create a built-in manual
+
+@USE_MANUAL_TRUE@$(MANPAGE):
+@USE_MANUAL_TRUE@	cd $(top_builddir)/docs && $(MAKE)
+
+# This generates the tool_hugehelp.c file in both uncompressed and
+# compressed formats.
+@HAVE_LIBZ_TRUE@@USE_MANUAL_TRUE@$(HUGE): $(MANPAGE) $(README) $(MKHELP)
+@HAVE_LIBZ_TRUE@@USE_MANUAL_TRUE@	echo '#include "tool_setup.h"' > $(HUGE)
+@HAVE_LIBZ_TRUE@@USE_MANUAL_TRUE@	echo '#ifndef HAVE_LIBZ' >> $(HUGE)
+@HAVE_LIBZ_TRUE@@USE_MANUAL_TRUE@	$(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) $(README) >> $(HUGE)
+@HAVE_LIBZ_TRUE@@USE_MANUAL_TRUE@	echo '#else' >> $(HUGE)
+@HAVE_LIBZ_TRUE@@USE_MANUAL_TRUE@	$(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) -c $(README) >> $(HUGE)
+@HAVE_LIBZ_TRUE@@USE_MANUAL_TRUE@	echo '#endif /* HAVE_LIBZ */' >> $(HUGE)
+# This generates the tool_hugehelp.c file uncompressed only
+@HAVE_LIBZ_FALSE@@USE_MANUAL_TRUE@$(HUGE): $(MANPAGE) $(README) mkhelp.pl
+@HAVE_LIBZ_FALSE@@USE_MANUAL_TRUE@	echo '#include "tool_setup.h"' > $(HUGE)
+@HAVE_LIBZ_FALSE@@USE_MANUAL_TRUE@	$(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) $(README) >> $(HUGE)
+
+# built-in manual has been disabled, make a blank file
+@USE_MANUAL_FALSE@$(HUGE):
+@USE_MANUAL_FALSE@	echo "/* built-in manual is disabled, blank function */" > $(HUGE)
+@USE_MANUAL_FALSE@	echo '#include "tool_hugehelp.h"' >> $(HUGE)
+@USE_MANUAL_FALSE@	echo "void hugehelp(void) {}" >>$(HUGE)
+
+# ignore tool_hugehelp.c since it is generated source code and it plays
+# by slightly different rules!
+checksrc:
+	@PERL@ $(top_srcdir)/lib/checksrc.pl -D$(srcdir)        \
+	-W$(srcdir)/tool_hugehelp.c $(srcdir)/*.[ch]
+
+# for debug builds, we scan the sources on all regular make invokes
+@CURLDEBUG_TRUE@all-local: checksrc
+
+# 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/ap/lib/libcurl/curl-7.54.1/src/Makefile.inc b/ap/lib/libcurl/curl-7.54.1/src/Makefile.inc
new file mode 100644
index 0000000..5074f8f
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/Makefile.inc
@@ -0,0 +1,111 @@
+# ./src/Makefile.inc
+# Using the backslash as line continuation character might be problematic
+# with some make flavours, as Watcom's wmake showed us already. If we
+# ever want to change this in a portable manner then we should consider
+# this idea (posted to the libcurl list by Adam Kellas):
+# CSRC1 = file1.c file2.c file3.c
+# CSRC2 = file4.c file5.c file6.c
+# CSOURCES = $(CSRC1) $(CSRC2)
+
+# libcurl has sources that provide functions named curlx_* that aren't part of
+# the official API, but we re-use the code here to avoid duplication.
+CURLX_CFILES = \
+	../lib/strtoofft.c \
+	../lib/nonblock.c \
+	../lib/warnless.c
+
+CURLX_HFILES = \
+	../lib/curl_setup.h \
+	../lib/strtoofft.h \
+	../lib/nonblock.h \
+	../lib/warnless.h
+
+CURL_CFILES = \
+	slist_wc.c \
+	tool_binmode.c \
+	tool_bname.c \
+	tool_cb_dbg.c \
+	tool_cb_hdr.c \
+	tool_cb_prg.c \
+	tool_cb_rea.c \
+	tool_cb_see.c \
+	tool_cb_wrt.c \
+	tool_cfgable.c \
+	tool_convert.c \
+	tool_dirhie.c \
+	tool_doswin.c \
+	tool_easysrc.c \
+	tool_formparse.c \
+	tool_getparam.c \
+	tool_getpass.c \
+	tool_help.c \
+	tool_helpers.c \
+	tool_homedir.c \
+	tool_hugehelp.c \
+	tool_libinfo.c \
+	tool_main.c \
+	tool_metalink.c \
+	tool_mfiles.c \
+	tool_msgs.c \
+	tool_operate.c \
+	tool_operhlp.c \
+	tool_panykey.c \
+	tool_paramhlp.c \
+	tool_parsecfg.c \
+	tool_strdup.c \
+	tool_setopt.c \
+	tool_sleep.c \
+	tool_urlglob.c \
+	tool_util.c \
+	tool_vms.c \
+	tool_writeout.c \
+	tool_xattr.c
+
+CURL_HFILES = \
+	slist_wc.h \
+	tool_binmode.h \
+	tool_bname.h \
+	tool_cb_dbg.h \
+	tool_cb_hdr.h \
+	tool_cb_prg.h \
+	tool_cb_rea.h \
+	tool_cb_see.h \
+	tool_cb_wrt.h \
+	tool_cfgable.h \
+	tool_convert.h \
+	tool_dirhie.h \
+	tool_doswin.h \
+	tool_easysrc.h \
+	tool_formparse.h \
+	tool_getparam.h \
+	tool_getpass.h \
+	tool_help.h \
+	tool_helpers.h \
+	tool_homedir.h \
+	tool_hugehelp.h \
+	tool_libinfo.h \
+	tool_main.h \
+	tool_metalink.h \
+	tool_mfiles.h \
+	tool_msgs.h \
+	tool_operate.h \
+	tool_operhlp.h \
+	tool_panykey.h \
+	tool_paramhlp.h \
+	tool_parsecfg.h \
+	tool_sdecls.h \
+	tool_setopt.h \
+	tool_setup.h \
+	tool_sleep.h \
+	tool_strdup.h \
+	tool_urlglob.h \
+	tool_util.h \
+	tool_version.h \
+	tool_vms.h \
+	tool_writeout.h \
+	tool_xattr.h
+
+CURL_RCFILES = curl.rc
+
+# curl_SOURCES is special and gets assigned in src/Makefile.am
+CURL_FILES = $(CURL_CFILES) $(CURLX_CFILES) $(CURL_HFILES)
diff --git a/ap/lib/libcurl/curl-7.54.1/src/Makefile.m32 b/ap/lib/libcurl/curl-7.54.1/src/Makefile.m32
new file mode 100644
index 0000000..40852e5
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/Makefile.m32
@@ -0,0 +1,377 @@
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1999 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.haxx.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+#***************************************************************************
+
+###########################################################################
+#
+## Makefile for building curl.exe with MingW (GCC-3.2 or later)
+## and optionally OpenSSL (1.0.2a), libssh2 (1.5), zlib (1.2.8), librtmp (2.4)
+##
+## Usage:   mingw32-make -f Makefile.m32 CFG=-feature1[-feature2][-feature3][...]
+## Example: mingw32-make -f Makefile.m32 CFG=-zlib-ssl-sspi-winidn
+##
+## Hint: you can also set environment vars to control the build, f.e.:
+## set ZLIB_PATH=c:/zlib-1.2.8
+## set ZLIB=1
+#
+###########################################################################
+
+# Edit the path below to point to the base of your Zlib sources.
+ifndef ZLIB_PATH
+ZLIB_PATH = ../../zlib-1.2.8
+endif
+# Edit the path below to point to the base of your OpenSSL package.
+ifndef OPENSSL_PATH
+OPENSSL_PATH = ../../openssl-1.0.2a
+endif
+# Edit the path below to point to the base of your LibSSH2 package.
+ifndef LIBSSH2_PATH
+LIBSSH2_PATH = ../../libssh2-1.5.0
+endif
+# Edit the path below to point to the base of your librtmp package.
+ifndef LIBRTMP_PATH
+LIBRTMP_PATH = ../../librtmp-2.4
+endif
+# Edit the path below to point to the base of your libmetalink package.
+ifndef LIBMETALINK_PATH
+LIBMETALINK_PATH = ../../libmetalink-0.1.3
+endif
+# Edit the path below to point to the base of your libexpat package.
+ifndef LIBEXPAT_PATH
+LIBEXPAT_PATH = ../../expat-2.1.0
+endif
+# Edit the path below to point to the base of your libxml2 package.
+ifndef LIBXML2_PATH
+LIBXML2_PATH = ../../libxml2-2.9.2
+endif
+# Edit the path below to point to the base of your libidn package.
+ifndef LIBIDN_PATH
+LIBIDN_PATH = ../../libidn-1.32
+endif
+# Edit the path below to point to the base of your MS IDN package.
+# Microsoft Internationalized Domain Names (IDN) Mitigation APIs 1.1
+# https://www.microsoft.com/en-us/download/details.aspx?id=734
+ifndef WINIDN_PATH
+WINIDN_PATH = ../../Microsoft IDN Mitigation APIs
+endif
+# Edit the path below to point to the base of your Novell LDAP NDK.
+ifndef LDAP_SDK
+LDAP_SDK = c:/novell/ndk/cldapsdk/win32
+endif
+# Edit the path below to point to the base of your nghttp2 package.
+ifndef NGHTTP2_PATH
+NGHTTP2_PATH = ../../nghttp2-1.0.0
+endif
+
+PROOT = ..
+
+# Edit the path below to point to the base of your c-ares package.
+ifndef LIBCARES_PATH
+LIBCARES_PATH = $(PROOT)/ares
+endif
+
+CC	= $(CROSSPREFIX)gcc
+CFLAGS	= $(CURL_CFLAG_EXTRAS) -g -O2 -Wall
+CFLAGS	+= -fno-strict-aliasing
+# comment LDFLAGS below to keep debug info
+LDFLAGS	= $(CURL_LDFLAG_EXTRAS) $(CURL_LDFLAG_EXTRAS_EXE) -s
+AR	= $(CROSSPREFIX)ar
+RC	= $(CROSSPREFIX)windres
+RCFLAGS	= --include-dir=$(PROOT)/include -O COFF
+STRIP	= $(CROSSPREFIX)strip -g
+
+# We may need these someday
+# PERL = perl
+# NROFF = nroff
+
+# Set environment var ARCH to your architecture to override autodetection.
+ifndef ARCH
+ifeq ($(findstring x86_64,$(shell $(CC) -dumpmachine)),x86_64)
+ARCH	= w64
+else
+ARCH	= w32
+endif
+endif
+
+ifeq ($(ARCH),w64)
+CFLAGS  += -m64 -D_AMD64_
+LDFLAGS += -m64
+RCFLAGS += -F pe-x86-64
+else
+CFLAGS  += -m32
+LDFLAGS += -m32
+RCFLAGS += -F pe-i386
+endif
+
+# Platform-dependent helper tool macros
+ifeq ($(findstring /sh,$(SHELL)),/sh)
+DEL	= rm -f $1
+RMDIR	= rm -fr $1
+MKDIR	= mkdir -p $1
+COPY	= -cp -afv $1 $2
+#COPYR	= -cp -afr $1/* $2
+COPYR	= -rsync -aC $1/* $2
+TOUCH	= touch $1
+CAT	= cat
+ECHONL	= echo ""
+DL	= '
+else
+ifeq "$(OS)" "Windows_NT"
+DEL	= -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR	= -rd 2>NUL /q /s $(subst /,\,$1)
+else
+DEL	= -del 2>NUL $(subst /,\,$1)
+RMDIR	= -deltree 2>NUL /y $(subst /,\,$1)
+endif
+MKDIR	= -md 2>NUL $(subst /,\,$1)
+COPY	= -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR	= -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH	= copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT	= type
+ECHONL	= $(ComSpec) /c echo.
+endif
+
+########################################################
+## Nothing more to do below this line!
+
+ifeq ($(findstring -dyn,$(CFG)),-dyn)
+DYN = 1
+endif
+ifeq ($(findstring -ares,$(CFG)),-ares)
+ARES = 1
+endif
+ifeq ($(findstring -sync,$(CFG)),-sync)
+SYNC = 1
+endif
+ifeq ($(findstring -rtmp,$(CFG)),-rtmp)
+RTMP = 1
+SSL = 1
+ZLIB = 1
+endif
+ifeq ($(findstring -ssh2,$(CFG)),-ssh2)
+SSH2 = 1
+ifneq ($(findstring -winssl,$(CFG)),-winssl)
+SSL = 1
+endif
+ZLIB = 1
+endif
+ifeq ($(findstring -ssl,$(CFG)),-ssl)
+SSL = 1
+endif
+ifeq ($(findstring -zlib,$(CFG)),-zlib)
+ZLIB = 1
+endif
+ifeq ($(findstring -idn,$(CFG)),-idn)
+IDN = 1
+endif
+ifeq ($(findstring -winidn,$(CFG)),-winidn)
+WINIDN = 1
+endif
+ifeq ($(findstring -sspi,$(CFG)),-sspi)
+SSPI = 1
+endif
+ifeq ($(findstring -ldaps,$(CFG)),-ldaps)
+LDAPS = 1
+endif
+ifeq ($(findstring -ipv6,$(CFG)),-ipv6)
+IPV6 = 1
+endif
+ifeq ($(findstring -metalink,$(CFG)),-metalink)
+METALINK = 1
+endif
+ifeq ($(findstring -winssl,$(CFG)),-winssl)
+WINSSL = 1
+SSPI = 1
+endif
+ifeq ($(findstring -nghttp2,$(CFG)),-nghttp2)
+NGHTTP2 = 1
+endif
+
+INCLUDES = -I. -I../include -I../lib
+
+ifdef DYN
+  curl_DEPENDENCIES = $(PROOT)/lib/libcurldll.a $(PROOT)/lib/libcurl.dll
+  curl_LDADD = -L$(PROOT)/lib -lcurldll
+else
+  curl_DEPENDENCIES = $(PROOT)/lib/libcurl.a
+  curl_LDADD = -L$(PROOT)/lib -lcurl
+  CFLAGS += -DCURL_STATICLIB
+  LDFLAGS += -static
+endif
+ifdef SYNC
+  CFLAGS += -DUSE_SYNC_DNS
+else
+  ifdef ARES
+    ifndef DYN
+      curl_DEPENDENCIES += $(LIBCARES_PATH)/libcares.a
+    endif
+    CFLAGS += -DUSE_ARES -DCARES_STATICLIB
+    curl_LDADD += -L"$(LIBCARES_PATH)" -lcares
+  endif
+endif
+ifdef RTMP
+  CFLAGS += -DUSE_LIBRTMP
+  curl_LDADD += -L"$(LIBRTMP_PATH)/librtmp" -lrtmp -lwinmm
+endif
+ifdef NGHTTP2
+  CFLAGS += -DUSE_NGHTTP2
+  curl_LDADD += -L"$(NGHTTP2_PATH)/lib" -lnghttp2
+endif
+ifdef SSH2
+  CFLAGS += -DUSE_LIBSSH2 -DHAVE_LIBSSH2_H
+  curl_LDADD += -L"$(LIBSSH2_PATH)/win32" -lssh2
+  ifdef WINSSL
+    ifndef DYN
+      curl_LDADD += -lbcrypt -lcrypt32
+    endif
+  endif
+endif
+ifdef SSL
+  ifndef OPENSSL_INCLUDE
+    ifeq "$(wildcard $(OPENSSL_PATH)/outinc)" "$(OPENSSL_PATH)/outinc"
+      OPENSSL_INCLUDE = $(OPENSSL_PATH)/outinc
+    endif
+    ifeq "$(wildcard $(OPENSSL_PATH)/include)" "$(OPENSSL_PATH)/include"
+      OPENSSL_INCLUDE = $(OPENSSL_PATH)/include
+    endif
+  endif
+  ifneq "$(wildcard $(OPENSSL_INCLUDE)/openssl/opensslv.h)" "$(OPENSSL_INCLUDE)/openssl/opensslv.h"
+  $(error Invalid path to OpenSSL package: $(OPENSSL_PATH))
+  endif
+  ifndef OPENSSL_LIBPATH
+    OPENSSL_LIBS = -lssl -lcrypto
+    ifeq "$(wildcard $(OPENSSL_PATH)/out)" "$(OPENSSL_PATH)/out"
+      OPENSSL_LIBPATH = $(OPENSSL_PATH)/out
+      ifdef DYN
+        OPENSSL_LIBS = -lssl32 -leay32
+      endif
+    endif
+    ifeq "$(wildcard $(OPENSSL_PATH)/lib)" "$(OPENSSL_PATH)/lib"
+      OPENSSL_LIBPATH = $(OPENSSL_PATH)/lib
+    endif
+  endif
+  ifndef DYN
+    OPENSSL_LIBS += -lgdi32 -lcrypt32
+  endif
+  INCLUDES += -I"$(OPENSSL_INCLUDE)"
+  CFLAGS += -DUSE_OPENSSL
+  curl_LDADD += -L"$(OPENSSL_LIBPATH)" $(OPENSSL_LIBS)
+else
+ifdef WINSSL
+  curl_LDADD += -lcrypt32
+endif
+endif
+ifdef ZLIB
+  INCLUDES += -I"$(ZLIB_PATH)"
+  CFLAGS += -DHAVE_LIBZ -DHAVE_ZLIB_H
+  curl_LDADD += -L"$(ZLIB_PATH)" -lz
+endif
+ifdef IDN
+  CFLAGS += -DUSE_LIBIDN
+  curl_LDADD += -L"$(LIBIDN_PATH)/lib" -lidn
+else
+ifdef WINIDN
+  CFLAGS += -DUSE_WIN32_IDN
+  curl_LDADD += -L"$(WINIDN_PATH)" -lnormaliz
+endif
+endif
+ifdef METALINK
+  INCLUDES += -I"$(LIBMETALINK_PATH)/include"
+  CFLAGS += -DUSE_METALINK
+  curl_LDADD += -L"$(LIBMETALINK_PATH)/lib" -lmetalink
+  ifndef DYN
+    ifeq ($(findstring libexpat_metalink_parser.o,$(shell $(AR) t "$(LIBMETALINK_PATH)/lib/libmetalink.a")),libexpat_metalink_parser.o)
+      curl_LDADD += -L"$(LIBEXPAT_PATH)/lib" -lexpat
+    else
+      curl_LDADD += -L"$(LIBXML2_PATH)/lib" -lxml2
+    endif
+  endif
+endif
+ifdef SSPI
+  CFLAGS += -DUSE_WINDOWS_SSPI
+  ifdef WINSSL
+    CFLAGS += -DUSE_SCHANNEL
+  endif
+endif
+ifdef IPV6
+  CFLAGS += -DENABLE_IPV6 -D_WIN32_WINNT=0x0501
+endif
+ifdef LDAPS
+  CFLAGS += -DHAVE_LDAP_SSL
+endif
+ifdef USE_LDAP_NOVELL
+  CFLAGS += -DCURL_HAS_NOVELL_LDAPSDK
+  curl_LDADD += -L"$(LDAP_SDK)/lib/mscvc" -lldapsdk -lldapssl -lldapx
+endif
+ifdef USE_LDAP_OPENLDAP
+  CFLAGS += -DCURL_HAS_OPENLDAP_LDAPSDK
+  curl_LDADD += -L"$(LDAP_SDK)/lib" -lldap -llber
+endif
+ifndef USE_LDAP_NOVELL
+ifndef USE_LDAP_OPENLDAP
+curl_LDADD += -lwldap32
+endif
+endif
+curl_LDADD += -lws2_32
+
+# Makefile.inc provides the CSOURCES and HHEADERS defines
+include Makefile.inc
+
+curl_PROGRAMS = curl.exe
+curl_OBJECTS := $(patsubst %.c,%.o,$(strip $(CURL_CFILES)))
+curlx_OBJECTS := $(patsubst %.c,%.o,$(notdir $(strip $(CURLX_CFILES))))
+ifdef DYN
+curl_OBJECTS += $(curlx_OBJECTS)
+vpath %.c $(PROOT)/lib
+endif
+
+RESOURCE = curl.res
+
+
+all: $(curl_PROGRAMS)
+
+curl.exe: $(RESOURCE) $(curl_OBJECTS) $(curl_DEPENDENCIES)
+	$(call DEL, $@)
+	$(CC) $(LDFLAGS) -o $@ $< $(curl_OBJECTS) $(curl_LDADD)
+
+# We don't have nroff normally under win32
+# tool_hugehelp.c: $(PROOT)/docs/MANUAL $(PROOT)/docs/curl.1 mkhelp.pl
+#	@$(call DEL, tool_hugehelp.c)
+# 	$(NROFF) -man $(PROOT)/docs/curl.1 | $(PERL) mkhelp.pl $(PROOT)/docs/MANUAL > tool_hugehelp.c
+
+tool_hugehelp.c:
+	@echo Creating $@
+	@$(call COPY, $@.cvs, $@)
+
+%.o: %.c
+	$(CC) $(INCLUDES) $(CFLAGS) -c $<
+
+%.res: %.rc
+	$(RC) $(RCFLAGS) -i $< -o $@
+
+clean:
+ifeq "$(wildcard tool_hugehelp.c.cvs)" "tool_hugehelp.c.cvs"
+	@$(call DEL, tool_hugehelp.c)
+endif
+	@$(call DEL, $(curl_OBJECTS) $(curlx_OBJECTS) $(RESOURCE))
+
+distclean vclean: clean
+	@$(call DEL, $(curl_PROGRAMS))
diff --git a/ap/lib/libcurl/curl-7.54.1/src/Makefile.netware b/ap/lib/libcurl/curl-7.54.1/src/Makefile.netware
new file mode 100644
index 0000000..a927da5
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/Makefile.netware
@@ -0,0 +1,524 @@
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 2004 - 2014, Guenter Knauf, <http://www.gknw.net/phpbb>.
+# Copyright (C) 2001 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.haxx.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+#***************************************************************************
+
+#################################################################
+#
+## Makefile for building curl.nlm (NetWare version - gnu make)
+##
+## Use: make -f Makefile.netware
+#
+#################################################################
+
+# Edit the path below to point to the base of your Novell NDK.
+ifndef NDKBASE
+NDKBASE	= c:/novell
+endif
+
+# Edit the path below to point to the base of your Zlib sources.
+ifndef ZLIB_PATH
+ZLIB_PATH = ../../zlib-1.2.8
+endif
+
+# Edit the path below to point to the base of your OpenSSL package.
+ifndef OPENSSL_PATH
+OPENSSL_PATH = ../../openssl-1.0.2a
+endif
+
+# Edit the path below to point to the base of your LibSSH2 package.
+ifndef LIBSSH2_PATH
+LIBSSH2_PATH = ../../libssh2-1.5.0
+endif
+
+# Edit the path below to point to the base of your axTLS package.
+ifndef AXTLS_PATH
+AXTLS_PATH = ../../axTLS-1.2.7
+endif
+
+# Edit the path below to point to the base of your libidn package.
+ifndef LIBIDN_PATH
+LIBIDN_PATH = ../../libidn-1.18
+endif
+
+# Edit the path below to point to the base of your librtmp package.
+ifndef LIBRTMP_PATH
+LIBRTMP_PATH = ../../librtmp-2.3
+endif
+
+# Edit the path below to point to the base of your nghttp2 package.
+ifndef NGHTTP2_PATH
+NGHTTP2_PATH = ../../nghttp2-0.6.7
+endif
+
+# Edit the path below to point to the base of your fbopenssl package.
+ifndef FBOPENSSL_PATH
+FBOPENSSL_PATH = ../../fbopenssl-0.4
+endif
+
+# Edit the path below to point to the base of your libmetalink package.
+ifndef LIBMETALINK_PATH
+LIBMETALINK_PATH = ../../libmetalink-0.1.2
+endif
+
+# Edit the path below to point to the base of your libexpat package.
+ifndef LIBEXPAT_PATH
+LIBEXPAT_PATH = ../../expat-2.1.0
+endif
+
+# Edit the path below to point to the base of your libXML2 package.
+ifndef LIBXML2_PATH
+LIBXML2_PATH = ../../libxml2-2.8.0
+endif
+
+# Edit the path below to point to the base of your c-ares package.
+ifndef LIBCARES_PATH
+LIBCARES_PATH = ../ares
+endif
+
+ifndef INSTDIR
+INSTDIR	= ..$(DS)curl-$(LIBCURL_VERSION_STR)-bin-nw
+endif
+
+# Edit the vars below to change NLM target settings.
+TARGET  = curl
+VERSION	= $(LIBCURL_VERSION)
+COPYR	= Copyright (C) $(LIBCURL_COPYRIGHT_STR)
+DESCR	= curl $(LIBCURL_VERSION_STR) ($(LIBARCH)) - https://curl.haxx.se
+MTSAFE	= YES
+STACK	= 64000
+SCREEN	= $(TARGET) commandline utility
+# Comment the line below if you dont want to load protected automatically.
+# LDRING = 3
+
+# Uncomment the next line to enable linking with POSIX semantics.
+# POSIXFL = 1
+
+# Edit the var below to point to your lib architecture.
+ifndef LIBARCH
+LIBARCH = LIBC
+endif
+
+# must be equal to NDEBUG or DEBUG, CURLDEBUG
+ifndef DB
+DB	= NDEBUG
+endif
+# Optimization: -O<n> or debugging: -g
+ifeq ($(DB),NDEBUG)
+	OPT	= -O2
+	OBJDIR	= release
+else
+	OPT	= -g
+	OBJDIR	= debug
+endif
+
+# The following lines defines your compiler.
+ifdef CWFolder
+	METROWERKS = $(CWFolder)
+endif
+ifdef METROWERKS
+	# MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support
+	MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support
+	CC = mwccnlm
+else
+	CC = gcc
+endif
+PERL	= perl
+# Here you can find a native Win32 binary of the original awk:
+# http://www.gknw.net/development/prgtools/awk-20100523.zip
+AWK	= awk
+CP	= cp -afv
+MKDIR	= mkdir
+# RM	= rm -f
+# If you want to mark the target as MTSAFE you will need a tool for
+# generating the xdc data for the linker; here's a minimal tool:
+# http://www.gknw.net/development/prgtools/mkxdc.zip
+MPKXDC	= mkxdc
+
+# LIBARCH_U = $(shell $(AWK) 'BEGIN {print toupper(ARGV[1])}' $(LIBARCH))
+LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))
+
+# Include the version info retrieved from curlver.h
+-include $(OBJDIR)/version.inc
+
+# Global flags for all compilers
+CFLAGS	+= $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
+
+ifeq ($(CC),mwccnlm)
+LD	= mwldnlm
+LDFLAGS	= -nostdlib $(OBJS) $(PRELUDE) $(LDLIBS) -o $@ -commandfile
+LIBEXT	= lib
+CFLAGS	+= -gccinc -inline off -opt nointrinsics -proc 586
+CFLAGS	+= -relax_pointers
+#CFLAGS	+= -w on
+ifeq ($(LIBARCH),LIBC)
+ifeq ($(POSIXFL),1)
+	PRELUDE = $(NDK_LIBC)/imports/posixpre.o
+else
+	PRELUDE = $(NDK_LIBC)/imports/libcpre.o
+endif
+	CFLAGS += -align 4
+else
+	# PRELUDE = $(NDK_CLIB)/imports/clibpre.o
+	# to avoid the __init_* / __deinit_* whoes dont use prelude from NDK
+	PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
+	# CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
+	CFLAGS += -align 1
+endif
+else
+LD	= nlmconv
+LDFLAGS	= -T
+LIBEXT	= a
+CFLAGS	+= -m32
+CFLAGS  += -fno-builtin -fno-strict-aliasing
+ifeq ($(findstring gcc,$(CC)),gcc)
+CFLAGS  += -fpcc-struct-return
+endif
+CFLAGS	+= -Wall # -pedantic
+ifeq ($(LIBARCH),LIBC)
+ifeq ($(POSIXFL),1)
+	PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
+else
+	PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
+endif
+else
+	# PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
+	# to avoid the __init_* / __deinit_* whoes dont use prelude from NDK
+	# http://www.gknw.net/development/mk_nlm/gcc_pre.zip
+	PRELUDE = $(NDK_ROOT)/pre/prelude.o
+	CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
+endif
+endif
+
+NDK_ROOT = $(NDKBASE)/ndk
+ifndef NDK_CLIB
+NDK_CLIB = $(NDK_ROOT)/nwsdk
+endif
+ifndef NDK_LIBC
+NDK_LIBC = $(NDK_ROOT)/libc
+endif
+ifndef NDK_LDAP
+NDK_LDAP = $(NDK_ROOT)/cldapsdk/netware
+endif
+CURL_INC = ../include
+CURL_LIB = ../lib
+
+INCLUDES = -I$(CURL_INC) -I$(CURL_LIB)
+
+ifeq ($(findstring -static,$(CFG)),-static)
+LINK_STATIC = 1
+endif
+ifeq ($(findstring -ares,$(CFG)),-ares)
+WITH_ARES = 1
+endif
+ifeq ($(findstring -rtmp,$(CFG)),-rtmp)
+WITH_RTMP = 1
+WITH_SSL = 1
+WITH_ZLIB = 1
+endif
+ifeq ($(findstring -ssh2,$(CFG)),-ssh2)
+WITH_SSH2 = 1
+WITH_SSL = 1
+WITH_ZLIB = 1
+endif
+ifeq ($(findstring -axtls,$(CFG)),-axtls)
+WITH_AXTLS = 1
+WITH_SSL =
+else
+ifeq ($(findstring -ssl,$(CFG)),-ssl)
+WITH_SSL = 1
+endif
+endif
+ifeq ($(findstring -zlib,$(CFG)),-zlib)
+WITH_ZLIB = 1
+endif
+ifeq ($(findstring -idn,$(CFG)),-idn)
+WITH_IDN = 1
+endif
+ifeq ($(findstring -metalink,$(CFG)),-metalink)
+WITH_METALINK = 1
+WITH_SSL = 1
+endif
+ifeq ($(findstring -nghttp2,$(CFG)),-nghttp2)
+WITH_NGHTTP2 = 1
+endif
+ifeq ($(findstring -ipv6,$(CFG)),-ipv6)
+ENABLE_IPV6 = 1
+endif
+
+ifdef LINK_STATIC
+	LDLIBS	= $(CURL_LIB)/libcurl.$(LIBEXT)
+ifdef WITH_ARES
+	LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
+endif
+else
+	MODULES	= libcurl.nlm
+	IMPORTS	= @$(CURL_LIB)/libcurl.imp
+endif
+ifdef WITH_SSH2
+	# INCLUDES += -I$(LIBSSH2_PATH)/include
+ifdef LINK_STATIC
+	LDLIBS += $(LIBSSH2_PATH)/nw/libssh2.$(LIBEXT)
+else
+	MODULES += libssh2.nlm
+	IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
+endif
+endif
+ifdef WITH_RTMP
+	# INCLUDES += -I$(LIBRTMP_PATH)
+ifdef LINK_STATIC
+	LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
+endif
+endif
+ifdef WITH_SSL
+	# INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
+	LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/ssl.$(LIBEXT)
+	LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/crypto.$(LIBEXT)
+	IMPORTS += GetProcessSwitchCount RunningProcess
+else
+ifdef WITH_AXTLS
+	# INCLUDES += -I$(AXTLS_PATH)/inc
+ifdef LINK_STATIC
+	LDLIBS += $(AXTLS_PATH)/lib/libaxtls.$(LIBEXT)
+else
+	MODULES += libaxtls.nlm
+	IMPORTS += $(AXTLS_PATH)/lib/libaxtls.imp
+endif
+endif
+endif
+ifdef WITH_ZLIB
+	INCLUDES += -I$(ZLIB_PATH)
+ifdef LINK_STATIC
+	LDLIBS += $(ZLIB_PATH)/nw/$(LIBARCH)/libz.$(LIBEXT)
+else
+	MODULES += libz.nlm
+	IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
+endif
+endif
+ifdef WITH_IDN
+	# INCLUDES += -I$(LIBIDN_PATH)/include
+	LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
+endif
+ifdef WITH_NGHTTP2
+	INCLUDES += -I$(NGHTTP2_PATH)/include
+	LDLIBS += $(NGHTTP2_PATH)/lib/libnghttp2.$(LIBEXT)
+endif
+ifdef WITH_METALINK
+	CFLAGS += -DUSE_METALINK
+	INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
+	INCLUDES += -I$(LIBMETALINK_PATH)/include
+	LDLIBS += $(LIBMETALINK_PATH)/lib/libmetalink.$(LIBEXT)
+ifdef WITH_LIBEXPAT
+	ifeq ($(LIBARCH),LIBC)
+		IMPORTS += @$(LIBEXPAT_PATH)/imports/expatlbc.imp
+		MODULES += expatlbc
+	else
+		IMPORTS += @$(LIBEXPAT_PATH)/imports/expatlib.imp
+		MODULES += expatlib
+	endif
+else
+ifdef WITH_LIBXML2
+	IMPORTS += @$(LIBXML2_PATH)/lib/libxml2.imp
+	MODULES += libxml2
+endif
+endif
+endif
+
+ifeq ($(LIBARCH),LIBC)
+	INCLUDES += -I$(NDK_LIBC)/include
+	# INCLUDES += -I$(NDK_LIBC)/include/nks
+	# INCLUDES += -I$(NDK_LIBC)/include/winsock
+	CFLAGS += -D_POSIX_SOURCE
+else
+	INCLUDES += -I$(NDK_CLIB)/include/nlm
+	# INCLUDES += -I$(NDK_CLIB)/include
+endif
+ifndef DISABLE_LDAP
+	# INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
+endif
+CFLAGS	+= $(INCLUDES)
+
+ifeq ($(MTSAFE),YES)
+	XDCOPT = -n
+endif
+ifeq ($(MTSAFE),NO)
+	XDCOPT = -u
+endif
+ifdef XDCOPT
+	XDCDATA = $(OBJDIR)/$(TARGET).xdc
+endif
+
+ifeq ($(findstring /sh,$(SHELL)),/sh)
+DL	= '
+DS	= /
+PCT	= %
+#-include $(NDKBASE)/nlmconv/ncpfs.inc
+else
+DS	= \\
+PCT	= %%
+endif
+
+# Makefile.inc provides the CSOURCES and HHEADERS defines
+include Makefile.inc
+
+OBJX	:= $(patsubst %.c,$(OBJDIR)/%.o,$(notdir $(strip $(CURLX_CFILES))))
+OBJS	:= $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(CURL_CFILES)))
+ifndef LINK_STATIC
+OBJS	+= $(OBJX)
+endif
+
+vpath %.c $(CURL_LIB)
+
+all: prebuild $(TARGET).nlm
+
+prebuild: $(OBJDIR) $(OBJDIR)/version.inc
+
+$(OBJDIR)/%.o: %.c
+#	@echo Compiling $<
+	$(CC) $(CFLAGS) -c $< -o $@
+
+$(OBJDIR)/version.inc: $(CURL_INC)/curl/curlver.h $(OBJDIR)
+	@echo Creating $@
+	@$(AWK) -f ../packages/NetWare/get_ver.awk $< > $@
+
+install: $(INSTDIR) all
+	@-$(CP) ../docs/$(TARGET).pdf $(INSTDIR)
+	@-$(CP) ../docs/$(TARGET).html $(INSTDIR)
+	@$(CP) $(TARGET).nlm $(INSTDIR)
+
+clean:
+ifeq "$(wildcard tool_hugehelp.c.cvs)" "tool_hugehelp.c.cvs"
+	-$(RM) tool_hugehelp.c
+endif
+	-$(RM) -r $(OBJDIR)
+
+distclean vclean: clean
+	-$(RM) $(TARGET).nlm
+
+$(OBJDIR) $(INSTDIR):
+	@$(MKDIR) $@
+
+$(TARGET).nlm: $(OBJS) $(OBJDIR)/$(TARGET).def $(XDCDATA)
+	@echo Linking $@
+	@-$(RM) $@
+	@$(LD) $(LDFLAGS) $(OBJDIR)/$(TARGET).def
+
+$(OBJDIR)/%.xdc: Makefile.netware
+	@echo Creating $@
+	@$(MPKXDC) $(XDCOPT) $@
+
+$(OBJDIR)/%.def: Makefile.netware
+	@echo $(DL)# DEF file for linking with $(LD)$(DL) > $@
+	@echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
+	@echo $(DL)# All your changes will be lost!!$(DL) >> $@
+	@echo $(DL)#$(DL) >> $@
+	@echo $(DL)copyright "$(COPYR)"$(DL) >> $@
+	@echo $(DL)description "$(DESCR)"$(DL) >> $@
+	@echo $(DL)version $(VERSION)$(DL) >> $@
+ifdef NLMTYPE
+	@echo $(DL)type $(NLMTYPE)$(DL) >> $@
+endif
+ifdef STACK
+	@echo $(DL)stack $(STACK)$(DL) >> $@
+endif
+ifdef SCREEN
+	@echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
+else
+	@echo $(DL)screenname "DEFAULT"$(DL) >> $@
+endif
+ifneq ($(DB),NDEBUG)
+	@echo $(DL)debug$(DL) >> $@
+endif
+	@echo $(DL)threadname "$(TARGET)"$(DL) >> $@
+ifdef XDCDATA
+	@echo $(DL)xdcdata $(XDCDATA)$(DL) >> $@
+endif
+ifeq ($(LDRING),0)
+	@echo $(DL)flag_on 16$(DL) >> $@
+endif
+ifeq ($(LDRING),3)
+	@echo $(DL)flag_on 512$(DL) >> $@
+endif
+ifeq ($(LIBARCH),CLIB)
+	@echo $(DL)start _Prelude$(DL) >> $@
+	@echo $(DL)exit _Stop$(DL) >> $@
+	@echo $(DL)import @$(NDK_CLIB)/imports/clib.imp$(DL) >> $@
+	@echo $(DL)import @$(NDK_CLIB)/imports/threads.imp$(DL) >> $@
+	@echo $(DL)import @$(NDK_CLIB)/imports/nlmlib.imp$(DL) >> $@
+	@echo $(DL)import @$(NDK_CLIB)/imports/socklib.imp$(DL) >> $@
+	@echo $(DL)module clib$(DL) >> $@
+ifndef DISABLE_LDAP
+	@echo $(DL)import @$(NDK_LDAP)/clib/imports/ldapsdk.imp$(DL) >> $@
+	@echo $(DL)import @$(NDK_LDAP)/clib/imports/ldapssl.imp$(DL) >> $@
+#	@echo $(DL)import @$(NDK_LDAP)/clib/imports/ldapx.imp$(DL) >> $@
+	@echo $(DL)module ldapsdk ldapssl$(DL) >> $@
+endif
+else
+ifeq ($(POSIXFL),1)
+	@echo $(DL)flag_on 4194304$(DL) >> $@
+endif
+	@echo $(DL)flag_on 64$(DL) >> $@
+	@echo $(DL)pseudopreemption$(DL) >> $@
+ifeq ($(findstring posixpre,$(PRELUDE)),posixpre)
+	@echo $(DL)start POSIX_Start$(DL) >> $@
+	@echo $(DL)exit POSIX_Stop$(DL) >> $@
+	@echo $(DL)check POSIX_CheckUnload$(DL) >> $@
+else
+	@echo $(DL)start _LibCPrelude$(DL) >> $@
+	@echo $(DL)exit _LibCPostlude$(DL) >> $@
+	@echo $(DL)check _LibCCheckUnload$(DL) >> $@
+endif
+	@echo $(DL)import @$(NDK_LIBC)/imports/libc.imp$(DL) >> $@
+	@echo $(DL)import @$(NDK_LIBC)/imports/netware.imp$(DL) >> $@
+	@echo $(DL)module libc$(DL) >> $@
+ifndef DISABLE_LDAP
+	@echo $(DL)import @$(NDK_LDAP)/libc/imports/lldapsdk.imp$(DL) >> $@
+	@echo $(DL)import @$(NDK_LDAP)/libc/imports/lldapssl.imp$(DL) >> $@
+#	@echo $(DL)import @$(NDK_LDAP)/libc/imports/lldapx.imp$(DL) >> $@
+	@echo $(DL)module lldapsdk lldapssl$(DL) >> $@
+endif
+endif
+ifdef MODULES
+	@echo $(DL)module $(MODULES)$(DL) >> $@
+endif
+ifdef EXPORTS
+	@echo $(DL)export $(EXPORTS)$(DL) >> $@
+endif
+ifdef IMPORTS
+	@echo $(DL)import $(IMPORTS)$(DL) >> $@
+endif
+ifeq ($(findstring nlmconv,$(LD)),nlmconv)
+	@echo $(DL)input $(PRELUDE)$(DL) >> $@
+	@echo $(DL)input $(OBJS)$(DL) >> $@
+ifdef LDLIBS
+	@echo $(DL)input $(LDLIBS)$(DL) >> $@
+endif
+	@echo $(DL)output $(TARGET).nlm$(DL) >> $@
+endif
+
+tool_hugehelp.c:
+	@echo Creating $@
+	@$(CP) tool_hugehelp.c.cvs $@
+
+$(LIBCARES_PATH)/libcares.$(LIBEXT):
+	$(MAKE) -C $(LIBCARES_PATH) -f Makefile.netware lib
+
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/curl.rc b/ap/lib/libcurl/curl-7.54.1/src/curl.rc
new file mode 100644
index 0000000..5f49d22
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/curl.rc
@@ -0,0 +1,63 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include <winver.h>
+#include "tool_version.h"
+
+LANGUAGE  0x09,0x01
+
+#define RC_VERSION  CURL_VERSION_MAJOR, CURL_VERSION_MINOR, CURL_VERSION_PATCH, 0
+
+VS_VERSION_INFO VERSIONINFO
+  FILEVERSION     RC_VERSION
+  PRODUCTVERSION  RC_VERSION
+  FILEFLAGSMASK   0x3fL
+#if defined(DEBUGBUILD) || defined(_DEBUG)
+  FILEFLAGS 1
+#else
+  FILEFLAGS 0
+#endif
+  FILEOS      VOS__WINDOWS32
+  FILETYPE    VFT_APP
+  FILESUBTYPE 0x0L
+
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    BLOCK "040904b0"
+    BEGIN
+      VALUE "CompanyName",      "curl, https://curl.haxx.se/\0"
+      VALUE "FileDescription",  "The curl executable\0"
+      VALUE "FileVersion",      CURL_VERSION "\0"
+      VALUE "InternalName",     "curl\0"
+      VALUE "OriginalFilename", "curl.exe\0"
+      VALUE "ProductName",      "The curl executable\0"
+      VALUE "ProductVersion",   CURL_VERSION "\0"
+      VALUE "LegalCopyright",   "\xa9 " CURL_COPYRIGHT "\0"  /* a9: Copyright symbol */
+      VALUE "License",          "https://curl.haxx.se/docs/copyright.html\0"
+    END
+  END
+
+  BLOCK "VarFileInfo"
+  BEGIN
+    VALUE "Translation", 0x409, 1200
+  END
+END
diff --git a/ap/lib/libcurl/curl-7.54.1/src/macos/MACINSTALL.TXT b/ap/lib/libcurl/curl-7.54.1/src/macos/MACINSTALL.TXT
new file mode 100644
index 0000000..ce4d1dc
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/macos/MACINSTALL.TXT
Binary files differ
diff --git a/ap/lib/libcurl/curl-7.54.1/src/macos/curl.mcp.xml.sit.hqx b/ap/lib/libcurl/curl-7.54.1/src/macos/curl.mcp.xml.sit.hqx
new file mode 100644
index 0000000..01650b9
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/macos/curl.mcp.xml.sit.hqx
Binary files differ
diff --git a/ap/lib/libcurl/curl-7.54.1/src/macos/src/curl_GUSIConfig.cpp b/ap/lib/libcurl/curl-7.54.1/src/macos/src/curl_GUSIConfig.cpp
new file mode 100644
index 0000000..fc9378a
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/macos/src/curl_GUSIConfig.cpp
Binary files differ
diff --git a/ap/lib/libcurl/curl-7.54.1/src/macos/src/macos_main.cpp b/ap/lib/libcurl/curl-7.54.1/src/macos/src/macos_main.cpp
new file mode 100644
index 0000000..cf3075f
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/macos/src/macos_main.cpp
Binary files differ
diff --git a/ap/lib/libcurl/curl-7.54.1/src/makefile.amiga b/ap/lib/libcurl/curl-7.54.1/src/makefile.amiga
new file mode 100644
index 0000000..9f3748b
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/makefile.amiga
@@ -0,0 +1,30 @@
+#
+# $VER: curl Makefile for AmigaOS ...
+#
+
+# change the follow to where you have the AmiTCP SDK v4.3 includes:
+
+ATCPSDKI=	/GG/netinclude
+
+
+CC	=	m68k-amigaos-gcc
+CFLAGS	=	-I$(ATCPSDKI) -m68020-60 -O2 -msoft-float -noixemul -g -I. -I../include -W -Wall
+LIBS	=	../lib/libcurl.a -lssl -lcrypto -lz
+MANPAGE =	../docs/curl.1
+README	=	../docs/MANUAL
+MKHELP	=	../src/mkhelp.pl
+
+include Makefile.inc
+
+OBJS = $(CURL_CFILES:.c=.o) $(CURLX_CFILES:.c=.o)
+
+all:	tool_hugehelp.c $(OBJS)
+	$(CC) $(CFLAGS) -o curl $(OBJS) $(LIBS) -Wl,-Map,curl.map,--cref
+
+tool_hugehelp.c: $(README) $(MANPAGE)  mkhelp.pl
+	rm -f tool_hugehelp.c
+	/bin/nroff -man $(MANPAGE) | /bin/perl $(MKHELP) -c $(README) > tool_hugehelp.c
+
+install:
+	$(INSTALL) -c curl /c/curl
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/makefile.dj b/ap/lib/libcurl/curl-7.54.1/src/makefile.dj
new file mode 100644
index 0000000..fbd2d37
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/makefile.dj
@@ -0,0 +1,94 @@
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 2003 - 2007, Gisle Vanem <gvanem@yahoo.no>.
+# Copyright (C) 2003 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.haxx.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+#***************************************************************************
+
+#
+#  Adapted for djgpp2 / Watt-32 / DOS
+#
+
+DEPEND_PREREQ = # tool_hugehelp.c
+
+TOPDIR = ..
+
+include ../packages/DOS/common.dj
+include Makefile.inc
+
+CSOURCES = $(CURL_CFILES)
+
+ifeq ($(USE_SSL),1)
+  EX_LIBS += $(OPENSSL_ROOT)/lib/libssl.a $(OPENSSL_ROOT)/lib/libcrypt.a
+endif
+
+ifeq ($(USE_ARES),1)
+  EX_LIBS += $(ARES_ROOT)/libcares.a
+endif
+
+ifeq ($(USE_ZLIB),1)
+  EX_LIBS += $(ZLIB_ROOT)/libz.a
+  CFLAGS  += -DUSE_MANUAL
+endif
+
+ifeq ($(USE_IDNA),1)
+  EX_LIBS += $(LIBIDN_ROOT)/lib/dj_obj/libidn.a -liconv
+endif
+
+EX_LIBS += $(WATT32_ROOT)/lib/libwatt.a
+
+PROGRAM  = curl.exe
+OBJECTS += $(addprefix $(OBJ_DIR)/, $(CSOURCES:.c=.o))
+
+all: $(OBJ_DIR) $(PROGRAM)
+	@echo Welcome to curl
+
+$(PROGRAM): $(OBJECTS) ../lib/libcurl.a
+	$(CC) -o $@ $^ $(LDFLAGS) $(EX_LIBS)
+
+#
+# groff 1.18+ requires "-P -c"
+#
+tool_hugehelp.c: ../docs/MANUAL ../docs/curl.1 mkhelp.pl
+	groff -Tascii -man ../docs/curl.1 | \
+	perl -w mkhelp.pl ../docs/MANUAL > $@
+
+# clean generated files
+#
+genclean:
+	- $(DELETE) tool_hugehelp.c
+
+# clean object files and subdir
+#
+objclean: genclean
+	- $(DELETE) $(OBJ_DIR)$(DS)*.o
+	- $(RMDIR) $(OBJ_DIR)
+
+# clean without removing built program
+#
+clean: objclean
+	- $(DELETE) depend.dj
+
+# clean everything
+#
+realclean vclean: clean
+	- $(DELETE) $(PROGRAM)
+
+-include depend.dj
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/mkhelp.pl b/ap/lib/libcurl/curl-7.54.1/src/mkhelp.pl
new file mode 100644
index 0000000..93bbde6
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/mkhelp.pl
@@ -0,0 +1,258 @@
+#!/usr/local/bin/perl
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.haxx.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+###########################################################################
+
+# Yeah, I know, probably 1000 other persons already wrote a script like
+# this, but I'll tell ya:
+
+# THEY DON'T FIT ME :-)
+
+# Get readme file as parameter:
+
+if($ARGV[0] eq "-c") {
+    $c=1;
+    shift @ARGV;
+}
+
+my $README = $ARGV[0];
+
+if($README eq "") {
+    print "usage: mkreadme.pl [-c] <README> < manpage\n";
+    exit;
+}
+
+
+push @out, "                                  _   _ ____  _\n";
+push @out, "  Project                     ___| | | |  _ \\| |\n";
+push @out, "                             / __| | | | |_) | |\n";
+push @out, "                            | (__| |_| |  _ <| |___\n";
+push @out, "                             \\___|\\___/|_| \\_\\_____|\n";
+
+my $olen=0;
+while (<STDIN>) {
+    my $line = $_;
+
+    # this should be removed:
+    $line =~ s/(.|_)//g;
+
+    # remove trailing CR from line. msysgit checks out files as line+CRLF
+    $line =~ s/\r$//;
+
+    if($line =~ /^([ \t]*\n|curl)/i) {
+        # cut off headers and empty lines
+        $wline++; # count number of cut off lines
+        next;
+    }
+
+    my $text = $line;
+    $text =~ s/^\s+//g; # cut off preceding...
+    $text =~ s/\s+$//g; # and trailing whitespaces
+
+    $tlen = length($text);
+
+    if($wline && ($olen == $tlen)) {
+        # if the previous line with contents was exactly as long as
+        # this line, then we ignore the newlines!
+
+        # We do this magic because a header may abort a paragraph at
+        # any line, but we don't want that to be noticed in the output
+        # here
+        $wline=0;
+    }
+    $olen = $tlen;
+
+    if($wline) {
+        # we only make one empty line max
+        $wline = 0;
+        push @out, "\n";
+    }
+    push @out, $line;
+}
+push @out, "\n"; # just an extra newline
+
+open(READ, "<$README") ||
+    die "couldn't read the README infile $README";
+
+while(<READ>) {
+    my $line = $_;
+
+    # remove trailing CR from line. msysgit checks out files as line+CRLF
+    $line =~ s/\r$//;
+
+    push @out, $line;
+}
+close(READ);
+
+$now = localtime;
+print <<HEAD
+/*
+ * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
+ * Generation time: $now
+ */
+#ifdef USE_MANUAL
+#include "tool_hugehelp.h"
+HEAD
+    ;
+if($c) {
+    # If compression requested, check that the Gzip module is available
+    # or else disable compression
+    $c = eval
+    {
+      require IO::Compress::Gzip;
+      IO::Compress::Gzip->import();
+      1;
+    };
+    print STDERR "Warning: compression requested but Gzip is not available\n" if (!$c)
+}
+
+if($c)
+{
+    my $content = join("", @out);
+    my $gzippedContent;
+    IO::Compress::Gzip::gzip(
+        \$content, \$gzippedContent, Level => 9, TextFlag => 1, Time=>0) or die "gzip failed:";
+    $gzip = length($content);
+    $gzipped = length($gzippedContent);
+
+    print <<HEAD
+#include <zlib.h>
+#include "memdebug.h" /* keep this as LAST include */
+static const unsigned char hugehelpgz[] = {
+  /* This mumbo-jumbo is the huge help text compressed with gzip.
+     Thanks to this operation, the size of this data shrank from $gzip
+     to $gzipped bytes. You can disable the use of compressed help
+     texts by NOT passing -c to the mkhelp.pl tool. */
+HEAD
+;
+
+    my $c=0;
+    print " ";
+    for(split(//, $gzippedContent)) {
+        my $num=ord($_);
+        printf(" 0x%02x,", 0+$num);
+        if(!(++$c % 12)) {
+            print "\n ";
+        }
+    }
+    print "\n};\n";
+
+    print <<EOF
+#define BUF_SIZE 0x10000
+static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
+{
+  (void) opaque;
+  /* not a typo, keep it calloc() */
+  return (voidpf) calloc(items, size);
+}
+static void zfree_func(voidpf opaque, voidpf ptr)
+{
+  (void) opaque;
+  free(ptr);
+}
+/* Decompress and send to stdout a gzip-compressed buffer */
+void hugehelp(void)
+{
+  unsigned char* buf;
+  int status,headerlen;
+  z_stream z;
+
+  /* Make sure no gzip options are set */
+  if (hugehelpgz[3] & 0xfe)
+    return;
+
+  headerlen = 10;
+  memset(&z, 0, sizeof(z_stream));
+  z.zalloc = (alloc_func)zalloc_func;
+  z.zfree = (free_func)zfree_func;
+  z.avail_in = (unsigned int)(sizeof(hugehelpgz) - headerlen);
+  z.next_in = (unsigned char *)hugehelpgz + headerlen;
+
+  if (inflateInit2(&z, -MAX_WBITS) != Z_OK)
+    return;
+
+  buf = malloc(BUF_SIZE);
+  if (buf) {
+    while(1) {
+      z.avail_out = BUF_SIZE;
+      z.next_out = buf;
+      status = inflate(&z, Z_SYNC_FLUSH);
+      if (status == Z_OK || status == Z_STREAM_END) {
+        fwrite(buf, BUF_SIZE - z.avail_out, 1, stdout);
+        if (status == Z_STREAM_END)
+          break;
+      }
+      else
+        break;    /* Error */
+    }
+    free(buf);
+  }
+  inflateEnd(&z);
+}
+EOF
+    ;
+foot();
+exit;
+}
+else {
+    print <<HEAD
+void hugehelp(void)
+{
+   fputs(
+HEAD
+         ;
+}
+
+$outsize=0;
+for(@out) {
+    chop;
+
+    $new = $_;
+
+    $outsize += length($new)+1; # one for the newline
+
+    $new =~ s/\\/\\\\/g;
+    $new =~ s/\"/\\\"/g;
+
+    # gcc 2.96 claims ISO C89 only is required to support 509 letter strings
+    if($outsize > 500) {
+        # terminate and make another fputs() call here
+        print ", stdout);\n fputs(\n";
+        $outsize=length($new)+1;
+    }
+    printf("\"%s\\n\"\n", $new);
+
+}
+
+print ", stdout) ;\n}\n";
+
+foot();
+
+sub foot {
+  print <<FOOT
+#else /* !USE_MANUAL */
+/* built-in manual is disabled, blank function */
+#include "tool_hugehelp.h"
+void hugehelp(void) {}
+#endif /* USE_MANUAL */
+FOOT
+  ;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/slist_wc.c b/ap/lib/libcurl/curl-7.54.1/src/slist_wc.c
new file mode 100644
index 0000000..5233b1b
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/slist_wc.c
@@ -0,0 +1,72 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+#include "tool_setup.h"
+
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+
+#include "slist_wc.h"
+
+/* The last #include files should be: */
+#include "memdebug.h"
+
+/*
+ * slist_wc_append() appends a string to the linked list. This function can be
+ * used as an initialization function as well as an append function.
+ */
+struct slist_wc *slist_wc_append(struct slist_wc *list,
+                                 const char *data)
+{
+  struct curl_slist *new_item = curl_slist_append(NULL, data);
+
+  if(!new_item)
+    return NULL;
+
+  if(!list) {
+    list = malloc(sizeof(struct slist_wc));
+
+    if(!list) {
+      curl_slist_free_all(new_item);
+      return NULL;
+    }
+
+    list->first = new_item;
+    list->last = new_item;
+    return list;
+  }
+
+  list->last->next = new_item;
+  list->last = list->last->next;
+  return list;
+}
+
+/* be nice and clean up resources */
+void slist_wc_free_all(struct slist_wc *list)
+{
+  if(!list)
+    return;
+
+  curl_slist_free_all(list->first);
+  free(list);
+}
+
+#endif /* CURL_DISABLE_LIBCURL_OPTION */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/slist_wc.h b/ap/lib/libcurl/curl-7.54.1/src/slist_wc.h
new file mode 100644
index 0000000..d894312
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/slist_wc.h
@@ -0,0 +1,56 @@
+#ifndef HEADER_CURL_SLIST_WC_H
+#define HEADER_CURL_SLIST_WC_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+#include "tool_setup.h"
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+
+/* linked-list structure with last node cache for easysrc */
+struct slist_wc {
+  struct curl_slist *first;
+  struct curl_slist *last;
+};
+
+/*
+ * NAME curl_slist_wc_append()
+ *
+ * DESCRIPTION
+ *
+ * Appends a string to a linked list. If no list exists, it will be created
+ * first. Returns the new list, after appending.
+ */
+struct slist_wc *slist_wc_append(struct slist_wc *, const char *);
+
+/*
+ * NAME curl_slist_free_all()
+ *
+ * DESCRIPTION
+ *
+ * free a previously built curl_slist_wc.
+ */
+void slist_wc_free_all(struct slist_wc *);
+
+#endif /* CURL_DISABLE_LIBCURL_OPTION */
+
+#endif /* HEADER_CURL_SLIST_WC_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_binmode.c b/ap/lib/libcurl/curl-7.54.1/src/tool_binmode.c
new file mode 100644
index 0000000..5ca64cd
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_binmode.c
@@ -0,0 +1,52 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef HAVE_SETMODE
+
+#ifdef HAVE_IO_H
+#  include <io.h>
+#endif
+
+#ifdef HAVE_FCNTL_H
+#  include <fcntl.h>
+#endif
+
+#include "tool_binmode.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+void set_binmode(FILE *stream)
+{
+#ifdef O_BINARY
+#  ifdef __HIGHC__
+  _setmode(stream, O_BINARY);
+#  else
+  (void)setmode(fileno(stream), O_BINARY);
+#  endif
+#else
+  (void)stream;
+#endif
+}
+
+#endif /* HAVE_SETMODE */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_binmode.h b/ap/lib/libcurl/curl-7.54.1/src/tool_binmode.h
new file mode 100644
index 0000000..8b445ae
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_binmode.h
@@ -0,0 +1,37 @@
+#ifndef HEADER_CURL_TOOL_BINMODE_H
+#define HEADER_CURL_TOOL_BINMODE_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef HAVE_SETMODE
+
+void set_binmode(FILE *stream);
+
+#else
+
+#define set_binmode(x) Curl_nop_stmt
+
+#endif /* HAVE_SETMODE */
+
+#endif /* HEADER_CURL_TOOL_BINMODE_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_bname.c b/ap/lib/libcurl/curl-7.54.1/src/tool_bname.c
new file mode 100644
index 0000000..5cc5c15
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_bname.c
@@ -0,0 +1,50 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "tool_bname.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifndef HAVE_BASENAME
+
+char *tool_basename(char *path)
+{
+  char *s1;
+  char *s2;
+
+  s1 = strrchr(path, '/');
+  s2 = strrchr(path, '\\');
+
+  if(s1 && s2) {
+    path = (s1 > s2) ? s1 + 1 : s2 + 1;
+  }
+  else if(s1)
+    path = s1 + 1;
+  else if(s2)
+    path = s2 + 1;
+
+  return path;
+}
+
+#endif /* HAVE_BASENAME */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_bname.h b/ap/lib/libcurl/curl-7.54.1/src/tool_bname.h
new file mode 100644
index 0000000..61b97b4
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_bname.h
@@ -0,0 +1,35 @@
+#ifndef HEADER_CURL_TOOL_BNAME_H
+#define HEADER_CURL_TOOL_BNAME_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifndef HAVE_BASENAME
+
+char *tool_basename(char *path);
+
+#define basename(x) tool_basename((x))
+
+#endif /* HAVE_BASENAME */
+
+#endif /* HEADER_CURL_TOOL_BNAME_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_dbg.c b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_dbg.c
new file mode 100644
index 0000000..b4fbe0b
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_dbg.c
@@ -0,0 +1,279 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_convert.h"
+#include "tool_msgs.h"
+#include "tool_cb_dbg.h"
+#include "tool_util.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+static void dump(const char *timebuf, const char *text,
+                 FILE *stream, const unsigned char *ptr, size_t size,
+                 trace tracetype, curl_infotype infotype);
+
+/*
+** callback for CURLOPT_DEBUGFUNCTION
+*/
+
+int tool_debug_cb(CURL *handle, curl_infotype type,
+                  char *data, size_t size,
+                  void *userdata)
+{
+  struct OperationConfig *operation = userdata;
+  struct GlobalConfig *config = operation->global;
+  FILE *output = config->errors;
+  const char *text;
+  struct timeval tv;
+  struct tm *now;
+  char timebuf[20];
+  time_t secs;
+  static time_t epoch_offset;
+  static int    known_offset;
+
+  (void)handle; /* not used */
+
+  if(config->tracetime) {
+    tv = tvnow();
+    if(!known_offset) {
+      epoch_offset = time(NULL) - tv.tv_sec;
+      known_offset = 1;
+    }
+    secs = epoch_offset + tv.tv_sec;
+    now = localtime(&secs);  /* not thread safe but we don't care */
+    snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld ",
+             now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
+  }
+  else
+    timebuf[0] = 0;
+
+  if(!config->trace_stream) {
+    /* open for append */
+    if(!strcmp("-", config->trace_dump))
+      config->trace_stream = stdout;
+    else if(!strcmp("%", config->trace_dump))
+      /* Ok, this is somewhat hackish but we do it undocumented for now */
+      config->trace_stream = config->errors;  /* aka stderr */
+    else {
+      config->trace_stream = fopen(config->trace_dump, FOPEN_WRITETEXT);
+      config->trace_fopened = TRUE;
+    }
+  }
+
+  if(config->trace_stream)
+    output = config->trace_stream;
+
+  if(!output) {
+    warnf(config, "Failed to create/open output");
+    return 0;
+  }
+
+  if(config->tracetype == TRACE_PLAIN) {
+    /*
+     * This is the trace look that is similar to what libcurl makes on its
+     * own.
+     */
+    static const char * const s_infotype[] = {
+      "*", "<", ">", "{", "}", "{", "}"
+    };
+    size_t i;
+    size_t st = 0;
+    static bool newl = FALSE;
+    static bool traced_data = FALSE;
+
+    switch(type) {
+    case CURLINFO_HEADER_OUT:
+      if(size > 0) {
+        for(i = 0; i < size - 1; i++) {
+          if(data[i] == '\n') { /* LF */
+            if(!newl) {
+              fprintf(output, "%s%s ", timebuf, s_infotype[type]);
+            }
+            (void)fwrite(data + st, i - st + 1, 1, output);
+            st = i + 1;
+            newl = FALSE;
+          }
+        }
+        if(!newl)
+          fprintf(output, "%s%s ", timebuf, s_infotype[type]);
+        (void)fwrite(data + st, i - st + 1, 1, output);
+      }
+      newl = (size && (data[size - 1] != '\n')) ? TRUE : FALSE;
+      traced_data = FALSE;
+      break;
+    case CURLINFO_TEXT:
+    case CURLINFO_HEADER_IN:
+      if(!newl)
+        fprintf(output, "%s%s ", timebuf, s_infotype[type]);
+      (void)fwrite(data, size, 1, output);
+      newl = (size && (data[size - 1] != '\n')) ? TRUE : FALSE;
+      traced_data = FALSE;
+      break;
+    case CURLINFO_DATA_OUT:
+    case CURLINFO_DATA_IN:
+    case CURLINFO_SSL_DATA_IN:
+    case CURLINFO_SSL_DATA_OUT:
+      if(!traced_data) {
+        /* if the data is output to a tty and we're sending this debug trace
+           to stderr or stdout, we don't display the alert about the data not
+           being shown as the data _is_ shown then just not via this
+           function */
+        if(!config->isatty || ((output != stderr) && (output != stdout))) {
+          if(!newl)
+            fprintf(output, "%s%s ", timebuf, s_infotype[type]);
+          fprintf(output, "[%zd bytes data]\n", size);
+          newl = FALSE;
+          traced_data = TRUE;
+        }
+      }
+      break;
+    default: /* nada */
+      newl = FALSE;
+      traced_data = FALSE;
+      break;
+    }
+
+    return 0;
+  }
+
+#ifdef CURL_DOES_CONVERSIONS
+  /* Special processing is needed for CURLINFO_HEADER_OUT blocks
+   * if they contain both headers and data (separated by CRLFCRLF).
+   * We dump the header text and then switch type to CURLINFO_DATA_OUT.
+   */
+  if((type == CURLINFO_HEADER_OUT) && (size > 4)) {
+    size_t i;
+    for(i = 0; i < size - 4; i++) {
+      if(memcmp(&data[i], "\r\n\r\n", 4) == 0) {
+        /* dump everything through the CRLFCRLF as a sent header */
+        text = "=> Send header";
+        dump(timebuf, text, output, (unsigned char *)data, i + 4,
+             config->tracetype, type);
+        data += i + 3;
+        size -= i + 4;
+        type = CURLINFO_DATA_OUT;
+        data += 1;
+        break;
+      }
+    }
+  }
+#endif /* CURL_DOES_CONVERSIONS */
+
+  switch(type) {
+  case CURLINFO_TEXT:
+    fprintf(output, "%s== Info: %s", timebuf, data);
+    /* FALLTHROUGH */
+  default: /* in case a new one is introduced to shock us */
+    return 0;
+
+  case CURLINFO_HEADER_OUT:
+    text = "=> Send header";
+    break;
+  case CURLINFO_DATA_OUT:
+    text = "=> Send data";
+    break;
+  case CURLINFO_HEADER_IN:
+    text = "<= Recv header";
+    break;
+  case CURLINFO_DATA_IN:
+    text = "<= Recv data";
+    break;
+  case CURLINFO_SSL_DATA_IN:
+    text = "<= Recv SSL data";
+    break;
+  case CURLINFO_SSL_DATA_OUT:
+    text = "=> Send SSL data";
+    break;
+  }
+
+  dump(timebuf, text, output, (unsigned char *) data, size, config->tracetype,
+       type);
+  return 0;
+}
+
+static void dump(const char *timebuf, const char *text,
+                 FILE *stream, const unsigned char *ptr, size_t size,
+                 trace tracetype, curl_infotype infotype)
+{
+  size_t i;
+  size_t c;
+
+  unsigned int width = 0x10;
+
+  if(tracetype == TRACE_ASCII)
+    /* without the hex output, we can fit more on screen */
+    width = 0x40;
+
+  fprintf(stream, "%s%s, %zd bytes (0x%zx)\n", timebuf, text, size, size);
+
+  for(i = 0; i < size; i += width) {
+
+    fprintf(stream, "%04zx: ", i);
+
+    if(tracetype == TRACE_BIN) {
+      /* hex not disabled, show it */
+      for(c = 0; c < width; c++)
+        if(i+c < size)
+          fprintf(stream, "%02x ", ptr[i+c]);
+        else
+          fputs("   ", stream);
+    }
+
+    for(c = 0; (c < width) && (i+c < size); c++) {
+      /* check for 0D0A; if found, skip past and start a new line of output */
+      if((tracetype == TRACE_ASCII) &&
+         (i+c+1 < size) && (ptr[i+c] == 0x0D) && (ptr[i+c+1] == 0x0A)) {
+        i += (c+2-width);
+        break;
+      }
+#ifdef CURL_DOES_CONVERSIONS
+      /* repeat the 0D0A check above but use the host encoding for CRLF */
+      if((tracetype == TRACE_ASCII) &&
+         (i+c+1 < size) && (ptr[i+c] == '\r') && (ptr[i+c+1] == '\n')) {
+        i += (c+2-width);
+        break;
+      }
+      /* convert to host encoding and print this character */
+      fprintf(stream, "%c", convert_char(infotype, ptr[i+c]));
+#else
+      (void)infotype;
+      fprintf(stream, "%c", ((ptr[i+c] >= 0x20) && (ptr[i+c] < 0x80)) ?
+              ptr[i+c] : UNPRINTABLE_CHAR);
+#endif /* CURL_DOES_CONVERSIONS */
+      /* check again for 0D0A, to avoid an extra \n if it's at width */
+      if((tracetype == TRACE_ASCII) &&
+         (i+c+2 < size) && (ptr[i+c+1] == 0x0D) && (ptr[i+c+2] == 0x0A)) {
+        i += (c+3-width);
+        break;
+      }
+    }
+    fputc('\n', stream); /* newline */
+  }
+  fflush(stream);
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_dbg.h b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_dbg.h
new file mode 100644
index 0000000..c1cbc80
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_dbg.h
@@ -0,0 +1,35 @@
+#ifndef HEADER_CURL_TOOL_CB_DBG_H
+#define HEADER_CURL_TOOL_CB_DBG_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+/*
+** callback for CURLOPT_DEBUGFUNCTION
+*/
+
+int tool_debug_cb(CURL *handle, curl_infotype type,
+                  char *data, size_t size,
+                  void *userdata);
+
+#endif /* HEADER_CURL_TOOL_CB_DBG_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_hdr.c b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_hdr.c
new file mode 100644
index 0000000..0e13eec
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_hdr.c
@@ -0,0 +1,239 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "strcase.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_doswin.h"
+#include "tool_msgs.h"
+#include "tool_cb_hdr.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+static char *parse_filename(const char *ptr, size_t len);
+
+/*
+** callback for CURLOPT_HEADERFUNCTION
+*/
+
+size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata)
+{
+  struct HdrCbData *hdrcbdata = userdata;
+  struct OutStruct *outs = hdrcbdata->outs;
+  struct OutStruct *heads = hdrcbdata->heads;
+  const char *str = ptr;
+  const size_t cb = size * nmemb;
+  const char *end = (char *)ptr + cb;
+  char *url = NULL;
+
+  /*
+   * Once that libcurl has called back tool_header_cb() the returned value
+   * is checked against the amount that was intended to be written, if
+   * it does not match then it fails with CURLE_WRITE_ERROR. So at this
+   * point returning a value different from sz*nmemb indicates failure.
+   */
+  size_t failure = (size && nmemb) ? 0 : 1;
+
+  if(!heads->config)
+    return failure;
+
+#ifdef DEBUGBUILD
+  if(size * nmemb > (size_t)CURL_MAX_HTTP_HEADER) {
+    warnf(heads->config->global, "Header data exceeds single call write "
+          "limit!\n");
+    return failure;
+  }
+#endif
+
+  /*
+   * Write header data when curl option --dump-header (-D) is given.
+   */
+
+  if(heads->config->headerfile && heads->stream) {
+    size_t rc = fwrite(ptr, size, nmemb, heads->stream);
+    if(rc != cb)
+      return rc;
+    /* flush the stream to send off what we got earlier */
+    (void)fflush(heads->stream);
+  }
+
+  /*
+   * This callback sets the filename where output shall be written when
+   * curl options --remote-name (-O) and --remote-header-name (-J) have
+   * been simultaneously given and additionally server returns an HTTP
+   * Content-Disposition header specifying a filename property.
+   */
+
+  if(hdrcbdata->honor_cd_filename &&
+     (cb > 20) && checkprefix("Content-disposition:", str) &&
+     !curl_easy_getinfo(outs->config->easy, CURLINFO_EFFECTIVE_URL, &url) &&
+     url && (checkprefix("http://", url) || checkprefix("https://", url))) {
+    const char *p = str + 20;
+
+    /* look for the 'filename=' parameter
+       (encoded filenames (*=) are not supported) */
+    for(;;) {
+      char *filename;
+      size_t len;
+
+      while(*p && (p < end) && !ISALPHA(*p))
+        p++;
+      if(p > end - 9)
+        break;
+
+      if(memcmp(p, "filename=", 9)) {
+        /* no match, find next parameter */
+        while((p < end) && (*p != ';'))
+          p++;
+        continue;
+      }
+      p += 9;
+
+      /* this expression below typecasts 'cb' only to avoid
+         warning: signed and unsigned type in conditional expression
+      */
+      len = (ssize_t)cb - (p - str);
+      filename = parse_filename(p, len);
+      if(filename) {
+        outs->filename = filename;
+        outs->alloc_filename = TRUE;
+        outs->is_cd_filename = TRUE;
+        outs->s_isreg = TRUE;
+        outs->fopened = FALSE;
+        outs->stream = NULL;
+        hdrcbdata->honor_cd_filename = FALSE;
+        break;
+      }
+      return failure;
+    }
+  }
+
+  return cb;
+}
+
+/*
+ * Copies a file name part and returns an ALLOCATED data buffer.
+ */
+static char *parse_filename(const char *ptr, size_t len)
+{
+  char *copy;
+  char *p;
+  char *q;
+  char  stop = '\0';
+
+  /* simple implementation of strndup() */
+  copy = malloc(len+1);
+  if(!copy)
+    return NULL;
+  memcpy(copy, ptr, len);
+  copy[len] = '\0';
+
+  p = copy;
+  if(*p == '\'' || *p == '"') {
+    /* store the starting quote */
+    stop = *p;
+    p++;
+  }
+  else
+    stop = ';';
+
+  /* if the filename contains a path, only use filename portion */
+  q = strrchr(copy, '/');
+  if(q) {
+    p = q + 1;
+    if(!*p) {
+      Curl_safefree(copy);
+      return NULL;
+    }
+  }
+
+  /* If the filename contains a backslash, only use filename portion. The idea
+     is that even systems that don't handle backslashes as path separators
+     probably want the path removed for convenience. */
+  q = strrchr(p, '\\');
+  if(q) {
+    p = q + 1;
+    if(!*p) {
+      Curl_safefree(copy);
+      return NULL;
+    }
+  }
+
+  /* scan for the end letter and stop there */
+  for(q = p; *q; ++q) {
+    if(*q == stop) {
+      *q = '\0';
+      break;
+    }
+  }
+
+  /* make sure the file name doesn't end in \r or \n */
+  q = strchr(p, '\r');
+  if(q)
+    *q = '\0';
+
+  q = strchr(p, '\n');
+  if(q)
+    *q = '\0';
+
+  if(copy != p)
+    memmove(copy, p, strlen(p) + 1);
+
+#if defined(MSDOS) || defined(WIN32)
+  {
+    char *sanitized;
+    SANITIZEcode sc = sanitize_file_name(&sanitized, copy, 0);
+    Curl_safefree(copy);
+    if(sc)
+      return NULL;
+    copy = sanitized;
+  }
+#endif /* MSDOS || WIN32 */
+
+  /* in case we built debug enabled, we allow an environment variable
+   * named CURL_TESTDIR to prefix the given file name to put it into a
+   * specific directory
+   */
+#ifdef DEBUGBUILD
+  {
+    char *tdir = curlx_getenv("CURL_TESTDIR");
+    if(tdir) {
+      char buffer[512]; /* suitably large */
+      snprintf(buffer, sizeof(buffer), "%s/%s", tdir, copy);
+      Curl_safefree(copy);
+      copy = strdup(buffer); /* clone the buffer, we don't use the libcurl
+                                aprintf() or similar since we want to use the
+                                same memory code as the "real" parse_filename
+                                function */
+      curl_free(tdir);
+    }
+  }
+#endif
+
+  return copy;
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_hdr.h b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_hdr.h
new file mode 100644
index 0000000..32032e9
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_hdr.h
@@ -0,0 +1,54 @@
+#ifndef HEADER_CURL_TOOL_CB_HDR_H
+#define HEADER_CURL_TOOL_CB_HDR_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+/*
+ * curl operates using a single HdrCbData struct variable, a
+ * pointer to this is passed as userdata pointer to tool_header_cb.
+ *
+ * 'outs' member is a pointer to the OutStruct variable used to keep
+ * track of information relative to curl's output writing.
+ *
+ * 'heads' member is a pointer to the OutStruct variable used to keep
+ * track of information relative to header response writing.
+ *
+ * 'honor_cd_filename' member is TRUE when tool_header_cb is allowed
+ * to honor Content-Disposition filename property and accordingly
+ * set 'outs' filename, otherwise FALSE;
+ */
+
+struct HdrCbData {
+  struct OutStruct *outs;
+  struct OutStruct *heads;
+  bool honor_cd_filename;
+};
+
+/*
+** callback for CURLOPT_HEADERFUNCTION
+*/
+
+size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata);
+
+#endif /* HEADER_CURL_TOOL_CB_HDR_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_prg.c b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_prg.c
new file mode 100644
index 0000000..d4ecb3c
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_prg.c
@@ -0,0 +1,150 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_cb_prg.h"
+#include "tool_util.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/*
+** callback for CURLOPT_XFERINFOFUNCTION
+*/
+
+#define MAX_BARLENGTH 256
+
+int tool_progress_cb(void *clientp,
+                     curl_off_t dltotal, curl_off_t dlnow,
+                     curl_off_t ultotal, curl_off_t ulnow)
+{
+  /* The original progress-bar source code was written for curl by Lars Aas,
+     and this new edition inherits some of his concepts. */
+
+  char line[MAX_BARLENGTH+1];
+  char format[40];
+  double frac;
+  double percent;
+  int barwidth;
+  int num;
+  struct timeval now = tvnow();
+  struct ProgressData *bar = (struct ProgressData *)clientp;
+  curl_off_t total;
+  curl_off_t point;
+
+  /* expected transfer size */
+  total = dltotal + ultotal + bar->initial_size;
+
+  /* we've come this far */
+  point = dlnow + ulnow + bar->initial_size;
+
+  if(bar->calls && (tvdiff(now, bar->prevtime) < 100L) && point < total)
+    /* after first call, limit progress-bar updating to 10 Hz */
+    /* update when we're at 100% even if last update is less than 200ms ago */
+    return 0;
+
+  if(point > total)
+    /* we have got more than the expected total! */
+    total = point;
+
+  /* simply count invokes */
+  bar->calls++;
+
+  if(total < 1) {
+    curl_off_t prevblock = bar->prev / 1024;
+    curl_off_t thisblock = point / 1024;
+    while(thisblock > prevblock) {
+      fprintf(bar->out, "#");
+      prevblock++;
+    }
+  }
+  else if(point != bar->prev) {
+    frac = (double)point / (double)total;
+    percent = frac * 100.0;
+    barwidth = bar->width - 7;
+    num = (int) (((double)barwidth) * frac);
+    if(num > MAX_BARLENGTH)
+      num = MAX_BARLENGTH;
+    memset(line, '#', num);
+    line[num] = '\0';
+    snprintf(format, sizeof(format), "\r%%-%ds %%5.1f%%%%", barwidth);
+    fprintf(bar->out, format, line, percent);
+  }
+  fflush(bar->out);
+  bar->prev = point;
+  bar->prevtime = now;
+
+  return 0;
+}
+
+void progressbarinit(struct ProgressData *bar,
+                     struct OperationConfig *config)
+{
+#ifdef __EMX__
+  /* 20000318 mgs */
+  int scr_size[2];
+#endif
+  char *colp;
+
+  memset(bar, 0, sizeof(struct ProgressData));
+
+  /* pass this through to progress function so
+   * it can display progress towards total file
+   * not just the part that's left. (21-may-03, dbyron) */
+  if(config->use_resume)
+    bar->initial_size = config->resume_from;
+
+/* TODO: get terminal width through ansi escapes or something similar.
+   try to update width when xterm is resized... - 19990617 larsa */
+#ifndef __EMX__
+  /* 20000318 mgs
+   * OS/2 users most likely won't have this env var set, and besides that
+   * we're using our own way to determine screen width */
+  colp = curlx_getenv("COLUMNS");
+  if(colp) {
+    char *endptr;
+    long num = strtol(colp, &endptr, 10);
+    if((endptr != colp) && (endptr == colp + strlen(colp)) && (num > 0))
+      bar->width = (int)num;
+    else
+      bar->width = 79;
+    curl_free(colp);
+  }
+  else
+    bar->width = 79;
+#else
+  /* 20000318 mgs
+   * We use this emx library call to get the screen width, and subtract
+   * one from what we got in order to avoid a problem with the cursor
+   * advancing to the next line if we print a string that is as long as
+   * the screen is wide. */
+
+  _scrsize(scr_size);
+  bar->width = scr_size[0] - 1;
+#endif
+
+  bar->out = config->global->errors;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_prg.h b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_prg.h
new file mode 100644
index 0000000..d62b4a0
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_prg.h
@@ -0,0 +1,50 @@
+#ifndef HEADER_CURL_TOOL_CB_PRG_H
+#define HEADER_CURL_TOOL_CB_PRG_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define CURL_PROGRESS_STATS 0 /* default progress display */
+#define CURL_PROGRESS_BAR   1
+
+struct ProgressData {
+  int         calls;
+  curl_off_t  prev;
+  struct timeval prevtime;
+  int         width;
+  FILE       *out;  /* where to write everything to */
+  curl_off_t  initial_size;
+};
+
+void progressbarinit(struct ProgressData *bar,
+                     struct OperationConfig *config);
+
+/*
+** callback for CURLOPT_PROGRESSFUNCTION
+*/
+
+int tool_progress_cb(void *clientp,
+                     curl_off_t dltotal, curl_off_t dlnow,
+                     curl_off_t ultotal, curl_off_t ulnow);
+
+#endif /* HEADER_CURL_TOOL_CB_PRG_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_rea.c b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_rea.c
new file mode 100644
index 0000000..88137ae
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_rea.c
@@ -0,0 +1,55 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_cb_rea.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/*
+** callback for CURLOPT_READFUNCTION
+*/
+
+size_t tool_read_cb(void *buffer, size_t sz, size_t nmemb, void *userdata)
+{
+  ssize_t rc;
+  struct InStruct *in = userdata;
+
+  rc = read(in->fd, buffer, sz*nmemb);
+  if(rc < 0) {
+    if(errno == EAGAIN) {
+      errno = 0;
+      in->config->readbusy = TRUE;
+      return CURL_READFUNC_PAUSE;
+    }
+    /* since size_t is unsigned we can't return negative values fine */
+    rc = 0;
+  }
+  in->config->readbusy = FALSE;
+  return (size_t)rc;
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_rea.h b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_rea.h
new file mode 100644
index 0000000..5fbc793
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_rea.h
@@ -0,0 +1,33 @@
+#ifndef HEADER_CURL_TOOL_CB_REA_H
+#define HEADER_CURL_TOOL_CB_REA_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+/*
+** callback for CURLOPT_READFUNCTION
+*/
+
+size_t tool_read_cb(void *buffer, size_t sz, size_t nmemb, void *userdata);
+
+#endif /* HEADER_CURL_TOOL_CB_REA_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_see.c b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_see.c
new file mode 100644
index 0000000..621d440
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_see.c
@@ -0,0 +1,131 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_cb_see.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/* OUR_MAX_SEEK_L has 'long' data type, OUR_MAX_SEEK_O has 'curl_off_t,
+   both represent the same value. Maximum offset used here when we lseek
+   using a 'long' data type offset */
+
+#define OUR_MAX_SEEK_L  2147483647L - 1L
+#define OUR_MAX_SEEK_O  CURL_OFF_T_C(0x7FFFFFFF) - CURL_OFF_T_C(0x1)
+
+/*
+** callback for CURLOPT_SEEKFUNCTION
+**
+** Notice that this is not supposed to return the resulting offset. This
+** shall only return CURL_SEEKFUNC_* return codes.
+*/
+
+int tool_seek_cb(void *userdata, curl_off_t offset, int whence)
+{
+  struct InStruct *in = userdata;
+
+#if(CURL_SIZEOF_CURL_OFF_T > SIZEOF_OFF_T) && !defined(USE_WIN32_LARGE_FILES)
+
+  /* The offset check following here is only interesting if curl_off_t is
+     larger than off_t and we are not using the WIN32 large file support
+     macros that provide the support to do 64bit seeks correctly */
+
+  if(offset > OUR_MAX_SEEK_O) {
+    /* Some precaution code to work around problems with different data sizes
+       to allow seeking >32bit even if off_t is 32bit. Should be very rare and
+       is really valid on weirdo-systems. */
+    curl_off_t left = offset;
+
+    if(whence != SEEK_SET)
+      /* this code path doesn't support other types */
+      return CURL_SEEKFUNC_FAIL;
+
+    if(LSEEK_ERROR == lseek(in->fd, 0, SEEK_SET))
+      /* couldn't rewind to beginning */
+      return CURL_SEEKFUNC_FAIL;
+
+    while(left) {
+      long step = (left > OUR_MAX_SEEK_O) ? OUR_MAX_SEEK_L : (long)left;
+      if(LSEEK_ERROR == lseek(in->fd, step, SEEK_CUR))
+        /* couldn't seek forwards the desired amount */
+        return CURL_SEEKFUNC_FAIL;
+      left -= step;
+    }
+    return CURL_SEEKFUNC_OK;
+  }
+#endif
+
+  if(LSEEK_ERROR == lseek(in->fd, offset, whence))
+    /* couldn't rewind, the reason is in errno but errno is just not portable
+       enough and we don't actually care that much why we failed. We'll let
+       libcurl know that it may try other means if it wants to. */
+    return CURL_SEEKFUNC_CANTSEEK;
+
+  return CURL_SEEKFUNC_OK;
+}
+
+#if defined(WIN32) && !defined(__MINGW64__)
+
+#ifdef __BORLANDC__
+/* 64-bit lseek-like function unavailable */
+#  define _lseeki64(hnd,ofs,whence) lseek(hnd,ofs,whence)
+#endif
+
+#ifdef __POCC__
+#  if(__POCC__ < 450)
+/* 64-bit lseek-like function unavailable */
+#    define _lseeki64(hnd,ofs,whence) _lseek(hnd,ofs,whence)
+#  else
+#    define _lseeki64(hnd,ofs,whence) _lseek64(hnd,ofs,whence)
+#  endif
+#endif
+
+#ifdef _WIN32_WCE
+/* 64-bit lseek-like function unavailable */
+#  undef _lseeki64
+#  define _lseeki64(hnd,ofs,whence) lseek(hnd,ofs,whence)
+#  undef _get_osfhandle
+#  define _get_osfhandle(fd) (fd)
+#endif
+
+/*
+ * Truncate a file handle at a 64-bit position 'where'.
+ */
+
+int tool_ftruncate64(int fd, curl_off_t where)
+{
+  if(_lseeki64(fd, where, SEEK_SET) < 0)
+    return -1;
+
+  if(!SetEndOfFile((HANDLE)_get_osfhandle(fd)))
+    return -1;
+
+  return 0;
+}
+
+#endif /* WIN32  && ! __MINGW64__ */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_see.h b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_see.h
new file mode 100644
index 0000000..b07741d
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_see.h
@@ -0,0 +1,46 @@
+#ifndef HEADER_CURL_TOOL_CB_SEE_H
+#define HEADER_CURL_TOOL_CB_SEE_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#if defined(WIN32) && !defined(__MINGW64__)
+
+int tool_ftruncate64(int fd, curl_off_t where);
+
+#undef  ftruncate
+#define ftruncate(fd,where) tool_ftruncate64(fd,where)
+
+#ifndef HAVE_FTRUNCATE
+#  define HAVE_FTRUNCATE 1
+#endif
+
+#endif /* WIN32  && ! __MINGW64__ */
+
+/*
+** callback for CURLOPT_SEEKFUNCTION
+*/
+
+int tool_seek_cb(void *userdata, curl_off_t offset, int whence);
+
+#endif /* HEADER_CURL_TOOL_CB_SEE_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_wrt.c b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_wrt.c
new file mode 100644
index 0000000..6c08943
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_wrt.c
@@ -0,0 +1,159 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_msgs.h"
+#include "tool_cb_wrt.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/* create a local file for writing, return TRUE on success */
+bool tool_create_output_file(struct OutStruct *outs)
+{
+  struct GlobalConfig *global = outs->config->global;
+  FILE *file;
+
+  if(!outs->filename || !*outs->filename) {
+    warnf(global, "Remote filename has no length!\n");
+    return FALSE;
+  }
+
+  if(outs->is_cd_filename) {
+    /* don't overwrite existing files */
+    file = fopen(outs->filename, "rb");
+    if(file) {
+      fclose(file);
+      warnf(global, "Refusing to overwrite %s: %s\n", outs->filename,
+            strerror(EEXIST));
+      return FALSE;
+    }
+  }
+
+  /* open file for writing */
+  file = fopen(outs->filename, "wb");
+  if(!file) {
+    warnf(global, "Failed to create the file %s: %s\n", outs->filename,
+          strerror(errno));
+    return FALSE;
+  }
+  outs->s_isreg = TRUE;
+  outs->fopened = TRUE;
+  outs->stream = file;
+  outs->bytes = 0;
+  outs->init = 0;
+  return TRUE;
+}
+
+/*
+** callback for CURLOPT_WRITEFUNCTION
+*/
+
+size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata)
+{
+  size_t rc;
+  struct OutStruct *outs = userdata;
+  struct OperationConfig *config = outs->config;
+
+  /*
+   * Once that libcurl has called back tool_write_cb() the returned value
+   * is checked against the amount that was intended to be written, if
+   * it does not match then it fails with CURLE_WRITE_ERROR. So at this
+   * point returning a value different from sz*nmemb indicates failure.
+   */
+  const size_t failure = (sz && nmemb) ? 0 : 1;
+
+  if(!config)
+    return failure;
+
+#ifdef DEBUGBUILD
+  if(config->include_headers) {
+    if(sz * nmemb > (size_t)CURL_MAX_HTTP_HEADER) {
+      warnf(config->global, "Header data size exceeds single call write "
+            "limit!\n");
+      return failure;
+    }
+  }
+  else {
+    if(sz * nmemb > (size_t)CURL_MAX_WRITE_SIZE) {
+      warnf(config->global, "Data size exceeds single call write limit!\n");
+      return failure;
+    }
+  }
+
+  {
+    /* Some internal congruency checks on received OutStruct */
+    bool check_fails = FALSE;
+    if(outs->filename) {
+      /* regular file */
+      if(!*outs->filename)
+        check_fails = TRUE;
+      if(!outs->s_isreg)
+        check_fails = TRUE;
+      if(outs->fopened && !outs->stream)
+        check_fails = TRUE;
+      if(!outs->fopened && outs->stream)
+        check_fails = TRUE;
+      if(!outs->fopened && outs->bytes)
+        check_fails = TRUE;
+    }
+    else {
+      /* standard stream */
+      if(!outs->stream || outs->s_isreg || outs->fopened)
+        check_fails = TRUE;
+      if(outs->alloc_filename || outs->is_cd_filename || outs->init)
+        check_fails = TRUE;
+    }
+    if(check_fails) {
+      warnf(config->global, "Invalid output struct data for write callback\n");
+      return failure;
+    }
+  }
+#endif
+
+  if(!outs->stream && !tool_create_output_file(outs))
+    return failure;
+
+  rc = fwrite(buffer, sz, nmemb, outs->stream);
+
+  if((sz * nmemb) == rc)
+    /* we added this amount of data to the output */
+    outs->bytes += (sz * nmemb);
+
+  if(config->readbusy) {
+    config->readbusy = FALSE;
+    curl_easy_pause(config->easy, CURLPAUSE_CONT);
+  }
+
+  if(config->nobuffer) {
+    /* output buffering disabled */
+    int res = fflush(outs->stream);
+    if(res)
+      return failure;
+  }
+
+  return rc;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cb_wrt.h b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_wrt.h
new file mode 100644
index 0000000..4ccbf3a
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cb_wrt.h
@@ -0,0 +1,36 @@
+#ifndef HEADER_CURL_TOOL_CB_WRT_H
+#define HEADER_CURL_TOOL_CB_WRT_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+/*
+** callback for CURLOPT_WRITEFUNCTION
+*/
+
+size_t tool_write_cb(char *buffer, size_t sz, size_t nmemb, void *userdata);
+
+/* create a local file for writing, return TRUE on success */
+bool tool_create_output_file(struct OutStruct *outs);
+
+#endif /* HEADER_CURL_TOOL_CB_WRT_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cfgable.c b/ap/lib/libcurl/curl-7.54.1/src/tool_cfgable.c
new file mode 100644
index 0000000..f00a0d1
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cfgable.c
@@ -0,0 +1,174 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "tool_cfgable.h"
+#include "tool_main.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+void config_init(struct OperationConfig* config)
+{
+  memset(config, 0, sizeof(struct OperationConfig));
+
+  config->postfieldsize = -1;
+  config->use_httpget = FALSE;
+  config->create_dirs = FALSE;
+  config->maxredirs = DEFAULT_MAXREDIRS;
+  config->proto = CURLPROTO_ALL; /* FIXME: better to read from library */
+  config->proto_present = FALSE;
+  config->proto_redir = CURLPROTO_ALL & /* All except FILE, SCP and SMB */
+                        ~(CURLPROTO_FILE | CURLPROTO_SCP | CURLPROTO_SMB |
+                          CURLPROTO_SMBS);
+  config->proto_redir_present = FALSE;
+  config->proto_default = NULL;
+  config->tcp_nodelay = TRUE; /* enabled by default */
+}
+
+static void free_config_fields(struct OperationConfig *config)
+{
+  struct getout *urlnode;
+
+  Curl_safefree(config->random_file);
+  Curl_safefree(config->egd_file);
+  Curl_safefree(config->useragent);
+  Curl_safefree(config->cookie);
+  Curl_safefree(config->cookiejar);
+  Curl_safefree(config->cookiefile);
+
+  Curl_safefree(config->postfields);
+  Curl_safefree(config->referer);
+
+  Curl_safefree(config->headerfile);
+  Curl_safefree(config->ftpport);
+  Curl_safefree(config->iface);
+
+  Curl_safefree(config->range);
+
+  Curl_safefree(config->userpwd);
+  Curl_safefree(config->tls_username);
+  Curl_safefree(config->tls_password);
+  Curl_safefree(config->tls_authtype);
+  Curl_safefree(config->proxy_tls_username);
+  Curl_safefree(config->proxy_tls_password);
+  Curl_safefree(config->proxy_tls_authtype);
+  Curl_safefree(config->proxyuserpwd);
+  Curl_safefree(config->proxy);
+
+  Curl_safefree(config->dns_ipv6_addr);
+  Curl_safefree(config->dns_ipv4_addr);
+  Curl_safefree(config->dns_interface);
+  Curl_safefree(config->dns_servers);
+
+  Curl_safefree(config->noproxy);
+
+  Curl_safefree(config->mail_from);
+  curl_slist_free_all(config->mail_rcpt);
+  Curl_safefree(config->mail_auth);
+
+  Curl_safefree(config->netrc_file);
+
+  urlnode = config->url_list;
+  while(urlnode) {
+    struct getout *next = urlnode->next;
+    Curl_safefree(urlnode->url);
+    Curl_safefree(urlnode->outfile);
+    Curl_safefree(urlnode->infile);
+    Curl_safefree(urlnode);
+    urlnode = next;
+  }
+  config->url_list = NULL;
+  config->url_last = NULL;
+  config->url_get = NULL;
+  config->url_out = NULL;
+
+  Curl_safefree(config->cipher_list);
+  Curl_safefree(config->proxy_cipher_list);
+  Curl_safefree(config->cert);
+  Curl_safefree(config->proxy_cert);
+  Curl_safefree(config->cert_type);
+  Curl_safefree(config->proxy_cert_type);
+  Curl_safefree(config->cacert);
+  Curl_safefree(config->proxy_cacert);
+  Curl_safefree(config->capath);
+  Curl_safefree(config->proxy_capath);
+  Curl_safefree(config->crlfile);
+  Curl_safefree(config->pinnedpubkey);
+  Curl_safefree(config->proxy_crlfile);
+  Curl_safefree(config->key);
+  Curl_safefree(config->proxy_key);
+  Curl_safefree(config->key_type);
+  Curl_safefree(config->proxy_key_type);
+  Curl_safefree(config->key_passwd);
+  Curl_safefree(config->proxy_key_passwd);
+  Curl_safefree(config->pubkey);
+  Curl_safefree(config->hostpubmd5);
+  Curl_safefree(config->engine);
+
+  Curl_safefree(config->customrequest);
+  Curl_safefree(config->krblevel);
+
+  Curl_safefree(config->oauth_bearer);
+
+  Curl_safefree(config->unix_socket_path);
+  Curl_safefree(config->writeout);
+  Curl_safefree(config->proto_default);
+
+  curl_slist_free_all(config->quote);
+  curl_slist_free_all(config->postquote);
+  curl_slist_free_all(config->prequote);
+
+  curl_slist_free_all(config->headers);
+  curl_slist_free_all(config->proxyheaders);
+
+  if(config->httppost) {
+    curl_formfree(config->httppost);
+    config->httppost = NULL;
+  }
+  config->last_post = NULL;
+
+  curl_slist_free_all(config->telnet_options);
+  curl_slist_free_all(config->resolve);
+  curl_slist_free_all(config->connect_to);
+
+  Curl_safefree(config->preproxy);
+  Curl_safefree(config->proxy_service_name);
+  Curl_safefree(config->service_name);
+
+  Curl_safefree(config->ftp_account);
+  Curl_safefree(config->ftp_alternative_to_user);
+}
+
+void config_free(struct OperationConfig *config)
+{
+  struct OperationConfig *last = config;
+
+  /* Free each of the structures in reverse order */
+  while(last) {
+    struct OperationConfig *prev = last->prev;
+
+    free_config_fields(last);
+    free(last);
+
+    last = prev;
+  }
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_cfgable.h b/ap/lib/libcurl/curl-7.54.1/src/tool_cfgable.h
new file mode 100644
index 0000000..38777f6
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_cfgable.h
@@ -0,0 +1,270 @@
+#ifndef HEADER_CURL_TOOL_CFGABLE_H
+#define HEADER_CURL_TOOL_CFGABLE_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "tool_sdecls.h"
+
+#include "tool_metalink.h"
+
+struct GlobalConfig;
+
+struct OperationConfig {
+  CURL *easy;               /* A copy of the handle from GlobalConfig */
+  bool remote_time;
+  char *random_file;
+  char *egd_file;
+  char *useragent;
+  char *cookie;             /* single line with specified cookies */
+  char *cookiejar;          /* write to this file */
+  char *cookiefile;         /* read from this file */
+  bool cookiesession;       /* new session? */
+  bool encoding;            /* Accept-Encoding please */
+  bool tr_encoding;         /* Transfer-Encoding please */
+  unsigned long authtype;   /* auth bitmask */
+  bool use_resume;
+  bool resume_from_current;
+  bool disable_epsv;
+  bool disable_eprt;
+  bool ftp_pret;
+  long proto;
+  bool proto_present;
+  long proto_redir;
+  bool proto_redir_present;
+  char *proto_default;
+  curl_off_t resume_from;
+  char *postfields;
+  curl_off_t postfieldsize;
+  char *referer;
+  double timeout;
+  double connecttimeout;
+  long maxredirs;
+  curl_off_t max_filesize;
+  char *headerfile;
+  char *ftpport;
+  char *iface;
+  int localport;
+  int localportrange;
+  unsigned short porttouse;
+  char *range;
+  long low_speed_limit;
+  long low_speed_time;
+  char *dns_servers;   /* dot notation: 1.1.1.1;2.2.2.2 */
+  char *dns_interface; /* interface name */
+  char *dns_ipv4_addr; /* dot notation */
+  char *dns_ipv6_addr; /* dot notation */
+  char *userpwd;
+  char *login_options;
+  char *tls_username;
+  char *tls_password;
+  char *tls_authtype;
+  char *proxy_tls_username;
+  char *proxy_tls_password;
+  char *proxy_tls_authtype;
+  char *proxyuserpwd;
+  char *proxy;
+  int proxyver;             /* set to CURLPROXY_HTTP* define */
+  char *noproxy;
+  char *mail_from;
+  struct curl_slist *mail_rcpt;
+  char *mail_auth;
+  bool sasl_ir;             /* Enable/disable SASL initial response */
+  bool proxytunnel;
+  bool ftp_append;          /* APPE on ftp */
+  bool use_ascii;           /* select ascii or text transfer */
+  bool autoreferer;         /* automatically set referer */
+  bool failonerror;         /* fail on (HTTP) errors */
+  bool include_headers;     /* send headers to data output */
+  bool no_body;             /* don't get the body */
+  bool dirlistonly;         /* only get the FTP dir list */
+  bool followlocation;      /* follow http redirects */
+  bool unrestricted_auth;   /* Continue to send authentication (user+password)
+                               when following ocations, even when hostname
+                               changed */
+  bool netrc_opt;
+  bool netrc;
+  char *netrc_file;
+  struct getout *url_list;  /* point to the first node */
+  struct getout *url_last;  /* point to the last/current node */
+  struct getout *url_get;   /* point to the node to fill in URL */
+  struct getout *url_out;   /* point to the node to fill in outfile */
+  char *cipher_list;
+  char *proxy_cipher_list;
+  char *cert;
+  char *proxy_cert;
+  char *cert_type;
+  char *proxy_cert_type;
+  char *cacert;
+  char *proxy_cacert;
+  char *capath;
+  char *proxy_capath;
+  char *crlfile;
+  char *proxy_crlfile;
+  char *pinnedpubkey;
+  char *key;
+  char *proxy_key;
+  char *key_type;
+  char *proxy_key_type;
+  char *key_passwd;
+  char *proxy_key_passwd;
+  char *pubkey;
+  char *hostpubmd5;
+  char *engine;
+  bool crlf;
+  char *customrequest;
+  char *krblevel;
+  long httpversion;
+  bool nobuffer;
+  bool readbusy;            /* set when reading input returns EAGAIN */
+  bool globoff;
+  bool use_httpget;
+  bool insecure_ok;         /* set TRUE to allow insecure SSL connects */
+  bool proxy_insecure_ok;   /* set TRUE to allow insecure SSL connects
+                               for proxy */
+  bool verifystatus;
+  bool create_dirs;
+  bool ftp_create_dirs;
+  bool ftp_skip_ip;
+  bool proxynegotiate;
+  bool proxyntlm;
+  bool proxydigest;
+  bool proxybasic;
+  bool proxyanyauth;
+  char *writeout;           /* %-styled format string to output */
+  struct curl_slist *quote;
+  struct curl_slist *postquote;
+  struct curl_slist *prequote;
+  long ssl_version;
+  long ssl_version_max;
+  long proxy_ssl_version;
+  long ip_version;
+  curl_TimeCond timecond;
+  time_t condtime;
+  struct curl_slist *headers;
+  struct curl_slist *proxyheaders;
+  struct curl_httppost *httppost;
+  struct curl_httppost *last_post;
+  struct curl_slist *telnet_options;
+  struct curl_slist *resolve;
+  struct curl_slist *connect_to;
+  HttpReq httpreq;
+
+  /* for bandwidth limiting features: */
+  curl_off_t sendpersecond; /* send to peer */
+  curl_off_t recvpersecond; /* receive from peer */
+
+  bool ftp_ssl;
+  bool ftp_ssl_reqd;
+  bool ftp_ssl_control;
+  bool ftp_ssl_ccc;
+  int ftp_ssl_ccc_mode;
+  char *preproxy;
+  int socks5_gssapi_nec;    /* The NEC reference server does not protect the
+                               encryption type exchange */
+  char *proxy_service_name; /* set authentication service name for HTTP and
+                               SOCKS5 proxies */
+  char *service_name;       /* set authentication service name for DIGEST-MD5,
+                               Kerberos 5 and SPNEGO */
+
+  bool tcp_nodelay;
+  bool tcp_fastopen;
+  long req_retry;           /* number of retries */
+  bool retry_connrefused;   /* set connection refused as a transient error */
+  long retry_delay;         /* delay between retries (in seconds) */
+  long retry_maxtime;       /* maximum time to keep retrying */
+
+  char *ftp_account;        /* for ACCT */
+  char *ftp_alternative_to_user;  /* send command if USER/PASS fails */
+  int ftp_filemethod;
+  long tftp_blksize;        /* TFTP BLKSIZE option */
+  bool tftp_no_options;     /* do not send TFTP options requests */
+  bool ignorecl;            /* --ignore-content-length */
+  bool disable_sessionid;
+
+  bool raw;
+  bool post301;
+  bool post302;
+  bool post303;
+  bool nokeepalive;         /* for keepalive needs */
+  long alivetime;
+  bool content_disposition; /* use Content-disposition filename */
+
+  int default_node_flags;   /* default flags to search for each 'node', which
+                               is basically each given URL to transfer */
+
+  bool xattr;               /* store metadata in extended attributes */
+  long gssapi_delegation;
+  bool ssl_allow_beast;     /* allow this SSL vulnerability */
+  bool proxy_ssl_allow_beast; /* allow this SSL vulnerability for proxy*/
+
+  bool ssl_no_revoke;       /* disable SSL certificate revocation checks */
+  /*bool proxy_ssl_no_revoke; */
+
+  bool use_metalink;        /* process given URLs as metalink XML file */
+  metalinkfile *metalinkfile_list; /* point to the first node */
+  metalinkfile *metalinkfile_last; /* point to the last/current node */
+#ifdef CURLDEBUG
+  bool test_event_based;
+#endif
+  char *oauth_bearer;             /* OAuth 2.0 bearer token */
+  bool nonpn;                     /* enable/disable TLS NPN extension */
+  bool noalpn;                    /* enable/disable TLS ALPN extension */
+  char *unix_socket_path;         /* path to Unix domain socket */
+  bool abstract_unix_socket;      /* path to an abstract Unix domain socket */
+  bool falsestart;
+  bool path_as_is;
+  double expect100timeout;
+  bool suppress_connect_headers;  /* suppress proxy CONNECT response headers
+                                     from user callbacks */
+  struct GlobalConfig *global;
+  struct OperationConfig *prev;
+  struct OperationConfig *next;   /* Always last in the struct */
+};
+
+struct GlobalConfig {
+  CURL *easy;                     /* Once we have one, we keep it here */
+  int showerror;                  /* -1 == unset, default => show errors
+                                      0 => -s is used to NOT show errors
+                                      1 => -S has been used to show errors */
+  bool mute;                      /* don't show messages, --silent given */
+  bool noprogress;                /* don't show progress bar --silent given */
+  bool isatty;                    /* Updated internally if output is a tty */
+  FILE *errors;                   /* Error stream, defaults to stderr */
+  bool errors_fopened;            /* Whether error stream isn't stderr */
+  char *trace_dump;               /* file to dump the network trace to */
+  FILE *trace_stream;
+  bool trace_fopened;
+  trace tracetype;
+  bool tracetime;                 /* include timestamp? */
+  int progressmode;               /* CURL_PROGRESS_BAR / CURL_PROGRESS_STATS */
+  char *libcurl;                  /* Output libcurl code to this file name */
+  bool fail_early;                /* exit on first transfer error */
+  struct OperationConfig *first;
+  struct OperationConfig *current;
+  struct OperationConfig *last;   /* Always last in the struct */
+};
+
+void config_init(struct OperationConfig *config);
+void config_free(struct OperationConfig *config);
+
+#endif /* HEADER_CURL_TOOL_CFGABLE_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_convert.c b/ap/lib/libcurl/curl-7.54.1/src/tool_convert.c
new file mode 100644
index 0000000..d0f5dcb
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_convert.c
@@ -0,0 +1,150 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef CURL_DOES_CONVERSIONS
+
+#ifdef HAVE_ICONV
+#  include <iconv.h>
+#endif
+
+#include "tool_convert.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifdef HAVE_ICONV
+
+/* curl tool iconv conversion descriptors */
+static iconv_t inbound_cd  = (iconv_t)-1;
+static iconv_t outbound_cd = (iconv_t)-1;
+
+/* set default codesets for iconv */
+#ifndef CURL_ICONV_CODESET_OF_NETWORK
+#  define CURL_ICONV_CODESET_OF_NETWORK "ISO8859-1"
+#endif
+
+/*
+ * convert_to_network() is a curl tool function to convert
+ * from the host encoding to ASCII on non-ASCII platforms.
+ */
+CURLcode convert_to_network(char *buffer, size_t length)
+{
+  /* translate from the host encoding to the network encoding */
+  char *input_ptr, *output_ptr;
+  size_t res, in_bytes, out_bytes;
+
+  /* open an iconv conversion descriptor if necessary */
+  if(outbound_cd == (iconv_t)-1) {
+    outbound_cd = iconv_open(CURL_ICONV_CODESET_OF_NETWORK,
+                             CURL_ICONV_CODESET_OF_HOST);
+    if(outbound_cd == (iconv_t)-1) {
+      return CURLE_CONV_FAILED;
+    }
+  }
+  /* call iconv */
+  input_ptr = output_ptr = buffer;
+  in_bytes = out_bytes = length;
+  res = iconv(outbound_cd, &input_ptr,  &in_bytes,
+              &output_ptr, &out_bytes);
+  if((res == (size_t)-1) || (in_bytes != 0)) {
+    return CURLE_CONV_FAILED;
+  }
+
+  return CURLE_OK;
+}
+
+/*
+ * convert_from_network() is a curl tool function
+ * for performing ASCII conversions on non-ASCII platforms.
+ */
+CURLcode convert_from_network(char *buffer, size_t length)
+{
+  /* translate from the network encoding to the host encoding */
+  char *input_ptr, *output_ptr;
+  size_t res, in_bytes, out_bytes;
+
+  /* open an iconv conversion descriptor if necessary */
+  if(inbound_cd == (iconv_t)-1) {
+    inbound_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
+                            CURL_ICONV_CODESET_OF_NETWORK);
+    if(inbound_cd == (iconv_t)-1) {
+      return CURLE_CONV_FAILED;
+    }
+  }
+  /* call iconv */
+  input_ptr = output_ptr = buffer;
+  in_bytes = out_bytes = length;
+  res = iconv(inbound_cd, &input_ptr,  &in_bytes,
+              &output_ptr, &out_bytes);
+  if((res == (size_t)-1) || (in_bytes != 0)) {
+    return CURLE_CONV_FAILED;
+  }
+
+  return CURLE_OK;
+}
+
+void convert_cleanup(void)
+{
+  /* close iconv conversion descriptors */
+  if(inbound_cd != (iconv_t)-1)
+    (void)iconv_close(inbound_cd);
+  if(outbound_cd != (iconv_t)-1)
+    (void)iconv_close(outbound_cd);
+}
+
+#endif /* HAVE_ICONV */
+
+char convert_char(curl_infotype infotype, char this_char)
+{
+/* determine how this specific character should be displayed */
+  switch(infotype) {
+  case CURLINFO_DATA_IN:
+  case CURLINFO_DATA_OUT:
+  case CURLINFO_SSL_DATA_IN:
+  case CURLINFO_SSL_DATA_OUT:
+    /* data, treat as ASCII */
+    if((this_char >= 0x20) && (this_char < 0x7f)) {
+      /* printable ASCII hex value: convert to host encoding */
+      (void)convert_from_network(&this_char, 1);
+    }
+    else {
+      /* non-printable ASCII, use a replacement character */
+      return UNPRINTABLE_CHAR;
+    }
+    /* fall through to default */
+  default:
+    /* treat as host encoding */
+    if(ISPRINT(this_char)
+       &&  (this_char != '\t')
+       &&  (this_char != '\r')
+       &&  (this_char != '\n')) {
+      /* printable characters excluding tabs and line end characters */
+      return this_char;
+    }
+    break;
+  }
+  /* non-printable, use a replacement character  */
+  return UNPRINTABLE_CHAR;
+}
+
+#endif /* CURL_DOES_CONVERSIONS */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_convert.h b/ap/lib/libcurl/curl-7.54.1/src/tool_convert.h
new file mode 100644
index 0000000..d1b1d23
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_convert.h
@@ -0,0 +1,45 @@
+#ifndef HEADER_CURL_TOOL_CONVERT_H
+#define HEADER_CURL_TOOL_CONVERT_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef CURL_DOES_CONVERSIONS
+
+#ifdef HAVE_ICONV
+
+CURLcode convert_to_network(char *buffer, size_t length);
+CURLcode convert_from_network(char *buffer, size_t length);
+void convert_cleanup(void);
+
+#endif /* HAVE_ICONV */
+
+char convert_char(curl_infotype infotype, char this_char);
+
+#endif /* CURL_DOES_CONVERSIONS */
+
+#if !defined(CURL_DOES_CONVERSIONS) || !defined(HAVE_ICONV)
+#define convert_cleanup() Curl_nop_stmt
+#endif
+
+#endif /* HEADER_CURL_TOOL_CONVERT_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_dirhie.c b/ap/lib/libcurl/curl-7.54.1/src/tool_dirhie.c
new file mode 100644
index 0000000..23bb2cb
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_dirhie.c
@@ -0,0 +1,158 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include <sys/stat.h>
+
+#ifdef WIN32
+#  include <direct.h>
+#endif
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_dirhie.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifdef NETWARE
+#  ifndef __NOVELL_LIBC__
+#    define mkdir mkdir_510
+#  endif
+#endif
+
+#ifdef WIN32
+#  define mkdir(x,y) (mkdir)((x))
+#  ifndef __POCC__
+#    define F_OK 0
+#  endif
+#endif
+
+static void show_dir_errno(FILE *errors, const char *name)
+{
+  switch(ERRNO) {
+#ifdef EACCES
+  case EACCES:
+    fprintf(errors, "You don't have permission to create %s.\n", name);
+    break;
+#endif
+#ifdef ENAMETOOLONG
+  case ENAMETOOLONG:
+    fprintf(errors, "The directory name %s is too long.\n", name);
+    break;
+#endif
+#ifdef EROFS
+  case EROFS:
+    fprintf(errors, "%s resides on a read-only file system.\n", name);
+    break;
+#endif
+#ifdef ENOSPC
+  case ENOSPC:
+    fprintf(errors, "No space left on the file system that will "
+            "contain the directory %s.\n", name);
+    break;
+#endif
+#ifdef EDQUOT
+  case EDQUOT:
+    fprintf(errors, "Cannot create directory %s because you "
+            "exceeded your quota.\n", name);
+    break;
+#endif
+  default :
+    fprintf(errors, "Error creating directory %s.\n", name);
+    break;
+  }
+}
+
+/*
+ * Create the needed directory hierarchy recursively in order to save
+ *  multi-GETs in file output, ie:
+ *  curl "http://my.site/dir[1-5]/file[1-5].txt" -o "dir#1/file#2.txt"
+ *  should create all the dir* automagically
+ */
+
+#ifdef WIN32
+/* systems that may use either or when specifying a path */
+#define PATH_DELIMITERS "\\/"
+#else
+#define PATH_DELIMITERS DIR_CHAR
+#endif
+
+
+CURLcode create_dir_hierarchy(const char *outfile, FILE *errors)
+{
+  char *tempdir;
+  char *tempdir2;
+  char *outdup;
+  char *dirbuildup;
+  CURLcode result = CURLE_OK;
+  size_t outlen;
+
+  outlen = strlen(outfile);
+  outdup = strdup(outfile);
+  if(!outdup)
+    return CURLE_OUT_OF_MEMORY;
+
+  dirbuildup = malloc(outlen + 1);
+  if(!dirbuildup) {
+    Curl_safefree(outdup);
+    return CURLE_OUT_OF_MEMORY;
+  }
+  dirbuildup[0] = '\0';
+
+  /* Allow strtok() here since this isn't used threaded */
+  /* !checksrc! disable BANNEDFUNC 2 */
+  tempdir = strtok(outdup, PATH_DELIMITERS);
+
+  while(tempdir != NULL) {
+    tempdir2 = strtok(NULL, PATH_DELIMITERS);
+    /* since strtok returns a token for the last word even
+       if not ending with DIR_CHAR, we need to prune it */
+    if(tempdir2 != NULL) {
+      size_t dlen = strlen(dirbuildup);
+      if(dlen)
+        snprintf(&dirbuildup[dlen], outlen - dlen, "%s%s", DIR_CHAR, tempdir);
+      else {
+        if(outdup == tempdir)
+          /* the output string doesn't start with a separator */
+          strcpy(dirbuildup, tempdir);
+        else
+          snprintf(dirbuildup, outlen, "%s%s", DIR_CHAR, tempdir);
+      }
+      if(access(dirbuildup, F_OK) == -1) {
+        if(-1 == mkdir(dirbuildup, (mode_t)0000750)) {
+          show_dir_errno(errors, dirbuildup);
+          result = CURLE_WRITE_ERROR;
+          break; /* get out of loop */
+        }
+      }
+    }
+    tempdir = tempdir2;
+  }
+
+  Curl_safefree(dirbuildup);
+  Curl_safefree(outdup);
+
+  return result;
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_dirhie.h b/ap/lib/libcurl/curl-7.54.1/src/tool_dirhie.h
new file mode 100644
index 0000000..cc67687
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_dirhie.h
@@ -0,0 +1,29 @@
+#ifndef HEADER_CURL_TOOL_DIRHIE_H
+#define HEADER_CURL_TOOL_DIRHIE_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+CURLcode create_dir_hierarchy(const char *outfile, FILE *errors);
+
+#endif /* HEADER_CURL_TOOL_DIRHIE_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_doswin.c b/ap/lib/libcurl/curl-7.54.1/src/tool_doswin.c
new file mode 100644
index 0000000..9129998
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_doswin.c
@@ -0,0 +1,668 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#if defined(MSDOS) || defined(WIN32)
+
+#if defined(HAVE_LIBGEN_H) && defined(HAVE_BASENAME)
+#  include <libgen.h>
+#endif
+
+#ifdef WIN32
+#  include "tool_cfgable.h"
+#  include "tool_libinfo.h"
+#endif
+
+#include "tool_bname.h"
+#include "tool_doswin.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/*
+ * Macros ALWAYS_TRUE and ALWAYS_FALSE are used to avoid compiler warnings.
+ */
+
+#define ALWAYS_TRUE   (1)
+#define ALWAYS_FALSE  (0)
+
+#if defined(_MSC_VER) && !defined(__POCC__)
+#  undef ALWAYS_TRUE
+#  undef ALWAYS_FALSE
+#  if (_MSC_VER < 1500)
+#    define ALWAYS_TRUE   (0, 1)
+#    define ALWAYS_FALSE  (1, 0)
+#  else
+#    define ALWAYS_TRUE \
+__pragma(warning(push)) \
+__pragma(warning(disable:4127)) \
+(1) \
+__pragma(warning(pop))
+#    define ALWAYS_FALSE \
+__pragma(warning(push)) \
+__pragma(warning(disable:4127)) \
+(0) \
+__pragma(warning(pop))
+#  endif
+#endif
+
+#ifdef WIN32
+#  undef  PATH_MAX
+#  define PATH_MAX MAX_PATH
+#endif
+
+#ifndef S_ISCHR
+#  ifdef S_IFCHR
+#    define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
+#  else
+#    define S_ISCHR(m) (0) /* cannot tell if file is a device */
+#  endif
+#endif
+
+#ifdef WIN32
+#  define _use_lfn(f) ALWAYS_TRUE   /* long file names always available */
+#elif !defined(__DJGPP__) || (__DJGPP__ < 2)  /* DJGPP 2.0 has _use_lfn() */
+#  define _use_lfn(f) ALWAYS_FALSE  /* long file names never available */
+#elif defined(__DJGPP__)
+#  include <fcntl.h>                /* _use_lfn(f) prototype */
+#endif
+
+#ifndef UNITTESTS
+static SANITIZEcode truncate_dryrun(const char *path,
+                                    const size_t truncate_pos);
+#ifdef MSDOS
+static SANITIZEcode msdosify(char **const sanitized, const char *file_name,
+                             int flags);
+#endif
+static SANITIZEcode rename_if_reserved_dos_device_name(char **const sanitized,
+                                                       const char *file_name,
+                                                       int flags);
+#endif /* !UNITTESTS (static declarations used if no unit tests) */
+
+
+/*
+Sanitize a file or path name.
+
+All banned characters are replaced by underscores, for example:
+f?*foo => f__foo
+f:foo::$DATA => f_foo__$DATA
+f:\foo:bar => f__foo_bar
+f:\foo:bar => f:\foo:bar   (flag SANITIZE_ALLOW_PATH)
+
+This function was implemented according to the guidelines in 'Naming Files,
+Paths, and Namespaces' section 'Naming Conventions'.
+https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx
+
+Flags
+-----
+SANITIZE_ALLOW_COLONS:     Allow colons.
+Without this flag colons are sanitized.
+
+SANITIZE_ALLOW_PATH:       Allow path separators and colons.
+Without this flag path separators and colons are sanitized.
+
+SANITIZE_ALLOW_RESERVED:   Allow reserved device names.
+Without this flag a reserved device name is renamed (COM1 => _COM1) unless it's
+in a UNC prefixed path.
+
+SANITIZE_ALLOW_TRUNCATE:   Allow truncating a long filename.
+Without this flag if the sanitized filename or path will be too long an error
+occurs. With this flag the filename --and not any other parts of the path-- may
+be truncated to at least a single character. A filename followed by an
+alternate data stream (ADS) cannot be truncated in any case.
+
+Success: (SANITIZE_ERR_OK) *sanitized points to a sanitized copy of file_name.
+Failure: (!= SANITIZE_ERR_OK) *sanitized is NULL.
+*/
+SANITIZEcode sanitize_file_name(char **const sanitized, const char *file_name,
+                                int flags)
+{
+  char *p, *target;
+  size_t len;
+  SANITIZEcode sc;
+  size_t max_sanitized_len;
+
+  if(!sanitized)
+    return SANITIZE_ERR_BAD_ARGUMENT;
+
+  *sanitized = NULL;
+
+  if(!file_name)
+    return SANITIZE_ERR_BAD_ARGUMENT;
+
+  if((flags & SANITIZE_ALLOW_PATH)) {
+#ifndef MSDOS
+    if(file_name[0] == '\\' && file_name[1] == '\\')
+      /* UNC prefixed path \\ (eg \\?\C:\foo) */
+      max_sanitized_len = 32767-1;
+    else
+#endif
+      max_sanitized_len = PATH_MAX-1;
+  }
+  else
+    /* The maximum length of a filename.
+       FILENAME_MAX is often the same as PATH_MAX, in other words it is 260 and
+       does not discount the path information therefore we shouldn't use it. */
+    max_sanitized_len = (PATH_MAX-1 > 255) ? 255 : PATH_MAX-1;
+
+  len = strlen(file_name);
+  if(len > max_sanitized_len) {
+    if(!(flags & SANITIZE_ALLOW_TRUNCATE) ||
+       truncate_dryrun(file_name, max_sanitized_len))
+      return SANITIZE_ERR_INVALID_PATH;
+
+    len = max_sanitized_len;
+  }
+
+  target = malloc(len + 1);
+  if(!target)
+    return SANITIZE_ERR_OUT_OF_MEMORY;
+
+  strncpy(target, file_name, len);
+  target[len] = '\0';
+
+#ifndef MSDOS
+  if((flags & SANITIZE_ALLOW_PATH) && !strncmp(target, "\\\\?\\", 4))
+    /* Skip the literal path prefix \\?\ */
+    p = target + 4;
+  else
+#endif
+    p = target;
+
+  /* replace control characters and other banned characters */
+  for(; *p; ++p) {
+    const char *banned;
+
+    if((1 <= *p && *p <= 31) ||
+       (!(flags & (SANITIZE_ALLOW_COLONS|SANITIZE_ALLOW_PATH)) && *p == ':') ||
+       (!(flags & SANITIZE_ALLOW_PATH) && (*p == '/' || *p == '\\'))) {
+      *p = '_';
+      continue;
+    }
+
+    for(banned = "|<>\"?*"; *banned; ++banned) {
+      if(*p == *banned) {
+        *p = '_';
+        break;
+      }
+    }
+  }
+
+  /* remove trailing spaces and periods if not allowing paths */
+  if(!(flags & SANITIZE_ALLOW_PATH) && len) {
+    char *clip = NULL;
+
+    p = &target[len];
+    do {
+      --p;
+      if(*p != ' ' && *p != '.')
+        break;
+      clip = p;
+    } while(p != target);
+
+    if(clip) {
+      *clip = '\0';
+      len = clip - target;
+    }
+  }
+
+#ifdef MSDOS
+  sc = msdosify(&p, target, flags);
+  free(target);
+  if(sc)
+    return sc;
+  target = p;
+  len = strlen(target);
+
+  if(len > max_sanitized_len) {
+    free(target);
+    return SANITIZE_ERR_INVALID_PATH;
+  }
+#endif
+
+  if(!(flags & SANITIZE_ALLOW_RESERVED)) {
+    sc = rename_if_reserved_dos_device_name(&p, target, flags);
+    free(target);
+    if(sc)
+      return sc;
+    target = p;
+    len = strlen(target);
+
+    if(len > max_sanitized_len) {
+      free(target);
+      return SANITIZE_ERR_INVALID_PATH;
+    }
+  }
+
+  *sanitized = target;
+  return SANITIZE_ERR_OK;
+}
+
+
+/*
+Test if truncating a path to a file will leave at least a single character in
+the filename. Filenames suffixed by an alternate data stream can't be
+truncated. This performs a dry run, nothing is modified.
+
+Good truncate_pos 9:    C:\foo\bar  =>  C:\foo\ba
+Good truncate_pos 6:    C:\foo      =>  C:\foo
+Good truncate_pos 5:    C:\foo      =>  C:\fo
+Bad* truncate_pos 5:    C:foo       =>  C:foo
+Bad truncate_pos 5:     C:\foo:ads  =>  C:\fo
+Bad truncate_pos 9:     C:\foo:ads  =>  C:\foo:ad
+Bad truncate_pos 5:     C:\foo\bar  =>  C:\fo
+Bad truncate_pos 5:     C:\foo\     =>  C:\fo
+Bad truncate_pos 7:     C:\foo\     =>  C:\foo\
+Error truncate_pos 7:   C:\foo      =>  (pos out of range)
+Bad truncate_pos 1:     C:\foo\     =>  C
+
+* C:foo is ambiguous, C could end up being a drive or file therefore something
+  like C:superlongfilename can't be truncated.
+
+Returns
+SANITIZE_ERR_OK: Good -- 'path' can be truncated
+SANITIZE_ERR_INVALID_PATH: Bad -- 'path' cannot be truncated
+!= SANITIZE_ERR_OK && != SANITIZE_ERR_INVALID_PATH: Error
+*/
+SANITIZEcode truncate_dryrun(const char *path, const size_t truncate_pos)
+{
+  size_t len;
+
+  if(!path)
+    return SANITIZE_ERR_BAD_ARGUMENT;
+
+  len = strlen(path);
+
+  if(truncate_pos > len)
+    return SANITIZE_ERR_BAD_ARGUMENT;
+
+  if(!len || !truncate_pos)
+    return SANITIZE_ERR_INVALID_PATH;
+
+  if(strpbrk(&path[truncate_pos - 1], "\\/:"))
+    return SANITIZE_ERR_INVALID_PATH;
+
+  /* C:\foo can be truncated but C:\foo:ads can't */
+  if(truncate_pos > 1) {
+    const char *p = &path[truncate_pos - 1];
+    do {
+      --p;
+      if(*p == ':')
+        return SANITIZE_ERR_INVALID_PATH;
+    } while(p != path && *p != '\\' && *p != '/');
+  }
+
+  return SANITIZE_ERR_OK;
+}
+
+/* The functions msdosify, rename_if_dos_device_name and __crt0_glob_function
+ * were taken with modification from the DJGPP port of tar 1.12. They use
+ * algorithms originally from DJTAR.
+ */
+
+/*
+Extra sanitization MSDOS for file_name.
+
+This is a supporting function for sanitize_file_name.
+
+Warning: This is an MSDOS legacy function and was purposely written in a way
+that some path information may pass through. For example drive letter names
+(C:, D:, etc) are allowed to pass through. For sanitizing a filename use
+sanitize_file_name.
+
+Success: (SANITIZE_ERR_OK) *sanitized points to a sanitized copy of file_name.
+Failure: (!= SANITIZE_ERR_OK) *sanitized is NULL.
+*/
+#if defined(MSDOS) || defined(UNITTESTS)
+SANITIZEcode msdosify(char **const sanitized, const char *file_name,
+                      int flags)
+{
+  char dos_name[PATH_MAX];
+  static const char illegal_chars_dos[] = ".+, ;=[]" /* illegal in DOS */
+    "|<>/\\\":?*"; /* illegal in DOS & W95 */
+  static const char *illegal_chars_w95 = &illegal_chars_dos[8];
+  int idx, dot_idx;
+  const char *s = file_name;
+  char *d = dos_name;
+  const char *const dlimit = dos_name + sizeof(dos_name) - 1;
+  const char *illegal_aliens = illegal_chars_dos;
+  size_t len = sizeof(illegal_chars_dos) - 1;
+
+  if(!sanitized)
+    return SANITIZE_ERR_BAD_ARGUMENT;
+
+  *sanitized = NULL;
+
+  if(!file_name)
+    return SANITIZE_ERR_BAD_ARGUMENT;
+
+  if(strlen(file_name) > PATH_MAX-1 &&
+     (!(flags & SANITIZE_ALLOW_TRUNCATE) ||
+      truncate_dryrun(file_name, PATH_MAX-1)))
+    return SANITIZE_ERR_INVALID_PATH;
+
+  /* Support for Windows 9X VFAT systems, when available. */
+  if(_use_lfn(file_name)) {
+    illegal_aliens = illegal_chars_w95;
+    len -= (illegal_chars_w95 - illegal_chars_dos);
+  }
+
+  /* Get past the drive letter, if any. */
+  if(s[0] >= 'A' && s[0] <= 'z' && s[1] == ':') {
+    *d++ = *s++;
+    *d = ((flags & (SANITIZE_ALLOW_COLONS|SANITIZE_ALLOW_PATH))) ? ':' : '_';
+    ++d, ++s;
+  }
+
+  for(idx = 0, dot_idx = -1; *s && d < dlimit; s++, d++) {
+    if(memchr(illegal_aliens, *s, len)) {
+
+      if((flags & (SANITIZE_ALLOW_COLONS|SANITIZE_ALLOW_PATH)) && *s == ':')
+        *d = ':';
+      else if((flags & SANITIZE_ALLOW_PATH) && (*s == '/' || *s == '\\'))
+        *d = *s;
+      /* Dots are special: DOS doesn't allow them as the leading character,
+         and a file name cannot have more than a single dot.  We leave the
+         first non-leading dot alone, unless it comes too close to the
+         beginning of the name: we want sh.lex.c to become sh_lex.c, not
+         sh.lex-c.  */
+      else if(*s == '.') {
+        if((flags & SANITIZE_ALLOW_PATH) && idx == 0 &&
+           (s[1] == '/' || s[1] == '\\' ||
+            (s[1] == '.' && (s[2] == '/' || s[2] == '\\')))) {
+          /* Copy "./" and "../" verbatim.  */
+          *d++ = *s++;
+          if(d == dlimit)
+            break;
+          if(*s == '.') {
+            *d++ = *s++;
+            if(d == dlimit)
+              break;
+          }
+          *d = *s;
+        }
+        else if(idx == 0)
+          *d = '_';
+        else if(dot_idx >= 0) {
+          if(dot_idx < 5) { /* 5 is a heuristic ad-hoc'ery */
+            d[dot_idx - idx] = '_'; /* replace previous dot */
+            *d = '.';
+          }
+          else
+            *d = '-';
+        }
+        else
+          *d = '.';
+
+        if(*s == '.')
+          dot_idx = idx;
+      }
+      else if(*s == '+' && s[1] == '+') {
+        if(idx - 2 == dot_idx) { /* .c++, .h++ etc. */
+          *d++ = 'x';
+          if(d == dlimit)
+            break;
+          *d   = 'x';
+        }
+        else {
+          /* libg++ etc.  */
+          if(dlimit - d < 4) {
+            *d++ = 'x';
+            if(d == dlimit)
+              break;
+            *d   = 'x';
+          }
+          else {
+            memcpy(d, "plus", 4);
+            d += 3;
+          }
+        }
+        s++;
+        idx++;
+      }
+      else
+        *d = '_';
+    }
+    else
+      *d = *s;
+    if(*s == '/' || *s == '\\') {
+      idx = 0;
+      dot_idx = -1;
+    }
+    else
+      idx++;
+  }
+  *d = '\0';
+
+  if(*s) {
+    /* dos_name is truncated, check that truncation requirements are met,
+       specifically truncating a filename suffixed by an alternate data stream
+       or truncating the entire filename is not allowed. */
+    if(!(flags & SANITIZE_ALLOW_TRUNCATE) || strpbrk(s, "\\/:") ||
+       truncate_dryrun(dos_name, d - dos_name))
+      return SANITIZE_ERR_INVALID_PATH;
+  }
+
+  *sanitized = strdup(dos_name);
+  return (*sanitized ? SANITIZE_ERR_OK : SANITIZE_ERR_OUT_OF_MEMORY);
+}
+#endif /* MSDOS || UNITTESTS */
+
+/*
+Rename file_name if it's a reserved dos device name.
+
+This is a supporting function for sanitize_file_name.
+
+Warning: This is an MSDOS legacy function and was purposely written in a way
+that some path information may pass through. For example drive letter names
+(C:, D:, etc) are allowed to pass through. For sanitizing a filename use
+sanitize_file_name.
+
+Success: (SANITIZE_ERR_OK) *sanitized points to a sanitized copy of file_name.
+Failure: (!= SANITIZE_ERR_OK) *sanitized is NULL.
+*/
+SANITIZEcode rename_if_reserved_dos_device_name(char **const sanitized,
+                                                const char *file_name,
+                                                int flags)
+{
+  /* We could have a file whose name is a device on MS-DOS.  Trying to
+   * retrieve such a file would fail at best and wedge us at worst.  We need
+   * to rename such files. */
+  char *p, *base;
+  char fname[PATH_MAX];
+#ifdef MSDOS
+  struct_stat st_buf;
+#endif
+
+  if(!sanitized)
+    return SANITIZE_ERR_BAD_ARGUMENT;
+
+  *sanitized = NULL;
+
+  if(!file_name)
+    return SANITIZE_ERR_BAD_ARGUMENT;
+
+  /* Ignore UNC prefixed paths, they are allowed to contain a reserved name. */
+#ifndef MSDOS
+  if((flags & SANITIZE_ALLOW_PATH) &&
+     file_name[0] == '\\' && file_name[1] == '\\') {
+    size_t len = strlen(file_name);
+    *sanitized = malloc(len + 1);
+    if(!*sanitized)
+      return SANITIZE_ERR_OUT_OF_MEMORY;
+    strncpy(*sanitized, file_name, len + 1);
+    return SANITIZE_ERR_OK;
+  }
+#endif
+
+  if(strlen(file_name) > PATH_MAX-1 &&
+     (!(flags & SANITIZE_ALLOW_TRUNCATE) ||
+      truncate_dryrun(file_name, PATH_MAX-1)))
+    return SANITIZE_ERR_INVALID_PATH;
+
+  strncpy(fname, file_name, PATH_MAX-1);
+  fname[PATH_MAX-1] = '\0';
+  base = basename(fname);
+
+  /* Rename reserved device names that are known to be accessible without \\.\
+     Examples: CON => _CON, CON.EXT => CON_EXT, CON:ADS => CON_ADS
+     https://support.microsoft.com/en-us/kb/74496
+     https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247.aspx
+     */
+  for(p = fname; p; p = (p == fname && fname != base ? base : NULL)) {
+    size_t p_len;
+    int x = (curl_strnequal(p, "CON", 3) ||
+             curl_strnequal(p, "PRN", 3) ||
+             curl_strnequal(p, "AUX", 3) ||
+             curl_strnequal(p, "NUL", 3)) ? 3 :
+            (curl_strnequal(p, "CLOCK$", 6)) ? 6 :
+            (curl_strnequal(p, "COM", 3) || curl_strnequal(p, "LPT", 3)) ?
+              (('1' <= p[3] && p[3] <= '9') ? 4 : 3) : 0;
+
+    if(!x)
+      continue;
+
+    /* the devices may be accessible with an extension or ADS, for
+       example CON.AIR and 'CON . AIR' and CON:AIR access console */
+
+    for(; p[x] == ' '; ++x)
+      ;
+
+    if(p[x] == '.') {
+      p[x] = '_';
+      continue;
+    }
+    else if(p[x] == ':') {
+      if(!(flags & (SANITIZE_ALLOW_COLONS|SANITIZE_ALLOW_PATH))) {
+        p[x] = '_';
+        continue;
+      }
+      ++x;
+    }
+    else if(p[x]) /* no match */
+      continue;
+
+    /* p points to 'CON' or 'CON ' or 'CON:', etc */
+    p_len = strlen(p);
+
+    /* Prepend a '_' */
+    if(strlen(fname) == PATH_MAX-1) {
+      --p_len;
+      if(!(flags & SANITIZE_ALLOW_TRUNCATE) || truncate_dryrun(p, p_len))
+        return SANITIZE_ERR_INVALID_PATH;
+      p[p_len] = '\0';
+    }
+    memmove(p + 1, p, p_len + 1);
+    p[0] = '_';
+    ++p_len;
+
+    /* if fname was just modified then the basename pointer must be updated */
+    if(p == fname)
+      base = basename(fname);
+  }
+
+  /* This is the legacy portion from rename_if_dos_device_name that checks for
+     reserved device names. It only works on MSDOS. On Windows XP the stat
+     check errors with EINVAL if the device name is reserved. On Windows
+     Vista/7/8 it sets mode S_IFREG (regular file or device). According to MSDN
+     stat doc the latter behavior is correct, but that doesn't help us identify
+     whether it's a reserved device name and not a regular file name. */
+#ifdef MSDOS
+  if(base && ((stat(base, &st_buf)) == 0) && (S_ISCHR(st_buf.st_mode))) {
+    /* Prepend a '_' */
+    size_t blen = strlen(base);
+    if(blen) {
+      if(strlen(fname) == PATH_MAX-1) {
+        --blen;
+        if(!(flags & SANITIZE_ALLOW_TRUNCATE) || truncate_dryrun(base, blen))
+          return SANITIZE_ERR_INVALID_PATH;
+        base[blen] = '\0';
+      }
+      memmove(base + 1, base, blen + 1);
+      base[0] = '_';
+      ++blen;
+    }
+  }
+#endif
+
+  *sanitized = strdup(fname);
+  return (*sanitized ? SANITIZE_ERR_OK : SANITIZE_ERR_OUT_OF_MEMORY);
+}
+
+#if defined(MSDOS) && (defined(__DJGPP__) || defined(__GO32__))
+
+/*
+ * Disable program default argument globbing. We do it on our own.
+ */
+char **__crt0_glob_function(char *arg)
+{
+  (void)arg;
+  return (char **)0;
+}
+
+#endif /* MSDOS && (__DJGPP__ || __GO32__) */
+
+#ifdef WIN32
+
+/*
+ * Function to find CACert bundle on a Win32 platform using SearchPath.
+ * (SearchPath is already declared via inclusions done in setup header file)
+ * (Use the ASCII version instead of the unicode one!)
+ * The order of the directories it searches is:
+ *  1. application's directory
+ *  2. current working directory
+ *  3. Windows System directory (e.g. C:\windows\system32)
+ *  4. Windows Directory (e.g. C:\windows)
+ *  5. all directories along %PATH%
+ *
+ * For WinXP and later search order actually depends on registry value:
+ * HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeProcessSearchMode
+ */
+
+CURLcode FindWin32CACert(struct OperationConfig *config,
+                         const char *bundle_file)
+{
+  CURLcode result = CURLE_OK;
+
+  /* search and set cert file only if libcurl supports SSL */
+  if(curlinfo->features & CURL_VERSION_SSL) {
+
+    DWORD res_len;
+    char buf[PATH_MAX];
+    char *ptr = NULL;
+
+    buf[0] = '\0';
+
+    res_len = SearchPathA(NULL, bundle_file, NULL, PATH_MAX, buf, &ptr);
+    if(res_len > 0) {
+      Curl_safefree(config->cacert);
+      config->cacert = strdup(buf);
+      if(!config->cacert)
+        result = CURLE_OUT_OF_MEMORY;
+    }
+  }
+
+  return result;
+}
+
+#endif /* WIN32 */
+
+#endif /* MSDOS || WIN32 */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_doswin.h b/ap/lib/libcurl/curl-7.54.1/src/tool_doswin.h
new file mode 100644
index 0000000..f649ef0
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_doswin.h
@@ -0,0 +1,68 @@
+#ifndef HEADER_CURL_TOOL_DOSWIN_H
+#define HEADER_CURL_TOOL_DOSWIN_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#if defined(MSDOS) || defined(WIN32)
+
+#define SANITIZE_ALLOW_COLONS    (1<<0)  /* Allow colons */
+#define SANITIZE_ALLOW_PATH      (1<<1)  /* Allow path separators and colons */
+#define SANITIZE_ALLOW_RESERVED  (1<<2)  /* Allow reserved device names */
+#define SANITIZE_ALLOW_TRUNCATE  (1<<3)  /* Allow truncating a long filename */
+
+typedef enum {
+  SANITIZE_ERR_OK = 0,           /* 0 - OK */
+  SANITIZE_ERR_INVALID_PATH,     /* 1 - the path is invalid */
+  SANITIZE_ERR_BAD_ARGUMENT,     /* 2 - bad function parameter */
+  SANITIZE_ERR_OUT_OF_MEMORY,    /* 3 - out of memory */
+  SANITIZE_ERR_LAST /* never use! */
+} SANITIZEcode;
+
+SANITIZEcode sanitize_file_name(char **const sanitized, const char *file_name,
+                                int flags);
+#ifdef UNITTESTS
+SANITIZEcode truncate_dryrun(const char *path, const size_t truncate_pos);
+SANITIZEcode msdosify(char **const sanitized, const char *file_name,
+                      int flags);
+SANITIZEcode rename_if_reserved_dos_device_name(char **const sanitized,
+                                                const char *file_name,
+                                                int flags);
+#endif /* UNITTESTS */
+
+#if defined(MSDOS) && (defined(__DJGPP__) || defined(__GO32__))
+
+char **__crt0_glob_function(char *arg);
+
+#endif /* MSDOS && (__DJGPP__ || __GO32__) */
+
+#ifdef WIN32
+
+CURLcode FindWin32CACert(struct OperationConfig *config,
+                         const char *bundle_file);
+
+#endif /* WIN32 */
+
+#endif /* MSDOS || WIN32 */
+
+#endif /* HEADER_CURL_TOOL_DOSWIN_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_easysrc.c b/ap/lib/libcurl/curl-7.54.1/src/tool_easysrc.c
new file mode 100644
index 0000000..c2dccf9
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_easysrc.c
@@ -0,0 +1,236 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "slist_wc.h"
+
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_easysrc.h"
+#include "tool_msgs.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/* global variable definitions, for easy-interface source code generation */
+
+struct slist_wc *easysrc_decl = NULL; /* Variable declarations */
+struct slist_wc *easysrc_data = NULL; /* Build slists, forms etc. */
+struct slist_wc *easysrc_code = NULL; /* Setopt calls */
+struct slist_wc *easysrc_toohard = NULL; /* Unconvertible setopt */
+struct slist_wc *easysrc_clean = NULL;  /* Clean up allocated data */
+int easysrc_form_count = 0;
+int easysrc_slist_count = 0;
+
+static const char *const srchead[]={
+  "/********* Sample code generated by the curl command line tool **********",
+  " * All curl_easy_setopt() options are documented at:",
+  " * https://curl.haxx.se/libcurl/c/curl_easy_setopt.html",
+  " ************************************************************************/",
+  "#include <curl/curl.h>",
+  "",
+  "int main(int argc, char *argv[])",
+  "{",
+  "  CURLcode ret;",
+  "  CURL *hnd;",
+  NULL
+};
+/* easysrc_decl declarations come here */
+/* easysrc_data initialisations come here */
+/* easysrc_code statements come here */
+static const char *const srchard[]={
+  "/* Here is a list of options the curl code used that cannot get generated",
+  "   as source easily. You may select to either not use them or implement",
+  "   them yourself.",
+  "",
+  NULL
+};
+static const char *const srcend[]={
+  "",
+  "  return (int)ret;",
+  "}",
+  "/**** End of sample code ****/",
+  NULL
+};
+
+/* Clean up all source code if we run out of memory */
+static void easysrc_free(void)
+{
+  slist_wc_free_all(easysrc_decl);
+  easysrc_decl = NULL;
+  slist_wc_free_all(easysrc_data);
+  easysrc_data = NULL;
+  slist_wc_free_all(easysrc_code);
+  easysrc_code = NULL;
+  slist_wc_free_all(easysrc_toohard);
+  easysrc_toohard = NULL;
+  slist_wc_free_all(easysrc_clean);
+  easysrc_clean = NULL;
+}
+
+/* Add a source line to the main code or remarks */
+CURLcode easysrc_add(struct slist_wc **plist, const char *line)
+{
+  CURLcode ret = CURLE_OK;
+  struct slist_wc *list = slist_wc_append(*plist, line);
+  if(!list) {
+    easysrc_free();
+    ret = CURLE_OUT_OF_MEMORY;
+  }
+  else
+    *plist = list;
+  return ret;
+}
+
+CURLcode easysrc_addf(struct slist_wc **plist, const char *fmt, ...)
+{
+  CURLcode ret;
+  char *bufp;
+  va_list ap;
+  va_start(ap, fmt);
+  bufp = curlx_mvaprintf(fmt, ap);
+  va_end(ap);
+  if(! bufp) {
+    ret = CURLE_OUT_OF_MEMORY;
+  }
+  else {
+    ret = easysrc_add(plist, bufp);
+    curl_free(bufp);
+  }
+  return ret;
+}
+
+#define CHKRET(v) do {CURLcode ret = (v); if(ret) return ret;} WHILE_FALSE
+
+CURLcode easysrc_init(void)
+{
+  CHKRET(easysrc_add(&easysrc_code,
+                     "hnd = curl_easy_init();"));
+  return CURLE_OK;
+}
+
+CURLcode easysrc_perform(void)
+{
+  /* Note any setopt calls which we could not convert */
+  if(easysrc_toohard) {
+    int i;
+    struct curl_slist *ptr;
+    const char *c;
+    CHKRET(easysrc_add(&easysrc_code, ""));
+    /* Preamble comment */
+    for(i=0; ((c = srchard[i]) != NULL); i++)
+      CHKRET(easysrc_add(&easysrc_code, c));
+    /* Each unconverted option */
+    if(easysrc_toohard) {
+      for(ptr=easysrc_toohard->first; ptr; ptr = ptr->next)
+        CHKRET(easysrc_add(&easysrc_code, ptr->data));
+    }
+    CHKRET(easysrc_add(&easysrc_code, ""));
+    CHKRET(easysrc_add(&easysrc_code, "*/"));
+
+    slist_wc_free_all(easysrc_toohard);
+    easysrc_toohard = NULL;
+  }
+
+  CHKRET(easysrc_add(&easysrc_code, ""));
+  CHKRET(easysrc_add(&easysrc_code, "ret = curl_easy_perform(hnd);"));
+  CHKRET(easysrc_add(&easysrc_code, ""));
+
+  return CURLE_OK;
+}
+
+CURLcode easysrc_cleanup(void)
+{
+  CHKRET(easysrc_add(&easysrc_code, "curl_easy_cleanup(hnd);"));
+  CHKRET(easysrc_add(&easysrc_code, "hnd = NULL;"));
+
+  return CURLE_OK;
+}
+
+void dumpeasysrc(struct GlobalConfig *config)
+{
+  struct curl_slist *ptr;
+  char *o = config->libcurl;
+
+  FILE *out;
+  bool fopened = FALSE;
+  if(strcmp(o, "-")) {
+    out = fopen(o, FOPEN_WRITETEXT);
+    fopened = TRUE;
+  }
+  else
+    out = stdout;
+  if(!out)
+    warnf(config, "Failed to open %s to write libcurl code!\n", o);
+  else {
+    int i;
+    const char *c;
+
+    for(i=0; ((c = srchead[i]) != NULL); i++)
+      fprintf(out, "%s\n", c);
+
+    /* Declare variables used for complex setopt values */
+    if(easysrc_decl) {
+      for(ptr=easysrc_decl->first; ptr; ptr = ptr->next)
+        fprintf(out, "  %s\n", ptr->data);
+    }
+
+    /* Set up complex values for setopt calls */
+    if(easysrc_data) {
+      fprintf(out, "\n");
+
+      for(ptr=easysrc_data->first; ptr; ptr = ptr->next)
+        fprintf(out, "  %s\n", ptr->data);
+    }
+
+    fprintf(out, "\n");
+    if(easysrc_code) {
+      for(ptr=easysrc_code->first; ptr; ptr = ptr->next) {
+        if(ptr->data[0]) {
+          fprintf(out, "  %s\n", ptr->data);
+        }
+        else {
+          fprintf(out, "\n");
+        }
+      }
+    }
+
+    if(easysrc_clean) {
+      for(ptr=easysrc_clean->first; ptr; ptr = ptr->next)
+        fprintf(out, "  %s\n", ptr->data);
+    }
+
+    for(i=0; ((c = srcend[i]) != NULL); i++)
+      fprintf(out, "%s\n", c);
+
+    if(fopened)
+      fclose(out);
+  }
+
+  easysrc_free();
+}
+
+#endif /* CURL_DISABLE_LIBCURL_OPTION */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_easysrc.h b/ap/lib/libcurl/curl-7.54.1/src/tool_easysrc.h
new file mode 100644
index 0000000..54607b8
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_easysrc.h
@@ -0,0 +1,49 @@
+#ifndef HEADER_CURL_TOOL_EASYSRC_H
+#define HEADER_CURL_TOOL_EASYSRC_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+
+/* global variable declarations, for easy-interface source code generation */
+
+extern struct slist_wc *easysrc_decl; /* Variable declarations */
+extern struct slist_wc *easysrc_data; /* Build slists, forms etc. */
+extern struct slist_wc *easysrc_code; /* Setopt calls etc. */
+extern struct slist_wc *easysrc_toohard; /* Unconvertible setopt */
+extern struct slist_wc *easysrc_clean;  /* Clean up (reverse order) */
+
+extern int easysrc_form_count;  /* Number of curl_httppost variables */
+extern int easysrc_slist_count; /* Number of curl_slist variables */
+
+extern CURLcode easysrc_init(void);
+extern CURLcode easysrc_add(struct slist_wc **plist, const char *bupf);
+extern CURLcode easysrc_addf(struct slist_wc **plist,
+                             const char *fmt, ...);
+extern CURLcode easysrc_perform(void);
+extern CURLcode easysrc_cleanup(void);
+
+void dumpeasysrc(struct GlobalConfig *config);
+
+#endif /* CURL_DISABLE_LIBCURL_OPTION */
+
+#endif /* HEADER_CURL_TOOL_EASYSRC_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_formparse.c b/ap/lib/libcurl/curl-7.54.1/src/tool_formparse.c
new file mode 100644
index 0000000..952377c
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_formparse.c
@@ -0,0 +1,362 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "strcase.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_convert.h"
+#include "tool_mfiles.h"
+#include "tool_msgs.h"
+#include "tool_formparse.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+
+/*
+ * helper function to get a word from form param
+ * after call get_parm_word, str either point to string end
+ * or point to any of end chars.
+ */
+static char *get_param_word(char **str, char **end_pos)
+{
+  char *ptr = *str;
+  char *word_begin = NULL;
+  char *ptr2;
+  char *escape = NULL;
+  const char *end_chars = ";,";
+
+  /* the first non-space char is here */
+  word_begin = ptr;
+  if(*ptr == '"') {
+    ++ptr;
+    while(*ptr) {
+      if(*ptr == '\\') {
+        if(ptr[1] == '\\' || ptr[1] == '"') {
+          /* remember the first escape position */
+          if(!escape)
+            escape = ptr;
+          /* skip escape of back-slash or double-quote */
+          ptr += 2;
+          continue;
+        }
+      }
+      if(*ptr == '"') {
+        *end_pos = ptr;
+        if(escape) {
+          /* has escape, we restore the unescaped string here */
+          ptr = ptr2 = escape;
+          do {
+            if(*ptr == '\\' && (ptr[1] == '\\' || ptr[1] == '"'))
+              ++ptr;
+            *ptr2++ = *ptr++;
+          }
+          while(ptr < *end_pos);
+          *end_pos = ptr2;
+        }
+        while(*ptr && NULL==strchr(end_chars, *ptr))
+          ++ptr;
+        *str = ptr;
+        return word_begin+1;
+      }
+      ++ptr;
+    }
+    /* end quote is missing, treat it as non-quoted. */
+    ptr = word_begin;
+  }
+
+  while(*ptr && NULL==strchr(end_chars, *ptr))
+    ++ptr;
+  *str = *end_pos = ptr;
+  return word_begin;
+}
+
+/***************************************************************************
+ *
+ * formparse()
+ *
+ * Reads a 'name=value' parameter and builds the appropriate linked list.
+ *
+ * Specify files to upload with 'name=@filename', or 'name=@"filename"'
+ * in case the filename contain ',' or ';'. Supports specified
+ * given Content-Type of the files. Such as ';type=<content-type>'.
+ *
+ * If literal_value is set, any initial '@' or '<' in the value string
+ * loses its special meaning, as does any embedded ';type='.
+ *
+ * You may specify more than one file for a single name (field). Specify
+ * multiple files by writing it like:
+ *
+ * 'name=@filename,filename2,filename3'
+ *
+ * or use double-quotes quote the filename:
+ *
+ * 'name=@"filename","filename2","filename3"'
+ *
+ * If you want content-types specified for each too, write them like:
+ *
+ * 'name=@filename;type=image/gif,filename2,filename3'
+ *
+ * If you want custom headers added for a single part, write them in a separate
+ * file and do like this:
+ *
+ * 'name=foo;headers=@headerfile' or why not
+ * 'name=@filemame;headers=@headerfile'
+ *
+ * To upload a file, but to fake the file name that will be included in the
+ * formpost, do like this:
+ *
+ * 'name=@filename;filename=/dev/null' or quote the faked filename like:
+ * 'name=@filename;filename="play, play, and play.txt"'
+ *
+ * If filename/path contains ',' or ';', it must be quoted by double-quotes,
+ * else curl will fail to figure out the correct filename. if the filename
+ * tobe quoted contains '"' or '\', '"' and '\' must be escaped by backslash.
+ *
+ * This function uses curl_formadd to fulfill it's job. Is heavily based on
+ * the old curl_formparse code.
+ *
+ ***************************************************************************/
+
+int formparse(struct OperationConfig *config,
+              const char *input,
+              struct curl_httppost **httppost,
+              struct curl_httppost **last_post,
+              bool literal_value)
+{
+  /* nextarg MUST be a string in the format 'name=contents' and we'll
+     build a linked list with the info */
+  char name[256];
+  char *contents = NULL;
+  char type_major[128] = "";
+  char type_minor[128] = "";
+  char *contp;
+  char *type = NULL;
+  char *sep;
+
+  if((1 == sscanf(input, "%255[^=]=", name)) &&
+     ((contp = strchr(input, '=')) != NULL)) {
+    /* the input was using the correct format */
+
+    /* Allocate the contents */
+    contents = strdup(contp+1);
+    if(!contents) {
+      fprintf(config->global->errors, "out of memory\n");
+      return 1;
+    }
+    contp = contents;
+
+    if('@' == contp[0] && !literal_value) {
+
+      /* we use the @-letter to indicate file name(s) */
+
+      struct multi_files *multi_start = NULL;
+      struct multi_files *multi_current = NULL;
+
+      char *ptr = contp;
+      char *end = ptr + strlen(ptr);
+
+      do {
+        /* since this was a file, it may have a content-type specifier
+           at the end too, or a filename. Or both. */
+        char *filename = NULL;
+        char *word_end;
+        bool semicolon;
+
+        type = NULL;
+
+        ++ptr;
+        contp = get_param_word(&ptr, &word_end);
+        semicolon = (';' == *ptr) ? TRUE : FALSE;
+        *word_end = '\0'; /* terminate the contp */
+
+        /* have other content, continue parse */
+        while(semicolon) {
+          /* have type or filename field */
+          ++ptr;
+          while(*ptr && (ISSPACE(*ptr)))
+            ++ptr;
+
+          if(checkprefix("type=", ptr)) {
+            /* set type pointer */
+            type = &ptr[5];
+
+            /* verify that this is a fine type specifier */
+            if(2 != sscanf(type, "%127[^/]/%127[^;,\n]",
+                           type_major, type_minor)) {
+              warnf(config->global,
+                    "Illegally formatted content-type field!\n");
+              Curl_safefree(contents);
+              FreeMultiInfo(&multi_start, &multi_current);
+              return 2; /* illegal content-type syntax! */
+            }
+
+            /* now point beyond the content-type specifier */
+            sep = type + strlen(type_major)+strlen(type_minor)+1;
+
+            /* there's a semicolon following - we check if it is a filename
+               specified and if not we simply assume that it is text that
+               the user wants included in the type and include that too up
+               to the next sep. */
+            ptr = sep;
+            if(*sep==';') {
+              if(!checkprefix(";filename=", sep)) {
+                ptr = sep + 1;
+                (void)get_param_word(&ptr, &sep);
+                semicolon = (';' == *ptr) ? TRUE : FALSE;
+              }
+            }
+            else
+              semicolon = FALSE;
+
+            if(*sep)
+              *sep = '\0'; /* zero terminate type string */
+          }
+          else if(checkprefix("filename=", ptr)) {
+            ptr += 9;
+            filename = get_param_word(&ptr, &word_end);
+            semicolon = (';' == *ptr) ? TRUE : FALSE;
+            *word_end = '\0';
+          }
+          else {
+            /* unknown prefix, skip to next block */
+            char *unknown = NULL;
+            unknown = get_param_word(&ptr, &word_end);
+            semicolon = (';' == *ptr) ? TRUE : FALSE;
+            if(*unknown) {
+              *word_end = '\0';
+              warnf(config->global, "skip unknown form field: %s\n", unknown);
+            }
+          }
+        }
+        /* now ptr point to comma or string end */
+
+
+        /* if type == NULL curl_formadd takes care of the problem */
+
+        if(*contp && !AddMultiFiles(contp, type, filename, &multi_start,
+                          &multi_current)) {
+          warnf(config->global, "Error building form post!\n");
+          Curl_safefree(contents);
+          FreeMultiInfo(&multi_start, &multi_current);
+          return 3;
+        }
+
+        /* *ptr could be '\0', so we just check with the string end */
+      } while(ptr < end); /* loop if there's another file name */
+
+      /* now we add the multiple files section */
+      if(multi_start) {
+        struct curl_forms *forms = NULL;
+        struct multi_files *start = multi_start;
+        unsigned int i, count = 0;
+        while(start) {
+          start = start->next;
+          ++count;
+        }
+        forms = malloc((count+1)*sizeof(struct curl_forms));
+        if(!forms) {
+          fprintf(config->global->errors, "Error building form post!\n");
+          Curl_safefree(contents);
+          FreeMultiInfo(&multi_start, &multi_current);
+          return 4;
+        }
+        for(i = 0, start = multi_start; i < count; ++i, start = start->next) {
+          forms[i].option = start->form.option;
+          forms[i].value = start->form.value;
+        }
+        forms[count].option = CURLFORM_END;
+        FreeMultiInfo(&multi_start, &multi_current);
+        if(curl_formadd(httppost, last_post,
+                        CURLFORM_COPYNAME, name,
+                        CURLFORM_ARRAY, forms, CURLFORM_END) != 0) {
+          warnf(config->global, "curl_formadd failed!\n");
+          Curl_safefree(forms);
+          Curl_safefree(contents);
+          return 5;
+        }
+        Curl_safefree(forms);
+      }
+    }
+    else {
+      struct curl_forms info[4];
+      int i = 0;
+      char *ct = literal_value ? NULL : strstr(contp, ";type=");
+
+      info[i].option = CURLFORM_COPYNAME;
+      info[i].value = name;
+      i++;
+
+      if(ct) {
+        info[i].option = CURLFORM_CONTENTTYPE;
+        info[i].value = &ct[6];
+        i++;
+        ct[0] = '\0'; /* zero terminate here */
+      }
+
+      if(contp[0]=='<' && !literal_value) {
+        info[i].option = CURLFORM_FILECONTENT;
+        info[i].value = contp+1;
+        i++;
+        info[i].option = CURLFORM_END;
+
+        if(curl_formadd(httppost, last_post,
+                        CURLFORM_ARRAY, info, CURLFORM_END) != 0) {
+          warnf(config->global, "curl_formadd failed, possibly the file %s is "
+                "bad!\n", contp + 1);
+          Curl_safefree(contents);
+          return 6;
+        }
+      }
+      else {
+#ifdef CURL_DOES_CONVERSIONS
+        if(convert_to_network(contp, strlen(contp))) {
+          warnf(config->global, "curl_formadd failed!\n");
+          Curl_safefree(contents);
+          return 7;
+        }
+#endif
+        info[i].option = CURLFORM_COPYCONTENTS;
+        info[i].value = contp;
+        i++;
+        info[i].option = CURLFORM_END;
+        if(curl_formadd(httppost, last_post,
+                        CURLFORM_ARRAY, info, CURLFORM_END) != 0) {
+          warnf(config->global, "curl_formadd failed!\n");
+          Curl_safefree(contents);
+          return 8;
+        }
+      }
+    }
+
+  }
+  else {
+    warnf(config->global, "Illegally formatted input field!\n");
+    return 1;
+  }
+  Curl_safefree(contents);
+  return 0;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_formparse.h b/ap/lib/libcurl/curl-7.54.1/src/tool_formparse.h
new file mode 100644
index 0000000..ce7a292
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_formparse.h
@@ -0,0 +1,33 @@
+#ifndef HEADER_CURL_TOOL_FORMPARSE_H
+#define HEADER_CURL_TOOL_FORMPARSE_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+int formparse(struct OperationConfig *config,
+              const char *input,
+              struct curl_httppost **httppost,
+              struct curl_httppost **last_post,
+              bool literal_value);
+
+#endif /* HEADER_CURL_TOOL_FORMPARSE_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_getparam.c b/ap/lib/libcurl/curl-7.54.1/src/tool_getparam.c
new file mode 100644
index 0000000..56bbbf1
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_getparam.c
@@ -0,0 +1,2096 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "strcase.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_binmode.h"
+#include "tool_cfgable.h"
+#include "tool_cb_prg.h"
+#include "tool_convert.h"
+#include "tool_formparse.h"
+#include "tool_getparam.h"
+#include "tool_helpers.h"
+#include "tool_libinfo.h"
+#include "tool_metalink.h"
+#include "tool_msgs.h"
+#include "tool_paramhlp.h"
+#include "tool_parsecfg.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifdef MSDOS
+#  define USE_WATT32
+#endif
+
+#define GetStr(str,val) do { \
+  if(*(str)) { \
+    free(*(str)); \
+    *(str) = NULL; \
+  } \
+  if((val)) {              \
+    *(str) = strdup((val)); \
+    if(!(*(str)))          \
+      return PARAM_NO_MEM; \
+  } \
+} WHILE_FALSE
+
+struct LongShort {
+  const char *letter; /* short name option */
+  const char *lname;  /* long name option */
+  enum {
+    ARG_NONE,   /* stand-alone but not a boolean */
+    ARG_BOOL,   /* accepts a --no-[name] prefix */
+    ARG_STRING  /* requires an argument */
+  } desc;
+};
+
+static const struct LongShort aliases[]= {
+  /* 'letter' strings with more than one character have *no* short option to
+     mention. */
+  {"*@", "url",                      ARG_STRING},
+  {"*4", "dns-ipv4-addr",            ARG_STRING},
+  {"*6", "dns-ipv6-addr",            ARG_STRING},
+  {"*a", "random-file",              ARG_STRING},
+  {"*b", "egd-file",                 ARG_STRING},
+  {"*B", "oauth2-bearer",            ARG_STRING},
+  {"*c", "connect-timeout",          ARG_STRING},
+  {"*d", "ciphers",                  ARG_STRING},
+  {"*D", "dns-interface",            ARG_STRING},
+  {"*e", "disable-epsv",             ARG_BOOL},
+  {"*E", "epsv",                     ARG_BOOL},
+         /* 'epsv' made like this to make --no-epsv and --epsv to work
+             although --disable-epsv is the documented option */
+  {"*F", "dns-servers",              ARG_STRING},
+  {"*g", "trace",                    ARG_STRING},
+  {"*G", "npn",                      ARG_BOOL},
+  {"*h", "trace-ascii",              ARG_STRING},
+  {"*H", "alpn",                     ARG_BOOL},
+  {"*i", "limit-rate",               ARG_STRING},
+  {"*j", "compressed",               ARG_BOOL},
+  {"*J", "tr-encoding",              ARG_BOOL},
+  {"*k", "digest",                   ARG_BOOL},
+  {"*l", "negotiate",                ARG_BOOL},
+  {"*m", "ntlm",                     ARG_BOOL},
+  {"*M", "ntlm-wb",                  ARG_BOOL},
+  {"*n", "basic",                    ARG_BOOL},
+  {"*o", "anyauth",                  ARG_BOOL},
+#ifdef USE_WATT32
+  {"*p", "wdebug",                   ARG_BOOL},
+#endif
+  {"*q", "ftp-create-dirs",          ARG_BOOL},
+  {"*r", "create-dirs",              ARG_BOOL},
+  {"*s", "max-redirs",               ARG_STRING},
+  {"*t", "proxy-ntlm",               ARG_BOOL},
+  {"*u", "crlf",                     ARG_BOOL},
+  {"*v", "stderr",                   ARG_STRING},
+  {"*w", "interface",                ARG_STRING},
+  {"*x", "krb",                      ARG_STRING},
+  {"*x", "krb4",                     ARG_STRING},
+         /* 'krb4' is the previous name */
+  {"*y", "max-filesize",             ARG_STRING},
+  {"*z", "disable-eprt",             ARG_BOOL},
+  {"*Z", "eprt",                     ARG_BOOL},
+         /* 'eprt' made like this to make --no-eprt and --eprt to work
+             although --disable-eprt is the documented option */
+  {"*~", "xattr",                    ARG_BOOL},
+  {"$a", "ftp-ssl",                  ARG_BOOL},
+         /* 'ftp-ssl' deprecated name since 7.20.0 */
+  {"$a", "ssl",                      ARG_BOOL},
+         /* 'ssl' new option name in 7.20.0, previously this was ftp-ssl */
+  {"$b", "ftp-pasv",                 ARG_BOOL},
+  {"$c", "socks5",                   ARG_STRING},
+  {"$d", "tcp-nodelay",              ARG_BOOL},
+  {"$e", "proxy-digest",             ARG_BOOL},
+  {"$f", "proxy-basic",              ARG_BOOL},
+  {"$g", "retry",                    ARG_STRING},
+  {"$V", "retry-connrefused",        ARG_BOOL},
+  {"$h", "retry-delay",              ARG_STRING},
+  {"$i", "retry-max-time",           ARG_STRING},
+  {"$k", "proxy-negotiate",          ARG_BOOL},
+  {"$m", "ftp-account",              ARG_STRING},
+  {"$n", "proxy-anyauth",            ARG_BOOL},
+  {"$o", "trace-time",               ARG_BOOL},
+  {"$p", "ignore-content-length",    ARG_BOOL},
+  {"$q", "ftp-skip-pasv-ip",         ARG_BOOL},
+  {"$r", "ftp-method",               ARG_STRING},
+  {"$s", "local-port",               ARG_STRING},
+  {"$t", "socks4",                   ARG_STRING},
+  {"$T", "socks4a",                  ARG_STRING},
+  {"$u", "ftp-alternative-to-user",  ARG_STRING},
+  {"$v", "ftp-ssl-reqd",             ARG_BOOL},
+         /* 'ftp-ssl-reqd' deprecated name since 7.20.0 */
+  {"$v", "ssl-reqd",                 ARG_BOOL},
+         /* 'ssl-reqd' new in 7.20.0, previously this was ftp-ssl-reqd */
+  {"$w", "sessionid",                ARG_BOOL},
+         /* 'sessionid' listed as --no-sessionid in the help */
+  {"$x", "ftp-ssl-control",          ARG_BOOL},
+  {"$y", "ftp-ssl-ccc",              ARG_BOOL},
+  {"$j", "ftp-ssl-ccc-mode",         ARG_STRING},
+  {"$z", "libcurl",                  ARG_STRING},
+  {"$#", "raw",                      ARG_BOOL},
+  {"$0", "post301",                  ARG_BOOL},
+  {"$1", "keepalive",                ARG_BOOL},
+         /* 'keepalive' listed as --no-keepalive in the help */
+  {"$2", "socks5-hostname",          ARG_STRING},
+  {"$3", "keepalive-time",           ARG_STRING},
+  {"$4", "post302",                  ARG_BOOL},
+  {"$5", "noproxy",                  ARG_STRING},
+  {"$7", "socks5-gssapi-nec",        ARG_BOOL},
+  {"$8", "proxy1.0",                 ARG_STRING},
+  {"$9", "tftp-blksize",             ARG_STRING},
+  {"$A", "mail-from",                ARG_STRING},
+  {"$B", "mail-rcpt",                ARG_STRING},
+  {"$C", "ftp-pret",                 ARG_BOOL},
+  {"$D", "proto",                    ARG_STRING},
+  {"$E", "proto-redir",              ARG_STRING},
+  {"$F", "resolve",                  ARG_STRING},
+  {"$G", "delegation",               ARG_STRING},
+  {"$H", "mail-auth",                ARG_STRING},
+  {"$I", "post303",                  ARG_BOOL},
+  {"$J", "metalink",                 ARG_BOOL},
+  {"$K", "sasl-ir",                  ARG_BOOL},
+  {"$L", "test-event",               ARG_BOOL},
+  {"$M", "unix-socket",              ARG_STRING},
+  {"$N", "path-as-is",               ARG_BOOL},
+  {"$O", "socks5-gssapi-service",    ARG_STRING},
+         /* 'socks5-gssapi-service' merged with'proxy-service-name' and
+            deprecated since 7.49.0 */
+  {"$O", "proxy-service-name",       ARG_STRING},
+  {"$P", "service-name",             ARG_STRING},
+  {"$Q", "proto-default",            ARG_STRING},
+  {"$R", "expect100-timeout",        ARG_STRING},
+  {"$S", "tftp-no-options",          ARG_BOOL},
+  {"$U", "connect-to",               ARG_STRING},
+  {"$W", "abstract-unix-socket",     ARG_STRING},
+  {"$X", "tls-max",                  ARG_STRING},
+  {"$Y", "suppress-connect-headers", ARG_BOOL},
+  {"0",   "http1.0",                 ARG_NONE},
+  {"01",  "http1.1",                 ARG_NONE},
+  {"02",  "http2",                   ARG_NONE},
+  {"03",  "http2-prior-knowledge",   ARG_NONE},
+  {"1",  "tlsv1",                    ARG_NONE},
+  {"10",  "tlsv1.0",                 ARG_NONE},
+  {"11",  "tlsv1.1",                 ARG_NONE},
+  {"12",  "tlsv1.2",                 ARG_NONE},
+  {"13",  "tlsv1.3",                 ARG_NONE},
+  {"2",  "sslv2",                    ARG_NONE},
+  {"3",  "sslv3",                    ARG_NONE},
+  {"4",  "ipv4",                     ARG_NONE},
+  {"6",  "ipv6",                     ARG_NONE},
+  {"a",  "append",                   ARG_BOOL},
+  {"A",  "user-agent",               ARG_STRING},
+  {"b",  "cookie",                   ARG_STRING},
+  {"B",  "use-ascii",                ARG_BOOL},
+  {"c",  "cookie-jar",               ARG_STRING},
+  {"C",  "continue-at",              ARG_STRING},
+  {"d",  "data",                     ARG_STRING},
+  {"dr", "data-raw",                 ARG_STRING},
+  {"da", "data-ascii",               ARG_STRING},
+  {"db", "data-binary",              ARG_STRING},
+  {"de", "data-urlencode",           ARG_STRING},
+  {"D",  "dump-header",              ARG_STRING},
+  {"e",  "referer",                  ARG_STRING},
+  {"E",  "cert",                     ARG_STRING},
+  {"Ea", "cacert",                   ARG_STRING},
+  {"Eb", "cert-type",                ARG_STRING},
+  {"Ec", "key",                      ARG_STRING},
+  {"Ed", "key-type",                 ARG_STRING},
+  {"Ee", "pass",                     ARG_STRING},
+  {"Ef", "engine",                   ARG_STRING},
+  {"Eg", "capath",                   ARG_STRING},
+  {"Eh", "pubkey",                   ARG_STRING},
+  {"Ei", "hostpubmd5",               ARG_STRING},
+  {"Ej", "crlfile",                  ARG_STRING},
+  {"Ek", "tlsuser",                  ARG_STRING},
+  {"El", "tlspassword",              ARG_STRING},
+  {"Em", "tlsauthtype",              ARG_STRING},
+  {"En", "ssl-allow-beast",          ARG_BOOL},
+  {"Eo", "login-options",            ARG_STRING},
+  {"Ep", "pinnedpubkey",             ARG_STRING},
+  {"Eq", "cert-status",              ARG_BOOL},
+  {"Er", "false-start",              ARG_BOOL},
+  {"Es", "ssl-no-revoke",            ARG_BOOL},
+  {"Et", "tcp-fastopen",             ARG_BOOL},
+  {"Eu", "proxy-tlsuser",            ARG_STRING},
+  {"Ev", "proxy-tlspassword",        ARG_STRING},
+  {"Ew", "proxy-tlsauthtype",        ARG_STRING},
+  {"Ex", "proxy-cert",               ARG_STRING},
+  {"Ey", "proxy-cert-type",          ARG_STRING},
+  {"Ez", "proxy-key",                ARG_STRING},
+  {"E0", "proxy-key-type",           ARG_STRING},
+  {"E1", "proxy-pass",               ARG_STRING},
+  {"E2", "proxy-ciphers",            ARG_STRING},
+  {"E3", "proxy-crlfile",            ARG_STRING},
+  {"E4", "proxy-ssl-allow-beast",    ARG_BOOL},
+  {"E5", "login-options",            ARG_STRING},
+  {"E6", "proxy-cacert",             ARG_STRING},
+  {"E7", "proxy-capath",             ARG_STRING},
+  {"E8", "proxy-insecure",           ARG_BOOL},
+  {"E9", "proxy-tlsv1",              ARG_NONE},
+  {"f",  "fail",                     ARG_BOOL},
+  {"fa", "fail-early",               ARG_BOOL},
+  {"F",  "form",                     ARG_STRING},
+  {"Fs", "form-string",              ARG_STRING},
+  {"g",  "globoff",                  ARG_BOOL},
+  {"G",  "get",                      ARG_NONE},
+  {"h",  "help",                     ARG_BOOL},
+  {"H",  "header",                   ARG_STRING},
+  {"Hp", "proxy-header",             ARG_STRING},
+  {"i",  "include",                  ARG_BOOL},
+  {"I",  "head",                     ARG_BOOL},
+  {"j",  "junk-session-cookies",     ARG_BOOL},
+  {"J",  "remote-header-name",       ARG_BOOL},
+  {"k",  "insecure",                 ARG_BOOL},
+  {"K",  "config",                   ARG_STRING},
+  {"l",  "list-only",                ARG_BOOL},
+  {"L",  "location",                 ARG_BOOL},
+  {"Lt", "location-trusted",         ARG_BOOL},
+  {"m",  "max-time",                 ARG_STRING},
+  {"M",  "manual",                   ARG_BOOL},
+  {"n",  "netrc",                    ARG_BOOL},
+  {"no", "netrc-optional",           ARG_BOOL},
+  {"ne", "netrc-file",               ARG_STRING},
+  {"N",  "buffer",                   ARG_BOOL},
+         /* 'buffer' listed as --no-buffer in the help */
+  {"o",  "output",                   ARG_STRING},
+  {"O",  "remote-name",              ARG_NONE},
+  {"Oa", "remote-name-all",          ARG_BOOL},
+  {"p",  "proxytunnel",              ARG_BOOL},
+  {"P",  "ftp-port",                 ARG_STRING},
+  {"q",  "disable",                  ARG_BOOL},
+  {"Q",  "quote",                    ARG_STRING},
+  {"r",  "range",                    ARG_STRING},
+  {"R",  "remote-time",              ARG_BOOL},
+  {"s",  "silent",                   ARG_BOOL},
+  {"S",  "show-error",               ARG_BOOL},
+  {"t",  "telnet-option",            ARG_STRING},
+  {"T",  "upload-file",              ARG_STRING},
+  {"u",  "user",                     ARG_STRING},
+  {"U",  "proxy-user",               ARG_STRING},
+  {"v",  "verbose",                  ARG_BOOL},
+  {"V",  "version",                  ARG_BOOL},
+  {"w",  "write-out",                ARG_STRING},
+  {"x",  "proxy",                    ARG_STRING},
+  {"xa", "preproxy",                 ARG_STRING},
+  {"X",  "request",                  ARG_STRING},
+  {"Y",  "speed-limit",              ARG_STRING},
+  {"y",  "speed-time",               ARG_STRING},
+  {"z",  "time-cond",                ARG_STRING},
+  {"#",  "progress-bar",             ARG_BOOL},
+  {":",  "next",                     ARG_NONE},
+};
+
+/* Split the argument of -E to 'certname' and 'passphrase' separated by colon.
+ * We allow ':' and '\' to be escaped by '\' so that we can use certificate
+ * nicknames containing ':'.  See <https://sourceforge.net/p/curl/bugs/1196/>
+ * for details. */
+#ifndef UNITTESTS
+static
+#endif
+void parse_cert_parameter(const char *cert_parameter,
+                          char **certname,
+                          char **passphrase)
+{
+  size_t param_length = strlen(cert_parameter);
+  size_t span;
+  const char *param_place = NULL;
+  char *certname_place = NULL;
+  *certname = NULL;
+  *passphrase = NULL;
+
+  /* most trivial assumption: cert_parameter is empty */
+  if(param_length == 0)
+    return;
+
+  /* next less trivial: cert_parameter starts 'pkcs11:' and thus
+   * looks like a RFC7512 PKCS#11 URI which can be used as-is.
+   * Also if cert_parameter contains no colon nor backslash, this
+   * means no passphrase was given and no characters escaped */
+  if(!strncmp(cert_parameter, "pkcs11:", 7) ||
+     !strpbrk(cert_parameter, ":\\")) {
+    *certname = strdup(cert_parameter);
+    return;
+  }
+  /* deal with escaped chars; find unescaped colon if it exists */
+  certname_place = malloc(param_length + 1);
+  if(!certname_place)
+    return;
+
+  *certname = certname_place;
+  param_place = cert_parameter;
+  while(*param_place) {
+    span = strcspn(param_place, ":\\");
+    strncpy(certname_place, param_place, span);
+    param_place += span;
+    certname_place += span;
+    /* we just ate all the non-special chars. now we're on either a special
+     * char or the end of the string. */
+    switch(*param_place) {
+    case '\0':
+      break;
+    case '\\':
+      param_place++;
+      switch(*param_place) {
+        case '\0':
+          *certname_place++ = '\\';
+          break;
+        case '\\':
+          *certname_place++ = '\\';
+          param_place++;
+          break;
+        case ':':
+          *certname_place++ = ':';
+          param_place++;
+          break;
+        default:
+          *certname_place++ = '\\';
+          *certname_place++ = *param_place;
+          param_place++;
+          break;
+      }
+      break;
+    case ':':
+      /* Since we live in a world of weirdness and confusion, the win32
+         dudes can use : when using drive letters and thus c:\file:password
+         needs to work. In order not to break compatibility, we still use : as
+         separator, but we try to detect when it is used for a file name! On
+         windows. */
+#ifdef WIN32
+      if(param_place &&
+          (param_place == &cert_parameter[1]) &&
+          (cert_parameter[2] == '\\' || cert_parameter[2] == '/') &&
+          (ISALPHA(cert_parameter[0])) ) {
+        /* colon in the second column, followed by a backslash, and the
+           first character is an alphabetic letter:
+
+           this is a drive letter colon */
+        *certname_place++ = ':';
+        param_place++;
+        break;
+      }
+#endif
+      /* escaped colons and Windows drive letter colons were handled
+       * above; if we're still here, this is a separating colon */
+      param_place++;
+      if(strlen(param_place) > 0) {
+        *passphrase = strdup(param_place);
+      }
+      goto done;
+    }
+  }
+done:
+  *certname_place = '\0';
+}
+
+static void
+GetFileAndPassword(char *nextarg, char **file, char **password)
+{
+  char *certname, *passphrase;
+  parse_cert_parameter(nextarg, &certname, &passphrase);
+  Curl_safefree(*file);
+  *file = certname;
+  if(passphrase) {
+    Curl_safefree(*password);
+    *password = passphrase;
+  }
+  cleanarg(nextarg);
+}
+
+ParameterError getparameter(const char *flag, /* f or -long-flag */
+                            char *nextarg,    /* NULL if unset */
+                            bool *usedarg,    /* set to TRUE if the arg
+                                                 has been used */
+                            struct GlobalConfig *global,
+                            struct OperationConfig *config)
+{
+  char letter;
+  char subletter = '\0'; /* subletters can only occur on long options */
+  int rc;
+  const char *parse = NULL;
+  unsigned int j;
+  time_t now;
+  int hit = -1;
+  bool longopt = FALSE;
+  bool singleopt = FALSE; /* when true means '-o foo' used '-ofoo' */
+  ParameterError err;
+  bool toggle = TRUE; /* how to switch boolean options, on or off. Controlled
+                         by using --OPTION or --no-OPTION */
+
+
+  if(('-' != flag[0]) ||
+     (('-' == flag[0]) && ('-' == flag[1]))) {
+    /* this should be a long name */
+    const char *word = ('-' == flag[0]) ? flag+2 : flag;
+    size_t fnam = strlen(word);
+    int numhits = 0;
+
+    if(!strncmp(word, "no-", 3)) {
+      /* disable this option but ignore the "no-" part when looking for it */
+      word += 3;
+      toggle = FALSE;
+    }
+
+    for(j = 0; j < sizeof(aliases)/sizeof(aliases[0]); j++) {
+      if(curl_strnequal(aliases[j].lname, word, fnam)) {
+        longopt = TRUE;
+        numhits++;
+        if(curl_strequal(aliases[j].lname, word)) {
+          parse = aliases[j].letter;
+          hit = j;
+          numhits = 1; /* a single unique hit */
+          break;
+        }
+        parse = aliases[j].letter;
+        hit = j;
+      }
+    }
+    if(numhits > 1) {
+      /* this is at least the second match! */
+      return PARAM_OPTION_AMBIGUOUS;
+    }
+    if(hit < 0) {
+      return PARAM_OPTION_UNKNOWN;
+    }
+  }
+  else {
+    flag++; /* prefixed with one dash, pass it */
+    hit = -1;
+    parse = flag;
+  }
+
+  do {
+    /* we can loop here if we have multiple single-letters */
+
+    if(!longopt) {
+      letter = (char)*parse;
+      subletter='\0';
+    }
+    else {
+      letter = parse[0];
+      subletter = parse[1];
+    }
+    *usedarg = FALSE; /* default is that we don't use the arg */
+
+    if(hit < 0) {
+      for(j = 0; j < sizeof(aliases)/sizeof(aliases[0]); j++) {
+        if(letter == aliases[j].letter[0]) {
+          hit = j;
+          break;
+        }
+      }
+      if(hit < 0) {
+        return PARAM_OPTION_UNKNOWN;
+      }
+    }
+
+    if(aliases[hit].desc == ARG_STRING) {
+      /* this option requires an extra parameter */
+      if(!longopt && parse[1]) {
+        nextarg = (char *)&parse[1]; /* this is the actual extra parameter */
+        singleopt = TRUE;   /* don't loop anymore after this */
+      }
+      else if(!nextarg)
+        return PARAM_REQUIRES_PARAMETER;
+      else
+        *usedarg = TRUE; /* mark it as used */
+    }
+    else if((aliases[hit].desc == ARG_NONE) && !toggle)
+      return PARAM_NO_PREFIX;
+
+    switch(letter) {
+    case '*': /* options without a short option */
+      switch(subletter) {
+      case '4': /* --dns-ipv4-addr */
+        /* addr in dot notation */
+        GetStr(&config->dns_ipv4_addr, nextarg);
+        break;
+      case '6': /* --dns-ipv6-addr */
+        /* addr in dot notation */
+        GetStr(&config->dns_ipv6_addr, nextarg);
+        break;
+      case 'a': /* random-file */
+        GetStr(&config->random_file, nextarg);
+        break;
+      case 'b': /* egd-file */
+        GetStr(&config->egd_file, nextarg);
+        break;
+      case 'B': /* OAuth 2.0 bearer token */
+        GetStr(&config->oauth_bearer, nextarg);
+        break;
+      case 'c': /* connect-timeout */
+        err = str2udouble(&config->connecttimeout, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'd': /* ciphers */
+        GetStr(&config->cipher_list, nextarg);
+        break;
+      case 'D': /* --dns-interface */
+        /* interface name */
+        GetStr(&config->dns_interface, nextarg);
+        break;
+      case 'e': /* --disable-epsv */
+        config->disable_epsv = toggle;
+        break;
+      case 'E': /* --epsv */
+        config->disable_epsv = (!toggle)?TRUE:FALSE;
+        break;
+      case 'F': /* --dns-servers */
+        /* IP addrs of DNS servers */
+        GetStr(&config->dns_servers, nextarg);
+        break;
+      case 'g': /* --trace */
+        GetStr(&global->trace_dump, nextarg);
+        if(global->tracetype && (global->tracetype != TRACE_BIN))
+          warnf(global, "--trace overrides an earlier trace/verbose option\n");
+        global->tracetype = TRACE_BIN;
+        break;
+      case 'G': /* --npn */
+        config->nonpn = (!toggle)?TRUE:FALSE;
+        break;
+      case 'h': /* --trace-ascii */
+        GetStr(&global->trace_dump, nextarg);
+        if(global->tracetype && (global->tracetype != TRACE_ASCII))
+          warnf(global,
+                "--trace-ascii overrides an earlier trace/verbose option\n");
+        global->tracetype = TRACE_ASCII;
+        break;
+      case 'H': /* --alpn */
+        config->noalpn = (!toggle)?TRUE:FALSE;
+        break;
+      case 'i': /* --limit-rate */
+      {
+        /* We support G, M, K too */
+        char *unit;
+        curl_off_t value = curlx_strtoofft(nextarg, &unit, 0);
+
+        if(!*unit)
+          unit = (char *)"b";
+        else if(strlen(unit) > 1)
+          unit = (char *)"w"; /* unsupported */
+
+        switch(*unit) {
+        case 'G':
+        case 'g':
+          value *= 1024*1024*1024;
+          break;
+        case 'M':
+        case 'm':
+          value *= 1024*1024;
+          break;
+        case 'K':
+        case 'k':
+          value *= 1024;
+          break;
+        case 'b':
+        case 'B':
+          /* for plain bytes, leave as-is */
+          break;
+        default:
+          warnf(global, "unsupported rate unit. Use G, M, K or B!\n");
+          return PARAM_BAD_USE;
+        }
+        config->recvpersecond = value;
+        config->sendpersecond = value;
+      }
+      break;
+
+      case 'j': /* --compressed */
+        if(toggle && !(curlinfo->features & CURL_VERSION_LIBZ))
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        config->encoding = toggle;
+        break;
+
+      case 'J': /* --tr-encoding */
+        config->tr_encoding = toggle;
+        break;
+
+      case 'k': /* --digest */
+        if(toggle)
+          config->authtype |= CURLAUTH_DIGEST;
+        else
+          config->authtype &= ~CURLAUTH_DIGEST;
+        break;
+
+      case 'l': /* --negotiate */
+        if(toggle) {
+          if(curlinfo->features & CURL_VERSION_SPNEGO)
+            config->authtype |= CURLAUTH_NEGOTIATE;
+          else
+            return PARAM_LIBCURL_DOESNT_SUPPORT;
+        }
+        else
+          config->authtype &= ~CURLAUTH_NEGOTIATE;
+        break;
+
+      case 'm': /* --ntlm */
+        if(toggle) {
+          if(curlinfo->features & CURL_VERSION_NTLM)
+            config->authtype |= CURLAUTH_NTLM;
+          else
+            return PARAM_LIBCURL_DOESNT_SUPPORT;
+        }
+        else
+          config->authtype &= ~CURLAUTH_NTLM;
+        break;
+
+      case 'M': /* --ntlm-wb */
+        if(toggle) {
+          if(curlinfo->features & CURL_VERSION_NTLM_WB)
+            config->authtype |= CURLAUTH_NTLM_WB;
+          else
+            return PARAM_LIBCURL_DOESNT_SUPPORT;
+        }
+        else
+          config->authtype &= ~CURLAUTH_NTLM_WB;
+        break;
+
+      case 'n': /* --basic for completeness */
+        if(toggle)
+          config->authtype |= CURLAUTH_BASIC;
+        else
+          config->authtype &= ~CURLAUTH_BASIC;
+        break;
+
+      case 'o': /* --anyauth, let libcurl pick it */
+        if(toggle)
+          config->authtype = CURLAUTH_ANY;
+        /* --no-anyauth simply doesn't touch it */
+        break;
+
+#ifdef USE_WATT32
+      case 'p': /* --wdebug */
+        dbug_init();
+        break;
+#endif
+      case 'q': /* --ftp-create-dirs */
+        config->ftp_create_dirs = toggle;
+        break;
+
+      case 'r': /* --create-dirs */
+        config->create_dirs = toggle;
+        break;
+
+      case 's': /* --max-redirs */
+        /* specified max no of redirects (http(s)), this accepts -1 as a
+           special condition */
+        err = str2num(&config->maxredirs, nextarg);
+        if(err)
+          return err;
+        if(config->maxredirs < -1)
+          return PARAM_BAD_NUMERIC;
+        break;
+
+      case 't': /* --proxy-ntlm */
+        if(curlinfo->features & CURL_VERSION_NTLM)
+          config->proxyntlm = toggle;
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+
+      case 'u': /* --crlf */
+        /* LF -> CRLF conversion? */
+        config->crlf = toggle;
+        break;
+
+      case 'v': /* --stderr */
+        if(strcmp(nextarg, "-")) {
+          FILE *newfile = fopen(nextarg, FOPEN_WRITETEXT);
+          if(!newfile)
+            warnf(global, "Failed to open %s!\n", nextarg);
+          else {
+            if(global->errors_fopened)
+              fclose(global->errors);
+            global->errors = newfile;
+            global->errors_fopened = TRUE;
+          }
+        }
+        else
+          global->errors = stdout;
+        break;
+      case 'w': /* --interface */
+        /* interface */
+        GetStr(&config->iface, nextarg);
+        break;
+      case 'x': /* --krb */
+        /* kerberos level string */
+        if(curlinfo->features & CURL_VERSION_KERBEROS4)
+          GetStr(&config->krblevel, nextarg);
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+      case 'y': /* --max-filesize */
+        err = str2offset(&config->max_filesize, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'z': /* --disable-eprt */
+        config->disable_eprt = toggle;
+        break;
+      case 'Z': /* --eprt */
+        config->disable_eprt = (!toggle)?TRUE:FALSE;
+        break;
+      case '~': /* --xattr */
+        config->xattr = toggle;
+        break;
+      case '@': /* the URL! */
+      {
+        struct getout *url;
+
+        if(!config->url_get)
+          config->url_get = config->url_list;
+
+        if(config->url_get) {
+          /* there's a node here, if it already is filled-in continue to find
+             an "empty" node */
+          while(config->url_get && (config->url_get->flags & GETOUT_URL))
+            config->url_get = config->url_get->next;
+        }
+
+        /* now there might or might not be an available node to fill in! */
+
+        if(config->url_get)
+          /* existing node */
+          url = config->url_get;
+        else
+          /* there was no free node, create one! */
+          url = new_getout(config);
+
+        if(!url)
+          return PARAM_NO_MEM;
+
+        /* fill in the URL */
+        GetStr(&url->url, nextarg);
+        url->flags |= GETOUT_URL;
+      }
+      }
+      break;
+    case '$': /* more options without a short option */
+      switch(subletter) {
+      case 'a': /* --ssl */
+        if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        config->ftp_ssl = toggle;
+        break;
+      case 'b': /* --ftp-pasv */
+        Curl_safefree(config->ftpport);
+        break;
+      case 'c': /* --socks5 specifies a socks5 proxy to use, and resolves
+                   the name locally and passes on the resolved address */
+        GetStr(&config->proxy, nextarg);
+        config->proxyver = CURLPROXY_SOCKS5;
+        break;
+      case 't': /* --socks4 specifies a socks4 proxy to use */
+        GetStr(&config->proxy, nextarg);
+        config->proxyver = CURLPROXY_SOCKS4;
+        break;
+      case 'T': /* --socks4a specifies a socks4a proxy to use */
+        GetStr(&config->proxy, nextarg);
+        config->proxyver = CURLPROXY_SOCKS4A;
+        break;
+      case '2': /* --socks5-hostname specifies a socks5 proxy and enables name
+                   resolving with the proxy */
+        GetStr(&config->proxy, nextarg);
+        config->proxyver = CURLPROXY_SOCKS5_HOSTNAME;
+        break;
+      case 'd': /* --tcp-nodelay option */
+        config->tcp_nodelay = toggle;
+        break;
+      case 'e': /* --proxy-digest */
+        config->proxydigest = toggle;
+        break;
+      case 'f': /* --proxy-basic */
+        config->proxybasic = toggle;
+        break;
+      case 'g': /* --retry */
+        err = str2unum(&config->req_retry, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'V': /* --retry-connrefused */
+        config->retry_connrefused = toggle;
+        break;
+      case 'h': /* --retry-delay */
+        err = str2unum(&config->retry_delay, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'i': /* --retry-max-time */
+        err = str2unum(&config->retry_maxtime, nextarg);
+        if(err)
+          return err;
+        break;
+
+      case 'k': /* --proxy-negotiate */
+        if(curlinfo->features & CURL_VERSION_SPNEGO)
+          config->proxynegotiate = toggle;
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+
+      case 'm': /* --ftp-account */
+        GetStr(&config->ftp_account, nextarg);
+        break;
+      case 'n': /* --proxy-anyauth */
+        config->proxyanyauth = toggle;
+        break;
+      case 'o': /* --trace-time */
+        global->tracetime = toggle;
+        break;
+      case 'p': /* --ignore-content-length */
+        config->ignorecl = toggle;
+        break;
+      case 'q': /* --ftp-skip-pasv-ip */
+        config->ftp_skip_ip = toggle;
+        break;
+      case 'r': /* --ftp-method (undocumented at this point) */
+        config->ftp_filemethod = ftpfilemethod(config, nextarg);
+        break;
+      case 's': /* --local-port */
+        rc = sscanf(nextarg, "%d - %d",
+                    &config->localport,
+                    &config->localportrange);
+        if(!rc)
+          return PARAM_BAD_USE;
+        if(rc == 1)
+          config->localportrange = 1; /* default number of ports to try */
+        else {
+          config->localportrange -= config->localport;
+          if(config->localportrange < 1) {
+            warnf(global, "bad range input\n");
+            return PARAM_BAD_USE;
+          }
+        }
+        break;
+      case 'u': /* --ftp-alternative-to-user */
+        GetStr(&config->ftp_alternative_to_user, nextarg);
+        break;
+      case 'v': /* --ssl-reqd */
+        if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        config->ftp_ssl_reqd = toggle;
+        break;
+      case 'w': /* --no-sessionid */
+        config->disable_sessionid = (!toggle)?TRUE:FALSE;
+        break;
+      case 'x': /* --ftp-ssl-control */
+        if(toggle && !(curlinfo->features & CURL_VERSION_SSL))
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        config->ftp_ssl_control = toggle;
+        break;
+      case 'y': /* --ftp-ssl-ccc */
+        config->ftp_ssl_ccc = toggle;
+        if(!config->ftp_ssl_ccc_mode)
+          config->ftp_ssl_ccc_mode = CURLFTPSSL_CCC_PASSIVE;
+        break;
+      case 'j': /* --ftp-ssl-ccc-mode */
+        config->ftp_ssl_ccc = TRUE;
+        config->ftp_ssl_ccc_mode = ftpcccmethod(config, nextarg);
+        break;
+      case 'z': /* --libcurl */
+#ifdef CURL_DISABLE_LIBCURL_OPTION
+        warnf(global,
+              "--libcurl option was disabled at build-time!\n");
+        return PARAM_OPTION_UNKNOWN;
+#else
+        GetStr(&global->libcurl, nextarg);
+        break;
+#endif
+      case '#': /* --raw */
+        config->raw = toggle;
+        break;
+      case '0': /* --post301 */
+        config->post301 = toggle;
+        break;
+      case '1': /* --no-keepalive */
+        config->nokeepalive = (!toggle)?TRUE:FALSE;
+        break;
+      case '3': /* --keepalive-time */
+        err = str2unum(&config->alivetime, nextarg);
+        if(err)
+          return err;
+        break;
+      case '4': /* --post302 */
+        config->post302 = toggle;
+        break;
+      case 'I': /* --post303 */
+        config->post303 = toggle;
+        break;
+      case '5': /* --noproxy */
+        /* This specifies the noproxy list */
+        GetStr(&config->noproxy, nextarg);
+        break;
+       case '7': /* --socks5-gssapi-nec*/
+        config->socks5_gssapi_nec = toggle;
+        break;
+      case '8': /* --proxy1.0 */
+        /* http 1.0 proxy */
+        GetStr(&config->proxy, nextarg);
+        config->proxyver = CURLPROXY_HTTP_1_0;
+        break;
+      case '9': /* --tftp-blksize */
+        err = str2unum(&config->tftp_blksize, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'A': /* --mail-from */
+        GetStr(&config->mail_from, nextarg);
+        break;
+      case 'B': /* --mail-rcpt */
+        /* append receiver to a list */
+        err = add2list(&config->mail_rcpt, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'C': /* --ftp-pret */
+        config->ftp_pret = toggle;
+        break;
+      case 'D': /* --proto */
+        config->proto_present = TRUE;
+        if(proto2num(config, &config->proto, nextarg))
+          return PARAM_BAD_USE;
+        break;
+      case 'E': /* --proto-redir */
+        config->proto_redir_present = TRUE;
+        if(proto2num(config, &config->proto_redir, nextarg))
+          return PARAM_BAD_USE;
+        break;
+      case 'F': /* --resolve */
+        err = add2list(&config->resolve, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'G': /* --delegation LEVEL */
+        config->gssapi_delegation = delegation(config, nextarg);
+        break;
+      case 'H': /* --mail-auth */
+        GetStr(&config->mail_auth, nextarg);
+        break;
+      case 'J': /* --metalink */
+        {
+#ifdef USE_METALINK
+          int mlmaj, mlmin, mlpatch;
+          metalink_get_version(&mlmaj, &mlmin, &mlpatch);
+          if((mlmaj*10000)+(mlmin*100)+mlpatch < CURL_REQ_LIBMETALINK_VERS) {
+            warnf(global,
+                  "--metalink option cannot be used because the version of "
+                  "the linked libmetalink library is too old. "
+                  "Required: %d.%d.%d, found %d.%d.%d\n",
+                  CURL_REQ_LIBMETALINK_MAJOR,
+                  CURL_REQ_LIBMETALINK_MINOR,
+                  CURL_REQ_LIBMETALINK_PATCH,
+                  mlmaj, mlmin, mlpatch);
+            return PARAM_BAD_USE;
+          }
+          else
+            config->use_metalink = toggle;
+#else
+          warnf(global, "--metalink option is ignored because the binary is "
+                "built without the Metalink support.\n");
+#endif
+          break;
+        }
+      case 'K': /* --sasl-ir */
+        config->sasl_ir = toggle;
+        break;
+      case 'L': /* --test-event */
+#ifdef CURLDEBUG
+        config->test_event_based = toggle;
+#else
+        warnf(global, "--test-event is ignored unless a debug build!\n");
+#endif
+        break;
+      case 'M': /* --unix-socket */
+        config->abstract_unix_socket = FALSE;
+        GetStr(&config->unix_socket_path, nextarg);
+        break;
+      case 'N': /* --path-as-is */
+        config->path_as_is = toggle;
+        break;
+      case 'O': /* --proxy-service-name */
+        GetStr(&config->proxy_service_name, nextarg);
+        break;
+      case 'P': /* --service-name */
+        GetStr(&config->service_name, nextarg);
+        break;
+      case 'Q': /* --proto-default */
+        GetStr(&config->proto_default, nextarg);
+        err = check_protocol(config->proto_default);
+        if(err)
+          return err;
+        break;
+      case 'R': /* --expect100-timeout */
+        err = str2udouble(&config->expect100timeout, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'S': /* --tftp-no-options */
+        config->tftp_no_options = toggle;
+        break;
+      case 'U': /* --connect-to */
+        err = add2list(&config->connect_to, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'W': /* --abstract-unix-socket */
+        config->abstract_unix_socket = TRUE;
+        GetStr(&config->unix_socket_path, nextarg);
+        break;
+      case 'X': /* --tls-max */
+        err = str2tls_max(&config->ssl_version_max, nextarg);
+        if(err)
+          return err;
+        break;
+      case 'Y': /* --suppress-connect-headers */
+        config->suppress_connect_headers = toggle;
+        break;
+      }
+      break;
+    case '#': /* --progress-bar */
+      if(toggle)
+        global->progressmode = CURL_PROGRESS_BAR;
+      else
+        global->progressmode = CURL_PROGRESS_STATS;
+      break;
+    case ':': /* --next */
+      return PARAM_NEXT_OPERATION;
+    case '0': /* --http* options */
+      switch(subletter) {
+      case '\0':
+        /* HTTP version 1.0 */
+        config->httpversion = CURL_HTTP_VERSION_1_0;
+        break;
+      case '1':
+        /* HTTP version 1.1 */
+        config->httpversion = CURL_HTTP_VERSION_1_1;
+        break;
+      case '2':
+        /* HTTP version 2.0 */
+        config->httpversion = CURL_HTTP_VERSION_2_0;
+        break;
+      case '3':
+        /* HTTP version 2.0 over clean TCP*/
+        config->httpversion = CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE;
+        break;
+      }
+      break;
+    case '1': /* --tlsv1* options */
+      switch(subletter) {
+      case '\0':
+        /* TLS version 1.x */
+        config->ssl_version = CURL_SSLVERSION_TLSv1;
+        break;
+      case '0':
+        /* TLS version 1.0 */
+        config->ssl_version = CURL_SSLVERSION_TLSv1_0;
+        break;
+      case '1':
+        /* TLS version 1.1 */
+        config->ssl_version = CURL_SSLVERSION_TLSv1_1;
+        break;
+      case '2':
+        /* TLS version 1.2 */
+        config->ssl_version = CURL_SSLVERSION_TLSv1_2;
+        break;
+      case '3':
+        /* TLS version 1.3 */
+        config->ssl_version = CURL_SSLVERSION_TLSv1_3;
+        break;
+      }
+      break;
+    case '2':
+      /* SSL version 2 */
+      config->ssl_version = CURL_SSLVERSION_SSLv2;
+      break;
+    case '3':
+      /* SSL version 3 */
+      config->ssl_version = CURL_SSLVERSION_SSLv3;
+      break;
+    case '4':
+      /* IPv4 */
+      config->ip_version = 4;
+      break;
+    case '6':
+      /* IPv6 */
+      config->ip_version = 6;
+      break;
+    case 'a':
+      /* This makes the FTP sessions use APPE instead of STOR */
+      config->ftp_append = toggle;
+      break;
+    case 'A':
+      /* This specifies the User-Agent name */
+      GetStr(&config->useragent, nextarg);
+      break;
+    case 'b': /* cookie string coming up: */
+      if(nextarg[0] == '@') {
+        nextarg++;
+      }
+      else if(strchr(nextarg, '=')) {
+        /* A cookie string must have a =-letter */
+        GetStr(&config->cookie, nextarg);
+        break;
+      }
+      /* We have a cookie file to read from! */
+      GetStr(&config->cookiefile, nextarg);
+      break;
+    case 'B':
+      /* use ASCII/text when transferring */
+      config->use_ascii = toggle;
+      break;
+    case 'c':
+      /* get the file name to dump all cookies in */
+      GetStr(&config->cookiejar, nextarg);
+      break;
+    case 'C':
+      /* This makes us continue an ftp transfer at given position */
+      if(strcmp(nextarg, "-")) {
+        err = str2offset(&config->resume_from, nextarg);
+        if(err)
+          return err;
+        config->resume_from_current = FALSE;
+      }
+      else {
+        config->resume_from_current = TRUE;
+        config->resume_from = 0;
+      }
+      config->use_resume=TRUE;
+      break;
+    case 'd':
+      /* postfield data */
+    {
+      char *postdata = NULL;
+      FILE *file;
+      size_t size = 0;
+      bool raw_mode = (subletter == 'r');
+
+      if(subletter == 'e') { /* --data-urlencode*/
+        /* [name]=[content], we encode the content part only
+         * [name]@[file name]
+         *
+         * Case 2: we first load the file using that name and then encode
+         * the content.
+         */
+        const char *p = strchr(nextarg, '=');
+        size_t nlen;
+        char is_file;
+        if(!p)
+          /* there was no '=' letter, check for a '@' instead */
+          p = strchr(nextarg, '@');
+        if(p) {
+          nlen = p - nextarg; /* length of the name part */
+          is_file = *p++; /* pass the separator */
+        }
+        else {
+          /* neither @ nor =, so no name and it isn't a file */
+          nlen = is_file = 0;
+          p = nextarg;
+        }
+        if('@' == is_file) {
+          /* a '@' letter, it means that a file name or - (stdin) follows */
+          if(!strcmp("-", p)) {
+            file = stdin;
+            set_binmode(stdin);
+          }
+          else {
+            file = fopen(p, "rb");
+            if(!file)
+              warnf(global,
+                    "Couldn't read data from file \"%s\", this makes "
+                    "an empty POST.\n", nextarg);
+          }
+
+          err = file2memory(&postdata, &size, file);
+
+          if(file && (file != stdin))
+            fclose(file);
+          if(err)
+            return err;
+        }
+        else {
+          GetStr(&postdata, p);
+          if(postdata)
+            size = strlen(postdata);
+        }
+
+        if(!postdata) {
+          /* no data from the file, point to a zero byte string to make this
+             get sent as a POST anyway */
+          postdata = strdup("");
+          if(!postdata)
+            return PARAM_NO_MEM;
+          size = 0;
+        }
+        else {
+          char *enc = curl_easy_escape(config->easy, postdata, (int)size);
+          Curl_safefree(postdata); /* no matter if it worked or not */
+          if(enc) {
+            /* now make a string with the name from above and append the
+               encoded string */
+            size_t outlen = nlen + strlen(enc) + 2;
+            char *n = malloc(outlen);
+            if(!n) {
+              curl_free(enc);
+              return PARAM_NO_MEM;
+            }
+            if(nlen > 0) { /* only append '=' if we have a name */
+              snprintf(n, outlen, "%.*s=%s", nlen, nextarg, enc);
+              size = outlen-1;
+            }
+            else {
+              strcpy(n, enc);
+              size = outlen-2; /* since no '=' was inserted */
+            }
+            curl_free(enc);
+            postdata = n;
+          }
+          else
+            return PARAM_NO_MEM;
+        }
+      }
+      else if('@' == *nextarg && !raw_mode) {
+        /* the data begins with a '@' letter, it means that a file name
+           or - (stdin) follows */
+        nextarg++; /* pass the @ */
+
+        if(!strcmp("-", nextarg)) {
+          file = stdin;
+          if(subletter == 'b') /* forced data-binary */
+            set_binmode(stdin);
+        }
+        else {
+          file = fopen(nextarg, "rb");
+          if(!file)
+            warnf(global, "Couldn't read data from file \"%s\", this makes "
+                  "an empty POST.\n", nextarg);
+        }
+
+        if(subletter == 'b')
+          /* forced binary */
+          err = file2memory(&postdata, &size, file);
+        else {
+          err = file2string(&postdata, file);
+          if(postdata)
+            size = strlen(postdata);
+        }
+
+        if(file && (file != stdin))
+          fclose(file);
+        if(err)
+          return err;
+
+        if(!postdata) {
+          /* no data from the file, point to a zero byte string to make this
+             get sent as a POST anyway */
+          postdata = strdup("");
+          if(!postdata)
+            return PARAM_NO_MEM;
+        }
+      }
+      else {
+        GetStr(&postdata, nextarg);
+        if(postdata)
+          size = strlen(postdata);
+      }
+
+#ifdef CURL_DOES_CONVERSIONS
+      if(subletter != 'b') {
+        /* NOT forced binary, convert to ASCII */
+        if(convert_to_network(postdata, strlen(postdata))) {
+          Curl_safefree(postdata);
+          return PARAM_NO_MEM;
+        }
+      }
+#endif
+
+      if(config->postfields) {
+        /* we already have a string, we append this one with a separating
+           &-letter */
+        char *oldpost = config->postfields;
+        curl_off_t oldlen = config->postfieldsize;
+        curl_off_t newlen = oldlen + curlx_uztoso(size) + 2;
+        config->postfields = malloc((size_t)newlen);
+        if(!config->postfields) {
+          Curl_safefree(oldpost);
+          Curl_safefree(postdata);
+          return PARAM_NO_MEM;
+        }
+        memcpy(config->postfields, oldpost, (size_t)oldlen);
+        /* use byte value 0x26 for '&' to accommodate non-ASCII platforms */
+        config->postfields[oldlen] = '\x26';
+        memcpy(&config->postfields[oldlen+1], postdata, size);
+        config->postfields[oldlen+1+size] = '\0';
+        Curl_safefree(oldpost);
+        Curl_safefree(postdata);
+        config->postfieldsize += size+1;
+      }
+      else {
+        config->postfields = postdata;
+        config->postfieldsize = curlx_uztoso(size);
+      }
+    }
+    /*
+      We can't set the request type here, as this data might be used in
+      a simple GET if -G is used. Already or soon.
+
+      if(SetHTTPrequest(HTTPREQ_SIMPLEPOST, &config->httpreq)) {
+        Curl_safefree(postdata);
+        return PARAM_BAD_USE;
+      }
+    */
+    break;
+    case 'D':
+      /* dump-header to given file name */
+      GetStr(&config->headerfile, nextarg);
+      break;
+    case 'e':
+    {
+      char *ptr = strstr(nextarg, ";auto");
+      if(ptr) {
+        /* Automatic referer requested, this may be combined with a
+           set initial one */
+        config->autoreferer = TRUE;
+        *ptr = 0; /* zero terminate here */
+      }
+      else
+        config->autoreferer = FALSE;
+      GetStr(&config->referer, nextarg);
+    }
+    break;
+    case 'E':
+      switch(subletter) {
+      case '\0': /* certificate file */
+        GetFileAndPassword(nextarg, &config->cert, &config->key_passwd);
+        break;
+      case 'a': /* CA info PEM file */
+        /* CA info PEM file */
+        GetStr(&config->cacert, nextarg);
+        break;
+      case 'b': /* cert file type */
+        GetStr(&config->cert_type, nextarg);
+        break;
+      case 'c': /* private key file */
+        GetStr(&config->key, nextarg);
+        break;
+      case 'd': /* private key file type */
+        GetStr(&config->key_type, nextarg);
+        break;
+      case 'e': /* private key passphrase */
+        GetStr(&config->key_passwd, nextarg);
+        cleanarg(nextarg);
+        break;
+      case 'f': /* crypto engine */
+        GetStr(&config->engine, nextarg);
+        if(config->engine && curl_strequal(config->engine, "list"))
+          return PARAM_ENGINES_REQUESTED;
+        break;
+      case 'g': /* CA info PEM file */
+        /* CA cert directory */
+        GetStr(&config->capath, nextarg);
+        break;
+      case 'h': /* --pubkey public key file */
+        GetStr(&config->pubkey, nextarg);
+        break;
+      case 'i': /* --hostpubmd5 md5 of the host public key */
+        GetStr(&config->hostpubmd5, nextarg);
+        if(!config->hostpubmd5 || strlen(config->hostpubmd5) != 32)
+          return PARAM_BAD_USE;
+        break;
+      case 'j': /* CRL info PEM file */
+        /* CRL file */
+        GetStr(&config->crlfile, nextarg);
+        break;
+      case 'k': /* TLS username */
+        if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP)
+          GetStr(&config->tls_username, nextarg);
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+      case 'l': /* TLS password */
+        if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP)
+          GetStr(&config->tls_password, nextarg);
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+      case 'm': /* TLS authentication type */
+        if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) {
+          GetStr(&config->tls_authtype, nextarg);
+          if(!curl_strequal(config->tls_authtype, "SRP"))
+            return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */
+        }
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+      case 'n': /* no empty SSL fragments, --ssl-allow-beast */
+        if(curlinfo->features & CURL_VERSION_SSL)
+          config->ssl_allow_beast = toggle;
+        break;
+
+      case 'o': /* --login-options */
+        GetStr(&config->login_options, nextarg);
+        break;
+
+      case 'p': /* Pinned public key DER file */
+        /* Pinned public key DER file */
+        GetStr(&config->pinnedpubkey, nextarg);
+        break;
+
+      case 'q': /* --cert-status */
+        config->verifystatus = TRUE;
+        break;
+
+      case 'r': /* --false-start */
+        config->falsestart = TRUE;
+        break;
+
+      case 's': /* --ssl-no-revoke */
+        if(curlinfo->features & CURL_VERSION_SSL)
+          config->ssl_no_revoke = TRUE;
+        break;
+
+      case 't': /* --tcp-fastopen */
+        config->tcp_fastopen = TRUE;
+        break;
+
+      case 'u': /* TLS username for proxy */
+        if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP)
+          GetStr(&config->proxy_tls_username, nextarg);
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+
+      case 'v': /* TLS password for proxy */
+        if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP)
+          GetStr(&config->proxy_tls_password, nextarg);
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+
+      case 'w': /* TLS authentication type for proxy */
+        if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) {
+          GetStr(&config->proxy_tls_authtype, nextarg);
+          if(!curl_strequal(config->proxy_tls_authtype, "SRP"))
+            return PARAM_LIBCURL_DOESNT_SUPPORT; /* only support TLS-SRP */
+        }
+        else
+          return PARAM_LIBCURL_DOESNT_SUPPORT;
+        break;
+
+      case 'x': /* certificate file for proxy */
+        GetFileAndPassword(nextarg, &config->proxy_cert,
+                           &config->proxy_key_passwd);
+        break;
+
+      case 'y': /* cert file type for proxy */
+        GetStr(&config->proxy_cert_type, nextarg);
+        break;
+
+      case 'z': /* private key file for proxy */
+        GetStr(&config->proxy_key, nextarg);
+        break;
+
+      case '0': /* private key file type for proxy */
+        GetStr(&config->proxy_key_type, nextarg);
+        break;
+
+      case '1': /* private key passphrase for proxy */
+        GetStr(&config->proxy_key_passwd, nextarg);
+        cleanarg(nextarg);
+        break;
+
+      case '2': /* ciphers for proxy */
+        GetStr(&config->proxy_cipher_list, nextarg);
+        break;
+
+      case '3': /* CRL info PEM file for proxy */
+        /* CRL file */
+        GetStr(&config->proxy_crlfile, nextarg);
+        break;
+
+      case '4': /* no empty SSL fragments for proxy */
+        if(curlinfo->features & CURL_VERSION_SSL)
+          config->proxy_ssl_allow_beast = toggle;
+        break;
+
+      case '5': /* --login-options */
+        GetStr(&config->login_options, nextarg);
+        break;
+
+      case '6': /* CA info PEM file for proxy */
+        /* CA info PEM file */
+        GetStr(&config->proxy_cacert, nextarg);
+        break;
+
+      case '7': /* CA info PEM file for proxy */
+        /* CA cert directory */
+        GetStr(&config->proxy_capath, nextarg);
+        break;
+
+      case '8': /* allow insecure SSL connects for proxy */
+        config->proxy_insecure_ok = toggle;
+        break;
+
+      case '9':
+        /* TLS version 1 for proxy */
+        config->proxy_ssl_version = CURL_SSLVERSION_TLSv1;
+        break;
+
+      default: /* unknown flag */
+        return PARAM_OPTION_UNKNOWN;
+      }
+      break;
+    case 'f':
+      switch(subletter) {
+      case 'a': /* --fail-early */
+        global->fail_early = toggle;
+        break;
+      default:
+        /* fail hard on errors  */
+        config->failonerror = toggle;
+      }
+      break;
+    case 'F':
+      /* "form data" simulation, this is a little advanced so lets do our best
+         to sort this out slowly and carefully */
+      if(formparse(config,
+                   nextarg,
+                   &config->httppost,
+                   &config->last_post,
+                   (subletter=='s')?TRUE:FALSE)) /* 's' means literal string */
+        return PARAM_BAD_USE;
+      if(SetHTTPrequest(config, HTTPREQ_FORMPOST, &config->httpreq))
+        return PARAM_BAD_USE;
+      break;
+
+    case 'g': /* g disables URLglobbing */
+      config->globoff = toggle;
+      break;
+
+    case 'G': /* HTTP GET */
+      config->use_httpget = TRUE;
+      break;
+
+    case 'h': /* h for help */
+      if(toggle) {
+        return PARAM_HELP_REQUESTED;
+      }
+      /* we now actually support --no-help too! */
+      break;
+    case 'H':
+      /* A custom header to append to a list */
+      if(subletter == 'p') /* --proxy-header */
+        err = add2list(&config->proxyheaders, nextarg);
+      else
+        err = add2list(&config->headers, nextarg);
+      if(err)
+        return err;
+      break;
+    case 'i':
+      config->include_headers = toggle; /* include the headers as well in the
+                                           general output stream */
+      break;
+    case 'j':
+      config->cookiesession = toggle;
+      break;
+    case 'I':
+      /*
+       * no_body will imply include_headers later on
+       */
+      config->no_body = toggle;
+      if(SetHTTPrequest(config,
+                        (config->no_body)?HTTPREQ_HEAD:HTTPREQ_GET,
+                        &config->httpreq))
+        return PARAM_BAD_USE;
+      break;
+    case 'J': /* --remote-header-name */
+      if(config->include_headers) {
+        warnf(global,
+              "--include and --remote-header-name cannot be combined.\n");
+        return PARAM_BAD_USE;
+      }
+      config->content_disposition = toggle;
+      break;
+    case 'k': /* allow insecure SSL connects */
+      config->insecure_ok = toggle;
+      break;
+    case 'K': /* parse config file */
+      if(parseconfig(nextarg, global))
+        warnf(global, "error trying read config from the '%s' file\n",
+              nextarg);
+      break;
+    case 'l':
+      config->dirlistonly = toggle; /* only list the names of the FTP dir */
+      break;
+    case 'L':
+      config->followlocation = toggle; /* Follow Location: HTTP headers */
+      switch(subletter) {
+      case 't':
+        /* Continue to send authentication (user+password) when following
+         * locations, even when hostname changed */
+        config->unrestricted_auth = toggle;
+        break;
+      }
+      break;
+    case 'm':
+      /* specified max time */
+      err = str2udouble(&config->timeout, nextarg);
+      if(err)
+        return err;
+      break;
+    case 'M': /* M for manual, huge help */
+      if(toggle) { /* --no-manual shows no manual... */
+#ifdef USE_MANUAL
+        return PARAM_MANUAL_REQUESTED;
+#else
+        warnf(global,
+              "built-in manual was disabled at build-time!\n");
+        return PARAM_OPTION_UNKNOWN;
+#endif
+      }
+      break;
+    case 'n':
+      switch(subletter) {
+      case 'o': /* CA info PEM file */
+        /* use .netrc or URL */
+        config->netrc_opt = toggle;
+        break;
+      case 'e': /* netrc-file */
+        GetStr(&config->netrc_file, nextarg);
+        break;
+      default:
+        /* pick info from .netrc, if this is used for http, curl will
+           automatically enfore user+password with the request */
+        config->netrc = toggle;
+        break;
+      }
+      break;
+    case 'N':
+      /* disable the output I/O buffering. note that the option is called
+         --buffer but is mostly used in the negative form: --no-buffer */
+      if(longopt)
+        config->nobuffer = (!toggle)?TRUE:FALSE;
+      else
+        config->nobuffer = toggle;
+      break;
+    case 'O': /* --remote-name */
+      if(subletter == 'a') { /* --remote-name-all */
+        config->default_node_flags = toggle?GETOUT_USEREMOTE:0;
+        break;
+      }
+      /* fall-through! */
+    case 'o': /* --output */
+      /* output file */
+    {
+      struct getout *url;
+      if(!config->url_out)
+        config->url_out = config->url_list;
+      if(config->url_out) {
+        /* there's a node here, if it already is filled-in continue to find
+           an "empty" node */
+        while(config->url_out && (config->url_out->flags & GETOUT_OUTFILE))
+          config->url_out = config->url_out->next;
+      }
+
+      /* now there might or might not be an available node to fill in! */
+
+      if(config->url_out)
+        /* existing node */
+        url = config->url_out;
+      else
+        /* there was no free node, create one! */
+        url = new_getout(config);
+
+      if(!url)
+        return PARAM_NO_MEM;
+
+      /* fill in the outfile */
+      if('o' == letter) {
+        GetStr(&url->outfile, nextarg);
+        url->flags &= ~GETOUT_USEREMOTE; /* switch off */
+      }
+      else {
+        url->outfile = NULL; /* leave it */
+        if(toggle)
+          url->flags |= GETOUT_USEREMOTE;  /* switch on */
+        else
+          url->flags &= ~GETOUT_USEREMOTE; /* switch off */
+      }
+      url->flags |= GETOUT_OUTFILE;
+    }
+    break;
+    case 'P':
+      /* This makes the FTP sessions use PORT instead of PASV */
+      /* use <eth0> or <192.168.10.10> style addresses. Anything except
+         this will make us try to get the "default" address.
+         NOTE: this is a changed behaviour since the released 4.1!
+      */
+      GetStr(&config->ftpport, nextarg);
+      break;
+    case 'p':
+      /* proxy tunnel for non-http protocols */
+      config->proxytunnel = toggle;
+      break;
+
+    case 'q': /* if used first, already taken care of, we do it like
+                 this so we don't cause an error! */
+      break;
+    case 'Q':
+      /* QUOTE command to send to FTP server */
+      switch(nextarg[0]) {
+      case '-':
+        /* prefixed with a dash makes it a POST TRANSFER one */
+        nextarg++;
+        err = add2list(&config->postquote, nextarg);
+        break;
+      case '+':
+        /* prefixed with a plus makes it a just-before-transfer one */
+        nextarg++;
+        err = add2list(&config->prequote, nextarg);
+        break;
+      default:
+        err = add2list(&config->quote, nextarg);
+        break;
+      }
+      if(err)
+        return err;
+      break;
+    case 'r':
+      /* Specifying a range WITHOUT A DASH will create an illegal HTTP range
+         (and won't actually be range by definition). The man page previously
+         claimed that to be a good way, why this code is added to work-around
+         it. */
+      if(ISDIGIT(*nextarg) && !strchr(nextarg, '-')) {
+        char buffer[32];
+        curl_off_t off;
+        warnf(global,
+              "A specified range MUST include at least one dash (-). "
+              "Appending one for you!\n");
+        off = curlx_strtoofft(nextarg, NULL, 10);
+        snprintf(buffer, sizeof(buffer), "%" CURL_FORMAT_CURL_OFF_T "-", off);
+        Curl_safefree(config->range);
+        config->range = strdup(buffer);
+        if(!config->range)
+          return PARAM_NO_MEM;
+      }
+      {
+        /* byte range requested */
+        char *tmp_range;
+        tmp_range = nextarg;
+        while(*tmp_range != '\0') {
+          if(!ISDIGIT(*tmp_range) && *tmp_range != '-' && *tmp_range != ',') {
+            warnf(global, "Invalid character is found in given range. "
+                  "A specified range MUST have only digits in "
+                  "\'start\'-\'stop\'. The server's response to this "
+                  "request is uncertain.\n");
+            break;
+          }
+          tmp_range++;
+        }
+        /* byte range requested */
+        GetStr(&config->range, nextarg);
+      }
+      break;
+    case 'R':
+      /* use remote file's time */
+      config->remote_time = toggle;
+      break;
+    case 's':
+      /* don't show progress meter, don't show errors : */
+      if(toggle)
+        global->mute = global->noprogress = TRUE;
+      else
+        global->mute = global->noprogress = FALSE;
+      if(global->showerror < 0)
+        /* if still on the default value, set showerror to the reverse of
+           toggle. This is to allow -S and -s to be used in an independent
+           order but still have the same effect. */
+        global->showerror = (!toggle)?TRUE:FALSE; /* toggle off */
+      break;
+    case 'S':
+      /* show errors */
+      global->showerror = toggle?1:0; /* toggle on if used with -s */
+      break;
+    case 't':
+      /* Telnet options */
+      err = add2list(&config->telnet_options, nextarg);
+      if(err)
+        return err;
+      break;
+    case 'T':
+      /* we are uploading */
+    {
+      struct getout *url;
+      if(!config->url_out)
+        config->url_out = config->url_list;
+      if(config->url_out) {
+        /* there's a node here, if it already is filled-in continue to find
+           an "empty" node */
+        while(config->url_out && (config->url_out->flags & GETOUT_UPLOAD))
+          config->url_out = config->url_out->next;
+      }
+
+      /* now there might or might not be an available node to fill in! */
+
+      if(config->url_out)
+        /* existing node */
+        url = config->url_out;
+      else
+        /* there was no free node, create one! */
+        url = new_getout(config);
+
+      if(!url)
+        return PARAM_NO_MEM;
+
+      url->flags |= GETOUT_UPLOAD; /* mark -T used */
+      if(!*nextarg)
+        url->flags |= GETOUT_NOUPLOAD;
+      else {
+        /* "-" equals stdin, but keep the string around for now */
+        GetStr(&url->infile, nextarg);
+      }
+    }
+    break;
+    case 'u':
+      /* user:password  */
+      GetStr(&config->userpwd, nextarg);
+      cleanarg(nextarg);
+      break;
+    case 'U':
+      /* Proxy user:password  */
+      GetStr(&config->proxyuserpwd, nextarg);
+      cleanarg(nextarg);
+      break;
+    case 'v':
+      if(toggle) {
+        /* the '%' thing here will cause the trace get sent to stderr */
+        Curl_safefree(global->trace_dump);
+        global->trace_dump = strdup("%");
+        if(!global->trace_dump)
+          return PARAM_NO_MEM;
+        if(global->tracetype && (global->tracetype != TRACE_PLAIN))
+          warnf(global,
+                "-v, --verbose overrides an earlier trace/verbose option\n");
+        global->tracetype = TRACE_PLAIN;
+      }
+      else
+        /* verbose is disabled here */
+        global->tracetype = TRACE_NONE;
+      break;
+    case 'V':
+      if(toggle)    /* --no-version yields no output! */
+        return PARAM_VERSION_INFO_REQUESTED;
+      break;
+
+    case 'w':
+      /* get the output string */
+      if('@' == *nextarg) {
+        /* the data begins with a '@' letter, it means that a file name
+           or - (stdin) follows */
+        FILE *file;
+        const char *fname;
+        nextarg++; /* pass the @ */
+        if(!strcmp("-", nextarg)) {
+          fname = "<stdin>";
+          file = stdin;
+        }
+        else {
+          fname = nextarg;
+          file = fopen(nextarg, FOPEN_READTEXT);
+        }
+        err = file2string(&config->writeout, file);
+        if(file && (file != stdin))
+          fclose(file);
+        if(err)
+          return err;
+        if(!config->writeout)
+          warnf(global, "Failed to read %s", fname);
+      }
+      else
+        GetStr(&config->writeout, nextarg);
+      break;
+    case 'x':
+      switch(subletter) {
+      case 'a': /* --preproxy */
+        GetStr(&config->preproxy, nextarg);
+        break;
+      default:
+        /* --proxy */
+        GetStr(&config->proxy, nextarg);
+        config->proxyver = CURLPROXY_HTTP;
+        break;
+      }
+      break;
+    case 'X':
+      /* set custom request */
+      GetStr(&config->customrequest, nextarg);
+      break;
+    case 'y':
+      /* low speed time */
+      err = str2unum(&config->low_speed_time, nextarg);
+      if(err)
+        return err;
+      if(!config->low_speed_limit)
+        config->low_speed_limit = 1;
+      break;
+    case 'Y':
+      /* low speed limit */
+      err = str2unum(&config->low_speed_limit, nextarg);
+      if(err)
+        return err;
+      if(!config->low_speed_time)
+        config->low_speed_time = 30;
+      break;
+    case 'z': /* time condition coming up */
+      switch(*nextarg) {
+      case '+':
+        nextarg++;
+        /* FALLTHROUGH */
+      default:
+        /* If-Modified-Since: (section 14.28 in RFC2068) */
+        config->timecond = CURL_TIMECOND_IFMODSINCE;
+        break;
+      case '-':
+        /* If-Unmodified-Since:  (section 14.24 in RFC2068) */
+        config->timecond = CURL_TIMECOND_IFUNMODSINCE;
+        nextarg++;
+        break;
+      case '=':
+        /* Last-Modified:  (section 14.29 in RFC2068) */
+        config->timecond = CURL_TIMECOND_LASTMOD;
+        nextarg++;
+        break;
+      }
+      now = time(NULL);
+      config->condtime=curl_getdate(nextarg, &now);
+      if(-1 == (int)config->condtime) {
+        /* now let's see if it is a file name to get the time from instead! */
+        struct_stat statbuf;
+        if(-1 == stat(nextarg, &statbuf)) {
+          /* failed, remove time condition */
+          config->timecond = CURL_TIMECOND_NONE;
+          warnf(global,
+                "Illegal date format for -z, --time-cond (and not "
+                "a file name). Disabling time condition. "
+                "See curl_getdate(3) for valid date syntax.\n");
+        }
+        else {
+          /* pull the time out from the file */
+          config->condtime = statbuf.st_mtime;
+        }
+      }
+      break;
+    default: /* unknown flag */
+      return PARAM_OPTION_UNKNOWN;
+    }
+    hit = -1;
+
+  } while(!longopt && !singleopt && *++parse && !*usedarg);
+
+  return PARAM_OK;
+}
+
+ParameterError parse_args(struct GlobalConfig *config, int argc,
+                          argv_item_t argv[])
+{
+  int i;
+  bool stillflags;
+  char *orig_opt = NULL;
+  ParameterError result = PARAM_OK;
+  struct OperationConfig *operation = config->first;
+
+  for(i = 1, stillflags = TRUE; i < argc && !result; i++) {
+    orig_opt = argv[i];
+
+    if(stillflags && ('-' == argv[i][0])) {
+      char *nextarg;
+      bool passarg;
+      char *flag = argv[i];
+
+      if(!strcmp("--", argv[i]))
+        /* This indicates the end of the flags and thus enables the
+           following (URL) argument to start with -. */
+        stillflags = FALSE;
+      else {
+        nextarg = (i < (argc - 1)) ? argv[i + 1] : NULL;
+
+        result = getparameter(flag, nextarg, &passarg, config, operation);
+        if(result == PARAM_NEXT_OPERATION) {
+          /* Reset result as PARAM_NEXT_OPERATION is only used here and not
+             returned from this function */
+          result = PARAM_OK;
+
+          if(operation->url_list && operation->url_list->url) {
+            /* Allocate the next config */
+            operation->next = malloc(sizeof(struct OperationConfig));
+            if(operation->next) {
+              /* Initialise the newly created config */
+              config_init(operation->next);
+
+              /* Copy the easy handle */
+              operation->next->easy = config->easy;
+
+              /* Set the global config pointer */
+              operation->next->global = config;
+
+              /* Update the last operation pointer */
+              config->last = operation->next;
+
+              /* Move onto the new config */
+              operation->next->prev = operation;
+              operation = operation->next;
+            }
+            else
+              result = PARAM_NO_MEM;
+          }
+        }
+        else if(!result && passarg)
+          i++; /* we're supposed to skip this */
+      }
+    }
+    else {
+      bool used;
+
+      /* Just add the URL please */
+      result = getparameter((char *)"--url", argv[i], &used, config,
+                            operation);
+    }
+  }
+
+  if(result && result != PARAM_HELP_REQUESTED &&
+     result != PARAM_MANUAL_REQUESTED &&
+     result != PARAM_VERSION_INFO_REQUESTED &&
+     result != PARAM_ENGINES_REQUESTED) {
+    const char *reason = param2text(result);
+
+    if(orig_opt && strcmp(":", orig_opt))
+      helpf(config->errors, "option %s: %s\n", orig_opt, reason);
+    else
+      helpf(config->errors, "%s\n", reason);
+  }
+
+  return result;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_getparam.h b/ap/lib/libcurl/curl-7.54.1/src/tool_getparam.h
new file mode 100644
index 0000000..29e1588
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_getparam.h
@@ -0,0 +1,64 @@
+#ifndef HEADER_CURL_TOOL_GETPARAM_H
+#define HEADER_CURL_TOOL_GETPARAM_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+typedef enum {
+  PARAM_OK = 0,
+  PARAM_OPTION_AMBIGUOUS,
+  PARAM_OPTION_UNKNOWN,
+  PARAM_REQUIRES_PARAMETER,
+  PARAM_BAD_USE,
+  PARAM_HELP_REQUESTED,
+  PARAM_MANUAL_REQUESTED,
+  PARAM_VERSION_INFO_REQUESTED,
+  PARAM_ENGINES_REQUESTED,
+  PARAM_GOT_EXTRA_PARAMETER,
+  PARAM_BAD_NUMERIC,
+  PARAM_NEGATIVE_NUMERIC,
+  PARAM_LIBCURL_DOESNT_SUPPORT,
+  PARAM_LIBCURL_UNSUPPORTED_PROTOCOL,
+  PARAM_NO_MEM,
+  PARAM_NEXT_OPERATION,
+  PARAM_NO_PREFIX,
+  PARAM_LAST
+} ParameterError;
+
+struct GlobalConfig;
+struct OperationConfig;
+
+ParameterError getparameter(const char *flag, char *nextarg, bool *usedarg,
+                            struct GlobalConfig *global,
+                            struct OperationConfig *operation);
+
+#ifdef UNITTESTS
+void parse_cert_parameter(const char *cert_parameter,
+                          char **certname,
+                          char **passphrase);
+#endif
+
+ParameterError parse_args(struct GlobalConfig *config, int argc,
+                          argv_item_t argv[]);
+
+#endif /* HEADER_CURL_TOOL_GETPARAM_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_getpass.c b/ap/lib/libcurl/curl-7.54.1/src/tool_getpass.c
new file mode 100644
index 0000000..e5e2d6d
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_getpass.c
@@ -0,0 +1,254 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifndef HAVE_GETPASS_R
+/* this file is only for systems without getpass_r() */
+
+#ifdef HAVE_FCNTL_H
+#  include <fcntl.h>
+#endif
+
+#ifdef HAVE_TERMIOS_H
+#  include <termios.h>
+#elif defined(HAVE_TERMIO_H)
+#  include <termio.h>
+#endif
+
+#ifdef __VMS
+#  include descrip
+#  include starlet
+#  include iodef
+#endif
+
+#ifdef WIN32
+#  include <conio.h>
+#endif
+
+#ifdef NETWARE
+#  ifdef __NOVELL_LIBC__
+#    include <screen.h>
+#  else
+#    include <nwconio.h>
+#  endif
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include "tool_getpass.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifdef __VMS
+/* VMS implementation */
+char *getpass_r(const char *prompt, char *buffer, size_t buflen)
+{
+  long sts;
+  short chan;
+
+  /* MSK, 23-JAN-2004, iosbdef.h wasn't in VAX V7.2 or CC 6.4  */
+  /* distribution so I created this.  May revert back later to */
+  /* struct _iosb iosb;                                        */
+  struct _iosb
+     {
+     short int iosb$w_status; /* status     */
+     short int iosb$w_bcnt;   /* byte count */
+     int       unused;        /* unused     */
+     } iosb;
+
+  $DESCRIPTOR(ttdesc, "TT");
+
+  buffer[0] = '\0';
+  sts = sys$assign(&ttdesc, &chan, 0, 0);
+  if(sts & 1) {
+    sts = sys$qiow(0, chan,
+                   IO$_READPROMPT | IO$M_NOECHO,
+                   &iosb, 0, 0, buffer, buflen, 0, 0,
+                   prompt, strlen(prompt));
+
+    if((sts & 1) && (iosb.iosb$w_status & 1))
+      buffer[iosb.iosb$w_bcnt] = '\0';
+
+    sts = sys$dassgn(chan);
+  }
+  return buffer; /* we always return success */
+}
+#define DONE
+#endif /* __VMS */
+
+#ifdef __SYMBIAN32__
+#  define getch() getchar()
+#endif
+
+#if defined(WIN32) || defined(__SYMBIAN32__)
+
+char *getpass_r(const char *prompt, char *buffer, size_t buflen)
+{
+  size_t i;
+  fputs(prompt, stderr);
+
+  for(i = 0; i < buflen; i++) {
+    buffer[i] = (char)getch();
+    if(buffer[i] == '\r' || buffer[i] == '\n') {
+      buffer[i] = '\0';
+      break;
+    }
+    else
+      if(buffer[i] == '\b')
+        /* remove this letter and if this is not the first key, remove the
+           previous one as well */
+        i = i - (i >= 1 ? 2 : 1);
+  }
+#ifndef __SYMBIAN32__
+  /* since echo is disabled, print a newline */
+  fputs("\n", stderr);
+#endif
+  /* if user didn't hit ENTER, terminate buffer */
+  if(i == buflen)
+    buffer[buflen-1] = '\0';
+
+  return buffer; /* we always return success */
+}
+#define DONE
+#endif /* WIN32 || __SYMBIAN32__ */
+
+#ifdef NETWARE
+/* NetWare implementation */
+#ifdef __NOVELL_LIBC__
+char *getpass_r(const char *prompt, char *buffer, size_t buflen)
+{
+  return getpassword(prompt, buffer, buflen);
+}
+#else
+char *getpass_r(const char *prompt, char *buffer, size_t buflen)
+{
+  size_t i = 0;
+
+  printf("%s", prompt);
+  do {
+    buffer[i++] = getch();
+    if(buffer[i-1] == '\b') {
+      /* remove this letter and if this is not the first key,
+         remove the previous one as well */
+      if(i > 1) {
+        printf("\b \b");
+        i = i - 2;
+      }
+      else {
+        RingTheBell();
+        i = i - 1;
+      }
+    }
+    else if(buffer[i-1] != 13)
+      putchar('*');
+
+  } while((buffer[i-1] != 13) && (i < buflen));
+  buffer[i-1] = '\0';
+  printf("\r\n");
+  return buffer;
+}
+#endif /* __NOVELL_LIBC__ */
+#define DONE
+#endif /* NETWARE */
+
+#ifndef DONE /* not previously provided */
+
+#ifdef HAVE_TERMIOS_H
+#  define struct_term  struct termios
+#elif defined(HAVE_TERMIO_H)
+#  define struct_term  struct termio
+#else
+#  undef  struct_term
+#endif
+
+static bool ttyecho(bool enable, int fd)
+{
+#ifdef struct_term
+  static struct_term withecho;
+  static struct_term noecho;
+#endif
+  if(!enable) {
+    /* disable echo by extracting the current 'withecho' mode and remove the
+       ECHO bit and set back the struct */
+#ifdef HAVE_TERMIOS_H
+    tcgetattr(fd, &withecho);
+    noecho = withecho;
+    noecho.c_lflag &= ~ECHO;
+    tcsetattr(fd, TCSANOW, &noecho);
+#elif defined(HAVE_TERMIO_H)
+    ioctl(fd, TCGETA, &withecho);
+    noecho = withecho;
+    noecho.c_lflag &= ~ECHO;
+    ioctl(fd, TCSETA, &noecho);
+#else
+    /* neither HAVE_TERMIO_H nor HAVE_TERMIOS_H, we can't disable echo! */
+    (void)fd;
+    return FALSE; /* not disabled */
+#endif
+    return TRUE; /* disabled */
+  }
+  /* re-enable echo, assumes we disabled it before (and set the structs we
+     now use to reset the terminal status) */
+#ifdef HAVE_TERMIOS_H
+  tcsetattr(fd, TCSAFLUSH, &withecho);
+#elif defined(HAVE_TERMIO_H)
+  ioctl(fd, TCSETA, &withecho);
+#else
+  return FALSE; /* not enabled */
+#endif
+  return TRUE; /* enabled */
+}
+
+char *getpass_r(const char *prompt, /* prompt to display */
+                char *password,     /* buffer to store password in */
+                size_t buflen)      /* size of buffer to store password in */
+{
+  ssize_t nread;
+  bool disabled;
+  int fd = open("/dev/tty", O_RDONLY);
+  if(-1 == fd)
+    fd = STDIN_FILENO; /* use stdin if the tty couldn't be used */
+
+  disabled = ttyecho(FALSE, fd); /* disable terminal echo */
+
+  fputs(prompt, stderr);
+  nread = read(fd, password, buflen);
+  if(nread > 0)
+    password[--nread] = '\0'; /* zero terminate where enter is stored */
+  else
+    password[0] = '\0'; /* got nothing */
+
+  if(disabled) {
+    /* if echo actually was disabled, add a newline */
+    fputs("\n", stderr);
+    (void)ttyecho(TRUE, fd); /* enable echo */
+  }
+
+  if(STDIN_FILENO != fd)
+    close(fd);
+
+  return password; /* return pointer to buffer */
+}
+
+#endif /* DONE */
+#endif /* HAVE_GETPASS_R */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_getpass.h b/ap/lib/libcurl/curl-7.54.1/src/tool_getpass.h
new file mode 100644
index 0000000..f639596
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_getpass.h
@@ -0,0 +1,36 @@
+#ifndef HEADER_CURL_TOOL_GETPASS_H
+#define HEADER_CURL_TOOL_GETPASS_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifndef HAVE_GETPASS_R
+/* If there's a system-provided function named like this, we trust it is
+   also found in one of the standard headers. */
+
+/*
+ * Returning NULL will abort the continued operation!
+ */
+char *getpass_r(const char *prompt, char *buffer, size_t buflen);
+#endif
+
+#endif /* HEADER_CURL_TOOL_GETPASS_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_help.c b/ap/lib/libcurl/curl-7.54.1/src/tool_help.c
new file mode 100644
index 0000000..46aae45
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_help.c
@@ -0,0 +1,567 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "tool_panykey.h"
+#include "tool_help.h"
+#include "tool_libinfo.h"
+#include "tool_version.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifdef MSDOS
+#  define USE_WATT32
+#endif
+
+/*
+ * The help output is generated with the following command
+ ---------------------------------------------------------
+
+  cd $srcroot/docs/cmdline-opts
+  ./gen.pl listhelp
+ */
+
+struct helptxt {
+  const char *opt;
+  const char *desc;
+};
+
+static const struct helptxt helptext[] = {
+  {"    --abstract-unix-socket <path>",
+   "Connect via abstract Unix domain socket"},
+  {"    --anyauth",
+   "Pick any authentication method"},
+  {"-a, --append",
+   "Append to target file when uploading"},
+  {"    --basic",
+   "Use HTTP Basic Authentication"},
+  {"    --cacert <CA certificate>",
+   "CA certificate to verify peer against"},
+  {"    --capath <dir>",
+   "CA directory to verify peer against"},
+  {"-E, --cert <certificate[:password]>",
+   "Client certificate file and password"},
+  {"    --cert-status",
+   "Verify the status of the server certificate"},
+  {"    --cert-type <type>",
+   "Certificate file type (DER/PEM/ENG)"},
+  {"    --ciphers <list of ciphers>",
+   "SSL ciphers to use"},
+  {"    --compressed",
+   "Request compressed response"},
+  {"-K, --config <file>",
+   "Read config from a file"},
+  {"    --connect-timeout <seconds>",
+   "Maximum time allowed for connection"},
+  {"    --connect-to <HOST1:PORT1:HOST2:PORT2>",
+   "Connect to host"},
+  {"-C, --continue-at <offset>",
+   "Resumed transfer offset"},
+  {"-b, --cookie <data>",
+   "Send cookies from string/file"},
+  {"-c, --cookie-jar <filename>",
+   "Write cookies to <filename> after operation"},
+  {"    --create-dirs",
+   "Create necessary local directory hierarchy"},
+  {"    --crlf",
+   "Convert LF to CRLF in upload"},
+  {"    --crlfile <file>",
+   "Get a CRL list in PEM format from the given file"},
+  {"-d, --data <data>",
+   "HTTP POST data"},
+  {"    --data-ascii <data>",
+   "HTTP POST ASCII data"},
+  {"    --data-binary <data>",
+   "HTTP POST binary data"},
+  {"    --data-raw <data>",
+   "HTTP POST data, '@' allowed"},
+  {"    --data-urlencode <data>",
+   "HTTP POST data url encoded"},
+  {"    --delegation <LEVEL>",
+   "GSS-API delegation permission"},
+  {"    --digest",
+   "Use HTTP Digest Authentication"},
+  {"-q, --disable",
+   "Disable .curlrc"},
+  {"    --disable-eprt",
+   "Inhibit using EPRT or LPRT"},
+  {"    --disable-epsv",
+   "Inhibit using EPSV"},
+  {"    --dns-interface <interface>",
+   "Interface to use for DNS requests"},
+  {"    --dns-ipv4-addr <address>",
+   "IPv4 address to use for DNS requests"},
+  {"    --dns-ipv6-addr <address>",
+   "IPv6 address to use for DNS requests"},
+  {"    --dns-servers <addresses>",
+   "DNS server addrs to use"},
+  {"-D, --dump-header <filename>",
+   "Write the received headers to <filename>"},
+  {"    --egd-file <file>",
+   "EGD socket path for random data"},
+  {"    --engine <name>",
+   "Crypto engine to use"},
+  {"    --expect100-timeout <seconds>",
+   "How long to wait for 100-continue"},
+  {"-f, --fail",
+   "Fail silently (no output at all) on HTTP errors"},
+  {"    --fail-early",
+   "Fail on first transfer error, do not continue"},
+  {"    --false-start",
+   "Enable TLS False Start"},
+  {"-F, --form <name=content>",
+   "Specify HTTP multipart POST data"},
+  {"    --form-string <name=string>",
+   "Specify HTTP multipart POST data"},
+  {"    --ftp-account <data>",
+   "Account data string"},
+  {"    --ftp-alternative-to-user <command>",
+   "String to replace USER [name]"},
+  {"    --ftp-create-dirs",
+   "Create the remote dirs if not present"},
+  {"    --ftp-method <method>",
+   "Control CWD usage"},
+  {"    --ftp-pasv",
+   "Use PASV/EPSV instead of PORT"},
+  {"-P, --ftp-port <address>",
+   "Use PORT instead of PASV"},
+  {"    --ftp-pret",
+   "Send PRET before PASV"},
+  {"    --ftp-skip-pasv-ip",
+   "Skip the IP address for PASV"},
+  {"    --ftp-ssl-ccc",
+   "Send CCC after authenticating"},
+  {"    --ftp-ssl-ccc-mode <active/passive>",
+   "Set CCC mode"},
+  {"    --ftp-ssl-control",
+   "Require SSL/TLS for FTP login, clear for transfer"},
+  {"-G, --get",
+   "Put the post data in the URL and use GET"},
+  {"-g, --globoff",
+   "Disable URL sequences and ranges using {} and []"},
+  {"-I, --head",
+   "Show document info only"},
+  {"-H, --header <header>",
+   "Pass custom header LINE to server"},
+  {"-h, --help",
+   "This help text"},
+  {"    --hostpubmd5 <md5>",
+   "Acceptable MD5 hash of the host public key"},
+  {"-0, --http1.0",
+   "Use HTTP 1.0"},
+  {"    --http1.1",
+   "Use HTTP 1.1"},
+  {"    --http2",
+   "Use HTTP 2"},
+  {"    --http2-prior-knowledge",
+   "Use HTTP 2 without HTTP/1.1 Upgrade"},
+  {"    --ignore-content-length",
+   "Ignore the size of the remote resource"},
+  {"-i, --include",
+   "Include protocol headers in the output"},
+  {"-k, --insecure",
+   "Allow insecure server connections when using SSL"},
+  {"    --interface <name>",
+   "Use network INTERFACE (or address)"},
+  {"-4, --ipv4",
+   "Resolve names to IPv4 addresses"},
+  {"-6, --ipv6",
+   "Resolve names to IPv6 addresses"},
+  {"-j, --junk-session-cookies",
+   "Ignore session cookies read from file"},
+  {"    --keepalive-time <seconds>",
+   "Interval time for keepalive probes"},
+  {"    --key <key>",
+   "Private key file name"},
+  {"    --key-type <type>",
+   "Private key file type (DER/PEM/ENG)"},
+  {"    --krb <level>",
+   "Enable Kerberos with security <level>"},
+  {"    --libcurl <file>",
+   "Dump libcurl equivalent code of this command line"},
+  {"    --limit-rate <speed>",
+   "Limit transfer speed to RATE"},
+  {"-l, --list-only",
+   "List only mode"},
+  {"    --local-port <num/range>",
+   "Force use of RANGE for local port numbers"},
+  {"-L, --location",
+   "Follow redirects"},
+  {"    --location-trusted",
+   "Like --location, and send auth to other hosts"},
+  {"    --login-options <options>",
+   "Server login options"},
+  {"    --mail-auth <address>",
+   "Originator address of the original email"},
+  {"    --mail-from <address>",
+   "Mail from this address"},
+  {"    --mail-rcpt <address>",
+   "Mail from this address"},
+  {"-M, --manual",
+   "Display the full manual"},
+  {"    --max-filesize <bytes>",
+   "Maximum file size to download"},
+  {"    --max-redirs <num>",
+   "Maximum number of redirects allowed"},
+  {"-m, --max-time <time>",
+   "Maximum time allowed for the transfer"},
+  {"    --metalink",
+   "Process given URLs as metalink XML file"},
+  {"    --negotiate",
+   "Use HTTP Negotiate (SPNEGO) authentication"},
+  {"-n, --netrc",
+   "Must read .netrc for user name and password"},
+  {"    --netrc-file <filename>",
+   "Specify FILE for netrc"},
+  {"    --netrc-optional",
+   "Use either .netrc or URL"},
+  {"-:, --next",
+   "Make next URL use its separate set of options"},
+  {"    --no-alpn",
+   "Disable the ALPN TLS extension"},
+  {"-N, --no-buffer",
+   "Disable buffering of the output stream"},
+  {"    --no-keepalive",
+   "Disable TCP keepalive on the connection"},
+  {"    --no-npn",
+   "Disable the NPN TLS extension"},
+  {"    --no-sessionid",
+   "Disable SSL session-ID reusing"},
+  {"    --noproxy <no-proxy-list>",
+   "List of hosts which do not use proxy"},
+  {"    --ntlm",
+   "Use HTTP NTLM authentication"},
+  {"    --ntlm-wb",
+   "Use HTTP NTLM authentication with winbind"},
+  {"    --oauth2-bearer",
+   "OAuth 2 Bearer Token"},
+  {"-o, --output <file>",
+   "Write to file instead of stdout"},
+  {"    --pass <phrase>",
+   "Pass phrase for the private key"},
+  {"    --path-as-is",
+   "Do not squash .. sequences in URL path"},
+  {"    --pinnedpubkey <hashes>",
+   "FILE/HASHES Public key to verify peer against"},
+  {"    --post301",
+   "Do not switch to GET after following a 301"},
+  {"    --post302",
+   "Do not switch to GET after following a 302"},
+  {"    --post303",
+   "Do not switch to GET after following a 303"},
+  {"    --preproxy [protocol://]host[:port]",
+   "Use this proxy first"},
+  {"-#, --progress-bar",
+   "Display transfer progress as a bar"},
+  {"    --proto <protocols>",
+   "Enable/disable PROTOCOLS"},
+  {"    --proto-default <protocol>",
+   "Use PROTOCOL for any URL missing a scheme"},
+  {"    --proto-redir <protocols>",
+   "Enable/disable PROTOCOLS on redirect"},
+  {"-x, --proxy [protocol://]host[:port]",
+   "Use this proxy"},
+  {"    --proxy-anyauth",
+   "Pick any proxy authentication method"},
+  {"    --proxy-basic",
+   "Use Basic authentication on the proxy"},
+  {"    --proxy-cacert <file>",
+   "CA certificate to verify peer against for proxy"},
+  {"    --proxy-capath <dir>",
+   "CA directory to verify peer against for proxy"},
+  {"    --proxy-cert <cert[:passwd]>",
+   "Set client certificate for proxy"},
+  {"    --proxy-cert-type <type>",
+   "Client certificate type for HTTS proxy"},
+  {"    --proxy-ciphers <list>",
+   "SSL ciphers to use for proxy"},
+  {"    --proxy-crlfile <file>",
+   "Set a CRL list for proxy"},
+  {"    --proxy-digest",
+   "Use Digest authentication on the proxy"},
+  {"    --proxy-header <header>",
+   "Pass custom header LINE to proxy"},
+  {"    --proxy-insecure",
+   "Do HTTPS proxy connections without verifying the proxy"},
+  {"    --proxy-key <key>",
+   "Private key for HTTPS proxy"},
+  {"    --proxy-key-type <type>",
+   "Private key file type for proxy"},
+  {"    --proxy-negotiate",
+   "Use HTTP Negotiate (SPNEGO) authentication on the proxy"},
+  {"    --proxy-ntlm",
+   "Use NTLM authentication on the proxy"},
+  {"    --proxy-pass <phrase>",
+   "Pass phrase for the private key for HTTPS proxy"},
+  {"    --proxy-service-name <name>",
+   "SPNEGO proxy service name"},
+  {"    --proxy-ssl-allow-beast",
+   "Allow security flaw for interop for HTTPS proxy"},
+  {"    --proxy-tlsauthtype <type>",
+   "TLS authentication type for HTTPS proxy"},
+  {"    --proxy-tlspassword <string>",
+   "TLS password for HTTPS proxy"},
+  {"    --proxy-tlsuser <name>",
+   "TLS username for HTTPS proxy"},
+  {"    --proxy-tlsv1",
+   "Use TLSv1 for HTTPS proxy"},
+  {"-U, --proxy-user <user:password>",
+   "Proxy user and password"},
+  {"    --proxy1.0 <host[:port]>",
+   "Use HTTP/1.0 proxy on given port"},
+  {"-p, --proxytunnel",
+   "Operate through a HTTP proxy tunnel (using CONNECT)"},
+  {"    --pubkey <key>",
+   "SSH Public key file name"},
+  {"-Q, --quote",
+   "Send command(s) to server before transfer"},
+  {"    --random-file <file>",
+   "File for reading random data from"},
+  {"-r, --range <range>",
+   "Retrieve only the bytes within RANGE"},
+  {"    --raw",
+   "Do HTTP \"raw\"; no transfer decoding"},
+  {"-e, --referer <URL>",
+   "Referrer URL"},
+  {"-J, --remote-header-name",
+   "Use the header-provided filename"},
+  {"-O, --remote-name",
+   "Write output to a file named as the remote file"},
+  {"    --remote-name-all",
+   "Use the remote file name for all URLs"},
+  {"-R, --remote-time",
+   "Set the remote file's time on the local output"},
+  {"-X, --request <command>",
+   "Specify request command to use"},
+  {"    --resolve <host:port:address>",
+   "Resolve the host+port to this address"},
+  {"    --retry <num>",
+   "Retry request if transient problems occur"},
+  {"    --retry-connrefused",
+   "Retry on connection refused (use with --retry)"},
+  {"    --retry-delay <seconds>",
+   "Wait time between retries"},
+  {"    --retry-max-time <seconds>",
+   "Retry only within this period"},
+  {"    --sasl-ir",
+   "Enable initial response in SASL authentication"},
+  {"    --service-name <name>",
+   "SPNEGO service name"},
+  {"-S, --show-error",
+   "Show error even when -s is used"},
+  {"-s, --silent",
+   "Silent mode"},
+  {"    --socks4 <host[:port]>",
+   "SOCKS4 proxy on given host + port"},
+  {"    --socks4a <host[:port]>",
+   "SOCKS4a proxy on given host + port"},
+  {"    --socks5 <host[:port]>",
+   "SOCKS5 proxy on given host + port"},
+  {"    --socks5-gssapi-nec",
+   "Compatibility with NEC SOCKS5 server"},
+  {"    --socks5-gssapi-service <name>",
+   "SOCKS5 proxy service name for GSS-API"},
+  {"    --socks5-hostname <host[:port]>",
+   "SOCKS5 proxy, pass host name to proxy"},
+  {"-Y, --speed-limit <speed>",
+   "Stop transfers slower than this"},
+  {"-y, --speed-time <seconds>",
+   "Trigger 'speed-limit' abort after this time"},
+  {"    --ssl",
+   "Try SSL/TLS"},
+  {"    --ssl-allow-beast",
+   "Allow security flaw to improve interop"},
+  {"    --ssl-no-revoke",
+   "Disable cert revocation checks (WinSSL)"},
+  {"    --ssl-reqd",
+   "Require SSL/TLS"},
+  {"-2, --sslv2",
+   "Use SSLv2"},
+  {"-3, --sslv3",
+   "Use SSLv3"},
+  {"    --stderr",
+   "Where to redirect stderr"},
+  {"    --suppress-connect-headers",
+   "Suppress proxy CONNECT response headers"},
+  {"    --tcp-fastopen",
+   "Use TCP Fast Open"},
+  {"    --tcp-nodelay",
+   "Use the TCP_NODELAY option"},
+  {"-t, --telnet-option <opt=val>",
+   "Set telnet option"},
+  {"    --tftp-blksize <value>",
+   "Set TFTP BLKSIZE option"},
+  {"    --tftp-no-options",
+   "Do not send any TFTP options"},
+  {"-z, --time-cond <time>",
+   "Transfer based on a time condition"},
+  {"    --tls-max <VERSION>",
+   "Use TLSv1.0 or greater"},
+  {"    --tlsauthtype <type>",
+   "TLS authentication type"},
+  {"    --tlspassword",
+   "TLS password"},
+  {"    --tlsuser <name>",
+   "TLS user name"},
+  {"-1, --tlsv1",
+   "Use TLSv1.0 or greater"},
+  {"    --tlsv1.0",
+   "Use TLSv1.0"},
+  {"    --tlsv1.1",
+   "Use TLSv1.1"},
+  {"    --tlsv1.2",
+   "Use TLSv1.2"},
+  {"    --tlsv1.3",
+   "Use TLSv1.3"},
+  {"    --tr-encoding",
+   "Request compressed transfer encoding"},
+  {"    --trace <file>",
+   "Write a debug trace to FILE"},
+  {"    --trace-ascii <file>",
+   "Like --trace, but without hex output"},
+  {"    --trace-time",
+   "Add time stamps to trace/verbose output"},
+  {"    --unix-socket <path>",
+   "Connect through this Unix domain socket"},
+  {"-T, --upload-file <file>",
+   "Transfer local FILE to destination"},
+  {"    --url <url>",
+   "URL to work with"},
+  {"-B, --use-ascii",
+   "Use ASCII/text transfer"},
+  {"-u, --user <user:password>",
+   "Server user and password"},
+  {"-A, --user-agent <name>",
+   "Send User-Agent <name> to server"},
+  {"-v, --verbose",
+   "Make the operation more talkative"},
+  {"-V, --version",
+   "Show version number and quit"},
+  {"-w, --write-out <format>",
+   "Use output FORMAT after completion"},
+  {"    --xattr",
+   "Store metadata in extended file attributes"},
+  { NULL, NULL }
+};
+
+#ifdef NETWARE
+#  define PRINT_LINES_PAUSE 23
+#endif
+
+#ifdef __SYMBIAN32__
+#  define PRINT_LINES_PAUSE 16
+#endif
+
+struct feat {
+  const char *name;
+  int bitmask;
+};
+
+static const struct feat feats[] = {
+  {"AsynchDNS",      CURL_VERSION_ASYNCHDNS},
+  {"Debug",          CURL_VERSION_DEBUG},
+  {"TrackMemory",    CURL_VERSION_CURLDEBUG},
+  {"IDN",            CURL_VERSION_IDN},
+  {"IPv6",           CURL_VERSION_IPV6},
+  {"Largefile",      CURL_VERSION_LARGEFILE},
+  {"SSPI",           CURL_VERSION_SSPI},
+  {"GSS-API",        CURL_VERSION_GSSAPI},
+  {"Kerberos",       CURL_VERSION_KERBEROS5},
+  {"SPNEGO",         CURL_VERSION_SPNEGO},
+  {"NTLM",           CURL_VERSION_NTLM},
+  {"NTLM_WB",        CURL_VERSION_NTLM_WB},
+  {"SSL",            CURL_VERSION_SSL},
+  {"libz",           CURL_VERSION_LIBZ},
+  {"CharConv",       CURL_VERSION_CONV},
+  {"TLS-SRP",        CURL_VERSION_TLSAUTH_SRP},
+  {"HTTP2",          CURL_VERSION_HTTP2},
+  {"UnixSockets",    CURL_VERSION_UNIX_SOCKETS},
+  {"HTTPS-proxy",    CURL_VERSION_HTTPS_PROXY}
+};
+
+void tool_help(void)
+{
+  int i;
+  puts("Usage: curl [options...] <url>");
+  for(i = 0; helptext[i].opt; i++) {
+    printf(" %-19s %s\n", helptext[i].opt, helptext[i].desc);
+#ifdef PRINT_LINES_PAUSE
+    if(i && ((i % PRINT_LINES_PAUSE) == 0))
+      tool_pressanykey();
+#endif
+  }
+}
+
+void tool_version_info(void)
+{
+  const char *const *proto;
+
+  printf(CURL_ID "%s\n", curl_version());
+#ifdef CURL_PATCHSTAMP
+  printf("Release-Date: %s, security patched: %s\n",
+         LIBCURL_TIMESTAMP, CURL_PATCHSTAMP);
+#else
+  printf("Release-Date: %s\n", LIBCURL_TIMESTAMP);
+#endif
+  if(curlinfo->protocols) {
+    printf("Protocols: ");
+    for(proto = curlinfo->protocols; *proto; ++proto) {
+      printf("%s ", *proto);
+    }
+    puts(""); /* newline */
+  }
+  if(curlinfo->features) {
+    unsigned int i;
+    printf("Features: ");
+    for(i = 0; i < sizeof(feats)/sizeof(feats[0]); i++) {
+      if(curlinfo->features & feats[i].bitmask)
+        printf("%s ", feats[i].name);
+    }
+#ifdef USE_METALINK
+    printf("Metalink ");
+#endif
+#ifdef USE_LIBPSL
+    printf("PSL ");
+#endif
+    puts(""); /* newline */
+  }
+}
+
+void tool_list_engines(CURL *curl)
+{
+  struct curl_slist *engines = NULL;
+
+  /* Get the list of engines */
+  curl_easy_getinfo(curl, CURLINFO_SSL_ENGINES, &engines);
+
+  puts("Build-time engines:");
+  if(engines) {
+    for(; engines; engines = engines->next)
+      printf("  %s\n", engines->data);
+  }
+  else {
+    puts("  <none>");
+  }
+
+  /* Cleanup the list of engines */
+  curl_slist_free_all(engines);
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_help.h b/ap/lib/libcurl/curl-7.54.1/src/tool_help.h
new file mode 100644
index 0000000..43432d7
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_help.h
@@ -0,0 +1,31 @@
+#ifndef HEADER_CURL_TOOL_HELP_H
+#define HEADER_CURL_TOOL_HELP_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+void tool_help(void);
+void tool_list_engines(CURL *curl);
+void tool_version_info(void);
+
+#endif /* HEADER_CURL_TOOL_HELP_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_helpers.c b/ap/lib/libcurl/curl-7.54.1/src/tool_helpers.c
new file mode 100644
index 0000000..3d2dbe3
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_helpers.c
@@ -0,0 +1,118 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "strcase.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_msgs.h"
+#include "tool_getparam.h"
+#include "tool_helpers.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/*
+** Helper functions that are used from more than one source file.
+*/
+
+const char *param2text(int res)
+{
+  ParameterError error = (ParameterError)res;
+  switch(error) {
+  case PARAM_GOT_EXTRA_PARAMETER:
+    return "had unsupported trailing garbage";
+  case PARAM_OPTION_UNKNOWN:
+    return "is unknown";
+  case PARAM_OPTION_AMBIGUOUS:
+    return "is ambiguous";
+  case PARAM_REQUIRES_PARAMETER:
+    return "requires parameter";
+  case PARAM_BAD_USE:
+    return "is badly used here";
+  case PARAM_BAD_NUMERIC:
+    return "expected a proper numerical parameter";
+  case PARAM_NEGATIVE_NUMERIC:
+    return "expected a positive numerical parameter";
+  case PARAM_LIBCURL_DOESNT_SUPPORT:
+    return "the installed libcurl version doesn't support this";
+  case PARAM_LIBCURL_UNSUPPORTED_PROTOCOL:
+    return "a specified protocol is unsupported by libcurl";
+  case PARAM_NO_MEM:
+    return "out of memory";
+  case PARAM_NO_PREFIX:
+    return "the given option can't be reversed with a --no- prefix";
+  default:
+    return "unknown error";
+  }
+}
+
+int SetHTTPrequest(struct OperationConfig *config, HttpReq req, HttpReq *store)
+{
+  /* this mirrors the HttpReq enum in tool_sdecls.h */
+  const char *reqname[]= {
+    "", /* unspec */
+    "GET (-G, --get)",
+    "HEAD (-I, --head)",
+    "multipart formpost (-F, --form)",
+    "POST (-d, --data)"
+  };
+
+  if((*store == HTTPREQ_UNSPEC) ||
+     (*store == req)) {
+    *store = req;
+    return 0;
+  }
+  warnf(config->global, "You can only select one HTTP request method! "
+        "You asked for both %s and %s.\n",
+        reqname[req], reqname[*store]);
+
+  return 1;
+}
+
+void customrequest_helper(struct OperationConfig *config, HttpReq req,
+                          char *method)
+{
+  /* this mirrors the HttpReq enum in tool_sdecls.h */
+  const char *dflt[]= {
+    "GET",
+    "GET",
+    "HEAD",
+    "POST",
+    "POST"
+  };
+
+  if(!method)
+    ;
+  else if(curl_strequal(method, dflt[req])) {
+    notef(config->global, "Unnecessary use of -X or --request, %s is already "
+          "inferred.\n", dflt[req]);
+  }
+  else if(curl_strequal(method, "head")) {
+    warnf(config->global,
+          "Setting custom HTTP method to HEAD with -X/--request may not work "
+          "the way you want. Consider using -I/--head instead.\n");
+  }
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_helpers.h b/ap/lib/libcurl/curl-7.54.1/src/tool_helpers.h
new file mode 100644
index 0000000..9ede16e
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_helpers.h
@@ -0,0 +1,35 @@
+#ifndef HEADER_CURL_TOOL_HELPERS_H
+#define HEADER_CURL_TOOL_HELPERS_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+const char *param2text(int res);
+
+int SetHTTPrequest(struct OperationConfig *config, HttpReq req,
+                   HttpReq *store);
+
+void customrequest_helper(struct OperationConfig *config, HttpReq req,
+                          char *method);
+
+#endif /* HEADER_CURL_TOOL_HELPERS_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_homedir.c b/ap/lib/libcurl/curl-7.54.1/src/tool_homedir.c
new file mode 100644
index 0000000..483553d
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_homedir.c
@@ -0,0 +1,95 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef HAVE_PWD_H
+#  include <pwd.h>
+#endif
+
+#include "tool_homedir.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+static char *GetEnv(const char *variable, char do_expand)
+{
+  char *env = NULL;
+#ifdef WIN32
+  char  buf1[1024], buf2[1024];
+  DWORD rc;
+
+  /* Don't use getenv(); it doesn't find variable added after program was
+   * started. Don't accept truncated results (i.e. rc >= sizeof(buf1)).  */
+
+  rc = GetEnvironmentVariableA(variable, buf1, sizeof(buf1));
+  if(rc > 0 && rc < sizeof(buf1)) {
+    env = buf1;
+    variable = buf1;
+  }
+  if(do_expand && strchr(variable, '%')) {
+    /* buf2 == variable if not expanded */
+    rc = ExpandEnvironmentStringsA(variable, buf2, sizeof(buf2));
+    if(rc > 0 && rc < sizeof(buf2) &&
+       !strchr(buf2, '%'))    /* no vars still unexpanded */
+      env = buf2;
+  }
+#else
+  (void)do_expand;
+  /* no length control */
+  env = getenv(variable);
+#endif
+  return (env && env[0]) ? strdup(env) : NULL;
+}
+
+/* return the home directory of the current user as an allocated string */
+char *homedir(void)
+{
+  char *home;
+
+  home = GetEnv("CURL_HOME", FALSE);
+  if(home)
+    return home;
+
+  home = GetEnv("HOME", FALSE);
+  if(home)
+    return home;
+
+#if defined(HAVE_GETPWUID) && defined(HAVE_GETEUID)
+ {
+   struct passwd *pw = getpwuid(geteuid());
+
+   if(pw) {
+     home = pw->pw_dir;
+     if(home && home[0])
+       home = strdup(home);
+     else
+       home = NULL;
+   }
+ }
+#endif /* PWD-stuff */
+#ifdef WIN32
+  home = GetEnv("APPDATA", TRUE);
+  if(!home)
+    home = GetEnv("%USERPROFILE%\\Application Data", TRUE); /* Normally only
+                                                               on Win-2K/XP */
+#endif /* WIN32 */
+  return home;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_homedir.h b/ap/lib/libcurl/curl-7.54.1/src/tool_homedir.h
new file mode 100644
index 0000000..98d94b8
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_homedir.h
@@ -0,0 +1,28 @@
+#ifndef HEADER_CURL_TOOL_HOMEDIR_H
+#define HEADER_CURL_TOOL_HOMEDIR_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+char *homedir(void);
+
+#endif /* HEADER_CURL_TOOL_HOMEDIR_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_hugehelp.c b/ap/lib/libcurl/curl-7.54.1/src/tool_hugehelp.c
new file mode 100644
index 0000000..f5e351f
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_hugehelp.c
@@ -0,0 +1,9794 @@
+#include "tool_setup.h"
+#ifndef HAVE_LIBZ
+/*
+ * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
+ * Generation time: Fri Jun  9 12:10:32 2017
+ */
+#ifdef USE_MANUAL
+#include "tool_hugehelp.h"
+void hugehelp(void)
+{
+   fputs(
+"                                  _   _ ____  _\n"
+"  Project                     ___| | | |  _ \\| |\n"
+"                             / __| | | | |_) | |\n"
+"                            | (__| |_| |  _ <| |___\n"
+"                             \\___|\\___/|_| \\_\\_____|\n"
+"\n"
+"NAME\n"
+"       curl - transfer a URL\n"
+"\n"
+"SYNOPSIS\n"
+"       curl [options] [URL...]\n"
+"\n"
+"DESCRIPTION\n"
+"       curl  is  a tool to transfer data from or to a server, using one of the\n"
+"       supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS,  IMAP,\n"
+, stdout);
+ fputs(
+"       IMAPS,  LDAP,  LDAPS,  POP3,  POP3S,  RTMP, RTSP, SCP, SFTP, SMB, SMBS,\n"
+"       SMTP, SMTPS, TELNET and TFTP). The command is designed to work  without\n"
+"       user interaction.\n"
+"\n"
+"       curl offers a busload of useful tricks like proxy support, user authen-\n"
+"       tication, FTP upload, HTTP post, SSL connections, cookies, file  trans-\n"
+"       fer  resume,  Metalink,  and more. As you will see below, the number of\n"
+"       features will make your head spin!\n"
+"\n"
+, stdout);
+ fputs(
+"       curl is powered by  libcurl  for  all  transfer-related  features.  See\n"
+"       libcurl(3) for details.\n"
+"\n"
+"URL\n"
+"       The  URL  syntax is protocol-dependent. You'll find a detailed descrip-\n"
+"       tion in RFC 3986.\n"
+"\n"
+"       You can specify multiple URLs or parts of URLs  by  writing  part  sets\n"
+"       within braces as in:\n"
+"\n"
+"         http://site.{one,two,three}.com\n"
+"\n"
+"       or you can get sequences of alphanumeric series by using [] as in:\n"
+"\n"
+"         ftp://ftp.example.com/file[1-100].txt\n"
+"\n"
+, stdout);
+ fputs(
+"         ftp://ftp.example.com/file[001-100].txt    (with leading zeros)\n"
+"\n"
+"         ftp://ftp.example.com/file[a-z].txt\n"
+"\n"
+"       Nested  sequences  are not supported, but you can use several ones next\n"
+"       to each other:\n"
+"\n"
+"         http://example.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html\n"
+"\n"
+"       You can specify any amount of URLs on the command line.  They  will  be\n"
+"       fetched in a sequential manner in the specified order.\n"
+"\n"
+, stdout);
+ fputs(
+"       You  can  specify a step counter for the ranges to get every Nth number\n"
+"       or letter:\n"
+"\n"
+"         http://example.com/file[1-100:10].txt\n"
+"\n"
+"         http://example.com/file[a-z:2].txt\n"
+"\n"
+"       When using [] or {} sequences when invoked from a command line  prompt,\n"
+"       you probably have to put the full URL within double quotes to avoid the\n"
+"       shell from interfering with it. This also  goes  for  other  characters\n"
+"       treated special, like for example '&', '?' and '*'.\n"
+"\n"
+, stdout);
+ fputs(
+"       Provide  the IPv6 zone index in the URL with an escaped percentage sign\n"
+"       and the interface name. Like in\n"
+"\n"
+"         http://[fe80::3%25eth0]/\n"
+"\n"
+"       If you specify URL without protocol:// prefix,  curl  will  attempt  to\n"
+"       guess  what  protocol  you might want. It will then default to HTTP but\n"
+"       try other protocols based on often-used host name prefixes.  For  exam-\n"
+"       ple,  for  host names starting with \"ftp.\" curl will assume you want to\n"
+"       speak FTP.\n"
+"\n"
+, stdout);
+ fputs(
+"       curl will do its best to use what you pass to it as a URL.  It  is  not\n"
+"       trying  to  validate it as a syntactically correct URL by any means but\n"
+"       is instead very liberal with what it accepts.\n"
+"\n"
+"       curl will attempt to re-use connections for multiple file transfers, so\n"
+"       that  getting many files from the same server will not do multiple con-\n"
+"       nects / handshakes. This improves speed. Of course this is only done on\n"
+, stdout);
+ fputs(
+"       files  specified  on  a  single command line and cannot be used between\n"
+"       separate curl invokes.\n"
+"\n"
+"PROGRESS METER\n"
+"       curl normally displays a progress meter during  operations,  indicating\n"
+"       the  amount  of  transferred  data,  transfer speeds and estimated time\n"
+"       left, etc. The progress meter displays number of bytes and  the  speeds\n"
+"       are  in  bytes per second. The suffixes (k, M, G, T, P) are 1024 based.\n"
+"       For example 1k is 1024 bytes. 1M is 1048576 bytes.\n"
+"\n"
+, stdout);
+ fputs(
+"       curl displays this data to the terminal by default, so  if  you  invoke\n"
+"       curl  to do an operation and it is about to write data to the terminal,\n"
+"       it disables the progress meter as otherwise it would mess up the output\n"
+"       mixing progress meter and response data.\n"
+"\n"
+"       If you want a progress meter for HTTP POST or PUT requests, you need to\n"
+"       redirect the response output to a file, using shell redirect  (>),  -o,\n"
+"       --output or similar.\n"
+"\n"
+, stdout);
+ fputs(
+"       It  is not the same case for FTP upload as that operation does not spit\n"
+"       out any response data to the terminal.\n"
+"\n"
+"       If you prefer a progress  \"bar\"  instead  of  the  regular  meter,  -#,\n"
+"       --progress-bar  is your friend. You can also disable the progress meter\n"
+"       completely with the -s, --silent option.\n"
+"\n"
+"OPTIONS\n"
+"       Options start with one or two dashes. Many of the  options  require  an\n"
+"       additional value next to them.\n"
+"\n"
+, stdout);
+ fputs(
+"       The  short  \"single-dash\"  form  of the options, -d for example, may be\n"
+"       used with or without a space between it and its value, although a space\n"
+"       is a recommended separator. The long \"double-dash\" form, -d, --data for\n"
+"       example, requires a space between it and its value.\n"
+"\n"
+"       Short version options that don't need any additional values can be used\n"
+"       immediately  next  to  each other, like for example you can specify all\n"
+, stdout);
+ fputs(
+"       the options -O, -L and -v at once as -OLv.\n"
+"\n"
+"       In general, all boolean options are enabled with --option and yet again\n"
+"       disabled  with --no-option. That is, you use the exact same option name\n"
+"       but prefix it with \"no-\". However, in this list we mostly only list and\n"
+"       show  the --option version of them. (This concept with --no options was\n"
+"       added in  7.19.0.  Previously  most  options  were  toggled  on/off  on\n"
+"       repeated use of the same command line option.)\n"
+, stdout);
+ fputs(
+"\n"
+"       --abstract-unix-socket <path>\n"
+"              (HTTP)  Connect  through an abstract Unix domain socket, instead\n"
+"              of using the network.   Note:  netstat  shows  the  path  of  an\n"
+"              abstract  socket  prefixed with '@', however the <path> argument\n"
+"              should not have this leading character.\n"
+"\n"
+"              Added in 7.53.0.\n"
+"\n"
+"       --anyauth\n"
+"              (HTTP) Tells curl to figure out authentication method by itself,\n"
+, stdout);
+ fputs(
+"              and  use  the most secure one the remote site claims to support.\n"
+"              This is done by first doing a request and checking the response-\n"
+"              headers,  thus  possibly  inducing  an extra network round-trip.\n"
+"              This is  used  instead  of  setting  a  specific  authentication\n"
+"              method,  which  you  can  do with --basic, --digest, --ntlm, and\n"
+"              --negotiate.\n"
+"\n"
+, stdout);
+ fputs(
+"              Using --anyauth is not recommended if you do uploads from stdin,\n"
+"              since  it  may require data to be sent twice and then the client\n"
+"              must be able to rewind. If the need should arise when  uploading\n"
+"              from stdin, the upload operation will fail.\n"
+"\n"
+"              Used together with -u, --user.\n"
+"\n"
+"              See also --proxy-anyauth and --basic and --digest.\n"
+"\n"
+"       -a, --append\n"
+, stdout);
+ fputs(
+"              (FTP SFTP) When used in an upload, this makes curl append to the\n"
+"              target file instead  of  overwriting  it.  If  the  remote  file\n"
+"              doesn't  exist,  it  will  be  created.   Note that this flag is\n"
+"              ignored by some SFTP servers (including OpenSSH).\n"
+"\n"
+"       --basic\n"
+"              (HTTP) Tells curl to use  HTTP  Basic  authentication  with  the\n"
+"              remote  host.  This  is  the  default and this option is usually\n"
+, stdout);
+ fputs(
+"              pointless, unless you use it to override a previously set option\n"
+"              that  sets  a  different  authentication method (such as --ntlm,\n"
+"              --digest, or --negotiate).\n"
+"\n"
+"              Used together with -u, --user.\n"
+"\n"
+"              See also --proxy-basic.\n"
+"\n"
+"       --cacert <CA certificate>\n"
+"              (TLS) Tells curl to use the specified certificate file to verify\n"
+"              the  peer.  The  file  may contain multiple CA certificates. The\n"
+, stdout);
+ fputs(
+"              certificate(s) must be in PEM format. Normally curl is built  to\n"
+"              use a default file for this, so this option is typically used to\n"
+"              alter that default file.\n"
+"\n"
+"              curl recognizes the environment variable named  'CURL_CA_BUNDLE'\n"
+"              if  it  is  set,  and uses the given path as a path to a CA cert\n"
+"              bundle. This option overrides that variable.\n"
+"\n"
+"              The windows version of curl will automatically  look  for  a  CA\n"
+, stdout);
+ fputs(
+"              certs file named 'curl-ca-bundle.crt', either in the same direc-\n"
+"              tory as curl.exe, or in the Current Working Directory, or in any\n"
+"              folder along your PATH.\n"
+"\n"
+"              If  curl  is  built  against  the  NSS  SSL library, the NSS PEM\n"
+"              PKCS#11 module (libnsspem.so) needs to  be  available  for  this\n"
+"              option to work properly.\n"
+"\n"
+"              (iOS  and macOS only) If curl is built against Secure Transport,\n"
+, stdout);
+ fputs(
+"              then this option is supported for  backward  compatibility  with\n"
+"              other  SSL  engines,  but it should not be set. If the option is\n"
+"              not set, then curl will use the certificates in the  system  and\n"
+"              user  Keychain to verify the peer, which is the preferred method\n"
+"              of verifying the peer's certificate chain.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --capath <dir>\n"
+, stdout);
+ fputs(
+"              (TLS) Tells curl to use the specified certificate  directory  to\n"
+"              verify  the  peer.  Multiple paths can be provided by separating\n"
+"              them with \":\" (e.g.  \"path1:path2:path3\"). The certificates must\n"
+"              be  in  PEM  format,  and  if curl is built against OpenSSL, the\n"
+"              directory must have been processed using  the  c_rehash  utility\n"
+"              supplied  with OpenSSL. Using --capath can allow OpenSSL-powered\n"
+, stdout);
+ fputs(
+"              curl to make SSL-connections much more  efficiently  than  using\n"
+"              --cacert if the --cacert file contains many CA certificates.\n"
+"\n"
+"              If this option is set, the default capath value will be ignored,\n"
+"              and if it is used several times, the last one will be used.\n"
+"\n"
+"       --cert-status\n"
+"              (TLS) Tells curl to verify the status of the server  certificate\n"
+"              by using the Certificate Status Request (aka. OCSP stapling) TLS\n"
+, stdout);
+ fputs(
+"              extension.\n"
+"\n"
+"              If this option is enabled and the server sends an invalid  (e.g.\n"
+"              expired) response, if the response suggests that the server cer-\n"
+"              tificate has been revoked, or no response at  all  is  received,\n"
+"              the verification fails.\n"
+"\n"
+"              This  is  currently  only implemented in the OpenSSL, GnuTLS and\n"
+"              NSS backends.\n"
+"\n"
+"              Added in 7.41.0.\n"
+"\n"
+"       --cert-type <type>\n"
+, stdout);
+ fputs(
+"              (TLS) Tells curl what certificate type the provided  certificate\n"
+"              is in. PEM, DER and ENG are recognized types.  If not specified,\n"
+"              PEM is assumed.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              See also -E, --cert and --key and --key-type.\n"
+"\n"
+"       -E, --cert <certificate[:password]>\n"
+"              (TLS) Tells curl to use the specified  client  certificate  file\n"
+, stdout);
+ fputs(
+"              when getting a file with HTTPS, FTPS or another SSL-based proto-\n"
+"              col. The certificate must be in PKCS#12 format if  using  Secure\n"
+"              Transport,  or  PEM  format  if  using any other engine.  If the\n"
+"              optional password isn't specified, it will be queried for on the\n"
+"              terminal.  Note  that  this  option assumes a \"certificate\" file\n"
+"              that is the private key and the client certificate concatenated!\n"
+, stdout);
+ fputs(
+"              See -E, --cert and --key to specify them independently.\n"
+"\n"
+"              If  curl  is  built against the NSS SSL library then this option\n"
+"              can tell curl the nickname of the certificate to use within  the\n"
+"              NSS  database defined by the environment variable SSL_DIR (or by\n"
+"              default /etc/pki/nssdb). If the NSS  PEM  PKCS#11  module  (lib-\n"
+"              nsspem.so)  is  available  then  PEM files may be loaded. If you\n"
+, stdout);
+ fputs(
+"              want to use a file from the current directory, please precede it\n"
+"              with  \"./\"  prefix, in order to avoid confusion with a nickname.\n"
+"              If the nickname contains \":\", it needs to be preceded by \"\\\"  so\n"
+"              that  it  is not recognized as password delimiter.  If the nick-\n"
+"              name contains \"\\\", it needs to be escaped as \"\\\\\" so that it  is\n"
+"              not recognized as an escape character.\n"
+"\n"
+, stdout);
+ fputs(
+"              (iOS  and macOS only) If curl is built against Secure Transport,\n"
+"              then the certificate string can either be the name of a certifi-\n"
+"              cate/private  key in the system or user keychain, or the path to\n"
+"              a PKCS#12-encoded certificate and private key. If  you  want  to\n"
+"              use  a  file  from the current directory, please precede it with\n"
+"              \"./\" prefix, in order to avoid confusion with a nickname.\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              See also --cert-type and --key and --key-type.\n"
+"\n"
+"       --ciphers <list of ciphers>\n"
+"              (TLS) Specifies which ciphers to use in the connection. The list\n"
+"              of  ciphers  must  specify  valid ciphers. Read up on SSL cipher\n"
+"              list details on this URL:\n"
+"\n"
+"               https://curl.haxx.se/docs/ssl-ciphers.html\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --compressed\n"
+"              (HTTP) Request a compressed response using one of the algorithms\n"
+"              curl  supports,  and  save  the  uncompressed document.  If this\n"
+"              option is used and the server  sends  an  unsupported  encoding,\n"
+"              curl will report an error.\n"
+"\n"
+"       -K, --config <file>\n"
+"\n"
+"              Specify  a  text  file  to read curl arguments from. The command\n"
+, stdout);
+ fputs(
+"              line arguments found in the text file will be used  as  if  they\n"
+"              were provided on the command line.\n"
+"\n"
+"              Options  and their parameters must be specified on the same line\n"
+"              in the file, separated by whitespace, colon, or the equals sign.\n"
+"              Long  option  names  can  optionally be given in the config file\n"
+"              without the initial double dashes and if so, the colon or equals\n"
+, stdout);
+ fputs(
+"              characters can be used as separators. If the option is specified\n"
+"              with one or two dashes, there can be no colon or equals  charac-\n"
+"              ter between the option and its parameter.\n"
+"\n"
+"              If the parameter is to contain whitespace, the parameter must be\n"
+"              enclosed within quotes.  Within  double  quotes,  the  following\n"
+"              escape  sequences  are  available:  \\\\, \\\", \\t, \\n, \\r and \\v. A\n"
+, stdout);
+ fputs(
+"              backslash preceding any other letter is ignored.  If  the  first\n"
+"              column of a config line is a '#' character, the rest of the line\n"
+"              will be treated as a comment. Only write one option per physical\n"
+"              line in the config file.\n"
+"\n"
+"              Specify  the  filename  to -K, --config as '-' to make curl read\n"
+"              the file from stdin.\n"
+"\n"
+"              Note that to be able to specify a URL in the  config  file,  you\n"
+, stdout);
+ fputs(
+"              need  to  specify  it  using the --url option, and not by simply\n"
+"              writing the URL on its own line. So, it could  look  similar  to\n"
+"              this:\n"
+"\n"
+"              url = \"https://curl.haxx.se/docs/\"\n"
+"\n"
+"              When  curl  is invoked, it (unless -q, --disable is used) checks\n"
+"              for a default config file and uses it if found. The default con-\n"
+"              fig file is checked for in the following places in this order:\n"
+"\n"
+, stdout);
+ fputs(
+"              1)  curl  tries  to find the \"home dir\": It first checks for the\n"
+"              CURL_HOME and then the HOME environment variables. Failing that,\n"
+"              it  uses getpwuid() on Unix-like systems (which returns the home\n"
+"              dir given the current user in your system). On Windows, it  then\n"
+"              checks for the APPDATA variable, or as a last resort the '%USER-\n"
+"              PROFILE%\\Application Data'.\n"
+"\n"
+, stdout);
+ fputs(
+"              2) On windows, if there is no _curlrc file in the home  dir,  it\n"
+"              checks for one in the same dir the curl executable is placed. On\n"
+"              Unix-like systems, it will simply try to load .curlrc  from  the\n"
+"              determined home dir.\n"
+"\n"
+"              # --- Example file ---\n"
+"              # this is a comment\n"
+"              url = \"example.com\"\n"
+"              output = \"curlhere.html\"\n"
+"              user-agent = \"superagent/1.0\"\n"
+"\n"
+, stdout);
+ fputs(
+"              # and fetch another URL too\n"
+"              url = \"example.com/docs/manpage.html\"\n"
+"              -O\n"
+"              referer = \"http://nowhereatall.example.com/\"\n"
+"              # --- End of example file ---\n"
+"\n"
+"              This  option  can be used multiple times to load multiple config\n"
+"              files.\n"
+"\n"
+"       --connect-timeout <seconds>\n"
+"              Maximum time in seconds that  you  allow  curl's  connection  to\n"
+, stdout);
+ fputs(
+"              take.   This  only  limits the connection phase, so if curl con-\n"
+"              nects within the given period it will continue - if not it  will\n"
+"              exit.  Since version 7.32.0, this option accepts decimal values.\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              See also -m, --max-time.\n"
+"\n"
+"       --connect-to <HOST1:PORT1:HOST2:PORT2>\n"
+"\n"
+"              For  a  request to the given HOST:PORT pair, connect to CONNECT-\n"
+, stdout);
+ fputs(
+"              TO-HOST:CONNECT-TO-PORT instead.  This  option  is  suitable  to\n"
+"              direct requests at a specific server, e.g. at a specific cluster\n"
+"              node in a cluster of servers.   This  option  is  only  used  to\n"
+"              establish  the  network connection. It does NOT affect the host-\n"
+"              name/port that is used for TLS/SSL (e.g. SNI, certificate  veri-\n"
+"              fication)  or  for the application protocols.  \"host\" and \"port\"\n"
+, stdout);
+ fputs(
+"              may be the empty string, meaning \"any host/port\".   \"connect-to-\n"
+"              host\"  and \"connect-to-port\" may also be the empty string, mean-\n"
+"              ing \"use the request's original host/port\".\n"
+"\n"
+"              This option can be used many times to add many connect rules.\n"
+"\n"
+"              See also --resolve and -H, --header. Added in 7.49.0.\n"
+"\n"
+"       -C, --continue-at <offset>\n"
+"              Continue/Resume a previous file transfer at  the  given  offset.\n"
+, stdout);
+ fputs(
+"              The  given  offset  is  the  exact  number of bytes that will be\n"
+"              skipped, counting from the beginning of the source  file  before\n"
+"              it is transferred to the destination.  If used with uploads, the\n"
+"              FTP server command SIZE will not be used by curl.\n"
+"\n"
+"              Use \"-C -\" to tell curl to automatically find out  where/how  to\n"
+"              resume  the  transfer. It then uses the given output/input files\n"
+"              to figure that out.\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              See also -r, --range.\n"
+"\n"
+"       -c, --cookie-jar <filename>\n"
+"              (HTTP) Specify to which file you want curl to write all  cookies\n"
+"              after  a  completed  operation. Curl writes all cookies from its\n"
+"              in-memory cookie storage to the given file at the end of  opera-\n"
+"              tions.  If  no  cookies  are known, no data will be written. The\n"
+, stdout);
+ fputs(
+"              file will be written using the Netscape cookie file  format.  If\n"
+"              you set the file name to a single dash, \"-\", the cookies will be\n"
+"              written to stdout.\n"
+"\n"
+"              This command line option will activate the  cookie  engine  that\n"
+"              makes curl record and use cookies. Another way to activate it is\n"
+"              to use the -b, --cookie option.\n"
+"\n"
+"              If the cookie jar can't be created or written to, the whole curl\n"
+, stdout);
+ fputs(
+"              operation  won't fail or even report an error clearly. Using -v,\n"
+"              --verbose will get a warning displayed, but  that  is  the  only\n"
+"              visible feedback you get about this possibly lethal situation.\n"
+"\n"
+"              If  this  option  is used several times, the last specified file\n"
+"              name will be used.\n"
+"\n"
+"       -b, --cookie <data>\n"
+"              (HTTP) Pass the data to the HTTP server in the Cookie header. It\n"
+, stdout);
+ fputs(
+"              is  supposedly the data previously received from the server in a\n"
+"              \"Set-Cookie:\"  line.   The  data  should  be   in   the   format\n"
+"              \"NAME1=VALUE1; NAME2=VALUE2\".\n"
+"\n"
+"              If  no '=' symbol is used in the argument, it is instead treated\n"
+"              as a filename to read previously stored cookie from. This option\n"
+"              also  activates  the  cookie  engine which will make curl record\n"
+, stdout);
+ fputs(
+"              incoming cookies, which may be handy if  you're  using  this  in\n"
+"              combination  with  the  -L, --location option or do multiple URL\n"
+"              transfers on the same invoke.\n"
+"\n"
+"              The file format of the file to read cookies from should be plain\n"
+"              HTTP  headers  (Set-Cookie style) or the Netscape/Mozilla cookie\n"
+"              file format.\n"
+"\n"
+"              The file specified with -b, --cookie is only used as  input.  No\n"
+, stdout);
+ fputs(
+"              cookies  will  be written to the file. To store cookies, use the\n"
+"              -c, --cookie-jar option.\n"
+"\n"
+"              Exercise caution if you  are  using  this  option  and  multiple\n"
+"              transfers may occur.  If you use the NAME1=VALUE1; format, or in\n"
+"              a file use the Set-Cookie format and  don't  specify  a  domain,\n"
+"              then the cookie is sent for any domain (even after redirects are\n"
+, stdout);
+ fputs(
+"              followed) and cannot be modified by a server-set cookie. If  the\n"
+"              cookie  engine is enabled and a server sets a cookie of the same\n"
+"              name then both will be sent on a future transfer to that server,\n"
+"              likely  not  what  you  intended.  To address these issues set a\n"
+"              domain in Set-Cookie (doing that will include  sub  domains)  or\n"
+"              use the Netscape format.\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"              Users very often want to both read cookies from a file and write\n"
+"              updated cookies back to a file, so using both -b,  --cookie  and\n"
+"              -c, --cookie-jar in the same command line is common.\n"
+"\n"
+"       --create-dirs\n"
+"              When used in conjunction with the -o, --output option, curl will\n"
+"              create the necessary local directory hierarchy as  needed.  This\n"
+, stdout);
+ fputs(
+"              option  creates the dirs mentioned with the -o, --output option,\n"
+"              nothing else. If the --output file name uses no dir  or  if  the\n"
+"              dirs it mentions already exist, no dir will be created.\n"
+"\n"
+"              To  create remote directories when using FTP or SFTP, try --ftp-\n"
+"              create-dirs.\n"
+"\n"
+"       --crlf (FTP SMTP)  Convert  LF  to  CRLF  in  upload.  Useful  for  MVS\n"
+"              (OS/390).\n"
+"\n"
+"              (SMTP added in 7.40.0)\n"
+"\n"
+, stdout);
+ fputs(
+"       --crlfile <file>\n"
+"              (TLS) Provide a file using PEM format with a Certificate Revoca-\n"
+"              tion List that may specify peer certificates that are to be con-\n"
+"              sidered revoked.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.19.7.\n"
+"\n"
+"       --data-ascii <data>\n"
+"              (HTTP) This is just an alias for -d, --data.\n"
+"\n"
+"       --data-binary <data>\n"
+, stdout);
+ fputs(
+"              (HTTP)  This  posts data exactly as specified with no extra pro-\n"
+"              cessing whatsoever.\n"
+"\n"
+"              If you start the data with the letter @, the rest  should  be  a\n"
+"              filename.   Data  is  posted  in  a similar manner as -d, --data\n"
+"              does, except that newlines and carriage  returns  are  preserved\n"
+"              and conversions are never done.\n"
+"\n"
+"              If  this  option  is  used several times, the ones following the\n"
+, stdout);
+ fputs(
+"              first will append data as described in -d, --data.\n"
+"\n"
+"       --data-raw <data>\n"
+"              (HTTP) This posts data similarly to -d, --data but  without  the\n"
+"              special interpretation of the @ character.\n"
+"\n"
+"              See also -d, --data. Added in 7.43.0.\n"
+"\n"
+"       --data-urlencode <data>\n"
+"              (HTTP)  This posts data, similar to the other -d, --data options\n"
+"              with the exception that this performs URL-encoding.\n"
+"\n"
+, stdout);
+ fputs(
+"              To be CGI-compliant, the <data> part should begin  with  a  name\n"
+"              followed  by a separator and a content specification. The <data>\n"
+"              part can be passed to curl using one of the following syntaxes:\n"
+"\n"
+"              content\n"
+"                     This will make curl URL-encode the content and pass  that\n"
+"                     on.  Just  be careful so that the content doesn't contain\n"
+"                     any = or @ symbols, as that will  then  make  the  syntax\n"
+, stdout);
+ fputs(
+"                     match one of the other cases below!\n"
+"\n"
+"              =content\n"
+"                     This  will make curl URL-encode the content and pass that\n"
+"                     on. The preceding = symbol is not included in the data.\n"
+"\n"
+"              name=content\n"
+"                     This will make curl URL-encode the content part and  pass\n"
+"                     that  on.  Note that the name part is expected to be URL-\n"
+"                     encoded already.\n"
+"\n"
+"              @filename\n"
+, stdout);
+ fputs(
+"                     This will  make  curl  load  data  from  the  given  file\n"
+"                     (including  any  newlines), URL-encode that data and pass\n"
+"                     it on in the POST.\n"
+"\n"
+"              name@filename\n"
+"                     This will  make  curl  load  data  from  the  given  file\n"
+"                     (including  any  newlines), URL-encode that data and pass\n"
+"                     it on in the POST. The  name  part  gets  an  equal  sign\n"
+, stdout);
+ fputs(
+"                     appended, resulting in name=urlencoded-file-content. Note\n"
+"                     that the name is expected to be URL-encoded already.\n"
+"       See also -d, --data and --data-raw. Added in 7.18.0.\n"
+"\n"
+"       -d, --data <data>\n"
+"              (HTTP) Sends the specified data in a POST request  to  the  HTTP\n"
+"              server,  in  the  same  way  that a browser does when a user has\n"
+"              filled in an HTML form and presses the submit button. This  will\n"
+, stdout);
+ fputs(
+"              cause curl to pass the data to the server using the content-type\n"
+"              application/x-www-form-urlencoded.  Compare to -F, --form.\n"
+"\n"
+"              --data-raw is almost the same but does not have a special inter-\n"
+"              pretation  of  the  @ character. To post data purely binary, you\n"
+"              should instead use the --data-binary option.  To URL-encode  the\n"
+"              value of a form field you may use --data-urlencode.\n"
+"\n"
+, stdout);
+ fputs(
+"              If  any of these options is used more than once on the same com-\n"
+"              mand line, the data pieces specified  will  be  merged  together\n"
+"              with  a  separating  &-symbol.  Thus,  using  '-d name=daniel -d\n"
+"              skill=lousy'  would  generate  a  post  chunk  that  looks  like\n"
+"              'name=daniel&skill=lousy'.\n"
+"\n"
+"              If  you  start  the data with the letter @, the rest should be a\n"
+, stdout);
+ fputs(
+"              file name to read the data from, or - if you want curl  to  read\n"
+"              the data from stdin. Multiple files can also be specified. Post-\n"
+"              ing data from a file named  from  a  file  like  that,  carriage\n"
+"              returns and newlines will be stripped out. If you don't want the\n"
+"              @ character to have  a  special  interpretation  use  --data-raw\n"
+"              instead.\n"
+"\n"
+"              See also --data-binary and --data-urlencode and --data-raw. This\n"
+, stdout);
+ fputs(
+"              option overrides -F, --form and -I, --head and --upload.\n"
+"\n"
+"       --delegation <LEVEL>\n"
+"              (GSS/kerberos) Set LEVEL to tell the server what it  is  allowed\n"
+"              to delegate when it comes to user credentials.\n"
+"\n"
+"              none   Don't allow any delegation.\n"
+"\n"
+"              policy Delegates  if  and only if the OK-AS-DELEGATE flag is set\n"
+"                     in the Kerberos service ticket,  which  is  a  matter  of\n"
+"                     realm policy.\n"
+"\n"
+, stdout);
+ fputs(
+"              always Unconditionally allow the server to delegate.\n"
+"\n"
+"       --digest\n"
+"              (HTTP)  Enables HTTP Digest authentication. This is an authenti-\n"
+"              cation scheme that prevents the password from  being  sent  over\n"
+"              the  wire in clear text. Use this in combination with the normal\n"
+"              -u, --user option to set user name and password.\n"
+"\n"
+"              If this option is used several times,  only  the  first  one  is\n"
+"              used.\n"
+"\n"
+, stdout);
+ fputs(
+"              See  also  -u,  --user  and  --proxy-digest  and --anyauth. This\n"
+"              option overrides --basic and --ntlm and --negotiate.\n"
+"\n"
+"       --disable-eprt\n"
+"              (FTP) Tell curl to disable the use of the EPRT and LPRT commands\n"
+"              when doing active FTP transfers. Curl will normally always first\n"
+"              attempt to use EPRT, then LPRT before using PORT, but with  this\n"
+"              option,  it  will  use PORT right away. EPRT and LPRT are exten-\n"
+, stdout);
+ fputs(
+"              sions to the original FTP protocol, and  may  not  work  on  all\n"
+"              servers, but they enable more functionality in a better way than\n"
+"              the traditional PORT command.\n"
+"\n"
+"              --eprt can be used to explicitly enable EPRT again and --no-eprt\n"
+"              is an alias for --disable-eprt.\n"
+"\n"
+"              If  the  server is accessed using IPv6, this option will have no\n"
+"              effect as EPRT is necessary then.\n"
+"\n"
+, stdout);
+ fputs(
+"              Disabling EPRT only changes the active behavior. If you want  to\n"
+"              switch  to  passive  mode  you need to not use -P, --ftp-port or\n"
+"              force it with --ftp-pasv.\n"
+"\n"
+"       --disable-epsv\n"
+"              (FTP) (FTP) Tell curl to disable the use  of  the  EPSV  command\n"
+"              when  doing  passive  FTP  transfers.  Curl will normally always\n"
+"              first attempt to use EPSV before PASV, but with this option,  it\n"
+"              will not try using EPSV.\n"
+"\n"
+, stdout);
+ fputs(
+"              --epsv can be used to explicitly enable EPSV again and --no-epsv\n"
+"              is an alias for --disable-epsv.\n"
+"\n"
+"              If the server is an IPv6 host, this option will have  no  effect\n"
+"              as EPSV is necessary then.\n"
+"\n"
+"              Disabling EPSV only changes the passive behavior. If you want to\n"
+"              switch to active mode you need to use -P, --ftp-port.\n"
+"\n"
+"       -q, --disable\n"
+"              If used as the first parameter on the command line,  the  curlrc\n"
+, stdout);
+ fputs(
+"              config  file will not be read and used. See the -K, --config for\n"
+"              details on the default config file search path.\n"
+"\n"
+"       --dns-interface <interface>\n"
+"              (DNS) Tell curl to send outgoing DNS  requests  through  <inter-\n"
+"              face>.  This  option is a counterpart to --interface (which does\n"
+"              not affect DNS). The supplied string must be an  interface  name\n"
+"              (not an address).\n"
+"\n"
+, stdout);
+ fputs(
+"              See  also  --dns-ipv4-addr  and --dns-ipv6-addr. --dns-interface\n"
+"              requires that the underlying libcurl was  built  to  support  c-\n"
+"              ares. Added in 7.33.0.\n"
+"\n"
+"       --dns-ipv4-addr <address>\n"
+"              (DNS)  Tell  curl  to  bind to <ip-address> when making IPv4 DNS\n"
+"              requests, so that the DNS requests originate from this  address.\n"
+"              The argument should be a single IPv4 address.\n"
+"\n"
+, stdout);
+ fputs(
+"              See  also  --dns-interface  and --dns-ipv6-addr. --dns-ipv4-addr\n"
+"              requires that the underlying libcurl was  built  to  support  c-\n"
+"              ares. Added in 7.33.0.\n"
+"\n"
+"       --dns-ipv6-addr <address>\n"
+"              (DNS)  Tell  curl  to  bind to <ip-address> when making IPv6 DNS\n"
+"              requests, so that the DNS requests originate from this  address.\n"
+"              The argument should be a single IPv6 address.\n"
+"\n"
+, stdout);
+ fputs(
+"              See  also  --dns-interface  and --dns-ipv4-addr. --dns-ipv6-addr\n"
+"              requires that the underlying libcurl was  built  to  support  c-\n"
+"              ares. Added in 7.33.0.\n"
+"\n"
+"       --dns-servers <addresses>\n"
+"              Set  the  list  of  DNS servers to be used instead of the system\n"
+"              default.  The list of IP addresses should be separated with com-\n"
+"              mas. Port numbers may also optionally be given as :<port-number>\n"
+, stdout);
+ fputs(
+"              after each IP address.\n"
+"\n"
+"              --dns-servers requires that the underlying libcurl was built  to\n"
+"              support c-ares. Added in 7.33.0.\n"
+"\n"
+"       -D, --dump-header <filename>\n"
+"              (HTTP  FTP) Write the received protocol headers to the specified\n"
+"              file.\n"
+"\n"
+"              This option is handy to use when you want to store  the  headers\n"
+"              that  an  HTTP site sends to you. Cookies from the headers could\n"
+, stdout);
+ fputs(
+"              then be read in a  second  curl  invocation  by  using  the  -b,\n"
+"              --cookie  option! The -c, --cookie-jar option is a better way to\n"
+"              store cookies.\n"
+"\n"
+"              When used in FTP, the FTP server response lines  are  considered\n"
+"              being \"headers\" and thus are saved there.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              See also -o, --output.\n"
+"\n"
+"       --egd-file <file>\n"
+, stdout);
+ fputs(
+"              (TLS)  Specify  the  path  name  to the Entropy Gathering Daemon\n"
+"              socket. The socket is used to seed the  random  engine  for  SSL\n"
+"              connections.\n"
+"\n"
+"              See also --random-file.\n"
+"\n"
+"       --engine <name>\n"
+"              (TLS)  Select the OpenSSL crypto engine to use for cipher opera-\n"
+"              tions. Use --engine list to print a list of build-time supported\n"
+"              engines.  Note  that  not  all  (or  none) of the engines may be\n"
+, stdout);
+ fputs(
+"              available at run-time.\n"
+"\n"
+"       --expect100-timeout <seconds>\n"
+"              (HTTP) Maximum time in seconds that you allow curl to wait for a\n"
+"              100-continue  response  when curl emits an Expects: 100-continue\n"
+"              header in its request. By default curl  will  wait  one  second.\n"
+"              This  option accepts decimal values! When curl stops waiting, it\n"
+"              will continue as if the response has been received.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also --connect-timeout. Added in 7.47.0.\n"
+"\n"
+"       --fail-early\n"
+"              Fail and exit on the first detected transfer error.\n"
+"\n"
+"              When curl is used to do multiple transfers on the command  line,\n"
+"              it  will  attempt  to  operate on each given URL, one by one. By\n"
+"              default, it will ignore errors if there are more URLs given  and\n"
+"              the  last  URL's  success  will  determine  the  error code curl\n"
+, stdout);
+ fputs(
+"              returns. So early failures will be \"hidden\" by  subsequent  suc-\n"
+"              cessful transfers.\n"
+"\n"
+"              Using  this  option,  curl  will  instead return an error on the\n"
+"              first transfer that fails, independent of  the  amount  of  URLs\n"
+"              that  are given on the command line. This way, no transfer fail-\n"
+"              ures go undetected by scripts and similar.\n"
+"\n"
+"              This option is global and does not need to be specified for each\n"
+, stdout);
+ fputs(
+"              use of -:, --next.\n"
+"\n"
+"              This option does not imply -f, --fail, which causes transfers to\n"
+"              fail due to the server's HTTP status code. You can  combine  the\n"
+"              two options, however note -f, --fail is not global and is there-\n"
+"              fore contained by -:, --next.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       -f, --fail\n"
+"              (HTTP) Fail silently (no output at all) on server  errors.  This\n"
+, stdout);
+ fputs(
+"              is  mostly done to better enable scripts etc to better deal with\n"
+"              failed attempts. In normal cases when an HTTP  server  fails  to\n"
+"              deliver  a  document,  it  returns  an  HTML document stating so\n"
+"              (which often also describes why and more). This flag  will  pre-\n"
+"              vent curl from outputting that and return error 22.\n"
+"\n"
+"              This  method is not fail-safe and there are occasions where non-\n"
+, stdout);
+ fputs(
+"              successful response codes will  slip  through,  especially  when\n"
+"              authentication is involved (response codes 401 and 407).\n"
+"\n"
+"       --false-start\n"
+"              (TLS)  Tells  curl  to use false start during the TLS handshake.\n"
+"              False start is a mode where a  TLS  client  will  start  sending\n"
+"              application data before verifying the server's Finished message,\n"
+"              thus saving a round trip when performing a full handshake.\n"
+"\n"
+, stdout);
+ fputs(
+"              This is currently only implemented in the NSS and Secure  Trans-\n"
+"              port (on iOS 7.0 or later, or OS X 10.9 or later) backends.\n"
+"\n"
+"              Added in 7.42.0.\n"
+"\n"
+"       --form-string <name=string>\n"
+"              (HTTP)  Similar  to  -F, --form except that the value string for\n"
+"              the named parameter is used literally. Leading '@' and '<' char-\n"
+"              acters,  and  the  ';type='  string in the value have no special\n"
+, stdout);
+ fputs(
+"              meaning. Use this in preference to -F,  --form  if  there's  any\n"
+"              possibility  that  the string value may accidentally trigger the\n"
+"              '@' or '<' features of -F, --form.\n"
+"\n"
+"              See also -F, --form.\n"
+"\n"
+"       -F, --form <name=content>\n"
+"              (HTTP) This lets curl emulate a filled-in form in which  a  user\n"
+"              has  pressed  the  submit  button. This causes curl to POST data\n"
+, stdout);
+ fputs(
+"              using the  Content-Type  multipart/form-data  according  to  RFC\n"
+"              2388.  This  enables uploading of binary files etc. To force the\n"
+"              'content' part to be a file, prefix the  file  name  with  an  @\n"
+"              sign.  To just get the content part from a file, prefix the file\n"
+"              name with the symbol <. The difference between @ and <  is  then\n"
+"              that  @  makes a file get attached in the post as a file upload,\n"
+, stdout);
+ fputs(
+"              while the < makes a text field and just  get  the  contents  for\n"
+"              that text field from a file.\n"
+"\n"
+"              Example:  to  send  an image to a server, where 'profile' is the\n"
+"              name of the form-field to which portrait.jpg will be the input:\n"
+"\n"
+"               curl -F profile=@portrait.jpg https://example.com/upload.cgi\n"
+"\n"
+"              To read content from stdin instead of a file, use - as the file-\n"
+, stdout);
+ fputs(
+"              name.  This  goes  for both @ and < constructs. Unfortunately it\n"
+"              does not support reading the file from a named pipe or  similar,\n"
+"              as it needs the full size before the transfer starts.\n"
+"\n"
+"              You  can  also  tell  curl  what  Content-Type  to  use by using\n"
+"              'type=', in a manner similar to:\n"
+"\n"
+"               curl -F \"web=@index.html;type=text/html\" example.com\n"
+"\n"
+"              or\n"
+"\n"
+, stdout);
+ fputs(
+"               curl -F \"name=daniel;type=text/foo\" example.com\n"
+"\n"
+"              You can also explicitly change the name field of a  file  upload\n"
+"              part by setting filename=, like this:\n"
+"\n"
+"               curl -F \"file=@localfile;filename=nameinpost\" example.com\n"
+"\n"
+"              If  filename/path contains ',' or ';', it must be quoted by dou-\n"
+"              ble-quotes like:\n"
+"\n"
+"               curl  -F  \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\"   exam-\n"
+"              ple.com\n"
+"\n"
+, stdout);
+ fputs(
+"              or\n"
+"\n"
+"               curl -F 'file=@\"localfile\";filename=\"nameinpost\"' example.com\n"
+"\n"
+"              Note  that  if  a  filename/path is quoted by double-quotes, any\n"
+"              double-quote or backslash within the filename must be escaped by\n"
+"              backslash.\n"
+"\n"
+"              See further examples and details in the MANUAL.\n"
+"\n"
+"              This option can be used multiple times.\n"
+"\n"
+"              This option overrides -d, --data and -I, --head and --upload.\n"
+"\n"
+, stdout);
+ fputs(
+"       --ftp-account <data>\n"
+"              (FTP) When an FTP server asks for \"account data\" after user name\n"
+"              and password has been provided, this data is sent off using  the\n"
+"              ACCT command.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.13.0.\n"
+"\n"
+"       --ftp-alternative-to-user <command>\n"
+"              (FTP)  If  authenticating with the USER and PASS commands fails,\n"
+, stdout);
+ fputs(
+"              send this  command.   When  connecting  to  Tumbleweed's  Secure\n"
+"              Transport  server  over  FTPS  using a client certificate, using\n"
+"              \"SITE AUTH\" will tell the server to retrieve the  username  from\n"
+"              the certificate.\n"
+"              Added in 7.15.5.\n"
+"\n"
+"       --ftp-create-dirs\n"
+"              (FTP  SFTP)  When  an FTP or SFTP URL/operation uses a path that\n"
+"              doesn't currently exist on the server, the standard behavior  of\n"
+, stdout);
+ fputs(
+"              curl is to fail. Using this option, curl will instead attempt to\n"
+"              create missing directories.\n"
+"\n"
+"              See also --create-dirs.\n"
+"\n"
+"       --ftp-method <method>\n"
+"              (FTP) Control what method curl should use to reach a file on  an\n"
+"              FTP(S)  server. The method argument should be one of the follow-\n"
+"              ing alternatives:\n"
+"\n"
+"              multicwd\n"
+"                     curl does a single CWD operation for each  path  part  in\n"
+, stdout);
+ fputs(
+"                     the  given URL. For deep hierarchies this means very many\n"
+"                     commands. This is how RFC 1738 says it  should  be  done.\n"
+"                     This is the default but the slowest behavior.\n"
+"\n"
+"              nocwd  curl  does  no  CWD at all. curl will do SIZE, RETR, STOR\n"
+"                     etc and give a full path to the server for all these com-\n"
+"                     mands. This is the fastest behavior.\n"
+"\n"
+"              singlecwd\n"
+, stdout);
+ fputs(
+"                     curl does one CWD with the full target directory and then\n"
+"                     operates on the file \"normally\"  (like  in  the  multicwd\n"
+"                     case).  This  is  somewhat  more standards compliant than\n"
+"                     'nocwd' but without the full penalty of 'multicwd'.\n"
+"\n"
+"       Added in 7.15.1.\n"
+"\n"
+"       --ftp-pasv\n"
+"              (FTP) Use passive mode for the data connection. Passive  is  the\n"
+, stdout);
+ fputs(
+"              internal  default behavior, but using this option can be used to\n"
+"              override a previous -P, --ftp-port option.\n"
+"\n"
+"              If this option is used several times,  only  the  first  one  is\n"
+"              used.  Undoing  an  enforced passive really isn't doable but you\n"
+"              must then instead enforce the correct -P, --ftp-port again.\n"
+"\n"
+"              Passive mode means that curl will try the EPSV command first and\n"
+, stdout);
+ fputs(
+"              then PASV, unless --disable-epsv is used.\n"
+"              See also --disable-epsv. Added in 7.11.0.\n"
+"\n"
+"       -P, --ftp-port <address>\n"
+"              (FTP)  Reverses  the  default initiator/listener roles when con-\n"
+"              necting with FTP. This option makes curl use active  mode.  curl\n"
+"              then  tells the server to connect back to the client's specified\n"
+"              address and port, while passive mode asks the server to setup an\n"
+, stdout);
+ fputs(
+"              IP  address  and  port for it to connect to. <address> should be\n"
+"              one of:\n"
+"\n"
+"              interface\n"
+"                     i.e \"eth0\" to specify which interface's  IP  address  you\n"
+"                     want to use (Unix only)\n"
+"\n"
+"              IP address\n"
+"                     i.e \"192.168.10.1\" to specify the exact IP address\n"
+"\n"
+"              host name\n"
+"                     i.e \"my.host.domain\" to specify the machine\n"
+"\n"
+, stdout);
+ fputs(
+"              -      make  curl  pick the same IP address that is already used\n"
+"                     for the control connection\n"
+"\n"
+"       If this option is used several times, the last one will be  used.  Dis-\n"
+"       able  the  use  of PORT with --ftp-pasv. Disable the attempt to use the\n"
+"       EPRT command instead of PORT by using --disable-eprt.  EPRT  is  really\n"
+"       PORT++.\n"
+"\n"
+"       Since  7.19.5,  you  can  append  \":[start]-[end]\"  to the right of the\n"
+, stdout);
+ fputs(
+"       address, to tell curl what TCP port range to use. That means you  spec-\n"
+"       ify  a  port  range,  from  a lower to a higher number. A single number\n"
+"       works as well, but do note that it increases the risk of failure  since\n"
+"       the port may not be available.\n"
+"\n"
+"       See also --ftp-pasv and --disable-eprt.\n"
+"\n"
+"       --ftp-pret\n"
+"              (FTP)  Tell  curl to send a PRET command before PASV (and EPSV).\n"
+"              Certain FTP servers, mainly drftpd,  require  this  non-standard\n"
+, stdout);
+ fputs(
+"              command  for  directory  listings as well as up and downloads in\n"
+"              PASV mode.\n"
+"\n"
+"              Added in 7.20.0.\n"
+"\n"
+"       --ftp-skip-pasv-ip\n"
+"              (FTP) Tell curl to not use the IP address the server suggests in\n"
+"              its  response to curl's PASV command when curl connects the data\n"
+"              connection. Instead curl will re-use  the  same  IP  address  it\n"
+"              already uses for the control connection.\n"
+"\n"
+, stdout);
+ fputs(
+"              This  option has no effect if PORT, EPRT or EPSV is used instead\n"
+"              of PASV.\n"
+"\n"
+"              See also --ftp-pasv. Added in 7.14.2.\n"
+"\n"
+"       --ftp-ssl-ccc-mode <active/passive>\n"
+"              (FTP) Sets the CCC mode. The passive mode will not initiate  the\n"
+"              shutdown, but instead wait for the server to do it, and will not\n"
+"              reply to the shutdown from the server. The active mode initiates\n"
+, stdout);
+ fputs(
+"              the shutdown and waits for a reply from the server.\n"
+"\n"
+"              See also --ftp-ssl-ccc. Added in 7.16.2.\n"
+"\n"
+"       --ftp-ssl-ccc\n"
+"              (FTP)  Use  CCC  (Clear  Command Channel) Shuts down the SSL/TLS\n"
+"              layer after authenticating. The rest of the control channel com-\n"
+"              munication  will be unencrypted. This allows NAT routers to fol-\n"
+"              low the FTP transaction. The default mode is passive.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also --ssl and --ftp-ssl-ccc-mode. Added in 7.16.1.\n"
+"\n"
+"       --ftp-ssl-control\n"
+"              (FTP) Require SSL/TLS for the FTP  login,  clear  for  transfer.\n"
+"              Allows  secure  authentication, but non-encrypted data transfers\n"
+"              for efficiency.  Fails the transfer if the server  doesn't  sup-\n"
+"              port SSL/TLS.\n"
+"\n"
+"              Added in 7.16.0.\n"
+"\n"
+"       -G, --get\n"
+"              When  used,  this  option  will make all data specified with -d,\n"
+, stdout);
+ fputs(
+"              --data, --data-binary or --data-urlencode to be used in an  HTTP\n"
+"              GET  request instead of the POST request that otherwise would be\n"
+"              used. The data will be appended to the URL with a '?' separator.\n"
+"              If used in combination with  -I,  --head,  the  POST  data  will\n"
+"              instead be appended to the URL with a HEAD request.\n"
+"\n"
+"              If  this  option  is  used  several times, only the first one is\n"
+, stdout);
+ fputs(
+"              used. This is because undoing a GET doesn't make sense, but  you\n"
+"              should then instead enforce the alternative method you prefer.\n"
+"\n"
+"       -g, --globoff\n"
+"              This option switches off the \"URL globbing parser\". When you set\n"
+"              this option, you can specify URLs that contain the letters  {}[]\n"
+"              without  having them being interpreted by curl itself. Note that\n"
+"              these letters are not normal legal URL contents but they  should\n"
+, stdout);
+ fputs(
+"              be encoded according to the URI standard.\n"
+"\n"
+"       -I, --head\n"
+"              (HTTP FTP FILE) Fetch the headers only! HTTP-servers feature the\n"
+"              command HEAD which this uses to get nothing but the header of  a\n"
+"              document.  When  used  on an FTP or FILE file, curl displays the\n"
+"              file size and last modification time only.\n"
+"\n"
+"       -H, --header <header>\n"
+"              (HTTP) Extra header to include in the request when sending  HTTP\n"
+, stdout);
+ fputs(
+"              to  a  server. You may specify any number of extra headers. Note\n"
+"              that if you should add a custom header that has the same name as\n"
+"              one  of  the  internal  ones curl would use, your externally set\n"
+"              header will be used instead of the internal one. This allows you\n"
+"              to  make  even  trickier  stuff than curl would normally do. You\n"
+"              should not replace internally set headers without  knowing  per-\n"
+, stdout);
+ fputs(
+"              fectly well what you're doing. Remove an internal header by giv-\n"
+"              ing a replacement without content  on  the  right  side  of  the\n"
+"              colon, as in: -H \"Host:\". If you send the custom header with no-\n"
+"              value then its header must be terminated with a semicolon,  such\n"
+"              as -H \"X-Custom-Header;\" to send \"X-Custom-Header:\".\n"
+"\n"
+"              curl  will  make  sure  that each header you add/replace is sent\n"
+, stdout);
+ fputs(
+"              with the proper end-of-line marker, you should thus not add that\n"
+"              as a part of the header content: do not add newlines or carriage\n"
+"              returns, they will only mess things up for you.\n"
+"\n"
+"              See also the -A, --user-agent and -e, --referer options.\n"
+"\n"
+"              Starting in 7.37.0, you need --proxy-header to send custom head-\n"
+"              ers intended for a proxy.\n"
+"\n"
+"              Example:\n"
+"\n"
+"               curl -H \"X-First-Name: Joe\" http://example.com/\n"
+, stdout);
+ fputs(
+"\n"
+"              WARNING:  headers  set  with  this  option  will  be  set in all\n"
+"              requests - even after redirects are  followed,  like  when  told\n"
+"              with  -L,  --location. This can lead to the header being sent to\n"
+"              other hosts than the original host, so sensitive headers  should\n"
+"              be used with caution combined with following redirects.\n"
+"\n"
+"              This  option  can  be  used multiple times to add/replace/remove\n"
+"              multiple headers.\n"
+"\n"
+, stdout);
+ fputs(
+"       -h, --help\n"
+"              Usage help. This lists all current command line options  with  a\n"
+"              short description.\n"
+"       --hostpubmd5 <md5>\n"
+"              (SFTP  SCP)  Pass a string containing 32 hexadecimal digits. The\n"
+"              string should be the 128 bit MD5 checksum of the  remote  host's\n"
+"              public key, curl will refuse the connection with the host unless\n"
+"              the md5sums match.\n"
+"\n"
+"              Added in 7.17.1.\n"
+"\n"
+"       -0, --http1.0\n"
+, stdout);
+ fputs(
+"              (HTTP) Tells curl to use HTTP version 1.0 instead of  using  its\n"
+"              internally preferred HTTP version.\n"
+"\n"
+"              This option overrides --http1.1 and --http2.\n"
+"\n"
+"       --http1.1\n"
+"              (HTTP) Tells curl to use HTTP version 1.1.\n"
+"\n"
+"              This  option  overrides  -0,  --http1.0  and  --http2.  Added in\n"
+"              7.33.0.\n"
+"\n"
+"       --http2-prior-knowledge\n"
+"              (HTTP) Tells curl to  issue  its  non-TLS  HTTP  requests  using\n"
+, stdout);
+ fputs(
+"              HTTP/2  without  HTTP/1.1  Upgrade.  It requires prior knowledge\n"
+"              that the server supports HTTP/2 straight  away.  HTTPS  requests\n"
+"              will  still  do HTTP/2 the standard way with negotiated protocol\n"
+"              version in the TLS handshake.\n"
+"\n"
+"              --http2-prior-knowledge requires that the underlying libcurl was\n"
+"              built to support HTTP/2. This option overrides --http1.1 and -0,\n"
+"              --http1.0 and --http2. Added in 7.49.0.\n"
+"\n"
+, stdout);
+ fputs(
+"       --http2\n"
+"              (HTTP) Tells curl to use HTTP version 2.\n"
+"\n"
+"              See also --no-alpn. --http2 requires that the underlying libcurl\n"
+"              was built to support HTTP/2. This option overrides --http1.1 and\n"
+"              -0, --http1.0 and --http2-prior-knowledge. Added in 7.33.0.\n"
+"\n"
+"       --ignore-content-length\n"
+"              (FTP HTTP) For HTTP, Ignore the Content-Length header.  This  is\n"
+"              particularly  useful  for servers running Apache 1.x, which will\n"
+, stdout);
+ fputs(
+"              report incorrect Content-Length for files larger  than  2  giga-\n"
+"              bytes.\n"
+"\n"
+"              For  FTP (since 7.46.0), skip the RETR command to figure out the\n"
+"              size before downloading a file.\n"
+"\n"
+"       -i, --include\n"
+"              Include the HTTP-header in the output. The HTTP-header  includes\n"
+"              things  like server-name, date of the document, HTTP-version and\n"
+"              more...\n"
+"\n"
+"              See also -v, --verbose.\n"
+"\n"
+"       -k, --insecure\n"
+, stdout);
+ fputs(
+"              (TLS) By default, every SSL connection curl makes is verified to\n"
+"              be  secure.  This option allows curl to proceed and operate even\n"
+"              for server connections otherwise considered insecure.\n"
+"\n"
+"              The server connection is verified by making  sure  the  server's\n"
+"              certificate  contains  the  right name and verifies successfully\n"
+"              using the cert store.\n"
+"\n"
+"              See this online resource for further details:\n"
+, stdout);
+ fputs(
+"               https://curl.haxx.se/docs/sslcerts.html\n"
+"              See also --proxy-insecure and --cacert.\n"
+"\n"
+"       --interface <name>\n"
+"\n"
+"              Perform an operation using a specified interface. You can  enter\n"
+"              interface  name,  IP address or host name. An example could look\n"
+"              like:\n"
+"\n"
+"               curl --interface eth0:1 https://www.example.com/\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also --dns-interface.\n"
+"\n"
+"       -4, --ipv4\n"
+"              This option tells curl to resolve names to IPv4 addresses  only,\n"
+"              and not for example try IPv6.\n"
+"\n"
+"              See  also  --http1.1  and  --http2.  This  option  overrides -6,\n"
+"              --ipv6.\n"
+"\n"
+"       -6, --ipv6\n"
+"              This option tells curl to resolve names to IPv6 addresses  only,\n"
+"              and not for example try IPv4.\n"
+"\n"
+, stdout);
+ fputs(
+"              See  also  --http1.1  and  --http2.  This  option  overrides -6,\n"
+"              --ipv6.\n"
+"\n"
+"       -j, --junk-session-cookies\n"
+"              (HTTP) When curl is told to read cookies from a given file, this\n"
+"              option  will  make  it  discard all \"session cookies\". This will\n"
+"              basically have the same effect as if a new session  is  started.\n"
+"              Typical  browsers  always  discard  session cookies when they're\n"
+"              closed down.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also -b, --cookie and -c, --cookie-jar.\n"
+"\n"
+"       --keepalive-time <seconds>\n"
+"              This option sets the time a  connection  needs  to  remain  idle\n"
+"              before  sending keepalive probes and the time between individual\n"
+"              keepalive probes. It is currently effective on operating systems\n"
+"              offering  the  TCP_KEEPIDLE  and  TCP_KEEPINTVL  socket  options\n"
+"              (meaning Linux, recent AIX, HP-UX and more). This option has  no\n"
+, stdout);
+ fputs(
+"              effect if --no-keepalive is used.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"              If unspecified, the option defaults to 60 seconds.\n"
+"\n"
+"              Added in 7.18.0.\n"
+"\n"
+"       --key-type <type>\n"
+"              (TLS) Private key file type. Specify which type your --key  pro-\n"
+"              vided  private  key  is. DER, PEM, and ENG are supported. If not\n"
+"              specified, PEM is assumed.\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --key <key>\n"
+"              (TLS SSH) Private key file name. Allows you to provide your pri-\n"
+"              vate  key in this separate file. For SSH, if not specified, curl\n"
+"              tries the following candidates in order:\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --krb <level>\n"
+"              (FTP) Enable Kerberos authentication and use. The level must  be\n"
+, stdout);
+ fputs(
+"              entered and should be one of 'clear', 'safe', 'confidential', or\n"
+"              'private'. Should you use a level that  is  not  one  of  these,\n"
+"              'private' will instead be used.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"              --krb  requires that the underlying libcurl was built to support\n"
+"              Kerberos.\n"
+"\n"
+"       --libcurl <file>\n"
+"              Append this option to any ordinary curl command  line,  and  you\n"
+, stdout);
+ fputs(
+"              will  get a libcurl-using C source code written to the file that\n"
+"              does the equivalent of what your command-line operation does!\n"
+"\n"
+"              If this option is used several times, the last given  file  name\n"
+"              will be used.\n"
+"\n"
+"              Added in 7.16.1.\n"
+"\n"
+"       --limit-rate <speed>\n"
+"              Specify  the  maximum  transfer  rate you want curl to use - for\n"
+"              both downloads and uploads. This feature is useful if you have a\n"
+, stdout);
+ fputs(
+"              limited pipe and you'd like your transfer not to use your entire\n"
+"              bandwidth. To make it slower than it otherwise would be.\n"
+"\n"
+"              The given speed is measured in bytes/second, unless a suffix  is\n"
+"              appended.   Appending  'k' or 'K' will count the number as kilo-\n"
+"              bytes, 'm' or M' makes it megabytes, while 'g' or 'G'  makes  it\n"
+"              gigabytes. Examples: 200K, 3m and 1G.\n"
+"\n"
+, stdout);
+ fputs(
+"              If  you  also use the -Y, --speed-limit option, that option will\n"
+"              take precedence and might cripple the rate-limiting slightly, to\n"
+"              help keeping the speed-limit logic working.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       -l, --list-only\n"
+"              (FTP  POP3)  (FTP)  When  listing  an FTP directory, this switch\n"
+"              forces a name-only view. This is especially useful if  the  user\n"
+, stdout);
+ fputs(
+"              wants  to  machine-parse  the contents of an FTP directory since\n"
+"              the normal directory view doesn't use a standard look or format.\n"
+"              When used like this, the option causes a NLST command to be sent\n"
+"              to the server instead of LIST.\n"
+"\n"
+"              Note: Some FTP servers list only  files  in  their  response  to\n"
+"              NLST; they do not include sub-directories and symbolic links.\n"
+"\n"
+, stdout);
+ fputs(
+"              (POP3)  When  retrieving a specific email from POP3, this switch\n"
+"              forces a LIST command to be performed instead of RETR.  This  is\n"
+"              particularly  useful if the user wants to see if a specific mes-\n"
+"              sage id exists on the server and what size it is.\n"
+"\n"
+"              Note: When combined with -X, --request, this option can be  used\n"
+"              to send an UIDL command instead, so the user may use the email's\n"
+, stdout);
+ fputs(
+"              unique identifier rather  than  it's  message  id  to  make  the\n"
+"              request.\n"
+"\n"
+"              Added in 7.21.5.\n"
+"\n"
+"       --local-port <num/range>\n"
+"              Set  a  preferred single number or range (FROM-TO) of local port\n"
+"              numbers to use for the connection(s).  Note that port numbers by\n"
+"              nature  are a scarce resource that will be busy at times so set-\n"
+"              ting this range to something too narrow might cause  unnecessary\n"
+, stdout);
+ fputs(
+"              connection setup failures.\n"
+"\n"
+"              Added in 7.15.2.\n"
+"\n"
+"       --location-trusted\n"
+"              (HTTP)  Like  -L,  --location, but will allow sending the name +\n"
+"              password to all hosts that the site may redirect to. This may or\n"
+"              may not introduce a security breach if the site redirects you to\n"
+"              a site to which you'll send your authentication info  (which  is\n"
+"              plaintext in the case of HTTP Basic authentication).\n"
+"\n"
+, stdout);
+ fputs(
+"              See also -u, --user.\n"
+"\n"
+"       -L, --location\n"
+"              (HTTP)  If  the server reports that the requested page has moved\n"
+"              to a different location (indicated with a Location: header and a\n"
+"              3XX  response code), this option will make curl redo the request\n"
+"              on the new place. If used together with  -i,  --include  or  -I,\n"
+"              --head,  headers  from  all  requested pages will be shown. When\n"
+, stdout);
+ fputs(
+"              authentication is used, curl only sends its credentials  to  the\n"
+"              initial  host.  If a redirect takes curl to a different host, it\n"
+"              won't be able to intercept the user+password. See  also  --loca-\n"
+"              tion-trusted  on how to change this. You can limit the amount of\n"
+"              redirects to follow by using the --max-redirs option.\n"
+"\n"
+"              When curl follows a redirect and the request is not a plain  GET\n"
+, stdout);
+ fputs(
+"              (for example POST or PUT), it will do the following request with\n"
+"              a GET if the HTTP response was 301, 302, or 303. If the response\n"
+"              code  was  any  other  3xx code, curl will re-send the following\n"
+"              request using the same unmodified method.\n"
+"\n"
+"              You can tell curl to not change the non-GET  request  method  to\n"
+"              GET  after  a  30x  response  by using the dedicated options for\n"
+, stdout);
+ fputs(
+"              that: --post301, --post302 and --post303.\n"
+"\n"
+"       --login-options <options>\n"
+"              (IMAP POP3 SMTP) Specify the login options to use during  server\n"
+"              authentication.\n"
+"\n"
+"              You  can  use  the  login  options  to specify protocol specific\n"
+"              options that may be used during authentication. At present  only\n"
+"              IMAP,  POP3 and SMTP support login options. For more information\n"
+, stdout);
+ fputs(
+"              about the login options please see RFC 2384, RFC 5092  and  IETF\n"
+"              draft draft-earhart-url-smtp-00.txt\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.34.0.\n"
+"\n"
+"       --mail-auth <address>\n"
+"              (SMTP)  Specify  a  single address. This will be used to specify\n"
+"              the authentication address (identity)  of  a  submitted  message\n"
+"              that is being relayed to another server.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also --mail-rcpt and --mail-from. Added in 7.25.0.\n"
+"\n"
+"       --mail-from <address>\n"
+"              (SMTP)  Specify  a single address that the given mail should get\n"
+"              sent from.\n"
+"\n"
+"              See also --mail-rcpt and --mail-auth. Added in 7.20.0.\n"
+"\n"
+"       --mail-rcpt <address>\n"
+"              (SMTP) Specify a single address, user name or mailing list name.\n"
+"              Repeat this option several times to send to multiple recipients.\n"
+, stdout);
+ fputs(
+"              When  performing a mail transfer, the recipient should specify a\n"
+"              valid email address to send the mail to.\n"
+"\n"
+"              When performing an  address  verification  (VRFY  command),  the\n"
+"              recipient  should be specified as the user name or user name and\n"
+"              domain (as per Section 3.5 of RFC5321). (Added in 7.34.0)\n"
+"\n"
+"              When performing a mailing list expand (EXPN command), the recip-\n"
+, stdout);
+ fputs(
+"              ient  should  be  specified using the mailing list name, such as\n"
+"              \"Friends\" or \"London-Office\".  (Added in 7.34.0)\n"
+"\n"
+"              Added in 7.20.0.\n"
+"\n"
+"       -M, --manual\n"
+"              Manual. Display the huge help text.\n"
+"\n"
+"       --max-filesize <bytes>\n"
+"              Specify the maximum size (in bytes) of a file  to  download.  If\n"
+"              the  file requested is larger than this value, the transfer will\n"
+"              not start and curl will return with exit code 63.\n"
+"\n"
+, stdout);
+ fputs(
+"              NOTE: The file size is not always known prior to  download,  and\n"
+"              for such files this option has no effect even if the file trans-\n"
+"              fer ends up being larger than this given  limit.  This  concerns\n"
+"              both FTP and HTTP transfers.\n"
+"\n"
+"              See also --limit-rate.\n"
+"\n"
+"       --max-redirs <num>\n"
+"              (HTTP)  Set  maximum  number  of redirection-followings allowed.\n"
+, stdout);
+ fputs(
+"              When -L, --location is used, is used to prevent curl  from  fol-\n"
+"              lowing  redirections \"in absurdum\". By default, the limit is set\n"
+"              to 50 redirections. Set this option to -1 to make it unlimited.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       -m, --max-time <time>\n"
+"              Maximum time in seconds that you allow the  whole  operation  to\n"
+, stdout);
+ fputs(
+"              take.   This is useful for preventing your batch jobs from hang-\n"
+"              ing for hours due to slow networks or links going  down.   Since\n"
+"              7.32.0, this option accepts decimal values, but the actual time-\n"
+"              out will decrease in accuracy as the specified timeout increases\n"
+"              in decimal precision.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              See also --connect-timeout.\n"
+"\n"
+"       --metalink\n"
+, stdout);
+ fputs(
+"              This  option  can  tell curl to parse and process a given URI as\n"
+"              Metalink file (both version 3 and 4 (RFC  5854)  are  supported)\n"
+"              and  make use of the mirrors listed within for failover if there\n"
+"              are errors (such as the file or server not being available).  It\n"
+"              will  also  verify  the hash of the file after the download com-\n"
+"              pletes. The Metalink file itself is downloaded and processed  in\n"
+, stdout);
+ fputs(
+"              memory and not stored in the local file system.\n"
+"\n"
+"              Example to use a remote Metalink file:\n"
+"\n"
+"               curl --metalink http://www.example.com/example.metalink\n"
+"\n"
+"              To use a Metalink file in the local file system, use FILE proto-\n"
+"              col (file://):\n"
+"\n"
+"               curl --metalink file://example.metalink\n"
+"\n"
+"              Please note that if FILE protocol is disabled, there is  no  way\n"
+, stdout);
+ fputs(
+"              to  use  a local Metalink file at the time of this writing. Also\n"
+"              note that if --metalink and -i,  --include  are  used  together,\n"
+"              --include  will be ignored. This is because including headers in\n"
+"              the response will break Metalink parser and if the  headers  are\n"
+"              included in the file described in Metalink file, hash check will\n"
+"              fail.\n"
+"\n"
+"              --metalink requires that the underlying  libcurl  was  built  to\n"
+, stdout);
+ fputs(
+"              support metalink. Added in 7.27.0.\n"
+"\n"
+"       --negotiate\n"
+"              (HTTP) Enables Negotiate (SPNEGO) authentication.\n"
+"\n"
+"              This  option  requires a library built with GSS-API or SSPI sup-\n"
+"              port. Use -V, --version  to  see  if  your  curl  supports  GSS-\n"
+"              API/SSPI or SPNEGO.\n"
+"\n"
+"              When  using this option, you must also provide a fake -u, --user\n"
+"              option to activate the authentication code properly.  Sending  a\n"
+, stdout);
+ fputs(
+"              '-u  :'  is  enough  as  the user name and password from the -u,\n"
+"              --user option aren't actually used.\n"
+"\n"
+"              If this option is used several times,  only  the  first  one  is\n"
+"              used.\n"
+"\n"
+"              See also --basic and --ntlm and --anyauth and --proxy-negotiate.\n"
+"\n"
+"       --netrc-file <filename>\n"
+"              This  option  is similar to -n, --netrc, except that you provide\n"
+"              the path (absolute or relative) to  the  netrc  file  that  Curl\n"
+, stdout);
+ fputs(
+"              should use.  You can only specify one netrc file per invocation.\n"
+"              If several --netrc-file options are provided, the last one  will\n"
+"              be used.\n"
+"\n"
+"              It will abide by --netrc-optional if specified.\n"
+"\n"
+"              This option overrides -n, --netrc. Added in 7.21.5.\n"
+"\n"
+"       --netrc-optional\n"
+"              Very  similar  to  -n, --netrc, but this option makes the .netrc\n"
+"              usage optional and not mandatory as the -n, --netrc option does.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also --netrc-file. This option overrides -n, --netrc.\n"
+"\n"
+"       -n, --netrc\n"
+"              Makes curl scan the .netrc  (_netrc  on  Windows)  file  in  the\n"
+"              user's home directory for login name and password. This is typi-\n"
+"              cally used for FTP on Unix. If used with HTTP, curl will  enable\n"
+"              user authentication. See netrc(5) ftp(1) for details on the file\n"
+"              format. Curl will not complain if that  file  doesn't  have  the\n"
+, stdout);
+ fputs(
+"              right permissions (it should not be either world- or group-read-\n"
+"              able). The environment variable \"HOME\" is used to find the  home\n"
+"              directory.\n"
+"\n"
+"              A  quick  and  very  simple  example of how to setup a .netrc to\n"
+"              allow curl to FTP to the machine host.domain.com with user  name\n"
+"              'myself' and password 'secret' should look similar to:\n"
+"\n"
+"              machine host.domain.com login myself password secret\n"
+"\n"
+"       -:, --next\n"
+, stdout);
+ fputs(
+"              Tells curl to use a separate operation for the following URL and\n"
+"              associated  options.  This  allows  you  to  send  several   URL\n"
+"              requests,  each  with  their  own specific options, for example,\n"
+"              such as different user names or custom requests for each.\n"
+"\n"
+"              -:, --next will reset all local options  and  only  global  ones\n"
+"              will  have  their values survive over to the operation following\n"
+, stdout);
+ fputs(
+"              the -:, --next instruction. Global options  include  -v,  --ver-\n"
+"              bose, --trace, --trace-ascii and --fail-early.\n"
+"\n"
+"              For  example,  you can do both a GET and a POST in a single com-\n"
+"              mand line:\n"
+"\n"
+"               curl www1.example.com --next -d postthis www2.example.com\n"
+"\n"
+"              Added in 7.36.0.\n"
+"\n"
+"       --no-alpn\n"
+"              (HTTPS) Disable the ALPN  TLS  extension.  ALPN  is  enabled  by\n"
+, stdout);
+ fputs(
+"              default  if  libcurl was built with an SSL library that supports\n"
+"              ALPN. ALPN is used by a libcurl that supports HTTP/2 to  negoti-\n"
+"              ate HTTP/2 support with the server during https sessions.\n"
+"\n"
+"              See  also  --no-npn  and  --http2.  --no-alpn  requires that the\n"
+"              underlying libcurl was built to support TLS. Added in 7.36.0.\n"
+"\n"
+"       -N, --no-buffer\n"
+"              Disables the buffering of the output stream. In normal work sit-\n"
+, stdout);
+ fputs(
+"              uations,  curl  will  use a standard buffered output stream that\n"
+"              will have the effect that it will output the data in chunks, not\n"
+"              necessarily  exactly  when  the data arrives.  Using this option\n"
+"              will disable that buffering.\n"
+"\n"
+"              Note that this is the negated option name  documented.  You  can\n"
+"              thus use --buffer to enforce the buffering.\n"
+"\n"
+"       --no-keepalive\n"
+, stdout);
+ fputs(
+"              Disables  the  use  of keepalive messages on the TCP connection.\n"
+"              curl otherwise enables them by default.\n"
+"\n"
+"              Note that this is the negated option name  documented.  You  can\n"
+"              thus use --keepalive to enforce keepalive.\n"
+"\n"
+"       --no-npn\n"
+"              (HTTPS) Disable the NPN TLS extension. NPN is enabled by default\n"
+"              if libcurl was built with an SSL library that supports NPN.  NPN\n"
+, stdout);
+ fputs(
+"              is  used  by  a libcurl that supports HTTP/2 to negotiate HTTP/2\n"
+"              support with the server during https sessions.\n"
+"\n"
+"              See also --no-alpn  and  --http2.  --no-npn  requires  that  the\n"
+"              underlying libcurl was built to support TLS. Added in 7.36.0.\n"
+"\n"
+"       --no-sessionid\n"
+"              (TLS)  Disable curl's use of SSL session-ID caching.  By default\n"
+"              all transfers are done using the cache. Note that while  nothing\n"
+, stdout);
+ fputs(
+"              should  ever  get  hurt  by attempting to reuse SSL session-IDs,\n"
+"              there seem to be broken SSL implementations in the wild that may\n"
+"              require you to disable this in order for you to succeed.\n"
+"\n"
+"              Note  that  this  is the negated option name documented. You can\n"
+"              thus use --sessionid to enforce session-ID caching.\n"
+"\n"
+"              Added in 7.16.0.\n"
+"\n"
+"       --noproxy <no-proxy-list>\n"
+, stdout);
+ fputs(
+"              Comma-separated list of hosts which do not use a proxy,  if  one\n"
+"              is  specified.  The only wildcard is a single * character, which\n"
+"              matches all hosts, and effectively disables the proxy. Each name\n"
+"              in  this  list  is matched as either a domain which contains the\n"
+"              hostname, or the hostname itself. For example,  local.com  would\n"
+"              match   local.com,  local.com:80,  and  www.local.com,  but  not\n"
+, stdout);
+ fputs(
+"              www.notlocal.com.\n"
+"\n"
+"              Since 7.53.0, This option overrides  the  environment  variables\n"
+"              that  disable the proxy. If there's an environment variable dis-\n"
+"              abling a proxy, you can set noproxy list to \"\" to override it.\n"
+"\n"
+"              Added in 7.19.4.\n"
+"\n"
+"       --ntlm-wb\n"
+"              (HTTP) Enables NTLM much in the style --ntlm does, but hand over\n"
+"              the  authentication  to the separate binary ntlmauth application\n"
+, stdout);
+ fputs(
+"              that is executed when needed.\n"
+"\n"
+"              See also --ntlm and --proxy-ntlm.\n"
+"\n"
+"       --ntlm (HTTP) Enables  NTLM  authentication.  The  NTLM  authentication\n"
+"              method was designed by Microsoft and is used by IIS web servers.\n"
+"              It is a proprietary protocol, reverse-engineered by clever  peo-\n"
+"              ple and implemented in curl based on their efforts. This kind of\n"
+"              behavior should not be endorsed, you should  encourage  everyone\n"
+, stdout);
+ fputs(
+"              who  uses  NTLM to switch to a public and documented authentica-\n"
+"              tion method instead, such as Digest.\n"
+"\n"
+"              If you want to enable NTLM for your proxy  authentication,  then\n"
+"              use --proxy-ntlm.\n"
+"\n"
+"              If  this  option  is  used  several times, only the first one is\n"
+"              used.\n"
+"\n"
+"              See also  --proxy-ntlm.  --ntlm  requires  that  the  underlying\n"
+, stdout);
+ fputs(
+"              libcurl  was built to support TLS. This option overrides --basic\n"
+"              and --negotiated and --digest and --anyauth.\n"
+"\n"
+"       --oauth2-bearer <token>\n"
+"              (IMAP POP3 SMTP) Specify the Bearer Token for OAUTH  2.0  server\n"
+"              authentication. The Bearer Token is used in conjunction with the\n"
+"              user name which can be specified as part of  the  --url  or  -u,\n"
+"              --user options.\n"
+"\n"
+, stdout);
+ fputs(
+"              The  Bearer  Token  and user name are formatted according to RFC\n"
+"              6750.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       -o, --output <file>\n"
+"              Write output to <file> instead of stdout. If you are using {} or\n"
+"              []  to  fetch  multiple documents, you can use '#' followed by a\n"
+"              number in the <file> specifier. That variable will  be  replaced\n"
+, stdout);
+ fputs(
+"              with the current string for the URL being fetched. Like in:\n"
+"\n"
+"               curl http://{one,two}.example.com -o \"file_#1.txt\"\n"
+"\n"
+"              or use several variables like:\n"
+"\n"
+"               curl http://{site,host}.host[1-5].com -o \"#1_#2\"\n"
+"\n"
+"              You  may use this option as many times as the number of URLs you\n"
+"              have. For example, if you specify two URLs on the  same  command\n"
+"              line, you can use it like this:\n"
+"\n"
+, stdout);
+ fputs(
+"                curl -o aa example.com -o bb example.net\n"
+"\n"
+"              and  the  order  of  the -o options and the URLs doesn't matter,\n"
+"              just that the first -o is for the first URL and so  on,  so  the\n"
+"              above command line can also be written as\n"
+"\n"
+"                curl example.com example.net -o aa -o bb\n"
+"\n"
+"              See  also  the --create-dirs option to create the local directo-\n"
+"              ries dynamically. Specifying the output as '-' (a  single  dash)\n"
+, stdout);
+ fputs(
+"              will force the output to be done to stdout.\n"
+"\n"
+"              See   also  -O,  --remote-name  and  --remote-name-all  and  -J,\n"
+"              --remote-header-name.\n"
+"\n"
+"       --pass <phrase>\n"
+"              (SSH TLS) Passphrase for the private key\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --path-as-is\n"
+"              Tell curl to not handle sequences of /../ or /./  in  the  given\n"
+, stdout);
+ fputs(
+"              URL  path.  Normally curl will squash or merge them according to\n"
+"              standards but with this option set you tell it not to do that.\n"
+"\n"
+"              Added in 7.42.0.\n"
+"\n"
+"       --pinnedpubkey <hashes>\n"
+"              (TLS) Tells curl to  use  the  specified  public  key  file  (or\n"
+"              hashes)  to  verify the peer. This can be a path to a file which\n"
+"              contains a single public key in PEM or DER format, or any number\n"
+, stdout);
+ fputs(
+"              of base64 encoded sha256 hashes preceded by 'sha256//' and sepa-\n"
+"              rated by ';'\n"
+"\n"
+"              When negotiating a TLS or SSL connection,  the  server  sends  a\n"
+"              certificate  indicating  its identity. A public key is extracted\n"
+"              from this certificate and if it does not exactly match the  pub-\n"
+"              lic  key provided to this option, curl will abort the connection\n"
+"              before sending or receiving any data.\n"
+"\n"
+, stdout);
+ fputs(
+"              PEM/DER support:\n"
+"                7.39.0: OpenSSL, GnuTLS and GSKit\n"
+"                7.43.0: NSS and wolfSSL/CyaSSL\n"
+"                7.47.0: mbedtls\n"
+"                7.49.0: PolarSSL sha256 support:\n"
+"                7.44.0: OpenSSL, GnuTLS, NSS and wolfSSL/CyaSSL.\n"
+"                7.47.0: mbedtls\n"
+"                7.49.0: PolarSSL Other SSL backends not supported.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --post301\n"
+, stdout);
+ fputs(
+"              (HTTP) Tells curl to respect RFC 7231/6.4.2 and not convert POST\n"
+"              requests into GET requests when following a 301 redirection. The\n"
+"              non-RFC behaviour is ubiquitous in web browsers,  so  curl  does\n"
+"              the  conversion  by  default to maintain consistency. However, a\n"
+"              server may require a POST to remain a POST after  such  a  redi-\n"
+"              rection.  This  option is meaningful only when using -L, --loca-\n"
+"              tion.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also --post302 and --post303 and -L,  --location.  Added  in\n"
+"              7.17.1.\n"
+"\n"
+"       --post302\n"
+"              (HTTP) Tells curl to respect RFC 7231/6.4.3 and not convert POST\n"
+"              requests into GET requests when following a 302 redirection. The\n"
+"              non-RFC  behaviour  is  ubiquitous in web browsers, so curl does\n"
+"              the conversion by default to maintain  consistency.  However,  a\n"
+, stdout);
+ fputs(
+"              server  may  require  a POST to remain a POST after such a redi-\n"
+"              rection. This option is meaningful only when using  -L,  --loca-\n"
+"              tion.\n"
+"\n"
+"              See  also  --post301  and --post303 and -L, --location. Added in\n"
+"              7.19.1.\n"
+"\n"
+"       --post303\n"
+"              (HTTP) Tells curl to respect RFC 7231/6.4.4 and not convert POST\n"
+"              requests into GET requests when following a 303 redirection. The\n"
+, stdout);
+ fputs(
+"              non-RFC behaviour is ubiquitous in web browsers,  so  curl  does\n"
+"              the  conversion  by  default to maintain consistency. However, a\n"
+"              server may require a POST to remain a POST after  such  a  redi-\n"
+"              rection.  This  option is meaningful only when using -L, --loca-\n"
+"              tion.\n"
+"\n"
+"              See also --post302 and --post301 and -L,  --location.  Added  in\n"
+"              7.26.0.\n"
+"\n"
+"       --preproxy [protocol://]host[:port]\n"
+, stdout);
+ fputs(
+"              Use  the  specified  SOCKS proxy before connecting to an HTTP or\n"
+"              HTTPS -x, --proxy. In such a case curl  first  connects  to  the\n"
+"              SOCKS  proxy  and  then  connects (through SOCKS) to the HTTP or\n"
+"              HTTPS proxy. Hence pre proxy.\n"
+"\n"
+"              The pre proxy string should be specified with a protocol:// pre-\n"
+"              fix  to  specify  alternative  proxy  protocols.  Use socks4://,\n"
+, stdout);
+ fputs(
+"              socks4a://, socks5:// or  socks5h://  to  request  the  specific\n"
+"              SOCKS  version  to be used. No protocol specified will make curl\n"
+"              default to SOCKS4.\n"
+"\n"
+"              If the port number is not specified in the proxy string,  it  is\n"
+"              assumed to be 1080.\n"
+"\n"
+"              User and password that might be provided in the proxy string are\n"
+"              URL decoded by curl. This allows you to pass in special  charac-\n"
+, stdout);
+ fputs(
+"              ters such as @ by using %40 or pass in a colon with %3a.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       -#, --progress-bar\n"
+"              Make  curl  display  transfer  progress as a simple progress bar\n"
+"              instead of the standard, more informational, meter.\n"
+"\n"
+"              This progress bar draws a single line of '#'  characters  across\n"
+, stdout);
+ fputs(
+"              the screen and shows a percentage if the transfer size is known.\n"
+"              For transfers without a known size, it will instead  output  one\n"
+"              '#' character for every 1024 bytes transferred.\n"
+"\n"
+"       --proto-default <protocol>\n"
+"              Tells curl to use protocol for any URL missing a scheme name.\n"
+"\n"
+"              Example:\n"
+"\n"
+"               curl --proto-default https ftp.mozilla.org\n"
+"\n"
+"              An  unknown  or  unsupported  protocol causes error CURLE_UNSUP-\n"
+, stdout);
+ fputs(
+"              PORTED_PROTOCOL (1).\n"
+"\n"
+"              This option does not change the default proxy protocol (http).\n"
+"\n"
+"              Without this option curl would make a guess based on  the  host,\n"
+"              see --url for details.\n"
+"\n"
+"              Added in 7.45.0.\n"
+"\n"
+"       --proto-redir <protocols>\n"
+"              Tells  curl to limit what protocols it may use on redirect. Pro-\n"
+"              tocols denied by --proto are not overridden by this option.  See\n"
+, stdout);
+ fputs(
+"              --proto for how protocols are represented.\n"
+"\n"
+"              Example, allow only HTTP and HTTPS on redirect:\n"
+"\n"
+"               curl --proto-redir -all,http,https http://example.com\n"
+"\n"
+"              By default curl will allow all protocols on redirect except sev-\n"
+"              eral disabled for security reasons: Since 7.19.4  FILE  and  SCP\n"
+"              are  disabled,  and since 7.40.0 SMB and SMBS are also disabled.\n"
+, stdout);
+ fputs(
+"              Specifying all  or  +all  enables  all  protocols  on  redirect,\n"
+"              including those disabled for security.\n"
+"\n"
+"              Added in 7.20.2.\n"
+"\n"
+"       --proto <protocols>\n"
+"              Tells  curl  to limit what protocols it may use in the transfer.\n"
+"              Protocols are evaluated left to right, are comma separated,  and\n"
+"              are each a protocol name or\n"
+"\n"
+"              +  Permit this protocol in addition to protocols already permit-\n"
+, stdout);
+ fputs(
+"                 ted (this is the default if no modifier is used).\n"
+"\n"
+"              -  Deny this protocol, removing it from the  list  of  protocols\n"
+"                 already permitted.\n"
+"\n"
+"              =  Permit  only this protocol (ignoring the list already permit-\n"
+"                 ted), though subject  to  later  modification  by  subsequent\n"
+"                 entries in the comma separated list.\n"
+"\n"
+"              For example:\n"
+"\n"
+"              --proto -ftps  uses the default protocols, but disables ftps\n"
+, stdout);
+ fputs(
+"\n"
+"              --proto -all,https,+http\n"
+"                             only enables http and https\n"
+"\n"
+"              --proto =http,https\n"
+"                             also only enables http and https\n"
+"\n"
+"       Unknown protocols produce a warning. This allows scripts to safely rely\n"
+"       on being able to disable potentially dangerous protocols, without rely-\n"
+"       ing  upon  support  for that protocol being built into curl to avoid an\n"
+"       error.\n"
+"\n"
+, stdout);
+ fputs(
+"       This option can be used multiple times, in which case the effect is the\n"
+"       same as concatenating the protocols into one instance of the option.\n"
+"\n"
+"       See also --proto-redir and --proto-default. Added in 7.20.2.\n"
+"\n"
+"       --proxy-anyauth\n"
+"              Tells  curl to pick a suitable authentication method when commu-\n"
+"              nicating with the given HTTP proxy. This might  cause  an  extra\n"
+"              request/response round-trip.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also -x, --proxy and --proxy-basic and --proxy-digest. Added\n"
+"              in 7.13.2.\n"
+"\n"
+"       --proxy-basic\n"
+"              Tells curl to use HTTP Basic authentication  when  communicating\n"
+"              with the given proxy. Use --basic for enabling HTTP Basic with a\n"
+"              remote host. Basic is the  default  authentication  method  curl\n"
+"              uses with proxies.\n"
+"\n"
+"              See also -x, --proxy and --proxy-anyauth and --proxy-digest.\n"
+"\n"
+, stdout);
+ fputs(
+"       --proxy-cacert <file>\n"
+"              Same as --cacert but used in HTTPS proxy context.\n"
+"\n"
+"              See  also  --proxy-capath  and  --cacert  and  --capath  and -x,\n"
+"              --proxy. Added in 7.52.0.\n"
+"\n"
+"       --proxy-capath <dir>\n"
+"              Same as --capath but used in HTTPS proxy context.\n"
+"\n"
+"              See also --proxy-cacert and -x, --proxy and --capath.  Added  in\n"
+"              7.52.0.\n"
+"\n"
+"       --proxy-cert-type <type>\n"
+, stdout);
+ fputs(
+"              Same as --cert-type but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-cert <cert[:passwd]>\n"
+"              Same as -E, --cert but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-ciphers <list>\n"
+"              Same as --ciphers but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-crlfile <file>\n"
+"              Same as --crlfile but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+, stdout);
+ fputs(
+"       --proxy-digest\n"
+"              Tells  curl to use HTTP Digest authentication when communicating\n"
+"              with the given proxy. Use --digest for enabling HTTP Digest with\n"
+"              a remote host.\n"
+"\n"
+"              See also -x, --proxy and --proxy-anyauth and --proxy-basic.\n"
+"\n"
+"       --proxy-header <header>\n"
+"              (HTTP)  Extra header to include in the request when sending HTTP\n"
+"              to a proxy. You may specify any number of extra headers. This is\n"
+, stdout);
+ fputs(
+"              the  equivalent option to -H, --header but is for proxy communi-\n"
+"              cation only like in CONNECT requests when you  want  a  separate\n"
+"              header  sent  to  the proxy to what is sent to the actual remote\n"
+"              host.\n"
+"\n"
+"              curl will make sure that each header  you  add/replace  is  sent\n"
+"              with the proper end-of-line marker, you should thus not add that\n"
+"              as a part of the header content: do not add newlines or carriage\n"
+, stdout);
+ fputs(
+"              returns, they will only mess things up for you.\n"
+"\n"
+"              Headers  specified  with  this  option  will  not be included in\n"
+"              requests that curl knows will not be sent to a proxy.\n"
+"\n"
+"              This option can be used  multiple  times  to  add/replace/remove\n"
+"              multiple headers.\n"
+"\n"
+"              Added in 7.37.0.\n"
+"       --proxy-insecure\n"
+"              Same as -k, --insecure but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+, stdout);
+ fputs(
+"       --proxy-key-type <type>\n"
+"              Same as --key-type but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-key <key>\n"
+"              Same as --key but used in HTTPS proxy context.\n"
+"\n"
+"       --proxy-negotiate\n"
+"              Tells  curl  to  use HTTP Negotiate (SPNEGO) authentication when\n"
+"              communicating with the given proxy. Use --negotiate for enabling\n"
+"              HTTP Negotiate (SPNEGO) with a remote host.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also --proxy-anyauth and --proxy-basic. Added in 7.17.1.\n"
+"\n"
+"       --proxy-ntlm\n"
+"              Tells  curl  to  use HTTP NTLM authentication when communicating\n"
+"              with the given proxy. Use --ntlm for enabling NTLM with a remote\n"
+"              host.\n"
+"\n"
+"              See also --proxy-negotiate and --proxy-anyauth.\n"
+"\n"
+"       --proxy-pass <phrase>\n"
+"              Same as --pass but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-service-name <name>\n"
+, stdout);
+ fputs(
+"              This  option  allows  you  to  change the service name for proxy\n"
+"              negotiation.\n"
+"\n"
+"              Added in 7.43.0.\n"
+"\n"
+"       --proxy-ssl-allow-beast\n"
+"              Same as --ssl-allow-beast but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-tlsauthtype <type>\n"
+"              Same as --tlsauthtype but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-tlspassword <string>\n"
+, stdout);
+ fputs(
+"              Same as --tlspassword but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-tlsuser <name>\n"
+"              Same as --tlsuser but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --proxy-tlsv1\n"
+"              Same as -1, --tlsv1 but used in HTTPS proxy context.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       -U, --proxy-user <user:password>\n"
+"              Specify the user name and password to use for proxy  authentica-\n"
+"              tion.\n"
+"\n"
+, stdout);
+ fputs(
+"              If  you  use  a  Windows  SSPI-enabled curl binary and do either\n"
+"              Negotiate or NTLM authentication  then  you  can  tell  curl  to\n"
+"              select the user name and password from your environment by spec-\n"
+"              ifying a single colon with this option: \"-U :\".\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       -x, --proxy [protocol://]host[:port]\n"
+"              Use the specified proxy.\n"
+"\n"
+, stdout);
+ fputs(
+"              The proxy string can be specified with a protocol:// prefix.  No\n"
+"              protocol specified or http:// will be treated as HTTP proxy. Use\n"
+"              socks4://, socks4a://, socks5:// or socks5h:// to request a spe-\n"
+"              cific SOCKS version to be used.  (The protocol support was added\n"
+"              in curl 7.21.7)\n"
+"\n"
+"              HTTPS proxy support via https:// protocol prefix  was  added  in\n"
+"              7.52.0 for OpenSSL, GnuTLS and NSS.\n"
+"\n"
+, stdout);
+ fputs(
+"              Unrecognized  and  unsupported  proxy  protocols  cause an error\n"
+"              since 7.52.0.  Prior versions may ignore the  protocol  and  use\n"
+"              http:// instead.\n"
+"\n"
+"              If  the  port number is not specified in the proxy string, it is\n"
+"              assumed to be 1080.\n"
+"\n"
+"              This option overrides existing environment  variables  that  set\n"
+"              the  proxy  to use. If there's an environment variable setting a\n"
+, stdout);
+ fputs(
+"              proxy, you can set proxy to \"\" to override it.\n"
+"\n"
+"              All operations that are performed over an HTTP proxy will trans-\n"
+"              parently  be  converted  to HTTP. It means that certain protocol\n"
+"              specific operations might not be available. This is not the case\n"
+"              if you can tunnel through the proxy, as one with the -p, --prox-\n"
+"              ytunnel option.\n"
+"\n"
+"              User and password that might be provided in the proxy string are\n"
+, stdout);
+ fputs(
+"              URL  decoded by curl. This allows you to pass in special charac-\n"
+"              ters such as @ by using %40 or pass in a colon with %3a.\n"
+"\n"
+"              The proxy host can be specified the exact same way as the  proxy\n"
+"              environment  variables,  including the protocol prefix (http://)\n"
+"              and the embedded user + password.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --proxy1.0 <host[:port]>\n"
+, stdout);
+ fputs(
+"              Use the specified HTTP 1.0 proxy. If  the  port  number  is  not\n"
+"              specified, it is assumed at port 1080.\n"
+"\n"
+"              The  only  difference between this and the HTTP proxy option -x,\n"
+"              --proxy, is that attempts to use CONNECT through the proxy  will\n"
+"              specify an HTTP 1.0 protocol instead of the default HTTP 1.1.\n"
+"\n"
+"       -p, --proxytunnel\n"
+"              When  an  HTTP proxy is used -x, --proxy, this option will cause\n"
+, stdout);
+ fputs(
+"              non-HTTP protocols  to  attempt  to  tunnel  through  the  proxy\n"
+"              instead  of merely using it to do HTTP-like operations. The tun-\n"
+"              nel approach is made with the HTTP  proxy  CONNECT  request  and\n"
+"              requires that the proxy allows direct connect to the remote port\n"
+"              number curl wants to tunnel through to.\n"
+"\n"
+"              To suppress proxy CONNECT response headers when curl is  set  to\n"
+, stdout);
+ fputs(
+"              output headers use --suppress-connect-headers.\n"
+"\n"
+"              See also -x, --proxy.\n"
+"\n"
+"       --pubkey <key>\n"
+"              (SFTP SCP) Public key file name. Allows you to provide your pub-\n"
+"              lic key in this separate file.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"              (As of 7.39.0, curl attempts to automatically extract the public\n"
+"              key  from the private key file, so passing this option is gener-\n"
+, stdout);
+ fputs(
+"              ally not required. Note that this public key extraction requires\n"
+"              libcurl  to  be linked against a copy of libssh2 1.2.8 or higher\n"
+"              that is itself linked against OpenSSL.)\n"
+"\n"
+"       -Q, --quote\n"
+"              (FTP SFTP) Send an arbitrary command to the remote FTP  or  SFTP\n"
+"              server.  Quote commands are sent BEFORE the transfer takes place\n"
+"              (just after the initial PWD command in an FTP  transfer,  to  be\n"
+, stdout);
+ fputs(
+"              exact). To make commands take place after a successful transfer,\n"
+"              prefix them with a dash '-'.  To make  commands  be  sent  after\n"
+"              curl has changed the working directory, just before the transfer\n"
+"              command(s), prefix the command with a '+'  (this  is  only  sup-\n"
+"              ported for FTP). You may specify any number of commands.\n"
+"\n"
+"              If  the  server  returns  failure  for  one of the commands, the\n"
+, stdout);
+ fputs(
+"              entire operation will be aborted. You  must  send  syntactically\n"
+"              correct  FTP  commands as RFC 959 defines to FTP servers, or one\n"
+"              of the commands listed below to SFTP servers.\n"
+"\n"
+"              This option can be used multiple times. When speaking to an  FTP\n"
+"              server,  prefix  the  command  with an asterisk (*) to make curl\n"
+"              continue even if the command fails as by default curl will  stop\n"
+"              at first failure.\n"
+"\n"
+, stdout);
+ fputs(
+"              SFTP  is a binary protocol. Unlike for FTP, curl interprets SFTP\n"
+"              quote commands itself before sending them to the  server.   File\n"
+"              names may be quoted shell-style to embed spaces or special char-\n"
+"              acters.  Following is the list of all supported SFTP quote  com-\n"
+"              mands:\n"
+"\n"
+"              chgrp group file\n"
+"                     The  chgrp command sets the group ID of the file named by\n"
+, stdout);
+ fputs(
+"                     the file operand to the group ID specified by  the  group\n"
+"                     operand. The group operand is a decimal integer group ID.\n"
+"\n"
+"              chmod mode file\n"
+"                     The  chmod  command  modifies  the  file mode bits of the\n"
+"                     specified file. The mode operand is an octal integer mode\n"
+"                     number.\n"
+"\n"
+"              chown user file\n"
+"                     The chown command sets the owner of the file named by the\n"
+, stdout);
+ fputs(
+"                     file operand to the user ID specified by the  user  oper-\n"
+"                     and. The user operand is a decimal integer user ID.\n"
+"\n"
+"              ln source_file target_file\n"
+"                     The ln and symlink commands create a symbolic link at the\n"
+"                     target_file location pointing to  the  source_file  loca-\n"
+"                     tion.\n"
+"\n"
+"              mkdir directory_name\n"
+"                     The  mkdir  command  creates  the  directory named by the\n"
+, stdout);
+ fputs(
+"                     directory_name operand.\n"
+"\n"
+"              pwd    The pwd command returns the absolute pathname of the cur-\n"
+"                     rent working directory.\n"
+"\n"
+"              rename source target\n"
+"                     The rename command renames the file or directory named by\n"
+"                     the source operand to the destination path named  by  the\n"
+"                     target operand.\n"
+"\n"
+"              rm file\n"
+, stdout);
+ fputs(
+"                     The rm command removes the file specified by the file op-\n"
+"                     erand.\n"
+"\n"
+"              rmdir directory\n"
+"                     The rmdir command removes the directory  entry  specified\n"
+"                     by the directory operand, provided it is empty.\n"
+"\n"
+"              symlink source_file target_file\n"
+"                     See ln.\n"
+"\n"
+"       --random-file <file>\n"
+"              Specify the path name to file containing what will be considered\n"
+, stdout);
+ fputs(
+"              as random data. The data may be used to seed the  random  engine\n"
+"              for SSL connections.  See also the --egd-file option.\n"
+"\n"
+"       -r, --range <range>\n"
+"              (HTTP  FTP SFTP FILE) Retrieve a byte range (i.e a partial docu-\n"
+"              ment) from a HTTP/1.1, FTP or  SFTP  server  or  a  local  FILE.\n"
+"              Ranges can be specified in a number of ways.\n"
+"\n"
+"              0-499     specifies the first 500 bytes\n"
+"\n"
+, stdout);
+ fputs(
+"              500-999   specifies the second 500 bytes\n"
+"\n"
+"              -500      specifies the last 500 bytes\n"
+"\n"
+"              9500-     specifies the bytes from offset 9500 and forward\n"
+"\n"
+"              0-0,-1    specifies the first and last byte only(*)(HTTP)\n"
+"\n"
+"              100-199,500-599\n"
+"                        specifies two separate 100-byte ranges(*) (HTTP)\n"
+"\n"
+"              (*)  = NOTE that this will cause the server to reply with a mul-\n"
+"              tipart response!\n"
+"\n"
+, stdout);
+ fputs(
+"              Only digit characters (0-9) are valid in the 'start' and  'stop'\n"
+"              fields  of the 'start-stop' range syntax. If a non-digit charac-\n"
+"              ter is given in the range, the server's response will be unspec-\n"
+"              ified, depending on the server's configuration.\n"
+"\n"
+"              You  should also be aware that many HTTP/1.1 servers do not have\n"
+"              this feature enabled, so that when you attempt to get  a  range,\n"
+, stdout);
+ fputs(
+"              you'll instead get the whole document.\n"
+"\n"
+"              FTP  and  SFTP  range  downloads only support the simple 'start-\n"
+"              stop' syntax (optionally with one of the numbers  omitted).  FTP\n"
+"              use depends on the extended FTP command SIZE.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --raw  (HTTP) When used, it disables all internal HTTP decoding of con-\n"
+, stdout);
+ fputs(
+"              tent or transfer encodings and  instead  makes  them  passed  on\n"
+"              unaltered, raw.\n"
+"\n"
+"              Added in 7.16.2.\n"
+"\n"
+"       -e, --referer <URL>\n"
+"              (HTTP) Sends the \"Referrer Page\" information to the HTTP server.\n"
+"              This can also be set with the -H, --header flag of course.  When\n"
+"              used  with  -L,  --location  you  can  append \";auto\" to the -e,\n"
+"              --referer URL to make curl automatically set  the  previous  URL\n"
+, stdout);
+ fputs(
+"              when  it  follows  a Location: header. The \";auto\" string can be\n"
+"              used alone, even if you don't set an initial -e, --referer.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              See also -A, --user-agent and -H, --header.\n"
+"\n"
+"       -J, --remote-header-name\n"
+"              (HTTP) This option tells the -O, --remote-name option to use the\n"
+"              server-specified   Content-Disposition   filename   instead   of\n"
+, stdout);
+ fputs(
+"              extracting a filename from the URL.\n"
+"\n"
+"              If the server specifies a file name and a file  with  that  name\n"
+"              already  exists  in the current working directory it will not be\n"
+"              overwritten and an error will occur. If the server doesn't spec-\n"
+"              ify a file name then this option has no effect.\n"
+"\n"
+"              There's  no  attempt to decode %-sequences (yet) in the provided\n"
+, stdout);
+ fputs(
+"              file name, so this option may provide you with rather unexpected\n"
+"              file names.\n"
+"\n"
+"              WARNING:  Exercise  judicious  use of this option, especially on\n"
+"              Windows. A rogue server could send you the  name  of  a  DLL  or\n"
+"              other  file  that could possibly be loaded automatically by Win-\n"
+"              dows or some third party software.\n"
+"\n"
+"       --remote-name-all\n"
+"              This option changes the default action for all given URLs to  be\n"
+, stdout);
+ fputs(
+"              dealt with as if -O, --remote-name were used for each one. So if\n"
+"              you want to disable that for a specific URL after --remote-name-\n"
+"              all has been used, you must use \"-o -\" or --no-remote-name.\n"
+"\n"
+"              Added in 7.19.0.\n"
+"\n"
+"       -O, --remote-name\n"
+"              Write  output to a local file named like the remote file we get.\n"
+"              (Only the file part of the remote file is used, the path is  cut\n"
+"              off.)\n"
+"\n"
+, stdout);
+ fputs(
+"              The  file will be saved in the current working directory. If you\n"
+"              want the file saved in a  different  directory,  make  sure  you\n"
+"              change  the  current working directory before invoking curl with\n"
+"              this option.\n"
+"\n"
+"              The remote file name to use for saving  is  extracted  from  the\n"
+"              given  URL,  nothing  else,  and if it already exists it will be\n"
+, stdout);
+ fputs(
+"              overwritten. If you want the server to be  able  to  choose  the\n"
+"              file name refer to -J, --remote-header-name which can be used in\n"
+"              addition to this option. If the server chooses a file  name  and\n"
+"              that name already exists it will not be overwritten.\n"
+"\n"
+"              There is no URL decoding done on the file name. If it has %20 or\n"
+"              other URL encoded parts of the name, they will end up  as-is  as\n"
+"              file name.\n"
+"\n"
+, stdout);
+ fputs(
+"              You  may use this option as many times as the number of URLs you\n"
+"              have.\n"
+"\n"
+"       -R, --remote-time\n"
+"              When used, this will make curl attempt to figure out  the  time-\n"
+"              stamp  of  the  remote  file,  and if that is available make the\n"
+"              local file get that same timestamp.\n"
+"\n"
+"       -X, --request <command>\n"
+"              (HTTP) Specifies a custom request method to use when communicat-\n"
+, stdout);
+ fputs(
+"              ing  with the HTTP server.  The specified request method will be\n"
+"              used instead of the method otherwise  used  (which  defaults  to\n"
+"              GET).  Read  the HTTP 1.1 specification for details and explana-\n"
+"              tions. Common additional HTTP requests include PUT  and  DELETE,\n"
+"              but related technologies like WebDAV offers PROPFIND, COPY, MOVE\n"
+"              and more.\n"
+"\n"
+"              Normally you don't need this option. All  sorts  of  GET,  HEAD,\n"
+, stdout);
+ fputs(
+"              POST and PUT requests are rather invoked by using dedicated com-\n"
+"              mand line options.\n"
+"\n"
+"              This option only changes  the  actual  word  used  in  the  HTTP\n"
+"              request,  it does not alter the way curl behaves. So for example\n"
+"              if you want to make a proper HEAD request, using  -X  HEAD  will\n"
+"              not suffice. You need to use the -I, --head option.\n"
+"\n"
+"              The  method  string  you set with -X, --request will be used for\n"
+, stdout);
+ fputs(
+"              all requests, which if you for example use  -L,  --location  may\n"
+"              cause  unintended  side-effects when curl doesn't change request\n"
+"              method according to the HTTP 30x response codes - and similar.\n"
+"\n"
+"              (FTP) Specifies a custom FTP command to use instead of LIST when\n"
+"              doing file lists with FTP.\n"
+"\n"
+"              (POP3) Specifies a custom POP3 command to use instead of LIST or\n"
+"              RETR. (Added in 7.26.0)\n"
+"\n"
+, stdout);
+ fputs(
+"              (IMAP) Specifies a custom IMAP command to use instead  of  LIST.\n"
+"              (Added in 7.30.0)\n"
+"\n"
+"              (SMTP) Specifies a custom SMTP command to use instead of HELP or\n"
+"              VRFY. (Added in 7.34.0)\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --resolve <host:port:address>\n"
+"              Provide a custom address for a  specific  host  and  port  pair.\n"
+, stdout);
+ fputs(
+"              Using  this,  you  can make the curl requests(s) use a specified\n"
+"              address and prevent the otherwise normally resolved  address  to\n"
+"              be  used.  Consider it a sort of /etc/hosts alternative provided\n"
+"              on the command line. The port number should be the  number  used\n"
+"              for  the  specific  protocol the host will be used for. It means\n"
+"              you need several entries if you want to provide address for  the\n"
+, stdout);
+ fputs(
+"              same host but different ports.\n"
+"\n"
+"              The provided address set by this option will be used even if -4,\n"
+"              --ipv4 or -6, --ipv6 is set to make curl use another IP version.\n"
+"              This option can be used many times to add  many  host  names  to\n"
+"              resolve.\n"
+"\n"
+"              Added in 7.21.3.\n"
+"\n"
+"       --retry-connrefused\n"
+"              In  addition to the other conditions, consider ECONNREFUSED as a\n"
+, stdout);
+ fputs(
+"              transient error too for --retry. This option  is  used  together\n"
+"              with --retry.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       --retry-delay <seconds>\n"
+"              Make  curl  sleep  this  amount of time before each retry when a\n"
+"              transfer has failed with  a  transient  error  (it  changes  the\n"
+"              default  backoff time algorithm between retries). This option is\n"
+"              only interesting if --retry is also used. Setting this delay  to\n"
+, stdout);
+ fputs(
+"              zero will make curl use the default backoff time.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.12.3.\n"
+"\n"
+"       --retry-max-time <seconds>\n"
+"              The  retry  timer  is  reset  before the first transfer attempt.\n"
+"              Retries will be done as usual (see --retry) as long as the timer\n"
+"              hasn't reached this given limit. Notice that if the timer hasn't\n"
+, stdout);
+ fputs(
+"              reached the limit, the request will be made and  while  perform-\n"
+"              ing,  it may take longer than this given time period. To limit a\n"
+"              single request's maximum time, use  -m,  --max-time.   Set  this\n"
+"              option to zero to not timeout retries.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.12.3.\n"
+"\n"
+"       --retry <num>\n"
+, stdout);
+ fputs(
+"              If  a  transient  error is returned when curl tries to perform a\n"
+"              transfer, it will retry this number of times before  giving  up.\n"
+"              Setting  the  number to 0 makes curl do no retries (which is the\n"
+"              default). Transient error means either: a timeout,  an  FTP  4xx\n"
+"              response code or an HTTP 5xx response code.\n"
+"\n"
+"              When  curl  is about to retry a transfer, it will first wait one\n"
+, stdout);
+ fputs(
+"              second and then for all forthcoming retries it will  double  the\n"
+"              waiting  time until it reaches 10 minutes which then will be the\n"
+"              delay between the rest of the retries.  By  using  --retry-delay\n"
+"              you   disable  this  exponential  backoff  algorithm.  See  also\n"
+"              --retry-max-time to limit the total time allowed for retries.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+, stdout);
+ fputs(
+"              Added in 7.12.3.\n"
+"\n"
+"       --sasl-ir\n"
+"              Enable initial response in SASL authentication.\n"
+"\n"
+"              Added in 7.31.0.\n"
+"\n"
+"       --service-name <name>\n"
+"              This option allows you to change the service name for SPNEGO.\n"
+"\n"
+"              Examples:   --negotiate   --service-name   sockd    would    use\n"
+"              sockd/server-name.\n"
+"\n"
+"              Added in 7.43.0.\n"
+"       -S, --show-error\n"
+"              When used with -s, --silent, it makes curl show an error message\n"
+, stdout);
+ fputs(
+"              if it fails.\n"
+"       -s, --silent\n"
+"              Silent or quiet mode. Don't show progress meter  or  error  mes-\n"
+"              sages.   Makes  Curl mute. It will still output the data you ask\n"
+"              for, potentially even to the terminal/stdout unless you redirect\n"
+"              it.\n"
+"\n"
+"              Use  -S,  --show-error  in  addition  to  this option to disable\n"
+"              progress meter but still show error messages.\n"
+"\n"
+"              See also -v, --verbose and --stderr.\n"
+"\n"
+, stdout);
+ fputs(
+"       --socks4 <host[:port]>\n"
+"              Use the specified SOCKS4 proxy. If the port number is not speci-\n"
+"              fied, it is assumed at port 1080.\n"
+"\n"
+"              This  option  overrides any previous use of -x, --proxy, as they\n"
+"              are mutually exclusive.\n"
+"\n"
+"              Since 7.21.7, this option is superfluous since you can specify a\n"
+"              socks4 proxy with -x, --proxy using a socks4:// protocol prefix.\n"
+, stdout);
+ fputs(
+"              Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
+"              the same time -x, --proxy is used with an HTTP/HTTPS  proxy.  In\n"
+"              such a case curl first connects to the SOCKS proxy and then con-\n"
+"              nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.15.2.\n"
+"\n"
+"       --socks4a <host[:port]>\n"
+, stdout);
+ fputs(
+"              Use the specified SOCKS4a proxy. If the port number is not spec-\n"
+"              ified, it is assumed at port 1080.\n"
+"\n"
+"              This  option  overrides any previous use of -x, --proxy, as they\n"
+"              are mutually exclusive.\n"
+"\n"
+"              Since 7.21.7, this option is superfluous since you can specify a\n"
+"              socks4a  proxy with -x, --proxy using a socks4a:// protocol pre-\n"
+"              fix.\n"
+"\n"
+, stdout);
+ fputs(
+"              Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
+"              the  same  time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
+"              such a case curl first connects to the SOCKS proxy and then con-\n"
+"              nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.18.0.\n"
+"\n"
+"       --socks5-gssapi-nec\n"
+, stdout);
+ fputs(
+"              As  part of the GSS-API negotiation a protection mode is negoti-\n"
+"              ated. RFC 1961 says in section 4.3/4.4 it should  be  protected,\n"
+"              but  the  NEC  reference  implementation  does  not.  The option\n"
+"              --socks5-gssapi-nec allows the unprotected exchange of the  pro-\n"
+"              tection mode negotiation.\n"
+"\n"
+"              Added in 7.19.4.\n"
+"\n"
+"       --socks5-gssapi-service <name>\n"
+, stdout);
+ fputs(
+"              The default service name for a socks server is rcmd/server-fqdn.\n"
+"              This option allows you to change it.\n"
+"\n"
+"              Examples:  --socks5  proxy-name  --socks5-gssapi-service   sockd\n"
+"              would  use sockd/proxy-name --socks5 proxy-name --socks5-gssapi-\n"
+"              service sockd/real-name  would  use  sockd/real-name  for  cases\n"
+"              where the proxy-name does not match the principal name.\n"
+"\n"
+"              Added in 7.19.4.\n"
+"\n"
+, stdout);
+ fputs(
+"       --socks5-hostname <host[:port]>\n"
+"              Use  the  specified  SOCKS5 proxy (and let the proxy resolve the\n"
+"              host name). If the port number is not specified, it  is  assumed\n"
+"              at port 1080.\n"
+"\n"
+"              This  option  overrides any previous use of -x, --proxy, as they\n"
+"              are mutually exclusive.\n"
+"\n"
+"              Since 7.21.7, this option is superfluous since you can specify a\n"
+, stdout);
+ fputs(
+"              socks5 hostname proxy with -x, --proxy using a socks5h:// proto-\n"
+"              col prefix.\n"
+"\n"
+"              Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
+"              the  same  time -x, --proxy is used with an HTTP/HTTPS proxy. In\n"
+"              such a case curl first connects to the SOCKS proxy and then con-\n"
+"              nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+, stdout);
+ fputs(
+"              Added in 7.18.0.\n"
+"\n"
+"       --socks5 <host[:port]>\n"
+"              Use  the  specified  SOCKS5  proxy  -  but resolve the host name\n"
+"              locally. If the port number is not specified, it is  assumed  at\n"
+"              port 1080.\n"
+"\n"
+"              This  option  overrides any previous use of -x, --proxy, as they\n"
+"              are mutually exclusive.\n"
+"\n"
+"              Since 7.21.7, this option is superfluous since you can specify a\n"
+, stdout);
+ fputs(
+"              socks5 proxy with -x, --proxy using a socks5:// protocol prefix.\n"
+"              Since 7.52.0, --preproxy can be used to specify a SOCKS proxy at\n"
+"              the same time -x, --proxy is used with an HTTP/HTTPS  proxy.  In\n"
+"              such a case curl first connects to the SOCKS proxy and then con-\n"
+"              nects (through SOCKS) to the HTTP or HTTPS proxy.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+, stdout);
+ fputs(
+"              This option (as well as --socks4) does not work with IPV6,  FTPS\n"
+"              or LDAP.\n"
+"\n"
+"              Added in 7.18.0.\n"
+"\n"
+"       -Y, --speed-limit <speed>\n"
+"              If a download is slower than this given speed (in bytes per sec-\n"
+"              ond) for speed-time seconds it gets aborted. speed-time  is  set\n"
+"              with -y, --speed-time and is 30 if not set.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       -y, --speed-time <seconds>\n"
+, stdout);
+ fputs(
+"              If a download is slower than speed-limit bytes per second during\n"
+"              a speed-time period, the download gets aborted. If speed-time is\n"
+"              used,  the  default  speed-limit  will  be 1 unless set with -Y,\n"
+"              --speed-limit.\n"
+"\n"
+"              This option controls transfers and thus  will  not  affect  slow\n"
+"              connects  etc.  If this is a concern for you, try the --connect-\n"
+"              timeout option.\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --ssl-allow-beast\n"
+"              This option tells curl to not work around a security flaw in the\n"
+"              SSL3  and TLS1.0 protocols known as BEAST.  If this option isn't\n"
+"              used, the SSL layer may use workarounds known to cause  interop-\n"
+"              erability problems with some older SSL implementations. WARNING:\n"
+"              this option loosens the SSL security, and by using this flag you\n"
+, stdout);
+ fputs(
+"              ask for exactly that.\n"
+"\n"
+"              Added in 7.25.0.\n"
+"\n"
+"       --ssl-no-revoke\n"
+"              (WinSSL)  This  option tells curl to disable certificate revoca-\n"
+"              tion checks.  WARNING: this option loosens the SSL security, and\n"
+"              by using this flag you ask for exactly that.\n"
+"\n"
+"              Added in 7.44.0.\n"
+"\n"
+"       --ssl-reqd\n"
+"              (FTP IMAP POP3 SMTP) Require SSL/TLS for the connection.  Termi-\n"
+, stdout);
+ fputs(
+"              nates the connection if the server doesn't support SSL/TLS.\n"
+"\n"
+"              This option was formerly known as --ftp-ssl-reqd.\n"
+"\n"
+"              Added in 7.20.0.\n"
+"\n"
+"       --ssl  (FTP IMAP POP3 SMTP) Try to  use  SSL/TLS  for  the  connection.\n"
+"              Reverts to a non-secure connection if the server doesn't support\n"
+"              SSL/TLS.  See also --ftp-ssl-control and --ssl-reqd for  differ-\n"
+"              ent levels of encryption required.\n"
+"\n"
+, stdout);
+ fputs(
+"              This  option  was formerly known as --ftp-ssl (Added in 7.11.0).\n"
+"              That option name can still be used but  will  be  removed  in  a\n"
+"              future version.\n"
+"\n"
+"              Added in 7.20.0.\n"
+"\n"
+"       -2, --sslv2\n"
+"              (SSL)  Forces  curl to use SSL version 2 when negotiating with a\n"
+"              remote SSL server. Sometimes curl is built  without  SSLv2  sup-\n"
+"              port. SSLv2 is widely considered insecure (see RFC 6176).\n"
+"\n"
+, stdout);
+ fputs(
+"              See  also  --http1.1  and --http2. -2, --sslv2 requires that the\n"
+"              underlying libcurl was built to support TLS. This  option  over-\n"
+"              rides -3, --sslv3 and -1, --tlsv1 and --tlsv1.1 and --tlsv1.2.\n"
+"\n"
+"       -3, --sslv3\n"
+"              (SSL)  Forces  curl to use SSL version 3 when negotiating with a\n"
+"              remote SSL server. Sometimes curl is built  without  SSLv3  sup-\n"
+"              port. SSLv3 is widely considered insecure (see RFC 7568).\n"
+"\n"
+, stdout);
+ fputs(
+"              See  also  --http1.1  and --http2. -3, --sslv3 requires that the\n"
+"              underlying libcurl was built to support TLS. This  option  over-\n"
+"              rides -2, --sslv2 and -1, --tlsv1 and --tlsv1.1 and --tlsv1.2.\n"
+"\n"
+"       --stderr\n"
+"              Redirect  all writes to stderr to the specified file instead. If\n"
+"              the file name is a plain '-', it is instead written to stdout.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also -v, --verbose and -s, --silent.\n"
+"\n"
+"       --suppress-connect-headers\n"
+"              When -p, --proxytunnel is used and a  CONNECT  request  is  made\n"
+"              don't  output  proxy  CONNECT  response  headers. This option is\n"
+"              meant to be used with -D, --dump-header or -i,  --include  which\n"
+"              are  used  to  show  protocol  headers  in the output. It has no\n"
+"              effect on debug options such as -v, --verbose or --trace, or any\n"
+, stdout);
+ fputs(
+"              statistics.\n"
+"\n"
+"              See also -D, --dump-header and -i, --include and -p, --proxytun-\n"
+"              nel.\n"
+"\n"
+"       --tcp-fastopen\n"
+"              Enable use of TCP Fast Open (RFC7413).\n"
+"\n"
+"              Added in 7.49.0.\n"
+"\n"
+"       --tcp-nodelay\n"
+"              Turn on the TCP_NODELAY option. See the curl_easy_setopt(3)  man\n"
+"              page for details about this option.\n"
+"\n"
+"              Since  7.50.2,  curl sets this option by default and you need to\n"
+, stdout);
+ fputs(
+"              explicitly switch it off if you don't want it on.\n"
+"\n"
+"              Added in 7.11.2.\n"
+"\n"
+"       -t, --telnet-option <opt=val>\n"
+"              Pass options to the telnet protocol. Supported options are:\n"
+"\n"
+"              TTYPE=<term> Sets the terminal type.\n"
+"\n"
+"              XDISPLOC=<X display> Sets the X display location.\n"
+"\n"
+"              NEW_ENV=<var,val> Sets an environment variable.\n"
+"\n"
+"       --tftp-blksize <value>\n"
+"              (TFTP) Set TFTP BLKSIZE option (must be >512). This is the block\n"
+, stdout);
+ fputs(
+"              size that curl will try to use when transferring data to or from\n"
+"              a TFTP server. By default 512 bytes will be used.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              Added in 7.20.0.\n"
+"\n"
+"       --tftp-no-options\n"
+"              (TFTP) Tells curl not to send TFTP options requests.\n"
+"\n"
+"              This option improves interop with some legacy  servers  that  do\n"
+, stdout);
+ fputs(
+"              not  acknowledge  or  properly implement TFTP options. When this\n"
+"              option is used --tftp-blksize is ignored.\n"
+"\n"
+"              Added in 7.48.0.\n"
+"\n"
+"       -z, --time-cond <time>\n"
+"              (HTTP FTP) Request a file that has been modified later than  the\n"
+"              given  time  and date, or one that has been modified before that\n"
+"              time. The <date expression> can be all sorts of date strings  or\n"
+, stdout);
+ fputs(
+"              if it doesn't match any internal ones, it is taken as a filename\n"
+"              and tries to get  the  modification  date  (mtime)  from  <file>\n"
+"              instead.  See  the curl_getdate(3) man pages for date expression\n"
+"              details.\n"
+"\n"
+"              Start the date expression with a dash (-) to make it request for\n"
+"              a  document that is older than the given date/time, default is a\n"
+"              document that is newer than the specified date/time.\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --tls-max <VERSION>\n"
+"              (SSL) VERSION defines maximum supported TLS version.  A  minimum\n"
+"              is defined by arguments tlsv1.0 or tlsv1.1 or tlsv1.2.\n"
+"\n"
+"              default\n"
+"                     Use up to recommended TLS version.\n"
+"\n"
+"              1.0    Use up to TLSv1.0.\n"
+"              1.1    Use up to TLSv1.1.\n"
+"              1.2    Use up to TLSv1.2.\n"
+"              1.3    Use up to TLSv1.3.\n"
+"\n"
+, stdout);
+ fputs(
+"       See also --tlsv1.0 and --tlsv1.1 and --tlsv1.2. --tls-max requires that\n"
+"       the underlying libcurl was built to support TLS. Added in 7.54.0.\n"
+"\n"
+"       --tlsauthtype <type>\n"
+"              Set TLS  authentication  type.  Currently,  the  only  supported\n"
+"              option  is  \"SRP\",  for  TLS-SRP  (RFC  5054).  If --tlsuser and\n"
+"              --tlspassword are specified but --tlsauthtype is not, then  this\n"
+"              option defaults to \"SRP\".\n"
+"\n"
+"              Added in 7.21.4.\n"
+"\n"
+, stdout);
+ fputs(
+"       --tlspassword\n"
+"              Set  password  for use with the TLS authentication method speci-\n"
+"              fied with --tlsauthtype. Requires that --tlsuser also be set.\n"
+"\n"
+"              Added in 7.21.4.\n"
+"       --tlsuser <name>\n"
+"              Set username for use with the TLS authentication  method  speci-\n"
+"              fied  with  --tlsauthtype.  Requires  that --tlspassword also is\n"
+"              set.\n"
+"\n"
+"              Added in 7.21.4.\n"
+"\n"
+"       --tlsv1.0\n"
+, stdout);
+ fputs(
+"              (TLS) Forces curl to use TLS version 1.0 when  connecting  to  a\n"
+"              remote TLS server.\n"
+"\n"
+"              Added in 7.34.0.\n"
+"\n"
+"       --tlsv1.1\n"
+"              (TLS)  Forces  curl  to use TLS version 1.1 when connecting to a\n"
+"              remote TLS server.\n"
+"\n"
+"              Added in 7.34.0.\n"
+"\n"
+"       --tlsv1.2\n"
+"              (TLS) Forces curl to use TLS version 1.2 when  connecting  to  a\n"
+"              remote TLS server.\n"
+"\n"
+"              Added in 7.34.0.\n"
+"\n"
+"       --tlsv1.3\n"
+, stdout);
+ fputs(
+"              (TLS)  Forces  curl  to use TLS version 1.3 when connecting to a\n"
+"              remote TLS server.\n"
+"\n"
+"              Note that TLS 1.3 is only supported by a subset of TLS backends.\n"
+"              At the time of writing this, those are BoringSSL and NSS only.\n"
+"\n"
+"              Added in 7.52.0.\n"
+"\n"
+"       -1, --tlsv1\n"
+"              (SSL)  Tells curl to use TLS version 1.x when negotiating with a\n"
+"              remote TLS server. That means TLS version 1.0, 1.1 or 1.2.\n"
+"\n"
+, stdout);
+ fputs(
+"              See also --http1.1 and --http2. -1, --tlsv1  requires  that  the\n"
+"              underlying  libcurl  was built to support TLS. This option over-\n"
+"              rides --tlsv1.1 and --tlsv1.2 and --tlsv1.3.\n"
+"\n"
+"       --tr-encoding\n"
+"              (HTTP) Request a compressed Transfer-Encoding response using one\n"
+"              of  the  algorithms curl supports, and uncompress the data while\n"
+"              receiving it.\n"
+"\n"
+"              Added in 7.21.6.\n"
+"\n"
+"       --trace-ascii <file>\n"
+, stdout);
+ fputs(
+"              Enables a full trace dump of all  incoming  and  outgoing  data,\n"
+"              including descriptive information, to the given output file. Use\n"
+"              \"-\" as filename to have the output sent to stdout.\n"
+"\n"
+"              This is very similar to --trace, but leaves out the hex part and\n"
+"              only  shows  the ASCII part of the dump. It makes smaller output\n"
+"              that might be easier to read for untrained humans.\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              This option overrides --trace and -v, --verbose.\n"
+"\n"
+"       --trace-time\n"
+"              Prepends a time stamp to each trace or verbose  line  that  curl\n"
+"              displays.\n"
+"\n"
+"              Added in 7.14.0.\n"
+"\n"
+"       --trace <file>\n"
+"              Enables  a  full  trace  dump of all incoming and outgoing data,\n"
+"              including descriptive information, to the given output file. Use\n"
+, stdout);
+ fputs(
+"              \"-\"  as  filename  to have the output sent to stdout. Use \"%\" as\n"
+"              filename to have the output sent to stderr.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"              This option overrides -v, --verbose and --trace-ascii.\n"
+"\n"
+"       --unix-socket <path>\n"
+"              (HTTP) Connect through this Unix domain socket, instead of using\n"
+"              the network.\n"
+"\n"
+"              Added in 7.40.0.\n"
+"\n"
+"       -T, --upload-file <file>\n"
+, stdout);
+ fputs(
+"              This  transfers  the  specified local file to the remote URL. If\n"
+"              there is no file part in the specified URL, curl will append the\n"
+"              local file name. NOTE that you must use a trailing / on the last\n"
+"              directory to really prove to Curl that there is no file name  or\n"
+"              curl will think that your last directory name is the remote file\n"
+"              name to use. That will most likely cause the upload operation to\n"
+, stdout);
+ fputs(
+"              fail. If this is used on an HTTP(S) server, the PUT command will\n"
+"              be used.\n"
+"\n"
+"              Use the file name \"-\" (a single dash) to use stdin instead of  a\n"
+"              given  file.   Alternately,  the file name \".\" (a single period)\n"
+"              may be specified instead of \"-\" to  use  stdin  in  non-blocking\n"
+"              mode  to  allow  reading  server  output  while  stdin  is being\n"
+"              uploaded.\n"
+"\n"
+, stdout);
+ fputs(
+"              You can specify one -T, --upload-file for each URL on  the  com-\n"
+"              mand  line.  Each -T, --upload-file + URL pair specifies what to\n"
+"              upload and to where. curl also supports \"globbing\"  of  the  -T,\n"
+"              --upload-file  argument,  meaning  that  you can upload multiple\n"
+"              files to a single URL by using the same URL globbing style  sup-\n"
+"              ported in the URL, like this:\n"
+"\n"
+, stdout);
+ fputs(
+"               curl --upload-file \"{file1,file2}\" http://www.example.com\n"
+"\n"
+"              or even\n"
+"\n"
+"               curl -T \"img[1-1000].png\" ftp://ftp.example.com/upload/\n"
+"\n"
+"              When  uploading  to an SMTP server: the uploaded data is assumed\n"
+"              to be RFC 5322 formatted. It has to feature the necessary set of\n"
+"              headers  and  mail  body formatted correctly by the user as curl\n"
+"              will not transcode nor encode it further in any way.\n"
+"\n"
+"       --url <url>\n"
+, stdout);
+ fputs(
+"              Specify a URL to fetch. This option is  mostly  handy  when  you\n"
+"              want to specify URL(s) in a config file.\n"
+"\n"
+"              If  the given URL is missing a scheme name (such as \"http://\" or\n"
+"              \"ftp://\" etc) then curl will make a guess based on the host.  If\n"
+"              the  outermost  sub-domain  name  matches DICT, FTP, IMAP, LDAP,\n"
+"              POP3 or SMTP then that protocol will  be  used,  otherwise  HTTP\n"
+, stdout);
+ fputs(
+"              will be used. Since 7.45.0 guessing can be disabled by setting a\n"
+"              default protocol, see --proto-default for details.\n"
+"\n"
+"              This option may be used any number of times.  To  control  where\n"
+"              this  URL  is written, use the -o, --output or the -O, --remote-\n"
+"              name options.\n"
+"\n"
+"       -B, --use-ascii\n"
+"              (FTP LDAP) Enable ASCII transfer. For  FTP,  this  can  also  be\n"
+, stdout);
+ fputs(
+"              enforced  by  using  a URL that ends with \";type=A\". This option\n"
+"              causes data sent to stdout to be in text mode for win32 systems.\n"
+"\n"
+"       -A, --user-agent <name>\n"
+"              (HTTP) Specify the User-Agent string to send to the HTTP server.\n"
+"              To  encode blanks in the string, surround the string with single\n"
+"              quote marks. This can also be set with the -H,  --header  option\n"
+"              of course.\n"
+"\n"
+, stdout);
+ fputs(
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       -u, --user <user:password>\n"
+"              Specify the user name and password to use for server authentica-\n"
+"              tion. Overrides -n, --netrc and --netrc-optional.\n"
+"\n"
+"              If you simply specify the user name,  curl  will  prompt  for  a\n"
+"              password.\n"
+"\n"
+"              The  user  name  and  passwords are split up on the first colon,\n"
+, stdout);
+ fputs(
+"              which makes it impossible to use a colon in the user  name  with\n"
+"              this option. The password can, still.\n"
+"\n"
+"              When  using  Kerberos  V5 with a Windows based server you should\n"
+"              include the Windows domain name in the user name, in  order  for\n"
+"              the  server  to  successfully  obtain  a Kerberos Ticket. If you\n"
+"              don't then the initial authentication handshake may fail.\n"
+"\n"
+, stdout);
+ fputs(
+"              When using NTLM, the user name can be specified  simply  as  the\n"
+"              user  name,  without the domain, if there is a single domain and\n"
+"              forest in your setup for example.\n"
+"\n"
+"              To specify the domain name use either Down-Level Logon  Name  or\n"
+"              UPN (User Principal Name) formats. For example, EXAMPLE\\user and\n"
+"              user@example.com respectively.\n"
+"\n"
+"              If you use a Windows SSPI-enabled curl binary and  perform  Ker-\n"
+, stdout);
+ fputs(
+"              beros  V5, Negotiate, NTLM or Digest authentication then you can\n"
+"              tell curl to select the user name and password from  your  envi-\n"
+"              ronment by specifying a single colon with this option: \"-u :\".\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       -v, --verbose\n"
+"              Makes  curl  verbose  during the operation. Useful for debugging\n"
+"              and seeing what's going on \"under the  hood\".  A  line  starting\n"
+, stdout);
+ fputs(
+"              with  '>'  means  \"header  data\" sent by curl, '<' means \"header\n"
+"              data\" received by curl that is hidden in  normal  cases,  and  a\n"
+"              line starting with '*' means additional info provided by curl.\n"
+"\n"
+"              If you only want HTTP headers in the output, -i, --include might\n"
+"              be the option you're looking for.\n"
+"\n"
+"              If you think this option still doesn't give you enough  details,\n"
+, stdout);
+ fputs(
+"              consider using --trace or --trace-ascii instead.\n"
+"\n"
+"              Use -s, --silent to make curl really quiet.\n"
+"\n"
+"              See  also  -i,  --include.  This  option  overrides  --trace and\n"
+"              --trace-ascii.\n"
+"\n"
+"       -V, --version\n"
+"              Displays information about curl and the libcurl version it uses.\n"
+"              The first line includes the full version of  curl,  libcurl  and\n"
+"              other 3rd party libraries linked with the executable.\n"
+"\n"
+, stdout);
+ fputs(
+"              The  second  line (starts with \"Protocols:\") shows all protocols\n"
+"              that libcurl reports to support.\n"
+"\n"
+"              The third line (starts with \"Features:\") shows specific features\n"
+"              libcurl reports to offer. Available features include:\n"
+"\n"
+"              IPv6   You can use IPv6 with this.\n"
+"\n"
+"              krb4   Krb4 for FTP is supported.\n"
+"\n"
+"              SSL    SSL  versions of various protocols are supported, such as\n"
+, stdout);
+ fputs(
+"                     HTTPS, FTPS, POP3S and so on.\n"
+"\n"
+"              libz   Automatic decompression of compressed files over HTTP  is\n"
+"                     supported.\n"
+"\n"
+"              NTLM   NTLM authentication is supported.\n"
+"\n"
+"              Debug  This  curl  uses a libcurl built with Debug. This enables\n"
+"                     more error-tracking and memory debugging etc.  For  curl-\n"
+"                     developers only!\n"
+"\n"
+"              AsynchDNS\n"
+, stdout);
+ fputs(
+"                     This  curl  uses asynchronous name resolves. Asynchronous\n"
+"                     name resolves can be done using either the c-ares or  the\n"
+"                     threaded resolver backends.\n"
+"\n"
+"              SPNEGO SPNEGO authentication is supported.\n"
+"\n"
+"              Largefile\n"
+"                     This curl supports transfers of large files, files larger\n"
+"                     than 2GB.\n"
+"\n"
+"              IDN    This curl supports IDN - international domain names.\n"
+"\n"
+"              GSS-API\n"
+, stdout);
+ fputs(
+"                     GSS-API is supported.\n"
+"\n"
+"              SSPI   SSPI is supported.\n"
+"\n"
+"              TLS-SRP\n"
+"                     SRP (Secure Remote Password) authentication is  supported\n"
+"                     for TLS.\n"
+"\n"
+"              HTTP2  HTTP/2 support has been built-in.\n"
+"\n"
+"              UnixSockets\n"
+"                     Unix sockets support is provided.\n"
+"\n"
+"              HTTPS-proxy\n"
+"                     This curl is built to support HTTPS proxy.\n"
+"\n"
+"              Metalink\n"
+, stdout);
+ fputs(
+"                     This  curl  supports  Metalink (both version 3 and 4 (RFC\n"
+"                     5854)), which describes mirrors and  hashes.   curl  will\n"
+"                     use mirrors for failover if there are errors (such as the\n"
+"                     file or server not being available).\n"
+"\n"
+"              PSL    PSL is short for Public Suffix List and means  that  this\n"
+"                     curl  has  been  built  with knowledge about \"public suf-\n"
+"                     fixes\".\n"
+"\n"
+, stdout);
+ fputs(
+"       -w, --write-out <format>\n"
+"              Make curl display information on stdout after a completed trans-\n"
+"              fer.  The  format  is a string that may contain plain text mixed\n"
+"              with any number of variables. The format can be specified  as  a\n"
+"              literal  \"string\",  or  you can have curl read the format from a\n"
+"              file with \"@filename\" and to tell curl to read the  format  from\n"
+"              stdin you write \"@-\".\n"
+"\n"
+, stdout);
+ fputs(
+"              The  variables  present in the output format will be substituted\n"
+"              by the value or text that curl thinks fit, as  described  below.\n"
+"              All  variables are specified as %{variable_name} and to output a\n"
+"              normal % you just write them as %%. You can output a newline  by\n"
+"              using \\n, a carriage return with \\r and a tab space with \\t.\n"
+"\n"
+"              NOTE: The %-symbol is a special symbol in the win32-environment,\n"
+, stdout);
+ fputs(
+"              where all occurrences of %  must  be  doubled  when  using  this\n"
+"              option.\n"
+"\n"
+"              The variables available are:\n"
+"\n"
+"              content_type   The  Content-Type  of  the requested document, if\n"
+"                             there was any.\n"
+"\n"
+"              filename_effective\n"
+"                             The ultimate filename that curl  writes  out  to.\n"
+"                             This  is only meaningful if curl is told to write\n"
+, stdout);
+ fputs(
+"                             to a file  with  the  -O,  --remote-name  or  -o,\n"
+"                             --output  option. It's most useful in combination\n"
+"                             with the -J, --remote-header-name option.  (Added\n"
+"                             in 7.26.0)\n"
+"\n"
+"              ftp_entry_path The initial path curl ended up in when logging on\n"
+"                             to the remote FTP server. (Added in 7.15.4)\n"
+"\n"
+, stdout);
+ fputs(
+"              http_code      The numerical response code that was found in the\n"
+"                             last  retrieved  HTTP(S)  or  FTP(s) transfer. In\n"
+"                             7.18.2 the alias response_code was added to  show\n"
+"                             the same info.\n"
+"\n"
+"              http_connect   The  numerical  code  that  was found in the last\n"
+"                             response  (from  a  proxy)  to  a  curl   CONNECT\n"
+"                             request. (Added in 7.12.4)\n"
+"\n"
+, stdout);
+ fputs(
+"              http_version   The  http  version  that  was  effectively  used.\n"
+"                             (Added in 7.50.0)\n"
+"\n"
+"              local_ip       The IP address of  the  local  end  of  the  most\n"
+"                             recently  done connection - can be either IPv4 or\n"
+"                             IPv6 (Added in 7.29.0)\n"
+"\n"
+"              local_port     The local port number of the most  recently  done\n"
+"                             connection (Added in 7.29.0)\n"
+"\n"
+, stdout);
+ fputs(
+"              num_connects   Number  of new connects made in the recent trans-\n"
+"                             fer. (Added in 7.12.3)\n"
+"\n"
+"              num_redirects  Number of redirects that  were  followed  in  the\n"
+"                             request. (Added in 7.12.3)\n"
+"\n"
+"              proxy_ssl_verify_result\n"
+"                             The result of the HTTPS proxy's SSL peer certifi-\n"
+"                             cate verification that was requested. 0 means the\n"
+, stdout);
+ fputs(
+"                             verification was successful. (Added in 7.52.0)\n"
+"\n"
+"              redirect_url   When an HTTP request was made without -L, --loca-\n"
+"                             tion to follow redirects (or when --max-redir  is\n"
+"                             met),  this  variable  will show the actual URL a\n"
+"                             redirect would have gone to. (Added in 7.18.2)\n"
+"\n"
+"              remote_ip      The remote IP address of the most  recently  done\n"
+, stdout);
+ fputs(
+"                             connection - can be either IPv4 or IPv6 (Added in\n"
+"                             7.29.0)\n"
+"\n"
+"              remote_port    The remote port number of the most recently  done\n"
+"                             connection (Added in 7.29.0)\n"
+"\n"
+"              scheme         The  URL  scheme (sometimes called protocol) that\n"
+"                             was effectively used (Added in 7.52.0)\n"
+"\n"
+"              size_download  The total amount of bytes that were downloaded.\n"
+"\n"
+, stdout);
+ fputs(
+"              size_header    The total amount of bytes of the downloaded head-\n"
+"                             ers.\n"
+"\n"
+"              size_request   The  total  amount of bytes that were sent in the\n"
+"                             HTTP request.\n"
+"\n"
+"              size_upload    The total amount of bytes that were uploaded.\n"
+"\n"
+"              speed_download The average download speed that curl measured for\n"
+"                             the complete download. Bytes per second.\n"
+"\n"
+, stdout);
+ fputs(
+"              speed_upload   The  average  upload speed that curl measured for\n"
+"                             the complete upload. Bytes per second.\n"
+"\n"
+"              ssl_verify_result\n"
+"                             The result of the SSL peer certificate  verifica-\n"
+"                             tion that was requested. 0 means the verification\n"
+"                             was successful. (Added in 7.19.0)\n"
+"\n"
+"              time_appconnect\n"
+, stdout);
+ fputs(
+"                             The time, in seconds,  it  took  from  the  start\n"
+"                             until  the  SSL/SSH/etc  connect/handshake to the\n"
+"                             remote host was completed. (Added in 7.19.0)\n"
+"\n"
+"              time_connect   The time, in seconds,  it  took  from  the  start\n"
+"                             until  the  TCP  connect  to  the remote host (or\n"
+"                             proxy) was completed.\n"
+"\n"
+"              time_namelookup\n"
+, stdout);
+ fputs(
+"                             The time, in seconds,  it  took  from  the  start\n"
+"                             until the name resolving was completed.\n"
+"\n"
+"              time_pretransfer\n"
+"                             The  time,  in  seconds,  it  took from the start\n"
+"                             until the file transfer was just about to  begin.\n"
+"                             This includes all pre-transfer commands and nego-\n"
+"                             tiations that are specific to the particular pro-\n"
+, stdout);
+ fputs(
+"                             tocol(s) involved.\n"
+"\n"
+"              time_redirect  The time, in seconds, it took for all redirection\n"
+"                             steps including name lookup, connect, pretransfer\n"
+"                             and  transfer  before  the  final transaction was\n"
+"                             started. time_redirect shows the complete  execu-\n"
+"                             tion  time  for  multiple redirections. (Added in\n"
+"                             7.12.3)\n"
+"\n"
+, stdout);
+ fputs(
+"              time_starttransfer\n"
+"                             The time, in seconds,  it  took  from  the  start\n"
+"                             until  the first byte was just about to be trans-\n"
+"                             ferred. This includes time_pretransfer  and  also\n"
+"                             the  time  the  server  needed  to  calculate the\n"
+"                             result.\n"
+"\n"
+"              time_total     The total time, in seconds, that the full  opera-\n"
+, stdout);
+ fputs(
+"                             tion lasted.\n"
+"\n"
+"              url_effective  The URL that was fetched last. This is most mean-\n"
+"                             ingful if you've told curl  to  follow  location:\n"
+"                             headers.\n"
+"\n"
+"              If this option is used several times, the last one will be used.\n"
+"\n"
+"       --xattr\n"
+"              When  saving  output  to a file, this option tells curl to store\n"
+"              certain file metadata in extended  file  attributes.  Currently,\n"
+, stdout);
+ fputs(
+"              the URL is stored in the xdg.origin.url attribute and, for HTTP,\n"
+"              the content type is stored in the mime_type  attribute.  If  the\n"
+"              file  system  does not support extended attributes, a warning is\n"
+"              issued.\n"
+"\n"
+"FILES\n"
+"       ~/.curlrc\n"
+"              Default config file, see -K, --config for details.\n"
+"\n"
+"ENVIRONMENT\n"
+"       The environment variables can be specified in lower case or upper case.\n"
+, stdout);
+ fputs(
+"       The lower case version has precedence. http_proxy is an exception as it\n"
+"       is only available in lower case.\n"
+"\n"
+"       Using an environment variable to set the proxy has the same  effect  as\n"
+"       using the -x, --proxy option.\n"
+"\n"
+"       http_proxy [protocol://]<host>[:port]\n"
+"              Sets the proxy server to use for HTTP.\n"
+"       HTTPS_PROXY [protocol://]<host>[:port]\n"
+"              Sets the proxy server to use for HTTPS.\n"
+"\n"
+"       [url-protocol]_PROXY [protocol://]<host>[:port]\n"
+, stdout);
+ fputs(
+"              Sets  the proxy server to use for [url-protocol], where the pro-\n"
+"              tocol is a protocol that curl supports and  as  specified  in  a\n"
+"              URL. FTP, FTPS, POP3, IMAP, SMTP, LDAP etc.\n"
+"\n"
+"       ALL_PROXY [protocol://]<host>[:port]\n"
+"              Sets  the  proxy  server to use if no protocol-specific proxy is\n"
+"              set.\n"
+"\n"
+"       NO_PROXY <comma-separated list of hosts>\n"
+"              list of host names that shouldn't go through any proxy.  If  set\n"
+, stdout);
+ fputs(
+"              to a asterisk '*' only, it matches all hosts.\n"
+"\n"
+"              Since  7.53.0,  this environment variable disable the proxy even\n"
+"              if specify -x, --proxy  option.  That  is  NO_PROXY=direct.exam-\n"
+"              ple.com  curl  -x  http://proxy.example.com  http://direct.exam-\n"
+"              ple.com    accesses    the    target    URL    directly,     and\n"
+"              NO_PROXY=direct.example.com   curl  -x  http://proxy.example.com\n"
+, stdout);
+ fputs(
+"              http://somewhere.example.com accesses  the  target  URL  through\n"
+"              proxy.\n"
+"\n"
+"PROXY PROTOCOL PREFIXES\n"
+"       Since  curl  version  7.21.7,  the proxy string may be specified with a\n"
+"       protocol:// prefix to specify alternative proxy protocols.\n"
+"\n"
+"       If no protocol is specified in  the  proxy  string  or  if  the  string\n"
+"       doesn't  match  a  supported  one, the proxy will be treated as an HTTP\n"
+"       proxy.\n"
+"\n"
+, stdout);
+ fputs(
+"       The supported proxy protocol prefixes are as follows:\n"
+"\n"
+"       socks4://\n"
+"              Makes it the equivalent of --socks4\n"
+"\n"
+"       socks4a://\n"
+"              Makes it the equivalent of --socks4a\n"
+"\n"
+"       socks5://\n"
+"              Makes it the equivalent of --socks5\n"
+"\n"
+"       socks5h://\n"
+"              Makes it the equivalent of --socks5-hostname\n"
+"\n"
+"EXIT CODES\n"
+"       There are a bunch of different  error  codes  and  their  corresponding\n"
+, stdout);
+ fputs(
+"       error  messages  that  may appear during bad conditions. At the time of\n"
+"       this writing, the exit codes are:\n"
+"\n"
+"       1      Unsupported protocol. This build of curl has no support for this\n"
+"              protocol.\n"
+"\n"
+"       2      Failed to initialize.\n"
+"\n"
+"       3      URL malformed. The syntax was not correct.\n"
+"\n"
+"       4      A  feature  or  option  that  was  needed to perform the desired\n"
+"              request was not enabled or was  explicitly  disabled  at  build-\n"
+, stdout);
+ fputs(
+"              time.  To  make  curl able to do this, you probably need another\n"
+"              build of libcurl!\n"
+"\n"
+"       5      Couldn't resolve proxy.  The  given  proxy  host  could  not  be\n"
+"              resolved.\n"
+"\n"
+"       6      Couldn't resolve host. The given remote host was not resolved.\n"
+"\n"
+"       7      Failed to connect to host.\n"
+"\n"
+"       8      Weird server reply. The server sent data curl couldn't parse.\n"
+"\n"
+"       9      FTP  access  denied. The server denied login or denied access to\n"
+, stdout);
+ fputs(
+"              the particular resource or directory you wanted to  reach.  Most\n"
+"              often  you  tried to change to a directory that doesn't exist on\n"
+"              the server.\n"
+"\n"
+"       10     FTP accept failed. While waiting for the server to connect  back\n"
+"              when  an active FTP session is used, an error code was sent over\n"
+"              the control connection or similar.\n"
+"\n"
+"       11     FTP weird PASS reply. Curl couldn't parse the reply sent to  the\n"
+"              PASS request.\n"
+, stdout);
+ fputs(
+"\n"
+"       12     During  an  active  FTP  session while waiting for the server to\n"
+"              connect back to curl, the timeout expired.\n"
+"\n"
+"       13     FTP weird PASV reply, Curl couldn't parse the reply sent to  the\n"
+"              PASV request.\n"
+"\n"
+"       14     FTP  weird  227  format.  Curl  couldn't  parse the 227-line the\n"
+"              server sent.\n"
+"\n"
+"       15     FTP can't get host. Couldn't resolve the host IP we got  in  the\n"
+"              227-line.\n"
+"\n"
+, stdout);
+ fputs(
+"       16     HTTP/2 error. A problem was detected in the HTTP2 framing layer.\n"
+"              This is somewhat generic and can be one out of several problems,\n"
+"              see the error message for details.\n"
+"\n"
+"       17     FTP  couldn't  set  binary.  Couldn't  change transfer method to\n"
+"              binary.\n"
+"\n"
+"       18     Partial file. Only a part of the file was transferred.\n"
+"\n"
+"       19     FTP couldn't download/access the given file, the RETR (or  simi-\n"
+"              lar) command failed.\n"
+"\n"
+, stdout);
+ fputs(
+"       21     FTP quote error. A quote command returned error from the server.\n"
+"       22     HTTP  page  not  retrieved.  The  requested url was not found or\n"
+"              returned another error with the HTTP error  code  being  400  or\n"
+"              above. This return code only appears if -f, --fail is used.\n"
+"\n"
+"       23     Write  error.  Curl couldn't write data to a local filesystem or\n"
+"              similar.\n"
+"\n"
+"       25     FTP couldn't STOR file. The server denied  the  STOR  operation,\n"
+, stdout);
+ fputs(
+"              used for FTP uploading.\n"
+"\n"
+"       26     Read error. Various reading problems.\n"
+"\n"
+"       27     Out of memory. A memory allocation request failed.\n"
+"\n"
+"       28     Operation  timeout.  The  specified  time-out period was reached\n"
+"              according to the conditions.\n"
+"\n"
+"       30     FTP PORT failed. The PORT command failed. Not  all  FTP  servers\n"
+"              support  the  PORT  command,  try  doing  a  transfer using PASV\n"
+"              instead!\n"
+"\n"
+, stdout);
+ fputs(
+"       31     FTP couldn't use REST. The REST command failed. This command  is\n"
+"              used for resumed FTP transfers.\n"
+"\n"
+"       33     HTTP range error. The range \"command\" didn't work.\n"
+"\n"
+"       34     HTTP post error. Internal post-request generation error.\n"
+"\n"
+"       35     SSL connect error. The SSL handshaking failed.\n"
+"\n"
+"       36     Bad  download resume. Couldn't continue an earlier aborted down-\n"
+"              load.\n"
+"\n"
+, stdout);
+ fputs(
+"       37     FILE couldn't read file. Failed to open the file. Permissions?\n"
+"\n"
+"       38     LDAP cannot bind. LDAP bind operation failed.\n"
+"\n"
+"       39     LDAP search failed.\n"
+"\n"
+"       41     Function not found. A required LDAP function was not found.\n"
+"\n"
+"       42     Aborted by callback. An application told curl to abort the oper-\n"
+"              ation.\n"
+"\n"
+"       43     Internal error. A function was called with a bad parameter.\n"
+"\n"
+, stdout);
+ fputs(
+"       45     Interface  error.  A  specified  outgoing interface could not be\n"
+"              used.\n"
+"\n"
+"       47     Too many redirects. When following redirects, curl hit the maxi-\n"
+"              mum amount.\n"
+"\n"
+"       48     Unknown  option  specified  to  libcurl. This indicates that you\n"
+"              passed a weird option to curl that was passed on to libcurl  and\n"
+"              rejected. Read up in the manual!\n"
+"\n"
+"       49     Malformed telnet option.\n"
+"\n"
+, stdout);
+ fputs(
+"       51     The peer's SSL certificate or SSH MD5 fingerprint was not OK.\n"
+"\n"
+"       52     The  server  didn't  reply anything, which here is considered an\n"
+"              error.\n"
+"\n"
+"       53     SSL crypto engine not found.\n"
+"\n"
+"       54     Cannot set SSL crypto engine as default.\n"
+"\n"
+"       55     Failed sending network data.\n"
+"\n"
+"       56     Failure in receiving network data.\n"
+"\n"
+"       58     Problem with the local certificate.\n"
+"\n"
+"       59     Couldn't use specified SSL cipher.\n"
+"\n"
+, stdout);
+ fputs(
+"       60     Peer certificate cannot be authenticated with known CA  certifi-\n"
+"              cates.\n"
+"\n"
+"       61     Unrecognized transfer encoding.\n"
+"\n"
+"       62     Invalid LDAP URL.\n"
+"\n"
+"       63     Maximum file size exceeded.\n"
+"\n"
+"       64     Requested FTP SSL level failed.\n"
+"\n"
+"       65     Sending the data requires a rewind that failed.\n"
+"\n"
+"       66     Failed to initialise SSL Engine.\n"
+"\n"
+"       67     The  user  name,  password, or similar was not accepted and curl\n"
+"              failed to log in.\n"
+"\n"
+, stdout);
+ fputs(
+"       68     File not found on TFTP server.\n"
+"\n"
+"       69     Permission problem on TFTP server.\n"
+"\n"
+"       70     Out of disk space on TFTP server.\n"
+"\n"
+"       71     Illegal TFTP operation.\n"
+"\n"
+"       72     Unknown TFTP transfer ID.\n"
+"\n"
+"       73     File already exists (TFTP).\n"
+"\n"
+"       74     No such user (TFTP).\n"
+"\n"
+"       75     Character conversion failed.\n"
+"\n"
+"       76     Character conversion functions required.\n"
+"\n"
+"       77     Problem with reading the SSL CA cert (path? access rights?).\n"
+"\n"
+, stdout);
+ fputs(
+"       78     The resource referenced in the URL does not exist.\n"
+"\n"
+"       79     An unspecified error occurred during the SSH session.\n"
+"\n"
+"       80     Failed to shut down the SSL connection.\n"
+"\n"
+"       82     Could not load CRL file,  missing  or  wrong  format  (added  in\n"
+"              7.19.0).\n"
+"\n"
+"       83     Issuer check failed (added in 7.19.0).\n"
+"\n"
+"       84     The FTP PRET command failed\n"
+"\n"
+"       85     RTSP: mismatch of CSeq numbers\n"
+"\n"
+"       86     RTSP: mismatch of Session Identifiers\n"
+"\n"
+, stdout);
+ fputs(
+"       87     unable to parse FTP file list\n"
+"\n"
+"       88     FTP chunk callback reported error\n"
+"\n"
+"       89     No connection available, the session will be queued\n"
+"\n"
+"       90     SSL public key does not matched pinned public key\n"
+"\n"
+"       XX     More error codes will appear here in future releases. The exist-\n"
+"              ing ones are meant to never change.\n"
+"\n"
+"AUTHORS / CONTRIBUTORS\n"
+"       Daniel Stenberg is the main author, but the whole list of  contributors\n"
+, stdout);
+ fputs(
+"       is found in the separate THANKS file.\n"
+"\n"
+"WWW\n"
+"       https://curl.haxx.se\n"
+"\n"
+"SEE ALSO\n"
+"       ftp(1), wget(1)\n"
+"\n"
+"LATEST VERSION\n"
+"\n"
+"  You always find news about what's going on as well as the latest versions\n"
+"  from the curl web pages, located at:\n"
+"\n"
+"        https://curl.haxx.se\n"
+"\n"
+"SIMPLE USAGE\n"
+"\n"
+"  Get the main page from Netscape's web-server:\n"
+"\n"
+"        curl http://www.netscape.com/\n"
+"\n"
+"  Get the README file the user's home directory at funet's ftp-server:\n"
+"\n"
+"        curl ftp://ftp.funet.fi/README\n"
+"\n"
+, stdout);
+ fputs(
+"  Get a web page from a server using port 8000:\n"
+"\n"
+"        curl http://www.weirdserver.com:8000/\n"
+"\n"
+"  Get a directory listing of an FTP site:\n"
+"\n"
+"        curl ftp://cool.haxx.se/\n"
+"\n"
+"  Get the definition of curl from a dictionary:\n"
+"\n"
+"        curl dict://dict.org/m:curl\n"
+"\n"
+"  Fetch two documents at once:\n"
+"\n"
+"        curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/\n"
+"\n"
+"  Get a file off an FTPS server:\n"
+"\n"
+"        curl ftps://files.are.secure.com/secrets.txt\n"
+"\n"
+, stdout);
+ fputs(
+"  or use the more appropriate FTPS way to get the same file:\n"
+"\n"
+"        curl --ftp-ssl ftp://files.are.secure.com/secrets.txt\n"
+"\n"
+"  Get a file from an SSH server using SFTP:\n"
+"\n"
+"        curl -u username sftp://example.com/etc/issue\n"
+"\n"
+"  Get a file from an SSH server using SCP using a private key\n"
+"  (not password-protected) to authenticate:\n"
+"\n"
+"        curl -u username: --key ~/.ssh/id_rsa \\\n"
+"             scp://example.com/~/file.txt\n"
+"\n"
+"  Get a file from an SSH server using SCP using a private key\n"
+, stdout);
+ fputs(
+"  (password-protected) to authenticate:\n"
+"\n"
+"        curl -u username: --key ~/.ssh/id_rsa --pass private_key_password \\\n"
+"             scp://example.com/~/file.txt\n"
+"\n"
+"  Get the main page from an IPv6 web server:\n"
+"\n"
+"        curl \"http://[2001:1890:1112:1::20]/\"\n"
+"\n"
+"  Get a file from an SMB server:\n"
+"\n"
+"        curl -u \"domain\\username:passwd\" smb://server.example.com/share/file.txt\n"
+"\n"
+"DOWNLOAD TO A FILE\n"
+"\n"
+"  Get a web page and store in a local file with a specific name:\n"
+"\n"
+, stdout);
+ fputs(
+"        curl -o thatpage.html http://www.netscape.com/\n"
+"\n"
+"  Get a web page and store in a local file, make the local file get the name\n"
+"  of the remote document (if no file name part is specified in the URL, this\n"
+"  will fail):\n"
+"\n"
+"        curl -O http://www.netscape.com/index.html\n"
+"\n"
+"  Fetch two files and store them with their remote names:\n"
+"\n"
+"        curl -O www.haxx.se/index.html -O curl.haxx.se/download.html\n"
+"\n"
+"USING PASSWORDS\n"
+"\n"
+" FTP\n"
+"\n"
+"   To ftp files using name+passwd, include them in the URL like:\n"
+"\n"
+, stdout);
+ fputs(
+"        curl ftp://name:passwd@machine.domain:port/full/path/to/file\n"
+"\n"
+"   or specify them with the -u flag like\n"
+"\n"
+"        curl -u name:passwd ftp://machine.domain:port/full/path/to/file\n"
+"\n"
+" FTPS\n"
+"\n"
+"   It is just like for FTP, but you may also want to specify and use\n"
+"   SSL-specific options for certificates etc.\n"
+"\n"
+"   Note that using FTPS:// as prefix is the \"implicit\" way as described in the\n"
+"   standards while the recommended \"explicit\" way is done by using FTP:// and\n"
+"   the --ftp-ssl option.\n"
+"\n"
+, stdout);
+ fputs(
+" SFTP / SCP\n"
+"\n"
+"   This is similar to FTP, but you can use the --key option to specify a\n"
+"   private key to use instead of a password. Note that the private key may\n"
+"   itself be protected by a password that is unrelated to the login password\n"
+"   of the remote system; this password is specified using the --pass option.\n"
+"   Typically, curl will automatically extract the public key from the private\n"
+"   key file, but in cases where curl does not have the proper library support,\n"
+, stdout);
+ fputs(
+"   a matching public key file must be specified using the --pubkey option.\n"
+"\n"
+" HTTP\n"
+"\n"
+"   Curl also supports user and password in HTTP URLs, thus you can pick a file\n"
+"   like:\n"
+"\n"
+"        curl http://name:passwd@machine.domain/full/path/to/file\n"
+"\n"
+"   or specify user and password separately like in\n"
+"\n"
+"        curl -u name:passwd http://machine.domain/full/path/to/file\n"
+"\n"
+"   HTTP offers many different methods of authentication and curl supports\n"
+, stdout);
+ fputs(
+"   several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which\n"
+"   method to use, curl defaults to Basic. You can also ask curl to pick the\n"
+"   most secure ones out of the ones that the server accepts for the given URL,\n"
+"   by using --anyauth.\n"
+"\n"
+"   NOTE! According to the URL specification, HTTP URLs can not contain a user\n"
+"   and password, so that style will not work when using curl via a proxy, even\n"
+"   though curl allows it at other times. When using a proxy, you _must_ use\n"
+, stdout);
+ fputs(
+"   the -u style for user and password.\n"
+"\n"
+" HTTPS\n"
+"\n"
+"   Probably most commonly used with private certificates, as explained below.\n"
+"\n"
+"PROXY\n"
+"\n"
+" curl supports both HTTP and SOCKS proxy servers, with optional authentication.\n"
+" It does not have special support for FTP proxy servers since there are no\n"
+" standards for those, but it can still be made to work with many of them. You\n"
+" can also use both HTTP and SOCKS proxies to transfer files to and from FTP\n"
+" servers.\n"
+"\n"
+, stdout);
+ fputs(
+" Get an ftp file using an HTTP proxy named my-proxy that uses port 888:\n"
+"\n"
+"        curl -x my-proxy:888 ftp://ftp.leachsite.com/README\n"
+"\n"
+" Get a file from an HTTP server that requires user and password, using the\n"
+" same proxy as above:\n"
+"\n"
+"        curl -u user:passwd -x my-proxy:888 http://www.get.this/\n"
+"\n"
+" Some proxies require special authentication. Specify by using -U as above:\n"
+"\n"
+"        curl -U user:passwd -x my-proxy:888 http://www.get.this/\n"
+"\n"
+, stdout);
+ fputs(
+" A comma-separated list of hosts and domains which do not use the proxy can\n"
+" be specified as:\n"
+"\n"
+"        curl --noproxy localhost,get.this -x my-proxy:888 http://www.get.this/\n"
+"\n"
+" If the proxy is specified with --proxy1.0 instead of --proxy or -x, then\n"
+" curl will use HTTP/1.0 instead of HTTP/1.1 for any CONNECT attempts.\n"
+"\n"
+" curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5.\n"
+"\n"
+" See also the environment variables Curl supports that offer further proxy\n"
+" control.\n"
+"\n"
+, stdout);
+ fputs(
+" Most FTP proxy servers are set up to appear as a normal FTP server from the\n"
+" client's perspective, with special commands to select the remote FTP server.\n"
+" curl supports the -u, -Q and --ftp-account options that can be used to\n"
+" set up transfers through many FTP proxies. For example, a file can be\n"
+" uploaded to a remote FTP server using a Blue Coat FTP proxy with the\n"
+" options:\n"
+"\n"
+"   curl -u \"Remote-FTP-Username@remote.ftp.server Proxy-Username:Remote-Pass\" \\\n"
+, stdout);
+ fputs(
+"    --ftp-account Proxy-Password --upload-file local-file \\\n"
+"    ftp://my-ftp.proxy.server:21/remote/upload/path/\n"
+"\n"
+" See the manual for your FTP proxy to determine the form it expects to set up\n"
+" transfers, and curl's -v option to see exactly what curl is sending.\n"
+"\n"
+"RANGES\n"
+"\n"
+"  HTTP 1.1 introduced byte-ranges. Using this, a client can request\n"
+"  to get only one or more subparts of a specified document. Curl supports\n"
+"  this with the -r flag.\n"
+"\n"
+"  Get the first 100 bytes of a document:\n"
+"\n"
+, stdout);
+ fputs(
+"        curl -r 0-99 http://www.get.this/\n"
+"\n"
+"  Get the last 500 bytes of a document:\n"
+"\n"
+"        curl -r -500 http://www.get.this/\n"
+"\n"
+"  Curl also supports simple ranges for FTP files as well. Then you can only\n"
+"  specify start and stop position.\n"
+"\n"
+"  Get the first 100 bytes of a document using FTP:\n"
+"\n"
+"        curl -r 0-99 ftp://www.get.this/README\n"
+"\n"
+"UPLOADING\n"
+"\n"
+" FTP / FTPS / SFTP / SCP\n"
+"\n"
+"  Upload all data on stdin to a specified server:\n"
+"\n"
+"        curl -T - ftp://ftp.upload.com/myfile\n"
+"\n"
+, stdout);
+ fputs(
+"  Upload data from a specified file, login with user and password:\n"
+"\n"
+"        curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile\n"
+"\n"
+"  Upload a local file to the remote site, and use the local file name at the remote\n"
+"  site too:\n"
+"\n"
+"        curl -T uploadfile -u user:passwd ftp://ftp.upload.com/\n"
+"\n"
+"  Upload a local file to get appended to the remote file:\n"
+"\n"
+"        curl -T localfile -a ftp://ftp.upload.com/remotefile\n"
+"\n"
+"  Curl also supports ftp upload through a proxy, but only if the proxy is\n"
+, stdout);
+ fputs(
+"  configured to allow that kind of tunneling. If it does, you can run curl in\n"
+"  a fashion similar to:\n"
+"\n"
+"        curl --proxytunnel -x proxy:port -T localfile ftp.upload.com\n"
+"\n"
+"SMB / SMBS\n"
+"\n"
+"        curl -T file.txt -u \"domain\\username:passwd\" \n"
+"         smb://server.example.com/share/\n"
+"\n"
+" HTTP\n"
+"\n"
+"  Upload all data on stdin to a specified HTTP site:\n"
+"\n"
+"        curl -T - http://www.upload.com/myfile\n"
+"\n"
+"  Note that the HTTP server must have been configured to accept PUT before\n"
+"  this can be done successfully.\n"
+"\n"
+, stdout);
+ fputs(
+"  For other ways to do HTTP data upload, see the POST section below.\n"
+"\n"
+"VERBOSE / DEBUG\n"
+"\n"
+"  If curl fails where it isn't supposed to, if the servers don't let you in,\n"
+"  if you can't understand the responses: use the -v flag to get verbose\n"
+"  fetching. Curl will output lots of info and what it sends and receives in\n"
+"  order to let the user see all client-server interaction (but it won't show\n"
+"  you the actual data).\n"
+"\n"
+"        curl -v ftp://ftp.upload.com/\n"
+"\n"
+, stdout);
+ fputs(
+"  To get even more details and information on what curl does, try using the\n"
+"  --trace or --trace-ascii options with a given file name to log to, like\n"
+"  this:\n"
+"\n"
+"        curl --trace trace.txt www.haxx.se\n"
+"\n"
+"\n"
+"DETAILED INFORMATION\n"
+"\n"
+"  Different protocols provide different ways of getting detailed information\n"
+"  about specific files/documents. To get curl to show detailed information\n"
+"  about a single file, you should use -I/--head option. It displays all\n"
+, stdout);
+ fputs(
+"  available info on a single file for HTTP and FTP. The HTTP information is a\n"
+"  lot more extensive.\n"
+"\n"
+"  For HTTP, you can get the header information (the same as -I would show)\n"
+"  shown before the data by using -i/--include. Curl understands the\n"
+"  -D/--dump-header option when getting files from both FTP and HTTP, and it\n"
+"  will then store the headers in the specified file.\n"
+"\n"
+"  Store the HTTP headers in a separate file (headers.txt in the example):\n"
+"\n"
+, stdout);
+ fputs(
+"        curl --dump-header headers.txt curl.haxx.se\n"
+"\n"
+"  Note that headers stored in a separate file can be very useful at a later\n"
+"  time if you want curl to use cookies sent by the server. More about that in\n"
+"  the cookies section.\n"
+"\n"
+"POST (HTTP)\n"
+"\n"
+"  It's easy to post data using curl. This is done using the -d <data>\n"
+"  option.  The post data must be urlencoded.\n"
+"\n"
+"  Post a simple \"name\" and \"phone\" guestbook.\n"
+"\n"
+"        curl -d \"name=Rafael%20Sagula&phone=3320780\" \\\n"
+, stdout);
+ fputs(
+"                http://www.where.com/guest.cgi\n"
+"\n"
+"  How to post a form with curl, lesson #1:\n"
+"\n"
+"  Dig out all the <input> tags in the form that you want to fill in. (There's\n"
+"  a perl program called formfind.pl on the curl site that helps with this).\n"
+"\n"
+"  If there's a \"normal\" post, you use -d to post. -d takes a full \"post\n"
+"  string\", which is in the format\n"
+"\n"
+"        <variable1>=<data1>&<variable2>=<data2>&...\n"
+"\n"
+"  The 'variable' names are the names set with \"name=\" in the <input> tags, and\n"
+, stdout);
+ fputs(
+"  the data is the contents you want to fill in for the inputs. The data *must*\n"
+"  be properly URL encoded. That means you replace space with + and that you\n"
+"  replace weird letters with %XX where XX is the hexadecimal representation of\n"
+"  the letter's ASCII code.\n"
+"\n"
+"  Example:\n"
+"\n"
+"  (page located at http://www.formpost.com/getthis/\n"
+"\n"
+"        <form action=\"post.cgi\" method=\"post\">\n"
+"        <input name=user size=10>\n"
+"        <input name=pass type=password size=10>\n"
+, stdout);
+ fputs(
+"        <input name=id type=hidden value=\"blablabla\">\n"
+"        <input name=ding value=\"submit\">\n"
+"        </form>\n"
+"\n"
+"  We want to enter user 'foobar' with password '12345'.\n"
+"\n"
+"  To post to this, you enter a curl command line like:\n"
+"\n"
+"        curl -d \"user=foobar&pass=12345&id=blablabla&ding=submit\"  (continues)\n"
+"          http://www.formpost.com/getthis/post.cgi\n"
+"\n"
+"\n"
+"  While -d uses the application/x-www-form-urlencoded mime-type, generally\n"
+, stdout);
+ fputs(
+"  understood by CGI's and similar, curl also supports the more capable\n"
+"  multipart/form-data type. This latter type supports things like file upload.\n"
+"\n"
+"  -F accepts parameters like -F \"name=contents\". If you want the contents to\n"
+"  be read from a file, use <@filename> as contents. When specifying a file,\n"
+"  you can also specify the file content type by appending ';type=<mime type>'\n"
+"  to the file name. You can also post the contents of several files in one\n"
+, stdout);
+ fputs(
+"  field.  For example, the field name 'coolfiles' is used to send three files,\n"
+"  with different content types using the following syntax:\n"
+"\n"
+"        curl -F \"coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html\" \\\n"
+"        http://www.post.com/postit.cgi\n"
+"\n"
+"  If the content-type is not specified, curl will try to guess from the file\n"
+"  extension (it only knows a few), or use the previously specified type (from\n"
+"  an earlier file if several files are specified in a list) or else it will\n"
+, stdout);
+ fputs(
+"  use the default type 'application/octet-stream'.\n"
+"\n"
+"  Emulate a fill-in form with -F. Let's say you fill in three fields in a\n"
+"  form. One field is a file name which to post, one field is your name and one\n"
+"  field is a file description. We want to post the file we have written named\n"
+"  \"cooltext.txt\". To let curl do the posting of this data instead of your\n"
+"  favourite browser, you have to read the HTML source of the form page and\n"
+, stdout);
+ fputs(
+"  find the names of the input fields. In our example, the input field names\n"
+"  are 'file', 'yourname' and 'filedescription'.\n"
+"\n"
+"        curl -F \"file=@cooltext.txt\" -F \"yourname=Daniel\" \\\n"
+"             -F \"filedescription=Cool text file with cool text inside\" \\\n"
+"             http://www.post.com/postit.cgi\n"
+"\n"
+"  To send two files in one post you can do it in two ways:\n"
+"\n"
+"  1. Send multiple files in a single \"field\" with a single field name:\n"
+"\n"
+"        curl -F \"pictures=@dog.gif,cat.gif\"\n"
+"\n"
+, stdout);
+ fputs(
+"  2. Send two fields with two field names:\n"
+"\n"
+"        curl -F \"docpicture=@dog.gif\" -F \"catpicture=@cat.gif\"\n"
+"\n"
+"  To send a field value literally without interpreting a leading '@'\n"
+"  or '<', or an embedded ';type=', use --form-string instead of\n"
+"  -F. This is recommended when the value is obtained from a user or\n"
+"  some other unpredictable source. Under these circumstances, using\n"
+"  -F instead of --form-string would allow a user to trick curl into\n"
+"  uploading a file.\n"
+"\n"
+"REFERRER\n"
+"\n"
+, stdout);
+ fputs(
+"  An HTTP request has the option to include information about which address\n"
+"  referred it to the actual page.  Curl allows you to specify the\n"
+"  referrer to be used on the command line. It is especially useful to\n"
+"  fool or trick stupid servers or CGI scripts that rely on that information\n"
+"  being available or contain certain data.\n"
+"\n"
+"        curl -e www.coolsite.com http://www.showme.com/\n"
+"\n"
+"  NOTE: The Referer: [sic] field is defined in the HTTP spec to be a full URL.\n"
+"\n"
+"USER AGENT\n"
+"\n"
+, stdout);
+ fputs(
+"  An HTTP request has the option to include information about the browser\n"
+"  that generated the request. Curl allows it to be specified on the command\n"
+"  line. It is especially useful to fool or trick stupid servers or CGI\n"
+"  scripts that only accept certain browsers.\n"
+"\n"
+"  Example:\n"
+"\n"
+"  curl -A 'Mozilla/3.0 (Win95; I)' http://www.nationsbank.com/\n"
+"\n"
+"  Other common strings:\n"
+"    'Mozilla/3.0 (Win95; I)'     Netscape Version 3 for Windows 95\n"
+, stdout);
+ fputs(
+"    'Mozilla/3.04 (Win95; U)'    Netscape Version 3 for Windows 95\n"
+"    'Mozilla/2.02 (OS/2; U)'     Netscape Version 2 for OS/2\n"
+"    'Mozilla/4.04 [en] (X11; U; AIX 4.2; Nav)'           NS for AIX\n"
+"    'Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)'      NS for Linux\n"
+"\n"
+"  Note that Internet Explorer tries hard to be compatible in every way:\n"
+"    'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)'    MSIE for W95\n"
+"\n"
+"  Mozilla is not the only possible User-Agent name:\n"
+, stdout);
+ fputs(
+"    'Konqueror/1.0'             KDE File Manager desktop client\n"
+"    'Lynx/2.7.1 libwww-FM/2.14' Lynx command line browser\n"
+"\n"
+"COOKIES\n"
+"\n"
+"  Cookies are generally used by web servers to keep state information at the\n"
+"  client's side. The server sets cookies by sending a response line in the\n"
+"  headers that looks like 'Set-Cookie: <data>' where the data part then\n"
+"  typically contains a set of NAME=VALUE pairs (separated by semicolons ';'\n"
+, stdout);
+ fputs(
+"  like \"NAME1=VALUE1; NAME2=VALUE2;\"). The server can also specify for what\n"
+"  path the \"cookie\" should be used for (by specifying \"path=value\"), when the\n"
+"  cookie should expire (\"expire=DATE\"), for what domain to use it\n"
+"  (\"domain=NAME\") and if it should be used on secure connections only\n"
+"  (\"secure\").\n"
+"\n"
+"  If you've received a page from a server that contains a header like:\n"
+"        Set-Cookie: sessionid=boo123; path=\"/foo\";\n"
+"\n"
+, stdout);
+ fputs(
+"  it means the server wants that first pair passed on when we get anything in\n"
+"  a path beginning with \"/foo\".\n"
+"\n"
+"  Example, get a page that wants my name passed in a cookie:\n"
+"\n"
+"        curl -b \"name=Daniel\" www.sillypage.com\n"
+"\n"
+"  Curl also has the ability to use previously received cookies in following\n"
+"  sessions. If you get cookies from a server and store them in a file in a\n"
+"  manner similar to:\n"
+"\n"
+"        curl --dump-header headers www.example.com\n"
+"\n"
+, stdout);
+ fputs(
+"  ... you can then in a second connect to that (or another) site, use the\n"
+"  cookies from the 'headers' file like:\n"
+"\n"
+"        curl -b headers www.example.com\n"
+"\n"
+"  While saving headers to a file is a working way to store cookies, it is\n"
+"  however error-prone and not the preferred way to do this. Instead, make curl\n"
+"  save the incoming cookies using the well-known netscape cookie format like\n"
+"  this:\n"
+"\n"
+"        curl -c cookies.txt www.example.com\n"
+"\n"
+, stdout);
+ fputs(
+"  Note that by specifying -b you enable the \"cookie awareness\" and with -L\n"
+"  you can make curl follow a location: (which often is used in combination\n"
+"  with cookies). So that if a site sends cookies and a location, you can\n"
+"  use a non-existing file to trigger the cookie awareness like:\n"
+"\n"
+"        curl -L -b empty.txt www.example.com\n"
+"\n"
+"  The file to read cookies from must be formatted using plain HTTP headers OR\n"
+"  as netscape's cookie file. Curl will determine what kind it is based on the\n"
+, stdout);
+ fputs(
+"  file contents.  In the above command, curl will parse the header and store\n"
+"  the cookies received from www.example.com.  curl will send to the server the\n"
+"  stored cookies which match the request as it follows the location.  The\n"
+"  file \"empty.txt\" may be a nonexistent file.\n"
+"\n"
+"  To read and write cookies from a netscape cookie file, you can set both -b\n"
+"  and -c to use the same file:\n"
+"\n"
+"        curl -b cookies.txt -c cookies.txt www.example.com\n"
+"\n"
+"PROGRESS METER\n"
+"\n"
+, stdout);
+ fputs(
+"  The progress meter exists to show a user that something actually is\n"
+"  happening. The different fields in the output have the following meaning:\n"
+"\n"
+"  % Total    % Received % Xferd  Average Speed          Time             Curr.\n"
+"                                 Dload  Upload Total    Current  Left    Speed\n"
+"  0  151M    0 38608    0     0   9406      0  4:41:43  0:00:04  4:41:39  9287\n"
+"\n"
+"  From left-to-right:\n"
+"   %             - percentage completed of the whole transfer\n"
+, stdout);
+ fputs(
+"   Total         - total size of the whole expected transfer\n"
+"   %             - percentage completed of the download\n"
+"   Received      - currently downloaded amount of bytes\n"
+"   %             - percentage completed of the upload\n"
+"   Xferd         - currently uploaded amount of bytes\n"
+"   Average Speed\n"
+"   Dload         - the average transfer speed of the download\n"
+"   Average Speed\n"
+"   Upload        - the average transfer speed of the upload\n"
+"   Time Total    - expected time to complete the operation\n"
+, stdout);
+ fputs(
+"   Time Current  - time passed since the invoke\n"
+"   Time Left     - expected time left to completion\n"
+"   Curr.Speed    - the average transfer speed the last 5 seconds (the first\n"
+"                   5 seconds of a transfer is based on less time of course.)\n"
+"\n"
+"  The -# option will display a totally different progress bar that doesn't\n"
+"  need much explanation!\n"
+"\n"
+"SPEED LIMIT\n"
+"\n"
+"  Curl allows the user to set the transfer speed conditions that must be met\n"
+, stdout);
+ fputs(
+"  to let the transfer keep going. By using the switch -y and -Y you\n"
+"  can make curl abort transfers if the transfer speed is below the specified\n"
+"  lowest limit for a specified time.\n"
+"\n"
+"  To have curl abort the download if the speed is slower than 3000 bytes per\n"
+"  second for 1 minute, run:\n"
+"\n"
+"        curl -Y 3000 -y 60 www.far-away-site.com\n"
+"\n"
+"  This can very well be used in combination with the overall time limit, so\n"
+"  that the above operation must be completed in whole within 30 minutes:\n"
+"\n"
+, stdout);
+ fputs(
+"        curl -m 1800 -Y 3000 -y 60 www.far-away-site.com\n"
+"\n"
+"  Forcing curl not to transfer data faster than a given rate is also possible,\n"
+"  which might be useful if you're using a limited bandwidth connection and you\n"
+"  don't want your transfer to use all of it (sometimes referred to as\n"
+"  \"bandwidth throttle\").\n"
+"\n"
+"  Make curl transfer data no faster than 10 kilobytes per second:\n"
+"\n"
+"        curl --limit-rate 10K www.far-away-site.com\n"
+"\n"
+"    or\n"
+"\n"
+"        curl --limit-rate 10240 www.far-away-site.com\n"
+"\n"
+, stdout);
+ fputs(
+"  Or prevent curl from uploading data faster than 1 megabyte per second:\n"
+"\n"
+"        curl -T upload --limit-rate 1M ftp://uploadshereplease.com\n"
+"\n"
+"  When using the --limit-rate option, the transfer rate is regulated on a\n"
+"  per-second basis, which will cause the total transfer speed to become lower\n"
+"  than the given number. Sometimes of course substantially lower, if your\n"
+"  transfer stalls during periods.\n"
+"\n"
+"CONFIG FILE\n"
+"\n"
+"  Curl automatically tries to read the .curlrc file (or _curlrc file on win32\n"
+, stdout);
+ fputs(
+"  systems) from the user's home dir on startup.\n"
+"\n"
+"  The config file could be made up with normal command line switches, but you\n"
+"  can also specify the long options without the dashes to make it more\n"
+"  readable. You can separate the options and the parameter with spaces, or\n"
+"  with = or :. Comments can be used within the file. If the first letter on a\n"
+"  line is a '#'-symbol the rest of the line is treated as a comment.\n"
+"\n"
+"  If you want the parameter to contain spaces, you must enclose the entire\n"
+, stdout);
+ fputs(
+"  parameter within double quotes (\"). Within those quotes, you specify a\n"
+"  quote as \\\".\n"
+"\n"
+"  NOTE: You must specify options and their arguments on the same line.\n"
+"\n"
+"  Example, set default time out and proxy in a config file:\n"
+"\n"
+"        # We want a 30 minute timeout:\n"
+"        -m 1800\n"
+"        # ... and we use a proxy for all accesses:\n"
+"        proxy = proxy.our.domain.com:8080\n"
+"\n"
+"  White spaces ARE significant at the end of lines, but all white spaces\n"
+, stdout);
+ fputs(
+"  leading up to the first characters of each line are ignored.\n"
+"\n"
+"  Prevent curl from reading the default file by using -q as the first command\n"
+"  line parameter, like:\n"
+"\n"
+"        curl -q www.thatsite.com\n"
+"\n"
+"  Force curl to get and display a local help page in case it is invoked\n"
+"  without URL by making a config file similar to:\n"
+"\n"
+"        # default url to get\n"
+"        url = \"http://help.with.curl.com/curlhelp.html\"\n"
+"\n"
+"  You can specify another config file to be read by using the -K/--config\n"
+, stdout);
+ fputs(
+"  flag. If you set config file name to \"-\" it'll read the config from stdin,\n"
+"  which can be handy if you want to hide options from being visible in process\n"
+"  tables etc:\n"
+"\n"
+"        echo \"user = user:passwd\" | curl -K - http://that.secret.site.com\n"
+"\n"
+"EXTRA HEADERS\n"
+"\n"
+"  When using curl in your own very special programs, you may end up needing\n"
+"  to pass on your own custom headers when getting a web page. You can do\n"
+"  this by using the -H flag.\n"
+"\n"
+, stdout);
+ fputs(
+"  Example, send the header \"X-you-and-me: yes\" to the server when getting a\n"
+"  page:\n"
+"\n"
+"        curl -H \"X-you-and-me: yes\" www.love.com\n"
+"\n"
+"  This can also be useful in case you want curl to send a different text in a\n"
+"  header than it normally does. The -H header you specify then replaces the\n"
+"  header curl would normally send. If you replace an internal header with an\n"
+"  empty one, you prevent that header from being sent. To prevent the Host:\n"
+"  header from being used:\n"
+"\n"
+, stdout);
+ fputs(
+"        curl -H \"Host:\" www.server.com\n"
+"\n"
+"FTP and PATH NAMES\n"
+"\n"
+"  Do note that when getting files with the ftp:// URL, the given path is\n"
+"  relative the directory you enter. To get the file 'README' from your home\n"
+"  directory at your ftp site, do:\n"
+"\n"
+"        curl ftp://user:passwd@my.site.com/README\n"
+"\n"
+"  But if you want the README file from the root directory of that very same\n"
+"  site, you need to specify the absolute file name:\n"
+"\n"
+"        curl ftp://user:passwd@my.site.com//README\n"
+"\n"
+, stdout);
+ fputs(
+"  (I.e with an extra slash in front of the file name.)\n"
+"\n"
+"SFTP and SCP and PATH NAMES\n"
+"\n"
+"  With sftp: and scp: URLs, the path name given is the absolute name on the\n"
+"  server. To access a file relative to the remote user's home directory,\n"
+"  prefix the file with /~/ , such as:\n"
+"\n"
+"        curl -u $USER sftp://home.example.com/~/.bashrc\n"
+"\n"
+"FTP and firewalls\n"
+"\n"
+"  The FTP protocol requires one of the involved parties to open a second\n"
+, stdout);
+ fputs(
+"  connection as soon as data is about to get transferred. There are two ways to\n"
+"  do this.\n"
+"\n"
+"  The default way for curl is to issue the PASV command which causes the\n"
+"  server to open another port and await another connection performed by the\n"
+"  client. This is good if the client is behind a firewall that doesn't allow\n"
+"  incoming connections.\n"
+"\n"
+"        curl ftp.download.com\n"
+"\n"
+"  If the server, for example, is behind a firewall that doesn't allow connections\n"
+, stdout);
+ fputs(
+"  on ports other than 21 (or if it just doesn't support the PASV command), the\n"
+"  other way to do it is to use the PORT command and instruct the server to\n"
+"  connect to the client on the given IP number and port (as parameters to the\n"
+"  PORT command).\n"
+"\n"
+"  The -P flag to curl supports a few different options. Your machine may have\n"
+"  several IP-addresses and/or network interfaces and curl allows you to select\n"
+"  which of them to use. Default address can also be used:\n"
+"\n"
+, stdout);
+ fputs(
+"        curl -P - ftp.download.com\n"
+"\n"
+"  Download with PORT but use the IP address of our 'le0' interface (this does\n"
+"  not work on windows):\n"
+"\n"
+"        curl -P le0 ftp.download.com\n"
+"\n"
+"  Download with PORT but use 192.168.0.10 as our IP address to use:\n"
+"\n"
+"        curl -P 192.168.0.10 ftp.download.com\n"
+"\n"
+"NETWORK INTERFACE\n"
+"\n"
+"  Get a web page from a server using a specified port for the interface:\n"
+"\n"
+"        curl --interface eth0:1 http://www.netscape.com/\n"
+"\n"
+"  or\n"
+"\n"
+, stdout);
+ fputs(
+"        curl --interface 192.168.1.10 http://www.netscape.com/\n"
+"\n"
+"HTTPS\n"
+"\n"
+"  Secure HTTP requires SSL libraries to be installed and used when curl is\n"
+"  built. If that is done, curl is capable of retrieving and posting documents\n"
+"  using the HTTPS protocol.\n"
+"\n"
+"  Example:\n"
+"\n"
+"        curl https://www.secure-site.com\n"
+"\n"
+"  Curl is also capable of using your personal certificates to get/post files\n"
+"  from sites that require valid certificates. The only drawback is that the\n"
+, stdout);
+ fputs(
+"  certificate needs to be in PEM-format. PEM is a standard and open format to\n"
+"  store certificates with, but it is not used by the most commonly used\n"
+"  browsers (Netscape and MSIE both use the so called PKCS#12 format). If you\n"
+"  want curl to use the certificates you use with your (favourite) browser, you\n"
+"  may need to download/compile a converter that can convert your browser's\n"
+"  formatted certificates to PEM formatted ones. This kind of converter is\n"
+, stdout);
+ fputs(
+"  included in recent versions of OpenSSL, and for older versions Dr Stephen\n"
+"  N. Henson has written a patch for SSLeay that adds this functionality. You\n"
+"  can get his patch (that requires an SSLeay installation) from his site at:\n"
+"  http://www.drh-consultancy.demon.co.uk/\n"
+"\n"
+"  Example on how to automatically retrieve a document using a certificate with\n"
+"  a personal password:\n"
+"\n"
+"        curl -E /path/to/cert.pem:password https://secure.site.com/\n"
+"\n"
+, stdout);
+ fputs(
+"  If you neglect to specify the password on the command line, you will be\n"
+"  prompted for the correct password before any data can be received.\n"
+"\n"
+"  Many older SSL-servers have problems with SSLv3 or TLS, which newer versions\n"
+"  of OpenSSL etc use, therefore it is sometimes useful to specify what\n"
+"  SSL-version curl should use. Use -3, -2 or -1 to specify that exact SSL\n"
+"  version to use (for SSLv3, SSLv2 or TLSv1 respectively):\n"
+"\n"
+"        curl -2 https://secure.site.com/\n"
+"\n"
+, stdout);
+ fputs(
+"  Otherwise, curl will first attempt to use v3 and then v2.\n"
+"\n"
+"  To use OpenSSL to convert your favourite browser's certificate into a PEM\n"
+"  formatted one that curl can use, do something like this:\n"
+"\n"
+"    In Netscape, you start with hitting the 'Security' menu button.\n"
+"\n"
+"    Select 'certificates->yours' and then pick a certificate in the list\n"
+"\n"
+"    Press the 'Export' button\n"
+"\n"
+"    enter your PIN code for the certs\n"
+"\n"
+"    select a proper place to save it\n"
+"\n"
+, stdout);
+ fputs(
+"    Run the 'openssl' application to convert the certificate. If you cd to the\n"
+"    openssl installation, you can do it like:\n"
+"\n"
+"     # ./apps/openssl pkcs12 -in [file you saved] -clcerts -out [PEMfile]\n"
+"\n"
+"    In Firefox, select Options, then Advanced, then the Encryption tab,\n"
+"    View Certificates. This opens the Certificate Manager, where you can\n"
+"    Export. Be sure to select PEM for the Save as type.\n"
+"\n"
+"    In Internet Explorer, select Internet Options, then the Content tab, then\n"
+, stdout);
+ fputs(
+"    Certificates. Then you can Export, and depending on the format you may\n"
+"    need to convert to PEM.\n"
+"\n"
+"    In Chrome, select Settings, then Show Advanced Settings. Under HTTPS/SSL\n"
+"    select Manage Certificates.\n"
+"\n"
+"RESUMING FILE TRANSFERS\n"
+"\n"
+" To continue a file transfer where it was previously aborted, curl supports\n"
+" resume on HTTP(S) downloads as well as FTP uploads and downloads.\n"
+"\n"
+" Continue downloading a document:\n"
+"\n"
+"        curl -C - -o file ftp://ftp.server.com/path/file\n"
+"\n"
+, stdout);
+ fputs(
+" Continue uploading a document(*1):\n"
+"\n"
+"        curl -C - -T file ftp://ftp.server.com/path/file\n"
+"\n"
+" Continue downloading a document from a web server(*2):\n"
+"\n"
+"        curl -C - -o file http://www.server.com/\n"
+"\n"
+" (*1) = This requires that the FTP server supports the non-standard command\n"
+"        SIZE. If it doesn't, curl will say so.\n"
+"\n"
+" (*2) = This requires that the web server supports at least HTTP/1.1. If it\n"
+"        doesn't, curl will say so.\n"
+"\n"
+"TIME CONDITIONS\n"
+"\n"
+, stdout);
+ fputs(
+" HTTP allows a client to specify a time condition for the document it\n"
+" requests. It is If-Modified-Since or If-Unmodified-Since. Curl allows you to\n"
+" specify them with the -z/--time-cond flag.\n"
+"\n"
+" For example, you can easily make a download that only gets performed if the\n"
+" remote file is newer than a local copy. It would be made like:\n"
+"\n"
+"        curl -z local.html http://remote.server.com/remote.html\n"
+"\n"
+" Or you can download a file only if the local file is newer than the remote\n"
+, stdout);
+ fputs(
+" one. Do this by prepending the date string with a '-', as in:\n"
+"\n"
+"        curl -z -local.html http://remote.server.com/remote.html\n"
+"\n"
+" You can specify a \"free text\" date as condition. Tell curl to only download\n"
+" the file if it was updated since January 12, 2012:\n"
+"\n"
+"        curl -z \"Jan 12 2012\" http://remote.server.com/remote.html\n"
+"\n"
+" Curl will then accept a wide range of date formats. You always make the date\n"
+" check the other way around by prepending it with a dash '-'.\n"
+"\n"
+"DICT\n"
+"\n"
+"  For fun try\n"
+"\n"
+, stdout);
+ fputs(
+"        curl dict://dict.org/m:curl\n"
+"        curl dict://dict.org/d:heisenbug:jargon\n"
+"        curl dict://dict.org/d:daniel:web1913\n"
+"\n"
+"  Aliases for 'm' are 'match' and 'find', and aliases for 'd' are 'define'\n"
+"  and 'lookup'. For example,\n"
+"\n"
+"        curl dict://dict.org/find:curl\n"
+"\n"
+"  Commands that break the URL description of the RFC (but not the DICT\n"
+"  protocol) are\n"
+"\n"
+"        curl dict://dict.org/show:db\n"
+"        curl dict://dict.org/show:strat\n"
+"\n"
+, stdout);
+ fputs(
+"  Authentication is still missing (but this is not required by the RFC)\n"
+"\n"
+"LDAP\n"
+"\n"
+"  If you have installed the OpenLDAP library, curl can take advantage of it\n"
+"  and offer ldap:// support.\n"
+"  On Windows, curl will use WinLDAP from Platform SDK by default.\n"
+"\n"
+"  Default protocol version used by curl is LDAPv3. LDAPv2 will be used as\n"
+"  fallback mechanism in case if LDAPv3 will fail to connect.\n"
+"\n"
+"  LDAP is a complex thing and writing an LDAP query is not an easy task. I do\n"
+, stdout);
+ fputs(
+"  advise you to dig up the syntax description for that elsewhere. One such\n"
+"  place might be:\n"
+"\n"
+"  RFC 2255, \"The LDAP URL Format\" https://curl.haxx.se/rfc/rfc2255.txt\n"
+"\n"
+"  To show you an example, this is how I can get all people from my local LDAP\n"
+"  server that has a certain sub-domain in their email address:\n"
+"\n"
+"        curl -B \"ldap://ldap.frontec.se/o=frontec??sub?mail=*sth.frontec.se\"\n"
+"\n"
+"  If I want the same info in HTML format, I can get it by not using the -B\n"
+"  (enforce ASCII) flag.\n"
+"\n"
+, stdout);
+ fputs(
+"  You also can use authentication when accessing LDAP catalog:\n"
+"\n"
+"      curl -u user:passwd \"ldap://ldap.frontec.se/o=frontec??sub?mail=*\"\n"
+"      curl \"ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*\"\n"
+"\n"
+"  By default, if user and password provided, OpenLDAP/WinLDAP will use basic\n"
+"  authentication. On Windows you can control this behavior by providing \n"
+"  one of --basic, --ntlm or --digest option in curl command line\n"
+"\n"
+, stdout);
+ fputs(
+"      curl --ntlm \"ldap://user:passwd@ldap.frontec.se/o=frontec??sub?mail=*\"\n"
+"\n"
+"  On Windows, if no user/password specified, auto-negotiation mechanism will\n"
+"  be used with current logon credentials (SSPI/SPNEGO).\n"
+"\n"
+"ENVIRONMENT VARIABLES\n"
+"\n"
+"  Curl reads and understands the following environment variables:\n"
+"\n"
+"        http_proxy, HTTPS_PROXY, FTP_PROXY\n"
+"\n"
+"  They should be set for protocol-specific proxies. General proxy should be\n"
+"  set with\n"
+"\n"
+"        ALL_PROXY\n"
+"\n"
+, stdout);
+ fputs(
+"  A comma-separated list of host names that shouldn't go through any proxy is\n"
+"  set in (only an asterisk, '*' matches all hosts)\n"
+"\n"
+"        NO_PROXY\n"
+"\n"
+"  If the host name matches one of these strings, or the host is within the\n"
+"  domain of one of these strings, transactions with that node will not be\n"
+"  proxied. When a domain is used, it needs to start with a period. A user can\n"
+"  specify that both www.example.com and foo.example.com should not uses a\n"
+, stdout);
+ fputs(
+"  proxy by setting NO_PROXY to \".example.com\". By including the full name you\n"
+"  can exclude specific host names, so to make www.example.com not use a proxy\n"
+"  but still have foo.example.com do it, set NO_PROXY to \"www.example.com\"\n"
+"\n"
+"  The usage of the -x/--proxy flag overrides the environment variables.\n"
+"\n"
+"NETRC\n"
+"\n"
+"  Unix introduced the .netrc concept a long time ago. It is a way for a user\n"
+"  to specify name and password for commonly visited FTP sites in a file so\n"
+, stdout);
+ fputs(
+"  that you don't have to type them in each time you visit those sites. You\n"
+"  realize this is a big security risk if someone else gets hold of your\n"
+"  passwords, so therefore most unix programs won't read this file unless it is\n"
+"  only readable by yourself (curl doesn't care though).\n"
+"\n"
+"  Curl supports .netrc files if told to (using the -n/--netrc and\n"
+"  --netrc-optional options). This is not restricted to just FTP,\n"
+"  so curl can use it for all protocols where authentication is used.\n"
+"\n"
+, stdout);
+ fputs(
+"  A very simple .netrc file could look something like:\n"
+"\n"
+"        machine curl.haxx.se login iamdaniel password mysecret\n"
+"\n"
+"CUSTOM OUTPUT\n"
+"\n"
+"  To better allow script programmers to get to know about the progress of\n"
+"  curl, the -w/--write-out option was introduced. Using this, you can specify\n"
+"  what information from the previous transfer you want to extract.\n"
+"\n"
+"  To display the amount of bytes downloaded together with some text and an\n"
+"  ending newline:\n"
+"\n"
+, stdout);
+ fputs(
+"        curl -w 'We downloaded %{size_download} bytes\\n' www.download.com\n"
+"\n"
+"KERBEROS FTP TRANSFER\n"
+"\n"
+"  Curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need\n"
+"  the kerberos package installed and used at curl build time for it to be\n"
+"  available.\n"
+"\n"
+"  First, get the krb-ticket the normal way, like with the kinit/kauth tool.\n"
+"  Then use curl in way similar to:\n"
+"\n"
+"        curl --krb private ftp://krb4site.com -u username:fakepwd\n"
+"\n"
+, stdout);
+ fputs(
+"  There's no use for a password on the -u switch, but a blank one will make\n"
+"  curl ask for one and you already entered the real password to kinit/kauth.\n"
+"\n"
+"TELNET\n"
+"\n"
+"  The curl telnet support is basic and very easy to use. Curl passes all data\n"
+"  passed to it on stdin to the remote server. Connect to a remote telnet\n"
+"  server using a command line similar to:\n"
+"\n"
+"        curl telnet://remote.server.com\n"
+"\n"
+"  And enter the data to pass to the server on stdin. The result will be sent\n"
+, stdout);
+ fputs(
+"  to stdout or to the file you specify with -o.\n"
+"\n"
+"  You might want the -N/--no-buffer option to switch off the buffered output\n"
+"  for slow connections or similar.\n"
+"\n"
+"  Pass options to the telnet protocol negotiation, by using the -t option. To\n"
+"  tell the server we use a vt100 terminal, try something like:\n"
+"\n"
+"        curl -tTTYPE=vt100 telnet://remote.server.com\n"
+"\n"
+"  Other interesting options for it -t include:\n"
+"\n"
+"   - XDISPLOC=<X display> Sets the X display location.\n"
+"\n"
+, stdout);
+ fputs(
+"   - NEW_ENV=<var,val> Sets an environment variable.\n"
+"\n"
+"  NOTE: The telnet protocol does not specify any way to login with a specified\n"
+"  user and password so curl can't do that automatically. To do that, you need\n"
+"  to track when the login prompt is received and send the username and\n"
+"  password accordingly.\n"
+"\n"
+"PERSISTENT CONNECTIONS\n"
+"\n"
+"  Specifying multiple files on a single command line will make curl transfer\n"
+"  all of them, one after the other in the specified order.\n"
+"\n"
+, stdout);
+ fputs(
+"  libcurl will attempt to use persistent connections for the transfers so that\n"
+"  the second transfer to the same host can use the same connection that was\n"
+"  already initiated and was left open in the previous transfer. This greatly\n"
+"  decreases connection time for all but the first transfer and it makes a far\n"
+"  better use of the network.\n"
+"\n"
+"  Note that curl cannot use persistent connections for transfers that are used\n"
+"  in subsequence curl invokes. Try to stuff as many URLs as possible on the\n"
+, stdout);
+ fputs(
+"  same command line if they are using the same host, as that'll make the\n"
+"  transfers faster. If you use an HTTP proxy for file transfers, practically\n"
+"  all transfers will be persistent.\n"
+"\n"
+"MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE\n"
+"\n"
+"  As is mentioned above, you can download multiple files with one command line\n"
+"  by simply adding more URLs. If you want those to get saved to a local file\n"
+"  instead of just printed to stdout, you need to add one save option for each\n"
+, stdout);
+ fputs(
+"  URL you specify. Note that this also goes for the -O option (but not\n"
+"  --remote-name-all).\n"
+"\n"
+"  For example: get two files and use -O for the first and a custom file\n"
+"  name for the second:\n"
+"\n"
+"    curl -O http://url.com/file.txt ftp://ftp.com/moo.exe -o moo.jpg\n"
+"\n"
+"  You can also upload multiple files in a similar fashion:\n"
+"\n"
+"    curl -T local1 ftp://ftp.com/moo.exe -T local2 ftp://ftp.com/moo2.txt\n"
+"\n"
+"IPv6\n"
+"\n"
+"  curl will connect to a server with IPv6 when a host lookup returns an IPv6\n"
+, stdout);
+ fputs(
+"  address and fall back to IPv4 if the connection fails. The --ipv4 and --ipv6\n"
+"  options can specify which address to use when both are available. IPv6\n"
+"  addresses can also be specified directly in URLs using the syntax:\n"
+"\n"
+"    http://[2001:1890:1112:1::20]/overview.html\n"
+"\n"
+"  When this style is used, the -g option must be given to stop curl from\n"
+"  interpreting the square brackets as special globbing characters.  Link local\n"
+, stdout);
+ fputs(
+"  and site local addresses including a scope identifier, such as fe80::1234%1,\n"
+"  may also be used, but the scope portion must be numeric or match an existing\n"
+"  network interface on Linux and the percent character must be URL escaped. The\n"
+"  previous example in an SFTP URL might look like:\n"
+"\n"
+"    sftp://[fe80::1234%251]/\n"
+"\n"
+"  IPv6 addresses provided other than in URLs (e.g. to the --proxy, --interface\n"
+"  or --ftp-port options) should not be URL encoded.\n"
+"\n"
+"METALINK\n"
+"\n"
+, stdout);
+ fputs(
+"  Curl supports Metalink (both version 3 and 4 (RFC 5854) are supported), a way\n"
+"  to list multiple URIs and hashes for a file. Curl will make use of the mirrors\n"
+"  listed within for failover if there are errors (such as the file or server not\n"
+"  being available). It will also verify the hash of the file after the download\n"
+"  completes. The Metalink file itself is downloaded and processed in memory and\n"
+"  not stored in the local file system.\n"
+"\n"
+"  Example to use a remote Metalink file:\n"
+"\n"
+, stdout);
+ fputs(
+"    curl --metalink http://www.example.com/example.metalink\n"
+"\n"
+"  To use a Metalink file in the local file system, use FILE protocol (file://):\n"
+"\n"
+"    curl --metalink file://example.metalink\n"
+"\n"
+"  Please note that if FILE protocol is disabled, there is no way to use a local\n"
+"  Metalink file at the time of this writing. Also note that if --metalink and\n"
+"  --include are used together, --include will be ignored. This is because including\n"
+, stdout);
+ fputs(
+"  headers in the response will break Metalink parser and if the headers are included\n"
+"  in the file described in Metalink file, hash check will fail.\n"
+"\n"
+"MAILING LISTS\n"
+"\n"
+"  For your convenience, we have several open mailing lists to discuss curl,\n"
+"  its development and things relevant to this. Get all info at\n"
+"  https://curl.haxx.se/mail/. Some of the lists available are:\n"
+"\n"
+"  curl-users\n"
+"\n"
+"    Users of the command line tool. How to use it, what doesn't work, new\n"
+, stdout);
+ fputs(
+"    features, related tools, questions, news, installations, compilations,\n"
+"    running, porting etc.\n"
+"\n"
+"  curl-library\n"
+"\n"
+"    Developers using or developing libcurl. Bugs, extensions, improvements.\n"
+"\n"
+"  curl-announce\n"
+"\n"
+"    Low-traffic. Only receives announcements of new public versions. At worst,\n"
+"    that makes something like one or two mails per month, but usually only one\n"
+"    mail every second month.\n"
+"\n"
+"  curl-and-php\n"
+"\n"
+"    Using the curl functions in PHP. Everything curl with a PHP angle. Or PHP\n"
+, stdout);
+ fputs(
+"    with a curl angle.\n"
+"\n"
+"  curl-and-python\n"
+"\n"
+"    Python hackers using curl with or without the python binding pycurl.\n"
+"\n"
+"  Please direct curl questions, feature requests and trouble reports to one of\n"
+"  these mailing lists instead of mailing any individual.\n"
+, stdout) ;
+}
+#else /* !USE_MANUAL */
+/* built-in manual is disabled, blank function */
+#include "tool_hugehelp.h"
+void hugehelp(void) {}
+#endif /* USE_MANUAL */
+#else
+/*
+ * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
+ * Generation time: Fri Jun  9 12:10:32 2017
+ */
+#ifdef USE_MANUAL
+#include "tool_hugehelp.h"
+#include <zlib.h>
+#include "memdebug.h" /* keep this as LAST include */
+static const unsigned char hugehelpgz[] = {
+  /* This mumbo-jumbo is the huge help text compressed with gzip.
+     Thanks to this operation, the size of this data shrank from 188613
+     to 55461 bytes. You can disable the use of compressed help
+     texts by NOT passing -c to the mkhelp.pl tool. */
+  0x1f, 0x8b, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xfd,
+  0x6b, 0x5b, 0x24, 0x47, 0x92, 0x26, 0x80, 0x7e, 0xe7, 0x57, 0x44, 0xd3,
+  0xa7, 0x07, 0x98, 0xce, 0x4c, 0x2e, 0x75, 0x91, 0x8a, 0xae, 0xd2, 0x34,
+  0xa2, 0x28, 0x89, 0x11, 0x05, 0x2c, 0x49, 0x49, 0xea, 0x95, 0xf4, 0xd4,
+  0x13, 0x99, 0x19, 0x40, 0x34, 0x99, 0x11, 0xd9, 0x11, 0x91, 0x50, 0xf4,
+  0x6c, 0xef, 0x6f, 0x3f, 0x6e, 0xaf, 0x99, 0xb9, 0x7b, 0x84, 0x7b, 0x26,
+  0x48, 0x2d, 0xf5, 0xce, 0x39, 0xbb, 0x73, 0x51, 0x55, 0x41, 0x84, 0x87,
+  0x5f, 0xcd, 0xed, 0xf2, 0xda, 0x6b, 0x49, 0xf2, 0xd8, 0xff, 0x7c, 0xc4,
+  0xff, 0x7f, 0x34, 0xff, 0x63, 0xfe, 0x5c, 0x4b, 0x92, 0xf3, 0xaa, 0xfc,
+  0x6b, 0x36, 0x6e, 0xe2, 0xcf, 0x7e, 0xfc, 0xf8, 0xbf, 0x12, 0xfe, 0x5f,
+  0xf3, 0xce, 0x8f, 0xe6, 0xcf, 0xb5, 0x95, 0x6d, 0x6f, 0x27, 0xee, 0x85,
+  0xff, 0xf5, 0x71, 0x2b, 0x79, 0xec, 0x85, 0xff, 0x95, 0x6c, 0xe2, 0x85,
+  0x8f, 0xf2, 0x85, 0xd7, 0xf4, 0xf7, 0x8f, 0x1f, 0x57, 0x7f, 0xe4, 0x47,
+  0xea, 0x15, 0xfd, 0x67, 0x9b, 0xde, 0xfb, 0xf1, 0x23, 0xfd, 0xd5, 0xfc,
+  0x64, 0x6d, 0xed, 0xf4, 0xe0, 0xfd, 0x91, 0xbe, 0x3a, 0x5e, 0x54, 0xd3,
+  0xa4, 0x9f, 0x34, 0x55, 0x5a, 0xd4, 0x57, 0x59, 0x95, 0xa4, 0xc9, 0x87,
+  0x8b, 0x93, 0xb5, 0xb5, 0xe1, 0x5f, 0x4e, 0xcf, 0xce, 0x87, 0xc7, 0xc3,
+  0xd6, 0x63, 0x3f, 0x94, 0xf3, 0x26, 0x2f, 0x8b, 0xfa, 0xa7, 0xe4, 0x07,
+  0xf3, 0xd0, 0x60, 0x30, 0xf8, 0x69, 0x6d, 0xed, 0xed, 0xd1, 0xf0, 0xf0,
+  0xe2, 0xf8, 0xfc, 0xf2, 0xf8, 0xec, 0xb4, 0xf5, 0x6c, 0x92, 0xd7, 0x89,
+  0x69, 0xac, 0x29, 0xcb, 0xa9, 0xf9, 0x8f, 0x6b, 0x7f, 0x92, 0x36, 0x69,
+  0x72, 0x55, 0x95, 0xb3, 0xa4, 0xac, 0xe8, 0x17, 0x69, 0x52, 0x67, 0xd5,
+  0x5d, 0x56, 0xf5, 0x92, 0x45, 0x9d, 0x17, 0xd7, 0x49, 0x59, 0x64, 0x49,
+  0x79, 0x95, 0x34, 0x37, 0x99, 0x36, 0x57, 0x2f, 0xe6, 0xf3, 0xb2, 0x6a,
+  0xb2, 0x49, 0x32, 0xaf, 0xca, 0xa6, 0x1c, 0x97, 0xd3, 0x3a, 0xd9, 0x7c,
+  0x7b, 0x7c, 0x78, 0xd9, 0x4b, 0xde, 0x1d, 0x9f, 0x1c, 0x99, 0xff, 0x5e,
+  0x9e, 0xe3, 0x3f, 0xc3, 0x5e, 0xf2, 0xd5, 0xd9, 0xf9, 0xd7, 0x47, 0x17,
+  0xbd, 0xe4, 0xeb, 0x4b, 0xfa, 0x19, 0xfd, 0xd7, 0xfc, 0x30, 0x39, 0x7e,
+  0x7f, 0x70, 0xde, 0xd3, 0xe6, 0xe8, 0x1f, 0xf4, 0xc3, 0x93, 0xb7, 0xe6,
+  0x87, 0xfc, 0x07, 0xfd, 0xf3, 0xfc, 0xec, 0xfc, 0x99, 0xfc, 0x41, 0xff,
+  0xbc, 0xb8, 0x7c, 0x6f, 0x7e, 0x7b, 0x71, 0x39, 0x34, 0xff, 0x1d, 0x1e,
+  0xd2, 0x7f, 0xf0, 0x95, 0xe1, 0xfb, 0x2f, 0xf1, 0x9f, 0xa1, 0x6d, 0x6e,
+  0xf8, 0x9e, 0x7f, 0x8e, 0x2f, 0x5d, 0x1e, 0x9d, 0x9c, 0x1e, 0x5d, 0x26,
+  0x69, 0x31, 0x49, 0x2e, 0xcd, 0xf3, 0x5b, 0x83, 0xe4, 0xf2, 0x26, 0x4b,
+  0xc6, 0xe5, 0x6c, 0x46, 0x3f, 0x32, 0x33, 0x32, 0xc9, 0xea, 0xfc, 0xba,
+  0x30, 0x43, 0x31, 0x23, 0xbf, 0x2f, 0xab, 0xdb, 0x24, 0xb9, 0xcf, 0x9b,
+  0x9b, 0x72, 0xd1, 0x68, 0x73, 0x0b, 0x33, 0x1b, 0x49, 0x5e, 0x34, 0x59,
+  0x95, 0x8e, 0x69, 0xae, 0x07, 0x6b, 0xad, 0x59, 0x2d, 0xaf, 0xcc, 0x1c,
+  0xd6, 0x66, 0xd2, 0x46, 0x8b, 0x7a, 0x5a, 0xa6, 0x13, 0x9a, 0x2a, 0xf3,
+  0xca, 0xd5, 0xc2, 0x4c, 0x72, 0x95, 0x8f, 0x6f, 0xeb, 0x64, 0x9a, 0xdf,
+  0x66, 0x34, 0x51, 0x9f, 0x1e, 0x74, 0xe2, 0x7a, 0xdc, 0x68, 0xba, 0x30,
+  0x73, 0x5a, 0xf4, 0xb5, 0xb9, 0x26, 0x1f, 0xa7, 0xf4, 0x01, 0xcc, 0x5c,
+  0xb2, 0x98, 0x53, 0x6b, 0x3c, 0x63, 0xc9, 0xbc, 0xac, 0xcd, 0x4b, 0xc3,
+  0xe1, 0x89, 0xe9, 0x79, 0x51, 0x64, 0xe8, 0x47, 0xdd, 0x33, 0xff, 0x28,
+  0x6f, 0xf3, 0xcc, 0xfc, 0xe5, 0x2a, 0x9f, 0x66, 0x09, 0xaf, 0xa8, 0x6d,
+  0x8e, 0x96, 0x36, 0xa9, 0xb2, 0x7a, 0x31, 0xcb, 0xcc, 0xec, 0xbd, 0xcf,
+  0x9a, 0x74, 0x9a, 0x17, 0xb7, 0xe6, 0xaf, 0x34, 0xf0, 0x59, 0x59, 0x65,
+  0x83, 0xe4, 0xa0, 0x4e, 0x1e, 0xca, 0x85, 0x19, 0xf0, 0x74, 0x6a, 0xd6,
+  0x3c, 0x4b, 0x46, 0xd9, 0xb4, 0xbc, 0xef, 0xd1, 0x4a, 0x27, 0xc5, 0x62,
+  0x36, 0x32, 0x0d, 0x94, 0x57, 0xae, 0xb9, 0xb4, 0x59, 0x98, 0xe6, 0xf8,
+  0xe9, 0x59, 0x6a, 0xc6, 0x64, 0xde, 0xad, 0x92, 0x9b, 0xcc, 0x8c, 0xb9,
+  0x9e, 0xe7, 0xc5, 0xef, 0xda, 0xf3, 0x62, 0xa6, 0x76, 0x5e, 0xde, 0x67,
+  0x95, 0x99, 0xd9, 0xd1, 0x43, 0x62, 0x26, 0x61, 0xc4, 0x9b, 0xf0, 0xca,
+  0x6c, 0xb2, 0x24, 0x35, 0x4d, 0xd8, 0x0d, 0xd8, 0xaf, 0xb2, 0x69, 0x4a,
+  0x9b, 0xc9, 0x7e, 0x63, 0x60, 0x16, 0x31, 0xb3, 0xbb, 0x4d, 0x5e, 0xdd,
+  0x7c, 0xb6, 0x85, 0x97, 0x27, 0x66, 0x24, 0xf9, 0xb4, 0x36, 0xcb, 0x40,
+  0xc7, 0x42, 0x9e, 0xa1, 0x45, 0xa5, 0x63, 0x62, 0xf6, 0xe6, 0x43, 0xd1,
+  0xa4, 0x9f, 0xf0, 0x79, 0xd9, 0x9b, 0xfd, 0x49, 0x36, 0xcf, 0x8a, 0x49,
+  0x56, 0x34, 0x83, 0xe4, 0x2f, 0xe5, 0x62, 0xc3, 0x7c, 0xfb, 0x2a, 0x37,
+  0x73, 0x90, 0x4a, 0x53, 0xe6, 0xcb, 0x66, 0x13, 0x8c, 0xab, 0x7c, 0xee,
+  0x2d, 0x45, 0x59, 0x98, 0x35, 0x4f, 0x2e, 0xde, 0x1d, 0x26, 0xcf, 0x5e,
+  0x7d, 0xfe, 0xd2, 0xad, 0xb9, 0x69, 0x20, 0x19, 0xa7, 0x85, 0x19, 0x71,
+  0x36, 0xce, 0xaf, 0x1e, 0x92, 0xd9, 0x62, 0xda, 0xe4, 0x73, 0x33, 0xfb,
+  0xe6, 0xe3, 0x35, 0x1d, 0xa0, 0x79, 0x5a, 0x35, 0x35, 0x6d, 0x02, 0xfc,
+  0x00, 0x63, 0xbf, 0xaf, 0xf2, 0x86, 0x0e, 0x12, 0x7e, 0x67, 0x7a, 0x98,
+  0x35, 0xb5, 0x36, 0x47, 0x7b, 0xcd, 0x7c, 0x67, 0x64, 0xf6, 0x96, 0x99,
+  0xda, 0xb4, 0x36, 0x1f, 0xdd, 0x5f, 0x73, 0x32, 0xe4, 0xa6, 0x69, 0xe6,
+  0xfb, 0xdb, 0xdb, 0x75, 0xde, 0x64, 0x83, 0xff, 0x32, 0xe7, 0xb0, 0xd7,
+  0xdc, 0x97, 0xbd, 0xe6, 0xa6, 0xca, 0xb2, 0x7f, 0x0c, 0xcc, 0x1e, 0xb6,
+  0x4f, 0x9a, 0xef, 0x3e, 0x48, 0xc7, 0xae, 0xb3, 0xc6, 0x7c, 0xe1, 0x6f,
+  0x8b, 0xac, 0xa0, 0x16, 0x4d, 0x3f, 0xd2, 0xe9, 0xfc, 0x26, 0x35, 0xcb,
+  0x99, 0x99, 0xdd, 0x48, 0x27, 0xdb, 0x6c, 0x18, 0xea, 0x15, 0x9f, 0xed,
+  0x1f, 0x7e, 0x0a, 0x3f, 0x7a, 0x85, 0x6f, 0x9a, 0xff, 0x0e, 0xb2, 0x4f,
+  0xe9, 0xcc, 0x8c, 0x8d, 0x3e, 0xb5, 0x4d, 0x5b, 0xec, 0x87, 0xdd, 0xfe,
+  0xee, 0xce, 0xce, 0x4f, 0x83, 0xe6, 0x53, 0xf3, 0xb4, 0xe7, 0x77, 0x76,
+  0xdc, 0x1b, 0xf4, 0xe8, 0x26, 0x8d, 0x37, 0x99, 0x9a, 0x2d, 0x43, 0x1f,
+  0xff, 0x7b, 0x56, 0x95, 0xf5, 0xd6, 0xd3, 0x5a, 0x4a, 0xfb, 0x7f, 0x6f,
+  0x7f, 0xf7, 0x34, 0xab, 0xb1, 0x67, 0xdc, 0x58, 0x93, 0xb4, 0x32, 0xfb,
+  0xb6, 0x6c, 0x9c, 0x78, 0xea, 0x99, 0x43, 0xd9, 0xd8, 0x99, 0x31, 0x67,
+  0xce, 0x3c, 0x6d, 0x04, 0x5b, 0x3a, 0x25, 0x99, 0x56, 0x27, 0x45, 0xf6,
+  0xc9, 0x9e, 0x72, 0x73, 0xfa, 0xb3, 0x74, 0x7c, 0x93, 0x94, 0x66, 0xf3,
+  0x57, 0x91, 0x25, 0xf0, 0x3b, 0x94, 0x56, 0xe3, 0x9b, 0xfc, 0xce, 0xcc,
+  0xc6, 0xab, 0x57, 0x2f, 0xfb, 0xe6, 0x3f, 0xaf, 0x7e, 0xda, 0xbe, 0x2b,
+  0xa7, 0x66, 0x72, 0x9e, 0xff, 0xb4, 0x4d, 0x4b, 0xfc, 0x5f, 0x69, 0x6f,
+  0xd4, 0x1b, 0xff, 0x63, 0x70, 0xd3, 0xcc, 0xa6, 0x4b, 0x37, 0x4e, 0x5a,
+  0x98, 0xff, 0x9f, 0x95, 0x8b, 0xa2, 0xb1, 0x9b, 0xc5, 0xec, 0xb9, 0xc6,
+  0x13, 0x4e, 0xe6, 0xb8, 0x9a, 0x33, 0x4a, 0x5b, 0x9b, 0xf6, 0x10, 0x9d,
+  0x3a, 0x73, 0x40, 0xdd, 0x71, 0x6c, 0xc6, 0x37, 0x66, 0xfc, 0x66, 0xf3,
+  0xa4, 0x32, 0x07, 0x4d, 0x9e, 0xd2, 0xc1, 0x34, 0xf2, 0x81, 0xe4, 0x15,
+  0x9a, 0xe2, 0x8f, 0xe5, 0xe6, 0xb9, 0xb2, 0x9a, 0x64, 0x55, 0x7b, 0x1b,
+  0xa3, 0x3b, 0xae, 0x3f, 0x89, 0x99, 0xcf, 0xb9, 0xf9, 0xf8, 0x82, 0x44,
+  0x1d, 0x4e, 0x1a, 0xb5, 0x60, 0xce, 0xe8, 0xb5, 0x99, 0x2a, 0x33, 0x3d,
+  0xb4, 0xb1, 0x68, 0xf6, 0x1e, 0x92, 0x53, 0xb3, 0x86, 0x2c, 0x1f, 0xbc,
+  0xfd, 0x37, 0xcd, 0x9a, 0xe6, 0xd1, 0x99, 0x73, 0x9b, 0x68, 0x7f, 0x37,
+  0xd8, 0x47, 0xcb, 0x9e, 0x37, 0x4b, 0xbf, 0xbf, 0xd7, 0x7e, 0xf8, 0x3b,
+  0x23, 0x37, 0xdd, 0x0e, 0x36, 0x5f, 0xff, 0xaf, 0x7f, 0x78, 0x1b, 0xe1,
+  0x9e, 0x7e, 0x9b, 0x17, 0x77, 0xe5, 0xad, 0x19, 0x38, 0x2e, 0xb6, 0xb4,
+  0x35, 0xa9, 0x09, 0x89, 0x86, 0xd9, 0xbc, 0xb1, 0x37, 0x06, 0xed, 0x10,
+  0xf3, 0xa3, 0x51, 0x3a, 0x9a, 0x3e, 0x24, 0x37, 0xe9, 0x5d, 0x46, 0xe3,
+  0x9d, 0x9b, 0xad, 0x43, 0x33, 0x60, 0x24, 0xf9, 0x14, 0xa2, 0x45, 0xce,
+  0xea, 0xa4, 0x5c, 0x8c, 0xcc, 0x79, 0xff, 0xdb, 0xa2, 0x6c, 0x78, 0x62,
+  0xd2, 0xbb, 0x32, 0x9f, 0xb4, 0xae, 0xc7, 0x9b, 0x8c, 0x64, 0x0c, 0x7d,
+  0x18, 0xf7, 0x86, 0x91, 0x71, 0xd4, 0x53, 0xec, 0xfd, 0xbc, 0xa1, 0x1b,
+  0xc8, 0x48, 0xa7, 0x74, 0x5a, 0x97, 0x49, 0x72, 0x5d, 0xd2, 0xc6, 0x85,
+  0x4c, 0xc4, 0xce, 0x33, 0x8b, 0x72, 0x93, 0xd2, 0x45, 0x63, 0xee, 0x14,
+  0xbb, 0x35, 0xab, 0x0c, 0xe2, 0x11, 0x2b, 0x95, 0x4e, 0x7b, 0x7c, 0xa1,
+  0xd0, 0x3b, 0x32, 0x55, 0xc9, 0xc6, 0xbf, 0x6d, 0xf4, 0x92, 0x8d, 0xff,
+  0xd8, 0x80, 0x68, 0xdf, 0xf8, 0xf7, 0x0d, 0xb7, 0xce, 0x46, 0x43, 0xba,
+  0xcb, 0x27, 0x74, 0x37, 0x98, 0x91, 0x1c, 0x9f, 0xdf, 0xbd, 0x4c, 0xfe,
+  0x4e, 0xd7, 0xb9, 0x11, 0x7f, 0xd9, 0x27, 0xdd, 0x24, 0x3a, 0x36, 0xf3,
+  0x76, 0x62, 0xe4, 0x60, 0x3a, 0xa7, 0x7b, 0x3d, 0xab, 0xc6, 0x66, 0x47,
+  0xa5, 0xd7, 0x66, 0x0f, 0x99, 0xeb, 0x51, 0x9b, 0xa3, 0xf6, 0xe9, 0x15,
+  0x1e, 0x96, 0x91, 0x59, 0x49, 0x91, 0xce, 0xcc, 0x26, 0x3d, 0xa1, 0x1e,
+  0xe5, 0x45, 0xb8, 0x98, 0x3f, 0x5c, 0x65, 0x9f, 0xef, 0xec, 0xef, 0x3f,
+  0xfb, 0xc3, 0xde, 0x8b, 0xac, 0xb9, 0xd9, 0xf9, 0x69, 0xdb, 0x3e, 0x72,
+  0x7c, 0x85, 0x69, 0xd7, 0xed, 0xa7, 0x9d, 0x30, 0x17, 0xaf, 0x15, 0xdc,
+  0xe6, 0x7d, 0xf3, 0xf7, 0xec, 0x2a, 0xff, 0xd4, 0x53, 0x15, 0x86, 0x8f,
+  0x41, 0x6a, 0xb6, 0x9a, 0x59, 0x3f, 0x3a, 0xb5, 0xda, 0xdc, 0xf5, 0x22,
+  0xab, 0xcd, 0x4c, 0xde, 0xdf, 0xa4, 0x4d, 0x62, 0x1b, 0xe0, 0x95, 0x9d,
+  0xe5, 0xd7, 0x37, 0x4d, 0x72, 0x9f, 0x92, 0xfc, 0x3f, 0x6e, 0xb8, 0x09,
+  0xba, 0x78, 0x8d, 0xd4, 0xbf, 0x4a, 0x8d, 0xf8, 0xa6, 0x35, 0xc4, 0x2d,
+  0x3b, 0x72, 0x97, 0x7e, 0x63, 0xb6, 0x39, 0x2f, 0x88, 0xd3, 0x70, 0x46,
+  0x69, 0x4d, 0x07, 0xa9, 0x30, 0xe7, 0xb5, 0x31, 0xd7, 0xf6, 0x82, 0xfe,
+  0x75, 0x63, 0x2e, 0x66, 0xcc, 0x81, 0x74, 0x14, 0x77, 0xd7, 0x3b, 0x5a,
+  0x4e, 0x5a, 0x1b, 0x7b, 0x9f, 0x98, 0x45, 0xea, 0xc9, 0x32, 0xdb, 0x37,
+  0x6a, 0x73, 0xe0, 0x8c, 0xb0, 0xb0, 0x3b, 0x63, 0x9d, 0xe4, 0xde, 0x3a,
+  0x8f, 0x13, 0x7d, 0x4c, 0x6b, 0xba, 0xbb, 0xf9, 0x86, 0x36, 0x9d, 0xf7,
+  0x06, 0x6b, 0x26, 0x2d, 0xbd, 0x25, 0x2d, 0xa1, 0xa3, 0x8b, 0xe0, 0xb5,
+  0x49, 0x69, 0x36, 0x99, 0xe9, 0xad, 0x91, 0x8f, 0x34, 0x32, 0x92, 0x7a,
+  0x98, 0x15, 0x6c, 0x72, 0xd3, 0x26, 0xfd, 0x30, 0x6f, 0x48, 0xec, 0x43,
+  0xb1, 0x34, 0xfd, 0x35, 0x93, 0x02, 0xdd, 0xd0, 0xc8, 0x4e, 0x6f, 0xfc,
+  0xb8, 0xb1, 0xcc, 0xb3, 0xc9, 0x9d, 0x51, 0x1c, 0x8c, 0x8e, 0x98, 0xd9,
+  0xb7, 0x70, 0xc5, 0x8e, 0x49, 0x5d, 0x99, 0x9a, 0xf3, 0x32, 0x2e, 0xab,
+  0x8a, 0x94, 0x70, 0x5a, 0xc1, 0x11, 0xcb, 0xb5, 0x59, 0x66, 0x6e, 0x76,
+  0x7f, 0x3a, 0x73, 0xba, 0x63, 0x8c, 0x7c, 0x31, 0xaa, 0x02, 0x24, 0x88,
+  0xb9, 0xd2, 0x21, 0x86, 0x31, 0x70, 0xf4, 0x8e, 0xda, 0x1e, 0x8f, 0xb3,
+  0x79, 0x53, 0xc7, 0xc6, 0xa4, 0x0b, 0x6e, 0xba, 0x53, 0x65, 0x34, 0xf3,
+  0xbe, 0x1e, 0x84, 0x79, 0xb5, 0xf7, 0x30, 0x54, 0x21, 0x55, 0x2d, 0x8c,
+  0x6a, 0x54, 0xdb, 0x59, 0x6b, 0xb0, 0x37, 0x8c, 0x18, 0xc3, 0x9c, 0xcf,
+  0xa8, 0xa3, 0xf4, 0x70, 0xcd, 0x27, 0x15, 0xe2, 0x92, 0x16, 0x92, 0x95,
+  0x5f, 0xfe, 0x2e, 0xdd, 0x26, 0x66, 0x3e, 0x6d, 0xe3, 0xe6, 0xab, 0x76,
+  0x4d, 0xe9, 0xf3, 0xb5, 0x31, 0x1b, 0xcc, 0xe5, 0x3a, 0xa9, 0x6f, 0x8c,
+  0x3e, 0x54, 0xcb, 0xc9, 0xce, 0x67, 0x66, 0xcf, 0xdc, 0xd1, 0xfa, 0xce,
+  0xb3, 0x6c, 0x32, 0x48, 0xce, 0xae, 0x48, 0xaa, 0x56, 0xa6, 0xd3, 0x0d,
+  0x7e, 0x4d, 0x82, 0xde, 0xcc, 0xdb, 0x04, 0x7a, 0xb5, 0x3d, 0x5a, 0xdc,
+  0x15, 0x4f, 0x62, 0xd3, 0x4e, 0x33, 0x93, 0x9d, 0x90, 0x94, 0x9b, 0xb6,
+  0x6f, 0x05, 0x9c, 0x43, 0x23, 0xbd, 0xa9, 0x7b, 0xa3, 0x2c, 0xc1, 0x4e,
+  0x1c, 0x65, 0xcd, 0x7d, 0x96, 0xd9, 0xe6, 0xea, 0xcc, 0xdc, 0x44, 0xb4,
+  0x68, 0xac, 0x8c, 0x41, 0x18, 0xd2, 0xd4, 0x9e, 0x5f, 0x9c, 0x7d, 0x75,
+  0x71, 0x34, 0x1c, 0x26, 0xef, 0x8f, 0x2e, 0x8f, 0x2e, 0x5a, 0x33, 0x5d,
+  0x94, 0xd5, 0x0c, 0x2b, 0x3a, 0xc9, 0xeb, 0xf9, 0x34, 0x7d, 0xa0, 0xa5,
+  0x36, 0x23, 0xb9, 0xae, 0xe8, 0x64, 0xcd, 0x32, 0xba, 0x15, 0x26, 0x0b,
+  0x48, 0xb2, 0xa4, 0x34, 0xf2, 0x21, 0x15, 0x25, 0x94, 0x84, 0x09, 0x34,
+  0xd7, 0xe2, 0xda, 0xcd, 0xb4, 0x91, 0x38, 0x72, 0xb9, 0xd1, 0xed, 0x66,
+  0xd7, 0x83, 0xb4, 0x41, 0xd8, 0x1b, 0x3d, 0xf7, 0x33, 0x9e, 0xa6, 0x1a,
+  0x63, 0x32, 0x7b, 0x36, 0x9f, 0x41, 0xd8, 0x99, 0x3f, 0x9d, 0x02, 0x98,
+  0x5d, 0x19, 0xed, 0xd7, 0x5c, 0x78, 0xac, 0xbc, 0x77, 0xfb, 0xa4, 0xbd,
+  0xb5, 0x2a, 0xab, 0xd9, 0x86, 0x24, 0x9a, 0xa9, 0x41, 0xee, 0x0a, 0x7f,
+  0xc1, 0x0a, 0x31, 0xa3, 0x26, 0x90, 0xec, 0x93, 0xc7, 0xe6, 0xd4, 0x85,
+  0xcc, 0xac, 0xec, 0x84, 0x9b, 0xaf, 0x17, 0x57, 0x38, 0xc8, 0xc9, 0xa6,
+  0x51, 0x96, 0xdf, 0x1b, 0x03, 0xc6, 0x18, 0x11, 0xbd, 0xe4, 0x7c, 0x0b,
+  0xef, 0xed, 0xee, 0xec, 0x3d, 0x67, 0x41, 0x30, 0xd0, 0xe6, 0xde, 0x79,
+  0x82, 0x78, 0xf7, 0x96, 0x96, 0x97, 0x1f, 0xa2, 0xc6, 0x07, 0xc9, 0xee,
+  0x7b, 0xfe, 0xc9, 0xf3, 0xcf, 0x5f, 0x7c, 0xf6, 0x52, 0x7e, 0xd8, 0xde,
+  0xe0, 0xb6, 0xff, 0xd8, 0x1d, 0x30, 0xc6, 0xc8, 0x3a, 0x33, 0x3d, 0x31,
+  0xa3, 0x9b, 0xe5, 0x85, 0x39, 0x26, 0xe6, 0x58, 0x89, 0xac, 0xa2, 0xfd,
+  0x6c, 0x3a, 0x7f, 0xc5, 0x92, 0x4d, 0xd6, 0xb5, 0x6d, 0xe5, 0x99, 0x97,
+  0xcd, 0x96, 0x35, 0xb2, 0xdc, 0x2e, 0x12, 0x66, 0xc2, 0x1c, 0x30, 0xba,
+  0x75, 0x46, 0x24, 0x60, 0xc9, 0xd4, 0x31, 0x3a, 0x69, 0x16, 0xfd, 0x9a,
+  0xbd, 0x15, 0xcd, 0x1b, 0xa6, 0x6f, 0xe6, 0x4e, 0xa4, 0x6b, 0x2e, 0x9c,
+  0x77, 0x23, 0x0a, 0x20, 0x21, 0xef, 0xf3, 0x1a, 0xa2, 0xe1, 0xbe, 0x5c,
+  0x4c, 0x8d, 0x61, 0x41, 0x0f, 0x2c, 0xe6, 0x78, 0xc1, 0x7c, 0x6a, 0xee,
+  0x64, 0xc0, 0x2c, 0xff, 0x44, 0x7b, 0xa7, 0xdb, 0x8a, 0xe9, 0x9a, 0xf9,
+  0xe7, 0xdc, 0x6c, 0x25, 0xee, 0xce, 0xa0, 0x7b, 0x43, 0x40, 0xf6, 0x05,
+  0x3b, 0x91, 0xce, 0x3c, 0x84, 0xf6, 0xf9, 0xd9, 0xf0, 0x92, 0x34, 0x80,
+  0xf3, 0x0f, 0x97, 0xa6, 0x21, 0xa3, 0x02, 0xd4, 0x8d, 0xd9, 0x94, 0xf4,
+  0x62, 0x91, 0xc1, 0xaa, 0xd3, 0xe6, 0xcc, 0xde, 0xcb, 0x21, 0xa8, 0xa0,
+  0xd6, 0xe8, 0x27, 0xb9, 0x8f, 0x6c, 0xf6, 0xd2, 0x11, 0x54, 0xa3, 0x97,
+  0xef, 0x70, 0xfb, 0x4e, 0xb2, 0xf9, 0xc5, 0x96, 0xd9, 0xb3, 0xfd, 0xd2,
+  0xce, 0x4e, 0xbf, 0x2f, 0xaf, 0x9a, 0x6f, 0xd7, 0xf9, 0x2c, 0x9f, 0xa6,
+  0x9e, 0x7a, 0x25, 0x12, 0x95, 0xce, 0xa7, 0x95, 0x2b, 0x63, 0xb3, 0x6b,
+  0xd0, 0x6d, 0x67, 0xdd, 0xd1, 0x1c, 0x42, 0x2a, 0xb9, 0xa5, 0x9a, 0x90,
+  0x42, 0x00, 0x25, 0x76, 0x9e, 0xdb, 0xa9, 0xa3, 0x35, 0x23, 0x71, 0xd5,
+  0x9a, 0xa8, 0xee, 0xba, 0x05, 0x13, 0x47, 0x37, 0x12, 0xdc, 0x07, 0x76,
+  0xea, 0x92, 0xf5, 0x51, 0x5a, 0xad, 0x27, 0x56, 0x16, 0xf3, 0xd9, 0xa4,
+  0x13, 0x52, 0x65, 0xd7, 0x0b, 0x33, 0x82, 0x84, 0x67, 0x97, 0x46, 0xfa,
+  0x7b, 0x6f, 0xa4, 0xda, 0x40, 0x7f, 0x44, 0x8f, 0xe4, 0x35, 0x5b, 0x7e,
+  0x57, 0xc6, 0x94, 0xa0, 0x43, 0xa3, 0x9a, 0x2d, 0x34, 0x1a, 0xd9, 0x31,
+  0x91, 0x0d, 0x63, 0x77, 0x69, 0x49, 0x47, 0xa5, 0xc9, 0x8c, 0xa0, 0x81,
+  0xf8, 0xa7, 0x27, 0xfb, 0x66, 0xc9, 0xfa, 0xfd, 0xda, 0xcc, 0x3f, 0xa9,
+  0xc3, 0x73, 0x31, 0xb3, 0xcf, 0xe0, 0xc3, 0xb0, 0x0e, 0x8f, 0x33, 0x76,
+  0x75, 0xf0, 0xb5, 0xc9, 0xef, 0x42, 0x84, 0x1a, 0x45, 0xf5, 0xde, 0x7c,
+  0x38, 0x35, 0x4b, 0x66, 0x0e, 0xdc, 0x7b, 0x9a, 0x28, 0x76, 0x57, 0x24,
+  0xd2, 0x54, 0x9d, 0x60, 0x67, 0xe4, 0x74, 0xee, 0x53, 0xa7, 0xcb, 0x4c,
+  0x26, 0x39, 0xfd, 0xd6, 0x9c, 0x2f, 0x73, 0xc3, 0x2d, 0x32, 0x98, 0x03,
+  0x32, 0xa9, 0x33, 0x37, 0x99, 0xb0, 0x2c, 0xeb, 0x9b, 0x92, 0x2c, 0xb7,
+  0x75, 0x96, 0xc5, 0x7d, 0xfa, 0xd6, 0x3a, 0xee, 0xf3, 0x59, 0xa2, 0xdf,
+  0x92, 0x4f, 0x99, 0x71, 0x4c, 0x7c, 0xdd, 0xac, 0x67, 0x2e, 0x9a, 0x07,
+  0x4f, 0x6f, 0x87, 0xac, 0xe6, 0xbe, 0x57, 0x56, 0xe1, 0x31, 0x57, 0xea,
+  0x9c, 0x94, 0x29, 0x91, 0xe1, 0xb8, 0x0c, 0x71, 0x64, 0x6b, 0xee, 0x5a,
+  0xcf, 0xcc, 0x2d, 0x3d, 0x79, 0x7d, 0xa3, 0x8f, 0x7a, 0x17, 0x6b, 0x6a,
+  0x06, 0x47, 0x97, 0x03, 0x99, 0xb8, 0x13, 0x95, 0xfb, 0x65, 0xc5, 0xc2,
+  0x6c, 0x5a, 0x9a, 0xbd, 0xbc, 0xce, 0x2a, 0xab, 0x74, 0x9b, 0x7a, 0x4d,
+  0xbd, 0xa4, 0x19, 0x67, 0xd7, 0x4f, 0x69, 0xd7, 0xc6, 0x76, 0x5a, 0xe6,
+  0xab, 0x7e, 0xb4, 0x6b, 0x6e, 0xa2, 0x86, 0x98, 0x23, 0x73, 0x75, 0xd6,
+  0xb4, 0x8f, 0x75, 0xe6, 0xb1, 0xbd, 0xcd, 0x55, 0xb7, 0xd1, 0xf0, 0x79,
+  0x84, 0xd9, 0xd3, 0x99, 0xf9, 0x1a, 0xdb, 0x47, 0x2e, 0x32, 0x3b, 0x32,
+  0x33, 0xa2, 0x49, 0x9e, 0x62, 0x9f, 0xf0, 0xd2, 0x40, 0x19, 0x71, 0x46,
+  0x5a, 0x44, 0x0f, 0x7e, 0xe8, 0xda, 0x58, 0xd3, 0xa9, 0x7f, 0x25, 0x69,
+  0x9f, 0xfa, 0x67, 0x66, 0xec, 0x27, 0x18, 0x47, 0xff, 0x2e, 0xa1, 0xe3,
+  0x67, 0xcc, 0x06, 0x3a, 0x8b, 0xfd, 0xb3, 0x93, 0x3b, 0xef, 0x18, 0x91,
+  0x31, 0x5d, 0x90, 0x9e, 0xd2, 0x83, 0xc3, 0x62, 0x54, 0x96, 0xc6, 0x72,
+  0x75, 0x43, 0xa3, 0xfb, 0x20, 0x2b, 0x68, 0xb7, 0xcb, 0x8a, 0x1a, 0x91,
+  0x30, 0xb7, 0xf2, 0xf6, 0xc1, 0x98, 0x4b, 0xe9, 0x75, 0x9a, 0xdb, 0xfd,
+  0x26, 0x27, 0x63, 0x92, 0xe8, 0xc3, 0x45, 0x29, 0xcf, 0xd3, 0x52, 0x91,
+  0x0a, 0x24, 0x72, 0x6b, 0x51, 0xf3, 0xf1, 0x31, 0xa3, 0x32, 0x92, 0x07,
+  0xb2, 0x43, 0xda, 0x25, 0xb5, 0x51, 0x9b, 0x1b, 0x41, 0x51, 0x26, 0x9d,
+  0x13, 0xc2, 0x17, 0x1a, 0xa4, 0x69, 0x71, 0x7d, 0x90, 0x7c, 0x5d, 0xde,
+  0x67, 0x70, 0xdf, 0x41, 0xbf, 0xcf, 0xc9, 0x01, 0x65, 0x54, 0xc1, 0xfb,
+  0x2c, 0x99, 0x19, 0xd5, 0xd3, 0xcc, 0x26, 0xb4, 0x0f, 0xfc, 0xcc, 0xf4,
+  0xd3, 0xd9, 0x2c, 0xe5, 0x3d, 0xcf, 0x92, 0x1d, 0x85, 0x5d, 0xca, 0x2b,
+  0x3e, 0x12, 0xc9, 0x26, 0xd4, 0x9b, 0x31, 0xcd, 0xd6, 0xbc, 0x71, 0xa3,
+  0xb0, 0x13, 0x72, 0x9f, 0xd6, 0xde, 0xe1, 0x62, 0xe3, 0x34, 0xf9, 0x6c,
+  0xb0, 0xfb, 0x6a, 0xb0, 0x33, 0x20, 0x53, 0x24, 0xbb, 0xcb, 0xcb, 0x45,
+  0x4d, 0xeb, 0x49, 0x3d, 0xf1, 0x4e, 0x27, 0xb9, 0x89, 0x68, 0x79, 0xaf,
+  0xaf, 0xa7, 0xac, 0xf8, 0x6c, 0x97, 0x57, 0x57, 0x89, 0xa7, 0x1c, 0x55,
+  0xd9, 0x9c, 0x6d, 0x20, 0x9a, 0x1b, 0x39, 0x70, 0x2c, 0x54, 0x7d, 0xad,
+  0x48, 0x66, 0xd3, 0x79, 0x14, 0xfa, 0xfd, 0x74, 0x54, 0x37, 0x64, 0x4e,
+  0xf5, 0x17, 0x45, 0xfe, 0xa9, 0x5f, 0x97, 0xe3, 0x5b, 0xb3, 0x2c, 0xaf,
+  0xe7, 0x69, 0x73, 0xf3, 0x45, 0xc7, 0x53, 0xbb, 0x49, 0xb7, 0xc9, 0x56,
+  0x92, 0x1c, 0xb2, 0x62, 0x49, 0x73, 0x51, 0xf1, 0x89, 0x33, 0xeb, 0x29,
+  0xad, 0x24, 0x1f, 0x4c, 0x2b, 0x66, 0x37, 0xcf, 0xcc, 0xb2, 0x26, 0xdc,
+  0x58, 0x4f, 0x85, 0x69, 0xa7, 0x39, 0x78, 0x01, 0xe9, 0x22, 0x81, 0x33,
+  0xcd, 0x1c, 0x9e, 0xb2, 0xba, 0x1d, 0x90, 0xdb, 0xc2, 0x58, 0x8d, 0xfb,
+  0xb4, 0xa1, 0x1b, 0x23, 0xc6, 0x1a, 0x9e, 0xf7, 0x5a, 0x84, 0x30, 0x75,
+  0x8b, 0x65, 0xb2, 0x93, 0x52, 0x3a, 0x9f, 0xda, 0x03, 0xf9, 0x6c, 0xa2,
+  0xf6, 0x86, 0x6c, 0xbd, 0x8d, 0x3f, 0x1b, 0x0b, 0xf0, 0x86, 0x17, 0x1e,
+  0x8d, 0xf1, 0x18, 0xcd, 0x1e, 0xbd, 0x36, 0x36, 0x44, 0xd1, 0x74, 0x9a,
+  0x33, 0x5f, 0xa5, 0xcb, 0x9a, 0xee, 0x19, 0x36, 0x77, 0xb1, 0x4d, 0xc4,
+  0x2d, 0x63, 0x2d, 0xd0, 0xc1, 0x5a, 0xe7, 0xb5, 0x03, 0x5d, 0xd5, 0xcf,
+  0x06, 0x2f, 0x9e, 0x99, 0x45, 0xf5, 0x27, 0xba, 0x78, 0x20, 0x77, 0x66,
+  0x7c, 0x52, 0x2f, 0xcd, 0x5d, 0x5a, 0xb3, 0x7a, 0x62, 0xce, 0xf0, 0x55,
+  0x7e, 0xbd, 0xa8, 0x32, 0xbe, 0xd4, 0xe0, 0x01, 0x55, 0xc7, 0x27, 0xdd,
+  0x13, 0x37, 0x25, 0xfc, 0x85, 0x46, 0xbe, 0x64, 0xd3, 0xab, 0x5e, 0x77,
+  0x16, 0x48, 0xa3, 0xa3, 0x2d, 0x80, 0x21, 0x62, 0x13, 0x19, 0xcd, 0x0d,
+  0x8d, 0x15, 0x99, 0xdc, 0xeb, 0x33, 0x33, 0xc1, 0x09, 0x39, 0xcc, 0x92,
+  0xf1, 0x34, 0xcd, 0x67, 0x30, 0x77, 0xc4, 0x21, 0x34, 0xe8, 0x34, 0x77,
+  0x29, 0xea, 0x38, 0x34, 0xf1, 0x11, 0x59, 0x03, 0x55, 0x4d, 0xc2, 0x8a,
+  0x26, 0x21, 0x55, 0x65, 0x82, 0x75, 0xed, 0x9b, 0x6c, 0x7c, 0xab, 0xab,
+  0xa9, 0xb7, 0x70, 0xbf, 0xd3, 0x1c, 0x79, 0x42, 0x61, 0x72, 0x98, 0xa7,
+  0x16, 0x66, 0x4d, 0xe7, 0x65, 0x5d, 0xe7, 0xe4, 0x51, 0x20, 0x0d, 0x79,
+  0x31, 0x86, 0xe2, 0x4c, 0x26, 0xf6, 0x27, 0xb3, 0x92, 0xba, 0x25, 0x12,
+  0xb3, 0xc7, 0x8a, 0x49, 0xbf, 0xa9, 0xf2, 0xf9, 0xb2, 0xde, 0xf1, 0x95,
+  0xd1, 0xbe, 0xb3, 0x6b, 0x31, 0x62, 0x60, 0x1f, 0xb0, 0xc5, 0x30, 0x4e,
+  0x3a, 0xb3, 0xd9, 0x69, 0x8e, 0xe7, 0xb6, 0x47, 0x26, 0x72, 0x6e, 0x44,
+  0x28, 0xeb, 0x8f, 0xf0, 0x00, 0x19, 0x6d, 0x51, 0xce, 0xb2, 0x51, 0x6c,
+  0xf3, 0x31, 0xee, 0x85, 0xfc, 0x3a, 0x23, 0x8f, 0xb3, 0x39, 0xde, 0xcd,
+  0xd4, 0xdc, 0x16, 0x9e, 0xa0, 0xb0, 0x2b, 0x5e, 0x64, 0xd7, 0x65, 0x43,
+  0x02, 0x3a, 0xd8, 0x26, 0x1f, 0xb0, 0xf1, 0xed, 0x9e, 0x50, 0x4d, 0xc8,
+  0xbf, 0xa6, 0x72, 0x56, 0x51, 0xcc, 0xa7, 0x59, 0x13, 0x12, 0x23, 0xac,
+  0x6e, 0xcc, 0x0e, 0xec, 0xae, 0xba, 0x69, 0x6d, 0x9c, 0x41, 0x1d, 0xc5,
+  0x5d, 0xaa, 0x57, 0xb9, 0xea, 0x40, 0x23, 0x32, 0xd9, 0xc8, 0x3c, 0xbe,
+  0xcf, 0xc7, 0x99, 0x7a, 0x28, 0xc4, 0x93, 0x36, 0xcd, 0xc3, 0xbd, 0x3f,
+  0x5b, 0xd4, 0xb0, 0x9a, 0x58, 0x4d, 0x21, 0x83, 0xf2, 0x3e, 0x27, 0x35,
+  0xe6, 0xf8, 0x4a, 0xce, 0x2a, 0xdd, 0xa2, 0x7c, 0x3e, 0xd2, 0x2a, 0x87,
+  0xf5, 0x6c, 0x9a, 0x93, 0x7e, 0x7a, 0x46, 0x8e, 0xda, 0x6d, 0xae, 0xdf,
+  0x78, 0x5f, 0x34, 0x3b, 0xa7, 0xd1, 0xc1, 0x90, 0xbc, 0x4a, 0xf3, 0x69,
+  0x64, 0x9e, 0xa0, 0xa0, 0x1a, 0x8b, 0xf4, 0x26, 0xab, 0x64, 0x0d, 0x16,
+  0x34, 0xe9, 0x14, 0x1d, 0x08, 0x9e, 0x1e, 0x66, 0x19, 0xab, 0x58, 0xd0,
+  0xc7, 0x3e, 0x3d, 0xd8, 0xe9, 0xc5, 0x3d, 0xc6, 0x6b, 0x27, 0x7f, 0xe7,
+  0xe5, 0xf3, 0x8e, 0x67, 0x4a, 0xad, 0xa6, 0x73, 0x72, 0x83, 0x77, 0x4f,
+  0x28, 0x69, 0xa3, 0x14, 0x49, 0xd9, 0x52, 0xa7, 0x9a, 0x38, 0x15, 0x0b,
+  0x1b, 0x81, 0x80, 0x70, 0x20, 0x87, 0xbf, 0x1c, 0x61, 0x6e, 0x47, 0x34,
+  0xa5, 0x4e, 0x73, 0x46, 0x35, 0x23, 0x3f, 0x21, 0x8c, 0xf0, 0xd6, 0x8e,
+  0x35, 0x06, 0x71, 0x65, 0xfd, 0xe0, 0xe4, 0x04, 0xa3, 0xf9, 0x56, 0xdd,
+  0x13, 0x67, 0x16, 0x2f, 0x75, 0x9a, 0x23, 0x6d, 0x98, 0x54, 0x07, 0x73,
+  0x68, 0x72, 0xda, 0x8f, 0xd8, 0x04, 0xea, 0x0a, 0x35, 0xdb, 0x97, 0x3d,
+  0x63, 0x2a, 0x57, 0x59, 0xd9, 0x40, 0x77, 0xaf, 0xa6, 0xe9, 0xb5, 0xd9,
+  0x77, 0x9d, 0xe6, 0xf2, 0x6b, 0x63, 0xe3, 0x72, 0x40, 0xa2, 0x2e, 0xcd,
+  0xed, 0x41, 0xe3, 0x16, 0x7b, 0xdf, 0x98, 0x7b, 0x66, 0x9b, 0x4d, 0x17,
+  0x90, 0x80, 0x67, 0x66, 0x80, 0xc3, 0xe1, 0xd7, 0x5b, 0xbe, 0x80, 0xc3,
+  0xfc, 0x3e, 0x45, 0xbc, 0x41, 0x3e, 0xc1, 0x34, 0x49, 0xbe, 0xc4, 0x9a,
+  0x74, 0xa5, 0x1c, 0xaf, 0x74, 0x64, 0xf2, 0x74, 0x22, 0xc8, 0x45, 0x34,
+  0x10, 0x01, 0x00, 0x09, 0x80, 0x69, 0x52, 0x6f, 0x15, 0xef, 0x70, 0xf2,
+  0x22, 0xf0, 0x35, 0x6d, 0xfe, 0xb6, 0xa8, 0x17, 0x64, 0xb8, 0x77, 0x9a,
+  0x9b, 0x1b, 0x41, 0xd6, 0x18, 0xe3, 0xcd, 0x48, 0xa4, 0x45, 0x41, 0x7f,
+  0x5a, 0xed, 0x22, 0x87, 0x9e, 0x4b, 0x4b, 0x52, 0x91, 0x73, 0x90, 0x2c,
+  0x04, 0x7b, 0x37, 0x1b, 0xd1, 0x22, 0x2d, 0x77, 0x97, 0x16, 0xee, 0x13,
+  0x0a, 0x5e, 0x40, 0xec, 0x4c, 0x72, 0x0a, 0x7c, 0xd1, 0xc1, 0x5b, 0x22,
+  0xc5, 0x37, 0xeb, 0x85, 0x91, 0x33, 0xa4, 0x55, 0xb1, 0x10, 0x09, 0x04,
+  0x88, 0x0a, 0x19, 0xa3, 0xc0, 0x79, 0xd2, 0x64, 0xeb, 0xd7, 0x3e, 0x26,
+  0x58, 0x38, 0x7f, 0x25, 0xc7, 0x46, 0x9f, 0x35, 0x9a, 0xea, 0xeb, 0xc3,
+  0x83, 0x84, 0xfe, 0x42, 0xb2, 0xd3, 0x7c, 0x37, 0xd0, 0x07, 0x2e, 0x4f,
+  0x86, 0xb1, 0xa5, 0x6d, 0xbb, 0xd5, 0xbd, 0x06, 0xc4, 0xf3, 0x54, 0x92,
+  0xde, 0x64, 0x94, 0xcf, 0x60, 0xf6, 0xe8, 0x82, 0xcf, 0x4c, 0x87, 0xc5,
+  0xa4, 0xe0, 0x90, 0x1d, 0x09, 0x34, 0xa3, 0x50, 0x35, 0xa4, 0x50, 0x58,
+  0x2f, 0x53, 0xbb, 0x63, 0x70, 0x2b, 0x75, 0xb7, 0x8a, 0xf7, 0xfb, 0xcd,
+  0x7a, 0xcb, 0xca, 0x34, 0xd3, 0xca, 0xf9, 0xd1, 0x7b, 0xa8, 0xf8, 0xa9,
+  0xd9, 0x42, 0xa7, 0xea, 0xd1, 0xd1, 0x88, 0xdc, 0x68, 0x91, 0x4f, 0x5b,
+  0x6e, 0x53, 0x67, 0x95, 0x20, 0x1c, 0xc6, 0x3b, 0x0c, 0x5d, 0xe3, 0x00,
+  0x40, 0x0e, 0x0f, 0x5a, 0x77, 0xbf, 0x35, 0x0f, 0x73, 0x71, 0xfe, 0x2d,
+  0xea, 0x96, 0x8d, 0xad, 0xf7, 0xf4, 0xb4, 0x81, 0x1a, 0x42, 0xaa, 0xbf,
+  0xd7, 0x66, 0xb0, 0x56, 0xe8, 0x16, 0x5d, 0x0b, 0xd7, 0x45, 0xfe, 0x77,
+  0xf1, 0x32, 0x64, 0xc5, 0x5d, 0x5e, 0x95, 0x05, 0x29, 0x2d, 0xc6, 0x3a,
+  0xa8, 0x72, 0x88, 0x69, 0x52, 0x7c, 0x8d, 0x20, 0xd9, 0x38, 0xfc, 0x70,
+  0x71, 0xf2, 0xf1, 0xf0, 0xe0, 0xe3, 0x97, 0x1f, 0x4e, 0xdf, 0x9e, 0x1c,
+  0x6d, 0x74, 0x8f, 0xf7, 0x15, 0x0b, 0x08, 0x3a, 0x32, 0x35, 0xa9, 0x66,
+  0x38, 0x2b, 0xa6, 0x8b, 0xdc, 0xf2, 0x75, 0x7e, 0x67, 0x04, 0x1c, 0x94,
+  0x2c, 0xb8, 0x31, 0xf1, 0x37, 0x18, 0xfe, 0x32, 0xe1, 0x9d, 0xe6, 0x46,
+  0xe6, 0x66, 0x36, 0x9d, 0xe6, 0x73, 0x28, 0x83, 0xd7, 0x33, 0x23, 0x86,
+  0x8d, 0x76, 0x30, 0x18, 0x19, 0x2d, 0x31, 0x5d, 0x2b, 0xa4, 0xdc, 0x79,
+  0x7a, 0xb4, 0xe7, 0xd1, 0x5c, 0x34, 0x46, 0x8d, 0x54, 0x1f, 0xaa, 0xb1,
+  0xd3, 0xca, 0x5b, 0x8d, 0x8d, 0x1a, 0x1d, 0xf4, 0x20, 0xb2, 0xdc, 0x35,
+  0xaf, 0x0b, 0x4f, 0xc5, 0x06, 0xb5, 0x64, 0x76, 0x72, 0x5f, 0x3a, 0x39,
+  0xae, 0x1a, 0xa3, 0x00, 0x66, 0x39, 0x8e, 0x88, 0x06, 0x7f, 0x48, 0x41,
+  0x86, 0xff, 0xa2, 0xab, 0xa9, 0x18, 0xf3, 0xf0, 0x81, 0xe6, 0x80, 0x1a,
+  0x19, 0x64, 0x9f, 0x32, 0x9c, 0x41, 0x79, 0xeb, 0x70, 0x51, 0xe1, 0x54,
+  0x7f, 0x67, 0xb4, 0x13, 0x92, 0x85, 0x6f, 0xe1, 0x00, 0x31, 0x2f, 0xe8,
+  0x43, 0xe6, 0xda, 0xe9, 0x5e, 0x81, 0xe5, 0x74, 0x42, 0x8e, 0x06, 0x18,
+  0x9b, 0x70, 0x0d, 0x9c, 0x1f, 0x5c, 0x7e, 0x1d, 0xcc, 0x09, 0x09, 0x7c,
+  0x07, 0x44, 0x90, 0xad, 0x08, 0x13, 0xa9, 0x6e, 0xe4, 0x80, 0x9c, 0x0e,
+  0x87, 0x09, 0xc2, 0xdc, 0xd3, 0x7c, 0x54, 0xa5, 0xf4, 0x4d, 0xfa, 0x31,
+  0xfd, 0xd4, 0x6c, 0xeb, 0x4e, 0x73, 0xe7, 0xdf, 0x1c, 0x0e, 0x7f, 0xbf,
+  0xbb, 0x6b, 0xd4, 0xc0, 0xc9, 0xc2, 0xcc, 0xcb, 0xa6, 0x79, 0xa5, 0xa8,
+  0xcd, 0xc9, 0x9c, 0x0d, 0xea, 0x72, 0x0b, 0xd7, 0x38, 0x74, 0x3f, 0x5c,
+  0x14, 0xe9, 0x9d, 0xb9, 0x7f, 0xb1, 0x93, 0x78, 0x8e, 0x69, 0x3f, 0x77,
+  0x15, 0x76, 0x5e, 0x60, 0x45, 0x01, 0x18, 0xd9, 0x61, 0x6e, 0xf0, 0xe9,
+  0x43, 0x30, 0x8a, 0xcd, 0xfc, 0x6c, 0x28, 0x31, 0xf4, 0x74, 0x6c, 0xfe,
+  0x4a, 0xd6, 0xd4, 0x16, 0x8d, 0xad, 0x7d, 0xc6, 0x74, 0x5c, 0x43, 0xd6,
+  0x4f, 0x2f, 0xc9, 0xd9, 0x89, 0xd0, 0x7f, 0x28, 0x17, 0x8a, 0xee, 0xf1,
+  0x72, 0xf0, 0x0a, 0x74, 0x76, 0x94, 0x8e, 0x6f, 0xef, 0xd3, 0x6a, 0xc2,
+  0xae, 0x13, 0xb3, 0x67, 0x46, 0xf9, 0x34, 0x6f, 0x1e, 0xf8, 0x1e, 0xe9,
+  0x8e, 0x82, 0x83, 0x48, 0x34, 0x85, 0xe6, 0x24, 0x5d, 0x1b, 0xab, 0x88,
+  0xf4, 0x51, 0xb2, 0x15, 0xcd, 0xc1, 0xf0, 0xb4, 0x7e, 0x28, 0x4d, 0x8d,
+  0x55, 0x7a, 0xec, 0xb7, 0x3b, 0xcd, 0xc1, 0x11, 0x45, 0x27, 0x09, 0xdd,
+  0x74, 0xbb, 0x57, 0x05, 0xa1, 0x2f, 0xa6, 0x74, 0x03, 0x25, 0xf5, 0x83,
+  0xb9, 0xf7, 0x67, 0x49, 0x44, 0x69, 0x04, 0xea, 0x21, 0xf9, 0x26, 0x7b,
+  0x30, 0x26, 0x46, 0x5e, 0x38, 0x59, 0xc9, 0xde, 0xa2, 0x8c, 0x6c, 0x56,
+  0xd6, 0x4e, 0x73, 0xf5, 0x38, 0x66, 0xe2, 0x34, 0xe6, 0x3b, 0x25, 0xb4,
+  0xb1, 0xf8, 0x7d, 0xd5, 0xcc, 0xa9, 0x89, 0x8d, 0xba, 0x25, 0x94, 0xf1,
+  0xa5, 0xd8, 0x56, 0x0c, 0xae, 0x50, 0x38, 0x4f, 0x38, 0x3a, 0x4c, 0xce,
+  0xe7, 0x9a, 0xf7, 0xde, 0x34, 0xad, 0x1b, 0x58, 0x17, 0x18, 0xb7, 0xf8,
+  0x28, 0xda, 0xb7, 0x09, 0xe4, 0xc8, 0x6b, 0x73, 0xd0, 0xfe, 0xf9, 0x2b,
+  0x84, 0x8f, 0x2b, 0x8e, 0x67, 0x28, 0x55, 0x65, 0xae, 0x5a, 0x57, 0xc9,
+  0x7b, 0xbd, 0x33, 0xa8, 0x13, 0xd6, 0x8f, 0x32, 0xe7, 0xa8, 0x1f, 0x2b,
+  0x3a, 0xec, 0x10, 0x0a, 0x15, 0x57, 0xb2, 0xe9, 0xc5, 0x6f, 0xb0, 0xbf,
+  0x9e, 0x6c, 0x66, 0x83, 0x6b, 0xd3, 0xde, 0x3a, 0xb5, 0xb3, 0xbb, 0x4f,
+  0xff, 0xdd, 0xc3, 0x7f, 0x9f, 0xad, 0x2b, 0x64, 0xc6, 0x5f, 0x6a, 0xba,
+  0x6f, 0xba, 0xd2, 0x52, 0x9c, 0xea, 0x74, 0xff, 0xc8, 0x05, 0x24, 0x02,
+  0x98, 0xe4, 0x72, 0xfc, 0x70, 0xb0, 0x9e, 0x75, 0xd2, 0x8b, 0xe8, 0x42,
+  0x6e, 0x22, 0x70, 0xb7, 0xc1, 0x4a, 0x1d, 0x91, 0x03, 0xca, 0x8c, 0x6d,
+  0x6c, 0x74, 0x19, 0xf8, 0x02, 0x38, 0x44, 0x45, 0xd3, 0x31, 0xfe, 0x58,
+  0x65, 0x37, 0x69, 0x6d, 0xd4, 0xaa, 0x45, 0x83, 0xd3, 0xd1, 0xb5, 0x21,
+  0xcc, 0x91, 0x9a, 0xe6, 0xd6, 0xf9, 0x22, 0x1f, 0x1e, 0x58, 0x53, 0x45,
+  0x56, 0x91, 0xdd, 0x98, 0xd3, 0xf2, 0x5e, 0x9f, 0xe8, 0x0b, 0x86, 0x25,
+  0x76, 0x71, 0x99, 0xd5, 0x04, 0x0c, 0x86, 0x1e, 0xf3, 0xc3, 0x51, 0x33,
+  0xd2, 0x7b, 0x08, 0x60, 0x63, 0x8e, 0xe0, 0x95, 0x99, 0x31, 0xb2, 0x41,
+  0xa6, 0x58, 0x37, 0xb2, 0xb6, 0xd0, 0xeb, 0x40, 0x17, 0x12, 0x9d, 0x24,
+  0xbf, 0x12, 0x17, 0x8c, 0xfc, 0x1b, 0x12, 0x5f, 0xf4, 0x83, 0x9a, 0x43,
+  0x56, 0x5d, 0xe5, 0xe0, 0xf1, 0xad, 0xad, 0x07, 0xd8, 0xde, 0xc5, 0x32,
+  0x58, 0xf6, 0x7a, 0xea, 0xbe, 0x16, 0xdd, 0x38, 0x66, 0x72, 0x9b, 0x5e,
+  0x71, 0xf4, 0xe0, 0x97, 0x1f, 0x12, 0xd3, 0xe3, 0x3e, 0x39, 0x3c, 0x16,
+  0xf5, 0x13, 0xce, 0x88, 0x27, 0x14, 0xf8, 0x1d, 0xeb, 0xf2, 0xe1, 0xd0,
+  0x9c, 0x3f, 0x01, 0xdd, 0x5d, 0xf8, 0xe0, 0xb9, 0x5d, 0x0e, 0xbd, 0x93,
+  0x35, 0xe4, 0x86, 0x2e, 0xc4, 0xa8, 0xdf, 0x4c, 0x6f, 0xd3, 0x41, 0x72,
+  0x76, 0x38, 0x3c, 0xa7, 0x4f, 0x98, 0xad, 0x51, 0x5c, 0x9b, 0x5e, 0x9c,
+  0x0c, 0x3b, 0xcd, 0x19, 0x5b, 0x3d, 0x2b, 0xea, 0x16, 0xe8, 0x6b, 0xe9,
+  0x34, 0xab, 0x2b, 0x50, 0x63, 0xe4, 0xd2, 0x59, 0x63, 0x9b, 0x22, 0xb8,
+  0x45, 0xb1, 0x1a, 0x0a, 0xa4, 0x26, 0x7c, 0xd4, 0x82, 0x0f, 0xcd, 0xcd,
+  0x86, 0x9f, 0x6c, 0x59, 0xe7, 0x42, 0x4f, 0xf7, 0x82, 0xf5, 0xf9, 0xd7,
+  0x8b, 0x6b, 0xd2, 0x97, 0x6b, 0xb5, 0x72, 0xec, 0x17, 0xcc, 0x6c, 0x04,
+  0x17, 0xbc, 0x0e, 0xdb, 0x9c, 0x09, 0x3e, 0x36, 0x46, 0xc1, 0x27, 0x38,
+  0x04, 0x2e, 0xf1, 0xa2, 0x74, 0xad, 0x92, 0x4e, 0x0f, 0x34, 0x56, 0x0e,
+  0x2f, 0xf9, 0x38, 0x33, 0x4a, 0xd2, 0x24, 0x72, 0x49, 0xf1, 0xa2, 0xa8,
+  0x8a, 0x7f, 0x25, 0x08, 0xac, 0x88, 0xc7, 0x02, 0x0d, 0x8d, 0x59, 0x89,
+  0xa0, 0x5d, 0x0f, 0x6f, 0x63, 0x4e, 0xee, 0x59, 0x52, 0xe9, 0xd8, 0xb8,
+  0xa4, 0xf6, 0xec, 0xd9, 0xff, 0xaa, 0x58, 0x98, 0x89, 0x8f, 0xdc, 0x16,
+  0x74, 0xed, 0xd3, 0xdd, 0x47, 0x13, 0xb8, 0xca, 0x15, 0xf5, 0x7c, 0xb7,
+  0xed, 0x8a, 0xc2, 0x66, 0x33, 0x2a, 0x6a, 0x96, 0xbc, 0xa6, 0xff, 0x3e,
+  0x2a, 0x95, 0x11, 0x7f, 0xf6, 0xa5, 0x30, 0xde, 0x95, 0x00, 0x06, 0xcb,
+  0xd1, 0x15, 0x3b, 0x0e, 0xa1, 0xed, 0x01, 0x89, 0xbd, 0x5e, 0xf2, 0xf6,
+  0xe8, 0x02, 0xcb, 0x7f, 0x74, 0xfa, 0x15, 0xbc, 0xc3, 0x56, 0xb5, 0x9d,
+  0xa0, 0xcd, 0x9a, 0xad, 0x5e, 0x8e, 0xee, 0x88, 0xf8, 0xef, 0x4e, 0x35,
+  0x89, 0x4f, 0x72, 0xea, 0x23, 0xf6, 0x3f, 0xf9, 0xed, 0x2e, 0xae, 0xc0,
+  0x5a, 0x3a, 0xea, 0xc9, 0xd4, 0x89, 0x0f, 0xe1, 0x36, 0x7b, 0x70, 0x7f,
+  0xc3, 0x74, 0x7a, 0x73, 0xec, 0x1e, 0x7e, 0xed, 0xcd, 0xcc, 0x0f, 0xfb,
+  0x84, 0x2f, 0x30, 0xea, 0xd3, 0xe4, 0xa7, 0x5f, 0x76, 0x15, 0x8a, 0xc3,
+  0x26, 0x69, 0xdf, 0x89, 0x11, 0xbf, 0x00, 0x5c, 0x32, 0x1a, 0xc9, 0xe7,
+  0xc0, 0x1d, 0x0b, 0x76, 0xc1, 0x97, 0x12, 0xf4, 0x94, 0x76, 0x7a, 0x5a,
+  0xb0, 0x42, 0x44, 0x22, 0x9a, 0xe1, 0x1b, 0x80, 0x73, 0x74, 0x8f, 0xcb,
+  0xb8, 0x9c, 0x06, 0x97, 0x5c, 0xcb, 0xa6, 0x82, 0xaa, 0xb9, 0x27, 0xd7,
+  0x1a, 0xec, 0x0c, 0xb9, 0x7c, 0x58, 0xbd, 0xeb, 0x9e, 0x03, 0xab, 0xec,
+  0x01, 0x19, 0xe5, 0x5f, 0x89, 0x89, 0xf7, 0x32, 0x02, 0x55, 0xe8, 0x1e,
+  0x6b, 0x6a, 0x03, 0x59, 0xde, 0x2c, 0xaa, 0x99, 0x9a, 0xd5, 0xd5, 0xd9,
+  0x35, 0xcb, 0x4e, 0x4e, 0x11, 0xb7, 0x87, 0x38, 0x02, 0xc0, 0xcb, 0x6c,
+  0xe4, 0x5b, 0x95, 0x8b, 0xea, 0xc8, 0x80, 0xb2, 0xee, 0x61, 0xd6, 0x78,
+  0xa1, 0x38, 0x4d, 0xc4, 0xb0, 0xc7, 0xb6, 0xd2, 0x7d, 0xc5, 0xdb, 0x8f,
+  0x8c, 0xa4, 0x75, 0x6f, 0x4a, 0xd6, 0x63, 0x4b, 0xd1, 0x70, 0xe8, 0x42,
+  0xce, 0x4b, 0x7e, 0x47, 0x53, 0xa7, 0x7b, 0xc7, 0xf9, 0xe0, 0xda, 0x3a,
+  0x59, 0x59, 0xd0, 0x9f, 0x05, 0xf9, 0x6e, 0x7e, 0x17, 0xd9, 0x90, 0xd1,
+  0xbd, 0x48, 0x6e, 0x5c, 0x09, 0xeb, 0x40, 0x73, 0x21, 0x08, 0x93, 0xc0,
+  0x3a, 0x23, 0x5a, 0x7a, 0xcc, 0xd6, 0x50, 0xad, 0x43, 0x4d, 0x0a, 0xcf,
+  0xce, 0x08, 0xd4, 0xf0, 0xee, 0x06, 0x31, 0xf2, 0xbb, 0xa1, 0x80, 0x30,
+  0xef, 0x5d, 0x72, 0x13, 0xe6, 0xe3, 0x5b, 0xe0, 0x7e, 0xe4, 0x6a, 0x6a,
+  0xc9, 0x0f, 0x41, 0xdd, 0x30, 0x5e, 0x2c, 0xb2, 0x04, 0x30, 0x73, 0xc8,
+  0x7f, 0x49, 0x7b, 0x92, 0xae, 0xe5, 0xbc, 0x60, 0x65, 0x6d, 0xa9, 0x01,
+  0x6c, 0xfa, 0xfa, 0xf1, 0xed, 0xf1, 0x45, 0xb2, 0x69, 0x56, 0x75, 0xd4,
+  0x55, 0x6e, 0xf4, 0x5e, 0xdf, 0xce, 0x9a, 0xf1, 0xf6, 0xfc, 0x36, 0xdf,
+  0x36, 0x76, 0xd0, 0x64, 0xb4, 0x65, 0xb5, 0x7b, 0x7c, 0x0e, 0x9b, 0x50,
+  0x6d, 0x26, 0x35, 0x9a, 0x60, 0x35, 0x75, 0x4f, 0x83, 0x67, 0x45, 0x31,
+  0x64, 0xdc, 0x19, 0x4f, 0x98, 0x26, 0x76, 0x31, 0x00, 0xae, 0xc2, 0xb1,
+  0xcd, 0x84, 0xfc, 0x84, 0x19, 0xbb, 0x50, 0x8d, 0xf9, 0xd7, 0x3d, 0xab,
+  0x8c, 0x5d, 0x12, 0x1f, 0x03, 0xfb, 0x16, 0x14, 0x70, 0x23, 0xf7, 0x84,
+  0xd3, 0xf6, 0x7a, 0x04, 0x95, 0xa2, 0x49, 0x99, 0xd3, 0x5d, 0x34, 0x21,
+  0x57, 0x55, 0xb7, 0x39, 0x38, 0xcf, 0xd6, 0x07, 0xdb, 0xeb, 0x89, 0x05,
+  0x87, 0x99, 0x59, 0x06, 0xbe, 0xd1, 0xa1, 0xf1, 0xcc, 0x16, 0xbb, 0x5a,
+  0xd4, 0xec, 0x7e, 0x25, 0x7b, 0xdf, 0xae, 0xd7, 0x20, 0x26, 0x50, 0xbd,
+  0xe5, 0xb4, 0xca, 0x96, 0x51, 0x8a, 0x71, 0xae, 0xac, 0x21, 0x39, 0xb2,
+  0x9d, 0xc2, 0x52, 0xad, 0xff, 0xb8, 0x9e, 0x78, 0xe0, 0xa2, 0x96, 0x93,
+  0x2c, 0x77, 0xe1, 0x7f, 0xef, 0x0a, 0x30, 0x57, 0xb1, 0x3d, 0xc1, 0x93,
+  0x6c, 0x9a, 0xcf, 0xf2, 0x06, 0x3a, 0xbc, 0xd7, 0x85, 0x60, 0x29, 0xda,
+  0x5d, 0xfa, 0x31, 0xec, 0x92, 0x02, 0xf6, 0x52, 0xfa, 0xb5, 0xe9, 0x12,
+  0x9c, 0x35, 0x8c, 0xa7, 0x8a, 0x9b, 0x73, 0xed, 0x0e, 0x59, 0xc8, 0xdf,
+  0x8a, 0xa8, 0xcf, 0x6f, 0x63, 0xf1, 0xb6, 0x8f, 0x4c, 0xdd, 0x00, 0x58,
+  0x44, 0xe7, 0x4c, 0x9c, 0x18, 0x23, 0xbe, 0x1c, 0xf4, 0x8c, 0xa5, 0xfa,
+  0x78, 0x20, 0xbb, 0xcd, 0xeb, 0xdb, 0x2a, 0x78, 0x20, 0x79, 0xd4, 0xfd,
+  0xc1, 0x66, 0xa8, 0x39, 0x30, 0x30, 0x3b, 0x6f, 0xc5, 0xea, 0x84, 0x06,
+  0x04, 0x61, 0xc5, 0xee, 0x9f, 0xae, 0xbe, 0xab, 0xc2, 0xbe, 0x9f, 0x15,
+  0xe3, 0x72, 0xd2, 0xb1, 0xcf, 0x68, 0x12, 0x3c, 0x21, 0x87, 0x1d, 0xcf,
+  0x91, 0x14, 0xec, 0xf2, 0xb8, 0x63, 0x8d, 0x3c, 0x3a, 0xec, 0xed, 0xfb,
+  0x59, 0xfb, 0x3e, 0x66, 0xde, 0x63, 0xdb, 0xff, 0xa2, 0x5d, 0xff, 0x2f,
+  0xd3, 0x23, 0x3c, 0xf5, 0xeb, 0x09, 0x8a, 0x44, 0x7f, 0x9c, 0xcf, 0x6f,
+  0xc8, 0xfb, 0xfe, 0x1a, 0x01, 0x69, 0x72, 0x91, 0xf1, 0x0f, 0xe2, 0x0a,
+  0xc4, 0x50, 0xae, 0xbc, 0x5a, 0xfc, 0x04, 0xfa, 0xb6, 0x88, 0x97, 0x5c,
+  0x01, 0xd4, 0x6a, 0x8c, 0x09, 0x08, 0x22, 0x0f, 0xac, 0x55, 0x0a, 0x49,
+  0xe8, 0xcb, 0x7c, 0xd3, 0xdb, 0xdb, 0x85, 0xf1, 0x8e, 0xfa, 0xdb, 0x81,
+  0x31, 0x19, 0xd2, 0x09, 0x21, 0x9a, 0xcc, 0x34, 0x21, 0x01, 0x03, 0x3f,
+  0xef, 0x34, 0x87, 0xce, 0x4b, 0x62, 0x02, 0xdf, 0xba, 0x66, 0x46, 0x3f,
+  0x5c, 0x9c, 0xec, 0x77, 0xe7, 0x09, 0xb8, 0xd8, 0x7a, 0x7f, 0x7b, 0x1b,
+  0xae, 0xb7, 0x9b, 0xf4, 0xd3, 0xa7, 0x41, 0x9d, 0x6d, 0x4f, 0xca, 0x71,
+  0xbd, 0x5d, 0xd7, 0x53, 0x9d, 0x8d, 0x36, 0x72, 0xfc, 0x37, 0xf0, 0x59,
+  0x94, 0xb3, 0x79, 0x05, 0x23, 0x3a, 0x1e, 0xd0, 0x50, 0x2b, 0x09, 0xb0,
+  0x69, 0x79, 0xd2, 0x99, 0x0c, 0xdd, 0xac, 0x20, 0xb3, 0xf0, 0xd7, 0x65,
+  0x65, 0x36, 0xdc, 0xac, 0x8e, 0x99, 0xc9, 0xea, 0xce, 0xaa, 0xd5, 0x1d,
+  0x50, 0x93, 0x2d, 0xcf, 0x66, 0xfb, 0xa2, 0xf0, 0x3e, 0x60, 0x66, 0x01,
+  0xb1, 0xea, 0x81, 0x1d, 0x6b, 0xdc, 0x45, 0xa7, 0x23, 0xef, 0x18, 0x5a,
+  0x62, 0x69, 0x25, 0x30, 0xb2, 0x0b, 0xe7, 0x43, 0x4b, 0x70, 0x90, 0x4d,
+  0x97, 0x7b, 0xb1, 0xde, 0x61, 0x8a, 0xaa, 0x8c, 0x9e, 0x85, 0x30, 0xac,
+  0xaa, 0xd2, 0x93, 0x80, 0xfd, 0x6f, 0xa0, 0x89, 0x98, 0x63, 0x95, 0x5f,
+  0x27, 0xaf, 0xe9, 0x10, 0x7f, 0x11, 0xec, 0x7c, 0xdd, 0x36, 0x29, 0xa9,
+  0x56, 0x04, 0x53, 0x91, 0x64, 0x1c, 0x32, 0xb2, 0xcc, 0xce, 0xe1, 0x90,
+  0x99, 0x84, 0xe1, 0x39, 0xcc, 0xd9, 0xca, 0x41, 0x0a, 0x76, 0x12, 0xc1,
+  0x3b, 0xdd, 0xe3, 0x14, 0x1e, 0xd6, 0x7d, 0x8d, 0xe6, 0x45, 0xd7, 0x75,
+  0x0b, 0x9b, 0x90, 0x1c, 0x87, 0x5a, 0x69, 0x9e, 0xe9, 0xaa, 0x06, 0x40,
+  0x56, 0x58, 0x33, 0x26, 0x96, 0x60, 0xd0, 0x1d, 0x8f, 0xa2, 0xac, 0x74,
+  0x7a, 0x73, 0xa4, 0xb4, 0xa4, 0x80, 0x70, 0xd5, 0x56, 0x29, 0xf6, 0x12,
+  0x0b, 0x3c, 0x67, 0x33, 0x35, 0xd8, 0x35, 0x8f, 0xf8, 0xd7, 0x0c, 0xad,
+  0x53, 0x50, 0x2a, 0x2e, 0x50, 0x73, 0x82, 0x9b, 0x0c, 0xe0, 0x22, 0x4a,
+  0x64, 0x9a, 0x96, 0x4e, 0x32, 0x9b, 0xdd, 0x67, 0x64, 0x09, 0x80, 0xe7,
+  0xdd, 0xeb, 0xfa, 0xa4, 0x64, 0xf8, 0x29, 0x07, 0xd2, 0x18, 0x46, 0xcd,
+  0x51, 0x6c, 0xd5, 0x92, 0xa7, 0xd0, 0x48, 0xd8, 0xd7, 0xef, 0xe4, 0x01,
+  0xad, 0x5f, 0xcc, 0x8e, 0x10, 0x00, 0x16, 0x63, 0xda, 0x73, 0x64, 0x50,
+  0x08, 0xbe, 0x9f, 0xf1, 0x64, 0xea, 0xff, 0xa8, 0xcb, 0x9e, 0x34, 0x35,
+  0x25, 0x4f, 0x7e, 0x25, 0x7d, 0xec, 0xee, 0x28, 0x8b, 0xdd, 0xf7, 0x11,
+  0x4d, 0xb4, 0x3e, 0x16, 0x96, 0x55, 0x87, 0x3e, 0x57, 0x37, 0x99, 0x31,
+  0x55, 0x27, 0x80, 0xb8, 0xa1, 0x23, 0x55, 0xa6, 0x5f, 0x30, 0xc6, 0x7c,
+  0xa7, 0x53, 0xda, 0x8f, 0x7e, 0xa8, 0xf8, 0x5b, 0x18, 0x97, 0xd7, 0x01,
+  0x85, 0x73, 0xd9, 0x55, 0x8e, 0x5f, 0x16, 0x99, 0x7b, 0x00, 0xea, 0x7e,
+  0x69, 0xe3, 0x56, 0xfe, 0x42, 0xb6, 0x9f, 0x93, 0xdd, 0xd2, 0xf5, 0x75,
+  0x14, 0xe3, 0x69, 0xa9, 0x30, 0x38, 0xf3, 0x3e, 0x67, 0x52, 0x98, 0x53,
+  0xff, 0x9d, 0x28, 0xcc, 0xb2, 0x02, 0xf2, 0x8b, 0x9e, 0xc8, 0x8a, 0xab,
+  0x92, 0x1c, 0x73, 0xa1, 0xf3, 0x4c, 0xf4, 0x97, 0x6e, 0x22, 0x90, 0x53,
+  0x5b, 0xf7, 0x93, 0xe4, 0xc7, 0x1f, 0x7b, 0x09, 0x29, 0x4f, 0x3f, 0x1a,
+  0x93, 0xec, 0x47, 0xb3, 0xd1, 0x7e, 0x64, 0xe0, 0xe9, 0x8f, 0x77, 0x83,
+  0xa4, 0x1b, 0x6a, 0x21, 0x8f, 0x43, 0x3d, 0x25, 0x57, 0x22, 0x5f, 0xc5,
+  0x6d, 0x4b, 0x8d, 0xb3, 0x5c, 0x60, 0xf4, 0xb3, 0xbf, 0xcc, 0x0f, 0x64,
+  0x03, 0x3f, 0x12, 0x9a, 0x96, 0x8b, 0x59, 0x21, 0x1a, 0x0c, 0xef, 0x43,
+  0x1c, 0x71, 0x00, 0xf7, 0x36, 0x7e, 0xbf, 0xe1, 0xf6, 0x4c, 0x4f, 0xdd,
+  0x3d, 0x8d, 0xca, 0xd5, 0xc8, 0x71, 0xd2, 0x83, 0xaf, 0x39, 0x21, 0x08,
+  0x64, 0x31, 0xac, 0xc2, 0xc8, 0xcd, 0x33, 0xf2, 0xb5, 0x30, 0xb2, 0xb7,
+  0xb4, 0x78, 0x28, 0x00, 0x9c, 0xe7, 0x37, 0x0f, 0x35, 0xc5, 0x9a, 0x62,
+  0xd2, 0x26, 0x3c, 0x25, 0x83, 0xa5, 0x42, 0xae, 0xd1, 0xd0, 0x25, 0xf4,
+  0x32, 0xda, 0x05, 0x2d, 0x11, 0x69, 0xba, 0xb3, 0xd1, 0xdf, 0xb0, 0x9e,
+  0x51, 0x89, 0xef, 0x05, 0xe0, 0x28, 0x95, 0x08, 0x1e, 0x78, 0x22, 0xf8,
+  0xa4, 0x17, 0xd0, 0x2f, 0x7d, 0xb8, 0x86, 0xcb, 0x57, 0xa2, 0x84, 0x03,
+  0x8d, 0x39, 0xc8, 0xf7, 0x45, 0xce, 0x44, 0xac, 0x10, 0xc0, 0x3a, 0x10,
+  0x0f, 0xb2, 0xf7, 0x3c, 0xa9, 0xc8, 0xce, 0x59, 0xd8, 0xef, 0x23, 0x9b,
+  0x73, 0xce, 0x19, 0x98, 0xb4, 0x3b, 0x10, 0x27, 0x79, 0x20, 0x70, 0xef,
+  0x3c, 0x88, 0xad, 0x2b, 0x94, 0x41, 0xf3, 0x67, 0xe8, 0x20, 0x53, 0xda,
+  0xdf, 0x7d, 0x21, 0x69, 0x5b, 0xc3, 0x12, 0xaa, 0xfa, 0x18, 0x11, 0x17,
+  0x09, 0xef, 0x09, 0x4c, 0x38, 0xa2, 0x26, 0xd2, 0x65, 0x17, 0xe8, 0x0a,
+  0xd4, 0x9f, 0x37, 0xc9, 0xfa, 0x72, 0x8d, 0x61, 0xbd, 0xfb, 0x06, 0x10,
+  0x1c, 0xce, 0xee, 0x95, 0x14, 0x28, 0x74, 0x64, 0x53, 0x20, 0x00, 0xfd,
+  0xbf, 0x31, 0xbe, 0x87, 0x51, 0xba, 0x72, 0x95, 0x6e, 0x31, 0xc0, 0xa9,
+  0x0e, 0xe2, 0x7a, 0x95, 0x17, 0x15, 0xf6, 0xf6, 0x87, 0x8b, 0xab, 0xe6,
+  0xf0, 0x86, 0xe0, 0x96, 0xe2, 0x5b, 0xcd, 0x7b, 0xba, 0x2b, 0x7f, 0xec,
+  0xdb, 0x04, 0x22, 0xa4, 0xef, 0x89, 0x97, 0x42, 0xaf, 0x08, 0x3d, 0xdf,
+  0x46, 0x15, 0x46, 0x36, 0xa4, 0xc2, 0x17, 0xa1, 0xe4, 0x06, 0xb3, 0xb3,
+  0xbb, 0x65, 0x01, 0xef, 0x48, 0x69, 0x64, 0x64, 0x99, 0xa8, 0x04, 0xeb,
+  0x37, 0x25, 0xc7, 0x3e, 0xd7, 0xf7, 0x09, 0x8b, 0xcd, 0xc0, 0x2e, 0x1e,
+  0xa3, 0x66, 0xb6, 0x75, 0x9a, 0x43, 0x64, 0xf9, 0xeb, 0xb3, 0xf7, 0x47,
+  0x6d, 0x04, 0x11, 0x7e, 0x12, 0xb3, 0xc8, 0x8d, 0xbc, 0x7a, 0x67, 0xe4,
+  0x0b, 0xef, 0x81, 0x34, 0x30, 0x72, 0x78, 0x6f, 0x99, 0x6e, 0x5d, 0x67,
+  0xcd, 0xfc, 0x7e, 0x91, 0x4f, 0x36, 0xb7, 0x68, 0x8f, 0x10, 0x7e, 0xb0,
+  0x0f, 0xd8, 0x2a, 0x5b, 0x27, 0x75, 0xb2, 0xc9, 0x8a, 0x6c, 0x95, 0x35,
+  0x8b, 0xaa, 0x60, 0x2f, 0x0a, 0xf5, 0x3d, 0x8c, 0x86, 0xc8, 0x95, 0xe6,
+  0x5b, 0x0f, 0x92, 0x99, 0xcc, 0x21, 0x57, 0x6e, 0x70, 0x8b, 0x84, 0x80,
+  0x11, 0xa4, 0x88, 0x3c, 0x63, 0xe1, 0x31, 0x96, 0xe0, 0x9e, 0xf2, 0x67,
+  0x22, 0x39, 0x38, 0x3f, 0x7f, 0x7b, 0x70, 0x79, 0x60, 0xc7, 0x86, 0x8b,
+  0x18, 0x92, 0x05, 0x9a, 0xa4, 0x11, 0x49, 0xa4, 0x1d, 0xd1, 0x93, 0x1b,
+  0x7f, 0xf8, 0x30, 0x3c, 0xba, 0xe8, 0x2e, 0xec, 0xf9, 0xc5, 0x19, 0xa5,
+  0x7d, 0xff, 0xe1, 0xc7, 0x03, 0x0a, 0xb2, 0x88, 0x8b, 0xf8, 0x6d, 0xda,
+  0xa4, 0x1b, 0xc1, 0xa9, 0xde, 0xdb, 0xa2, 0xfe, 0xdd, 0xdb, 0xfe, 0x5d,
+  0xc9, 0x65, 0x06, 0x6b, 0x39, 0xf9, 0x48, 0x0b, 0x5a, 0x8d, 0x15, 0x3e,
+  0x64, 0x67, 0x03, 0x13, 0x00, 0xf4, 0xcf, 0xf2, 0x81, 0x94, 0x4e, 0x92,
+  0x69, 0xe0, 0x5b, 0x27, 0x6b, 0x9a, 0x64, 0x9f, 0x8c, 0x51, 0xda, 0xe8,
+  0x96, 0xc7, 0xfe, 0xa2, 0xc4, 0x9c, 0xee, 0xbc, 0x04, 0xcb, 0xe3, 0x3c,
+  0x6b, 0x2c, 0x05, 0x90, 0x17, 0x66, 0x36, 0x1a, 0x20, 0x5e, 0x03, 0xe9,
+  0x2d, 0x4b, 0xb1, 0x58, 0x0c, 0x2b, 0x63, 0x5f, 0x1b, 0xf2, 0xc4, 0xb8,
+  0x4b, 0xc1, 0x84, 0xfc, 0xde, 0x9c, 0xc6, 0x7e, 0x72, 0x24, 0x00, 0x66,
+  0x0c, 0xdc, 0xfc, 0x20, 0x78, 0x48, 0x33, 0x87, 0xac, 0xb0, 0x8f, 0xcb,
+  0x0a, 0x2f, 0x77, 0x72, 0xbd, 0xab, 0x3c, 0x73, 0xb6, 0x82, 0x79, 0x88,
+  0xba, 0x4d, 0x93, 0x0e, 0x2b, 0x63, 0x3d, 0x12, 0xa2, 0xed, 0xa7, 0xd7,
+  0xb4, 0xbd, 0xcc, 0xa3, 0x46, 0x8b, 0x36, 0xc6, 0x05, 0xfd, 0x6b, 0x7b,
+  0x77, 0xb0, 0xb3, 0x1e, 0x76, 0x9e, 0x0e, 0x0b, 0x52, 0x51, 0xad, 0xab,
+  0x95, 0xa4, 0x61, 0x53, 0x96, 0x8f, 0xf6, 0x8f, 0x45, 0x98, 0xd1, 0x43,
+  0xe7, 0xa6, 0xfd, 0x68, 0x57, 0xfa, 0x67, 0x01, 0x3e, 0x8a, 0x10, 0x47,
+  0x95, 0x0a, 0x45, 0x23, 0x13, 0x8b, 0xf2, 0x9e, 0x46, 0x62, 0xb6, 0xda,
+  0x74, 0xda, 0xca, 0x19, 0x5e, 0x8f, 0x4f, 0x73, 0x81, 0xf4, 0xfc, 0xac,
+  0x3b, 0xdb, 0xd1, 0x38, 0x86, 0x2a, 0x99, 0xbe, 0x26, 0x67, 0x21, 0x3a,
+  0xb0, 0xb6, 0xec, 0x4e, 0xf0, 0xf3, 0xc3, 0x8c, 0x94, 0x0b, 0xe4, 0xde,
+  0xd4, 0x8f, 0xd3, 0xf5, 0x35, 0x58, 0xd8, 0xa7, 0x46, 0x48, 0xfb, 0x7c,
+  0xcd, 0xe9, 0x47, 0x81, 0xcd, 0xfb, 0x3e, 0xfd, 0x94, 0xcf, 0x16, 0x33,
+  0x7c, 0x8c, 0xf6, 0xb6, 0x3c, 0x26, 0x4e, 0x26, 0xb8, 0x1d, 0x38, 0x58,
+  0x89, 0x4d, 0xbe, 0x51, 0x27, 0x9e, 0xe5, 0x1b, 0xbb, 0x64, 0xcc, 0x95,
+  0x3c, 0x70, 0xc3, 0x2b, 0x80, 0x3b, 0x21, 0x2f, 0x54, 0xdd, 0xb1, 0x9a,
+  0x8d, 0xb6, 0x90, 0x52, 0x04, 0xca, 0x98, 0xf3, 0x1a, 0xba, 0x8d, 0x88,
+  0x73, 0xce, 0x7f, 0x13, 0x1d, 0xce, 0xc3, 0xd7, 0x64, 0x55, 0x5e, 0x4e,
+  0xec, 0xb9, 0x21, 0x25, 0x31, 0x2f, 0x16, 0x66, 0x9e, 0xa9, 0x2d, 0xba,
+  0x52, 0x15, 0xc2, 0x17, 0x44, 0xc0, 0x80, 0x0a, 0x1c, 0x02, 0xec, 0xa9,
+  0x90, 0x99, 0xcf, 0x06, 0xcf, 0xf6, 0x06, 0x3b, 0xbd, 0x96, 0xe1, 0x2b,
+  0x69, 0x82, 0xe6, 0x74, 0x8d, 0xf3, 0x99, 0x4d, 0x21, 0x18, 0xfc, 0xcb,
+  0x1c, 0x1c, 0x94, 0x3c, 0xd1, 0x9f, 0xa5, 0x9f, 0xb0, 0x7c, 0xd1, 0x65,
+  0x2d, 0x93, 0xd7, 0x5f, 0x9f, 0x0d, 0x2f, 0x77, 0xf7, 0xcf, 0xcf, 0x2e,
+  0xcc, 0x7f, 0xe9, 0xef, 0x7b, 0xf8, 0xfb, 0x5e, 0x60, 0x3d, 0xbe, 0x13,
+  0xc4, 0x8f, 0x82, 0x8d, 0x25, 0xa7, 0x87, 0xa7, 0x92, 0x5e, 0xc4, 0x7b,
+  0x46, 0xa5, 0x26, 0xf9, 0x27, 0x1f, 0xa0, 0x87, 0x0e, 0xcf, 0x4e, 0x4f,
+  0x8f, 0x0e, 0x2f, 0xbb, 0x6b, 0x72, 0x79, 0xd6, 0xc7, 0x4b, 0xfa, 0x6b,
+  0xf3, 0x6f, 0xbc, 0x2f, 0x50, 0xcc, 0x41, 0x77, 0x6f, 0x03, 0x29, 0xb5,
+  0xc8, 0x1b, 0xf1, 0xee, 0x96, 0xd1, 0x20, 0xbc, 0x4d, 0xab, 0xa2, 0x60,
+  0x61, 0xea, 0xf0, 0xc6, 0xca, 0x12, 0x02, 0xe4, 0x40, 0xfb, 0x57, 0xe3,
+  0xa9, 0xd1, 0xfc, 0x03, 0x2f, 0x49, 0x51, 0x4e, 0x32, 0x4e, 0x58, 0x97,
+  0xdf, 0xd3, 0x61, 0x14, 0xf8, 0xe5, 0x20, 0x89, 0xf5, 0x8d, 0x37, 0x29,
+  0x5b, 0xb9, 0x41, 0xef, 0x4c, 0x97, 0x4c, 0xbf, 0xf3, 0xfa, 0x46, 0xd4,
+  0x52, 0x85, 0x54, 0xfb, 0xee, 0x9f, 0xe3, 0x86, 0x33, 0xaa, 0x4e, 0xcf,
+  0x2e, 0x93, 0xf4, 0xea, 0x4a, 0xd3, 0xbf, 0x08, 0x61, 0x19, 0xf3, 0xb5,
+  0x6e, 0xcf, 0xf9, 0xa6, 0x4b, 0x5d, 0xb8, 0x9b, 0xee, 0x96, 0xcb, 0x93,
+  0xe1, 0x36, 0xf9, 0x7e, 0x18, 0x24, 0x31, 0x3c, 0x3d, 0xee, 0xb5, 0x23,
+  0x54, 0x14, 0x1b, 0x0d, 0xb5, 0x1d, 0xbe, 0x08, 0xb7, 0x38, 0x06, 0xa4,
+  0x77, 0x6d, 0xea, 0x5d, 0x91, 0x36, 0xb5, 0x98, 0x80, 0x17, 0xd4, 0xa5,
+  0x75, 0xc8, 0xd3, 0x75, 0xea, 0x44, 0x57, 0x80, 0x89, 0xa7, 0x1d, 0xe6,
+  0xf1, 0x6c, 0xde, 0x3c, 0x88, 0xc7, 0xb4, 0x87, 0x5c, 0x5b, 0xd2, 0x42,
+  0xd6, 0xc9, 0x48, 0xa1, 0x46, 0x30, 0x86, 0x75, 0x9a, 0xcf, 0x75, 0xb7,
+  0x23, 0x03, 0xac, 0x3a, 0xbe, 0xc6, 0x9f, 0xf3, 0x9e, 0xc2, 0xab, 0xf8,
+  0x16, 0xf6, 0xfa, 0xd2, 0x0f, 0xf6, 0x03, 0x2b, 0xdf, 0x74, 0x40, 0xe3,
+  0x79, 0xb2, 0x5d, 0x36, 0x48, 0x73, 0xcb, 0xaf, 0x91, 0xc0, 0xe8, 0xf5,
+  0x2b, 0x2a, 0x6c, 0x65, 0xcd, 0x5b, 0xa2, 0x96, 0xc6, 0x63, 0xc5, 0x6c,
+  0x3a, 0x91, 0x9f, 0xe8, 0x19, 0xa8, 0x16, 0xd3, 0x08, 0xf8, 0xc1, 0x73,
+  0x43, 0x92, 0xd6, 0x32, 0xbd, 0x13, 0x27, 0xe4, 0xd7, 0x74, 0x66, 0x19,
+  0x9f, 0x3f, 0x68, 0x85, 0x8e, 0x5f, 0xb5, 0x42, 0xc7, 0x87, 0x62, 0xca,
+  0x40, 0x62, 0xf5, 0xcd, 0x26, 0x78, 0x5d, 0x5e, 0x5d, 0xd5, 0x59, 0xd3,
+  0x15, 0xcc, 0x87, 0xf2, 0xc8, 0xf6, 0x05, 0xe8, 0x55, 0x3c, 0x00, 0x6d,
+  0x3b, 0xfd, 0x38, 0x49, 0x15, 0xd8, 0xc6, 0x07, 0x3a, 0xe1, 0xe6, 0x06,
+  0x11, 0xb0, 0x60, 0xfb, 0x09, 0x0f, 0xf6, 0xcb, 0x59, 0x40, 0x41, 0x72,
+  0x2b, 0xf6, 0xa8, 0x48, 0xac, 0x2e, 0xd6, 0xe5, 0x36, 0x9f, 0xcf, 0x49,
+  0xed, 0x07, 0x97, 0x03, 0x2d, 0x8d, 0xf5, 0x3b, 0x8f, 0x32, 0xb3, 0x1e,
+  0xd8, 0x2e, 0x8a, 0xa8, 0x30, 0xaa, 0xe3, 0xd8, 0xa2, 0x51, 0x47, 0x99,
+  0xd9, 0xa6, 0x59, 0xa8, 0xca, 0x92, 0xbd, 0xef, 0x65, 0xf0, 0x8a, 0x90,
+  0x9a, 0x50, 0xb6, 0x6e, 0x91, 0xf2, 0x41, 0x23, 0x81, 0xeb, 0x72, 0xdb,
+  0x04, 0xd4, 0x1f, 0x03, 0xf6, 0x38, 0xc8, 0xb5, 0xf5, 0x43, 0x0d, 0x8f,
+  0xff, 0xe7, 0x91, 0xcb, 0xb7, 0xb6, 0x09, 0xcd, 0x0c, 0x5b, 0x8d, 0xc1,
+  0x81, 0x93, 0xf5, 0xfe, 0x61, 0xd2, 0x5f, 0x47, 0x47, 0x5c, 0x54, 0xae,
+  0xec, 0x80, 0x2a, 0x61, 0x0d, 0xd0, 0xfd, 0x9a, 0x40, 0x49, 0xd8, 0xe6,
+  0x0c, 0xa7, 0x32, 0x50, 0x2a, 0xb0, 0x84, 0x3c, 0xd9, 0x3a, 0x4a, 0x08,
+  0x8e, 0x46, 0xf0, 0xf0, 0x3e, 0x7a, 0x94, 0xb5, 0xa8, 0xed, 0xbc, 0x20,
+  0x5d, 0x0a, 0x17, 0x7b, 0x00, 0xad, 0xd4, 0xfc, 0x16, 0x4e, 0xec, 0x5c,
+  0x34, 0xff, 0x42, 0xdf, 0x7b, 0x45, 0xfb, 0x17, 0x8c, 0x1d, 0xde, 0xa6,
+  0x1e, 0xf3, 0xa6, 0x26, 0xa6, 0xa0, 0xfe, 0x5f, 0x8d, 0xf5, 0xf9, 0x5a,
+  0xcd, 0xf7, 0x25, 0x19, 0x50, 0x6a, 0xeb, 0x13, 0x12, 0x12, 0xb6, 0x09,
+  0xf6, 0x86, 0xcd, 0xc4, 0xd5, 0xb9, 0x66, 0x37, 0x03, 0xa0, 0x23, 0x42,
+  0x43, 0xd4, 0x8d, 0xa4, 0x5c, 0x91, 0x84, 0xa7, 0xcb, 0x4d, 0x33, 0x3e,
+  0x27, 0x5e, 0xe2, 0xf8, 0x80, 0x80, 0xa6, 0x53, 0x6e, 0xa5, 0x46, 0x33,
+  0xd2, 0x8a, 0xf0, 0x66, 0x34, 0x01, 0x76, 0xbf, 0xe8, 0xcf, 0xb2, 0x19,
+  0x01, 0xc2, 0xf8, 0x41, 0x23, 0x8f, 0x4a, 0x52, 0x4d, 0xdb, 0x57, 0x26,
+  0x5b, 0xa7, 0x8d, 0x04, 0x52, 0x27, 0x9c, 0x7a, 0x40, 0xdf, 0x0c, 0x11,
+  0x32, 0x65, 0x21, 0x78, 0x0c, 0xb2, 0x3c, 0xec, 0xd7, 0xe1, 0x3b, 0xba,
+  0x35, 0x7a, 0x65, 0xd1, 0xa3, 0x9f, 0x23, 0xc9, 0x44, 0x67, 0x9f, 0x3a,
+  0xdb, 0x64, 0x45, 0x0c, 0x8f, 0xdd, 0xf2, 0xca, 0xca, 0x73, 0x9e, 0x73,
+  0xe1, 0x34, 0x6b, 0x24, 0xca, 0xc6, 0x7d, 0x97, 0x70, 0x90, 0xc0, 0xb4,
+  0x4d, 0x27, 0x3a, 0xcd, 0x81, 0x19, 0x23, 0x6b, 0x9c, 0xa3, 0x04, 0xee,
+  0x16, 0xe6, 0xe6, 0x62, 0x3a, 0x00, 0xf2, 0x05, 0xf6, 0xcc, 0x39, 0x58,
+  0x57, 0xbf, 0x24, 0x77, 0x3f, 0x2e, 0x11, 0xb4, 0x43, 0xe4, 0x3e, 0x69,
+  0x26, 0xb1, 0x3d, 0x29, 0x99, 0x7d, 0x41, 0x32, 0x9d, 0x80, 0x95, 0xcd,
+  0x6d, 0x8a, 0x98, 0x97, 0xf8, 0x5a, 0x30, 0x06, 0x41, 0x2d, 0x70, 0xcc,
+  0x33, 0xb8, 0xad, 0x6c, 0xb6, 0x08, 0xc5, 0x1b, 0xab, 0x89, 0x7a, 0x0c,
+  0xb4, 0xa3, 0x46, 0x0a, 0x8b, 0xbd, 0x70, 0x9f, 0x62, 0xab, 0xd9, 0x4f,
+  0x40, 0xdc, 0x84, 0x87, 0x4a, 0x2f, 0x97, 0xfe, 0xc8, 0x6d, 0x67, 0x97,
+  0x29, 0x1c, 0xf5, 0x57, 0xca, 0x43, 0xb4, 0xe7, 0xcd, 0xc5, 0xb2, 0x01,
+  0xc9, 0x22, 0x19, 0x23, 0x48, 0xbe, 0xb5, 0x93, 0xc2, 0x53, 0x78, 0x7f,
+  0x53, 0x4e, 0xd9, 0x5c, 0x0c, 0xc2, 0x0e, 0x9a, 0xca, 0x93, 0xdc, 0x23,
+  0x91, 0x95, 0xd0, 0x4f, 0x70, 0xb7, 0xde, 0x01, 0x58, 0xd5, 0x8a, 0x1d,
+  0x18, 0xd5, 0x26, 0x4b, 0x09, 0x37, 0xac, 0xd0, 0xc2, 0xbb, 0x30, 0xf1,
+  0xc1, 0x9c, 0xf3, 0x51, 0x59, 0xcb, 0x7e, 0xa1, 0x74, 0x19, 0xb3, 0xc5,
+  0xd2, 0x0a, 0x62, 0x59, 0xc8, 0x00, 0x94, 0xba, 0x48, 0xe3, 0xc9, 0x7a,
+  0x19, 0x90, 0x3e, 0xd4, 0x45, 0x85, 0xe6, 0x94, 0x64, 0x66, 0xb6, 0x49,
+  0x96, 0x4d, 0xc8, 0x77, 0x89, 0xbd, 0x83, 0x46, 0x39, 0xd5, 0xff, 0x06,
+  0x44, 0x5c, 0x92, 0x89, 0x66, 0x4e, 0xe1, 0x4d, 0x4a, 0xc6, 0x6c, 0xb3,
+  0x48, 0x97, 0x4d, 0x5d, 0x1b, 0x09, 0xf2, 0xa8, 0x78, 0x72, 0x91, 0x80,
+  0x88, 0x7f, 0x1d, 0xdb, 0x76, 0x49, 0x14, 0xca, 0x5f, 0xc8, 0xd7, 0x74,
+  0xce, 0x96, 0xc8, 0xa3, 0x73, 0x70, 0x96, 0xdc, 0xb4, 0x93, 0xde, 0x91,
+  0x5f, 0x23, 0xd7, 0x88, 0x02, 0xd7, 0xb9, 0x29, 0xbd, 0xe5, 0x8f, 0x9b,
+  0x10, 0xa8, 0xc5, 0xa1, 0x28, 0xd3, 0x8d, 0xe9, 0x83, 0x6b, 0xd1, 0xcb,
+  0x7d, 0x51, 0xfc, 0x9b, 0xc7, 0x08, 0x62, 0x3f, 0x91, 0x76, 0x43, 0xb1,
+  0xc3, 0xac, 0xe9, 0xf3, 0x37, 0xf7, 0xd7, 0x13, 0x25, 0x6b, 0xe2, 0xbb,
+  0x1c, 0xed, 0x2a, 0xdc, 0x1a, 0xc8, 0x58, 0x40, 0x63, 0x79, 0x0d, 0xe5,
+  0xd8, 0x77, 0x9b, 0x23, 0x06, 0xc0, 0xdd, 0x37, 0xdf, 0x1e, 0x9c, 0x7c,
+  0x38, 0xda, 0xfd, 0x53, 0x42, 0xff, 0xda, 0xe3, 0x7f, 0xed, 0xad, 0x47,
+  0x57, 0xc9, 0x08, 0xa7, 0x8d, 0x37, 0x1b, 0x49, 0xfd, 0x30, 0x1b, 0x95,
+  0x53, 0xbb, 0x4a, 0x32, 0x17, 0x1a, 0x40, 0xea, 0xc9, 0xed, 0xad, 0xa9,
+  0x58, 0xe2, 0x36, 0xee, 0x4a, 0xea, 0x5a, 0x80, 0x19, 0x2a, 0x65, 0x10,
+  0xb8, 0xf2, 0x73, 0x82, 0x1a, 0xa4, 0x4d, 0xa9, 0xf0, 0x92, 0x10, 0xd6,
+  0x32, 0xb0, 0x0c, 0x33, 0x1b, 0xe9, 0x81, 0xd6, 0xad, 0xdb, 0x91, 0x1a,
+  0x7c, 0xb5, 0x38, 0x2e, 0x39, 0x4f, 0x56, 0x04, 0x82, 0xdf, 0xc8, 0x25,
+  0x80, 0x03, 0x94, 0xed, 0x8e, 0xdf, 0x15, 0x8d, 0x98, 0xe8, 0x57, 0x1e,
+  0x94, 0x11, 0x63, 0x83, 0x1c, 0xff, 0x16, 0x17, 0x0c, 0x34, 0x62, 0xe0,
+  0xfb, 0x2a, 0x67, 0x23, 0xd1, 0x5a, 0xbc, 0x4c, 0x2c, 0xb3, 0x1f, 0x4f,
+  0x68, 0x3f, 0x4e, 0x4b, 0xd1, 0xcd, 0x35, 0xdf, 0xa3, 0x6a, 0xf1, 0xbf,
+  0x78, 0x8c, 0x73, 0x96, 0x28, 0x47, 0x98, 0x66, 0x5a, 0x81, 0x30, 0xf6,
+  0xbc, 0x46, 0xb3, 0x42, 0x34, 0xb9, 0x86, 0xc0, 0x60, 0xa2, 0x84, 0x69,
+  0xe2, 0x10, 0xc7, 0x0b, 0xfd, 0x6b, 0x50, 0xb6, 0x10, 0x41, 0x4f, 0xa6,
+  0x69, 0x30, 0x14, 0x4e, 0x32, 0x93, 0xb4, 0x53, 0x73, 0x5e, 0xdc, 0x8e,
+  0x34, 0x2b, 0xf6, 0x30, 0xcd, 0xb6, 0x34, 0xa0, 0xa6, 0xd7, 0xcf, 0xf6,
+  0xfb, 0xf2, 0xef, 0x66, 0xc6, 0x53, 0xf9, 0x48, 0xec, 0x0e, 0x93, 0x3b,
+  0x69, 0x69, 0xcf, 0xdd, 0x71, 0xe7, 0x44, 0x2c, 0xff, 0x14, 0x2b, 0xb3,
+  0x8d, 0x06, 0xbd, 0x12, 0xa8, 0x49, 0xc0, 0x99, 0x05, 0x8b, 0x20, 0xb7,
+  0xad, 0xcd, 0xe5, 0xf3, 0xae, 0x28, 0x9d, 0x12, 0xb3, 0xc7, 0x4a, 0xde,
+  0x7a, 0x6e, 0xe9, 0xe5, 0x1a, 0xe8, 0x8a, 0xd4, 0xae, 0x8e, 0xb3, 0xe4,
+  0x62, 0x38, 0xfa, 0x94, 0x55, 0x63, 0x4a, 0xe9, 0x1c, 0x1b, 0x4d, 0x11,
+  0xba, 0xd7, 0x95, 0xb8, 0x51, 0x82, 0x7d, 0xa3, 0xe2, 0x0f, 0x11, 0x6b,
+  0x5d, 0xff, 0xa5, 0x6b, 0x4f, 0x7b, 0xb1, 0x1c, 0x9b, 0x3d, 0x3c, 0xb0,
+  0xec, 0x1b, 0x7a, 0x61, 0xb5, 0xcf, 0xb5, 0x02, 0xe3, 0xe1, 0xf6, 0x0e,
+  0xa0, 0x27, 0x98, 0x61, 0x7d, 0xd1, 0x5b, 0x4d, 0xd9, 0x2e, 0xe8, 0x0b,
+  0x73, 0x29, 0xb8, 0x28, 0x06, 0xa5, 0xe2, 0x21, 0x21, 0x7d, 0x39, 0xce,
+  0xc6, 0xae, 0x0e, 0xf2, 0x64, 0xe1, 0xd5, 0x2f, 0x1e, 0x34, 0x8d, 0x7d,
+  0x13, 0xb7, 0x18, 0x2b, 0x6b, 0x4a, 0x77, 0x02, 0x6e, 0x83, 0x30, 0xc9,
+  0x67, 0x5a, 0xde, 0x53, 0xac, 0xa0, 0x4d, 0x3e, 0x34, 0x2b, 0x27, 0xbc,
+  0x1f, 0x46, 0x0f, 0x96, 0x39, 0xb4, 0x4f, 0xba, 0x0b, 0x7f, 0x76, 0xa0,
+  0xe1, 0xb1, 0xe8, 0x0e, 0xb0, 0xe2, 0xa0, 0x83, 0x9f, 0x4e, 0x1d, 0x7a,
+  0xba, 0x61, 0xa7, 0x27, 0xdf, 0xf7, 0x2e, 0xf3, 0x3f, 0x76, 0xd1, 0x60,
+  0xc4, 0xa3, 0xb2, 0xb9, 0xb1, 0x57, 0x0e, 0x06, 0x4c, 0x3e, 0xa3, 0xe4,
+  0x6a, 0xd1, 0x40, 0x29, 0x57, 0xcb, 0xac, 0x11, 0x9c, 0x94, 0x38, 0x31,
+  0x82, 0xb8, 0xd8, 0x2d, 0xf3, 0x4e, 0x94, 0x8d, 0x72, 0x8a, 0x09, 0xdf,
+  0x4e, 0x83, 0xfc, 0x65, 0x72, 0xa4, 0xc0, 0x28, 0x05, 0xbd, 0x89, 0xf9,
+  0x2e, 0x81, 0x4f, 0xea, 0x9a, 0xa8, 0x2c, 0x68, 0xe8, 0x69, 0x90, 0xc6,
+  0x8a, 0xa9, 0x36, 0xff, 0xe7, 0x2d, 0xea, 0x26, 0x27, 0x9a, 0x3b, 0x43,
+  0x8e, 0xf3, 0x4f, 0x29, 0x92, 0xb9, 0x18, 0xe9, 0x3b, 0x35, 0xdc, 0x07,
+  0x11, 0x50, 0x51, 0x4b, 0xab, 0x5c, 0x72, 0x68, 0xff, 0x69, 0x43, 0x23,
+  0x30, 0xbc, 0xaa, 0x9a, 0xf9, 0xbb, 0xc0, 0x80, 0x66, 0x91, 0x7d, 0x98,
+  0xf2, 0x50, 0x78, 0xa5, 0x2e, 0x56, 0x04, 0x35, 0xbf, 0x3b, 0x8a, 0xf9,
+  0x04, 0xaa, 0x98, 0xbe, 0x03, 0xe5, 0xc5, 0xe3, 0xe1, 0xa9, 0x4b, 0x39,
+  0x91, 0x68, 0x9e, 0x04, 0x8d, 0x93, 0x34, 0xb1, 0x84, 0xf4, 0xae, 0x0c,
+  0xf0, 0x83, 0x01, 0x2d, 0xcd, 0x56, 0x34, 0x5d, 0x5f, 0x3e, 0x98, 0x17,
+  0x71, 0x33, 0xf6, 0xcd, 0xfe, 0xaf, 0x63, 0x41, 0x35, 0xbd, 0x5c, 0xc7,
+  0x65, 0xf1, 0xd7, 0x45, 0x31, 0x6e, 0x2c, 0xc6, 0x0a, 0x3a, 0x69, 0xd9,
+  0xf3, 0xe8, 0x80, 0x24, 0x82, 0x68, 0xd1, 0x25, 0xdd, 0x8d, 0x8f, 0x0f,
+  0x49, 0xaa, 0x39, 0x65, 0xb2, 0x10, 0xfc, 0x94, 0xae, 0x9d, 0xa9, 0x97,
+  0xf3, 0x72, 0x93, 0x9b, 0x15, 0xaa, 0xc6, 0x37, 0xc8, 0xd2, 0x43, 0xec,
+  0x32, 0x53, 0xe7, 0x5d, 0x1c, 0x13, 0x23, 0xcd, 0x8a, 0xa2, 0x94, 0x93,
+  0x48, 0xa2, 0x8c, 0xdc, 0xb2, 0x50, 0x41, 0xbd, 0xac, 0x9f, 0x21, 0x42,
+  0xf0, 0x86, 0xe6, 0x3c, 0x9b, 0xd6, 0x99, 0x45, 0x2a, 0xd8, 0x77, 0x9c,
+  0x29, 0x02, 0xb3, 0x98, 0xec, 0xa3, 0xbc, 0x62, 0xff, 0x56, 0x1e, 0x3d,
+  0xe5, 0xe8, 0x89, 0x51, 0x41, 0xa4, 0x33, 0x64, 0xe8, 0xd1, 0x3e, 0x79,
+  0xd0, 0x7c, 0x6e, 0x69, 0x41, 0x77, 0x9d, 0xe6, 0x73, 0x07, 0xb7, 0x4f,
+  0x69, 0xe7, 0x4d, 0x72, 0xa4, 0x75, 0xaa, 0x72, 0xa5, 0x7b, 0xe4, 0xad,
+  0x42, 0xce, 0x05, 0xd3, 0x1b, 0x66, 0x06, 0xa6, 0x58, 0x4d, 0xbf, 0x7f,
+  0xd5, 0xcc, 0xfb, 0xd1, 0x25, 0xc0, 0x5a, 0xb7, 0xb7, 0xc0, 0xf4, 0x4a,
+  0xf2, 0xe1, 0xdf, 0x2b, 0x15, 0xc8, 0x1d, 0x81, 0x90, 0x93, 0x93, 0x77,
+  0x1c, 0x3a, 0x3e, 0xbc, 0xa0, 0xbf, 0xe5, 0x96, 0x0d, 0x60, 0x80, 0x43,
+  0x41, 0x54, 0xbf, 0x9c, 0xa9, 0xf7, 0xfe, 0xdb, 0x6e, 0x02, 0xc9, 0xe6,
+  0xd9, 0x70, 0xfb, 0xd9, 0xab, 0x9d, 0x30, 0xa9, 0x79, 0x93, 0xbe, 0xe1,
+  0x68, 0x52, 0x3e, 0x1b, 0x3c, 0xdf, 0x19, 0xec, 0x6c, 0x75, 0x7a, 0x43,
+  0xd3, 0x2d, 0xa8, 0xa3, 0x18, 0x1a, 0x4e, 0xc9, 0x1d, 0xed, 0xc5, 0x41,
+  0x53, 0xe0, 0xf2, 0x7f, 0x15, 0x04, 0xe8, 0xa7, 0xc1, 0x5c, 0x64, 0x77,
+  0x66, 0xab, 0xc5, 0x8c, 0xe1, 0xe4, 0x24, 0xaf, 0xc5, 0xf5, 0x49, 0xb7,
+  0x99, 0xde, 0x2f, 0x94, 0x67, 0xd6, 0xce, 0xfd, 0xc2, 0x23, 0x74, 0x61,
+  0x72, 0x5c, 0x3e, 0x12, 0x19, 0xa8, 0x4d, 0xa7, 0x2a, 0x20, 0xc6, 0x10,
+  0x7f, 0xfe, 0xcd, 0x1d, 0x20, 0x9e, 0x43, 0x6f, 0xf7, 0xd5, 0xe0, 0x33,
+  0x7f, 0x4d, 0x49, 0x13, 0xef, 0xa7, 0xf5, 0x38, 0xcf, 0x57, 0xda, 0x18,
+  0xca, 0xb5, 0xf1, 0xd7, 0x05, 0x08, 0x3f, 0xcc, 0x36, 0xcd, 0x53, 0x0e,
+  0x2b, 0x3a, 0x9e, 0xa4, 0xa0, 0x59, 0x52, 0x23, 0xcd, 0x16, 0x5b, 0xd5,
+  0xae, 0xb8, 0xb4, 0x89, 0xbe, 0x59, 0xa8, 0xdd, 0xe0, 0xce, 0x9b, 0xe2,
+  0x5c, 0x77, 0x54, 0x29, 0x73, 0x16, 0x98, 0x1a, 0x64, 0x5e, 0x85, 0x09,
+  0x0a, 0x46, 0x4e, 0x80, 0x28, 0xd2, 0xcc, 0x7d, 0x5d, 0xd2, 0x3c, 0xc5,
+  0x26, 0x15, 0x5e, 0x03, 0x90, 0x63, 0x59, 0xe3, 0xc6, 0x9e, 0x7d, 0x01,
+  0xae, 0xfc, 0xd9, 0x43, 0x99, 0xb4, 0x0c, 0x94, 0x34, 0xa2, 0x0c, 0x32,
+  0xb7, 0x67, 0x82, 0x50, 0x2e, 0xdb, 0x4f, 0x34, 0x10, 0x26, 0x23, 0x49,
+  0xe0, 0x8a, 0x60, 0x3c, 0x83, 0x70, 0xce, 0x52, 0xaa, 0xbf, 0x9d, 0xad,
+  0x08, 0x91, 0x43, 0xcf, 0x8c, 0x0f, 0xcc, 0x41, 0xd8, 0x41, 0x45, 0x76,
+  0x4f, 0xd2, 0xb8, 0x16, 0x75, 0xa2, 0xaa, 0x72, 0x72, 0xe6, 0xd8, 0x40,
+  0x38, 0xab, 0x64, 0x04, 0x0d, 0xa4, 0x0b, 0x7a, 0x12, 0xc9, 0x4a, 0x1b,
+  0xe3, 0x74, 0xd6, 0x96, 0x8a, 0xa9, 0x00, 0xf7, 0x0d, 0x71, 0xb9, 0x3c,
+  0xcd, 0xaa, 0x5d, 0xba, 0xe9, 0xc0, 0x0d, 0xec, 0xd0, 0x08, 0x4d, 0xc4,
+  0xd9, 0x43, 0x70, 0x02, 0xf6, 0x8c, 0x30, 0x17, 0x06, 0xe6, 0x3a, 0xad,
+  0x85, 0x47, 0x7a, 0xc4, 0xbb, 0x71, 0xc5, 0xd6, 0xa9, 0xd2, 0xfb, 0xc7,
+  0xf7, 0xa3, 0xb7, 0x6b, 0x64, 0xa6, 0xa7, 0x70, 0x95, 0x78, 0xd4, 0x5d,
+  0xf0, 0x11, 0x28, 0x88, 0x2d, 0xd2, 0x53, 0xa1, 0x8c, 0x65, 0xbe, 0x56,
+  0x33, 0x99, 0x8d, 0x18, 0x37, 0x2c, 0xd7, 0xff, 0xbc, 0x02, 0xf4, 0xed,
+  0x9c, 0x8a, 0x6e, 0x14, 0x2d, 0xcf, 0x79, 0x87, 0xff, 0x07, 0xc3, 0x32,
+  0x57, 0x1e, 0xa3, 0xa6, 0x9f, 0x70, 0x28, 0xdc, 0xe8, 0x7a, 0x76, 0x23,
+  0x89, 0xf2, 0xcf, 0x8e, 0x21, 0x6f, 0x98, 0x42, 0x14, 0x15, 0x83, 0xc7,
+  0x31, 0x51, 0x16, 0x6d, 0x2b, 0x64, 0x6f, 0x5b, 0x02, 0x90, 0x79, 0x56,
+  0x91, 0x14, 0x04, 0x0a, 0xb7, 0xaf, 0x08, 0xd0, 0xd8, 0xc5, 0x62, 0x36,
+  0xff, 0xe1, 0x57, 0xc7, 0x80, 0xc4, 0x9a, 0x43, 0x5f, 0x48, 0xaa, 0x24,
+  0xf7, 0x9f, 0x09, 0xbb, 0xad, 0x11, 0x76, 0x9d, 0x5b, 0x93, 0x31, 0x4d,
+  0x5a, 0x64, 0x5c, 0x1d, 0x1d, 0x39, 0x51, 0x65, 0x58, 0x40, 0x7f, 0xa2,
+  0xd3, 0x52, 0x64, 0x81, 0x14, 0x52, 0x0d, 0x93, 0xa5, 0x0e, 0xa2, 0x1c,
+  0x9d, 0x2f, 0x7c, 0x5d, 0x53, 0x7a, 0xd3, 0x9a, 0xa9, 0x16, 0x58, 0xb1,
+  0x08, 0x30, 0xb8, 0x6e, 0xbf, 0x32, 0x01, 0x7a, 0x16, 0xe2, 0x89, 0xe4,
+  0xf3, 0xf1, 0x0a, 0x05, 0x58, 0x93, 0x8e, 0x39, 0x6e, 0xa7, 0x2e, 0xd3,
+  0x00, 0x31, 0xba, 0x0f, 0x10, 0x3c, 0x39, 0x65, 0x62, 0x9e, 0x3f, 0x55,
+  0x4b, 0x28, 0x24, 0xf0, 0x9f, 0xc0, 0x55, 0xd3, 0x1d, 0x61, 0xce, 0x27,
+  0xdd, 0x92, 0x9a, 0x9c, 0xe0, 0xb7, 0xa6, 0x14, 0x2f, 0x82, 0x26, 0x8c,
+  0x37, 0x47, 0xf6, 0xca, 0x1b, 0xba, 0xd9, 0xff, 0x2c, 0x0e, 0x0f, 0x73,
+  0x54, 0x53, 0x3f, 0x08, 0x22, 0x99, 0x29, 0xe8, 0xbb, 0x66, 0xa1, 0xd3,
+  0x34, 0xc4, 0x9b, 0x33, 0x97, 0xe3, 0xf8, 0xc6, 0x9f, 0x3d, 0xde, 0x71,
+  0xc4, 0xd0, 0x58, 0x33, 0x09, 0xfe, 0xef, 0xba, 0x93, 0xf7, 0xe6, 0xf1,
+  0xd9, 0xfb, 0xb9, 0xd3, 0xb7, 0x7a, 0xf6, 0x98, 0xe9, 0x54, 0x11, 0x88,
+  0x6f, 0x3c, 0x47, 0x0f, 0x82, 0xe8, 0x6c, 0x2b, 0x58, 0x87, 0x4f, 0x5b,
+  0xca, 0x78, 0x46, 0xd1, 0x9b, 0x5f, 0x6b, 0xd5, 0xb1, 0x19, 0x61, 0x81,
+  0x52, 0xe7, 0xe3, 0xcd, 0xb1, 0xb7, 0x12, 0x6b, 0xef, 0xf3, 0xf1, 0x88,
+  0xce, 0x88, 0x16, 0xc8, 0xd0, 0xfb, 0x64, 0xf6, 0x7f, 0xc3, 0x9b, 0x79,
+  0x04, 0x9f, 0x4a, 0x3f, 0xde, 0x9c, 0x66, 0x60, 0x88, 0xd2, 0x18, 0x8c,
+  0xef, 0xcf, 0x7a, 0x49, 0x3d, 0x36, 0x38, 0xd9, 0x17, 0x0c, 0x17, 0x03,
+  0x62, 0x43, 0x5c, 0x74, 0x16, 0xb9, 0x63, 0xe3, 0x6f, 0x11, 0x27, 0xa6,
+  0x4d, 0x83, 0xb1, 0xfc, 0x40, 0xd8, 0x8f, 0xf6, 0x06, 0xdb, 0xea, 0xb5,
+  0xe7, 0x8c, 0x58, 0x4f, 0x70, 0x1f, 0xc8, 0x42, 0xc7, 0x9b, 0xcb, 0x61,
+  0x98, 0xca, 0xf2, 0x11, 0x89, 0x69, 0x74, 0xf9, 0xfe, 0xff, 0x6c, 0x88,
+  0xec, 0x1e, 0x65, 0xec, 0x28, 0x17, 0x43, 0xb8, 0x66, 0x3e, 0x21, 0xd3,
+  0x2d, 0x80, 0x97, 0x93, 0x16, 0xdd, 0x78, 0x47, 0x08, 0xe0, 0xae, 0x25,
+  0xd7, 0x38, 0xc5, 0xec, 0xa6, 0x88, 0x6c, 0xe6, 0x4c, 0x8a, 0xf8, 0xc6,
+  0xde, 0x3c, 0x93, 0x3e, 0x0d, 0xaf, 0x2f, 0xbb, 0x76, 0x80, 0x7d, 0xb8,
+  0x62, 0xb3, 0xda, 0xcd, 0x19, 0xdf, 0x97, 0xc1, 0x0e, 0x5c, 0x7e, 0x3b,
+  0x2a, 0xf5, 0x96, 0x5c, 0xef, 0xad, 0xcb, 0x72, 0xf7, 0xf3, 0xd6, 0x65,
+  0xe9, 0xde, 0x59, 0x75, 0x4d, 0x0e, 0x33, 0xc6, 0xfa, 0xf8, 0x3e, 0x37,
+  0xbc, 0x04, 0x04, 0x05, 0x68, 0x6f, 0x15, 0x35, 0x02, 0xe3, 0x04, 0x4b,
+  0x4c, 0xaf, 0x76, 0x75, 0x00, 0x81, 0x69, 0x24, 0x92, 0x8b, 0x98, 0xb0,
+  0x49, 0x8c, 0xc0, 0x8b, 0x28, 0xf3, 0xc9, 0xa8, 0x2a, 0xef, 0x6b, 0x68,
+  0x4f, 0x6a, 0x4f, 0xa5, 0x8c, 0x2e, 0xbc, 0x49, 0xeb, 0x50, 0x31, 0x9c,
+  0x5a, 0x8a, 0xb0, 0xaf, 0x2f, 0xdf, 0x9f, 0x30, 0x0d, 0x2a, 0x67, 0x46,
+  0x51, 0x22, 0x87, 0xf4, 0x79, 0x31, 0x9a, 0x99, 0xf5, 0x37, 0x0a, 0x4a,
+  0xc3, 0xd2, 0x4c, 0x05, 0x64, 0x90, 0xbe, 0x85, 0xa8, 0x90, 0x04, 0x15,
+  0xe7, 0x31, 0x5f, 0xbf, 0xb8, 0x82, 0x5c, 0x34, 0x4d, 0x16, 0x17, 0xb9,
+  0x44, 0x6b, 0xc1, 0x1e, 0x51, 0x78, 0xc5, 0xf6, 0xa7, 0xfe, 0xfd, 0xfd,
+  0x7d, 0x9f, 0x7a, 0xe7, 0x14, 0x13, 0x32, 0xd9, 0x0e, 0x89, 0x45, 0x85,
+  0xed, 0x97, 0xfe, 0x3b, 0x5a, 0x0a, 0x7a, 0x24, 0x38, 0x7d, 0x9e, 0xa6,
+  0x06, 0xb6, 0x7e, 0xb0, 0x0d, 0x5a, 0x87, 0x02, 0x29, 0x5e, 0x96, 0xaa,
+  0x17, 0xe4, 0x14, 0x69, 0x5b, 0xd9, 0xea, 0x8a, 0x34, 0xa7, 0x7c, 0x39,
+  0xd2, 0x5d, 0x5f, 0xff, 0x22, 0x55, 0x84, 0x54, 0x22, 0x89, 0x49, 0x2c,
+  0x2a, 0xf2, 0x3f, 0xb1, 0x85, 0xd1, 0x8b, 0xc0, 0x99, 0x45, 0x27, 0x51,
+  0xbf, 0xbe, 0x8d, 0x8e, 0xb5, 0x2c, 0x13, 0x65, 0x17, 0xa5, 0xb6, 0xbd,
+  0xe3, 0x1b, 0xd1, 0x13, 0x99, 0x0a, 0x02, 0x20, 0x75, 0xac, 0xa6, 0xd9,
+  0x6c, 0xa6, 0x75, 0x90, 0xe7, 0xa7, 0xf0, 0xe7, 0x06, 0x1a, 0x5e, 0x54,
+  0xc7, 0x76, 0xd4, 0xbb, 0xb5, 0x63, 0x5b, 0x55, 0xf3, 0x0e, 0x8c, 0x18,
+  0xe0, 0xc0, 0x00, 0xdd, 0x6a, 0xd9, 0x76, 0xcf, 0xf4, 0x83, 0x08, 0xa2,
+  0xb8, 0x6b, 0x7a, 0x5e, 0xa4, 0x26, 0x27, 0x87, 0x89, 0x9f, 0x2f, 0xee,
+  0xa8, 0xe0, 0x66, 0x59, 0x75, 0xcd, 0x28, 0x21, 0xe6, 0x09, 0x8b, 0x66,
+  0x8d, 0xa6, 0x89, 0x47, 0x87, 0x92, 0x24, 0xff, 0xd6, 0xe7, 0x4b, 0x15,
+  0x9e, 0x95, 0x05, 0x25, 0x1a, 0x88, 0x0b, 0x78, 0xa3, 0x3f, 0x61, 0xb1,
+  0x32, 0x49, 0x0b, 0x33, 0x13, 0xe6, 0xc4, 0x86, 0x10, 0x8b, 0xe9, 0xf4,
+  0xcd, 0xb4, 0x5c, 0xd4, 0x0f, 0x1b, 0x89, 0x30, 0x5f, 0x0b, 0x59, 0x6c,
+  0xc3, 0x09, 0x7f, 0x58, 0x4b, 0xb3, 0xbe, 0x8b, 0xe2, 0x56, 0xef, 0x45,
+  0x02, 0x81, 0xd7, 0xec, 0x5b, 0xec, 0x34, 0xb7, 0xe1, 0x7d, 0xec, 0xdf,
+  0xfc, 0xb6, 0xa3, 0xb3, 0x0c, 0x4f, 0x24, 0xdb, 0x79, 0x4f, 0x33, 0xf4,
+  0x5c, 0x14, 0x21, 0x66, 0xe5, 0x25, 0xad, 0xa8, 0x8f, 0x6d, 0x90, 0xee,
+  0x0d, 0xe6, 0x66, 0x53, 0x2f, 0xb9, 0x0b, 0xff, 0x43, 0xde, 0x2c, 0xc1,
+  0xf5, 0xbb, 0x6a, 0x52, 0x8c, 0xeb, 0x77, 0x14, 0x35, 0x9c, 0x32, 0x6c,
+  0x99, 0xa2, 0xfd, 0x2c, 0xa2, 0x41, 0x72, 0x1e, 0x41, 0x64, 0x21, 0x20,
+  0x6a, 0x9b, 0x4b, 0x7d, 0xfe, 0x2b, 0xb9, 0xd6, 0x6c, 0x66, 0x25, 0x40,
+  0xbb, 0x8c, 0xc4, 0x4e, 0xac, 0x35, 0x19, 0x20, 0x3d, 0xd8, 0xb4, 0x04,
+  0xb6, 0x5f, 0xad, 0x4f, 0xeb, 0x29, 0x26, 0x0a, 0x4e, 0x4a, 0xa4, 0xa5,
+  0xe8, 0xb8, 0x1a, 0xd3, 0xec, 0x6b, 0x67, 0x37, 0x67, 0x70, 0x66, 0xbc,
+  0xd3, 0x4b, 0xf3, 0x01, 0x21, 0x60, 0xf9, 0x38, 0xe9, 0x26, 0xeb, 0x18,
+  0x5d, 0x9c, 0x0b, 0xea, 0xc4, 0x4a, 0x30, 0x58, 0x86, 0xe8, 0xad, 0x80,
+  0x34, 0xf9, 0x67, 0xdb, 0xbb, 0x6d, 0x9c, 0xd5, 0xd5, 0xbd, 0x82, 0x96,
+  0xfb, 0x0b, 0x1d, 0x8f, 0x99, 0x13, 0x81, 0xfc, 0xfa, 0xb1, 0x42, 0xa5,
+  0xa4, 0x35, 0xf1, 0x74, 0xf9, 0xa6, 0x5e, 0x36, 0xcd, 0xae, 0x79, 0x4c,
+  0xaf, 0x4f, 0x8e, 0xbe, 0x3d, 0x3a, 0x09, 0x2e, 0xb0, 0xaf, 0x86, 0xc3,
+  0xed, 0xdb, 0xac, 0x1a, 0xa1, 0xbe, 0x0f, 0xf9, 0xbc, 0x13, 0x3c, 0x67,
+  0xf1, 0x3a, 0x9e, 0x54, 0xbf, 0x77, 0xc9, 0xca, 0x82, 0x66, 0x0d, 0x8c,
+  0x7d, 0x22, 0xb4, 0xe7, 0x4f, 0x0a, 0x17, 0x27, 0xf2, 0x2a, 0x04, 0x18,
+  0x86, 0x5b, 0x6a, 0x5c, 0x65, 0x13, 0xae, 0x7f, 0x13, 0x42, 0xc2, 0x0a,
+  0x52, 0xf3, 0x93, 0xe4, 0x2d, 0x96, 0x92, 0xe1, 0xb2, 0x88, 0x7e, 0xd8,
+  0x41, 0x04, 0x6f, 0xcc, 0x4b, 0x73, 0x85, 0x3c, 0x24, 0x6f, 0xe5, 0x9b,
+  0x92, 0x5c, 0x47, 0xb3, 0xc1, 0x5c, 0x26, 0x6c, 0x32, 0x9c, 0x7d, 0xd3,
+  0x3f, 0x18, 0xf6, 0xdf, 0x1e, 0x9d, 0x1c, 0x7d, 0x75, 0x70, 0x79, 0xa4,
+  0x84, 0x93, 0xe4, 0xfe, 0x5f, 0xa2, 0x0c, 0xb1, 0xbc, 0xfb, 0x46, 0xa6,
+  0x05, 0xe3, 0x27, 0xc2, 0xd2, 0x26, 0x67, 0x1a, 0x61, 0xe5, 0x65, 0xe5,
+  0x22, 0x6d, 0x64, 0xa2, 0x00, 0x3e, 0x53, 0x5e, 0xc5, 0x9b, 0x33, 0xa7,
+  0x6f, 0x3a, 0x93, 0xae, 0x06, 0x23, 0x48, 0xa7, 0xf7, 0x54, 0x50, 0xe0,
+  0x43, 0x41, 0x78, 0xe1, 0xdc, 0xe6, 0xc5, 0xf1, 0xe8, 0xbd, 0xc9, 0xf7,
+  0x66, 0xb6, 0xb5, 0xc0, 0x20, 0x66, 0x5c, 0x62, 0xbc, 0x1f, 0x15, 0x5c,
+  0x11, 0x00, 0xc1, 0xc7, 0xb7, 0x78, 0xb2, 0x43, 0x00, 0x39, 0xb0, 0xee,
+  0x34, 0x3a, 0xea, 0xf2, 0xab, 0x48, 0xda, 0x36, 0x6d, 0xa0, 0x7a, 0x7c,
+  0x93, 0xcd, 0x44, 0xa3, 0xa4, 0x80, 0x33, 0x92, 0x1e, 0x39, 0x89, 0x4c,
+  0x32, 0xe5, 0xf9, 0xa0, 0x8f, 0x32, 0x08, 0x66, 0xc4, 0x73, 0xb0, 0x79,
+  0x63, 0xf4, 0x8a, 0xf7, 0x44, 0x0b, 0x4b, 0x4e, 0x7a, 0x82, 0x60, 0x20,
+  0x5b, 0x72, 0x00, 0xb4, 0x18, 0x83, 0xe7, 0x8b, 0x56, 0xe8, 0xd7, 0xca,
+  0x4b, 0xae, 0x7a, 0xd1, 0xbd, 0xfc, 0x2d, 0xbf, 0xa4, 0xc7, 0x0b, 0x47,
+  0x91, 0x1d, 0xfc, 0x08, 0x02, 0x53, 0x55, 0x5f, 0xea, 0xe4, 0x2f, 0xf4,
+  0x70, 0x0a, 0xbc, 0xd5, 0xe5, 0x8e, 0x25, 0xb0, 0x49, 0x43, 0xfc, 0xcb,
+  0x52, 0xd8, 0x97, 0xc4, 0xda, 0xa9, 0xbb, 0xda, 0x5f, 0xb6, 0xd1, 0x94,
+  0xfc, 0x92, 0x97, 0x32, 0x91, 0xb3, 0x2c, 0x8c, 0xb1, 0x4f, 0x14, 0x0c,
+  0x2d, 0x4a, 0x59, 0xa2, 0xf0, 0xd4, 0xbf, 0x86, 0xc4, 0xbf, 0x36, 0xa3,
+  0xa8, 0x9f, 0xcd, 0x03, 0x1e, 0xc5, 0xcd, 0x77, 0x4a, 0x92, 0x6a, 0xf5,
+  0x3c, 0xbf, 0x4a, 0x80, 0x47, 0xe9, 0x7d, 0x74, 0x7e, 0xc1, 0xa5, 0xfa,
+  0x4e, 0xe8, 0x2f, 0x12, 0xb4, 0xa9, 0x63, 0xdc, 0x2f, 0x42, 0xd2, 0x4c,
+  0x18, 0x83, 0x0c, 0x5e, 0x7f, 0x1b, 0x8b, 0x55, 0x60, 0x19, 0xc3, 0x09,
+  0x85, 0xff, 0x52, 0x0e, 0x44, 0x2c, 0x41, 0xcf, 0x2b, 0x2d, 0x43, 0x3d,
+  0xa1, 0x2e, 0x08, 0xdd, 0x1d, 0x3a, 0xc1, 0x90, 0x48, 0xf5, 0xad, 0x9f,
+  0xd1, 0x2f, 0x49, 0xf7, 0x53, 0xe0, 0xc0, 0x92, 0x69, 0x6c, 0x31, 0xd5,
+  0x52, 0xb3, 0x40, 0x61, 0x57, 0x28, 0x44, 0x94, 0x9a, 0xae, 0x0c, 0x3a,
+  0x43, 0x05, 0x95, 0x3c, 0x71, 0x4d, 0x85, 0xae, 0x74, 0x90, 0xe8, 0x8b,
+  0x5f, 0x4c, 0xe1, 0xb4, 0x34, 0x60, 0x05, 0x0f, 0xf7, 0x24, 0x44, 0x9d,
+  0xda, 0x70, 0x25, 0x8a, 0x18, 0x22, 0x76, 0x1d, 0x68, 0xdb, 0x02, 0xb6,
+  0xe6, 0x31, 0x50, 0xba, 0xb0, 0x44, 0x5d, 0x59, 0x39, 0xbb, 0x92, 0xc8,
+  0x56, 0x0a, 0x7a, 0x41, 0x98, 0x19, 0x23, 0xd6, 0x26, 0x00, 0xd2, 0xba,
+  0x49, 0x8b, 0xc8, 0xa9, 0x33, 0x13, 0x6f, 0xd9, 0xfc, 0x31, 0x4a, 0x59,
+  0xb6, 0x88, 0x42, 0x4d, 0x7b, 0xa3, 0x85, 0xf1, 0xa5, 0xa2, 0x6b, 0x9f,
+  0x48, 0x61, 0xcf, 0xc9, 0x25, 0x2e, 0x5d, 0xe1, 0x99, 0x21, 0x32, 0x09,
+  0xdd, 0x6f, 0x65, 0x6c, 0x57, 0x89, 0x78, 0x71, 0x8e, 0xfa, 0xd6, 0x16,
+  0x5c, 0xe2, 0x02, 0xce, 0x12, 0x8b, 0xe8, 0xa9, 0x91, 0x48, 0xe0, 0x11,
+  0xc9, 0x51, 0x75, 0xac, 0x76, 0xa6, 0x01, 0x96, 0x0f, 0xf7, 0x7a, 0x11,
+  0x60, 0xcf, 0x19, 0x4b, 0x6e, 0xbe, 0x8d, 0xee, 0x92, 0x57, 0xc6, 0x06,
+  0xf3, 0x68, 0xf3, 0x04, 0xdf, 0x7f, 0x8b, 0xce, 0xd1, 0x77, 0xf0, 0x02,
+  0x4e, 0xbe, 0xd1, 0x1f, 0xb8, 0xb8, 0x1a, 0x21, 0x76, 0x78, 0x2b, 0x8f,
+  0x32, 0xf3, 0xbd, 0x9c, 0xaa, 0x37, 0xf8, 0xd5, 0x4f, 0x42, 0xd4, 0x6a,
+  0x6d, 0x36, 0x20, 0xdd, 0x16, 0xa4, 0x88, 0x91, 0x14, 0xa2, 0x77, 0x29,
+  0x14, 0x9f, 0x25, 0x7e, 0xe9, 0x13, 0x6c, 0x08, 0x68, 0xef, 0xe7, 0x3d,
+  0x09, 0x85, 0x01, 0xac, 0x16, 0x44, 0x94, 0xcd, 0x04, 0x8e, 0x2d, 0xe7,
+  0x84, 0x3e, 0x99, 0xd6, 0x77, 0xf1, 0x13, 0x5e, 0xdf, 0x45, 0x4f, 0xf8,
+  0x13, 0xce, 0xb9, 0xb3, 0x7d, 0x8e, 0xce, 0x87, 0xdf, 0x26, 0x4b, 0x72,
+  0xe0, 0x99, 0x70, 0x9b, 0x8f, 0xb8, 0x1b, 0x1d, 0x6d, 0x7a, 0xff, 0x98,
+  0x2f, 0x3f, 0xe7, 0x51, 0x77, 0x7d, 0x70, 0xce, 0xcd, 0xf7, 0xe5, 0x70,
+  0x9f, 0x1f, 0x0c, 0xbf, 0xf5, 0x8e, 0xb5, 0xb7, 0x05, 0x62, 0x39, 0x67,
+  0x16, 0xa8, 0x4c, 0xf1, 0x45, 0xde, 0x3a, 0xd4, 0x58, 0x74, 0xbf, 0xd7,
+  0x77, 0x4f, 0xd9, 0xef, 0xa6, 0x27, 0xc1, 0x7e, 0x0f, 0xe6, 0x78, 0xd5,
+  0x7e, 0xf7, 0x17, 0xaa, 0x8d, 0x81, 0xf4, 0x76, 0x7b, 0xc1, 0xf5, 0xdf,
+  0x6e, 0x50, 0x4a, 0x34, 0xbe, 0xcd, 0x81, 0x84, 0xe5, 0xad, 0x1d, 0x42,
+  0xc4, 0xd0, 0xcf, 0x9f, 0xb7, 0xd1, 0xcd, 0x0b, 0xc1, 0x46, 0xd7, 0xf5,
+  0x8c, 0xef, 0xf4, 0x65, 0x1b, 0x5d, 0x11, 0xa2, 0x19, 0x6f, 0x72, 0x7f,
+  0x8f, 0x87, 0xfb, 0xdb, 0xdb, 0xb5, 0x7e, 0xb6, 0x6b, 0x38, 0x43, 0x0a,
+  0x54, 0x62, 0xc4, 0x11, 0xed, 0x12, 0x97, 0xbb, 0x1e, 0xe1, 0x4a, 0xd0,
+  0x4c, 0x74, 0xce, 0xfb, 0x0b, 0xbd, 0xeb, 0x36, 0x03, 0xb9, 0x05, 0x66,
+  0xaf, 0x54, 0x97, 0xc6, 0x2d, 0x8e, 0x6b, 0x1b, 0xa6, 0xba, 0x9f, 0x37,
+  0x7d, 0x15, 0x9c, 0xc8, 0x16, 0x99, 0x48, 0x16, 0x4d, 0xc2, 0xad, 0x33,
+  0x82, 0x08, 0x80, 0xc7, 0xa6, 0x75, 0x4e, 0x8b, 0xba, 0xef, 0xea, 0xf3,
+  0xbd, 0xb6, 0x7f, 0x0d, 0xb4, 0xf4, 0xb7, 0xa7, 0xc3, 0xce, 0x71, 0xad,
+  0x33, 0x46, 0xcc, 0x5f, 0xe3, 0xe8, 0x99, 0xdf, 0x27, 0x2e, 0xf7, 0xc7,
+  0xd6, 0xc3, 0x90, 0x26, 0x83, 0x7c, 0x17, 0xfa, 0x44, 0x37, 0xc1, 0x48,
+  0x32, 0x16, 0x51, 0x52, 0x12, 0xfe, 0x3e, 0xf2, 0xb9, 0x78, 0xbd, 0x93,
+  0xec, 0x57, 0xf2, 0xa4, 0x44, 0xa8, 0x8a, 0x24, 0x61, 0x87, 0xfa, 0xa9,
+  0xa5, 0xb9, 0x84, 0xc5, 0x53, 0xe8, 0x82, 0x2c, 0x95, 0x7f, 0x91, 0x78,
+  0x25, 0x09, 0x63, 0x91, 0x99, 0x4d, 0xb4, 0x57, 0x28, 0x64, 0x67, 0x6b,
+  0xa5, 0x36, 0xc5, 0x53, 0x38, 0xbf, 0x7b, 0xde, 0xa7, 0xc7, 0x55, 0x79,
+  0x92, 0x1f, 0xbe, 0xc4, 0x0f, 0x07, 0xdd, 0x89, 0x0e, 0x6c, 0x4d, 0xa9,
+  0x9f, 0x63, 0xbd, 0x8c, 0x8b, 0x62, 0x42, 0x7c, 0xc2, 0xd4, 0x6d, 0xad,
+  0x85, 0x7b, 0x9f, 0x3a, 0x1e, 0x64, 0x64, 0xa6, 0x33, 0x67, 0x89, 0xd9,
+  0x4b, 0xdd, 0xc9, 0x4d, 0x51, 0x14, 0xd7, 0xf3, 0x28, 0x3e, 0xeb, 0x86,
+  0xdf, 0x5a, 0x3d, 0x7e, 0x2d, 0xc3, 0x8c, 0x2f, 0x39, 0xaf, 0xb9, 0x67,
+  0xc9, 0x8f, 0x72, 0xa6, 0xf3, 0x7f, 0x9d, 0xcf, 0xfb, 0xfa, 0x26, 0x0b,
+  0xe1, 0x59, 0x7a, 0x2b, 0x57, 0xe3, 0x73, 0x5a, 0x86, 0xc8, 0x20, 0xb9,
+  0xdc, 0x96, 0x1f, 0xd8, 0xa1, 0x6d, 0x63, 0x77, 0x8d, 0xa8, 0x2c, 0x8d,
+  0xe5, 0xfc, 0x82, 0x79, 0xc3, 0xdf, 0x88, 0xa5, 0xc1, 0x28, 0x70, 0xd5,
+  0xf7, 0x59, 0x28, 0xe4, 0x1d, 0xbd, 0xb0, 0xef, 0x3e, 0xba, 0x7e, 0x6e,
+  0x3f, 0xac, 0x5a, 0x3f, 0x9d, 0xb3, 0xff, 0x1e, 0xeb, 0xf7, 0xf2, 0x37,
+  0x5b, 0xbf, 0x97, 0xff, 0x2d, 0xd6, 0xef, 0xe5, 0x3f, 0xbf, 0x7e, 0xcf,
+  0xbb, 0xeb, 0xf7, 0xf2, 0xbf, 0xcb, 0xfa, 0x69, 0x21, 0x09, 0x5d, 0xbd,
+  0x2c, 0x58, 0x3f, 0xf2, 0x84, 0xf0, 0x15, 0x02, 0xc2, 0x28, 0x68, 0x43,
+  0x34, 0xdd, 0xfa, 0x26, 0x07, 0x1e, 0x04, 0x6b, 0xc6, 0x9e, 0x5d, 0x85,
+  0x3c, 0x22, 0x1f, 0x3d, 0xce, 0xfb, 0x27, 0x15, 0x05, 0x94, 0x40, 0xeb,
+  0xf8, 0x3c, 0xb1, 0x1d, 0xf0, 0x96, 0xc1, 0x71, 0xef, 0x40, 0xc9, 0x89,
+  0xba, 0x5c, 0x6b, 0xf2, 0xc3, 0x99, 0x09, 0xe0, 0x64, 0xb3, 0xda, 0x25,
+  0x02, 0xc6, 0xc8, 0x75, 0xcc, 0xe4, 0xed, 0xbf, 0xa6, 0xf9, 0xea, 0xf3,
+  0xe3, 0x5f, 0x44, 0xf3, 0x7f, 0x50, 0xaf, 0xcb, 0x75, 0x29, 0xe6, 0x66,
+  0xf7, 0xa6, 0xee, 0xc9, 0xcb, 0xb6, 0xac, 0x90, 0x81, 0x2e, 0xe1, 0xb8,
+  0xff, 0xd8, 0x92, 0xbd, 0x85, 0x66, 0xb0, 0x98, 0xcd, 0x25, 0x2f, 0xf0,
+  0x91, 0xbc, 0x28, 0xe8, 0x9f, 0x5b, 0xc9, 0x77, 0xc8, 0x7a, 0x62, 0xcf,
+  0xaa, 0xe4, 0x0a, 0xd8, 0x62, 0xb3, 0x0a, 0xc4, 0xd6, 0xb0, 0xc5, 0x12,
+  0x56, 0x9f, 0x28, 0xc1, 0xca, 0x65, 0xdb, 0x5b, 0xc0, 0xa0, 0x76, 0x5b,
+  0xbd, 0x35, 0x2b, 0x7c, 0x0d, 0x49, 0x30, 0xd1, 0xbc, 0x91, 0xe4, 0xa3,
+  0x51, 0x1a, 0x42, 0xba, 0x16, 0x39, 0x51, 0x82, 0x3a, 0xcd, 0xf4, 0x58,
+  0xe6, 0x75, 0xd3, 0xd4, 0x40, 0xb2, 0x25, 0xbc, 0xda, 0xa7, 0xda, 0x7b,
+  0x30, 0x96, 0xc4, 0xa0, 0xc4, 0xaa, 0xca, 0xc0, 0x2e, 0x94, 0x5c, 0x74,
+  0x4b, 0x36, 0x52, 0xdc, 0x29, 0x70, 0x1e, 0x15, 0xcf, 0x7d, 0x6a, 0xee,
+  0xfe, 0x28, 0xcc, 0x80, 0x51, 0x18, 0x27, 0x8f, 0xf8, 0x77, 0xd8, 0xbf,
+  0x4b, 0x40, 0xdc, 0xac, 0x43, 0xf8, 0x76, 0x68, 0xb0, 0xe6, 0x3e, 0x44,
+  0x7c, 0xb0, 0xb6, 0x0a, 0xbe, 0xc9, 0xb8, 0xc0, 0x9b, 0xcc, 0xcf, 0x42,
+  0xb4, 0xbc, 0x66, 0xec, 0x10, 0x66, 0xe0, 0x91, 0x19, 0x9c, 0xa0, 0xd8,
+  0x02, 0x9a, 0x73, 0xe4, 0xba, 0xca, 0x6c, 0xad, 0x0b, 0x5b, 0xc8, 0x82,
+  0x21, 0x48, 0xc4, 0x6c, 0x36, 0x61, 0x46, 0x8b, 0x7f, 0x61, 0xd6, 0x9f,
+  0x87, 0xea, 0xf4, 0x45, 0x52, 0x76, 0xcd, 0xb1, 0xd0, 0x55, 0x08, 0xc2,
+  0x0e, 0xb1, 0x0f, 0x17, 0x20, 0xb3, 0xd4, 0x3e, 0x70, 0xc9, 0x14, 0x4d,
+  0x55, 0xce, 0x1f, 0x92, 0xaf, 0x52, 0x1a, 0x16, 0xd4, 0xc2, 0x34, 0x9b,
+  0x05, 0x39, 0x1f, 0x5c, 0x95, 0x4c, 0xb4, 0x34, 0xae, 0x50, 0xa6, 0x23,
+  0x84, 0x5e, 0xc9, 0xd3, 0x92, 0x50, 0x39, 0xf1, 0x09, 0xf9, 0xf3, 0x34,
+  0x77, 0x0c, 0xb0, 0xc9, 0xe1, 0xf0, 0x24, 0x54, 0xa6, 0x95, 0x4e, 0x7d,
+  0x65, 0x8e, 0x2f, 0x5a, 0xeb, 0xb7, 0x4f, 0x94, 0x19, 0x39, 0x37, 0xfe,
+  0x3a, 0x7a, 0x98, 0x65, 0xdc, 0xd9, 0x54, 0x73, 0xc1, 0x85, 0x88, 0x3a,
+  0x19, 0x57, 0x0f, 0x73, 0x32, 0xd0, 0xf8, 0x65, 0x39, 0x7b, 0xd4, 0x3f,
+  0x26, 0xe5, 0x5b, 0x99, 0x46, 0xf8, 0x01, 0x11, 0x32, 0x79, 0x15, 0x82,
+  0x98, 0x82, 0x99, 0x66, 0xba, 0x28, 0xb8, 0xaa, 0x82, 0x99, 0x64, 0xd6,
+  0x04, 0xac, 0x01, 0xae, 0xc2, 0x43, 0x40, 0x8d, 0x85, 0x92, 0x0d, 0x1d,
+  0x6a, 0x5e, 0xb8, 0x75, 0x90, 0x69, 0x49, 0xf4, 0xaf, 0xf0, 0x68, 0x6f,
+  0xe9, 0xc5, 0x20, 0x6f, 0x74, 0xaa, 0x4c, 0xaa, 0x08, 0xb6, 0xcc, 0xad,
+  0x29, 0x65, 0x4c, 0x17, 0x01, 0x65, 0x01, 0x87, 0xbc, 0x77, 0x77, 0x76,
+  0x1e, 0xe5, 0xa2, 0x10, 0xf7, 0xef, 0x4a, 0x4a, 0x0a, 0x92, 0x51, 0xec,
+  0x63, 0xb6, 0x49, 0xa2, 0x69, 0x2e, 0x09, 0x07, 0x5d, 0xf6, 0x1e, 0xf3,
+  0x49, 0x4b, 0x0d, 0xe1, 0x8e, 0x20, 0xcb, 0x3a, 0xa6, 0x6c, 0x01, 0x31,
+  0x85, 0x11, 0x61, 0x47, 0xe8, 0x63, 0xbd, 0xdf, 0x7a, 0x27, 0x5a, 0x7a,
+  0x8d, 0x3a, 0x44, 0x2f, 0x89, 0xf6, 0x32, 0x48, 0xbe, 0x7c, 0x70, 0x86,
+  0x93, 0x57, 0x3e, 0x1c, 0xbd, 0x62, 0x57, 0xab, 0x14, 0xfe, 0x5d, 0x45,
+  0x00, 0x12, 0xe7, 0x9b, 0xf8, 0x1d, 0x0b, 0x16, 0x34, 0x6b, 0x04, 0xd0,
+  0xbc, 0x46, 0xab, 0x48, 0x90, 0x8f, 0x7b, 0x0c, 0xec, 0x68, 0xcd, 0xed,
+  0xd5, 0xa5, 0x76, 0xf7, 0x58, 0xda, 0xf9, 0x52, 0x59, 0xc9, 0xaf, 0xd9,
+  0x66, 0x0f, 0x69, 0xa3, 0xf2, 0x3e, 0x6b, 0xab, 0x25, 0x94, 0xa9, 0xd8,
+  0x47, 0x3e, 0x62, 0x37, 0x0b, 0x9b, 0x52, 0x18, 0x51, 0x71, 0xf9, 0x13,
+  0xa3, 0x34, 0x9c, 0x09, 0x4c, 0xac, 0x35, 0x0c, 0x83, 0xd0, 0x5c, 0x89,
+  0x0e, 0x29, 0xa2, 0x2f, 0x58, 0x95, 0x02, 0x56, 0x4f, 0xba, 0x9f, 0x2c,
+  0x15, 0xa4, 0x46, 0xa9, 0x2d, 0xcd, 0xc6, 0x74, 0x84, 0x31, 0x29, 0xa8,
+  0xee, 0xae, 0xc9, 0x97, 0x08, 0x17, 0x43, 0x95, 0x60, 0xdd, 0xe3, 0xc3,
+  0xc5, 0x49, 0x2f, 0x91, 0xaa, 0x7d, 0x04, 0xf8, 0x34, 0x2b, 0x1d, 0xd7,
+  0x8d, 0x1c, 0x81, 0x0f, 0xf3, 0xb5, 0xf1, 0x58, 0x6a, 0x47, 0x3c, 0x44,
+  0x62, 0x1b, 0xce, 0x4f, 0xd3, 0x64, 0xad, 0x08, 0x99, 0xd0, 0x25, 0xc5,
+  0x4a, 0x1b, 0x09, 0x66, 0x7a, 0x70, 0x03, 0xa9, 0x84, 0x70, 0x1f, 0x6a,
+  0xa7, 0x2d, 0xd7, 0x8f, 0xa6, 0xed, 0x73, 0x32, 0x28, 0x39, 0x2b, 0x22,
+  0x29, 0xa5, 0x12, 0x8a, 0x24, 0x9a, 0xb0, 0x04, 0xcb, 0x83, 0x9c, 0xd2,
+  0x45, 0xe5, 0x05, 0x24, 0xd7, 0x6f, 0x72, 0xb3, 0xae, 0xc5, 0x3a, 0xee,
+  0xd3, 0x7a, 0x31, 0x62, 0x7a, 0xbb, 0x06, 0x1f, 0x8e, 0xc1, 0x83, 0x09,
+  0x5f, 0xe7, 0xbc, 0x63, 0xf1, 0x92, 0x7c, 0x2d, 0x10, 0x6c, 0x2f, 0x69,
+  0x1d, 0x0a, 0x55, 0x38, 0xb9, 0x6b, 0x2e, 0x9f, 0x35, 0xca, 0x21, 0xce,
+  0x3b, 0xc5, 0x25, 0xd3, 0xd0, 0xe9, 0x47, 0x4d, 0x80, 0x9e, 0xcf, 0xcb,
+  0xed, 0xbc, 0x7d, 0x7e, 0x2d, 0x70, 0x9a, 0xe8, 0xb8, 0xba, 0x52, 0xd9,
+  0x2c, 0xfb, 0x08, 0x4f, 0xa5, 0x60, 0x9d, 0xd2, 0x07, 0x64, 0x0d, 0xd8,
+  0x4f, 0x63, 0x87, 0x07, 0x64, 0x43, 0x44, 0xbc, 0x55, 0x42, 0x77, 0x94,
+  0xbd, 0x4c, 0x3c, 0x6e, 0xe3, 0x2a, 0x9f, 0x37, 0x1c, 0xfe, 0x0d, 0x0a,
+  0x36, 0xc7, 0xd5, 0xb0, 0xeb, 0x69, 0x39, 0x4a, 0xf9, 0x9c, 0x58, 0xb0,
+  0x87, 0xba, 0x9d, 0x5a, 0x24, 0x98, 0x28, 0x42, 0x6b, 0xb6, 0x67, 0x24,
+  0x51, 0xc7, 0x0c, 0xb9, 0xbf, 0x8f, 0x4a, 0x8a, 0x14, 0x8f, 0x5a, 0xf5,
+  0x41, 0xfb, 0x09, 0xa6, 0x9a, 0xea, 0x5f, 0xf5, 0xe4, 0x04, 0x6b, 0xc6,
+  0x23, 0xb0, 0x32, 0xb5, 0x77, 0xae, 0x02, 0x55, 0x08, 0x99, 0xc9, 0x93,
+  0x45, 0xd6, 0x86, 0xce, 0x6c, 0x48, 0xb4, 0x4e, 0x8a, 0x69, 0x00, 0xbe,
+  0x61, 0xab, 0x36, 0x4b, 0x54, 0x2c, 0x0a, 0x0b, 0x21, 0xd2, 0x49, 0x5b,
+  0xd7, 0x58, 0xab, 0x8b, 0x16, 0x74, 0x33, 0xb9, 0xce, 0x29, 0x22, 0xd1,
+  0x9b, 0x2b, 0x66, 0x83, 0xaf, 0x82, 0x02, 0x99, 0x57, 0xac, 0xa7, 0x01,
+  0xe7, 0xc9, 0x6b, 0xb2, 0x62, 0x66, 0xfc, 0x5a, 0xa3, 0x7b, 0x2d, 0xa9,
+  0x66, 0x3f, 0x1d, 0xbf, 0xa2, 0x20, 0xda, 0xb8, 0x94, 0xb4, 0x99, 0xc5,
+  0x4d, 0xaa, 0x4f, 0xcb, 0xd9, 0x2b, 0x29, 0xe2, 0xbf, 0xe0, 0x61, 0x53,
+  0xca, 0x58, 0x96, 0x06, 0xf1, 0xcc, 0x1a, 0x3a, 0x29, 0x52, 0x31, 0x17,
+  0x05, 0x42, 0xb1, 0xe6, 0xd0, 0x42, 0xc5, 0x71, 0xab, 0x1b, 0x2a, 0x6b,
+  0xc6, 0xde, 0x2f, 0x27, 0x59, 0x3a, 0x8d, 0x51, 0x37, 0x53, 0x87, 0xc9,
+  0xdb, 0xc8, 0xc2, 0x8d, 0x68, 0x40, 0x0b, 0xf1, 0x5b, 0x0b, 0xee, 0x94,
+  0x61, 0x57, 0x85, 0x64, 0x75, 0x6a, 0x0f, 0x71, 0xaa, 0x62, 0xd4, 0x3c,
+  0xd9, 0x34, 0xbf, 0x13, 0x7e, 0x05, 0x25, 0xce, 0x95, 0xa8, 0x93, 0x83,
+  0xd0, 0x43, 0xff, 0x7f, 0x7f, 0x62, 0x1f, 0xc0, 0x0e, 0x00, 0x46, 0xb8,
+  0xdb, 0x9c, 0x38, 0xe2, 0x38, 0xaf, 0x8b, 0x0b, 0x79, 0x0b, 0x94, 0x9d,
+  0x3a, 0xc6, 0x70, 0x03, 0x12, 0x93, 0x5b, 0x72, 0x0e, 0x11, 0xee, 0x16,
+  0xc9, 0x31, 0x0f, 0x57, 0xfa, 0x2e, 0x53, 0xa8, 0x08, 0xec, 0x0b, 0x5e,
+  0x80, 0xc6, 0xa6, 0xbb, 0x71, 0xd1, 0x77, 0xc8, 0x19, 0x16, 0x32, 0x7b,
+  0x7b, 0x4b, 0x8a, 0x89, 0x48, 0x2d, 0x41, 0xd9, 0x63, 0x38, 0xec, 0x75,
+  0x7a, 0x65, 0xcb, 0x7c, 0x8a, 0x00, 0x2f, 0xc7, 0x66, 0x0a, 0xb9, 0x04,
+  0x31, 0x7e, 0x56, 0x44, 0x72, 0x52, 0x58, 0x5c, 0x93, 0x94, 0xb4, 0xd7,
+  0x2e, 0x1d, 0x04, 0x85, 0x4f, 0xd6, 0xd3, 0x7c, 0x6e, 0x7d, 0x9c, 0x3d,
+  0x22, 0x17, 0x62, 0x18, 0x07, 0x05, 0x68, 0xef, 0x43, 0x06, 0xbd, 0x4e,
+  0xc9, 0x43, 0x21, 0x5b, 0x9c, 0x92, 0xfa, 0xbf, 0xd9, 0x69, 0xff, 0xf9,
+  0xce, 0x2e, 0xba, 0xfb, 0x7c, 0xe7, 0xb3, 0xad, 0xf6, 0xdd, 0x3c, 0xad,
+  0xb3, 0x3e, 0x70, 0x3c, 0x71, 0x1d, 0x95, 0xab, 0x65, 0x38, 0x3f, 0x0f,
+  0xf4, 0x51, 0x7a, 0x49, 0xc0, 0x3f, 0x93, 0x45, 0xa5, 0x88, 0x38, 0x2a,
+  0xa0, 0x42, 0x36, 0x63, 0x7d, 0x43, 0x1c, 0x5f, 0xc1, 0x5d, 0xef, 0xde,
+  0x81, 0x31, 0x05, 0x17, 0x3a, 0xcf, 0x94, 0xd9, 0x3d, 0xf4, 0xae, 0x2d,
+  0xbc, 0x21, 0x93, 0xc1, 0xe0, 0x22, 0xb2, 0x18, 0x43, 0xbe, 0x55, 0x9f,
+  0xc1, 0x88, 0x93, 0x10, 0x38, 0x8a, 0xd2, 0x2e, 0xc5, 0x65, 0x25, 0xcf,
+  0xbb, 0xbc, 0xc8, 0xeb, 0x1b, 0x94, 0xf0, 0xaa, 0xeb, 0xf4, 0x3a, 0x0b,
+  0xd3, 0x54, 0x8d, 0x48, 0x32, 0x86, 0x93, 0x14, 0xdd, 0x05, 0xdf, 0x31,
+  0x61, 0x71, 0xf8, 0x3c, 0x08, 0x8c, 0x5f, 0xca, 0x7c, 0x2c, 0x10, 0xa8,
+  0xb0, 0xc3, 0x5c, 0x52, 0x30, 0xd7, 0x15, 0x9f, 0x59, 0x56, 0x7b, 0x86,
+  0x0a, 0x22, 0x80, 0x78, 0x86, 0xa9, 0xea, 0x99, 0xab, 0x3e, 0x40, 0xec,
+  0x91, 0x1f, 0x61, 0x93, 0x16, 0xf7, 0x6c, 0x68, 0x84, 0xd0, 0x0e, 0x61,
+  0xa1, 0xa6, 0x29, 0x88, 0x5a, 0xcd, 0xdf, 0xcc, 0xcf, 0xbe, 0x37, 0x1a,
+  0xe9, 0xe0, 0x95, 0xfd, 0xf1, 0xd6, 0xd3, 0x8a, 0xd5, 0xec, 0x75, 0x34,
+  0x34, 0x82, 0x27, 0x8a, 0x3b, 0x1b, 0x06, 0xcb, 0x1b, 0xfe, 0xc7, 0xb2,
+  0xdc, 0x89, 0xa1, 0xe3, 0x10, 0x4d, 0x7c, 0xec, 0x8e, 0x9f, 0x5a, 0x83,
+  0x72, 0x3d, 0x40, 0xf4, 0x49, 0xc3, 0x61, 0x78, 0x41, 0x71, 0xaf, 0x93,
+  0x36, 0xab, 0x2f, 0xd4, 0xb8, 0x29, 0xd5, 0x25, 0xa0, 0x9d, 0x3f, 0x48,
+  0x4e, 0xa4, 0x24, 0xf4, 0xc6, 0x9f, 0x37, 0x30, 0x61, 0x1b, 0xaf, 0x99,
+  0xb0, 0x36, 0xf0, 0x8f, 0x81, 0xf4, 0x58, 0x09, 0xbe, 0x71, 0xe5, 0x6f,
+  0xfc, 0x89, 0xe0, 0x99, 0x6f, 0x36, 0x12, 0xed, 0x84, 0xcc, 0x3d, 0x77,
+  0x4c, 0xa2, 0xaa, 0x0a, 0x96, 0x0a, 0x6a, 0x15, 0x83, 0xd3, 0xaa, 0x8d,
+  0xde, 0xe0, 0x62, 0x70, 0xc4, 0xf0, 0xab, 0xc8, 0x4d, 0x1d, 0xbb, 0x26,
+  0x1f, 0x56, 0xd9, 0x06, 0xa4, 0x5e, 0x58, 0x08, 0x95, 0xe8, 0x2f, 0xa4,
+  0x68, 0x9e, 0x56, 0x3b, 0xb1, 0x93, 0xc3, 0x1d, 0x82, 0xab, 0x6b, 0x3c,
+  0xce, 0x49, 0x6f, 0xc1, 0xa9, 0x37, 0xbf, 0xbc, 0xbe, 0xce, 0x62, 0x54,
+  0xa1, 0x34, 0x19, 0x66, 0xd1, 0x69, 0x2e, 0xae, 0xb2, 0xb4, 0x81, 0xb6,
+  0x41, 0xb7, 0xfc, 0x72, 0x2c, 0xa9, 0xd3, 0xde, 0x23, 0xcf, 0x78, 0x8b,
+  0xf8, 0xda, 0x47, 0xec, 0xaf, 0x4a, 0x0d, 0x9a, 0x12, 0x6a, 0x5a, 0xcc,
+  0xa4, 0xc5, 0x14, 0x95, 0x09, 0x04, 0x98, 0xdb, 0x37, 0x33, 0x85, 0xb6,
+  0x98, 0x98, 0x79, 0xcc, 0xa8, 0x47, 0x42, 0x86, 0x74, 0x4d, 0x26, 0x72,
+  0x7e, 0x2a, 0xf5, 0xba, 0x84, 0xc6, 0x19, 0xb3, 0xdb, 0x06, 0xed, 0x8a,
+  0xd2, 0xa1, 0x16, 0x1d, 0x70, 0xc7, 0x91, 0x04, 0x2f, 0x87, 0xce, 0x05,
+  0x3b, 0x16, 0xc1, 0x73, 0x2f, 0xa9, 0x06, 0x80, 0x98, 0x03, 0x46, 0x9e,
+  0x6c, 0x63, 0xab, 0x33, 0x28, 0xdd, 0xcc, 0x74, 0x59, 0x31, 0xce, 0x9c,
+  0xf6, 0xf1, 0xc5, 0xbb, 0xc3, 0x2e, 0x4f, 0xe8, 0xb3, 0xcf, 0x3f, 0xb7,
+  0xc1, 0xa4, 0x4c, 0x20, 0x47, 0xb6, 0x04, 0x33, 0xac, 0x69, 0xc6, 0xc1,
+  0x31, 0xa8, 0xd0, 0x5c, 0xc1, 0x40, 0xd0, 0x72, 0x1c, 0x3b, 0xb2, 0x64,
+  0x32, 0xa7, 0x1b, 0x89, 0x46, 0xa1, 0x46, 0x99, 0x4d, 0x34, 0xe6, 0x7a,
+  0x0a, 0x8e, 0xda, 0x58, 0x3d, 0x20, 0x82, 0x19, 0x35, 0x97, 0xe8, 0x9f,
+  0x03, 0x54, 0xc6, 0xb5, 0xc0, 0x6a, 0x91, 0x30, 0x78, 0x9d, 0x35, 0x61,
+  0xaa, 0x84, 0x87, 0x59, 0x6c, 0x7d, 0x62, 0x39, 0x4b, 0x8a, 0x00, 0x92,
+  0x24, 0xd1, 0xe3, 0xb5, 0xf0, 0xe9, 0x4a, 0x99, 0xdd, 0x71, 0x66, 0xb9,
+  0xbb, 0xff, 0x8c, 0x53, 0xf6, 0xda, 0xd2, 0xc2, 0xc4, 0x0b, 0xf5, 0xfe,
+  0x59, 0x59, 0x78, 0x04, 0x37, 0x09, 0x4a, 0x98, 0xa6, 0x31, 0x4a, 0xaa,
+  0x93, 0x83, 0x00, 0xa9, 0x5a, 0xf6, 0x0f, 0x2d, 0xf8, 0x1c, 0x44, 0xe3,
+  0x73, 0x89, 0xe0, 0xbf, 0xb6, 0x2d, 0x0a, 0x13, 0x3d, 0x81, 0x84, 0xa9,
+  0x2f, 0x98, 0x05, 0x7c, 0xc1, 0xb2, 0x31, 0x37, 0x40, 0x72, 0x45, 0x25,
+  0x0f, 0x49, 0x28, 0xf7, 0xbe, 0x37, 0x4f, 0x11, 0xbe, 0x06, 0x10, 0x75,
+  0xee, 0x8b, 0x7b, 0x9e, 0xa2, 0x93, 0xa8, 0xa4, 0x36, 0x13, 0xde, 0xa7,
+  0xd4, 0x82, 0xdb, 0xf9, 0x36, 0xdb, 0x98, 0x57, 0x25, 0x35, 0xb4, 0x21,
+  0x2a, 0x68, 0x6c, 0x9e, 0x6d, 0xbe, 0x54, 0x45, 0x8e, 0x23, 0xea, 0x81,
+  0x25, 0xba, 0x22, 0x89, 0x5f, 0x19, 0x2b, 0x7e, 0xf0, 0xd7, 0xf9, 0xb5,
+  0x63, 0xda, 0x06, 0x35, 0xbc, 0x51, 0x5f, 0xc2, 0x5a, 0x0e, 0x38, 0x13,
+  0xfd, 0x77, 0x89, 0x7c, 0xf5, 0xcd, 0x9f, 0x5b, 0x0d, 0x28, 0x6f, 0xb3,
+  0x4f, 0x4b, 0x2a, 0x60, 0xca, 0xf1, 0x75, 0x1e, 0xc9, 0x44, 0x93, 0x0c,
+  0x7a, 0xde, 0x43, 0x0e, 0x41, 0xeb, 0x87, 0x02, 0x74, 0x3f, 0x21, 0xe6,
+  0xed, 0x22, 0xd7, 0xd3, 0x2c, 0x46, 0x66, 0x68, 0xcf, 0xcf, 0x35, 0x19,
+  0x16, 0xb0, 0x51, 0x90, 0x4a, 0xaf, 0xfb, 0x87, 0x7c, 0x9c, 0x4d, 0xb5,
+  0x18, 0x93, 0x32, 0xfa, 0xa1, 0x30, 0xbf, 0x6e, 0x16, 0x14, 0xe9, 0xa1,
+  0x2b, 0xb3, 0x89, 0xa4, 0x6f, 0x72, 0xdd, 0x32, 0xf1, 0xaf, 0x57, 0x72,
+  0x31, 0xb4, 0x99, 0xbc, 0x53, 0xbd, 0x53, 0xf2, 0x39, 0x48, 0xeb, 0xd5,
+  0xce, 0xea, 0x85, 0x68, 0x02, 0x57, 0xc6, 0x86, 0x5a, 0x58, 0x80, 0x61,
+  0xf7, 0xef, 0x99, 0xea, 0x12, 0x02, 0x2c, 0x62, 0x13, 0x0f, 0xda, 0x48,
+  0x78, 0xa9, 0xfe, 0xc5, 0x16, 0xb0, 0xe7, 0xb0, 0x51, 0xe3, 0x45, 0xc5,
+  0x98, 0xb2, 0xa1, 0x2d, 0x88, 0x68, 0x0b, 0xd1, 0xbc, 0x69, 0x89, 0xc0,
+  0xae, 0x88, 0xe0, 0xeb, 0xaa, 0xc7, 0xfe, 0x6d, 0x49, 0x69, 0x75, 0x89,
+  0x89, 0xcb, 0x57, 0x7f, 0xfd, 0x3e, 0x1b, 0xbd, 0xf9, 0x33, 0x99, 0xbd,
+  0x9f, 0x40, 0x63, 0xcb, 0xf7, 0x1e, 0xed, 0xf0, 0x6d, 0xb0, 0xda, 0x26,
+  0xde, 0x06, 0xe8, 0x36, 0x62, 0x4e, 0xc7, 0xd2, 0x66, 0x3d, 0x4c, 0xb8,
+  0xd7, 0xe4, 0x55, 0x59, 0xae, 0x6c, 0x51, 0xcd, 0x3a, 0xcc, 0x89, 0x07,
+  0x36, 0x61, 0x08, 0x86, 0xcb, 0x77, 0xe1, 0xad, 0x8f, 0x2d, 0x25, 0x42,
+  0x8f, 0xf7, 0x66, 0x2c, 0x05, 0x11, 0x55, 0x44, 0x59, 0x7d, 0xd7, 0x18,
+  0xc9, 0x9b, 0x1e, 0x43, 0xae, 0xa3, 0xc4, 0xe5, 0x6e, 0x0c, 0x7c, 0x2c,
+  0xc0, 0x6e, 0x40, 0x7f, 0xfd, 0x93, 0x7d, 0x9d, 0xfe, 0x63, 0x4e, 0x15,
+  0x58, 0x28, 0x57, 0x8c, 0x86, 0x50, 0x5b, 0xfa, 0xce, 0x36, 0x57, 0xe8,
+  0xd4, 0x62, 0x48, 0x1b, 0x3d, 0xbe, 0x85, 0xff, 0xb4, 0x01, 0x1f, 0x8f,
+  0x42, 0x01, 0x50, 0x33, 0x00, 0xb6, 0xe5, 0xa4, 0x5c, 0x74, 0x4f, 0x05,
+  0xa1, 0x65, 0xb8, 0xa8, 0x00, 0x7a, 0xbf, 0xa4, 0xe3, 0xd4, 0x73, 0xed,
+  0xfa, 0x8f, 0xeb, 0xb6, 0xf3, 0x3f, 0xae, 0xbb, 0xee, 0xff, 0xb8, 0xee,
+  0x06, 0xf0, 0xe3, 0xfa, 0x3a, 0xe8, 0x6b, 0xd3, 0x20, 0xa0, 0xf6, 0xf3,
+  0x17, 0x7d, 0x83, 0xbf, 0xea, 0x3e, 0xea, 0x7d, 0xd3, 0xfb, 0xe4, 0xfa,
+  0xc6, 0xaa, 0x49, 0xf3, 0x5d, 0xc7, 0x40, 0x2e, 0x77, 0xe7, 0xd0, 0xc8,
+  0x84, 0xd6, 0x34, 0xb9, 0x69, 0xe9, 0x45, 0xb4, 0x27, 0xff, 0x01, 0x9a,
+  0x71, 0x57, 0x20, 0xc1, 0xe3, 0xfe, 0xb5, 0xec, 0x51, 0xba, 0x0e, 0x5a,
+  0x97, 0x2a, 0x28, 0x56, 0x66, 0x5f, 0x8f, 0x6a, 0x49, 0x57, 0x8b, 0x8a,
+  0x2b, 0xe2, 0xf1, 0xf0, 0xd8, 0x5b, 0xa3, 0x58, 0x18, 0xf9, 0xd6, 0xfb,
+  0x83, 0xd3, 0x0f, 0x07, 0x27, 0x4f, 0x27, 0x12, 0x6d, 0x71, 0x36, 0xaf,
+  0x7c, 0xcd, 0x03, 0xbf, 0x76, 0xf2, 0xba, 0x1e, 0x47, 0xc5, 0x13, 0xf8,
+  0x88, 0xd4, 0x1a, 0xf2, 0x73, 0xc5, 0xd3, 0xba, 0x38, 0x80, 0x28, 0x56,
+  0xbe, 0x17, 0x80, 0x4a, 0x6b, 0xa1, 0x30, 0x5f, 0xd7, 0xf7, 0xe9, 0xf5,
+  0x75, 0x09, 0xa0, 0x5a, 0xc4, 0x71, 0x24, 0x05, 0xde, 0x82, 0xa4, 0xad,
+  0x03, 0x59, 0x4b, 0xbd, 0x08, 0xc2, 0x8b, 0xf3, 0xc5, 0x84, 0xf8, 0xa7,
+  0xbc, 0xba, 0xf2, 0x02, 0x73, 0x5d, 0x13, 0xe5, 0xf0, 0x70, 0x39, 0x74,
+  0xf3, 0xb7, 0x24, 0x6c, 0xe8, 0x04, 0xd2, 0x31, 0x8d, 0x54, 0x3e, 0x9e,
+  0x70, 0xda, 0x77, 0x19, 0x91, 0xd2, 0x62, 0x06, 0x5e, 0x4b, 0xdf, 0xe2,
+  0xb3, 0xca, 0xd9, 0x47, 0x9e, 0x4d, 0x4e, 0x5c, 0x09, 0xaa, 0x50, 0x11,
+  0x65, 0x3d, 0xa6, 0xeb, 0xfc, 0xc0, 0xd8, 0x7d, 0x8a, 0x2a, 0x16, 0x7f,
+  0x65, 0x00, 0x90, 0x85, 0x63, 0x01, 0x35, 0x4c, 0x65, 0x32, 0x12, 0x5b,
+  0x57, 0x41, 0x82, 0x52, 0xaa, 0xb5, 0x5e, 0x2e, 0x66, 0xe6, 0x60, 0x18,
+  0x95, 0x6c, 0x42, 0x66, 0xc7, 0xea, 0x4a, 0x90, 0xce, 0xa1, 0x53, 0xe2,
+  0xbf, 0x28, 0x50, 0xa9, 0x75, 0x20, 0x23, 0x35, 0x12, 0x7b, 0xd1, 0x3b,
+  0x6a, 0x7d, 0x78, 0x7c, 0x79, 0x94, 0x1c, 0x7c, 0xb8, 0xfc, 0x7a, 0x9d,
+  0x27, 0xb8, 0x9b, 0x4d, 0x81, 0x2c, 0x1e, 0xaa, 0x87, 0x70, 0x27, 0x5c,
+  0x8d, 0x34, 0x77, 0xac, 0xcd, 0xd2, 0x05, 0x1d, 0x31, 0x02, 0xbd, 0x6f,
+  0x0e, 0x56, 0xac, 0xd2, 0x8b, 0xc1, 0x8b, 0xee, 0x2a, 0x2d, 0x67, 0xcc,
+  0x01, 0x87, 0x0a, 0x48, 0x58, 0xb6, 0x74, 0xee, 0x64, 0xc7, 0x0b, 0x37,
+  0x0b, 0xf9, 0x80, 0xb7, 0x1d, 0xad, 0x22, 0x0c, 0x8c, 0x54, 0x0a, 0xb2,
+  0x85, 0x49, 0xd1, 0x36, 0x43, 0xdc, 0xda, 0xf5, 0x60, 0x8f, 0xb1, 0x19,
+  0x64, 0xa2, 0x02, 0x4a, 0xb9, 0xe0, 0x62, 0x42, 0xa5, 0xd2, 0x15, 0x5d,
+  0x18, 0x49, 0xa0, 0xd0, 0x90, 0x05, 0x31, 0xb5, 0x9a, 0x2d, 0xa0, 0x44,
+  0x8d, 0x2d, 0xd4, 0xa7, 0x2b, 0x0d, 0xa5, 0xca, 0x97, 0x83, 0x8f, 0xc6,
+  0xf9, 0x7c, 0x66, 0x39, 0x33, 0x74, 0x78, 0xc4, 0x34, 0x2b, 0x83, 0x38,
+  0x71, 0x0a, 0x1a, 0x9a, 0x57, 0x71, 0x79, 0xbd, 0xe6, 0x3f, 0xe3, 0xfb,
+  0x9d, 0x34, 0x9b, 0xaa, 0x94, 0xd2, 0xb5, 0xf2, 0x02, 0x87, 0xa2, 0x18,
+  0xef, 0x81, 0x7c, 0x40, 0x68, 0x94, 0xc4, 0xcc, 0xcf, 0x17, 0x3c, 0xb3,
+  0x99, 0x85, 0x6c, 0xbc, 0x9b, 0xe4, 0x6b, 0xe2, 0x49, 0x64, 0x93, 0x43,
+  0xda, 0x8b, 0x40, 0x79, 0x02, 0xbe, 0x81, 0x58, 0xc6, 0x96, 0x77, 0x7a,
+  0x43, 0xd5, 0x00, 0xc2, 0x78, 0x7c, 0x3f, 0x89, 0x27, 0xb5, 0x60, 0x08,
+  0xd0, 0x35, 0x2d, 0x68, 0xe8, 0xf0, 0xbb, 0xb7, 0x1e, 0x01, 0xa7, 0xfa,
+  0xd9, 0x35, 0x54, 0xcd, 0x39, 0xc4, 0xcb, 0x58, 0x03, 0xbc, 0xa4, 0x67,
+  0xb3, 0xe1, 0x06, 0x20, 0x5b, 0x9f, 0x64, 0xd9, 0xdc, 0xd2, 0x2b, 0xe5,
+  0x40, 0x9a, 0xe4, 0x35, 0x1c, 0x0e, 0x42, 0x6d, 0x35, 0x0b, 0x6f, 0x40,
+  0xc7, 0x1c, 0x08, 0xc9, 0xe1, 0xf2, 0x5b, 0x88, 0x51, 0xd8, 0xd8, 0xae,
+  0xc9, 0xee, 0x67, 0xcf, 0x3e, 0x4f, 0x6a, 0xca, 0x30, 0xc8, 0x3b, 0xb4,
+  0x2a, 0x4c, 0x47, 0xb2, 0x3c, 0x77, 0x5b, 0x0a, 0xa7, 0x6a, 0x94, 0x52,
+  0x60, 0xf9, 0x49, 0x4d, 0x79, 0x50, 0xb8, 0x48, 0x05, 0x24, 0x1b, 0x66,
+  0x35, 0x99, 0x49, 0x54, 0x7d, 0x05, 0x33, 0x06, 0xec, 0x2e, 0xcd, 0x16,
+  0xbb, 0xb9, 0x07, 0xde, 0x1e, 0x9e, 0x94, 0xa0, 0x58, 0xee, 0x25, 0x17,
+  0x47, 0x97, 0x17, 0xbd, 0x64, 0x78, 0x79, 0x76, 0xb1, 0x24, 0xe1, 0xbe,
+  0xe1, 0x74, 0x0f, 0x9a, 0x33, 0xf5, 0xb7, 0x49, 0x99, 0x44, 0x5f, 0xca,
+  0x20, 0xa0, 0xcb, 0x82, 0xa7, 0x8e, 0x26, 0x6f, 0x7a, 0x39, 0x9c, 0xde,
+  0x6c, 0x61, 0xdb, 0x98, 0xfb, 0x61, 0xe5, 0xc0, 0x78, 0xd9, 0x9f, 0xb0,
+  0x43, 0x68, 0x2f, 0xd2, 0x70, 0xad, 0x98, 0x47, 0x6f, 0x8d, 0xa9, 0x40,
+  0x66, 0xa8, 0x63, 0xd2, 0xd2, 0x6a, 0x2e, 0x4b, 0x88, 0x16, 0x38, 0xba,
+  0x58, 0xbb, 0x08, 0xa8, 0xd9, 0x72, 0xeb, 0x0a, 0x27, 0x5f, 0x47, 0x7d,
+  0xd4, 0xdb, 0xcc, 0x4b, 0x9d, 0x7e, 0x64, 0xff, 0xa6, 0x35, 0x79, 0xc8,
+  0xbd, 0x42, 0xd8, 0x75, 0x39, 0xcb, 0xd8, 0x18, 0x41, 0x90, 0x51, 0xe5,
+  0x53, 0x9d, 0x58, 0xbe, 0x91, 0x58, 0x5e, 0x85, 0x4d, 0x0b, 0xa5, 0x55,
+  0xde, 0xb0, 0xc8, 0x74, 0xad, 0x54, 0xc6, 0xeb, 0x62, 0xf4, 0xad, 0x69,
+  0x83, 0x7c, 0xdb, 0x0d, 0xed, 0x95, 0x97, 0x2f, 0xda, 0x16, 0xde, 0xbb,
+  0x5d, 0x21, 0x43, 0xe0, 0xfe, 0xa8, 0x64, 0x21, 0x8f, 0x9b, 0x42, 0xb4,
+  0xe1, 0x27, 0x56, 0xe2, 0x7a, 0xa8, 0x12, 0x3e, 0xb5, 0xfe, 0xb9, 0x02,
+  0xf3, 0xc5, 0x0d, 0x11, 0x88, 0x02, 0x88, 0x81, 0xa9, 0x2b, 0x4f, 0xab,
+  0x6b, 0xce, 0x50, 0xfb, 0x45, 0x57, 0xea, 0x76, 0x90, 0xf2, 0x5d, 0xa5,
+  0x59, 0x54, 0x33, 0x9f, 0x6b, 0xbd, 0x9b, 0xd5, 0xb0, 0x82, 0x0d, 0xf8,
+  0x57, 0xce, 0xc5, 0xa2, 0x52, 0x31, 0x92, 0x9f, 0x00, 0xea, 0x82, 0x02,
+  0x8e, 0xa7, 0x89, 0x9d, 0x39, 0xca, 0xce, 0x23, 0x3b, 0x1a, 0xf7, 0xd6,
+  0xa4, 0x44, 0xb8, 0x88, 0x06, 0x1d, 0x26, 0x72, 0x43, 0x5f, 0x06, 0xbe,
+  0x4a, 0x6f, 0x1a, 0x69, 0x4c, 0x3c, 0x4a, 0x15, 0x2a, 0x30, 0x74, 0x46,
+  0x8a, 0x6c, 0x81, 0x60, 0xa0, 0xe7, 0xfe, 0xb2, 0xb1, 0x44, 0x83, 0x11,
+  0xe0, 0x04, 0x41, 0xc3, 0xa0, 0x7d, 0x46, 0xe6, 0x6b, 0x74, 0x55, 0xd2,
+  0x23, 0x8a, 0x28, 0xe8, 0x8b, 0x53, 0x23, 0xb4, 0x76, 0x54, 0x2b, 0xe5,
+  0x40, 0x67, 0x72, 0xb0, 0x22, 0x61, 0xd5, 0xcf, 0x50, 0x68, 0x6d, 0xc9,
+  0x76, 0xc9, 0xf6, 0xf6, 0xe8, 0x96, 0xa2, 0x5f, 0x59, 0xa1, 0xb8, 0xa0,
+  0x85, 0xab, 0x2d, 0xaf, 0xac, 0xee, 0x2e, 0x2e, 0xdf, 0x67, 0xce, 0xfc,
+  0x36, 0xe1, 0x6d, 0x28, 0x15, 0x3b, 0x31, 0x37, 0xa4, 0xc6, 0xd5, 0x96,
+  0xd4, 0x2f, 0xb1, 0x7a, 0xa2, 0x69, 0xba, 0x45, 0x69, 0xeb, 0x33, 0x58,
+  0xa3, 0x70, 0x31, 0x27, 0x1f, 0x60, 0x6e, 0x07, 0x49, 0x2c, 0xa4, 0xcf,
+  0x04, 0x34, 0x0d, 0x62, 0x36, 0x6d, 0x8d, 0x4c, 0x4b, 0x16, 0x28, 0xc1,
+  0xa1, 0xab, 0x8a, 0xbd, 0xb1, 0xbc, 0xf6, 0x9f, 0x72, 0x4b, 0x42, 0xcd,
+  0x47, 0x29, 0x71, 0xf6, 0xc3, 0xb5, 0xce, 0x26, 0x2c, 0x87, 0xf6, 0xc7,
+  0x8c, 0xa1, 0xbe, 0x98, 0x87, 0xf7, 0xfc, 0xf1, 0xb9, 0x6b, 0x52, 0x58,
+  0x5c, 0x68, 0xaa, 0x51, 0x7e, 0xab, 0xf1, 0x3b, 0xd9, 0x94, 0x03, 0xb7,
+  0x00, 0xee, 0xea, 0xef, 0x9e, 0x46, 0x28, 0x02, 0xc1, 0xed, 0xbe, 0x0c,
+  0x0d, 0xaf, 0xbf, 0x1e, 0x18, 0xe1, 0x6a, 0x94, 0x8b, 0x9d, 0x75, 0xbf,
+  0x90, 0x1b, 0xfb, 0xde, 0xec, 0xab, 0xa4, 0x4b, 0xb7, 0x7a, 0x1b, 0x9e,
+  0x19, 0x75, 0x4c, 0x7a, 0x85, 0xa5, 0x37, 0xa9, 0x74, 0x13, 0x57, 0x26,
+  0x5e, 0x0b, 0x87, 0x2e, 0x6d, 0xad, 0xe8, 0xd5, 0xee, 0xab, 0xbd, 0xc1,
+  0xee, 0xcb, 0xcf, 0x07, 0xbb, 0x3b, 0x83, 0xdd, 0xf5, 0x4e, 0xad, 0x71,
+  0x29, 0xc1, 0xe0, 0xb5, 0x13, 0x29, 0xa6, 0x91, 0x2c, 0x27, 0x69, 0xc1,
+  0x07, 0x66, 0x0f, 0x03, 0x7a, 0x6c, 0xc0, 0xb4, 0x9e, 0xc1, 0x27, 0x66,
+  0x46, 0xa9, 0xa1, 0x6a, 0x7f, 0x5d, 0xa4, 0xa4, 0x5e, 0xa4, 0x8e, 0xdb,
+  0x65, 0x9e, 0xd3, 0x2e, 0x52, 0xe6, 0x04, 0xd7, 0x29, 0x5b, 0xb5, 0x44,
+  0x29, 0x16, 0x17, 0x61, 0x79, 0x57, 0x17, 0x87, 0xb7, 0xfe, 0x6a, 0xd2,
+  0x22, 0x9d, 0x54, 0xb7, 0xdf, 0xff, 0x27, 0x2c, 0x3e, 0x95, 0x90, 0x6f,
+  0x73, 0x17, 0x52, 0xb3, 0xd5, 0xc3, 0x13, 0x9b, 0x06, 0x86, 0x5c, 0xc1,
+  0x6e, 0xba, 0x99, 0x64, 0x0f, 0xb1, 0xf0, 0xeb, 0x64, 0x6c, 0x79, 0x57,
+  0xcc, 0x91, 0x97, 0x1e, 0xea, 0xbb, 0x47, 0xd1, 0xa6, 0xfa, 0xf7, 0xba,
+  0x19, 0x81, 0xf2, 0x1a, 0xae, 0x2b, 0x96, 0xcf, 0xda, 0x1c, 0xbd, 0xf6,
+  0xc7, 0x3f, 0x3a, 0x79, 0xc4, 0x35, 0x88, 0x98, 0x4d, 0xf0, 0x45, 0x4f,
+  0x08, 0x17, 0xd8, 0xd3, 0xc8, 0x74, 0x6f, 0xc9, 0xfa, 0xfe, 0x0f, 0xf0,
+  0x4a, 0xfe, 0xd4, 0xff, 0xc1, 0xfc, 0xfb, 0xa7, 0x75, 0x0b, 0x97, 0xe4,
+  0x14, 0x4f, 0xd6, 0x91, 0xd7, 0xda, 0x47, 0xb9, 0xd7, 0x2e, 0x57, 0x01,
+  0xad, 0xe0, 0xf2, 0xf0, 0x9c, 0x0f, 0x62, 0xc5, 0xde, 0x39, 0x8c, 0x94,
+  0x04, 0x11, 0xd4, 0x7a, 0x92, 0xe0, 0x4c, 0xf6, 0x60, 0x76, 0x8a, 0x9d,
+  0x4b, 0x65, 0xfd, 0x65, 0xb3, 0x12, 0x2f, 0xf6, 0x1c, 0x1f, 0x02, 0x29,
+  0x8e, 0x5c, 0x11, 0xda, 0x68, 0xb9, 0xd7, 0xe4, 0x4a, 0x61, 0x74, 0xb6,
+  0x11, 0xbf, 0xaa, 0x52, 0xf3, 0x0f, 0xb4, 0x39, 0x4a, 0x17, 0xad, 0xc9,
+  0x23, 0x7b, 0x6f, 0xba, 0xd6, 0x13, 0x62, 0x13, 0x06, 0x79, 0x68, 0x21,
+  0x71, 0x33, 0x1d, 0x55, 0x96, 0x2a, 0xb3, 0x4b, 0x95, 0xd7, 0xb7, 0x34,
+  0x42, 0x41, 0x2c, 0x41, 0x65, 0x73, 0x27, 0x9e, 0xc3, 0x0a, 0x15, 0x93,
+  0x48, 0x4a, 0x06, 0x94, 0x85, 0x21, 0x7a, 0x53, 0xec, 0x2e, 0x09, 0x5d,
+  0x7c, 0x85, 0xf9, 0x47, 0xb3, 0x38, 0xe5, 0xb1, 0x2a, 0x8b, 0x27, 0x17,
+  0xfb, 0x29, 0x11, 0x9a, 0xc7, 0x94, 0x26, 0xe7, 0x46, 0xdf, 0xb5, 0xdb,
+  0xc4, 0xcb, 0xf5, 0x4b, 0x36, 0xe9, 0x07, 0x74, 0x09, 0x6e, 0x75, 0x2f,
+  0x2f, 0xe2, 0xca, 0x4c, 0x73, 0xdf, 0x3d, 0x63, 0xd6, 0x8d, 0x4e, 0x2c,
+  0xa1, 0x40, 0x2a, 0xd3, 0x87, 0x49, 0xcf, 0x26, 0x17, 0x28, 0x9c, 0x8a,
+  0xd0, 0x06, 0xaa, 0xd8, 0xad, 0x45, 0x4d, 0x06, 0xc1, 0xb9, 0x3a, 0xad,
+  0x14, 0x98, 0x50, 0xb3, 0x1a, 0x76, 0xe2, 0xe9, 0x4f, 0xc8, 0x6d, 0x42,
+  0x1a, 0xdd, 0x17, 0xa8, 0x9e, 0x12, 0xda, 0x35, 0xe8, 0xfc, 0x2c, 0xc6,
+  0xbe, 0xe2, 0xdd, 0xad, 0x7b, 0x3b, 0xa1, 0x47, 0x85, 0x4a, 0xc2, 0x60,
+  0x92, 0xfb, 0xf9, 0xfc, 0xf1, 0xec, 0x6c, 0xcd, 0x1a, 0xa5, 0xb5, 0x6c,
+  0x09, 0x18, 0x7b, 0xd1, 0xd4, 0x8b, 0xeb, 0x6b, 0xe4, 0x87, 0x04, 0x5d,
+  0x24, 0xfc, 0xa5, 0x43, 0x58, 0x08, 0x5d, 0x9d, 0x91, 0xe9, 0xe8, 0xba,
+  0x4e, 0x87, 0x43, 0x79, 0x8a, 0xe8, 0x71, 0xa4, 0x3f, 0x4b, 0x81, 0xc0,
+  0x04, 0x98, 0xe1, 0x83, 0xee, 0xd7, 0x6d, 0xee, 0x43, 0x9c, 0x78, 0xac,
+  0x46, 0xad, 0xab, 0x23, 0x88, 0x63, 0x78, 0xb2, 0xb1, 0x5e, 0x21, 0x06,
+  0x07, 0x2b, 0x2b, 0xc2, 0x91, 0xb3, 0x8d, 0xc8, 0x3a, 0x39, 0x3b, 0x2d,
+  0xbf, 0x92, 0xb4, 0x70, 0xce, 0xeb, 0xad, 0x6c, 0x9e, 0xa4, 0x9f, 0xc6,
+  0x11, 0x56, 0x1f, 0xa7, 0xf9, 0x58, 0xe5, 0x20, 0x70, 0x22, 0xd1, 0x57,
+  0x9b, 0x9e, 0x0f, 0xf6, 0x82, 0xa5, 0xa5, 0xb2, 0xe1, 0xe3, 0x71, 0x1f,
+  0x0a, 0xc1, 0x6b, 0xd6, 0x53, 0xb6, 0x45, 0x4b, 0x88, 0x6b, 0x50, 0xc3,
+  0x4c, 0xe6, 0xfb, 0xf0, 0xf0, 0x50, 0x14, 0x9a, 0xcb, 0x9b, 0x8e, 0x66,
+  0x61, 0x13, 0x18, 0x45, 0xad, 0x8a, 0xc2, 0xc3, 0xea, 0x9b, 0x45, 0x33,
+  0x41, 0xa5, 0x14, 0x92, 0x1a, 0x2a, 0x87, 0x2d, 0xe6, 0xb7, 0x43, 0x34,
+  0x51, 0x9a, 0xe5, 0xe0, 0x64, 0x75, 0x6d, 0x3c, 0x00, 0x45, 0xce, 0x99,
+  0xe0, 0x12, 0x2f, 0x4a, 0xdb, 0xdd, 0x52, 0x0c, 0xdc, 0x57, 0x3f, 0x17,
+  0x54, 0x7b, 0x58, 0x47, 0xbc, 0x5b, 0xb6, 0x15, 0x7c, 0x36, 0xcd, 0x9b,
+  0x5a, 0x8a, 0x9a, 0xf2, 0xb7, 0xba, 0x6d, 0x3f, 0xb2, 0x1e, 0x32, 0xd5,
+  0xed, 0x25, 0x79, 0xb9, 0x74, 0x49, 0xe2, 0x92, 0x8a, 0x0c, 0x2c, 0xcc,
+  0x7c, 0xb2, 0x79, 0x08, 0x9e, 0x0a, 0xe2, 0xa3, 0xc2, 0xa9, 0x38, 0xbc,
+  0xa1, 0xa0, 0xd3, 0xd4, 0x2c, 0x90, 0xe9, 0x75, 0x0d, 0x39, 0xc0, 0x44,
+  0xf0, 0xc3, 0x93, 0xed, 0xcb, 0x93, 0x6e, 0xf2, 0x16, 0x55, 0x09, 0xa9,
+  0xc4, 0x47, 0xdc, 0xf6, 0x7c, 0xf2, 0x14, 0xf9, 0x85, 0x84, 0xed, 0x0e,
+  0xe7, 0x2f, 0x44, 0x93, 0x7f, 0x16, 0x85, 0x82, 0x7a, 0x9c, 0xef, 0xb6,
+  0xc8, 0x0a, 0xa0, 0xe2, 0xb3, 0x89, 0x28, 0xc7, 0x40, 0x77, 0xd7, 0xc9,
+  0xe9, 0xc1, 0x25, 0x21, 0x75, 0x1a, 0xc9, 0x76, 0xb9, 0x2a, 0x03, 0x08,
+  0xa6, 0x12, 0x8d, 0x58, 0x6a, 0x86, 0x74, 0xec, 0xc8, 0x2e, 0x55, 0x65,
+  0xe7, 0xe5, 0xab, 0x75, 0xe7, 0xad, 0x9a, 0x7e, 0x33, 0xa5, 0x72, 0x3f,
+  0x74, 0xf7, 0x7c, 0x77, 0x35, 0x76, 0xa3, 0xab, 0xc1, 0x13, 0x10, 0x5d,
+  0x91, 0x0b, 0x91, 0xe6, 0x32, 0xcd, 0x76, 0xeb, 0xc2, 0x89, 0x39, 0x2d,
+  0xaf, 0x73, 0x20, 0x65, 0x79, 0xa9, 0x20, 0xc6, 0x6d, 0x91, 0xa8, 0xae,
+  0x0c, 0xe6, 0xc9, 0x21, 0x4c, 0x39, 0xee, 0xc5, 0x36, 0x46, 0x8c, 0x0f,
+  0x09, 0xdd, 0x15, 0x76, 0x52, 0x85, 0xe5, 0x4c, 0xe1, 0x9c, 0x91, 0xea,
+  0xbb, 0x46, 0xc6, 0xe4, 0x63, 0x63, 0x29, 0x8c, 0x1f, 0x06, 0x8c, 0xd9,
+  0xae, 0xdb, 0xa1, 0xd1, 0xbc, 0x95, 0xe5, 0x6d, 0x3d, 0xa5, 0x14, 0xa6,
+  0x8d, 0xc2, 0x99, 0x64, 0x8c, 0x2b, 0x1d, 0xf2, 0x2f, 0x5b, 0xd7, 0xc7,
+  0x57, 0x64, 0x9a, 0x5d, 0x07, 0xd7, 0x2e, 0x7b, 0x75, 0x49, 0xc4, 0xf5,
+  0xba, 0xd4, 0xba, 0x8e, 0x4e, 0x92, 0x7c, 0x44, 0x4c, 0x5f, 0xdb, 0x29,
+  0x1a, 0x31, 0xe9, 0x45, 0xc9, 0xd6, 0x7a, 0x5d, 0xfe, 0xb2, 0x2a, 0xa4,
+  0x38, 0x6a, 0xa5, 0xc8, 0xd9, 0x0c, 0xa7, 0x4e, 0x73, 0x5f, 0x99, 0x7b,
+  0xdf, 0x92, 0xe3, 0x75, 0x32, 0xe9, 0x5a, 0xc4, 0x79, 0x5c, 0xa3, 0x8b,
+  0x22, 0x4e, 0xf7, 0x54, 0x16, 0xe2, 0x3e, 0x6e, 0xed, 0xb0, 0x42, 0x7b,
+  0xe9, 0xa8, 0xb6, 0xf8, 0x78, 0x28, 0x1f, 0xa1, 0x8a, 0x2c, 0xaa, 0x7c,
+  0x2a, 0x94, 0xdb, 0x1b, 0xff, 0xb1, 0xe1, 0xd8, 0x5f, 0x07, 0x4b, 0x12,
+  0xcf, 0x63, 0x8c, 0x34, 0x88, 0x34, 0x49, 0xa8, 0x49, 0xd3, 0xcd, 0xd1,
+  0x63, 0x61, 0x73, 0x8c, 0x30, 0xe8, 0xe9, 0xf8, 0x56, 0xf7, 0xe8, 0xeb,
+  0xa3, 0x83, 0xb7, 0x36, 0x31, 0xe2, 0x67, 0xf0, 0x23, 0x77, 0x55, 0x7e,
+  0xb8, 0x49, 0x5c, 0xb2, 0x00, 0xaa, 0xee, 0xd6, 0x4b, 0xe6, 0x8b, 0xdd,
+  0x7e, 0xa3, 0x8c, 0x39, 0xfe, 0x16, 0xe2, 0x31, 0x49, 0xb1, 0x3c, 0xba,
+  0x55, 0xb1, 0x51, 0x8c, 0xbe, 0x46, 0xf5, 0x46, 0xc1, 0x66, 0xbc, 0x94,
+  0xeb, 0x6e, 0xa9, 0x93, 0xc4, 0x73, 0x38, 0xab, 0xef, 0x9a, 0xb4, 0x66,
+  0xc6, 0x8b, 0x79, 0x5b, 0xf9, 0x1a, 0x5b, 0x79, 0x5a, 0x8e, 0xca, 0xab,
+  0xab, 0x15, 0x41, 0x40, 0x66, 0x1c, 0x00, 0xa6, 0x8b, 0x77, 0xcc, 0x3a,
+  0x4d, 0x23, 0xbd, 0x37, 0x42, 0x71, 0xea, 0xb4, 0x32, 0xc7, 0x6d, 0x7d,
+  0xc0, 0x47, 0x40, 0x0a, 0x75, 0x45, 0xca, 0x79, 0xdb, 0x58, 0xc2, 0x83,
+  0x44, 0xe4, 0xd5, 0xdc, 0x43, 0xa2, 0x01, 0x3b, 0x66, 0x38, 0x96, 0xed,
+  0xd1, 0xb6, 0x99, 0x59, 0xff, 0xaf, 0x7f, 0xfc, 0xf0, 0x53, 0x84, 0xbc,
+  0x0e, 0x04, 0xcf, 0x37, 0x0c, 0x93, 0x34, 0xcf, 0xcf, 0x24, 0x11, 0xcd,
+  0x72, 0x8c, 0xb9, 0x82, 0x79, 0xa4, 0x82, 0x65, 0xd3, 0xab, 0x81, 0xa3,
+  0x60, 0x0d, 0x2f, 0xc6, 0xda, 0x7d, 0x10, 0xd4, 0xd9, 0x84, 0x6b, 0x67,
+  0x2c, 0x32, 0xb1, 0x41, 0x81, 0x03, 0xd6, 0x81, 0x78, 0x2c, 0x57, 0x8c,
+  0xac, 0x44, 0x90, 0x11, 0xe7, 0x88, 0x5a, 0x2d, 0xac, 0xcb, 0x6e, 0xc0,
+  0x63, 0xeb, 0xf3, 0xf4, 0x56, 0xc2, 0x46, 0x53, 0xa3, 0x99, 0x96, 0x24,
+  0x78, 0xa9, 0x9e, 0xf4, 0x56, 0xf2, 0x0e, 0x95, 0x85, 0xfd, 0xec, 0x44,
+  0xda, 0x7e, 0xbf, 0xc3, 0x91, 0xb7, 0x39, 0xa3, 0x82, 0xc1, 0x8b, 0xd6,
+  0x18, 0xe1, 0x8b, 0x15, 0x7b, 0x9f, 0xdd, 0x0c, 0x58, 0x19, 0x46, 0xd1,
+  0x97, 0x00, 0x2c, 0x69, 0xc1, 0x03, 0xf5, 0xbc, 0x4b, 0x26, 0x11, 0x25,
+  0x2a, 0x84, 0x1c, 0xe6, 0x8c, 0xa2, 0x1e, 0xf8, 0xe2, 0x0f, 0x4c, 0x3b,
+  0x2e, 0xba, 0x45, 0xfd, 0x16, 0x8c, 0x0e, 0xbb, 0xaa, 0xb9, 0x9e, 0x57,
+  0x1d, 0xcd, 0xa1, 0x20, 0x0c, 0x39, 0x81, 0x5e, 0x90, 0xe3, 0x40, 0x66,
+  0x34, 0xd7, 0x52, 0x91, 0x6b, 0x18, 0x29, 0x56, 0x34, 0x5e, 0x6f, 0xe2,
+  0xbc, 0x3a, 0x96, 0xc9, 0x6b, 0xfe, 0x73, 0x09, 0x4c, 0xf0, 0x08, 0x54,
+  0xf2, 0xf2, 0xa8, 0x19, 0xab, 0x16, 0x17, 0x91, 0xed, 0xa6, 0x02, 0x10,
+  0x9a, 0xb8, 0xe0, 0x7c, 0xa3, 0xa2, 0x94, 0x02, 0x9d, 0xa9, 0x8b, 0x0f,
+  0xfd, 0x45, 0x28, 0x21, 0x75, 0x33, 0x13, 0x95, 0x9a, 0x2b, 0x4d, 0x99,
+  0x79, 0x1f, 0xad, 0xa3, 0xdc, 0xab, 0x6c, 0x52, 0x0a, 0x55, 0x3d, 0x9f,
+  0x6b, 0x2a, 0xed, 0x99, 0x9a, 0xd9, 0xaa, 0x1b, 0xa3, 0x8c, 0x69, 0x87,
+  0xe9, 0xb1, 0x1b, 0xc1, 0x37, 0x41, 0xb1, 0x67, 0xce, 0xad, 0x3a, 0xe2,
+  0x87, 0x72, 0x59, 0x26, 0xce, 0xe5, 0x0c, 0x0a, 0x77, 0xb6, 0x13, 0x34,
+  0x1e, 0xd6, 0xe3, 0x32, 0xe9, 0xc4, 0xb2, 0x54, 0x71, 0x26, 0x73, 0x78,
+  0x6e, 0xe5, 0xeb, 0x7e, 0xec, 0xba, 0x7b, 0x7d, 0xd8, 0x6f, 0x94, 0x36,
+  0x27, 0x45, 0x94, 0xa2, 0x50, 0x70, 0xd1, 0xdc, 0xb1, 0xeb, 0x06, 0x35,
+  0x76, 0x08, 0x52, 0x3a, 0xbe, 0xcd, 0xe9, 0xa2, 0xae, 0x9b, 0x05, 0x84,
+  0x4b, 0x5a, 0xf8, 0xbd, 0xb4, 0x34, 0x36, 0x93, 0x12, 0x33, 0x1d, 0x97,
+  0x83, 0x74, 0x58, 0x49, 0x7d, 0xa5, 0xd4, 0x78, 0xed, 0x0d, 0x8f, 0xc6,
+  0x9e, 0x12, 0x2b, 0x30, 0xa8, 0x90, 0x21, 0xb3, 0xe8, 0x44, 0x08, 0x3b,
+  0x32, 0x14, 0x22, 0x80, 0xf5, 0x79, 0x2f, 0xe9, 0x7b, 0x54, 0x3f, 0x0b,
+  0x52, 0x7a, 0x60, 0xd4, 0xa2, 0x59, 0x89, 0xf2, 0xa9, 0x6e, 0xc8, 0x32,
+  0x3d, 0x46, 0xce, 0x5c, 0xe7, 0x77, 0xd1, 0xd0, 0x9f, 0x76, 0x0c, 0x71,
+  0x43, 0xed, 0x85, 0x42, 0xda, 0x10, 0x81, 0xe4, 0x2c, 0x50, 0x78, 0x49,
+  0x50, 0x27, 0xc2, 0x2e, 0x5f, 0x70, 0x76, 0xa7, 0x24, 0x3c, 0x09, 0x29,
+  0x56, 0xec, 0x9b, 0x8d, 0x9f, 0xac, 0x7f, 0x5d, 0xd6, 0xcd, 0xfe, 0xba,
+  0xa5, 0x8b, 0x91, 0x48, 0x7d, 0xd6, 0xd9, 0x39, 0x52, 0x4a, 0xa1, 0x1f,
+  0x25, 0x38, 0xe5, 0x2b, 0xc4, 0x88, 0x34, 0x79, 0x58, 0xc1, 0x2a, 0x9c,
+  0xba, 0xe5, 0x92, 0xe3, 0x09, 0x57, 0x38, 0xcb, 0xa5, 0x0b, 0x94, 0x3a,
+  0x70, 0x13, 0x02, 0xd8, 0xa8, 0x4b, 0xdf, 0xf7, 0x0f, 0xf1, 0xf1, 0xfe,
+  0xd7, 0x68, 0xef, 0x4f, 0xeb, 0xd6, 0xf9, 0xd0, 0xfd, 0xd5, 0x7e, 0x58,
+  0xc4, 0xcd, 0x4f, 0xbe, 0xe2, 0x5d, 0x52, 0x2f, 0x2a, 0x05, 0xee, 0x20,
+  0xc8, 0x29, 0xbd, 0x44, 0x5a, 0xe5, 0x64, 0xb2, 0x6d, 0x17, 0x9d, 0xf1,
+  0x1c, 0xcb, 0xd8, 0xf0, 0xe7, 0x15, 0x45, 0xb5, 0xa8, 0xfa, 0x65, 0xbf,
+  0xbc, 0xea, 0xa3, 0xe2, 0xcd, 0x2c, 0xad, 0x6e, 0x29, 0x44, 0xee, 0x9d,
+  0x3a, 0xc0, 0xee, 0x41, 0x8a, 0x32, 0x99, 0xc4, 0x2e, 0x89, 0x94, 0x23,
+  0xf2, 0x95, 0xb5, 0x21, 0xa4, 0x33, 0xb2, 0x98, 0xfb, 0xe2, 0x24, 0xc2,
+  0xeb, 0x96, 0x4c, 0x93, 0x32, 0xde, 0x56, 0x72, 0x6f, 0xf6, 0xf8, 0x22,
+  0xc1, 0xa0, 0xa1, 0x49, 0xcc, 0xd8, 0xb1, 0x00, 0x57, 0xc8, 0x62, 0x0e,
+  0x9d, 0x97, 0xd2, 0xd3, 0x97, 0x5a, 0x02, 0x60, 0xce, 0x39, 0x50, 0x72,
+  0x3e, 0x29, 0x54, 0x0f, 0xc3, 0x20, 0x43, 0xed, 0x53, 0xa9, 0x10, 0x2f,
+  0x49, 0x4b, 0x61, 0x3b, 0xe4, 0xb4, 0x13, 0x30, 0xfa, 0x67, 0x83, 0x67,
+  0x9f, 0x51, 0x6d, 0x71, 0xcb, 0x25, 0xa4, 0x9c, 0x79, 0x4e, 0x68, 0x62,
+  0x29, 0xbd, 0xfd, 0xd5, 0xdd, 0x55, 0x74, 0xd6, 0xb4, 0x24, 0x94, 0x18,
+  0x96, 0x68, 0x62, 0x29, 0x90, 0x75, 0x09, 0xf0, 0x0b, 0x5b, 0xe9, 0x1d,
+  0x29, 0x54, 0xfd, 0x53, 0x23, 0xe7, 0xf6, 0x93, 0xff, 0x2c, 0xb3, 0xf5,
+  0x44, 0x6a, 0xdc, 0xfb, 0xf8, 0xd1, 0x20, 0x07, 0xf3, 0xe0, 0xe2, 0xf4,
+  0xf8, 0xf4, 0xab, 0x7d, 0xaf, 0x0a, 0x1c, 0xaa, 0x07, 0x3b, 0x7a, 0xba,
+  0x8e, 0x5e, 0x0e, 0x07, 0x2d, 0x3d, 0x42, 0xca, 0xf3, 0x74, 0xba, 0x84,
+  0x10, 0x24, 0xe9, 0x27, 0xcb, 0xaa, 0x82, 0xb9, 0x22, 0x07, 0x3d, 0x65,
+  0x5d, 0x65, 0xba, 0xae, 0xa6, 0x0c, 0x34, 0x03, 0xd1, 0x68, 0x4f, 0xa0,
+  0xd1, 0x6a, 0x65, 0x3d, 0x0b, 0x2b, 0x2f, 0x8c, 0xae, 0x91, 0x5a, 0x55,
+  0x55, 0x65, 0x0b, 0xb4, 0x1a, 0xc0, 0x95, 0xc2, 0x10, 0x20, 0x90, 0x61,
+  0x37, 0xa8, 0x1b, 0x01, 0xd1, 0xd9, 0xe2, 0xc4, 0x63, 0x5e, 0xab, 0x1a,
+  0x8b, 0x56, 0xe7, 0x50, 0x06, 0xdd, 0x9c, 0x2c, 0xd1, 0x5b, 0x5c, 0xc1,
+  0x62, 0x2d, 0x08, 0x27, 0xc9, 0x70, 0xf2, 0x53, 0x57, 0x54, 0xc1, 0xce,
+  0xc1, 0x6a, 0xd7, 0x10, 0x7b, 0x89, 0xd5, 0x09, 0xde, 0x81, 0x9e, 0x49,
+  0x1d, 0x6b, 0x3d, 0xc7, 0xdb, 0x15, 0x24, 0x6c, 0x0c, 0x20, 0x41, 0xaf,
+  0xe8, 0x2d, 0xea, 0x2e, 0xff, 0x1b, 0xbe, 0xfc, 0xa7, 0xf3, 0x20, 0xb7,
+  0x93, 0xe0, 0xd0, 0xf4, 0x0b, 0x99, 0x5b, 0x72, 0x2e, 0x4a, 0x4d, 0x5d,
+  0x86, 0xcc, 0xc4, 0x2a, 0xbb, 0xd6, 0x16, 0xe0, 0x1e, 0x5e, 0x33, 0x94,
+  0x5c, 0x94, 0x71, 0x7a, 0x1b, 0xbc, 0x61, 0xd6, 0x4a, 0xa3, 0x49, 0x9e,
+  0x2f, 0x46, 0xb3, 0xc9, 0x8b, 0xe4, 0xb5, 0xf9, 0x4f, 0xa0, 0x7b, 0x0c,
+  0x19, 0xf9, 0x73, 0x48, 0x8e, 0x0e, 0xd4, 0xed, 0x4c, 0x35, 0xcb, 0x42,
+  0x74, 0x5d, 0xfa, 0xeb, 0xb3, 0x3d, 0xd3, 0xd9, 0x4f, 0xa9, 0xe6, 0x53,
+  0x4f, 0xcc, 0x02, 0x36, 0x75, 0xac, 0xa8, 0xae, 0xbc, 0xea, 0xf0, 0x27,
+  0xb4, 0xe0, 0xbb, 0x7b, 0x9f, 0x27, 0xa3, 0xbc, 0x49, 0xde, 0xbf, 0x7d,
+  0x91, 0x18, 0x35, 0x7d, 0x7c, 0x5b, 0x2f, 0x66, 0x2a, 0xa3, 0xb4, 0x3a,
+  0x14, 0x36, 0xc3, 0x46, 0x57, 0x59, 0x30, 0x1d, 0x9f, 0xe6, 0xe3, 0xe4,
+  0x36, 0x7b, 0xe8, 0xb5, 0x7c, 0x88, 0x57, 0xea, 0xeb, 0x74, 0x0e, 0x40,
+  0x27, 0x4d, 0x11, 0xdb, 0xe1, 0xf8, 0x67, 0xc4, 0xbf, 0x64, 0xe6, 0xc0,
+  0x7c, 0xbe, 0xe6, 0x82, 0x12, 0x2b, 0xad, 0xea, 0xcf, 0x5a, 0x8e, 0x89,
+  0x1d, 0x2c, 0xa5, 0x39, 0xdf, 0xbb, 0x83, 0x9d, 0x25, 0x69, 0x1e, 0x08,
+  0x24, 0xaa, 0x47, 0x96, 0x7a, 0x08, 0xdd, 0x58, 0x2a, 0xde, 0x24, 0xe6,
+  0x3d, 0x5f, 0x33, 0x51, 0x5c, 0x5f, 0xac, 0x6c, 0xb2, 0xd5, 0x10, 0xd8,
+  0x20, 0xa2, 0xc2, 0x4c, 0x7e, 0x53, 0x4f, 0x05, 0x44, 0x4a, 0x77, 0x77,
+  0xc5, 0x0d, 0x43, 0xff, 0x6a, 0x39, 0xbe, 0xe4, 0xd7, 0xbf, 0x70, 0x34,
+  0xbb, 0x8f, 0x9c, 0x2b, 0xd7, 0x11, 0x4c, 0x9e, 0x9b, 0x3d, 0xcb, 0x77,
+  0xca, 0x1d, 0x72, 0x93, 0xde, 0x69, 0x2e, 0xa4, 0xec, 0xc1, 0x0b, 0x46,
+  0xe4, 0xe7, 0x65, 0xd5, 0x27, 0x3d, 0x69, 0x9a, 0x4d, 0x82, 0x6b, 0x2b,
+  0xda, 0x7d, 0xae, 0xf4, 0x27, 0xae, 0x6e, 0x72, 0xe8, 0x20, 0x83, 0x8e,
+  0xd3, 0x36, 0x1d, 0x5d, 0x5a, 0x0c, 0xbf, 0x47, 0xcf, 0x6c, 0xef, 0x79,
+  0x06, 0x1d, 0x7e, 0x40, 0x93, 0x9a, 0x7c, 0x98, 0x5f, 0x57, 0x29, 0x62,
+  0xcb, 0xc7, 0x8d, 0xa3, 0xc1, 0x41, 0xef, 0x92, 0x65, 0xbd, 0xb3, 0xc9,
+  0x5e, 0xd6, 0x2b, 0x0f, 0x70, 0x7e, 0xad, 0xdf, 0xa9, 0x29, 0x19, 0x01,
+  0x9a, 0x16, 0x73, 0x8e, 0xe2, 0xe7, 0x1e, 0xa7, 0x5b, 0x8c, 0xa6, 0xc0,
+  0xbc, 0xc4, 0xf9, 0xec, 0xa5, 0xb6, 0xd2, 0xc2, 0xd5, 0x11, 0x01, 0x0b,
+  0xab, 0x58, 0x4a, 0x02, 0xeb, 0x08, 0x70, 0x82, 0x1c, 0x50, 0x5e, 0x5c,
+  0xb1, 0x38, 0x3a, 0x29, 0x8a, 0x81, 0x03, 0x28, 0xba, 0x1c, 0x4f, 0x26,
+  0x04, 0xea, 0xca, 0x76, 0xd0, 0x03, 0xd1, 0x0d, 0x2e, 0xf9, 0x0a, 0x3c,
+  0x96, 0xc1, 0xd3, 0x36, 0xf7, 0x4e, 0x2f, 0xda, 0x3b, 0xda, 0x6d, 0xfe,
+  0xe6, 0x6f, 0xa5, 0xf5, 0xbd, 0x8a, 0x6c, 0xae, 0x5f, 0x74, 0x16, 0xf6,
+  0x56, 0xb9, 0x41, 0x8d, 0x62, 0x9b, 0x4e, 0xe7, 0xc5, 0x40, 0xbf, 0xf0,
+  0xa4, 0xf9, 0xe9, 0x2e, 0xb3, 0xa5, 0x4f, 0xfa, 0x65, 0xf3, 0xd3, 0x9d,
+  0x1b, 0x5f, 0x96, 0xf9, 0xf3, 0xd3, 0x5d, 0xcb, 0x95, 0xfc, 0x59, 0xcc,
+  0xce, 0xa0, 0x65, 0x3b, 0xfa, 0xd3, 0xac, 0xb8, 0x0e, 0x32, 0xa8, 0x01,
+  0x2b, 0x95, 0x1c, 0x6f, 0x73, 0x2a, 0xe8, 0x6f, 0xbd, 0xe4, 0x98, 0x69,
+  0x1d, 0xb8, 0x00, 0x34, 0xbf, 0x7c, 0x82, 0x97, 0x6d, 0x21, 0x68, 0x8b,
+  0xc6, 0x8a, 0xa4, 0x36, 0xe4, 0xe3, 0x05, 0x97, 0xd5, 0xa2, 0x75, 0xb0,
+  0x75, 0xfc, 0x2c, 0x1b, 0xd5, 0xa2, 0xc0, 0x85, 0x75, 0x30, 0xa7, 0xac,
+  0x29, 0x23, 0xa5, 0x3e, 0xf5, 0xbc, 0xba, 0xc5, 0x61, 0xf4, 0x82, 0x26,
+  0x92, 0xaa, 0x15, 0x33, 0x66, 0xa7, 0xd3, 0x1d, 0x6a, 0x98, 0x93, 0xd5,
+  0xa6, 0x84, 0x51, 0xab, 0x12, 0xd6, 0x61, 0x92, 0x3d, 0x82, 0x28, 0x5e,
+  0x07, 0xc4, 0x32, 0xa3, 0x87, 0x26, 0x82, 0x20, 0xa5, 0x71, 0xc3, 0xd5,
+  0xb0, 0x89, 0xa0, 0x2b, 0x6d, 0xbc, 0x97, 0x83, 0x9d, 0xad, 0x1e, 0x15,
+  0x24, 0x98, 0x63, 0x12, 0x08, 0xe2, 0x67, 0xaf, 0x7b, 0xf2, 0xcd, 0xe7,
+  0xd7, 0x64, 0x55, 0x08, 0x74, 0x2c, 0x00, 0xdb, 0xb9, 0x94, 0x1b, 0x0d,
+  0x3b, 0x4a, 0xaa, 0x6d, 0x9b, 0x52, 0x27, 0xef, 0x81, 0xb6, 0x11, 0x2e,
+  0x84, 0xae, 0xef, 0x50, 0x1c, 0x0b, 0x5a, 0x95, 0xbb, 0xef, 0xb8, 0x58,
+  0xa0, 0x9f, 0x31, 0x2f, 0x11, 0xbc, 0xa7, 0xfe, 0xaf, 0xd5, 0x21, 0x11,
+  0xde, 0xaa, 0xb0, 0x05, 0x58, 0xb5, 0x94, 0x6a, 0xb2, 0x64, 0xfb, 0xf7,
+  0xc8, 0x01, 0x6a, 0xd1, 0xa7, 0x2e, 0xe3, 0x1d, 0x6d, 0xea, 0xd9, 0x09,
+  0x77, 0x27, 0xa1, 0xee, 0x06, 0x83, 0x15, 0x47, 0xea, 0xae, 0xe7, 0x0a,
+  0xb2, 0x7b, 0x03, 0xbe, 0xe5, 0x01, 0xd7, 0x31, 0x50, 0x37, 0xa7, 0x67,
+  0x3b, 0x6e, 0x99, 0x1e, 0x29, 0xcb, 0xd5, 0x43, 0x02, 0x12, 0x21, 0xa7,
+  0x42, 0xe0, 0x84, 0x33, 0x8c, 0x28, 0xaf, 0x39, 0x3b, 0x3a, 0x8f, 0x21,
+  0xdb, 0x58, 0x23, 0xa7, 0xef, 0x0c, 0xda, 0x97, 0xaf, 0xf8, 0x15, 0x6c,
+  0x6d, 0x94, 0xaa, 0x1c, 0x67, 0x52, 0x1f, 0x57, 0x59, 0x51, 0x48, 0x4b,
+  0x8f, 0x84, 0x0d, 0xe4, 0x3e, 0xf0, 0x58, 0x94, 0x3c, 0x27, 0xb7, 0xa3,
+  0xb6, 0x4a, 0x74, 0x80, 0xd1, 0x72, 0xcf, 0x41, 0x23, 0xad, 0x61, 0x8c,
+  0x1e, 0x94, 0x5c, 0xd0, 0x9a, 0xad, 0x96, 0x5c, 0x39, 0xd0, 0xbc, 0x3c,
+  0x90, 0x79, 0xe2, 0x32, 0x78, 0x7c, 0x5f, 0x80, 0xa5, 0x54, 0x97, 0x0f,
+  0xd4, 0x5e, 0xc2, 0x7e, 0x40, 0x5e, 0xe3, 0x55, 0x82, 0xa1, 0xf2, 0x9c,
+  0xe0, 0xff, 0x8a, 0x2e, 0x31, 0xfb, 0x61, 0x0b, 0x68, 0xbd, 0x46, 0x48,
+  0x96, 0x0b, 0x72, 0x19, 0xe3, 0x20, 0x4a, 0x9a, 0x89, 0x64, 0x96, 0xec,
+  0x77, 0xcd, 0x32, 0xcd, 0xdd, 0xa3, 0xb9, 0x1f, 0xdc, 0xa4, 0x9f, 0x3e,
+  0x0d, 0xea, 0x6c, 0xdb, 0x6c, 0xba, 0x7a, 0xbb, 0xae, 0xa7, 0xf4, 0xd1,
+  0x1a, 0xa9, 0x5e, 0xcb, 0x05, 0x35, 0x5b, 0x92, 0x3a, 0xbf, 0x22, 0x16,
+  0xc7, 0x29, 0xbd, 0xda, 0x12, 0x7b, 0x8e, 0xa7, 0x95, 0xc9, 0xaa, 0xba,
+  0x01, 0x7f, 0x4e, 0x7f, 0x27, 0x2f, 0x8c, 0x0f, 0x97, 0xe7, 0x33, 0xea,
+  0xa2, 0x2a, 0xb6, 0x19, 0x8f, 0xd6, 0x83, 0x12, 0xde, 0xab, 0x65, 0xf8,
+  0x2c, 0x4e, 0x10, 0xec, 0xf9, 0xe0, 0x28, 0x32, 0xde, 0x2d, 0x90, 0xc9,
+  0xc8, 0xea, 0x42, 0x73, 0x70, 0x98, 0x11, 0x0e, 0xd5, 0x4b, 0x22, 0x55,
+  0x92, 0x97, 0x99, 0xb4, 0xde, 0xd0, 0x08, 0xf1, 0xb5, 0xbf, 0x6b, 0xe7,
+  0xf4, 0xfe, 0xfe, 0x7e, 0xb0, 0xca, 0xa6, 0xfd, 0xed, 0x88, 0xd2, 0xda,
+  0xbc, 0x92, 0xde, 0x3a, 0x3c, 0xc7, 0x69, 0x9f, 0xdf, 0x3d, 0x5f, 0xa1,
+  0x0a, 0x37, 0xad, 0x6b, 0x9b, 0x76, 0xd3, 0xf4, 0x8e, 0xdd, 0x92, 0x30,
+  0xec, 0x7c, 0x72, 0x52, 0xd2, 0x52, 0xc9, 0xbb, 0xd1, 0x8b, 0xa4, 0xec,
+  0x80, 0xc6, 0xa2, 0xb4, 0x09, 0x4e, 0x80, 0x64, 0x12, 0x31, 0xe6, 0x6a,
+  0x42, 0x4c, 0xbd, 0x7e, 0xbb, 0xca, 0xee, 0x32, 0x25, 0xb9, 0xff, 0x32,
+  0x54, 0x61, 0x88, 0x2a, 0xd3, 0x1b, 0xf3, 0x4b, 0x19, 0xf3, 0xcb, 0x7f,
+  0x6a, 0xcc, 0x2f, 0xff, 0x89, 0x31, 0x3f, 0xff, 0x97, 0x8f, 0xf9, 0xaf,
+  0x34, 0xe6, 0xbf, 0x2e, 0x8a, 0xdb, 0x7e, 0x4d, 0x05, 0x55, 0x8d, 0xea,
+  0x2e, 0xac, 0x81, 0x71, 0x4d, 0xad, 0xc5, 0x70, 0x45, 0xfe, 0x0d, 0x5b,
+  0x25, 0xa7, 0x53, 0xe7, 0x9a, 0x73, 0x0c, 0xd8, 0xed, 0xdf, 0x2c, 0xaf,
+  0xd1, 0xec, 0xfb, 0xfa, 0x28, 0x51, 0x60, 0x92, 0xd7, 0x63, 0x52, 0xaa,
+  0xc9, 0x52, 0x5f, 0x97, 0x1e, 0x69, 0xd3, 0xeb, 0x03, 0x57, 0xdc, 0x2d,
+  0xc8, 0xa0, 0xab, 0x8d, 0x28, 0x25, 0x8b, 0x0e, 0x2c, 0x0a, 0xd6, 0x45,
+  0xee, 0x38, 0xe9, 0x73, 0x4a, 0xeb, 0x2c, 0xb2, 0xfb, 0x44, 0x1b, 0x65,
+  0x2c, 0x3a, 0x39, 0xbf, 0x42, 0xbc, 0xee, 0xe5, 0xc3, 0x9c, 0x9a, 0x4b,
+  0xb4, 0x08, 0x58, 0x6d, 0xeb, 0x87, 0xd8, 0x0e, 0x26, 0x9d, 0xce, 0xb1,
+  0xcb, 0x87, 0x5c, 0x79, 0x1b, 0xc1, 0xed, 0x38, 0x9e, 0x96, 0x74, 0x5c,
+  0x49, 0x9d, 0x58, 0x71, 0x14, 0x47, 0x8e, 0xeb, 0x91, 0x85, 0x63, 0x87,
+  0xfc, 0xd1, 0x17, 0x92, 0xb7, 0x59, 0x36, 0x4f, 0xa7, 0x48, 0x06, 0xa3,
+  0x90, 0xc8, 0x32, 0x86, 0xba, 0x56, 0x0c, 0x4f, 0x21, 0x2e, 0x78, 0x23,
+  0xf5, 0x71, 0x44, 0x89, 0xe4, 0x1d, 0x4b, 0x0d, 0x23, 0x14, 0x66, 0x4f,
+  0xf2, 0x49, 0x90, 0x94, 0x2f, 0x6a, 0x91, 0x0d, 0x8e, 0xd8, 0x5e, 0xd0,
+  0x45, 0x3c, 0x92, 0xcc, 0x44, 0xfb, 0x09, 0xcd, 0xcd, 0xcf, 0xcd, 0xc3,
+  0x77, 0xf9, 0x64, 0x11, 0x50, 0x5a, 0x74, 0x5f, 0x1f, 0x90, 0x9d, 0xd7,
+  0x22, 0x2b, 0xe1, 0xe5, 0xa3, 0x27, 0x4a, 0x2b, 0xed, 0x51, 0xce, 0x93,
+  0x98, 0x5f, 0x83, 0x2d, 0x45, 0xac, 0x00, 0x8e, 0x63, 0xf3, 0xf2, 0xf0,
+  0xfc, 0xe3, 0x37, 0x47, 0x47, 0xe7, 0xc7, 0x6f, 0x4f, 0x8e, 0xe4, 0xc0,
+  0xd8, 0x1f, 0x9d, 0x5e, 0x7e, 0x7b, 0xa2, 0x04, 0x8d, 0xc9, 0x92, 0x52,
+  0xaa, 0x9b, 0xc2, 0xb8, 0x91, 0x9c, 0xe4, 0xc5, 0xe2, 0x53, 0x0f, 0x3c,
+  0x74, 0x45, 0x93, 0x1c, 0x1c, 0x7f, 0x6f, 0x34, 0xac, 0xf3, 0xfe, 0x87,
+  0xef, 0x03, 0x02, 0x20, 0x0f, 0x0b, 0xb5, 0xb4, 0x3a, 0x82, 0xd9, 0x86,
+  0x30, 0x59, 0xdc, 0xd8, 0x2d, 0x64, 0xfc, 0xb7, 0xad, 0x54, 0x4f, 0x11,
+  0xf6, 0xc2, 0x5e, 0x8f, 0x52, 0xd5, 0x57, 0x48, 0xb6, 0x58, 0x67, 0x83,
+  0xfc, 0x7a, 0xb9, 0xa3, 0xfc, 0x85, 0x2b, 0x5d, 0x37, 0xed, 0xe2, 0x7d,
+  0x66, 0x34, 0x0f, 0xa8, 0x3c, 0x97, 0xbc, 0xa6, 0xff, 0x2e, 0xab, 0xcc,
+  0x9d, 0xdf, 0x91, 0xb2, 0x63, 0x9e, 0xe5, 0x38, 0x1f, 0x3d, 0x3a, 0xb0,
+  0x6c, 0x9b, 0x12, 0x8b, 0xa4, 0x46, 0x10, 0x94, 0x42, 0xa3, 0x49, 0xac,
+  0xf0, 0x33, 0x92, 0x39, 0xe9, 0x37, 0xdc, 0x1e, 0x1a, 0x34, 0xd3, 0x33,
+  0x48, 0xde, 0x1e, 0x5d, 0xf4, 0xa8, 0xd6, 0x37, 0x23, 0xaa, 0x8e, 0x4e,
+  0xbf, 0x62, 0x02, 0x52, 0xe5, 0x95, 0x44, 0x98, 0x24, 0x84, 0x58, 0x79,
+  0x73, 0x42, 0x75, 0xc2, 0x29, 0x78, 0x55, 0xd7, 0x46, 0x93, 0xfe, 0x0d,
+  0x53, 0x3e, 0x79, 0x6c, 0xaf, 0xcd, 0x7f, 0x62, 0x53, 0x65, 0x94, 0xe6,
+  0xaf, 0x23, 0xd3, 0x25, 0x3a, 0x88, 0x0d, 0xac, 0x89, 0xfe, 0x8b, 0x6a,
+  0xe7, 0x98, 0x31, 0x33, 0x21, 0x61, 0x88, 0x47, 0x27, 0x08, 0xa6, 0x07,
+  0xa2, 0x24, 0x4c, 0x79, 0xcc, 0xd6, 0x0c, 0x8c, 0x27, 0xf3, 0xb9, 0x1e,
+  0xed, 0x4b, 0x70, 0x19, 0xb8, 0xc9, 0x88, 0xe1, 0xf9, 0xab, 0x5c, 0x00,
+  0xaf, 0xce, 0x0b, 0x6c, 0x14, 0xab, 0x49, 0x3e, 0x41, 0xc2, 0x90, 0xf9,
+  0x46, 0x59, 0x51, 0x60, 0xe7, 0xb7, 0x9c, 0xb8, 0x6a, 0x94, 0xbc, 0x9e,
+  0x9a, 0x17, 0xa7, 0x71, 0x20, 0x1f, 0x97, 0x62, 0x72, 0x25, 0xa5, 0x3a,
+  0xa4, 0x54, 0x52, 0x73, 0x80, 0x6d, 0x2f, 0x34, 0xc3, 0x01, 0xaf, 0x10,
+  0xe0, 0x02, 0x5d, 0x51, 0x4c, 0x8b, 0x20, 0xdb, 0x6f, 0x03, 0xd8, 0xa7,
+  0x8d, 0x5e, 0xb2, 0x41, 0xcc, 0x5b, 0xf4, 0x27, 0x8a, 0x10, 0x48, 0xc1,
+  0xad, 0x8d, 0x5e, 0x58, 0x4d, 0x64, 0x43, 0xb6, 0xeb, 0x86, 0xd9, 0xf1,
+  0xdc, 0x1a, 0x2d, 0x21, 0xd2, 0x28, 0xa4, 0x1f, 0x92, 0x9c, 0x5e, 0x0b,
+  0xb7, 0xa9, 0x1f, 0xc6, 0xad, 0x03, 0x86, 0x28, 0xdb, 0x5c, 0x3b, 0x23,
+  0x73, 0x99, 0xbe, 0xf7, 0x2b, 0xcb, 0x12, 0x5e, 0x86, 0x9f, 0xcb, 0x4c,
+  0xed, 0x5c, 0x2b, 0x9d, 0xe6, 0x74, 0xb1, 0xfc, 0x75, 0xd6, 0xd7, 0xa3,
+  0x44, 0xbd, 0x07, 0x0c, 0x39, 0xf7, 0x87, 0x44, 0x71, 0x04, 0xaa, 0xb4,
+  0x48, 0x50, 0x0b, 0xc2, 0x49, 0x09, 0x92, 0xd6, 0x27, 0xd7, 0x94, 0x4b,
+  0x20, 0x8c, 0x49, 0xb3, 0x0e, 0x02, 0x32, 0x18, 0xed, 0x76, 0x9f, 0x0d,
+  0x8a, 0xc3, 0x44, 0x0c, 0x24, 0xe0, 0xac, 0xee, 0xab, 0xbc, 0x21, 0x2e,
+  0x38, 0x09, 0xcf, 0xb0, 0x10, 0x8b, 0xe7, 0xe6, 0x72, 0x8e, 0x84, 0x99,
+  0x9e, 0xbb, 0x74, 0x2a, 0xac, 0x8f, 0x1a, 0x4f, 0xae, 0xb4, 0x5b, 0x7d,
+  0x89, 0x3c, 0xa8, 0x0d, 0x43, 0xef, 0xfd, 0xee, 0x9f, 0x5c, 0x39, 0xaf,
+  0x9c, 0x6d, 0xb4, 0xe6, 0xc3, 0x93, 0x53, 0xd0, 0x3b, 0xa0, 0xc1, 0x69,
+  0x3e, 0xcb, 0x9b, 0x3e, 0x04, 0xc7, 0x6b, 0x23, 0x23, 0xb2, 0x20, 0x07,
+  0xb7, 0x4d, 0x9a, 0x3c, 0x13, 0x4a, 0x5c, 0x87, 0xca, 0x4b, 0xf0, 0x6e,
+  0xbb, 0x64, 0xa2, 0x16, 0x2a, 0x89, 0x30, 0xe2, 0x80, 0x94, 0xc5, 0xa1,
+  0xbe, 0x71, 0x6c, 0x41, 0x2f, 0xa0, 0xb9, 0x93, 0x8a, 0x70, 0xe1, 0x09,
+  0x21, 0x37, 0x95, 0x20, 0x28, 0xb8, 0xf0, 0x68, 0x60, 0x95, 0x99, 0xee,
+  0x2b, 0x09, 0x0b, 0x35, 0x46, 0x71, 0xfd, 0x09, 0x3b, 0x54, 0xb0, 0x24,
+  0xb6, 0x9f, 0x28, 0x62, 0xc3, 0xfd, 0x62, 0x6c, 0x84, 0x39, 0xd1, 0x81,
+  0x3e, 0x37, 0x32, 0x4d, 0xdc, 0xe7, 0x13, 0x54, 0x0d, 0x2b, 0x59, 0x79,
+  0x35, 0xba, 0x6b, 0x2d, 0x79, 0x06, 0xe4, 0xc2, 0xca, 0x63, 0x10, 0xba,
+  0xa8, 0x4b, 0x81, 0x57, 0x0c, 0x73, 0x9a, 0x70, 0xd6, 0x2d, 0xf9, 0x0e,
+  0xb0, 0x0c, 0xf0, 0x77, 0x6d, 0xf3, 0x75, 0x6c, 0x13, 0xce, 0x8c, 0x8d,
+  0xbb, 0xb8, 0x22, 0xe2, 0xa4, 0xd0, 0x7b, 0xa7, 0x50, 0xb7, 0x81, 0x3d,
+  0x22, 0x5c, 0xb9, 0xf3, 0x96, 0x59, 0x41, 0xbe, 0xd9, 0x50, 0xd6, 0xdd,
+  0x45, 0x21, 0x55, 0x7e, 0x19, 0xa5, 0x62, 0x4e, 0xe8, 0x6d, 0x3e, 0x2d,
+  0xa3, 0xee, 0x36, 0x23, 0xda, 0x66, 0x78, 0xfd, 0xfd, 0x86, 0x3a, 0x6e,
+  0x28, 0x0d, 0xe3, 0x3a, 0x95, 0xdf, 0x72, 0x06, 0xd6, 0xc6, 0x35, 0x7f,
+  0xe2, 0xab, 0x0d, 0x65, 0x58, 0x0a, 0x71, 0xe6, 0xe4, 0xd1, 0x63, 0x0f,
+  0x9e, 0x86, 0x7e, 0xeb, 0xfd, 0x64, 0x6f, 0x67, 0xe7, 0x9b, 0x5e, 0xf2,
+  0x8c, 0xcb, 0xa8, 0xed, 0x7e, 0xb5, 0xbc, 0xb6, 0x27, 0x54, 0x64, 0x5b,
+  0xd2, 0xf5, 0x2f, 0xa4, 0x19, 0x63, 0xce, 0x78, 0x67, 0x5a, 0x60, 0x19,
+  0x83, 0x17, 0x5d, 0x0d, 0x9f, 0xee, 0x05, 0x46, 0x4b, 0xc5, 0x15, 0xc4,
+  0x41, 0x1f, 0x05, 0x0d, 0x0e, 0xce, 0x16, 0x0a, 0xec, 0xcd, 0x25, 0xc9,
+  0x86, 0xb6, 0x2a, 0xb7, 0x0b, 0x65, 0x73, 0x4a, 0x0f, 0x18, 0x2b, 0x2e,
+  0x74, 0x53, 0x51, 0x7c, 0x11, 0x5a, 0xac, 0x65, 0xf8, 0xf3, 0xba, 0x44,
+  0x30, 0xd9, 0x31, 0x52, 0x49, 0x08, 0x3b, 0xf2, 0xdb, 0x5d, 0x89, 0xd3,
+  0x1e, 0xce, 0x67, 0xdd, 0xf4, 0xc9, 0xd6, 0x8c, 0xd2, 0x0e, 0x9c, 0x9f,
+  0x9d, 0x3f, 0xdb, 0xb2, 0x68, 0x6b, 0x06, 0x6a, 0x49, 0xb6, 0x85, 0xa5,
+  0x21, 0xb0, 0x89, 0x18, 0x42, 0x93, 0xc1, 0x90, 0xbf, 0x58, 0x4d, 0xac,
+  0x5a, 0x38, 0x8d, 0xf0, 0x3d, 0xa3, 0x8d, 0x65, 0xf7, 0x0e, 0xd8, 0xe8,
+  0x51, 0x44, 0xba, 0x63, 0xe9, 0x68, 0x17, 0xd6, 0xc2, 0x6c, 0xb5, 0x5a,
+  0x31, 0x41, 0x48, 0xf6, 0xea, 0x03, 0x4a, 0x98, 0xf8, 0xd4, 0x61, 0x20,
+  0x92, 0xeb, 0x76, 0xb2, 0x9d, 0x60, 0xe3, 0x13, 0xf8, 0x31, 0x64, 0xcf,
+  0x3d, 0x48, 0xfd, 0xb3, 0xc8, 0x4a, 0xbe, 0x6f, 0x6d, 0xe4, 0x86, 0xfc,
+  0x37, 0xb4, 0x6f, 0xc9, 0x9f, 0x94, 0x36, 0x83, 0xa5, 0x2c, 0xf9, 0x96,
+  0xd6, 0xa7, 0xa5, 0x36, 0x0b, 0x0b, 0x5c, 0x9a, 0x9c, 0x9e, 0x0c, 0x2f,
+  0x7d, 0xff, 0x32, 0x2a, 0x4b, 0x04, 0x60, 0x94, 0x76, 0xbe, 0xb8, 0x17,
+  0xa8, 0x3c, 0x39, 0x8e, 0x14, 0x3a, 0x27, 0x9c, 0xd8, 0x7e, 0x32, 0x2c,
+  0x67, 0x3e, 0x2f, 0x7f, 0x2d, 0xbc, 0xe9, 0x48, 0xcb, 0x65, 0xc7, 0xb9,
+  0xa6, 0x61, 0xe7, 0x95, 0x4f, 0x19, 0x1e, 0xec, 0x54, 0xea, 0xe2, 0x9f,
+  0x18, 0x68, 0x22, 0x20, 0x15, 0x05, 0xbf, 0xd5, 0x8b, 0x51, 0xdf, 0x23,
+  0x68, 0x60, 0x7d, 0x07, 0x74, 0x6b, 0x66, 0xf7, 0x9a, 0x1b, 0xea, 0x36,
+  0x34, 0x04, 0x36, 0x65, 0x3f, 0xf1, 0x46, 0x12, 0x72, 0x8d, 0x96, 0xff,
+  0x6d, 0x9c, 0x90, 0x11, 0x29, 0x4c, 0xa7, 0xf4, 0xf4, 0x93, 0x36, 0x15,
+  0x4d, 0x44, 0x67, 0x1e, 0x85, 0xeb, 0xb2, 0x8d, 0x39, 0x23, 0x7f, 0xfe,
+  0xcf, 0x8c, 0x61, 0x08, 0x28, 0x1c, 0xb4, 0x29, 0xbc, 0xeb, 0x98, 0x82,
+  0x9f, 0xdd, 0x02, 0xb6, 0xd7, 0xe6, 0xd0, 0x05, 0x24, 0xa9, 0x04, 0x24,
+  0xc8, 0x27, 0xcc, 0xaf, 0x51, 0xb7, 0x09, 0x36, 0x38, 0x85, 0x82, 0x44,
+  0x0e, 0xa2, 0x06, 0x94, 0x16, 0x56, 0x2f, 0x59, 0x49, 0xf6, 0x9b, 0xb4,
+  0x90, 0x14, 0xfd, 0xef, 0x19, 0x9e, 0x83, 0xc0, 0x63, 0x2f, 0x96, 0xf6,
+  0x1d, 0xcb, 0x57, 0xb4, 0xa9, 0x5c, 0x45, 0xf2, 0xc1, 0x98, 0xb6, 0xdd,
+  0x94, 0x3f, 0xa9, 0x5b, 0x23, 0x43, 0xd5, 0x4a, 0xd5, 0xd0, 0x46, 0x68,
+  0x45, 0x02, 0x37, 0xf4, 0xa2, 0xc8, 0xcd, 0xf7, 0x13, 0x56, 0x5d, 0xaf,
+  0x08, 0x88, 0x57, 0xa1, 0xaa, 0x81, 0x86, 0x62, 0x72, 0x4a, 0xc8, 0x55,
+  0x9e, 0x52, 0x72, 0x0a, 0xf8, 0x10, 0xbe, 0x30, 0x7a, 0xb2, 0x0c, 0x4d,
+  0xed, 0xe7, 0x62, 0xed, 0xb6, 0x79, 0x53, 0xc0, 0xeb, 0x24, 0x59, 0xce,
+  0xe6, 0x42, 0xda, 0x46, 0xf6, 0x5e, 0xb4, 0x4a, 0x4c, 0x9a, 0x78, 0xf1,
+  0xfa, 0x56, 0xe2, 0x1e, 0x1d, 0x62, 0x4e, 0x17, 0xdc, 0x7c, 0x77, 0x71,
+  0xf6, 0xbe, 0x7f, 0x79, 0x86, 0x62, 0x00, 0x68, 0x3a, 0x89, 0x68, 0x9c,
+  0x5a, 0xcc, 0xc5, 0xab, 0x68, 0xd0, 0x06, 0x3b, 0x6c, 0xd6, 0x5b, 0x5a,
+  0x70, 0x80, 0xeb, 0xb0, 0xfa, 0x25, 0x60, 0x02, 0xfe, 0xa6, 0x82, 0x75,
+  0x11, 0x98, 0x9b, 0x66, 0x37, 0x8d, 0x53, 0x52, 0x19, 0xad, 0x73, 0x1d,
+  0x0d, 0xa8, 0xf0, 0x1e, 0x2d, 0xea, 0x07, 0xa2, 0xa3, 0x60, 0xf4, 0x0b,
+  0xa0, 0x39, 0x4d, 0x58, 0x40, 0x41, 0x59, 0x00, 0x6c, 0x0a, 0x24, 0x71,
+  0x26, 0x30, 0x28, 0xb7, 0x29, 0xcd, 0xf9, 0x4d, 0xab, 0xaa, 0xbc, 0xd7,
+  0x9b, 0x0b, 0x48, 0x72, 0xb3, 0x90, 0xb6, 0x08, 0xdd, 0xd2, 0x7c, 0x31,
+  0xc9, 0x84, 0x56, 0x5e, 0xf5, 0x95, 0x0a, 0xe0, 0x8b, 0x76, 0x0e, 0x8f,
+  0x42, 0x95, 0xfa, 0x4d, 0x65, 0xec, 0xa5, 0x6c, 0xb2, 0x84, 0x8a, 0xf5,
+  0x04, 0xe8, 0xa7, 0x0e, 0xbc, 0x49, 0xeb, 0x08, 0x52, 0x4a, 0x1f, 0x4a,
+  0x21, 0xa8, 0xff, 0xc8, 0x32, 0xaf, 0xfd, 0x31, 0x38, 0xc3, 0x42, 0xe2,
+  0x44, 0x6a, 0xfd, 0x74, 0xea, 0x00, 0x4e, 0x12, 0xdb, 0xa7, 0xda, 0x2d,
+  0xb4, 0xb7, 0x15, 0x82, 0x84, 0x14, 0x6d, 0xc8, 0x03, 0xfa, 0x69, 0xa0,
+  0x4d, 0x6a, 0xde, 0x65, 0x4e, 0x19, 0x2f, 0x93, 0xc5, 0x18, 0xab, 0x44,
+  0x51, 0x08, 0x62, 0x3f, 0x1d, 0x31, 0x23, 0x8c, 0xa6, 0x8d, 0x50, 0xd3,
+  0x0e, 0xdd, 0xc5, 0x76, 0x76, 0x57, 0xcf, 0xe2, 0xa7, 0x2c, 0x47, 0x22,
+  0x29, 0x93, 0x44, 0xd6, 0x97, 0xb1, 0x62, 0x59, 0x05, 0x4c, 0xc8, 0xc5,
+  0x55, 0x69, 0xe9, 0xa4, 0x23, 0x02, 0x6b, 0x9a, 0x92, 0x03, 0xfe, 0x53,
+  0xa3, 0xf1, 0x41, 0xa2, 0xcc, 0xa0, 0xed, 0x8b, 0x18, 0xf8, 0x97, 0x5c,
+  0x70, 0xb6, 0xd5, 0xe2, 0xd6, 0x0a, 0x2f, 0xa2, 0xad, 0xd2, 0xeb, 0xad,
+  0xde, 0x49, 0xcf, 0x5b, 0x8d, 0x25, 0x2b, 0xa7, 0xc5, 0x40, 0x6d, 0x05,
+  0x18, 0x86, 0x4d, 0xd8, 0x39, 0x97, 0x93, 0x0d, 0x42, 0x87, 0x6b, 0x2e,
+  0xcf, 0x40, 0x50, 0xad, 0x88, 0x78, 0x4a, 0x2d, 0x41, 0x67, 0x93, 0xe8,
+  0x47, 0x93, 0x4d, 0xf2, 0x02, 0x8e, 0x7d, 0x38, 0xe9, 0x89, 0xfc, 0x6a,
+  0x5f, 0x71, 0x6e, 0x24, 0xc5, 0xba, 0x8a, 0xfb, 0xb3, 0xef, 0xbf, 0x4f,
+  0xda, 0xe4, 0xd4, 0x5b, 0x91, 0x42, 0x8d, 0x90, 0x46, 0x30, 0x29, 0xcc,
+  0xca, 0x95, 0x7e, 0x77, 0x03, 0x6c, 0x34, 0xef, 0x39, 0xa3, 0x12, 0x00,
+  0x6f, 0x36, 0xb0, 0x89, 0x27, 0x4d, 0x69, 0xec, 0xbf, 0x1b, 0x05, 0xcb,
+  0x22, 0xba, 0xeb, 0xc2, 0xbb, 0x09, 0x88, 0x1b, 0xfb, 0xc7, 0x11, 0x0c,
+  0x04, 0xe7, 0xa4, 0x58, 0x54, 0x9d, 0xa4, 0x1c, 0x93, 0x3d, 0xd9, 0x9e,
+  0x30, 0xaf, 0xaa, 0xfa, 0x0d, 0xb9, 0x81, 0x71, 0x21, 0x3c, 0x4a, 0xa0,
+  0xcd, 0xc9, 0x44, 0x18, 0x19, 0x2e, 0x7d, 0xae, 0x57, 0x44, 0x20, 0x1b,
+  0xaf, 0xbc, 0x37, 0x4b, 0xe4, 0x18, 0xdb, 0x08, 0x25, 0x01, 0x4e, 0x19,
+  0xf9, 0x35, 0xc0, 0x0a, 0xa7, 0xde, 0x89, 0x71, 0x64, 0x0e, 0x9d, 0x35,
+  0x63, 0xd4, 0x60, 0x58, 0xb1, 0x03, 0xd5, 0xc2, 0x29, 0xa3, 0x06, 0xc9,
+  0xe8, 0x25, 0x47, 0xce, 0x84, 0x61, 0x99, 0xef, 0x9b, 0x3f, 0xda, 0xe2,
+  0xcf, 0xed, 0xb0, 0x05, 0xed, 0x82, 0x58, 0x95, 0x18, 0x15, 0x26, 0x58,
+  0x18, 0x22, 0x0e, 0xa2, 0xdc, 0x58, 0x25, 0x65, 0x24, 0x8f, 0x9e, 0x46,
+  0xee, 0x58, 0xa3, 0x46, 0x62, 0x0b, 0x57, 0x4d, 0x08, 0x18, 0xac, 0xdc,
+  0x91, 0xe5, 0xe4, 0x3b, 0x12, 0x33, 0x36, 0xeb, 0x1d, 0x36, 0x43, 0xdf,
+  0x18, 0xa5, 0x7d, 0x3c, 0x56, 0x2f, 0xa3, 0x45, 0x71, 0xc1, 0x0d, 0x6e,
+  0xa1, 0xf6, 0x27, 0x4c, 0x7d, 0xdb, 0x36, 0x87, 0x4a, 0xb0, 0xc2, 0x7c,
+  0x7e, 0x91, 0x60, 0xd5, 0x3d, 0x5a, 0x7e, 0x80, 0x07, 0x19, 0x4b, 0xe6,
+  0xdf, 0xe7, 0x1f, 0x2e, 0xb7, 0x5c, 0x05, 0x0e, 0xd9, 0xad, 0x3e, 0xa8,
+  0x52, 0x92, 0x10, 0x42, 0xb6, 0x7c, 0x4e, 0x12, 0x12, 0x39, 0x05, 0xd9,
+  0x60, 0x0f, 0x06, 0x39, 0x59, 0x9e, 0xed, 0xec, 0x1a, 0x4b, 0x6a, 0x67,
+  0x0f, 0x54, 0xdc, 0xcf, 0x76, 0x9e, 0x0d, 0xb4, 0xde, 0xa9, 0x3e, 0x15,
+  0x5c, 0x0b, 0xb4, 0xb1, 0x51, 0xef, 0x8d, 0x3c, 0x27, 0x02, 0x25, 0x4d,
+  0x9e, 0x7d, 0xfa, 0x84, 0x5f, 0xb5, 0xf1, 0x80, 0x7d, 0x0b, 0x2d, 0xb7,
+  0x5d, 0x8d, 0xdf, 0xfc, 0xde, 0x8c, 0x23, 0x00, 0xb3, 0x28, 0x38, 0x81,
+  0x03, 0x64, 0xe7, 0x94, 0x87, 0x34, 0x58, 0xc6, 0xce, 0xd9, 0x74, 0xd3,
+  0xad, 0x7d, 0x7a, 0x4e, 0xb3, 0x57, 0x5a, 0x09, 0x6c, 0x9a, 0xd4, 0x14,
+  0x0a, 0x67, 0x3c, 0xc6, 0x20, 0x5d, 0x52, 0x18, 0x9e, 0xed, 0x7c, 0xf2,
+  0x15, 0xe3, 0xd6, 0x96, 0x30, 0x97, 0x9d, 0x88, 0x24, 0x85, 0x7f, 0xc6,
+  0xa9, 0x79, 0xf7, 0x29, 0x78, 0x6d, 0x0e, 0x05, 0x66, 0x58, 0xff, 0xba,
+  0x27, 0x01, 0x6c, 0xfe, 0xd7, 0xb3, 0xf6, 0x5d, 0x79, 0x9d, 0x17, 0x7d,
+  0x6d, 0xf3, 0xb5, 0xfc, 0x25, 0xf0, 0x57, 0x1e, 0xbf, 0x3f, 0x38, 0x87,
+  0x72, 0x9c, 0x0c, 0xdf, 0x23, 0x07, 0xd9, 0xe3, 0xbe, 0x40, 0x13, 0xb6,
+  0x5b, 0xa2, 0xa6, 0x08, 0xb9, 0xbd, 0x88, 0xe8, 0x95, 0xc2, 0x63, 0x05,
+  0x33, 0xac, 0xcb, 0x0e, 0xe7, 0x8f, 0x38, 0xec, 0xab, 0xc7, 0xbf, 0x61,
+  0x0b, 0xb8, 0xa9, 0x6a, 0x1c, 0x0d, 0xdf, 0xc9, 0xf5, 0xc0, 0x75, 0x96,
+  0x58, 0x8e, 0x4a, 0x1f, 0x3b, 0xbd, 0x49, 0x0e, 0x50, 0xca, 0x5e, 0x4a,
+  0xd5, 0x87, 0x66, 0x2a, 0x4d, 0x45, 0x8f, 0xed, 0x54, 0x26, 0xa1, 0x7f,
+  0x4f, 0x36, 0x8f, 0xe0, 0xb0, 0x5a, 0x73, 0xc1, 0x2e, 0x6b, 0x10, 0x47,
+  0xd1, 0xb5, 0x4a, 0x76, 0x5b, 0x78, 0xa7, 0xa5, 0x23, 0xa5, 0x85, 0x6a,
+  0xcf, 0xa3, 0x39, 0x87, 0x74, 0xb5, 0x92, 0xde, 0x4f, 0x14, 0x65, 0x7b,
+  0xcf, 0x3e, 0x7f, 0xde, 0xc3, 0xdf, 0x5e, 0xec, 0xbc, 0xda, 0x13, 0xf7,
+  0xe0, 0xf1, 0xd1, 0xe5, 0xbb, 0xae, 0x43, 0xaf, 0x32, 0xfb, 0x89, 0xff,
+  0x4b, 0x85, 0x83, 0x6e, 0x8c, 0x81, 0x41, 0xd9, 0x97, 0xfd, 0x7a, 0xd6,
+  0xcc, 0xfb, 0x3b, 0x3b, 0x83, 0xe6, 0x53, 0xf3, 0x2f, 0x64, 0x87, 0x7c,
+  0xf6, 0xbc, 0x1d, 0x7b, 0x21, 0xb5, 0xbe, 0x4f, 0xf3, 0xbd, 0x9c, 0x24,
+  0x88, 0xf7, 0x97, 0xf3, 0xd1, 0xa5, 0xca, 0x29, 0x66, 0x4b, 0x10, 0xba,
+  0xc0, 0xaa, 0x5f, 0x98, 0x59, 0x76, 0x43, 0xc4, 0xcc, 0xee, 0xba, 0xd5,
+  0x05, 0x2f, 0xb1, 0xc9, 0x76, 0x44, 0xf3, 0xb0, 0xc5, 0xbe, 0xeb, 0x54,
+  0x09, 0xd4, 0x21, 0xe4, 0xc5, 0x8a, 0x88, 0xa6, 0x3f, 0xd5, 0x02, 0x73,
+  0xaf, 0x32, 0x4a, 0xe2, 0x66, 0xc5, 0xaf, 0x60, 0x91, 0xf4, 0x78, 0x22,
+  0x3a, 0xa6, 0xa0, 0x1a, 0xcf, 0x25, 0xed, 0x81, 0xff, 0x4d, 0x57, 0x71,
+  0x0b, 0x5f, 0xb7, 0xf7, 0x22, 0x32, 0x71, 0xb8, 0xb0, 0x7f, 0xc6, 0xc4,
+  0xb5, 0xe7, 0xcd, 0xa9, 0x47, 0xec, 0xc6, 0x83, 0xd1, 0x2b, 0xd1, 0x82,
+  0x30, 0x41, 0xb8, 0x56, 0x12, 0xeb, 0x9f, 0x3d, 0x16, 0x9a, 0xee, 0xc1,
+  0x2a, 0x42, 0x0b, 0xf7, 0xd6, 0x23, 0x63, 0xd1, 0xa1, 0x74, 0x47, 0xd2,
+  0x73, 0xa4, 0xaa, 0x74, 0x7f, 0x50, 0x7b, 0xec, 0xc5, 0x57, 0xf4, 0x4b,
+  0xa7, 0xb9, 0x8b, 0x6c, 0x9e, 0x61, 0xe8, 0x7e, 0x80, 0xd9, 0xdb, 0xdc,
+  0xd6, 0x4e, 0x6d, 0xbc, 0xea, 0x57, 0xe6, 0x1e, 0xcd, 0xe7, 0x44, 0xf2,
+  0x54, 0x47, 0x7d, 0x2d, 0xed, 0xca, 0x16, 0x98, 0x4b, 0xf5, 0xcb, 0xf6,
+  0xb4, 0xbe, 0x24, 0xbf, 0xaf, 0x73, 0x6c, 0x53, 0xee, 0xc2, 0xd4, 0x26,
+  0x32, 0xd9, 0xd1, 0x84, 0x5d, 0xaa, 0xd2, 0xe5, 0x47, 0x71, 0xdb, 0x65,
+  0x5c, 0x01, 0xf0, 0x7b, 0x51, 0x78, 0xcc, 0x19, 0x0c, 0xc3, 0x52, 0x42,
+  0x80, 0xcd, 0x6f, 0x2f, 0xde, 0xfd, 0xc5, 0xe6, 0x53, 0x6e, 0xf5, 0xe2,
+  0xd6, 0xb0, 0xf6, 0xd7, 0x2f, 0x3a, 0x6a, 0x21, 0x4a, 0x92, 0xcb, 0xd7,
+  0x9a, 0x78, 0xf7, 0x8f, 0x10, 0xb8, 0xc7, 0x3c, 0x49, 0xc9, 0xa6, 0x79,
+  0x8f, 0xb2, 0x99, 0x86, 0x62, 0xd4, 0x3d, 0x1b, 0xbc, 0x80, 0x57, 0xe4,
+  0xdd, 0xe1, 0x8b, 0x67, 0x7b, 0xbb, 0xc6, 0x6e, 0xdd, 0xec, 0x48, 0x8b,
+  0xad, 0x47, 0x87, 0xd9, 0x5e, 0xef, 0xec, 0xd3, 0x9c, 0xf6, 0xde, 0xe6,
+  0xd1, 0xf7, 0xe7, 0xa7, 0xde, 0x00, 0xed, 0x0a, 0x04, 0x69, 0x6e, 0xfe,
+  0x08, 0x19, 0xbb, 0x67, 0xc7, 0xe8, 0x6e, 0xdb, 0x60, 0x4b, 0xf5, 0x90,
+  0x45, 0x16, 0x26, 0x30, 0xae, 0xbf, 0xab, 0x72, 0xd2, 0x73, 0xd7, 0x69,
+  0x3e, 0xd6, 0x4f, 0xca, 0x62, 0x62, 0x6e, 0xff, 0x33, 0xca, 0xfa, 0xcf,
+  0xd6, 0x8d, 0x1a, 0xfb, 0xe8, 0xe8, 0x96, 0x1f, 0x93, 0xf7, 0x3d, 0x1c,
+  0x95, 0x22, 0x84, 0x22, 0xbc, 0xc7, 0x0f, 0xc1, 0xb5, 0x44, 0xb9, 0xa9,
+  0x9c, 0xe6, 0xb0, 0x90, 0x14, 0x12, 0x50, 0xf3, 0xb7, 0x4f, 0xdb, 0x27,
+  0x14, 0x58, 0x84, 0xd7, 0xe7, 0x35, 0x9c, 0xda, 0xcb, 0xe2, 0x21, 0x3c,
+  0x72, 0x8e, 0x86, 0xe0, 0xf1, 0x4d, 0x75, 0xec, 0x6f, 0x39, 0xf2, 0x7a,
+  0xd6, 0xe0, 0x35, 0xdc, 0x01, 0x55, 0x3d, 0x56, 0x6b, 0x0d, 0x8f, 0x3a,
+  0xb3, 0x22, 0xb7, 0xb0, 0x59, 0xc9, 0xfc, 0x21, 0x2c, 0x22, 0xe5, 0xf4,
+  0xf5, 0xda, 0x84, 0x08, 0x11, 0x3f, 0x38, 0x42, 0xbd, 0x28, 0x68, 0x93,
+  0x16, 0x6d, 0xf2, 0x18, 0x14, 0x20, 0x82, 0x0d, 0x84, 0x2a, 0x78, 0x50,
+  0x12, 0x5f, 0x3e, 0x0b, 0x9d, 0x5a, 0x67, 0x97, 0x47, 0xfb, 0x88, 0x5f,
+  0xb8, 0x94, 0x5d, 0x55, 0x88, 0x19, 0x28, 0x43, 0x18, 0xe7, 0x42, 0xc0,
+  0xfa, 0xfe, 0xe8, 0x7a, 0xb1, 0x52, 0x72, 0x00, 0x68, 0xd2, 0x66, 0x60,
+  0xa7, 0x66, 0xd3, 0x41, 0x53, 0x38, 0x66, 0x19, 0xa4, 0x60, 0x89, 0x0a,
+  0xcc, 0xf1, 0xb7, 0x58, 0x99, 0x9a, 0x2b, 0xce, 0xf5, 0x43, 0xfa, 0x1c,
+  0x5f, 0x2b, 0xc1, 0x44, 0x49, 0xa0, 0x0c, 0x86, 0x85, 0xf5, 0x25, 0x8e,
+  0xcb, 0x62, 0x9c, 0x55, 0x01, 0x12, 0x04, 0xc1, 0x28, 0xf2, 0xc2, 0x22,
+  0x71, 0xfa, 0x52, 0xe9, 0x3b, 0xa2, 0x45, 0xe5, 0x3c, 0x49, 0xee, 0x62,
+  0x66, 0xdd, 0xbd, 0x23, 0x56, 0x08, 0xb9, 0xbb, 0x96, 0xd6, 0xb4, 0x21,
+  0x87, 0x97, 0x0d, 0xa3, 0x89, 0x97, 0x8b, 0x76, 0x8c, 0xda, 0x23, 0x64,
+  0x3e, 0x59, 0x5d, 0x5c, 0x12, 0x6e, 0xc3, 0x48, 0x2d, 0x4e, 0x7a, 0xdb,
+  0xfe, 0x77, 0x76, 0xa5, 0x57, 0xa3, 0x90, 0xf8, 0x23, 0x6d, 0x7d, 0x2a,
+  0xb1, 0x62, 0xe3, 0x14, 0x26, 0xd0, 0x40, 0xbd, 0x4e, 0xd4, 0xc9, 0x3a,
+  0xe5, 0xcd, 0x8d, 0xea, 0x45, 0x35, 0x59, 0xcc, 0xd6, 0x07, 0x2d, 0x10,
+  0x30, 0x14, 0x1c, 0xd8, 0x6e, 0x80, 0x1e, 0x44, 0x5c, 0xe2, 0x2f, 0x76,
+  0x5a, 0x8d, 0x0d, 0x30, 0xf0, 0x4e, 0x60, 0xb7, 0xbf, 0x8b, 0x5b, 0x44,
+  0xc2, 0x6c, 0x8b, 0x42, 0xa2, 0x79, 0xbf, 0x61, 0x4c, 0x65, 0xd6, 0x93,
+  0x95, 0x62, 0x74, 0x15, 0xfd, 0xf7, 0x8b, 0x40, 0x62, 0x3c, 0xa9, 0xea,
+  0x27, 0x0e, 0xee, 0xfd, 0x4d, 0x39, 0xcd, 0x12, 0x2f, 0xd4, 0x1b, 0x9a,
+  0x2d, 0x64, 0x8e, 0x0f, 0x3c, 0x06, 0x5c, 0xf1, 0x5b, 0xd3, 0xc1, 0x90,
+  0xb5, 0xa1, 0x89, 0x87, 0x77, 0x69, 0x44, 0x89, 0x55, 0xc9, 0x5f, 0xcb,
+  0x91, 0x60, 0xed, 0xc8, 0x4c, 0x8a, 0x65, 0x1e, 0x5f, 0x01, 0xbd, 0xba,
+  0x30, 0x1b, 0x4d, 0xaa, 0xdf, 0x51, 0x80, 0x32, 0x29, 0xb2, 0x86, 0xe9,
+  0xcd, 0xa8, 0x46, 0x13, 0xb9, 0xf7, 0x93, 0x6b, 0x26, 0xed, 0x04, 0x3a,
+  0x4d, 0x99, 0xde, 0xc2, 0x4c, 0xa1, 0x3d, 0xca, 0x0b, 0xf5, 0xa7, 0x37,
+  0x5e, 0x03, 0xb4, 0x67, 0x59, 0x03, 0xd2, 0x71, 0xb3, 0x90, 0x59, 0xef,
+  0xf6, 0xae, 0x54, 0x77, 0xa0, 0x79, 0x17, 0x2c, 0x6a, 0x48, 0xbd, 0x1c,
+  0x9b, 0xcd, 0x97, 0x8e, 0x1f, 0xf4, 0x5a, 0x74, 0x77, 0x88, 0xd6, 0x61,
+  0xb5, 0x9c, 0x6b, 0xc1, 0x60, 0x6d, 0x27, 0x28, 0xb6, 0x97, 0xd7, 0xbf,
+  0x9c, 0xf2, 0xf4, 0x17, 0x41, 0x68, 0xbb, 0xd5, 0x47, 0xfd, 0xd3, 0x9e,
+  0x35, 0x29, 0xcd, 0xf2, 0xe3, 0x09, 0x92, 0x2d, 0xf3, 0x97, 0xa3, 0x60,
+  0xe0, 0xb9, 0x24, 0x84, 0x3b, 0xc2, 0xbe, 0x4a, 0xda, 0x7c, 0x1c, 0xde,
+  0x98, 0xef, 0xe5, 0x2b, 0x2c, 0x12, 0x37, 0x21, 0xaf, 0x14, 0xff, 0xcf,
+  0x06, 0xd5, 0xf3, 0x64, 0x93, 0xec, 0x9c, 0xe4, 0xc5, 0xe7, 0x2f, 0x9e,
+  0x6f, 0x49, 0x3d, 0x67, 0x0b, 0x8c, 0xda, 0x8a, 0xe0, 0x53, 0xf9, 0xb8,
+  0x49, 0xb1, 0x46, 0x5c, 0x62, 0x39, 0x57, 0x09, 0x05, 0x93, 0xe8, 0x44,
+  0xeb, 0x1c, 0x00, 0x38, 0x6e, 0x2e, 0x76, 0x30, 0xb8, 0x6b, 0x01, 0xd1,
+  0xb0, 0x50, 0xbc, 0x96, 0x18, 0xdd, 0x94, 0x1b, 0xdf, 0xc9, 0x6f, 0x87,
+  0xcc, 0x67, 0x62, 0x3c, 0xa8, 0x23, 0xca, 0x8d, 0xb7, 0x85, 0xd4, 0xaf,
+  0x28, 0x5a, 0x83, 0x5d, 0x4b, 0x5c, 0x5f, 0x8d, 0xaf, 0xc7, 0x1b, 0x2a,
+  0xbf, 0x50, 0x7a, 0x57, 0x03, 0x3b, 0x01, 0x38, 0x35, 0x82, 0xef, 0x9e,
+  0x18, 0xc9, 0x93, 0xd1, 0x4b, 0x11, 0x93, 0xa6, 0xbb, 0xac, 0x3d, 0x8f,
+  0xcc, 0x19, 0x42, 0x3b, 0x45, 0xdf, 0x17, 0x38, 0x90, 0xac, 0x09, 0x99,
+  0x34, 0x41, 0x4e, 0xdd, 0x2c, 0x9b, 0x29, 0xc5, 0x32, 0x5f, 0xb2, 0x65,
+  0xe5, 0x6a, 0x0b, 0x71, 0x3c, 0x82, 0x6f, 0x4c, 0x40, 0x18, 0x97, 0x25,
+  0x45, 0xab, 0xc5, 0x9f, 0x6a, 0xf6, 0x66, 0xab, 0x67, 0x4b, 0xf1, 0xe5,
+  0xba, 0xdb, 0x34, 0x4d, 0xba, 0x0b, 0x2b, 0xd7, 0xbf, 0xdb, 0x5d, 0x19,
+  0x16, 0xdc, 0xe1, 0xaf, 0x76, 0x26, 0x62, 0x49, 0xef, 0xb9, 0xe6, 0x0e,
+  0xe8, 0x3d, 0xe0, 0x2f, 0xe8, 0x87, 0x7c, 0x05, 0xc9, 0x26, 0x3a, 0xbc,
+  0xbd, 0xbd, 0xf5, 0x78, 0xa7, 0xe5, 0xc9, 0xc7, 0x3a, 0x79, 0xce, 0x46,
+  0xbc, 0xc7, 0xc6, 0x78, 0xe5, 0xf5, 0x81, 0xbe, 0x49, 0x2b, 0xc6, 0x8c,
+  0x89, 0x8c, 0x73, 0x64, 0x98, 0x08, 0xc8, 0xc0, 0x8d, 0x6a, 0x12, 0x21,
+  0xa4, 0x80, 0x4b, 0x24, 0x95, 0x01, 0xb6, 0xc7, 0x2e, 0xe6, 0x1d, 0x13,
+  0x8f, 0x88, 0x08, 0x21, 0x1c, 0x10, 0xf8, 0x20, 0x0e, 0xa6, 0x41, 0xd1,
+  0xc8, 0x56, 0xb7, 0xbc, 0xc1, 0xc1, 0x98, 0xeb, 0x38, 0x95, 0x71, 0x0a,
+  0x99, 0x30, 0x45, 0xdd, 0xcf, 0x11, 0xb8, 0xb6, 0x3e, 0xad, 0xd2, 0x88,
+  0xd3, 0xc2, 0x22, 0x64, 0x42, 0xfc, 0x24, 0x1d, 0x20, 0x75, 0x47, 0xe7,
+  0x45, 0x44, 0x8d, 0x74, 0x4e, 0x43, 0x34, 0x68, 0x24, 0xea, 0xad, 0x1b,
+  0x33, 0x33, 0xf9, 0x70, 0xc5, 0x52, 0xc9, 0x1f, 0xb6, 0xbe, 0xed, 0xb4,
+  0x0a, 0x3d, 0xcc, 0xe8, 0x9b, 0xdd, 0xdf, 0x98, 0x31, 0x2d, 0x92, 0x89,
+  0x9f, 0xb6, 0x26, 0xb3, 0xc7, 0x67, 0x14, 0x19, 0xca, 0x31, 0xad, 0x14,
+  0xa5, 0x07, 0xc2, 0x2c, 0x48, 0x3b, 0x87, 0x2b, 0xf1, 0x66, 0x16, 0x70,
+  0xc6, 0x2e, 0x4d, 0x86, 0x9c, 0x85, 0xf7, 0xac, 0x3a, 0x95, 0xb4, 0xd1,
+  0xb6, 0x55, 0xdd, 0x29, 0x15, 0x6d, 0x13, 0x3a, 0x97, 0xf0, 0xc9, 0x48,
+  0x0d, 0xb6, 0x53, 0x7d, 0xcc, 0x18, 0xd9, 0xe7, 0xa7, 0x47, 0x5f, 0x9d,
+  0x6d, 0x3d, 0xe6, 0x8d, 0x6b, 0xcb, 0x7f, 0x3b, 0x2e, 0xc0, 0xcf, 0x2a,
+  0x82, 0xaf, 0x71, 0xf7, 0xa1, 0x87, 0x7f, 0x35, 0x1c, 0xf6, 0x0f, 0xce,
+  0x8f, 0x51, 0x27, 0x62, 0x68, 0xfe, 0x5c, 0xc2, 0x63, 0x26, 0x05, 0xd7,
+  0xbf, 0x95, 0xdc, 0xad, 0x5a, 0xd4, 0x8c, 0x04, 0xde, 0x2e, 0xa0, 0x30,
+  0xa0, 0x3c, 0x88, 0x86, 0x67, 0xd3, 0x62, 0xd1, 0x7c, 0xd7, 0x80, 0x3a,
+  0x3f, 0xde, 0xc6, 0xa7, 0xe8, 0x93, 0x18, 0x50, 0xdc, 0x50, 0x0e, 0xf9,
+  0xca, 0x99, 0x39, 0x02, 0x88, 0x4a, 0x08, 0x68, 0xc5, 0xa7, 0x1a, 0x33,
+  0x87, 0xae, 0x13, 0x17, 0x9c, 0x8a, 0x67, 0x03, 0x90, 0xd3, 0x87, 0xe0,
+  0xde, 0x69, 0x93, 0xc5, 0xbc, 0x4c, 0x30, 0x46, 0x98, 0xca, 0x83, 0x0a,
+  0x31, 0x9a, 0x2b, 0x58, 0x10, 0x4e, 0x5d, 0xf3, 0x7f, 0xa3, 0xbf, 0x48,
+  0x92, 0xfd, 0x0d, 0x46, 0x53, 0x66, 0x05, 0x95, 0x2f, 0x05, 0x7b, 0x47,
+  0xc7, 0xdc, 0x6e, 0x95, 0x8b, 0xb1, 0xbc, 0x87, 0xa6, 0x93, 0xc1, 0x16,
+  0xc4, 0x3b, 0xaa, 0xf7, 0x54, 0x19, 0x05, 0x42, 0x58, 0xbd, 0x61, 0x9c,
+  0xcb, 0xe4, 0x5f, 0x42, 0xb0, 0xbe, 0x42, 0x03, 0x19, 0x71, 0x90, 0x10,
+  0x0e, 0xa3, 0xa2, 0x99, 0xce, 0xe4, 0xaf, 0x69, 0xf1, 0x00, 0xc7, 0xa0,
+  0x78, 0xaa, 0x91, 0x7f, 0x65, 0xf7, 0x74, 0x7b, 0xa3, 0x37, 0xd5, 0x18,
+  0x26, 0x2d, 0x03, 0x2e, 0x39, 0xf1, 0x6a, 0xd5, 0x9e, 0x25, 0x7d, 0xde,
+  0x16, 0x02, 0x4b, 0xfa, 0x45, 0x4f, 0x5b, 0xe9, 0xb5, 0xca, 0x6e, 0x32,
+  0xe9, 0x18, 0x36, 0x41, 0x44, 0x14, 0xa1, 0x8e, 0xc2, 0xa6, 0xb1, 0x1d,
+  0xca, 0xe9, 0x82, 0x0b, 0x29, 0x91, 0xfb, 0x8f, 0xf0, 0xfe, 0x5b, 0x1a,
+  0xd3, 0xa2, 0xd4, 0x04, 0xd3, 0xaa, 0x42, 0x1a, 0x19, 0x24, 0x7b, 0x18,
+  0x42, 0x93, 0x5d, 0x91, 0x8f, 0x81, 0x0b, 0x29, 0x70, 0xcc, 0x4c, 0x2c,
+  0x71, 0x9a, 0x59, 0x6e, 0x0b, 0x4d, 0xcd, 0x01, 0xc2, 0xb9, 0x53, 0x06,
+  0x8e, 0x70, 0xfd, 0x74, 0xad, 0x5a, 0xb3, 0xa3, 0x9e, 0x64, 0x12, 0xdd,
+  0x7e, 0x5d, 0x21, 0x4f, 0x6b, 0x8c, 0xa6, 0xa7, 0x2c, 0xc3, 0xe5, 0x6a,
+  0x58, 0x7c, 0x44, 0xa7, 0x84, 0x8a, 0x3f, 0xcb, 0xc7, 0xf8, 0x3b, 0x29,
+  0x80, 0x2b, 0x56, 0x11, 0x7e, 0x2a, 0x2d, 0x81, 0x5b, 0x8c, 0xc1, 0x2a,
+  0xe0, 0x45, 0xfb, 0x4b, 0x9d, 0xa6, 0xbf, 0xa5, 0xec, 0x4d, 0xbb, 0xc4,
+  0x5c, 0x59, 0xd5, 0x5f, 0x64, 0xd6, 0xf2, 0xbb, 0xdc, 0xf0, 0x34, 0x11,
+  0x03, 0x3c, 0x11, 0x6c, 0x60, 0x0a, 0x1a, 0xdb, 0x51, 0xa9, 0x7a, 0x44,
+  0x9e, 0xa5, 0x94, 0x6b, 0x52, 0xf0, 0xcb, 0xde, 0x37, 0xfc, 0x12, 0xe0,
+  0x2b, 0xf3, 0xbf, 0xed, 0xea, 0x0c, 0x9e, 0x30, 0x21, 0x6e, 0xfc, 0xee,
+  0x87, 0x81, 0x65, 0x67, 0x23, 0xa3, 0xf5, 0x58, 0x28, 0x55, 0x06, 0xb2,
+  0x0b, 0x37, 0x3f, 0xca, 0x5f, 0xe8, 0x0c, 0x7c, 0x97, 0x17, 0x46, 0x33,
+  0xac, 0xb7, 0x74, 0x73, 0x0a, 0x14, 0x2b, 0x3c, 0xbb, 0x54, 0xf3, 0xf7,
+  0x86, 0xa0, 0x5c, 0x0e, 0x96, 0x46, 0x8a, 0x33, 0x07, 0x27, 0x02, 0x51,
+  0xe4, 0x55, 0x07, 0x79, 0x98, 0x07, 0x90, 0xfe, 0xb1, 0x15, 0x3a, 0x68,
+  0x03, 0x1c, 0x6b, 0xc6, 0x2c, 0x28, 0xf2, 0x4f, 0x2e, 0x98, 0x8d, 0x7b,
+  0x83, 0x73, 0xc1, 0x9d, 0x6f, 0x47, 0x4a, 0x86, 0x46, 0x7a, 0x17, 0x44,
+  0x6b, 0x68, 0x76, 0x31, 0xce, 0xcd, 0x17, 0x5b, 0xc9, 0x55, 0x33, 0xdf,
+  0xdc, 0xdd, 0xc2, 0xc7, 0xb4, 0xe8, 0x98, 0x57, 0x19, 0x24, 0x74, 0xe4,
+  0x10, 0x92, 0x0e, 0x27, 0xd4, 0x11, 0xe6, 0xa2, 0xb0, 0x07, 0xb9, 0x2e,
+  0xa1, 0x53, 0xd0, 0x09, 0xe6, 0x09, 0xb3, 0xdc, 0x9c, 0x00, 0xed, 0xc6,
+  0x1c, 0xa8, 0x40, 0xb8, 0xcc, 0x89, 0x8a, 0xaa, 0xe6, 0x62, 0xd6, 0x9b,
+  0x79, 0xe3, 0x93, 0x7e, 0x11, 0xd1, 0x5e, 0xce, 0x71, 0xfb, 0xb2, 0x9a,
+  0x4e, 0xfa, 0x24, 0x43, 0xae, 0xab, 0xd2, 0x5c, 0x91, 0x55, 0x84, 0x9b,
+  0x48, 0x6c, 0x0a, 0x52, 0xf5, 0xb3, 0xe2, 0x2e, 0xaf, 0xca, 0x02, 0xa4,
+  0x5c, 0x77, 0x69, 0x95, 0x23, 0xa8, 0xbd, 0xfe, 0xf5, 0xd9, 0xfb, 0xa3,
+  0x75, 0xdf, 0x2f, 0x72, 0x95, 0x8b, 0xc7, 0x18, 0xeb, 0xd7, 0xf5, 0xc7,
+  0xea, 0x6a, 0x86, 0xe1, 0x9a, 0x24, 0x31, 0x57, 0xba, 0xd1, 0x72, 0xd8,
+  0x96, 0xba, 0xd3, 0xc3, 0x44, 0xaa, 0xbd, 0x8d, 0x08, 0x1b, 0x75, 0x52,
+  0x62, 0xde, 0x52, 0xa0, 0x40, 0x77, 0x59, 0x08, 0x38, 0x81, 0x2b, 0x41,
+  0x8d, 0x43, 0xf0, 0xc7, 0x96, 0x3e, 0x45, 0x7e, 0xe2, 0xd1, 0xe8, 0x93,
+  0xa2, 0xcf, 0x1b, 0x00, 0x4b, 0x1b, 0x03, 0x81, 0x6f, 0xcc, 0x1e, 0xc8,
+  0xb2, 0xd9, 0x68, 0x5f, 0x80, 0x1b, 0x35, 0x19, 0xe3, 0xcd, 0x86, 0x4e,
+  0x2f, 0xc0, 0x91, 0x2b, 0x8a, 0x3d, 0x2e, 0xfb, 0x36, 0xef, 0x6a, 0xfe,
+  0x84, 0x6b, 0x9d, 0x1b, 0x77, 0xa7, 0xcf, 0x16, 0xb9, 0xef, 0x8a, 0xb4,
+  0x80, 0x09, 0x22, 0x75, 0x39, 0x2b, 0xed, 0xa2, 0x47, 0xed, 0xc0, 0x39,
+  0xd1, 0x33, 0x86, 0x8e, 0x45, 0xf3, 0xf9, 0x72, 0xcc, 0x94, 0x1c, 0x2e,
+  0x82, 0x28, 0x57, 0x99, 0xe4, 0x92, 0x33, 0xbe, 0xd8, 0x15, 0x53, 0x55,
+  0xb9, 0x9f, 0x50, 0x93, 0x4b, 0xc8, 0xa0, 0xa8, 0x18, 0x3a, 0x4a, 0x2e,
+  0x29, 0xa9, 0x14, 0xf0, 0x97, 0xe4, 0xf0, 0xb4, 0x50, 0x42, 0xf9, 0x5a,
+  0xcf, 0xcf, 0xf2, 0xec, 0x85, 0x05, 0xd8, 0x61, 0x0d, 0x3b, 0xec, 0x85,
+  0x55, 0x4e, 0x98, 0x38, 0x8c, 0x69, 0xb6, 0x2c, 0x81, 0x8a, 0x96, 0x7a,
+  0x0a, 0x95, 0x64, 0x3b, 0x9d, 0xea, 0xc7, 0x25, 0x3e, 0x2b, 0x82, 0xa1,
+  0xb0, 0x4d, 0x63, 0x43, 0xbc, 0xd8, 0x8e, 0xac, 0x75, 0x10, 0x7b, 0xa7,
+  0xf2, 0x02, 0x46, 0x4d, 0x6c, 0x7b, 0x28, 0xcd, 0xd8, 0xd8, 0xb9, 0x43,
+  0x69, 0xed, 0x77, 0xc8, 0xc6, 0x13, 0x02, 0x6b, 0x46, 0xc3, 0xba, 0x45,
+  0x89, 0x43, 0x03, 0x20, 0xd8, 0x5d, 0x0f, 0x73, 0x29, 0xb1, 0x0a, 0x51,
+  0xf3, 0x15, 0xf7, 0xc2, 0x76, 0xd0, 0x9a, 0x3b, 0xc4, 0x42, 0xc0, 0xaa,
+  0x6c, 0x80, 0x4b, 0x2f, 0x6b, 0x10, 0x9b, 0x35, 0x55, 0x3a, 0x76, 0x7f,
+  0xe9, 0xa7, 0xf5, 0x38, 0xcf, 0x95, 0x10, 0x99, 0xc2, 0x61, 0x19, 0x21,
+  0x40, 0xe3, 0x74, 0x11, 0xba, 0x1e, 0x89, 0x65, 0x22, 0x9d, 0x94, 0xec,
+  0xe6, 0x65, 0x90, 0x45, 0xca, 0x5c, 0xf9, 0x04, 0xd9, 0x40, 0xe9, 0x53,
+  0x89, 0x95, 0xc5, 0x38, 0xa2, 0x95, 0x42, 0x6a, 0x89, 0x7d, 0x6b, 0x4c,
+  0xf0, 0x5d, 0xdf, 0x06, 0xd7, 0x49, 0xe8, 0x4f, 0x50, 0x69, 0x98, 0xed,
+  0xc9, 0xfb, 0xfb, 0xbd, 0xc1, 0x8a, 0xe2, 0x95, 0x7e, 0xc0, 0xe3, 0x65,
+  0xc7, 0x42, 0x61, 0xf2, 0x93, 0x98, 0x7d, 0x32, 0xdc, 0x6a, 0x55, 0x8e,
+  0x38, 0x38, 0x39, 0x3f, 0x95, 0xc2, 0xf6, 0xc4, 0xf7, 0x58, 0xc0, 0x49,
+  0x96, 0xc8, 0x8f, 0x5d, 0x45, 0x69, 0x0a, 0xe0, 0x04, 0xd5, 0x2e, 0x85,
+  0x9b, 0x1a, 0x56, 0x44, 0x98, 0xd7, 0xc3, 0x78, 0xae, 0x02, 0x5c, 0x0f,
+  0x6a, 0xbf, 0x40, 0xca, 0xab, 0x91, 0xd1, 0x1d, 0x8e, 0xf9, 0xe4, 0x80,
+  0x3f, 0xac, 0x92, 0x76, 0xf4, 0xe0, 0x52, 0x6f, 0xda, 0xef, 0x5a, 0xc6,
+  0x9d, 0x32, 0x11, 0x7e, 0x9d, 0x40, 0xa8, 0x37, 0x99, 0x25, 0xf7, 0x11,
+  0xe3, 0xce, 0xd5, 0x8d, 0x66, 0xd7, 0x92, 0x80, 0x12, 0x90, 0x6d, 0xaf,
+  0x79, 0xbb, 0xf5, 0xea, 0x4c, 0x6b, 0x33, 0xb1, 0xc5, 0xbc, 0x08, 0x12,
+  0xad, 0xed, 0x8c, 0x47, 0xb2, 0x9f, 0x02, 0x64, 0xed, 0x93, 0x72, 0xa1,
+  0x68, 0x49, 0x06, 0x2b, 0x96, 0xf8, 0xb4, 0xc7, 0x1f, 0x1d, 0x2d, 0x48,
+  0x46, 0x74, 0xbe, 0x21, 0x0b, 0xcc, 0xba, 0x13, 0x3f, 0x21, 0xa5, 0xc0,
+  0x1d, 0xcf, 0x08, 0x51, 0x1e, 0x65, 0xe9, 0x8c, 0x6a, 0x05, 0x28, 0x3a,
+  0x9e, 0x1c, 0xc0, 0x84, 0x61, 0xec, 0x4e, 0xe5, 0x22, 0x15, 0x99, 0xd5,
+  0x22, 0x62, 0xec, 0x80, 0xe6, 0xf9, 0x33, 0x04, 0x9a, 0xf1, 0x9b, 0x8f,
+  0x25, 0x42, 0xe1, 0x75, 0x9b, 0x8f, 0x2d, 0x11, 0x1c, 0x2d, 0xa0, 0xc1,
+  0x7c, 0x87, 0xdc, 0x84, 0xad, 0xa5, 0x45, 0xf4, 0xcf, 0x37, 0x8b, 0xe2,
+  0xd6, 0x74, 0x21, 0x4c, 0xd4, 0x54, 0x7c, 0x6b, 0x4e, 0xd2, 0x0b, 0xf5,
+  0x67, 0xe8, 0x2f, 0xc2, 0xb4, 0xa7, 0x2d, 0x10, 0xd5, 0xe2, 0x1d, 0xf9,
+  0xf3, 0xc2, 0x12, 0x86, 0xb1, 0xde, 0x4d, 0xec, 0x09, 0x49, 0x1b, 0x37,
+  0x81, 0x51, 0x0c, 0xb7, 0xae, 0xb3, 0x2b, 0xdc, 0x66, 0xf6, 0xa3, 0x87,
+  0x1e, 0x92, 0x0a, 0xe9, 0x4a, 0xc3, 0x82, 0x34, 0x1c, 0x45, 0xdd, 0x04,
+  0x02, 0x71, 0x51, 0x73, 0xea, 0x93, 0x2c, 0x2b, 0xed, 0x07, 0x9f, 0xbe,
+  0x39, 0xd2, 0x93, 0x76, 0xd6, 0xf0, 0xb2, 0x7d, 0xd0, 0xae, 0x27, 0xe3,
+  0x92, 0x8c, 0x05, 0x7a, 0x61, 0x55, 0x37, 0x2a, 0xb2, 0xe2, 0xd7, 0x76,
+  0x88, 0x48, 0x2e, 0x97, 0xbf, 0xa4, 0xb5, 0xe6, 0x99, 0x63, 0xd9, 0x86,
+  0x77, 0xfe, 0x85, 0xb3, 0xe4, 0x06, 0xe2, 0x4d, 0x94, 0xfd, 0x61, 0x67,
+  0x92, 0x8a, 0x27, 0xc9, 0xc3, 0x53, 0x23, 0x7e, 0x48, 0x1a, 0x7a, 0xc2,
+  0xf0, 0x94, 0x25, 0x92, 0x0a, 0x42, 0x37, 0xd2, 0xae, 0xdb, 0xeb, 0xea,
+  0x97, 0x48, 0x41, 0x6a, 0x9e, 0x30, 0xe5, 0xe7, 0xa7, 0xdd, 0xe6, 0x2c,
+  0xaf, 0xf8, 0x08, 0x10, 0x93, 0xc7, 0xe4, 0xa0, 0xb5, 0xe0, 0xe5, 0x67,
+  0x4b, 0x3c, 0x5c, 0xbf, 0x5c, 0x08, 0xb6, 0x89, 0xb5, 0xe2, 0x32, 0xb0,
+  0x68, 0x89, 0x40, 0xd1, 0xea, 0x7f, 0x33, 0x21, 0x48, 0x5f, 0x94, 0x2e,
+  0xe7, 0x93, 0x68, 0x76, 0xb9, 0x5d, 0x5b, 0xa9, 0xad, 0x22, 0x91, 0x0b,
+  0x5a, 0x0d, 0xe5, 0xb5, 0x38, 0x7e, 0x6b, 0x36, 0x19, 0xe9, 0xac, 0xd7,
+  0x66, 0x10, 0x5f, 0x2e, 0x5b, 0x5c, 0x14, 0x71, 0xd4, 0xf0, 0x2e, 0xec,
+  0x7c, 0xaa, 0x57, 0xe9, 0xf3, 0xeb, 0x10, 0xf1, 0x95, 0xc7, 0x24, 0x2e,
+  0x29, 0x70, 0xca, 0x9a, 0x1d, 0xf7, 0x4b, 0x80, 0x0e, 0x89, 0x73, 0x4c,
+  0x93, 0x9b, 0x05, 0x15, 0x29, 0xa2, 0x2b, 0x8f, 0x8b, 0x39, 0x09, 0x37,
+  0x78, 0x95, 0x51, 0x9f, 0xdb, 0x1d, 0x0e, 0x6a, 0xf1, 0xb2, 0x37, 0xbb,
+  0xce, 0xcc, 0x41, 0xe4, 0x04, 0x99, 0x51, 0x55, 0xde, 0x66, 0xbc, 0xeb,
+  0x60, 0x5e, 0xd0, 0xa1, 0x62, 0x29, 0xae, 0x4e, 0x59, 0x23, 0xe7, 0x26,
+  0x16, 0xa7, 0x17, 0xd1, 0x67, 0xa9, 0xce, 0x83, 0xa4, 0x93, 0x3b, 0x69,
+  0x98, 0xbb, 0x6c, 0x6e, 0x25, 0xa0, 0xe5, 0xe5, 0x1a, 0x13, 0xdf, 0xd2,
+  0x60, 0x55, 0x79, 0xed, 0x46, 0x0b, 0x3d, 0x2e, 0x3b, 0xfc, 0xfe, 0xd9,
+  0x17, 0x4f, 0xcd, 0xf2, 0x93, 0x6f, 0x57, 0xdd, 0x3f, 0xf9, 0x91, 0x15,
+  0x7d, 0x7a, 0xf5, 0x06, 0xb3, 0x97, 0xe0, 0x09, 0x4b, 0x5e, 0x9b, 0x4d,
+  0xc5, 0x3e, 0x31, 0x8a, 0x69, 0x75, 0xdd, 0x5d, 0xa8, 0x40, 0xd2, 0x57,
+  0xd3, 0x63, 0x22, 0x99, 0x57, 0x57, 0x92, 0x8a, 0xc0, 0x58, 0xfe, 0x89,
+  0xab, 0x0b, 0x24, 0x2c, 0xb7, 0x3d, 0x56, 0x92, 0xcc, 0x8e, 0x89, 0x1c,
+  0x72, 0xe7, 0xc8, 0xe1, 0xd4, 0x4f, 0xe8, 0xe1, 0xb4, 0x3c, 0x20, 0x14,
+  0xc9, 0xbd, 0x0a, 0xaf, 0xff, 0x4e, 0xe0, 0x57, 0xa3, 0xd5, 0x36, 0x84,
+  0x7c, 0xc2, 0xb7, 0x02, 0xb5, 0x93, 0xf9, 0xf8, 0x6d, 0x72, 0x04, 0x73,
+  0x1e, 0x58, 0xbe, 0x0c, 0x22, 0xcc, 0xf6, 0x75, 0x03, 0xa6, 0xe0, 0x4d,
+  0x8e, 0xc8, 0x68, 0x89, 0x58, 0x84, 0xec, 0xb9, 0xc8, 0x6b, 0x4e, 0x0b,
+  0x44, 0x6f, 0xf9, 0x0b, 0x00, 0x29, 0x89, 0x85, 0x9d, 0x2a, 0x00, 0x89,
+  0x07, 0x6f, 0x39, 0xab, 0xc2, 0x53, 0x4f, 0x3d, 0x62, 0x84, 0x8f, 0x98,
+  0x69, 0xfa, 0x03, 0xcb, 0xc3, 0xff, 0xce, 0x33, 0x8a, 0x12, 0x36, 0x52,
+  0xa0, 0x1d, 0x73, 0xae, 0x6c, 0x6c, 0xb0, 0x89, 0xf7, 0x98, 0xff, 0xca,
+  0xfe, 0xe7, 0x3b, 0x9a, 0xd9, 0x4d, 0xe1, 0x2e, 0xff, 0x19, 0xd4, 0x4e,
+  0x08, 0xf5, 0x08, 0x7a, 0xcc, 0xfc, 0xd4, 0x3e, 0x19, 0xca, 0x40, 0xe1,
+  0x91, 0x7b, 0xf1, 0x8c, 0x62, 0xde, 0x71, 0x9f, 0x12, 0x5f, 0xb4, 0xbe,
+  0x17, 0xc1, 0xba, 0x11, 0xea, 0x18, 0xc0, 0xd1, 0x3b, 0x5b, 0x76, 0x35,
+  0x8e, 0x25, 0x5e, 0xba, 0x41, 0x59, 0x77, 0x71, 0x8f, 0xc4, 0x24, 0xaf,
+  0x23, 0x4e, 0x0c, 0xc6, 0x6c, 0xc9, 0x86, 0xb3, 0xb5, 0x14, 0xc0, 0xdc,
+  0xcf, 0x5b, 0x1b, 0xab, 0x68, 0x0e, 0xcc, 0x3a, 0xd8, 0xb7, 0x6d, 0x9d,
+  0xd0, 0x7c, 0x65, 0x62, 0xd6, 0xee, 0xab, 0xc1, 0xf3, 0xd6, 0x39, 0x69,
+  0xa6, 0xb3, 0xfe, 0xfd, 0xe8, 0x91, 0xd8, 0xc7, 0xe5, 0xc9, 0xfb, 0x64,
+  0xb6, 0x40, 0xb5, 0x42, 0xa1, 0xc5, 0x7c, 0x98, 0x66, 0xea, 0x86, 0x26,
+  0x07, 0x0f, 0xfb, 0x0a, 0x6f, 0x40, 0xd1, 0x16, 0xc2, 0x96, 0x31, 0x8d,
+  0x1d, 0x3f, 0xbf, 0x4b, 0x95, 0x14, 0xbb, 0x5f, 0x6a, 0x9f, 0x50, 0x93,
+  0xec, 0xcf, 0x9e, 0xcf, 0xa7, 0x79, 0x34, 0x9b, 0x45, 0xc1, 0xa4, 0xd9,
+  0xa7, 0x6c, 0xbc, 0x40, 0x9c, 0x9a, 0xd4, 0x43, 0x62, 0xb7, 0x59, 0xed,
+  0x40, 0xf7, 0x9c, 0xe6, 0xe2, 0x26, 0x37, 0x3f, 0xe8, 0x4e, 0x46, 0x77,
+  0xec, 0x3c, 0xf8, 0xc0, 0x7b, 0x86, 0xb3, 0x1d, 0xfd, 0x5d, 0x10, 0x2b,
+  0x06, 0x86, 0x9d, 0x2e, 0x44, 0xb3, 0xa5, 0xf2, 0xeb, 0x82, 0x95, 0x8e,
+  0xf7, 0xf9, 0xb8, 0x2a, 0xeb, 0xf2, 0x8a, 0xc1, 0x59, 0x9e, 0x89, 0x74,
+  0x7c, 0x3c, 0x4c, 0xee, 0xb3, 0x91, 0x26, 0x83, 0x0e, 0x42, 0x67, 0x32,
+  0x64, 0x08, 0x45, 0x48, 0xaa, 0x3c, 0x6b, 0x68, 0xca, 0x34, 0x26, 0x4a,
+  0xf4, 0x35, 0x28, 0x11, 0xda, 0xcf, 0x8a, 0x6b, 0x63, 0xad, 0x42, 0x81,
+  0xa7, 0xe2, 0x18, 0x53, 0xbe, 0x98, 0xe6, 0x59, 0x19, 0x09, 0x8c, 0x73,
+  0x07, 0xf4, 0x5a, 0x91, 0xf2, 0x2c, 0x74, 0x87, 0x8f, 0x52, 0xea, 0x12,
+  0xeb, 0x92, 0x39, 0x4a, 0xf2, 0x90, 0x8e, 0x22, 0x8e, 0xcb, 0x5b, 0xf2,
+  0x99, 0x05, 0x09, 0x1a, 0xb6, 0xfa, 0x78, 0xc7, 0x7b, 0x57, 0x4c, 0xca,
+  0x0a, 0x68, 0x24, 0x8f, 0x88, 0x1d, 0xc5, 0x33, 0x16, 0x15, 0x32, 0x0e,
+  0xc1, 0x23, 0x18, 0xca, 0xd3, 0xfb, 0x1b, 0x8e, 0xdb, 0xea, 0x2a, 0xd0,
+  0xe5, 0x84, 0xe4, 0x52, 0xce, 0x66, 0x11, 0x5e, 0x63, 0xae, 0x1d, 0xa7,
+  0xd7, 0x8d, 0xb7, 0x1a, 0xb1, 0x6c, 0x14, 0x5d, 0x0f, 0x97, 0x49, 0x29,
+  0xee, 0x99, 0xb7, 0xf9, 0xf5, 0x92, 0x0a, 0x31, 0x96, 0xcf, 0x00, 0x97,
+  0x13, 0x4e, 0x2c, 0x7a, 0x23, 0x57, 0x66, 0xc5, 0x67, 0x34, 0x2c, 0x7b,
+  0x14, 0x2b, 0xbf, 0xcc, 0xf7, 0x5d, 0x6c, 0xf7, 0x79, 0xb9, 0xf0, 0xbf,
+  0x76, 0x45, 0x9a, 0xa5, 0x47, 0xa2, 0xdd, 0x15, 0x7b, 0x02, 0x62, 0x2a,
+  0x9f, 0xaf, 0xe5, 0x05, 0xbc, 0x0b, 0x5e, 0x4c, 0x36, 0xae, 0xf4, 0x2d,
+  0x63, 0x57, 0x45, 0x48, 0x2b, 0x02, 0x4c, 0xf1, 0xa2, 0xb2, 0x13, 0x5b,
+  0x1e, 0x91, 0xd6, 0xa7, 0x1d, 0xf3, 0xf2, 0xcf, 0x6e, 0x49, 0x3f, 0xd8,
+  0xeb, 0x8f, 0xb2, 0x94, 0x78, 0xf0, 0x5f, 0x37, 0xa4, 0x31, 0xfd, 0xac,
+  0x6c, 0x8c, 0x2f, 0xf9, 0xcd, 0x4b, 0xa8, 0x5a, 0xb4, 0xb6, 0x67, 0x07,
+  0x1f, 0x2e, 0xbf, 0x4e, 0x92, 0x3d, 0xe2, 0x5a, 0x7e, 0x4a, 0x36, 0x06,
+  0x44, 0x42, 0xab, 0x15, 0x57, 0x0c, 0x8f, 0x2e, 0xd2, 0xbf, 0x2e, 0x8a,
+  0x36, 0xc7, 0x76, 0xcc, 0x4b, 0x8f, 0x0b, 0x54, 0xee, 0x5e, 0xce, 0x0f,
+  0x6e, 0x41, 0x89, 0xb5, 0x30, 0x01, 0x2f, 0x49, 0xbf, 0x8f, 0x79, 0x47,
+  0xde, 0xda, 0xea, 0x80, 0x66, 0x1d, 0xa5, 0xa5, 0xd0, 0xde, 0x4a, 0x77,
+  0x95, 0x38, 0x47, 0x23, 0xa7, 0x55, 0x26, 0xae, 0xfe, 0xa6, 0x5b, 0xe2,
+  0xe6, 0xe2, 0xdd, 0x61, 0xa7, 0xb9, 0x97, 0x9f, 0xbd, 0xd8, 0xf9, 0x0d,
+  0xb1, 0x7a, 0x25, 0x39, 0x48, 0xc4, 0x91, 0x10, 0x65, 0x8b, 0xf9, 0xae,
+  0xa2, 0x6c, 0x4d, 0x75, 0x35, 0x94, 0xf2, 0x90, 0x9f, 0x50, 0x5e, 0x37,
+  0x13, 0xc2, 0x6d, 0xe9, 0x89, 0xa6, 0xd1, 0xb1, 0xbe, 0xff, 0x5f, 0xff,
+  0x08, 0x93, 0x49, 0x7f, 0xf8, 0x89, 0xbd, 0xc5, 0x57, 0x28, 0xc4, 0xe3,
+  0xc0, 0xed, 0x2a, 0x67, 0x6a, 0x77, 0x25, 0xd3, 0x91, 0xde, 0xf8, 0xfd,
+  0x86, 0x2d, 0x0f, 0x00, 0xa5, 0x3f, 0x9a, 0x8a, 0xac, 0xb7, 0xa7, 0xf4,
+  0x4d, 0x17, 0xb6, 0x92, 0xba, 0xa7, 0x56, 0x1f, 0x70, 0x05, 0x0b, 0x84,
+  0x31, 0x7f, 0xb2, 0xac, 0xe4, 0x85, 0xd2, 0xdc, 0x0b, 0x61, 0xbc, 0x3a,
+  0xcc, 0xc9, 0x4d, 0xce, 0x28, 0x2b, 0xf4, 0x9f, 0x74, 0x51, 0xe4, 0xec,
+  0xe6, 0xc5, 0x12, 0x07, 0xa6, 0x40, 0x89, 0xfe, 0xcb, 0xac, 0x40, 0xaf,
+  0xb9, 0x2f, 0xff, 0xd1, 0x76, 0x66, 0x1a, 0x15, 0x83, 0x7a, 0xfc, 0xf1,
+  0xf7, 0xbb, 0x94, 0x05, 0xb3, 0xde, 0x6d, 0x82, 0x01, 0xed, 0x76, 0x55,
+  0xad, 0x86, 0xb4, 0x8a, 0x26, 0x53, 0x3f, 0x48, 0x39, 0xb6, 0x3d, 0x52,
+  0x1c, 0xff, 0x81, 0x2a, 0xc1, 0x3f, 0xec, 0xf6, 0x5f, 0xfc, 0x64, 0x3f,
+  0xfa, 0xfb, 0xdd, 0x8f, 0xbf, 0xdf, 0x5b, 0x8f, 0x26, 0x39, 0xb9, 0x9c,
+  0x77, 0x0f, 0xab, 0x48, 0xfa, 0x6c, 0xf1, 0x20, 0xa9, 0x09, 0x12, 0x6b,
+  0x74, 0x35, 0x7a, 0x50, 0x7e, 0x2a, 0xe4, 0x05, 0x22, 0xd7, 0x55, 0x47,
+  0x55, 0xd5, 0x32, 0x3d, 0x2a, 0x1c, 0xee, 0x4b, 0x7e, 0x59, 0xdc, 0x2a,
+  0x52, 0x70, 0x53, 0x30, 0xf3, 0x81, 0x30, 0x2c, 0xb2, 0xf6, 0xde, 0x20,
+  0x96, 0x10, 0xa5, 0x96, 0x08, 0x67, 0x43, 0x00, 0x52, 0xe6, 0x3a, 0x4b,
+  0x93, 0xce, 0xa4, 0x8f, 0x46, 0xf6, 0x27, 0x45, 0x16, 0x24, 0x1f, 0x41,
+  0x19, 0x46, 0x77, 0xd8, 0x80, 0xb3, 0x52, 0xc1, 0xbc, 0x69, 0x03, 0xd8,
+  0x12, 0xd7, 0x42, 0xef, 0x5d, 0xe1, 0x31, 0xaa, 0x7f, 0xd5, 0x95, 0x16,
+  0x7f, 0x5d, 0x68, 0x55, 0x38, 0x77, 0xa3, 0x98, 0x96, 0x72, 0x57, 0x2d,
+  0x94, 0x7f, 0x26, 0x11, 0x18, 0x4a, 0x6a, 0x4f, 0xb8, 0x48, 0x4c, 0x34,
+  0x2d, 0x35, 0x1d, 0x51, 0x0d, 0x9d, 0x56, 0xf5, 0x05, 0x9a, 0x0f, 0xdc,
+  0x3a, 0x23, 0x47, 0xb2, 0x94, 0xd6, 0x4b, 0x26, 0xc4, 0x9f, 0x0a, 0x6f,
+  0x12, 0x64, 0xa2, 0x30, 0x39, 0x2b, 0x3c, 0xbb, 0x9c, 0x0a, 0x4a, 0x38,
+  0xd2, 0x26, 0xeb, 0x7b, 0xb9, 0xa0, 0x48, 0x3d, 0xc5, 0x4f, 0x3d, 0xac,
+  0x9b, 0x04, 0xf8, 0xfa, 0x41, 0x54, 0xd2, 0x6c, 0xa2, 0xc9, 0x83, 0x91,
+  0x84, 0xcc, 0x39, 0x69, 0x49, 0xec, 0xd4, 0x45, 0x20, 0xb2, 0xc6, 0xec,
+  0xb3, 0x8d, 0xfe, 0x46, 0xb2, 0xe9, 0xd2, 0xad, 0x92, 0x49, 0x5a, 0xdf,
+  0x6c, 0xc5, 0x1c, 0x91, 0xce, 0xf7, 0xe7, 0x04, 0xd5, 0x48, 0x7c, 0x0f,
+  0x74, 0x65, 0xb2, 0x84, 0x8a, 0x0e, 0x4c, 0x2f, 0xec, 0x33, 0x04, 0x4c,
+  0x18, 0x30, 0xd8, 0x67, 0x37, 0x9b, 0x78, 0x6e, 0xbc, 0x9f, 0xf5, 0x91,
+  0x9b, 0xcc, 0x3f, 0xff, 0xcf, 0xf0, 0x5e, 0x90, 0x27, 0x19, 0xf3, 0xd5,
+  0xe7, 0xc4, 0x1f, 0x77, 0x91, 0x52, 0x34, 0x2f, 0x79, 0x3d, 0xbf, 0xa9,
+  0x8c, 0xfa, 0x17, 0xe6, 0x17, 0x0d, 0xbf, 0x4e, 0x98, 0xe8, 0xcf, 0x3c,
+  0xc5, 0xcf, 0xd8, 0x0d, 0x32, 0x77, 0x64, 0x76, 0xbf, 0x21, 0x37, 0x1c,
+  0xc1, 0x49, 0xfa, 0x69, 0xdd, 0x0f, 0x54, 0x9d, 0xa0, 0x92, 0x2f, 0x59,
+  0x23, 0x04, 0x63, 0xa4, 0xc0, 0x5a, 0x31, 0x46, 0x5d, 0xbb, 0x64, 0x7b,
+  0x30, 0xd8, 0x26, 0x81, 0xb5, 0x6d, 0xfe, 0xd0, 0x50, 0x7e, 0xc2, 0xa8,
+  0xdb, 0x6e, 0x71, 0x11, 0xb3, 0xd1, 0x81, 0x5d, 0x01, 0x45, 0x84, 0xd4,
+  0xa7, 0x72, 0x81, 0xf6, 0xfa, 0x6f, 0x0b, 0x40, 0x51, 0x2b, 0xa3, 0x50,
+  0x56, 0x9c, 0xc0, 0x3a, 0x6b, 0xdd, 0x91, 0x41, 0x49, 0x0f, 0xf6, 0xac,
+  0xd7, 0x42, 0x93, 0xd0, 0xdc, 0x74, 0xd2, 0xaa, 0x18, 0x46, 0x03, 0x80,
+  0x70, 0xde, 0x28, 0x43, 0x15, 0x32, 0x87, 0xd3, 0x95, 0x06, 0xdd, 0xf3,
+  0xbd, 0xb6, 0xe3, 0x63, 0x9e, 0x17, 0xc6, 0xc4, 0x30, 0xaa, 0x31, 0xd8,
+  0x07, 0x09, 0x8b, 0x17, 0xe6, 0xad, 0xb0, 0x37, 0xad, 0x53, 0xdc, 0xc1,
+  0x2b, 0x28, 0x6c, 0x35, 0x0e, 0x55, 0xb1, 0x99, 0x7e, 0x91, 0xe3, 0xf9,
+  0x9b, 0xc1, 0x65, 0xc9, 0x1f, 0xd9, 0xe2, 0x1b, 0x53, 0xd0, 0xba, 0xd8,
+  0x10, 0x19, 0xdf, 0x6d, 0x52, 0xf5, 0x66, 0x04, 0x07, 0x0a, 0xa1, 0x81,
+  0xa0, 0xbd, 0xa3, 0xb5, 0x98, 0xdb, 0xc3, 0xfa, 0x1c, 0xac, 0xa7, 0xc4,
+  0x15, 0x30, 0xa1, 0x31, 0x13, 0x81, 0xa3, 0x99, 0xf7, 0xb7, 0x47, 0x17,
+  0xa2, 0x9e, 0xc0, 0x03, 0xe1, 0x0a, 0xb2, 0x85, 0x35, 0x87, 0xc9, 0x92,
+  0x79, 0xf9, 0xdc, 0x56, 0xeb, 0xab, 0x6f, 0xd2, 0xbd, 0x17, 0x2f, 0xa5,
+  0xdb, 0xca, 0x14, 0x85, 0x7b, 0x7b, 0x83, 0x7f, 0xb5, 0xbd, 0xcd, 0x61,
+  0x73, 0xb2, 0x4d, 0x03, 0xb9, 0x90, 0x4a, 0xc9, 0xc1, 0x8d, 0x3f, 0x6d,
+  0x44, 0x01, 0x73, 0xaa, 0xb9, 0xb2, 0xfd, 0x4e, 0xde, 0x67, 0x80, 0xfa,
+  0x7c, 0x8a, 0xf4, 0x5e, 0x8b, 0x35, 0x3c, 0x91, 0x8c, 0xff, 0x40, 0x6b,
+  0x68, 0xb1, 0x87, 0x0b, 0xb5, 0x82, 0x56, 0x3b, 0x49, 0x34, 0x09, 0x93,
+  0xea, 0x9b, 0xfb, 0xf3, 0x53, 0x73, 0x31, 0xba, 0x71, 0x48, 0xdf, 0x21,
+  0xe0, 0x37, 0x5a, 0x0d, 0xaf, 0x61, 0x41, 0x81, 0xe6, 0x0d, 0x53, 0xda,
+  0xd1, 0xc6, 0xd3, 0xb0, 0x0b, 0xbb, 0x64, 0xd0, 0x53, 0xf3, 0x85, 0x20,
+  0x4d, 0x44, 0xf7, 0x85, 0x42, 0xa4, 0xd8, 0xa2, 0xf7, 0x60, 0x82, 0xee,
+  0xb4, 0x98, 0xeb, 0xa0, 0x6a, 0x3a, 0xec, 0x2b, 0x71, 0xda, 0x59, 0x65,
+  0x0d, 0x01, 0x4c, 0x6c, 0x9c, 0xe5, 0x4c, 0x39, 0x64, 0xd6, 0x96, 0x02,
+  0x3f, 0xc1, 0x39, 0x30, 0x5b, 0x61, 0x9b, 0xf6, 0x81, 0x18, 0x1b, 0x01,
+  0x9d, 0x39, 0x39, 0x99, 0x5f, 0x0d, 0x76, 0xf6, 0x93, 0xb3, 0x79, 0x56,
+  0x98, 0x35, 0xe8, 0x25, 0x5f, 0x15, 0x0b, 0x5a, 0x12, 0x1a, 0xf5, 0x57,
+  0xc3, 0x6f, 0x02, 0xfe, 0x03, 0x7a, 0xe3, 0xf9, 0x33, 0x7a, 0xe3, 0x74,
+  0xc8, 0x4f, 0xdd, 0x97, 0xd3, 0x2b, 0xaa, 0x1e, 0x7b, 0xf8, 0x90, 0x9a,
+  0x3f, 0x62, 0x8f, 0x7f, 0x46, 0x8f, 0x9b, 0x8d, 0x37, 0x69, 0xa6, 0x75,
+  0xec, 0xf7, 0xe8, 0xc0, 0x79, 0x39, 0x4d, 0x2b, 0xf8, 0x7d, 0x79, 0xf3,
+  0xad, 0xe8, 0xf1, 0xf3, 0xe7, 0x91, 0x1e, 0xf7, 0x96, 0x74, 0x68, 0xf0,
+  0xcf, 0xf7, 0xe8, 0x0c, 0x8e, 0x3f, 0xfa, 0xdb, 0x28, 0x1d, 0xdf, 0x62,
+  0x2b, 0x02, 0xd5, 0x6e, 0x29, 0x55, 0x7f, 0x4b, 0x69, 0xce, 0x19, 0xf7,
+  0x4f, 0x29, 0x18, 0x52, 0x81, 0x76, 0xac, 0x41, 0x2a, 0xf7, 0x67, 0x7b,
+  0xcf, 0x76, 0xb7, 0x5f, 0x0e, 0x9e, 0x0f, 0xf6, 0x2c, 0xca, 0xcc, 0x6c,
+  0xac, 0x3b, 0x22, 0xc5, 0xa7, 0x78, 0xfe, 0xb2, 0xea, 0x5e, 0x79, 0x61,
+  0xda, 0xa1, 0xd0, 0xbf, 0xfd, 0x09, 0x3c, 0x47, 0x0e, 0x5f, 0x92, 0x12,
+  0xc1, 0x82, 0x9f, 0xab, 0x14, 0xab, 0xce, 0x44, 0x3c, 0x05, 0xd4, 0x09,
+  0x71, 0x76, 0x2c, 0x2a, 0xcc, 0xc0, 0x28, 0x37, 0x36, 0x73, 0x53, 0x2e,
+  0xe0, 0x53, 0x27, 0x07, 0x8e, 0xb2, 0x4a, 0x8b, 0x8e, 0xc4, 0x26, 0x32,
+  0x9d, 0xb1, 0x98, 0x73, 0x8c, 0x7b, 0xcf, 0x78, 0x5e, 0x0a, 0x10, 0x69,
+  0x34, 0x1e, 0x29, 0x51, 0x39, 0x57, 0x4b, 0x45, 0xfd, 0x02, 0x63, 0xce,
+  0xa0, 0x28, 0xf2, 0xd7, 0xc6, 0xd4, 0xb8, 0x23, 0xc7, 0x71, 0x50, 0xc5,
+  0x8a, 0x65, 0x0a, 0x13, 0xe7, 0xb0, 0xe3, 0x5f, 0x40, 0x0e, 0x98, 0x43,
+  0xf8, 0x76, 0xe5, 0x07, 0x42, 0xa0, 0x00, 0x0f, 0x08, 0x65, 0x71, 0xd3,
+  0xb8, 0xfb, 0x61, 0x76, 0xab, 0x75, 0x78, 0x79, 0x5e, 0x09, 0x26, 0x31,
+  0x24, 0xe6, 0x64, 0x4a, 0x60, 0x62, 0x1f, 0x37, 0x33, 0xa9, 0xd1, 0x34,
+  0xba, 0x5c, 0xb4, 0x98, 0x0b, 0x66, 0x95, 0x8b, 0x2e, 0x4a, 0xbb, 0xc0,
+  0xff, 0xea, 0x56, 0x53, 0x93, 0x4b, 0x30, 0x56, 0xf1, 0xa8, 0x53, 0x74,
+  0x4a, 0x5b, 0xfd, 0xc5, 0xbb, 0xec, 0xd9, 0xaf, 0xbf, 0xcb, 0xf6, 0x9e,
+  0xba, 0xcb, 0xbc, 0x6d, 0xc6, 0xae, 0xa0, 0x15, 0x1b, 0xcd, 0x4c, 0x21,
+  0x17, 0x5f, 0x8d, 0xef, 0x32, 0x6f, 0x93, 0xb9, 0xb0, 0x67, 0x6b, 0x8b,
+  0xb5, 0xf7, 0x98, 0xdb, 0x64, 0xcb, 0x76, 0x19, 0xb6, 0x99, 0xdd, 0x67,
+  0x8f, 0x6c, 0x34, 0xf6, 0xb4, 0xad, 0xde, 0x65, 0x97, 0x6d, 0xb9, 0xb2,
+  0x62, 0x8f, 0xf9, 0x1b, 0xe2, 0xc9, 0xbb, 0xcc, 0xb9, 0xbd, 0x58, 0xee,
+  0x24, 0x4b, 0x36, 0x9a, 0xbf, 0xcf, 0x96, 0xd6, 0xd5, 0xda, 0x7d, 0x15,
+  0xdb, 0x65, 0xcf, 0x7e, 0xf1, 0x2e, 0x7b, 0xfe, 0xeb, 0xef, 0xb2, 0x67,
+  0xff, 0x4f, 0x96, 0xfd, 0xf7, 0x92, 0x65, 0xbb, 0x3f, 0x5b, 0x96, 0xed,
+  0x75, 0x02, 0x9b, 0x46, 0x5d, 0x65, 0x7f, 0xf3, 0x0f, 0xea, 0xf6, 0xdf,
+  0xdf, 0xde, 0xfe, 0x09, 0xce, 0x93, 0x7d, 0xba, 0xaf, 0x7f, 0x0a, 0x8a,
+  0x24, 0x46, 0xd4, 0xfa, 0xe1, 0xd9, 0xe1, 0x37, 0x43, 0xf1, 0x5b, 0x8b,
+  0xe2, 0xa5, 0x8a, 0x19, 0x3b, 0xf8, 0x8c, 0xba, 0x8e, 0x1c, 0xe8, 0x40,
+  0xd7, 0xe7, 0x4a, 0x6a, 0xfd, 0x4f, 0x3d, 0xf5, 0x1d, 0x03, 0x72, 0x24,
+  0x47, 0x1b, 0x9c, 0x66, 0x92, 0x5d, 0xcc, 0x99, 0x0e, 0xd2, 0xea, 0x52,
+  0xfa, 0x2a, 0xee, 0x88, 0xf5, 0xa0, 0x8b, 0x4f, 0xa3, 0xf0, 0x5e, 0xdc,
+  0x6c, 0x6e, 0x2a, 0xe4, 0x76, 0xe0, 0xd1, 0x2d, 0x0d, 0x1b, 0xad, 0xea,
+  0x9d, 0xf4, 0xeb, 0x6b, 0xb0, 0xbf, 0xce, 0xab, 0x6c, 0x49, 0x6d, 0xd2,
+  0xcb, 0x1b, 0xef, 0xb7, 0x61, 0xcd, 0x45, 0x37, 0x5d, 0xc2, 0x65, 0xe6,
+  0xcd, 0x37, 0xbd, 0x17, 0xe4, 0xa3, 0x13, 0x5d, 0x2f, 0x10, 0xa6, 0x96,
+  0x48, 0xc4, 0xab, 0xcf, 0xae, 0x43, 0xd4, 0x46, 0x18, 0xbc, 0x94, 0xa1,
+  0x3c, 0x41, 0xfd, 0xdc, 0x34, 0x19, 0xc0, 0x46, 0xf1, 0x8b, 0x94, 0x7e,
+  0xc3, 0x7f, 0x7f, 0x41, 0xdf, 0x25, 0x57, 0x2f, 0xff, 0xeb, 0x86, 0xfe,
+  0x29, 0xb5, 0x1c, 0x84, 0x2e, 0xc9, 0x5f, 0xe5, 0x71, 0x7c, 0xa2, 0xfd,
+  0xa4, 0x21, 0x55, 0xc7, 0x8c, 0x79, 0x1b, 0x50, 0x01, 0x61, 0xd4, 0x3e,
+  0xe9, 0xda, 0x12, 0xb4, 0xa0, 0x69, 0x06, 0x2d, 0x3f, 0x8f, 0x2b, 0x89,
+  0x99, 0xcf, 0xa9, 0xa8, 0xdc, 0x01, 0x7e, 0xf9, 0x1e, 0x17, 0x29, 0x95,
+  0x05, 0xe8, 0x71, 0x85, 0x90, 0x90, 0xf6, 0x98, 0xe9, 0xfa, 0xa5, 0xdf,
+  0xbb, 0x3b, 0x9f, 0x87, 0xde, 0xe6, 0x0f, 0x9a, 0xd4, 0xe6, 0x88, 0x05,
+  0x01, 0x88, 0x00, 0xbc, 0x7c, 0xe4, 0x52, 0x39, 0x62, 0x9f, 0x8d, 0xe4,
+  0xbd, 0x91, 0x03, 0x60, 0x92, 0xb1, 0xc5, 0x28, 0x15, 0xe6, 0x83, 0xba,
+  0xd7, 0x9c, 0xc6, 0x5b, 0x43, 0x4e, 0x0a, 0x29, 0x6e, 0x22, 0x51, 0xfd,
+  0x40, 0x5a, 0x10, 0xd2, 0x44, 0x83, 0x4d, 0x7f, 0x76, 0x1c, 0x55, 0x7f,
+  0x78, 0xbe, 0x43, 0xab, 0xaa, 0xad, 0xa4, 0x5c, 0x00, 0x9a, 0xf7, 0xdc,
+  0x1f, 0x9e, 0xa5, 0x83, 0x7f, 0x21, 0xe9, 0xd0, 0x8b, 0xb6, 0x2b, 0xe1,
+  0xf7, 0x72, 0xc6, 0xaf, 0x89, 0x19, 0xa5, 0x3f, 0x4a, 0xab, 0x48, 0x0a,
+  0x85, 0xbd, 0x0b, 0x84, 0x52, 0xc3, 0xe3, 0x02, 0xd7, 0x37, 0xb9, 0xa2,
+  0xb2, 0xe0, 0xe2, 0xed, 0x0f, 0xc3, 0xe6, 0x3a, 0xf5, 0xc6, 0xd5, 0x61,
+  0xd2, 0x0b, 0x78, 0xa0, 0xd2, 0x69, 0x8f, 0xa2, 0x78, 0x11, 0xb6, 0x20,
+  0xac, 0x8e, 0xff, 0x09, 0xe2, 0x73, 0xba, 0xf7, 0x1c, 0x09, 0x4c, 0xc6,
+  0x7e, 0x05, 0x7f, 0xbd, 0x43, 0x5f, 0x90, 0xe9, 0x4d, 0xd1, 0xd8, 0xd8,
+  0x6d, 0x56, 0x8f, 0x2b, 0x2a, 0x6f, 0x22, 0x05, 0x02, 0xd0, 0xd6, 0x9c,
+  0x08, 0xf1, 0xcc, 0x35, 0x76, 0x9d, 0x69, 0xfa, 0xa4, 0x1d, 0xb4, 0x52,
+  0x64, 0x80, 0x17, 0x63, 0x10, 0x01, 0x25, 0x3b, 0xd0, 0x91, 0x96, 0xc2,
+  0x4c, 0x85, 0x44, 0x83, 0x5e, 0x75, 0x94, 0x71, 0x3a, 0x19, 0xea, 0x28,
+  0x8c, 0x80, 0x4d, 0x68, 0x0c, 0x76, 0x08, 0x8c, 0x1a, 0x47, 0x0a, 0xc2,
+  0xee, 0xce, 0xde, 0x73, 0x26, 0x1f, 0xb1, 0x5f, 0xab, 0x3a, 0x46, 0x17,
+  0xf2, 0x78, 0xf5, 0x08, 0xbf, 0xd6, 0xb3, 0xff, 0xc5, 0xa3, 0x28, 0x7d,
+  0x2b, 0x25, 0xae, 0xc4, 0xe1, 0x42, 0x67, 0x04, 0x59, 0x1b, 0xcc, 0x0b,
+  0x3c, 0xbe, 0xc9, 0xa4, 0x62, 0xfd, 0xcf, 0x2d, 0x04, 0xdd, 0xe9, 0x13,
+  0xe3, 0xd7, 0xae, 0x9a, 0xf9, 0x60, 0x56, 0xfe, 0xdd, 0xcc, 0x47, 0x3a,
+  0x28, 0xab, 0xeb, 0x60, 0xe7, 0x52, 0x72, 0x62, 0xc1, 0xb3, 0x07, 0xc1,
+  0xb8, 0x28, 0xac, 0xcd, 0xea, 0x04, 0xad, 0x32, 0x38, 0x23, 0x39, 0x3d,
+  0x39, 0x34, 0x3d, 0x3e, 0xfa, 0xf8, 0xe1, 0x74, 0xf8, 0xe1, 0xbc, 0x7b,
+  0x40, 0xcf, 0xcf, 0x2e, 0x2e, 0x8f, 0xde, 0x7e, 0x3c, 0xbf, 0x38, 0xbb,
+  0x3c, 0x3b, 0x3c, 0x3b, 0x49, 0x36, 0x77, 0xb7, 0x56, 0xe6, 0x62, 0x59,
+  0x77, 0x89, 0x47, 0x61, 0xa7, 0xfd, 0x67, 0xd1, 0x62, 0xbb, 0xb0, 0x49,
+  0xe3, 0x09, 0x5b, 0xfb, 0x4e, 0xb6, 0x40, 0x8b, 0x14, 0x18, 0x3e, 0x13,
+  0xdc, 0x41, 0x90, 0xbd, 0x69, 0x72, 0xbd, 0xe0, 0xcd, 0x2c, 0xc1, 0x78,
+  0x4d, 0x54, 0xa9, 0x9b, 0xe0, 0xc6, 0xc8, 0x32, 0x89, 0x08, 0x7a, 0x69,
+  0x3c, 0x2b, 0x5d, 0x87, 0x2f, 0xba, 0xaa, 0x05, 0xad, 0x01, 0x34, 0x46,
+  0xb7, 0x2b, 0xea, 0xf8, 0xb6, 0xb0, 0xfb, 0x82, 0x99, 0x3f, 0xc0, 0x8f,
+  0x6c, 0x5f, 0x01, 0x7d, 0xbc, 0x44, 0x68, 0x4c, 0x97, 0x55, 0x07, 0x1d,
+  0x24, 0xe7, 0x61, 0xa1, 0x17, 0x79, 0x63, 0x92, 0x15, 0x52, 0x5d, 0x4f,
+  0xfa, 0x81, 0x00, 0x1d, 0x4d, 0xaf, 0xc4, 0x8b, 0xcd, 0x03, 0xf4, 0x5b,
+  0x6f, 0xae, 0x90, 0x1c, 0x9a, 0x05, 0xde, 0x6d, 0x7e, 0x9b, 0x79, 0x31,
+  0xee, 0xbd, 0x3e, 0x51, 0x7b, 0xa4, 0x3b, 0x81, 0xa0, 0x2e, 0x22, 0x08,
+  0x8f, 0x34, 0xfc, 0xc3, 0x89, 0x38, 0xd0, 0x03, 0xa1, 0x65, 0x28, 0x21,
+  0xcc, 0xd0, 0x1f, 0xcb, 0x23, 0x1b, 0x99, 0x27, 0x91, 0xfc, 0xf0, 0x3d,
+  0x5a, 0xfb, 0x1e, 0x6f, 0xe8, 0xb0, 0xb0, 0x79, 0xb7, 0x15, 0x87, 0x58,
+  0xf4, 0xbd, 0x67, 0xe8, 0x10, 0xf9, 0xf4, 0xdd, 0x68, 0xbc, 0xae, 0x68,
+  0x2e, 0xa6, 0xb9, 0x02, 0xc2, 0x3a, 0xed, 0xa9, 0x85, 0x3f, 0x4f, 0xa4,
+  0x42, 0xa2, 0x30, 0xe2, 0x12, 0xc9, 0x86, 0x51, 0xc2, 0xf7, 0x2d, 0x10,
+  0x8a, 0x90, 0x41, 0x09, 0x27, 0xd9, 0xb3, 0x22, 0x36, 0x3c, 0x3c, 0x8f,
+  0x90, 0x3c, 0x78, 0x59, 0xf7, 0x2c, 0x15, 0xb5, 0x1e, 0xe7, 0xce, 0x60,
+  0x27, 0x19, 0xbe, 0xff, 0x52, 0xa8, 0xfd, 0xbe, 0x1c, 0x32, 0x51, 0x32,
+  0xa9, 0xc2, 0xfa, 0xc6, 0x20, 0x4e, 0x9f, 0x04, 0xe1, 0x31, 0x95, 0x38,
+  0xf6, 0x1f, 0x53, 0x97, 0xc5, 0x56, 0x0b, 0xc9, 0xaa, 0x1b, 0x75, 0xc2,
+  0x99, 0xd4, 0x3c, 0xee, 0x5e, 0x34, 0x51, 0x9d, 0xc3, 0x33, 0x65, 0x9d,
+  0xc5, 0xc7, 0x3d, 0x58, 0x4d, 0x24, 0xb5, 0x17, 0x9c, 0x87, 0x27, 0x9e,
+  0x84, 0xa7, 0x1c, 0x05, 0xd1, 0x3b, 0x54, 0x2a, 0x77, 0xa7, 0xe3, 0xbc,
+  0xb5, 0x55, 0x33, 0xca, 0xc6, 0x61, 0x50, 0x62, 0x76, 0x05, 0x45, 0x0b,
+  0x79, 0x72, 0x3d, 0xfc, 0x12, 0x81, 0x35, 0x0b, 0x9d, 0x8a, 0xd3, 0x2d,
+  0xa1, 0x91, 0x74, 0xec, 0x6b, 0xae, 0x4a, 0x40, 0xd6, 0x9d, 0x83, 0x3f,
+  0xa2, 0xe0, 0x22, 0xb3, 0xaf, 0xf2, 0x0d, 0x2a, 0x1c, 0x0b, 0x20, 0xfd,
+  0xcb, 0x35, 0x74, 0xe6, 0x9d, 0xa5, 0x29, 0x65, 0xde, 0x3d, 0x70, 0xd2,
+  0x5e, 0x90, 0x61, 0x00, 0x6d, 0x67, 0x42, 0x9a, 0xbb, 0x03, 0x88, 0xeb,
+  0xae, 0x46, 0x09, 0xa2, 0x44, 0xe8, 0x42, 0x2b, 0x55, 0x5f, 0x42, 0xd9,
+  0xd8, 0x4f, 0x92, 0xb7, 0x59, 0xf1, 0xd0, 0xee, 0x50, 0x0f, 0x4c, 0x19,
+  0x70, 0x09, 0xe7, 0x8d, 0x4b, 0xe6, 0x16, 0x3c, 0x23, 0x05, 0x40, 0x6d,
+  0x17, 0xc3, 0x2e, 0xb5, 0xfb, 0x1c, 0x93, 0x00, 0x6f, 0xec, 0x34, 0x28,
+  0xb6, 0xc6, 0x9f, 0x8c, 0x4d, 0x70, 0x32, 0x68, 0xf4, 0x0f, 0x9f, 0x7c,
+  0xca, 0x34, 0x80, 0x53, 0x0d, 0x06, 0x4c, 0xbd, 0x18, 0xfd, 0x95, 0x8e,
+  0x2b, 0x94, 0xf6, 0x69, 0x0a, 0x7b, 0x95, 0x27, 0x42, 0x21, 0x71, 0x64,
+  0x2d, 0x9b, 0xa7, 0x38, 0x62, 0x15, 0xba, 0xa6, 0xa9, 0x4e, 0x09, 0xc2,
+  0x92, 0x4a, 0x21, 0xdd, 0xde, 0x05, 0xe8, 0x53, 0x34, 0x15, 0x2a, 0x5b,
+  0x72, 0xf9, 0xea, 0x16, 0xef, 0x5f, 0x91, 0x74, 0x62, 0xa4, 0x55, 0xe7,
+  0x1a, 0xe3, 0xd9, 0x64, 0x78, 0x9f, 0x05, 0x9b, 0xd2, 0xe3, 0x4b, 0xdb,
+  0x52, 0x99, 0x57, 0xf7, 0xfe, 0x48, 0x7f, 0x84, 0xa3, 0x68, 0x05, 0x67,
+  0x68, 0x9e, 0xf5, 0xb4, 0xd3, 0xe3, 0x10, 0x1f, 0x78, 0x7d, 0xd9, 0x07,
+  0xde, 0x38, 0x81, 0xba, 0xba, 0x6d, 0xc8, 0x9e, 0xa7, 0x7c, 0xe0, 0x43,
+  0xa1, 0x3c, 0x66, 0xba, 0xbf, 0xe7, 0x96, 0x41, 0xfc, 0x3e, 0xad, 0x0a,
+  0x80, 0xc9, 0x7d, 0xcd, 0x9f, 0xb8, 0x2f, 0xe6, 0x52, 0x5e, 0x20, 0xbd,
+  0x22, 0x1c, 0x6e, 0x95, 0x39, 0xba, 0x53, 0x72, 0xaf, 0x31, 0xc5, 0x8d,
+  0x70, 0x28, 0x2b, 0x2a, 0x74, 0x5e, 0x36, 0xcc, 0xe6, 0x4c, 0xc0, 0x5d,
+  0xd2, 0x19, 0x2a, 0x72, 0xb1, 0x78, 0x93, 0xac, 0x3a, 0x21, 0xb5, 0x66,
+  0x77, 0x13, 0x9c, 0x5d, 0x8b, 0x39, 0xed, 0x0f, 0xc5, 0x54, 0x49, 0xc8,
+  0xd5, 0x93, 0x33, 0xf2, 0x45, 0x46, 0x5f, 0xc1, 0x35, 0x64, 0x49, 0x9f,
+  0xef, 0xca, 0x9c, 0x30, 0x54, 0x6b, 0xf6, 0x4a, 0x30, 0x7a, 0x90, 0xdb,
+  0x25, 0x97, 0x61, 0x41, 0x02, 0xd8, 0x13, 0x16, 0xf1, 0x22, 0x06, 0x85,
+  0x43, 0x04, 0xa7, 0x75, 0x2b, 0xd5, 0x27, 0x6f, 0x61, 0x83, 0x01, 0x8d,
+  0x30, 0x0a, 0x3f, 0x91, 0xac, 0x99, 0x3d, 0x59, 0xa4, 0x8d, 0x1e, 0x18,
+  0x4f, 0x22, 0x52, 0xf7, 0x80, 0x56, 0x2b, 0x48, 0xc9, 0x1f, 0x5b, 0xf6,
+  0xa1, 0x2e, 0x61, 0x73, 0xbb, 0xac, 0xac, 0xbd, 0x55, 0x2d, 0x82, 0xd3,
+  0x29, 0x8c, 0x83, 0x47, 0xc4, 0xf8, 0xa7, 0x07, 0x85, 0x8c, 0xad, 0x56,
+  0x66, 0xe6, 0x94, 0xce, 0x4b, 0xc5, 0x77, 0xf2, 0x06, 0x2b, 0xd6, 0xc1,
+  0xac, 0x2a, 0x96, 0x53, 0xca, 0x3c, 0xcc, 0x16, 0xdd, 0x23, 0x5f, 0x68,
+  0x88, 0xce, 0x22, 0x74, 0x98, 0xd0, 0x09, 0x7a, 0x84, 0xb8, 0x25, 0x98,
+  0xc1, 0x9e, 0xcb, 0xd3, 0x0b, 0xad, 0x3f, 0xca, 0xd6, 0x52, 0xd4, 0x2e,
+  0xee, 0xec, 0xdb, 0xb6, 0x6c, 0x2e, 0x66, 0xc3, 0x14, 0x93, 0xbe, 0x11,
+  0x02, 0xf3, 0x15, 0x8e, 0x27, 0xe7, 0x9b, 0x69, 0x81, 0x5d, 0x7d, 0xfa,
+  0x08, 0xfe, 0x09, 0x43, 0xea, 0x64, 0xee, 0x42, 0xb0, 0xb8, 0x51, 0x09,
+  0x9e, 0xc5, 0x66, 0x32, 0x06, 0xda, 0x5b, 0x52, 0xdb, 0x3d, 0xc6, 0x6b,
+  0xaf, 0xd9, 0x5c, 0x98, 0x40, 0x9d, 0xb0, 0x65, 0x00, 0x27, 0x9e, 0x3e,
+  0x99, 0xb9, 0x0f, 0x9c, 0x4c, 0x85, 0x36, 0x61, 0xef, 0x14, 0x02, 0x93,
+  0xf6, 0xbe, 0xc5, 0xbe, 0x9a, 0x60, 0x1e, 0xc1, 0xaf, 0xc4, 0x14, 0xe9,
+  0xfc, 0x9c, 0x5c, 0x4b, 0x2e, 0xed, 0xb1, 0xdb, 0x49, 0xe5, 0x9e, 0x8e,
+  0x38, 0x3f, 0x20, 0x27, 0xf1, 0x21, 0xea, 0x58, 0xbe, 0x92, 0xb9, 0x60,
+  0xc9, 0x62, 0xc4, 0x48, 0x3b, 0x26, 0x1d, 0x04, 0xaa, 0xfe, 0x9c, 0xab,
+  0x27, 0xc7, 0x61, 0x6f, 0x43, 0x39, 0x6f, 0x5a, 0x63, 0x19, 0x72, 0x5a,
+  0x31, 0x87, 0x9e, 0x37, 0x8c, 0xeb, 0xec, 0x7c, 0x6a, 0x1e, 0xf1, 0x8a,
+  0xcb, 0xf7, 0x10, 0xa4, 0x57, 0x5c, 0x89, 0x34, 0xec, 0xfe, 0xe9, 0x7e,
+  0x6b, 0x46, 0x17, 0x13, 0xd2, 0xb4, 0x56, 0xcb, 0xdd, 0x0a, 0xed, 0xaf,
+  0xbc, 0x36, 0x27, 0x7a, 0xd5, 0xa0, 0xf0, 0xd0, 0x2f, 0x19, 0x54, 0xab,
+  0x1e, 0xb5, 0x8c, 0x41, 0xfa, 0xdc, 0x59, 0x11, 0xfe, 0xc8, 0x4a, 0x27,
+  0xec, 0x92, 0x21, 0x98, 0x36, 0x57, 0x54, 0xc4, 0xf4, 0x86, 0x61, 0x1f,
+  0xfc, 0xb9, 0x23, 0x79, 0x7c, 0x1a, 0xb1, 0x35, 0xe8, 0xbf, 0x3f, 0xec,
+  0xc3, 0xef, 0x35, 0xf9, 0x69, 0x69, 0x3f, 0x8e, 0x7a, 0xd2, 0x97, 0xdf,
+  0xa0, 0x1b, 0xf9, 0xfc, 0x86, 0xbc, 0x1a, 0xaf, 0x63, 0x59, 0x36, 0xde,
+  0x44, 0xc8, 0x63, 0xbf, 0xfe, 0xf7, 0xab, 0xa9, 0x23, 0xb6, 0x59, 0xf1,
+  0x7d, 0x79, 0xec, 0x57, 0xff, 0x3e, 0x9f, 0xdd, 0xd5, 0x97, 0x8b, 0x95,
+  0x8a, 0x6f, 0x05, 0xca, 0xdc, 0x96, 0x38, 0xee, 0x56, 0xf9, 0x05, 0x42,
+  0x51, 0xd0, 0xd1, 0xa1, 0x54, 0x94, 0x6f, 0x45, 0x2b, 0x0d, 0xf8, 0x62,
+  0xf1, 0x57, 0x91, 0x60, 0x10, 0xcd, 0xe1, 0xe4, 0x48, 0xe9, 0x8f, 0xd7,
+  0xfc, 0xe7, 0x32, 0x32, 0xd4, 0x23, 0xba, 0x00, 0xb5, 0x4c, 0x08, 0x2a,
+  0x4f, 0x30, 0x49, 0x80, 0x28, 0xbb, 0xb6, 0x66, 0x02, 0x4d, 0x93, 0xa2,
+  0x44, 0xe8, 0xd5, 0x58, 0x6d, 0x12, 0x99, 0x1b, 0x82, 0x8a, 0x92, 0xf1,
+  0x65, 0x19, 0xa4, 0x2d, 0x46, 0x88, 0x54, 0x8e, 0xcc, 0xfb, 0x60, 0x6d,
+  0xf9, 0x58, 0x62, 0x11, 0x2d, 0xbf, 0xc6, 0xa3, 0x23, 0x2c, 0xfd, 0xba,
+  0x27, 0xb5, 0x41, 0x4c, 0x73, 0xb4, 0xa1, 0x04, 0x2b, 0xa9, 0x3b, 0x09,
+  0x0b, 0x19, 0x12, 0xbb, 0x30, 0x06, 0x9e, 0xb4, 0xd2, 0x29, 0x43, 0x72,
+  0x93, 0xc3, 0xb3, 0xd3, 0xd3, 0xa3, 0xc3, 0x6e, 0x20, 0x0f, 0x84, 0x15,
+  0x48, 0x3b, 0x00, 0xc1, 0xba, 0x28, 0xf9, 0x41, 0x6d, 0x3a, 0x7c, 0x9d,
+  0x49, 0xc7, 0x2d, 0x9b, 0x12, 0xf7, 0x00, 0x95, 0x6b, 0x52, 0x21, 0x65,
+  0xe5, 0xec, 0x05, 0x8f, 0xb1, 0x93, 0xd7, 0x3e, 0x92, 0xd2, 0x15, 0xec,
+  0x04, 0xe7, 0x87, 0x80, 0x43, 0x8a, 0x0a, 0x17, 0xb2, 0xee, 0x09, 0xe3,
+  0x52, 0x7b, 0xc0, 0xf5, 0xfb, 0x26, 0x93, 0x6d, 0x81, 0x2c, 0x4b, 0x32,
+  0x5c, 0x68, 0xc6, 0xd8, 0x5d, 0xcc, 0x1c, 0x5f, 0x94, 0x1b, 0xd2, 0x2f,
+  0xaf, 0xb8, 0x4c, 0xe6, 0x2c, 0xad, 0x6e, 0x29, 0x0e, 0xe8, 0x65, 0x89,
+  0x20, 0x4b, 0x10, 0x8c, 0xc3, 0x93, 0x49, 0x2c, 0xfd, 0x1c, 0xce, 0x65,
+  0x45, 0xc5, 0x23, 0x0b, 0x8d, 0x3b, 0x24, 0x75, 0xe5, 0xf6, 0x35, 0x7d,
+  0x8f, 0x5e, 0x2f, 0xb2, 0x7b, 0xfa, 0x0c, 0xb3, 0x6e, 0x50, 0x0e, 0x79,
+  0xc8, 0x53, 0xcf, 0xdc, 0xc8, 0xec, 0x40, 0x7f, 0x90, 0xf4, 0x75, 0x5a,
+  0xab, 0x19, 0xf3, 0xc0, 0x83, 0x85, 0x97, 0x8a, 0x2b, 0x71, 0xea, 0x47,
+  0x30, 0x57, 0x5f, 0x2b, 0x8d, 0x9e, 0x17, 0x6b, 0x53, 0xf6, 0x10, 0x3f,
+  0xa7, 0x83, 0x11, 0xde, 0x92, 0x1d, 0xe3, 0x11, 0xec, 0x2d, 0x0b, 0xf6,
+  0x62, 0xbe, 0xb1, 0x10, 0x64, 0xa9, 0xd4, 0x8e, 0x74, 0x47, 0xaa, 0xd0,
+  0xf9, 0xbb, 0x7e, 0x95, 0xcf, 0xd2, 0xd7, 0xf0, 0x9d, 0x8a, 0x2f, 0x88,
+  0x69, 0xec, 0x1f, 0x6f, 0x09, 0xb7, 0x61, 0x6c, 0x77, 0x67, 0xc8, 0xbe,
+  0xa5, 0x07, 0x67, 0x15, 0x91, 0x05, 0xa8, 0xf6, 0x3a, 0xd2, 0xc0, 0x68,
+  0xfd, 0xe4, 0x8b, 0xc9, 0x96, 0x09, 0xe9, 0xdb, 0x1e, 0x08, 0x11, 0xf9,
+  0xa1, 0x5f, 0x5f, 0x52, 0xaf, 0xae, 0x62, 0xed, 0xae, 0x0a, 0xfb, 0xdc,
+  0x6f, 0xd1, 0x83, 0x68, 0x59, 0xe8, 0xd6, 0xb7, 0x9f, 0xfe, 0xd9, 0x80,
+  0xf3, 0xed, 0x11, 0x2f, 0x95, 0xbb, 0x87, 0x1e, 0xa5, 0x34, 0x84, 0x24,
+  0x0a, 0xd0, 0x99, 0xde, 0x0d, 0xb5, 0xf2, 0x4e, 0x72, 0x29, 0xec, 0xfe,
+  0xb5, 0x14, 0x89, 0xd8, 0xc6, 0x3a, 0x22, 0x31, 0xd7, 0xa7, 0x5d, 0x51,
+  0x8f, 0x5e, 0x49, 0xad, 0x0c, 0xc8, 0x2e, 0x38, 0xc8, 0x66, 0x40, 0x3d,
+  0x7d, 0xe2, 0x28, 0xfd, 0xeb, 0xd7, 0xbc, 0xbe, 0x91, 0x76, 0xd5, 0xba,
+  0xbc, 0xf1, 0x89, 0xd6, 0x24, 0x3c, 0x45, 0x56, 0x07, 0x53, 0xe2, 0xd6,
+  0x20, 0x72, 0x77, 0x87, 0xb3, 0xb0, 0x0a, 0xfb, 0xed, 0xb6, 0x27, 0x9e,
+  0xfa, 0xd5, 0x8f, 0x05, 0x81, 0x3d, 0xf2, 0xb1, 0x80, 0xda, 0x5f, 0x3f,
+  0x4e, 0x4e, 0x18, 0x30, 0x3b, 0x79, 0x71, 0x18, 0x69, 0x8b, 0xfd, 0x9d,
+  0xf6, 0x52, 0x0e, 0xa8, 0x46, 0x04, 0xa8, 0x1b, 0x81, 0x71, 0xf8, 0x51,
+  0x92, 0x67, 0xd1, 0xde, 0xd6, 0xd3, 0x3e, 0x7a, 0x40, 0x19, 0x67, 0x81,
+  0xe6, 0xe7, 0xe6, 0xaa, 0xf3, 0xdc, 0xaf, 0x3f, 0x6d, 0xcd, 0xb4, 0xa6,
+  0xb5, 0x7c, 0x8a, 0x48, 0xf3, 0x1f, 0xfd, 0x2d, 0xfa, 0x61, 0xe3, 0xee,
+  0xaf, 0x39, 0xa8, 0xbe, 0xb2, 0x27, 0xf6, 0xe1, 0xdf, 0xa2, 0x27, 0x48,
+  0x62, 0x8b, 0xee, 0xa1, 0x56, 0x1f, 0xf0, 0xd8, 0x6f, 0xf1, 0xfd, 0xbb,
+  0xdd, 0x65, 0x9f, 0x45, 0x71, 0x29, 0x3c, 0xf1, 0x2b, 0x7e, 0xf8, 0x83,
+  0x55, 0xd1, 0x39, 0xe7, 0xef, 0x35, 0xfd, 0x77, 0x5f, 0x67, 0x78, 0x55,
+  0xd5, 0x8a, 0x25, 0x3c, 0xa9, 0x5e, 0xc9, 0xcc, 0x20, 0xb9, 0xf5, 0x49,
+  0x30, 0x28, 0x5b, 0xd2, 0x59, 0x58, 0x97, 0x95, 0x46, 0x31, 0x01, 0xbd,
+  0x6d, 0x5f, 0xd9, 0x57, 0x38, 0xcf, 0x98, 0x13, 0xbf, 0x39, 0x8d, 0x57,
+  0x78, 0x08, 0xba, 0xd4, 0x13, 0x56, 0x8c, 0x99, 0x1e, 0xc5, 0xa4, 0xaf,
+  0xa0, 0x86, 0x1e, 0x6c, 0x01, 0x2c, 0x24, 0x52, 0x58, 0xd9, 0x1d, 0x44,
+  0x4a, 0xa7, 0xcc, 0x52, 0xb4, 0x9a, 0x28, 0x56, 0x6a, 0x83, 0xbb, 0x8c,
+  0xfd, 0x11, 0x9b, 0x12, 0x01, 0x0f, 0xbf, 0xc4, 0xb0, 0x1c, 0x83, 0xd8,
+  0xd4, 0x65, 0x79, 0x5a, 0xe5, 0x6b, 0x3f, 0x59, 0xef, 0x7f, 0x48, 0xf6,
+  0xd7, 0x7f, 0x43, 0x38, 0xb5, 0x67, 0xaa, 0xfd, 0x0c, 0x74, 0x58, 0x9b,
+  0x87, 0x7f, 0x15, 0x56, 0xca, 0xc3, 0xcb, 0x04, 0xc9, 0xa9, 0x71, 0x90,
+  0xd4, 0x15, 0x31, 0x56, 0x26, 0xa7, 0xdd, 0x05, 0x88, 0xc0, 0x8d, 0x28,
+  0x5e, 0xcb, 0xe1, 0x51, 0x3b, 0xba, 0x06, 0xa9, 0x5a, 0xc8, 0x7b, 0xf5,
+  0x1d, 0xa8, 0x1f, 0x82, 0x2a, 0x77, 0x0e, 0x44, 0xb5, 0x1c, 0x36, 0xe5,
+  0xa1, 0xa6, 0x00, 0x1e, 0x64, 0x6b, 0x12, 0x65, 0x81, 0x03, 0x23, 0x0d,
+  0xdc, 0x7e, 0x8c, 0x98, 0x52, 0xc0, 0x94, 0x8f, 0x97, 0x4a, 0x36, 0x2f,
+  0x3d, 0x87, 0xb6, 0xe3, 0xe2, 0x21, 0x5b, 0x24, 0xee, 0x4a, 0xc5, 0x3e,
+  0x04, 0x39, 0xeb, 0x67, 0x41, 0x25, 0x1b, 0xff, 0xe8, 0x6b, 0x53, 0x77,
+  0x79, 0xca, 0x31, 0x0a, 0x9e, 0x46, 0xf9, 0x10, 0xcf, 0xa7, 0x96, 0xf3,
+  0x5b, 0xe9, 0xac, 0xe2, 0x04, 0xe6, 0x48, 0xd2, 0xc3, 0xe9, 0x70, 0x18,
+  0x02, 0xa7, 0x8a, 0x2a, 0x1b, 0x97, 0xd7, 0x45, 0xfe, 0x77, 0x6a, 0x11,
+  0x7e, 0xbe, 0x2e, 0x94, 0xa2, 0x05, 0x5d, 0x53, 0xbf, 0x35, 0xf1, 0x59,
+  0x50, 0x34, 0xa1, 0xbb, 0x1a, 0xca, 0xac, 0x41, 0x42, 0x8a, 0xc2, 0x9a,
+  0x44, 0x08, 0x20, 0xf3, 0xc8, 0xb5, 0x5b, 0x99, 0xdd, 0x5c, 0x32, 0x4b,
+  0x74, 0x74, 0xf2, 0xe1, 0x60, 0x71, 0x75, 0x57, 0x08, 0x24, 0x66, 0x49,
+  0xc6, 0x7c, 0x96, 0xfc, 0x02, 0xa8, 0x19, 0x4a, 0x96, 0xfc, 0x7c, 0xa0,
+  0x59, 0x3c, 0x9b, 0x1d, 0xb5, 0xa3, 0xe9, 0x68, 0xc4, 0xf9, 0x42, 0x34,
+  0x97, 0x3e, 0x52, 0x20, 0xe5, 0xc6, 0xc1, 0x03, 0x59, 0xf0, 0x3e, 0x89,
+  0x35, 0xc4, 0x34, 0xc4, 0x39, 0x46, 0xe1, 0xd9, 0xea, 0x32, 0x86, 0x58,
+  0x87, 0xc0, 0x13, 0xa8, 0x42, 0xc8, 0xe2, 0x55, 0xb2, 0x47, 0x31, 0x3c,
+  0xc1, 0x83, 0x6c, 0x6b, 0x74, 0x97, 0x5c, 0x13, 0xdb, 0x3b, 0x92, 0x7c,
+  0x60, 0xa3, 0x45, 0x7a, 0xe6, 0x44, 0xa4, 0x0d, 0x0a, 0xb7, 0x91, 0x45,
+  0x06, 0x37, 0xcc, 0x85, 0x8f, 0x06, 0x06, 0x44, 0x68, 0x41, 0xe8, 0x5b,
+  0xb5, 0x71, 0xcd, 0xaf, 0x09, 0xd5, 0xab, 0xbb, 0xa2, 0xbb, 0xb5, 0x1c,
+  0xf1, 0xa6, 0xed, 0x22, 0x87, 0x52, 0xc4, 0x18, 0xb6, 0x55, 0x25, 0x1c,
+  0xbf, 0x2e, 0x52, 0xe9, 0xa4, 0xe0, 0x6e, 0xc8, 0xf1, 0xa5, 0xd3, 0xd4,
+  0x50, 0x69, 0x65, 0xa2, 0xe3, 0x62, 0xb0, 0xa9, 0xdd, 0x2b, 0x3d, 0x92,
+  0x3e, 0x2c, 0x72, 0x45, 0x7d, 0xef, 0xcf, 0x55, 0xca, 0x76, 0x07, 0xfb,
+  0x20, 0x8d, 0x2c, 0x29, 0x3c, 0xfa, 0x1b, 0xe0, 0x13, 0x7f, 0x11, 0x40,
+  0xf1, 0xb7, 0xc5, 0x27, 0xba, 0x9b, 0x82, 0x6e, 0x9d, 0xf0, 0x9e, 0x40,
+  0xe8, 0x90, 0x12, 0xcc, 0x38, 0x56, 0x78, 0x9f, 0x5a, 0x5a, 0xe8, 0xa8,
+  0x92, 0x1e, 0x3f, 0x4c, 0xbd, 0x36, 0xda, 0x23, 0x0b, 0x64, 0xe4, 0xa6,
+  0x48, 0x8d, 0x58, 0xd5, 0x13, 0xae, 0x93, 0x3e, 0xca, 0x20, 0x40, 0x71,
+  0xff, 0xff, 0xd1, 0xd1, 0x32, 0xff, 0x96, 0xb9, 0x4e, 0x34, 0xbc, 0x5d,
+  0x23, 0x9b, 0x5f, 0x7b, 0xf7, 0xf1, 0x17, 0x8f, 0x5e, 0xc8, 0x38, 0x67,
+  0xf4, 0x9a, 0x23, 0x14, 0xf2, 0xe4, 0x9d, 0xad, 0x1a, 0xc5, 0xc5, 0x2f,
+  0x9a, 0xf8, 0x81, 0x41, 0x21, 0x28, 0x66, 0x8e, 0x11, 0xf1, 0xa6, 0xe5,
+  0xce, 0x97, 0x08, 0xb8, 0x4c, 0x09, 0x64, 0x95, 0xb5, 0xd6, 0x48, 0xf4,
+  0x51, 0xd6, 0xdc, 0x13, 0x16, 0x12, 0xf3, 0xa1, 0x13, 0xe9, 0x49, 0x01,
+  0x99, 0xa2, 0xa5, 0x41, 0xa1, 0x1e, 0x07, 0xdd, 0x48, 0xa0, 0x30, 0x27,
+  0x9a, 0xad, 0x79, 0xaa, 0x1e, 0xd0, 0xe0, 0xf4, 0x45, 0x79, 0xd6, 0x9d,
+  0x37, 0xb7, 0x35, 0x37, 0x0a, 0x59, 0x69, 0xa1, 0x48, 0x35, 0xbc, 0x27,
+  0x0f, 0xfa, 0x86, 0xbf, 0x3d, 0xc6, 0x72, 0x6c, 0xa3, 0xc5, 0x0f, 0x48,
+  0x95, 0xf4, 0x86, 0xa8, 0xcb, 0xef, 0x69, 0x5a, 0x91, 0x4a, 0xd5, 0xb8,
+  0x1d, 0x23, 0x89, 0x16, 0xda, 0x90, 0xde, 0xa2, 0xf0, 0xb7, 0xf1, 0x54,
+  0x88, 0xf3, 0x96, 0xe5, 0x87, 0x9d, 0x87, 0xe5, 0xc7, 0xc2, 0xe1, 0x43,
+  0xaf, 0x28, 0x01, 0x39, 0x9b, 0xea, 0x71, 0xcd, 0x35, 0x6f, 0x98, 0x3e,
+  0xd6, 0x87, 0x8b, 0xd9, 0xc9, 0x4a, 0xa6, 0x28, 0x31, 0x5f, 0x09, 0xe2,
+  0xd6, 0xe6, 0xab, 0xe9, 0xdc, 0x7c, 0x08, 0x45, 0xd2, 0xe9, 0x92, 0x9e,
+  0x78, 0x12, 0x0f, 0xfd, 0xd6, 0x05, 0xd1, 0xb5, 0x72, 0xb0, 0xf3, 0x10,
+  0x7a, 0x14, 0xd6, 0xf0, 0x90, 0xf8, 0x01, 0xcb, 0x25, 0x81, 0xad, 0x09,
+  0xc4, 0x5f, 0x1d, 0xd3, 0xe2, 0xea, 0xa1, 0x5d, 0x19, 0x67, 0xcf, 0x10,
+  0x62, 0xc1, 0x82, 0xf7, 0x4d, 0x57, 0x60, 0x87, 0x75, 0x1e, 0x2f, 0x99,
+  0x84, 0x06, 0x58, 0x60, 0xfe, 0xbe, 0xf3, 0xb4, 0x4b, 0x3c, 0x5d, 0xcb,
+  0x9e, 0xdc, 0xdb, 0x9a, 0xd0, 0xec, 0xb5, 0x8e, 0x15, 0x15, 0x11, 0x24,
+  0xae, 0xbe, 0x22, 0xcc, 0x75, 0xf2, 0x01, 0x5b, 0x1e, 0x6a, 0x99, 0x57,
+  0x34, 0x16, 0x4f, 0x69, 0x09, 0x07, 0x49, 0xd8, 0x8e, 0xf8, 0x05, 0x37,
+  0x87, 0x44, 0x06, 0x3e, 0x3c, 0x3c, 0xdf, 0x4a, 0xce, 0x5d, 0xa2, 0x2f,
+  0xe2, 0x58, 0x80, 0xda, 0xd2, 0x9d, 0xed, 0x8b, 0x7b, 0x29, 0xc7, 0xc1,
+  0xd4, 0x44, 0xf1, 0xbc, 0x5d, 0xc9, 0xa4, 0xc6, 0xce, 0xb5, 0x04, 0x5c,
+  0x60, 0xd7, 0xff, 0xd5, 0xe5, 0x5f, 0x67, 0x2c, 0x07, 0x48, 0xc3, 0xe7,
+  0xb4, 0x5c, 0xc9, 0x10, 0xf6, 0xa5, 0x81, 0x31, 0xeb, 0x4a, 0x42, 0x79,
+  0x33, 0x01, 0xbe, 0x64, 0x32, 0xf3, 0x0e, 0xc2, 0xd0, 0x3b, 0xcd, 0x71,
+  0x5a, 0xba, 0xe2, 0xc0, 0x3c, 0x02, 0x02, 0x29, 0x45, 0x53, 0xf3, 0xed,
+  0xd7, 0xe1, 0x88, 0xa5, 0x51, 0x5c, 0x67, 0x45, 0x48, 0x3a, 0x8d, 0x8f,
+  0x92, 0xbe, 0x20, 0x1b, 0x78, 0x32, 0xe8, 0xd2, 0x9d, 0x7a, 0x99, 0xd6,
+  0xd2, 0xb9, 0x1c, 0x48, 0x4c, 0xde, 0xef, 0xcb, 0x88, 0x91, 0xe8, 0x6c,
+  0x8f, 0x80, 0x3e, 0xbf, 0x25, 0xd1, 0x7b, 0x4d, 0xd9, 0xed, 0x0d, 0xae,
+  0xd2, 0xf9, 0x03, 0x4d, 0x87, 0x79, 0xb0, 0xae, 0x6f, 0xf6, 0x8c, 0x80,
+  0xda, 0x1b, 0x7c, 0x0e, 0x4b, 0xc8, 0xe8, 0x04, 0x59, 0xb5, 0x84, 0xf6,
+  0x4c, 0x4a, 0x56, 0x75, 0x5a, 0x13, 0x65, 0x7f, 0xe0, 0xec, 0x8b, 0xfe,
+  0xff, 0xa0, 0x9d, 0xf6, 0xb7, 0x45, 0xe8, 0x3b, 0xdc, 0xc4, 0x86, 0x7a,
+  0x07, 0x06, 0x24, 0xa2, 0x43, 0x27, 0x66, 0x8e, 0x6a, 0x94, 0x37, 0xe0,
+  0x33, 0x55, 0xd2, 0x8e, 0xf6, 0xb1, 0xa4, 0x37, 0x00, 0xd0, 0xa4, 0xd7,
+  0xa2, 0x69, 0x5a, 0x46, 0xd5, 0xff, 0x1f, 0xf4, 0x2d, 0x6d, 0x80, 0x61,
+  0x8c, 0x88, 0x4e, 0x7c, 0x79, 0xf4, 0xee, 0xec, 0xe2, 0xa8, 0x0d, 0x95,
+  0xe7, 0xd2, 0xf4, 0x08, 0x34, 0x74, 0x7b, 0x07, 0x2e, 0x12, 0x57, 0xd8,
+  0x4b, 0x4b, 0xdc, 0x9f, 0x7f, 0xf7, 0xd6, 0x76, 0x8e, 0x34, 0x91, 0x82,
+  0x3b, 0xe5, 0xaa, 0xc7, 0xca, 0x3c, 0x77, 0x35, 0x08, 0x52, 0x36, 0xa8,
+  0x20, 0x80, 0x54, 0x17, 0xb4, 0xdd, 0xa3, 0x1e, 0x70, 0x07, 0xe4, 0x63,
+  0x29, 0x53, 0x5f, 0xd6, 0x35, 0xe5, 0x81, 0xd9, 0x66, 0x03, 0xf5, 0x1a,
+  0x0a, 0x06, 0xf8, 0x1e, 0xc4, 0xe6, 0x25, 0xbe, 0x0f, 0x22, 0x01, 0x19,
+  0x24, 0xf6, 0x23, 0xee, 0x2b, 0x5c, 0x2a, 0x15, 0xea, 0x0b, 0xbe, 0x12,
+  0x8b, 0xae, 0x51, 0xf9, 0x4b, 0xf6, 0x5e, 0xf2, 0xa5, 0x4a, 0xd4, 0xcd,
+  0xb4, 0x67, 0x6d, 0xed, 0x81, 0x1e, 0xf3, 0xb3, 0x48, 0xaa, 0x96, 0x3f,
+  0x8f, 0x11, 0xef, 0xbc, 0xf9, 0xec, 0x66, 0xbd, 0xd5, 0xf3, 0x7a, 0x6a,
+  0xa7, 0x4d, 0x3a, 0xbc, 0xf1, 0xc7, 0x8d, 0x44, 0xe0, 0x99, 0x10, 0x78,
+  0x7c, 0xd5, 0x2f, 0xa9, 0x39, 0xe4, 0x6a, 0x50, 0x6c, 0x3d, 0x16, 0x51,
+  0xd5, 0x41, 0x2f, 0xb7, 0xd1, 0x34, 0x6f, 0x54, 0xe2, 0x6c, 0x5c, 0x0e,
+  0x8a, 0xe2, 0x3c, 0xf8, 0x06, 0xc4, 0x87, 0xdc, 0xdc, 0xda, 0x56, 0x2f,
+  0x92, 0x35, 0x46, 0x8e, 0x9f, 0xca, 0x27, 0xa5, 0x57, 0x91, 0x03, 0x9e,
+  0x01, 0xa5, 0x1c, 0xe5, 0x12, 0x45, 0x4a, 0xf8, 0xff, 0x50, 0x34, 0x74,
+  0x5a, 0x21, 0x58, 0x82, 0x49, 0xab, 0x70, 0x21, 0xf1, 0x7e, 0x72, 0xdb,
+  0xb7, 0x46, 0x7e, 0xe6, 0xab, 0x17, 0xaf, 0x48, 0x8d, 0x40, 0xe0, 0x50,
+  0x0a, 0x33, 0x08, 0x37, 0x1f, 0x78, 0x27, 0xc2, 0xc4, 0x8c, 0xce, 0x00,
+  0xb4, 0x98, 0xde, 0x28, 0x9b, 0x72, 0x21, 0x88, 0xa1, 0xd7, 0xc4, 0x93,
+  0xa3, 0x75, 0x6d, 0x3c, 0xde, 0x80, 0xd5, 0x13, 0xb3, 0x0a, 0xe9, 0xad,
+  0xcb, 0xd8, 0x4b, 0x96, 0x1d, 0xcd, 0x9e, 0xdd, 0xb6, 0x9a, 0xa1, 0xc9,
+  0xdb, 0xc1, 0xf2, 0x19, 0x1b, 0xd1, 0x9d, 0x55, 0x79, 0x7d, 0x9b, 0x6c,
+  0xfe, 0xfb, 0x96, 0x2d, 0xc3, 0x19, 0x41, 0x3e, 0x91, 0x6b, 0x32, 0x2f,
+  0x16, 0x59, 0xab, 0x44, 0xab, 0xb6, 0x76, 0x85, 0xb2, 0x21, 0xc4, 0x01,
+  0x17, 0x03, 0xb1, 0x53, 0x95, 0xbc, 0x79, 0xc0, 0xea, 0x2e, 0x79, 0x82,
+  0xb2, 0x0b, 0xc2, 0x5b, 0x13, 0x2b, 0x02, 0xc2, 0x43, 0xf1, 0x12, 0xaa,
+  0xfa, 0x34, 0x48, 0x3e, 0x14, 0xd0, 0x6e, 0x64, 0x6f, 0xca, 0x5d, 0x92,
+  0x17, 0x66, 0x20, 0x66, 0xac, 0xe6, 0x36, 0x89, 0x08, 0xaa, 0xbf, 0xb5,
+  0xe5, 0x93, 0x08, 0xd2, 0x0e, 0xf3, 0x04, 0x4e, 0xb6, 0x08, 0x3f, 0x27,
+  0xda, 0x92, 0x77, 0x61, 0x1d, 0x14, 0x2e, 0xe1, 0x40, 0xc7, 0xc1, 0xac,
+  0x12, 0xda, 0xa6, 0x24, 0xa1, 0x6c, 0x3a, 0xed, 0x33, 0x3f, 0x26, 0xf1,
+  0x05, 0x92, 0x9d, 0x61, 0xd6, 0x29, 0x1d, 0x73, 0xd8, 0xd9, 0xb7, 0xc1,
+  0x82, 0xdb, 0x07, 0xb9, 0x48, 0x03, 0x82, 0xec, 0x6a, 0x0e, 0xaf, 0xa0,
+  0xd4, 0x94, 0x96, 0x96, 0xd0, 0xf0, 0xce, 0x2f, 0x83, 0xc9, 0xe1, 0x21,
+  0x2d, 0x2b, 0x5a, 0x10, 0x12, 0x4e, 0x8d, 0x6f, 0xae, 0xab, 0x39, 0x57,
+  0x4f, 0x89, 0x95, 0x76, 0xf1, 0x0d, 0x00, 0x7e, 0x54, 0x57, 0xb7, 0xce,
+  0x1a, 0xee, 0x0c, 0xbf, 0x7b, 0xfc, 0xb6, 0x55, 0x86, 0x91, 0xa6, 0x62,
+  0x12, 0x16, 0x15, 0xf0, 0x3c, 0x1c, 0x52, 0x59, 0xc9, 0x9c, 0x58, 0x77,
+  0xb7, 0xd8, 0xa6, 0x9c, 0xb5, 0x33, 0xd2, 0x52, 0x59, 0xf8, 0x5d, 0xbc,
+  0x39, 0x69, 0x85, 0xb5, 0x59, 0x6e, 0x43, 0x1b, 0xc6, 0x56, 0xd1, 0x3a,
+  0xa1, 0xb4, 0x19, 0xa8, 0x20, 0xb0, 0x7e, 0x26, 0x84, 0x36, 0xdc, 0xcc,
+  0xca, 0x09, 0x61, 0xb0, 0xb3, 0xc7, 0xe7, 0x62, 0x06, 0x30, 0xa0, 0x1e,
+  0x1c, 0x01, 0xb0, 0xd7, 0x7e, 0xd1, 0x66, 0xb4, 0x33, 0x22, 0x6e, 0x16,
+  0x9e, 0x99, 0x78, 0x73, 0x6e, 0xa8, 0x5a, 0xcd, 0x48, 0xde, 0xf4, 0x87,
+  0x50, 0x24, 0xe5, 0xb8, 0xf1, 0x46, 0x40, 0x0f, 0xc4, 0x9b, 0x63, 0xe1,
+  0x1b, 0x19, 0x19, 0x01, 0x9a, 0x61, 0xdc, 0xae, 0x1e, 0x19, 0x3f, 0x18,
+  0x2c, 0xb2, 0xf9, 0x21, 0x8b, 0xf4, 0x60, 0x85, 0x97, 0x8f, 0x2c, 0xb6,
+  0xc2, 0xe8, 0x41, 0x77, 0x81, 0x95, 0xbe, 0xbe, 0xe2, 0xa5, 0xec, 0xc7,
+  0x9b, 0xb3, 0x2b, 0x2c, 0x34, 0x86, 0x2b, 0x16, 0x58, 0xbe, 0x12, 0xcc,
+  0xc2, 0xd4, 0x88, 0x48, 0xa3, 0x05, 0x8f, 0xb3, 0x8f, 0x5c, 0x46, 0x9a,
+  0xea, 0x43, 0x37, 0x1f, 0x57, 0x4f, 0xc8, 0x54, 0x92, 0xfd, 0x1e, 0x66,
+  0x28, 0x47, 0x68, 0x85, 0x85, 0xf0, 0x86, 0xa5, 0xf4, 0x9b, 0x51, 0x49,
+  0x4a, 0x20, 0x97, 0x7c, 0x6c, 0x96, 0x4f, 0x88, 0xf7, 0xbd, 0xc4, 0x16,
+  0x66, 0x9e, 0x97, 0x79, 0xa1, 0x59, 0xd6, 0x22, 0x63, 0xbc, 0x2e, 0x26,
+  0xb1, 0x44, 0xf3, 0x55, 0x81, 0x96, 0xd9, 0x2d, 0x41, 0xa2, 0xad, 0xa2,
+  0xf0, 0x31, 0xc2, 0xfb, 0xec, 0xef, 0x63, 0x7e, 0xdc, 0xed, 0x63, 0x1e,
+  0x95, 0x6e, 0x63, 0x57, 0xb9, 0xea, 0xf1, 0xd5, 0x6e, 0x7f, 0xd2, 0x9e,
+  0xc9, 0x6e, 0xff, 0xe6, 0xf7, 0x13, 0xeb, 0x15, 0xba, 0x9f, 0xd8, 0x0f,
+  0xeb, 0xfd, 0x0f, 0x44, 0x92, 0x96, 0x86, 0x23, 0x18, 0x26, 0x37, 0x76,
+  0xa5, 0xec, 0x86, 0x4b, 0xa6, 0x02, 0xa4, 0x87, 0x81, 0x96, 0x14, 0x7c,
+  0xbc, 0x42, 0x8d, 0x3b, 0x99, 0x60, 0x59, 0x8e, 0xe5, 0x93, 0x23, 0x4f,
+  0xbb, 0x2e, 0xb2, 0x7c, 0xf7, 0xab, 0xd8, 0x86, 0x13, 0xb4, 0x5c, 0xe0,
+  0xc9, 0x57, 0x3b, 0x07, 0x62, 0x92, 0x91, 0x93, 0x58, 0xb6, 0x02, 0x61,
+  0x5b, 0xb9, 0x21, 0x95, 0x7b, 0xab, 0x36, 0xd2, 0xd2, 0x39, 0xae, 0x66,
+  0x8f, 0x1c, 0x72, 0xf3, 0x80, 0x1b, 0x15, 0x61, 0x7a, 0xbc, 0x51, 0x05,
+  0x27, 0x53, 0x8e, 0xf1, 0x92, 0x99, 0x5f, 0xd6, 0x83, 0xd6, 0x2e, 0x5c,
+  0xd5, 0x13, 0x7a, 0x30, 0xd6, 0x19, 0x37, 0xb5, 0x48, 0x73, 0x79, 0xf0,
+  0x24, 0x65, 0xbc, 0x39, 0xe9, 0xae, 0x7b, 0x4f, 0xa6, 0xa7, 0xe7, 0x39,
+  0x52, 0x99, 0x26, 0xda, 0x18, 0x97, 0xe1, 0xde, 0xd0, 0x03, 0xfe, 0xb3,
+  0x04, 0x04, 0x59, 0xf1, 0xd3, 0xc2, 0xb7, 0xdb, 0xe9, 0x8b, 0xe6, 0xee,
+  0x5d, 0x01, 0x3e, 0xf5, 0xa2, 0xad, 0x76, 0xc1, 0xb9, 0xea, 0x18, 0x42,
+  0x85, 0xe0, 0xc3, 0x00, 0x94, 0x06, 0x65, 0x06, 0x44, 0x91, 0x05, 0x3f,
+  0xc6, 0x84, 0x08, 0x9c, 0x43, 0xbc, 0x1b, 0x7f, 0x92, 0x09, 0xb1, 0x30,
+  0xa9, 0xa8, 0x89, 0x22, 0x6a, 0x88, 0xd6, 0x34, 0xab, 0x33, 0xb1, 0x25,
+  0xf4, 0xf1, 0x84, 0x39, 0xa1, 0xc3, 0x52, 0x6e, 0x1d, 0x6e, 0xb2, 0x7a,
+  0xe0, 0x39, 0x2b, 0x98, 0x48, 0x31, 0xbb, 0x9e, 0xf8, 0x85, 0x11, 0xbd,
+  0xe1, 0x57, 0x3d, 0x9e, 0x82, 0x6b, 0x33, 0x78, 0xfc, 0x11, 0x05, 0x77,
+  0xb2, 0x62, 0x0d, 0x75, 0x85, 0xd2, 0x0b, 0xb7, 0x92, 0x8b, 0x8c, 0xf2,
+  0x98, 0xee, 0x48, 0x9a, 0x52, 0xa2, 0x72, 0xc2, 0x2d, 0x6c, 0xe6, 0x83,
+  0x4c, 0xc0, 0x7c, 0xa4, 0x22, 0x11, 0xd5, 0x6a, 0xa0, 0xd3, 0x98, 0xad,
+  0xb1, 0xc5, 0x06, 0x7f, 0xca, 0x85, 0x31, 0x76, 0x07, 0xbb, 0x3d, 0xae,
+  0x8f, 0x57, 0xa9, 0xba, 0xa8, 0x36, 0x06, 0xfd, 0x24, 0x15, 0x12, 0x79,
+  0x4e, 0x6c, 0xec, 0x7a, 0x23, 0x2e, 0xe8, 0xbb, 0x75, 0xe8, 0xa3, 0x86,
+  0x9f, 0xdb, 0x99, 0x35, 0xf7, 0xe9, 0x43, 0xa8, 0xa8, 0xef, 0xf4, 0x9f,
+  0xbf, 0x7a, 0xd5, 0xba, 0xd1, 0x6b, 0x8f, 0x26, 0xf3, 0xc5, 0xce, 0x0e,
+  0xe7, 0x60, 0x77, 0x5f, 0x33, 0xbf, 0xe8, 0xbf, 0xc2, 0x8b, 0xed, 0xd7,
+  0xb8, 0xb2, 0xfc, 0xf2, 0xf7, 0xfa, 0xf4, 0x9b, 0xc8, 0xe7, 0xe0, 0x75,
+  0x59, 0xfa, 0xd6, 0x2b, 0xfa, 0x5c, 0xe4, 0x2d, 0x4e, 0x0f, 0xc7, 0x3c,
+  0x96, 0x57, 0x57, 0xe4, 0xef, 0xa2, 0x27, 0x71, 0xf1, 0x99, 0x1d, 0x71,
+  0x9f, 0x56, 0x93, 0x70, 0xb8, 0x3b, 0xbd, 0xfe, 0xee, 0xb2, 0xe1, 0x82,
+  0xe4, 0x13, 0xf0, 0x16, 0x5a, 0x4e, 0x32, 0x27, 0x8d, 0x21, 0xc1, 0xc0,
+  0xde, 0x6e, 0x43, 0xbb, 0xa6, 0x47, 0xbb, 0xaf, 0x5e, 0xf5, 0xa8, 0x67,
+  0x2f, 0x5e, 0xbd, 0x5a, 0x9a, 0xc2, 0xe5, 0x7d, 0xe6, 0xbe, 0x74, 0x4e,
+  0x2a, 0x7a, 0xdd, 0xed, 0x99, 0x9a, 0xec, 0x95, 0xf8, 0x77, 0xe8, 0x37,
+  0xc9, 0x9b, 0xe4, 0xf4, 0xec, 0xf2, 0xc8, 0xf3, 0xdf, 0x38, 0xff, 0xac,
+  0x5f, 0x35, 0x05, 0x01, 0xe1, 0x39, 0xea, 0x34, 0xc0, 0x3e, 0x36, 0xc6,
+  0x56, 0x88, 0x72, 0x00, 0xc8, 0x54, 0x3d, 0x87, 0xbf, 0xeb, 0x7e, 0xee,
+  0xac, 0x40, 0x35, 0x86, 0xeb, 0xbc, 0xf1, 0x79, 0x05, 0x36, 0xcd, 0x62,
+  0x6f, 0xc1, 0x0f, 0x72, 0x97, 0x4e, 0x73, 0x1b, 0xd9, 0xd9, 0xa8, 0x8d,
+  0xa4, 0x69, 0x98, 0x63, 0x90, 0xfe, 0x51, 0xce, 0x37, 0x02, 0x32, 0x91,
+  0x6c, 0x4a, 0xce, 0x03, 0xb9, 0x09, 0xf9, 0x85, 0x3e, 0x9e, 0x94, 0xd3,
+  0x02, 0x83, 0x96, 0xcb, 0x41, 0xa6, 0xf0, 0x2e, 0xfb, 0x1f, 0x8f, 0x04,
+  0x77, 0xe0, 0xf4, 0x02, 0xf2, 0x4c, 0x01, 0xd5, 0xd4, 0x4c, 0xcf, 0x9b,
+  0x86, 0x8d, 0xba, 0x5b, 0x36, 0x9a, 0x6a, 0x2f, 0xc7, 0x01, 0x0f, 0x88,
+  0x28, 0x4c, 0xb2, 0xb9, 0xb2, 0xf5, 0x15, 0xed, 0x76, 0xcc, 0x5e, 0xbe,
+  0xca, 0xaf, 0x17, 0x55, 0x1c, 0x5c, 0x05, 0xe3, 0x5c, 0xf0, 0xbd, 0xca,
+  0x08, 0x9b, 0xde, 0xa7, 0x8a, 0x2b, 0x06, 0x89, 0xaf, 0x1e, 0x6e, 0x35,
+  0x94, 0x15, 0xc7, 0x4b, 0x74, 0xbd, 0x81, 0x5f, 0x8c, 0x90, 0xd7, 0x46,
+  0x8f, 0x21, 0x3f, 0x82, 0x20, 0x4b, 0xe0, 0xfa, 0x93, 0xc2, 0x2d, 0x02,
+  0xa6, 0x56, 0x4f, 0xbb, 0x59, 0x6c, 0x54, 0x68, 0x49, 0x13, 0x99, 0x82,
+  0x6e, 0x14, 0xaf, 0x5c, 0x6c, 0x78, 0x0c, 0x0c, 0xf4, 0x2c, 0x7c, 0x32,
+  0x37, 0xa5, 0xc7, 0xff, 0x1c, 0xa6, 0x59, 0x92, 0xe4, 0xe1, 0xb4, 0x69,
+  0xfc, 0x95, 0x17, 0xc9, 0x16, 0x95, 0xaf, 0xa5, 0x4c, 0xad, 0xc4, 0xf7,
+  0x31, 0x59, 0xcc, 0x88, 0x21, 0x4b, 0x1b, 0xd0, 0x85, 0xd2, 0x4a, 0xf3,
+  0x1a, 0x27, 0x9b, 0x5a, 0x52, 0x55, 0x77, 0xa8, 0xe7, 0x26, 0x61, 0x29,
+  0x45, 0x3b, 0x85, 0x93, 0x5a, 0xb7, 0x06, 0x31, 0x37, 0x00, 0xed, 0x77,
+  0x5e, 0x2d, 0xcb, 0x62, 0x8c, 0x92, 0x48, 0x74, 0x49, 0x52, 0x77, 0xf5,
+  0x42, 0x1e, 0x1e, 0xff, 0xcf, 0xa3, 0xdf, 0x32, 0x04, 0x56, 0xa5, 0xf7,
+  0x16, 0xf0, 0xff, 0x1d, 0x73, 0x2c, 0x49, 0x68, 0xca, 0xe6, 0x96, 0xa6,
+  0x53, 0xb1, 0xe2, 0xa9, 0x84, 0x2c, 0x6e, 0x0f, 0xc4, 0x38, 0xa5, 0xe2,
+  0x99, 0xd9, 0x58, 0xe1, 0xde, 0x26, 0x58, 0xbe, 0xa3, 0xd6, 0x60, 0x9a,
+  0x4f, 0x20, 0xb5, 0xb1, 0x1e, 0x36, 0x54, 0xc2, 0xd5, 0x6b, 0xd9, 0xbe,
+  0x87, 0x5b, 0x18, 0xf5, 0x22, 0x03, 0x86, 0xfe, 0x02, 0xb4, 0x3d, 0xd4,
+  0x2d, 0xd3, 0xdb, 0x47, 0x4a, 0xce, 0xf8, 0xd9, 0x71, 0xa8, 0x52, 0x58,
+  0x65, 0x14, 0x2d, 0xab, 0x92, 0xd7, 0x1f, 0x2e, 0x4e, 0x96, 0x24, 0x3a,
+  0x0c, 0xb1, 0x0a, 0x34, 0x5d, 0xeb, 0x17, 0x19, 0xc8, 0x39, 0xaa, 0xe4,
+  0x3c, 0xbd, 0xce, 0xd6, 0x7d, 0x8e, 0x93, 0x16, 0xcd, 0x91, 0x38, 0x21,
+  0x62, 0x9e, 0x22, 0x9f, 0x54, 0x99, 0xc4, 0xb8, 0x8b, 0x52, 0xfb, 0xd9,
+  0x09, 0x57, 0xd3, 0x54, 0x66, 0x6f, 0x51, 0xa1, 0x76, 0xf2, 0x77, 0xd1,
+  0xca, 0x04, 0x16, 0xac, 0xde, 0xe1, 0xa7, 0xf2, 0x71, 0x55, 0xe9, 0x9c,
+  0x76, 0x51, 0xb2, 0xfe, 0x27, 0xf2, 0xd4, 0xaf, 0x6b, 0x37, 0xfb, 0x59,
+  0x8c, 0x65, 0x98, 0xa7, 0x82, 0xe2, 0xd4, 0xbe, 0x4b, 0xa9, 0xe3, 0xe3,
+  0xe7, 0x60, 0x0b, 0xc7, 0xb9, 0x32, 0xa2, 0x20, 0xab, 0x63, 0x35, 0x39,
+  0x39, 0x65, 0x30, 0x47, 0xea, 0xab, 0xe0, 0x3e, 0xd3, 0xe4, 0x44, 0xfa,
+  0xb7, 0x2f, 0x41, 0x19, 0xd6, 0x86, 0xb4, 0x6b, 0x2d, 0xa0, 0x52, 0x6c,
+  0xb0, 0xe9, 0x94, 0xe8, 0xce, 0xad, 0x2b, 0x8b, 0xc6, 0x38, 0x29, 0x89,
+  0x21, 0x1b, 0x65, 0x35, 0x0b, 0xeb, 0x77, 0x6e, 0xad, 0xec, 0x6f, 0xce,
+  0xc7, 0xe3, 0x02, 0x45, 0x07, 0x5a, 0x47, 0xbd, 0x6f, 0x76, 0x47, 0x21,
+  0xd9, 0x6b, 0xde, 0xb2, 0x7a, 0x7b, 0xef, 0x3f, 0x7b, 0x51, 0x5a, 0xe7,
+  0x25, 0x54, 0x74, 0x5e, 0x77, 0x1b, 0x60, 0x9c, 0xb1, 0x84, 0x67, 0xbd,
+  0x0e, 0xb1, 0xb4, 0x4b, 0x75, 0x91, 0xeb, 0x32, 0xea, 0x5b, 0xec, 0x7b,
+  0xa9, 0x0e, 0xc9, 0x21, 0x67, 0x5d, 0xf4, 0xdf, 0xe6, 0xe6, 0x1e, 0xa9,
+  0x99, 0x38, 0x80, 0x1d, 0x03, 0x4c, 0x55, 0xed, 0x0e, 0x63, 0x58, 0x3b,
+  0x44, 0xe3, 0x29, 0x40, 0xd2, 0xd9, 0x57, 0x6c, 0x70, 0xc7, 0xec, 0x89,
+  0x65, 0x1c, 0x53, 0x72, 0x8b, 0x3b, 0x8d, 0x21, 0x75, 0x2e, 0x0b, 0xa9,
+  0xf2, 0xc9, 0xc6, 0xb5, 0xa6, 0x62, 0x10, 0x0e, 0x27, 0x32, 0x3f, 0x9a,
+  0xce, 0xcf, 0x50, 0x1e, 0xd4, 0x29, 0x6d, 0xb1, 0xec, 0x07, 0x06, 0xa7,
+  0xa5, 0xeb, 0x61, 0xf4, 0x49, 0xd7, 0x0f, 0x6c, 0x3a, 0x65, 0x89, 0xce,
+  0x39, 0xca, 0xc2, 0x24, 0x34, 0x9c, 0x56, 0x32, 0x36, 0xcd, 0x0e, 0x3a,
+  0x43, 0x50, 0x8e, 0xf6, 0x25, 0x28, 0xc3, 0xd6, 0xc0, 0x80, 0x78, 0xf4,
+  0xb7, 0x1e, 0x45, 0x11, 0x8a, 0x52, 0xf2, 0xb2, 0x63, 0x31, 0x7d, 0xc0,
+  0x89, 0xe8, 0x11, 0xff, 0x2e, 0x64, 0x04, 0x49, 0xf2, 0x87, 0xbe, 0xe3,
+  0xc9, 0xde, 0x7c, 0xc8, 0x8c, 0x96, 0xed, 0x50, 0x28, 0x30, 0xa6, 0xd6,
+  0x22, 0xce, 0x1e, 0x2e, 0xff, 0x54, 0x97, 0x9d, 0x22, 0xe1, 0x0f, 0x7e,
+  0x0c, 0x92, 0x27, 0xdd, 0x68, 0x02, 0x44, 0x32, 0xbb, 0x28, 0xb2, 0x4f,
+  0x44, 0x7c, 0xb8, 0xbc, 0xb9, 0x50, 0xd1, 0xfe, 0xee, 0xe0, 0xe2, 0xf4,
+  0xf8, 0xf4, 0xab, 0x7d, 0xca, 0x10, 0xcb, 0xaa, 0x31, 0xd5, 0x2a, 0x4c,
+  0xfe, 0xba, 0x98, 0xe4, 0x63, 0x96, 0x15, 0x52, 0x03, 0xae, 0x45, 0x3c,
+  0x9c, 0x89, 0x9b, 0x75, 0xfa, 0x10, 0xca, 0x77, 0x01, 0xa2, 0x12, 0x6d,
+  0x72, 0x55, 0x5e, 0x2f, 0xec, 0xd4, 0x8f, 0xa1, 0x8e, 0x20, 0x58, 0x80,
+  0x40, 0x2a, 0xaa, 0xd2, 0x63, 0xd3, 0x12, 0xaf, 0x84, 0x51, 0x16, 0xde,
+  0x9e, 0x9c, 0x24, 0x21, 0xe3, 0x1c, 0x0a, 0x28, 0xb6, 0x0a, 0xd7, 0x73,
+  0x43, 0x66, 0xfb, 0xd7, 0xf9, 0x68, 0x0a, 0x9b, 0x8c, 0x14, 0x00, 0x2e,
+  0x4c, 0xe3, 0xc9, 0x3d, 0x63, 0xbe, 0x9a, 0xae, 0x74, 0x17, 0x19, 0x18,
+  0x59, 0xa0, 0x15, 0xb1, 0xc2, 0x79, 0x35, 0x81, 0x3d, 0x64, 0xc4, 0x64,
+  0x79, 0xd5, 0x90, 0x8a, 0xd4, 0xba, 0x4d, 0xdb, 0x8c, 0xef, 0xab, 0x22,
+  0x09, 0x37, 0x6c, 0xe9, 0xf8, 0x90, 0x08, 0x89, 0x5d, 0x82, 0xca, 0xc9,
+  0xec, 0x47, 0xd6, 0x0d, 0x51, 0x29, 0x20, 0x1a, 0x46, 0x9b, 0x64, 0xa9,
+  0x2d, 0x80, 0x58, 0x93, 0xbc, 0x0c, 0x05, 0xc6, 0x7d, 0x56, 0x65, 0xae,
+  0x68, 0x39, 0xd2, 0xc3, 0x8c, 0xb8, 0x1b, 0x24, 0xc3, 0xd2, 0x3c, 0x1f,
+  0x6a, 0x59, 0xb6, 0xa8, 0x4e, 0xab, 0x3e, 0x27, 0xfa, 0xe3, 0x80, 0x5e,
+  0xa8, 0x37, 0x80, 0xe8, 0x5c, 0x7b, 0xbc, 0x91, 0x82, 0x7e, 0xb4, 0xff,
+  0x47, 0x99, 0x55, 0x2a, 0xe8, 0x0b, 0x88, 0x00, 0xd1, 0x0e, 0x59, 0xef,
+  0x1b, 0x81, 0xba, 0x4e, 0x33, 0x8b, 0x32, 0x83, 0x5e, 0x4b, 0x8f, 0x14,
+  0xcb, 0xf2, 0x61, 0xd6, 0xdd, 0x01, 0x47, 0x4b, 0x90, 0x78, 0xd4, 0xfe,
+  0xa9, 0xd8, 0x9e, 0x9e, 0xff, 0x54, 0x2a, 0x41, 0xd8, 0xb0, 0x2a, 0x93,
+  0xa0, 0x67, 0xa4, 0x65, 0x06, 0xa1, 0xf2, 0x33, 0x57, 0xdf, 0x87, 0xc8,
+  0x23, 0xbc, 0x1c, 0x37, 0xff, 0x65, 0xb9, 0x70, 0x7a, 0xce, 0xc1, 0x90,
+  0x23, 0x69, 0xa5, 0x09, 0xa2, 0x52, 0x57, 0x83, 0xad, 0x28, 0xd0, 0x87,
+  0xfb, 0x20, 0x77, 0x52, 0x6d, 0xf4, 0xeb, 0xc9, 0xa3, 0x82, 0x4f, 0xab,
+  0xa8, 0x74, 0x6f, 0x69, 0x2c, 0xa8, 0xf5, 0x2c, 0x69, 0x53, 0x69, 0xe2,
+  0x15, 0xbf, 0xf6, 0x83, 0x9a, 0x12, 0x2b, 0x45, 0x4a, 0x61, 0xa4, 0x39,
+  0x49, 0xe8, 0x90, 0x98, 0xd5, 0x52, 0x21, 0x2c, 0xf1, 0x9b, 0xbc, 0xb8,
+  0x2b, 0xf1, 0x1b, 0x89, 0x39, 0x05, 0x09, 0xaf, 0x3e, 0x75, 0x54, 0x6c,
+  0x22, 0xfc, 0x59, 0x55, 0x27, 0x8d, 0xa2, 0xe0, 0xcd, 0x58, 0x98, 0x79,
+  0xbd, 0x4e, 0x1c, 0xbf, 0xba, 0x40, 0x0f, 0x22, 0x57, 0x23, 0x1f, 0x26,
+  0xda, 0xbc, 0x3d, 0x5b, 0x33, 0xd2, 0xbc, 0x38, 0xa5, 0x9a, 0xd6, 0x1e,
+  0xe3, 0xba, 0x5e, 0x38, 0x72, 0xdf, 0xe4, 0xd6, 0xff, 0xb3, 0xfc, 0x26,
+  0x19, 0xb4, 0x2b, 0x52, 0xb5, 0x6c, 0x58, 0x8a, 0x34, 0xe3, 0x20, 0x49,
+  0x3a, 0x4c, 0x59, 0x0a, 0xf7, 0xe7, 0x32, 0x61, 0x9b, 0x40, 0xa9, 0x41,
+  0x32, 0xeb, 0x12, 0x0d, 0xa2, 0x5d, 0x8a, 0x48, 0xb2, 0x15, 0xba, 0x67,
+  0xcf, 0xa3, 0x08, 0x6a, 0xd1, 0x73, 0xb5, 0xef, 0x36, 0xee, 0x8f, 0xbd,
+  0x9c, 0x13, 0x5b, 0xbc, 0x22, 0x06, 0x73, 0xe0, 0xab, 0x3b, 0x3e, 0x3d,
+  0x02, 0xf5, 0xf4, 0x27, 0x25, 0x7a, 0xd9, 0x31, 0xf8, 0xd3, 0xf1, 0x38,
+  0x62, 0xd7, 0xc0, 0x74, 0x2a, 0xda, 0x61, 0x0d, 0xf4, 0x34, 0x6f, 0x20,
+  0x40, 0xfe, 0xb0, 0xb7, 0xb3, 0x4c, 0xc8, 0x53, 0x43, 0x5a, 0x42, 0x80,
+  0x4e, 0x63, 0x6d, 0x6d, 0x30, 0x5c, 0x83, 0x2e, 0x63, 0x94, 0xee, 0x90,
+  0xc5, 0x9c, 0x7c, 0x75, 0x7d, 0x94, 0xa0, 0xaf, 0x97, 0xcd, 0xff, 0xe0,
+  0x5f, 0x51, 0xdb, 0xc6, 0xc9, 0xaf, 0x0b, 0x6f, 0x8d, 0xa9, 0xa1, 0x18,
+  0xe2, 0x4d, 0x65, 0x89, 0xfa, 0x4a, 0x3c, 0xb5, 0xdd, 0xe9, 0x0c, 0xb0,
+  0xed, 0x51, 0xc4, 0x44, 0x0e, 0x27, 0xb5, 0x16, 0x9a, 0xb0, 0xe9, 0x6c,
+  0xee, 0xca, 0xd2, 0xe8, 0xf1, 0x12, 0x64, 0x8e, 0x9e, 0x02, 0x05, 0xb5,
+  0x58, 0xe0, 0x2e, 0x7f, 0x31, 0xdc, 0xb4, 0x9e, 0x28, 0x65, 0x93, 0x3c,
+  0x15, 0x04, 0x29, 0xa6, 0x84, 0xbe, 0xe5, 0x8d, 0xf4, 0x7b, 0x1e, 0x29,
+  0x03, 0xd4, 0x5e, 0x8b, 0x75, 0xbb, 0xcc, 0x1e, 0xf3, 0xd4, 0xc6, 0xb1,
+  0xb9, 0x2f, 0xcc, 0x89, 0xd6, 0x37, 0x85, 0x03, 0x44, 0xe4, 0x40, 0x27,
+  0xc3, 0x2f, 0xd0, 0xcf, 0xe8, 0x88, 0xb7, 0x31, 0x73, 0x36, 0x7a, 0x7c,
+  0xd9, 0x42, 0x74, 0x76, 0x9a, 0x8f, 0x9f, 0x79, 0x39, 0x6b, 0x2d, 0x34,
+  0xa3, 0xbc, 0xe0, 0x8a, 0x36, 0x8b, 0xd5, 0xb6, 0xc9, 0xa7, 0x54, 0xaf,
+  0xf6, 0x3a, 0x82, 0x5e, 0xfb, 0xea, 0xe8, 0x92, 0x5c, 0x03, 0x17, 0x50,
+  0xbe, 0x6d, 0x07, 0xe1, 0x60, 0x91, 0xab, 0x36, 0xb5, 0xea, 0x80, 0x50,
+  0x07, 0x72, 0xb1, 0xd1, 0x4f, 0xf3, 0x69, 0x5a, 0x44, 0x93, 0x7e, 0x8c,
+  0x0e, 0x45, 0xf5, 0x53, 0x4b, 0x47, 0x12, 0xa6, 0x16, 0xbb, 0x47, 0x52,
+  0xcd, 0x39, 0xfc, 0xe7, 0x1f, 0x2e, 0xc5, 0x3b, 0xf2, 0xf6, 0xe8, 0xe4,
+  0xe8, 0xf2, 0xa8, 0x6b, 0x2d, 0x8e, 0x98, 0xf4, 0x08, 0xd9, 0x1e, 0x4d,
+  0x36, 0xbe, 0x29, 0xca, 0x69, 0x79, 0x9d, 0x4b, 0x09, 0xa9, 0xe4, 0xbb,
+  0x6c, 0xf4, 0xf6, 0xe0, 0x5b, 0xba, 0xc1, 0xc8, 0xd3, 0x71, 0x7e, 0x71,
+  0x76, 0xfe, 0xee, 0xf8, 0xf4, 0x6d, 0x2f, 0x39, 0x3c, 0x3b, 0xff, 0x4b,
+  0x2f, 0x79, 0x7f, 0xf6, 0xed, 0x51, 0x04, 0xe5, 0x4b, 0xac, 0xa1, 0x91,
+  0x12, 0xb6, 0x52, 0xc8, 0xc5, 0x19, 0x7b, 0x05, 0x3b, 0xca, 0x3d, 0xb1,
+  0x75, 0x00, 0xb4, 0x02, 0xea, 0x31, 0x63, 0xf7, 0x9a, 0xa9, 0x33, 0xfb,
+  0xf5, 0xeb, 0xa3, 0x83, 0xb7, 0xbd, 0x80, 0x32, 0x92, 0x98, 0xa7, 0xcd,
+  0xc7, 0x68, 0x7c, 0x76, 0xd0, 0x20, 0x1a, 0x64, 0x7d, 0x17, 0x77, 0x12,
+  0x87, 0x56, 0x18, 0x9e, 0x69, 0x64, 0x07, 0xca, 0x6e, 0x4c, 0x96, 0x45,
+  0xec, 0x85, 0xa2, 0x74, 0x69, 0xd1, 0x36, 0x2f, 0xf3, 0x80, 0xd4, 0x03,
+  0x55, 0xec, 0xa4, 0xc4, 0x26, 0xe7, 0xf6, 0x27, 0x00, 0x97, 0xcb, 0xde,
+  0xb0, 0x45, 0x6e, 0x22, 0x5c, 0x09, 0xd2, 0x65, 0xe6, 0xdc, 0xb5, 0x7c,
+  0x96, 0xf0, 0x7f, 0xb0, 0xcf, 0x2b, 0x95, 0x92, 0x37, 0xa0, 0x07, 0x27,
+  0xd8, 0xc9, 0x90, 0x99, 0x15, 0x85, 0x50, 0x2c, 0x0e, 0xa7, 0x57, 0xb5,
+  0x4e, 0xf8, 0x2b, 0x25, 0xcf, 0x9f, 0xe6, 0xcf, 0x7d, 0x50, 0x39, 0xdc,
+  0xbf, 0xe7, 0x89, 0x8d, 0xe2, 0x7c, 0xb9, 0x08, 0xc5, 0x95, 0xd9, 0x9a,
+  0x19, 0x03, 0x7a, 0x78, 0xa9, 0xac, 0x39, 0x9a, 0xf4, 0x8f, 0xd5, 0x18,
+  0x5e, 0x75, 0xad, 0x5b, 0x26, 0x1f, 0x71, 0x08, 0x30, 0xbb, 0x80, 0xfa,
+  0x4a, 0xda, 0xa2, 0xc2, 0xb7, 0xcc, 0x69, 0xa0, 0x11, 0x2d, 0x53, 0x97,
+  0x59, 0x4a, 0xf6, 0xea, 0xa0, 0xbd, 0x59, 0xe1, 0x9c, 0xb7, 0xc0, 0x87,
+  0x12, 0x16, 0x66, 0x16, 0xf6, 0x27, 0x23, 0x4e, 0x0a, 0xf1, 0xc5, 0x25,
+  0x14, 0xf4, 0xe9, 0xb3, 0x05, 0xe7, 0xa3, 0x52, 0xd5, 0x2e, 0x14, 0x8d,
+  0x48, 0xfa, 0x10, 0xaf, 0x34, 0xda, 0x2a, 0xd4, 0x67, 0x4f, 0xfa, 0xb3,
+  0x9d, 0x4f, 0xce, 0xbb, 0x4b, 0x77, 0x58, 0x9d, 0xf4, 0x85, 0xbf, 0x71,
+  0x66, 0x04, 0x6f, 0xe8, 0xd7, 0xd8, 0x7c, 0xb7, 0x44, 0x38, 0xfa, 0xfe,
+  0x42, 0x59, 0x0c, 0x4f, 0x4c, 0x9d, 0x1c, 0x9b, 0x23, 0x11, 0x49, 0x1b,
+  0x9f, 0x94, 0x28, 0x47, 0x87, 0x50, 0x38, 0x6e, 0x73, 0xcc, 0xbe, 0x69,
+  0x2b, 0xfc, 0x30, 0xd5, 0x67, 0x8c, 0x7e, 0x19, 0x85, 0x1b, 0x1f, 0xf9,
+  0x74, 0xb0, 0x66, 0x17, 0x47, 0x97, 0x17, 0x83, 0x64, 0xd3, 0xe7, 0x07,
+  0x7b, 0x39, 0xd8, 0x09, 0xc3, 0x05, 0x54, 0x1a, 0x32, 0xfa, 0x55, 0xd4,
+  0x8c, 0x5c, 0xf2, 0x55, 0xc8, 0x07, 0xfa, 0x6e, 0x88, 0x73, 0xf5, 0x58,
+  0x10, 0x76, 0x62, 0xdf, 0xf3, 0x0b, 0x50, 0xb6, 0xbe, 0x47, 0xbf, 0x58,
+  0x31, 0xca, 0xaf, 0x8f, 0x4e, 0x22, 0xc4, 0xe7, 0xdf, 0x5e, 0xbc, 0xfb,
+  0x4b, 0x7b, 0x94, 0xcf, 0x9e, 0x47, 0xbe, 0xfa, 0x6b, 0xba, 0x72, 0xb3,
+  0xba, 0x9c, 0xde, 0x65, 0x9c, 0xcc, 0x80, 0x5c, 0x86, 0x7d, 0x73, 0x0d,
+  0x10, 0x16, 0xfa, 0x8b, 0x90, 0xd7, 0x12, 0xce, 0x00, 0x3b, 0x42, 0x79,
+  0x4e, 0x4c, 0x3d, 0x67, 0xeb, 0x71, 0xc6, 0x08, 0xdf, 0x13, 0x9c, 0xdc,
+  0x30, 0x4f, 0xf3, 0xc0, 0xef, 0xf9, 0x81, 0x45, 0x07, 0x8d, 0xa3, 0xe7,
+  0x79, 0x26, 0x55, 0x6d, 0xe0, 0x03, 0xa3, 0xa7, 0x74, 0xb3, 0xde, 0x92,
+  0xca, 0xdd, 0xcb, 0xa2, 0xc9, 0xda, 0x19, 0x24, 0xe6, 0x50, 0xfd, 0x5c,
+  0x51, 0xab, 0xdd, 0x25, 0x5b, 0xe8, 0xa5, 0x21, 0x43, 0x9e, 0xb8, 0x97,
+  0xc2, 0x7b, 0x76, 0x24, 0x97, 0xf2, 0x00, 0xce, 0x30, 0xc4, 0x70, 0xa1,
+  0xe9, 0xe3, 0x42, 0x41, 0x05, 0xb2, 0xac, 0x19, 0x6f, 0x73, 0x7d, 0x71,
+  0x9f, 0x1f, 0x7e, 0x89, 0x9b, 0xa5, 0x2c, 0x5a, 0x10, 0x3b, 0xba, 0x1c,
+  0xd8, 0xcb, 0xe9, 0x27, 0xbb, 0x39, 0xce, 0x7a, 0xf6, 0x5a, 0x48, 0x46,
+  0x08, 0x75, 0x23, 0x12, 0xee, 0x6d, 0xd3, 0xc4, 0x7b, 0x09, 0x78, 0x5a,
+  0xc3, 0x3b, 0x90, 0x82, 0x2e, 0x49, 0x2b, 0x62, 0xc4, 0x43, 0x28, 0xeb,
+  0x06, 0xb2, 0x04, 0x95, 0xed, 0x9b, 0x40, 0xdd, 0x41, 0xfe, 0xc2, 0xc7,
+  0x1c, 0x8a, 0xa4, 0xce, 0xa1, 0x07, 0xcc, 0x36, 0xa9, 0x26, 0xe3, 0x1c,
+  0x75, 0x87, 0x97, 0x24, 0x1a, 0x71, 0xa4, 0x5f, 0x5b, 0x26, 0xb9, 0xde,
+  0x66, 0x09, 0x6e, 0x8f, 0x46, 0x9d, 0xbd, 0xfd, 0xe7, 0xa1, 0xc3, 0x3a,
+  0x9f, 0xdf, 0x3d, 0x87, 0x87, 0xe0, 0x65, 0x8f, 0xff, 0xf5, 0x92, 0xb9,
+  0x73, 0x9a, 0xb6, 0xfb, 0x9a, 0x33, 0x1f, 0xd9, 0x24, 0x38, 0x3e, 0xd7,
+  0xc4, 0xc6, 0xc1, 0x53, 0x71, 0x9c, 0x4e, 0x8b, 0x27, 0x0f, 0xc1, 0x04,
+  0x71, 0x09, 0xf3, 0x23, 0xd9, 0xfb, 0x0c, 0x39, 0x09, 0xb7, 0x95, 0x6c,
+  0xbd, 0x95, 0xec, 0xb5, 0xbb, 0x83, 0x67, 0xed, 0x03, 0xda, 0x54, 0x0f,
+  0xc8, 0x4b, 0x30, 0x56, 0x5e, 0x64, 0x2f, 0x1c, 0x17, 0x5d, 0xd3, 0x4d,
+  0x36, 0x3d, 0x05, 0x59, 0xf8, 0xc7, 0xe6, 0x80, 0x29, 0x10, 0x21, 0x39,
+  0xa2, 0xe4, 0x89, 0x8b, 0xa3, 0x77, 0x1f, 0x86, 0x47, 0x6f, 0xc1, 0xba,
+  0xd3, 0xd5, 0x08, 0x29, 0xfc, 0x92, 0xd3, 0x72, 0xb1, 0x93, 0xb3, 0x29,
+  0x59, 0x55, 0x90, 0x8e, 0xb4, 0x4b, 0xbb, 0x78, 0x45, 0x8d, 0x9b, 0xd2,
+  0xa8, 0xf3, 0x21, 0xd8, 0x9d, 0x2f, 0x67, 0x79, 0xf7, 0x67, 0xa4, 0xe0,
+  0xf3, 0xa8, 0x27, 0x19, 0x91, 0xd1, 0xbf, 0xe6, 0xa0, 0x7a, 0x20, 0x90,
+  0x7c, 0xe2, 0xfa, 0x7a, 0x9a, 0x65, 0x73, 0xa5, 0xe7, 0x49, 0x67, 0xe5,
+  0xa2, 0x60, 0x2f, 0x8b, 0x59, 0x21, 0x75, 0x2c, 0xc0, 0x91, 0x85, 0x76,
+  0xf9, 0x46, 0x8e, 0x8e, 0x9c, 0xec, 0x68, 0xb2, 0x1f, 0x09, 0xc9, 0xaa,
+  0xd9, 0xd0, 0x24, 0xdc, 0xdc, 0xb4, 0xc8, 0xbc, 0x24, 0x9b, 0x14, 0xc5,
+  0xf0, 0xf5, 0xb6, 0x25, 0xa5, 0x15, 0x50, 0x8d, 0xcb, 0xe8, 0xbc, 0xdc,
+  0x97, 0x74, 0x7a, 0x5d, 0x1a, 0x63, 0xf7, 0x66, 0x66, 0xd3, 0xb0, 0x2a,
+  0x80, 0x28, 0xea, 0xad, 0x6e, 0xd1, 0x9c, 0x40, 0x82, 0x4c, 0x1f, 0x38,
+  0xa0, 0x96, 0x71, 0x7a, 0x2a, 0xed, 0x7e, 0x9e, 0x26, 0xd8, 0x5d, 0x14,
+  0x6a, 0x60, 0x81, 0x35, 0x94, 0x84, 0x52, 0xcc, 0x05, 0xcf, 0x60, 0xb8,
+  0x11, 0xff, 0x9e, 0x55, 0x65, 0xd7, 0x32, 0x54, 0x7d, 0x4c, 0x7b, 0xee,
+  0x77, 0xfc, 0x5f, 0x59, 0xbf, 0x60, 0x77, 0x2f, 0x76, 0x02, 0x66, 0xe9,
+  0x27, 0x58, 0xbb, 0x4b, 0xb7, 0xc3, 0x25, 0x5b, 0xa7, 0xc0, 0x1c, 0xd1,
+  0x83, 0x92, 0x4c, 0x47, 0x44, 0xe1, 0x4d, 0xe2, 0x63, 0xee, 0x19, 0xeb,
+  0x60, 0x97, 0x5b, 0x0c, 0xe2, 0x00, 0x54, 0xc2, 0xeb, 0x62, 0x7b, 0x0d,
+  0x97, 0x43, 0x4a, 0xc3, 0x24, 0xdd, 0x7c, 0x93, 0x59, 0xda, 0xf1, 0xb9,
+  0x2d, 0xfa, 0xf1, 0xb4, 0xa4, 0x80, 0x07, 0x1b, 0xf4, 0xf8, 0x7a, 0x58,
+  0x5c, 0x91, 0x34, 0xbf, 0x8a, 0x76, 0xa1, 0x5a, 0x2a, 0xec, 0x5e, 0x02,
+  0xdd, 0x34, 0x32, 0x54, 0xf2, 0xb1, 0x38, 0x4f, 0xb5, 0x1e, 0x01, 0x46,
+  0xc1, 0x6f, 0x06, 0x82, 0x44, 0xdb, 0xc9, 0xb8, 0x81, 0x5e, 0x9b, 0x5d,
+  0x4d, 0x3a, 0x8d, 0x04, 0x30, 0x86, 0x88, 0xdf, 0xc0, 0x5b, 0x23, 0xf9,
+  0xbf, 0x11, 0xa3, 0x97, 0xad, 0x07, 0x72, 0x5a, 0x20, 0xa1, 0x82, 0xc6,
+  0x03, 0xf3, 0x21, 0x2d, 0xfc, 0xce, 0x62, 0x05, 0x4c, 0x23, 0x79, 0x39,
+  0x41, 0x2a, 0x06, 0x73, 0x65, 0xa7, 0x61, 0xea, 0x38, 0x11, 0x28, 0x48,
+  0x6f, 0x36, 0xc8, 0xe9, 0xf1, 0x29, 0x9f, 0x2d, 0x66, 0x78, 0xbd, 0x27,
+  0x8a, 0xf5, 0x0c, 0x8a, 0xb5, 0x2e, 0xeb, 0x00, 0x31, 0xb3, 0x86, 0x8f,
+  0x70, 0x77, 0xef, 0xdb, 0x08, 0x16, 0xb6, 0xad, 0xd4, 0x05, 0xa5, 0xb7,
+  0x98, 0x65, 0x17, 0x0b, 0xf5, 0x7f, 0x7c, 0x87, 0x26, 0xaf, 0xcd, 0x8d,
+  0xfd, 0x45, 0x24, 0x63, 0x22, 0x26, 0x3e, 0xf2, 0x5a, 0xb0, 0x93, 0xd9,
+  0xc4, 0xb3, 0x0f, 0x78, 0xc7, 0xd1, 0x4d, 0xcb, 0xcb, 0xb4, 0x54, 0x46,
+  0xb9, 0x0a, 0x13, 0xfc, 0x69, 0x0c, 0xd4, 0xf9, 0x91, 0xf8, 0x62, 0x92,
+  0x2d, 0x4f, 0x2b, 0x27, 0xe4, 0xc3, 0x01, 0x73, 0xbb, 0x88, 0x8a, 0x96,
+  0xc2, 0x61, 0x3e, 0xbf, 0x23, 0x41, 0x76, 0x31, 0x5a, 0xc8, 0xfd, 0x26,
+  0xb3, 0xac, 0x3e, 0x8a, 0x36, 0x5d, 0x70, 0x5b, 0xe4, 0x91, 0x28, 0xeb,
+  0xdc, 0x22, 0x9c, 0x1a, 0xce, 0x9c, 0x20, 0xfb, 0x66, 0x42, 0x64, 0xed,
+  0x7a, 0x89, 0xe6, 0x3b, 0x24, 0xc9, 0xf3, 0x4f, 0x9f, 0xc2, 0xcb, 0xd2,
+  0xd9, 0x39, 0x5c, 0x1b, 0x94, 0x8d, 0xa0, 0x17, 0x9f, 0x3a, 0x46, 0xd0,
+  0x20, 0x5a, 0xc1, 0x53, 0xae, 0x06, 0x92, 0x8e, 0xa3, 0x92, 0x5d, 0xf9,
+  0x3c, 0x5b, 0x69, 0x64, 0x1e, 0x59, 0x28, 0xdc, 0xa7, 0x79, 0x13, 0x49,
+  0x05, 0x11, 0x54, 0x97, 0x24, 0xcb, 0xba, 0x60, 0x8b, 0xf9, 0xb3, 0xb9,
+  0x31, 0x4a, 0x1d, 0xcd, 0xa1, 0x4e, 0x90, 0x36, 0x68, 0xe6, 0x6d, 0xc1,
+  0x4e, 0xdc, 0x60, 0x9e, 0xe8, 0x2b, 0x3c, 0xed, 0x74, 0x9a, 0xcc, 0x55,
+  0x95, 0xa3, 0x58, 0x2c, 0x9f, 0xe9, 0x3a, 0xd9, 0x35, 0xd3, 0x9f, 0x17,
+  0x0b, 0x82, 0x76, 0xf1, 0x64, 0xe3, 0x9b, 0x96, 0x4d, 0x23, 0x32, 0xed,
+  0x53, 0x80, 0x06, 0x35, 0xad, 0x97, 0x0e, 0x5e, 0xed, 0x05, 0x19, 0xf8,
+  0x78, 0xa0, 0x28, 0x81, 0x35, 0xd8, 0xfd, 0x0b, 0x36, 0xa2, 0x0d, 0xda,
+  0xf2, 0x00, 0x7a, 0xa5, 0x66, 0x9f, 0xcc, 0x6c, 0x33, 0xeb, 0xb5, 0xbb,
+  0xd1, 0xdc, 0x6d, 0x36, 0xf0, 0x18, 0x68, 0x23, 0x08, 0x82, 0x96, 0xfc,
+  0xb6, 0x0c, 0xfb, 0x10, 0x71, 0x65, 0x23, 0x67, 0x91, 0xb3, 0x4a, 0x25,
+  0xe8, 0xf4, 0xdf, 0xe0, 0x4c, 0xd7, 0x69, 0x3d, 0xed, 0xe7, 0x5d, 0x31,
+  0x7e, 0x04, 0x5c, 0x92, 0xc5, 0x14, 0xd8, 0x5d, 0x68, 0x9a, 0x18, 0x1e,
+  0x0c, 0x4f, 0x3a, 0x7c, 0x36, 0x2b, 0x49, 0xf5, 0x76, 0xdb, 0x1a, 0xcf,
+  0x13, 0x79, 0xb3, 0xd4, 0x91, 0xdc, 0xca, 0x15, 0x5d, 0x45, 0x99, 0xc5,
+  0x4c, 0x6c, 0xcb, 0xca, 0x64, 0xd4, 0xfb, 0xf8, 0xb8, 0xe3, 0x17, 0x0b,
+  0xba, 0xc2, 0xb4, 0x2c, 0x40, 0x7f, 0x73, 0x3d, 0x93, 0x24, 0xc6, 0xee,
+  0x81, 0x67, 0xb6, 0x05, 0x4a, 0xf0, 0x58, 0x3c, 0x8e, 0xa9, 0xb8, 0x74,
+  0xe4, 0x43, 0x52, 0xd3, 0xa9, 0x28, 0x4f, 0x3f, 0xc6, 0x42, 0x62, 0xbd,
+  0xd9, 0xa2, 0x4a, 0xd6, 0x78, 0x9a, 0x60, 0x05, 0x4d, 0x8f, 0x2f, 0x2c,
+  0x2b, 0xa8, 0xa8, 0x0d, 0x17, 0x9d, 0x27, 0xaa, 0xc7, 0x90, 0x18, 0x92,
+  0x03, 0x36, 0x57, 0x5c, 0x52, 0x45, 0x7b, 0xe0, 0xb5, 0xd9, 0x15, 0x90,
+  0xf9, 0x54, 0x60, 0x49, 0x7f, 0x5b, 0xe4, 0xe6, 0x76, 0xa2, 0x04, 0x8e,
+  0x41, 0xf2, 0x96, 0xe1, 0x25, 0x52, 0x97, 0x84, 0xab, 0x14, 0xa1, 0x92,
+  0x11, 0x83, 0x55, 0x45, 0x41, 0x34, 0x1d, 0x08, 0x7c, 0xe9, 0xa6, 0x43,
+  0x74, 0x12, 0xa1, 0xba, 0x9a, 0x53, 0x75, 0x48, 0xdd, 0x9e, 0x99, 0x93,
+  0x0e, 0xd3, 0x8c, 0x0b, 0x52, 0x37, 0x40, 0x15, 0x48, 0xf0, 0x51, 0x51,
+  0xc1, 0x00, 0xbe, 0xd5, 0xb7, 0xa1, 0x19, 0xd8, 0x6b, 0xb1, 0xd1, 0xc3,
+  0x2c, 0x12, 0x1b, 0xa0, 0xa1, 0x62, 0x06, 0x45, 0x3a, 0xdd, 0xe6, 0x72,
+  0xe4, 0x46, 0xcc, 0x4c, 0xa9, 0x9f, 0xd4, 0x92, 0x56, 0xde, 0xe8, 0xce,
+  0x4d, 0x13, 0xe3, 0xba, 0xe0, 0x15, 0x6a, 0x2d, 0x11, 0x7b, 0x23, 0xad,
+  0xd1, 0x21, 0x29, 0x10, 0xb9, 0x5f, 0x9e, 0x5d, 0xc4, 0x47, 0xc8, 0x69,
+  0xe2, 0xcf, 0x16, 0x99, 0x87, 0x3c, 0x5e, 0xcc, 0x65, 0x6b, 0xdd, 0x56,
+  0xa5, 0x5e, 0xdf, 0xd1, 0x7a, 0x99, 0x8d, 0x36, 0x2a, 0x6b, 0x25, 0xc4,
+  0x33, 0x83, 0x34, 0xaf, 0xb7, 0xce, 0x13, 0x18, 0x84, 0x7e, 0x26, 0x49,
+  0x03, 0x17, 0x41, 0xf3, 0x28, 0x1a, 0x56, 0xd5, 0x3e, 0x0b, 0x2b, 0xc7,
+  0xfd, 0x6c, 0x7e, 0x06, 0x9f, 0x08, 0xcf, 0x51, 0xd0, 0x90, 0x21, 0x69,
+  0x51, 0x54, 0x02, 0x8c, 0x68, 0x51, 0x15, 0xb0, 0x9e, 0xf9, 0x10, 0xa9,
+  0x14, 0x62, 0x36, 0xd3, 0x42, 0x72, 0xae, 0xc7, 0x53, 0x23, 0xec, 0x23,
+  0xb6, 0xa6, 0x16, 0x8a, 0x21, 0x16, 0xa3, 0x5e, 0x57, 0x9c, 0xd6, 0x0b,
+  0x52, 0x3d, 0xa6, 0x0b, 0xfa, 0x32, 0x13, 0x00, 0x59, 0x02, 0x1a, 0x4d,
+  0x15, 0x8d, 0x92, 0x36, 0x59, 0x06, 0x19, 0x3a, 0xa3, 0x1e, 0x7f, 0xd5,
+  0x42, 0x6b, 0x4a, 0x29, 0xb5, 0x53, 0x97, 0xe2, 0x63, 0xb0, 0xa4, 0x77,
+  0x64, 0x10, 0xf6, 0xfc, 0x3a, 0x89, 0xbe, 0xf5, 0x4d, 0xc0, 0x78, 0xed,
+  0x4e, 0xab, 0x08, 0x62, 0x1a, 0x23, 0xe5, 0xb1, 0xe1, 0xa5, 0x56, 0xcf,
+  0xf4, 0xee, 0xd0, 0xdc, 0x49, 0x20, 0x55, 0x99, 0xc4, 0x49, 0xd7, 0xdf,
+  0xd8, 0xd6, 0xdd, 0xc1, 0x76, 0x0b, 0x24, 0xb2, 0xda, 0x60, 0xab, 0x1c,
+  0xca, 0xd9, 0x6b, 0x75, 0x49, 0x95, 0x86, 0x08, 0xe6, 0xf1, 0x29, 0xa5,
+  0x11, 0x5b, 0xc5, 0x10, 0xff, 0x95, 0xf7, 0xe1, 0x8b, 0x76, 0xd1, 0x00,
+  0x61, 0xe4, 0xfa, 0x45, 0x07, 0x2a, 0x7d, 0xda, 0x89, 0x5a, 0x82, 0x4f,
+  0xfe, 0xbf, 0xf3, 0x44, 0xa5, 0xc9, 0xd3, 0xce, 0x54, 0xda, 0x3d, 0x54,
+  0x91, 0x82, 0x96, 0x4b, 0x7b, 0xfc, 0x2b, 0x9e, 0x32, 0x3e, 0x66, 0x3f,
+  0xeb, 0x9c, 0xd9, 0xc2, 0xa3, 0xff, 0x17, 0x9f, 0xb2, 0xcf, 0x3b, 0x5a,
+  0x20, 0xe8, 0xed, 0xfa, 0xd7, 0xe6, 0x0e, 0x9c, 0xe7, 0x46, 0x2d, 0xeb,
+  0x32, 0x65, 0x1c, 0xd4, 0x49, 0x0b, 0x42, 0xf4, 0xd5, 0x70, 0xd8, 0x3f,
+  0x38, 0x3f, 0xf6, 0x49, 0x50, 0x85, 0xbd, 0x8f, 0xd3, 0x80, 0x38, 0x27,
+  0x95, 0xce, 0x18, 0x1e, 0x08, 0xf0, 0x56, 0xc8, 0xb2, 0xa7, 0xf4, 0xf8,
+  0xdd, 0x57, 0x2f, 0x77, 0xcd, 0x12, 0x3e, 0x30, 0xc5, 0x94, 0xbc, 0xfc,
+  0x7c, 0xf0, 0x6c, 0x9b, 0x0a, 0x1a, 0xe7, 0x8d, 0x3a, 0xa7, 0xe1, 0x18,
+  0x97, 0xe6, 0xcd, 0xd9, 0x8c, 0xc4, 0x7f, 0x79, 0x33, 0x9c, 0x1e, 0x1d,
+  0x26, 0x0c, 0x4b, 0x01, 0xe7, 0x50, 0x02, 0x90, 0x3c, 0x21, 0xee, 0x25,
+  0x8a, 0x86, 0x28, 0x25, 0x1d, 0x7c, 0x89, 0xaa, 0xf3, 0xd4, 0x06, 0xa6,
+  0x43, 0x30, 0x1d, 0xaa, 0xf8, 0x22, 0x29, 0xb5, 0xb0, 0x1d, 0xa1, 0xc3,
+  0xc9, 0x3a, 0xb0, 0xcc, 0x0b, 0xf5, 0x31, 0x44, 0x98, 0x7b, 0x53, 0xf2,
+  0x44, 0xd6, 0x58, 0xaa, 0xa6, 0xb6, 0x7c, 0x7d, 0x54, 0xd9, 0x5e, 0xa2,
+  0xae, 0x3b, 0x57, 0x5a, 0xa0, 0x95, 0xcb, 0xe9, 0x55, 0x50, 0x0d, 0xb9,
+  0x03, 0xc6, 0x33, 0xab, 0x40, 0x5f, 0xfd, 0x6d, 0xb2, 0xd2, 0x13, 0x1d,
+  0xd5, 0xfe, 0x23, 0xea, 0x9b, 0xa7, 0xe4, 0x6b, 0xd7, 0x45, 0xaa, 0x88,
+  0x6e, 0xbf, 0x6c, 0x40, 0xa2, 0xd0, 0x77, 0xed, 0x56, 0xde, 0x02, 0x0b,
+  0xa9, 0x77, 0x3b, 0xd9, 0xf6, 0x9a, 0xb2, 0xed, 0x47, 0x7e, 0xa6, 0xad,
+  0x47, 0x80, 0xc7, 0xf4, 0x31, 0x6e, 0xcb, 0x58, 0xbf, 0x53, 0xe9, 0x95,
+  0xf7, 0x9d, 0xf0, 0x97, 0x08, 0x3a, 0x90, 0x68, 0xa8, 0x43, 0x6c, 0xb9,
+  0x38, 0xf8, 0xbc, 0x2e, 0xd8, 0x68, 0xf8, 0x2c, 0x6d, 0xc6, 0xca, 0x48,
+  0x65, 0x84, 0x5f, 0x3e, 0x4f, 0xa7, 0xc9, 0x13, 0x70, 0x83, 0xb1, 0xc5,
+  0xa7, 0x0b, 0x90, 0xad, 0xb4, 0x47, 0xae, 0xc2, 0x78, 0xbd, 0x66, 0x99,
+  0xa2, 0x64, 0x13, 0x91, 0xa0, 0xcc, 0x27, 0x56, 0xd2, 0x60, 0x5c, 0x68,
+  0xe3, 0x23, 0xac, 0x40, 0x1f, 0xdd, 0x1a, 0x3c, 0xa5, 0x24, 0x6f, 0x4f,
+  0xaa, 0xef, 0x5a, 0x1e, 0xc4, 0x90, 0xb1, 0xe1, 0xff, 0x86, 0x4b, 0xf4,
+  0x45, 0x62, 0xd7, 0xea, 0x29, 0x77, 0x29, 0xd3, 0x8a, 0x72, 0x45, 0xaa,
+  0x80, 0x31, 0xc3, 0x29, 0xac, 0xff, 0xef, 0x2e, 0xfd, 0xff, 0xa5, 0xbb,
+  0xf4, 0x17, 0x9f, 0x52, 0x65, 0x4a, 0xeb, 0x2b, 0xae, 0xc9, 0x9e, 0x4d,
+  0x77, 0x1a, 0x63, 0xe0, 0xb6, 0xe9, 0xc3, 0xd3, 0x8f, 0xa8, 0x77, 0x42,
+  0x93, 0x70, 0x2b, 0xfc, 0xdf, 0x71, 0x44, 0x9f, 0x74, 0x32, 0xff, 0x9f,
+  0xe5, 0xf8, 0xdf, 0xed, 0x1c, 0x2e, 0xd7, 0x4e, 0x36, 0xcd, 0x26, 0xbb,
+  0x27, 0xde, 0x6e, 0x66, 0xce, 0x87, 0x95, 0xb2, 0xe5, 0x6e, 0x62, 0x42,
+  0x7e, 0xf3, 0xdc, 0x1d, 0x9f, 0x7f, 0xfb, 0xb2, 0x07, 0xf7, 0xff, 0xb0,
+  0x1b, 0xf1, 0xa9, 0x92, 0x93, 0xb7, 0x07, 0xe7, 0x3f, 0xe3, 0xb4, 0xff,
+  0x05, 0x3e, 0xbc, 0x79, 0x96, 0x4d, 0xfa, 0xec, 0x5d, 0x7e, 0x8d, 0x7f,
+  0x44, 0xe2, 0x31, 0xa9, 0xcd, 0xe6, 0xc4, 0xb6, 0x25, 0xa7, 0x73, 0x18,
+  0xe7, 0xc2, 0xcb, 0xc9, 0x66, 0x5e, 0x48, 0x8e, 0x35, 0x41, 0xdf, 0xea,
+  0xd0, 0x42, 0x2d, 0x8b, 0xc9, 0x16, 0x03, 0xcb, 0xf1, 0x65, 0x6c, 0x15,
+  0x09, 0x4f, 0xd2, 0xf1, 0xbe, 0x26, 0x1e, 0x16, 0x4b, 0x66, 0xe5, 0x3d,
+  0xa3, 0xfc, 0x84, 0xd1, 0x68, 0xf9, 0x83, 0x1b, 0x0a, 0x3b, 0xc6, 0x99,
+  0x2f, 0xe5, 0xd9, 0x0e, 0x57, 0x5d, 0x45, 0x62, 0xdb, 0x6f, 0x98, 0xdd,
+  0xd9, 0xfd, 0xfc, 0xb2, 0x78, 0xeb, 0xca, 0xa9, 0xf4, 0x57, 0xa2, 0x35,
+  0x83, 0x14, 0x47, 0x99, 0x2c, 0xaa, 0xb0, 0xae, 0x46, 0xea, 0xcf, 0x0f,
+  0x47, 0x18, 0xb9, 0xbf, 0xf6, 0x13, 0xed, 0xd9, 0x34, 0x9f, 0xf7, 0x5e,
+  0x08, 0x62, 0x86, 0x0c, 0x80, 0xee, 0x14, 0x07, 0xf4, 0x7b, 0x25, 0x51,
+  0x1a, 0x22, 0x87, 0x56, 0xdf, 0xa8, 0x43, 0x13, 0xfe, 0x25, 0x84, 0x95,
+  0x78, 0xef, 0xae, 0x66, 0xfb, 0x2a, 0x8b, 0xa6, 0x22, 0x5e, 0x50, 0x57,
+  0x23, 0x9e, 0x0f, 0x32, 0x65, 0x39, 0xb9, 0x82, 0x41, 0x49, 0xca, 0x75,
+  0x37, 0x31, 0x6b, 0x21, 0x3d, 0x17, 0x9f, 0xef, 0x24, 0x6b, 0xc6, 0x03,
+  0xb7, 0xb6, 0x20, 0xcd, 0xa1, 0x92, 0x9c, 0x59, 0x55, 0x68, 0xed, 0x22,
+  0x33, 0x47, 0xd5, 0x83, 0x10, 0x3c, 0x28, 0x79, 0x65, 0x00, 0xf2, 0xe5,
+  0x40, 0xe9, 0x12, 0x70, 0xe5, 0xaf, 0x08, 0x26, 0x5b, 0x5d, 0x4d, 0x23,
+  0x4c, 0x58, 0xd4, 0x92, 0x6a, 0x56, 0x2c, 0xa4, 0xa8, 0x8c, 0x49, 0x7b,
+  0x41, 0xeb, 0x5b, 0x5f, 0x4d, 0xd3, 0x7b, 0xc9, 0x63, 0xe9, 0xca, 0xfb,
+  0xe1, 0xc9, 0x33, 0x46, 0x99, 0x5d, 0x9e, 0x0c, 0x7d, 0xf2, 0xd8, 0x3a,
+  0xe1, 0x3a, 0xb0, 0x46, 0xfc, 0x7c, 0x79, 0x74, 0x30, 0xbc, 0x1c, 0x44,
+  0xc6, 0x18, 0x46, 0xd4, 0x5d, 0xf6, 0x0d, 0x11, 0x69, 0x4c, 0xd3, 0x07,
+  0xe2, 0x6b, 0x12, 0x08, 0x3f, 0xf5, 0x8d, 0xbb, 0xa6, 0x6d, 0x93, 0xd9,
+  0xc5, 0xb0, 0x4f, 0x60, 0x32, 0x42, 0x9e, 0x15, 0x33, 0x77, 0xa3, 0x7c,
+  0x4a, 0x23, 0x30, 0xdd, 0x1a, 0x19, 0xdb, 0x57, 0xa0, 0x92, 0xc8, 0x08,
+  0x2b, 0xa7, 0x04, 0xc5, 0xa1, 0xef, 0xb4, 0xed, 0x62, 0x22, 0x84, 0x93,
+  0x34, 0xb9, 0xe5, 0x49, 0x2f, 0x46, 0xcb, 0x28, 0xeb, 0x4c, 0x48, 0x77,
+  0xa8, 0x0d, 0x9d, 0xab, 0x1e, 0x26, 0xc3, 0x62, 0x94, 0x39, 0x9f, 0x9e,
+  0x52, 0x86, 0xc3, 0x8c, 0x82, 0xb4, 0xbe, 0x55, 0xa8, 0xeb, 0xb8, 0x41,
+  0x7a, 0x52, 0xba, 0xb2, 0x50, 0xc5, 0x5e, 0xa7, 0xc4, 0x3c, 0x2d, 0x34,
+  0xf2, 0xaf, 0x08, 0x17, 0xdd, 0x85, 0x44, 0x7e, 0x97, 0x13, 0x83, 0xe5,
+  0x56, 0x47, 0x4b, 0x69, 0xaf, 0xb8, 0x86, 0x17, 0x89, 0x28, 0x9c, 0x51,
+  0xeb, 0x14, 0xa9, 0xbc, 0x2b, 0xe3, 0x75, 0x29, 0x8c, 0x89, 0x9b, 0x99,
+  0x5b, 0x64, 0xe0, 0x65, 0x11, 0x3e, 0x79, 0x42, 0xd6, 0x02, 0xba, 0x99,
+  0xc8, 0xf4, 0xfc, 0xec, 0x09, 0x79, 0xfe, 0x3c, 0x9c, 0x90, 0x2a, 0xfb,
+  0xdb, 0x24, 0xc6, 0xd0, 0x09, 0xe4, 0x29, 0x40, 0xaf, 0x0c, 0x16, 0xbd,
+  0x60, 0x9a, 0x51, 0xea, 0xea, 0x36, 0xf1, 0xf9, 0x73, 0x15, 0xe0, 0xcc,
+  0x23, 0x6f, 0x21, 0xa7, 0x08, 0x85, 0x6f, 0x82, 0x5b, 0x1f, 0x24, 0x4f,
+  0xed, 0x67, 0x15, 0x2c, 0xd2, 0x4d, 0x3d, 0x15, 0x8a, 0x02, 0xf9, 0xc8,
+  0x4a, 0x91, 0x45, 0x85, 0x08, 0xc0, 0x0a, 0x5f, 0x99, 0x91, 0xdb, 0xb3,
+  0xd3, 0xa7, 0x72, 0xd2, 0x76, 0x60, 0x8f, 0x14, 0x5c, 0xef, 0x4e, 0xc6,
+  0x92, 0xa1, 0x5f, 0x56, 0x0f, 0xb6, 0x04, 0x93, 0x1d, 0xbf, 0x07, 0x67,
+  0xf4, 0xa6, 0x20, 0x80, 0xe3, 0x10, 0xe5, 0x3c, 0xa3, 0xed, 0xc0, 0x93,
+  0x21, 0x85, 0xc5, 0x9e, 0x3a, 0x11, 0xa1, 0xf0, 0xc0, 0xb4, 0xb4, 0x6a,
+  0x2d, 0xe9, 0x78, 0x45, 0x84, 0x6b, 0x68, 0x49, 0x66, 0x80, 0xbb, 0xc9,
+  0x70, 0xc6, 0x7e, 0xc8, 0x64, 0x69, 0x4c, 0xf9, 0xbb, 0x6c, 0x8a, 0x64,
+  0xa2, 0xac, 0x18, 0x57, 0x0f, 0x73, 0x9f, 0x52, 0x76, 0xf2, 0x88, 0x06,
+  0xff, 0xc8, 0x0a, 0xb4, 0x10, 0xc1, 0xbb, 0x46, 0xd6, 0x6d, 0x85, 0xfa,
+  0x57, 0x6a, 0x8b, 0x1a, 0x32, 0xfd, 0x15, 0x5d, 0xc2, 0x8d, 0x8f, 0x99,
+  0x84, 0x73, 0xce, 0x5e, 0x7a, 0x42, 0xda, 0x24, 0x99, 0x05, 0x5d, 0xd5,
+  0xfc, 0x6a, 0x01, 0x16, 0x0e, 0x0b, 0x8a, 0x7c, 0xf2, 0xda, 0xef, 0xf5,
+  0x78, 0xc6, 0xee, 0xf6, 0x02, 0xa0, 0x34, 0x44, 0xc2, 0xbb, 0xb2, 0xa2,
+  0xd4, 0xe4, 0x56, 0x31, 0x4d, 0x3a, 0xb2, 0x5a, 0x9f, 0x63, 0x8f, 0xd1,
+  0x30, 0xd6, 0x3b, 0xa7, 0xb5, 0xc9, 0x96, 0x94, 0x02, 0xe6, 0xd3, 0xce,
+  0xd9, 0x39, 0x43, 0x23, 0x59, 0x19, 0xf8, 0xa2, 0x0c, 0xd0, 0x5c, 0x46,
+  0xdb, 0x96, 0xe3, 0xa6, 0xa7, 0xef, 0xf6, 0x96, 0x12, 0xa4, 0x0e, 0xe4,
+  0xf7, 0x48, 0x99, 0x9a, 0x10, 0x15, 0xb7, 0x63, 0x6f, 0x4a, 0x6c, 0x21,
+  0x3b, 0x00, 0xbf, 0xc8, 0x61, 0xfa, 0x72, 0xf7, 0xb3, 0x97, 0x5b, 0xab,
+  0xeb, 0xf0, 0x12, 0x79, 0x3d, 0xa5, 0xe6, 0xc8, 0x46, 0xa2, 0x7f, 0xee,
+  0x0d, 0xfc, 0x39, 0x0a, 0x19, 0xb6, 0x03, 0x16, 0x8b, 0x09, 0x6d, 0x09,
+  0x9a, 0x06, 0x65, 0x21, 0xa6, 0xad, 0xc2, 0x03, 0x6b, 0x4a, 0x7b, 0xca,
+  0xb1, 0x95, 0x43, 0xa3, 0xb0, 0x3b, 0x4c, 0x36, 0x12, 0xfb, 0xcf, 0xb4,
+  0x03, 0xcf, 0xb8, 0x67, 0x5e, 0x31, 0x23, 0xee, 0x29, 0xfe, 0x3e, 0x68,
+  0xff, 0xcb, 0x0f, 0x06, 0xb9, 0x06, 0x7e, 0xd9, 0x2a, 0x3f, 0xfb, 0xad,
+  0x57, 0xf9, 0xd9, 0x23, 0xab, 0xfc, 0xec, 0xa9, 0xab, 0xfc, 0xd9, 0x8b,
+  0x97, 0x9f, 0xff, 0xb2, 0x55, 0xf6, 0x26, 0xf9, 0xff, 0xcc, 0x2a, 0x7b,
+  0xdb, 0xec, 0x97, 0xad, 0xb2, 0x04, 0xd5, 0x03, 0x41, 0x2c, 0xbc, 0xef,
+  0x40, 0x40, 0x51, 0xe6, 0x26, 0x43, 0xd6, 0xf8, 0x61, 0x35, 0x41, 0xdb,
+  0xf4, 0x98, 0xb6, 0xe8, 0x8b, 0x51, 0xc4, 0xd6, 0x96, 0x70, 0x8a, 0x42,
+  0x6a, 0x41, 0xc3, 0x9d, 0x4f, 0xa9, 0x74, 0xc8, 0x46, 0x7f, 0x43, 0x5d,
+  0x24, 0x9a, 0x36, 0xa1, 0x2c, 0x0c, 0xfc, 0x35, 0xb3, 0xd8, 0xff, 0x42,
+  0x16, 0x8f, 0x10, 0x73, 0xe0, 0xa1, 0x46, 0x5a, 0x93, 0xb6, 0x84, 0x4a,
+  0x3e, 0x86, 0x6b, 0x09, 0x8a, 0x17, 0xd8, 0x1e, 0x33, 0xdd, 0x45, 0x84,
+  0xa5, 0x9f, 0x16, 0x9f, 0x50, 0x9d, 0x41, 0x5e, 0x0e, 0xdd, 0x75, 0x8a,
+  0x1b, 0x89, 0x90, 0xfc, 0x0b, 0x4e, 0xa9, 0x53, 0x27, 0x77, 0x19, 0xda,
+  0x98, 0xf0, 0x7a, 0x8d, 0x57, 0x2c, 0x49, 0xcc, 0xa2, 0xb7, 0xd4, 0xdd,
+  0xc9, 0x62, 0x36, 0x57, 0x46, 0x1a, 0x02, 0x86, 0xe7, 0x40, 0x87, 0x68,
+  0x8a, 0x20, 0x43, 0xd6, 0x22, 0xfe, 0x25, 0x8b, 0x13, 0x4f, 0x18, 0xed,
+  0xe1, 0x55, 0x0c, 0x52, 0x2e, 0x7e, 0xcd, 0x57, 0xe7, 0x51, 0x00, 0x13,
+  0xc3, 0x64, 0x18, 0xdd, 0xdb, 0x96, 0x4d, 0x27, 0xd3, 0xf1, 0x49, 0x36,
+  0x5a, 0x5c, 0x6b, 0x9a, 0x9d, 0x2d, 0x7b, 0xd2, 0x5e, 0x2c, 0x80, 0xd7,
+  0x29, 0xd5, 0x3b, 0xeb, 0x31, 0x88, 0xf0, 0x21, 0xcc, 0x70, 0x6d, 0xa8,
+  0xe6, 0xcf, 0x78, 0x15, 0xe6, 0x24, 0x18, 0x3a, 0xf6, 0x40, 0xde, 0xf3,
+  0x86, 0x8e, 0x9f, 0xb4, 0x56, 0x34, 0x52, 0x9f, 0xc1, 0xdf, 0x2a, 0xcd,
+  0x78, 0xde, 0xbf, 0x4a, 0x89, 0x23, 0x2a, 0xc8, 0xb3, 0x12, 0x9c, 0x99,
+  0xb8, 0xf0, 0x2e, 0x0f, 0xcf, 0x93, 0x77, 0xa9, 0xb0, 0xc3, 0x27, 0x9b,
+  0x46, 0x30, 0x7d, 0xf6, 0x7c, 0xf7, 0xd9, 0xd6, 0x4a, 0x05, 0xb5, 0xcd,
+  0x79, 0x80, 0x6f, 0x15, 0x65, 0x0c, 0xef, 0x77, 0xb9, 0xa8, 0x0a, 0x4d,
+  0x50, 0x31, 0x1f, 0xfa, 0x78, 0x7a, 0xf6, 0xf6, 0xe8, 0xe4, 0xe0, 0x2f,
+  0x36, 0x8f, 0x92, 0xe6, 0x40, 0x13, 0x72, 0x3e, 0x1a, 0xb3, 0xee, 0xe1,
+  0xa3, 0xb1, 0x93, 0xcd, 0x2f, 0x37, 0x9f, 0x6d, 0x21, 0xe9, 0x21, 0x28,
+  0x15, 0x74, 0x9d, 0xb5, 0xd3, 0x4f, 0x19, 0x7c, 0xb9, 0x22, 0x6b, 0x9f,
+  0x3d, 0x77, 0xe4, 0xba, 0xdb, 0x19, 0x18, 0xa9, 0x25, 0x68, 0x2e, 0xe6,
+  0xb0, 0x75, 0x9b, 0xd4, 0xa3, 0xa3, 0x4e, 0x85, 0xdd, 0x43, 0x32, 0x09,
+  0x03, 0x06, 0x9a, 0xf9, 0x34, 0x1f, 0xe7, 0xa4, 0xc6, 0xd7, 0x66, 0xdf,
+  0x12, 0x5a, 0x95, 0xe2, 0xa5, 0x57, 0x6d, 0x76, 0x20, 0x24, 0xb5, 0x00,
+  0xed, 0xb9, 0xd2, 0xcb, 0xd4, 0x16, 0x89, 0x0d, 0x64, 0x68, 0x36, 0x2d,
+  0xb2, 0xa6, 0x2f, 0xdd, 0x7a, 0x6d, 0xfe, 0x7c, 0x73, 0x97, 0x4e, 0x83,
+  0x74, 0x29, 0xaa, 0xb4, 0xa3, 0x3b, 0xd3, 0x62, 0xb2, 0xe8, 0x4d, 0x8f,
+  0xfc, 0x7a, 0x68, 0x59, 0xa0, 0xf5, 0x49, 0x73, 0x54, 0x02, 0xb2, 0xe7,
+  0xcb, 0xcb, 0xbf, 0x9c, 0x1f, 0xbd, 0x79, 0x4d, 0x88, 0xae, 0x2f, 0x08,
+  0xb3, 0x5b, 0xb7, 0x00, 0x5e, 0x09, 0x15, 0x82, 0x0c, 0xc6, 0xf0, 0xfd,
+  0xdb, 0xe3, 0xe1, 0xf9, 0xc9, 0xd9, 0xe1, 0x9b, 0xd7, 0xdf, 0x93, 0xb1,
+  0x65, 0x64, 0xea, 0x83, 0xf7, 0xae, 0xfd, 0x99, 0x25, 0xb4, 0x0d, 0x73,
+  0x6c, 0x8f, 0xbe, 0xfb, 0x78, 0x74, 0xfa, 0xed, 0x9b, 0xd7, 0x77, 0x69,
+  0xd5, 0xa3, 0xf1, 0xf1, 0xdb, 0x4b, 0xca, 0x58, 0xb5, 0xb6, 0x1a, 0x69,
+  0xad, 0xa3, 0xe9, 0x6d, 0x9d, 0xff, 0x3d, 0x4b, 0xcc, 0xeb, 0xd3, 0x45,
+  0xc8, 0x27, 0x79, 0x29, 0x55, 0x0b, 0xcc, 0xa5, 0x46, 0x76, 0xc2, 0x97,
+  0x27, 0xdf, 0x10, 0x67, 0x99, 0xf5, 0x20, 0xce, 0x98, 0x26, 0x3f, 0xf9,
+  0xe2, 0xc5, 0xee, 0xde, 0x96, 0xab, 0x01, 0x05, 0xce, 0x43, 0xd3, 0xe3,
+  0xdb, 0x00, 0x6f, 0xfe, 0xf7, 0xcc, 0x2b, 0xae, 0x2c, 0x75, 0xac, 0x1e,
+  0x5a, 0x19, 0xdf, 0xea, 0x8e, 0x41, 0xf2, 0x28, 0x40, 0x75, 0x54, 0x42,
+  0xab, 0x02, 0xf7, 0x43, 0xe0, 0x8a, 0xba, 0x7c, 0xe7, 0xa5, 0x7d, 0x7f,
+  0xe9, 0x36, 0x9e, 0xe9, 0x8e, 0xb8, 0xb3, 0x56, 0x5e, 0x1b, 0xbf, 0x61,
+  0x90, 0xa3, 0x6b, 0x6b, 0x61, 0xb2, 0x8d, 0x29, 0x2e, 0xfb, 0x27, 0x3e,
+  0xcf, 0x97, 0xce, 0xf6, 0x06, 0x72, 0xbe, 0x64, 0x82, 0x1c, 0x8c, 0x52,
+  0x37, 0x9e, 0xa6, 0xda, 0xad, 0xb4, 0x14, 0xf3, 0x19, 0xa5, 0x6a, 0x11,
+  0xca, 0x99, 0xbd, 0x1e, 0x9e, 0x4f, 0x63, 0x9a, 0x5d, 0xa7, 0xe3, 0x87,
+  0xc4, 0x12, 0xfd, 0x09, 0x3f, 0xd3, 0xa4, 0x8c, 0xa4, 0x03, 0x27, 0xe9,
+  0x98, 0x8c, 0x9c, 0x69, 0x36, 0x21, 0x5e, 0x10, 0x32, 0xab, 0x38, 0xbb,
+  0x98, 0x52, 0x5c, 0xd4, 0x21, 0xd2, 0xea, 0x9d, 0x10, 0xe5, 0x2f, 0xcf,
+  0x0d, 0xb0, 0x15, 0x7d, 0xda, 0xbb, 0x8f, 0xb6, 0x0d, 0x8a, 0xd4, 0xad,
+  0x9c, 0xd3, 0xe7, 0x6d, 0x57, 0xf2, 0xdf, 0x71, 0xc8, 0x89, 0x0a, 0x01,
+  0xde, 0xca, 0xd7, 0xf4, 0xd7, 0x38, 0x21, 0xea, 0x3b, 0x35, 0xe7, 0xb9,
+  0x06, 0x21, 0x93, 0xcf, 0xd2, 0xb0, 0x2d, 0x87, 0x8d, 0x10, 0x8c, 0x13,
+  0xad, 0x66, 0xa3, 0xbe, 0xd1, 0xe5, 0x44, 0x23, 0xec, 0x1b, 0x46, 0x05,
+  0x4d, 0xf3, 0xb8, 0xd6, 0x25, 0x58, 0xd6, 0xa4, 0x4d, 0x69, 0x09, 0x63,
+  0x17, 0x48, 0xa8, 0x20, 0x00, 0xc2, 0x6b, 0x6a, 0x88, 0x24, 0x22, 0xa9,
+  0x24, 0x66, 0xa2, 0xbe, 0xd0, 0x68, 0x08, 0x38, 0xe8, 0x4b, 0x61, 0xbf,
+  0xc0, 0x43, 0x9c, 0x57, 0x5d, 0x47, 0xc8, 0x91, 0x18, 0x34, 0xab, 0x06,
+  0x35, 0x47, 0xd2, 0x29, 0xd2, 0x64, 0xf9, 0xfd, 0x4c, 0x27, 0x6b, 0x55,
+  0xd6, 0x28, 0x7b, 0xa4, 0xe0, 0x7a, 0xee, 0xca, 0xfe, 0x15, 0x2b, 0xde,
+  0xa5, 0x99, 0x0e, 0xd7, 0x96, 0x37, 0x8e, 0xc7, 0xa5, 0x69, 0xd6, 0xe8,
+  0x92, 0x11, 0x04, 0x34, 0x94, 0x2d, 0x65, 0x68, 0x89, 0x32, 0xf3, 0x5a,
+  0xdd, 0x92, 0xd5, 0x72, 0x7b, 0x55, 0x99, 0x96, 0xa9, 0x11, 0xba, 0xa6,
+  0xcc, 0x2d, 0x85, 0x7b, 0x89, 0x53, 0x16, 0x3b, 0x53, 0x12, 0xa0, 0xe9,
+  0x1b, 0x46, 0x07, 0x77, 0x2f, 0x29, 0xe2, 0x77, 0x54, 0x44, 0xae, 0xff,
+  0x7e, 0xab, 0x7c, 0xc8, 0x66, 0xdf, 0x15, 0x5e, 0xc8, 0x1b, 0xab, 0xb6,
+  0x45, 0x72, 0xd0, 0x13, 0x4b, 0x42, 0x69, 0xc9, 0x33, 0xd8, 0x2d, 0x28,
+  0xa1, 0x08, 0x2d, 0x30, 0x4d, 0x5f, 0xdb, 0xe6, 0xbc, 0x19, 0x95, 0x42,
+  0x79, 0x98, 0xb6, 0x17, 0xb4, 0x55, 0x64, 0xf7, 0x7e, 0x5b, 0x4e, 0x1f,
+  0xb7, 0xed, 0xfd, 0x96, 0x8e, 0x60, 0x63, 0x4c, 0x10, 0xe0, 0x3f, 0x79,
+  0xfd, 0xed, 0xd1, 0xc5, 0xf0, 0xf8, 0xec, 0xf4, 0x8b, 0xa8, 0x9d, 0x28,
+  0xbf, 0xb4, 0x65, 0x39, 0x34, 0x4b, 0xc8, 0xd5, 0x46, 0x20, 0xf7, 0x90,
+  0x3a, 0x21, 0xcc, 0x91, 0x4d, 0x28, 0x31, 0x82, 0x1e, 0xe9, 0x6e, 0x81,
+  0x5a, 0xda, 0x80, 0xfb, 0x33, 0xad, 0xae, 0x31, 0x17, 0x66, 0x7f, 0xc1,
+  0xa6, 0x41, 0xe1, 0x3b, 0x35, 0x76, 0xec, 0x5f, 0xf7, 0x82, 0xf1, 0xcb,
+  0xf4, 0xc6, 0xa9, 0x6c, 0x29, 0x52, 0xbc, 0x98, 0x73, 0x0e, 0x09, 0xa5,
+  0xf1, 0x72, 0xa2, 0xbf, 0xdf, 0xbf, 0x80, 0x21, 0x77, 0xb0, 0xd3, 0x7e,
+  0xd1, 0x3c, 0x7c, 0xb7, 0xeb, 0x21, 0xdf, 0xed, 0x73, 0xbb, 0xb1, 0xe7,
+  0x76, 0xc3, 0xe7, 0xf6, 0x62, 0xcf, 0xed, 0x85, 0xcf, 0x3d, 0x8b, 0x3d,
+  0xe7, 0x25, 0x37, 0x78, 0x2e, 0x2f, 0x9d, 0xa1, 0x55, 0x16, 0xa1, 0xb7,
+  0x9e, 0x2d, 0x4b, 0x76, 0xcd, 0x33, 0xe1, 0x7e, 0x96, 0x09, 0xeb, 0xe7,
+  0x7d, 0x76, 0xfc, 0xa8, 0x8f, 0x97, 0xc1, 0xce, 0xd0, 0x48, 0x12, 0x56,
+  0x0e, 0x26, 0x2d, 0x08, 0x90, 0x7a, 0x2e, 0x55, 0xa9, 0xc1, 0x1f, 0x5b,
+  0x14, 0x87, 0xb7, 0x54, 0xfc, 0xfa, 0x80, 0x59, 0xb5, 0x3e, 0xbc, 0x38,
+  0x5f, 0xef, 0x89, 0x3b, 0xd2, 0x7c, 0xa3, 0x6f, 0xfe, 0x9d, 0x40, 0xdb,
+  0x26, 0xbe, 0xe7, 0x17, 0xcf, 0xb7, 0x38, 0x90, 0xe0, 0x4a, 0x4e, 0x87,
+  0xde, 0xe5, 0x76, 0x49, 0x6c, 0x14, 0x4e, 0x72, 0xbc, 0xec, 0x46, 0x0b,
+  0x6e, 0x0f, 0x90, 0x21, 0x01, 0x3d, 0x29, 0x7a, 0xbc, 0xfc, 0x72, 0xb3,
+  0x7c, 0x30, 0x54, 0xfa, 0x93, 0x3a, 0xf9, 0x48, 0xfe, 0xf0, 0xf3, 0xce,
+  0x8c, 0x6a, 0x87, 0x22, 0x53, 0xe9, 0x8a, 0x58, 0x62, 0xd8, 0xd0, 0x96,
+  0x94, 0xfb, 0x06, 0xb5, 0x66, 0xdb, 0xb3, 0x2c, 0xdc, 0x14, 0x4b, 0xe1,
+  0xef, 0x9a, 0xef, 0xeb, 0x8d, 0x72, 0xa0, 0xfe, 0x6e, 0x71, 0x7f, 0x78,
+  0xd3, 0xe7, 0x08, 0x4f, 0x1f, 0x1f, 0x90, 0x3f, 0x9e, 0x15, 0x65, 0xc1,
+  0x33, 0xf0, 0xc4, 0x55, 0x16, 0x67, 0xf7, 0xd8, 0x80, 0x1c, 0xab, 0xc8,
+  0xd2, 0x21, 0x29, 0x99, 0x6a, 0x7b, 0x50, 0x6e, 0x54, 0xde, 0xb0, 0xdc,
+  0xca, 0xd3, 0xd0, 0x82, 0xe5, 0x7c, 0xd2, 0x40, 0x5b, 0x23, 0xa5, 0xb3,
+  0x19, 0xa8, 0x74, 0x27, 0xc3, 0x2d, 0xf5, 0xb0, 0xf9, 0x0e, 0x36, 0x4f,
+  0x16, 0x41, 0xf6, 0x30, 0xd7, 0xaa, 0xfa, 0xc7, 0x91, 0x6e, 0x56, 0x26,
+  0xcb, 0x5c, 0x6c, 0xf4, 0xb2, 0xf2, 0xd3, 0xae, 0xc8, 0x59, 0x0a, 0x4f,
+  0x2b, 0xc9, 0x8b, 0x68, 0x0f, 0xdb, 0x4e, 0xc0, 0x78, 0x27, 0x77, 0x95,
+  0x8c, 0xc9, 0xf6, 0x91, 0xdc, 0xfb, 0xbf, 0x7e, 0x0f, 0xf7, 0x7e, 0xd9,
+  0x1c, 0xee, 0xfd, 0xeb, 0xe6, 0xf0, 0xd9, 0x2f, 0x9e, 0xc3, 0x67, 0xbf,
+  0xce, 0x1c, 0xba, 0x02, 0x79, 0xf4, 0x10, 0x35, 0x9b, 0xb7, 0xc9, 0xae,
+  0xe5, 0x6e, 0x35, 0xff, 0x1c, 0x51, 0x9c, 0x9c, 0xbc, 0x12, 0xe6, 0x41,
+  0x4a, 0x05, 0xcc, 0x50, 0x2a, 0xac, 0x33, 0xe0, 0xc6, 0x66, 0x30, 0x83,
+  0x7a, 0xbf, 0xca, 0x6d, 0x4e, 0x3a, 0xc9, 0x3b, 0x38, 0xd1, 0x8c, 0x74,
+  0xfc, 0xb2, 0x24, 0x9d, 0x93, 0xfc, 0xbb, 0x52, 0xd4, 0x1a, 0x9f, 0xfc,
+  0x19, 0x44, 0x01, 0xce, 0xa9, 0x19, 0xf7, 0x44, 0x5f, 0xb6, 0xa2, 0x8e,
+  0xe1, 0xec, 0x7d, 0xfa, 0x79, 0x9e, 0x68, 0x6f, 0x02, 0x39, 0xe4, 0xc2,
+  0x89, 0xad, 0x9d, 0xa3, 0xd7, 0x4b, 0x44, 0xd3, 0x88, 0x69, 0x19, 0xde,
+  0xe5, 0xab, 0x9e, 0xe3, 0xb6, 0xe3, 0xd8, 0xf3, 0xd3, 0xba, 0xfb, 0x56,
+  0xac, 0xa9, 0x95, 0xbe, 0x63, 0x57, 0xa8, 0xf0, 0x11, 0xef, 0xb1, 0x57,
+  0xf3, 0x7a, 0x89, 0xef, 0x38, 0xae, 0x09, 0xb4, 0xfe, 0xd5, 0x4a, 0x96,
+  0x6c, 0xaa, 0xbe, 0xd2, 0x75, 0xc7, 0xd9, 0xd9, 0x9c, 0x91, 0x64, 0x94,
+  0x27, 0x68, 0xce, 0xa4, 0x3d, 0x89, 0x49, 0xde, 0x3f, 0x92, 0x77, 0x9d,
+  0x9f, 0x92, 0x63, 0xb4, 0xd1, 0xa2, 0x6c, 0xc2, 0x91, 0xa5, 0xa9, 0xa7,
+  0x9a, 0xfc, 0xc7, 0xa3, 0xac, 0x39, 0x08, 0xbe, 0x28, 0xf4, 0x33, 0x2e,
+  0x87, 0x0e, 0x19, 0xf0, 0xc1, 0xb2, 0x8e, 0x33, 0xce, 0x8e, 0xce, 0x1f,
+  0x13, 0xcd, 0x2f, 0xdb, 0xe3, 0x4d, 0xc7, 0x59, 0x3f, 0xad, 0xc7, 0x79,
+  0x1e, 0x37, 0x4a, 0xd8, 0x7f, 0x07, 0x23, 0x68, 0xc1, 0x45, 0xb5, 0xc7,
+  0xa6, 0x1b, 0x8b, 0xd9, 0x5c, 0xeb, 0x7f, 0x11, 0xa7, 0x1a, 0x27, 0x0e,
+  0x73, 0x7e, 0x7e, 0xb9, 0x68, 0xae, 0xc1, 0xad, 0x84, 0xce, 0xf6, 0x02,
+  0x1b, 0x47, 0xab, 0x24, 0x9b, 0xe5, 0x19, 0x57, 0xf9, 0x1c, 0x64, 0x33,
+  0x1e, 0xd1, 0x78, 0xcf, 0xd6, 0xe2, 0x82, 0xd1, 0x20, 0x7e, 0x60, 0x2e,
+  0x4d, 0xf5, 0x21, 0xc8, 0xd6, 0x5c, 0xef, 0xaf, 0x93, 0x85, 0x66, 0xd9,
+  0x99, 0xcd, 0xbb, 0x44, 0x0c, 0xe6, 0x39, 0x5f, 0xb9, 0xd4, 0xe1, 0x72,
+  0x47, 0xbb, 0x7a, 0x64, 0xcc, 0x16, 0x7a, 0x50, 0xee, 0x29, 0x10, 0x50,
+  0xaa, 0xa7, 0x95, 0xb4, 0x9d, 0x69, 0x46, 0x6c, 0x63, 0x49, 0x29, 0x99,
+  0x8c, 0x37, 0xd9, 0x27, 0xce, 0x5d, 0x08, 0xf5, 0x26, 0x51, 0xd2, 0x6e,
+  0xc0, 0x08, 0x4e, 0xcf, 0x1e, 0x0c, 0x0f, 0x8f, 0x8f, 0x5b, 0x99, 0x0e,
+  0x34, 0x79, 0xcc, 0x60, 0x83, 0xdc, 0xc9, 0x9a, 0xb8, 0x7c, 0xc8, 0x03,
+  0x8d, 0xee, 0xc6, 0xb8, 0x27, 0x6d, 0x41, 0xee, 0x2c, 0xad, 0x73, 0xad,
+  0x0e, 0x91, 0x72, 0x18, 0x77, 0x51, 0x98, 0x6e, 0xc2, 0x5e, 0xb8, 0x59,
+  0x18, 0xe3, 0xf0, 0xb7, 0x4f, 0x34, 0x8e, 0xd7, 0x9a, 0x97, 0xd9, 0xe2,
+  0x73, 0xe5, 0x3b, 0xad, 0xc3, 0xbd, 0x16, 0x21, 0x7a, 0x3c, 0xaf, 0xa4,
+  0x14, 0x00, 0xe7, 0xd3, 0x0b, 0x53, 0x23, 0x55, 0xab, 0x23, 0xa6, 0x13,
+  0x6e, 0xd9, 0x8c, 0x55, 0xfd, 0xe0, 0x4c, 0x49, 0x27, 0x82, 0x24, 0x52,
+  0x14, 0x50, 0x3c, 0x82, 0xf5, 0x4a, 0x77, 0x68, 0xf7, 0xf2, 0xc2, 0x47,
+  0x56, 0x9e, 0x00, 0xb2, 0x74, 0x71, 0x06, 0xa4, 0x47, 0xad, 0x53, 0x60,
+  0x0f, 0x01, 0xcd, 0x80, 0x3d, 0x02, 0xff, 0xa2, 0x13, 0x40, 0x47, 0xc0,
+  0x23, 0x35, 0x7f, 0xfc, 0x10, 0xc0, 0xa6, 0x5a, 0xff, 0xc3, 0x7a, 0x9c,
+  0x0a, 0xf4, 0x09, 0x27, 0xa9, 0x95, 0xa2, 0xfa, 0xaf, 0xdd, 0x69, 0x91,
+  0x9c, 0x59, 0x4f, 0x88, 0xf9, 0x6b, 0xba, 0x28, 0xf2, 0x4f, 0x40, 0x6d,
+  0x9a, 0x5b, 0xfe, 0x35, 0x31, 0x11, 0x2f, 0x21, 0xdc, 0x3c, 0xd4, 0xba,
+  0xcf, 0xb6, 0xda, 0xb7, 0xf9, 0xf0, 0x07, 0xf3, 0x72, 0x32, 0x29, 0x67,
+  0x14, 0xc1, 0xe3, 0x36, 0x7a, 0x3e, 0xeb, 0x19, 0xc4, 0x7a, 0x24, 0x02,
+  0x58, 0x64, 0x0d, 0x61, 0xac, 0x56, 0x3a, 0xe9, 0xda, 0x8e, 0xcf, 0x4b,
+  0xb0, 0xea, 0xcf, 0x09, 0x18, 0xb8, 0xa2, 0x6a, 0x13, 0x07, 0x4b, 0x1d,
+  0x12, 0xaf, 0x8b, 0xf5, 0xf6, 0xd8, 0x48, 0xdb, 0x75, 0x72, 0x89, 0xa6,
+  0x3e, 0x1a, 0xac, 0xb4, 0x7c, 0xb4, 0x8e, 0xcd, 0x39, 0xef, 0xba, 0x58,
+  0xc0, 0x17, 0xec, 0x3c, 0xd1, 0x52, 0x6b, 0x61, 0x25, 0x17, 0x2a, 0xf3,
+  0xd7, 0xba, 0x2a, 0x37, 0x2d, 0xd6, 0x6b, 0xf0, 0x55, 0xe4, 0x53, 0xda,
+  0xfc, 0xdb, 0x1a, 0xa9, 0x99, 0x86, 0xf8, 0x3a, 0x47, 0xa5, 0xcc, 0xa2,
+  0x8e, 0xc0, 0xdc, 0x70, 0xd7, 0xd2, 0xbf, 0x91, 0x6a, 0xae, 0xf1, 0xe7,
+  0xf6, 0x20, 0x84, 0x1e, 0x3d, 0x5a, 0xd2, 0x96, 0x5d, 0xe9, 0x37, 0x54,
+  0x61, 0x4b, 0xfb, 0x55, 0xf1, 0x46, 0x6c, 0xd7, 0x50, 0x53, 0xef, 0xbc,
+  0x47, 0xbe, 0x1c, 0xa9, 0xb2, 0x29, 0x3a, 0x98, 0xe8, 0x4e, 0x4c, 0x3f,
+  0x44, 0x50, 0x7a, 0xa2, 0x07, 0xa5, 0x48, 0xbc, 0x2d, 0xe8, 0xc3, 0x0b,
+  0xeb, 0x55, 0x86, 0x0d, 0x82, 0x3c, 0x94, 0xc2, 0x3f, 0xf0, 0x91, 0x91,
+  0x38, 0x35, 0x65, 0xa1, 0x80, 0xec, 0x4d, 0xa3, 0x3e, 0x6b, 0xd5, 0x54,
+  0x6a, 0x91, 0xa8, 0x3d, 0x5d, 0xf9, 0xdc, 0x80, 0xa4, 0x72, 0xd9, 0x69,
+  0xd2, 0x8c, 0x56, 0x37, 0x51, 0x24, 0x39, 0x36, 0x53, 0xa5, 0xb8, 0x21,
+  0xa7, 0xdf, 0x96, 0xaa, 0x96, 0xe6, 0x84, 0xe7, 0x85, 0xbf, 0xdd, 0x03,
+  0x35, 0x52, 0xfc, 0xbc, 0x2c, 0x95, 0xcc, 0xf6, 0x16, 0xe6, 0xb8, 0xcc,
+  0xba, 0x2b, 0xbc, 0xef, 0x0c, 0xfc, 0xef, 0x30, 0x20, 0x76, 0x2b, 0x60,
+  0x1a, 0x7d, 0xe8, 0x56, 0xbc, 0xb2, 0xdf, 0xa6, 0x7e, 0x5a, 0xa8, 0x15,
+  0xf7, 0x0c, 0x50, 0x1f, 0xc2, 0x4e, 0x21, 0x86, 0x12, 0x9e, 0x44, 0x24,
+  0xc6, 0xb1, 0x85, 0x43, 0x20, 0x4e, 0xb0, 0x0c, 0x41, 0xe4, 0xba, 0x5a,
+  0x5c, 0x12, 0x5f, 0x16, 0x36, 0x21, 0x6d, 0x96, 0x3c, 0xd3, 0x61, 0x73,
+  0xbc, 0x88, 0x91, 0x49, 0xfd, 0x4b, 0x27, 0x31, 0x80, 0x64, 0x5a, 0x78,
+  0xa0, 0x2d, 0xf9, 0x3c, 0x11, 0x36, 0x97, 0x85, 0xab, 0x79, 0x1b, 0xe5,
+  0x5b, 0x15, 0x4e, 0xbd, 0xe4, 0x88, 0xde, 0x08, 0x1b, 0xfb, 0x23, 0x5a,
+  0x21, 0x1e, 0x42, 0xaf, 0xbe, 0x04, 0x4a, 0xb5, 0x05, 0x3b, 0x4b, 0xf6,
+  0x9e, 0xd0, 0x36, 0x22, 0xab, 0x6c, 0x20, 0xd4, 0xc9, 0xa4, 0xb6, 0xab,
+  0xa2, 0x99, 0xac, 0x5f, 0x4f, 0xcb, 0xd1, 0xc8, 0x0c, 0x7b, 0xdd, 0x53,
+  0x4b, 0xcd, 0x97, 0x03, 0x97, 0x90, 0xdf, 0x0f, 0xeb, 0x9c, 0xec, 0x71,
+  0x90, 0x5d, 0xd8, 0x77, 0xe8, 0x4a, 0xd6, 0x74, 0x09, 0xf9, 0xbe, 0x56,
+  0x0a, 0x8e, 0xdc, 0x34, 0x82, 0x82, 0x93, 0xad, 0x41, 0x03, 0xf3, 0x50,
+  0x8d, 0x92, 0xb5, 0x40, 0x3f, 0xd5, 0x0e, 0x26, 0x5c, 0xc7, 0x76, 0x45,
+  0x65, 0x68, 0x11, 0x61, 0x10, 0x5c, 0xc2, 0x6d, 0x9f, 0x87, 0x45, 0x67,
+  0x79, 0x16, 0xda, 0x03, 0x5a, 0xff, 0x2f, 0xfa, 0x63, 0xb7, 0x47, 0xff,
+  0xdd, 0xfb, 0xc7, 0x7a, 0x42, 0x56, 0xcc, 0xfe, 0xf6, 0xf6, 0xfd, 0xfd,
+  0xfd, 0x40, 0x78, 0x54, 0x07, 0x66, 0xc9, 0xd6, 0x42, 0x7c, 0x3f, 0x71,
+  0x55, 0x2c, 0xf9, 0xc0, 0x65, 0xb2, 0x9e, 0xcf, 0xae, 0x7f, 0xd8, 0xed,
+  0xef, 0xee, 0xec, 0xec, 0xfc, 0x34, 0x98, 0xd3, 0x14, 0x5f, 0xa1, 0x59,
+  0xf3, 0x5f, 0xbf, 0xd9, 0x6d, 0xee, 0xc9, 0x76, 0x9c, 0xfe, 0x87, 0x7f,
+  0xa9, 0x56, 0xbb, 0x99, 0x59, 0x50, 0x72, 0xf2, 0x56, 0xde, 0xf7, 0xc4,
+  0x0c, 0x3b, 0xc5, 0x53, 0x2f, 0xc9, 0xbc, 0x2b, 0xf6, 0xe1, 0xa6, 0x22,
+  0x3f, 0xe0, 0x8b, 0x67, 0x7b, 0x7b, 0x09, 0xab, 0x1c, 0x0c, 0x42, 0xe7,
+  0xb8, 0x0c, 0x71, 0x69, 0x4b, 0xe1, 0x2a, 0xbe, 0xcd, 0xa8, 0xfa, 0x38,
+  0x95, 0x39, 0x66, 0x4b, 0xb9, 0x9b, 0xcb, 0xa7, 0x70, 0x07, 0x2e, 0x41,
+  0x6b, 0x04, 0x99, 0x91, 0x3f, 0xe5, 0xe4, 0xc1, 0x35, 0xac, 0xa5, 0xac,
+  0xb9, 0xbe, 0x84, 0x2d, 0xc0, 0x9a, 0xd6, 0x31, 0xbd, 0xcd, 0x92, 0xa9,
+  0xe3, 0x9a, 0x03, 0x57, 0x52, 0x51, 0x4a, 0xf9, 0x24, 0x04, 0x21, 0xae,
+  0x16, 0x95, 0xb0, 0x18, 0x23, 0x6a, 0x73, 0x9f, 0x3e, 0xb4, 0xae, 0x7b,
+  0x33, 0xe3, 0xaf, 0xcd, 0x7f, 0x96, 0x15, 0x3c, 0x4c, 0xb5, 0xf2, 0xcf,
+  0x55, 0xd6, 0x8c, 0x6f, 0xba, 0xb8, 0x91, 0x04, 0x02, 0x9c, 0x94, 0xf7,
+  0x1b, 0x33, 0x9a, 0x07, 0xad, 0xf0, 0xb3, 0xac, 0xa6, 0x80, 0xcb, 0xbe,
+  0x31, 0x8d, 0x12, 0xa9, 0x27, 0xca, 0x0a, 0x70, 0x99, 0x31, 0x96, 0x8a,
+  0xcb, 0x4a, 0x8e, 0xdb, 0xba, 0x16, 0xf4, 0xd1, 0x59, 0x5e, 0x6b, 0x76,
+  0xd0, 0xf8, 0x26, 0x9b, 0x89, 0xc4, 0xdc, 0x54, 0xfc, 0xc7, 0xba, 0x6c,
+  0xc2, 0xf5, 0xf0, 0x52, 0x5b, 0xbf, 0x92, 0xdf, 0x98, 0xc1, 0x6c, 0x49,
+  0x76, 0x8d, 0xbd, 0xe7, 0x84, 0xe9, 0xf8, 0x7a, 0x41, 0x76, 0xe3, 0x28,
+  0x95, 0x0b, 0x45, 0x13, 0xbe, 0xe0, 0xfd, 0x8d, 0x25, 0xeb, 0x19, 0xa1,
+  0x98, 0x55, 0xb8, 0xc7, 0xc8, 0x39, 0xd2, 0x17, 0xed, 0x47, 0xae, 0x55,
+  0x44, 0xcb, 0xcc, 0x89, 0x7d, 0x7b, 0x7c, 0x78, 0xd9, 0xe3, 0x0a, 0xd7,
+  0x04, 0x8a, 0xed, 0x21, 0xbf, 0x25, 0x24, 0xa2, 0x3e, 0x7f, 0x46, 0x67,
+  0x03, 0x1b, 0x55, 0x0a, 0xc3, 0xa4, 0x0e, 0x2f, 0xe0, 0xa1, 0x37, 0x25,
+  0xbd, 0xc1, 0xa3, 0x10, 0x8f, 0xf0, 0x42, 0xb7, 0xf4, 0x44, 0x9b, 0x1f,
+  0xf5, 0xfc, 0xc5, 0x60, 0x87, 0xc7, 0xe8, 0xea, 0x2a, 0x29, 0x1e, 0x1b,
+  0x3e, 0x9e, 0x5a, 0x58, 0xc1, 0xd2, 0x25, 0x8c, 0x86, 0xda, 0x9d, 0x5e,
+  0xc2, 0x24, 0x78, 0x9c, 0x30, 0xa9, 0xbf, 0xf5, 0xa0, 0x1f, 0x2b, 0x75,
+  0x53, 0xbf, 0xd0, 0x65, 0xbb, 0xfc, 0xbc, 0x94, 0x46, 0x27, 0x7a, 0x39,
+  0xcd, 0xa6, 0x90, 0xec, 0xde, 0x18, 0x28, 0x1e, 0x7b, 0x02, 0x70, 0x3e,
+  0x46, 0x87, 0xf5, 0x1c, 0xaf, 0x74, 0x49, 0xb7, 0x80, 0x5c, 0x59, 0x82,
+  0xb1, 0x6e, 0x15, 0xff, 0x88, 0x69, 0x28, 0x01, 0x65, 0x77, 0xff, 0x4b,
+  0xa9, 0xdf, 0xc4, 0x9a, 0x72, 0x0c, 0xe0, 0x4d, 0x4b, 0xb9, 0xa5, 0x90,
+  0x1d, 0xb6, 0x5c, 0x55, 0xe5, 0x1c, 0x90, 0x0b, 0x2f, 0xe1, 0x75, 0x97,
+  0xfe, 0x72, 0xfd, 0x2d, 0x80, 0x07, 0x03, 0xb6, 0xf8, 0x8c, 0xec, 0x99,
+  0xb1, 0x16, 0x92, 0x15, 0xb2, 0x2e, 0x39, 0x81, 0xb4, 0x13, 0x60, 0xee,
+  0xc1, 0x41, 0xb5, 0xfe, 0x27, 0xf2, 0x43, 0xbf, 0x39, 0x58, 0x6f, 0x9d,
+  0xc8, 0x18, 0x33, 0x75, 0xcd, 0xd2, 0xad, 0x6d, 0xcb, 0x88, 0x4c, 0x23,
+  0xb9, 0x9f, 0x7d, 0x6a, 0xa4, 0x76, 0x36, 0x6a, 0x1a, 0x15, 0xcf, 0xf6,
+  0x92, 0xfa, 0xc1, 0xa8, 0x11, 0x33, 0x7f, 0x12, 0xba, 0x45, 0xac, 0xa2,
+  0xde, 0xf7, 0x16, 0x13, 0x3f, 0xcb, 0xad, 0x0f, 0xf4, 0xca, 0x01, 0x5e,
+  0x11, 0xde, 0x6e, 0x05, 0x1f, 0x3c, 0xa1, 0x32, 0x5a, 0x99, 0xa8, 0x14,
+  0x1b, 0x4d, 0xd3, 0xe2, 0xb6, 0xb6, 0x9a, 0x36, 0x5a, 0xea, 0x51, 0xc1,
+  0x11, 0xce, 0x17, 0x71, 0x3f, 0x14, 0x40, 0x02, 0x6e, 0xc6, 0x68, 0xd5,
+  0xf8, 0x59, 0x5a, 0xdd, 0x2a, 0xfa, 0x6d, 0x65, 0xd5, 0x35, 0x57, 0x76,
+  0x2d, 0x3e, 0xb7, 0xae, 0x0e, 0xdb, 0x6f, 0x17, 0x47, 0x5d, 0xe8, 0xac,
+  0x1b, 0x09, 0x6d, 0xfe, 0xbb, 0xaf, 0xf1, 0x85, 0x55, 0xc5, 0x69, 0xf1,
+  0xb8, 0x2d, 0x99, 0x65, 0x23, 0x12, 0x7e, 0x11, 0x14, 0x56, 0xe6, 0x5c,
+  0x24, 0x24, 0x96, 0x72, 0x31, 0x48, 0xce, 0x9c, 0xf1, 0x58, 0xf4, 0xc0,
+  0x11, 0xd6, 0x54, 0x63, 0x31, 0x1d, 0xf1, 0xf7, 0xbe, 0xd6, 0x33, 0x8c,
+  0xcd, 0x00, 0xd8, 0xd9, 0x09, 0xcc, 0xf1, 0x60, 0x45, 0x7e, 0xab, 0x77,
+  0x0a, 0xf3, 0x12, 0x99, 0x66, 0x64, 0x08, 0x15, 0xa5, 0xe0, 0xd8, 0x5b,
+  0x1a, 0x40, 0xca, 0x78, 0x10, 0x71, 0x5e, 0x78, 0xae, 0x40, 0x6e, 0xcb,
+  0x90, 0xb8, 0xc7, 0x6b, 0x09, 0xc0, 0x4d, 0xcd, 0x1d, 0x48, 0xb5, 0xe5,
+  0x0b, 0x8f, 0xfd, 0xd3, 0x88, 0xaf, 0xb2, 0xe8, 0x05, 0x0c, 0x02, 0xc4,
+  0xb6, 0xc7, 0xfe, 0x25, 0x02, 0x33, 0xcc, 0xa4, 0xfa, 0x93, 0x2d, 0x21,
+  0x93, 0xf2, 0x7b, 0xba, 0x0f, 0xfd, 0x2f, 0x3f, 0x52, 0xa8, 0x86, 0x69,
+  0x8e, 0x75, 0x31, 0xcc, 0xc6, 0xeb, 0x31, 0x3a, 0x7f, 0x09, 0x73, 0xa1,
+  0x9c, 0xfc, 0x6f, 0x8c, 0xbd, 0x9e, 0x55, 0xa5, 0x11, 0x1a, 0xdf, 0xbe,
+  0x50, 0x98, 0x81, 0x14, 0xbe, 0x92, 0xfb, 0x49, 0xd6, 0x12, 0xb3, 0x0d,
+  0x86, 0x8e, 0xa8, 0xdb, 0x84, 0xe5, 0xa1, 0xbe, 0x29, 0x17, 0x14, 0x9b,
+  0x6d, 0x45, 0x77, 0x59, 0xe8, 0xea, 0x32, 0x7d, 0x44, 0x35, 0xac, 0xe0,
+  0xfa, 0x64, 0xf3, 0x59, 0x8c, 0x01, 0x40, 0x39, 0x17, 0x63, 0xd2, 0x75,
+  0xc8, 0xc1, 0x63, 0x04, 0x56, 0x39, 0x6a, 0x70, 0xf5, 0xa5, 0xae, 0xe7,
+  0x97, 0x39, 0x39, 0x01, 0x96, 0x14, 0x1a, 0x62, 0x24, 0x9e, 0x5c, 0x74,
+  0x8e, 0x55, 0xaf, 0x13, 0xa3, 0x23, 0xcd, 0xa2, 0xbe, 0xa1, 0xbb, 0x99,
+  0xee, 0x0c, 0x18, 0x7e, 0x6b, 0x71, 0x96, 0x38, 0x9a, 0xb4, 0xd3, 0xcb,
+  0x93, 0xf7, 0xbd, 0xce, 0x49, 0x08, 0x2a, 0x03, 0xeb, 0xd6, 0x84, 0x0b,
+  0x28, 0xe2, 0x54, 0xb7, 0x0b, 0xdb, 0x73, 0xc0, 0x72, 0xce, 0x45, 0xa4,
+  0xa9, 0xeb, 0x49, 0xaa, 0x49, 0x25, 0x80, 0x65, 0xb5, 0x05, 0x79, 0x5e,
+  0x43, 0xef, 0x26, 0xc1, 0x74, 0x6a, 0xf8, 0x09, 0x60, 0x3e, 0x1b, 0x51,
+  0x63, 0xb6, 0xa3, 0x57, 0x69, 0x20, 0xdc, 0xd7, 0x65, 0xeb, 0xd0, 0xf8,
+  0x0b, 0x46, 0xdb, 0x90, 0x79, 0x34, 0x93, 0xb7, 0xe5, 0x7d, 0xd1, 0x3f,
+  0xa1, 0xac, 0x93, 0xe4, 0xa4, 0xbc, 0x26, 0x0b, 0xe9, 0x34, 0x6e, 0xc9,
+  0x7f, 0x38, 0x3f, 0x4d, 0x36, 0x49, 0x12, 0x27, 0xe7, 0x96, 0xfb, 0x82,
+  0x1e, 0xdd, 0x12, 0x8d, 0xb3, 0xe6, 0x5b, 0x4a, 0x7a, 0xd3, 0x4b, 0x8e,
+  0xbe, 0x3f, 0x78, 0x7f, 0x7e, 0x72, 0xf4, 0xe3, 0x92, 0x20, 0x37, 0xfd,
+  0xf8, 0xcf, 0x9e, 0x16, 0x0e, 0xaf, 0x3d, 0xc5, 0x9e, 0x4c, 0x4f, 0x1e,
+  0x96, 0xc9, 0x02, 0x3e, 0x3e, 0xba, 0x05, 0x87, 0xc3, 0xf3, 0xe3, 0xbe,
+  0xd4, 0x78, 0x95, 0xd2, 0x14, 0x79, 0x41, 0x0a, 0x33, 0x1f, 0x60, 0x61,
+  0x3f, 0xa5, 0x5d, 0xd4, 0x0f, 0x0c, 0x75, 0x39, 0x0f, 0xbd, 0xe4, 0x54,
+  0x49, 0x0b, 0x7b, 0x58, 0x74, 0xba, 0xe2, 0xdf, 0xe6, 0xd7, 0x88, 0x32,
+  0xb4, 0x37, 0x50, 0xa3, 0xb5, 0x63, 0xc7, 0x01, 0x5a, 0x95, 0xb2, 0xd2,
+  0x6c, 0x78, 0xa8, 0xce, 0xa6, 0xec, 0xd0, 0x5a, 0x2a, 0x45, 0x19, 0x86,
+  0x84, 0x55, 0x04, 0x0c, 0x32, 0x08, 0x9f, 0x08, 0x2c, 0x72, 0x64, 0xa5,
+  0x9e, 0xa8, 0xa9, 0xbc, 0x43, 0x58, 0x7a, 0xc8, 0x35, 0x63, 0x85, 0xc3,
+  0xbe, 0xb1, 0xd5, 0x17, 0xc9, 0xfe, 0xfa, 0x6f, 0x78, 0x91, 0xf8, 0xde,
+  0xbf, 0x08, 0x8b, 0xb6, 0x8d, 0x30, 0x5a, 0x5f, 0x31, 0xa7, 0xe8, 0xb2,
+  0x1b, 0x53, 0x9d, 0x30, 0xf0, 0x7f, 0x9a, 0x93, 0x2e, 0x2a, 0xde, 0x68,
+  0x71, 0x7d, 0x1d, 0x49, 0xe3, 0xa5, 0x5a, 0x14, 0x59, 0xa6, 0x95, 0xd0,
+  0x37, 0xea, 0x84, 0x7d, 0xba, 0xa6, 0xff, 0xeb, 0x88, 0x55, 0xb1, 0x0c,
+  0xb9, 0x29, 0xcb, 0xc9, 0x3a, 0x43, 0x7a, 0xd8, 0x2d, 0x8d, 0xf2, 0xb9,
+  0x61, 0x73, 0x1c, 0x7b, 0xdf, 0xf8, 0x62, 0x23, 0x91, 0x50, 0x9b, 0x51,
+  0xee, 0xe5, 0x56, 0x26, 0xad, 0x66, 0x9d, 0xd5, 0x9a, 0x11, 0xd7, 0x37,
+  0xe9, 0x25, 0x1b, 0xaf, 0x37, 0xe4, 0x39, 0x79, 0xac, 0x2b, 0x70, 0xf0,
+  0x0e, 0x47, 0x7d, 0x58, 0xd9, 0x1d, 0x5b, 0xbf, 0x98, 0x99, 0xde, 0x9b,
+  0x7c, 0x32, 0xe1, 0xca, 0xca, 0x52, 0x2d, 0x40, 0x98, 0x66, 0xa4, 0xce,
+  0x51, 0x70, 0x31, 0xa1, 0xeb, 0xda, 0x73, 0xee, 0xeb, 0xc6, 0xbf, 0x6b,
+  0x0f, 0xbc, 0x6a, 0x3a, 0xe4, 0xa6, 0x76, 0x24, 0xf7, 0xf2, 0xd5, 0x65,
+  0x27, 0x05, 0xb1, 0x10, 0x98, 0x4b, 0xd0, 0x8d, 0xd4, 0x5a, 0x6c, 0x61,
+  0xe3, 0x7b, 0x1d, 0xe8, 0x39, 0x62, 0x1d, 0xa1, 0x4b, 0xab, 0xb1, 0xcc,
+  0x4a, 0x28, 0x87, 0x5c, 0x11, 0xad, 0x33, 0x17, 0x57, 0xa3, 0x72, 0x00,
+  0x4b, 0xbe, 0xaf, 0xde, 0x3e, 0xb7, 0xf1, 0x38, 0x8f, 0x4c, 0xf1, 0x7f,
+  0x64, 0x89, 0xe1, 0xc1, 0xac, 0x80, 0xdf, 0x57, 0xb5, 0xfd, 0x5e, 0x98,
+  0xc5, 0xcc, 0x94, 0xf3, 0x2c, 0x97, 0x35, 0x58, 0xe0, 0xe0, 0xf8, 0x12,
+  0x3f, 0x53, 0xfc, 0x5e, 0xcc, 0xf5, 0xe6, 0x27, 0x59, 0xb4, 0xe9, 0xfb,
+  0xc5, 0xbf, 0x09, 0x5a, 0xce, 0x95, 0xf9, 0x39, 0xad, 0xf4, 0x84, 0xc1,
+  0x72, 0xea, 0x0c, 0x3f, 0x18, 0x13, 0xa2, 0x7a, 0xa2, 0xae, 0xf2, 0x6f,
+  0xe5, 0x54, 0x45, 0x50, 0x84, 0x6f, 0x25, 0x98, 0xd2, 0x2a, 0x06, 0xcc,
+  0x48, 0x78, 0x76, 0x25, 0x15, 0xca, 0xdd, 0xcd, 0x21, 0x5b, 0x8d, 0x1e,
+  0xe7, 0xf0, 0xf8, 0xd6, 0x83, 0x88, 0xa2, 0xc3, 0x8a, 0x0b, 0xb6, 0x9c,
+  0x8c, 0x46, 0x4a, 0xb7, 0x53, 0x70, 0x45, 0xdf, 0x27, 0x47, 0x14, 0x1f,
+  0x05, 0x17, 0x0d, 0x8e, 0x84, 0xdb, 0x70, 0x7f, 0x3c, 0xb3, 0x55, 0x29,
+  0xcd, 0xa3, 0x55, 0x5a, 0x71, 0xa1, 0xa6, 0xe2, 0x56, 0x61, 0x3c, 0x5c,
+  0x5e, 0x3a, 0x1b, 0x2f, 0x9a, 0x36, 0xc2, 0xdb, 0x57, 0xbe, 0x24, 0xa3,
+  0x9f, 0xbb, 0xb5, 0x89, 0xa3, 0xa0, 0x06, 0xca, 0xb9, 0xa6, 0x63, 0xef,
+  0xaf, 0x6f, 0x49, 0x68, 0x8f, 0x42, 0x3e, 0x36, 0x4b, 0x3b, 0x16, 0xb3,
+  0xd3, 0x3e, 0x57, 0x19, 0xfb, 0xd8, 0x5c, 0xf8, 0x3a, 0xfa, 0x79, 0xae,
+  0xac, 0x19, 0xf9, 0xf6, 0x3b, 0xf6, 0xc6, 0x78, 0x9f, 0xb6, 0x85, 0x32,
+  0xc4, 0x51, 0x53, 0x07, 0x47, 0x39, 0xf8, 0x32, 0x0a, 0x55, 0x0d, 0x92,
+  0x03, 0x5b, 0xd2, 0x4c, 0x5f, 0xd5, 0xf9, 0x0f, 0x1c, 0x64, 0xc7, 0xe7,
+  0x77, 0x2f, 0x3d, 0xff, 0x26, 0xdd, 0x79, 0xf8, 0x91, 0x95, 0xf8, 0xc1,
+  0x28, 0x6e, 0xab, 0xd1, 0x73, 0xf3, 0xc7, 0x37, 0xf4, 0x07, 0x89, 0x55,
+  0x32, 0x27, 0x99, 0x4c, 0x85, 0x3d, 0x73, 0xe1, 0xd6, 0x1e, 0x9e, 0xd8,
+  0x3f, 0x64, 0xd1, 0x01, 0xe1, 0x25, 0x20, 0x3e, 0x51, 0xaf, 0xb8, 0x24,
+  0x78, 0x28, 0xbf, 0xda, 0x4e, 0x4f, 0x93, 0x63, 0xe2, 0xe8, 0x46, 0x30,
+  0x85, 0xc0, 0x3d, 0x61, 0xfe, 0x4b, 0x5e, 0x88, 0x21, 0x0b, 0xf2, 0x32,
+  0x96, 0x1e, 0x61, 0xa6, 0xea, 0xef, 0xe4, 0xbc, 0xd6, 0x3a, 0xa8, 0x28,
+  0xcb, 0x37, 0xb3, 0x70, 0x58, 0x18, 0x46, 0x36, 0xc6, 0xcf, 0xfe, 0x4a,
+  0x3a, 0x66, 0x2c, 0xce, 0x42, 0x54, 0x94, 0x25, 0x48, 0x59, 0x36, 0x64,
+  0x5c, 0xee, 0xf2, 0x47, 0xe7, 0x66, 0x5f, 0x39, 0x55, 0x6f, 0x91, 0x1c,
+  0x24, 0x07, 0x9e, 0x8f, 0xc2, 0x82, 0x2b, 0x17, 0xea, 0x62, 0x33, 0x46,
+  0x02, 0xab, 0x83, 0x87, 0xc5, 0x2e, 0x64, 0xc5, 0x64, 0x49, 0x3f, 0x67,
+  0xa8, 0x25, 0x41, 0x54, 0xb5, 0x90, 0x0a, 0xb7, 0x1a, 0xbd, 0x9c, 0x65,
+  0x33, 0x0a, 0x86, 0xd8, 0x7b, 0x51, 0xb8, 0x1b, 0x60, 0xfe, 0xd3, 0xc7,
+  0xfa, 0xf1, 0xe6, 0x26, 0xa4, 0xbf, 0xd1, 0x15, 0xcb, 0x68, 0x9b, 0xdf,
+  0x05, 0x11, 0xb0, 0xfa, 0xa1, 0x18, 0xdf, 0xbc, 0x3d, 0x1d, 0xc6, 0x5f,
+  0x0f, 0x07, 0x87, 0xe7, 0x8d, 0x1e, 0x42, 0x9b, 0x41, 0x8a, 0x43, 0x82,
+  0xb8, 0x88, 0x4a, 0xe5, 0x7a, 0xbf, 0x8b, 0x37, 0xd7, 0x7a, 0xc1, 0xfa,
+  0x86, 0x48, 0xb1, 0x60, 0x21, 0x2e, 0x9a, 0x27, 0x30, 0xd6, 0xfd, 0x94,
+  0x8e, 0x42, 0xbc, 0x04, 0x8c, 0x3d, 0xd3, 0x14, 0x41, 0x40, 0xa9, 0x3c,
+  0x34, 0x59, 0x79, 0x78, 0xa1, 0xee, 0xbe, 0x06, 0x4d, 0xb5, 0xfe, 0xf1,
+  0x73, 0x96, 0xf9, 0x24, 0xad, 0xae, 0xb3, 0x48, 0xc0, 0xc9, 0x9f, 0xa1,
+  0x16, 0x44, 0xc4, 0x8b, 0x07, 0x9a, 0xbd, 0x3a, 0xa5, 0xd7, 0x79, 0x9b,
+  0xf6, 0x64, 0xb7, 0xe2, 0x47, 0xd5, 0xb2, 0x21, 0x99, 0x49, 0xd9, 0xfb,
+  0xea, 0xcb, 0xf0, 0xf6, 0x7c, 0x7b, 0xba, 0xe4, 0x73, 0xf4, 0x9b, 0xbe,
+  0x82, 0xe5, 0x45, 0x23, 0xf0, 0x54, 0xfa, 0x70, 0x2e, 0x84, 0xd4, 0x31,
+  0xde, 0x01, 0x65, 0x7c, 0x7c, 0x44, 0x4a, 0x98, 0x27, 0xe4, 0x8f, 0x95,
+  0x0f, 0x0a, 0xcc, 0x35, 0xfe, 0x29, 0xc2, 0xbf, 0x6e, 0x0e, 0x39, 0x23,
+  0xf6, 0x82, 0x03, 0x7b, 0xe7, 0xa2, 0x09, 0x6f, 0x45, 0x96, 0x68, 0x29,
+  0xc8, 0xd6, 0x99, 0x41, 0x49, 0x8c, 0x8a, 0x80, 0xe4, 0xc2, 0x1e, 0xff,
+  0xb1, 0xbd, 0x67, 0xe1, 0x4a, 0x36, 0xdf, 0x01, 0x87, 0xd4, 0x5c, 0xe0,
+  0xa1, 0x82, 0x50, 0xe4, 0x9f, 0x86, 0x88, 0x31, 0x2f, 0xd9, 0xcd, 0x08,
+  0x46, 0x73, 0x14, 0xda, 0xce, 0x01, 0x75, 0x54, 0x35, 0xb1, 0x68, 0x4f,
+  0x86, 0x9c, 0xbd, 0xf7, 0xd8, 0x66, 0xca, 0x23, 0x08, 0xab, 0x55, 0x7c,
+  0x4b, 0xef, 0x8d, 0x92, 0x44, 0x97, 0xeb, 0xe3, 0xc7, 0xd8, 0xee, 0x1b,
+  0xfb, 0x4e, 0xb2, 0x39, 0x32, 0x37, 0xb6, 0x97, 0x3d, 0x4d, 0xf2, 0xe6,
+  0x39, 0x90, 0xc9, 0xf1, 0xe6, 0x5e, 0x7c, 0xfe, 0xe2, 0xf9, 0xd6, 0x96,
+  0x96, 0xb6, 0x63, 0xc0, 0xc4, 0x88, 0x00, 0xf6, 0x39, 0xc9, 0x2d, 0x26,
+  0xa4, 0xa1, 0x09, 0xbe, 0x61, 0x36, 0x72, 0xe7, 0x88, 0x89, 0x37, 0x47,
+  0xf7, 0x98, 0xbe, 0x4a, 0x8b, 0x48, 0x26, 0x38, 0x24, 0xba, 0x35, 0x83,
+  0x53, 0x95, 0x89, 0xb5, 0xf3, 0xc2, 0x2f, 0x95, 0x0a, 0x88, 0x1b, 0x39,
+  0x3f, 0x14, 0xd7, 0x81, 0x85, 0x18, 0xd5, 0x9b, 0x36, 0xcc, 0x6c, 0x3c,
+  0xe7, 0x6b, 0x8f, 0xfe, 0xa0, 0xfd, 0x7c, 0x43, 0xd3, 0x4d, 0x5d, 0x39,
+  0x5f, 0x8c, 0xa6, 0xe6, 0x06, 0x1a, 0x52, 0x7d, 0xc1, 0x4f, 0xc9, 0x49,
+  0x5e, 0x37, 0x22, 0x8c, 0x61, 0x2b, 0x28, 0x68, 0x6e, 0xd9, 0x9d, 0xc3,
+  0x03, 0xa7, 0x9d, 0xc6, 0x5b, 0xcd, 0xcf, 0x25, 0x4f, 0x5c, 0x86, 0x12,
+  0xeb, 0x6d, 0xeb, 0x73, 0xfe, 0x56, 0xbd, 0xb8, 0xea, 0x2f, 0x1b, 0xd8,
+  0xa7, 0xac, 0xf6, 0xcc, 0xb8, 0xfe, 0x3d, 0x29, 0x88, 0x48, 0x91, 0x26,
+  0x37, 0x74, 0xf2, 0x9a, 0x55, 0xc1, 0x68, 0x1d, 0x23, 0x2e, 0xb5, 0x21,
+  0x49, 0x79, 0xbe, 0xd2, 0x08, 0xfd, 0x1b, 0x2e, 0x5b, 0xae, 0x9f, 0xcd,
+  0x08, 0xba, 0x69, 0x86, 0x1a, 0x9b, 0x24, 0xc8, 0x02, 0xd0, 0xb2, 0x2d,
+  0x55, 0x2a, 0xe6, 0x7d, 0x22, 0x5e, 0x0a, 0xf1, 0xbf, 0x02, 0x1b, 0x95,
+  0x22, 0xef, 0x1d, 0xde, 0x1a, 0x4e, 0xb7, 0x66, 0x37, 0xb0, 0x19, 0xc0,
+  0x24, 0x66, 0x81, 0xb5, 0x1d, 0xf4, 0x9a, 0xf4, 0x57, 0xb3, 0x5b, 0x4b,
+  0xbe, 0x12, 0x3a, 0x59, 0x68, 0x5e, 0x43, 0x93, 0xa9, 0x81, 0xf1, 0x9a,
+  0xac, 0x73, 0x7f, 0x08, 0x70, 0x4f, 0x77, 0x88, 0x46, 0x3f, 0x81, 0x9e,
+  0x51, 0x0d, 0x9f, 0x75, 0x64, 0x69, 0x1f, 0xb6, 0x77, 0x1a, 0xab, 0xc1,
+  0xcb, 0x3a, 0xdf, 0x9f, 0x15, 0x84, 0xb3, 0xae, 0xb1, 0xdb, 0x96, 0x71,
+  0x6f, 0x9b, 0xb3, 0xb3, 0x12, 0xc9, 0xfc, 0xe3, 0x80, 0x36, 0x6a, 0x9e,
+  0xa1, 0x0a, 0xf8, 0xfa, 0x9f, 0xfb, 0xeb, 0x71, 0xc5, 0xd7, 0xce, 0x01,
+  0xf9, 0x2e, 0x33, 0x58, 0xa1, 0x2d, 0x0b, 0x4d, 0xbf, 0x62, 0x0b, 0x72,
+  0x2f, 0x46, 0xc6, 0x8c, 0x6a, 0x16, 0xa1, 0x74, 0x94, 0x08, 0x1f, 0xf2,
+  0x24, 0x11, 0xa6, 0xa0, 0x95, 0x70, 0xc9, 0x8c, 0x30, 0xc7, 0x08, 0xab,
+  0xd7, 0x80, 0xbd, 0xcf, 0x9e, 0x66, 0x70, 0xf1, 0x4e, 0xcb, 0xfb, 0x00,
+  0x79, 0x4b, 0xee, 0x54, 0xd7, 0xbb, 0x76, 0x0e, 0x02, 0x55, 0x46, 0xfe,
+  0x2f, 0xfd, 0xe5, 0x47, 0x9a, 0xac, 0x7f, 0xe8, 0x64, 0x49, 0xb7, 0xd3,
+  0x20, 0x5d, 0x0f, 0x76, 0xf0, 0x1f, 0x30, 0x29, 0x7f, 0x25, 0x44, 0x0a,
+  0xcf, 0x8c, 0xe9, 0xf2, 0x0c, 0xcd, 0xfd, 0x61, 0x60, 0xf5, 0x5d, 0x6d,
+  0x82, 0x92, 0x8f, 0xd8, 0xaa, 0x1f, 0x3d, 0x04, 0xbe, 0x23, 0xda, 0x83,
+  0x3f, 0x16, 0x3d, 0x70, 0xe1, 0x19, 0xd3, 0x2b, 0x45, 0x1d, 0x4c, 0xaa,
+  0x84, 0xc3, 0xcb, 0xf8, 0x63, 0x25, 0xb9, 0xef, 0xc6, 0xe8, 0x30, 0x1d,
+  0x27, 0x83, 0x8c, 0x7f, 0x1e, 0x5a, 0x00, 0x84, 0x96, 0xd9, 0xc7, 0x6a,
+  0xfc, 0xa1, 0x5f, 0x3f, 0xcc, 0x46, 0xe5, 0x54, 0x36, 0x3a, 0x0d, 0xd7,
+  0xf4, 0x59, 0x7f, 0xc6, 0xcb, 0x82, 0xc8, 0x46, 0xdf, 0xcb, 0x5d, 0xed,
+  0x45, 0xf9, 0x63, 0xc9, 0x44, 0x29, 0xc7, 0x5c, 0xa5, 0x9c, 0xa0, 0xd7,
+  0x66, 0xbb, 0xff, 0x21, 0x61, 0x28, 0x0e, 0x02, 0x6f, 0x5c, 0xd5, 0x65,
+  0xa2, 0x81, 0xce, 0x85, 0xab, 0x62, 0x18, 0xcd, 0xdd, 0x88, 0x6e, 0x1e,
+  0x6f, 0x75, 0xac, 0x6d, 0x11, 0xcb, 0xfb, 0xa5, 0x13, 0x6a, 0x3a, 0xfa,
+  0x11, 0xc9, 0x22, 0xb2, 0xef, 0x0e, 0xf9, 0x67, 0xfd, 0x4b, 0xfc, 0x4c,
+  0x71, 0x07, 0x92, 0x67, 0x46, 0x91, 0x6c, 0x49, 0x04, 0x23, 0x1f, 0x65,
+  0x5c, 0x4a, 0xb5, 0xc1, 0x4c, 0x04, 0x15, 0x36, 0xa7, 0x3b, 0xe8, 0xa7,
+  0x1e, 0xa6, 0x8f, 0x9c, 0x6c, 0x6f, 0x6c, 0xfe, 0xd5, 0xad, 0x51, 0xe7,
+  0x08, 0xb1, 0x30, 0x4b, 0x05, 0xfe, 0xc3, 0x78, 0x1f, 0xbb, 0x8d, 0x95,
+  0x29, 0x42, 0xaa, 0x4d, 0x97, 0x83, 0xc7, 0x9a, 0xa3, 0x0b, 0x51, 0x21,
+  0xe8, 0x82, 0x94, 0x20, 0xdf, 0x93, 0xb9, 0x72, 0xf4, 0xfe, 0x6d, 0xca,
+  0x29, 0x43, 0x34, 0xa8, 0xe5, 0x47, 0xc6, 0x5a, 0xda, 0x7a, 0xe5, 0xec,
+  0x51, 0x62, 0xb0, 0xc6, 0x59, 0x2f, 0x71, 0xd1, 0x40, 0x85, 0x41, 0x25,
+  0x14, 0x38, 0x5c, 0xdd, 0x9c, 0x8d, 0x2a, 0xba, 0x1a, 0xe9, 0xa8, 0x72,
+  0x55, 0x32, 0x60, 0x0b, 0xfd, 0x44, 0x8d, 0x69, 0xf2, 0x6a, 0x46, 0x62,
+  0x47, 0x49, 0x44, 0xc4, 0x22, 0xee, 0xb4, 0xac, 0x7c, 0xbb, 0x7e, 0x46,
+  0x88, 0x80, 0x56, 0x37, 0xb7, 0xbc, 0x3a, 0xea, 0x55, 0x33, 0xff, 0x48,
+  0xb5, 0x1d, 0x1f, 0x3e, 0x12, 0xae, 0x0f, 0x6b, 0xa6, 0x3e, 0x77, 0xfc,
+  0x00, 0x33, 0xcb, 0x99, 0x6d, 0x8b, 0x39, 0xb5, 0x83, 0x4d, 0x3e, 0x2d,
+  0xd9, 0xa0, 0x79, 0x6c, 0x18, 0x6d, 0x04, 0x9d, 0x9f, 0x41, 0xbd, 0xd9,
+  0xae, 0x2b, 0xf0, 0x3c, 0xe8, 0x18, 0x05, 0xec, 0x3f, 0x22, 0xd2, 0x67,
+  0x37, 0x93, 0xb9, 0x6e, 0xb2, 0x2a, 0x1f, 0xfb, 0x45, 0x76, 0xf0, 0x00,
+  0xb6, 0x14, 0xf3, 0x25, 0x51, 0xe8, 0x2f, 0x4a, 0x0d, 0xd7, 0xf9, 0x1f,
+  0x78, 0x47, 0xa5, 0xa6, 0x10, 0x28, 0x8f, 0x14, 0x20, 0x96, 0x48, 0x6c,
+  0x96, 0x90, 0x08, 0x2e, 0x62, 0x7b, 0xfc, 0xc8, 0x38, 0xc1, 0x3d, 0xb9,
+  0x87, 0xb1, 0x1a, 0xf5, 0x2c, 0xad, 0x6d, 0x07, 0x79, 0x04, 0x38, 0x51,
+  0x18, 0xaf, 0x72, 0x5d, 0x3c, 0x7a, 0x0e, 0x19, 0xb2, 0x43, 0xb7, 0xfe,
+  0x60, 0xc9, 0xcc, 0x30, 0xd4, 0x52, 0x64, 0x80, 0x9b, 0x1a, 0x9e, 0x12,
+  0xd1, 0x73, 0xba, 0x93, 0x12, 0xc3, 0x08, 0x26, 0x5d, 0xfc, 0xbb, 0xf2,
+  0x82, 0x6c, 0xb2, 0x6b, 0x5b, 0xab, 0x0e, 0x6c, 0x09, 0x0e, 0x4c, 0x75,
+  0x24, 0xa5, 0x12, 0x79, 0xac, 0x39, 0x88, 0xa1, 0xce, 0x82, 0xef, 0x2d,
+  0x5b, 0x70, 0x55, 0x68, 0x65, 0x58, 0xf4, 0x33, 0xeb, 0xd4, 0xf0, 0x07,
+  0x95, 0x58, 0x19, 0x34, 0x7d, 0x48, 0xa2, 0xf4, 0xa3, 0x9d, 0xff, 0xf1,
+  0x3f, 0xff, 0x22, 0x56, 0xb6, 0x17, 0xc8, 0xcb, 0x8f, 0xf9, 0xdc, 0x13,
+  0x5e, 0xc7, 0xe7, 0xb6, 0xfa, 0xa8, 0x45, 0x73, 0x31, 0x40, 0x93, 0x4e,
+  0x84, 0x07, 0xf1, 0xa2, 0x53, 0xfe, 0xd8, 0x34, 0x8c, 0x91, 0x82, 0x98,
+  0xb0, 0xe9, 0xec, 0x51, 0x94, 0xf5, 0x55, 0x4b, 0x12, 0x43, 0xfa, 0xf8,
+  0x1c, 0xb5, 0x4a, 0x57, 0x37, 0x07, 0x17, 0x52, 0xab, 0xf2, 0xf1, 0xab,
+  0xa5, 0x43, 0xe2, 0x7a, 0xbb, 0x32, 0x24, 0xee, 0xbe, 0x4f, 0x42, 0xac,
+  0x05, 0xe8, 0x4b, 0x3e, 0x10, 0x7e, 0x37, 0x57, 0xf7, 0xc1, 0x1b, 0xc3,
+  0xa3, 0x3d, 0x31, 0xdf, 0xfa, 0xe8, 0x28, 0x2c, 0x93, 0x53, 0xa9, 0x63,
+  0x6b, 0xbe, 0x6d, 0xf4, 0x02, 0x47, 0x6e, 0x89, 0xda, 0x84, 0xb9, 0x16,
+  0x2c, 0x1b, 0xc3, 0xc3, 0x1b, 0xd3, 0x67, 0x93, 0x88, 0x7a, 0xdb, 0xd9,
+  0x5f, 0xcf, 0xa2, 0x7d, 0xd0, 0x32, 0x47, 0xb5, 0xed, 0x83, 0xe9, 0x82,
+  0xfb, 0xa1, 0xec, 0x2f, 0xba, 0x04, 0xcd, 0xb1, 0x91, 0xe2, 0x63, 0x5a,
+  0x67, 0xfd, 0x97, 0xed, 0xf3, 0xb0, 0x1f, 0x38, 0x4c, 0x1f, 0xeb, 0x7a,
+  0x4a, 0x9b, 0x3d, 0xbf, 0x7a, 0x30, 0x9d, 0xaa, 0x97, 0xe6, 0x18, 0xfb,
+  0x77, 0x29, 0x3f, 0xa7, 0x0b, 0xe6, 0x59, 0x96, 0x1b, 0x35, 0x9c, 0x7f,
+  0xf3, 0x8c, 0x2a, 0xbc, 0x32, 0x7b, 0xe2, 0x23, 0x33, 0x06, 0x72, 0x45,
+  0x7c, 0xde, 0x05, 0xc4, 0x44, 0x86, 0x5a, 0xbd, 0x61, 0x40, 0x35, 0xff,
+  0x60, 0x34, 0x3d, 0x3a, 0xf8, 0x56, 0x4b, 0xd4, 0x88, 0x8b, 0x01, 0xb7,
+  0x27, 0x84, 0x52, 0xb5, 0x82, 0x09, 0xd1, 0xf9, 0xff, 0xc8, 0x62, 0x05,
+  0x81, 0x5b, 0xad, 0xeb, 0x67, 0xab, 0x57, 0xa6, 0xb2, 0x3b, 0x34, 0xf4,
+  0x4a, 0x45, 0xd8, 0xb9, 0x06, 0xfb, 0x23, 0x43, 0xd5, 0xf2, 0x53, 0xbc,
+  0x9e, 0xde, 0x62, 0x6f, 0x12, 0xb6, 0x05, 0x94, 0x4b, 0x28, 0x44, 0x87,
+  0x5f, 0x2c, 0xf7, 0x45, 0x3a, 0x1a, 0xa4, 0x66, 0xcb, 0xe2, 0x76, 0x54,
+  0x6b, 0x13, 0xc8, 0x02, 0x48, 0x8c, 0x70, 0x07, 0x8c, 0x89, 0x38, 0x1b,
+  0x18, 0x9d, 0xf4, 0xb1, 0x6d, 0x23, 0xd4, 0x59, 0x5c, 0xe0, 0x00, 0xa6,
+  0xce, 0x35, 0x08, 0x1e, 0xca, 0xce, 0x56, 0x32, 0xf7, 0x4b, 0x64, 0xe6,
+  0xe8, 0x5e, 0xb5, 0x42, 0xeb, 0xd2, 0x5d, 0xb5, 0x6d, 0xd1, 0xf5, 0x4f,
+  0x1f, 0xf0, 0x25, 0x42, 0xaa, 0x23, 0x87, 0x1e, 0xbb, 0x23, 0xa3, 0xa2,
+  0x41, 0xc6, 0xa0, 0x52, 0xca, 0x1b, 0xc3, 0x32, 0x29, 0xf5, 0x5b, 0x09,
+  0x29, 0x01, 0x0e, 0xb6, 0x6c, 0x3a, 0x20, 0xc9, 0xe4, 0x17, 0x9b, 0xb5,
+  0x23, 0x9a, 0xa3, 0x4c, 0xa3, 0x89, 0xf5, 0xac, 0x6f, 0xc5, 0x18, 0x37,
+  0xba, 0x1a, 0x9d, 0xd9, 0xc1, 0xfe, 0xa5, 0x85, 0xb8, 0xed, 0xa3, 0x67,
+  0x83, 0x28, 0x4b, 0x3e, 0x5a, 0xba, 0x63, 0x8e, 0x70, 0xa0, 0x3e, 0xa2,
+  0x2b, 0x68, 0xcc, 0xe4, 0x33, 0x7c, 0x7e, 0x49, 0x72, 0xe9, 0xd3, 0x11,
+  0x67, 0x16, 0x5a, 0xd3, 0x60, 0xe9, 0xaa, 0xd6, 0x34, 0xc1, 0xca, 0x36,
+  0x85, 0x98, 0xe3, 0x23, 0x27, 0x8d, 0x38, 0xc4, 0xa2, 0x5f, 0xb4, 0x4c,
+  0x65, 0x3c, 0xa7, 0xfc, 0xc9, 0x15, 0x23, 0xf0, 0x4c, 0xe7, 0xd5, 0x5f,
+  0xf4, 0x45, 0x44, 0xfc, 0xd3, 0x82, 0x9c, 0x4e, 0x9e, 0x36, 0x75, 0x4b,
+  0xe1, 0xe9, 0x60, 0x7a, 0x76, 0xeb, 0x40, 0x6d, 0xa5, 0x14, 0x71, 0xbf,
+  0xf6, 0xb8, 0xa8, 0x99, 0x1f, 0xdc, 0x99, 0x37, 0x46, 0x76, 0xd6, 0x8b,
+  0x8a, 0xab, 0x57, 0x3e, 0xae, 0xee, 0xa9, 0x07, 0xc7, 0xb6, 0x47, 0x24,
+  0x43, 0x6d, 0x92, 0xec, 0x25, 0xbd, 0xb2, 0x43, 0xc4, 0xe4, 0x6a, 0xb7,
+  0x14, 0x33, 0xfe, 0x2b, 0xf5, 0x8a, 0x5b, 0x7b, 0x4a, 0x9f, 0xfe, 0xd9,
+  0x7b, 0xad, 0x7b, 0x93, 0xe1, 0xaa, 0xb2, 0x37, 0xcc, 0x93, 0x84, 0xfd,
+  0xea, 0xab, 0xac, 0x75, 0x5b, 0x3d, 0x7e, 0x66, 0x97, 0x5d, 0x65, 0xbb,
+  0x31, 0x11, 0x42, 0xd2, 0xe1, 0x63, 0x3a, 0x9f, 0x8b, 0xd8, 0x79, 0x7c,
+  0xec, 0xcc, 0xe2, 0xc2, 0xf5, 0x95, 0x88, 0x51, 0x9d, 0x4b, 0x2e, 0x53,
+  0x89, 0xf5, 0x5b, 0x65, 0xb8, 0x61, 0x80, 0x15, 0x85, 0x32, 0x57, 0x37,
+  0xc7, 0x45, 0x63, 0xf9, 0x71, 0xe2, 0xb2, 0x1d, 0x0e, 0xbf, 0xde, 0xce,
+  0x9a, 0xb1, 0x95, 0x81, 0xdb, 0x0e, 0x34, 0xc5, 0x66, 0xd9, 0x63, 0x37,
+  0x13, 0x84, 0x30, 0xea, 0x5a, 0xd0, 0x3c, 0x58, 0x17, 0xe3, 0x53, 0xa7,
+  0xa1, 0x6d, 0xa1, 0xfc, 0x46, 0x03, 0x25, 0x1a, 0xbc, 0xc4, 0x7e, 0x89,
+  0xab, 0x4e, 0x66, 0xad, 0xbe, 0x6f, 0x3e, 0xb6, 0xcf, 0xc5, 0xb8, 0x69,
+  0x8f, 0x31, 0x3a, 0x22, 0xb2, 0xbb, 0x09, 0x2d, 0xb1, 0x98, 0xff, 0x1f,
+  0x58, 0x58, 0x64, 0x11, 0xb8, 0x58, 0x1c, 0xd0, 0x25, 0x8f, 0x77, 0x79,
+  0x4e, 0x26, 0x2e, 0x5b, 0xb1, 0x8f, 0xf7, 0x59, 0x3a, 0x0d, 0x85, 0x37,
+  0xd2, 0x6d, 0xf4, 0x9a, 0x71, 0xb5, 0x3f, 0xa3, 0xcf, 0x9c, 0x49, 0xa7,
+  0x95, 0xd5, 0xa9, 0xcb, 0x70, 0x19, 0xda, 0xfa, 0xcb, 0x46, 0xab, 0xb8,
+  0xce, 0x8b, 0xa7, 0xf8, 0x7e, 0x2c, 0xc4, 0x81, 0x31, 0x03, 0x59, 0xdf,
+  0xb6, 0x2a, 0x59, 0x5c, 0x1c, 0xc5, 0xa0, 0xc4, 0xfd, 0x47, 0xc5, 0x44,
+  0x2a, 0x24, 0x7c, 0x24, 0x2a, 0x3c, 0x7f, 0xe8, 0x58, 0x3d, 0x16, 0x04,
+  0x82, 0xc8, 0xc7, 0x0b, 0x4a, 0x61, 0x8e, 0x94, 0x0d, 0x0b, 0xbc, 0x1c,
+  0x46, 0x07, 0xe0, 0xd4, 0x85, 0x3b, 0x8a, 0x69, 0x2e, 0x59, 0x0b, 0xab,
+  0xeb, 0x2d, 0xd9, 0x20, 0x54, 0xff, 0x18, 0xf3, 0x2c, 0xa5, 0xa4, 0xf5,
+  0xf9, 0x47, 0xc5, 0x94, 0x11, 0x71, 0xf3, 0xda, 0x4b, 0x87, 0xc5, 0x36,
+  0xe1, 0x8d, 0xda, 0xd3, 0xc3, 0xd1, 0x4b, 0x9e, 0xbc, 0x15, 0x10, 0x0a,
+  0xb2, 0x73, 0x6b, 0x6b, 0x86, 0xb3, 0xa3, 0x9c, 0xe9, 0x05, 0xe9, 0x97,
+  0xe9, 0x58, 0xd5, 0xfd, 0xc7, 0x7a, 0x97, 0x72, 0x79, 0x86, 0xf6, 0x24,
+  0x30, 0x06, 0xa3, 0x75, 0xc9, 0x30, 0xb4, 0xe4, 0x29, 0x22, 0x5e, 0x68,
+  0xd1, 0x00, 0x0d, 0xd6, 0xac, 0x28, 0x7f, 0xbe, 0xea, 0xc1, 0xd3, 0xb5,
+  0xd2, 0xa8, 0x91, 0x86, 0xbe, 0xa2, 0xe7, 0x4f, 0x3f, 0x3e, 0xbf, 0x8d,
+  0x88, 0x63, 0x8c, 0x0f, 0x69, 0x2a, 0x91, 0xc3, 0x33, 0xca, 0x9e, 0x6a,
+  0x20, 0x13, 0xdf, 0x5d, 0xe7, 0x18, 0x75, 0x05, 0x84, 0x22, 0xda, 0xc2,
+  0x82, 0xdd, 0x11, 0xcd, 0x40, 0x56, 0xa0, 0x85, 0xfe, 0x25, 0xee, 0x4d,
+  0x25, 0x74, 0x35, 0x1a, 0x32, 0x1d, 0x9f, 0x26, 0x7b, 0xca, 0x4d, 0x43,
+  0xf7, 0x7f, 0xfc, 0xcc, 0x88, 0xae, 0xd8, 0xd2, 0xdf, 0xc2, 0x79, 0xd6,
+  0x24, 0x56, 0xc9, 0x2a, 0x07, 0x3c, 0xf1, 0x29, 0xdb, 0x88, 0xbc, 0x61,
+  0x91, 0xd3, 0x0a, 0x56, 0x53, 0x55, 0xd5, 0xf9, 0xcb, 0x36, 0xdd, 0x02,
+  0x1e, 0x35, 0x4a, 0x7b, 0x02, 0x81, 0x1f, 0x19, 0xfc, 0xca, 0x7b, 0x00,
+  0xdb, 0x84, 0xb4, 0x8c, 0xfe, 0x63, 0xbe, 0x58, 0xf5, 0x5a, 0x13, 0x00,
+  0x0f, 0xa9, 0xb8, 0xd3, 0x89, 0xa3, 0x73, 0x51, 0x43, 0xd5, 0xd2, 0x70,
+  0xee, 0xaf, 0x6e, 0x4e, 0xd9, 0x7b, 0x7f, 0x43, 0xea, 0xb6, 0x4f, 0xa9,
+  0x39, 0x05, 0x51, 0x50, 0x7a, 0x9d, 0xe2, 0x22, 0xb2, 0x49, 0xa0, 0xd6,
+  0xa9, 0xde, 0xae, 0x05, 0xd5, 0x2e, 0xf4, 0x50, 0x37, 0x65, 0x90, 0xb7,
+  0x43, 0xca, 0x1e, 0xc5, 0x1c, 0x71, 0x5b, 0x18, 0x2b, 0x2b, 0xe5, 0xf4,
+  0xbb, 0xc2, 0x88, 0x84, 0x86, 0xbd, 0xcf, 0xe2, 0xab, 0xa7, 0xae, 0xe4,
+  0xa3, 0x45, 0x83, 0x30, 0xb5, 0x63, 0xf6, 0x8a, 0x80, 0xd2, 0x25, 0x31,
+  0x0c, 0x5f, 0xb3, 0xfe, 0xcf, 0x4f, 0x93, 0xeb, 0x41, 0x59, 0xe5, 0x74,
+  0xe3, 0x00, 0x73, 0xa7, 0xad, 0xd1, 0xd6, 0xef, 0x41, 0x9e, 0x90, 0x4d,
+  0x11, 0x6b, 0x4e, 0x22, 0x2f, 0x89, 0xd2, 0x74, 0xb5, 0xdb, 0x9d, 0x61,
+  0xb3, 0x22, 0x00, 0x63, 0xdb, 0x1c, 0xd8, 0x54, 0xb5, 0x58, 0x84, 0x52,
+  0x32, 0x6a, 0x12, 0x57, 0x05, 0x49, 0x31, 0x03, 0x76, 0xc8, 0x6e, 0xac,
+  0x14, 0x1b, 0xbb, 0x4f, 0x2b, 0xe4, 0x86, 0x06, 0x1e, 0x8a, 0xbc, 0xae,
+  0x17, 0x58, 0xb0, 0x77, 0xc7, 0x27, 0x47, 0x16, 0x14, 0xf4, 0xbf, 0xb7,
+  0x07, 0x34, 0xe1, 0xd5, 0x38, 0x80, 0x40, 0x71, 0x52, 0x96, 0x97, 0x61,
+  0x27, 0x59, 0x5b, 0xdf, 0xf4, 0xb8, 0x60, 0x0c, 0x7e, 0xdc, 0x4a, 0xd9,
+  0x3a, 0x3a, 0xfd, 0xf6, 0xf8, 0xe2, 0xec, 0xf4, 0xfd, 0xd1, 0xa9, 0xf5,
+  0xf6, 0xd2, 0xa1, 0x88, 0xb1, 0xbe, 0xd6, 0x61, 0xd0, 0x37, 0xa7, 0x78,
+  0x01, 0x51, 0x0f, 0xa2, 0xd2, 0x15, 0x51, 0x6d, 0xcc, 0xe7, 0xf2, 0xaf,
+  0x81, 0xdf, 0x9c, 0xf7, 0x90, 0x7a, 0x7c, 0x29, 0x0e, 0x3f, 0x27, 0x7b,
+  0x7f, 0x42, 0xa1, 0xb7, 0x01, 0xfb, 0x88, 0x6d, 0xc9, 0x2d, 0x22, 0x9e,
+  0xfd, 0x34, 0xce, 0xa4, 0x00, 0x26, 0x25, 0x68, 0xac, 0xd9, 0x29, 0xe1,
+  0x28, 0x91, 0x0b, 0xa6, 0xb5, 0x3a, 0xe1, 0x36, 0xf7, 0x07, 0x4e, 0x1a,
+  0x8c, 0x33, 0xd8, 0x32, 0x00, 0xdc, 0xaf, 0xc6, 0x78, 0xc3, 0x20, 0x06,
+  0x29, 0xc6, 0x27, 0xa4, 0xd3, 0x1e, 0x84, 0xce, 0x65, 0xdc, 0xfa, 0xd5,
+  0xc1, 0xba, 0x71, 0x3f, 0x6f, 0x14, 0x3f, 0xa8, 0x0b, 0x61, 0x7f, 0x7b,
+  0xfb, 0x27, 0x94, 0xa5, 0xfb, 0x42, 0xea, 0xd2, 0x85, 0x34, 0x66, 0xb5,
+  0xd7, 0x11, 0x11, 0xb9, 0x5e, 0x0a, 0x0f, 0xed, 0x5b, 0x3b, 0x9d, 0x70,
+  0x0e, 0x7e, 0x3c, 0xbf, 0x38, 0xfb, 0xfe, 0x2f, 0xbf, 0xf2, 0x27, 0x3c,
+  0xac, 0xce, 0x0f, 0x04, 0x61, 0xd3, 0xc6, 0x7f, 0xfa, 0x45, 0x5f, 0x5b,
+  0xf9, 0xb9, 0x76, 0xfb, 0xbd, 0x76, 0x35, 0xcf, 0x20, 0x41, 0x09, 0xd9,
+  0x90, 0x4c, 0x16, 0xaf, 0xb9, 0x91, 0xce, 0xea, 0xb5, 0x00, 0x1a, 0xbe,
+  0xe1, 0xea, 0x56, 0x71, 0xbf, 0x58, 0xb5, 0x0b, 0x90, 0x3d, 0x20, 0x45,
+  0xcf, 0x01, 0x20, 0x35, 0x4d, 0x93, 0x52, 0x31, 0x39, 0x59, 0x13, 0x80,
+  0x3e, 0x3b, 0x1f, 0x07, 0x27, 0x27, 0xbf, 0x7c, 0x12, 0x94, 0x9f, 0xbd,
+  0x3d, 0x0d, 0xa8, 0xee, 0x65, 0x07, 0xd4, 0xb7, 0x5a, 0xaa, 0x1e, 0x81,
+  0x55, 0x6c, 0x72, 0xa7, 0x67, 0xd2, 0x9b, 0xd7, 0x50, 0x8f, 0xfb, 0x75,
+  0x66, 0x94, 0x5a, 0xaa, 0xee, 0x9b, 0x4c, 0x09, 0x13, 0x63, 0xcc, 0x6d,
+  0xea, 0x58, 0x50, 0xc3, 0xcb, 0xff, 0x25, 0x83, 0xd1, 0x78, 0x1e, 0x39,
+  0x97, 0x08, 0x68, 0xef, 0xd2, 0x12, 0x7c, 0x70, 0x71, 0x41, 0xa9, 0x6f,
+  0x77, 0x15, 0xab, 0x5f, 0x86, 0x1b, 0x81, 0xae, 0xd9, 0x2a, 0xaf, 0x6f,
+  0x01, 0x85, 0xa7, 0x83, 0x09, 0x65, 0x57, 0xf3, 0x60, 0x49, 0xd7, 0x45,
+  0x57, 0x56, 0xb0, 0x80, 0x3f, 0x23, 0x0a, 0x2d, 0xbe, 0x53, 0xa2, 0x27,
+  0x55, 0x8b, 0x07, 0xb9, 0xfd, 0x84, 0x64, 0xf2, 0x8e, 0xa0, 0xbc, 0xb2,
+  0x39, 0x34, 0xfe, 0xf1, 0x74, 0xa1, 0x54, 0x70, 0x50, 0x00, 0xb7, 0xa6,
+  0x93, 0xf7, 0x86, 0x55, 0x4a, 0x64, 0x98, 0x07, 0x89, 0xf2, 0x92, 0xeb,
+  0x22, 0x77, 0x77, 0xff, 0x53, 0xa2, 0xa9, 0xee, 0x3c, 0x25, 0x7e, 0x3e,
+  0x8c, 0xfe, 0xe6, 0x29, 0xcd, 0x11, 0x17, 0x32, 0xb9, 0x1c, 0x28, 0x34,
+  0x2e, 0x9b, 0xc3, 0xfc, 0x41, 0x00, 0xc4, 0x46, 0xb6, 0x26, 0x50, 0xa2,
+  0x39, 0xa7, 0x83, 0xf7, 0x54, 0x67, 0x0f, 0xa0, 0x10, 0xe1, 0x08, 0xdc,
+  0x27, 0x1e, 0xef, 0x72, 0x24, 0x3a, 0x67, 0x1e, 0x23, 0x17, 0x28, 0xf3,
+  0x1f, 0xf8, 0xed, 0xb9, 0xfe, 0xb2, 0x6a, 0x28, 0x7d, 0x45, 0x4f, 0x65,
+  0xab, 0xc4, 0x82, 0x20, 0x66, 0xbd, 0x79, 0x87, 0x9a, 0xff, 0x5e, 0x9e,
+  0x1d, 0x9e, 0x9d, 0x98, 0xbf, 0x1c, 0xbd, 0x3b, 0xfe, 0xde, 0x5d, 0x62,
+  0xb2, 0x01, 0x6c, 0x26, 0x0a, 0x87, 0x01, 0xb5, 0xdc, 0xa4, 0x2f, 0x3d,
+  0x18, 0xc9, 0x14, 0xb0, 0x5f, 0xb4, 0x99, 0xdb, 0xbc, 0x63, 0x29, 0x15,
+  0x23, 0x5b, 0xd5, 0x1f, 0x85, 0x7a, 0x83, 0x94, 0x3e, 0x6e, 0xd5, 0x22,
+  0xa7, 0xdd, 0xce, 0x3c, 0x6e, 0x9d, 0x48, 0x28, 0x02, 0xfe, 0x45, 0xd7,
+  0x3e, 0xcb, 0xdc, 0x29, 0x84, 0x94, 0xf3, 0x2b, 0xab, 0xfd, 0xfb, 0x95,
+  0xee, 0x34, 0x83, 0x42, 0x28, 0x94, 0x29, 0xba, 0xea, 0xc8, 0xf5, 0x48,
+  0x29, 0xeb, 0x79, 0x83, 0x54, 0xfd, 0xac, 0xa9, 0x32, 0x9c, 0x63, 0xe0,
+  0x34, 0x5a, 0x59, 0xde, 0x1d, 0xa0, 0x21, 0xdd, 0xaa, 0xae, 0xb9, 0xf6,
+  0x98, 0x64, 0x02, 0x04, 0x0f, 0x84, 0x38, 0x31, 0x4a, 0x48, 0x3b, 0xc8,
+  0x09, 0x97, 0x69, 0x34, 0x73, 0x15, 0x4d, 0x0f, 0xca, 0xf9, 0x5e, 0x24,
+  0x36, 0xba, 0xbb, 0x14, 0xc9, 0x18, 0x54, 0x58, 0x54, 0x6a, 0x3b, 0x76,
+  0xda, 0x48, 0x7f, 0x51, 0x23, 0x69, 0xbb, 0x95, 0x17, 0xbf, 0xa4, 0x91,
+  0x17, 0x9d, 0x36, 0x6e, 0x7e, 0x51, 0x23, 0xb6, 0xbe, 0xb3, 0x51, 0x85,
+  0xbe, 0x3f, 0xbe, 0x4c, 0x0e, 0xcf, 0xde, 0xba, 0x3d, 0x7a, 0x69, 0xe1,
+  0x8e, 0x69, 0x32, 0x5a, 0x14, 0x66, 0x15, 0x89, 0x3e, 0x1b, 0x35, 0xa1,
+  0xa8, 0x19, 0x06, 0x41, 0x72, 0x58, 0x5e, 0x09, 0x1e, 0xcc, 0x97, 0x72,
+  0xfc, 0xa8, 0xe2, 0x68, 0xbb, 0x4f, 0x92, 0x27, 0x8f, 0xcf, 0x88, 0x2e,
+  0xe2, 0xda, 0xd1, 0xfc, 0xd1, 0xce, 0x26, 0xd6, 0xa0, 0xb4, 0xd2, 0x44,
+  0xac, 0x51, 0x4a, 0xa4, 0x10, 0x05, 0x67, 0x14, 0x11, 0x94, 0xbb, 0xc5,
+  0xaf, 0xb8, 0xe6, 0x67, 0x9c, 0x0a, 0xd7, 0x62, 0x4f, 0xf2, 0x37, 0xf2,
+  0x46, 0x7a, 0xd3, 0x42, 0x18, 0xed, 0x2a, 0x42, 0xb6, 0xb5, 0x63, 0xa4,
+  0x2a, 0x01, 0x8c, 0x1c, 0x82, 0x42, 0x82, 0x48, 0x06, 0xe7, 0x91, 0xeb,
+  0x70, 0x58, 0xad, 0x95, 0x4b, 0x96, 0x05, 0x57, 0x92, 0x6d, 0xc2, 0x7e,
+  0x67, 0x8f, 0xff, 0x78, 0x67, 0x34, 0x33, 0x06, 0x44, 0x08, 0xde, 0x24,
+  0xff, 0xbb, 0xa7, 0x97, 0x3d, 0xb3, 0xd7, 0xb0, 0x19, 0xf9, 0x14, 0x75,
+  0xb0, 0x26, 0x0c, 0x2d, 0xac, 0x1f, 0x8a, 0x26, 0xfd, 0x04, 0x3b, 0x8c,
+  0x94, 0x66, 0xa1, 0xc5, 0x70, 0x6f, 0x3e, 0x97, 0xcb, 0x38, 0xb1, 0xfc,
+  0x1b, 0x38, 0x7f, 0x9a, 0xdd, 0xe3, 0x41, 0x08, 0xc4, 0x5c, 0x35, 0x3d,
+  0xd0, 0xec, 0x42, 0xc4, 0x3c, 0xb2, 0x9a, 0xaa, 0x73, 0xad, 0x45, 0xc3,
+  0xbb, 0xf6, 0xb3, 0x9a, 0xa8, 0x58, 0x56, 0x02, 0x47, 0x70, 0x05, 0x26,
+  0x1c, 0x71, 0x02, 0xd5, 0xd4, 0xe6, 0x49, 0xeb, 0x47, 0xd9, 0xd8, 0x91,
+  0xce, 0x8e, 0xfc, 0x25, 0xc9, 0x00, 0x12, 0x9d, 0x73, 0x52, 0x0a, 0x2b,
+  0x26, 0x01, 0xec, 0xa8, 0x56, 0xa0, 0xf9, 0xc5, 0x03, 0x57, 0xb6, 0x48,
+  0x0b, 0x24, 0xea, 0x74, 0xf1, 0x82, 0xba, 0x30, 0x92, 0xc5, 0xe0, 0x52,
+  0x06, 0x5e, 0xf0, 0x1f, 0x87, 0x7a, 0x77, 0x6b, 0xc9, 0x62, 0xbd, 0xb4,
+  0xe1, 0xf6, 0x13, 0x0a, 0x22, 0x91, 0x5a, 0xb8, 0xf8, 0x29, 0x91, 0x9d,
+  0x0a, 0xae, 0x83, 0x9a, 0x7f, 0x14, 0x72, 0x24, 0xd6, 0x1d, 0x3f, 0xd7,
+  0xcb, 0x25, 0xdf, 0x61, 0x96, 0x8c, 0x4b, 0xcb, 0xd6, 0xd1, 0xf5, 0x2a,
+  0x53, 0xfb, 0x61, 0x6b, 0x9f, 0x75, 0xb7, 0x88, 0x7a, 0x78, 0x89, 0x4b,
+  0xad, 0xf4, 0x63, 0x3d, 0x9f, 0x8b, 0x35, 0x9a, 0x51, 0xd6, 0x8f, 0xe8,
+  0x4e, 0x55, 0x36, 0xa7, 0x82, 0xcb, 0x97, 0xae, 0xf0, 0x1b, 0x02, 0x4a,
+  0xb0, 0x28, 0x31, 0xcf, 0x63, 0xed, 0xa5, 0x51, 0x88, 0x7c, 0x63, 0xe0,
+  0x95, 0x7c, 0x96, 0x72, 0x52, 0xf8, 0x4a, 0x23, 0x6c, 0x65, 0x91, 0xdb,
+  0xad, 0x27, 0x65, 0xe4, 0xf0, 0x23, 0xc2, 0x40, 0x19, 0x81, 0x5f, 0xda,
+  0x7f, 0xcb, 0x1b, 0x01, 0x79, 0x50, 0xc7, 0x9d, 0x48, 0xa3, 0x5d, 0x54,
+  0x9c, 0xf5, 0xe6, 0x08, 0xb3, 0x80, 0x2f, 0x4d, 0x8b, 0x46, 0x20, 0x42,
+  0x15, 0xb1, 0x1c, 0x99, 0xe5, 0x79, 0x1f, 0x02, 0x4b, 0xca, 0xab, 0x46,
+  0xe8, 0x54, 0x12, 0x50, 0xe6, 0xf3, 0xfc, 0xdc, 0xa4, 0xc5, 0x75, 0xc6,
+  0xca, 0x96, 0xc7, 0xf9, 0x45, 0x7b, 0x5d, 0x6f, 0x18, 0x73, 0xec, 0x61,
+  0xe6, 0xc7, 0x6a, 0x1a, 0x77, 0xf8, 0x5f, 0x77, 0x77, 0xec, 0x3c, 0xd0,
+  0xa0, 0xe6, 0x0d, 0xe0, 0xdd, 0x34, 0x0b, 0xdf, 0x81, 0xe4, 0xe9, 0x3e,
+  0x65, 0xea, 0x56, 0xad, 0x52, 0xe8, 0x74, 0x56, 0xeb, 0x89, 0xa7, 0xa4,
+  0x8e, 0x10, 0x4c, 0x49, 0x8a, 0x76, 0x41, 0xd1, 0x71, 0xba, 0x62, 0x19,
+  0x0d, 0xc6, 0x09, 0x42, 0xe2, 0x9d, 0xe8, 0xc1, 0x12, 0x83, 0x00, 0xb4,
+  0xb8, 0x29, 0xac, 0x1d, 0x41, 0xcb, 0x97, 0xd8, 0xe4, 0x44, 0x05, 0xe2,
+  0x45, 0x79, 0x09, 0x44, 0xce, 0xdc, 0x93, 0xde, 0x78, 0x76, 0xed, 0x78,
+  0xee, 0xb1, 0x51, 0xce, 0x0f, 0x86, 0x43, 0xdd, 0x26, 0x87, 0xe1, 0x8e,
+  0x90, 0x18, 0x02, 0x88, 0x0a, 0x24, 0xcb, 0x30, 0x62, 0xc5, 0x4b, 0x23,
+  0x9d, 0xe0, 0xe3, 0x2e, 0x8b, 0xb7, 0xb7, 0x2c, 0xa3, 0x13, 0x10, 0x7b,
+  0x88, 0x1f, 0x09, 0xfb, 0x4a, 0x47, 0x7c, 0xbf, 0x7a, 0x26, 0xe3, 0xe5,
+  0x5f, 0x31, 0xad, 0x98, 0x67, 0xe4, 0xf3, 0xa9, 0xb8, 0x27, 0x67, 0xa0,
+  0x11, 0x40, 0xed, 0xa2, 0x82, 0xbb, 0xcf, 0xc2, 0x41, 0x7f, 0xcb, 0xa3,
+  0xea, 0xfd, 0x53, 0x83, 0xfe, 0x36, 0x32, 0xe8, 0xe7, 0xee, 0xe0, 0xf0,
+  0xc7, 0x92, 0xbd, 0xbd, 0xcf, 0x14, 0x56, 0xcd, 0x8e, 0x9a, 0x69, 0xe2,
+  0x3e, 0xe8, 0x7d, 0xd1, 0x3c, 0xd7, 0x07, 0x30, 0x38, 0xfc, 0x96, 0x77,
+  0x78, 0xbd, 0x4f, 0xbd, 0xb0, 0x9f, 0x1a, 0xa7, 0xb0, 0x46, 0x8c, 0xa6,
+  0xc9, 0x52, 0x26, 0x10, 0x3e, 0xb6, 0x2e, 0xfb, 0x31, 0xcd, 0x81, 0xb1,
+  0x5b, 0x9a, 0x65, 0x60, 0x1e, 0xed, 0x85, 0xf7, 0x9d, 0x97, 0xd6, 0x90,
+  0xde, 0xde, 0xe3, 0x3d, 0x69, 0xae, 0x58, 0xad, 0xdc, 0x8a, 0x9d, 0x39,
+  0xc9, 0x1a, 0xb3, 0x26, 0xce, 0x07, 0xc4, 0x49, 0x2b, 0x57, 0x55, 0x0a,
+  0xfa, 0x4a, 0x94, 0x8b, 0x1d, 0x2c, 0xe1, 0x48, 0x65, 0x35, 0x3a, 0xa5,
+  0xde, 0x17, 0x84, 0xdb, 0x83, 0x5a, 0x20, 0x8e, 0x13, 0xf2, 0xc4, 0xa1,
+  0x36, 0xef, 0x95, 0x75, 0xd6, 0x69, 0xbd, 0xd8, 0x5e, 0x30, 0x43, 0x3c,
+  0x48, 0x3e, 0x32, 0xa2, 0x32, 0xc4, 0xe9, 0x76, 0x76, 0x3f, 0x73, 0x4b,
+  0xe4, 0xd6, 0x81, 0xbc, 0x1b, 0x92, 0x67, 0x3f, 0xf0, 0xa4, 0xb7, 0x95,
+  0x27, 0xea, 0x19, 0x16, 0x4a, 0xf4, 0x60, 0x5f, 0xca, 0xab, 0xee, 0x2b,
+  0x2c, 0x8f, 0xcf, 0x49, 0xdc, 0x09, 0x8f, 0xe1, 0x20, 0x39, 0x83, 0x27,
+  0xa6, 0xc5, 0xdc, 0xca, 0x18, 0xfd, 0xd4, 0xe5, 0x5d, 0xb5, 0xb7, 0xee,
+  0x2b, 0xb7, 0xc6, 0xda, 0x25, 0x0d, 0x8b, 0x6f, 0xab, 0x98, 0xb5, 0x57,
+  0x8a, 0xba, 0x1b, 0xb3, 0xe4, 0xe2, 0xe8, 0xf2, 0x02, 0xb0, 0x1e, 0x88,
+  0x80, 0xee, 0x9d, 0x6b, 0x44, 0xc2, 0x96, 0xe5, 0xfb, 0x13, 0x81, 0xe6,
+  0x94, 0x12, 0x27, 0x22, 0x98, 0x14, 0xc6, 0xae, 0x38, 0xff, 0x53, 0xdf,
+  0x63, 0x5c, 0xba, 0x59, 0x73, 0x9e, 0x72, 0x17, 0x12, 0x6b, 0xd3, 0xd5,
+  0xec, 0xed, 0x39, 0x7c, 0x02, 0x97, 0xbf, 0xe2, 0x9b, 0xd4, 0x02, 0x4e,
+  0xf5, 0xea, 0x75, 0x28, 0x6d, 0xad, 0x8f, 0x40, 0xcf, 0x31, 0x64, 0x33,
+  0x08, 0x5c, 0xda, 0x8f, 0x8b, 0x16, 0x20, 0x9d, 0xb0, 0x58, 0x61, 0x7c,
+  0xce, 0x53, 0x37, 0x13, 0x49, 0xa2, 0x49, 0x9e, 0xef, 0xec, 0x44, 0x38,
+  0x20, 0xd2, 0x91, 0x11, 0xab, 0xa2, 0xda, 0x09, 0xde, 0x1e, 0x6f, 0xb1,
+  0xe7, 0x0c, 0xba, 0x66, 0x4d, 0x76, 0x4b, 0xff, 0x8a, 0x6c, 0x65, 0x9a,
+  0x31, 0x95, 0xd3, 0xde, 0xbc, 0xb1, 0x94, 0xf9, 0x0e, 0x09, 0x00, 0x3a,
+  0x69, 0x1d, 0xf1, 0xc2, 0xd9, 0x01, 0x5a, 0x5f, 0x29, 0xf5, 0x38, 0x2e,
+  0xc5, 0x05, 0x1a, 0xf4, 0x2c, 0x90, 0xe0, 0x7b, 0x2f, 0xc2, 0x1d, 0x31,
+  0xbc, 0x3c, 0xbb, 0x90, 0x1d, 0x16, 0x5e, 0xce, 0x12, 0x06, 0xa7, 0x47,
+  0x1c, 0x5b, 0x41, 0x2f, 0x52, 0xdf, 0xd9, 0xa6, 0xd8, 0x5a, 0x6a, 0x38,
+  0xef, 0xab, 0x2c, 0x03, 0x2e, 0x28, 0x4d, 0x44, 0x86, 0xf6, 0xad, 0xe4,
+  0xd4, 0x2a, 0x0d, 0xa2, 0x9e, 0x4c, 0xef, 0x25, 0x3e, 0x68, 0x67, 0x7c,
+  0x82, 0x39, 0x05, 0x94, 0xf6, 0x91, 0x24, 0x83, 0x12, 0x8d, 0xa2, 0x00,
+  0xe5, 0x6c, 0x25, 0x98, 0xee, 0x5e, 0xe4, 0x43, 0x74, 0x66, 0x99, 0x2e,
+  0x55, 0xc8, 0xeb, 0xa6, 0xf1, 0x7c, 0x57, 0xa8, 0x49, 0x44, 0xd2, 0x82,
+  0xd9, 0x20, 0x05, 0xf6, 0x90, 0x52, 0x78, 0xa2, 0xbb, 0xda, 0x63, 0xa3,
+  0x2a, 0x4f, 0x84, 0x6e, 0x49, 0x2e, 0x4f, 0xb5, 0x1d, 0x9c, 0xda, 0xed,
+  0x6e, 0xfe, 0xf3, 0xb3, 0x8b, 0x4b, 0x7b, 0xef, 0xd3, 0x67, 0xf1, 0x83,
+  0xce, 0xf9, 0x21, 0x8e, 0x78, 0xae, 0xfa, 0xa8, 0xb7, 0x1b, 0x2a, 0x3d,
+  0xad, 0x45, 0xf3, 0x78, 0x65, 0x51, 0xd0, 0x8e, 0x36, 0x44, 0x46, 0x7c,
+  0x05, 0x24, 0x97, 0xf0, 0x5a, 0x39, 0x99, 0xc3, 0xbe, 0x54, 0xba, 0x70,
+  0xe2, 0xd5, 0x7d, 0x9c, 0x92, 0xfb, 0x6c, 0x37, 0xdc, 0x1d, 0xe4, 0x3d,
+  0xbb, 0x38, 0xa2, 0x4a, 0xdf, 0x97, 0x37, 0xfc, 0xb7, 0xa0, 0xef, 0x9c,
+  0xb9, 0x27, 0x3f, 0x8c, 0x97, 0x8b, 0xc7, 0xee, 0xa0, 0xf8, 0x94, 0x31,
+  0x3f, 0xd0, 0xbe, 0xcd, 0x13, 0xf5, 0xe6, 0xec, 0x99, 0x87, 0x45, 0x82,
+  0xd8, 0x94, 0xbd, 0x02, 0x6c, 0x0b, 0x7e, 0xb0, 0x2e, 0x5f, 0x59, 0x37,
+  0xca, 0x19, 0x1f, 0x89, 0x16, 0xb3, 0xed, 0xb3, 0xe7, 0xae, 0x85, 0x39,
+  0xdd, 0x57, 0xd2, 0xc0, 0xb1, 0x16, 0x53, 0xa2, 0x1f, 0xf6, 0x75, 0xbb,
+  0xe0, 0xca, 0xe0, 0x8d, 0xc1, 0xcf, 0xb9, 0x76, 0x5e, 0xd8, 0x7c, 0x70,
+  0x55, 0x18, 0xbc, 0xae, 0xd0, 0x8f, 0x15, 0x02, 0x02, 0x9d, 0xa3, 0xb3,
+  0xed, 0x9e, 0xf1, 0x6e, 0xff, 0x92, 0xb0, 0x44, 0x16, 0xd4, 0xc4, 0x63,
+  0xf7, 0xee, 0x56, 0x52, 0xb9, 0xf2, 0x62, 0x91, 0x41, 0x53, 0x4b, 0xab,
+  0x29, 0xd1, 0x68, 0x1b, 0x41, 0x52, 0x71, 0xa2, 0xc9, 0x7d, 0x10, 0xfc,
+  0x02, 0x6c, 0xc8, 0x7d, 0x43, 0x6e, 0xa1, 0xe3, 0x93, 0x23, 0xb7, 0x54,
+  0x4c, 0xc1, 0x8d, 0x83, 0xec, 0x34, 0x7e, 0x2a, 0x80, 0x68, 0xaf, 0x8a,
+  0x41, 0x72, 0x4e, 0x95, 0xed, 0xa0, 0x39, 0xd5, 0xff, 0xe1, 0x5a, 0xe3,
+  0x83, 0x02, 0x4f, 0xac, 0xb9, 0x3c, 0x91, 0x35, 0x98, 0x17, 0x66, 0x65,
+  0xf1, 0x13, 0xfa, 0xab, 0x47, 0x17, 0x1b, 0x0c, 0xf7, 0x95, 0x7b, 0xb9,
+  0x36, 0x23, 0x31, 0x76, 0x7b, 0xf7, 0x91, 0xe7, 0xb2, 0xaf, 0x8c, 0x51,
+  0xcf, 0x55, 0x94, 0x55, 0x34, 0xd3, 0x79, 0xd6, 0x32, 0xce, 0xdc, 0xc2,
+  0x95, 0x3e, 0xd3, 0x12, 0xe1, 0x5e, 0x53, 0x7c, 0x21, 0x1c, 0x8c, 0x6c,
+  0xd9, 0x04, 0x82, 0x10, 0x92, 0x3a, 0x67, 0xda, 0x2a, 0x48, 0xda, 0x4e,
+  0x2d, 0x12, 0xd7, 0x86, 0x03, 0x49, 0x5a, 0xd2, 0x0b, 0x96, 0x73, 0xa5,
+  0x3b, 0xb9, 0x9d, 0x32, 0x7d, 0xcf, 0x79, 0x27, 0xda, 0x6d, 0x63, 0xef,
+  0xb0, 0x56, 0xef, 0x04, 0xbb, 0x28, 0xdc, 0x51, 0xe4, 0x45, 0x20, 0xbf,
+  0xb0, 0xb9, 0xe1, 0x7d, 0x13, 0xe0, 0xf9, 0x0b, 0xd7, 0xd4, 0x15, 0x38,
+  0xba, 0x55, 0xb6, 0x1f, 0xb4, 0xe4, 0x8f, 0x25, 0xe8, 0xce, 0xed, 0x93,
+  0x6c, 0x39, 0x72, 0x0a, 0x67, 0xe4, 0x48, 0x79, 0xdf, 0xe0, 0xcd, 0x70,
+  0x59, 0x12, 0x89, 0x47, 0xf1, 0xe0, 0xa0, 0xb9, 0x52, 0xda, 0x8d, 0x1d,
+  0x52, 0x5c, 0x03, 0x40, 0x7e, 0x23, 0x1c, 0xca, 0x37, 0xe2, 0xad, 0xa1,
+  0xea, 0x50, 0x01, 0xf5, 0xeb, 0x62, 0x26, 0x08, 0x3f, 0xef, 0x4b, 0x9f,
+  0x8b, 0x6b, 0x83, 0xeb, 0x68, 0x5b, 0x67, 0x80, 0x2f, 0x48, 0x4b, 0x4b,
+  0xf8, 0x60, 0xe3, 0xe4, 0x13, 0x80, 0xcf, 0x6a, 0x4b, 0x73, 0x1c, 0xe1,
+  0x20, 0xa3, 0xcb, 0x58, 0x54, 0x5e, 0x8d, 0x75, 0x96, 0x1e, 0x81, 0x0c,
+  0xcd, 0xb7, 0x3c, 0xc6, 0xbf, 0x5a, 0xc1, 0xc0, 0x51, 0x65, 0x7f, 0x85,
+  0x3a, 0x39, 0xe0, 0x0b, 0x87, 0xb3, 0x6d, 0x78, 0x94, 0xc5, 0x22, 0xf5,
+  0x6c, 0xfa, 0xe7, 0xaf, 0xc4, 0x6f, 0x25, 0x7e, 0x11, 0xad, 0x21, 0xd9,
+  0x0d, 0x33, 0xbd, 0xd8, 0xb5, 0x4e, 0x40, 0x02, 0xd4, 0x09, 0x4a, 0xdc,
+  0x87, 0xd5, 0x11, 0xaf, 0xe4, 0xf0, 0xeb, 0xe4, 0xfd, 0xdb, 0x17, 0x04,
+  0xec, 0xb8, 0xce, 0xaa, 0xb9, 0xb1, 0x5a, 0x9c, 0x61, 0x7e, 0xf6, 0x8d,
+  0xd7, 0xd8, 0x9e, 0x83, 0x09, 0x69, 0xbc, 0x5f, 0x84, 0x99, 0x58, 0x0d,
+  0x66, 0x09, 0x29, 0x31, 0xf1, 0x5a, 0x73, 0x8c, 0x95, 0x0c, 0xcb, 0x2b,
+  0xa6, 0x1c, 0x70, 0x2d, 0x75, 0x04, 0xd8, 0x8b, 0x67, 0x4e, 0x80, 0x51,
+  0xb9, 0xf4, 0x32, 0xc9, 0x8a, 0x6b, 0x32, 0x0e, 0x22, 0x27, 0xea, 0x05,
+  0x0b, 0xcd, 0x43, 0x3e, 0xf7, 0xa4, 0xc8, 0x86, 0xaf, 0x41, 0x49, 0x47,
+  0xb8, 0xd3, 0x7b, 0xef, 0x85, 0xef, 0x5b, 0x20, 0xde, 0x41, 0x40, 0x66,
+  0x98, 0x6d, 0x1c, 0x5a, 0x8a, 0xf7, 0xec, 0x4b, 0xfb, 0x2c, 0x39, 0x92,
+  0xf2, 0xc2, 0xab, 0x0e, 0xb1, 0xe4, 0x0d, 0x51, 0x80, 0xd5, 0x4c, 0x50,
+  0xd5, 0x8c, 0x75, 0x1e, 0x6f, 0xee, 0xbd, 0x57, 0x5e, 0xb5, 0x5d, 0x27,
+  0xa0, 0x8d, 0xb6, 0x1b, 0x13, 0x83, 0xca, 0xe7, 0x37, 0xfe, 0xe1, 0x7c,
+  0xc9, 0xb7, 0xf4, 0x79, 0x17, 0x25, 0xa9, 0x32, 0x30, 0xf3, 0x33, 0xf1,
+  0xf5, 0xa8, 0xf3, 0xd6, 0x3f, 0x3c, 0x48, 0x96, 0xa5, 0x08, 0x60, 0xaf,
+  0x7b, 0x1f, 0xd9, 0x95, 0x33, 0x43, 0xc5, 0xcd, 0xae, 0x8b, 0xfc, 0xef,
+  0x9a, 0x5c, 0x4c, 0x77, 0xb3, 0x56, 0xf6, 0xf0, 0x1e, 0xdf, 0x13, 0x81,
+  0x71, 0x97, 0x4e, 0x73, 0x11, 0x8a, 0x14, 0x44, 0x73, 0x0f, 0x3c, 0x93,
+  0x5d, 0xcb, 0x05, 0xdd, 0x60, 0x01, 0xa0, 0x20, 0x23, 0x85, 0x70, 0xb3,
+  0x16, 0xe8, 0xf6, 0xe5, 0x73, 0xd1, 0xbb, 0x54, 0x37, 0xa6, 0x9b, 0x97,
+  0x26, 0x62, 0x0a, 0x66, 0xb3, 0xae, 0x98, 0x7e, 0x29, 0xd7, 0x9e, 0x2c,
+  0xa5, 0xad, 0xee, 0x61, 0x2b, 0xa5, 0xd0, 0x5f, 0xef, 0xf3, 0x42, 0x60,
+  0xb0, 0xc1, 0xeb, 0x2f, 0x97, 0xf8, 0x23, 0xa5, 0x42, 0xf9, 0x11, 0xf6,
+  0x92, 0xf7, 0xfc, 0x67, 0xee, 0x24, 0xb4, 0x58, 0xe1, 0x94, 0x12, 0xac,
+  0xe7, 0x39, 0x21, 0xec, 0x59, 0x62, 0x47, 0x8a, 0x94, 0x71, 0x8e, 0x50,
+  0xf6, 0x5e, 0xd9, 0xcf, 0x4f, 0x4b, 0x92, 0xa6, 0xde, 0xf7, 0x78, 0x4b,
+  0xbd, 0x03, 0x0d, 0xb8, 0x33, 0x0e, 0x8a, 0x56, 0x45, 0x52, 0xf7, 0xf4,
+  0x2b, 0xd9, 0x1b, 0x7a, 0x5f, 0x5a, 0x93, 0x75, 0xd9, 0x1b, 0x9f, 0xed,
+  0xf8, 0x0a, 0xeb, 0x84, 0xc2, 0x74, 0x9c, 0x64, 0xbb, 0xf4, 0x05, 0xde,
+  0x19, 0xc7, 0x53, 0xaa, 0xef, 0x39, 0xd5, 0xa2, 0x9c, 0xca, 0x08, 0xe6,
+  0x1e, 0xdb, 0x6b, 0x09, 0xdd, 0x4b, 0x5f, 0x7d, 0x4a, 0x8e, 0xdf, 0x7a,
+  0x0f, 0x3e, 0x73, 0x03, 0x4c, 0xa7, 0xa4, 0x0d, 0x3c, 0xb0, 0xb7, 0xaa,
+  0x96, 0x62, 0xa5, 0xde, 0xa3, 0xbc, 0x33, 0x4e, 0x4b, 0xe6, 0xae, 0xc1,
+  0xf4, 0x07, 0xcf, 0xf0, 0x76, 0x38, 0xbc, 0x31, 0xb7, 0xda, 0xb8, 0x01,
+  0x3a, 0xb0, 0xd0, 0xd0, 0x51, 0x77, 0xed, 0x3f, 0x7b, 0xb9, 0xe2, 0x59,
+  0xb9, 0x34, 0x6b, 0x7b, 0xd5, 0x7b, 0xef, 0x7d, 0x16, 0x1e, 0x73, 0x35,
+  0x09, 0x14, 0xc4, 0x6c, 0x8e, 0x1a, 0x9d, 0xb4, 0x64, 0x93, 0xf2, 0x28,
+  0xff, 0x43, 0xdd, 0x83, 0x15, 0xd1, 0x72, 0xd5, 0xff, 0xe1, 0xf7, 0xf7,
+  0x73, 0x1f, 0x09, 0xcd, 0xbe, 0xc1, 0x2a, 0x43, 0xf4, 0x60, 0xdc, 0xe2,
+  0xe1, 0x76, 0x48, 0x11, 0xcc, 0x8e, 0xd7, 0x02, 0xaf, 0xb9, 0xd1, 0x23,
+  0x16, 0x85, 0x93, 0x1c, 0x6c, 0x08, 0x4a, 0xe2, 0xf2, 0xc4, 0xa7, 0x6f,
+  0x23, 0x99, 0x2f, 0x7e, 0x28, 0xcf, 0x93, 0xba, 0xd3, 0x39, 0x06, 0xf5,
+  0xcd, 0x82, 0xcd, 0x6e, 0x3b, 0x22, 0xe7, 0x66, 0xf3, 0x5e, 0xdb, 0x73,
+  0xd2, 0x0b, 0x7d, 0x83, 0xda, 0x78, 0x68, 0x7a, 0xcb, 0x76, 0xb9, 0x25,
+  0x66, 0x86, 0x17, 0xfe, 0xbe, 0x2a, 0xe9, 0xaf, 0x9a, 0x6e, 0xbf, 0xc9,
+  0x49, 0x91, 0x21, 0x48, 0x4f, 0x70, 0xc5, 0xde, 0x67, 0x44, 0xb5, 0x21,
+  0xa8, 0x8b, 0x59, 0xa5, 0x9b, 0x6c, 0x7c, 0xab, 0x47, 0x46, 0x1a, 0x71,
+  0x68, 0x64, 0xef, 0xad, 0xe7, 0x76, 0x6a, 0x61, 0xd2, 0x5c, 0x1c, 0x75,
+  0xad, 0x00, 0xf7, 0x28, 0xef, 0x9a, 0x8b, 0xcb, 0xe1, 0xf9, 0x3e, 0xf5,
+  0x99, 0xe3, 0x71, 0xe6, 0x40, 0x1c, 0x0e, 0xb3, 0xbf, 0x49, 0x16, 0x4a,
+  0xed, 0x9e, 0x7e, 0xb9, 0xe4, 0xe9, 0xa1, 0xb8, 0xf7, 0x8e, 0x27, 0x24,
+  0x7e, 0xcd, 0x3a, 0xf8, 0x2f, 0x7d, 0x26, 0xd8, 0x3e, 0xf5, 0xf3, 0xb3,
+  0x17, 0x8c, 0x7a, 0x06, 0x69, 0x48, 0x91, 0x77, 0xf7, 0xf0, 0xe7, 0xce,
+  0xa6, 0xb9, 0x59, 0x14, 0xb7, 0x56, 0x5f, 0x14, 0x3a, 0x2a, 0x5d, 0x60,
+  0xf7, 0xc2, 0x2b, 0x3d, 0x1a, 0x9e, 0x37, 0xd4, 0xe2, 0x5f, 0x7a, 0xe2,
+  0xa5, 0xd0, 0xf2, 0xa4, 0x1c, 0x48, 0x34, 0xf2, 0x75, 0xe1, 0xcd, 0xc1,
+  0xab, 0x1d, 0x7b, 0xfd, 0x0a, 0xb1, 0xc5, 0x6d, 0xf6, 0xe0, 0x76, 0x1d,
+  0xc7, 0xeb, 0x8d, 0xba, 0x98, 0x17, 0xe4, 0x84, 0x70, 0x8f, 0xd8, 0x06,
+  0xbe, 0xff, 0x9e, 0x65, 0xbc, 0xe5, 0x43, 0x92, 0x38, 0x93, 0xad, 0x79,
+  0x61, 0x04, 0x22, 0xab, 0x05, 0x74, 0xbc, 0x10, 0x9c, 0xa9, 0xb2, 0x69,
+  0x46, 0x7c, 0x7a, 0x6c, 0xa3, 0x60, 0x63, 0xf7, 0x03, 0x7b, 0x0f, 0x65,
+  0x9f, 0x38, 0x50, 0x69, 0xcb, 0xd0, 0x17, 0xe4, 0x1b, 0x13, 0x47, 0x95,
+  0x59, 0xf1, 0x83, 0x0f, 0x97, 0x5f, 0x9f, 0x5d, 0x0c, 0x93, 0x6d, 0x4a,
+  0x4b, 0xbd, 0xbc, 0x38, 0xfe, 0xf2, 0x83, 0xb1, 0xfd, 0x6d, 0x8c, 0xee,
+  0x6d, 0x5a, 0xe4, 0xe6, 0xe6, 0x18, 0x36, 0x59, 0x61, 0xd6, 0xf1, 0x5a,
+  0x4b, 0x53, 0x30, 0x39, 0xa7, 0xb9, 0x2b, 0xcb, 0x8a, 0xcb, 0x13, 0x81,
+  0x15, 0xe0, 0xa6, 0x94, 0xc5, 0x60, 0xea, 0x34, 0xf2, 0x31, 0x13, 0x0a,
+  0xab, 0x74, 0x76, 0x6d, 0xde, 0xc9, 0xaa, 0x55, 0x68, 0x45, 0x72, 0xf9,
+  0xf5, 0xc1, 0xe9, 0x37, 0x43, 0xa5, 0x2d, 0xff, 0xee, 0xbb, 0xef, 0x7c,
+  0xc8, 0x4f, 0xbd, 0xbf, 0xbd, 0x0d, 0xfd, 0xf2, 0x26, 0xfd, 0xf4, 0x69,
+  0x50, 0x67, 0x6b, 0x6b, 0xc3, 0xa3, 0xa3, 0xe4, 0xe0, 0x64, 0x78, 0xb6,
+  0xe6, 0x92, 0xb1, 0x37, 0x77, 0x89, 0xa4, 0xe5, 0x3a, 0x6b, 0xcc, 0x5f,
+  0xd6, 0xd6, 0x4e, 0x0e, 0x2e, 0xc9, 0x72, 0x95, 0xaa, 0xa8, 0x34, 0xcf,
+  0x44, 0xac, 0x90, 0x4e, 0xef, 0x89, 0x47, 0xee, 0x2a, 0x07, 0xda, 0xf9,
+  0x5e, 0xeb, 0xa9, 0x77, 0xc9, 0x15, 0xcd, 0xcd, 0x73, 0x4f, 0x74, 0x17,
+  0x82, 0x59, 0x22, 0x30, 0xa6, 0x19, 0x93, 0x32, 0x84, 0xad, 0x25, 0xce,
+  0x7b, 0xc5, 0x7c, 0xe7, 0xd9, 0x88, 0x2b, 0xe2, 0xf6, 0x18, 0x7a, 0x08,
+  0x00, 0x9a, 0x47, 0x40, 0xb0, 0x64, 0x08, 0xc7, 0xc4, 0x0b, 0x9a, 0x7c,
+  0x18, 0x1e, 0x7c, 0x75, 0x44, 0xcf, 0x7e, 0x95, 0x35, 0x6e, 0x6a, 0xb9,
+  0xf0, 0x3b, 0x7d, 0xe5, 0x34, 0x6b, 0xea, 0x71, 0x3a, 0xcf, 0x36, 0xa8,
+  0x4f, 0xa3, 0xbe, 0x30, 0xee, 0xbb, 0xc6, 0x59, 0xad, 0x77, 0x85, 0x02,
+  0x0a, 0x79, 0x1e, 0x94, 0xfe, 0x7e, 0xbb, 0x17, 0x47, 0x07, 0x6f, 0xdf,
+  0x1f, 0x69, 0x5d, 0x65, 0x66, 0xe5, 0x34, 0x8d, 0xde, 0x50, 0xbd, 0x69,
+  0x17, 0xf9, 0xa0, 0x6b, 0x7e, 0x61, 0xda, 0x30, 0xbf, 0xa1, 0xda, 0xcf,
+  0xf1, 0xcf, 0xb9, 0xfa, 0x01, 0x78, 0x76, 0x70, 0x95, 0x6f, 0x73, 0xeb,
+  0xfa, 0xbd, 0xd4, 0xce, 0x89, 0x30, 0x8d, 0xa8, 0xe6, 0xcb, 0xae, 0x09,
+  0xf8, 0x34, 0x3e, 0xdf, 0xd9, 0xd9, 0x59, 0x31, 0x0e, 0x98, 0x06, 0x72,
+  0x81, 0x9a, 0xa1, 0xec, 0xd3, 0xe3, 0xdb, 0xae, 0x7d, 0xd7, 0x63, 0xda,
+  0x6f, 0x58, 0xb7, 0x2b, 0xb2, 0xac, 0x71, 0xed, 0xe6, 0x4d, 0x16, 0xef,
+  0xf2, 0xb8, 0x2c, 0xed, 0x0a, 0xb4, 0x26, 0x07, 0x15, 0x6f, 0xf3, 0x46,
+  0x29, 0xd7, 0xf0, 0x06, 0x77, 0xdc, 0x98, 0x32, 0xa0, 0x99, 0xaa, 0x1e,
+  0xba, 0x4d, 0xd2, 0x6f, 0x00, 0x4c, 0x19, 0x37, 0x83, 0xb2, 0xba, 0xde,
+  0x9e, 0xed, 0x43, 0x3b, 0x31, 0x0f, 0xbd, 0x23, 0x98, 0x6b, 0x62, 0xb4,
+  0x5c, 0xcb, 0x20, 0x51, 0xd3, 0xc4, 0x96, 0xe6, 0x5a, 0x7a, 0x42, 0xbf,
+  0x7e, 0xc6, 0x2c, 0x30, 0xfb, 0xcf, 0x95, 0x8e, 0x5c, 0xeb, 0xe9, 0x45,
+  0x3e, 0x42, 0xfb, 0x0f, 0x8e, 0xc3, 0x81, 0x91, 0x05, 0xe6, 0x2b, 0xc4,
+  0x43, 0x85, 0x2d, 0x62, 0xfe, 0x5a, 0x99, 0x2d, 0x33, 0x68, 0x3e, 0x41,
+  0x84, 0x4a, 0x99, 0x4f, 0x4e, 0x19, 0xa4, 0xc8, 0xfc, 0x9c, 0xaa, 0x89,
+  0x57, 0xc4, 0x0c, 0xcb, 0x5f, 0x30, 0x07, 0x48, 0x4b, 0x4d, 0x5b, 0x3c,
+  0x1f, 0x35, 0xdc, 0xfd, 0x66, 0xbf, 0x8f, 0xfd, 0x53, 0xdb, 0xdd, 0xf2,
+  0x84, 0x8f, 0x7b, 0x83, 0xe2, 0xd9, 0x2f, 0xe4, 0xc6, 0xf5, 0xf6, 0xce,
+  0xd0, 0xf4, 0x22, 0xf8, 0xd6, 0xc2, 0x15, 0x2a, 0xad, 0xf9, 0x73, 0x7e,
+  0x61, 0x0b, 0xb3, 0x1a, 0xdb, 0x80, 0x7a, 0x3e, 0xf9, 0x1b, 0x87, 0xe7,
+  0xf2, 0x37, 0xc2, 0xc4, 0xe5, 0x77, 0x34, 0x78, 0x92, 0xd6, 0xe6, 0xde,
+  0x25, 0x71, 0xae, 0xea, 0x2a, 0x20, 0x76, 0xb0, 0x3c, 0x51, 0xb5, 0xc6,
+  0x37, 0x1d, 0x56, 0xf4, 0x70, 0xdf, 0x4c, 0x0d, 0xdd, 0x0e, 0xff, 0x7b,
+  0x7b, 0x50, 0xd7, 0x37, 0xdb, 0xf9, 0xe4, 0x63, 0x55, 0xa7, 0xc9, 0x8f,
+  0x6b, 0x9d, 0x8c, 0xca, 0xee, 0x20, 0xfe, 0x37, 0x66, 0xf0, 0x67, 0xcd,
+  0xd4, 0xf2, 0x51, 0xfc, 0x16, 0x23, 0xe8, 0xf7, 0xa9, 0x55, 0xfd, 0xd2,
+  0x47, 0xf3, 0xc0, 0x47, 0x4b, 0xf5, 0xfb, 0x0b, 0x46, 0x17, 0x11, 0x85,
+  0x66, 0x90, 0xcc, 0x00, 0x69, 0x64, 0x4b, 0x7c, 0xa3, 0x6b, 0xb1, 0x8a,
+  0x1f, 0xf6, 0x76, 0x76, 0x76, 0xf7, 0x77, 0x3f, 0x7f, 0xb5, 0xb3, 0xbf,
+  0xbb, 0xbb, 0xbb, 0xb7, 0xbf, 0xbb, 0xbf, 0xbf, 0xb7, 0xf3, 0xd3, 0xf6,
+  0xfa, 0xb2, 0xa9, 0x7b, 0xff, 0xe5, 0x92, 0x06, 0xcd, 0xa8, 0xd7, 0x99,
+  0x5e, 0xee, 0x47, 0x3b, 0x7a, 0x8c, 0x6a, 0xb2, 0x9e, 0xd4, 0xb3, 0x11,
+  0xe1, 0xba, 0xf8, 0x70, 0xfa, 0x83, 0xa9, 0x8d, 0x52, 0x9c, 0x79, 0x03,
+  0x7a, 0x7b, 0xf6, 0xdd, 0xe9, 0xc9, 0xd9, 0xc1, 0xdb, 0xe4, 0xf2, 0x2c,
+  0x39, 0x80, 0x0b, 0x2f, 0x22, 0x27, 0x41, 0x11, 0x49, 0xc8, 0x68, 0x2e,
+  0xe3, 0xe1, 0x95, 0xb3, 0x12, 0x7f, 0x93, 0x85, 0x30, 0xa2, 0x13, 0xdd,
+  0x7e, 0x96, 0x30, 0xd1, 0xa8, 0xa5, 0xc1, 0x4d, 0x33, 0x7b, 0xfc, 0x46,
+  0x78, 0xca, 0x97, 0x7b, 0x0c, 0xb1, 0x70, 0x56, 0x38, 0xba, 0xa3, 0x27,
+  0x5f, 0x8a, 0xd1, 0x4b, 0x5c, 0x4a, 0xe0, 0x09, 0xb6, 0x74, 0xfa, 0x26,
+  0x03, 0x30, 0x5d, 0x09, 0x26, 0xae, 0xee, 0xd5, 0x01, 0x7d, 0xd9, 0x3a,
+  0x39, 0x82, 0x7f, 0x81, 0xba, 0x43, 0xfa, 0xe5, 0x56, 0x30, 0xc0, 0xb3,
+  0xa5, 0x43, 0x32, 0x97, 0x79, 0xf6, 0x09, 0xa3, 0x6e, 0xcb, 0x5e, 0xe6,
+  0x1f, 0x74, 0xa3, 0x03, 0xcb, 0x92, 0xfa, 0x15, 0xf2, 0x4a, 0xbb, 0x0c,
+  0xa4, 0x66, 0xe4, 0x73, 0xf4, 0x1d, 0x15, 0xc9, 0xee, 0x13, 0xf4, 0x1b,
+  0xff, 0x1e, 0xdf, 0xb6, 0x59, 0xa7, 0xdc, 0x81, 0x0f, 0xc3, 0xe3, 0xd3,
+  0xaf, 0x10, 0xe1, 0xfe, 0xee, 0xec, 0xe2, 0xed, 0xd0, 0x34, 0x6b, 0xe4,
+  0x15, 0x1a, 0xbf, 0x2c, 0x49, 0x12, 0x4a, 0xaf, 0xf8, 0x5c, 0xd2, 0xa7,
+  0xff, 0xc8, 0xdb, 0xa9, 0xe7, 0xb3, 0xcb, 0xcf, 0x7c, 0xdb, 0x85, 0x4a,
+  0x08, 0xc5, 0x6f, 0x0d, 0x6f, 0x37, 0xfe, 0x79, 0x96, 0x8e, 0x6f, 0xc8,
+  0xd8, 0xe6, 0xcd, 0x0a, 0xc8, 0xec, 0x36, 0xe5, 0x74, 0x6c, 0x93, 0x0d,
+  0xb5, 0xdd, 0x94, 0xd8, 0x8e, 0x68, 0xa5, 0xac, 0x7c, 0x3e, 0x74, 0xcf,
+  0xd3, 0x62, 0xf6, 0xfa, 0xd5, 0x34, 0xbd, 0xc6, 0x07, 0xc3, 0x63, 0xe0,
+  0x7d, 0x4c, 0x3e, 0xff, 0xd4, 0x4f, 0xd2, 0xb5, 0x81, 0xf6, 0x8e, 0xb1,
+  0x01, 0x90, 0x87, 0x83, 0xba, 0x48, 0x12, 0x40, 0x62, 0x05, 0x12, 0x45,
+  0xda, 0x08, 0xaa, 0x45, 0x4c, 0xc3, 0xdd, 0x02, 0x37, 0x28, 0x43, 0xca,
+  0x6c, 0xdb, 0x46, 0xc7, 0x76, 0x68, 0x5e, 0x29, 0x30, 0x82, 0x96, 0x3c,
+  0x7f, 0x4e, 0xed, 0xe0, 0xc5, 0xae, 0x14, 0x2f, 0x4f, 0x39, 0x75, 0x86,
+  0x40, 0x8c, 0x0c, 0x8f, 0x27, 0x1c, 0xa3, 0x68, 0xb4, 0xeb, 0x44, 0x62,
+  0x4f, 0x40, 0xa4, 0x75, 0x5c, 0x71, 0x70, 0x80, 0x29, 0x39, 0x98, 0xcb,
+  0xa8, 0xae, 0x1b, 0xd3, 0x95, 0x94, 0xca, 0x21, 0x30, 0x0c, 0x41, 0xf8,
+  0x36, 0x6c, 0x0d, 0xfb, 0x75, 0x85, 0x33, 0x71, 0x2b, 0x79, 0xcd, 0xac,
+  0x25, 0xb6, 0xa4, 0x14, 0x5d, 0x5e, 0xf4, 0x75, 0xf6, 0x61, 0x62, 0xd6,
+  0xed, 0x3d, 0xe9, 0xbc, 0x90, 0x74, 0xc7, 0x19, 0x7d, 0xdc, 0x08, 0x70,
+  0xde, 0x39, 0x1a, 0xfb, 0x76, 0xa5, 0x41, 0x5b, 0xd3, 0xa6, 0xf4, 0xb8,
+  0xdc, 0x1c, 0x49, 0x66, 0xe7, 0x51, 0xb5, 0x33, 0xb8, 0x06, 0x48, 0x99,
+  0xbd, 0x05, 0x2c, 0x4e, 0xda, 0x15, 0x39, 0x4b, 0x5d, 0x6d, 0x08, 0x6f,
+  0xda, 0x18, 0x44, 0xe9, 0xde, 0x33, 0x6b, 0x44, 0x4d, 0xe5, 0x4d, 0x9d,
+  0x4d, 0xaf, 0xc8, 0x14, 0xb2, 0x57, 0x08, 0x97, 0x34, 0x76, 0x45, 0x32,
+  0x84, 0x07, 0x7c, 0x51, 0x18, 0x4b, 0x25, 0x15, 0x7c, 0x0e, 0xcb, 0x92,
+  0x6b, 0x88, 0x75, 0x57, 0x47, 0xbd, 0x2d, 0x43, 0x38, 0xb6, 0xf9, 0x27,
+  0x06, 0xe0, 0xd9, 0xe6, 0x5a, 0xa2, 0xc3, 0xcb, 0x16, 0xe0, 0x5b, 0x47,
+  0xe7, 0x8e, 0x66, 0xeb, 0x61, 0x4e, 0x74, 0x3e, 0x04, 0xd6, 0xf0, 0xca,
+  0x06, 0x2a, 0xbf, 0x2e, 0x88, 0xae, 0xb3, 0x4f, 0xc4, 0x36, 0x2b, 0x63,
+  0x73, 0xf6, 0x9a, 0xd5, 0xea, 0x65, 0xbc, 0xd4, 0x1a, 0x7e, 0x0e, 0x59,
+  0x48, 0xb3, 0x4d, 0x44, 0x54, 0x64, 0x73, 0x09, 0xa2, 0x9e, 0xd5, 0x40,
+  0xb5, 0xf2, 0x6c, 0xad, 0x4a, 0xd2, 0x98, 0xcc, 0x2d, 0xcc, 0x44, 0xd0,
+  0xb6, 0xe6, 0x33, 0x62, 0xa8, 0x29, 0xdb, 0x82, 0x50, 0x82, 0xbd, 0x0f,
+  0x23, 0x77, 0x87, 0xce, 0x45, 0x0b, 0x82, 0xdb, 0x1a, 0xe5, 0x62, 0xe4,
+  0x16, 0x96, 0xf6, 0x08, 0xc0, 0xab, 0xd4, 0xe4, 0x61, 0x58, 0x4d, 0x4d,
+  0x6b, 0x0d, 0x78, 0xb3, 0x27, 0xac, 0x20, 0x46, 0xa0, 0x20, 0x77, 0x69,
+  0x51, 0xdb, 0x9d, 0x63, 0x66, 0xeb, 0x56, 0x2e, 0xc4, 0x35, 0xa0, 0xd8,
+  0x43, 0x71, 0x23, 0x92, 0x77, 0xb9, 0xbc, 0x79, 0x5c, 0xd4, 0x84, 0x5d,
+  0x52, 0xd3, 0x6f, 0xfa, 0xc0, 0xd2, 0x20, 0x2f, 0x56, 0x0b, 0x1d, 0xe9,
+  0xc4, 0x93, 0x3e, 0x8c, 0xb1, 0x82, 0x72, 0xba, 0xe6, 0x08, 0x89, 0x43,
+  0x95, 0x32, 0x20, 0x03, 0x44, 0x0d, 0x1d, 0xd6, 0x55, 0xf5, 0x2f, 0xda,
+  0x79, 0xc4, 0x81, 0x67, 0x20, 0xc9, 0x7e, 0xf2, 0x65, 0x5a, 0xe7, 0xe3,
+  0x9e, 0x14, 0x45, 0x90, 0x22, 0x09, 0xa8, 0xb3, 0xad, 0x85, 0x13, 0x92,
+  0x4d, 0xe6, 0xdb, 0xdd, 0x1a, 0x24, 0xdf, 0x69, 0x95, 0x0b, 0x63, 0x44,
+  0x32, 0x79, 0x7f, 0x3e, 0x06, 0x8e, 0xdb, 0xa2, 0x41, 0x68, 0x3e, 0x64,
+  0x7f, 0x8a, 0x9f, 0x1d, 0x2c, 0xd9, 0xf8, 0x88, 0xe3, 0x00, 0xc4, 0xaa,
+  0xa6, 0xf5, 0xad, 0x0d, 0x6a, 0x61, 0xad, 0x44, 0x14, 0x21, 0x6b, 0x8e,
+  0x75, 0x69, 0x36, 0xf2, 0x05, 0xfa, 0x82, 0x90, 0x57, 0xa1, 0xc1, 0x17,
+  0x0f, 0x1b, 0xc5, 0x8e, 0xd4, 0xda, 0x42, 0xa6, 0x6c, 0x15, 0x30, 0xec,
+  0x4c, 0x2b, 0xa2, 0xfa, 0x7d, 0x33, 0x61, 0x34, 0x35, 0x22, 0x40, 0xcf,
+  0x2e, 0x8f, 0x7e, 0x97, 0x1c, 0x74, 0x63, 0xe0, 0x74, 0x33, 0xa9, 0x18,
+  0x96, 0x92, 0xb1, 0x76, 0x83, 0xa1, 0xef, 0x0c, 0x31, 0x65, 0x56, 0xcc,
+  0x14, 0xcb, 0xbf, 0x26, 0x19, 0xb2, 0xce, 0xdb, 0x5b, 0x97, 0x92, 0x21,
+  0x81, 0x92, 0x7a, 0xb6, 0xf6, 0x1a, 0xa2, 0x03, 0xf7, 0xae, 0x0a, 0x09,
+  0x93, 0xba, 0xe7, 0x29, 0x67, 0xa8, 0x7c, 0x32, 0x07, 0x5b, 0x53, 0x14,
+  0x68, 0x9a, 0xaf, 0x6f, 0xb4, 0xa0, 0x20, 0x81, 0xb0, 0x09, 0x8e, 0x4c,
+  0xa6, 0x16, 0x53, 0x2b, 0x73, 0xf1, 0x2b, 0xaf, 0xa0, 0x89, 0x6d, 0x81,
+  0x76, 0xff, 0x47, 0x3a, 0x72, 0x1f, 0xf5, 0x62, 0x91, 0x2b, 0x90, 0xfb,
+  0x72, 0xc5, 0x76, 0x50, 0x7b, 0xcb, 0xea, 0xb1, 0xe3, 0xdb, 0xec, 0x5c,
+  0xe1, 0xa5, 0x58, 0x08, 0xba, 0x02, 0x00, 0xff, 0x40, 0xf0, 0x1b, 0x77,
+  0xaa, 0x4a, 0x4d, 0xff, 0x62, 0x02, 0xed, 0x24, 0xdd, 0x11, 0x5c, 0x30,
+  0x59, 0x48, 0x27, 0x19, 0xcc, 0x6f, 0x5a, 0x6d, 0xa7, 0xdc, 0x80, 0xa8,
+  0x16, 0xb3, 0x4a, 0xbd, 0x18, 0x9e, 0x1d, 0x7e, 0x33, 0x6c, 0xa5, 0xfc,
+  0x98, 0xd6, 0xf0, 0x21, 0x2d, 0x1d, 0xd4, 0xd9, 0xd0, 0x46, 0x1a, 0x1e,
+  0x37, 0x1d, 0xf1, 0x64, 0xe9, 0x1c, 0x3d, 0xec, 0x31, 0x5d, 0x36, 0xad,
+  0x66, 0xa9, 0xc2, 0xc6, 0x38, 0xf3, 0xd8, 0x68, 0x8b, 0x72, 0xcd, 0xbb,
+  0xf9, 0x78, 0xff, 0x94, 0xb5, 0xca, 0x44, 0x66, 0x2b, 0xe5, 0xba, 0x06,
+  0xa3, 0x8c, 0xc9, 0x86, 0x88, 0x49, 0x10, 0xab, 0x48, 0xfd, 0xc3, 0x09,
+  0xe4, 0x9d, 0x39, 0xc3, 0xe6, 0x5e, 0x73, 0xbb, 0x9b, 0xee, 0xa0, 0x65,
+  0xe3, 0xcc, 0xb9, 0x38, 0xa3, 0x75, 0x7d, 0xbb, 0x72, 0x8d, 0x85, 0x54,
+  0x0f, 0x21, 0xdd, 0x4a, 0x7b, 0x4d, 0xab, 0x03, 0xcd, 0xb6, 0xb0, 0x7a,
+  0x96, 0x2e, 0xba, 0x08, 0x3f, 0x1e, 0x24, 0xc9, 0x94, 0x49, 0x32, 0x7b,
+  0x90, 0x1c, 0x16, 0xd1, 0x0d, 0x88, 0x9b, 0x03, 0x5e, 0x89, 0xcf, 0x3f,
+  0x0f, 0x74, 0xc1, 0x4f, 0xf6, 0xe9, 0x7d, 0xf3, 0x6b, 0xcf, 0xfb, 0x31,
+  0x25, 0xbc, 0x08, 0x79, 0x1b, 0xa0, 0x87, 0x5a, 0x17, 0x48, 0xc4, 0xc2,
+  0xf0, 0x2a, 0x73, 0xf1, 0x17, 0x6d, 0x88, 0x25, 0xd8, 0x65, 0x3d, 0x27,
+  0xf7, 0xd7, 0xd8, 0xbc, 0xe6, 0x8e, 0xa6, 0x35, 0xe3, 0x8e, 0x96, 0x18,
+  0x66, 0x2a, 0x26, 0xbb, 0xbd, 0xf5, 0xb4, 0x66, 0xa3, 0xb9, 0x0f, 0xe8,
+  0x52, 0x25, 0x23, 0x60, 0x58, 0x4a, 0xc3, 0x34, 0xc9, 0xd2, 0x19, 0xbb,
+  0x3b, 0x3a, 0xfb, 0xc8, 0x96, 0xc4, 0x72, 0x32, 0xe2, 0xc3, 0xf2, 0xee,
+  0x7c, 0xf8, 0x25, 0xdd, 0x39, 0x48, 0x56, 0xa6, 0x5a, 0x61, 0x82, 0x58,
+  0xe2, 0xd7, 0x4a, 0xc4, 0x5c, 0x62, 0x57, 0xab, 0xde, 0xc3, 0x73, 0x84,
+  0x9a, 0x34, 0xa3, 0x36, 0x49, 0x6b, 0xe8, 0x98, 0x28, 0x4a, 0x7e, 0x1a,
+  0x46, 0x0d, 0xb5, 0xdf, 0xd3, 0xae, 0x3c, 0xb5, 0xbb, 0xc7, 0x57, 0xde,
+  0x47, 0x5b, 0x9a, 0x09, 0x36, 0xbc, 0xe4, 0x47, 0xed, 0x0e, 0x76, 0x7c,
+  0xfd, 0xca, 0x26, 0x35, 0x56, 0x48, 0xa2, 0xa2, 0x29, 0x5e, 0xf3, 0x54,
+  0x14, 0x1a, 0x09, 0x40, 0x93, 0x9d, 0xd7, 0xe4, 0x67, 0xbb, 0xcc, 0x6e,
+  0x60, 0x4e, 0x92, 0xb0, 0x07, 0x52, 0x92, 0x6b, 0x36, 0x9b, 0x73, 0xf2,
+  0x57, 0xa4, 0xa4, 0x2a, 0xce, 0xd1, 0x73, 0x77, 0xa4, 0x5e, 0xd8, 0xe5,
+  0x96, 0x3e, 0x72, 0xae, 0x88, 0x14, 0x21, 0xe3, 0x74, 0x0d, 0x28, 0x9f,
+  0x59, 0xc6, 0x2d, 0x35, 0x4b, 0x13, 0x55, 0x0f, 0xdb, 0x0c, 0xf0, 0xb4,
+  0x9f, 0x71, 0xd9, 0xda, 0xea, 0x98, 0xc2, 0xfa, 0x2d, 0x28, 0x63, 0x6a,
+  0x95, 0xf0, 0xd8, 0x11, 0x49, 0x03, 0x06, 0x89, 0x0c, 0x25, 0xc5, 0xe8,
+  0x5c, 0xb3, 0xa3, 0x9b, 0xb6, 0x96, 0x72, 0xe5, 0xba, 0x30, 0x9a, 0x55,
+  0xcf, 0x4c, 0xbb, 0xd3, 0xdc, 0x74, 0x68, 0x03, 0x74, 0x3a, 0x5a, 0x2d,
+  0x49, 0x64, 0xa1, 0x6e, 0x61, 0x4b, 0x6c, 0xd1, 0x2e, 0x45, 0x14, 0xf2,
+  0x69, 0x76, 0x85, 0x2e, 0x5f, 0x03, 0xbd, 0xa4, 0xff, 0x3f, 0x64, 0x66,
+  0x48, 0x3d, 0x27, 0x08, 0x18, 0x98, 0x8f, 0xe6, 0x1e, 0xfb, 0x85, 0xa0,
+  0x4e, 0x21, 0xf0, 0x09, 0xdf, 0xa9, 0xe3, 0xb0, 0x84, 0xf8, 0x9a, 0xeb,
+  0x07, 0xf9, 0xa7, 0x63, 0xcf, 0xb3, 0x6e, 0x85, 0x28, 0x11, 0x15, 0xdc,
+  0xdc, 0x9a, 0xab, 0xa3, 0x0a, 0xc8, 0x5f, 0xd0, 0x61, 0x7b, 0x91, 0x7d,
+  0x49, 0x14, 0xc7, 0x87, 0x65, 0xea, 0x4f, 0xab, 0xda, 0x72, 0x6b, 0xda,
+  0x53, 0xde, 0xfc, 0xd6, 0x95, 0xc1, 0xc4, 0xf3, 0x7d, 0xf3, 0x42, 0xff,
+  0x83, 0xb8, 0x33, 0xfe, 0xcc, 0x5f, 0x18, 0x90, 0x3c, 0x93, 0x2f, 0x9c,
+  0x53, 0x5b, 0xf6, 0x81, 0x7d, 0x79, 0x89, 0xd8, 0xea, 0xd7, 0xc5, 0x93,
+  0xd3, 0x9e, 0x15, 0x7e, 0x5e, 0xd9, 0xec, 0x3b, 0x35, 0x6d, 0x71, 0xc8,
+  0xf8, 0xaf, 0xfc, 0xae, 0x18, 0x8f, 0x0f, 0xd4, 0xc4, 0x80, 0xb3, 0x29,
+  0xc4, 0xf7, 0xb2, 0xb7, 0xbb, 0xcd, 0x9d, 0xd1, 0x52, 0xb4, 0xd0, 0xeb,
+  0x64, 0x4b, 0x3a, 0x3c, 0x07, 0x0e, 0x02, 0xca, 0x46, 0xb9, 0x81, 0x53,
+  0xee, 0x07, 0xe1, 0x70, 0x66, 0x02, 0x88, 0x46, 0xa0, 0x8c, 0xae, 0x26,
+  0x73, 0xd7, 0x32, 0x41, 0x61, 0x29, 0xeb, 0xb3, 0xe6, 0x16, 0xa8, 0x67,
+  0x55, 0xbe, 0x0d, 0x2a, 0xea, 0xee, 0x5b, 0x4d, 0x19, 0x45, 0x54, 0x52,
+  0x14, 0x8d, 0xbd, 0xb7, 0xb9, 0xb0, 0x79, 0xad, 0xa8, 0x07, 0xb3, 0xa3,
+  0x2f, 0x0e, 0x4e, 0xbf, 0x3a, 0x82, 0x26, 0x00, 0xd9, 0x4e, 0x07, 0x34,
+  0xa7, 0xdd, 0x3e, 0x59, 0x8c, 0x61, 0x0a, 0x99, 0x19, 0x03, 0x84, 0xad,
+  0x1e, 0x48, 0xaa, 0x34, 0x27, 0xa6, 0xa4, 0xb2, 0x79, 0xb1, 0xdc, 0x02,
+  0x4c, 0x5b, 0x4b, 0xd4, 0xa3, 0x0a, 0x0d, 0x02, 0x30, 0xe6, 0x8a, 0xdd,
+  0xaf, 0xf5, 0x62, 0x34, 0x47, 0x29, 0x16, 0xd8, 0x67, 0x4e, 0xcc, 0xa8,
+  0x9f, 0x65, 0xd0, 0x3e, 0x8b, 0x6b, 0x9a, 0xb6, 0x64, 0x6d, 0xfa, 0x0a,
+  0x36, 0xfd, 0xc0, 0xf7, 0xaa, 0x31, 0x2f, 0xc6, 0xee, 0xce, 0x8e, 0xa3,
+  0x2c, 0x4b, 0x6d, 0x83, 0x81, 0xb4, 0xac, 0x92, 0x9d, 0xfe, 0xab, 0x57,
+  0xcb, 0x04, 0xa1, 0x6d, 0x14, 0x54, 0x08, 0x2f, 0x9e, 0xdc, 0x66, 0x9f,
+  0x1e, 0x5d, 0xd6, 0x66, 0xc4, 0xa2, 0x41, 0x89, 0x39, 0x01, 0x05, 0xd6,
+  0x56, 0x6b, 0x11, 0x0f, 0x0f, 0x47, 0x6b, 0x10, 0x07, 0xb3, 0xa5, 0xc9,
+  0x30, 0x95, 0x6b, 0x89, 0xb5, 0x3f, 0x40, 0x1d, 0xa2, 0xce, 0xa0, 0x39,
+  0xe1, 0x02, 0x73, 0x1b, 0x8e, 0x7d, 0xd2, 0xc4, 0x78, 0x06, 0xfc, 0x92,
+  0x29, 0xba, 0x0a, 0x47, 0xa3, 0x2a, 0xc1, 0x87, 0x73, 0xf2, 0xff, 0x1d,
+  0x9f, 0x7e, 0xc5, 0xee, 0x10, 0x63, 0xdb, 0xc3, 0x97, 0xbe, 0xdd, 0xb1,
+  0xf4, 0x3f, 0x48, 0xb5, 0x6c, 0x2a, 0x10, 0x45, 0x38, 0x0c, 0xa6, 0xab,
+  0xcf, 0x0b, 0x29, 0x51, 0x6d, 0x57, 0x7f, 0x89, 0xaf, 0xf2, 0x32, 0xe9,
+  0x7b, 0xca, 0x89, 0x10, 0x8f, 0x91, 0x66, 0x32, 0x7b, 0x50, 0xcb, 0x48,
+  0xbe, 0x80, 0xd6, 0x35, 0x32, 0x63, 0x9b, 0x65, 0x3b, 0x97, 0xcd, 0x73,
+  0xec, 0xa0, 0x40, 0x37, 0x89, 0x7c, 0x92, 0x3f, 0x83, 0xf3, 0xdd, 0xd1,
+  0x44, 0x9e, 0xd6, 0x95, 0x96, 0xab, 0xb3, 0xcd, 0x7a, 0x4c, 0x9a, 0x55,
+  0x4f, 0x7d, 0x3f, 0x5d, 0x37, 0x24, 0xd7, 0x93, 0xf3, 0xa5, 0x3a, 0xad,
+  0x36, 0xd8, 0xd4, 0xcb, 0xf2, 0x9f, 0xef, 0xe7, 0x8a, 0x1e, 0xd2, 0x41,
+  0xa5, 0x9b, 0xaa, 0x98, 0x38, 0x9f, 0x86, 0xf4, 0x38, 0x1a, 0x08, 0xb9,
+  0xe4, 0xf7, 0xf9, 0xd3, 0x69, 0xfc, 0x73, 0xfc, 0xbe, 0x4e, 0x4d, 0xe4,
+  0x00, 0x90, 0x4a, 0x2b, 0xc4, 0x74, 0x36, 0x85, 0x5c, 0x6d, 0x19, 0xd2,
+  0xc2, 0x21, 0x39, 0xf2, 0xb6, 0x5a, 0xb2, 0x96, 0x08, 0x57, 0x05, 0x68,
+  0xeb, 0x68, 0x0f, 0x81, 0x1f, 0x05, 0x97, 0xd7, 0x2d, 0x30, 0x9e, 0xe6,
+  0xf9, 0x45, 0x51, 0x64, 0x64, 0xa4, 0xa2, 0xaa, 0x64, 0xce, 0xf6, 0x42,
+  0xcf, 0x9e, 0xa2, 0x6a, 0x21, 0x35, 0x9d, 0x01, 0x34, 0x30, 0x9d, 0x4f,
+  0xeb, 0x1b, 0x54, 0x31, 0xb3, 0xae, 0xa8, 0x50, 0xbd, 0xc2, 0xe7, 0xb9,
+  0x5d, 0xd2, 0xa7, 0x58, 0x99, 0x82, 0x72, 0xdd, 0x9a, 0x8a, 0xf6, 0x0c,
+  0xac, 0xad, 0x91, 0x13, 0x7e, 0x9b, 0x5c, 0xf1, 0xc3, 0x70, 0x02, 0xd5,
+  0x97, 0xbe, 0xd2, 0x1f, 0xef, 0x62, 0x0c, 0x8f, 0x78, 0xe6, 0x3d, 0xef,
+  0xc9, 0x53, 0x4f, 0x1c, 0xeb, 0xef, 0x91, 0xb8, 0x22, 0x0e, 0x9d, 0x27,
+  0xc8, 0xa2, 0x5b, 0xbd, 0xed, 0x4d, 0xf3, 0x6d, 0x01, 0x38, 0x7d, 0x60,
+  0x99, 0xa1, 0x66, 0x46, 0x67, 0xb9, 0x38, 0x85, 0xec, 0xfc, 0xc3, 0xa5,
+  0x50, 0x49, 0xa9, 0x78, 0xf7, 0x6b, 0x09, 0xf9, 0x45, 0x43, 0x21, 0xcd,
+  0x48, 0xb7, 0x60, 0xf3, 0x17, 0xb1, 0x6e, 0xce, 0x8a, 0xc4, 0x37, 0x31,
+  0x42, 0xee, 0x60, 0xcf, 0x66, 0xc0, 0x9c, 0x9f, 0x0d, 0x2f, 0xc9, 0x8d,
+  0x80, 0xab, 0x4f, 0xed, 0xd1, 0x6f, 0x8f, 0x2e, 0xbe, 0x3c, 0x1b, 0x1e,
+  0x99, 0xf5, 0x78, 0x7b, 0xf4, 0xe5, 0x07, 0x92, 0x5a, 0xb4, 0x3b, 0xd8,
+  0xf5, 0x4c, 0xd9, 0x31, 0xe2, 0xff, 0xa2, 0xba, 0xae, 0x48, 0x91, 0xc3,
+  0x36, 0x65, 0x3d, 0x48, 0xeb, 0x79, 0x5a, 0x15, 0x8f, 0xeb, 0x92, 0x4e,
+  0x33, 0xf6, 0x55, 0xe6, 0xc8, 0x25, 0x60, 0x0a, 0x1f, 0xc9, 0x43, 0x42,
+  0x25, 0x43, 0x98, 0x97, 0x72, 0x94, 0x98, 0x46, 0xbb, 0xde, 0x77, 0x4e,
+  0xcd, 0x3b, 0xf6, 0x4c, 0xcb, 0xe1, 0x73, 0xb5, 0x17, 0xc1, 0x27, 0x84,
+  0xcd, 0x7b, 0x68, 0xf5, 0x68, 0x61, 0xd4, 0x99, 0x96, 0x7c, 0x6b, 0xa2,
+  0x5c, 0x20, 0xb5, 0x8d, 0x7b, 0x3c, 0x6f, 0x70, 0x85, 0xb3, 0x41, 0x21,
+  0xa5, 0x0b, 0x6b, 0xde, 0xdc, 0x5c, 0xa7, 0x95, 0x60, 0x64, 0x99, 0x57,
+  0xb6, 0xb2, 0xce, 0xb8, 0x8c, 0x01, 0xdf, 0xda, 0x12, 0x0f, 0x67, 0xcc,
+  0xae, 0xd0, 0x78, 0x6d, 0x8a, 0x11, 0x7c, 0x8f, 0x71, 0x0a, 0x45, 0x39,
+  0xd7, 0xfe, 0xb3, 0x7c, 0xb6, 0x34, 0xf3, 0x7e, 0x1d, 0x16, 0xde, 0x3a,
+  0x77, 0xcb, 0x45, 0xcf, 0x25, 0x8f, 0x94, 0xfc, 0x1c, 0xac, 0x08, 0x48,
+  0x5a, 0x12, 0xfa, 0xdd, 0xa9, 0x68, 0xe2, 0x14, 0x14, 0x3e, 0xbb, 0x94,
+  0x16, 0xe0, 0x99, 0x90, 0xcb, 0x8b, 0x05, 0xaa, 0x36, 0x2b, 0x01, 0x26,
+  0x97, 0x14, 0xc4, 0xc2, 0x55, 0x10, 0x75, 0xb4, 0xa4, 0x08, 0x09, 0xf0,
+  0xe6, 0x0b, 0xcf, 0x3b, 0xb7, 0x8e, 0xff, 0xe2, 0x8c, 0x7a, 0x81, 0x93,
+  0xb5, 0xb5, 0xb5, 0xb7, 0x47, 0x97, 0x07, 0xc7, 0x27, 0x47, 0x6f, 0x93,
+  0xe3, 0xd3, 0x77, 0x67, 0x17, 0xef, 0x0f, 0x2e, 0x05, 0x8e, 0xf1, 0xd6,
+  0x7a, 0xe4, 0x5c, 0x95, 0x35, 0xa9, 0x25, 0xe4, 0x79, 0xeb, 0xb0, 0x85,
+  0xcd, 0x2a, 0x5e, 0x4b, 0x19, 0x75, 0x9e, 0x86, 0xac, 0x35, 0x07, 0x6b,
+  0x89, 0xc0, 0x38, 0x5c, 0x59, 0x3a, 0xd2, 0x0b, 0xb6, 0x6d, 0xec, 0x7d,
+  0xa0, 0xd3, 0x69, 0x79, 0x94, 0x88, 0x6e, 0x78, 0x65, 0x53, 0xb6, 0xca,
+  0x28, 0xdf, 0x89, 0xae, 0x24, 0x30, 0xf6, 0x64, 0xff, 0x78, 0x9b, 0x0b,
+  0x5a, 0x7b, 0x25, 0x0b, 0xb4, 0xde, 0x0c, 0x58, 0x39, 0xa8, 0x1d, 0x8f,
+  0x40, 0xe7, 0xaa, 0x04, 0xaa, 0xc4, 0x6f, 0xd3, 0xd2, 0xc2, 0x60, 0x45,
+  0x8d, 0x16, 0xc0, 0x30, 0x1e, 0xfc, 0xc4, 0x5f, 0x5f, 0xe2, 0x65, 0x59,
+  0xa3, 0x64, 0x80, 0x46, 0x8a, 0xa5, 0x11, 0xc5, 0x51, 0x6d, 0x56, 0xca,
+  0x9e, 0x75, 0xd0, 0x2e, 0x59, 0x81, 0xad, 0xd1, 0x39, 0xe1, 0xaa, 0xf5,
+  0x9b, 0xda, 0xb4, 0xf1, 0x7a, 0xa3, 0x31, 0xf5, 0x8f, 0x85, 0x38, 0x99,
+  0xe6, 0x62, 0x6b, 0x8d, 0xb9, 0xf5, 0x0b, 0xa5, 0xac, 0xb3, 0x48, 0x50,
+  0x67, 0xf1, 0xe7, 0xdb, 0x5e, 0xe1, 0x47, 0x9c, 0x36, 0x77, 0x6e, 0x95,
+  0xe8, 0xba, 0xff, 0xd6, 0x3c, 0x34, 0x59, 0xcc, 0xe6, 0x5a, 0xed, 0x5b,
+  0x34, 0x6a, 0xf8, 0xf2, 0x74, 0x09, 0x59, 0x69, 0x83, 0xf2, 0x01, 0xc7,
+  0xcf, 0x3b, 0x99, 0x03, 0x1e, 0x07, 0xf6, 0x77, 0xa3, 0xa1, 0x40, 0x14,
+  0x9b, 0xb5, 0xd1, 0xbb, 0x6e, 0xf9, 0xce, 0xb6, 0xe6, 0x82, 0x09, 0x19,
+  0xda, 0x67, 0xbb, 0xf5, 0x3e, 0x53, 0x87, 0x35, 0xc2, 0xfc, 0x6f, 0x2a,
+  0xfd, 0x17, 0x6d, 0x59, 0x69, 0x50, 0xae, 0x8a, 0x30, 0xf8, 0xd8, 0x1a,
+  0x94, 0xff, 0x62, 0x1b, 0xd2, 0xe3, 0x4b, 0x7a, 0xfd, 0xb4, 0x63, 0xbb,
+  0xea, 0xf6, 0x40, 0xa4, 0xb8, 0x91, 0x27, 0x0f, 0x5a, 0xe8, 0x82, 0x38,
+  0x15, 0x01, 0x37, 0x22, 0x67, 0x29, 0xf8, 0x08, 0x44, 0x52, 0x22, 0x20,
+  0xa6, 0xdb, 0x77, 0x81, 0xf2, 0x0d, 0xe5, 0x2d, 0xd9, 0xf2, 0x5a, 0xb2,
+  0xd5, 0x4b, 0xa5, 0x63, 0x14, 0x99, 0x30, 0xdd, 0x41, 0xe8, 0x15, 0x6b,
+  0x9a, 0xf5, 0xab, 0x2f, 0x29, 0x16, 0x11, 0xd2, 0x9f, 0x4b, 0xcd, 0x43,
+  0xc8, 0x93, 0x51, 0x9d, 0xa5, 0x35, 0x0c, 0x2a, 0x24, 0xd4, 0xf0, 0x9d,
+  0x61, 0xdd, 0xb0, 0x8e, 0xb4, 0xcd, 0x2b, 0x64, 0x07, 0x11, 0x3d, 0x49,
+  0x5e, 0xd3, 0xb3, 0x44, 0x8a, 0xe3, 0xb1, 0xc2, 0x64, 0x5e, 0x2b, 0x1a,
+  0xe0, 0x30, 0xcd, 0x70, 0x25, 0x7a, 0x86, 0x85, 0x9e, 0xd3, 0x03, 0xa9,
+  0x6a, 0xf8, 0xeb, 0xae, 0xe8, 0xd0, 0xfa, 0xfc, 0xc6, 0x7c, 0x63, 0x3d,
+  0xb9, 0x26, 0x1b, 0x69, 0x64, 0xba, 0x1e, 0x08, 0xd0, 0x09, 0x3f, 0xfe,
+  0xe6, 0x22, 0xbd, 0x4a, 0xb3, 0xe9, 0x1f, 0xf6, 0x76, 0x86, 0xe9, 0xf5,
+  0x62, 0x9a, 0xfe, 0x1b, 0x5e, 0x7c, 0xf3, 0xec, 0xd9, 0xde, 0xce, 0x67,
+  0x9f, 0xef, 0xac, 0x77, 0xd1, 0x07, 0x8e, 0x93, 0x05, 0x08, 0x1b, 0x70,
+  0xb2, 0x90, 0xdc, 0xc5, 0x77, 0x06, 0xe3, 0xeb, 0x1c, 0x46, 0x1d, 0x29,
+  0x4a, 0x32, 0x07, 0x29, 0x5b, 0x93, 0x10, 0x93, 0x9c, 0x3f, 0x6c, 0x76,
+  0x70, 0x6d, 0xf6, 0xf5, 0xef, 0x77, 0xf7, 0x59, 0x94, 0x5d, 0xc3, 0xf9,
+  0x9e, 0xf2, 0x8e, 0x4d, 0x5e, 0xe7, 0x85, 0xb9, 0x81, 0xbe, 0x48, 0x9a,
+  0xf4, 0xda, 0xee, 0x55, 0x61, 0x49, 0xe0, 0x74, 0x08, 0x1b, 0xdf, 0xbc,
+  0xa2, 0x4d, 0x9e, 0x9b, 0xa9, 0xda, 0x04, 0x17, 0xc6, 0x46, 0x0d, 0x25,
+  0x6b, 0x9e, 0x55, 0xc8, 0x5c, 0xbd, 0xae, 0xd2, 0x99, 0x26, 0x9d, 0xd0,
+  0xfb, 0x04, 0x5b, 0x1b, 0xcc, 0xa7, 0x5a, 0x7c, 0x9d, 0xfd, 0x16, 0xb9,
+  0xdb, 0x70, 0xd3, 0x79, 0xed, 0xaa, 0x63, 0xf2, 0x75, 0x73, 0x2c, 0x45,
+  0xc5, 0x36, 0xc8, 0xa5, 0xb2, 0xce, 0x3e, 0x95, 0x75, 0x8c, 0xaa, 0x67,
+  0x2b, 0x49, 0xf7, 0x27, 0x3a, 0xd2, 0x01, 0xfe, 0x0e, 0x56, 0x8f, 0x94,
+  0x19, 0x01, 0xd7, 0xe7, 0x9c, 0x47, 0x6f, 0xeb, 0x4b, 0xb1, 0xf3, 0x2d,
+  0x6f, 0x8d, 0x2b, 0x75, 0xe0, 0xcb, 0xe4, 0xb5, 0x7a, 0x89, 0x76, 0xbf,
+  0x78, 0x83, 0x0d, 0xb1, 0xfb, 0xc5, 0xbf, 0xd9, 0x9f, 0xed, 0xc9, 0xcf,
+  0xf6, 0xbe, 0xf8, 0xb7, 0xc1, 0x00, 0xfd, 0xa3, 0x1d, 0xb2, 0xa1, 0xbf,
+  0xde, 0x10, 0xd6, 0xa4, 0x54, 0x8e, 0x30, 0xff, 0x8b, 0xcc, 0x76, 0x2e,
+  0x4a, 0x85, 0xb5, 0x5e, 0xd7, 0x2f, 0xfb, 0xb3, 0xdc, 0x93, 0x88, 0xaa,
+  0x95, 0x5b, 0x79, 0xed, 0x53, 0xcf, 0xd5, 0xb1, 0x49, 0xb7, 0x71, 0x10,
+  0xb4, 0x23, 0x30, 0x4a, 0xbc, 0xfc, 0xef, 0xb4, 0x53, 0xff, 0x7d, 0x2d,
+  0x91, 0xe8, 0x26, 0x2d, 0xc7, 0x03, 0x02, 0x1e, 0xba, 0x6d, 0x99, 0xee,
+  0x88, 0x79, 0x91, 0xa9, 0x65, 0x4a, 0xe3, 0xa0, 0x3b, 0xd0, 0x2b, 0xb1,
+  0xf4, 0x47, 0xa9, 0x4a, 0x6b, 0xf3, 0x5f, 0xf4, 0x19, 0x4e, 0x79, 0x31,
+  0x3a, 0x46, 0x43, 0xd2, 0x01, 0xcf, 0xfe, 0xe1, 0xfb, 0xef, 0x45, 0xa1,
+  0x32, 0x7f, 0x91, 0x9e, 0xdf, 0x18, 0x59, 0x34, 0x31, 0xe2, 0x6d, 0x86,
+  0x9a, 0x2d, 0x52, 0x15, 0x4b, 0xae, 0xfc, 0x2b, 0x19, 0x29, 0x37, 0x62,
+  0x96, 0xf6, 0x60, 0x78, 0x78, 0x7c, 0x0c, 0xc4, 0x28, 0x26, 0xf5, 0x88,
+  0xc5, 0x18, 0xf6, 0xe6, 0x26, 0x20, 0x1e, 0x0e, 0x96, 0xe8, 0x6f, 0x7d,
+  0x5a, 0x3b, 0x2c, 0x3b, 0x76, 0xbf, 0x69, 0x4c, 0x0d, 0x70, 0x59, 0x4a,
+  0xec, 0x59, 0xd6, 0x72, 0xde, 0xac, 0xf3, 0x83, 0xd7, 0xf9, 0xba, 0x04,
+  0xb1, 0xf8, 0x27, 0xeb, 0x8e, 0x04, 0x8b, 0xd7, 0x03, 0x8b, 0xf6, 0x86,
+  0x55, 0xa7, 0xfc, 0xef, 0xd9, 0x9b, 0xdd, 0x9d, 0xf8, 0x13, 0x88, 0xda,
+  0x12, 0xed, 0xdf, 0x1b, 0x17, 0x10, 0x5c, 0xf5, 0x7c, 0x3e, 0xe1, 0xa7,
+  0xa5, 0xaa, 0x34, 0x0a, 0x7c, 0xbd, 0x59, 0x1f, 0xd1, 0x0d, 0x4b, 0xff,
+  0xb7, 0xa4, 0x1f, 0x88, 0x58, 0xc9, 0xb3, 0xf5, 0x62, 0x34, 0xcb, 0x5b,
+  0x1d, 0xde, 0xa6, 0x01, 0x7e, 0x41, 0x03, 0xfe, 0x2e, 0xb3, 0xbb, 0x23,
+  0x23, 0xd5, 0x8e, 0x75, 0xbf, 0x8d, 0xab, 0xb2, 0x1c, 0xa5, 0xd5, 0x86,
+  0x84, 0x73, 0xb4, 0x9f, 0x1b, 0xbb, 0x7b, 0xcf, 0x9e, 0xbf, 0xd8, 0x18,
+  0x88, 0x9e, 0x06, 0x11, 0xd1, 0xf8, 0xc4, 0x23, 0xdc, 0x84, 0xa5, 0xcc,
+  0x60, 0xd4, 0x34, 0x52, 0xf5, 0x63, 0xc1, 0x55, 0x92, 0x62, 0xf4, 0xb9,
+  0x37, 0xfc, 0xb5, 0x7f, 0xa3, 0xef, 0xbc, 0xc1, 0x27, 0xfe, 0x2d, 0x9f,
+  0xbc, 0xb1, 0x23, 0xfc, 0x37, 0x1a, 0xcb, 0x1b, 0x19, 0x84, 0x59, 0x57,
+  0x4d, 0x27, 0xac, 0xb7, 0xd6, 0xa2, 0x72, 0x2d, 0xba, 0xb8, 0xba, 0x88,
+  0x6b, 0x18, 0x34, 0x10, 0x0c, 0xfd, 0x09, 0x47, 0x3f, 0xa0, 0xad, 0xba,
+  0x64, 0xba, 0xed, 0x4f, 0x7d, 0xd3, 0x4a, 0x9f, 0x5a, 0xe9, 0x3b, 0x81,
+  0x0d, 0xb6, 0xc6, 0x3e, 0x2d, 0x44, 0x4f, 0xb2, 0x29, 0xa7, 0xf0, 0xb2,
+  0x88, 0x2a, 0x50, 0x96, 0x00, 0x01, 0x1c, 0x7e, 0x75, 0xbc, 0x21, 0xc0,
+  0x1b, 0x36, 0x13, 0x7b, 0x31, 0xff, 0xb4, 0x85, 0x18, 0x8e, 0xd3, 0x39,
+  0x9d, 0xfe, 0x35, 0x25, 0xa4, 0x4d, 0x09, 0x47, 0x42, 0xdf, 0xe5, 0xc4,
+  0x67, 0xf3, 0x31, 0xb9, 0x75, 0xa6, 0xe4, 0xf1, 0xae, 0x98, 0x47, 0xd2,
+  0x6b, 0xc6, 0xcc, 0x4b, 0x2d, 0x80, 0x12, 0xc4, 0x7c, 0xe6, 0x36, 0x73,
+  0xb2, 0xff, 0xce, 0x06, 0x3d, 0x6d, 0xa6, 0x9e, 0x3c, 0x6a, 0x7e, 0xc5,
+  0xf2, 0x44, 0x45, 0xc4, 0xfa, 0x40, 0x6b, 0x76, 0xf3, 0x4e, 0xf0, 0xa5,
+  0x07, 0xb2, 0xf7, 0x47, 0x99, 0xe4, 0x5b, 0xb2, 0xdb, 0x84, 0x15, 0x43,
+  0x92, 0x9f, 0xaf, 0x6d, 0xb1, 0xbc, 0x2f, 0x12, 0xf0, 0x4a, 0xf3, 0x5b,
+  0x12, 0x77, 0x6c, 0x95, 0xae, 0xc7, 0x4b, 0x6b, 0xae, 0x40, 0x1f, 0xcf,
+  0x88, 0x43, 0xe3, 0x88, 0x62, 0xe0, 0x13, 0x66, 0x8e, 0x1e, 0xc4, 0xd9,
+  0x40, 0x2d, 0x6c, 0xfc, 0x09, 0x87, 0xe0, 0x35, 0x2d, 0x03, 0x7e, 0xfd,
+  0xc5, 0xc6, 0x9a, 0xad, 0x15, 0x65, 0x35, 0xf7, 0x4e, 0x00, 0x99, 0x37,
+  0xa8, 0x3f, 0x1e, 0x8f, 0x20, 0x81, 0xb5, 0x31, 0xa2, 0x63, 0x41, 0x41,
+  0x08, 0xa3, 0x4d, 0x4d, 0x27, 0x52, 0x69, 0xd7, 0x3a, 0xa8, 0xb9, 0xf1,
+  0x8c, 0xd2, 0x14, 0x48, 0x7b, 0xdc, 0x20, 0xb4, 0x2a, 0xde, 0xdb, 0xb0,
+  0xe4, 0xa8, 0xf0, 0x99, 0x42, 0xe0, 0x55, 0x99, 0x16, 0x80, 0x5d, 0x93,
+  0x62, 0x5c, 0x4e, 0x9b, 0xf7, 0x07, 0x56, 0x7b, 0xca, 0x83, 0xcb, 0x57,
+  0x64, 0x8e, 0xa2, 0xe0, 0x88, 0xbc, 0xa3, 0x44, 0x60, 0xf9, 0xe8, 0x1b,
+  0x9a, 0xee, 0xdd, 0xc1, 0x75, 0x7e, 0xc5, 0x93, 0x61, 0x44, 0xe4, 0x75,
+  0xb6, 0x6d, 0xfe, 0xd9, 0x33, 0x3f, 0xdf, 0x23, 0xad, 0x8c, 0xfe, 0xf2,
+  0x0c, 0x78, 0x2c, 0xff, 0xee, 0xf7, 0xce, 0x86, 0x3d, 0x17, 0xf4, 0x97,
+  0xdc, 0xde, 0xf9, 0x12, 0xd5, 0x91, 0x5e, 0xf6, 0x95, 0xaf, 0x14, 0x59,
+  0x72, 0xaa, 0x6a, 0xfa, 0xa0, 0x12, 0x32, 0xb4, 0xc8, 0x24, 0x5d, 0x50,
+  0x7a, 0x8a, 0x05, 0x8f, 0x08, 0x90, 0x42, 0x14, 0x75, 0xd2, 0xbb, 0x73,
+  0x71, 0xcf, 0x50, 0x3a, 0x0f, 0x6e, 0xd6, 0xec, 0x7e, 0xab, 0xe7, 0x23,
+  0x6d, 0x8d, 0x78, 0xbf, 0xa3, 0xe4, 0x78, 0x62, 0x10, 0xb1, 0x3a, 0x2d,
+  0x3e, 0xbf, 0x29, 0x75, 0x15, 0xbd, 0x9c, 0x61, 0x2c, 0x73, 0xde, 0x5d,
+  0xc1, 0x76, 0x69, 0x42, 0x06, 0xf2, 0xe5, 0x75, 0xb3, 0x45, 0x9f, 0xc9,
+  0xa6, 0x35, 0x6c, 0x75, 0x29, 0x4a, 0xaa, 0x5f, 0x15, 0xe0, 0x01, 0x7f,
+  0x68, 0xc3, 0x3f, 0xfb, 0xe5, 0xb8, 0xc9, 0x8c, 0xad, 0x4b, 0x6c, 0x69,
+  0x33, 0x96, 0x73, 0x47, 0x33, 0xa6, 0x24, 0xc6, 0x16, 0x9e, 0xf6, 0xf9,
+  0xf6, 0x14, 0x95, 0xa8, 0xff, 0x6e, 0x90, 0x9c, 0x00, 0x31, 0x5e, 0xa7,
+  0xcc, 0xc7, 0xa3, 0x37, 0xac, 0xee, 0x06, 0xb3, 0x75, 0x58, 0x07, 0x5f,
+  0xe3, 0x0c, 0x16, 0x62, 0xb6, 0xd0, 0x2d, 0x05, 0xe2, 0x49, 0x67, 0x74,
+  0xb2, 0x7e, 0x21, 0xfa, 0x48, 0x0f, 0xbe, 0x70, 0xfb, 0x1c, 0x7c, 0xfe,
+  0xec, 0xf7, 0x43, 0x1e, 0x97, 0xdd, 0xb0, 0x5e, 0x23, 0x0c, 0xda, 0x12,
+  0x05, 0xd4, 0x13, 0xeb, 0xf6, 0x10, 0x30, 0xa4, 0x32, 0x63, 0xa7, 0x0b,
+  0x11, 0x2c, 0x10, 0x29, 0x10, 0x62, 0xc2, 0xa6, 0x35, 0xec, 0x32, 0xaa,
+  0x19, 0x49, 0xdb, 0x68, 0x1d, 0x76, 0xe3, 0x34, 0xb3, 0xc6, 0x35, 0xaf,
+  0x55, 0x69, 0xe1, 0xe6, 0xf0, 0xc5, 0x08, 0xdd, 0xae, 0x0d, 0xd7, 0x51,
+  0x27, 0xa9, 0x5f, 0xe9, 0x9d, 0xf9, 0x0b, 0x29, 0x67, 0xa3, 0xca, 0xac,
+  0x7a, 0x56, 0xf1, 0xd5, 0xc0, 0x18, 0x21, 0xaf, 0x80, 0xe6, 0xd7, 0x97,
+  0xef, 0x4f, 0x12, 0xe5, 0x35, 0xba, 0x72, 0xaa, 0xa2, 0x22, 0x33, 0x31,
+  0x44, 0xf1, 0x8c, 0xb0, 0x3e, 0x24, 0x4f, 0xf1, 0x2d, 0xc7, 0x73, 0x4b,
+  0x09, 0xef, 0x09, 0x4d, 0x4e, 0xeb, 0xc8, 0x7a, 0x4f, 0xf0, 0xab, 0xb4,
+  0x8f, 0xcc, 0x36, 0xd9, 0xa0, 0x29, 0xd8, 0xe8, 0x25, 0x1b, 0xd4, 0x55,
+  0xfa, 0xc5, 0x06, 0xe6, 0x13, 0x3f, 0xf6, 0xa6, 0x6f, 0x63, 0x10, 0x39,
+  0x85, 0xf4, 0xcc, 0x9b, 0x3f, 0xb7, 0x66, 0x09, 0x3f, 0xd7, 0xa6, 0xde,
+  0x70, 0xbe, 0x48, 0xa0, 0x73, 0xeb, 0xbb, 0x5e, 0xfb, 0x6f, 0x0e, 0x4b,
+  0x62, 0x1a, 0xa5, 0x02, 0x9d, 0x0e, 0xe6, 0x3a, 0xb6, 0x3f, 0xcb, 0x91,
+  0xfb, 0x1a, 0x34, 0xf4, 0xf8, 0x29, 0xbe, 0x54, 0x51, 0x64, 0x21, 0xa0,
+  0x2c, 0xdd, 0x78, 0x0b, 0xa8, 0xe4, 0x35, 0xab, 0x99, 0xb3, 0xdd, 0x77,
+  0x5f, 0xc2, 0xcb, 0x00, 0x99, 0xb3, 0x3b, 0x40, 0x32, 0xa4, 0x63, 0x46,
+  0xb7, 0x0d, 0x58, 0xe3, 0x7d, 0x1d, 0x13, 0xba, 0x6e, 0x51, 0xb9, 0x6a,
+  0xd2, 0xeb, 0x2c, 0xc7, 0x64, 0xd7, 0x3c, 0x1f, 0xa3, 0xd6, 0xfd, 0x9b,
+  0x3f, 0x4f, 0xca, 0x6b, 0x92, 0x5c, 0x3d, 0x73, 0xd0, 0xe8, 0x4f, 0x00,
+  0x92, 0xf7, 0xe4, 0xa3, 0xdc, 0x61, 0x9c, 0x15, 0xd6, 0xe2, 0xf5, 0xdf,
+  0x4b, 0x20, 0xaa, 0xef, 0xc8, 0x15, 0x3a, 0x96, 0xb6, 0x6d, 0xd3, 0xbc,
+  0x1e, 0xa6, 0x7d, 0xfb, 0x0b, 0xff, 0x5b, 0x3a, 0x39, 0xa9, 0xb4, 0xcc,
+  0x85, 0x52, 0xa5, 0x8e, 0xec, 0xf4, 0xc1, 0x16, 0x89, 0x82, 0x83, 0x8b,
+  0x18, 0xce, 0xf9, 0xde, 0x9a, 0x4a, 0x86, 0xde, 0xc6, 0x9f, 0x37, 0x38,
+  0x47, 0x60, 0xe3, 0xf5, 0x06, 0x24, 0x18, 0xc9, 0xa5, 0xd9, 0x28, 0x43,
+  0x1e, 0x99, 0x5c, 0x4e, 0x1b, 0x7c, 0x2b, 0xf6, 0x59, 0x77, 0x10, 0x26,
+  0x47, 0x77, 0x40, 0x70, 0x2d, 0x3b, 0x33, 0xd2, 0x07, 0x4f, 0xc2, 0x4d,
+  0xe0, 0xca, 0xb7, 0x12, 0x15, 0xf1, 0xa8, 0x61, 0xa0, 0x8c, 0x5c, 0xba,
+  0x50, 0xcb, 0x40, 0x7a, 0x42, 0x3c, 0x40, 0xe2, 0xe6, 0x5c, 0x14, 0x73,
+  0x4a, 0x73, 0x1f, 0x37, 0xf0, 0xb6, 0xf0, 0x59, 0x1a, 0x24, 0x1f, 0x8a,
+  0x09, 0x17, 0x57, 0x27, 0x63, 0x39, 0xaf, 0xc6, 0x8b, 0x19, 0xb9, 0x2a,
+  0xc6, 0xe4, 0x20, 0xc3, 0xc5, 0xc3, 0xea, 0x41, 0x2b, 0x3c, 0xef, 0x77,
+  0x98, 0x9d, 0x23, 0xec, 0x30, 0x97, 0xef, 0x02, 0x8a, 0x42, 0x00, 0x2c,
+  0x71, 0x88, 0x43, 0x2b, 0xb0, 0xe4, 0x27, 0x22, 0x80, 0x28, 0x32, 0x78,
+  0xf4, 0xee, 0xe8, 0xe2, 0xe2, 0xe8, 0x82, 0xe6, 0xfb, 0xa0, 0x53, 0x8d,
+  0x4b, 0x69, 0x90, 0x5d, 0xa8, 0x51, 0x61, 0xbf, 0xbe, 0xa7, 0x46, 0xb3,
+  0x92, 0x48, 0x14, 0x4a, 0x31, 0x2a, 0x58, 0x10, 0x4c, 0xf7, 0xc3, 0xe5,
+  0x0e, 0x7c, 0xf7, 0x22, 0x60, 0xdf, 0x36, 0x6c, 0x00, 0x18, 0x14, 0x1c,
+  0x90, 0x2d, 0xdd, 0xc2, 0xb5, 0x50, 0x09, 0x01, 0xfe, 0x42, 0xb3, 0xeb,
+  0x6f, 0xb2, 0x96, 0x9a, 0x3a, 0x10, 0xa4, 0x6e, 0x26, 0xc1, 0xf4, 0xa9,
+  0xf5, 0x4f, 0x60, 0xc8, 0x57, 0x74, 0x46, 0xc9, 0x76, 0xc2, 0x64, 0xd4,
+  0xcd, 0x62, 0x9e, 0x4f, 0xac, 0xb7, 0xd7, 0xfc, 0xdc, 0xa8, 0x7f, 0x09,
+  0x9f, 0xf2, 0x5a, 0xb1, 0x2e, 0x88, 0x6a, 0xaa, 0x33, 0xc2, 0xf7, 0xb6,
+  0x75, 0x6a, 0x55, 0x27, 0x48, 0x7c, 0x63, 0xd0, 0x98, 0x12, 0x9b, 0xb7,
+  0xd3, 0xc4, 0x65, 0xef, 0x67, 0xf0, 0x32, 0x92, 0xb4, 0x50, 0xf8, 0x8d,
+  0x2f, 0x19, 0xc8, 0x97, 0x35, 0x73, 0x78, 0x77, 0x57, 0xdb, 0xf6, 0x02,
+  0xd9, 0xa1, 0xd5, 0x7e, 0xf2, 0x43, 0x9d, 0x8f, 0x7f, 0x72, 0x97, 0x07,
+  0xd2, 0x7f, 0xda, 0x7c, 0x54, 0x98, 0x3a, 0x99, 0x28, 0x31, 0x86, 0x39,
+  0x2b, 0xfb, 0xc3, 0xf0, 0xe8, 0x22, 0x39, 0xf8, 0x8a, 0x18, 0xbd, 0xff,
+  0xc9, 0x05, 0xa6, 0xe7, 0xe4, 0x76, 0x58, 0x13, 0x7e, 0x45, 0xa1, 0x28,
+  0xc9, 0x26, 0x7e, 0x25, 0xda, 0x41, 0x6b, 0x65, 0x73, 0xad, 0x5f, 0xe0,
+  0xae, 0xfb, 0xf6, 0x1a, 0x92, 0xbb, 0xf0, 0x91, 0x55, 0x7c, 0xca, 0x1a,
+  0xd2, 0x21, 0xf3, 0x57, 0x91, 0xc9, 0x8d, 0x38, 0x24, 0xa1, 0x6b, 0x23,
+  0xbd, 0xaf, 0x03, 0xb3, 0x93, 0x57, 0xe9, 0x20, 0xd9, 0x78, 0x5f, 0xfe,
+  0xdd, 0x28, 0x03, 0xe9, 0xf6, 0xb3, 0xc1, 0x4e, 0xb2, 0xf9, 0x5d, 0x5e,
+  0xbc, 0x7a, 0xf1, 0xa7, 0xe4, 0x78, 0x6b, 0xa3, 0x05, 0xe6, 0xe7, 0x92,
+  0x22, 0xa3, 0xb4, 0xb8, 0xb5, 0x4b, 0x76, 0x86, 0x93, 0xcd, 0xa0, 0x3a,
+  0x71, 0x3e, 0xd4, 0x4c, 0xe7, 0xbf, 0xb4, 0x45, 0xe4, 0x70, 0x4a, 0x5e,
+  0x40, 0xf2, 0xad, 0x2d, 0xef, 0x4e, 0x56, 0xbe, 0x79, 0x6a, 0x42, 0x53,
+  0xf7, 0xea, 0x45, 0xd0, 0xc4, 0x73, 0xdb, 0xc6, 0x07, 0x6e, 0xe3, 0x67,
+  0x36, 0xb1, 0x37, 0xd8, 0xd9, 0x4b, 0x36, 0xcf, 0x86, 0xdb, 0x7b, 0xb6,
+  0x85, 0xb0, 0x89, 0x3d, 0x34, 0x41, 0x0f, 0xb5, 0x5f, 0x7e, 0x4e, 0xdf,
+  0xff, 0x21, 0x2b, 0x7e, 0x4a, 0x36, 0xbf, 0xdf, 0xdd, 0x35, 0x0d, 0xfc,
+  0x29, 0x39, 0x38, 0xfe, 0x3e, 0x79, 0x3e, 0x30, 0x8d, 0x9d, 0xa6, 0x77,
+  0xd2, 0x9c, 0xb0, 0x12, 0x0f, 0xd1, 0x88, 0xf9, 0x7d, 0xd0, 0xc6, 0x8b,
+  0x4e, 0x1b, 0x27, 0xc6, 0x2e, 0xfc, 0x64, 0xae, 0x95, 0x9d, 0xc1, 0xb3,
+  0xbd, 0x24, 0x7f, 0xf1, 0xf9, 0x4b, 0x6d, 0x48, 0xda, 0xc0, 0xef, 0xdb,
+  0xde, 0x4a, 0x66, 0x3e, 0x31, 0xaa, 0xce, 0xd1, 0x27, 0x23, 0xd0, 0x20,
+  0x22, 0x2a, 0xf2, 0x14, 0xde, 0xa4, 0xd5, 0x44, 0xb6, 0x1b, 0x15, 0x1b,
+  0x31, 0x2b, 0x25, 0x94, 0xf0, 0x19, 0xdc, 0x96, 0xe6, 0xe2, 0xdc, 0x0f,
+  0xba, 0x43, 0xb6, 0xa9, 0x3e, 0xfa, 0xa7, 0xe4, 0xfd, 0xf0, 0xf8, 0xc8,
+  0x8c, 0x68, 0xc7, 0x74, 0xcd, 0xcd, 0x21, 0x77, 0x08, 0xbf, 0xc2, 0xe4,
+  0xbe, 0x02, 0xdb, 0xac, 0xb4, 0xa1, 0x3a, 0x37, 0x03, 0x59, 0xcd, 0xa6,
+  0x33, 0x17, 0x77, 0x8d, 0xef, 0x12, 0x24, 0xa5, 0x7f, 0x70, 0x4d, 0x26,
+  0x04, 0x5f, 0xb5, 0xf8, 0xf4, 0x37, 0x65, 0x61, 0x8e, 0x49, 0x55, 0x56,
+  0x84, 0x9c, 0xda, 0x68, 0x69, 0x0b, 0xdf, 0xbc, 0x3d, 0xe2, 0xec, 0xf8,
+  0xf7, 0x69, 0x61, 0x64, 0x24, 0x91, 0x5c, 0xd5, 0xb7, 0x14, 0xff, 0xe7,
+  0x70, 0x0e, 0xbf, 0x7f, 0xf2, 0x50, 0x7c, 0x32, 0xeb, 0xf8, 0xd9, 0x60,
+  0x97, 0x20, 0xdb, 0x64, 0xf5, 0xbe, 0x7b, 0x6f, 0xfe, 0xbd, 0xfb, 0x7c,
+  0x23, 0xa1, 0x5f, 0xb5, 0x2d, 0x78, 0x3d, 0xaf, 0x6b, 0x87, 0x67, 0x67,
+  0xdf, 0x1c, 0x33, 0x00, 0xe4, 0x50, 0xdc, 0xaa, 0xa4, 0x5c, 0x59, 0xab,
+  0x98, 0xa5, 0xab, 0xb1, 0xde, 0x5c, 0xb6, 0x12, 0x82, 0x71, 0xb7, 0x59,
+  0x36, 0x27, 0x34, 0x42, 0xd3, 0x91, 0x08, 0x8d, 0xc8, 0x68, 0x8b, 0x6d,
+  0x22, 0xf5, 0xa7, 0xc3, 0xc5, 0xd9, 0xd4, 0xd6, 0x85, 0x3b, 0x7a, 0xb0,
+  0x0c, 0x1c, 0xa9, 0xab, 0x3c, 0x8b, 0x2e, 0xda, 0x6c, 0x05, 0x75, 0x41,
+  0x63, 0x85, 0xa9, 0xaa, 0x8d, 0xd8, 0xbe, 0x1b, 0x43, 0xa3, 0xdd, 0x73,
+  0xa7, 0xf7, 0xc5, 0x6b, 0xbb, 0xe1, 0x71, 0xc4, 0x43, 0xa3, 0x45, 0xba,
+  0x0e, 0x43, 0xd4, 0xc8, 0x40, 0x10, 0xe0, 0xbc, 0xc8, 0x66, 0x14, 0x06,
+  0xcf, 0x00, 0xcf, 0x3b, 0x3d, 0x78, 0x7f, 0xf4, 0xe6, 0xdb, 0x83, 0x93,
+  0x0f, 0x47, 0xe6, 0x95, 0xdc, 0x7c, 0x6c, 0xd3, 0x41, 0xf8, 0xd0, 0xc7,
+  0x59, 0x3e, 0x2e, 0xa7, 0x14, 0x65, 0xda, 0xf8, 0xd3, 0xc6, 0x1a, 0xc3,
+  0xcb, 0x93, 0x75, 0x7a, 0x6b, 0x97, 0x5f, 0x33, 0xfb, 0x82, 0xfe, 0xb5,
+  0xc7, 0xff, 0xda, 0xfb, 0xd3, 0xfa, 0x56, 0x6b, 0xd0, 0x81, 0x95, 0x7c,
+  0x85, 0xe2, 0x93, 0xa8, 0x19, 0x88, 0x32, 0xcb, 0xc8, 0xdd, 0xe0, 0x59,
+  0x59, 0xd7, 0x18, 0x8d, 0xde, 0x6d, 0xf4, 0xec, 0xe6, 0xe8, 0xc1, 0xb7,
+  0xc1, 0xd7, 0xe9, 0xa5, 0x37, 0x50, 0x30, 0xd6, 0xb7, 0x7a, 0x56, 0xe5,
+  0x40, 0xa8, 0x9c, 0xda, 0xd0, 0x26, 0x98, 0x15, 0x32, 0xd9, 0x5c, 0xe7,
+  0xbf, 0xbc, 0x79, 0x7b, 0x70, 0x79, 0x44, 0x2f, 0xe8, 0xe7, 0x05, 0x8d,
+  0x68, 0xd3, 0x28, 0xa8, 0x3f, 0x9b, 0x12, 0x9a, 0x7e, 0x43, 0x03, 0x5a,
+  0xdf, 0xe2, 0x58, 0x06, 0x82, 0xea, 0x9d, 0x7e, 0x95, 0x85, 0x02, 0xb7,
+  0x5d, 0xc6, 0x79, 0xad, 0x88, 0x95, 0xcd, 0x75, 0xfe, 0xdd, 0xba, 0xf5,
+  0xe0, 0x4a, 0xb5, 0x13, 0x09, 0x57, 0x4e, 0x90, 0x64, 0x11, 0x64, 0xd6,
+  0x32, 0x24, 0xcd, 0xad, 0x8f, 0x04, 0x2b, 0xd8, 0xe3, 0xe4, 0xb1, 0xe6,
+  0xdb, 0x85, 0x97, 0x94, 0x76, 0xf2, 0x31, 0x95, 0xe5, 0xee, 0xde, 0xb3,
+  0x3f, 0x61, 0x3e, 0xdf, 0xac, 0x6f, 0x9b, 0xbb, 0x61, 0xfd, 0x4f, 0xf4,
+  0xe9, 0xbc, 0xf1, 0x6a, 0xbf, 0xc9, 0x67, 0xc8, 0x9e, 0x92, 0x1d, 0xc5,
+  0x70, 0x19, 0x5a, 0x75, 0x8f, 0xa9, 0x07, 0x13, 0x7a, 0xcf, 0x59, 0x62,
+  0xca, 0x6b, 0xa3, 0xe0, 0x01, 0xac, 0x17, 0x8a, 0x56, 0xa1, 0x1c, 0x07,
+  0x3b, 0x75, 0xf1, 0x39, 0xff, 0xfe, 0xe8, 0xf1, 0xbb, 0x3c, 0x46, 0xe1,
+  0x02, 0xa2, 0x6f, 0xce, 0x1e, 0x34, 0x91, 0x0c, 0xdf, 0x82, 0x4e, 0xce,
+  0x6b, 0x16, 0x68, 0xc6, 0x23, 0xf1, 0xed, 0xa8, 0x31, 0x02, 0x9d, 0xc0,
+  0x88, 0x96, 0x07, 0x28, 0x4a, 0x40, 0x1b, 0xf8, 0x20, 0x0b, 0xbd, 0xb3,
+  0xd3, 0x51, 0x6e, 0x34, 0x61, 0x9b, 0x1a, 0xe3, 0x59, 0xe5, 0x76, 0xea,
+  0xf5, 0xf8, 0xe5, 0x1e, 0xc9, 0xd2, 0x9a, 0xe5, 0x26, 0xad, 0xad, 0x0f,
+  0x09, 0xd1, 0x46, 0x79, 0xb6, 0xbd, 0x4e, 0x9d, 0x7c, 0x34, 0x0c, 0x83,
+  0x4d, 0x7a, 0xb6, 0x8f, 0x8d, 0xa8, 0x29, 0xb2, 0x6a, 0x25, 0xc0, 0x22,
+  0x12, 0x8c, 0xc2, 0x10, 0x7d, 0x0e, 0x7a, 0xf3, 0xce, 0x60, 0x30, 0xb0,
+  0xe6, 0x0e, 0x02, 0x69, 0x12, 0x83, 0x22, 0xfa, 0x3a, 0x9f, 0x17, 0x18,
+  0x73, 0xbc, 0x09, 0x65, 0x1e, 0x0a, 0xf5, 0x96, 0x00, 0x6f, 0xc4, 0x4f,
+  0x60, 0x8f, 0x86, 0xe7, 0xe3, 0xd8, 0x90, 0xcf, 0x6e, 0x28, 0xff, 0xc2,
+  0x6d, 0x6c, 0x11, 0x56, 0xf4, 0x8d, 0x7d, 0x8f, 0x52, 0x04, 0xc7, 0xca,
+  0x29, 0x5b, 0x58, 0x1e, 0xf6, 0x3c, 0x01, 0xc8, 0xb9, 0x58, 0xdb, 0x83,
+  0x2d, 0x7e, 0xa3, 0x5d, 0xe9, 0x31, 0xf6, 0x80, 0x84, 0x5c, 0x79, 0x0f,
+  0x3e, 0x03, 0xb0, 0x26, 0x10, 0xf6, 0xa4, 0x60, 0xf7, 0x80, 0xde, 0x20,
+  0x73, 0xab, 0x36, 0x4b, 0x3b, 0xc2, 0x11, 0x4d, 0x36, 0x33, 0x74, 0x7f,
+  0xc9, 0x72, 0x14, 0x66, 0x99, 0x5a, 0x93, 0x78, 0x8c, 0xda, 0x56, 0x82,
+  0x8e, 0x54, 0x07, 0xef, 0xdc, 0x55, 0x84, 0x36, 0xeb, 0x33, 0x37, 0x8b,
+  0x26, 0x22, 0xaa, 0xf4, 0x10, 0x7e, 0x8e, 0x55, 0xf1, 0xf2, 0xb1, 0xb6,
+  0x68, 0x83, 0xe5, 0x9d, 0xb9, 0x71, 0xb7, 0x72, 0x5b, 0x74, 0x99, 0x19,
+  0x65, 0xef, 0xb2, 0xad, 0xd7, 0x20, 0x72, 0x2f, 0x49, 0xef, 0xcd, 0xd5,
+  0x53, 0x64, 0x84, 0xcf, 0x04, 0xd2, 0x01, 0x5e, 0x99, 0x13, 0xcf, 0xcf,
+  0x68, 0x47, 0xa8, 0x35, 0x92, 0x52, 0x57, 0x24, 0x29, 0xd9, 0x64, 0x43,
+  0x83, 0xe9, 0x91, 0xd5, 0xa1, 0x47, 0x0a, 0x78, 0x39, 0x23, 0x96, 0x52,
+  0xd1, 0xd4, 0xd5, 0x3c, 0xa7, 0x9e, 0x1b, 0x11, 0x3d, 0x94, 0x7d, 0x93,
+  0x03, 0x97, 0x48, 0x7e, 0x0e, 0xc6, 0x55, 0xe8, 0x6c, 0xa5, 0xc5, 0xc4,
+  0xfb, 0x88, 0x8d, 0x4f, 0x8b, 0xfb, 0x89, 0xe0, 0xbd, 0x45, 0x1f, 0x9c,
+  0x15, 0x1a, 0x12, 0x16, 0xf3, 0xea, 0xfa, 0x9a, 0xad, 0xb6, 0xa4, 0x3b,
+  0xb4, 0xf8, 0x26, 0x3b, 0xa1, 0x59, 0x21, 0x14, 0xf4, 0xc3, 0xb2, 0xd9,
+  0xbc, 0xb4, 0x95, 0xf4, 0xc4, 0xeb, 0xd2, 0xda, 0xcc, 0x1a, 0x93, 0xe4,
+  0x75, 0x6b, 0x6c, 0xd2, 0x15, 0x12, 0x34, 0xda, 0x31, 0xe4, 0xb3, 0x8b,
+  0x35, 0x14, 0x40, 0x29, 0x1c, 0x21, 0x83, 0x2e, 0x3a, 0x88, 0xf6, 0x1c,
+  0x02, 0xc5, 0x21, 0x51, 0xef, 0x2d, 0xd4, 0x0a, 0xdb, 0x35, 0x19, 0xa5,
+  0xce, 0xe4, 0x5a, 0x4b, 0x5a, 0xde, 0x5e, 0xaa, 0xca, 0x74, 0x5c, 0x88,
+  0x1c, 0x2a, 0xef, 0x32, 0xc7, 0xf3, 0xe8, 0x1c, 0x8e, 0x8e, 0xfc, 0x57,
+  0x4e, 0xbf, 0x15, 0x26, 0x9d, 0x00, 0xaf, 0x95, 0x57, 0x18, 0x64, 0x67,
+  0x56, 0x06, 0x89, 0xd7, 0x24, 0xbb, 0x4a, 0xca, 0x16, 0x87, 0x32, 0xfa,
+  0x26, 0x71, 0x6b, 0x6d, 0x91, 0xf7, 0x08, 0xb3, 0xb5, 0x78, 0xa6, 0x09,
+  0x17, 0x0f, 0xd2, 0x0a, 0x08, 0x16, 0xa3, 0xe7, 0xe2, 0xbf, 0x3a, 0xca,
+  0x75, 0xbb, 0x48, 0xeb, 0x5a, 0x6b, 0x02, 0x9b, 0x00, 0x7b, 0x80, 0x14,
+  0x3a, 0x1b, 0xc2, 0xbf, 0x94, 0x75, 0xc2, 0x4e, 0x86, 0x07, 0xad, 0x23,
+  0x48, 0x83, 0x33, 0x67, 0x21, 0x1a, 0xc8, 0x43, 0x31, 0x92, 0x17, 0xb8,
+  0x82, 0xfe, 0x68, 0x8d, 0xf3, 0x8d, 0xfa, 0x63, 0x95, 0xe8, 0xab, 0x09,
+  0x0b, 0x46, 0xad, 0x83, 0xf9, 0xd8, 0x39, 0x3d, 0xbf, 0x38, 0xfb, 0xea,
+  0xe2, 0x68, 0x38, 0x4c, 0xde, 0x1f, 0x5d, 0xb2, 0xad, 0x7f, 0xc9, 0xd0,
+  0xbb, 0x6b, 0xd4, 0x8e, 0x46, 0xac, 0x41, 0xc9, 0x98, 0x14, 0x72, 0xa2,
+  0x8e, 0x04, 0xe4, 0x3c, 0x51, 0x49, 0x64, 0xdc, 0x8e, 0x6c, 0xc4, 0x4f,
+  0x05, 0xb1, 0x77, 0x03, 0x6f, 0x3f, 0x30, 0x4d, 0x08, 0x48, 0x5a, 0xe7,
+  0xb9, 0x73, 0xa3, 0x42, 0x31, 0x66, 0x94, 0x93, 0xcd, 0x39, 0x74, 0x2e,
+  0x74, 0xba, 0xb2, 0xcd, 0x9f, 0x18, 0xde, 0x1f, 0xcc, 0x6c, 0x4a, 0x19,
+  0xb8, 0x3f, 0x18, 0xe3, 0x57, 0x36, 0xc5, 0x1f, 0x92, 0xef, 0x4d, 0x9b,
+  0x13, 0x63, 0xbc, 0x4a, 0xc9, 0xdb, 0x21, 0x4a, 0xdd, 0x3a, 0xae, 0xe5,
+  0xdc, 0x2b, 0xe6, 0x9c, 0x70, 0x8a, 0x61, 0xf5, 0x48, 0x9d, 0x49, 0x70,
+  0xc5, 0x70, 0x39, 0x5d, 0xc1, 0xd4, 0xd9, 0x2f, 0x4b, 0xad, 0xb1, 0x24,
+  0x39, 0xc9, 0xae, 0x50, 0x87, 0x05, 0x9f, 0x33, 0xcd, 0xed, 0x10, 0x29,
+  0xf5, 0xee, 0x7b, 0xfa, 0xd1, 0x4e, 0xf2, 0xec, 0xf3, 0x97, 0x3b, 0x9f,
+  0xf3, 0x5f, 0xf5, 0xbf, 0xaf, 0x9e, 0xef, 0x08, 0x3b, 0xbe, 0xf9, 0xd7,
+  0xf3, 0xfd, 0xe7, 0xbb, 0xfb, 0xc4, 0xd3, 0xb8, 0xb3, 0xbf, 0x63, 0xfe,
+  0xef, 0xb9, 0xfc, 0x84, 0xc8, 0x28, 0x5f, 0xed, 0x7d, 0xfe, 0x19, 0xd0,
+  0x30, 0xb4, 0x3f, 0xa6, 0xe6, 0x23, 0xfd, 0xa6, 0xec, 0x83, 0x2e, 0x0a,
+  0x9a, 0xcf, 0x1f, 0xda, 0x9e, 0x48, 0x0a, 0xaf, 0x53, 0x19, 0x6c, 0x1a,
+  0xb8, 0xad, 0x01, 0xaa, 0x5e, 0x55, 0xa6, 0xb0, 0xf1, 0x2b, 0x17, 0xda,
+  0x61, 0xc8, 0xdb, 0x5c, 0x49, 0x0f, 0xfc, 0x6b, 0xad, 0x77, 0x18, 0x68,
+  0xee, 0x51, 0xbd, 0xfd, 0xdc, 0x4f, 0x6b, 0x22, 0xf9, 0x1a, 0x08, 0xdc,
+  0x64, 0xa9, 0xe4, 0xbd, 0xb1, 0x96, 0x6b, 0xf3, 0x0b, 0x4b, 0x77, 0xaa,
+  0x31, 0xff, 0xdc, 0xef, 0xb1, 0xe7, 0x8a, 0xde, 0x92, 0xdd, 0x90, 0x84,
+  0x5f, 0xb3, 0xb9, 0x08, 0x91, 0x6f, 0xb5, 0x36, 0xcf, 0x9a, 0x5b, 0x7e,
+  0x37, 0x53, 0x5e, 0xad, 0x67, 0x9b, 0xc3, 0xc5, 0x55, 0x95, 0x23, 0x43,
+  0x0e, 0x9a, 0xfb, 0x30, 0xf7, 0xdb, 0x7b, 0x4a, 0x73, 0x6e, 0x44, 0xd8,
+  0xc1, 0x76, 0xe5, 0xfa, 0xde, 0xe2, 0xe4, 0x0c, 0x6c, 0xb3, 0x95, 0x33,
+  0x95, 0x20, 0xd4, 0xd6, 0x34, 0xc6, 0xab, 0x76, 0xcb, 0xf6, 0xf9, 0x0d,
+  0xd1, 0x39, 0x6d, 0x5e, 0x1c, 0xea, 0x95, 0xe2, 0x8a, 0xe7, 0xe7, 0x75,
+  0x67, 0x07, 0x9f, 0xa2, 0xdd, 0xe8, 0x7d, 0x4f, 0xbe, 0x81, 0xf3, 0x64,
+  0x0f, 0xdd, 0xca, 0xa1, 0x39, 0x6c, 0xbd, 0x16, 0x6d, 0x64, 0x1c, 0x17,
+  0x94, 0xef, 0xd8, 0x91, 0x74, 0xcf, 0x01, 0xbe, 0x6e, 0x9b, 0xf3, 0x6f,
+  0x9f, 0x29, 0x78, 0xc0, 0xb9, 0xdc, 0x09, 0xb1, 0x8e, 0x52, 0x2d, 0x87,
+  0x2d, 0x15, 0x61, 0xfd, 0xdf, 0x5b, 0xd8, 0x16, 0x2e, 0x33, 0x86, 0xb5,
+  0x51, 0x53, 0x34, 0x9f, 0x53, 0x3f, 0x97, 0xd6, 0x4a, 0xbb, 0x51, 0x5a,
+  0xb5, 0x6a, 0x26, 0xac, 0x71, 0x8d, 0x10, 0x73, 0xbd, 0x9a, 0xeb, 0x02,
+  0xe9, 0x8e, 0xac, 0x47, 0xfc, 0x6e, 0x6d, 0x6d, 0x78, 0x7e, 0x74, 0xf4,
+  0x36, 0x39, 0x39, 0x7e, 0x7f, 0x7c, 0xe9, 0x69, 0xe1, 0xf6, 0xf6, 0x50,
+  0x4f, 0xab, 0x56, 0x8f, 0xeb, 0x4c, 0x87, 0xa3, 0x5e, 0xe6, 0xef, 0xe9,
+  0xfd, 0x3d, 0xcb, 0x24, 0x8b, 0x62, 0xda, 0x7d, 0x0f, 0xf6, 0x36, 0x98,
+  0x9d, 0xa8, 0x06, 0xb7, 0xa7, 0xc5, 0xd5, 0x46, 0xa3, 0x31, 0xbd, 0xeb,
+  0x33, 0xbb, 0x40, 0xff, 0x2f, 0x82, 0xd3, 0x68, 0xab, 0x4b, 0xc2, 0x22,
+  0x6b, 0x53, 0x7a, 0x04, 0xdb, 0xda, 0xe9, 0x15, 0xcd, 0x6d, 0xc6, 0xd0,
+  0x6a, 0xcf, 0x2d, 0x07, 0xd8, 0xde, 0x7d, 0x06, 0xb6, 0x83, 0x59, 0xce,
+  0xb9, 0x96, 0x3e, 0xa6, 0x18, 0xa5, 0x4c, 0xe4, 0xc6, 0x83, 0x1c, 0xf7,
+  0xbf, 0xe8, 0x9d, 0x0e, 0x0b, 0xa8, 0xd5, 0x6f, 0xd5, 0x5c, 0x8f, 0xcf,
+  0x4c, 0x40, 0x91, 0x3c, 0xdb, 0xb1, 0xe9, 0x0a, 0x73, 0xc8, 0x1c, 0xd1,
+  0xef, 0xe9, 0x63, 0xbb, 0x89, 0x51, 0x42, 0x16, 0xa4, 0xca, 0x57, 0x8b,
+  0x22, 0xb8, 0xee, 0xfe, 0xc2, 0xef, 0x9a, 0xf1, 0xbf, 0xdc, 0xc1, 0xf5,
+  0x76, 0x95, 0x56, 0x7d, 0xa3, 0x6e, 0x3d, 0xf4, 0xd5, 0xa5, 0xca, 0x3b,
+  0x42, 0xf0, 0xc6, 0xec, 0xef, 0xc9, 0x5c, 0x9d, 0xcb, 0x8e, 0x8a, 0xe8,
+  0x72, 0x4e, 0x4a, 0xc4, 0x25, 0xa7, 0x72, 0x00, 0x68, 0xe8, 0x94, 0xe9,
+  0xab, 0x1e, 0x4e, 0xa7, 0xe0, 0x38, 0x86, 0x61, 0x5d, 0x45, 0x27, 0xa3,
+  0x28, 0x03, 0x01, 0x62, 0x95, 0x5a, 0xcd, 0x69, 0x98, 0x32, 0x96, 0x50,
+  0x9f, 0x9e, 0x25, 0xbb, 0x9f, 0xd3, 0x38, 0x9e, 0x36, 0x9e, 0x77, 0x65,
+  0x35, 0xb6, 0x39, 0xc5, 0xb0, 0x11, 0xbc, 0x04, 0x53, 0x4e, 0x8b, 0x40,
+  0xcd, 0x35, 0x9e, 0x5d, 0x05, 0xc5, 0x02, 0xb4, 0x47, 0x46, 0x89, 0xc4,
+  0xd3, 0xe1, 0x8e, 0x42, 0x80, 0x9b, 0xd5, 0x22, 0xba, 0x6b, 0x64, 0x5e,
+  0xbc, 0x0a, 0xa5, 0x95, 0x4d, 0x40, 0xe5, 0x69, 0x20, 0x97, 0x88, 0xd9,
+  0x6b, 0xf7, 0xf9, 0x04, 0xaa, 0xb4, 0xe3, 0x9a, 0x33, 0xeb, 0xc5, 0x9b,
+  0x8f, 0xb1, 0xd2, 0x88, 0x59, 0x22, 0xd8, 0x69, 0x7b, 0x26, 0x0a, 0x0c,
+  0x4d, 0x6b, 0x09, 0x8f, 0xc2, 0x26, 0xf4, 0x07, 0xca, 0x6f, 0x76, 0x71,
+  0x01, 0xb2, 0x9f, 0x48, 0x34, 0xaf, 0xbb, 0xaf, 0x50, 0xae, 0x40, 0xd3,
+  0x4c, 0xd5, 0x99, 0xf0, 0xde, 0x6e, 0xec, 0xf6, 0x98, 0x89, 0xa9, 0xc5,
+  0x1b, 0xf6, 0xee, 0x8e, 0x51, 0x5a, 0xa7, 0xe5, 0xa8, 0x53, 0xb2, 0x3e,
+  0xb4, 0x44, 0x31, 0xac, 0x3e, 0x66, 0x67, 0x77, 0xe7, 0x9b, 0xe5, 0xb3,
+  0x0e, 0x0e, 0xfd, 0x95, 0x2f, 0xef, 0x3d, 0x5f, 0xb1, 0x68, 0x67, 0x15,
+  0x8c, 0xf1, 0x4c, 0x31, 0x90, 0x50, 0x04, 0x5d, 0xe4, 0x25, 0x58, 0x36,
+  0xb3, 0xf1, 0xb3, 0xeb, 0x14, 0x95, 0x7f, 0x57, 0xf4, 0x5e, 0x73, 0x42,
+  0x3a, 0x5d, 0x79, 0x2f, 0xa8, 0x6c, 0xfe, 0x65, 0x4d, 0x6e, 0xb1, 0x39,
+  0x98, 0xf6, 0x9c, 0xed, 0x6a, 0xd3, 0xc9, 0x99, 0x9b, 0xc1, 0x7b, 0x9b,
+  0x25, 0x67, 0xaf, 0x2d, 0x24, 0x74, 0xf7, 0x54, 0xd9, 0xf5, 0x82, 0x99,
+  0x30, 0x4a, 0xb6, 0xf5, 0x89, 0x98, 0x5a, 0xce, 0xab, 0x91, 0xcd, 0x04,
+  0x1f, 0xe2, 0xfd, 0x04, 0xc1, 0x3b, 0x4e, 0x55, 0x65, 0x95, 0xe2, 0xbd,
+  0x9d, 0x8b, 0x81, 0x9c, 0xb2, 0xe3, 0x72, 0x26, 0xd5, 0x3f, 0xf9, 0x78,
+  0x15, 0x5e, 0x62, 0x3f, 0x33, 0x2f, 0x0e, 0x90, 0xe9, 0xcb, 0x1b, 0xc5,
+  0x0a, 0x7b, 0x4a, 0x2b, 0xa3, 0x68, 0x58, 0xc3, 0x61, 0x01, 0x34, 0xd0,
+  0x93, 0x5d, 0x8b, 0x96, 0xec, 0xa7, 0x48, 0xe2, 0xd7, 0xca, 0x80, 0xc9,
+  0x4c, 0xf9, 0xe4, 0xec, 0x3f, 0x3c, 0x3b, 0x7d, 0x77, 0xfc, 0x95, 0xa5,
+  0x32, 0x62, 0x21, 0xde, 0xa2, 0xd8, 0x60, 0xf7, 0xb1, 0x1f, 0xe9, 0x96,
+  0xa2, 0xaa, 0x82, 0xbe, 0x35, 0xe2, 0xe9, 0xa3, 0xff, 0x03, 0x08, 0x90,
+  0xe2, 0x19, 0x39, 0xc8, 0x99, 0xff, 0xa3, 0xde, 0x72, 0xee, 0x86, 0x0e,
+  0x55, 0x1d, 0x67, 0x69, 0xa4, 0x55, 0xb3, 0x98, 0x5b, 0x10, 0xa1, 0x57,
+  0x94, 0x55, 0x78, 0xb4, 0x35, 0x15, 0x7d, 0x31, 0x67, 0xd1, 0x24, 0x09,
+  0xa5, 0x2d, 0x6f, 0x2e, 0xdf, 0x01, 0xe4, 0x4e, 0x10, 0x2e, 0x15, 0xb9,
+  0x00, 0x02, 0x5c, 0xce, 0x94, 0xd8, 0x37, 0x7d, 0xbc, 0xbc, 0xc6, 0x6f,
+  0x26, 0x69, 0x7d, 0xc3, 0x03, 0xc5, 0xa5, 0x91, 0x33, 0x4c, 0x1b, 0xb1,
+  0xb6, 0x74, 0x42, 0x86, 0xba, 0x03, 0xe3, 0x58, 0xf4, 0xaf, 0x8b, 0x0f,
+  0xd5, 0x89, 0x66, 0x3d, 0x58, 0x7c, 0x92, 0xa6, 0xb1, 0xa6, 0x08, 0x55,
+  0x22, 0xd6, 0x89, 0x9f, 0xbc, 0xa1, 0xb0, 0xcc, 0x3e, 0xf1, 0xc9, 0xcf,
+  0x98, 0x50, 0xce, 0x4f, 0x3f, 0x15, 0x29, 0xe9, 0x58, 0xdf, 0x8f, 0xaf,
+  0xbc, 0x8c, 0x36, 0xc6, 0x09, 0xea, 0xa6, 0x63, 0x1f, 0x31, 0x39, 0x58,
+  0x36, 0x7e, 0xbf, 0xd1, 0xaf, 0x1f, 0x66, 0xa3, 0x72, 0xaa, 0x89, 0x17,
+  0x96, 0x40, 0x42, 0x1f, 0xf2, 0x0b, 0xe6, 0x25, 0x1c, 0xa9, 0x6d, 0x3c,
+  0xb7, 0xa4, 0xc3, 0x4a, 0xb9, 0xfe, 0x73, 0x31, 0x23, 0x84, 0x87, 0x74,
+  0x14, 0xe0, 0xf6, 0x21, 0x19, 0x9f, 0x15, 0xe3, 0x69, 0x29, 0xbb, 0x9a,
+  0x12, 0xcc, 0x31, 0x53, 0xed, 0xa1, 0x53, 0xc4, 0xaf, 0x5c, 0x90, 0x87,
+  0x03, 0xf5, 0x43, 0x8c, 0xba, 0xb3, 0x2e, 0x8c, 0x1a, 0x18, 0x20, 0xbd,
+  0xcd, 0xbf, 0x10, 0x54, 0xbe, 0xc7, 0x6f, 0xc3, 0x05, 0x47, 0x4c, 0x57,
+  0x7f, 0x64, 0x87, 0x22, 0xc7, 0xfd, 0xfe, 0xa2, 0x1f, 0xd7, 0x47, 0x3b,
+  0x53, 0x6f, 0xf6, 0x53, 0x5a, 0x5d, 0x0b, 0x4b, 0x9f, 0x44, 0xd2, 0x60,
+  0x24, 0xda, 0xb2, 0x36, 0xd6, 0x31, 0x49, 0x4a, 0x89, 0x45, 0xcd, 0x40,
+  0x7d, 0x5a, 0x70, 0x4e, 0xa1, 0x64, 0x5c, 0xb1, 0x4b, 0xd2, 0x6e, 0x44,
+  0x4f, 0xe2, 0xfc, 0xde, 0x62, 0x51, 0x52, 0x77, 0x97, 0x69, 0x75, 0x0a,
+  0xe7, 0x9f, 0x95, 0xcb, 0xcc, 0x7b, 0x8d, 0x9c, 0x78, 0xb0, 0x84, 0x33,
+  0x71, 0x9c, 0xf0, 0xa7, 0xb4, 0xd2, 0xbd, 0xd6, 0x8f, 0x74, 0x4d, 0xf0,
+  0xef, 0xdf, 0x48, 0x9d, 0x32, 0x73, 0x9e, 0x85, 0x29, 0x45, 0xe8, 0x03,
+  0x3f, 0xdf, 0x11, 0xf7, 0x5b, 0x23, 0x70, 0xd5, 0x3a, 0x39, 0xb8, 0x38,
+  0x32, 0x9a, 0xed, 0x75, 0x01, 0x8e, 0x8a, 0xa2, 0xd1, 0xa4, 0xba, 0xac,
+  0x90, 0xc2, 0x68, 0x85, 0x9e, 0x0f, 0xfa, 0xe0, 0xbd, 0xf7, 0x26, 0x6d,
+  0x26, 0x01, 0x06, 0x70, 0xfe, 0xb6, 0xdb, 0x72, 0x63, 0xe5, 0x05, 0x86,
+  0xd4, 0x21, 0x9a, 0x04, 0xde, 0x52, 0x14, 0x22, 0x31, 0x9f, 0x2a, 0x95,
+  0x13, 0xf8, 0x3c, 0x10, 0xeb, 0x3e, 0x19, 0xb0, 0xce, 0x35, 0x4e, 0xb5,
+  0x4b, 0x45, 0xf8, 0x9b, 0x12, 0x73, 0xca, 0xb7, 0x5a, 0x61, 0x4f, 0xb7,
+  0x9d, 0x7a, 0x71, 0x97, 0xd1, 0xdf, 0x70, 0xcf, 0x90, 0x2e, 0xd2, 0xd5,
+  0x0b, 0x32, 0x8b, 0xb0, 0x67, 0xef, 0xf5, 0xc4, 0x53, 0x7e, 0x39, 0x05,
+  0x90, 0x30, 0xd6, 0xec, 0x98, 0x16, 0x26, 0x20, 0xf1, 0xeb, 0xb0, 0x39,
+  0x30, 0x91, 0xb3, 0x4a, 0xbb, 0x82, 0xe0, 0xc2, 0x23, 0x62, 0x4b, 0xba,
+  0x65, 0x05, 0xc0, 0x97, 0x4f, 0x51, 0xdf, 0xee, 0xef, 0xed, 0x68, 0x5d,
+  0x1f, 0xd6, 0xbc, 0xba, 0xea, 0x66, 0x49, 0x95, 0xdd, 0x8e, 0x7a, 0x31,
+  0xa0, 0x0f, 0x41, 0xa4, 0x22, 0x66, 0x4a, 0x7f, 0xc1, 0x8f, 0x81, 0x7a,
+  0x53, 0xba, 0x53, 0x48, 0x1d, 0x4b, 0xa1, 0x55, 0x4a, 0x4c, 0xd5, 0x75,
+  0x84, 0x03, 0x7b, 0x90, 0xd0, 0x23, 0x5f, 0x35, 0xee, 0x7f, 0xb3, 0xad,
+  0xf5, 0xac, 0xc9, 0x7f, 0x43, 0x09, 0xc4, 0x7a, 0xe0, 0xeb, 0xac, 0x55,
+  0x00, 0xdb, 0x66, 0x0a, 0xad, 0xf7, 0xd7, 0xcd, 0x5c, 0x6c, 0x4c, 0xa7,
+  0x4e, 0xe0, 0xeb, 0x63, 0xb4, 0xaa, 0x48, 0xaa, 0x73, 0x0a, 0x93, 0xc8,
+  0x2e, 0x2a, 0xaa, 0xf1, 0xd0, 0x4a, 0x71, 0xa0, 0x32, 0x75, 0x94, 0x01,
+  0x64, 0x89, 0xbd, 0x90, 0x26, 0x02, 0x90, 0xc0, 0x5d, 0x5e, 0x6b, 0xf0,
+  0xd1, 0xec, 0xed, 0x31, 0x63, 0x22, 0x1a, 0x26, 0x24, 0xc8, 0x9a, 0xb1,
+  0x37, 0x95, 0xd9, 0xf8, 0xa6, 0x64, 0x4c, 0xad, 0x99, 0x34, 0x2f, 0xd3,
+  0x73, 0x3d, 0xf9, 0x5f, 0xb2, 0x07, 0xbe, 0x71, 0x49, 0x7b, 0xb4, 0x11,
+  0x06, 0xcc, 0x43, 0x39, 0x70, 0x1b, 0xe2, 0xe8, 0xfb, 0xcb, 0x8b, 0x83,
+  0xe4, 0xeb, 0xa3, 0x83, 0xb7, 0x47, 0x17, 0xc3, 0xce, 0xa5, 0x2f, 0xf0,
+  0x0f, 0xd6, 0xd0, 0xc8, 0x09, 0x0c, 0xd5, 0x58, 0x89, 0x07, 0x04, 0xb7,
+  0xaf, 0x52, 0xcf, 0x6c, 0x1e, 0x3a, 0x48, 0xe6, 0x7c, 0x90, 0x41, 0xc4,
+  0xd1, 0x02, 0x10, 0x18, 0xd7, 0x10, 0x36, 0xb6, 0x8d, 0xb1, 0x91, 0x50,
+  0x04, 0x62, 0x50, 0x97, 0xb9, 0x9f, 0x31, 0xe3, 0xb8, 0xfa, 0xdc, 0x65,
+  0x32, 0x29, 0x35, 0x19, 0xb0, 0xbd, 0x72, 0x5f, 0xbb, 0x7c, 0x6f, 0x4f,
+  0x6c, 0xc9, 0x25, 0x23, 0x5e, 0xc3, 0xf5, 0xef, 0xfb, 0xe6, 0xbb, 0x7d,
+  0x33, 0xf9, 0x7d, 0x22, 0x73, 0x7c, 0xc8, 0xea, 0xf5, 0x8e, 0x0b, 0xb0,
+  0xfd, 0xf9, 0x35, 0xae, 0xc4, 0x14, 0x9c, 0xa4, 0xaf, 0xa3, 0x2d, 0xd1,
+  0xe9, 0x9a, 0x52, 0x7d, 0xa4, 0xae, 0x05, 0x81, 0x4b, 0xd5, 0x53, 0x92,
+  0xe5, 0x04, 0x05, 0xe9, 0x2d, 0x02, 0x50, 0x72, 0x66, 0xa6, 0xe0, 0xc1,
+  0xd0, 0x11, 0x19, 0x02, 0x74, 0x1d, 0x73, 0xf6, 0xf8, 0x52, 0x9f, 0x32,
+  0xd7, 0x32, 0x7b, 0xcc, 0x4c, 0xb7, 0xe4, 0x21, 0xff, 0x7e, 0x40, 0x00,
+  0x44, 0x30, 0xf8, 0x75, 0x2b, 0x3e, 0x2a, 0xce, 0x50, 0xa1, 0xe1, 0x96,
+  0xe6, 0xa8, 0x0f, 0x76, 0xcf, 0x2b, 0x74, 0x9f, 0x3e, 0xa9, 0x15, 0x42,
+  0xe4, 0x5d, 0x46, 0x81, 0x91, 0x51, 0x0f, 0xff, 0x26, 0xd7, 0x9d, 0xe5,
+  0xe2, 0x93, 0x2c, 0xd8, 0xbc, 0x5c, 0x20, 0x7f, 0x33, 0xa3, 0x34, 0x1b,
+  0xd0, 0xe3, 0xf6, 0xb9, 0x2c, 0xf9, 0xba, 0xac, 0x71, 0x17, 0x84, 0x8f,
+  0xd3, 0x25, 0x1f, 0x9b, 0x7e, 0xbc, 0x21, 0xf1, 0x2d, 0x4b, 0x12, 0xbb,
+  0xb6, 0xa6, 0x29, 0x55, 0xe7, 0x07, 0x97, 0x5f, 0x23, 0xba, 0x8a, 0x2d,
+  0xfc, 0x16, 0x8c, 0x29, 0x1a, 0x53, 0x0b, 0x53, 0xb2, 0xac, 0x01, 0xc7,
+  0xfa, 0xaf, 0x12, 0x33, 0xaa, 0x3e, 0x89, 0xe8, 0x5d, 0xce, 0x40, 0xa4,
+  0x29, 0xd7, 0xfa, 0x85, 0x8c, 0x6e, 0x55, 0x62, 0x04, 0xf4, 0xdd, 0xe6,
+  0xdb, 0x59, 0xbc, 0xe5, 0x06, 0x27, 0xc2, 0x6f, 0xf0, 0x98, 0xb0, 0xe9,
+  0x49, 0x99, 0x5b, 0x4b, 0xda, 0xcc, 0xc3, 0xf8, 0x05, 0x65, 0x3a, 0x73,
+  0x00, 0x6a, 0x52, 0xc6, 0x79, 0x0f, 0xbd, 0x23, 0xfd, 0xe7, 0xd9, 0xc3,
+  0x20, 0x24, 0xe0, 0x49, 0xbe, 0x5c, 0x34, 0x6d, 0xb1, 0xd2, 0xe1, 0x3f,
+  0xb6, 0x9a, 0x65, 0x55, 0x96, 0x8d, 0xd7, 0x07, 0x68, 0x3f, 0x69, 0x23,
+  0x27, 0x9a, 0x09, 0x2e, 0xb9, 0x2f, 0xd4, 0x54, 0x21, 0x7a, 0xb7, 0xaf,
+  0x18, 0xa6, 0xa3, 0xba, 0x9c, 0x2e, 0x1a, 0x0f, 0x7d, 0xfd, 0xf3, 0xfa,
+  0xec, 0x75, 0x7a, 0xf3, 0x78, 0xa0, 0x64, 0x9f, 0x05, 0x53, 0xd4, 0x19,
+  0x4b, 0xdf, 0xa8, 0x97, 0x08, 0x36, 0x56, 0x65, 0xd1, 0xae, 0x01, 0x07,
+  0xa0, 0xf7, 0xd6, 0xda, 0xda, 0x50, 0x17, 0x9b, 0xe8, 0x5e, 0xc3, 0x45,
+  0xff, 0x0e, 0xda, 0x24, 0xf5, 0x81, 0x83, 0x05, 0x63, 0xf3, 0x17, 0x25,
+  0x81, 0xcb, 0x78, 0x4d, 0x21, 0xc2, 0x79, 0x8d, 0xf3, 0xba, 0x3d, 0x28,
+  0xfc, 0xca, 0x86, 0x2b, 0x34, 0xbf, 0xec, 0xb2, 0x54, 0x4e, 0x7e, 0x09,
+  0xd7, 0xb9, 0x0d, 0xd1, 0xca, 0x86, 0x8f, 0x32, 0x4c, 0xd3, 0x25, 0xa0,
+  0x15, 0xa4, 0x2d, 0x1c, 0x97, 0x3a, 0xb9, 0xfd, 0xbf, 0xb7, 0x93, 0x1e,
+  0x57, 0x27, 0x88, 0x90, 0xf6, 0x2c, 0x92, 0xff, 0x0f, 0x80, 0x57, 0x42,
+  0xef, 0x4b, 0x6d, 0x0e, 0xda, 0x04, 0xb2, 0x03, 0x63, 0x42, 0xdd, 0x54,
+  0x63, 0xb7, 0xfb, 0x8d, 0x76, 0x90, 0xdd, 0x93, 0xfd, 0xa2, 0x36, 0x82,
+  0xd0, 0x85, 0x70, 0x11, 0x67, 0x4b, 0xc0, 0x04, 0xba, 0x8d, 0x2b, 0xeb,
+  0xd5, 0xa3, 0x7a, 0xaa, 0x5c, 0x75, 0x94, 0xd5, 0x7a, 0x94, 0x53, 0xd2,
+  0xb0, 0xe9, 0x5a, 0xd2, 0xb2, 0xdb, 0xa9, 0x1c, 0x21, 0xff, 0xa9, 0x49,
+  0x47, 0x02, 0xec, 0x92, 0xed, 0xef, 0x95, 0xe8, 0xf3, 0x8a, 0x1d, 0x2b,
+  0xe2, 0x94, 0xd1, 0x74, 0x1a, 0x8e, 0xd4, 0x4e, 0xaa, 0x16, 0x40, 0xd1,
+  0x4a, 0xd0, 0x5a, 0x0a, 0xf3, 0x08, 0x21, 0xc9, 0x88, 0xc3, 0x98, 0x93,
+  0xb6, 0xa9, 0x98, 0xa4, 0x5a, 0x32, 0x7a, 0xa5, 0x6a, 0x1a, 0x87, 0x5d,
+  0x29, 0xd7, 0x7d, 0xb9, 0xfb, 0x91, 0x84, 0x8f, 0xc8, 0x1c, 0x95, 0xcf,
+  0xf4, 0x55, 0x02, 0x1d, 0x92, 0xd4, 0xf3, 0x65, 0xf0, 0x86, 0x0f, 0x48,
+  0x71, 0x88, 0xcd, 0x6b, 0xca, 0xf2, 0x10, 0x97, 0x94, 0x70, 0x99, 0xc0,
+  0xff, 0x75, 0x93, 0x0b, 0xae, 0x94, 0x67, 0xbd, 0x5d, 0x43, 0x15, 0x1e,
+  0x3e, 0x82, 0x14, 0xb8, 0xa8, 0xaa, 0x05, 0x3e, 0x0c, 0xc2, 0x03, 0x33,
+  0xb0, 0xac, 0xaa, 0x72, 0x89, 0x1c, 0xfb, 0x39, 0xe5, 0x8c, 0xc2, 0xb0,
+  0x58, 0xe7, 0x27, 0x7e, 0xdd, 0xff, 0x24, 0x81, 0x58, 0x8b, 0x84, 0x13,
+  0x48, 0x84, 0x2a, 0x8e, 0x2e, 0x94, 0xbd, 0x5d, 0x18, 0xa6, 0x8c, 0xd9,
+  0x00, 0x4f, 0xa9, 0xb6, 0xa0, 0x7c, 0x69, 0xdd, 0xc9, 0xdf, 0xea, 0xc9,
+  0x2c, 0xd9, 0x8c, 0x7b, 0x09, 0x31, 0xb3, 0x5e, 0xe8, 0xc5, 0x9d, 0x5a,
+  0x45, 0xe0, 0x38, 0x8b, 0xbb, 0x6e, 0xaa, 0xc5, 0xb8, 0x09, 0xca, 0x97,
+  0xb6, 0x42, 0xf3, 0x76, 0x8e, 0x4b, 0xdf, 0xb6, 0x3f, 0x3e, 0x17, 0xf3,
+  0x9e, 0xad, 0x0f, 0xea, 0xd9, 0x66, 0xda, 0x4a, 0x72, 0xe1, 0x97, 0xd7,
+  0x92, 0xd6, 0x77, 0xb7, 0xec, 0x2e, 0xeb, 0x9f, 0xdb, 0x8c, 0xfa, 0x36,
+  0xfd, 0x11, 0xb2, 0x13, 0xbc, 0xbb, 0x57, 0x14, 0x31, 0x28, 0x1e, 0x55,
+  0x22, 0xe4, 0x8b, 0x50, 0x6b, 0xc8, 0x65, 0xb9, 0x66, 0x09, 0x12, 0x4d,
+  0x97, 0xfa, 0x02, 0x55, 0xe5, 0xe8, 0xef, 0xb6, 0x99, 0x48, 0xad, 0xf4,
+  0x63, 0x4b, 0x5c, 0xd5, 0x8e, 0x64, 0xb1, 0x83, 0x53, 0x05, 0x45, 0x93,
+  0xd5, 0x0f, 0x85, 0x2c, 0x4e, 0xe6, 0x6f, 0x90, 0xbc, 0x95, 0x43, 0x21,
+  0x5f, 0xe8, 0xaa, 0x13, 0xe1, 0xdd, 0x78, 0xce, 0x54, 0x28, 0xc1, 0x3e,
+  0x7a, 0xab, 0x3e, 0x55, 0x88, 0x1c, 0xcc, 0x0d, 0x59, 0x36, 0xba, 0x48,
+  0x66, 0x5e, 0xf5, 0x13, 0xa6, 0x0b, 0x34, 0xe2, 0x8d, 0x69, 0xb6, 0xb3,
+  0xe1, 0xd5, 0xe8, 0xda, 0x64, 0xd0, 0x7f, 0x09, 0xeb, 0xc7, 0x92, 0x15,
+  0xb2, 0xf7, 0x82, 0xc0, 0x6d, 0x5b, 0x91, 0xae, 0x98, 0x26, 0x7e, 0x6e,
+  0x67, 0x76, 0x5f, 0xed, 0x0d, 0x76, 0x5f, 0x7e, 0x3e, 0xd8, 0x19, 0xec,
+  0xee, 0x90, 0x7c, 0xa1, 0xae, 0x78, 0x9d, 0xe3, 0x79, 0x89, 0x7c, 0xaa,
+  0xf5, 0x5e, 0xf8, 0xcd, 0xd3, 0xa3, 0xcb, 0xef, 0xce, 0x2e, 0xbe, 0x49,
+  0x8e, 0x4f, 0x2f, 0x8f, 0x2e, 0xde, 0x1d, 0x1c, 0x3e, 0x95, 0xb0, 0xdf,
+  0x77, 0x5b, 0x7b, 0x35, 0xcb, 0x33, 0x37, 0x31, 0xa1, 0x6f, 0xd0, 0xcd,
+  0x59, 0xd6, 0xdc, 0xec, 0xec, 0xef, 0xae, 0xa4, 0xa4, 0x8e, 0xb8, 0x07,
+  0xdd, 0xfb, 0x3a, 0xa8, 0x5d, 0x1a, 0xd4, 0xf2, 0x56, 0x2c, 0x35, 0xe3,
+  0x90, 0xb1, 0x55, 0x16, 0x97, 0x0b, 0x31, 0x8f, 0x2a, 0x48, 0x60, 0x64,
+  0x15, 0xc1, 0x3e, 0x62, 0xf2, 0x5b, 0x4e, 0xaf, 0x15, 0x92, 0x19, 0xc1,
+  0xa0, 0x8b, 0xcc, 0x5d, 0xe3, 0xfa, 0xe0, 0x8d, 0xb8, 0x53, 0x98, 0xce,
+  0x76, 0x02, 0x15, 0x4f, 0xa5, 0xb2, 0xe4, 0xae, 0xd1, 0x6e, 0x91, 0x0a,
+  0xa5, 0x4c, 0x38, 0x38, 0xb1, 0x79, 0x22, 0x96, 0x85, 0x00, 0xd0, 0x07,
+  0xd5, 0xd3, 0xd1, 0xd7, 0x76, 0x89, 0x77, 0x1f, 0x3e, 0xdb, 0xe1, 0x5e,
+  0xad, 0x15, 0xd7, 0x8c, 0x81, 0xb5, 0x5c, 0xa3, 0x87, 0xd2, 0x11, 0x9c,
+  0x06, 0xaf, 0x37, 0xfc, 0x29, 0x28, 0x54, 0x44, 0x92, 0x06, 0x7a, 0xc8,
+  0x16, 0x43, 0x32, 0xdf, 0x51, 0xc8, 0x9d, 0x60, 0xfd, 0x4f, 0xcb, 0x5a,
+  0x50, 0xeb, 0x75, 0x8b, 0xa4, 0x30, 0xe1, 0xca, 0x54, 0xfe, 0xeb, 0xac,
+  0x6a, 0x03, 0x9d, 0x39, 0xa9, 0xd2, 0x7b, 0x94, 0x57, 0xc9, 0x1d, 0xe5,
+  0xe8, 0x5a, 0xd2, 0x2a, 0xaf, 0x45, 0x8a, 0x93, 0x9b, 0xf3, 0xe4, 0xfc,
+  0xe8, 0x7d, 0x5f, 0x0b, 0x1c, 0x9b, 0xbf, 0xb3, 0x33, 0x4a, 0xf9, 0x25,
+  0x39, 0xb7, 0x67, 0x9e, 0x15, 0x8a, 0xa5, 0x81, 0x4c, 0x14, 0xf0, 0x8f,
+  0x3f, 0x00, 0x3a, 0x34, 0x96, 0x81, 0x52, 0x20, 0xa3, 0x8a, 0xb9, 0xe4,
+  0xdc, 0xc2, 0x2e, 0x2d, 0x27, 0xad, 0xa7, 0x00, 0x96, 0x93, 0x4d, 0x0b,
+  0xd2, 0xa5, 0xef, 0x01, 0x89, 0x0a, 0xd4, 0x80, 0x85, 0x09, 0x94, 0x9a,
+  0x79, 0x7d, 0xfe, 0xcd, 0xe1, 0xf0, 0xf7, 0xbb, 0x7b, 0xd2, 0x9d, 0x2d,
+  0xb5, 0x0a, 0x48, 0x56, 0x75, 0x93, 0xf2, 0x21, 0xae, 0xfd, 0x3e, 0x6a,
+  0x8a, 0x35, 0x0e, 0x38, 0x16, 0x63, 0xd3, 0x26, 0x06, 0x6d, 0xb5, 0x32,
+  0x83, 0x80, 0xfc, 0x7a, 0xb0, 0x2a, 0xa6, 0x2d, 0xda, 0x4b, 0x21, 0x11,
+  0x94, 0x77, 0x92, 0x02, 0x4b, 0x8d, 0x85, 0xfa, 0xa5, 0x85, 0xfe, 0x88,
+  0x5b, 0x96, 0xd6, 0x90, 0x43, 0xee, 0xe0, 0x2c, 0xdd, 0x35, 0xa7, 0xf9,
+  0x76, 0xbf, 0x25, 0x9e, 0x58, 0xb9, 0xd9, 0x95, 0x10, 0xc8, 0x7d, 0x06,
+  0x07, 0x40, 0xd0, 0xeb, 0x13, 0x2d, 0xe1, 0x56, 0xb8, 0x3a, 0x28, 0xf4,
+  0xf4, 0x99, 0x59, 0x28, 0x73, 0xb2, 0x98, 0xb7, 0x81, 0x84, 0x42, 0x39,
+  0x25, 0xd3, 0xc5, 0x3e, 0xf2, 0xb6, 0xa2, 0xd2, 0x31, 0x73, 0xc6, 0x91,
+  0x9e, 0x0e, 0x92, 0xaf, 0xb3, 0x82, 0x12, 0xe7, 0x09, 0x71, 0xa7, 0xb9,
+  0x57, 0xc0, 0x05, 0x52, 0x0d, 0x49, 0xd4, 0xd4, 0x3b, 0xc9, 0x52, 0xe1,
+  0xe4, 0x34, 0xb2, 0xae, 0x66, 0x0b, 0x57, 0xeb, 0x49, 0xa5, 0x84, 0xce,
+  0x13, 0x02, 0x51, 0x4b, 0x76, 0xc1, 0x24, 0xd1, 0xd4, 0xc0, 0x66, 0x9b,
+  0x58, 0x13, 0x25, 0x11, 0xd0, 0x9c, 0x1c, 0x73, 0xc4, 0x9a, 0xc4, 0xab,
+  0x7c, 0x03, 0x3a, 0x6d, 0xf2, 0x16, 0xb2, 0xc5, 0xe5, 0x84, 0xca, 0xa4,
+  0xba, 0x21, 0xd7, 0x47, 0x6d, 0xae, 0x9b, 0xb4, 0x18, 0x3f, 0x0c, 0x26,
+  0x46, 0x97, 0x25, 0xe7, 0xd9, 0x60, 0x71, 0xbb, 0xed, 0x1d, 0x53, 0x12,
+  0xf9, 0x37, 0xcc, 0x11, 0xd0, 0x76, 0x7c, 0x6b, 0xa1, 0xe2, 0x90, 0x3a,
+  0x2c, 0x6d, 0x9d, 0x09, 0xda, 0x12, 0x9a, 0xed, 0xcf, 0xc7, 0x73, 0x29,
+  0xc9, 0xd6, 0x51, 0x62, 0x19, 0x8e, 0xa9, 0x85, 0xc1, 0x3c, 0x9b, 0xed,
+  0xdb, 0x6c, 0x64, 0x95, 0x0f, 0x52, 0x55, 0xc3, 0x1a, 0x16, 0x9e, 0x93,
+  0xb6, 0xc8, 0xae, 0xa7, 0xa2, 0x50, 0xf8, 0xa6, 0x8b, 0x6d, 0x22, 0x92,
+  0x02, 0xc2, 0x06, 0x8f, 0x54, 0x3b, 0x82, 0xc6, 0x6e, 0xf6, 0x61, 0x23,
+  0x90, 0x5a, 0x7e, 0xb8, 0x22, 0x85, 0xde, 0x35, 0x22, 0xcc, 0x21, 0x20,
+  0x5b, 0x26, 0x65, 0x58, 0x5c, 0x3c, 0x8a, 0x44, 0x92, 0xf0, 0x13, 0x11,
+  0xc1, 0x62, 0x87, 0x80, 0xc6, 0x5d, 0x50, 0xd1, 0x08, 0x7e, 0x6a, 0x3d,
+  0x60, 0x3e, 0x2b, 0xe6, 0xd7, 0x77, 0xcf, 0xc8, 0xe3, 0x7d, 0x79, 0x32,
+  0xd4, 0xa8, 0x48, 0x91, 0xdd, 0x7b, 0x5b, 0x8b, 0x4b, 0x0f, 0xc8, 0xfe,
+  0x23, 0x07, 0x10, 0x53, 0x2a, 0x83, 0xed, 0x00, 0x3d, 0x61, 0xa9, 0xe0,
+  0xc2, 0x64, 0x2e, 0xf9, 0x41, 0x27, 0x41, 0x60, 0xc4, 0xd4, 0x15, 0x2d,
+  0x5d, 0xc6, 0xca, 0x90, 0x65, 0x7a, 0x21, 0xee, 0x3e, 0xa3, 0x2c, 0x3d,
+  0xeb, 0x25, 0xfd, 0x3d, 0xf0, 0xe7, 0xec, 0xb6, 0x27, 0x31, 0x6d, 0x98,
+  0x26, 0x90, 0xda, 0x30, 0x2d, 0x69, 0x2b, 0x22, 0x0e, 0x36, 0x65, 0x4b,
+  0xdf, 0x99, 0xf7, 0xe9, 0x8f, 0x3d, 0x19, 0xd0, 0xdd, 0x2e, 0x10, 0xdb,
+  0xcc, 0x5b, 0x39, 0x7d, 0x08, 0x55, 0x86, 0xbd, 0x95, 0xab, 0x8a, 0xdc,
+  0x88, 0xfb, 0xdc, 0x12, 0x48, 0x73, 0xd1, 0x04, 0xb8, 0x42, 0x85, 0x12,
+  0x54, 0x3b, 0x60, 0xa6, 0x50, 0x9c, 0xdc, 0x45, 0x72, 0xb7, 0xa7, 0xb1,
+  0x66, 0xfa, 0x8d, 0xce, 0x1b, 0x3b, 0xeb, 0x9d, 0x10, 0x09, 0xd2, 0x16,
+  0x09, 0xe5, 0xe6, 0xed, 0x5a, 0xca, 0x7a, 0x32, 0x7b, 0xd6, 0x48, 0x91,
+  0x96, 0x94, 0x29, 0x0b, 0x71, 0x2b, 0x70, 0xca, 0x3b, 0xf3, 0xd1, 0x93,
+  0x01, 0xef, 0xc1, 0x9c, 0x80, 0xfc, 0xf6, 0x10, 0x91, 0xc7, 0x85, 0x4d,
+  0x94, 0x10, 0x57, 0x3e, 0x28, 0xfa, 0xb0, 0xfc, 0x37, 0x39, 0x3b, 0x26,
+  0x80, 0x35, 0xc5, 0x75, 0x6e, 0x4e, 0xfe, 0x46, 0x62, 0x0e, 0xd3, 0x82,
+  0x24, 0x7e, 0x63, 0xeb, 0xa8, 0x0d, 0x99, 0xda, 0x73, 0xc3, 0x17, 0x73,
+  0xfd, 0x2f, 0x68, 0x28, 0xf5, 0x86, 0x1b, 0xbb, 0x50, 0x9c, 0xb7, 0x07,
+  0x22, 0x71, 0x0e, 0xad, 0x1c, 0x76, 0x5e, 0x69, 0x71, 0xf4, 0x8d, 0xa3,
+  0x4f, 0xa4, 0xe3, 0x6c, 0xc8, 0x97, 0xf8, 0xd7, 0x9c, 0xd3, 0x8f, 0x39,
+  0x3a, 0x3f, 0x3e, 0xe5, 0x72, 0xdf, 0xf6, 0x2c, 0x64, 0x44, 0xbd, 0xb8,
+  0xc6, 0x75, 0xe5, 0xd1, 0x9f, 0x54, 0x39, 0xe0, 0xd9, 0x71, 0x44, 0x7b,
+  0x86, 0xf6, 0x78, 0x2e, 0xdf, 0xba, 0x58, 0xf0, 0xd7, 0x37, 0xe8, 0x9e,
+  0xab, 0xeb, 0xe9, 0x46, 0xa7, 0x8c, 0xad, 0x5d, 0x93, 0xce, 0x85, 0x62,
+  0x3d, 0x52, 0xe3, 0x89, 0x53, 0xf0, 0x51, 0xa6, 0x9b, 0x5a, 0x69, 0xc9,
+  0xb9, 0x5e, 0x27, 0xd3, 0xd1, 0x77, 0x85, 0xff, 0x3e, 0x19, 0x6c, 0x9b,
+  0x0f, 0xd6, 0xdb, 0xfa, 0xe2, 0xfc, 0x76, 0x5c, 0x9b, 0x1b, 0x8e, 0xd2,
+  0x7a, 0x7f, 0x80, 0x41, 0x8e, 0xe5, 0x30, 0x3d, 0x9e, 0xfc, 0x94, 0xf4,
+  0xc7, 0x53, 0x8c, 0x2f, 0x41, 0xb1, 0xec, 0x1f, 0xcc, 0xca, 0xd3, 0x13,
+  0x3f, 0xd9, 0x35, 0x7c, 0x97, 0xd3, 0x79, 0xfb, 0xd4, 0xd3, 0xa1, 0x9f,
+  0xb1, 0xc1, 0xc0, 0xfc, 0xb6, 0xc9, 0xc1, 0xe4, 0x8e, 0x92, 0xee, 0x26,
+  0xf2, 0x4f, 0x1a, 0xcf, 0x51, 0x81, 0x52, 0xa3, 0x18, 0x69, 0x3a, 0xe2,
+  0xca, 0xe2, 0xdf, 0xe6, 0xc6, 0xe8, 0x38, 0xec, 0xe8, 0x17, 0x94, 0xff,
+  0x47, 0x1d, 0xc4, 0x5b, 0xde, 0x2f, 0x35, 0x99, 0xa3, 0x27, 0x39, 0x0b,
+  0x0e, 0x5a, 0x4a, 0xd2, 0x99, 0x96, 0x6e, 0x90, 0x7c, 0x49, 0x31, 0xce,
+  0x2a, 0xf3, 0xd8, 0x5f, 0xe5, 0xe2, 0xe3, 0x92, 0x7c, 0xb4, 0x18, 0x29,
+  0xf3, 0x4f, 0x0c, 0xec, 0x48, 0x82, 0x1c, 0x18, 0x3b, 0x26, 0xfb, 0x9b,
+  0xf6, 0xe0, 0xd0, 0x2f, 0x4d, 0x69, 0x37, 0x43, 0xd1, 0x7c, 0x89, 0x24,
+  0x18, 0x8a, 0xc7, 0x4b, 0xc9, 0x3d, 0xe4, 0x0b, 0x73, 0x92, 0x69, 0x62,
+  0x7f, 0xe9, 0xb3, 0xa9, 0xa8, 0xe7, 0x18, 0x4d, 0xa9, 0x46, 0x60, 0xb7,
+  0x04, 0xee, 0x70, 0xd7, 0xeb, 0xc3, 0x1b, 0x23, 0x9a, 0x33, 0xdb, 0xd5,
+  0x21, 0xbb, 0xf4, 0xb4, 0x8b, 0x43, 0xba, 0xa3, 0x74, 0x11, 0xec, 0x2f,
+  0x35, 0x3b, 0x12, 0x5a, 0xe8, 0x36, 0xcb, 0x2e, 0xbb, 0x77, 0x79, 0x76,
+  0xdb, 0x43, 0xa0, 0xa4, 0xc6, 0xe1, 0x87, 0xf7, 0x54, 0xda, 0x04, 0x15,
+  0xa8, 0x2f, 0x2f, 0x0e, 0x4e, 0x87, 0xef, 0xd8, 0x35, 0x7e, 0x59, 0x7a,
+  0xa5, 0xad, 0x25, 0xae, 0xa0, 0xf1, 0x63, 0x4b, 0x13, 0x77, 0xcf, 0xf5,
+  0x36, 0x14, 0x4f, 0x2f, 0x75, 0xaf, 0x7b, 0x5d, 0xbe, 0x7d, 0x2e, 0x9a,
+  0x4d, 0xb3, 0x41, 0x5d, 0xdb, 0x1c, 0x6e, 0x59, 0x45, 0xa8, 0xf6, 0x8b,
+  0xb2, 0xb9, 0xaa, 0xf3, 0xca, 0x0c, 0x2d, 0x0f, 0xd1, 0xb4, 0x1c, 0x6a,
+  0x67, 0xf4, 0xa7, 0x7c, 0xf7, 0x2e, 0x25, 0x23, 0x3d, 0x34, 0xa6, 0x62,
+  0x5f, 0x2a, 0xd5, 0x38, 0x3e, 0x36, 0xe7, 0x4e, 0xe5, 0xbb, 0x57, 0xa8,
+  0xfc, 0x6c, 0xe3, 0x7e, 0xde, 0xa7, 0x36, 0xbd, 0xf9, 0xef, 0xbb, 0x5b,
+  0xf1, 0xe6, 0x2f, 0x7f, 0x6e, 0xf3, 0xf1, 0xbe, 0xab, 0x6d, 0xe6, 0x52,
+  0x8a, 0x36, 0xff, 0x7d, 0x6f, 0x6b, 0xe5, 0x88, 0xfc, 0xac, 0x48, 0xf7,
+  0x4d, 0xf3, 0x06, 0x75, 0x36, 0x79, 0xc3, 0xc7, 0xcc, 0xea, 0x4c, 0x16,
+  0xa1, 0xe3, 0xf1, 0x0d, 0xb7, 0x08, 0x3b, 0x08, 0xb6, 0x6d, 0x35, 0x75,
+  0x17, 0x78, 0x93, 0xec, 0x92, 0xe3, 0xff, 0x79, 0xe4, 0xd3, 0x48, 0x16,
+  0x1b, 0x8d, 0x7f, 0x45, 0x11, 0x3b, 0x40, 0x5d, 0x0e, 0xf0, 0xed, 0xbd,
+  0x15, 0xdf, 0x76, 0xa3, 0xf3, 0xdc, 0x12, 0x14, 0xc5, 0x26, 0x18, 0x9c,
+  0xb2, 0x61, 0xcb, 0x77, 0xec, 0xb7, 0x57, 0x7d, 0xef, 0xf2, 0xf8, 0xfd,
+  0x11, 0xb1, 0x66, 0xbf, 0x3d, 0x26, 0xf2, 0xb9, 0xa1, 0xd0, 0x3f, 0xaa,
+  0x07, 0xc2, 0x32, 0xf2, 0xfa, 0xd5, 0x52, 0x38, 0xbc, 0x6b, 0xd1, 0x66,
+  0x56, 0x72, 0xd8, 0x95, 0xa0, 0x4f, 0x0b, 0x06, 0xba, 0xd6, 0x4c, 0xcb,
+  0xe3, 0xab, 0xfe, 0xfb, 0x72, 0x02, 0x2b, 0xb9, 0x3f, 0x04, 0x54, 0xd0,
+  0xbc, 0x65, 0x7e, 0xf8, 0xa1, 0x98, 0xb5, 0x7e, 0x3c, 0x88, 0x64, 0xea,
+  0xae, 0x2d, 0x2b, 0xca, 0xf3, 0xf7, 0xed, 0x7e, 0x9f, 0x3a, 0xd3, 0x67,
+  0x58, 0x97, 0x04, 0x77, 0x5a, 0xfc, 0x1c, 0x2a, 0x5a, 0xcc, 0x04, 0xe5,
+  0xd3, 0x07, 0x06, 0x22, 0xa4, 0x0e, 0x3e, 0xe6, 0xb2, 0x37, 0xaf, 0x29,
+  0x83, 0xcc, 0xb9, 0xf8, 0xd8, 0x89, 0xb7, 0xe6, 0x93, 0x97, 0xc2, 0x90,
+  0xca, 0xee, 0x1d, 0xfe, 0x49, 0xca, 0x2f, 0x97, 0xf3, 0x07, 0x8c, 0xf2,
+  0xbe, 0x05, 0xad, 0x88, 0xc6, 0x57, 0xff, 0xce, 0xef, 0xb4, 0xca, 0x50,
+  0x09, 0xc7, 0xb4, 0xb7, 0x03, 0xe5, 0x27, 0x52, 0xb5, 0xe9, 0xac, 0xf2,
+  0xae, 0x2b, 0xe9, 0xb6, 0x56, 0xb7, 0xf3, 0x88, 0x4d, 0x3d, 0x1e, 0xd6,
+  0x76, 0x3f, 0x7d, 0x12, 0xd8, 0x92, 0x52, 0x5f, 0xdf, 0x96, 0x36, 0x38,
+  0x66, 0xc4, 0xce, 0xbc, 0x5d, 0xe0, 0x38, 0x4b, 0x34, 0xc9, 0x9b, 0x73,
+  0xf8, 0x37, 0xfa, 0x1b, 0xa8, 0xcb, 0x90, 0x17, 0x91, 0xc1, 0xf4, 0x7f,
+  0xfe, 0x68, 0x82, 0xd0, 0x6b, 0xb2, 0x7e, 0x45, 0x44, 0x18, 0x14, 0xc7,
+  0x5a, 0xe7, 0x0e, 0x30, 0x4f, 0x0c, 0x6f, 0x2e, 0x73, 0x41, 0x90, 0x5c,
+  0x53, 0x43, 0x92, 0x8d, 0x6a, 0x8b, 0x8c, 0xb5, 0x4e, 0x72, 0xf6, 0x4a,
+  0x92, 0x20, 0x5d, 0xcc, 0x27, 0x00, 0x65, 0x30, 0x1c, 0xf5, 0x3f, 0x89,
+  0x14, 0xbb, 0x7a, 0x48, 0x76, 0xf7, 0x7a, 0xc9, 0xde, 0xce, 0xee, 0x5e,
+  0x64, 0x0c, 0xeb, 0xff, 0x49, 0xa0, 0xa8, 0x3d, 0xfc, 0x7a, 0xfd, 0xa9,
+  0xa3, 0x70, 0xf9, 0x0c, 0xb8, 0x49, 0x24, 0xf3, 0xd7, 0x08, 0x1f, 0x8a,
+  0xcf, 0x82, 0x88, 0x19, 0x55, 0x8f, 0x41, 0x67, 0x87, 0x6b, 0x8b, 0x9d,
+  0x84, 0x5a, 0x63, 0xd3, 0x96, 0x0e, 0x9b, 0xa0, 0x92, 0x0e, 0x17, 0x9e,
+  0x05, 0xf2, 0xc5, 0x7a, 0x4a, 0xd3, 0x0a, 0xa5, 0x40, 0xdb, 0x6b, 0x94,
+  0x37, 0xba, 0x2c, 0x04, 0xad, 0xa1, 0xb5, 0x31, 0xfb, 0xfd, 0xed, 0xf1,
+  0xe1, 0xa5, 0xf2, 0x1d, 0x5e, 0x91, 0xf2, 0x54, 0x3d, 0x3c, 0xad, 0x18,
+  0xe3, 0xca, 0x67, 0x26, 0xfb, 0x37, 0x99, 0x51, 0xa3, 0x8b, 0xd1, 0xe2,
+  0x7a, 0xff, 0xaf, 0x69, 0x75, 0x5d, 0x16, 0x8f, 0x3d, 0x3f, 0x41, 0x42,
+  0xd9, 0xbe, 0x91, 0x50, 0xbb, 0xaf, 0x76, 0x9f, 0x21, 0xff, 0x7b, 0x9a,
+  0xa3, 0x20, 0x10, 0x09, 0x88, 0x8d, 0xd9, 0x06, 0x13, 0x6c, 0x20, 0x4d,
+  0xc2, 0xb2, 0x6a, 0x14, 0x93, 0x0d, 0xbe, 0xee, 0x53, 0xff, 0xd9, 0x89,
+  0x3c, 0xcb, 0xa9, 0xe7, 0x1b, 0x92, 0xab, 0xb0, 0x41, 0x69, 0x9a, 0x8b,
+  0xf9, 0x46, 0x9b, 0x22, 0xfe, 0x91, 0xb1, 0xd2, 0x27, 0x6c, 0xed, 0xc9,
+  0x43, 0x4b, 0x7c, 0x8f, 0x0c, 0xa2, 0x2a, 0x4b, 0x6f, 0x5d, 0x19, 0x64,
+  0xc7, 0xbe, 0xa1, 0x21, 0x8f, 0x8b, 0x77, 0x87, 0xcc, 0x60, 0xaa, 0xf9,
+  0x52, 0x98, 0xea, 0xc4, 0xba, 0xa6, 0xb6, 0xa8, 0x97, 0x8f, 0x7c, 0x9f,
+  0x72, 0x1b, 0xf6, 0x27, 0xa3, 0x27, 0x3c, 0x64, 0xce, 0x1d, 0x93, 0xc5,
+  0x1d, 0xb4, 0x4b, 0xef, 0x90, 0xa1, 0x86, 0xfa, 0x21, 0x5a, 0xf3, 0x78,
+  0x93, 0x6b, 0xca, 0x72, 0xc4, 0x81, 0xba, 0xa6, 0x95, 0xa4, 0xd5, 0xbb,
+  0x63, 0xfa, 0x4d, 0x55, 0x5e, 0xdf, 0x1e, 0x9c, 0x7b, 0x86, 0x2e, 0x0c,
+  0x49, 0xe7, 0xd4, 0xa3, 0xe7, 0xc8, 0xd0, 0x41, 0x49, 0x75, 0xa9, 0xc6,
+  0xd4, 0x73, 0x26, 0x4a, 0x03, 0x39, 0x49, 0xba, 0x11, 0x00, 0xf2, 0xa5,
+  0xdc, 0x27, 0xf0, 0x3f, 0xa1, 0x9a, 0xc1, 0x74, 0x92, 0x22, 0x10, 0x2a,
+  0xb7, 0x10, 0x65, 0x40, 0x9c, 0x15, 0x9a, 0xc5, 0xdc, 0xeb, 0x94, 0x6e,
+  0x30, 0x3f, 0xc6, 0x77, 0x70, 0x45, 0x9f, 0x1b, 0x25, 0x1c, 0x34, 0x2e,
+  0xc3, 0xb7, 0xdf, 0x50, 0x8f, 0x25, 0xa8, 0x03, 0xad, 0x4d, 0x7d, 0xd9,
+  0x36, 0x12, 0xa5, 0x56, 0xa3, 0x3a, 0xaf, 0xd4, 0xb7, 0x48, 0xcd, 0xdd,
+  0x3d, 0x1b, 0xf0, 0x9f, 0x7b, 0xb6, 0xf4, 0x30, 0x1e, 0x03, 0xce, 0xf3,
+  0x4a, 0x0b, 0x1b, 0xcf, 0x32, 0xaa, 0xe6, 0x9b, 0xd7, 0x33, 0x07, 0x4b,
+  0xb9, 0x92, 0xd7, 0x5d, 0x49, 0x3d, 0x51, 0x22, 0x29, 0xb4, 0x80, 0x7e,
+  0xa0, 0xb7, 0xb9, 0xe0, 0xba, 0xcc, 0x2e, 0xfb, 0x94, 0x48, 0x3a, 0x8a,
+  0xe4, 0xdd, 0x48, 0xe5, 0x14, 0x3c, 0x46, 0xf9, 0xd5, 0x0f, 0xba, 0x14,
+  0x7c, 0xd3, 0x98, 0x65, 0x48, 0xeb, 0x5b, 0x73, 0x29, 0x30, 0x14, 0xc1,
+  0xcc, 0x63, 0x2e, 0xc1, 0x7c, 0x72, 0x5f, 0xe5, 0x0c, 0x09, 0x22, 0x47,
+  0x1a, 0x18, 0x9d, 0x5a, 0x5b, 0x8f, 0x2f, 0x53, 0xb2, 0x9d, 0xa7, 0x75,
+  0xc6, 0xfc, 0x8b, 0x20, 0x04, 0xa2, 0xd8, 0x1f, 0x6d, 0x3d, 0xd8, 0x4c,
+  0x8a, 0xa9, 0x85, 0x38, 0xa3, 0x5d, 0xba, 0xb7, 0xf7, 0xe2, 0x45, 0x2f,
+  0x59, 0x27, 0xbf, 0x23, 0xfa, 0x44, 0x1b, 0xfa, 0x1d, 0x04, 0xcf, 0x7a,
+  0xb4, 0xc2, 0xee, 0x76, 0x75, 0x35, 0xa6, 0xff, 0xa7, 0xf7, 0xb4, 0xb0,
+  0xe4, 0xa5, 0x24, 0xe2, 0x50, 0x37, 0x11, 0x64, 0xb5, 0x74, 0x39, 0xbc,
+  0xd3, 0xe8, 0x77, 0xc7, 0xd6, 0xb5, 0x44, 0x71, 0xa4, 0x79, 0x56, 0xce,
+  0x35, 0x60, 0x3c, 0x93, 0x92, 0x21, 0xf8, 0xbe, 0x17, 0x65, 0x43, 0x88,
+  0x9f, 0x11, 0x72, 0xc2, 0x8b, 0x50, 0x2f, 0x46, 0x7d, 0x49, 0x10, 0x66,
+  0x43, 0x33, 0x37, 0x87, 0x79, 0x46, 0x8b, 0x20, 0x1e, 0xfc, 0x40, 0x48,
+  0x7f, 0x99, 0xac, 0xcb, 0x76, 0xa3, 0x3f, 0x06, 0x88, 0xf7, 0x66, 0x63,
+  0x1a, 0x46, 0xf9, 0x46, 0xfe, 0xf1, 0x1f, 0xff, 0x61, 0x9a, 0xfd, 0x0f,
+  0x6a, 0xe5, 0xcd, 0xbf, 0xd7, 0xcd, 0x8d, 0xf7, 0xcc, 0xba, 0x9c, 0x81,
+  0x63, 0x17, 0xed, 0x06, 0x82, 0x0d, 0xcc, 0xb3, 0xc8, 0x63, 0x7b, 0x7f,
+  0x22, 0x42, 0xba, 0xe7, 0x8d, 0x2f, 0x47, 0x86, 0x21, 0xfb, 0x4d, 0x2d,
+  0x80, 0xe4, 0x4b, 0x8a, 0x44, 0x67, 0x94, 0x99, 0x6e, 0x16, 0x01, 0xc4,
+  0x82, 0x5b, 0x0e, 0x52, 0xc2, 0xf2, 0x1d, 0xbe, 0x51, 0x2e, 0x39, 0xd7,
+  0x29, 0xa1, 0x75, 0xaf, 0x37, 0x05, 0x9f, 0x62, 0xac, 0x93, 0xf9, 0x55,
+  0x3a, 0x2d, 0xaf, 0xed, 0x88, 0x63, 0x45, 0x6b, 0x7e, 0xd6, 0xd8, 0xd7,
+  0xfd, 0x86, 0xf4, 0x4d, 0x3f, 0xbe, 0xfe, 0xc4, 0x56, 0x08, 0x27, 0x60,
+  0x8f, 0x26, 0xe0, 0xaf, 0x61, 0x91, 0x32, 0x61, 0x24, 0x36, 0x96, 0x8a,
+  0x0a, 0x92, 0x6d, 0x3d, 0xe8, 0xf6, 0xe4, 0x13, 0x74, 0x77, 0x4c, 0x47,
+  0xa0, 0x53, 0x35, 0xc7, 0xc9, 0x0a, 0xab, 0xdc, 0x48, 0x41, 0x14, 0xd1,
+  0x4d, 0x32, 0x23, 0xaf, 0x72, 0x73, 0x16, 0x70, 0x01, 0xd2, 0x77, 0x68,
+  0xce, 0x10, 0x9a, 0xcc, 0x98, 0x90, 0x66, 0xc4, 0x35, 0xc7, 0xfa, 0xfd,
+  0xa2, 0x99, 0xce, 0x98, 0xbf, 0x79, 0x82, 0xfa, 0x63, 0x9a, 0xa1, 0x91,
+  0x17, 0x21, 0xc9, 0x60, 0x7b, 0x9e, 0xf9, 0xd5, 0x7f, 0x6e, 0x96, 0x7c,
+  0xa1, 0xc7, 0x65, 0x3d, 0xa9, 0x9d, 0x6d, 0x47, 0xdc, 0xe8, 0xc8, 0xd1,
+  0xc8, 0x17, 0xda, 0x2f, 0xa4, 0x24, 0x1a, 0xa0, 0xfd, 0x56, 0x34, 0x09,
+  0xfb, 0x98, 0x0f, 0x59, 0xd5, 0x4c, 0x23, 0xe2, 0x99, 0x26, 0xe7, 0x9b,
+  0x91, 0xef, 0x19, 0x40, 0xc9, 0x75, 0xb2, 0x39, 0x1c, 0x9e, 0x1f, 0x6f,
+  0x6b, 0x45, 0xb5, 0xb5, 0xb5, 0xa3, 0xd3, 0x6f, 0x8f, 0x2f, 0xce, 0x4e,
+  0xdf, 0x1f, 0x9d, 0x5e, 0x26, 0xdf, 0x1e, 0x5c, 0x1c, 0x1f, 0x7c, 0x79,
+  0x22, 0xe4, 0x0b, 0x34, 0x4c, 0xc2, 0x9c, 0xb1, 0x29, 0xd8, 0x21, 0x25,
+  0xf6, 0xf2, 0xe2, 0xa2, 0xa5, 0x6c, 0x3a, 0x55, 0xba, 0x3f, 0x0a, 0xa3,
+  0x3e, 0x0c, 0xe3, 0x8f, 0xa8, 0xca, 0xd5, 0x23, 0x5b, 0xe8, 0xa3, 0x16,
+  0xe8, 0x22, 0x5b, 0xfe, 0xc1, 0x4b, 0xe7, 0x27, 0x38, 0x1c, 0x89, 0x33,
+  0x15, 0xe6, 0xae, 0x34, 0xa5, 0xad, 0xf5, 0xf2, 0x15, 0x33, 0x42, 0x68,
+  0xe1, 0x1b, 0x7d, 0x15, 0xf2, 0x83, 0x75, 0x1d, 0xd7, 0x87, 0x83, 0x93,
+  0x13, 0xf7, 0xa9, 0xd5, 0x35, 0x91, 0x84, 0x0d, 0x8c, 0x73, 0x09, 0xd1,
+  0x28, 0xc5, 0xa9, 0xaf, 0x4b, 0x57, 0x1e, 0xa0, 0x78, 0xf0, 0x2b, 0x01,
+  0xd0, 0xc7, 0xcc, 0x76, 0xd9, 0x64, 0x1a, 0x17, 0x02, 0x2d, 0x34, 0x59,
+  0x95, 0xd7, 0xb7, 0xbd, 0x64, 0xe3, 0xdf, 0x37, 0xa4, 0x42, 0x3d, 0xb8,
+  0xab, 0xb9, 0xe2, 0xd2, 0x96, 0xeb, 0xd4, 0xe9, 0x99, 0xeb, 0x93, 0xc4,
+  0xe1, 0x6d, 0x07, 0xec, 0x8b, 0x0e, 0x45, 0x51, 0xab, 0x7a, 0x0d, 0xf8,
+  0xb2, 0x7b, 0x5c, 0xca, 0x92, 0x58, 0x76, 0x0a, 0x91, 0x8f, 0x14, 0x67,
+  0x8d, 0xbe, 0x0b, 0x27, 0x42, 0x3a, 0xf6, 0x28, 0xca, 0x31, 0xd6, 0x82,
+  0x3c, 0x6f, 0xb6, 0x54, 0x9c, 0x3a, 0xa7, 0xcd, 0x54, 0x4f, 0x84, 0x70,
+  0x31, 0xd5, 0x96, 0x25, 0x95, 0x19, 0xa9, 0xe2, 0x36, 0x02, 0xe5, 0x39,
+  0x19, 0x53, 0x01, 0xb4, 0x0f, 0xcc, 0x4c, 0xe3, 0xe4, 0xb3, 0x13, 0xa9,
+  0xe5, 0xdd, 0x45, 0x4c, 0xa8, 0x93, 0xfb, 0x29, 0xb1, 0x8e, 0xb2, 0xf5,
+  0x33, 0x59, 0x57, 0x09, 0x42, 0x31, 0x69, 0x37, 0xcf, 0x3e, 0x58, 0x30,
+  0xd8, 0x9d, 0xa9, 0x33, 0x09, 0xc0, 0xa4, 0xff, 0xfa, 0x3a, 0x72, 0x93,
+  0x38, 0xd6, 0x62, 0x49, 0x11, 0x89, 0x72, 0x08, 0x73, 0xec, 0x70, 0xe9,
+  0xd9, 0x27, 0xe6, 0x12, 0xb2, 0xbb, 0xcc, 0xed, 0x04, 0xae, 0xa6, 0x27,
+  0x30, 0xf4, 0x6e, 0x8f, 0xb5, 0x52, 0x56, 0xaa, 0x95, 0x99, 0x10, 0x37,
+  0x63, 0x95, 0x0b, 0x4a, 0x53, 0x77, 0x38, 0x70, 0x1a, 0x32, 0xe0, 0xb9,
+  0xd5, 0xe9, 0x4e, 0xc3, 0xeb, 0x8a, 0x27, 0x58, 0xd4, 0xa2, 0x42, 0xe1,
+  0x0e, 0xf9, 0xb4, 0xad, 0xb5, 0xae, 0x00, 0x32, 0xa0, 0x84, 0xa0, 0xca,
+  0x48, 0xd1, 0x7a, 0x79, 0x49, 0xa9, 0x01, 0x62, 0xd3, 0x17, 0x87, 0xa8,
+  0xc9, 0x50, 0x50, 0x55, 0x56, 0x57, 0x4b, 0x07, 0xc9, 0x03, 0x45, 0xd6,
+  0x54, 0x94, 0x91, 0x5b, 0x88, 0x15, 0x02, 0x40, 0x3e, 0x8c, 0xf4, 0xf4,
+  0xba, 0x54, 0x03, 0x3c, 0xb5, 0xa8, 0x19, 0x5b, 0x71, 0xd0, 0x33, 0xea,
+  0x2d, 0x73, 0xa0, 0x15, 0x5c, 0xc0, 0xd7, 0x68, 0x84, 0x90, 0xf0, 0xa5,
+  0x74, 0xc8, 0xb4, 0x82, 0x7c, 0xed, 0x71, 0x33, 0xb8, 0xf4, 0x25, 0x92,
+  0xe4, 0x9c, 0xa5, 0xa3, 0x54, 0x7e, 0xa0, 0x4f, 0x54, 0x2e, 0x07, 0x20,
+  0x9d, 0xd1, 0x2d, 0x7a, 0x10, 0x4d, 0x0a, 0x68, 0x1d, 0x4d, 0x6a, 0xf0,
+  0xca, 0xc8, 0xab, 0x29, 0x65, 0x90, 0xaa, 0xde, 0x91, 0x26, 0xa3, 0xfc,
+  0x9a, 0x39, 0x41, 0x88, 0x80, 0x82, 0xce, 0x25, 0x28, 0x1e, 0xcb, 0x59,
+  0x46, 0x87, 0x03, 0x04, 0x8e, 0x30, 0xde, 0x6f, 0xca, 0xa9, 0xcf, 0x32,
+  0xa8, 0x23, 0x91, 0xd5, 0xb7, 0xb1, 0x0f, 0xc4, 0x3e, 0x17, 0x34, 0x8f,
+  0x0a, 0x47, 0x95, 0xf2, 0x04, 0x02, 0xce, 0xa5, 0xa0, 0x1a, 0xb8, 0x52,
+  0x0b, 0xa4, 0x02, 0x2a, 0x97, 0x02, 0xe6, 0x41, 0x13, 0x17, 0x68, 0xe3,
+  0xc2, 0x91, 0x4e, 0x75, 0x5e, 0x37, 0x6d, 0x7d, 0x01, 0x6a, 0x65, 0xcc,
+  0x0c, 0xcd, 0x24, 0x66, 0x18, 0x52, 0xd2, 0x2e, 0x08, 0x26, 0x8b, 0x25,
+  0xdc, 0x79, 0x66, 0x4f, 0x50, 0xa7, 0xcd, 0x4c, 0x6d, 0x7a, 0x6a, 0x46,
+  0x61, 0xb6, 0x08, 0x3f, 0xc6, 0x1e, 0x24, 0xf9, 0x57, 0xdf, 0xd6, 0x32,
+  0x14, 0xe0, 0xc9, 0x96, 0x03, 0x1e, 0xb1, 0x19, 0x40, 0xf2, 0x61, 0x2c,
+  0xd5, 0x64, 0x01, 0xd1, 0xa1, 0x52, 0xb8, 0x20, 0x84, 0x6b, 0x05, 0x1f,
+  0x12, 0x4d, 0xb8, 0x9b, 0x4e, 0xbd, 0x02, 0x03, 0xec, 0x8f, 0x4c, 0x03,
+  0xe3, 0x83, 0xe4, 0xc4, 0x80, 0x65, 0x2e, 0x43, 0xff, 0x98, 0x8c, 0xdc,
+  0x1b, 0x88, 0x24, 0x95, 0x90, 0x79, 0xd6, 0x89, 0x69, 0x78, 0x57, 0x88,
+  0xc2, 0x63, 0x7c, 0x35, 0x54, 0xea, 0xe9, 0xe4, 0xe9, 0x8c, 0x8d, 0x47,
+  0xb7, 0xfb, 0x66, 0x0f, 0x0c, 0x3b, 0x5e, 0x5b, 0x3b, 0xfc, 0x30, 0xbc,
+  0x3c, 0x7b, 0x9f, 0x9c, 0x7d, 0xb8, 0x3c, 0xff, 0x70, 0x29, 0x7a, 0xea,
+  0x88, 0x93, 0x36, 0x18, 0xba, 0xc4, 0xba, 0xb3, 0x2e, 0xe6, 0x4c, 0x00,
+  0x3e, 0xc0, 0x98, 0x95, 0xa0, 0x15, 0xf5, 0x18, 0xc5, 0x6c, 0x52, 0x26,
+  0xb8, 0xf6, 0x98, 0xaf, 0x1c, 0x53, 0x7e, 0x6f, 0xa6, 0x1c, 0x09, 0xf5,
+  0xf0, 0xe4, 0x6b, 0x8e, 0x27, 0xfc, 0x1e, 0x7a, 0xd6, 0xda, 0xb5, 0xaa,
+  0x1e, 0xda, 0x7e, 0x0c, 0xa0, 0x73, 0xda, 0x0c, 0x6e, 0x7e, 0xc9, 0x5c,
+  0x76, 0xee, 0x3a, 0xdf, 0xaf, 0x8f, 0xe9, 0x96, 0x82, 0xbb, 0x1a, 0x81,
+  0x52, 0x58, 0x3d, 0xb0, 0x86, 0xed, 0xcc, 0x62, 0x3f, 0xc1, 0xb9, 0x29,
+  0xcd, 0x08, 0x6f, 0x6c, 0x4a, 0x0c, 0xc1, 0x08, 0x01, 0x05, 0x66, 0x04,
+  0x15, 0x61, 0x6e, 0xd9, 0x65, 0x50, 0x64, 0xf7, 0xa4, 0xf8, 0x04, 0x3a,
+  0xf5, 0x7d, 0xb2, 0xf1, 0x5d, 0xe6, 0x37, 0xf8, 0x87, 0xff, 0xa2, 0xbc,
+  0xed, 0x8f, 0xfa, 0x93, 0x7f, 0xf0, 0x27, 0x7f, 0x2c, 0x36, 0x20, 0x30,
+  0xdb, 0x50, 0x99, 0x6f, 0x8e, 0x2e, 0xbe, 0x3c, 0xba, 0x38, 0x1b, 0x42,
+  0x1e, 0xa8, 0xbf, 0x3b, 0xdc, 0xeb, 0xb7, 0x59, 0x35, 0xca, 0xaa, 0x52,
+  0xea, 0xe8, 0xe9, 0xbf, 0x5e, 0x6c, 0x7f, 0x35, 0x1c, 0x1e, 0x9c, 0x1f,
+  0xdb, 0x4a, 0x55, 0x36, 0x83, 0x94, 0x7d, 0x24, 0x05, 0xe7, 0x38, 0xd3,
+  0xf8, 0xf5, 0x15, 0xb3, 0x2f, 0xc6, 0xb7, 0x9c, 0x59, 0x10, 0x80, 0x52,
+  0x34, 0xb0, 0x46, 0x68, 0x14, 0x49, 0x2c, 0xa6, 0x86, 0x95, 0x09, 0xce,
+  0xaf, 0x36, 0xc1, 0x65, 0x21, 0x28, 0x18, 0xd8, 0xb3, 0x10, 0xdc, 0xdb,
+  0x6a, 0xd4, 0x37, 0xbb, 0xfd, 0x56, 0x0b, 0xb7, 0x73, 0x22, 0x94, 0x11,
+  0x95, 0x9c, 0x21, 0xe1, 0x9c, 0x8d, 0xb7, 0x79, 0x91, 0x37, 0xdb, 0xb7,
+  0x74, 0x3e, 0xa8, 0x8a, 0xd2, 0x74, 0xc0, 0xd2, 0x9d, 0x0f, 0x94, 0xc2,
+  0xde, 0x49, 0xc4, 0xae, 0x62, 0xa7, 0x31, 0x5f, 0xb3, 0xa5, 0x4f, 0xd9,
+  0xe1, 0x6d, 0x7e, 0xf2, 0xdc, 0xd2, 0xf4, 0x89, 0xe6, 0x0f, 0xa4, 0xec,
+  0x95, 0xb9, 0xab, 0xe6, 0xf7, 0x13, 0xb9, 0x44, 0xc0, 0x52, 0xcf, 0xca,
+  0xa5, 0xc8, 0xf0, 0x6e, 0x84, 0x9a, 0xca, 0xb3, 0x22, 0x63, 0x4b, 0xf2,
+  0x51, 0x92, 0xd1, 0x34, 0x2d, 0x6e, 0xa1, 0x3f, 0x40, 0x23, 0xa0, 0xbb,
+  0x4f, 0xc9, 0xe7, 0xa8, 0x6c, 0x2e, 0x00, 0x09, 0xc2, 0x07, 0x03, 0x93,
+  0x6f, 0x4a, 0xc2, 0xed, 0x81, 0x83, 0x79, 0x96, 0x63, 0xcf, 0x0b, 0xbd,
+  0xe3, 0x38, 0xb9, 0x49, 0x20, 0xdf, 0xf1, 0xd1, 0x89, 0xb9, 0x98, 0x6c,
+  0x96, 0x19, 0x7c, 0x74, 0xd9, 0x94, 0x62, 0x41, 0x0a, 0x09, 0xe4, 0xc4,
+  0xea, 0x1c, 0x82, 0x8c, 0xa5, 0x87, 0x16, 0x50, 0x40, 0x00, 0x19, 0xdb,
+  0x05, 0xf9, 0xe3, 0xb5, 0x2d, 0x33, 0x24, 0x92, 0x9b, 0x85, 0x18, 0xd8,
+  0x81, 0x5d, 0xd5, 0x21, 0xbf, 0xfe, 0x95, 0xe0, 0x6d, 0x0f, 0x1d, 0x20,
+  0xd0, 0x16, 0x04, 0xe4, 0x4e, 0x38, 0x23, 0xd4, 0x42, 0x0c, 0x5a, 0xe9,
+  0x6d, 0x4b, 0x97, 0x89, 0x5f, 0x8f, 0x79, 0x01, 0x99, 0xd4, 0x70, 0x22,
+  0x01, 0x4f, 0xcb, 0x07, 0xa6, 0x39, 0x0b, 0xed, 0x3c, 0x01, 0xed, 0x38,
+  0xc3, 0x81, 0x28, 0x7a, 0x33, 0x6d, 0xac, 0xa3, 0xa2, 0x66, 0x86, 0x35,
+  0x28, 0x5d, 0x13, 0x88, 0x9c, 0xaa, 0x45, 0x55, 0xed, 0xc3, 0xf3, 0x99,
+  0xb2, 0xa6, 0xb4, 0x46, 0x26, 0x5b, 0xff, 0xd6, 0x9a, 0xed, 0x9f, 0xd2,
+  0x75, 0x51, 0xf6, 0x47, 0x0b, 0x38, 0x66, 0xbc, 0x42, 0x7d, 0x9c, 0xc4,
+  0x5d, 0x5e, 0xb1, 0xe6, 0xc1, 0xbf, 0xa7, 0x80, 0x34, 0xe8, 0x31, 0x38,
+  0x46, 0x8d, 0x7c, 0xe9, 0x36, 0xd3, 0x96, 0xe5, 0x57, 0xe2, 0x24, 0x24,
+  0x57, 0x41, 0xdc, 0x0e, 0x50, 0x16, 0xd9, 0x3a, 0x69, 0x3c, 0x9b, 0xa6,
+  0xd7, 0x49, 0xb9, 0x68, 0x6c, 0xc1, 0x8b, 0x4b, 0xa8, 0x09, 0x99, 0x94,
+  0x81, 0xd0, 0x5c, 0x0a, 0xcd, 0xdc, 0xba, 0x6b, 0xa8, 0xb4, 0x1c, 0x53,
+  0xc3, 0xa4, 0x53, 0xae, 0xd3, 0xb3, 0xf4, 0x2a, 0xe1, 0xc3, 0xd4, 0x5c,
+  0x5e, 0xfe, 0xe5, 0xfc, 0xe8, 0x8d, 0xbe, 0xb9, 0x6a, 0xcd, 0x98, 0x31,
+  0x11, 0xa0, 0xb9, 0x4c, 0x18, 0x8a, 0x35, 0x87, 0x86, 0x45, 0x45, 0xbf,
+  0x51, 0x30, 0x0f, 0x7f, 0xa6, 0x9f, 0x7c, 0xff, 0xf6, 0x78, 0x78, 0x7e,
+  0x72, 0x76, 0xf8, 0xe6, 0xf5, 0xf7, 0x2a, 0x92, 0xbf, 0xa0, 0x18, 0x21,
+  0xeb, 0x69, 0xf6, 0x67, 0x8e, 0xd1, 0x45, 0xde, 0x3b, 0x3d, 0xfa, 0xee,
+  0xa3, 0xb1, 0xc7, 0xde, 0x50, 0x5d, 0x87, 0xde, 0x5d, 0x3a, 0x95, 0x97,
+  0x48, 0x3f, 0x8d, 0xe8, 0x76, 0x83, 0x36, 0x05, 0x67, 0x77, 0x62, 0x6d,
+  0x7d, 0x62, 0x97, 0xa8, 0xf4, 0xa0, 0x38, 0x5a, 0xaf, 0x14, 0x5d, 0xda,
+  0xca, 0xab, 0x8f, 0x54, 0x13, 0x77, 0xd7, 0xff, 0x46, 0xc3, 0xa0, 0x6a,
+  0xc2, 0x10, 0xf9, 0xd0, 0x1c, 0x00, 0xd7, 0xe5, 0x37, 0x0e, 0xd0, 0x2f,
+  0xfc, 0xe9, 0x15, 0xf9, 0xd1, 0x2c, 0x01, 0xad, 0x94, 0xa8, 0x07, 0xe8,
+  0x45, 0x58, 0x6a, 0x85, 0x7a, 0x8d, 0x30, 0xf4, 0x9a, 0x4e, 0xa3, 0x72,
+  0x4c, 0x54, 0x18, 0xdb, 0x97, 0x54, 0x8b, 0x65, 0xa3, 0x22, 0xd7, 0xf9,
+  0xd1, 0xc5, 0xf0, 0x78, 0x78, 0x49, 0x86, 0xab, 0x54, 0x6e, 0x95, 0x20,
+  0x94, 0x96, 0xd5, 0x05, 0x69, 0x4b, 0x9b, 0x70, 0xd8, 0xaf, 0x16, 0xd4,
+  0x3a, 0xd1, 0x56, 0xcc, 0xb5, 0xb3, 0xb8, 0xe9, 0x06, 0xe0, 0xd4, 0x70,
+  0x52, 0x44, 0x99, 0x36, 0x3b, 0xbd, 0xd2, 0x03, 0x5c, 0xca, 0xd6, 0xe8,
+  0x14, 0xcd, 0x41, 0xc1, 0x2b, 0xac, 0xce, 0x34, 0x1f, 0x39, 0x67, 0x66,
+  0x07, 0x43, 0x42, 0xf0, 0x24, 0xa1, 0xe8, 0xf1, 0x8f, 0x90, 0x06, 0xc4,
+  0x1c, 0x35, 0x82, 0x14, 0xf3, 0x96, 0x6b, 0x4d, 0xd2, 0x9a, 0xfd, 0x04,
+  0x76, 0xeb, 0x96, 0x82, 0xd1, 0xa2, 0x7a, 0x9a, 0xfd, 0xa9, 0x87, 0x42,
+  0x17, 0xd6, 0x37, 0x10, 0x56, 0x8b, 0xc8, 0x26, 0xa1, 0x9c, 0x73, 0x2a,
+  0x2a, 0xf9, 0x27, 0x8d, 0xd6, 0x02, 0x6a, 0x0d, 0x00, 0x05, 0x65, 0x64,
+  0x81, 0x0a, 0x22, 0xaa, 0xe3, 0x35, 0xe5, 0xb0, 0x82, 0x5a, 0x6f, 0x42,
+  0xfa, 0x16, 0x5c, 0xf0, 0xfe, 0xc7, 0xf4, 0x3a, 0xa5, 0x19, 0x1c, 0x2d,
+  0xfc, 0x52, 0x90, 0xb6, 0xf7, 0x5c, 0x95, 0x08, 0x13, 0x0f, 0x88, 0x74,
+  0x5a, 0xc1, 0x93, 0xd1, 0x48, 0xa9, 0x08, 0x35, 0x7c, 0x04, 0xef, 0x3c,
+  0x68, 0xb3, 0x78, 0xe9, 0xbe, 0x54, 0x23, 0x6c, 0xd5, 0x8c, 0x7a, 0xb5,
+  0x63, 0x69, 0xfb, 0x56, 0x99, 0x02, 0x17, 0xd9, 0xa9, 0x58, 0x53, 0xc4,
+  0xb1, 0x18, 0xdb, 0xcb, 0x98, 0xb2, 0x0e, 0x09, 0x60, 0x50, 0x09, 0x43,
+  0x9a, 0x11, 0x7f, 0x14, 0x5a, 0x42, 0xc1, 0x59, 0x54, 0x62, 0xa7, 0xb0,
+  0xbb, 0xb2, 0x67, 0xba, 0x3c, 0x0e, 0x9e, 0x6e, 0x6f, 0x5b, 0x71, 0x7c,
+  0xed, 0x41, 0x3e, 0x68, 0x19, 0x32, 0x74, 0xb1, 0x7a, 0x9c, 0x70, 0x99,
+  0x22, 0xbf, 0x4f, 0x03, 0x3b, 0x5e, 0x9e, 0x78, 0x2d, 0xd9, 0xf7, 0x16,
+  0x9f, 0x02, 0x81, 0xd7, 0xaa, 0xba, 0x4d, 0xa3, 0x6b, 0x61, 0x03, 0x8c,
+  0x7e, 0x39, 0x47, 0x09, 0xb5, 0xb1, 0xd4, 0x90, 0x00, 0x6a, 0xdf, 0x36,
+  0xa8, 0x97, 0x88, 0x9b, 0x2c, 0x33, 0xab, 0xef, 0x3f, 0x9c, 0x5c, 0x1e,
+  0x9f, 0xfb, 0xf8, 0x83, 0xe4, 0xbb, 0xe3, 0xcb, 0xaf, 0x8d, 0xd6, 0x3e,
+  0x3c, 0x3e, 0xfd, 0xea, 0x84, 0x82, 0xbc, 0xef, 0xdf, 0x1f, 0x9c, 0x12,
+  0xbd, 0xc8, 0x29, 0xa0, 0xcd, 0x07, 0x30, 0x1c, 0x48, 0x1c, 0x99, 0x29,
+  0xa6, 0xbd, 0x43, 0xc4, 0x13, 0xbd, 0x30, 0xd6, 0xd8, 0x39, 0x7e, 0x5c,
+  0x55, 0xbd, 0x68, 0x4f, 0x12, 0xad, 0xb8, 0x58, 0x06, 0x0f, 0xe4, 0xc6,
+  0xc5, 0xb1, 0x25, 0x63, 0x8b, 0x26, 0xba, 0x5b, 0x3c, 0x02, 0x49, 0xce,
+  0xac, 0xa1, 0x03, 0x47, 0xc3, 0x77, 0xb7, 0x8b, 0x5f, 0x62, 0x45, 0x2d,
+  0xf5, 0x34, 0xec, 0x18, 0xa3, 0x33, 0x15, 0x62, 0xd7, 0xf0, 0x7d, 0xd9,
+  0x4e, 0x3a, 0x32, 0x5f, 0x44, 0x97, 0x00, 0x24, 0x2a, 0x9d, 0x23, 0x9d,
+  0x2c, 0x4e, 0x32, 0x9a, 0x2f, 0x4e, 0xfc, 0x0b, 0x75, 0xd0, 0xaa, 0x39,
+  0xa8, 0xf8, 0xe0, 0xeb, 0x32, 0x73, 0x27, 0xb7, 0x7f, 0xa6, 0xcd, 0x68,
+  0xfc, 0x07, 0x66, 0x18, 0x5f, 0x2e, 0x7d, 0x92, 0x6b, 0x7d, 0xb3, 0x24,
+  0x5b, 0xb6, 0xce, 0x98, 0x98, 0xfd, 0xfb, 0xac, 0x56, 0x5a, 0x72, 0x75,
+  0x2d, 0xcf, 0x69, 0x9a, 0xd3, 0x96, 0x05, 0x8b, 0x86, 0x84, 0x0c, 0xc9,
+  0x6b, 0x94, 0x31, 0x43, 0x5a, 0xea, 0x63, 0x2d, 0x5a, 0x06, 0xbe, 0xef,
+  0xce, 0x34, 0x38, 0xa9, 0x79, 0xad, 0xb6, 0xf0, 0xa3, 0x83, 0x4e, 0xa0,
+  0xb4, 0x22, 0xdc, 0x15, 0x19, 0xa1, 0x1c, 0xe8, 0xaf, 0x7f, 0x9d, 0x5f,
+  0xfb, 0x29, 0xaf, 0x5c, 0x58, 0x7e, 0x1e, 0x5b, 0x59, 0x61, 0x72, 0x67,
+  0xb5, 0x48, 0x8a, 0x59, 0xb6, 0x7a, 0x20, 0x15, 0x2a, 0x77, 0x97, 0x7d,
+  0x50, 0x7e, 0xbf, 0x17, 0xfe, 0x7e, 0x8f, 0x83, 0x0c, 0xc7, 0xe7, 0x77,
+  0x2f, 0x2d, 0x03, 0x32, 0x13, 0x39, 0xf8, 0xea, 0x9b, 0x2a, 0x05, 0xb4,
+  0xc3, 0xe8, 0x51, 0x71, 0x99, 0xb3, 0x4c, 0xe4, 0xe0, 0x1f, 0x41, 0x48,
+  0x17, 0x15, 0x12, 0xd4, 0xf1, 0x08, 0xa2, 0x2b, 0x8c, 0xfb, 0x87, 0xe7,
+  0x09, 0x72, 0x8a, 0xae, 0x2b, 0xd3, 0xa0, 0xf9, 0xfd, 0x73, 0x9b, 0x8c,
+  0xe3, 0x64, 0x1a, 0x8a, 0x34, 0x4a, 0x3a, 0x64, 0x3f, 0x9f, 0xdf, 0x69,
+  0x95, 0x6f, 0xf3, 0xd7, 0x97, 0xb6, 0x40, 0x57, 0xdd, 0x0a, 0x52, 0xb7,
+  0xd8, 0xc6, 0x55, 0xf8, 0xa3, 0x73, 0xf0, 0x81, 0x91, 0x64, 0x70, 0x46,
+  0x46, 0xa7, 0x5f, 0x59, 0x3b, 0x23, 0xc3, 0x2b, 0x53, 0x8c, 0xac, 0xaf,
+  0x29, 0x52, 0xe3, 0x21, 0x8f, 0x3c, 0xe1, 0xe2, 0x57, 0xfa, 0x90, 0x55,
+  0xff, 0x61, 0x6f, 0x67, 0x67, 0x77, 0x7f, 0xf7, 0xf3, 0x57, 0x3b, 0xfb,
+  0xbb, 0xbb, 0xbb, 0x7b, 0xfb, 0xbb, 0xfb, 0xfb, 0x7b, 0x3b, 0x3f, 0x6d,
+  0x93, 0xff, 0xe8, 0x2e, 0xcf, 0xee, 0x35, 0x32, 0xcd, 0x7e, 0x3e, 0x6c,
+  0xeb, 0xba, 0x79, 0x60, 0x30, 0x00, 0x7b, 0xfa, 0xb0, 0xaf, 0x55, 0xf3,
+  0xb1, 0xb4, 0x32, 0x9c, 0x33, 0xc3, 0x14, 0x92, 0x73, 0x97, 0x6a, 0x8e,
+  0x33, 0xe8, 0xd1, 0xdc, 0xa3, 0x57, 0x7f, 0x5b, 0xd0, 0x48, 0x47, 0xa4,
+  0x0e, 0x40, 0xa7, 0xa9, 0x6d, 0x62, 0xef, 0xf5, 0xb4, 0x1c, 0x8d, 0x90,
+  0xba, 0x64, 0x73, 0xdb, 0x07, 0x09, 0x71, 0x29, 0xdf, 0xf2, 0x96, 0x90,
+  0xd0, 0x21, 0x50, 0xc5, 0x7c, 0xd0, 0xdd, 0xec, 0x38, 0xcf, 0x9e, 0xd9,
+  0x01, 0xe3, 0x92, 0xea, 0x8a, 0xc0, 0xd3, 0x6d, 0x26, 0xa9, 0xb2, 0x39,
+  0x6f, 0xc9, 0x55, 0xf6, 0xf9, 0xce, 0xfe, 0x3e, 0x95, 0xfe, 0xf9, 0xc3,
+  0x6e, 0x4f, 0x00, 0xe1, 0x7e, 0x96, 0x4b, 0xcf, 0x5e, 0x4f, 0xdc, 0x06,
+  0x99, 0x1f, 0xfe, 0x38, 0x8b, 0xc5, 0x2c, 0xab, 0x8c, 0x21, 0x42, 0xc5,
+  0xa3, 0x81, 0x88, 0x86, 0xc7, 0x90, 0x39, 0x16, 0xc1, 0xc8, 0xd4, 0xc9,
+  0xc6, 0xa1, 0x1b, 0x81, 0xb9, 0xa2, 0x2d, 0x0b, 0x05, 0xf3, 0x85, 0xb9,
+  0x21, 0xda, 0xb6, 0x51, 0xfe, 0x0a, 0x60, 0x4d, 0xce, 0x65, 0xe3, 0x2c,
+  0x3e, 0xbe, 0x6f, 0x45, 0x32, 0xe0, 0x70, 0x15, 0x5c, 0xd2, 0x98, 0x1e,
+  0x67, 0x1d, 0x1e, 0x1e, 0x13, 0x4f, 0xb9, 0x95, 0x04, 0xbe, 0x1f, 0xbc,
+  0xc1, 0xee, 0xbd, 0xd8, 0xfd, 0x89, 0xf1, 0xca, 0x74, 0x20, 0xdc, 0xac,
+  0x69, 0xf0, 0xc5, 0x4f, 0xd1, 0xd2, 0x8d, 0xb4, 0x99, 0x0d, 0xae, 0x07,
+  0xaa, 0x55, 0x88, 0xb7, 0xb1, 0xe7, 0x67, 0x8d, 0x70, 0x9d, 0x02, 0x2e,
+  0x54, 0x0e, 0x3b, 0x4d, 0x1d, 0x4a, 0xbe, 0xab, 0x56, 0x07, 0x66, 0xcb,
+  0xd1, 0xbd, 0x3f, 0xba, 0x3c, 0x30, 0x97, 0xc7, 0x37, 0xa1, 0xa1, 0xff,
+  0x3e, 0x33, 0x56, 0x39, 0x2d, 0xf6, 0x26, 0xce, 0xc3, 0x9d, 0x65, 0x07,
+  0xa7, 0xb9, 0x7b, 0x9e, 0x6c, 0x52, 0x88, 0xf2, 0xc5, 0xe7, 0x2f, 0x9e,
+  0x6f, 0x71, 0x29, 0x16, 0x7e, 0x2d, 0xa3, 0x04, 0x31, 0x78, 0x25, 0x85,
+  0x9d, 0x8a, 0x1c, 0xf8, 0x56, 0x24, 0x7d, 0xb8, 0x38, 0xe6, 0x23, 0x7d,
+  0xc3, 0x24, 0x22, 0x6c, 0xf4, 0x76, 0xd9, 0x24, 0x71, 0xdf, 0x7a, 0x4a,
+  0xc6, 0x2c, 0x27, 0xa6, 0x53, 0x90, 0x2f, 0xd0, 0xc5, 0x68, 0xc9, 0x3f,
+  0x70, 0xc3, 0x9a, 0x03, 0x5a, 0xa2, 0x40, 0xa9, 0xd4, 0x7d, 0x43, 0x67,
+  0x40, 0x8d, 0x4a, 0xcc, 0xcc, 0xb2, 0xcf, 0xac, 0x05, 0x46, 0x76, 0x10,
+  0xcb, 0x23, 0x96, 0xfe, 0x1d, 0x36, 0xfe, 0x2d, 0x86, 0xfc, 0x40, 0x29,
+  0xa4, 0x6d, 0x68, 0x1e, 0x54, 0xec, 0x38, 0xf5, 0xb8, 0x95, 0x8e, 0xea,
+  0xb4, 0x4d, 0x8f, 0xd4, 0x4d, 0xf9, 0x9c, 0x44, 0x14, 0xd9, 0x29, 0x64,
+  0x3c, 0x4b, 0x03, 0xcf, 0x62, 0xde, 0x72, 0xf9, 0x08, 0x99, 0x06, 0x48,
+  0x2d, 0x90, 0x73, 0x30, 0x33, 0xd7, 0x51, 0xf5, 0x20, 0x1a, 0x36, 0xcc,
+  0x04, 0x5b, 0x4f, 0xb1, 0x83, 0x08, 0x62, 0xda, 0x18, 0x3f, 0x95, 0xc6,
+  0xb2, 0x26, 0xa9, 0xd1, 0xdc, 0xea, 0x40, 0x4b, 0xec, 0xf7, 0x67, 0xfa,
+  0x2b, 0x0f, 0x30, 0xe7, 0xe7, 0x97, 0xea, 0xdf, 0xf5, 0x39, 0x0f, 0x4b,
+  0x9d, 0x76, 0x07, 0xb6, 0xa4, 0x6b, 0xcc, 0xa8, 0x0b, 0xfc, 0xa4, 0xb5,
+  0x7e, 0x36, 0xd1, 0x93, 0xed, 0xed, 0xad, 0x25, 0xbd, 0x91, 0x5f, 0xc7,
+  0xbe, 0x7e, 0x0e, 0x52, 0x22, 0x2f, 0xa5, 0xdb, 0xac, 0x79, 0xbb, 0x71,
+  0x9a, 0xda, 0xbc, 0xa6, 0x95, 0x9c, 0x08, 0x30, 0x9e, 0xdd, 0xa8, 0x6a,
+  0x5e, 0x71, 0xe7, 0x55, 0x78, 0xb5, 0x07, 0x21, 0x58, 0x3c, 0x25, 0x89,
+  0xe3, 0xaa, 0xf2, 0x8c, 0x0a, 0x18, 0x24, 0x07, 0xb4, 0x1b, 0x5a, 0x1f,
+  0xf6, 0xba, 0xac, 0xfe, 0x5c, 0xad, 0x7b, 0xa0, 0x4a, 0xac, 0x75, 0xe7,
+  0xf5, 0xbc, 0x5f, 0xaa, 0x9a, 0xa7, 0x9c, 0x20, 0xd6, 0xd9, 0x3b, 0xca,
+  0x98, 0xff, 0xc8, 0x4a, 0x4e, 0x8f, 0xcf, 0x3c, 0x2f, 0x5a, 0x85, 0x82,
+  0xa5, 0x11, 0x20, 0x5d, 0xec, 0x20, 0x40, 0x95, 0x5a, 0x29, 0x05, 0xb7,
+  0x5f, 0x3c, 0x14, 0x14, 0x24, 0x92, 0xd5, 0xc2, 0x8a, 0xb5, 0xdd, 0xc4,
+  0x0c, 0x52, 0x18, 0xf1, 0xf6, 0x6a, 0xcd, 0x47, 0x8f, 0x77, 0x3c, 0xa3,
+  0x98, 0x2c, 0xa4, 0x82, 0x04, 0xc6, 0xc1, 0xf1, 0x09, 0xc1, 0x62, 0x4f,
+  0x8c, 0x89, 0x37, 0x54, 0x55, 0x09, 0x30, 0x71, 0x00, 0x76, 0x8b, 0x9c,
+  0xd4, 0xf5, 0x9e, 0x2d, 0x38, 0xa4, 0xd9, 0x92, 0xb0, 0x5b, 0x28, 0xc4,
+  0xca, 0xa6, 0xbf, 0x90, 0x84, 0x9a, 0xd5, 0x32, 0xfa, 0x52, 0xcd, 0x4e,
+  0x5b, 0x10, 0x70, 0x53, 0x69, 0x8a, 0xbb, 0x6c, 0x5a, 0xce, 0x61, 0x52,
+  0xb3, 0x98, 0x46, 0xbd, 0xb3, 0x2a, 0x9b, 0x66, 0x77, 0xe2, 0x5d, 0x65,
+  0x3a, 0xe3, 0xaf, 0x04, 0xb1, 0xc0, 0x05, 0x8f, 0x1b, 0xc9, 0x6a, 0x09,
+  0x50, 0x11, 0xf4, 0xd1, 0x6d, 0x66, 0x85, 0x72, 0x64, 0x3f, 0xf4, 0x7d,
+  0x57, 0x84, 0xc3, 0xcc, 0x90, 0x2d, 0xe2, 0xd0, 0x27, 0x23, 0x57, 0xc0,
+  0xed, 0x1f, 0x6a, 0xe1, 0x73, 0xe9, 0x66, 0x8b, 0xb0, 0xb3, 0x50, 0x6b,
+  0x66, 0xb2, 0xf7, 0xbd, 0xa7, 0x34, 0xe9, 0x1c, 0x32, 0xa0, 0x9b, 0xa7,
+  0x47, 0x9e, 0x5a, 0xb4, 0x74, 0x65, 0x2c, 0x32, 0x2a, 0x88, 0xd3, 0xe3,
+  0xd4, 0x71, 0x6c, 0x8e, 0x72, 0x6a, 0xfe, 0x09, 0x40, 0x25, 0x43, 0xac,
+  0xcd, 0xb3, 0x14, 0x6f, 0xf6, 0x30, 0xed, 0x84, 0xb9, 0x41, 0x3a, 0x94,
+  0xfc, 0x0b, 0x4d, 0x55, 0x0b, 0xb0, 0x89, 0xf7, 0xf8, 0x36, 0xa4, 0x38,
+  0x6f, 0x33, 0x1e, 0xd8, 0xde, 0x0b, 0xea, 0x87, 0xfb, 0xff, 0x96, 0xa7,
+  0x92, 0x06, 0xc1, 0x7a, 0x48, 0x59, 0xe9, 0xf4, 0xf2, 0x32, 0x8c, 0xb8,
+  0xc4, 0xe9, 0x97, 0x0b, 0x8a, 0x3f, 0xda, 0x02, 0x5e, 0xd4, 0x8b, 0x19,
+  0xdd, 0x45, 0x19, 0x57, 0x13, 0xb6, 0x8d, 0x93, 0x49, 0xb7, 0x30, 0xcb,
+  0xcb, 0xad, 0x9f, 0x94, 0xf7, 0x54, 0x0a, 0xf9, 0xea, 0x2a, 0x1f, 0x53,
+  0xec, 0xdf, 0xb1, 0x86, 0x93, 0x8c, 0xe7, 0x07, 0x67, 0x5a, 0x7d, 0xcd,
+  0x8c, 0x2d, 0x99, 0x2f, 0x46, 0x53, 0x73, 0x59, 0x6b, 0x3e, 0x8b, 0x39,
+  0x55, 0x98, 0x25, 0x63, 0x6d, 0xa1, 0x39, 0xa6, 0x37, 0x84, 0xc1, 0xd9,
+  0xc9, 0xa1, 0x40, 0xb8, 0xb4, 0x82, 0x0a, 0x3e, 0x43, 0x4d, 0x68, 0x4a,
+  0x34, 0x98, 0x95, 0x85, 0xa6, 0xc3, 0x2d, 0x6a, 0xa6, 0x93, 0x45, 0x34,
+  0x87, 0xab, 0x64, 0x25, 0x78, 0x52, 0x8a, 0x36, 0x88, 0x69, 0x8e, 0x37,
+  0xfc, 0xc1, 0x4c, 0xfa, 0xf3, 0x9b, 0xb9, 0xae, 0xb4, 0x2a, 0x44, 0xac,
+  0x2d, 0x49, 0x02, 0x16, 0x8e, 0xde, 0xf9, 0xd7, 0xe7, 0x83, 0xe4, 0x88,
+  0x5a, 0xe2, 0x3e, 0x89, 0xa2, 0x0b, 0x1f, 0x8d, 0xf9, 0x9d, 0x19, 0xec,
+  0x35, 0x5d, 0x60, 0x67, 0x15, 0xfd, 0x0b, 0xad, 0xc9, 0x2f, 0xd9, 0x2d,
+  0x8b, 0xdf, 0xb6, 0xbf, 0x6a, 0x1a, 0xd2, 0x34, 0x8b, 0x73, 0xfc, 0xdd,
+  0x9c, 0x15, 0xa3, 0x7e, 0xd9, 0x65, 0x72, 0x5f, 0x28, 0xab, 0x16, 0xf9,
+  0x16, 0xbf, 0x99, 0x18, 0xad, 0x0c, 0xba, 0xd5, 0xfc, 0x01, 0xeb, 0xe7,
+  0x09, 0x47, 0xd6, 0x3f, 0xb9, 0x01, 0x6f, 0x6b, 0xc9, 0xf6, 0xb3, 0x00,
+  0x5e, 0x3e, 0x58, 0x15, 0xd3, 0x4e, 0x55, 0x99, 0xc0, 0x9d, 0x4b, 0x09,
+  0x4c, 0xb3, 0x47, 0xa3, 0xce, 0x3a, 0xe7, 0xd5, 0xb3, 0xdf, 0xf4, 0x17,
+  0x64, 0x76, 0x53, 0x5f, 0x8c, 0xd6, 0x62, 0x96, 0x60, 0xb0, 0xf6, 0xff,
+  0x05, 0x64, 0x12, 0x93, 0xc2, 0xc5, 0xe0, 0x02, 0x00,
+};
+#define BUF_SIZE 0x10000
+static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
+{
+  (void) opaque;
+  /* not a typo, keep it calloc() */
+  return (voidpf) calloc(items, size);
+}
+static void zfree_func(voidpf opaque, voidpf ptr)
+{
+  (void) opaque;
+  free(ptr);
+}
+/* Decompress and send to stdout a gzip-compressed buffer */
+void hugehelp(void)
+{
+  unsigned char* buf;
+  int status,headerlen;
+  z_stream z;
+
+  /* Make sure no gzip options are set */
+  if (hugehelpgz[3] & 0xfe)
+    return;
+
+  headerlen = 10;
+  memset(&z, 0, sizeof(z_stream));
+  z.zalloc = (alloc_func)zalloc_func;
+  z.zfree = (free_func)zfree_func;
+  z.avail_in = (unsigned int)(sizeof(hugehelpgz) - headerlen);
+  z.next_in = (unsigned char *)hugehelpgz + headerlen;
+
+  if (inflateInit2(&z, -MAX_WBITS) != Z_OK)
+    return;
+
+  buf = malloc(BUF_SIZE);
+  if (buf) {
+    while(1) {
+      z.avail_out = BUF_SIZE;
+      z.next_out = buf;
+      status = inflate(&z, Z_SYNC_FLUSH);
+      if (status == Z_OK || status == Z_STREAM_END) {
+        fwrite(buf, BUF_SIZE - z.avail_out, 1, stdout);
+        if (status == Z_STREAM_END)
+          break;
+      }
+      else
+        break;    /* Error */
+    }
+    free(buf);
+  }
+  inflateEnd(&z);
+}
+#else /* !USE_MANUAL */
+/* built-in manual is disabled, blank function */
+#include "tool_hugehelp.h"
+void hugehelp(void) {}
+#endif /* USE_MANUAL */
+#endif /* HAVE_LIBZ */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_hugehelp.h b/ap/lib/libcurl/curl-7.54.1/src/tool_hugehelp.h
new file mode 100644
index 0000000..16520b6
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_hugehelp.h
@@ -0,0 +1,28 @@
+#ifndef HEADER_CURL_TOOL_HUGEHELP_H
+#define HEADER_CURL_TOOL_HUGEHELP_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+void hugehelp(void);
+
+#endif /* HEADER_CURL_TOOL_HUGEHELP_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_libinfo.c b/ap/lib/libcurl/curl-7.54.1/src/tool_libinfo.c
new file mode 100644
index 0000000..d2bf7fb
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_libinfo.c
@@ -0,0 +1,102 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "strcase.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_libinfo.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/* global variable definitions, for libcurl run-time info */
+
+curl_version_info_data *curlinfo = NULL;
+long built_in_protos = 0;
+
+/*
+ * libcurl_info_init: retrieves run-time information about libcurl,
+ * setting a global pointer 'curlinfo' to libcurl's run-time info
+ * struct, and a global bit pattern 'built_in_protos' composed of
+ * CURLPROTO_* bits indicating which protocols are actually built
+ * into library being used.
+ */
+
+CURLcode get_libcurl_info(void)
+{
+  static struct proto_name_pattern {
+    const char *proto_name;
+    long        proto_pattern;
+  } const possibly_built_in[] = {
+    { "dict",   CURLPROTO_DICT   },
+    { "file",   CURLPROTO_FILE   },
+    { "ftp",    CURLPROTO_FTP    },
+    { "ftps",   CURLPROTO_FTPS   },
+    { "gopher", CURLPROTO_GOPHER },
+    { "http",   CURLPROTO_HTTP   },
+    { "https",  CURLPROTO_HTTPS  },
+    { "imap",   CURLPROTO_IMAP   },
+    { "imaps",  CURLPROTO_IMAPS  },
+    { "ldap",   CURLPROTO_LDAP   },
+    { "ldaps",  CURLPROTO_LDAPS  },
+    { "pop3",   CURLPROTO_POP3   },
+    { "pop3s",  CURLPROTO_POP3S  },
+    { "rtmp",   CURLPROTO_RTMP   },
+    { "rtsp",   CURLPROTO_RTSP   },
+    { "scp",    CURLPROTO_SCP    },
+    { "sftp",   CURLPROTO_SFTP   },
+    { "smb",    CURLPROTO_SMB    },
+    { "smbs",   CURLPROTO_SMBS   },
+    { "smtp",   CURLPROTO_SMTP   },
+    { "smtps",  CURLPROTO_SMTPS  },
+    { "telnet", CURLPROTO_TELNET },
+    { "tftp",   CURLPROTO_TFTP   },
+    {  NULL,    0                }
+  };
+
+  struct proto_name_pattern const *p;
+  const char *const *proto;
+
+  /* Pointer to libcurl's run-time version information */
+  curlinfo = curl_version_info(CURLVERSION_NOW);
+  if(!curlinfo)
+    return CURLE_FAILED_INIT;
+
+  /* Build CURLPROTO_* bit pattern with libcurl's built-in protocols */
+  built_in_protos = 0;
+  if(curlinfo->protocols) {
+    for(proto = curlinfo->protocols; *proto; proto++) {
+      for(p = possibly_built_in; p->proto_name; p++) {
+        if(curl_strequal(*proto, p->proto_name)) {
+          built_in_protos |= p->proto_pattern;
+          break;
+        }
+      }
+    }
+  }
+
+  return CURLE_OK;
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_libinfo.h b/ap/lib/libcurl/curl-7.54.1/src/tool_libinfo.h
new file mode 100644
index 0000000..298df80
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_libinfo.h
@@ -0,0 +1,34 @@
+#ifndef HEADER_CURL_TOOL_LIBINFO_H
+#define HEADER_CURL_TOOL_LIBINFO_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+/* global variable declarations, for libcurl run-time info */
+
+extern curl_version_info_data *curlinfo;
+extern long built_in_protos;
+
+CURLcode get_libcurl_info(void);
+
+#endif /* HEADER_CURL_TOOL_LIBINFO_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_main.c b/ap/lib/libcurl/curl-7.54.1/src/tool_main.c
new file mode 100644
index 0000000..7e742ff
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_main.c
@@ -0,0 +1,275 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include <sys/stat.h>
+
+#ifdef HAVE_SIGNAL_H
+#include <signal.h>
+#endif
+
+#ifdef USE_NSS
+#include <nspr.h>
+#include <plarenas.h>
+#endif
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_convert.h"
+#include "tool_msgs.h"
+#include "tool_operate.h"
+#include "tool_panykey.h"
+#include "tool_vms.h"
+#include "tool_main.h"
+#include "tool_libinfo.h"
+
+/*
+ * This is low-level hard-hacking memory leak tracking and similar. Using
+ * the library level code from this client-side is ugly, but we do this
+ * anyway for convenience.
+ */
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifdef __VMS
+/*
+ * vms_show is a global variable, used in main() as parameter for
+ * function vms_special_exit() to allow proper curl tool exiting.
+ * Its value may be set in other tool_*.c source files thanks to
+ * forward declaration present in tool_vms.h
+ */
+int vms_show = 0;
+#endif
+
+/* if we build a static library for unit tests, there is no main() function */
+#ifndef UNITTESTS
+
+/*
+ * Ensure that file descriptors 0, 1 and 2 (stdin, stdout, stderr) are
+ * open before starting to run.  Otherwise, the first three network
+ * sockets opened by curl could be used for input sources, downloaded data
+ * or error logs as they will effectively be stdin, stdout and/or stderr.
+ */
+static void main_checkfds(void)
+{
+#ifdef HAVE_PIPE
+  int fd[2] = { STDIN_FILENO, STDIN_FILENO };
+  while(fd[0] == STDIN_FILENO ||
+        fd[0] == STDOUT_FILENO ||
+        fd[0] == STDERR_FILENO ||
+        fd[1] == STDIN_FILENO ||
+        fd[1] == STDOUT_FILENO ||
+        fd[1] == STDERR_FILENO)
+    if(pipe(fd) < 0)
+      return;   /* Out of handles. This isn't really a big problem now, but
+                   will be when we try to create a socket later. */
+  close(fd[0]);
+  close(fd[1]);
+#endif
+}
+
+#ifdef CURLDEBUG
+static void memory_tracking_init(void)
+{
+  char *env;
+  /* if CURL_MEMDEBUG is set, this starts memory tracking message logging */
+  env = curlx_getenv("CURL_MEMDEBUG");
+  if(env) {
+    /* use the value as file name */
+    char fname[CURL_MT_LOGFNAME_BUFSIZE];
+    if(strlen(env) >= CURL_MT_LOGFNAME_BUFSIZE)
+      env[CURL_MT_LOGFNAME_BUFSIZE-1] = '\0';
+    strcpy(fname, env);
+    curl_free(env);
+    curl_memdebug(fname);
+    /* this weird stuff here is to make curl_free() get called
+       before curl_memdebug() as otherwise memory tracking will
+       log a free() without an alloc! */
+  }
+  /* if CURL_MEMLIMIT is set, this enables fail-on-alloc-number-N feature */
+  env = curlx_getenv("CURL_MEMLIMIT");
+  if(env) {
+    char *endptr;
+    long num = strtol(env, &endptr, 10);
+    if((endptr != env) && (endptr == env + strlen(env)) && (num > 0))
+      curl_memlimit(num);
+    curl_free(env);
+  }
+}
+#else
+#  define memory_tracking_init() Curl_nop_stmt
+#endif
+
+/*
+ * This is the main global constructor for the app. Call this before
+ * _any_ libcurl usage. If this fails, *NO* libcurl functions may be
+ * used, or havoc may be the result.
+ */
+static CURLcode main_init(struct GlobalConfig *config)
+{
+  CURLcode result = CURLE_OK;
+
+#if defined(__DJGPP__) || defined(__GO32__)
+  /* stop stat() wasting time */
+  _djstat_flags |= _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
+#endif
+
+  /* Initialise the global config */
+  config->showerror = -1;             /* Will show errors */
+  config->errors = stderr;            /* Default errors to stderr */
+
+  /* Allocate the initial operate config */
+  config->first = config->last = malloc(sizeof(struct OperationConfig));
+  if(config->first) {
+    /* Perform the libcurl initialization */
+    result = curl_global_init(CURL_GLOBAL_DEFAULT);
+    if(!result) {
+      /* Get information about libcurl */
+      result = get_libcurl_info();
+
+      if(!result) {
+        /* Get a curl handle to use for all forthcoming curl transfers */
+        config->easy = curl_easy_init();
+        if(config->easy) {
+          /* Initialise the config */
+          config_init(config->first);
+          config->first->easy = config->easy;
+          config->first->global = config;
+        }
+        else {
+          helpf(stderr, "error initializing curl easy handle\n");
+          result = CURLE_FAILED_INIT;
+          free(config->first);
+        }
+      }
+      else {
+        helpf(stderr, "error retrieving curl library information\n");
+        free(config->first);
+      }
+    }
+    else {
+      helpf(stderr, "error initializing curl library\n");
+      free(config->first);
+    }
+  }
+  else {
+    helpf(stderr, "error initializing curl\n");
+    result = CURLE_FAILED_INIT;
+  }
+
+  return result;
+}
+
+static void free_config_fields(struct GlobalConfig *config)
+{
+  Curl_safefree(config->trace_dump);
+
+  if(config->errors_fopened && config->errors)
+    fclose(config->errors);
+  config->errors = NULL;
+
+  if(config->trace_fopened && config->trace_stream)
+    fclose(config->trace_stream);
+  config->trace_stream = NULL;
+
+  Curl_safefree(config->libcurl);
+}
+
+/*
+ * This is the main global destructor for the app. Call this after
+ * _all_ libcurl usage is done.
+ */
+static void main_free(struct GlobalConfig *config)
+{
+  /* Cleanup the easy handle */
+  curl_easy_cleanup(config->easy);
+  config->easy = NULL;
+
+  /* Main cleanup */
+  curl_global_cleanup();
+  convert_cleanup();
+  metalink_cleanup();
+#ifdef USE_NSS
+  if(PR_Initialized()) {
+    /* prevent valgrind from reporting still reachable mem from NSRP arenas */
+    PL_ArenaFinish();
+    /* prevent valgrind from reporting possibly lost memory (fd cache, ...) */
+    PR_Cleanup();
+  }
+#endif
+  free_config_fields(config);
+
+  /* Free the config structures */
+  config_free(config->last);
+  config->first = NULL;
+  config->last = NULL;
+}
+
+/*
+** curl tool main function.
+*/
+int main(int argc, char *argv[])
+{
+  CURLcode result = CURLE_OK;
+  struct GlobalConfig global;
+  memset(&global, 0, sizeof(global));
+
+  main_checkfds();
+
+#if defined(HAVE_SIGNAL) && defined(SIGPIPE)
+  (void)signal(SIGPIPE, SIG_IGN);
+#endif
+
+  /* Initialize memory tracking */
+  memory_tracking_init();
+
+  /* Initialize the curl library - do not call any libcurl functions before
+     this point */
+  result = main_init(&global);
+  if(!result) {
+    /* Start our curl operation */
+    result = operate(&global, argc, argv);
+
+#ifdef __SYMBIAN32__
+    if(global.showerror)
+      tool_pressanykey();
+#endif
+
+    /* Perform the main cleanup */
+    main_free(&global);
+  }
+
+#ifdef __NOVELL_LIBC__
+  if(getenv("_IN_NETWARE_BASH_") == NULL)
+    tool_pressanykey();
+#endif
+
+#ifdef __VMS
+  vms_special_exit(result, vms_show);
+#else
+  return (int)result;
+#endif
+}
+
+#endif /* ndef UNITTESTS */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_main.h b/ap/lib/libcurl/curl-7.54.1/src/tool_main.h
new file mode 100644
index 0000000..c97c360
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_main.h
@@ -0,0 +1,44 @@
+#ifndef HEADER_CURL_TOOL_MAIN_H
+#define HEADER_CURL_TOOL_MAIN_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define DEFAULT_MAXREDIRS  50L
+
+#define RETRY_SLEEP_DEFAULT 1000L   /* ms */
+#define RETRY_SLEEP_MAX     600000L /* ms == 10 minutes */
+
+#ifndef STDIN_FILENO
+#  define STDIN_FILENO  fileno(stdin)
+#endif
+
+#ifndef STDOUT_FILENO
+#  define STDOUT_FILENO  fileno(stdout)
+#endif
+
+#ifndef STDERR_FILENO
+#  define STDERR_FILENO  fileno(stderr)
+#endif
+
+#endif /* HEADER_CURL_TOOL_MAIN_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_metalink.c b/ap/lib/libcurl/curl-7.54.1/src/tool_metalink.c
new file mode 100644
index 0000000..7646a7f
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_metalink.c
@@ -0,0 +1,976 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef USE_METALINK
+
+#include <sys/stat.h>
+#include <stdlib.h>
+
+#ifdef HAVE_FCNTL_H
+#  include <fcntl.h>
+#endif
+
+#ifdef USE_OPENSSL
+#  include <openssl/md5.h>
+#  include <openssl/sha.h>
+#elif defined(USE_GNUTLS_NETTLE)
+#  include <nettle/md5.h>
+#  include <nettle/sha.h>
+#  define MD5_CTX    struct md5_ctx
+#  define SHA_CTX    struct sha1_ctx
+#  define SHA256_CTX struct sha256_ctx
+#elif defined(USE_GNUTLS)
+#  include <gcrypt.h>
+#  define MD5_CTX    gcry_md_hd_t
+#  define SHA_CTX    gcry_md_hd_t
+#  define SHA256_CTX gcry_md_hd_t
+#elif defined(USE_NSS)
+#  include <nss.h>
+#  include <pk11pub.h>
+#  define MD5_CTX    void *
+#  define SHA_CTX    void *
+#  define SHA256_CTX void *
+   static NSSInitContext *nss_context;
+#elif defined(USE_POLARSSL)
+#  include <polarssl/md5.h>
+#  include <polarssl/sha1.h>
+#  include <polarssl/sha256.h>
+#  define MD5_CTX    md5_context
+#  define SHA_CTX    sha1_context
+#  define SHA256_CTX sha256_context
+#elif (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && \
+              (__MAC_OS_X_VERSION_MAX_ALLOWED >= 1040)) || \
+      (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && \
+              (__IPHONE_OS_VERSION_MAX_ALLOWED >= 20000))
+/* For Apple operating systems: CommonCrypto has the functions we need.
+   The library's headers are even backward-compatible with OpenSSL's
+   headers as long as we define COMMON_DIGEST_FOR_OPENSSL first.
+
+   These functions are available on Tiger and later, as well as iOS 2.0
+   and later. If you're building for an older cat, well, sorry. */
+#  define COMMON_DIGEST_FOR_OPENSSL
+#  include <CommonCrypto/CommonDigest.h>
+#elif defined(_WIN32)
+/* For Windows: If no other crypto library is provided, we fallback
+   to the hash functions provided within the Microsoft Windows CryptoAPI */
+#  include <wincrypt.h>
+/* Custom structure in order to store the required provider and hash handle */
+struct win32_crypto_hash {
+  HCRYPTPROV hCryptProv;
+  HCRYPTHASH hHash;
+};
+/* Custom Microsoft AES Cryptographic Provider defines required for MinGW */
+#  ifndef ALG_SID_SHA_256
+#    define ALG_SID_SHA_256  12
+#  endif
+#  ifndef CALG_SHA_256
+#    define CALG_SHA_256 (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SHA_256)
+#  endif
+#  define MD5_CTX    struct win32_crypto_hash
+#  define SHA_CTX    struct win32_crypto_hash
+#  define SHA256_CTX struct win32_crypto_hash
+#else
+#  error "Can't compile METALINK support without a crypto library."
+#endif
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_getparam.h"
+#include "tool_paramhlp.h"
+#include "tool_cfgable.h"
+#include "tool_metalink.h"
+#include "tool_msgs.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/* Copied from tool_getparam.c */
+#define GetStr(str,val) do { \
+  if(*(str)) { \
+    free(*(str)); \
+    *(str) = NULL; \
+  } \
+  if((val)) \
+    *(str) = strdup((val)); \
+  if(!(val)) \
+    return PARAM_NO_MEM; \
+} WHILE_FALSE
+
+#ifdef USE_GNUTLS_NETTLE
+
+static int MD5_Init(MD5_CTX *ctx)
+{
+  md5_init(ctx);
+  return 1;
+}
+
+static void MD5_Update(MD5_CTX *ctx,
+                       const unsigned char *input,
+                       unsigned int inputLen)
+{
+  md5_update(ctx, inputLen, input);
+}
+
+static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx)
+{
+  md5_digest(ctx, 16, digest);
+}
+
+static int SHA1_Init(SHA_CTX *ctx)
+{
+  sha1_init(ctx);
+  return 1;
+}
+
+static void SHA1_Update(SHA_CTX *ctx,
+                        const unsigned char *input,
+                        unsigned int inputLen)
+{
+  sha1_update(ctx, inputLen, input);
+}
+
+static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx)
+{
+  sha1_digest(ctx, 20, digest);
+}
+
+static int SHA256_Init(SHA256_CTX *ctx)
+{
+  sha256_init(ctx);
+  return 1;
+}
+
+static void SHA256_Update(SHA256_CTX *ctx,
+                          const unsigned char *input,
+                          unsigned int inputLen)
+{
+  sha256_update(ctx, inputLen, input);
+}
+
+static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx)
+{
+  sha256_digest(ctx, 32, digest);
+}
+
+#elif defined(USE_GNUTLS)
+
+static int MD5_Init(MD5_CTX *ctx)
+{
+  gcry_md_open(ctx, GCRY_MD_MD5, 0);
+  return 1;
+}
+
+static void MD5_Update(MD5_CTX *ctx,
+                       const unsigned char *input,
+                       unsigned int inputLen)
+{
+  gcry_md_write(*ctx, input, inputLen);
+}
+
+static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx)
+{
+  memcpy(digest, gcry_md_read(*ctx, 0), 16);
+  gcry_md_close(*ctx);
+}
+
+static int SHA1_Init(SHA_CTX *ctx)
+{
+  gcry_md_open(ctx, GCRY_MD_SHA1, 0);
+  return 1;
+}
+
+static void SHA1_Update(SHA_CTX *ctx,
+                        const unsigned char *input,
+                        unsigned int inputLen)
+{
+  gcry_md_write(*ctx, input, inputLen);
+}
+
+static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx)
+{
+  memcpy(digest, gcry_md_read(*ctx, 0), 20);
+  gcry_md_close(*ctx);
+}
+
+static int SHA256_Init(SHA256_CTX *ctx)
+{
+  gcry_md_open(ctx, GCRY_MD_SHA256, 0);
+  return 1;
+}
+
+static void SHA256_Update(SHA256_CTX *ctx,
+                          const unsigned char *input,
+                          unsigned int inputLen)
+{
+  gcry_md_write(*ctx, input, inputLen);
+}
+
+static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx)
+{
+  memcpy(digest, gcry_md_read(*ctx, 0), 32);
+  gcry_md_close(*ctx);
+}
+
+#elif defined(USE_NSS)
+
+static int nss_hash_init(void **pctx, SECOidTag hash_alg)
+{
+  PK11Context *ctx;
+
+  /* we have to initialize NSS if not initialized alraedy */
+  if(!NSS_IsInitialized() && !nss_context) {
+    static NSSInitParameters params;
+    params.length = sizeof params;
+    nss_context = NSS_InitContext("", "", "", "", &params, NSS_INIT_READONLY
+        | NSS_INIT_NOCERTDB   | NSS_INIT_NOMODDB       | NSS_INIT_FORCEOPEN
+        | NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE | NSS_INIT_PK11RELOAD);
+  }
+
+  ctx = PK11_CreateDigestContext(hash_alg);
+  if(!ctx)
+    return /* failure */ 0;
+
+  if(PK11_DigestBegin(ctx) != SECSuccess) {
+    PK11_DestroyContext(ctx, PR_TRUE);
+    return /* failure */ 0;
+  }
+
+  *pctx = ctx;
+  return /* success */ 1;
+}
+
+static void nss_hash_final(void **pctx, unsigned char *out, unsigned int len)
+{
+  PK11Context *ctx = *pctx;
+  unsigned int outlen;
+  PK11_DigestFinal(ctx, out, &outlen, len);
+  PK11_DestroyContext(ctx, PR_TRUE);
+}
+
+static int MD5_Init(MD5_CTX *pctx)
+{
+  return nss_hash_init(pctx, SEC_OID_MD5);
+}
+
+static void MD5_Update(MD5_CTX *pctx,
+                       const unsigned char *input,
+                       unsigned int input_len)
+{
+  PK11_DigestOp(*pctx, input, input_len);
+}
+
+static void MD5_Final(unsigned char digest[16], MD5_CTX *pctx)
+{
+  nss_hash_final(pctx, digest, 16);
+}
+
+static int SHA1_Init(SHA_CTX *pctx)
+{
+  return nss_hash_init(pctx, SEC_OID_SHA1);
+}
+
+static void SHA1_Update(SHA_CTX *pctx,
+                        const unsigned char *input,
+                        unsigned int input_len)
+{
+  PK11_DigestOp(*pctx, input, input_len);
+}
+
+static void SHA1_Final(unsigned char digest[20], SHA_CTX *pctx)
+{
+  nss_hash_final(pctx, digest, 20);
+}
+
+static int SHA256_Init(SHA256_CTX *pctx)
+{
+  return nss_hash_init(pctx, SEC_OID_SHA256);
+}
+
+static void SHA256_Update(SHA256_CTX *pctx,
+                          const unsigned char *input,
+                          unsigned int input_len)
+{
+  PK11_DigestOp(*pctx, input, input_len);
+}
+
+static void SHA256_Final(unsigned char digest[32], SHA256_CTX *pctx)
+{
+  nss_hash_final(pctx, digest, 32);
+}
+
+#elif defined(USE_POLARSSL)
+
+static int MD5_Init(MD5_CTX *ctx)
+{
+  md5_starts(ctx);
+  return 1;
+}
+
+static void MD5_Update(MD5_CTX *ctx,
+                       const unsigned char *input,
+                       unsigned int inputLen)
+{
+  md5_update(ctx, input, inputLen);
+}
+
+static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx)
+{
+  md5_finish(ctx, digest);
+}
+
+static int SHA1_Init(SHA_CTX *ctx)
+{
+  sha1_starts(ctx);
+  return 1;
+}
+
+static void SHA1_Update(SHA_CTX *ctx,
+                        const unsigned char *input,
+                        unsigned int inputLen)
+{
+  sha1_update(ctx, input, inputLen);
+}
+
+static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx)
+{
+  sha1_finish(ctx, digest);
+}
+
+static int SHA256_Init(SHA256_CTX *ctx)
+{
+  sha256_starts(ctx, 0); /* 0 = sha256 */
+  return 1;
+}
+
+static void SHA256_Update(SHA256_CTX *ctx,
+                          const unsigned char *input,
+                          unsigned int inputLen)
+{
+  sha256_update(ctx, input, inputLen);
+}
+
+static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx)
+{
+  sha256_finish(ctx, digest);
+}
+
+#elif defined(_WIN32) && !defined(USE_OPENSSL)
+
+static void win32_crypto_final(struct win32_crypto_hash *ctx,
+                               unsigned char *digest,
+                               unsigned int digestLen)
+{
+  unsigned long length;
+  CryptGetHashParam(ctx->hHash, HP_HASHVAL, NULL, &length, 0);
+  if(length == digestLen)
+    CryptGetHashParam(ctx->hHash, HP_HASHVAL, digest, &length, 0);
+  if(ctx->hHash)
+    CryptDestroyHash(ctx->hHash);
+  if(ctx->hCryptProv)
+    CryptReleaseContext(ctx->hCryptProv, 0);
+}
+
+static int MD5_Init(MD5_CTX *ctx)
+{
+  if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL,
+                         PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) {
+    CryptCreateHash(ctx->hCryptProv, CALG_MD5, 0, 0, &ctx->hHash);
+  }
+  return 1;
+}
+
+static void MD5_Update(MD5_CTX *ctx,
+                       const unsigned char *input,
+                       unsigned int inputLen)
+{
+  CryptHashData(ctx->hHash, (unsigned char *)input, inputLen, 0);
+}
+
+static void MD5_Final(unsigned char digest[16], MD5_CTX *ctx)
+{
+  win32_crypto_final(ctx, digest, 16);
+}
+
+static int SHA1_Init(SHA_CTX *ctx)
+{
+  if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL,
+                         PROV_RSA_FULL, CRYPT_VERIFYCONTEXT)) {
+    CryptCreateHash(ctx->hCryptProv, CALG_SHA1, 0, 0, &ctx->hHash);
+  }
+  return 1;
+}
+
+static void SHA1_Update(SHA_CTX *ctx,
+                        const unsigned char *input,
+                        unsigned int inputLen)
+{
+  CryptHashData(ctx->hHash, (unsigned char *)input, inputLen, 0);
+}
+
+static void SHA1_Final(unsigned char digest[20], SHA_CTX *ctx)
+{
+  win32_crypto_final(ctx, digest, 20);
+}
+
+static int SHA256_Init(SHA256_CTX *ctx)
+{
+  if(CryptAcquireContext(&ctx->hCryptProv, NULL, NULL,
+                         PROV_RSA_AES, CRYPT_VERIFYCONTEXT)) {
+    CryptCreateHash(ctx->hCryptProv, CALG_SHA_256, 0, 0, &ctx->hHash);
+  }
+  return 1;
+}
+
+static void SHA256_Update(SHA256_CTX *ctx,
+                          const unsigned char *input,
+                          unsigned int inputLen)
+{
+  CryptHashData(ctx->hHash, (unsigned char *)input, inputLen, 0);
+}
+
+static void SHA256_Final(unsigned char digest[32], SHA256_CTX *ctx)
+{
+  win32_crypto_final(ctx, digest, 32);
+}
+
+#endif /* CRYPTO LIBS */
+
+const digest_params MD5_DIGEST_PARAMS[] = {
+  {
+    (Curl_digest_init_func) MD5_Init,
+    (Curl_digest_update_func) MD5_Update,
+    (Curl_digest_final_func) MD5_Final,
+    sizeof(MD5_CTX),
+    16
+  }
+};
+
+const digest_params SHA1_DIGEST_PARAMS[] = {
+  {
+    (Curl_digest_init_func) SHA1_Init,
+    (Curl_digest_update_func) SHA1_Update,
+    (Curl_digest_final_func) SHA1_Final,
+    sizeof(SHA_CTX),
+    20
+  }
+};
+
+const digest_params SHA256_DIGEST_PARAMS[] = {
+  {
+    (Curl_digest_init_func) SHA256_Init,
+    (Curl_digest_update_func) SHA256_Update,
+    (Curl_digest_final_func) SHA256_Final,
+    sizeof(SHA256_CTX),
+    32
+  }
+};
+
+static const metalink_digest_def SHA256_DIGEST_DEF[] = {
+  {"sha-256", SHA256_DIGEST_PARAMS}
+};
+
+static const metalink_digest_def SHA1_DIGEST_DEF[] = {
+  {"sha-1", SHA1_DIGEST_PARAMS}
+};
+
+static const metalink_digest_def MD5_DIGEST_DEF[] = {
+  {"md5", MD5_DIGEST_PARAMS}
+};
+
+/*
+ * The alias of supported hash functions in the order by preference
+ * (basically stronger hash comes first). We included "sha-256" and
+ * "sha256". The former is the name defined in the IANA registry named
+ * "Hash Function Textual Names". The latter is widely (and
+ * historically) used in Metalink version 3.
+ */
+static const metalink_digest_alias digest_aliases[] = {
+  {"sha-256", SHA256_DIGEST_DEF},
+  {"sha256", SHA256_DIGEST_DEF},
+  {"sha-1", SHA1_DIGEST_DEF},
+  {"sha1", SHA1_DIGEST_DEF},
+  {"md5", MD5_DIGEST_DEF},
+  {NULL, NULL}
+};
+
+digest_context *Curl_digest_init(const digest_params *dparams)
+{
+  digest_context *ctxt;
+
+  /* Create digest context */
+  ctxt = malloc(sizeof *ctxt);
+
+  if(!ctxt)
+    return ctxt;
+
+  ctxt->digest_hashctx = malloc(dparams->digest_ctxtsize);
+
+  if(!ctxt->digest_hashctx) {
+    free(ctxt);
+    return NULL;
+  }
+
+  ctxt->digest_hash = dparams;
+
+  if(dparams->digest_init(ctxt->digest_hashctx) != 1) {
+    free(ctxt);
+    return NULL;
+  }
+
+  return ctxt;
+}
+
+int Curl_digest_update(digest_context *context,
+                       const unsigned char *data,
+                       unsigned int len)
+{
+  (*context->digest_hash->digest_update)(context->digest_hashctx, data, len);
+
+  return 0;
+}
+
+int Curl_digest_final(digest_context *context, unsigned char *result)
+{
+  (*context->digest_hash->digest_final)(result, context->digest_hashctx);
+
+  free(context->digest_hashctx);
+  free(context);
+
+  return 0;
+}
+
+static unsigned char hex_to_uint(const char *s)
+{
+  char buf[3];
+  unsigned long val;
+  buf[0] = s[0];
+  buf[1] = s[1];
+  buf[2] = 0;
+  val = strtoul(buf, NULL, 16);
+  return (unsigned char)(val&0xff);
+}
+
+/*
+ * Check checksum of file denoted by filename. The expected hash value
+ * is given in hex_hash which is hex-encoded string.
+ *
+ * This function returns 1 if it succeeds or one of the following
+ * integers:
+ *
+ * 0:
+ *   Checksum didn't match.
+ * -1:
+ *   Could not open file; or could not read data from file.
+ * -2:
+ *   Hash algorithm not available.
+ */
+static int check_hash(const char *filename,
+                      const metalink_digest_def *digest_def,
+                      const unsigned char *digest, FILE *error)
+{
+  unsigned char *result;
+  digest_context *dctx;
+  int check_ok, flags, fd;
+
+  flags = O_RDONLY;
+#ifdef O_BINARY
+  /* O_BINARY is required in order to avoid binary EOF in text mode */
+  flags |= O_BINARY;
+#endif
+
+  fd = open(filename, flags);
+  if(fd == -1) {
+    fprintf(error, "Metalink: validating (%s) [%s] FAILED (%s)\n", filename,
+            digest_def->hash_name, strerror(errno));
+    return -1;
+  }
+
+  dctx = Curl_digest_init(digest_def->dparams);
+  if(!dctx) {
+    fprintf(error, "Metalink: validating (%s) [%s] FAILED (%s)\n", filename,
+            digest_def->hash_name, "failed to initialize hash algorithm");
+    close(fd);
+    return -2;
+  }
+
+  result = malloc(digest_def->dparams->digest_resultlen);
+  if(!result) {
+    close(fd);
+    return -1;
+  }
+  while(1) {
+    unsigned char buf[4096];
+    ssize_t len = read(fd, buf, sizeof(buf));
+    if(len == 0) {
+      break;
+    }
+    else if(len == -1) {
+      fprintf(error, "Metalink: validating (%s) [%s] FAILED (%s)\n", filename,
+              digest_def->hash_name, strerror(errno));
+      Curl_digest_final(dctx, result);
+      close(fd);
+      return -1;
+    }
+    Curl_digest_update(dctx, buf, (unsigned int)len);
+  }
+  Curl_digest_final(dctx, result);
+  check_ok = memcmp(result, digest,
+                    digest_def->dparams->digest_resultlen) == 0;
+  /* sha*sum style verdict output */
+  if(check_ok)
+    fprintf(error, "Metalink: validating (%s) [%s] OK\n", filename,
+            digest_def->hash_name);
+  else
+    fprintf(error, "Metalink: validating (%s) [%s] FAILED (digest mismatch)\n",
+            filename, digest_def->hash_name);
+
+  free(result);
+  close(fd);
+  return check_ok;
+}
+
+int metalink_check_hash(struct GlobalConfig *config,
+                        metalinkfile *mlfile,
+                        const char *filename)
+{
+  int rv;
+  fprintf(config->errors, "Metalink: validating (%s)...\n", filename);
+  if(mlfile->checksum == NULL) {
+    fprintf(config->errors,
+            "Metalink: validating (%s) FAILED (digest missing)\n", filename);
+    return -2;
+  }
+  rv = check_hash(filename, mlfile->checksum->digest_def,
+                  mlfile->checksum->digest, config->errors);
+  return rv;
+}
+
+static metalink_checksum *new_metalink_checksum_from_hex_digest
+(const metalink_digest_def *digest_def, const char *hex_digest)
+{
+  metalink_checksum *chksum;
+  unsigned char *digest;
+  size_t i;
+  size_t len = strlen(hex_digest);
+  digest = malloc(len/2);
+  if(!digest)
+    return 0;
+
+  for(i = 0; i < len; i += 2) {
+    digest[i/2] = hex_to_uint(hex_digest+i);
+  }
+  chksum = malloc(sizeof(metalink_checksum));
+  if(chksum) {
+    chksum->digest_def = digest_def;
+    chksum->digest = digest;
+  }
+  return chksum;
+}
+
+static metalink_resource *new_metalink_resource(const char *url)
+{
+  metalink_resource *res;
+  res = malloc(sizeof(metalink_resource));
+  if(res) {
+    res->next = NULL;
+    res->url = strdup(url);
+    if(!res->url) {
+      free(res);
+      return NULL;
+    }
+  }
+  return res;
+}
+
+/* Returns nonzero if hex_digest is properly formatted; that is each
+   letter is in [0-9A-Za-z] and the length of the string equals to the
+   result length of digest * 2. */
+static int check_hex_digest(const char *hex_digest,
+                            const metalink_digest_def *digest_def)
+{
+  size_t i;
+  for(i = 0; hex_digest[i]; ++i) {
+    char c = hex_digest[i];
+    if(!(('0' <= c && c <= '9') || ('a' <= c && c <= 'z') ||
+         ('A' <= c && c <= 'Z'))) {
+      return 0;
+    }
+  }
+  return digest_def->dparams->digest_resultlen * 2 == i;
+}
+
+static metalinkfile *new_metalinkfile(metalink_file_t *fileinfo)
+{
+  metalinkfile *f;
+  f = (metalinkfile*)malloc(sizeof(metalinkfile));
+  if(!f)
+    return NULL;
+
+  f->next = NULL;
+  f->filename = strdup(fileinfo->name);
+  if(!f->filename) {
+    free(f);
+    return NULL;
+  }
+  f->checksum = NULL;
+  f->resource = NULL;
+  if(fileinfo->checksums) {
+    const metalink_digest_alias *digest_alias;
+    for(digest_alias = digest_aliases; digest_alias->alias_name;
+        ++digest_alias) {
+      metalink_checksum_t **p;
+      for(p = fileinfo->checksums; *p; ++p) {
+        if(curl_strequal(digest_alias->alias_name, (*p)->type) &&
+           check_hex_digest((*p)->hash, digest_alias->digest_def)) {
+          f->checksum =
+            new_metalink_checksum_from_hex_digest(digest_alias->digest_def,
+                                                  (*p)->hash);
+          break;
+        }
+      }
+      if(f->checksum) {
+        break;
+      }
+    }
+  }
+  if(fileinfo->resources) {
+    metalink_resource_t **p;
+    metalink_resource root, *tail;
+    root.next = NULL;
+    tail = &root;
+    for(p = fileinfo->resources; *p; ++p) {
+      metalink_resource *res;
+      /* Filter by type if it is non-NULL. In Metalink v3, type
+         includes the type of the resource. In curl, we are only
+         interested in HTTP, HTTPS and FTP. In addition to them,
+         Metalink v3 file may contain bittorrent type URL, which
+         points to the BitTorrent metainfo file. We ignore it here.
+         In Metalink v4, type was deprecated and all
+         fileinfo->resources point to the target file. BitTorrent
+         metainfo file URL may be appeared in fileinfo->metaurls.
+      */
+      if((*p)->type == NULL ||
+         curl_strequal((*p)->type, "http") ||
+         curl_strequal((*p)->type, "https") ||
+         curl_strequal((*p)->type, "ftp") ||
+         curl_strequal((*p)->type, "ftps")) {
+        res = new_metalink_resource((*p)->url);
+        tail->next = res;
+        tail = res;
+      }
+    }
+    f->resource = root.next;
+  }
+  return f;
+}
+
+int parse_metalink(struct OperationConfig *config, struct OutStruct *outs,
+                   const char *metalink_url)
+{
+  metalink_error_t r;
+  metalink_t* metalink;
+  metalink_file_t **files;
+  bool warnings = FALSE;
+
+  /* metlaink_parse_final deletes outs->metalink_parser */
+  r = metalink_parse_final(outs->metalink_parser, NULL, 0, &metalink);
+  outs->metalink_parser = NULL;
+  if(r != 0) {
+    return -1;
+  }
+  if(metalink->files == NULL) {
+    fprintf(config->global->errors, "Metalink: parsing (%s) WARNING "
+            "(missing or invalid file name)\n",
+            metalink_url);
+    metalink_delete(metalink);
+    return -1;
+  }
+  for(files = metalink->files; *files; ++files) {
+    struct getout *url;
+    /* Skip an entry which has no resource. */
+    if(!(*files)->resources) {
+      fprintf(config->global->errors, "Metalink: parsing (%s) WARNING "
+              "(missing or invalid resource)\n",
+              metalink_url);
+      continue;
+    }
+    if(config->url_get ||
+       ((config->url_get = config->url_list) != NULL)) {
+      /* there's a node here, if it already is filled-in continue to
+         find an "empty" node */
+      while(config->url_get && (config->url_get->flags & GETOUT_URL))
+        config->url_get = config->url_get->next;
+    }
+
+    /* now there might or might not be an available node to fill in! */
+
+    if(config->url_get)
+      /* existing node */
+      url = config->url_get;
+    else
+      /* there was no free node, create one! */
+      url = new_getout(config);
+
+    if(url) {
+      metalinkfile *mlfile = new_metalinkfile(*files);
+      if(!mlfile)
+        break;
+
+      if(!mlfile->checksum) {
+        warnings = TRUE;
+        fprintf(config->global->errors,
+                "Metalink: parsing (%s) WARNING (digest missing)\n",
+                metalink_url);
+      }
+      /* Set name as url */
+      GetStr(&url->url, mlfile->filename);
+
+      /* set flag metalink here */
+      url->flags |= GETOUT_URL | GETOUT_METALINK;
+
+      if(config->metalinkfile_list) {
+        config->metalinkfile_last->next = mlfile;
+        config->metalinkfile_last = mlfile;
+      }
+      else {
+        config->metalinkfile_list = config->metalinkfile_last = mlfile;
+      }
+    }
+  }
+  metalink_delete(metalink);
+  return (warnings) ? -2 : 0;
+}
+
+size_t metalink_write_cb(void *buffer, size_t sz, size_t nmemb,
+                         void *userdata)
+{
+  struct OutStruct *outs = userdata;
+  struct OperationConfig *config = outs->config;
+  int rv;
+
+  /*
+   * Once that libcurl has called back tool_write_cb() the returned value
+   * is checked against the amount that was intended to be written, if
+   * it does not match then it fails with CURLE_WRITE_ERROR. So at this
+   * point returning a value different from sz*nmemb indicates failure.
+   */
+  const size_t failure = (sz * nmemb) ? 0 : 1;
+
+  if(!config)
+    return failure;
+
+  rv = metalink_parse_update(outs->metalink_parser, buffer, sz *nmemb);
+  if(rv == 0)
+    return sz * nmemb;
+  else {
+    fprintf(config->global->errors, "Metalink: parsing FAILED\n");
+    return failure;
+  }
+}
+
+/*
+ * Returns nonzero if content_type includes mediatype.
+ */
+static int check_content_type(const char *content_type, const char *media_type)
+{
+  const char *ptr = content_type;
+  size_t media_type_len = strlen(media_type);
+  for(; *ptr && (*ptr == ' ' || *ptr == '\t'); ++ptr);
+  if(!*ptr) {
+    return 0;
+  }
+  return curl_strnequal(ptr, media_type, media_type_len) &&
+    (*(ptr+media_type_len) == '\0' || *(ptr+media_type_len) == ' ' ||
+     *(ptr+media_type_len) == '\t' || *(ptr+media_type_len) == ';');
+}
+
+int check_metalink_content_type(const char *content_type)
+{
+  return check_content_type(content_type, "application/metalink+xml");
+}
+
+int count_next_metalink_resource(metalinkfile *mlfile)
+{
+  int count = 0;
+  metalink_resource *res;
+  for(res = mlfile->resource; res; res = res->next, ++count);
+  return count;
+}
+
+static void delete_metalink_checksum(metalink_checksum *chksum)
+{
+  if(chksum == NULL) {
+    return;
+  }
+  Curl_safefree(chksum->digest);
+  Curl_safefree(chksum);
+}
+
+static void delete_metalink_resource(metalink_resource *res)
+{
+  if(res == NULL) {
+    return;
+  }
+  Curl_safefree(res->url);
+  Curl_safefree(res);
+}
+
+static void delete_metalinkfile(metalinkfile *mlfile)
+{
+  metalink_resource *res;
+  if(mlfile == NULL) {
+    return;
+  }
+  Curl_safefree(mlfile->filename);
+  delete_metalink_checksum(mlfile->checksum);
+  for(res = mlfile->resource; res;) {
+    metalink_resource *next;
+    next = res->next;
+    delete_metalink_resource(res);
+    res = next;
+  }
+  Curl_safefree(mlfile);
+}
+
+void clean_metalink(struct OperationConfig *config)
+{
+  while(config->metalinkfile_list) {
+    metalinkfile *mlfile = config->metalinkfile_list;
+    config->metalinkfile_list = config->metalinkfile_list->next;
+    delete_metalinkfile(mlfile);
+  }
+  config->metalinkfile_last = 0;
+}
+
+void metalink_cleanup(void)
+{
+#ifdef USE_NSS
+  if(nss_context) {
+    NSS_ShutdownContext(nss_context);
+    nss_context = NULL;
+  }
+#endif
+}
+
+#endif /* USE_METALINK */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_metalink.h b/ap/lib/libcurl/curl-7.54.1/src/tool_metalink.h
new file mode 100644
index 0000000..7ee2736
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_metalink.h
@@ -0,0 +1,167 @@
+#ifndef HEADER_CURL_TOOL_METALINK_H
+#define HEADER_CURL_TOOL_METALINK_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+struct GlobalConfig;
+struct OperationConfig;
+
+/* returns 1 for success, 0 otherwise (we use OpenSSL *_Init fncs directly) */
+typedef int (* Curl_digest_init_func)(void *context);
+
+typedef void (* Curl_digest_update_func)(void *context,
+                                         const unsigned char *data,
+                                         unsigned int len);
+typedef void (* Curl_digest_final_func)(unsigned char *result, void *context);
+
+typedef struct {
+  Curl_digest_init_func     digest_init;   /* Initialize context procedure */
+  Curl_digest_update_func   digest_update; /* Update context with data */
+  Curl_digest_final_func    digest_final;  /* Get final result procedure */
+  unsigned int           digest_ctxtsize;  /* Context structure size */
+  unsigned int           digest_resultlen; /* Result length (bytes) */
+} digest_params;
+
+typedef struct {
+  const digest_params   *digest_hash;      /* Hash function definition */
+  void                  *digest_hashctx;   /* Hash function context */
+} digest_context;
+
+digest_context * Curl_digest_init(const digest_params *dparams);
+int Curl_digest_update(digest_context *context,
+                       const unsigned char *data,
+                       unsigned int len);
+int Curl_digest_final(digest_context *context, unsigned char *result);
+
+typedef struct {
+  const char *hash_name;
+  const digest_params *dparams;
+} metalink_digest_def;
+
+typedef struct {
+  const char *alias_name;
+  const metalink_digest_def *digest_def;
+} metalink_digest_alias;
+
+typedef struct metalink_checksum {
+  const metalink_digest_def *digest_def;
+  /* raw digest value, not ascii hex digest */
+  unsigned char *digest;
+} metalink_checksum;
+
+typedef struct metalink_resource {
+  struct metalink_resource *next;
+  char *url;
+} metalink_resource;
+
+typedef struct metalinkfile {
+  struct metalinkfile *next;
+  char *filename;
+  metalink_checksum *checksum;
+  metalink_resource *resource;
+} metalinkfile;
+
+#ifdef USE_METALINK
+
+/*
+ * curl requires libmetalink 0.1.0 or newer
+ */
+#define CURL_REQ_LIBMETALINK_MAJOR  0
+#define CURL_REQ_LIBMETALINK_MINOR  1
+#define CURL_REQ_LIBMETALINK_PATCH  0
+
+#define CURL_REQ_LIBMETALINK_VERS  ((CURL_REQ_LIBMETALINK_MAJOR * 10000) + \
+                                    (CURL_REQ_LIBMETALINK_MINOR * 100) + \
+                                     CURL_REQ_LIBMETALINK_PATCH)
+
+extern const digest_params MD5_DIGEST_PARAMS[1];
+extern const digest_params SHA1_DIGEST_PARAMS[1];
+extern const digest_params SHA256_DIGEST_PARAMS[1];
+
+#include <metalink/metalink.h>
+
+/*
+ * Counts the resource in the metalinkfile.
+ */
+int count_next_metalink_resource(metalinkfile *mlfile);
+void clean_metalink(struct OperationConfig *config);
+
+/*
+ * Performs final parse operation and extracts information from
+ * Metalink and creates metalinkfile structs.
+ *
+ * This function returns 0 if it succeeds without warnings, or one of
+ * the following negative error codes:
+ *
+ * -1: Parsing failed; or no file is found
+ * -2: Parsing succeeded with some warnings.
+ */
+int parse_metalink(struct OperationConfig *config, struct OutStruct *outs,
+                   const char *metalink_url);
+
+/*
+ * Callback function for CURLOPT_WRITEFUNCTION
+ */
+size_t metalink_write_cb(void *buffer, size_t sz, size_t nmemb,
+                         void *userdata);
+
+/*
+ * Returns nonzero if content_type includes "application/metalink+xml"
+ * media-type. The check is done in case-insensitive manner.
+ */
+int check_metalink_content_type(const char *content_type);
+
+/*
+ * Check checksum of file denoted by filename.
+ *
+ * This function returns 1 if the checksum matches or one of the
+ * following integers:
+ *
+ * 0:
+ *   Checksum didn't match.
+ * -1:
+ *   Could not open file; or could not read data from file.
+ * -2:
+ *   No checksum in Metalink supported, hash algorithm not available, or
+ *   Metalink does not contain checksum.
+ */
+int metalink_check_hash(struct GlobalConfig *config,
+                        metalinkfile *mlfile,
+                        const char *filename);
+
+/*
+ * Release resources allocated at global scope.
+ */
+void metalink_cleanup(void);
+
+#else /* USE_METALINK */
+
+#define count_next_metalink_resource(x)  0
+#define clean_metalink(x)  (void)x
+
+/* metalink_cleanup() takes no arguments */
+#define metalink_cleanup() Curl_nop_stmt
+
+#endif /* USE_METALINK */
+
+#endif /* HEADER_CURL_TOOL_METALINK_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_mfiles.c b/ap/lib/libcurl/curl-7.54.1/src/tool_mfiles.c
new file mode 100644
index 0000000..d862d41
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_mfiles.c
@@ -0,0 +1,127 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "tool_mfiles.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+static void AppendNode(struct multi_files **first,
+                       struct multi_files **last,
+                       struct multi_files  *new)
+{
+  DEBUGASSERT(((*first) && (*last)) || ((!*first) && (!*last)));
+
+  if(*last)
+    (*last)->next = new;
+  else
+    *first = new;
+  *last = new;
+}
+
+/*
+ * AddMultiFiles: Add a new list node possibly followed with a type_name.
+ *
+ * multi_first argument is the address of a pointer to the first element
+ * of the multi_files linked list. A NULL pointer indicates empty list.
+ *
+ * multi_last argument is the address of a pointer to the last element
+ * of the multi_files linked list. A NULL pointer indicates empty list.
+ *
+ * Pointers stored in multi_first and multi_last are modified while
+ * function is executed. An out of memory condition free's the whole
+ * list and returns with pointers stored in multi_first and multi_last
+ * set to NULL and a NULL function result.
+ *
+ * Function returns same pointer as stored at multi_last.
+ */
+
+struct multi_files *AddMultiFiles(const char *file_name,
+                                  const char *type_name,
+                                  const char *show_filename,
+                                  struct multi_files **multi_first,
+                                  struct multi_files **multi_last)
+{
+  struct multi_files *multi;
+  struct multi_files *multi_type;
+  struct multi_files *multi_name;
+
+  multi = calloc(1, sizeof(struct multi_files));
+  if(multi) {
+    multi->form.option = CURLFORM_FILE;
+    multi->form.value = file_name;
+    AppendNode(multi_first, multi_last, multi);
+  }
+  else {
+    FreeMultiInfo(multi_first, multi_last);
+    return NULL;
+  }
+
+  if(type_name) {
+    multi_type = calloc(1, sizeof(struct multi_files));
+    if(multi_type) {
+      multi_type->form.option = CURLFORM_CONTENTTYPE;
+      multi_type->form.value = type_name;
+      AppendNode(multi_first, multi_last, multi_type);
+    }
+    else {
+      FreeMultiInfo(multi_first, multi_last);
+      return NULL;
+    }
+  }
+
+  if(show_filename) {
+    multi_name = calloc(1, sizeof(struct multi_files));
+    if(multi_name) {
+      multi_name->form.option = CURLFORM_FILENAME;
+      multi_name->form.value = show_filename;
+      AppendNode(multi_first, multi_last, multi_name);
+    }
+    else {
+      FreeMultiInfo(multi_first, multi_last);
+      return NULL;
+    }
+  }
+
+  return *multi_last;
+}
+
+/*
+ * FreeMultiInfo: Free the items of the list.
+ */
+
+void FreeMultiInfo(struct multi_files **multi_first,
+                   struct multi_files **multi_last)
+{
+  struct multi_files *next;
+  struct multi_files *item = *multi_first;
+
+  while(item) {
+    next = item->next;
+    Curl_safefree(item);
+    item = next;
+  }
+  *multi_first = NULL;
+  if(multi_last)
+    *multi_last = NULL;
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_mfiles.h b/ap/lib/libcurl/curl-7.54.1/src/tool_mfiles.h
new file mode 100644
index 0000000..827f400
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_mfiles.h
@@ -0,0 +1,46 @@
+#ifndef HEADER_CURL_TOOL_MFILES_H
+#define HEADER_CURL_TOOL_MFILES_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+/*
+ * Structure for storing the information needed to build
+ * a multiple files section.
+ */
+
+struct multi_files {
+  struct curl_forms   form;
+  struct multi_files *next;
+};
+
+struct multi_files *AddMultiFiles(const char *file_name,
+                                  const char *type_name,
+                                  const char *show_filename,
+                                  struct multi_files **multi_first,
+                                  struct multi_files **multi_last);
+
+void FreeMultiInfo(struct multi_files **multi_first,
+                   struct multi_files **multi_last);
+
+#endif /* HEADER_CURL_TOOL_MFILES_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_msgs.c b/ap/lib/libcurl/curl-7.54.1/src/tool_msgs.c
new file mode 100644
index 0000000..08aa2ca
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_msgs.c
@@ -0,0 +1,125 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_msgs.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#define WARN_PREFIX "Warning: "
+#define NOTE_PREFIX "Note: "
+
+static void voutf(struct GlobalConfig *config,
+                  const char *prefix,
+                  const char *fmt,
+                  va_list ap)
+{
+  size_t width = (79 - strlen(prefix));
+  if(!config->mute) {
+    size_t len;
+    char *ptr;
+    char print_buffer[256];
+
+    len = vsnprintf(print_buffer, sizeof(print_buffer), fmt, ap);
+
+    ptr = print_buffer;
+    while(len > 0) {
+      fputs(prefix, config->errors);
+
+      if(len > width) {
+        size_t cut = width-1;
+
+        while(!ISSPACE(ptr[cut]) && cut) {
+          cut--;
+        }
+        if(0 == cut)
+          /* not a single cutting position was found, just cut it at the
+             max text width then! */
+          cut = width-1;
+
+        (void)fwrite(ptr, cut + 1, 1, config->errors);
+        fputs("\n", config->errors);
+        ptr += cut+1; /* skip the space too */
+
+        // changed for CVE-2018-16842 1/1-files-1/1-changes
+//        len -= cut;
+        len -= cut + 1;
+
+      }
+      else {
+        fputs(ptr, config->errors);
+        len = 0;
+      }
+    }
+  }
+}
+
+/*
+ * Emit 'note' formatted message on configured 'errors' stream, if verbose was
+ * selected.
+ */
+void notef(struct GlobalConfig *config, const char *fmt, ...)
+{
+  va_list ap;
+  va_start(ap, fmt);
+  if(config->tracetype)
+    voutf(config, NOTE_PREFIX, fmt, ap);
+  va_end(ap);
+}
+
+/*
+ * Emit warning formatted message on configured 'errors' stream unless
+ * mute (--silent) was selected.
+ */
+
+void warnf(struct GlobalConfig *config, const char *fmt, ...)
+{
+  va_list ap;
+  va_start(ap, fmt);
+  voutf(config, WARN_PREFIX, fmt, ap);
+  va_end(ap);
+}
+/*
+ * Emit help formatted message on given stream.
+ */
+
+void helpf(FILE *errors, const char *fmt, ...)
+{
+  va_list ap;
+  if(fmt) {
+    va_start(ap, fmt);
+    fputs("curl: ", errors); /* prefix it */
+    vfprintf(errors, fmt, ap);
+    va_end(ap);
+  }
+  fprintf(errors, "curl: try 'curl --help' "
+#ifdef USE_MANUAL
+          "or 'curl --manual' "
+#endif
+          "for more information\n");
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_msgs.h b/ap/lib/libcurl/curl-7.54.1/src/tool_msgs.h
new file mode 100644
index 0000000..e84c1b2
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_msgs.h
@@ -0,0 +1,32 @@
+#ifndef HEADER_CURL_TOOL_MSGS_H
+#define HEADER_CURL_TOOL_MSGS_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+void warnf(struct GlobalConfig *config, const char *fmt, ...);
+void notef(struct GlobalConfig *config, const char *fmt, ...);
+
+void helpf(FILE *errors, const char *fmt, ...);
+
+#endif /* HEADER_CURL_TOOL_MSGS_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_operate.c b/ap/lib/libcurl/curl-7.54.1/src/tool_operate.c
new file mode 100644
index 0000000..6f1525e
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_operate.c
@@ -0,0 +1,2076 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef HAVE_FCNTL_H
+#  include <fcntl.h>
+#endif
+
+#ifdef HAVE_UTIME_H
+#  include <utime.h>
+#elif defined(HAVE_SYS_UTIME_H)
+#  include <sys/utime.h>
+#endif
+
+#ifdef HAVE_LOCALE_H
+#  include <locale.h>
+#endif
+
+#ifdef __VMS
+#  include <fabdef.h>
+#endif
+
+#include "strcase.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_binmode.h"
+#include "tool_cfgable.h"
+#include "tool_cb_dbg.h"
+#include "tool_cb_hdr.h"
+#include "tool_cb_prg.h"
+#include "tool_cb_rea.h"
+#include "tool_cb_see.h"
+#include "tool_cb_wrt.h"
+#include "tool_dirhie.h"
+#include "tool_doswin.h"
+#include "tool_easysrc.h"
+#include "tool_getparam.h"
+#include "tool_helpers.h"
+#include "tool_homedir.h"
+#include "tool_libinfo.h"
+#include "tool_main.h"
+#include "tool_metalink.h"
+#include "tool_msgs.h"
+#include "tool_operate.h"
+#include "tool_operhlp.h"
+#include "tool_paramhlp.h"
+#include "tool_parsecfg.h"
+#include "tool_setopt.h"
+#include "tool_sleep.h"
+#include "tool_urlglob.h"
+#include "tool_util.h"
+#include "tool_writeout.h"
+#include "tool_xattr.h"
+#include "tool_vms.h"
+#include "tool_help.h"
+#include "tool_hugehelp.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifdef CURLDEBUG
+/* libcurl's debug builds provide an extra function */
+CURLcode curl_easy_perform_ev(CURL *easy);
+#endif
+
+#define CURLseparator  "--_curl_--"
+
+#ifndef O_BINARY
+/* since O_BINARY as used in bitmasks, setting it to zero makes it usable in
+   source code but yet it doesn't ruin anything */
+#  define O_BINARY 0
+#endif
+
+#define CURL_CA_CERT_ERRORMSG1                                              \
+  "More details here: https://curl.haxx.se/docs/sslcerts.html\n\n"           \
+  "curl performs SSL certificate verification by default, "                 \
+  "using a \"bundle\"\n"                                                    \
+  " of Certificate Authority (CA) public keys (CA certs). If the default\n" \
+  " bundle file isn't adequate, you can specify an alternate file\n"        \
+  " using the --cacert option.\n"
+
+#define CURL_CA_CERT_ERRORMSG2                                              \
+  "If this HTTPS server uses a certificate signed by a CA represented in\n" \
+  " the bundle, the certificate verification probably failed due to a\n"    \
+  " problem with the certificate (it might be expired, or the name might\n" \
+  " not match the domain name in the URL).\n"                               \
+  "If you'd like to turn off curl's verification of the certificate, use\n" \
+  " the -k (or --insecure) option.\n"
+
+static bool is_fatal_error(CURLcode code)
+{
+  switch(code) {
+  /* TODO: Should CURLE_SSL_CACERT be included as critical error ? */
+  case CURLE_FAILED_INIT:
+  case CURLE_OUT_OF_MEMORY:
+  case CURLE_UNKNOWN_OPTION:
+  case CURLE_FUNCTION_NOT_FOUND:
+  case CURLE_BAD_FUNCTION_ARGUMENT:
+    /* critical error */
+    return TRUE;
+  default:
+    break;
+  }
+
+  /* no error or not critical */
+  return FALSE;
+}
+
+#ifdef __VMS
+/*
+ * get_vms_file_size does what it takes to get the real size of the file
+ *
+ * For fixed files, find out the size of the EOF block and adjust.
+ *
+ * For all others, have to read the entire file in, discarding the contents.
+ * Most posted text files will be small, and binary files like zlib archives
+ * and CD/DVD images should be either a STREAM_LF format or a fixed format.
+ *
+ */
+static curl_off_t vms_realfilesize(const char *name,
+                                   const struct_stat *stat_buf)
+{
+  char buffer[8192];
+  curl_off_t count;
+  int ret_stat;
+  FILE * file;
+
+  /* !checksrc! disable FOPENMODE 1 */
+  file = fopen(name, "r"); /* VMS */
+  if(file == NULL) {
+    return 0;
+  }
+  count = 0;
+  ret_stat = 1;
+  while(ret_stat > 0) {
+    ret_stat = fread(buffer, 1, sizeof(buffer), file);
+    if(ret_stat != 0)
+      count += ret_stat;
+  }
+  fclose(file);
+
+  return count;
+}
+
+/*
+ *
+ *  VmsSpecialSize checks to see if the stat st_size can be trusted and
+ *  if not to call a routine to get the correct size.
+ *
+ */
+static curl_off_t VmsSpecialSize(const char *name,
+                                 const struct_stat *stat_buf)
+{
+  switch(stat_buf->st_fab_rfm) {
+  case FAB$C_VAR:
+  case FAB$C_VFC:
+    return vms_realfilesize(name, stat_buf);
+    break;
+  default:
+    return stat_buf->st_size;
+  }
+}
+#endif /* __VMS */
+
+#if defined(HAVE_UTIME) || \
+    (defined(WIN32) && (CURL_SIZEOF_CURL_OFF_T >= 8))
+static void setfiletime(long filetime, const char *filename,
+                        FILE *error_stream)
+{
+  if(filetime >= 0) {
+/* Windows utime() may attempt to adjust our unix gmt 'filetime' by a daylight
+   saving time offset and since it's GMT that is bad behavior. When we have
+   access to a 64-bit type we can bypass utime and set the times directly. */
+#if defined(WIN32) && (CURL_SIZEOF_CURL_OFF_T >= 8)
+    HANDLE hfile;
+
+#if (CURL_SIZEOF_LONG >= 8)
+    /* 910670515199 is the maximum unix filetime that can be used as a
+       Windows FILETIME without overflow: 30827-12-31T23:59:59. */
+    if(filetime > CURL_OFF_T_C(910670515199)) {
+      fprintf(error_stream,
+              "Failed to set filetime %ld on outfile: overflow\n",
+              filetime);
+      return;
+    }
+#endif /* CURL_SIZEOF_LONG >= 8 */
+
+    hfile = CreateFileA(filename, FILE_WRITE_ATTRIBUTES,
+                        (FILE_SHARE_READ | FILE_SHARE_WRITE |
+                         FILE_SHARE_DELETE),
+                        NULL, OPEN_EXISTING, 0, NULL);
+    if(hfile != INVALID_HANDLE_VALUE) {
+      curl_off_t converted = ((curl_off_t)filetime * 10000000) +
+                             CURL_OFF_T_C(116444736000000000);
+      FILETIME ft;
+      ft.dwLowDateTime = (DWORD)(converted & 0xFFFFFFFF);
+      ft.dwHighDateTime = (DWORD)(converted >> 32);
+      if(!SetFileTime(hfile, NULL, &ft, &ft)) {
+        fprintf(error_stream,
+                "Failed to set filetime %ld on outfile: "
+                "SetFileTime failed: GetLastError %u\n",
+                filetime, GetLastError());
+      }
+      CloseHandle(hfile);
+    }
+    else {
+      fprintf(error_stream,
+              "Failed to set filetime %ld on outfile: "
+              "CreateFile failed: GetLastError %u\n",
+              filetime, GetLastError());
+    }
+
+#elif defined(HAVE_UTIMES)
+    struct timeval times[2];
+    times[0].tv_sec = times[1].tv_sec = filetime;
+    times[0].tv_usec = times[1].tv_usec = 0;
+    if(utimes(filename, times)) {
+      fprintf(error_stream,
+              "Failed to set filetime %ld on outfile: errno %d\n",
+              filetime, errno);
+    }
+
+#elif defined(HAVE_UTIME)
+    struct utimbuf times;
+    times.actime = (time_t)filetime;
+    times.modtime = (time_t)filetime;
+    if(utime(filename, &times)) {
+      fprintf(error_stream,
+              "Failed to set filetime %ld on outfile: errno %d\n",
+              filetime, errno);
+    }
+#endif
+  }
+}
+#endif /* defined(HAVE_UTIME) || \
+          (defined(WIN32) && (CURL_SIZEOF_CURL_OFF_T >= 8)) */
+
+#define BUFFER_SIZE (100*1024)
+
+static CURLcode operate_do(struct GlobalConfig *global,
+                           struct OperationConfig *config)
+{
+  char errorbuffer[CURL_ERROR_SIZE];
+  struct ProgressData progressbar;
+  struct getout *urlnode;
+
+  struct HdrCbData hdrcbdata;
+  struct OutStruct heads;
+
+  metalinkfile *mlfile_last = NULL;
+
+  CURL *curl = config->easy;
+  char *httpgetfields = NULL;
+
+  CURLcode result = CURLE_OK;
+  unsigned long li;
+  bool capath_from_env;
+
+  /* Save the values of noprogress and isatty to restore them later on */
+  bool orig_noprogress = global->noprogress;
+  bool orig_isatty = global->isatty;
+
+  errorbuffer[0] = '\0';
+
+  /* default headers output stream is stdout */
+  memset(&hdrcbdata, 0, sizeof(struct HdrCbData));
+  memset(&heads, 0, sizeof(struct OutStruct));
+  heads.stream = stdout;
+  heads.config = config;
+
+  /*
+  ** Beyond this point no return'ing from this function allowed.
+  ** Jump to label 'quit_curl' in order to abandon this function
+  ** from outside of nested loops further down below.
+  */
+
+  /* Check we have a url */
+  if(!config->url_list || !config->url_list->url) {
+    helpf(global->errors, "no URL specified!\n");
+    result = CURLE_FAILED_INIT;
+    goto quit_curl;
+  }
+
+  /* On WIN32 we can't set the path to curl-ca-bundle.crt
+   * at compile time. So we look here for the file in two ways:
+   * 1: look at the environment variable CURL_CA_BUNDLE for a path
+   * 2: if #1 isn't found, use the windows API function SearchPath()
+   *    to find it along the app's path (includes app's dir and CWD)
+   *
+   * We support the environment variable thing for non-Windows platforms
+   * too. Just for the sake of it.
+   */
+  capath_from_env = false;
+  if(!config->cacert &&
+     !config->capath &&
+     !config->insecure_ok) {
+    char *env;
+    env = curlx_getenv("CURL_CA_BUNDLE");
+    if(env) {
+      config->cacert = strdup(env);
+      if(!config->cacert) {
+        curl_free(env);
+        helpf(global->errors, "out of memory\n");
+        result = CURLE_OUT_OF_MEMORY;
+        goto quit_curl;
+      }
+    }
+    else {
+      env = curlx_getenv("SSL_CERT_DIR");
+      if(env) {
+        config->capath = strdup(env);
+        if(!config->capath) {
+          curl_free(env);
+          helpf(global->errors, "out of memory\n");
+          result = CURLE_OUT_OF_MEMORY;
+          goto quit_curl;
+        }
+        capath_from_env = true;
+      }
+      else {
+        env = curlx_getenv("SSL_CERT_FILE");
+        if(env) {
+          config->cacert = strdup(env);
+          if(!config->cacert) {
+            curl_free(env);
+            helpf(global->errors, "out of memory\n");
+            result = CURLE_OUT_OF_MEMORY;
+            goto quit_curl;
+          }
+        }
+      }
+    }
+
+    if(env)
+      curl_free(env);
+#ifdef WIN32
+    else {
+      result = FindWin32CACert(config, "curl-ca-bundle.crt");
+      if(result)
+        goto quit_curl;
+    }
+#endif
+  }
+
+  if(config->postfields) {
+    if(config->use_httpget) {
+      /* Use the postfields data for a http get */
+      httpgetfields = strdup(config->postfields);
+      Curl_safefree(config->postfields);
+      if(!httpgetfields) {
+        helpf(global->errors, "out of memory\n");
+        result = CURLE_OUT_OF_MEMORY;
+        goto quit_curl;
+      }
+      if(SetHTTPrequest(config,
+                        (config->no_body?HTTPREQ_HEAD:HTTPREQ_GET),
+                        &config->httpreq)) {
+        result = CURLE_FAILED_INIT;
+        goto quit_curl;
+      }
+    }
+    else {
+      if(SetHTTPrequest(config, HTTPREQ_SIMPLEPOST, &config->httpreq)) {
+        result = CURLE_FAILED_INIT;
+        goto quit_curl;
+      }
+    }
+  }
+
+  /* Single header file for all URLs */
+  if(config->headerfile) {
+    /* open file for output: */
+    if(strcmp(config->headerfile, "-")) {
+      FILE *newfile = fopen(config->headerfile, "wb");
+      if(!newfile) {
+        warnf(config->global, "Failed to open %s\n", config->headerfile);
+        result = CURLE_WRITE_ERROR;
+        goto quit_curl;
+      }
+      else {
+        heads.filename = config->headerfile;
+        heads.s_isreg = TRUE;
+        heads.fopened = TRUE;
+        heads.stream = newfile;
+      }
+    }
+    else {
+      /* always use binary mode for protocol header output */
+      set_binmode(heads.stream);
+    }
+  }
+
+  /*
+  ** Nested loops start here.
+  */
+
+  /* loop through the list of given URLs */
+
+  for(urlnode = config->url_list; urlnode; urlnode = urlnode->next) {
+
+    unsigned long up; /* upload file counter within a single upload glob */
+    char *infiles; /* might be a glob pattern */
+    char *outfiles;
+    unsigned long infilenum;
+    URLGlob *inglob;
+
+    int metalink = 0; /* nonzero for metalink download. */
+    metalinkfile *mlfile;
+    metalink_resource *mlres;
+
+    outfiles = NULL;
+    infilenum = 1;
+    inglob = NULL;
+
+    if(urlnode->flags & GETOUT_METALINK) {
+      metalink = 1;
+      if(mlfile_last == NULL) {
+        mlfile_last = config->metalinkfile_list;
+      }
+      mlfile = mlfile_last;
+      mlfile_last = mlfile_last->next;
+      mlres = mlfile->resource;
+    }
+    else {
+      mlfile = NULL;
+      mlres = NULL;
+    }
+
+    /* urlnode->url is the full URL (it might be NULL) */
+
+    if(!urlnode->url) {
+      /* This node has no URL. Free node data without destroying the
+         node itself nor modifying next pointer and continue to next */
+      Curl_safefree(urlnode->outfile);
+      Curl_safefree(urlnode->infile);
+      urlnode->flags = 0;
+      continue; /* next URL please */
+    }
+
+    /* save outfile pattern before expansion */
+    if(urlnode->outfile) {
+      outfiles = strdup(urlnode->outfile);
+      if(!outfiles) {
+        helpf(global->errors, "out of memory\n");
+        result = CURLE_OUT_OF_MEMORY;
+        break;
+      }
+    }
+
+    infiles = urlnode->infile;
+
+    if(!config->globoff && infiles) {
+      /* Unless explicitly shut off */
+      result = glob_url(&inglob, infiles, &infilenum,
+                        global->showerror?global->errors:NULL);
+      if(result) {
+        Curl_safefree(outfiles);
+        break;
+      }
+    }
+
+    /* Here's the loop for uploading multiple files within the same
+       single globbed string. If no upload, we enter the loop once anyway. */
+    for(up = 0 ; up < infilenum; up++) {
+
+      char *uploadfile; /* a single file, never a glob */
+      int separator;
+      URLGlob *urls;
+      unsigned long urlnum;
+
+      uploadfile = NULL;
+      urls = NULL;
+      urlnum = 0;
+
+      if(!up && !infiles)
+        Curl_nop_stmt;
+      else {
+        if(inglob) {
+          result = glob_next_url(&uploadfile, inglob);
+          if(result == CURLE_OUT_OF_MEMORY)
+            helpf(global->errors, "out of memory\n");
+        }
+        else if(!up) {
+          uploadfile = strdup(infiles);
+          if(!uploadfile) {
+            helpf(global->errors, "out of memory\n");
+            result = CURLE_OUT_OF_MEMORY;
+          }
+        }
+        else
+          uploadfile = NULL;
+        if(!uploadfile)
+          break;
+      }
+
+      if(metalink) {
+        /* For Metalink download, we don't use glob. Instead we use
+           the number of resources as urlnum. */
+        urlnum = count_next_metalink_resource(mlfile);
+      }
+      else
+      if(!config->globoff) {
+        /* Unless explicitly shut off, we expand '{...}' and '[...]'
+           expressions and return total number of URLs in pattern set */
+        result = glob_url(&urls, urlnode->url, &urlnum,
+                          global->showerror?global->errors:NULL);
+        if(result) {
+          Curl_safefree(uploadfile);
+          break;
+        }
+      }
+      else
+        urlnum = 1; /* without globbing, this is a single URL */
+
+      /* if multiple files extracted to stdout, insert separators! */
+      separator= ((!outfiles || !strcmp(outfiles, "-")) && urlnum > 1);
+
+      /* Here's looping around each globbed URL */
+      for(li = 0 ; li < urlnum; li++) {
+
+        int infd;
+        bool infdopen;
+        char *outfile;
+        struct OutStruct outs;
+        struct InStruct input;
+        struct timeval retrystart;
+        curl_off_t uploadfilesize;
+        long retry_numretries;
+        long retry_sleep_default;
+        long retry_sleep;
+        char *this_url = NULL;
+        int metalink_next_res = 0;
+
+        outfile = NULL;
+        infdopen = FALSE;
+        infd = STDIN_FILENO;
+        uploadfilesize = -1; /* -1 means unknown */
+
+        /* default output stream is stdout */
+        memset(&outs, 0, sizeof(struct OutStruct));
+        outs.stream = stdout;
+        outs.config = config;
+
+        if(metalink) {
+          /* For Metalink download, use name in Metalink file as
+             filename. */
+          outfile = strdup(mlfile->filename);
+          if(!outfile) {
+            result = CURLE_OUT_OF_MEMORY;
+            goto show_error;
+          }
+          this_url = strdup(mlres->url);
+          if(!this_url) {
+            result = CURLE_OUT_OF_MEMORY;
+            goto show_error;
+          }
+        }
+        else {
+          if(urls) {
+            result = glob_next_url(&this_url, urls);
+            if(result)
+              goto show_error;
+          }
+          else if(!li) {
+            this_url = strdup(urlnode->url);
+            if(!this_url) {
+              result = CURLE_OUT_OF_MEMORY;
+              goto show_error;
+            }
+          }
+          else
+            this_url = NULL;
+          if(!this_url)
+            break;
+
+          if(outfiles) {
+            outfile = strdup(outfiles);
+            if(!outfile) {
+              result = CURLE_OUT_OF_MEMORY;
+              goto show_error;
+            }
+          }
+        }
+
+        if(((urlnode->flags&GETOUT_USEREMOTE) ||
+            (outfile && strcmp("-", outfile))) &&
+           (metalink || !config->use_metalink)) {
+
+          /*
+           * We have specified a file name to store the result in, or we have
+           * decided we want to use the remote file name.
+           */
+
+          if(!outfile) {
+            /* extract the file name from the URL */
+            result = get_url_file_name(&outfile, this_url);
+            if(result)
+              goto show_error;
+            if(!*outfile && !config->content_disposition) {
+              helpf(global->errors, "Remote file name has no length!\n");
+              result = CURLE_WRITE_ERROR;
+              goto quit_urls;
+            }
+          }
+          else if(urls) {
+            /* fill '#1' ... '#9' terms from URL pattern */
+            char *storefile = outfile;
+            result = glob_match_url(&outfile, storefile, urls);
+            Curl_safefree(storefile);
+            if(result) {
+              /* bad globbing */
+              warnf(config->global, "bad output glob!\n");
+              goto quit_urls;
+            }
+          }
+
+          /* Create the directory hierarchy, if not pre-existent to a multiple
+             file output call */
+
+          if(config->create_dirs || metalink) {
+            result = create_dir_hierarchy(outfile, global->errors);
+            /* create_dir_hierarchy shows error upon CURLE_WRITE_ERROR */
+            if(result == CURLE_WRITE_ERROR)
+              goto quit_urls;
+            if(result) {
+              goto show_error;
+            }
+          }
+
+          if((urlnode->flags & GETOUT_USEREMOTE)
+             && config->content_disposition) {
+            /* Our header callback MIGHT set the filename */
+            DEBUGASSERT(!outs.filename);
+          }
+
+          if(config->resume_from_current) {
+            /* We're told to continue from where we are now. Get the size
+               of the file as it is now and open it for append instead */
+            struct_stat fileinfo;
+            /* VMS -- Danger, the filesize is only valid for stream files */
+            if(0 == stat(outfile, &fileinfo))
+              /* set offset to current file size: */
+              config->resume_from = fileinfo.st_size;
+            else
+              /* let offset be 0 */
+              config->resume_from = 0;
+          }
+
+          if(config->resume_from) {
+#ifdef __VMS
+            /* open file for output, forcing VMS output format into stream
+               mode which is needed for stat() call above to always work. */
+            FILE *file = fopen(outfile, config->resume_from?"ab":"wb",
+                               "ctx=stm", "rfm=stmlf", "rat=cr", "mrs=0");
+#else
+            /* open file for output: */
+            FILE *file = fopen(outfile, config->resume_from?"ab":"wb");
+#endif
+            if(!file) {
+              helpf(global->errors, "Can't open '%s'!\n", outfile);
+              result = CURLE_WRITE_ERROR;
+              goto quit_urls;
+            }
+            outs.fopened = TRUE;
+            outs.stream = file;
+            outs.init = config->resume_from;
+          }
+          else {
+            outs.stream = NULL; /* open when needed */
+          }
+          outs.filename = outfile;
+          outs.s_isreg = TRUE;
+        }
+
+        if(uploadfile && !stdin_upload(uploadfile)) {
+          /*
+           * We have specified a file to upload and it isn't "-".
+           */
+          struct_stat fileinfo;
+
+          this_url = add_file_name_to_url(curl, this_url, uploadfile);
+          if(!this_url) {
+            result = CURLE_OUT_OF_MEMORY;
+            goto show_error;
+          }
+          /* VMS Note:
+           *
+           * Reading binary from files can be a problem...  Only FIXED, VAR
+           * etc WITHOUT implied CC will work Others need a \n appended to a
+           * line
+           *
+           * - Stat gives a size but this is UNRELIABLE in VMS As a f.e. a
+           * fixed file with implied CC needs to have a byte added for every
+           * record processed, this can by derived from Filesize & recordsize
+           * for VARiable record files the records need to be counted!  for
+           * every record add 1 for linefeed and subtract 2 for the record
+           * header for VARIABLE header files only the bare record data needs
+           * to be considered with one appended if implied CC
+           */
+#ifdef __VMS
+          /* Calculate the real upload site for VMS */
+          infd = -1;
+          if(stat(uploadfile, &fileinfo) == 0) {
+            fileinfo.st_size = VmsSpecialSize(uploadfile, &fileinfo);
+            switch(fileinfo.st_fab_rfm) {
+            case FAB$C_VAR:
+            case FAB$C_VFC:
+            case FAB$C_STMCR:
+              infd = open(uploadfile, O_RDONLY | O_BINARY);
+              break;
+            default:
+              infd = open(uploadfile, O_RDONLY | O_BINARY,
+                          "rfm=stmlf", "ctx=stm");
+            }
+          }
+          if(infd == -1)
+#else
+          infd = open(uploadfile, O_RDONLY | O_BINARY);
+          if((infd == -1) || fstat(infd, &fileinfo))
+#endif
+          {
+            helpf(global->errors, "Can't open '%s'!\n", uploadfile);
+            if(infd != -1) {
+              close(infd);
+              infd = STDIN_FILENO;
+            }
+            result = CURLE_READ_ERROR;
+            goto quit_urls;
+          }
+          infdopen = TRUE;
+
+          /* we ignore file size for char/block devices, sockets, etc. */
+          if(S_ISREG(fileinfo.st_mode))
+            uploadfilesize = fileinfo.st_size;
+
+        }
+        else if(uploadfile && stdin_upload(uploadfile)) {
+          /* count to see if there are more than one auth bit set
+             in the authtype field */
+          int authbits = 0;
+          int bitcheck = 0;
+          while(bitcheck < 32) {
+            if(config->authtype & (1UL << bitcheck++)) {
+              authbits++;
+              if(authbits > 1) {
+                /* more than one, we're done! */
+                break;
+              }
+            }
+          }
+
+          /*
+           * If the user has also selected --anyauth or --proxy-anyauth
+           * we should warn him/her.
+           */
+          if(config->proxyanyauth || (authbits>1)) {
+            warnf(config->global,
+                  "Using --anyauth or --proxy-anyauth with upload from stdin"
+                  " involves a big risk of it not working. Use a temporary"
+                  " file or a fixed auth type instead!\n");
+          }
+
+          DEBUGASSERT(infdopen == FALSE);
+          DEBUGASSERT(infd == STDIN_FILENO);
+
+          set_binmode(stdin);
+          if(!strcmp(uploadfile, ".")) {
+            if(curlx_nonblock((curl_socket_t)infd, TRUE) < 0)
+              warnf(config->global,
+                    "fcntl failed on fd=%d: %s\n", infd, strerror(errno));
+          }
+        }
+
+        if(uploadfile && config->resume_from_current)
+          config->resume_from = -1; /* -1 will then force get-it-yourself */
+
+        if(output_expected(this_url, uploadfile) && outs.stream &&
+           isatty(fileno(outs.stream)))
+          /* we send the output to a tty, therefore we switch off the progress
+             meter */
+          global->noprogress = global->isatty = TRUE;
+        else {
+          /* progress meter is per download, so restore config
+             values */
+          global->noprogress = orig_noprogress;
+          global->isatty = orig_isatty;
+        }
+
+        if(urlnum > 1 && !global->mute) {
+          fprintf(global->errors, "\n[%lu/%lu]: %s --> %s\n",
+                  li+1, urlnum, this_url, outfile ? outfile : "<stdout>");
+          if(separator)
+            printf("%s%s\n", CURLseparator, this_url);
+        }
+        if(httpgetfields) {
+          char *urlbuffer;
+          /* Find out whether the url contains a file name */
+          const char *pc = strstr(this_url, "://");
+          char sep = '?';
+          if(pc)
+            pc += 3;
+          else
+            pc = this_url;
+
+          pc = strrchr(pc, '/'); /* check for a slash */
+
+          if(pc) {
+            /* there is a slash present in the URL */
+
+            if(strchr(pc, '?'))
+              /* Ouch, there's already a question mark in the URL string, we
+                 then append the data with an ampersand separator instead! */
+              sep='&';
+          }
+          /*
+           * Then append ? followed by the get fields to the url.
+           */
+          if(pc)
+            urlbuffer = aprintf("%s%c%s", this_url, sep, httpgetfields);
+          else
+            /* Append  / before the ? to create a well-formed url
+               if the url contains a hostname only
+            */
+            urlbuffer = aprintf("%s/?%s", this_url, httpgetfields);
+
+          if(!urlbuffer) {
+            result = CURLE_OUT_OF_MEMORY;
+            goto show_error;
+          }
+
+          Curl_safefree(this_url); /* free previous URL */
+          this_url = urlbuffer; /* use our new URL instead! */
+        }
+
+        if(!global->errors)
+          global->errors = stderr;
+
+        if((!outfile || !strcmp(outfile, "-")) && !config->use_ascii) {
+          /* We get the output to stdout and we have not got the ASCII/text
+             flag, then set stdout to be binary */
+          set_binmode(stdout);
+        }
+
+        if(!config->tcp_nodelay)
+          my_setopt(curl, CURLOPT_TCP_NODELAY, 0L);
+
+        if(config->tcp_fastopen)
+          my_setopt(curl, CURLOPT_TCP_FASTOPEN, 1L);
+
+        /* where to store */
+        my_setopt(curl, CURLOPT_WRITEDATA, &outs);
+        my_setopt(curl, CURLOPT_INTERLEAVEDATA, &outs);
+        if(metalink || !config->use_metalink)
+          /* what call to write */
+          my_setopt(curl, CURLOPT_WRITEFUNCTION, tool_write_cb);
+#ifdef USE_METALINK
+        else
+          /* Set Metalink specific write callback function to parse
+             XML data progressively. */
+          my_setopt(curl, CURLOPT_WRITEFUNCTION, metalink_write_cb);
+#endif /* USE_METALINK */
+
+        /* for uploads */
+        input.fd = infd;
+        input.config = config;
+        /* Note that if CURLOPT_READFUNCTION is fread (the default), then
+         * lib/telnet.c will Curl_poll() on the input file descriptor
+         * rather then calling the READFUNCTION at regular intervals.
+         * The circumstances in which it is preferable to enable this
+         * behaviour, by omitting to set the READFUNCTION & READDATA options,
+         * have not been determined.
+         */
+        my_setopt(curl, CURLOPT_READDATA, &input);
+        /* what call to read */
+        my_setopt(curl, CURLOPT_READFUNCTION, tool_read_cb);
+
+        /* in 7.18.0, the CURLOPT_SEEKFUNCTION/DATA pair is taking over what
+           CURLOPT_IOCTLFUNCTION/DATA pair previously provided for seeking */
+        my_setopt(curl, CURLOPT_SEEKDATA, &input);
+        my_setopt(curl, CURLOPT_SEEKFUNCTION, tool_seek_cb);
+
+        if(config->recvpersecond &&
+           (config->recvpersecond < BUFFER_SIZE))
+          /* use a smaller sized buffer for better sleeps */
+          my_setopt(curl, CURLOPT_BUFFERSIZE, (long)config->recvpersecond);
+        else
+          my_setopt(curl, CURLOPT_BUFFERSIZE, (long)BUFFER_SIZE);
+
+        /* size of uploaded file: */
+        if(uploadfilesize != -1)
+          my_setopt(curl, CURLOPT_INFILESIZE_LARGE, uploadfilesize);
+        my_setopt_str(curl, CURLOPT_URL, this_url);     /* what to fetch */
+        my_setopt(curl, CURLOPT_NOPROGRESS, global->noprogress?1L:0L);
+        if(config->no_body) {
+          my_setopt(curl, CURLOPT_NOBODY, 1L);
+          my_setopt(curl, CURLOPT_HEADER, 1L);
+        }
+        /* If --metalink is used, we ignore --include (headers in
+           output) option because mixing headers to the body will
+           confuse XML parser and/or hash check will fail. */
+        else if(!config->use_metalink)
+          my_setopt(curl, CURLOPT_HEADER, config->include_headers?1L:0L);
+
+        if(config->oauth_bearer)
+          my_setopt_str(curl, CURLOPT_XOAUTH2_BEARER, config->oauth_bearer);
+
+#if !defined(CURL_DISABLE_PROXY)
+        {
+          /* TODO: Make this a run-time check instead of compile-time one. */
+
+          my_setopt_str(curl, CURLOPT_PROXY, config->proxy);
+          /* new in libcurl 7.5 */
+          if(config->proxy)
+            my_setopt_enum(curl, CURLOPT_PROXYTYPE, config->proxyver);
+
+          my_setopt_str(curl, CURLOPT_PROXYUSERPWD, config->proxyuserpwd);
+
+          /* new in libcurl 7.3 */
+          my_setopt(curl, CURLOPT_HTTPPROXYTUNNEL, config->proxytunnel?1L:0L);
+
+          /* new in libcurl 7.52.0 */
+          if(config->preproxy)
+            my_setopt_str(curl, CURLOPT_PRE_PROXY, config->preproxy);
+
+          /* new in libcurl 7.10.6 */
+          if(config->proxyanyauth)
+            my_setopt_bitmask(curl, CURLOPT_PROXYAUTH,
+                              (long)CURLAUTH_ANY);
+          else if(config->proxynegotiate)
+            my_setopt_bitmask(curl, CURLOPT_PROXYAUTH,
+                              (long)CURLAUTH_GSSNEGOTIATE);
+          else if(config->proxyntlm)
+            my_setopt_bitmask(curl, CURLOPT_PROXYAUTH,
+                              (long)CURLAUTH_NTLM);
+          else if(config->proxydigest)
+            my_setopt_bitmask(curl, CURLOPT_PROXYAUTH,
+                              (long)CURLAUTH_DIGEST);
+          else if(config->proxybasic)
+            my_setopt_bitmask(curl, CURLOPT_PROXYAUTH,
+                              (long)CURLAUTH_BASIC);
+
+          /* new in libcurl 7.19.4 */
+          my_setopt_str(curl, CURLOPT_NOPROXY, config->noproxy);
+
+          my_setopt(curl, CURLOPT_SUPPRESS_CONNECT_HEADERS,
+                    config->suppress_connect_headers?1L:0L);
+        }
+#endif /* !CURL_DISABLE_PROXY */
+
+        my_setopt(curl, CURLOPT_FAILONERROR, config->failonerror?1L:0L);
+        my_setopt(curl, CURLOPT_UPLOAD, uploadfile?1L:0L);
+        my_setopt(curl, CURLOPT_DIRLISTONLY, config->dirlistonly?1L:0L);
+        my_setopt(curl, CURLOPT_APPEND, config->ftp_append?1L:0L);
+
+        if(config->netrc_opt)
+          my_setopt_enum(curl, CURLOPT_NETRC, (long)CURL_NETRC_OPTIONAL);
+        else if(config->netrc || config->netrc_file)
+          my_setopt_enum(curl, CURLOPT_NETRC, (long)CURL_NETRC_REQUIRED);
+        else
+          my_setopt_enum(curl, CURLOPT_NETRC, (long)CURL_NETRC_IGNORED);
+
+        if(config->netrc_file)
+          my_setopt_str(curl, CURLOPT_NETRC_FILE, config->netrc_file);
+
+        my_setopt(curl, CURLOPT_TRANSFERTEXT, config->use_ascii?1L:0L);
+        if(config->login_options)
+          my_setopt_str(curl, CURLOPT_LOGIN_OPTIONS, config->login_options);
+        my_setopt_str(curl, CURLOPT_USERPWD, config->userpwd);
+        my_setopt_str(curl, CURLOPT_RANGE, config->range);
+        my_setopt(curl, CURLOPT_ERRORBUFFER, errorbuffer);
+        my_setopt(curl, CURLOPT_TIMEOUT_MS, (long)(config->timeout * 1000));
+
+        if(built_in_protos & CURLPROTO_HTTP) {
+
+          long postRedir = 0;
+
+          my_setopt(curl, CURLOPT_FOLLOWLOCATION,
+                    config->followlocation?1L:0L);
+          my_setopt(curl, CURLOPT_UNRESTRICTED_AUTH,
+                    config->unrestricted_auth?1L:0L);
+
+          switch(config->httpreq) {
+          case HTTPREQ_SIMPLEPOST:
+            my_setopt_str(curl, CURLOPT_POSTFIELDS,
+                          config->postfields);
+            my_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE,
+                      config->postfieldsize);
+            break;
+          case HTTPREQ_FORMPOST:
+            my_setopt_httppost(curl, CURLOPT_HTTPPOST, config->httppost);
+            break;
+          default:
+            break;
+          }
+
+          my_setopt_str(curl, CURLOPT_REFERER, config->referer);
+          my_setopt(curl, CURLOPT_AUTOREFERER, config->autoreferer?1L:0L);
+          my_setopt_str(curl, CURLOPT_USERAGENT, config->useragent);
+          my_setopt_slist(curl, CURLOPT_HTTPHEADER, config->headers);
+
+          /* new in libcurl 7.36.0 */
+          if(config->proxyheaders) {
+            my_setopt_slist(curl, CURLOPT_PROXYHEADER, config->proxyheaders);
+            my_setopt(curl, CURLOPT_HEADEROPT, CURLHEADER_SEPARATE);
+          }
+
+          /* new in libcurl 7.5 */
+          my_setopt(curl, CURLOPT_MAXREDIRS, config->maxredirs);
+
+          if(config->httpversion)
+            my_setopt_enum(curl, CURLOPT_HTTP_VERSION, config->httpversion);
+          else if(curlinfo->features & CURL_VERSION_HTTP2) {
+            my_setopt_enum(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2TLS);
+          }
+
+          /* new in libcurl 7.10.6 (default is Basic) */
+          if(config->authtype)
+            my_setopt_bitmask(curl, CURLOPT_HTTPAUTH, (long)config->authtype);
+
+          /* curl 7.19.1 (the 301 version existed in 7.18.2),
+             303 was added in 7.26.0 */
+          if(config->post301)
+            postRedir |= CURL_REDIR_POST_301;
+          if(config->post302)
+            postRedir |= CURL_REDIR_POST_302;
+          if(config->post303)
+            postRedir |= CURL_REDIR_POST_303;
+          my_setopt(curl, CURLOPT_POSTREDIR, postRedir);
+
+          /* new in libcurl 7.21.6 */
+          if(config->encoding)
+            my_setopt_str(curl, CURLOPT_ACCEPT_ENCODING, "");
+
+          /* new in libcurl 7.21.6 */
+          if(config->tr_encoding)
+            my_setopt(curl, CURLOPT_TRANSFER_ENCODING, 1L);
+
+        } /* (built_in_protos & CURLPROTO_HTTP) */
+
+        my_setopt_str(curl, CURLOPT_FTPPORT, config->ftpport);
+        my_setopt(curl, CURLOPT_LOW_SPEED_LIMIT,
+                  config->low_speed_limit);
+        my_setopt(curl, CURLOPT_LOW_SPEED_TIME, config->low_speed_time);
+        my_setopt(curl, CURLOPT_MAX_SEND_SPEED_LARGE,
+                  config->sendpersecond);
+        my_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE,
+                  config->recvpersecond);
+
+        if(config->use_resume)
+          my_setopt(curl, CURLOPT_RESUME_FROM_LARGE, config->resume_from);
+        else
+          my_setopt(curl, CURLOPT_RESUME_FROM_LARGE, CURL_OFF_T_C(0));
+
+        my_setopt_str(curl, CURLOPT_KEYPASSWD, config->key_passwd);
+        my_setopt_str(curl, CURLOPT_PROXY_KEYPASSWD, config->proxy_key_passwd);
+
+        if(built_in_protos & (CURLPROTO_SCP|CURLPROTO_SFTP)) {
+
+          /* SSH and SSL private key uses same command-line option */
+          /* new in libcurl 7.16.1 */
+          my_setopt_str(curl, CURLOPT_SSH_PRIVATE_KEYFILE, config->key);
+          /* new in libcurl 7.16.1 */
+          my_setopt_str(curl, CURLOPT_SSH_PUBLIC_KEYFILE, config->pubkey);
+
+          /* new in libcurl 7.17.1: SSH host key md5 checking allows us
+             to fail if we are not talking to who we think we should */
+          my_setopt_str(curl, CURLOPT_SSH_HOST_PUBLIC_KEY_MD5,
+                        config->hostpubmd5);
+        }
+
+        if(config->cacert)
+          my_setopt_str(curl, CURLOPT_CAINFO, config->cacert);
+        if(config->proxy_cacert)
+          my_setopt_str(curl, CURLOPT_PROXY_CAINFO, config->proxy_cacert);
+
+        if(config->capath) {
+          result = res_setopt_str(curl, CURLOPT_CAPATH, config->capath);
+          if(result == CURLE_NOT_BUILT_IN) {
+            warnf(config->global, "ignoring %s, not supported by libcurl\n",
+                  capath_from_env?
+                  "SSL_CERT_DIR environment variable":"--capath");
+          }
+          else if(result)
+            goto show_error;
+        }
+        /* For the time being if --proxy-capath is not set then we use the
+           --capath value for it, if any. See #1257 */
+        if(config->proxy_capath || config->capath) {
+          result = res_setopt_str(curl, CURLOPT_PROXY_CAPATH,
+                                  (config->proxy_capath ?
+                                   config->proxy_capath :
+                                   config->capath));
+          if(result == CURLE_NOT_BUILT_IN) {
+            if(config->proxy_capath) {
+              warnf(config->global,
+                    "ignoring --proxy-capath, not supported by libcurl\n");
+            }
+          }
+          else if(result)
+            goto show_error;
+        }
+
+        if(config->crlfile)
+          my_setopt_str(curl, CURLOPT_CRLFILE, config->crlfile);
+        if(config->proxy_crlfile)
+          my_setopt_str(curl, CURLOPT_PROXY_CRLFILE, config->proxy_crlfile);
+        else if(config->crlfile) /* CURLOPT_PROXY_CRLFILE default is crlfile */
+          my_setopt_str(curl, CURLOPT_PROXY_CRLFILE, config->crlfile);
+
+        if(config->pinnedpubkey)
+          my_setopt_str(curl, CURLOPT_PINNEDPUBLICKEY, config->pinnedpubkey);
+
+        if(curlinfo->features & CURL_VERSION_SSL) {
+          my_setopt_str(curl, CURLOPT_SSLCERT, config->cert);
+          my_setopt_str(curl, CURLOPT_PROXY_SSLCERT, config->proxy_cert);
+          my_setopt_str(curl, CURLOPT_SSLCERTTYPE, config->cert_type);
+          my_setopt_str(curl, CURLOPT_PROXY_SSLCERTTYPE,
+                        config->proxy_cert_type);
+          my_setopt_str(curl, CURLOPT_SSLKEY, config->key);
+          my_setopt_str(curl, CURLOPT_PROXY_SSLKEY, config->proxy_key);
+          my_setopt_str(curl, CURLOPT_SSLKEYTYPE, config->key_type);
+          my_setopt_str(curl, CURLOPT_PROXY_SSLKEYTYPE,
+                        config->proxy_key_type);
+
+          if(config->insecure_ok) {
+            my_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
+            my_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
+          }
+          else {
+            my_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
+            /* libcurl default is strict verifyhost -> 2L   */
+            /* my_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2L); */
+          }
+          if(config->proxy_insecure_ok) {
+            my_setopt(curl, CURLOPT_PROXY_SSL_VERIFYPEER, 0L);
+            my_setopt(curl, CURLOPT_PROXY_SSL_VERIFYHOST, 0L);
+          }
+          else {
+            my_setopt(curl, CURLOPT_PROXY_SSL_VERIFYPEER, 1L);
+          }
+
+          if(config->verifystatus)
+            my_setopt(curl, CURLOPT_SSL_VERIFYSTATUS, 1L);
+
+          if(config->falsestart)
+            my_setopt(curl, CURLOPT_SSL_FALSESTART, 1L);
+
+          my_setopt_enum(curl, CURLOPT_SSLVERSION,
+                         config->ssl_version | config->ssl_version_max);
+          my_setopt_enum(curl, CURLOPT_PROXY_SSLVERSION,
+                         config->proxy_ssl_version);
+        }
+        if(config->path_as_is)
+          my_setopt(curl, CURLOPT_PATH_AS_IS, 1L);
+
+        if(built_in_protos & (CURLPROTO_SCP|CURLPROTO_SFTP)) {
+          if(!config->insecure_ok) {
+            char *home;
+            char *file;
+            result = CURLE_OUT_OF_MEMORY;
+            home = homedir();
+            if(home) {
+              file = aprintf("%s/%sssh/known_hosts", home, DOT_CHAR);
+              if(file) {
+                /* new in curl 7.19.6 */
+                result = res_setopt_str(curl, CURLOPT_SSH_KNOWNHOSTS, file);
+                curl_free(file);
+                if(result == CURLE_UNKNOWN_OPTION)
+                  /* libssh2 version older than 1.1.1 */
+                  result = CURLE_OK;
+              }
+              Curl_safefree(home);
+            }
+            if(result)
+              goto show_error;
+          }
+        }
+
+        if(config->no_body || config->remote_time) {
+          /* no body or use remote time */
+          my_setopt(curl, CURLOPT_FILETIME, 1L);
+        }
+
+        my_setopt(curl, CURLOPT_CRLF, config->crlf?1L:0L);
+        my_setopt_slist(curl, CURLOPT_QUOTE, config->quote);
+        my_setopt_slist(curl, CURLOPT_POSTQUOTE, config->postquote);
+        my_setopt_slist(curl, CURLOPT_PREQUOTE, config->prequote);
+
+#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
+        if(config->cookie)
+          my_setopt_str(curl, CURLOPT_COOKIE, config->cookie);
+
+        if(config->cookiefile)
+          my_setopt_str(curl, CURLOPT_COOKIEFILE, config->cookiefile);
+
+        /* new in libcurl 7.9 */
+        if(config->cookiejar)
+          my_setopt_str(curl, CURLOPT_COOKIEJAR, config->cookiejar);
+
+        /* new in libcurl 7.9.7 */
+        my_setopt(curl, CURLOPT_COOKIESESSION, config->cookiesession?1L:0L);
+#else
+        if(config->cookie || config->cookiefile || config->cookiejar) {
+          warnf(config->global, "cookie option(s) used even though cookie "
+                "support is disabled!\n");
+          return CURLE_NOT_BUILT_IN;
+        }
+#endif
+
+        my_setopt_enum(curl, CURLOPT_TIMECONDITION, (long)config->timecond);
+        my_setopt(curl, CURLOPT_TIMEVALUE, (long)config->condtime);
+        my_setopt_str(curl, CURLOPT_CUSTOMREQUEST, config->customrequest);
+        customrequest_helper(config, config->httpreq, config->customrequest);
+        my_setopt(curl, CURLOPT_STDERR, global->errors);
+
+        /* three new ones in libcurl 7.3: */
+        my_setopt_str(curl, CURLOPT_INTERFACE, config->iface);
+        my_setopt_str(curl, CURLOPT_KRBLEVEL, config->krblevel);
+
+        progressbarinit(&progressbar, config);
+        if((global->progressmode == CURL_PROGRESS_BAR) &&
+           !global->noprogress && !global->mute) {
+          /* we want the alternative style, then we have to implement it
+             ourselves! */
+          my_setopt(curl, CURLOPT_XFERINFOFUNCTION, tool_progress_cb);
+          my_setopt(curl, CURLOPT_XFERINFODATA, &progressbar);
+        }
+
+        /* new in libcurl 7.24.0: */
+        if(config->dns_servers)
+          my_setopt_str(curl, CURLOPT_DNS_SERVERS, config->dns_servers);
+
+        /* new in libcurl 7.33.0: */
+        if(config->dns_interface)
+          my_setopt_str(curl, CURLOPT_DNS_INTERFACE, config->dns_interface);
+        if(config->dns_ipv4_addr)
+          my_setopt_str(curl, CURLOPT_DNS_LOCAL_IP4, config->dns_ipv4_addr);
+        if(config->dns_ipv6_addr)
+        my_setopt_str(curl, CURLOPT_DNS_LOCAL_IP6, config->dns_ipv6_addr);
+
+        /* new in libcurl 7.6.2: */
+        my_setopt_slist(curl, CURLOPT_TELNETOPTIONS, config->telnet_options);
+
+        /* new in libcurl 7.7: */
+        my_setopt_str(curl, CURLOPT_RANDOM_FILE, config->random_file);
+        my_setopt_str(curl, CURLOPT_EGDSOCKET, config->egd_file);
+        my_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS,
+                  (long)(config->connecttimeout * 1000));
+
+        if(config->cipher_list)
+          my_setopt_str(curl, CURLOPT_SSL_CIPHER_LIST, config->cipher_list);
+
+        if(config->proxy_cipher_list)
+          my_setopt_str(curl, CURLOPT_PROXY_SSL_CIPHER_LIST,
+                        config->proxy_cipher_list);
+
+        /* new in libcurl 7.9.2: */
+        if(config->disable_epsv)
+          /* disable it */
+          my_setopt(curl, CURLOPT_FTP_USE_EPSV, 0L);
+
+        /* new in libcurl 7.10.5 */
+        if(config->disable_eprt)
+          /* disable it */
+          my_setopt(curl, CURLOPT_FTP_USE_EPRT, 0L);
+
+        if(global->tracetype != TRACE_NONE) {
+          my_setopt(curl, CURLOPT_DEBUGFUNCTION, tool_debug_cb);
+          my_setopt(curl, CURLOPT_DEBUGDATA, config);
+          my_setopt(curl, CURLOPT_VERBOSE, 1L);
+        }
+
+        /* new in curl 7.9.3 */
+        if(config->engine) {
+          result = res_setopt_str(curl, CURLOPT_SSLENGINE, config->engine);
+          if(result)
+            goto show_error;
+        }
+
+        /* new in curl 7.10.7, extended in 7.19.4. Modified to use
+           CREATE_DIR_RETRY in 7.49.0 */
+        my_setopt(curl, CURLOPT_FTP_CREATE_MISSING_DIRS,
+                  (long)(config->ftp_create_dirs?
+                         CURLFTP_CREATE_DIR_RETRY:
+                         CURLFTP_CREATE_DIR_NONE));
+
+        /* new in curl 7.10.8 */
+        if(config->max_filesize)
+          my_setopt(curl, CURLOPT_MAXFILESIZE_LARGE,
+                    config->max_filesize);
+
+        if(4 == config->ip_version)
+          my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
+        else if(6 == config->ip_version)
+          my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
+        else
+          my_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_WHATEVER);
+
+        /* new in curl 7.15.5 */
+        if(config->ftp_ssl_reqd)
+          my_setopt_enum(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_ALL);
+
+        /* new in curl 7.11.0 */
+        else if(config->ftp_ssl)
+          my_setopt_enum(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_TRY);
+
+        /* new in curl 7.16.0 */
+        else if(config->ftp_ssl_control)
+          my_setopt_enum(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_CONTROL);
+
+        /* new in curl 7.16.1 */
+        if(config->ftp_ssl_ccc)
+          my_setopt_enum(curl, CURLOPT_FTP_SSL_CCC,
+                         (long)config->ftp_ssl_ccc_mode);
+
+        /* new in curl 7.19.4 */
+        if(config->socks5_gssapi_nec)
+          my_setopt_str(curl, CURLOPT_SOCKS5_GSSAPI_NEC,
+                        config->socks5_gssapi_nec);
+
+        /* new in curl 7.43.0 */
+        if(config->proxy_service_name)
+          my_setopt_str(curl, CURLOPT_PROXY_SERVICE_NAME,
+                        config->proxy_service_name);
+
+        /* new in curl 7.43.0 */
+        if(config->service_name)
+          my_setopt_str(curl, CURLOPT_SERVICE_NAME,
+                        config->service_name);
+
+        /* curl 7.13.0 */
+        my_setopt_str(curl, CURLOPT_FTP_ACCOUNT, config->ftp_account);
+
+        my_setopt(curl, CURLOPT_IGNORE_CONTENT_LENGTH, config->ignorecl?1L:0L);
+
+        /* curl 7.14.2 */
+        my_setopt(curl, CURLOPT_FTP_SKIP_PASV_IP, config->ftp_skip_ip?1L:0L);
+
+        /* curl 7.15.1 */
+        my_setopt(curl, CURLOPT_FTP_FILEMETHOD, (long)config->ftp_filemethod);
+
+        /* curl 7.15.2 */
+        if(config->localport) {
+          my_setopt(curl, CURLOPT_LOCALPORT, (long)config->localport);
+          my_setopt_str(curl, CURLOPT_LOCALPORTRANGE,
+                        (long)config->localportrange);
+        }
+
+        /* curl 7.15.5 */
+        my_setopt_str(curl, CURLOPT_FTP_ALTERNATIVE_TO_USER,
+                      config->ftp_alternative_to_user);
+
+        /* curl 7.16.0 */
+        if(config->disable_sessionid)
+          /* disable it */
+          my_setopt(curl, CURLOPT_SSL_SESSIONID_CACHE, 0L);
+
+        /* curl 7.16.2 */
+        if(config->raw) {
+          my_setopt(curl, CURLOPT_HTTP_CONTENT_DECODING, 0L);
+          my_setopt(curl, CURLOPT_HTTP_TRANSFER_DECODING, 0L);
+        }
+
+        /* curl 7.17.1 */
+        if(!config->nokeepalive) {
+          my_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L);
+          if(config->alivetime != 0) {
+            my_setopt(curl, CURLOPT_TCP_KEEPIDLE, config->alivetime);
+            my_setopt(curl, CURLOPT_TCP_KEEPINTVL, config->alivetime);
+          }
+        }
+        else
+          my_setopt(curl, CURLOPT_TCP_KEEPALIVE, 0L);
+
+        /* curl 7.20.0 */
+        if(config->tftp_blksize)
+          my_setopt(curl, CURLOPT_TFTP_BLKSIZE, config->tftp_blksize);
+
+        if(config->mail_from)
+          my_setopt_str(curl, CURLOPT_MAIL_FROM, config->mail_from);
+
+        if(config->mail_rcpt)
+          my_setopt_slist(curl, CURLOPT_MAIL_RCPT, config->mail_rcpt);
+
+        /* curl 7.20.x */
+        if(config->ftp_pret)
+          my_setopt(curl, CURLOPT_FTP_USE_PRET, 1L);
+
+        if(config->proto_present)
+          my_setopt_flags(curl, CURLOPT_PROTOCOLS, config->proto);
+        if(config->proto_redir_present)
+          my_setopt_flags(curl, CURLOPT_REDIR_PROTOCOLS, config->proto_redir);
+
+        if(config->content_disposition
+           && (urlnode->flags & GETOUT_USEREMOTE))
+          hdrcbdata.honor_cd_filename = TRUE;
+        else
+          hdrcbdata.honor_cd_filename = FALSE;
+
+        hdrcbdata.outs = &outs;
+        hdrcbdata.heads = &heads;
+
+        my_setopt(curl, CURLOPT_HEADERFUNCTION, tool_header_cb);
+        my_setopt(curl, CURLOPT_HEADERDATA, &hdrcbdata);
+
+        if(config->resolve)
+          /* new in 7.21.3 */
+          my_setopt_slist(curl, CURLOPT_RESOLVE, config->resolve);
+
+        if(config->connect_to)
+          /* new in 7.49.0 */
+          my_setopt_slist(curl, CURLOPT_CONNECT_TO, config->connect_to);
+
+        /* new in 7.21.4 */
+        if(curlinfo->features & CURL_VERSION_TLSAUTH_SRP) {
+          if(config->tls_username)
+            my_setopt_str(curl, CURLOPT_TLSAUTH_USERNAME,
+                          config->tls_username);
+          if(config->tls_password)
+            my_setopt_str(curl, CURLOPT_TLSAUTH_PASSWORD,
+                          config->tls_password);
+          if(config->tls_authtype)
+            my_setopt_str(curl, CURLOPT_TLSAUTH_TYPE,
+                          config->tls_authtype);
+          if(config->proxy_tls_username)
+            my_setopt_str(curl, CURLOPT_PROXY_TLSAUTH_USERNAME,
+                          config->proxy_tls_username);
+          if(config->proxy_tls_password)
+            my_setopt_str(curl, CURLOPT_PROXY_TLSAUTH_PASSWORD,
+                          config->proxy_tls_password);
+          if(config->proxy_tls_authtype)
+            my_setopt_str(curl, CURLOPT_PROXY_TLSAUTH_TYPE,
+                          config->proxy_tls_authtype);
+        }
+
+        /* new in 7.22.0 */
+        if(config->gssapi_delegation)
+          my_setopt_str(curl, CURLOPT_GSSAPI_DELEGATION,
+                        config->gssapi_delegation);
+
+        /* new in 7.25.0 and 7.44.0 */
+        {
+          long mask = (config->ssl_allow_beast ? CURLSSLOPT_ALLOW_BEAST : 0) |
+                      (config->ssl_no_revoke ? CURLSSLOPT_NO_REVOKE : 0);
+          if(mask)
+            my_setopt_bitmask(curl, CURLOPT_SSL_OPTIONS, mask);
+        }
+
+        if(config->proxy_ssl_allow_beast)
+          my_setopt(curl, CURLOPT_PROXY_SSL_OPTIONS,
+                    (long)CURLSSLOPT_ALLOW_BEAST);
+
+        if(config->mail_auth)
+          my_setopt_str(curl, CURLOPT_MAIL_AUTH, config->mail_auth);
+
+        /* new in 7.31.0 */
+        if(config->sasl_ir)
+          my_setopt(curl, CURLOPT_SASL_IR, 1L);
+
+        if(config->nonpn) {
+          my_setopt(curl, CURLOPT_SSL_ENABLE_NPN, 0L);
+        }
+
+        if(config->noalpn) {
+          my_setopt(curl, CURLOPT_SSL_ENABLE_ALPN, 0L);
+        }
+
+        /* new in 7.40.0, abstract support added in 7.53.0 */
+        if(config->unix_socket_path) {
+          if(config->abstract_unix_socket) {
+            my_setopt_str(curl, CURLOPT_ABSTRACT_UNIX_SOCKET,
+                          config->unix_socket_path);
+          }
+          else {
+            my_setopt_str(curl, CURLOPT_UNIX_SOCKET_PATH,
+                          config->unix_socket_path);
+          }
+        }
+        /* new in 7.45.0 */
+        if(config->proto_default)
+          my_setopt_str(curl, CURLOPT_DEFAULT_PROTOCOL, config->proto_default);
+
+        /* new in 7.47.0 */
+        if(config->expect100timeout > 0)
+          my_setopt_str(curl, CURLOPT_EXPECT_100_TIMEOUT_MS,
+                        (long)(config->expect100timeout*1000));
+
+        /* new in 7.48.0 */
+        if(config->tftp_no_options)
+          my_setopt(curl, CURLOPT_TFTP_NO_OPTIONS, 1L);
+
+        /* initialize retry vars for loop below */
+        retry_sleep_default = (config->retry_delay) ?
+          config->retry_delay*1000L : RETRY_SLEEP_DEFAULT; /* ms */
+
+        retry_numretries = config->req_retry;
+        retry_sleep = retry_sleep_default; /* ms */
+        retrystart = tvnow();
+
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+        if(global->libcurl) {
+          result = easysrc_perform();
+          if(result)
+            goto show_error;
+        }
+#endif
+
+        for(;;) {
+#ifdef USE_METALINK
+          if(!metalink && config->use_metalink) {
+            /* If outs.metalink_parser is non-NULL, delete it first. */
+            if(outs.metalink_parser)
+              metalink_parser_context_delete(outs.metalink_parser);
+            outs.metalink_parser = metalink_parser_context_new();
+            if(outs.metalink_parser == NULL) {
+              result = CURLE_OUT_OF_MEMORY;
+              goto show_error;
+            }
+            fprintf(config->global->errors,
+                    "Metalink: parsing (%s) metalink/XML...\n", this_url);
+          }
+          else if(metalink)
+            fprintf(config->global->errors,
+                    "Metalink: fetching (%s) from (%s)...\n",
+                    mlfile->filename, this_url);
+#endif /* USE_METALINK */
+
+#ifdef CURLDEBUG
+          if(config->test_event_based)
+            result = curl_easy_perform_ev(curl);
+          else
+#endif
+          result = curl_easy_perform(curl);
+
+          if(!result && !outs.stream && !outs.bytes) {
+            /* we have received no data despite the transfer was successful
+               ==> force cration of an empty output file (if an output file
+               was specified) */
+            long cond_unmet = 0L;
+            /* do not create (or even overwrite) the file in case we get no
+               data because of unmet condition */
+            curl_easy_getinfo(curl, CURLINFO_CONDITION_UNMET, &cond_unmet);
+            if(!cond_unmet && !tool_create_output_file(&outs))
+              result = CURLE_WRITE_ERROR;
+          }
+
+          if(outs.is_cd_filename && outs.stream && !global->mute &&
+             outs.filename)
+            printf("curl: Saved to filename '%s'\n", outs.filename);
+
+          /* if retry-max-time is non-zero, make sure we haven't exceeded the
+             time */
+          if(retry_numretries &&
+             (!config->retry_maxtime ||
+              (tvdiff(tvnow(), retrystart) <
+               config->retry_maxtime*1000L)) ) {
+            enum {
+              RETRY_NO,
+              RETRY_TIMEOUT,
+              RETRY_CONNREFUSED,
+              RETRY_HTTP,
+              RETRY_FTP,
+              RETRY_LAST /* not used */
+            } retry = RETRY_NO;
+            long response;
+            if((CURLE_OPERATION_TIMEDOUT == result) ||
+               (CURLE_COULDNT_RESOLVE_HOST == result) ||
+               (CURLE_COULDNT_RESOLVE_PROXY == result) ||
+               (CURLE_FTP_ACCEPT_TIMEOUT == result))
+              /* retry timeout always */
+              retry = RETRY_TIMEOUT;
+            else if(config->retry_connrefused &&
+                    (CURLE_COULDNT_CONNECT == result)) {
+              long oserrno;
+              curl_easy_getinfo(curl, CURLINFO_OS_ERRNO, &oserrno);
+              if(ECONNREFUSED == oserrno)
+                retry = RETRY_CONNREFUSED;
+            }
+            else if((CURLE_OK == result) ||
+                    (config->failonerror &&
+                     (CURLE_HTTP_RETURNED_ERROR == result))) {
+              /* If it returned OK. _or_ failonerror was enabled and it
+                 returned due to such an error, check for HTTP transient
+                 errors to retry on. */
+              char *effective_url = NULL;
+              curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url);
+              if(effective_url &&
+                 checkprefix("http", effective_url)) {
+                /* This was HTTP(S) */
+                curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response);
+
+                switch(response) {
+                case 500: /* Internal Server Error */
+                case 502: /* Bad Gateway */
+                case 503: /* Service Unavailable */
+                case 504: /* Gateway Timeout */
+                  retry = RETRY_HTTP;
+                  /*
+                   * At this point, we have already written data to the output
+                   * file (or terminal). If we write to a file, we must rewind
+                   * or close/re-open the file so that the next attempt starts
+                   * over from the beginning.
+                   *
+                   * TODO: similar action for the upload case. We might need
+                   * to start over reading from a previous point if we have
+                   * uploaded something when this was returned.
+                   */
+                  break;
+                }
+              }
+            } /* if CURLE_OK */
+            else if(result) {
+              curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response);
+
+              if(response/100 == 4)
+                /*
+                 * This is typically when the FTP server only allows a certain
+                 * amount of users and we are not one of them.  All 4xx codes
+                 * are transient.
+                 */
+                retry = RETRY_FTP;
+            }
+
+            if(retry) {
+              static const char * const m[]={
+                NULL,
+                "timeout",
+                "connection refused",
+                "HTTP error",
+                "FTP error"
+              };
+
+              warnf(config->global, "Transient problem: %s "
+                    "Will retry in %ld seconds. "
+                    "%ld retries left.\n",
+                    m[retry], retry_sleep/1000L, retry_numretries);
+
+              tool_go_sleep(retry_sleep);
+              retry_numretries--;
+              if(!config->retry_delay) {
+                retry_sleep *= 2;
+                if(retry_sleep > RETRY_SLEEP_MAX)
+                  retry_sleep = RETRY_SLEEP_MAX;
+              }
+              if(outs.bytes && outs.filename && outs.stream) {
+                /* We have written data to a output file, we truncate file
+                 */
+                if(!global->mute)
+                  fprintf(global->errors, "Throwing away %"
+                          CURL_FORMAT_CURL_OFF_T " bytes\n",
+                          outs.bytes);
+                fflush(outs.stream);
+                /* truncate file at the position where we started appending */
+#ifdef HAVE_FTRUNCATE
+                if(ftruncate(fileno(outs.stream), outs.init)) {
+                  /* when truncate fails, we can't just append as then we'll
+                     create something strange, bail out */
+                  if(!global->mute)
+                    fprintf(global->errors,
+                            "failed to truncate, exiting\n");
+                  result = CURLE_WRITE_ERROR;
+                  goto quit_urls;
+                }
+                /* now seek to the end of the file, the position where we
+                   just truncated the file in a large file-safe way */
+                fseek(outs.stream, 0, SEEK_END);
+#else
+                /* ftruncate is not available, so just reposition the file
+                   to the location we would have truncated it. This won't
+                   work properly with large files on 32-bit systems, but
+                   most of those will have ftruncate. */
+                fseek(outs.stream, (long)outs.init, SEEK_SET);
+#endif
+                outs.bytes = 0; /* clear for next round */
+              }
+              continue; /* curl_easy_perform loop */
+            }
+          } /* if retry_numretries */
+          else if(metalink) {
+            /* Metalink: Decide to try the next resource or
+               not. Basically, we want to try the next resource if
+               download was not successful. */
+            long response;
+            if(CURLE_OK == result) {
+              /* TODO We want to try next resource when download was
+                 not successful. How to know that? */
+              char *effective_url = NULL;
+              curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &effective_url);
+              if(effective_url &&
+                 curl_strnequal(effective_url, "http", 4)) {
+                /* This was HTTP(S) */
+                curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response);
+                if(response != 200 && response != 206) {
+                  metalink_next_res = 1;
+                  fprintf(global->errors,
+                          "Metalink: fetching (%s) from (%s) FAILED "
+                          "(HTTP status code %ld)\n",
+                          mlfile->filename, this_url, response);
+                }
+              }
+            }
+            else {
+              metalink_next_res = 1;
+              fprintf(global->errors,
+                      "Metalink: fetching (%s) from (%s) FAILED (%s)\n",
+                      mlfile->filename, this_url,
+                      (errorbuffer[0]) ?
+                      errorbuffer : curl_easy_strerror(result));
+            }
+          }
+          if(metalink && !metalink_next_res)
+            fprintf(global->errors, "Metalink: fetching (%s) from (%s) OK\n",
+                    mlfile->filename, this_url);
+
+          /* In all ordinary cases, just break out of loop here */
+          break; /* curl_easy_perform loop */
+
+        }
+
+        if((global->progressmode == CURL_PROGRESS_BAR) &&
+           progressbar.calls)
+          /* if the custom progress bar has been displayed, we output a
+             newline here */
+          fputs("\n", progressbar.out);
+
+        if(config->writeout)
+          ourWriteOut(curl, &outs, config->writeout);
+
+        /*
+        ** Code within this loop may jump directly here to label 'show_error'
+        ** in order to display an error message for CURLcode stored in 'res'
+        ** variable and exit loop once that necessary writing and cleanup
+        ** in label 'quit_urls' has been done.
+        */
+
+        show_error:
+
+#ifdef __VMS
+        if(is_vms_shell()) {
+          /* VMS DCL shell behavior */
+          if(!global->showerror)
+            vms_show = VMSSTS_HIDE;
+        }
+        else
+#endif
+        if(result && global->showerror) {
+          fprintf(global->errors, "curl: (%d) %s\n", result, (errorbuffer[0]) ?
+                  errorbuffer : curl_easy_strerror(result));
+          if(result == CURLE_SSL_CACERT)
+            fprintf(global->errors, "%s%s%s",
+                    CURL_CA_CERT_ERRORMSG1, CURL_CA_CERT_ERRORMSG2,
+                    ((curlinfo->features & CURL_VERSION_HTTPS_PROXY) ?
+                     "HTTPS-proxy has similar options --proxy-cacert "
+                     "and --proxy-insecure.\n" :
+                     ""));
+        }
+
+        /* Fall through comment to 'quit_urls' label */
+
+        /*
+        ** Upon error condition and always that a message has already been
+        ** displayed, code within this loop may jump directly here to label
+        ** 'quit_urls' otherwise it should jump to 'show_error' label above.
+        **
+        ** When 'res' variable is _not_ CURLE_OK loop will exit once that
+        ** all code following 'quit_urls' has been executed. Otherwise it
+        ** will loop to the beginning from where it may exit if there are
+        ** no more urls left.
+        */
+
+        quit_urls:
+
+        /* Set file extended attributes */
+        if(!result && config->xattr && outs.fopened && outs.stream) {
+          int rc = fwrite_xattr(curl, fileno(outs.stream));
+          if(rc)
+            warnf(config->global, "Error setting extended attributes: %s\n",
+                  strerror(errno));
+        }
+
+        /* Close the file */
+        if(outs.fopened && outs.stream) {
+          int rc = fclose(outs.stream);
+          if(!result && rc) {
+            /* something went wrong in the writing process */
+            result = CURLE_WRITE_ERROR;
+            fprintf(global->errors, "(%d) Failed writing body\n", result);
+          }
+        }
+        else if(!outs.s_isreg && outs.stream) {
+          /* Dump standard stream buffered data */
+          int rc = fflush(outs.stream);
+          if(!result && rc) {
+            /* something went wrong in the writing process */
+            result = CURLE_WRITE_ERROR;
+            fprintf(global->errors, "(%d) Failed writing body\n", result);
+          }
+        }
+
+#ifdef __AMIGA__
+        if(!result && outs.s_isreg && outs.filename) {
+          /* Set the url (up to 80 chars) as comment for the file */
+          if(strlen(url) > 78)
+            url[79] = '\0';
+          SetComment(outs.filename, url);
+        }
+#endif
+
+#if defined(HAVE_UTIME) || \
+    (defined(WIN32) && (CURL_SIZEOF_CURL_OFF_T >= 8))
+        /* File time can only be set _after_ the file has been closed */
+        if(!result && config->remote_time && outs.s_isreg && outs.filename) {
+          /* Ask libcurl if we got a remote file time */
+          long filetime = -1;
+          curl_easy_getinfo(curl, CURLINFO_FILETIME, &filetime);
+          if(filetime >= 0)
+            setfiletime(filetime, outs.filename, config->global->errors);
+        }
+#endif /* defined(HAVE_UTIME) || \
+          (defined(WIN32) && (CURL_SIZEOF_CURL_OFF_T >= 8)) */
+
+#ifdef USE_METALINK
+        if(!metalink && config->use_metalink && result == CURLE_OK) {
+          int rv = parse_metalink(config, &outs, this_url);
+          if(rv == 0)
+            fprintf(config->global->errors, "Metalink: parsing (%s) OK\n",
+                    this_url);
+          else if(rv == -1)
+            fprintf(config->global->errors, "Metalink: parsing (%s) FAILED\n",
+                    this_url);
+        }
+        else if(metalink && result == CURLE_OK && !metalink_next_res) {
+          int rv = metalink_check_hash(global, mlfile, outs.filename);
+          if(rv == 0) {
+            metalink_next_res = 1;
+          }
+        }
+#endif /* USE_METALINK */
+
+        /* No more business with this output struct */
+        if(outs.alloc_filename)
+          Curl_safefree(outs.filename);
+#ifdef USE_METALINK
+        if(outs.metalink_parser)
+          metalink_parser_context_delete(outs.metalink_parser);
+#endif /* USE_METALINK */
+        memset(&outs, 0, sizeof(struct OutStruct));
+        hdrcbdata.outs = NULL;
+
+        /* Free loop-local allocated memory and close loop-local opened fd */
+
+        Curl_safefree(outfile);
+        Curl_safefree(this_url);
+
+        if(infdopen)
+          close(infd);
+
+        if(metalink) {
+          /* Should exit if error is fatal. */
+          if(is_fatal_error(result)) {
+            break;
+          }
+          if(!metalink_next_res)
+            break;
+          mlres = mlres->next;
+          if(mlres == NULL)
+            /* TODO If metalink_next_res is 1 and mlres is NULL,
+             * set res to error code
+             */
+            break;
+        }
+        else
+        if(urlnum > 1) {
+          /* when url globbing, exit loop upon critical error */
+          if(is_fatal_error(result))
+            break;
+        }
+        else if(result)
+          /* when not url globbing, exit loop upon any error */
+          break;
+
+      } /* loop to the next URL */
+
+      /* Free loop-local allocated memory */
+
+      Curl_safefree(uploadfile);
+
+      if(urls) {
+        /* Free list of remaining URLs */
+        glob_cleanup(urls);
+        urls = NULL;
+      }
+
+      if(infilenum > 1) {
+        /* when file globbing, exit loop upon critical error */
+        if(is_fatal_error(result))
+          break;
+      }
+      else if(result)
+        /* when not file globbing, exit loop upon any error */
+        break;
+
+    } /* loop to the next globbed upload file */
+
+    /* Free loop-local allocated memory */
+
+    Curl_safefree(outfiles);
+
+    if(inglob) {
+      /* Free list of globbed upload files */
+      glob_cleanup(inglob);
+      inglob = NULL;
+    }
+
+    /* Free this URL node data without destroying the
+       the node itself nor modifying next pointer. */
+    Curl_safefree(urlnode->url);
+    Curl_safefree(urlnode->outfile);
+    Curl_safefree(urlnode->infile);
+    urlnode->flags = 0;
+
+    /*
+    ** Bail out upon critical errors or --fail-early
+    */
+    if(is_fatal_error(result) || (result && global->fail_early))
+      goto quit_curl;
+
+  } /* for-loop through all URLs */
+
+  /*
+  ** Nested loops end here.
+  */
+
+  quit_curl:
+
+  /* Reset the global config variables */
+  global->noprogress = orig_noprogress;
+  global->isatty = orig_isatty;
+
+  /* Free function-local referenced allocated memory */
+  Curl_safefree(httpgetfields);
+
+  /* Free list of given URLs */
+  clean_getout(config);
+
+  hdrcbdata.heads = NULL;
+
+  /* Close function-local opened file descriptors */
+  if(heads.fopened && heads.stream)
+    fclose(heads.stream);
+
+  if(heads.alloc_filename)
+    Curl_safefree(heads.filename);
+
+  /* Release metalink related resources here */
+  clean_metalink(config);
+
+  return result;
+}
+
+CURLcode operate(struct GlobalConfig *config, int argc, argv_item_t argv[])
+{
+  CURLcode result = CURLE_OK;
+
+  /* Setup proper locale from environment */
+#ifdef HAVE_SETLOCALE
+  setlocale(LC_ALL, "");
+#endif
+
+  /* Parse .curlrc if necessary */
+  if((argc == 1) ||
+     (!curl_strequal(argv[1], "-q") &&
+      !curl_strequal(argv[1], "--disable"))) {
+    parseconfig(NULL, config); /* ignore possible failure */
+
+    /* If we had no arguments then make sure a url was specified in .curlrc */
+    if((argc < 2) && (!config->first->url_list)) {
+      helpf(config->errors, NULL);
+      result = CURLE_FAILED_INIT;
+    }
+  }
+
+  if(!result) {
+    /* Parse the command line arguments */
+    ParameterError res = parse_args(config, argc, argv);
+    if(res) {
+      result = CURLE_OK;
+
+      /* Check if we were asked for the help */
+      if(res == PARAM_HELP_REQUESTED)
+        tool_help();
+      /* Check if we were asked for the manual */
+      else if(res == PARAM_MANUAL_REQUESTED)
+        hugehelp();
+      /* Check if we were asked for the version information */
+      else if(res == PARAM_VERSION_INFO_REQUESTED)
+        tool_version_info();
+      /* Check if we were asked to list the SSL engines */
+      else if(res == PARAM_ENGINES_REQUESTED)
+        tool_list_engines(config->easy);
+      else if(res == PARAM_LIBCURL_UNSUPPORTED_PROTOCOL)
+        result = CURLE_UNSUPPORTED_PROTOCOL;
+      else
+        result = CURLE_FAILED_INIT;
+    }
+    else {
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+      if(config->libcurl) {
+        /* Initialise the libcurl source output */
+        result = easysrc_init();
+      }
+#endif
+
+      /* Perform the main operations */
+      if(!result) {
+        size_t count = 0;
+        struct OperationConfig *operation = config->first;
+
+        /* Get the required aguments for each operation */
+        while(!result && operation) {
+          result = get_args(operation, count++);
+
+          operation = operation->next;
+        }
+
+        /* Set the current operation pointer */
+        config->current = config->first;
+
+        /* Perform each operation */
+        while(!result && config->current) {
+          result = operate_do(config, config->current);
+
+          config->current = config->current->next;
+
+          if(config->current && config->current->easy)
+            curl_easy_reset(config->current->easy);
+        }
+
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+        if(config->libcurl) {
+          /* Cleanup the libcurl source output */
+          easysrc_cleanup();
+
+          /* Dump the libcurl code if previously enabled */
+          dumpeasysrc(config);
+        }
+#endif
+      }
+      else
+        helpf(config->errors, "out of memory\n");
+    }
+  }
+
+  return result;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_operate.h b/ap/lib/libcurl/curl-7.54.1/src/tool_operate.h
new file mode 100644
index 0000000..c54fe3f
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_operate.h
@@ -0,0 +1,29 @@
+#ifndef HEADER_CURL_TOOL_OPERATE_H
+#define HEADER_CURL_TOOL_OPERATE_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+CURLcode operate(struct GlobalConfig *config, int argc, argv_item_t argv[]);
+
+#endif /* HEADER_CURL_TOOL_OPERATE_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_operhlp.c b/ap/lib/libcurl/curl-7.54.1/src/tool_operhlp.c
new file mode 100644
index 0000000..21b5ffe
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_operhlp.c
@@ -0,0 +1,190 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "strcase.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_convert.h"
+#include "tool_doswin.h"
+#include "tool_operhlp.h"
+#include "tool_metalink.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+void clean_getout(struct OperationConfig *config)
+{
+  struct getout *next;
+  struct getout *node = config->url_list;
+
+  while(node) {
+    next = node->next;
+    Curl_safefree(node->url);
+    Curl_safefree(node->outfile);
+    Curl_safefree(node->infile);
+    Curl_safefree(node);
+    node = next;
+  }
+  config->url_list = NULL;
+}
+
+bool output_expected(const char *url, const char *uploadfile)
+{
+  if(!uploadfile)
+    return TRUE;  /* download */
+  if(checkprefix("http://", url) || checkprefix("https://", url))
+    return TRUE;   /* HTTP(S) upload */
+
+  return FALSE; /* non-HTTP upload, probably no output should be expected */
+}
+
+bool stdin_upload(const char *uploadfile)
+{
+  return (!strcmp(uploadfile, "-") ||
+          !strcmp(uploadfile, ".")) ? TRUE : FALSE;
+}
+
+/*
+ * Adds the file name to the URL if it doesn't already have one.
+ * url will be freed before return if the returned pointer is different
+ */
+char *add_file_name_to_url(CURL *curl, char *url, const char *filename)
+{
+  /* If no file name part is given in the URL, we add this file name */
+  char *ptr = strstr(url, "://");
+  if(ptr)
+    ptr += 3;
+  else
+    ptr = url;
+  ptr = strrchr(ptr, '/');
+  if(!ptr || !strlen(++ptr)) {
+    /* The URL has no file name part, add the local file name. In order
+       to be able to do so, we have to create a new URL in another
+       buffer.*/
+
+    /* We only want the part of the local path that is on the right
+       side of the rightmost slash and backslash. */
+    const char *filep = strrchr(filename, '/');
+    char *file2 = strrchr(filep?filep:filename, '\\');
+    char *encfile;
+
+    if(file2)
+      filep = file2 + 1;
+    else if(filep)
+      filep++;
+    else
+      filep = filename;
+
+    /* URL encode the file name */
+    encfile = curl_easy_escape(curl, filep, 0 /* use strlen */);
+    if(encfile) {
+      char *urlbuffer;
+      if(ptr)
+        /* there is a trailing slash on the URL */
+        urlbuffer = aprintf("%s%s", url, encfile);
+      else
+        /* there is no trailing slash on the URL */
+        urlbuffer = aprintf("%s/%s", url, encfile);
+
+      curl_free(encfile);
+      Curl_safefree(url);
+
+      if(!urlbuffer)
+        return NULL;
+
+      url = urlbuffer; /* use our new URL instead! */
+    }
+    else
+      Curl_safefree(url);
+  }
+  return url;
+}
+
+/* Extracts the name portion of the URL.
+ * Returns a pointer to a heap-allocated string or NULL if
+ * no name part, at location indicated by first argument.
+ */
+CURLcode get_url_file_name(char **filename, const char *url)
+{
+  const char *pc, *pc2;
+
+  *filename = NULL;
+
+  /* Find and get the remote file name */
+  pc = strstr(url, "://");
+  if(pc)
+    pc += 3;
+  else
+    pc = url;
+
+  pc2 = strrchr(pc, '\\');
+  pc = strrchr(pc, '/');
+  if(pc2 && (!pc || pc < pc2))
+    pc = pc2;
+
+  if(pc)
+    /* duplicate the string beyond the slash */
+    pc++;
+  else
+    /* no slash => empty string */
+    pc = "";
+
+  *filename = strdup(pc);
+  if(!*filename)
+    return CURLE_OUT_OF_MEMORY;
+
+#if defined(MSDOS) || defined(WIN32)
+  {
+    char *sanitized;
+    SANITIZEcode sc = sanitize_file_name(&sanitized, *filename, 0);
+    Curl_safefree(*filename);
+    if(sc)
+      return CURLE_URL_MALFORMAT;
+    *filename = sanitized;
+  }
+#endif /* MSDOS || WIN32 */
+
+  /* in case we built debug enabled, we allow an environment variable
+   * named CURL_TESTDIR to prefix the given file name to put it into a
+   * specific directory
+   */
+#ifdef DEBUGBUILD
+  {
+    char *tdir = curlx_getenv("CURL_TESTDIR");
+    if(tdir) {
+      char buffer[512]; /* suitably large */
+      snprintf(buffer, sizeof(buffer), "%s/%s", tdir, *filename);
+      Curl_safefree(*filename);
+      *filename = strdup(buffer); /* clone the buffer */
+      curl_free(tdir);
+      if(!*filename)
+        return CURLE_OUT_OF_MEMORY;
+    }
+  }
+#endif
+
+  return CURLE_OK;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_operhlp.h b/ap/lib/libcurl/curl-7.54.1/src/tool_operhlp.h
new file mode 100644
index 0000000..446c560
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_operhlp.h
@@ -0,0 +1,39 @@
+#ifndef HEADER_CURL_TOOL_OPERHLP_H
+#define HEADER_CURL_TOOL_OPERHLP_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+struct OperationConfig;
+
+void clean_getout(struct OperationConfig *config);
+
+bool output_expected(const char *url, const char *uploadfile);
+
+bool stdin_upload(const char *uploadfile);
+
+char *add_file_name_to_url(CURL *curl, char *url, const char *filename);
+
+CURLcode get_url_file_name(char **filename, const char *url);
+
+#endif /* HEADER_CURL_TOOL_OPERHLP_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_panykey.c b/ap/lib/libcurl/curl-7.54.1/src/tool_panykey.c
new file mode 100644
index 0000000..14e1e05
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_panykey.c
@@ -0,0 +1,48 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#if defined(__SYMBIAN32__) || defined(NETWARE)
+
+#ifdef NETWARE
+#  ifdef __NOVELL_LIBC__
+#    include <screen.h>
+#  else
+#    include <nwconio.h>
+#  endif
+#endif
+
+#include "tool_panykey.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+void tool_pressanykey(void)
+{
+#if defined(__SYMBIAN32__)
+  getchar();
+#elif defined(NETWARE)
+  pressanykey();
+#endif
+}
+
+#endif /* __SYMBIAN32__ || NETWARE */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_panykey.h b/ap/lib/libcurl/curl-7.54.1/src/tool_panykey.h
new file mode 100644
index 0000000..9d64418
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_panykey.h
@@ -0,0 +1,37 @@
+#ifndef HEADER_CURL_TOOL_PANYKEY_H
+#define HEADER_CURL_TOOL_PANYKEY_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#if defined(__SYMBIAN32__) || defined(NETWARE)
+
+void tool_pressanykey(void);
+
+#else
+
+#define tool_pressanykey() Curl_nop_stmt
+
+#endif
+
+#endif /* HEADER_CURL_TOOL_PANYKEY_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_paramhlp.c b/ap/lib/libcurl/curl-7.54.1/src/tool_paramhlp.c
new file mode 100644
index 0000000..6b534ce
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_paramhlp.c
@@ -0,0 +1,585 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "strcase.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_getparam.h"
+#include "tool_getpass.h"
+#include "tool_homedir.h"
+#include "tool_msgs.h"
+#include "tool_paramhlp.h"
+#include "tool_version.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+struct getout *new_getout(struct OperationConfig *config)
+{
+  struct getout *node = calloc(1, sizeof(struct getout));
+  struct getout *last = config->url_last;
+  if(node) {
+    /* append this new node last in the list */
+    if(last)
+      last->next = node;
+    else
+      config->url_list = node; /* first node */
+
+    /* move the last pointer */
+    config->url_last = node;
+
+    node->flags = config->default_node_flags;
+  }
+  return node;
+}
+
+ParameterError file2string(char **bufp, FILE *file)
+{
+  char buffer[256];
+  char *ptr;
+  char *string = NULL;
+  size_t stringlen = 0;
+  size_t buflen;
+
+  if(file) {
+    while(fgets(buffer, sizeof(buffer), file)) {
+      ptr = strchr(buffer, '\r');
+      if(ptr)
+        *ptr = '\0';
+      ptr = strchr(buffer, '\n');
+      if(ptr)
+        *ptr = '\0';
+      buflen = strlen(buffer);
+      ptr = realloc(string, stringlen+buflen+1);
+      if(!ptr) {
+        Curl_safefree(string);
+        return PARAM_NO_MEM;
+      }
+      string = ptr;
+      strcpy(string+stringlen, buffer);
+      stringlen += buflen;
+    }
+  }
+  *bufp = string;
+  return PARAM_OK;
+}
+
+ParameterError file2memory(char **bufp, size_t *size, FILE *file)
+{
+  char *newbuf;
+  char *buffer = NULL;
+  size_t alloc = 512;
+  size_t nused = 0;
+  size_t nread;
+
+  if(file) {
+    do {
+      if(!buffer || (alloc == nused)) {
+        /* size_t overflow detection for huge files */
+        if(alloc+1 > ((size_t)-1)/2) {
+          Curl_safefree(buffer);
+          return PARAM_NO_MEM;
+        }
+        alloc *= 2;
+        /* allocate an extra char, reserved space, for null termination */
+        newbuf = realloc(buffer, alloc+1);
+        if(!newbuf) {
+          Curl_safefree(buffer);
+          return PARAM_NO_MEM;
+        }
+        buffer = newbuf;
+      }
+      nread = fread(buffer+nused, 1, alloc-nused, file);
+      nused += nread;
+    } while(nread);
+    /* null terminate the buffer in case it's used as a string later */
+    buffer[nused] = '\0';
+    /* free trailing slack space, if possible */
+    if(alloc != nused) {
+      newbuf = realloc(buffer, nused+1);
+      if(!newbuf) {
+        Curl_safefree(buffer);
+        return PARAM_NO_MEM;
+      }
+      buffer = newbuf;
+    }
+    /* discard buffer if nothing was read */
+    if(!nused) {
+      Curl_safefree(buffer); /* no string */
+    }
+  }
+  *size = nused;
+  *bufp = buffer;
+  return PARAM_OK;
+}
+
+void cleanarg(char *str)
+{
+#ifdef HAVE_WRITABLE_ARGV
+  /* now that GetStr has copied the contents of nextarg, wipe the next
+   * argument out so that the username:password isn't displayed in the
+   * system process list */
+  if(str) {
+    size_t len = strlen(str);
+    memset(str, ' ', len);
+  }
+#else
+  (void)str;
+#endif
+}
+
+/*
+ * Parse the string and write the long in the given address. Return PARAM_OK
+ * on success, otherwise a parameter specific error enum.
+ *
+ * Since this function gets called with the 'nextarg' pointer from within the
+ * getparameter a lot, we must check it for NULL before accessing the str
+ * data.
+ */
+
+ParameterError str2num(long *val, const char *str)
+{
+  if(str) {
+    char *endptr;
+    long num = strtol(str, &endptr, 10);
+    if((endptr != str) && (endptr == str + strlen(str))) {
+      *val = num;
+      return PARAM_OK;  /* Ok */
+    }
+  }
+  return PARAM_BAD_NUMERIC; /* badness */
+}
+
+/*
+ * Parse the string and write the long in the given address. Return PARAM_OK
+ * on success, otherwise a parameter error enum. ONLY ACCEPTS POSITIVE NUMBERS!
+ *
+ * Since this function gets called with the 'nextarg' pointer from within the
+ * getparameter a lot, we must check it for NULL before accessing the str
+ * data.
+ */
+
+ParameterError str2unum(long *val, const char *str)
+{
+  ParameterError result = str2num(val, str);
+  if(result != PARAM_OK)
+    return result;
+  if(*val < 0)
+    return PARAM_NEGATIVE_NUMERIC;
+
+  return PARAM_OK;
+}
+
+/*
+ * Parse the string and write the double in the given address. Return PARAM_OK
+ * on success, otherwise a parameter specific error enum.
+ *
+ * Since this function gets called with the 'nextarg' pointer from within the
+ * getparameter a lot, we must check it for NULL before accessing the str
+ * data.
+ */
+
+ParameterError str2double(double *val, const char *str)
+{
+  if(str) {
+    char *endptr;
+    double num = strtod(str, &endptr);
+    if((endptr != str) && (endptr == str + strlen(str))) {
+      *val = num;
+      return PARAM_OK;  /* Ok */
+    }
+  }
+  return PARAM_BAD_NUMERIC; /* badness */
+}
+
+/*
+ * Parse the string and write the double in the given address. Return PARAM_OK
+ * on success, otherwise a parameter error enum. ONLY ACCEPTS POSITIVE NUMBERS!
+ *
+ * Since this function gets called with the 'nextarg' pointer from within the
+ * getparameter a lot, we must check it for NULL before accessing the str
+ * data.
+ */
+
+ParameterError str2udouble(double *val, const char *str)
+{
+  ParameterError result = str2double(val, str);
+  if(result != PARAM_OK)
+    return result;
+  if(*val < 0)
+    return PARAM_NEGATIVE_NUMERIC;
+
+  return PARAM_OK;
+}
+
+/*
+ * Parse the string and modify the long in the given address. Return
+ * non-zero on failure, zero on success.
+ *
+ * The string is a list of protocols
+ *
+ * Since this function gets called with the 'nextarg' pointer from within the
+ * getparameter a lot, we must check it for NULL before accessing the str
+ * data.
+ */
+
+long proto2num(struct OperationConfig *config, long *val, const char *str)
+{
+  char *buffer;
+  const char *sep = ",";
+  char *token;
+
+  static struct sprotos {
+    const char *name;
+    long bit;
+  } const protos[] = {
+    { "all", CURLPROTO_ALL },
+    { "http", CURLPROTO_HTTP },
+    { "https", CURLPROTO_HTTPS },
+    { "ftp", CURLPROTO_FTP },
+    { "ftps", CURLPROTO_FTPS },
+    { "scp", CURLPROTO_SCP },
+    { "sftp", CURLPROTO_SFTP },
+    { "telnet", CURLPROTO_TELNET },
+    { "ldap", CURLPROTO_LDAP },
+    { "ldaps", CURLPROTO_LDAPS },
+    { "dict", CURLPROTO_DICT },
+    { "file", CURLPROTO_FILE },
+    { "tftp", CURLPROTO_TFTP },
+    { "imap", CURLPROTO_IMAP },
+    { "imaps", CURLPROTO_IMAPS },
+    { "pop3", CURLPROTO_POP3 },
+    { "pop3s", CURLPROTO_POP3S },
+    { "smtp", CURLPROTO_SMTP },
+    { "smtps", CURLPROTO_SMTPS },
+    { "rtsp", CURLPROTO_RTSP },
+    { "gopher", CURLPROTO_GOPHER },
+    { "smb", CURLPROTO_SMB },
+    { "smbs", CURLPROTO_SMBS },
+    { NULL, 0 }
+  };
+
+  if(!str)
+    return 1;
+
+  buffer = strdup(str); /* because strtok corrupts it */
+  if(!buffer)
+    return 1;
+
+  /* Allow strtok() here since this isn't used threaded */
+  /* !checksrc! disable BANNEDFUNC 2 */
+  for(token = strtok(buffer, sep);
+      token;
+      token = strtok(NULL, sep)) {
+    enum e_action { allow, deny, set } action = allow;
+
+    struct sprotos const *pp;
+
+    /* Process token modifiers */
+    while(!ISALNUM(*token)) { /* may be NULL if token is all modifiers */
+      switch (*token++) {
+      case '=':
+        action = set;
+        break;
+      case '-':
+        action = deny;
+        break;
+      case '+':
+        action = allow;
+        break;
+      default: /* Includes case of terminating NULL */
+        Curl_safefree(buffer);
+        return 1;
+      }
+    }
+
+    for(pp=protos; pp->name; pp++) {
+      if(curl_strequal(token, pp->name)) {
+        switch(action) {
+        case deny:
+          *val &= ~(pp->bit);
+          break;
+        case allow:
+          *val |= pp->bit;
+          break;
+        case set:
+          *val = pp->bit;
+          break;
+        }
+        break;
+      }
+    }
+
+    if(!(pp->name)) { /* unknown protocol */
+      /* If they have specified only this protocol, we say treat it as
+         if no protocols are allowed */
+      if(action == set)
+        *val = 0;
+      warnf(config->global, "unrecognized protocol '%s'\n", token);
+    }
+  }
+  Curl_safefree(buffer);
+  return 0;
+}
+
+/**
+ * Check if the given string is a protocol supported by libcurl
+ *
+ * @param str  the protocol name
+ * @return PARAM_OK  protocol supported
+ * @return PARAM_LIBCURL_UNSUPPORTED_PROTOCOL  protocol not supported
+ * @return PARAM_REQUIRES_PARAMETER   missing parameter
+ */
+int check_protocol(const char *str)
+{
+  const char * const *pp;
+  const curl_version_info_data *curlinfo = curl_version_info(CURLVERSION_NOW);
+  if(!str)
+    return PARAM_REQUIRES_PARAMETER;
+  for(pp = curlinfo->protocols; *pp; pp++) {
+    if(curl_strequal(*pp, str))
+      return PARAM_OK;
+  }
+  return PARAM_LIBCURL_UNSUPPORTED_PROTOCOL;
+}
+
+/**
+ * Parses the given string looking for an offset (which may be a
+ * larger-than-integer value). The offset CANNOT be negative!
+ *
+ * @param val  the offset to populate
+ * @param str  the buffer containing the offset
+ * @return PARAM_OK if successful, a parameter specific error enum if failure.
+ */
+ParameterError str2offset(curl_off_t *val, const char *str)
+{
+  char *endptr;
+  if(str[0] == '-')
+    /* offsets aren't negative, this indicates weird input */
+    return PARAM_NEGATIVE_NUMERIC;
+
+#if(CURL_SIZEOF_CURL_OFF_T > CURL_SIZEOF_LONG)
+  *val = curlx_strtoofft(str, &endptr, 0);
+  if((*val == CURL_OFF_T_MAX || *val == CURL_OFF_T_MIN) && (ERRNO == ERANGE))
+    return PARAM_BAD_NUMERIC;
+#else
+  *val = strtol(str, &endptr, 0);
+  if((*val == LONG_MIN || *val == LONG_MAX) && ERRNO == ERANGE)
+    return PARAM_BAD_NUMERIC;
+#endif
+  if((endptr != str) && (endptr == str + strlen(str)))
+    return PARAM_OK;
+
+  return PARAM_BAD_NUMERIC;
+}
+
+static CURLcode checkpasswd(const char *kind, /* for what purpose */
+                            const size_t i,   /* operation index */
+                            const bool last,  /* TRUE if last operation */
+                            char **userpwd)   /* pointer to allocated string */
+{
+  char *psep;
+  char *osep;
+
+  if(!*userpwd)
+    return CURLE_OK;
+
+  /* Attempt to find the password separator */
+  psep = strchr(*userpwd, ':');
+
+  /* Attempt to find the options separator */
+  osep = strchr(*userpwd, ';');
+
+  if(!psep && **userpwd != ';') {
+    /* no password present, prompt for one */
+    char passwd[256] = "";
+    char prompt[256];
+    size_t passwdlen;
+    size_t userlen = strlen(*userpwd);
+    char *passptr;
+
+    if(osep)
+      *osep = '\0';
+
+    /* build a nice-looking prompt */
+    if(!i && last)
+      curlx_msnprintf(prompt, sizeof(prompt),
+                      "Enter %s password for user '%s':",
+                      kind, *userpwd);
+    else
+      curlx_msnprintf(prompt, sizeof(prompt),
+                      "Enter %s password for user '%s' on URL #%"
+                      CURL_FORMAT_CURL_OFF_TU ":",
+                      kind, *userpwd, (curl_off_t) (i + 1));
+
+    /* get password */
+    getpass_r(prompt, passwd, sizeof(passwd));
+    passwdlen = strlen(passwd);
+
+    if(osep)
+      *osep = ';';
+
+    /* extend the allocated memory area to fit the password too */
+    passptr = realloc(*userpwd,
+                      passwdlen + 1 + /* an extra for the colon */
+                      userlen + 1);   /* an extra for the zero */
+    if(!passptr)
+      return CURLE_OUT_OF_MEMORY;
+
+    /* append the password separated with a colon */
+    passptr[userlen] = ':';
+    memcpy(&passptr[userlen+1], passwd, passwdlen+1);
+    *userpwd = passptr;
+  }
+
+  return CURLE_OK;
+}
+
+ParameterError add2list(struct curl_slist **list, const char *ptr)
+{
+  struct curl_slist *newlist = curl_slist_append(*list, ptr);
+  if(newlist)
+    *list = newlist;
+  else
+    return PARAM_NO_MEM;
+
+  return PARAM_OK;
+}
+
+int ftpfilemethod(struct OperationConfig *config, const char *str)
+{
+  if(curl_strequal("singlecwd", str))
+    return CURLFTPMETHOD_SINGLECWD;
+  if(curl_strequal("nocwd", str))
+    return CURLFTPMETHOD_NOCWD;
+  if(curl_strequal("multicwd", str))
+    return CURLFTPMETHOD_MULTICWD;
+
+  warnf(config->global, "unrecognized ftp file method '%s', using default\n",
+        str);
+
+  return CURLFTPMETHOD_MULTICWD;
+}
+
+int ftpcccmethod(struct OperationConfig *config, const char *str)
+{
+  if(curl_strequal("passive", str))
+    return CURLFTPSSL_CCC_PASSIVE;
+  if(curl_strequal("active", str))
+    return CURLFTPSSL_CCC_ACTIVE;
+
+  warnf(config->global, "unrecognized ftp CCC method '%s', using default\n",
+        str);
+
+  return CURLFTPSSL_CCC_PASSIVE;
+}
+
+long delegation(struct OperationConfig *config, char *str)
+{
+  if(curl_strequal("none", str))
+    return CURLGSSAPI_DELEGATION_NONE;
+  if(curl_strequal("policy", str))
+    return CURLGSSAPI_DELEGATION_POLICY_FLAG;
+  if(curl_strequal("always", str))
+    return CURLGSSAPI_DELEGATION_FLAG;
+
+  warnf(config->global, "unrecognized delegation method '%s', using none\n",
+        str);
+
+  return CURLGSSAPI_DELEGATION_NONE;
+}
+
+/*
+ * my_useragent: returns allocated string with default user agent
+ */
+static char *my_useragent(void)
+{
+  return strdup(CURL_NAME "/" CURL_VERSION);
+}
+
+CURLcode get_args(struct OperationConfig *config, const size_t i)
+{
+  CURLcode result = CURLE_OK;
+  bool last = (config->next ? FALSE : TRUE);
+
+  /* Check we have a password for the given host user */
+  if(config->userpwd && !config->oauth_bearer) {
+    result = checkpasswd("host", i, last, &config->userpwd);
+    if(result)
+      return result;
+  }
+
+  /* Check we have a password for the given proxy user */
+  if(config->proxyuserpwd) {
+    result = checkpasswd("proxy", i, last, &config->proxyuserpwd);
+    if(result)
+      return result;
+  }
+
+  /* Check we have a user agent */
+  if(!config->useragent) {
+    config->useragent = my_useragent();
+    if(!config->useragent) {
+      helpf(config->global->errors, "out of memory\n");
+      result = CURLE_OUT_OF_MEMORY;
+    }
+  }
+
+  return result;
+}
+
+/*
+ * Parse the string and modify ssl_version in the val argument. Return PARAM_OK
+ * on success, otherwise a parameter error enum. ONLY ACCEPTS POSITIVE NUMBERS!
+ *
+ * Since this function gets called with the 'nextarg' pointer from within the
+ * getparameter a lot, we must check it for NULL before accessing the str
+ * data.
+ */
+
+ParameterError str2tls_max(long *val, const char *str)
+{
+   static struct s_tls_max {
+    const char *tls_max_str;
+    long tls_max;
+  } const tls_max_array[] = {
+    { "default", CURL_SSLVERSION_MAX_DEFAULT },
+    { "1.0",     CURL_SSLVERSION_MAX_TLSv1_0 },
+    { "1.1",     CURL_SSLVERSION_MAX_TLSv1_1 },
+    { "1.2",     CURL_SSLVERSION_MAX_TLSv1_2 },
+    { "1.3",     CURL_SSLVERSION_MAX_TLSv1_3 }
+  };
+  size_t i = 0;
+  if(!str)
+    return PARAM_REQUIRES_PARAMETER;
+  for(i = 0; i < sizeof(tls_max_array)/sizeof(tls_max_array[0]); i++) {
+    if(!strcmp(str, tls_max_array[i].tls_max_str)) {
+      *val = tls_max_array[i].tls_max;
+      return PARAM_OK;
+    }
+  }
+  return PARAM_BAD_USE;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_paramhlp.h b/ap/lib/libcurl/curl-7.54.1/src/tool_paramhlp.h
new file mode 100644
index 0000000..cdfbacf
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_paramhlp.h
@@ -0,0 +1,57 @@
+#ifndef HEADER_CURL_TOOL_PARAMHLP_H
+#define HEADER_CURL_TOOL_PARAMHLP_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+struct getout *new_getout(struct OperationConfig *config);
+
+ParameterError file2string(char **bufp, FILE *file);
+
+ParameterError file2memory(char **bufp, size_t *size, FILE *file);
+
+void cleanarg(char *str);
+
+ParameterError str2num(long *val, const char *str);
+ParameterError str2unum(long *val, const char *str);
+ParameterError str2double(double *val, const char *str);
+ParameterError str2udouble(double *val, const char *str);
+
+long proto2num(struct OperationConfig *config, long *val, const char *str);
+
+int check_protocol(const char *str);
+
+ParameterError str2offset(curl_off_t *val, const char *str);
+
+CURLcode get_args(struct OperationConfig *config, const size_t i);
+
+ParameterError add2list(struct curl_slist **list, const char *ptr);
+
+int ftpfilemethod(struct OperationConfig *config, const char *str);
+
+int ftpcccmethod(struct OperationConfig *config, const char *str);
+
+long delegation(struct OperationConfig *config, char *str);
+
+ParameterError str2tls_max(long *val, const char *str);
+
+#endif /* HEADER_CURL_TOOL_PARAMHLP_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_parsecfg.c b/ap/lib/libcurl/curl-7.54.1/src/tool_parsecfg.c
new file mode 100644
index 0000000..8432e57
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_parsecfg.c
@@ -0,0 +1,361 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_getparam.h"
+#include "tool_helpers.h"
+#include "tool_homedir.h"
+#include "tool_msgs.h"
+#include "tool_parsecfg.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#define CURLRC DOT_CHAR "curlrc"
+
+/* only acknowledge colon or equals as separators if the option was not
+   specified with an initial dash! */
+#define ISSEP(x,dash) (!dash && (((x) == '=') || ((x) == ':')))
+
+static const char *unslashquote(const char *line, char *param);
+static char *my_get_line(FILE *fp);
+
+/* return 0 on everything-is-fine, and non-zero otherwise */
+int parseconfig(const char *filename, struct GlobalConfig *global)
+{
+  int res;
+  FILE *file;
+  char filebuffer[512];
+  bool usedarg;
+  char *home;
+  int rc = 0;
+  struct OperationConfig *operation = global->first;
+
+  if(!filename || !*filename) {
+    /* NULL or no file name attempts to load .curlrc from the homedir! */
+
+#ifndef __AMIGA__
+    filename = CURLRC;   /* sensible default */
+    home = homedir();    /* portable homedir finder */
+    if(home) {
+      if(strlen(home) < (sizeof(filebuffer) - strlen(CURLRC))) {
+        snprintf(filebuffer, sizeof(filebuffer),
+                 "%s%s%s", home, DIR_CHAR, CURLRC);
+
+#ifdef WIN32
+        /* Check if the file exists - if not, try CURLRC in the same
+         * directory as our executable
+         */
+        file = fopen(filebuffer, FOPEN_READTEXT);
+        if(file != NULL) {
+          fclose(file);
+          filename = filebuffer;
+        }
+        else {
+          /* Get the filename of our executable. GetModuleFileName is
+           * already declared via inclusions done in setup header file.
+           * We assume that we are using the ASCII version here.
+           */
+          int n = GetModuleFileNameA(0, filebuffer, sizeof(filebuffer));
+          if(n > 0 && n < (int)sizeof(filebuffer)) {
+            /* We got a valid filename - get the directory part */
+            char *lastdirchar = strrchr(filebuffer, '\\');
+            if(lastdirchar) {
+              size_t remaining;
+              *lastdirchar = 0;
+              /* If we have enough space, build the RC filename */
+              remaining = sizeof(filebuffer) - strlen(filebuffer);
+              if(strlen(CURLRC) < remaining - 1) {
+                snprintf(lastdirchar, remaining,
+                         "%s%s", DIR_CHAR, CURLRC);
+                /* Don't bother checking if it exists - we do
+                 * that later
+                 */
+                filename = filebuffer;
+              }
+            }
+          }
+        }
+#else /* WIN32 */
+        filename = filebuffer;
+#endif /* WIN32 */
+      }
+      Curl_safefree(home); /* we've used it, now free it */
+    }
+
+# else /* __AMIGA__ */
+    /* On AmigaOS all the config files are into env:
+     */
+    filename = "ENV:" CURLRC;
+
+#endif
+  }
+
+  if(strcmp(filename, "-"))
+    file = fopen(filename, FOPEN_READTEXT);
+  else
+    file = stdin;
+
+  if(file) {
+    char *line;
+    char *aline;
+    char *option;
+    char *param;
+    int lineno = 0;
+    bool alloced_param;
+    bool dashed_option;
+
+    while(NULL != (aline = my_get_line(file))) {
+      lineno++;
+      line = aline;
+      alloced_param=FALSE;
+
+      /* line with # in the first non-blank column is a comment! */
+      while(*line && ISSPACE(*line))
+        line++;
+
+      switch(*line) {
+      case '#':
+      case '/':
+      case '\r':
+      case '\n':
+      case '*':
+      case '\0':
+        Curl_safefree(aline);
+        continue;
+      }
+
+      /* the option keywords starts here */
+      option = line;
+
+      /* the option starts with a dash? */
+      dashed_option = option[0]=='-'?TRUE:FALSE;
+
+      while(*line && !ISSPACE(*line) && !ISSEP(*line, dashed_option))
+        line++;
+      /* ... and has ended here */
+
+      if(*line)
+        *line++ = '\0'; /* zero terminate, we have a local copy of the data */
+
+#ifdef DEBUG_CONFIG
+      fprintf(stderr, "GOT: %s\n", option);
+#endif
+
+      /* pass spaces and separator(s) */
+      while(*line && (ISSPACE(*line) || ISSEP(*line, dashed_option)))
+        line++;
+
+      /* the parameter starts here (unless quoted) */
+      if(*line == '\"') {
+        /* quoted parameter, do the quote dance */
+        line++;
+        param = malloc(strlen(line) + 1); /* parameter */
+        if(!param) {
+          /* out of memory */
+          Curl_safefree(aline);
+          rc = 1;
+          break;
+        }
+        alloced_param = TRUE;
+        (void)unslashquote(line, param);
+      }
+      else {
+        param = line; /* parameter starts here */
+        while(*line && !ISSPACE(*line))
+          line++;
+
+        if(*line) {
+          *line = '\0'; /* zero terminate */
+
+          /* to detect mistakes better, see if there's data following */
+          line++;
+          /* pass all spaces */
+          while(*line && ISSPACE(*line))
+            line++;
+
+          switch(*line) {
+          case '\0':
+          case '\r':
+          case '\n':
+          case '#': /* comment */
+            break;
+          default:
+            warnf(operation->global, "%s:%d: warning: '%s' uses unquoted "
+                  "white space in the line that may cause side-effects!\n",
+                  filename, lineno, option);
+          }
+        }
+        if(!*param)
+          /* do this so getparameter can check for required parameters.
+             Otherwise it always thinks there's a parameter. */
+          param = NULL;
+      }
+
+#ifdef DEBUG_CONFIG
+      fprintf(stderr, "PARAM: \"%s\"\n",(param ? param : "(null)"));
+#endif
+      res = getparameter(option, param, &usedarg, global, operation);
+
+      if(param && *param && !usedarg)
+        /* we passed in a parameter that wasn't used! */
+        res = PARAM_GOT_EXTRA_PARAMETER;
+
+      if(res == PARAM_NEXT_OPERATION) {
+        if(operation->url_list && operation->url_list->url) {
+          /* Allocate the next config */
+          operation->next = malloc(sizeof(struct OperationConfig));
+          if(operation->next) {
+            /* Initialise the newly created config */
+            config_init(operation->next);
+
+            /* Copy the easy handle */
+            operation->next->easy = global->easy;
+
+            /* Set the global config pointer */
+            operation->next->global = global;
+
+            /* Update the last operation pointer */
+            global->last = operation->next;
+
+            /* Move onto the new config */
+            operation->next->prev = operation;
+            operation = operation->next;
+          }
+          else
+            res = PARAM_NO_MEM;
+        }
+      }
+
+      if(res != PARAM_OK && res != PARAM_NEXT_OPERATION) {
+        /* the help request isn't really an error */
+        if(!strcmp(filename, "-")) {
+          filename = "<stdin>";
+        }
+        if(res != PARAM_HELP_REQUESTED &&
+           res != PARAM_MANUAL_REQUESTED &&
+           res != PARAM_VERSION_INFO_REQUESTED &&
+           res != PARAM_ENGINES_REQUESTED) {
+          const char *reason = param2text(res);
+          warnf(operation->global, "%s:%d: warning: '%s' %s\n",
+                filename, lineno, option, reason);
+        }
+      }
+
+      if(alloced_param)
+        Curl_safefree(param);
+
+      Curl_safefree(aline);
+    }
+    if(file != stdin)
+      fclose(file);
+  }
+  else
+    rc = 1; /* couldn't open the file */
+
+  return rc;
+}
+
+/*
+ * Copies the string from line to the buffer at param, unquoting
+ * backslash-quoted characters and NUL-terminating the output string.
+ * Stops at the first non-backslash-quoted double quote character or the
+ * end of the input string. param must be at least as long as the input
+ * string.  Returns the pointer after the last handled input character.
+ */
+static const char *unslashquote(const char *line, char *param)
+{
+  while(*line && (*line != '\"')) {
+    if(*line == '\\') {
+      char out;
+      line++;
+
+      /* default is to output the letter after the backslash */
+      switch(out = *line) {
+      case '\0':
+        continue; /* this'll break out of the loop */
+      case 't':
+        out = '\t';
+        break;
+      case 'n':
+        out = '\n';
+        break;
+      case 'r':
+        out = '\r';
+        break;
+      case 'v':
+        out = '\v';
+        break;
+      }
+      *param++ = out;
+      line++;
+    }
+    else
+      *param++ = *line++;
+  }
+  *param = '\0'; /* always zero terminate */
+  return line;
+}
+
+/*
+ * Reads a line from the given file, ensuring is NUL terminated.
+ * The pointer must be freed by the caller.
+ * NULL is returned on an out of memory condition.
+ */
+static char *my_get_line(FILE *fp)
+{
+  char buf[4096];
+  char *nl = NULL;
+  char *line = NULL;
+
+  do {
+    if(NULL == fgets(buf, sizeof(buf), fp))
+      break;
+    if(!line) {
+      line = strdup(buf);
+      if(!line)
+        return NULL;
+    }
+    else {
+      char *ptr;
+      size_t linelen = strlen(line);
+      ptr = realloc(line, linelen + strlen(buf) + 1);
+      if(!ptr) {
+        Curl_safefree(line);
+        return NULL;
+      }
+      line = ptr;
+      strcpy(&line[linelen], buf);
+    }
+    nl = strchr(line, '\n');
+  } while(!nl);
+
+  if(nl)
+    *nl = '\0';
+
+  return line;
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_parsecfg.h b/ap/lib/libcurl/curl-7.54.1/src/tool_parsecfg.h
new file mode 100644
index 0000000..b676ec3
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_parsecfg.h
@@ -0,0 +1,29 @@
+#ifndef HEADER_CURL_TOOL_PARSECFG_H
+#define HEADER_CURL_TOOL_PARSECFG_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+int parseconfig(const char *filename, struct GlobalConfig *config);
+
+#endif /* HEADER_CURL_TOOL_PARSECFG_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_sdecls.h b/ap/lib/libcurl/curl-7.54.1/src/tool_sdecls.h
new file mode 100644
index 0000000..a56390e
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_sdecls.h
@@ -0,0 +1,151 @@
+#ifndef HEADER_CURL_TOOL_SDECLS_H
+#define HEADER_CURL_TOOL_SDECLS_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+#ifdef USE_METALINK
+#  include <metalink/metalink.h>
+#endif /* USE_METALINK */
+
+/*
+ * OutStruct variables keep track of information relative to curl's
+ * output writing, which may take place to a standard stream or a file.
+ *
+ * 'filename' member is either a pointer to a file name string or NULL
+ * when dealing with a standard stream.
+ *
+ * 'alloc_filename' member is TRUE when string pointed by 'filename' has been
+ * dynamically allocated and 'belongs' to this OutStruct, otherwise FALSE.
+ *
+ * 'is_cd_filename' member is TRUE when string pointed by 'filename' has been
+ * set using a server-specified Content-Disposition filename, otherwise FALSE.
+ *
+ * 's_isreg' member is TRUE when output goes to a regular file, this also
+ * implies that output is 'seekable' and 'appendable' and also that member
+ * 'filename' points to file name's string. For any standard stream member
+ * 's_isreg' will be FALSE.
+ *
+ * 'fopened' member is TRUE when output goes to a regular file and it
+ * has been fopen'ed, requiring it to be closed later on. In any other
+ * case this is FALSE.
+ *
+ * 'stream' member is a pointer to a stream controlling object as returned
+ * from a 'fopen' call or a standard stream.
+ *
+ * 'config' member is a pointer to associated 'OperationConfig' struct.
+ *
+ * 'bytes' member represents amount written so far.
+ *
+ * 'init' member holds original file size or offset at which truncation is
+ * taking place. Always zero unless appending to a non-empty regular file.
+ *
+ * 'metalink_parser' member is a pointer to Metalink XML parser
+ * context.
+ */
+
+struct OutStruct {
+  char *filename;
+  bool alloc_filename;
+  bool is_cd_filename;
+  bool s_isreg;
+  bool fopened;
+  FILE *stream;
+  struct OperationConfig *config;
+  curl_off_t bytes;
+  curl_off_t init;
+#ifdef USE_METALINK
+  metalink_parser_context_t *metalink_parser;
+#endif /* USE_METALINK */
+};
+
+
+/*
+ * InStruct variables keep track of information relative to curl's
+ * input reading, which may take place from stdin or from some file.
+ *
+ * 'fd' member is either 'stdin' file descriptor number STDIN_FILENO
+ * or a file descriptor as returned from an 'open' call for some file.
+ *
+ * 'config' member is a pointer to associated 'OperationConfig' struct.
+ */
+
+struct InStruct {
+  int fd;
+  struct OperationConfig *config;
+};
+
+
+/*
+ * A linked list of these 'getout' nodes contain URL's to fetch,
+ * as well as information relative to where URL contents should
+ * be stored or which file should be uploaded.
+ */
+
+struct getout {
+  struct getout *next;      /* next one */
+  char          *url;       /* the URL we deal with */
+  char          *outfile;   /* where to store the output */
+  char          *infile;    /* file to upload, if GETOUT_UPLOAD is set */
+  int            flags;     /* options - composed of GETOUT_* bits */
+};
+
+#define GETOUT_OUTFILE    (1<<0)  /* set when outfile is deemed done */
+#define GETOUT_URL        (1<<1)  /* set when URL is deemed done */
+#define GETOUT_USEREMOTE  (1<<2)  /* use remote file name locally */
+#define GETOUT_UPLOAD     (1<<3)  /* if set, -T has been used */
+#define GETOUT_NOUPLOAD   (1<<4)  /* if set, -T "" has been used */
+#define GETOUT_METALINK   (1<<5)  /* set when Metalink download */
+
+/*
+ * 'trace' enumeration represents curl's output look'n feel possibilities.
+ */
+
+typedef enum {
+  TRACE_NONE,  /* no trace/verbose output at all */
+  TRACE_BIN,   /* tcpdump inspired look */
+  TRACE_ASCII, /* like *BIN but without the hex output */
+  TRACE_PLAIN  /* -v/--verbose type */
+} trace;
+
+
+/*
+ * 'HttpReq' enumeration represents HTTP request types.
+ */
+
+typedef enum {
+  HTTPREQ_UNSPEC,  /* first in list */
+  HTTPREQ_GET,
+  HTTPREQ_HEAD,
+  HTTPREQ_FORMPOST,
+  HTTPREQ_SIMPLEPOST
+} HttpReq;
+
+
+/*
+ * Complete struct declarations which have OperationConfig struct members,
+ * just in case this header is directly included in some source file.
+ */
+
+#include "tool_cfgable.h"
+
+#endif /* HEADER_CURL_TOOL_SDECLS_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_setopt.c b/ap/lib/libcurl/curl-7.54.1/src/tool_setopt.c
new file mode 100644
index 0000000..ad3d307
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_setopt.c
@@ -0,0 +1,588 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+
+#include "tool_cfgable.h"
+#include "tool_easysrc.h"
+#include "tool_setopt.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+/* Lookup tables for converting setopt values back to symbols */
+/* For enums, values may be in any order. */
+/* For bit masks, put combinations first, then single bits, */
+/* and finally any "NONE" value. */
+
+#define NV(e) {#e, e}
+#define NV1(e, v) {#e, (v)}
+#define NVEND {NULL, 0}         /* sentinel to mark end of list */
+
+const NameValue setopt_nv_CURLPROXY[] = {
+  NV(CURLPROXY_HTTP),
+  NV(CURLPROXY_HTTP_1_0),
+  NV(CURLPROXY_HTTPS),
+  NV(CURLPROXY_SOCKS4),
+  NV(CURLPROXY_SOCKS5),
+  NV(CURLPROXY_SOCKS4A),
+  NV(CURLPROXY_SOCKS5_HOSTNAME),
+  NVEND,
+};
+
+const NameValue setopt_nv_CURL_SOCKS_PROXY[] = {
+  NV(CURLPROXY_SOCKS4),
+  NV(CURLPROXY_SOCKS5),
+  NV(CURLPROXY_SOCKS4A),
+  NV(CURLPROXY_SOCKS5_HOSTNAME),
+  NVEND,
+};
+
+const NameValueUnsigned setopt_nv_CURLAUTH[] = {
+  NV(CURLAUTH_ANY),             /* combination */
+  NV(CURLAUTH_ANYSAFE),         /* combination */
+  NV(CURLAUTH_BASIC),
+  NV(CURLAUTH_DIGEST),
+  NV(CURLAUTH_GSSNEGOTIATE),
+  NV(CURLAUTH_NTLM),
+  NV(CURLAUTH_DIGEST_IE),
+  NV(CURLAUTH_NTLM_WB),
+  NV(CURLAUTH_ONLY),
+  NV(CURLAUTH_NONE),
+  NVEND,
+};
+
+const NameValue setopt_nv_CURL_HTTP_VERSION[] = {
+  NV(CURL_HTTP_VERSION_NONE),
+  NV(CURL_HTTP_VERSION_1_0),
+  NV(CURL_HTTP_VERSION_1_1),
+  NV(CURL_HTTP_VERSION_2_0),
+  NV(CURL_HTTP_VERSION_2TLS),
+  NVEND,
+};
+
+const NameValue setopt_nv_CURL_SSLVERSION[] = {
+  NV(CURL_SSLVERSION_DEFAULT),
+  NV(CURL_SSLVERSION_TLSv1),
+  NV(CURL_SSLVERSION_SSLv2),
+  NV(CURL_SSLVERSION_SSLv3),
+  NV(CURL_SSLVERSION_TLSv1_0),
+  NV(CURL_SSLVERSION_TLSv1_1),
+  NV(CURL_SSLVERSION_TLSv1_2),
+  NV(CURL_SSLVERSION_TLSv1_3),
+  NVEND,
+};
+
+const NameValue setopt_nv_CURL_TIMECOND[] = {
+  NV(CURL_TIMECOND_IFMODSINCE),
+  NV(CURL_TIMECOND_IFUNMODSINCE),
+  NV(CURL_TIMECOND_LASTMOD),
+  NV(CURL_TIMECOND_NONE),
+  NVEND,
+};
+
+const NameValue setopt_nv_CURLFTPSSL_CCC[] = {
+  NV(CURLFTPSSL_CCC_NONE),
+  NV(CURLFTPSSL_CCC_PASSIVE),
+  NV(CURLFTPSSL_CCC_ACTIVE),
+  NVEND,
+};
+
+const NameValue setopt_nv_CURLUSESSL[] = {
+  NV(CURLUSESSL_NONE),
+  NV(CURLUSESSL_TRY),
+  NV(CURLUSESSL_CONTROL),
+  NV(CURLUSESSL_ALL),
+  NVEND,
+};
+
+const NameValueUnsigned setopt_nv_CURLSSLOPT[] = {
+  NV(CURLSSLOPT_ALLOW_BEAST),
+  NV(CURLSSLOPT_NO_REVOKE),
+  NVEND,
+};
+
+const NameValue setopt_nv_CURL_NETRC[] = {
+  NV(CURL_NETRC_IGNORED),
+  NV(CURL_NETRC_OPTIONAL),
+  NV(CURL_NETRC_REQUIRED),
+  NVEND,
+};
+
+/* These mappings essentially triplicated - see
+ * tool_libinfo.c and tool_paramhlp.c */
+const NameValue setopt_nv_CURLPROTO[] = {
+  NV(CURLPROTO_ALL),            /* combination */
+  NV(CURLPROTO_DICT),
+  NV(CURLPROTO_FILE),
+  NV(CURLPROTO_FTP),
+  NV(CURLPROTO_FTPS),
+  NV(CURLPROTO_GOPHER),
+  NV(CURLPROTO_HTTP),
+  NV(CURLPROTO_HTTPS),
+  NV(CURLPROTO_IMAP),
+  NV(CURLPROTO_IMAPS),
+  NV(CURLPROTO_LDAP),
+  NV(CURLPROTO_LDAPS),
+  NV(CURLPROTO_POP3),
+  NV(CURLPROTO_POP3S),
+  NV(CURLPROTO_RTSP),
+  NV(CURLPROTO_SCP),
+  NV(CURLPROTO_SFTP),
+  NV(CURLPROTO_SMB),
+  NV(CURLPROTO_SMBS),
+  NV(CURLPROTO_SMTP),
+  NV(CURLPROTO_SMTPS),
+  NV(CURLPROTO_TELNET),
+  NV(CURLPROTO_TFTP),
+  NVEND,
+};
+
+/* These options have non-zero default values. */
+static const NameValue setopt_nv_CURLNONZERODEFAULTS[] = {
+  NV1(CURLOPT_SSL_VERIFYPEER, 1),
+  NV1(CURLOPT_SSL_VERIFYHOST, 1),
+  NV1(CURLOPT_SSL_ENABLE_NPN, 1),
+  NV1(CURLOPT_SSL_ENABLE_ALPN, 1),
+  NV1(CURLOPT_TCP_NODELAY, 1),
+  NV1(CURLOPT_PROXY_SSL_VERIFYPEER, 1),
+  NV1(CURLOPT_PROXY_SSL_VERIFYHOST, 1),
+  NVEND
+};
+
+/* Format and add code; jump to nomem on malloc error */
+#define ADD(args) do { \
+  ret = easysrc_add args; \
+  if(ret) \
+    goto nomem; \
+} WHILE_FALSE
+#define ADDF(args) do { \
+  ret = easysrc_addf args; \
+  if(ret) \
+    goto nomem; \
+} WHILE_FALSE
+
+#define DECL0(s) ADD((&easysrc_decl, s))
+#define DECL1(f,a) ADDF((&easysrc_decl, f,a))
+
+#define DATA0(s) ADD((&easysrc_data, s))
+#define DATA1(f,a) ADDF((&easysrc_data, f,a))
+#define DATA2(f,a,b) ADDF((&easysrc_data, f,a,b))
+#define DATA3(f,a,b,c) ADDF((&easysrc_data, f,a,b,c))
+
+#define CODE0(s) ADD((&easysrc_code, s))
+#define CODE1(f,a) ADDF((&easysrc_code, f,a))
+#define CODE2(f,a,b) ADDF((&easysrc_code, f,a,b))
+#define CODE3(f,a,b,c) ADDF((&easysrc_code, f,a,b,c))
+
+#define CLEAN0(s) ADD((&easysrc_clean, s))
+#define CLEAN1(f,a) ADDF((&easysrc_clean, f,a))
+
+#define REM0(s) ADD((&easysrc_toohard, s))
+#define REM1(f,a) ADDF((&easysrc_toohard, f,a))
+#define REM2(f,a,b) ADDF((&easysrc_toohard, f,a,b))
+
+/* Escape string to C string syntax.  Return NULL if out of memory.
+ * Is this correct for those wacky EBCDIC guys? */
+static char *c_escape(const char *str)
+{
+  size_t len = 0;
+  const char *s;
+  unsigned char c;
+  char *escaped, *e;
+  /* Allocate space based on worst-case */
+  len = strlen(str);
+  escaped = malloc(4 * len + 1);
+  if(!escaped)
+    return NULL;
+
+  e = escaped;
+  for(s=str; (c=*s) != '\0'; s++) {
+    if(c=='\n') {
+      strcpy(e, "\\n");
+      e += 2;
+    }
+    else if(c=='\r') {
+      strcpy(e, "\\r");
+      e += 2;
+    }
+    else if(c=='\t') {
+      strcpy(e, "\\t");
+      e += 2;
+    }
+    else if(c=='\\') {
+      strcpy(e, "\\\\");
+      e += 2;
+    }
+    else if(c=='"') {
+      strcpy(e, "\\\"");
+      e += 2;
+    }
+    else if(! isprint(c)) {
+      snprintf(e, 5, "\\%03o", (unsigned)c);
+      e += 4;
+    }
+    else
+      *e++ = c;
+  }
+  *e = '\0';
+  return escaped;
+}
+
+/* setopt wrapper for enum types */
+CURLcode tool_setopt_enum(CURL *curl, struct GlobalConfig *config,
+                          const char *name, CURLoption tag,
+                          const NameValue *nvlist, long lval)
+{
+  CURLcode ret = CURLE_OK;
+  bool skip = FALSE;
+
+  ret = curl_easy_setopt(curl, tag, lval);
+  if(!lval)
+    skip = TRUE;
+
+  if(config->libcurl && !skip && !ret) {
+    /* we only use this for real if --libcurl was used */
+    const NameValue *nv = NULL;
+    for(nv=nvlist; nv->name; nv++) {
+      if(nv->value == lval) break; /* found it */
+    }
+    if(! nv->name) {
+      /* If no definition was found, output an explicit value.
+       * This could happen if new values are defined and used
+       * but the NameValue list is not updated. */
+      CODE2("curl_easy_setopt(hnd, %s, %ldL);", name, lval);
+    }
+    else {
+      CODE2("curl_easy_setopt(hnd, %s, (long)%s);", name, nv->name);
+    }
+  }
+
+ nomem:
+  return ret;
+}
+
+/* setopt wrapper for flags */
+CURLcode tool_setopt_flags(CURL *curl, struct GlobalConfig *config,
+                           const char *name, CURLoption tag,
+                           const NameValue *nvlist, long lval)
+{
+  CURLcode ret = CURLE_OK;
+  bool skip = FALSE;
+
+  ret = curl_easy_setopt(curl, tag, lval);
+  if(!lval)
+    skip = TRUE;
+
+  if(config->libcurl && !skip && !ret) {
+    /* we only use this for real if --libcurl was used */
+    char preamble[80];          /* should accommodate any symbol name */
+    long rest = lval;           /* bits not handled yet */
+    const NameValue *nv = NULL;
+    snprintf(preamble, sizeof(preamble),
+             "curl_easy_setopt(hnd, %s, ", name);
+    for(nv=nvlist; nv->name; nv++) {
+      if((nv->value & ~ rest) == 0) {
+        /* all value flags contained in rest */
+        rest &= ~ nv->value;    /* remove bits handled here */
+        CODE3("%s(long)%s%s",
+              preamble, nv->name, rest ? " |" : ");");
+        if(!rest)
+          break;                /* handled them all */
+        /* replace with all spaces for continuation line */
+        snprintf(preamble, sizeof(preamble), "%*s", strlen(preamble), "");
+      }
+    }
+    /* If any bits have no definition, output an explicit value.
+     * This could happen if new bits are defined and used
+     * but the NameValue list is not updated. */
+    if(rest)
+      CODE2("%s%ldL);", preamble, rest);
+  }
+
+ nomem:
+  return ret;
+}
+
+/* setopt wrapper for bitmasks */
+CURLcode tool_setopt_bitmask(CURL *curl, struct GlobalConfig *config,
+                             const char *name, CURLoption tag,
+                             const NameValueUnsigned *nvlist,
+                             long lval)
+{
+  CURLcode ret = CURLE_OK;
+  bool skip = FALSE;
+
+  ret = curl_easy_setopt(curl, tag, lval);
+  if(!lval)
+    skip = TRUE;
+
+  if(config->libcurl && !skip && !ret) {
+    /* we only use this for real if --libcurl was used */
+    char preamble[80];
+    unsigned long rest = (unsigned long)lval;
+    const NameValueUnsigned *nv = NULL;
+    snprintf(preamble, sizeof(preamble),
+             "curl_easy_setopt(hnd, %s, ", name);
+    for(nv=nvlist; nv->name; nv++) {
+      if((nv->value & ~ rest) == 0) {
+        /* all value flags contained in rest */
+        rest &= ~ nv->value;    /* remove bits handled here */
+        CODE3("%s(long)%s%s",
+              preamble, nv->name, rest ? " |" : ");");
+        if(!rest)
+          break;                /* handled them all */
+        /* replace with all spaces for continuation line */
+        snprintf(preamble, sizeof(preamble), "%*s", strlen(preamble), "");
+      }
+    }
+    /* If any bits have no definition, output an explicit value.
+     * This could happen if new bits are defined and used
+     * but the NameValue list is not updated. */
+    if(rest)
+      CODE2("%s%luUL);", preamble, rest);
+  }
+
+ nomem:
+  return ret;
+}
+
+/* setopt wrapper for CURLOPT_HTTPPOST */
+CURLcode tool_setopt_httppost(CURL *curl, struct GlobalConfig *config,
+                              const char *name, CURLoption tag,
+                              struct curl_httppost *post)
+{
+  CURLcode ret = CURLE_OK;
+  char *escaped = NULL;
+  bool skip = FALSE;
+
+  ret = curl_easy_setopt(curl, tag, post);
+  if(!post)
+    skip = TRUE;
+
+  if(config->libcurl && !skip && !ret) {
+    struct curl_httppost *pp, *p;
+    int i;
+    /* May use several httppost lists, if multiple POST actions */
+    i = ++ easysrc_form_count;
+    DECL1("struct curl_httppost *post%d;", i);
+    DATA1("post%d = NULL;", i);
+    CLEAN1("curl_formfree(post%d);", i);
+    CLEAN1("post%d = NULL;", i);
+    if(i == 1)
+      DECL0("struct curl_httppost *postend;");
+    DATA0("postend = NULL;");
+    for(p=post; p; p=p->next) {
+      DATA1("curl_formadd(&post%d, &postend,", i);
+      DATA1("             CURLFORM_COPYNAME, \"%s\",", p->name);
+      for(pp=p; pp; pp=pp->more) {
+        /* May be several files uploaded for one name;
+         * these are linked through the 'more' pointer */
+        Curl_safefree(escaped);
+        escaped = c_escape(pp->contents);
+        if(!escaped) {
+          ret = CURLE_OUT_OF_MEMORY;
+          goto nomem;
+        }
+        if(pp->flags & CURL_HTTPPOST_FILENAME) {
+          /* file upload as for -F @filename */
+          DATA1("             CURLFORM_FILE, \"%s\",", escaped);
+        }
+        else if(pp->flags & CURL_HTTPPOST_READFILE) {
+          /* content from file as for -F <filename */
+          DATA1("             CURLFORM_FILECONTENT, \"%s\",", escaped);
+        }
+        else
+          DATA1("             CURLFORM_COPYCONTENTS, \"%s\",", escaped);
+        if(pp->showfilename) {
+          Curl_safefree(escaped);
+          escaped = c_escape(pp->showfilename);
+          if(!escaped) {
+            ret = CURLE_OUT_OF_MEMORY;
+            goto nomem;
+          }
+          DATA1("             CURLFORM_FILENAME, \"%s\",", escaped);
+        }
+        if(pp->contenttype) {
+          Curl_safefree(escaped);
+          escaped = c_escape(pp->contenttype);
+          if(!escaped) {
+            ret = CURLE_OUT_OF_MEMORY;
+            goto nomem;
+          }
+          DATA1("             CURLFORM_CONTENTTYPE, \"%s\",", escaped);
+        }
+      }
+      DATA0("             CURLFORM_END);");
+    }
+    CODE2("curl_easy_setopt(hnd, %s, post%d);", name, i);
+  }
+
+ nomem:
+  Curl_safefree(escaped);
+  return ret;
+}
+
+/* setopt wrapper for curl_slist options */
+CURLcode tool_setopt_slist(CURL *curl, struct GlobalConfig *config,
+                           const char *name, CURLoption tag,
+                           struct curl_slist *list)
+{
+  CURLcode ret = CURLE_OK;
+  char *escaped = NULL;
+  bool skip = FALSE;
+
+  ret = curl_easy_setopt(curl, tag, list);
+  if(!list)
+    skip = TRUE;
+
+  if(config->libcurl && !skip && !ret) {
+    struct curl_slist *s;
+    int i;
+    /* May need several slist variables, so invent name */
+    i = ++ easysrc_slist_count;
+    DECL1("struct curl_slist *slist%d;", i);
+    DATA1("slist%d = NULL;", i);
+    CLEAN1("curl_slist_free_all(slist%d);", i);
+    CLEAN1("slist%d = NULL;", i);
+    for(s=list; s; s=s->next) {
+      Curl_safefree(escaped);
+      escaped = c_escape(s->data);
+      if(!escaped) {
+        ret = CURLE_OUT_OF_MEMORY;
+        goto nomem;
+      }
+      DATA3("slist%d = curl_slist_append(slist%d, \"%s\");", i, i, escaped);
+    }
+    CODE2("curl_easy_setopt(hnd, %s, slist%d);", name, i);
+  }
+
+ nomem:
+  Curl_safefree(escaped);
+  return ret;
+}
+
+/* generic setopt wrapper for all other options.
+ * Some type information is encoded in the tag value. */
+CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *config,
+                     const char *name, CURLoption tag, ...)
+{
+  va_list arg;
+  char buf[256];
+  const char *value = NULL;
+  bool remark = FALSE;
+  bool skip = FALSE;
+  bool escape = FALSE;
+  char *escaped = NULL;
+  CURLcode ret = CURLE_OK;
+
+  va_start(arg, tag);
+
+  if(tag < CURLOPTTYPE_OBJECTPOINT) {
+    /* Value is expected to be a long */
+    long lval = va_arg(arg, long);
+    long defval = 0L;
+    const NameValue *nv = NULL;
+    for(nv=setopt_nv_CURLNONZERODEFAULTS; nv->name; nv++) {
+      if(!strcmp(name, nv->name)) {
+        defval = nv->value;
+        break; /* found it */
+      }
+    }
+
+    snprintf(buf, sizeof(buf), "%ldL", lval);
+    value = buf;
+    ret = curl_easy_setopt(curl, tag, lval);
+    if(lval == defval)
+      skip = TRUE;
+  }
+  else if(tag < CURLOPTTYPE_OFF_T) {
+    /* Value is some sort of object pointer */
+    void *pval = va_arg(arg, void *);
+
+    /* function pointers are never printable */
+    if(tag >= CURLOPTTYPE_FUNCTIONPOINT) {
+      if(pval) {
+        value = "functionpointer";
+        remark = TRUE;
+      }
+      else
+        skip = TRUE;
+    }
+
+    else if(pval && str) {
+      value = (char *)pval;
+      escape = TRUE;
+    }
+    else if(pval) {
+      value = "objectpointer";
+      remark = TRUE;
+    }
+    else
+      skip = TRUE;
+
+    ret = curl_easy_setopt(curl, tag, pval);
+
+  }
+  else {
+    /* Value is expected to be curl_off_t */
+    curl_off_t oval = va_arg(arg, curl_off_t);
+    snprintf(buf, sizeof(buf),
+             "(curl_off_t)%" CURL_FORMAT_CURL_OFF_T, oval);
+    value = buf;
+    ret = curl_easy_setopt(curl, tag, oval);
+
+    if(!oval)
+      skip = TRUE;
+  }
+
+  va_end(arg);
+
+  if(config->libcurl && !skip && !ret) {
+    /* we only use this for real if --libcurl was used */
+
+    if(remark)
+      REM2("%s set to a %s", name, value);
+    else {
+      if(escape) {
+        escaped = c_escape(value);
+        if(!escaped) {
+          ret = CURLE_OUT_OF_MEMORY;
+          goto nomem;
+        }
+        CODE2("curl_easy_setopt(hnd, %s, \"%s\");", name, escaped);
+      }
+      else
+        CODE2("curl_easy_setopt(hnd, %s, %s);", name, value);
+    }
+  }
+
+ nomem:
+  Curl_safefree(escaped);
+  return ret;
+}
+
+#endif /* CURL_DISABLE_LIBCURL_OPTION */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_setopt.h b/ap/lib/libcurl/curl-7.54.1/src/tool_setopt.h
new file mode 100644
index 0000000..c27541b
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_setopt.h
@@ -0,0 +1,152 @@
+#ifndef HEADER_CURL_TOOL_SETOPT_H
+#define HEADER_CURL_TOOL_SETOPT_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+/*
+ * Macros used in operate()
+ */
+
+#define SETOPT_CHECK(v) do { \
+  result = (v); \
+  if(result) \
+    goto show_error; \
+} WHILE_FALSE
+
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+
+/* Associate symbolic names with option values */
+typedef struct {
+  const char *name;
+  long value;
+} NameValue;
+
+typedef struct {
+  const char *name;
+  unsigned long value;
+} NameValueUnsigned;
+
+extern const NameValue setopt_nv_CURLPROXY[];
+extern const NameValue setopt_nv_CURL_SOCKS_PROXY[];
+extern const NameValue setopt_nv_CURL_HTTP_VERSION[];
+extern const NameValue setopt_nv_CURL_SSLVERSION[];
+extern const NameValue setopt_nv_CURL_TIMECOND[];
+extern const NameValue setopt_nv_CURLFTPSSL_CCC[];
+extern const NameValue setopt_nv_CURLUSESSL[];
+extern const NameValueUnsigned setopt_nv_CURLSSLOPT[];
+extern const NameValue setopt_nv_CURL_NETRC[];
+extern const NameValue setopt_nv_CURLPROTO[];
+extern const NameValueUnsigned setopt_nv_CURLAUTH[];
+
+/* Map options to NameValue sets */
+#define setopt_nv_CURLOPT_HTTP_VERSION setopt_nv_CURL_HTTP_VERSION
+#define setopt_nv_CURLOPT_HTTPAUTH setopt_nv_CURLAUTH
+#define setopt_nv_CURLOPT_SSLVERSION setopt_nv_CURL_SSLVERSION
+#define setopt_nv_CURLOPT_PROXY_SSLVERSION setopt_nv_CURL_SSLVERSION
+#define setopt_nv_CURLOPT_TIMECONDITION setopt_nv_CURL_TIMECOND
+#define setopt_nv_CURLOPT_FTP_SSL_CCC setopt_nv_CURLFTPSSL_CCC
+#define setopt_nv_CURLOPT_USE_SSL setopt_nv_CURLUSESSL
+#define setopt_nv_CURLOPT_SSL_OPTIONS setopt_nv_CURLSSLOPT
+#define setopt_nv_CURLOPT_NETRC setopt_nv_CURL_NETRC
+#define setopt_nv_CURLOPT_PROTOCOLS setopt_nv_CURLPROTO
+#define setopt_nv_CURLOPT_REDIR_PROTOCOLS setopt_nv_CURLPROTO
+#define setopt_nv_CURLOPT_PROXYTYPE setopt_nv_CURLPROXY
+#define setopt_nv_CURLOPT_PROXYAUTH setopt_nv_CURLAUTH
+
+/* Intercept setopt calls for --libcurl */
+
+CURLcode tool_setopt_enum(CURL *curl, struct GlobalConfig *config,
+                          const char *name, CURLoption tag,
+                          const NameValue *nv, long lval);
+CURLcode tool_setopt_flags(CURL *curl, struct GlobalConfig *config,
+                           const char *name, CURLoption tag,
+                           const NameValue *nv, long lval);
+CURLcode tool_setopt_bitmask(CURL *curl, struct GlobalConfig *config,
+                             const char *name, CURLoption tag,
+                             const NameValueUnsigned *nv, long lval);
+CURLcode tool_setopt_httppost(CURL *curl, struct GlobalConfig *config,
+                              const char *name, CURLoption tag,
+                              struct curl_httppost *httppost);
+CURLcode tool_setopt_slist(CURL *curl, struct GlobalConfig *config,
+                           const char *name, CURLoption tag,
+                           struct curl_slist *list);
+CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *config,
+                     const char *name, CURLoption tag, ...);
+
+#define my_setopt(x,y,z) \
+  SETOPT_CHECK(tool_setopt(x, FALSE, global, #y, y, z))
+
+#define my_setopt_str(x,y,z) \
+  SETOPT_CHECK(tool_setopt(x, TRUE, global, #y, y, z))
+
+#define my_setopt_enum(x,y,z) \
+  SETOPT_CHECK(tool_setopt_enum(x, global, #y, y, setopt_nv_ ## y, z))
+
+#define my_setopt_flags(x,y,z) \
+  SETOPT_CHECK(tool_setopt_flags(x, global, #y, y, setopt_nv_ ## y, z))
+
+#define my_setopt_bitmask(x,y,z) \
+  SETOPT_CHECK(tool_setopt_bitmask(x, global, #y, y, setopt_nv_ ## y, z))
+
+#define my_setopt_httppost(x,y,z) \
+  SETOPT_CHECK(tool_setopt_httppost(x, global, #y, y, z))
+
+#define my_setopt_slist(x,y,z) \
+  SETOPT_CHECK(tool_setopt_slist(x, global, #y, y, z))
+
+#define res_setopt(x,y,z) tool_setopt(x, FALSE, global, #y, y, z)
+
+#define res_setopt_str(x,y,z) tool_setopt(x, TRUE, global, #y, y, z)
+
+#else /* CURL_DISABLE_LIBCURL_OPTION */
+
+/* No --libcurl, so pass options directly to library */
+
+#define my_setopt(x,y,z) \
+  SETOPT_CHECK(curl_easy_setopt(x, y, z))
+
+#define my_setopt_str(x,y,z) \
+  SETOPT_CHECK(curl_easy_setopt(x, y, z))
+
+#define my_setopt_enum(x,y,z) \
+  SETOPT_CHECK(curl_easy_setopt(x, y, z))
+
+#define my_setopt_flags(x,y,z) \
+  SETOPT_CHECK(curl_easy_setopt(x, y, z))
+
+#define my_setopt_bitmask(x,y,z) \
+  SETOPT_CHECK(curl_easy_setopt(x, y, z))
+
+#define my_setopt_httppost(x,y,z) \
+  SETOPT_CHECK(curl_easy_setopt(x, y, z))
+
+#define my_setopt_slist(x,y,z) \
+  SETOPT_CHECK(curl_easy_setopt(x, y, z))
+
+#define res_setopt(x,y,z) curl_easy_setopt(x,y,z)
+
+#define res_setopt_str(x,y,z) curl_easy_setopt(x,y,z)
+
+#endif /* CURL_DISABLE_LIBCURL_OPTION */
+
+#endif /* HEADER_CURL_TOOL_SETOPT_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_setup.h b/ap/lib/libcurl/curl-7.54.1/src/tool_setup.h
new file mode 100644
index 0000000..90b01d7
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_setup.h
@@ -0,0 +1,74 @@
+#ifndef HEADER_CURL_TOOL_SETUP_H
+#define HEADER_CURL_TOOL_SETUP_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+#define CURL_NO_OLDIES
+
+/*
+ * curl_setup.h may define preprocessor macros such as _FILE_OFFSET_BITS and
+ * _LARGE_FILES in order to support files larger than 2 GB. On platforms
+ * where this happens it is mandatory that these macros are defined before
+ * any system header file is included, otherwise file handling function
+ * prototypes will be misdeclared and curl tool may not build properly;
+ * therefore we must include curl_setup.h before curl.h when building curl.
+ */
+
+#include "curl_setup.h" /* from the lib directory */
+
+/*
+ * curl tool certainly uses libcurl's external interface.
+ */
+
+#include <curl/curl.h> /* external interface */
+
+/*
+ * Platform specific stuff.
+ */
+
+#if defined(macintosh) && defined(__MRC__)
+#  define main(x,y) curl_main(x,y)
+#endif
+
+#ifdef TPF
+#  undef select
+   /* change which select is used for the curl command line tool */
+#  define select(a,b,c,d,e) tpf_select_bsd(a,b,c,d,e)
+   /* and turn off the progress meter */
+#  define CONF_DEFAULT (0|CONF_NOPROGRESS)
+#endif
+
+#ifndef OS
+#  define OS "unknown"
+#endif
+
+#ifndef UNPRINTABLE_CHAR
+   /* define what to use for unprintable characters */
+#  define UNPRINTABLE_CHAR '.'
+#endif
+
+#ifndef HAVE_STRDUP
+#  include "tool_strdup.h"
+#endif
+
+#endif /* HEADER_CURL_TOOL_SETUP_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_sleep.c b/ap/lib/libcurl/curl-7.54.1/src/tool_sleep.c
new file mode 100644
index 0000000..e19db5a
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_sleep.c
@@ -0,0 +1,58 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef HAVE_SYS_SELECT_H
+#  include <sys/select.h>
+#endif
+
+#ifdef HAVE_POLL_H
+#  include <poll.h>
+#elif defined(HAVE_SYS_POLL_H)
+#  include <sys/poll.h>
+#endif
+
+#ifdef MSDOS
+#  include <dos.h>
+#endif
+
+#include "tool_sleep.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+void tool_go_sleep(long ms)
+{
+#if defined(MSDOS)
+  delay(ms);
+#elif defined(WIN32)
+  Sleep(ms);
+#elif defined(HAVE_POLL_FINE)
+  (void)poll((void *)0, 0, (int)ms);
+#else
+  struct timeval timeout;
+  timeout.tv_sec = ms / 1000L;
+  ms = ms % 1000L;
+  timeout.tv_usec = ms * 1000L;
+  select(0, NULL,  NULL, NULL, &timeout);
+#endif
+}
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_sleep.h b/ap/lib/libcurl/curl-7.54.1/src/tool_sleep.h
new file mode 100644
index 0000000..6c51a93
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_sleep.h
@@ -0,0 +1,29 @@
+#ifndef HEADER_CURL_TOOL_SLEEP_H
+#define HEADER_CURL_TOOL_SLEEP_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+void tool_go_sleep(long ms);
+
+#endif /* HEADER_CURL_TOOL_SLEEP_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_strdup.c b/ap/lib/libcurl/curl-7.54.1/src/tool_strdup.c
new file mode 100644
index 0000000..cb4a1c5
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_strdup.c
@@ -0,0 +1,47 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_strdup.h"
+
+#ifndef HAVE_STRDUP
+char *strdup(const char *str)
+{
+  size_t len;
+  char *newstr;
+
+  if(!str)
+    return (char *)NULL;
+
+  len = strlen(str);
+
+  if(len >= ((size_t)-1) / sizeof(char))
+    return (char *)NULL;
+
+  newstr = malloc((len+1)*sizeof(char));
+  if(!newstr)
+    return (char *)NULL;
+
+  memcpy(newstr, str, (len+1)*sizeof(char));
+
+  return newstr;
+
+}
+#endif
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_strdup.h b/ap/lib/libcurl/curl-7.54.1/src/tool_strdup.h
new file mode 100644
index 0000000..f84b202
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_strdup.h
@@ -0,0 +1,30 @@
+#ifndef HEADER_TOOL_STRDUP_H
+#define HEADER_TOOL_STRDUP_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifndef HAVE_STRDUP
+extern char *strdup(const char *str);
+#endif
+
+#endif /* HEADER_TOOL_STRDUP_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_urlglob.c b/ap/lib/libcurl/curl-7.54.1/src/tool_urlglob.c
new file mode 100644
index 0000000..6b1ece0
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_urlglob.c
@@ -0,0 +1,708 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+#include "tool_cfgable.h"
+#include "tool_doswin.h"
+#include "tool_urlglob.h"
+#include "tool_vms.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#define GLOBERROR(string, column, code) \
+  glob->error = string, glob->pos = column, code
+
+void glob_cleanup(URLGlob* glob);
+
+static CURLcode glob_fixed(URLGlob *glob, char *fixed, size_t len)
+{
+  URLPattern *pat = &glob->pattern[glob->size];
+  pat->type = UPTSet;
+  pat->content.Set.size = 1;
+  pat->content.Set.ptr_s = 0;
+  pat->globindex = -1;
+
+  pat->content.Set.elements = malloc(sizeof(char *));
+
+  if(!pat->content.Set.elements)
+    return GLOBERROR("out of memory", 0, CURLE_OUT_OF_MEMORY);
+
+  pat->content.Set.elements[0] = malloc(len+1);
+  if(!pat->content.Set.elements[0])
+    return GLOBERROR("out of memory", 0, CURLE_OUT_OF_MEMORY);
+
+  memcpy(pat->content.Set.elements[0], fixed, len);
+  pat->content.Set.elements[0][len] = 0;
+
+  return CURLE_OK;
+}
+
+/* multiply
+ *
+ * Multiplies and checks for overflow.
+ */
+static int multiply(unsigned long *amount, long with)
+{
+  unsigned long sum = *amount * with;
+  if(!with) {
+    *amount = 0;
+    return 0;
+  }
+  if(sum/with != *amount)
+    return 1; /* didn't fit, bail out */
+  *amount = sum;
+  return 0;
+}
+
+static CURLcode glob_set(URLGlob *glob, char **patternp,
+                         size_t *posp, unsigned long *amount,
+                         int globindex)
+{
+  /* processes a set expression with the point behind the opening '{'
+     ','-separated elements are collected until the next closing '}'
+  */
+  URLPattern *pat;
+  bool done = FALSE;
+  char *buf = glob->glob_buffer;
+  char *pattern = *patternp;
+  char *opattern = pattern;
+  size_t opos = *posp-1;
+
+  pat = &glob->pattern[glob->size];
+  /* patterns 0,1,2,... correspond to size=1,3,5,... */
+  pat->type = UPTSet;
+  pat->content.Set.size = 0;
+  pat->content.Set.ptr_s = 0;
+  pat->content.Set.elements = NULL;
+  pat->globindex = globindex;
+
+  while(!done) {
+    switch (*pattern) {
+    case '\0':                  /* URL ended while set was still open */
+      return GLOBERROR("unmatched brace", opos, CURLE_URL_MALFORMAT);
+
+    case '{':
+    case '[':                   /* no nested expressions at this time */
+      return GLOBERROR("nested brace", *posp, CURLE_URL_MALFORMAT);
+
+    case '}':                           /* set element completed */
+      if(opattern == pattern)
+        return GLOBERROR("empty string within braces", *posp,
+                         CURLE_URL_MALFORMAT);
+
+      /* add 1 to size since it'll be incremented below */
+      if(multiply(amount, pat->content.Set.size+1))
+        return GLOBERROR("range overflow", 0, CURLE_URL_MALFORMAT);
+
+      /* fall-through */
+    case ',':
+
+      *buf = '\0';
+      if(pat->content.Set.elements) {
+        char **new_arr = realloc(pat->content.Set.elements,
+                                 (pat->content.Set.size + 1) * sizeof(char *));
+        if(!new_arr)
+          return GLOBERROR("out of memory", 0, CURLE_OUT_OF_MEMORY);
+
+        pat->content.Set.elements = new_arr;
+      }
+      else
+        pat->content.Set.elements = malloc(sizeof(char *));
+
+      if(!pat->content.Set.elements)
+        return GLOBERROR("out of memory", 0, CURLE_OUT_OF_MEMORY);
+
+      pat->content.Set.elements[pat->content.Set.size] =
+        strdup(glob->glob_buffer);
+      if(!pat->content.Set.elements[pat->content.Set.size])
+        return GLOBERROR("out of memory", 0, CURLE_OUT_OF_MEMORY);
+      ++pat->content.Set.size;
+
+      if(*pattern == '}') {
+        pattern++; /* pass the closing brace */
+        done = TRUE;
+        continue;
+      }
+
+      buf = glob->glob_buffer;
+      ++pattern;
+      ++(*posp);
+      break;
+
+    case ']':                           /* illegal closing bracket */
+      return GLOBERROR("unexpected close bracket", *posp, CURLE_URL_MALFORMAT);
+
+    case '\\':                          /* escaped character, skip '\' */
+      if(pattern[1]) {
+        ++pattern;
+        ++(*posp);
+      }
+      /* intentional fallthrough */
+    default:
+      *buf++ = *pattern++;              /* copy character to set element */
+      ++(*posp);
+    }
+  }
+
+  *patternp = pattern; /* return with the new position */
+  return CURLE_OK;
+}
+
+static CURLcode glob_range(URLGlob *glob, char **patternp,
+                           size_t *posp, unsigned long *amount,
+                           int globindex)
+{
+  /* processes a range expression with the point behind the opening '['
+     - char range: e.g. "a-z]", "B-Q]"
+     - num range: e.g. "0-9]", "17-2000]"
+     - num range with leading zeros: e.g. "001-999]"
+     expression is checked for well-formedness and collected until the next ']'
+  */
+  URLPattern *pat;
+  int rc;
+  char *pattern = *patternp;
+  char *c;
+
+  pat = &glob->pattern[glob->size];
+  pat->globindex = globindex;
+
+  if(ISALPHA(*pattern)) {
+    /* character range detected */
+    char min_c;
+    char max_c;
+    char end_c;
+    unsigned long step = 1;
+
+    pat->type = UPTCharRange;
+
+    rc = sscanf(pattern, "%c-%c%c", &min_c, &max_c, &end_c);
+
+    if(rc == 3) {
+      if(end_c == ':') {
+        char *endp;
+        errno = 0;
+        step = strtoul(&pattern[4], &endp, 10);
+        if(errno || &pattern[4] == endp || *endp != ']')
+          step = 0;
+        else
+          pattern = endp+1;
+      }
+      else if(end_c != ']')
+        /* then this is wrong */
+        rc = 0;
+      else
+        /* end_c == ']' */
+        pattern += 4;
+    }
+
+    *posp += (pattern - *patternp);
+
+    if(rc != 3 || !step || step > (unsigned)INT_MAX ||
+       (min_c == max_c && step != 1) ||
+       (min_c != max_c && (min_c > max_c || step > (unsigned)(max_c - min_c) ||
+                           (max_c - min_c) > ('z' - 'a'))))
+      /* the pattern is not well-formed */
+      return GLOBERROR("bad range", *posp, CURLE_URL_MALFORMAT);
+
+    /* if there was a ":[num]" thing, use that as step or else use 1 */
+    pat->content.CharRange.step = (int)step;
+    pat->content.CharRange.ptr_c = pat->content.CharRange.min_c = min_c;
+    pat->content.CharRange.max_c = max_c;
+
+    if(multiply(amount, ((pat->content.CharRange.max_c -
+                          pat->content.CharRange.min_c) /
+                         pat->content.CharRange.step + 1)))
+      return GLOBERROR("range overflow", *posp, CURLE_URL_MALFORMAT);
+  }
+  else if(ISDIGIT(*pattern)) {
+    /* numeric range detected */
+    unsigned long min_n;
+    unsigned long max_n = 0;
+    unsigned long step_n = 0;
+    char *endp;
+
+    pat->type = UPTNumRange;
+    pat->content.NumRange.padlength = 0;
+
+    if(*pattern == '0') {
+      /* leading zero specified, count them! */
+      c = pattern;
+      while(ISDIGIT(*c)) {
+        c++;
+        ++pat->content.NumRange.padlength; /* padding length is set for all
+                                              instances of this pattern */
+      }
+    }
+
+    errno = 0;
+    min_n = strtoul(pattern, &endp, 10);
+    if(errno || (endp == pattern))
+      endp=NULL;
+    else {
+      if(*endp != '-')
+        endp = NULL;
+      else {
+        pattern = endp+1;
+        while(*pattern && ISBLANK(*pattern))
+          pattern++;
+        if(!ISDIGIT(*pattern)) {
+          endp = NULL;
+          goto fail;
+        }
+        errno = 0;
+        max_n = strtoul(pattern, &endp, 10);
+        if(errno || (*endp == ':')) {
+          pattern = endp+1;
+          errno = 0;
+          step_n = strtoul(pattern, &endp, 10);
+          if(errno)
+            /* over/underflow situation */
+            endp = NULL;
+        }
+        else
+          step_n = 1;
+        if(endp && (*endp == ']')) {
+          pattern= endp+1;
+        }
+        else
+          endp = NULL;
+      }
+    }
+
+    fail:
+    *posp += (pattern - *patternp);
+
+    if(!endp || !step_n ||
+       (min_n == max_n && step_n != 1) ||
+       (min_n != max_n && (min_n > max_n || step_n > (max_n - min_n))))
+      /* the pattern is not well-formed */
+      return GLOBERROR("bad range", *posp, CURLE_URL_MALFORMAT);
+
+    /* typecasting to ints are fine here since we make sure above that we
+       are within 31 bits */
+    pat->content.NumRange.ptr_n = pat->content.NumRange.min_n = min_n;
+    pat->content.NumRange.max_n = max_n;
+    pat->content.NumRange.step = step_n;
+
+    if(multiply(amount, ((pat->content.NumRange.max_n -
+                          pat->content.NumRange.min_n) /
+                         pat->content.NumRange.step + 1)))
+      return GLOBERROR("range overflow", *posp, CURLE_URL_MALFORMAT);
+  }
+  else
+    return GLOBERROR("bad range specification", *posp, CURLE_URL_MALFORMAT);
+
+  *patternp = pattern;
+  return CURLE_OK;
+}
+
+static bool peek_ipv6(const char *str, size_t *skip)
+{
+  /*
+   * Scan for a potential IPv6 literal.
+   * - Valid globs contain a hyphen and <= 1 colon.
+   * - IPv6 literals contain no hyphens and >= 2 colons.
+   */
+  size_t i = 0;
+  size_t colons = 0;
+  if(str[i++] != '[') {
+    return FALSE;
+  }
+  for(;;) {
+    const char c = str[i++];
+    if(ISALNUM(c) || c == '.' || c == '%') {
+      /* ok */
+    }
+    else if(c == ':') {
+      colons++;
+    }
+    else if(c == ']') {
+      *skip = i;
+      return colons >= 2 ? TRUE : FALSE;
+    }
+    else {
+      return FALSE;
+    }
+  }
+}
+
+static CURLcode glob_parse(URLGlob *glob, char *pattern,
+                           size_t pos, unsigned long *amount)
+{
+  /* processes a literal string component of a URL
+     special characters '{' and '[' branch to set/range processing functions
+   */
+  CURLcode res = CURLE_OK;
+  int globindex = 0; /* count "actual" globs */
+
+  *amount = 1;
+
+  while(*pattern && !res) {
+    char *buf = glob->glob_buffer;
+    size_t sublen = 0;
+    while(*pattern && *pattern != '{') {
+      if(*pattern == '[') {
+        /* Skip over potential IPv6 literals. */
+        size_t skip;
+        if(peek_ipv6(pattern, &skip)) {
+          memcpy(buf, pattern, skip);
+          buf += skip;
+          pattern += skip;
+          sublen += skip;
+          continue;
+        }
+        break;
+      }
+      if(*pattern == '}' || *pattern == ']')
+        return GLOBERROR("unmatched close brace/bracket", pos,
+                         CURLE_URL_MALFORMAT);
+
+      /* only allow \ to escape known "special letters" */
+      if(*pattern == '\\' &&
+         (*(pattern+1) == '{' || *(pattern+1) == '[' ||
+          *(pattern+1) == '}' || *(pattern+1) == ']') ) {
+
+        /* escape character, skip '\' */
+        ++pattern;
+        ++pos;
+      }
+      *buf++ = *pattern++; /* copy character to literal */
+      ++pos;
+      sublen++;
+    }
+    if(sublen) {
+      /* we got a literal string, add it as a single-item list */
+      *buf = '\0';
+      res = glob_fixed(glob, glob->glob_buffer, sublen);
+    }
+    else {
+      switch (*pattern) {
+      case '\0': /* done  */
+        break;
+
+      case '{':
+        /* process set pattern */
+        pattern++;
+        pos++;
+        res = glob_set(glob, &pattern, &pos, amount, globindex++);
+        break;
+
+      case '[':
+        /* process range pattern */
+        pattern++;
+        pos++;
+        res = glob_range(glob, &pattern, &pos, amount, globindex++);
+        break;
+      }
+    }
+
+    if(++glob->size >= GLOB_PATTERN_NUM)
+      return GLOBERROR("too many globs", pos, CURLE_URL_MALFORMAT);
+  }
+  return res;
+}
+
+CURLcode glob_url(URLGlob **glob, char *url, unsigned long *urlnum,
+                  FILE *error)
+{
+  /*
+   * We can deal with any-size, just make a buffer with the same length
+   * as the specified URL!
+   */
+  URLGlob *glob_expand;
+  unsigned long amount = 0;
+  char *glob_buffer;
+  CURLcode res;
+
+  *glob = NULL;
+
+  glob_buffer = malloc(strlen(url) + 1);
+  if(!glob_buffer)
+    return CURLE_OUT_OF_MEMORY;
+  glob_buffer[0]=0;
+
+  glob_expand = calloc(1, sizeof(URLGlob));
+  if(!glob_expand) {
+    Curl_safefree(glob_buffer);
+    return CURLE_OUT_OF_MEMORY;
+  }
+  glob_expand->urllen = strlen(url);
+  glob_expand->glob_buffer = glob_buffer;
+
+  res = glob_parse(glob_expand, url, 1, &amount);
+  if(!res)
+    *urlnum = amount;
+  else {
+    if(error && glob_expand->error) {
+      char text[128];
+      const char *t;
+      if(glob_expand->pos) {
+        snprintf(text, sizeof(text), "%s in column %zu", glob_expand->error,
+                 glob_expand->pos);
+        t = text;
+      }
+      else
+        t = glob_expand->error;
+
+      /* send error description to the error-stream */
+      fprintf(error, "curl: (%d) [globbing] %s\n", res, t);
+    }
+    /* it failed, we cleanup */
+    glob_cleanup(glob_expand);
+    *urlnum = 1;
+    return res;
+  }
+
+  *glob = glob_expand;
+  return CURLE_OK;
+}
+
+void glob_cleanup(URLGlob* glob)
+{
+  size_t i;
+  int elem;
+
+  for(i = 0; i < glob->size; i++) {
+    if((glob->pattern[i].type == UPTSet) &&
+       (glob->pattern[i].content.Set.elements)) {
+      for(elem = glob->pattern[i].content.Set.size - 1;
+          elem >= 0;
+          --elem) {
+        Curl_safefree(glob->pattern[i].content.Set.elements[elem]);
+      }
+      Curl_safefree(glob->pattern[i].content.Set.elements);
+    }
+  }
+  Curl_safefree(glob->glob_buffer);
+  Curl_safefree(glob);
+}
+
+CURLcode glob_next_url(char **globbed, URLGlob *glob)
+{
+  URLPattern *pat;
+  size_t i;
+  size_t len;
+  size_t buflen = glob->urllen + 1;
+  char *buf = glob->glob_buffer;
+
+  *globbed = NULL;
+
+  if(!glob->beenhere)
+    glob->beenhere = 1;
+  else {
+    bool carry = TRUE;
+
+    /* implement a counter over the index ranges of all patterns, starting
+       with the rightmost pattern */
+    for(i = 0; carry && (i < glob->size); i++) {
+      carry = FALSE;
+      pat = &glob->pattern[glob->size - 1 - i];
+      switch(pat->type) {
+      case UPTSet:
+        if((pat->content.Set.elements) &&
+           (++pat->content.Set.ptr_s == pat->content.Set.size)) {
+          pat->content.Set.ptr_s = 0;
+          carry = TRUE;
+        }
+        break;
+      case UPTCharRange:
+        pat->content.CharRange.ptr_c =
+          (char)(pat->content.CharRange.step +
+                 (int)((unsigned char)pat->content.CharRange.ptr_c));
+        if(pat->content.CharRange.ptr_c > pat->content.CharRange.max_c) {
+          pat->content.CharRange.ptr_c = pat->content.CharRange.min_c;
+          carry = TRUE;
+        }
+        break;
+      case UPTNumRange:
+        pat->content.NumRange.ptr_n += pat->content.NumRange.step;
+        if(pat->content.NumRange.ptr_n > pat->content.NumRange.max_n) {
+          pat->content.NumRange.ptr_n = pat->content.NumRange.min_n;
+          carry = TRUE;
+        }
+        break;
+      default:
+        printf("internal error: invalid pattern type (%d)\n", (int)pat->type);
+        return CURLE_FAILED_INIT;
+      }
+    }
+    if(carry) {         /* first pattern ptr has run into overflow, done! */
+      /* TODO: verify if this should actally return CURLE_OK. */
+      return CURLE_OK; /* CURLE_OK to match previous behavior */
+    }
+  }
+
+  for(i = 0; i < glob->size; ++i) {
+    pat = &glob->pattern[i];
+    switch(pat->type) {
+    case UPTSet:
+      if(pat->content.Set.elements) {
+        snprintf(buf, buflen, "%s",
+                 pat->content.Set.elements[pat->content.Set.ptr_s]);
+        len = strlen(buf);
+        buf += len;
+        buflen -= len;
+      }
+      break;
+    case UPTCharRange:
+      if(buflen) {
+        *buf++ = pat->content.CharRange.ptr_c;
+        *buf = '\0';
+        buflen--;
+      }
+      break;
+    case UPTNumRange:
+      snprintf(buf, buflen, "%0*ld",
+               pat->content.NumRange.padlength,
+               pat->content.NumRange.ptr_n);
+      len = strlen(buf);
+      buf += len;
+      buflen -= len;
+      break;
+    default:
+      printf("internal error: invalid pattern type (%d)\n", (int)pat->type);
+      return CURLE_FAILED_INIT;
+    }
+  }
+
+  *globbed = strdup(glob->glob_buffer);
+  if(!*globbed)
+    return CURLE_OUT_OF_MEMORY;
+
+  return CURLE_OK;
+}
+
+CURLcode glob_match_url(char **result, char *filename, URLGlob *glob)
+{
+  char *target;
+  size_t allocsize;
+  char numbuf[18];
+  char *appendthis = NULL;
+  size_t appendlen = 0;
+  size_t stringlen = 0;
+
+  *result = NULL;
+
+  /* We cannot use the glob_buffer for storage here since the filename may
+   * be longer than the URL we use. We allocate a good start size, then
+   * we need to realloc in case of need.
+   */
+  allocsize = strlen(filename) + 1; /* make it at least one byte to store the
+                                       trailing zero */
+  target = malloc(allocsize);
+  if(!target)
+    return CURLE_OUT_OF_MEMORY;
+
+  while(*filename) {
+    if(*filename == '#' && ISDIGIT(filename[1])) {
+      unsigned long i;
+      char *ptr = filename;
+      unsigned long num = strtoul(&filename[1], &filename, 10);
+      URLPattern *pat =NULL;
+
+      if(num < glob->size) {
+        num--; /* make it zero based */
+        /* find the correct glob entry */
+        for(i=0; i<glob->size; i++) {
+          if(glob->pattern[i].globindex == (int)num) {
+            pat = &glob->pattern[i];
+            break;
+          }
+        }
+      }
+
+      if(pat) {
+        switch(pat->type) {
+        case UPTSet:
+          if(pat->content.Set.elements) {
+            appendthis = pat->content.Set.elements[pat->content.Set.ptr_s];
+            appendlen =
+              strlen(pat->content.Set.elements[pat->content.Set.ptr_s]);
+          }
+          break;
+        case UPTCharRange:
+          numbuf[0] = pat->content.CharRange.ptr_c;
+          numbuf[1] = 0;
+          appendthis = numbuf;
+          appendlen = 1;
+          break;
+        case UPTNumRange:
+          snprintf(numbuf, sizeof(numbuf), "%0*lu",
+                   pat->content.NumRange.padlength,
+                   pat->content.NumRange.ptr_n);
+          appendthis = numbuf;
+          appendlen = strlen(numbuf);
+          break;
+        default:
+          fprintf(stderr, "internal error: invalid pattern type (%d)\n",
+                  (int)pat->type);
+          Curl_safefree(target);
+          return CURLE_FAILED_INIT;
+        }
+      }
+      else {
+        /* #[num] out of range, use the #[num] in the output */
+        filename = ptr;
+        appendthis = filename++;
+        appendlen = 1;
+      }
+    }
+    else {
+      appendthis = filename++;
+      appendlen = 1;
+    }
+    if(appendlen + stringlen >= allocsize) {
+      char *newstr;
+      /* we append a single byte to allow for the trailing byte to be appended
+         at the end of this function outside the while() loop */
+      allocsize = (appendlen + stringlen) * 2;
+      newstr = realloc(target, allocsize + 1);
+      if(!newstr) {
+        Curl_safefree(target);
+        return CURLE_OUT_OF_MEMORY;
+      }
+      target = newstr;
+    }
+    memcpy(&target[stringlen], appendthis, appendlen);
+    stringlen += appendlen;
+  }
+  target[stringlen]= '\0';
+
+#if defined(MSDOS) || defined(WIN32)
+  {
+    char *sanitized;
+    SANITIZEcode sc = sanitize_file_name(&sanitized, target,
+                                         (SANITIZE_ALLOW_PATH |
+                                          SANITIZE_ALLOW_RESERVED));
+    Curl_safefree(target);
+    if(sc)
+      return CURLE_URL_MALFORMAT;
+    target = sanitized;
+  }
+#endif /* MSDOS || WIN32 */
+
+  *result = target;
+  return CURLE_OK;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_urlglob.h b/ap/lib/libcurl/curl-7.54.1/src/tool_urlglob.h
new file mode 100644
index 0000000..82d9d46
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_urlglob.h
@@ -0,0 +1,77 @@
+#ifndef HEADER_CURL_TOOL_URLGLOB_H
+#define HEADER_CURL_TOOL_URLGLOB_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+typedef enum {
+  UPTSet = 1,
+  UPTCharRange,
+  UPTNumRange
+} URLPatternType;
+
+typedef struct {
+  URLPatternType type;
+  int globindex; /* the number of this particular glob or -1 if not used
+                    within {} or [] */
+  union {
+    struct {
+      char **elements;
+      int size;
+      int ptr_s;
+    } Set;
+    struct {
+      char min_c;
+      char max_c;
+      char ptr_c;
+      int step;
+    } CharRange;
+    struct {
+      unsigned long min_n;
+      unsigned long max_n;
+      int padlength;
+      unsigned long ptr_n;
+      unsigned long step;
+    } NumRange;
+  } content;
+} URLPattern;
+
+/* the total number of globs supported */
+#define GLOB_PATTERN_NUM 100
+
+typedef struct {
+  URLPattern pattern[GLOB_PATTERN_NUM];
+  size_t size;
+  size_t urllen;
+  char *glob_buffer;
+  char beenhere;
+  const char *error; /* error message */
+  size_t pos;        /* column position of error or 0 */
+} URLGlob;
+
+CURLcode glob_url(URLGlob**, char *, unsigned long *, FILE *);
+CURLcode glob_next_url(char **, URLGlob *);
+CURLcode glob_match_url(char **, char *, URLGlob *);
+void glob_cleanup(URLGlob* glob);
+
+#endif /* HEADER_CURL_TOOL_URLGLOB_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_util.c b/ap/lib/libcurl/curl-7.54.1/src/tool_util.c
new file mode 100644
index 0000000..875411e
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_util.c
@@ -0,0 +1,126 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#include "tool_util.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#if defined(WIN32) && !defined(MSDOS)
+
+struct timeval tvnow(void)
+{
+  /*
+  ** GetTickCount() is available on _all_ Windows versions from W95 up
+  ** to nowadays. Returns milliseconds elapsed since last system boot,
+  ** increases monotonically and wraps once 49.7 days have elapsed.
+  **
+  ** GetTickCount64() is available on Windows version from Windows Vista
+  ** and Windows Server 2008 up to nowadays. The resolution of the
+  ** function is limited to the resolution of the system timer, which
+  ** is typically in the range of 10 milliseconds to 16 milliseconds.
+  */
+  struct timeval now;
+#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0600)
+  ULONGLONG milliseconds = GetTickCount64();
+#else
+  DWORD milliseconds = GetTickCount();
+#endif
+  now.tv_sec = (long)(milliseconds / 1000);
+  now.tv_usec = (milliseconds % 1000) * 1000;
+  return now;
+}
+
+#elif defined(HAVE_CLOCK_GETTIME_MONOTONIC)
+
+struct timeval tvnow(void)
+{
+  /*
+  ** clock_gettime() is granted to be increased monotonically when the
+  ** monotonic clock is queried. Time starting point is unspecified, it
+  ** could be the system start-up time, the Epoch, or something else,
+  ** in any case the time starting point does not change once that the
+  ** system has started up.
+  */
+  struct timeval now;
+  struct timespec tsnow;
+  if(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow)) {
+    now.tv_sec = tsnow.tv_sec;
+    now.tv_usec = tsnow.tv_nsec / 1000;
+  }
+  /*
+  ** Even when the configure process has truly detected monotonic clock
+  ** availability, it might happen that it is not actually available at
+  ** run-time. When this occurs simply fallback to other time source.
+  */
+#ifdef HAVE_GETTIMEOFDAY
+  else
+    (void)gettimeofday(&now, NULL);
+#else
+  else {
+    now.tv_sec = (long)time(NULL);
+    now.tv_usec = 0;
+  }
+#endif
+  return now;
+}
+
+#elif defined(HAVE_GETTIMEOFDAY)
+
+struct timeval tvnow(void)
+{
+  /*
+  ** gettimeofday() is not granted to be increased monotonically, due to
+  ** clock drifting and external source time synchronization it can jump
+  ** forward or backward in time.
+  */
+  struct timeval now;
+  (void)gettimeofday(&now, NULL);
+  return now;
+}
+
+#else
+
+struct timeval tvnow(void)
+{
+  /*
+  ** time() returns the value of time in seconds since the Epoch.
+  */
+  struct timeval now;
+  now.tv_sec = (long)time(NULL);
+  now.tv_usec = 0;
+  return now;
+}
+
+#endif
+
+/*
+ * Make sure that the first argument is the more recent time, as otherwise
+ * we'll get a weird negative time-diff back...
+ *
+ * Returns: the time difference in number of milliseconds.
+ */
+long tvdiff(struct timeval newer, struct timeval older)
+{
+  return (long)(newer.tv_sec-older.tv_sec)*1000+
+    (long)(newer.tv_usec-older.tv_usec)/1000;
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_util.h b/ap/lib/libcurl/curl-7.54.1/src/tool_util.h
new file mode 100644
index 0000000..fda1e61
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_util.h
@@ -0,0 +1,37 @@
+#ifndef HEADER_CURL_TOOL_UTIL_H
+#define HEADER_CURL_TOOL_UTIL_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+struct timeval tvnow(void);
+
+/*
+ * Make sure that the first argument (t1) is the more recent time and t2 is
+ * the older time, as otherwise you get a weird negative time-diff back...
+ *
+ * Returns: the time difference in number of milliseconds.
+ */
+long tvdiff(struct timeval t1, struct timeval t2);
+
+#endif /* HEADER_CURL_TOOL_UTIL_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_version.h b/ap/lib/libcurl/curl-7.54.1/src/tool_version.h
new file mode 100644
index 0000000..b4a23e4
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_version.h
@@ -0,0 +1,34 @@
+#ifndef HEADER_CURL_TOOL_VERSION_H
+#define HEADER_CURL_TOOL_VERSION_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include <curl/curlver.h>
+
+#define CURL_NAME "curl"
+#define CURL_COPYRIGHT LIBCURL_COPYRIGHT
+#define CURL_VERSION "7.54.1"
+#define CURL_VERSION_MAJOR LIBCURL_VERSION_MAJOR
+#define CURL_VERSION_MINOR LIBCURL_VERSION_MINOR
+#define CURL_VERSION_PATCH LIBCURL_VERSION_PATCH
+#define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") "
+
+#endif /* HEADER_CURL_TOOL_VERSION_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_vms.c b/ap/lib/libcurl/curl-7.54.1/src/tool_vms.c
new file mode 100644
index 0000000..cc30fe0
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_vms.c
@@ -0,0 +1,219 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef __VMS
+
+#if defined(__DECC) && !defined(__VAX) && \
+    defined(__CRTL_VER) && (__CRTL_VER >= 70301000)
+#include <unixlib.h>
+#endif
+
+#define ENABLE_CURLX_PRINTF
+#include "curlx.h"
+
+#include "curlmsg_vms.h"
+#include "tool_vms.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+void decc$__posix_exit(int __status);
+void decc$exit(int __status);
+
+static int vms_shell = -1;
+
+/* VMS has a DCL shell and and also has Unix shells ported to it.
+ * When curl is running under a Unix shell, we want it to be as much
+ * like Unix as possible.
+ */
+int is_vms_shell(void)
+{
+  char *shell;
+
+  /* Have we checked the shell yet? */
+  if(vms_shell >= 0)
+    return vms_shell;
+
+  shell = getenv("SHELL");
+
+  /* No shell, means DCL */
+  if(shell == NULL) {
+    vms_shell = 1;
+    return 1;
+  }
+
+  /* Have to make sure some one did not set shell to DCL */
+  if(strcmp(shell, "DCL") == 0) {
+    vms_shell = 1;
+    return 1;
+  }
+
+  vms_shell = 0;
+  return 0;
+}
+
+/*
+ * VMS has two exit() routines.  When running under a Unix style shell, then
+ * Unix style and the __posix_exit() routine is used.
+ *
+ * When running under the DCL shell, then the VMS encoded codes and decc$exit()
+ * is used.
+ *
+ * We can not use exit() or return a code from main() because the actual
+ * routine called depends on both the compiler version, compile options, and
+ * feature macro settings, and one of the exit routines is hidden at compile
+ * time.
+ *
+ * Since we want Curl to work properly under the VMS DCL shell and Unix
+ * shells under VMS, this routine should compile correctly regardless of
+ * the settings.
+ */
+
+void vms_special_exit(int code, int vms_show)
+{
+  int vms_code;
+
+  /* The Posix exit mode is only available after VMS 7.0 */
+#if __CRTL_VER >= 70000000
+  if(is_vms_shell() == 0) {
+    decc$__posix_exit(code);
+  }
+#endif
+
+  if(code > CURL_LAST) {   /* If CURL_LAST exceeded then */
+    vms_code = CURL_LAST;  /* curlmsg.h is out of sync.  */
+  }
+  else {
+    vms_code = vms_cond[code] | vms_show;
+  }
+  decc$exit(vms_code);
+}
+
+#if defined(__DECC) && !defined(__VAX) && \
+    defined(__CRTL_VER) && (__CRTL_VER >= 70301000)
+
+/*
+ * 2004-09-19 SMS.
+ *
+ * decc_init()
+ *
+ * On non-VAX systems, use LIB$INITIALIZE to set a collection of C
+ * RTL features without using the DECC$* logical name method, nor
+ * requiring the user to define the corresponding logical names.
+ */
+
+/* Structure to hold a DECC$* feature name and its desired value. */
+typedef struct {
+  char *name;
+  int value;
+} decc_feat_t;
+
+/* Array of DECC$* feature names and their desired values. */
+static decc_feat_t decc_feat_array[] = {
+  /* Preserve command-line case with SET PROCESS/PARSE_STYLE=EXTENDED */
+  { "DECC$ARGV_PARSE_STYLE", 1 },
+  /* Preserve case for file names on ODS5 disks. */
+  { "DECC$EFS_CASE_PRESERVE", 1 },
+  /* Enable multiple dots (and most characters) in ODS5 file names,
+     while preserving VMS-ness of ";version". */
+  { "DECC$EFS_CHARSET", 1 },
+  /* List terminator. */
+  { (char *)NULL, 0 }
+};
+
+/* Flag to sense if decc_init() was called. */
+static int decc_init_done = -1;
+
+/* LIB$INITIALIZE initialization function. */
+static void decc_init(void)
+{
+  int feat_index;
+  int feat_value;
+  int feat_value_max;
+  int feat_value_min;
+  int i;
+  int sts;
+
+  /* Set the global flag to indicate that LIB$INITIALIZE worked. */
+  decc_init_done = 1;
+
+  /* Loop through all items in the decc_feat_array[]. */
+  for(i = 0; decc_feat_array[i].name != NULL; i++) {
+
+    /* Get the feature index. */
+    feat_index = decc$feature_get_index(decc_feat_array[i].name);
+
+    if(feat_index >= 0) {
+      /* Valid item.  Collect its properties. */
+      feat_value = decc$feature_get_value(feat_index, 1);
+      feat_value_min = decc$feature_get_value(feat_index, 2);
+      feat_value_max = decc$feature_get_value(feat_index, 3);
+
+      if((decc_feat_array[i].value >= feat_value_min) &&
+         (decc_feat_array[i].value <= feat_value_max)) {
+        /* Valid value.  Set it if necessary. */
+        if(feat_value != decc_feat_array[i].value) {
+          sts = decc$feature_set_value(feat_index, 1,
+                                       decc_feat_array[i].value);
+        }
+      }
+      else {
+        /* Invalid DECC feature value. */
+        printf(" INVALID DECC FEATURE VALUE, %d: %d <= %s <= %d.\n",
+               feat_value,
+               feat_value_min, decc_feat_array[i].name, feat_value_max);
+      }
+    }
+    else {
+      /* Invalid DECC feature name. */
+      printf(" UNKNOWN DECC FEATURE: %s.\n", decc_feat_array[i].name);
+    }
+
+  }
+}
+
+/* Get "decc_init()" into a valid, loaded LIB$INITIALIZE PSECT. */
+
+#pragma nostandard
+
+/* Establish the LIB$INITIALIZE PSECTs, with proper alignment and
+   other attributes.  Note that "nopic" is significant only on VAX. */
+#pragma extern_model save
+#pragma extern_model strict_refdef "LIB$INITIALIZ" 2, nopic, nowrt
+const int spare[8] = {0};
+#pragma extern_model strict_refdef "LIB$INITIALIZE" 2, nopic, nowrt
+void (*const x_decc_init)() = decc_init;
+#pragma extern_model restore
+
+/* Fake reference to ensure loading the LIB$INITIALIZE PSECT. */
+#pragma extern_model save
+int LIB$INITIALIZE(void);
+#pragma extern_model strict_refdef
+int dmy_lib$initialize = (int) LIB$INITIALIZE;
+#pragma extern_model restore
+
+#pragma standard
+
+#endif /* __DECC && !__VAX && __CRTL_VER && __CRTL_VER >= 70301000 */
+
+#endif /* __VMS */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_vms.h b/ap/lib/libcurl/curl-7.54.1/src/tool_vms.h
new file mode 100644
index 0000000..6656a59
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_vms.h
@@ -0,0 +1,47 @@
+#ifndef HEADER_CURL_TOOL_VMS_H
+#define HEADER_CURL_TOOL_VMS_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef __VMS
+
+/*
+ * Forward-declaration of global variable vms_show defined
+ * in tool_main.c, used in main() as parameter for function
+ * vms_special_exit() to allow proper curl tool exiting.
+ */
+extern int vms_show;
+
+int is_vms_shell(void);
+void vms_special_exit(int code, int vms_show);
+
+#undef exit
+#define exit(__code) vms_special_exit((__code), (0))
+
+#define  VMS_STS(c,f,e,s) (((c&0xF)<<28)|((f&0xFFF)<<16)|((e&0x1FFF)<3)|(s&7))
+#define  VMSSTS_HIDE  VMS_STS(1,0,0,0)
+
+#endif /* __VMS */
+
+#endif /* HEADER_CURL_TOOL_VMS_H */
+
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_writeout.c b/ap/lib/libcurl/curl-7.54.1/src/tool_writeout.c
new file mode 100644
index 0000000..5d92bd2
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_writeout.c
@@ -0,0 +1,369 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+#define ENABLE_CURLX_PRINTF
+/* use our own printf() functions */
+#include "curlx.h"
+#include "tool_cfgable.h"
+#include "tool_writeout.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+typedef enum {
+  VAR_NONE,       /* must be the first */
+  VAR_TOTAL_TIME,
+  VAR_NAMELOOKUP_TIME,
+  VAR_CONNECT_TIME,
+  VAR_APPCONNECT_TIME,
+  VAR_PRETRANSFER_TIME,
+  VAR_STARTTRANSFER_TIME,
+  VAR_SIZE_DOWNLOAD,
+  VAR_SIZE_UPLOAD,
+  VAR_SPEED_DOWNLOAD,
+  VAR_SPEED_UPLOAD,
+  VAR_HTTP_CODE,
+  VAR_HTTP_CODE_PROXY,
+  VAR_HEADER_SIZE,
+  VAR_REQUEST_SIZE,
+  VAR_EFFECTIVE_URL,
+  VAR_CONTENT_TYPE,
+  VAR_NUM_CONNECTS,
+  VAR_REDIRECT_TIME,
+  VAR_REDIRECT_COUNT,
+  VAR_FTP_ENTRY_PATH,
+  VAR_REDIRECT_URL,
+  VAR_SSL_VERIFY_RESULT,
+  VAR_PROXY_SSL_VERIFY_RESULT,
+  VAR_EFFECTIVE_FILENAME,
+  VAR_PRIMARY_IP,
+  VAR_PRIMARY_PORT,
+  VAR_LOCAL_IP,
+  VAR_LOCAL_PORT,
+  VAR_HTTP_VERSION,
+  VAR_SCHEME,
+  VAR_NUM_OF_VARS /* must be the last */
+} replaceid;
+
+struct variable {
+  const char *name;
+  replaceid id;
+};
+
+
+static const struct variable replacements[]={
+  {"url_effective", VAR_EFFECTIVE_URL},
+  {"http_code", VAR_HTTP_CODE},
+  {"response_code", VAR_HTTP_CODE},
+  {"http_connect", VAR_HTTP_CODE_PROXY},
+  {"time_total", VAR_TOTAL_TIME},
+  {"time_namelookup", VAR_NAMELOOKUP_TIME},
+  {"time_connect", VAR_CONNECT_TIME},
+  {"time_appconnect", VAR_APPCONNECT_TIME},
+  {"time_pretransfer", VAR_PRETRANSFER_TIME},
+  {"time_starttransfer", VAR_STARTTRANSFER_TIME},
+  {"size_header", VAR_HEADER_SIZE},
+  {"size_request", VAR_REQUEST_SIZE},
+  {"size_download", VAR_SIZE_DOWNLOAD},
+  {"size_upload", VAR_SIZE_UPLOAD},
+  {"speed_download", VAR_SPEED_DOWNLOAD},
+  {"speed_upload", VAR_SPEED_UPLOAD},
+  {"content_type", VAR_CONTENT_TYPE},
+  {"num_connects", VAR_NUM_CONNECTS},
+  {"time_redirect", VAR_REDIRECT_TIME},
+  {"num_redirects", VAR_REDIRECT_COUNT},
+  {"ftp_entry_path", VAR_FTP_ENTRY_PATH},
+  {"redirect_url", VAR_REDIRECT_URL},
+  {"ssl_verify_result", VAR_SSL_VERIFY_RESULT},
+  {"proxy_ssl_verify_result", VAR_PROXY_SSL_VERIFY_RESULT},
+  {"filename_effective", VAR_EFFECTIVE_FILENAME},
+  {"remote_ip", VAR_PRIMARY_IP},
+  {"remote_port", VAR_PRIMARY_PORT},
+  {"local_ip", VAR_LOCAL_IP},
+  {"local_port", VAR_LOCAL_PORT},
+  {"http_version", VAR_HTTP_VERSION},
+  {"scheme", VAR_SCHEME},
+  {NULL, VAR_NONE}
+};
+
+void ourWriteOut(CURL *curl, struct OutStruct *outs, const char *writeinfo)
+{
+  FILE *stream = stdout;
+  const char *ptr = writeinfo;
+  char *stringp = NULL;
+  long longinfo;
+  double doubleinfo;
+
+  while(ptr && *ptr) {
+    if('%' == *ptr && ptr[1]) {
+      if('%' == ptr[1]) {
+        /* an escaped %-letter */
+        fputc('%', stream);
+        ptr += 2;
+      }
+      else {
+        /* this is meant as a variable to output */
+        char *end;
+        char keepit;
+        int i;
+        if('{' == ptr[1]) {
+          bool match = FALSE;
+          end = strchr(ptr, '}');
+          ptr += 2; /* pass the % and the { */
+          if(!end) {
+            fputs("%{", stream);
+            continue;
+          }
+          keepit = *end;
+          *end = 0; /* zero terminate */
+          for(i = 0; replacements[i].name; i++) {
+            if(curl_strequal(ptr, replacements[i].name)) {
+              match = TRUE;
+              switch(replacements[i].id) {
+              case VAR_EFFECTIVE_URL:
+                if((CURLE_OK ==
+                    curl_easy_getinfo(curl, CURLINFO_EFFECTIVE_URL, &stringp))
+                   && stringp)
+                  fputs(stringp, stream);
+                break;
+              case VAR_HTTP_CODE:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &longinfo))
+                  fprintf(stream, "%03ld", longinfo);
+                break;
+              case VAR_HTTP_CODE_PROXY:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_HTTP_CONNECTCODE,
+                                     &longinfo))
+                  fprintf(stream, "%03ld", longinfo);
+                break;
+              case VAR_HEADER_SIZE:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_HEADER_SIZE, &longinfo))
+                  fprintf(stream, "%ld", longinfo);
+                break;
+              case VAR_REQUEST_SIZE:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_REQUEST_SIZE, &longinfo))
+                  fprintf(stream, "%ld", longinfo);
+                break;
+              case VAR_NUM_CONNECTS:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_NUM_CONNECTS, &longinfo))
+                  fprintf(stream, "%ld", longinfo);
+                break;
+              case VAR_REDIRECT_COUNT:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_REDIRECT_COUNT, &longinfo))
+                  fprintf(stream, "%ld", longinfo);
+                break;
+              case VAR_REDIRECT_TIME:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_REDIRECT_TIME,
+                                     &doubleinfo))
+                  fprintf(stream, "%.6f", doubleinfo);
+                break;
+              case VAR_TOTAL_TIME:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &doubleinfo))
+                  fprintf(stream, "%.6f", doubleinfo);
+                break;
+              case VAR_NAMELOOKUP_TIME:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME,
+                                     &doubleinfo))
+                  fprintf(stream, "%.6f", doubleinfo);
+                break;
+              case VAR_CONNECT_TIME:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_CONNECT_TIME, &doubleinfo))
+                  fprintf(stream, "%.6f", doubleinfo);
+                break;
+              case VAR_APPCONNECT_TIME:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_APPCONNECT_TIME,
+                                     &doubleinfo))
+                  fprintf(stream, "%.6f", doubleinfo);
+                break;
+              case VAR_PRETRANSFER_TIME:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_PRETRANSFER_TIME,
+                                     &doubleinfo))
+                  fprintf(stream, "%.6f", doubleinfo);
+                break;
+              case VAR_STARTTRANSFER_TIME:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_STARTTRANSFER_TIME,
+                                     &doubleinfo))
+                  fprintf(stream, "%.6f", doubleinfo);
+                break;
+              case VAR_SIZE_UPLOAD:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_SIZE_UPLOAD, &doubleinfo))
+                  fprintf(stream, "%.0f", doubleinfo);
+                break;
+              case VAR_SIZE_DOWNLOAD:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_SIZE_DOWNLOAD,
+                                     &doubleinfo))
+                  fprintf(stream, "%.0f", doubleinfo);
+                break;
+              case VAR_SPEED_DOWNLOAD:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_SPEED_DOWNLOAD,
+                                     &doubleinfo))
+                  fprintf(stream, "%.3f", doubleinfo);
+                break;
+              case VAR_SPEED_UPLOAD:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD, &doubleinfo))
+                  fprintf(stream, "%.3f", doubleinfo);
+                break;
+              case VAR_CONTENT_TYPE:
+                if((CURLE_OK ==
+                    curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &stringp))
+                   && stringp)
+                  fputs(stringp, stream);
+                break;
+              case VAR_FTP_ENTRY_PATH:
+                if((CURLE_OK ==
+                    curl_easy_getinfo(curl, CURLINFO_FTP_ENTRY_PATH, &stringp))
+                   && stringp)
+                  fputs(stringp, stream);
+                break;
+              case VAR_REDIRECT_URL:
+                if((CURLE_OK ==
+                    curl_easy_getinfo(curl, CURLINFO_REDIRECT_URL, &stringp))
+                   && stringp)
+                  fputs(stringp, stream);
+                break;
+              case VAR_SSL_VERIFY_RESULT:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_SSL_VERIFYRESULT,
+                                     &longinfo))
+                  fprintf(stream, "%ld", longinfo);
+                break;
+              case VAR_PROXY_SSL_VERIFY_RESULT:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_PROXY_SSL_VERIFYRESULT,
+                                     &longinfo))
+                  fprintf(stream, "%ld", longinfo);
+                break;
+              case VAR_EFFECTIVE_FILENAME:
+                if(outs->filename)
+                  fprintf(stream, "%s", outs->filename);
+                break;
+              case VAR_PRIMARY_IP:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP,
+                                     &stringp))
+                  fprintf(stream, "%s", stringp);
+                break;
+              case VAR_PRIMARY_PORT:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_PRIMARY_PORT,
+                                     &longinfo))
+                  fprintf(stream, "%ld", longinfo);
+                break;
+              case VAR_LOCAL_IP:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_LOCAL_IP,
+                                     &stringp))
+                  fprintf(stream, "%s", stringp);
+                break;
+              case VAR_LOCAL_PORT:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_LOCAL_PORT,
+                                     &longinfo))
+                  fprintf(stream, "%ld", longinfo);
+                break;
+              case VAR_HTTP_VERSION:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_HTTP_VERSION,
+                                     &longinfo)) {
+                  const char *version = "0";
+                  switch(longinfo) {
+                  case CURL_HTTP_VERSION_1_0:
+                    version = "1.0";
+                    break;
+                  case CURL_HTTP_VERSION_1_1:
+                    version = "1.1";
+                    break;
+                  case CURL_HTTP_VERSION_2_0:
+                    version = "2";
+                    break;
+                  }
+
+                  fprintf(stream, version);
+                }
+                break;
+              case VAR_SCHEME:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_SCHEME,
+                                     &stringp))
+                  fprintf(stream, "%s", stringp);
+                break;
+              default:
+                break;
+              }
+              break;
+            }
+          }
+          if(!match) {
+            fprintf(stderr, "curl: unknown --write-out variable: '%s'\n", ptr);
+          }
+          ptr = end + 1; /* pass the end */
+          *end = keepit;
+        }
+        else {
+          /* illegal syntax, then just output the characters that are used */
+          fputc('%', stream);
+          fputc(ptr[1], stream);
+          ptr += 2;
+        }
+      }
+    }
+    else if('\\' == *ptr && ptr[1]) {
+      switch(ptr[1]) {
+      case 'r':
+        fputc('\r', stream);
+        break;
+      case 'n':
+        fputc('\n', stream);
+        break;
+      case 't':
+        fputc('\t', stream);
+        break;
+      default:
+        /* unknown, just output this */
+        fputc(*ptr, stream);
+        fputc(ptr[1], stream);
+        break;
+      }
+      ptr += 2;
+    }
+    else {
+      fputc(*ptr, stream);
+      ptr++;
+    }
+  }
+
+}
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_writeout.h b/ap/lib/libcurl/curl-7.54.1/src/tool_writeout.h
new file mode 100644
index 0000000..8d3f645
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_writeout.h
@@ -0,0 +1,28 @@
+#ifndef HEADER_CURL_TOOL_WRITEOUT_H
+#define HEADER_CURL_TOOL_WRITEOUT_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+void ourWriteOut(CURL *curl, struct OutStruct *outs, const char *writeinfo);
+
+#endif /* HEADER_CURL_TOOL_WRITEOUT_H */
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_xattr.c b/ap/lib/libcurl/curl-7.54.1/src/tool_xattr.c
new file mode 100644
index 0000000..f49fd57
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_xattr.c
@@ -0,0 +1,90 @@
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+#ifdef HAVE_FSETXATTR
+#  include <sys/xattr.h> /* header from libc, not from libattr */
+#  define USE_XATTR
+#elif defined(__FreeBSD_version) && (__FreeBSD_version > 500000)
+#  include <sys/types.h>
+#  include <sys/extattr.h>
+#  define USE_XATTR
+#endif
+
+#include "tool_xattr.h"
+
+#include "memdebug.h" /* keep this as LAST include */
+
+#ifdef USE_XATTR
+
+/* mapping table of curl metadata to extended attribute names */
+static const struct xattr_mapping {
+  const char *attr; /* name of the xattr */
+  CURLINFO info;
+} mappings[] = {
+  /* mappings proposed by
+   * http://freedesktop.org/wiki/CommonExtendedAttributes
+   */
+  { "user.xdg.origin.url", CURLINFO_EFFECTIVE_URL },
+  { "user.mime_type",      CURLINFO_CONTENT_TYPE },
+  { NULL,                  CURLINFO_NONE } /* last element, abort loop here */
+};
+
+/* store metadata from the curl request alongside the downloaded
+ * file using extended attributes
+ */
+int fwrite_xattr(CURL *curl, int fd)
+{
+  int i = 0;
+  int err = 0;
+
+  /* loop through all xattr-curlinfo pairs and abort on a set error */
+  while(err == 0 && mappings[i].attr != NULL) {
+    char *value = NULL;
+    CURLcode result = curl_easy_getinfo(curl, mappings[i].info, &value);
+    if(!result && value) {
+#ifdef HAVE_FSETXATTR_6
+      err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0, 0);
+#elif defined(HAVE_FSETXATTR_5)
+      err = fsetxattr(fd, mappings[i].attr, value, strlen(value), 0);
+#elif defined(__FreeBSD_version)
+      err = extattr_set_fd(fd, EXTATTR_NAMESPACE_USER, mappings[i].attr, value,
+                           strlen(value));
+      /* FreeBSD's extattr_set_fd returns the length of the extended attribute
+       */
+      err = err < 0 ? err : 0;
+#endif
+    }
+    i++;
+  }
+
+  return err;
+}
+#else
+int fwrite_xattr(CURL *curl, int fd)
+{
+  (void)curl;
+  (void)fd;
+
+  return 0;
+}
+#endif
diff --git a/ap/lib/libcurl/curl-7.54.1/src/tool_xattr.h b/ap/lib/libcurl/curl-7.54.1/src/tool_xattr.h
new file mode 100644
index 0000000..56bd9e4
--- /dev/null
+++ b/ap/lib/libcurl/curl-7.54.1/src/tool_xattr.h
@@ -0,0 +1,28 @@
+#ifndef HEADER_CURL_TOOL_XATTR_H
+#define HEADER_CURL_TOOL_XATTR_H
+/***************************************************************************
+ *                                  _   _ ____  _
+ *  Project                     ___| | | |  _ \| |
+ *                             / __| | | | |_) | |
+ *                            | (__| |_| |  _ <| |___
+ *                             \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at https://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+#include "tool_setup.h"
+
+int fwrite_xattr(CURL *curl, int fd);
+
+#endif /* HEADER_CURL_TOOL_XATTR_H */
